JP6032019B2 - 行列更新方法、プログラム及び装置、並びに行列拡張方法、プログラム及び装置 - Google Patents

行列更新方法、プログラム及び装置、並びに行列拡張方法、プログラム及び装置 Download PDF

Info

Publication number
JP6032019B2
JP6032019B2 JP2013003627A JP2013003627A JP6032019B2 JP 6032019 B2 JP6032019 B2 JP 6032019B2 JP 2013003627 A JP2013003627 A JP 2013003627A JP 2013003627 A JP2013003627 A JP 2013003627A JP 6032019 B2 JP6032019 B2 JP 6032019B2
Authority
JP
Japan
Prior art keywords
matrix
mask
column
row
mask matrix
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2013003627A
Other languages
English (en)
Other versions
JP2014134732A (ja
Inventor
和快 古川
和快 古川
伊豆 哲也
哲也 伊豆
武仲 正彦
正彦 武仲
津田 宏
宏 津田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2013003627A priority Critical patent/JP6032019B2/ja
Publication of JP2014134732A publication Critical patent/JP2014134732A/ja
Application granted granted Critical
Publication of JP6032019B2 publication Critical patent/JP6032019B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本技術は、データの秘匿化技術に関する。
例えば、各支店で各商品の月別売上表をサーバで共有し、本部の集計担当者が商品別集計、月別集計などを行うというようなケースを考える。例えば図1の左に示すように、支店Aでは、商品A、商品B及び商品Cの月毎の売上を表す売上表を有し、支店Bでは、同じく商品A、商品B及び商品Cの月毎の売上を表す売上表を有する。そして、図1の右に示すように、本部では、全ての支店に関して、商品A、商品B、商品Cそれぞれについての売上合計値、全商品についての月毎の売上合計値といった集計値を算出する。場合によっては、全売上高というような集計値を計算する場合もある。
このような場合に、各支店では細かい売上高を他の支店などに知らせたくなく、本部も細かい情報を把握できなくとも集計値を得られればよい、といった要望が出てくることがある。
これに対して、次のような技術が提案されている。例えば、各支店を情報提供者とし、本部をユーザとする。そして、ユーザとは別に、集計処理を行う集計者と、秘匿化のためのマスク行列を管理するマスタとが登場するものとする。
この場合、図2に示すように、マスク行列Mは、各情報提供者のためのマスク行列M1乃至M3の和となっており、マスタから、情報提供者a乃至cへ配布される。なお、ここでは、マスク行列Mと、補助行列Aとを加算すると、各行及び各列の成分の総和がゼロとなるゼロサム行列になるものとする。この補助行列Aは、ユーザに配布される。
情報提供者aは、例えば月別商品別の売上高を表す行列D1と、マスタから配布されたマスク行列M1とを加算して、マスク化行列MD1を生成すると、集計者へ送付する。同様に、情報提供者bは、例えば月別商品別の売上高を表す行列D2と、マスタから配布されたマスク行列M2とを加算して、マスク化行列MD2を生成すると、集計者へ送付する。さらに、情報提供者cは、例えば月別商品別の売上高を表す行列D3と、マスタから配布されたマスク行列M3とを加算して、マスク化行列MD3を生成すると、集計者へ送信する。集計者は、行列M1乃至M3ではなくマスク化行列MD1乃至MD3を受信するため、行列M1乃至M3を知ることはできない。集計者以外の第三者も、行列M1乃至M3を知ることはできない。
集計者は、各情報提供者a乃至cからマスク化行列MD1乃至MD3を受信すると、マスク化行列MD1乃至MD3の和を算出することで、マスク化行列MDを生成する。マスク化行列MDであるから、マスク化のために集計者以外の第三者も、行列D1乃至D3の加算結果Dを知ることはできない。
その後、例えばユーザからの要求に応じて、集計者は、マスク化行列MDを、ユーザに送信する。ユーザは、受信したマスク化行列MDと、マスタから配布された補助行列Aとを加算すると、集計行列TDが得られる。このようにすれば、ユーザは、当該集計行列TDにおける各行又は各列について成分の総和を計算すれば、情報提供者a乃至cが有していた行列D1乃至D3の加算結果Dにおける各行又は各列について成分の総和を得ることができる。すなわち、月別の売上高、商品別の売上高、売上合計といった値を得ることができるようになる。これは、M+Aがゼロサム行列だからである。
このような技術によれば、上で述べたような要望を満たすことはできるが、行列D1乃至D3の行列成分が0又は1しかないような場合に、何度も同じマスク行列M1乃至M3を利用すると集計者に行列D1乃至D3が漏洩してしまう問題がある。このため、できれば集計者に送信する都度マスク行列M1乃至M3を更新する方が好ましい。
しかしながら、例えば行列D1乃至D3のサイズが、3万×3万行列(およそ4GBytes)程度だとすると、マスク行列M1乃至M3を情報提供者に配布するコストは大きい。
なお、同じサイズのマスク行列だけではなく、マスク行列のサイズを大きくする場合も同様の問題がある。
特開2012−83536号公報
従って、本技術の目的は、一側面によれば、格納されたマスク行列を利用して新たなマスク行列を生成するための技術を提供することである。
本技術の第1の態様に係るマスク行列更新方法は、(A)被マスク行列をマスクするための、データ格納部に格納されたマスク行列の更新タイミングを検出し、(B)マスク行列の行又は列単位の所定の更新演算式に従った演算を、マスク行列における行又は列方向にサイクリックに行うことで、新たなマスク行列を生成し、データ格納部に格納する処理を含む。
本技術の第2の態様に係るマスク行列拡張方法は、(C)被マスク行列をマスクするための、データ格納部に格納されたマスク行列の拡張タイミングを検出し、(D)マスク行列の行又は列単位の所定の拡張演算式に従った演算をマスク行列における行又は列方向に行うことでマスク行列の新たな行又は列を生成し、マスク行列に付加することで新たなマスク行列を生成し、データ格納部に格納する処理を含む。
一側面によれば、格納されたマスク行列を利用して新たなマスク行列を生成する。
図1は、集計処理の一例を示す図である。 図2は、秘匿集計処理の一例を示す図である。 図3は、実施の形態におけるシステム構成の一例を示す図である。 図4は、情報提供者装置の機能ブロック図である。 図5は、ユーザサーバの機能ブロック図である。 図6は、第1の演算式例を模式的に示す図である。 図7は、第2の演算式例を模式的に示す図である。 図8は、第3の演算式例を模式的に示す図である。 図9は、第4の演算式例を模式的に示す図である。 図10は、第5の演算式例を模式的に示す図である。 図11は、第6の演算式例を模式的に示す図である。 図12は、第1の実施の形態に係る処理フローを示す図である。 図13は、更新処理の処理フローを示す図である。 図14は、第1の実施の形態の第2の変形例における処理フローを示す図である。 図15は、第1の実施の形態の第3の変形例における処理フローを示す図である。 図16(a)乃至(d)は、行列を拡張させる場合の問題点を説明するための図である。 図17は、第2の実施の形態におけるマスタサーバの機能ブロック図である。 図18は、第2の実施の形態における処理フローを示す図である。 図19は、拡張処理の処理フローを示す図である。 図20は、拡張のための演算式を模式的に示す図である。 図21は、補助行列拡張処理の処理フローを示す図である。 図22は、調整付きの拡張演算式を模式的に示す図である。 図23は、第2の実施の形態の第3の変形例における処理フローを示す図である。 図24は、第2の実施の形態の第4の変形例における処理フローを示す図である。 図25は、コンピュータの機能ブロック図である。
[実施の形態1]
図3に、本実施の形態におけるシステム構成の概要を示す。図3の例では、インターネットその他のネットワーク1には、図2に示したマスタのためのマスタサーバ3と、図2に示したユーザのためのユーザサーバ9と、図2に示した集計者のための集計者サーバ7と、図2に示した情報提供者のための情報提供者装置5a乃至5cとが接続されている。なお、ユーザサーバ9及び情報提供者装置5a乃至5cの数については図示した数に限定されるものではない。また、集計者サーバ7は、1台のコンピュータで構成される場合もあれば、複数台のコンピュータで構成される場合もある。
集計者サーバ7は、情報提供者装置5a乃至5cから受信したマスク化行列の総和を算出する機能を有するが、これは従来と同じである。
マスタサーバ3は、初期的なマスク行列M1乃至M3を、情報提供者装置5a乃至5cに配布すると共に、補助行列Aを、ユーザサーバ9へ配布する処理を行う。さらに、本実施の形態では、マスタサーバ3は、情報提供者装置5a乃至5cとユーザサーバ9に対して、マスク行列又は補助行列を更新するように要求する。
情報提供者装置5(5a乃至5c)の構成例を、図4に示す。情報提供者装置5は、制御部51と、変更処理部52と、データ格納部53と、データ更新部54と、マスク処理部55と、マスク化データ格納部56と、送信部57とを有する。制御部51は、マスク行列の変更(更新及び後に述べる拡張)、マスク処理、マスク化行列の送信を制御する。変更処理部52は、データ格納部53に格納されているマスク行列Miを変更する処理を行い、変更後のマスク行列をデータ格納部53に格納する。データ更新部54は、例えば商品別月別の売上高のような行列Diを、例えば情報提供者装置5に接続された他の装置からのデータに応じて更新する処理を行う。マスク処理部55は、データ格納部53に格納されているマスク行列Miと行列Diとの加算を行うことで、マスク化行列MDiを生成し、マスク化データ格納部56に格納する。送信部57は、マスク化データ格納部56に格納されているマスク化行列MDiを、集計者サーバ7へ送信する。
図5に、ユーザサーバ9の構成例を示す。ユーザサーバ9は、データ受信部91と、制御部92と、変更処理部93と、データ格納部94と、集計処理部95と、集計データ格納部96と、データ出力部97とを有する。制御部92は、データ格納部94に格納されている補助行列の変更(更新及び後に述べる拡張)、マスクを解除するアンマスク処理、集計処理、データ出力処理を制御する。データ受信部91は、集計者サーバ7からマスク化行列MD(=ΣMDi)を受信して、データ格納部94に格納する。変更処理部93は、補助行列Aの更新又は拡張等の処理を行う。集計処理部95は、データ格納部94に格納されている補助行列Aとマスク化行列MDとの加算を行うことで集計行列TDを生成し、集計行列TDにおける各行及び各列の成分を加算することで集計処理を実行し、集計結果を集計データ格納部96に格納する。データ出力部97は、集計データ格納部96に格納されているデータを、ユーザサーバ9に接続されているユーザの他のコンピュータ等に出力する。
このようなシステムの動作を説明する前に、マスク行列の更新及び補助行列の更新について、前提及び基本的な演算内容について説明しておく。
上で述べたように、マスク行列Mと補助行列Aとの和がゼロサム行列となる。従って、以下のように表される。
Figure 0006032019
なお、mijは、マスク行列Mのi行j列成分を表し、aijは、補助行列Aのi行j列成分を表す。ゼロサム行列の性質から、以下が成り立つ。
Figure 0006032019
Figure 0006032019
ゼロであるから、行単位又は列単位で加算しても差し引いても、所定の係数を乗じてから加算してもゼロとなる。例えば1列目と2列目を加算した場合には、以下のように表される。
Figure 0006032019
このように、マスク行列Mと補助行列Aとを別々に1列目と2列目とを加算した後で加算しても同じ結果が得られる。これは、行であっても同じである。
一方、マスク行列Mは、図2の例では3つの個別のマスク行列M1乃至M3の和である。すなわち、マスク行列Mは、以下のように表される。
Figure 0006032019
ここで、mij 1は、マスク行列M1のi行j列成分を表し、mij 2は、マスク行列M2のi行j列成分を表し、mij 3は、マスク行列M3のi行j列成分を表す。
そして、同じように、例えば1列目と2列目を加算した場合には、以下のように表される。
Figure 0006032019
このように、当然ながらマスク行列M1について1列目と2列目とを加算した結果と、マスク行列M2について1列目と2列目とを加算した結果と、マスク行列M3について1列目と2列目とを加算した結果との和となる。従って、マスク行列M1乃至M3の各々について同一行又は列の演算を行った上で加算し、補助行列Aについても同一行又は列の同一演算を実施した結果と加算すれば、結果もゼロとなる。
このような性質をマスク行列M1乃至M3及び補助行列Aの更新に使用する。すなわち、行単位又は列単位で演算を行った結果を新たなマスク行列M1乃至M3及び補助行列Aの新たな行又は列の値として用いる。但し、演算式を、情報提供者及びユーザ(基本的にはマスタも)で共有し、同一の演算式で演算を行うものとする。
なお、M+Aは、各列の成分の総和がゼロというだけではなく、各行の成分の総和がゼロという要件も満たさなければならない。但し、元々M+Aの各行の成分の総和がゼロであるから、各行の総和は何倍されてもゼロのままである。従って、例えば、1列目の値と2列目の値を加算して1列目の値に採用し、2列目の値と3列目の値を加算して2列目の値に採用し、....m列目の値と1列目の値を加算してm列目の値に採用する、といったようなサイクリックな演算を行えば、行方向では成分の総和は元の2倍になっている。以下に、その結果を示すが、各成分は行方向で2回出現する。しかしながら、0を2倍しても0なので、各行の成分の総和は0になる。
Figure 0006032019
演算式については様々なものが可能であるが、例えば以下のような演算式が考えられる。
なお、マスク行列M1を5行5列として以下のように表すものとする。
Figure 0006032019
そして、列ベクトルxiで表現すると、M1=(x1,x2,x3,x4,x5)であり、行ベクトルyで表現すると、M1=(y1,y2,y3,y4,y5Tとなる。
(A)隣の列の加算
i=xi+x(i+1 mod 5)|i={1,2,3,4,5}
模式的に示せば、図6のように表される。図6の例では右隣の列との加算により、当該列の新たな成分が計算される。なお、右隣がない5列目については1列目の成分が加算される。
(B)隣の行の加算
i=yi+y(i+1 mod 5)|i={1,2,3,4,5}
模式的に示せば、図7に示すように表される。図7の例では1つ下の行との加算により、当該行の新たな成分が計算される。なお、1つ下の行がない5行目については1行目の成分が加算される。
(C)隣の列の減算
i=xi−x(i+1 mod 5)|i={1,2,3,4,5}
模式的に示せば、図8のように表される。図8の例では右隣の列を減算することにより、当該列の新たな成分が計算される。なお、右隣がない5列目については1列目の成分が減算される。
(D)2つ隣の列の加算
i=xi+x(i+2 mod 5)|i={1,2,3,4,5}
模式的に示せば、図9のように表される。図9の例では2つ右隣の列との加算により、当該列の新たな成分が計算される。なお、2つ右隣がない4列目については1列目の成分が加算され、同じく5列目については2列目の成分が加算される。
(E)隣の列の2倍を加算
i=xi+2x(i+1 mod 5)|i={1,2,3,4,5}
模式的に示せば、図10のように表される。図10の例では右隣の列における成分の2倍との加算により、当該列の新たな成分が計算される。なお、右隣がない5列目については1列目の成分の2倍が加算される。
この場合、行の値は3倍となるがマスク行列M+補助行列Aについて行の総和は上で述べたように0となるので、問題は無い。
(F)複数の列の加算
i=xi+x(i+1 mod 5)+x(i+2 mod 5)|i={1,2,3,4,5}
模式的に示せば、図11のように表される。図11の例では右隣の列と2つ右隣の列との加算により、当該列の新たな成分が計算される。なお、2つ右隣がない4列目については2つ右隣の列の代わりに1列目の成分が加算される。同様に、右隣がない5列目については1列目及び2列目の成分が加算される。
説明を省略しているが、補助行列Aについても同様の演算を行う。
これ以外にも上記の主旨に従った演算式をサイクリックに適用すれば、マスク行列M+補助行列Aがゼロサム行列となる。
次に、図12及び図13を用いて、本実施の形態に係るシステムの動作内容について説明する。
なお、既にマスク行列M1は情報提供者装置5aに配布済みであり、マスク行列M2は情報提供者装置5bに配布済みであり、マスク行列M3は情報提供者装置5cに配布済みであり、補助行列Aもユーザサーバ9に配布済みであるものとする。
また、例えば上で述べた(A)乃至(F)の演算式については、情報提供者装置5a乃至5c及びユーザサーバ9に通知されているものとする。
そして、適切なタイミングで、マスタサーバ3は、ここでは演算式の識別子を含む更新指示を各情報提供者装置5a乃至5cへ送信する(図12:ステップS1)。各情報提供者装置5a乃至5cの制御部51は、マスタサーバ3から、演算式の識別子を含む更新指示を受信する(ステップS3)。そうすると、情報提供者装置5a乃至5cは、マスク行列の更新処理を実行する(ステップS5)。マスク行列の更新処理については、図13を用いて説明する。
制御部51が、変更処理部52に対して、演算式の識別子を含む、マスク行列の変更指示を行うと、変更処理部52は、演算式の識別子により、更新のための演算式を特定する(図13:ステップS31)。また、変更処理部52は、カウンタiを1に初期化する(ステップS33)。そして、変更処理部52は、特定された更新のための演算式に従って、データ格納部53に格納されているマスク行列におけるi行又は列目の新たな値を生成し、データ格納部53に格納する(ステップS35)。演算式については、例えば上で述べた(A)乃至(F)のいずれかである。そして、変更処理部52は、カウンタiの値が、行又は列の最大値N以上であるか判断する(ステップS37)。iがN未満であれば、変更処理部52は、iを1インクリメントし(ステップS39)、処理はステップS35に戻る。
このような処理を実行することで、新たなマスク行列M1が得られるようになる。
図12の処理の説明に戻って、変更処理部52は処理が終了すると制御部51に対して処理終了を通知する。その後、適切なタイミングで、制御部51は、マスク処理部55に処理を指示する。そうすると、マスク処理部55は、制御部51から処理の指示を受けると、マスク化処理を実行し、マスク化データ格納部56に処理結果を格納する(ステップS7)。すなわち、マスク行列M1と行列D1との和を算出することで、マスク化行列MD1が得られる。
その後、マスク処理部55は、処理終了を制御部51に通知し、制御部51は、送信部57に処理を指示する。そうすると、送信部57は、マスク化データ格納部56に格納されているマスク化行列MD1を、集計者サーバ7に送信する(ステップS9)。
この他の情報提供者装置5b及び5cについても、同様の処理を実行する。
集計者サーバ7は、情報提供者装置5a乃至5cから、マスク化行列MD1乃至MD3を受信し、データ格納部に格納する(ステップS11)。そして、集計者サーバ7は、マスク化行列MD1乃至MD3の合計であるマスク化行列MDを算出し、データ格納部に格納する(ステップS13)。
一方、マスタサーバ3は、演算式の識別子を含む更新指示をユーザサーバ9へも送信する(ステップS1)。ユーザサーバ9の制御部92は、演算式の識別子を含む更新指示を受信し(ステップS17)、変更処理部93に処理を指示する。変更処理部93は、データ格納部94に格納されている補助行列Aの更新処理を実行する(ステップS19)。この更新処理は、図13で示した更新処理と同様であり、詳細な説明は省略する。これによって、補助行列Aもマスク行列M1乃至M3と同様に更新される。
その後、ユーザサーバ9の制御部92は、自動的に又はユーザからの指示などに応じて集計者サーバ7へマスク化行列MDの要求を送信する。但し、要求を送信せずとも、集計者サーバ7側で自動的にマスク化行列MDを送信してくる場合もある。
自動的に又はユーザサーバ9からの要求に応じて、集計者サーバ7は、マスク化行列MD1乃至MD3の合計結果であるマスク化行列MDをユーザサーバ9へ送信する(ステップS15)。ユーザサーバ9の制御部92は、集計者サーバ7からマスク化行列MD1乃至MD3の合計結果であるマスク化行列MDを受信すると(ステップS21)、集計処理部95に出力する。
集計処理部95は、マスク化行列MD1乃至MD3の合計結果であるマスク化行列MDと、更新後の補助行列Aとを加算して、集計行列TDを生成し、集計データ格納部96に格納する(ステップS23)。これによって図2を用いて説明された演算結果と同様の結果を得ることができるようになる。
さらに、集計処理部95は、集計行列TDの各行及び各列について成分を合計するという集計処理を実行し、集計結果を集計データ格納部96に格納する(ステップS25)。そして、集計処理部95は、処理終了を制御部92に通知する。制御部92は、例えばユーザサーバ9に接続された他のコンピュータからの要求等に応じて、データ出力部97に出力を指示し、データ出力部97は、集計データ格納部96に格納されている集計結果を出力する(ステップS27)。
以上のような処理を実行することで、マスタサーバ3からの指示に応じてマスク行列M1乃至M3と補助行列Aとが更新されると共に行列D1乃至D3の集計結果が算出される。
[実施の形態1の第1の変形例]
上で述べた例では、マスタサーバ3は、演算式の識別子を含む更新指示を送信するものであったが、これは各情報提供者装置5a乃至5c及びユーザサーバ9が、使用すべき演算式を予め保持していることを前提としている。一方、各情報提供者装置5a乃至5c及びユーザサーバ9に、マスタサーバ3が、演算式を含む更新指示を送信するようにしても良い。
[実施の形態1の第2の変形例]
マスタサーバ3の関与を少なくすることもできる。例えば、図14に示すように、情報提供者装置5の制御部51が、情報提供者装置5の時計により予め定められている時刻や例えばステップS3の直後といったようなイベントを検出する(ステップS41)。
そして、制御部51は、変更処理部52に対して処理を指示し、変更処理部52は、マスク行列の更新処理を実行する(ステップS43)。この更新処理については、第1の実施の形態と同様である。但し、演算式については、ラウンドロビンなど予め定められている順番で、予め定められている演算式を順番に選択して更新を行う。
図14と同様の処理にて、ユーザサーバ9においても、補助行列の更新を行うようにする。
このようにすれば、マスタサーバ3は、一度マスク行列及び補助行列を配布してしまい、複数の演算式を定めておけば、その後の関与がなくても適切な更新が行われるようになる。
なお、マスタサーバ3が一部関与するようなやり方も考えられる。例えば、更新指示に所定回数分の演算式の選択順番を含めるようにして、情報提供者装置5a乃至5c及びユーザサーバ9が、所定回数分の更新時期においては、マスタサーバ3から指示された順番で演算式を選択するようにしても良い。
[実施の形態1の第3の変形例]
上で述べた例では、補助行列が存在するケースについての処理を説明した。但し、マスク行列M1乃至M3を適切に生成すれば、マスク行列M1乃至M3の加算結果であるマスク行列M自体が、ゼロサム行列となる。このような場合でも補助行列Aが無くなっただけで上で述べたようなマスク行列M1乃至M3の性質は変わらない。
このようなマスク行列M1乃至M3を採用する場合には、ユーザサーバ9は、補助行列の更新を行うことはなく、アンマスク処理も行わない。
例えば、図12に示した処理フローは図15に示すような処理フローに変更される。
なお、既にマスク行列M1は情報提供者装置5aに配布済みであり、マスク行列M2は情報提供者装置5bに配布済みであり、マスク行列M3は情報提供者装置5cに配布済みであるものとする。
また、例えば上で述べた(A)乃至(F)の演算式については、情報提供者装置5aに通知されているものとする。
そして、適切なタイミングで、マスタサーバ3は、ここでは演算式の識別子を含む更新指示を各情報提供者装置5a乃至5cへ送信する(図15:ステップS51)。各情報提供者装置5a乃至5cの制御部51は、マスタサーバ3から、演算式の識別子を含む更新指示を受信する(ステップS53)。そうすると、情報提供者装置5a乃至5cは、マスク行列の更新処理を実行する(ステップS55)。マスク行列の更新処理については、上で述べたものと同じであるから、説明は省略する。
新たなマスク行列M1が得られた後、適切なタイミングで、制御部51は、マスク処理部55に処理を指示する。そうすると、マスク処理部55は、制御部51から処理の指示を受けると、マスク化処理を実行し、マスク化データ格納部56に処理結果を格納する(ステップS57)。すなわち、マスク行列M1と行列D1との和を算出することで、マスク化行列MD1が得られる。
その後、マスク処理部55は、処理終了を制御部51に通知し、制御部51は、送信部57に処理を指示する。そうすると、送信部57は、マスク化データ格納部56に格納されているマスク化行列MD1を、集計者サーバ7に送信する(ステップS59)。
この他の情報提供者装置5b及び5cについても、同様の処理を実行する。
集計者サーバ7は、情報提供者装置5a乃至5cから、マスク化行列MD1乃至MD3を受信し、データ格納部に格納する(ステップS61)。そして、集計者サーバ7は、マスク化行列MD1乃至MD3の合計であるマスク化行列MDを算出し、データ格納部に格納する(ステップS63)。ここまでは、図12と同じである。
しかし、本実施の形態では、集計者サーバ7が、マスク化行列MD1乃至MD3の合計結果であるマスク化行列MD(=集計行列TD)の各行及び各列について成分を合計するという集計処理を実行し(ステップS67)、集計結果をデータ格納部に格納する。
その後、ユーザサーバ9からの要求に応じて又は自動的に、集計者サーバ7は、集計結果を、ユーザサーバ9に送信する(ステップS69)。これに対して、ユーザサーバ9は、集計者サーバ7から集計結果を受信して、例えば集計データ格納部96に格納する(ステップS71)。
このように、マスク行列M1乃至M3の加算結果であるマスク行列M自体がゼロサム行列であれば、補助行列についての処理を省略することができる。
なお、マスク化行列MDを、集計者サーバ7からユーザサーバ9に送信して、ユーザサーバ9が、集計処理から実行するようにしてもよい。
さらに、マスク行列M1乃至M3自体がゼロサム行列である場合もある。
また、情報提供者が多数存在している場合には、例えば情報提供者のグループ毎に、そのグループに属する情報提供者用のマスク行列の加算結果がゼロサム行列となるように変形することも可能である。
[実施の形態2]
第1の実施の形態では、商品別月別売上高についての行列のサイズ自体は変更がない例を示している。しかしながら、新しい商品が追加されたといった場合には、行列のサイズを変更することになる。
マスク行列及び補助行列の性質は上で述べたとおりであるから、行又は列を追加する場合には、特定の行又は列ベクトルの線形従属な行又は列ベクトルを生成すればよい。例えば、図16(a)に示すような3行3列の行列を3行4列の行列に拡張する場合には、図16(b)に示すように、右から1列目及び2列目のベクトルを加算して4列目に採用する。但し、図16(c)に示すように行方向の成分の総和については追加した1列分だけ総和が増加してしまう。そこで、補助行列に追加する列については、同様の演算を行った上で、図16(d)に示すように、符号を反転させた列ベクトルを、拡張された列のベクトルに加算することにする。
本実施の形態では、マスタサーバ3bは、例えば図17に示すような構成を有する。マスタサーバ3bは、制御部31と、データ格納部32と、行列拡張部33と、調整部34とを有する。
制御部31は、マスク行列Mの拡張及び調整ベクトルの生成を制御する。データ格納部32は、マスク行列Mと補助行列Aとが格納されている。行列拡張部33は、所定の演算式に従ってマスク行列Mを拡張する処理を実行する。調整部34は、調整ベクトルを生成する処理を実行する。
情報提供者装置5a乃至5cとユーザサーバ9と集計者サーバ7とについては、異なる処理を行う部分もあるが基本的な構成は第1の実施の形態と同様である。
次に、マスク行列及び補助行列の拡張を行う場合におけるシステムの処理内容を図18に示す。
なお、既にマスク行列M1は情報提供者装置5aに配布済みであり、マスク行列M2は情報提供者装置5bに配布済みであり、マスク行列M3は情報提供者装置5cに配布済みであり、補助行列Aもユーザサーバ9に配布済みであるものとする。
また、例えば予め定められている複数の演算式については、情報提供者装置5a乃至5c及びユーザサーバ9に通知されているものとする。
そして、適切なタイミングで、マスタサーバ3bは、ここでは演算式の識別子を含む拡張指示を各情報提供者装置5a乃至5cへ送信する(図18:ステップS81)。各情報提供者装置5a乃至5cの制御部51は、マスタサーバ3bから、演算式の識別子を含む拡張指示を受信する(ステップS87)。そうすると、情報提供者装置5a乃至5cは、マスク行列の拡張処理を実行する(ステップS89)。マスク行列の拡張処理については、図19を用いて説明する。
制御部51が、変更処理部52に対して、演算式の識別子を含む、マスク行列の拡張指示を行うと、変更処理部52は、演算式の識別子により、拡張のための演算式を特定する(図19:ステップS121)。また、変更処理部52は、特定された拡張のための演算式に従って、データ格納部53に格納されているマスク行列における追加される行又は列の新たな値(ベクトル)を生成し、データ格納部53に格納する(ステップS123)。このような行又は列が付加された新たなマスク行列が生成される。拡張のための演算式については、基本的には、上で述べた(A)乃至(F)と同様であるが、サイクリックではないので、以下のようになる。なお、マスク行列はn行m列の行列であるものとする。
(A)特定の列の加算
m+1=xi+xj|i,j={1,2,3,4,5}
i=1且つj=2であれば、図20に模式的に示すような演算で、列が追加される。
(B)特定の行の加算
n+1=yi+yj|i、j={1,2,3,4,5}
(C)特定の列の減算
m+1=xi−xj|i,j={1,2,3,4,5}i≠j
(D)第1の列と第2の列の2倍を加算
m+1=xi+2xj|i,j={1,2,3,4,5}
(E)複数の列の加算
m+1=xi+xj+xk|i,j,k={1,2,3,4,5}
このような処理を実行することで、行又は列が追加された新たなマスク行列M1が得られるようになる。
図18の処理の説明に戻って、変更処理部52は処理が終了すると制御部51に対して処理終了を通知する。その後、適切なタイミングで、制御部51は、マスク処理部55に処理を指示する。そうすると、マスク処理部55は、制御部51から処理の指示を受けると、マスク化処理を実行し、マスク化データ格納部56に格納する(ステップS91)。すなわち、マスク行列M1と行列D1との和を算出することで、マスク化行列MD1が得られる。
その後、マスク処理部55は、処理終了を制御部51に通知し、制御部51は、送信部57に処理を指示する。そうすると、送信部57は、マスク化データ格納部56に格納されているマスク化行列MD1を、集計者サーバ7に送信する(ステップS93)。
この他の情報提供者装置5b及び5cについても、同様の処理を実行する。
集計者サーバ7は、情報提供者装置5a乃至5cから、マスク化行列MD1乃至MD3を受信し、データ格納部に格納する(ステップS95)。そして、集計者サーバ7は、マスク化行列MD1乃至MD3の合計であるマスク化行列MDを算出し、データ格納部に格納する(ステップS97)。
一方、マスタサーバ3の制御部31は、行列拡張部33に、データ格納部32に格納されているマスク行列Mに対して今回の拡張のための演算式に従ってマスク行列Mを拡張させてデータ格納部32に格納させ、調整部34に、拡張されたのが行であれば列方向の成分の総和をゼロにするための調整ベクトル、拡張されたのが列であれば行方向の成分の総和をゼロにするための調整ベクトル(行又は列の総和を表すベクトルの符号を反転させたベクトル)を生成させ、データ格納部32に格納させる(ステップS83)。そして、制御部31は、調整部34によって生成された調整ベクトルを、データ格納部32から読み出して、当該調整ベクトル及び拡張のための演算式の識別子を含む拡張指示を、ユーザサーバ9へ送信する(ステップS85)。
ユーザサーバ9の制御部92は、調整ベクトル及び演算式の識別子を含む拡張指示を受信し(ステップS101)、変更処理部93に処理を指示する。変更処理部93は、データ格納部94に格納されている補助行列Aに対して補助行列拡張処理を実行する(ステップS103)。補助行列拡張処理については、図21を用いて説明する。
制御部92が、変更処理部93に対して、調整ベクトル及び演算式の識別子を含む、マスク行列の拡張指示を行うと、変更処理部93は、演算式の識別子により、拡張のための演算式を特定する(図21:ステップS131)。また、変更処理部93は、特定された拡張のための演算式に従って、データ格納部94に格納されている補助行列における追加される行又は列の新たな値(ベクトル)を生成する(ステップS133)。さらに、変更処理部93は、追加される行又は列の新たな値(ベクトル)と調整ベクトルとを加算し、その結果をデータ格納部94に格納する(ステップS135)。このようにして得られた結果を補助行列Aに付加することで新たな補助行列Aが生成される。
これによって、拡張された補助行列Aを用いても、集計行列TDを生成できるようになる。
その後、ユーザサーバ9の制御部92は、自動的に又はユーザからの指示などに応じて集計者サーバ7へマスク化行列MDの要求を送信する。但し、要求を送信せずとも、集計者サーバ7側で自動的にマスク化行列MDを送信してくる場合もある。
自動的に又はユーザサーバ9からの要求に応じて、集計者サーバ7は、マスク化行列MD1乃至MD3の合計結果であるマスク化行列MDをユーザサーバ9へ送信する(ステップS99)。ユーザサーバ9の制御部92は、集計者サーバ7からマスク化行列MD1乃至MD3の合計結果であるマスク化行列MDを受信すると(ステップS105)、集計処理部95に出力する。
集計処理部95は、マスク化行列MD1乃至MD3の合計結果であるマスク化行列MDと、拡張後の補助行列Aとを加算して、集計行列TDを生成し、集計データ格納部96に格納する(ステップS107)。
さらに、集計処理部95は、集計行列TDの各行及び各列について成分を合計するという集計処理を実行し、集計結果を集計データ格納部96に格納する(ステップS109)。そして、集計処理部95は、処理終了を制御部92に通知する。制御部92は、例えばユーザサーバ9に接続された他のコンピュータからの要求等に応じて、データ出力部97に指示し、データ出力部97は、集計データ格納部96に格納されている集計結果を出力する(ステップS111)。
以上のような処理を実行することで、マスタサーバ3bからの指示に応じてマスク行列M1乃至M3と補助行列Aとが拡張され、適切な集計行列TDが得られるようになる。
[実施の形態2の第1の変形例]
上で述べた例では、マスタサーバ3bは、演算式の識別子を含む拡張指示を送信するものであったが、これは各情報提供者装置5a乃至5c及びユーザサーバ9が、使用すべき演算式を予め保持していることを前提としている。一方、各情報提供者装置5a乃至5c及びユーザサーバ9が、演算式を保持していない場合には、マスタサーバ3bが、演算式を含む拡張指示を送信すればよい。
[実施の形態2の第2の変形例]
マスタサーバ3bの関与を少なくすることもできる。
第1の実施の形態の第2の変形例と同様に、情報提供者装置5の制御部51が、情報提供者装置5の時計により予め定められている時刻や例えばステップS87の直後といったようなイベントを検出すると、変更処理部52が、図19のような処理を実行するようにしても良い。
但し、ユーザサーバ9における補助行列Aの拡張処理については簡略化できないので、図18のとおりに行うことになる。
[実施の形態2の第3の変形例]
上で述べた例では、拡張された行又は列の分の調整をマスク行列M1乃至M3内部で行っていない。従って、補助行列Aについては別途調整ベクトルで調整することになっていた。
しかしながら、例えば、図22に模式的に示すように、xm+1=x1+x2、xm=xm−x1−x2といったような演算式を採用する場合には、マスク行列内で拡張された列の分を相殺できるようになっている。
このように、追加する行又は列については、特定の行又は列ベクトルの線形従属のベクトルとして生成し、特定の行又は列及び追加された行又は列以外の行又は列において当該線形従属のベクトルを当該行又は列のベクトルから差し引いておくことで、調整できる。
このような場合には、補助行列Aについても、同様の演算式を適用すれば、調整ベクトルなしに、M+Aがゼロサム行列となる。
このような場合には、例えば図23に示すような処理を実行することになる。
なお、既にマスク行列M1は情報提供者装置5aに配布済みであり、マスク行列M2は情報提供者装置5bに配布済みであり、マスク行列M3は情報提供者装置5cに配布済みであり、補助行列Aもユーザサーバ9に配布済みであるものとする。
また、例えば予め定められている複数の演算式については、情報提供者装置5a乃至5c及びユーザサーバ9に通知されているものとする。
そして、適切なタイミングで、マスタサーバ3bは、ここでは演算式の識別子を含む拡張指示を各情報提供者装置5a乃至5cへ送信する(図23:ステップS141)。各情報提供者装置5a乃至5cの制御部51は、マスタサーバ3bから、演算式の識別子を含む拡張指示を受信する(ステップS143)。そうすると、情報提供者装置5a乃至5cは、マスク行列の拡張処理を実行する(ステップS145)。マスク行列の拡張処理については、図19を用いて説明した処理フローと同じであるから、ここでは説明を省略する。
これによって、行又は列が追加された新たなマスク行列M1が得られるようになる。
そして、変更処理部52は処理が終了すると制御部51に対して処理終了を通知する。その後、適切なタイミングで、制御部51は、マスク処理部55に処理を指示する。そうすると、マスク処理部55は、制御部51から処理の指示を受けると、マスク化処理を実行し、マスク化データ格納部56に格納する(ステップS147)。すなわち、マスク行列M1と行列D1との和を算出することで、マスク化行列MD1が得られる。
その後、マスク処理部55は、処理終了を制御部51に通知し、制御部51は、送信部57に処理を指示する。そうすると、送信部57は、マスク化データ格納部56に格納されているマスク化行列MD1を、集計者サーバ7に送信する(ステップS149)。
この他の情報提供者装置5b及び5cについても、同様の処理を実行する。
集計者サーバ7は、情報提供者装置5a乃至5cから、マスク化行列MD1乃至MD3を受信し、データ格納部に格納する(ステップS151)。そして、集計者サーバ7は、マスク化行列MD1乃至MD3の合計であるマスク化行列MDを算出し、データ格納部に格納する(ステップS153)。
また、マスタサーバ3bの制御部31は、拡張のための演算式の識別子を含む拡張指示を、ユーザサーバ9へ送信する(ステップS141)。
ユーザサーバ9の制御部92は、調整ベクトル及び演算式の識別子を含む拡張指示を受信し(ステップS157)、変更処理部93に処理を指示する。変更処理部93は、データ格納部94に格納されている補助行列Aに対して拡張処理を実行する(ステップS159)。補助行列の拡張処理については、本実施の形態では図21を用いて説明したものと同じである。
その後、ユーザサーバ9の制御部92は、自動的に又はユーザからの指示などに応じて集計者サーバ7へマスク化行列MDの要求を送信する。但し、要求を送信せずとも、集計者サーバ7側で自動的にマスク化行列MDを送信してくる場合もある。
自動的に又はユーザサーバ9からの要求に応じて、集計者サーバ7は、マスク化行列MD1乃至MD3の合計結果であるマスク化行列MDをユーザサーバ9へ送信する(ステップS155)。ユーザサーバ9の制御部92は、集計者サーバ7からマスク化行列MD1乃至MD3の合計結果であるマスク化行列MDを受信すると(ステップS161)、集計処理部95に出力する。
集計処理部95は、マスク化行列MD1乃至MD3の合計結果であるマスク化行列MDと、拡張後の補助行列Aとを加算して、集計行列TDを生成し、集計データ格納部96に格納する(ステップS163)。
さらに、集計処理部95は、集計行列TDの各行及び各列について成分を合計するという集計処理を実行し、集計結果を集計データ格納部96に格納する(ステップS165)。そして、集計処理部95は、処理終了を制御部92に通知する。制御部92は、例えばユーザサーバ9に接続された他のコンピュータからの要求等に応じて、データ出力部97に指示し、データ出力部97は、集計データ格納部96に格納されている集計結果を出力する(ステップS167)。
以上のような演算式を採用することで、マスタサーバ3bからの指示に応じてマスク行列M1乃至M3と補助行列Aとが拡張され、適切な集計行列TDが得られるようになる。
[実施の形態2の第4の変形例]
上で述べた例では、補助行列が存在するケースについての処理を説明した。但し、マスク行列M1乃至M3を適切に生成すれば、マスク行列M1乃至M3の加算結果であるマスク行列M自体が、ゼロサム行列となる。このような場合でも補助行列Aが無くなっただけで上で述べたようなマスク行列M1乃至M3の性質は変わらない。
従って、第2の実施の形態における第3の変形例のような演算式を採用すれば、情報提供者装置5a乃至5cにおいて、マスク行列M1乃至M3の拡張を行うだけで良くなる。
また、このようなマスク行列M1乃至M3を採用する場合には、ユーザサーバ9は、補助行列の更新を行うことはなく、アンマスク処理も行わない。
例えば、図18に示した処理フローは図24に示すような処理フローに変更される。
なお、既にマスク行列M1は情報提供者装置5aに配布済みであり、マスク行列M2は情報提供者装置5bに配布済みであり、マスク行列M3は情報提供者装置5cに配布済みであるものとする。
また、例えば第3の変形例に従った複数の拡張のための演算式については、情報提供者装置5aに通知されているものとする。
そして、適切なタイミングで、マスタサーバ3bは、ここでは演算式の識別子を含む拡張指示を各情報提供者装置5a乃至5cへ送信する(図24:ステップS171)。各情報提供者装置5a乃至5cの制御部51は、マスタサーバ3bから、演算式の識別子を含む拡張指示を受信する(ステップS173)。そうすると、情報提供者装置5a乃至5cは、マスク行列の拡張処理を実行する(ステップS175)。マスク行列の拡張処理については、上で述べたものと同じであるから、説明は省略する。
新たなマスク行列M1が得られた後、適切なタイミングで、制御部51は、マスク処理部55に処理を指示する。そうすると、マスク処理部55は、制御部51から処理の指示を受けると、マスク化処理を実行し、マスク化データ格納部56に格納する(ステップS177)。すなわち、マスク行列M1と行列D1との和を算出することで、マスク化行列MD1が得られる。
その後、マスク処理部55は、処理終了を制御部51に通知し、制御部51は、送信部57に処理を指示する。そうすると、送信部57は、マスク化データ格納部56に格納されているマスク化行列MD1を、集計者サーバ7に送信する(ステップS179)。
この他の情報提供者装置5b及び5cについても、同様の処理を実行する。
集計者サーバ7は、情報提供者装置5a乃至5cから、マスク化行列MD1乃至MD3を受信し、データ格納部に格納する(ステップS181)。そして、集計者サーバ7は、マスク化行列MD1乃至MD3の合計であるマスク化行列MDを算出し、データ格納部に格納する(ステップS183)。ここまでは、図18と同じである。
しかし、本実施の形態では、集計者サーバ7が、マスク化行列MD1乃至MD3の合計結果であるマスク化行列MD(=集計行列TD)の各行及び各列について成分を合計するという集計処理を実行し(ステップS185)、集計結果をデータ格納部に格納する。
その後、ユーザサーバ9からの要求に応じて又は自動的に、集計者サーバ7は、集計結果を、ユーザサーバ9に送信する(ステップS187)。これに対して、ユーザサーバ9は、集計者サーバ7から集計結果を受信して、例えば集計データ格納部96に格納する(ステップS189)。
このように、マスク行列M1乃至M3の加算結果であるマスク行列M自体がゼロサム行列であれば、補助行列についての処理を省略することができる。
なお、マスク化行列MDを、集計者サーバ7からユーザサーバ9に送信して、ユーザサーバ9が、集計処理から実行するようにしてもよい。
さらに、マスク行列M1乃至M3自体がゼロサム行列である場合もある。
また、情報提供者が多数存在している場合には、例えば情報提供者のグループ毎に、そのグループに属する情報提供者用のマスク行列の加算結果がゼロサム行列となるように変形することも可能である。
[実施の形態2の第5の変形例]
演算式が第2の実施の形態における第3の変形例のような形でない場合には、第4の変形例では、調整ベクトルをユーザサーバ9に送信して、調整ベクトルが行ベクトルであれば、列方向の集計結果を調整し、調整ベクトルが列ベクトルであれば、行方向の集計結果を調整することになる。
[実施の形態2の第6の変形例]
拡張した上で更新するというような処理を実行する場合もある。この場合、上で述べた更新処理及び拡張処理を行う場合もあるが、拡張を簡易化して、0ベクトルを行又は列に追加することもある。この場合、(E)の演算式で更新処理を行えば、問題は発生しない。すなわち、3以上の行又は列で更新する演算式であれば、0ベクトルが演算式で用いられる場合にも問題なく更新される。
以上様々な実施の形態を説明したが、本技術はこれに限定されるものではない。例えば、上で述べた変形例の組み合わせなども可能な場合がある。処理フローについても、処理結果が変わらない限りにおいて、処理順番を入れ替えたり、複数のステップを並列に実行する場合もある。
サーバ等の機能ブロック構成も、一例であって、プログラムモジュール構成とは一致しない場合がある。各サーバ及び装置は、複数のコンピュータで実現される場合もある。
なお、上で述べたマスタサーバ3及び3b、情報提供者装置5a乃至5c、集計者サーバ7及びユーザサーバ9は、コンピュータ装置であって、図25に示すように、メモリ2501とCPU(Central Processing Unit)2503とハードディスク・ドライブ(HDD:Hard Disk Drive)2505と表示装置2509に接続される表示制御部2507とリムーバブル・ディスク2511用のドライブ装置2513と入力装置2515とネットワークに接続するための通信制御部2517とがバス2519で接続されている。オペレーティング・システム(OS:Operating System)及び本実施例における処理を実施するためのアプリケーション・プログラムは、HDD2505に格納されており、CPU2503により実行される際にはHDD2505からメモリ2501に読み出される。CPU2503は、アプリケーション・プログラムの処理内容に応じて表示制御部2507、通信制御部2517、ドライブ装置2513を制御して、所定の動作を行わせる。また、処理途中のデータについては、主としてメモリ2501に格納されるが、HDD2505に格納されるようにしてもよい。本技術の実施例では、上で述べた処理を実施するためのアプリケーション・プログラムはコンピュータ読み取り可能なリムーバブル・ディスク2511に格納されて頒布され、ドライブ装置2513からHDD2505にインストールされる。インターネットなどのネットワーク及び通信制御部2517を経由して、HDD2505にインストールされる場合もある。このようなコンピュータ装置は、上で述べたCPU2503、メモリ2501などのハードウエアとOS及びアプリケーション・プログラムなどのプログラムとが有機的に協働することにより、上で述べたような各種機能を実現する。
以上述べた本実施の形態をまとめると、以下のようになる。
本実施の形態の第1の態様に係るマスク行列更新方法は、(A)被マスク行列をマスクするための、データ格納部に格納されたマスク行列の更新タイミングを検出し、(B)マスク行列の行又は列単位の所定の更新演算式に従った演算を、マスク行列における行又は列方向にサイクリックに行うことで、新たなマスク行列を生成し、データ格納部に格納する処理を含む。このようにすれば、更新後のマスク行列を配布せずに済むので、低コストでマスク行列を更新できるようになる。
また、上で述べた更新タイミングが、時間、他のコンピュータからの指示、又はコンピュータにおいて実施された他の所定の処理の開始又は終了である場合もある。様々な実装方法に対応できる。
また、上で述べた更新タイミング毎に、上記所定の更新演算式が変更されるようにしても良い。秘匿化のレベルが向上する。
さらに、上で述べた所定の更新演算式が、他のコンピュータから通知されるか、予め定められている複数の更新演算式から予め定められている順番にて選定される場合もある。更新演算式を切り替えて用いるようにすれば、秘匿化のレベルが向上する。
さらに、上で述べた所定の更新演算式が、複数の行又は列の和又は差、又は第1の行又は列と第1の係数との第1の積と第2の行又は列と第2の係数との第2の積との和を含むようにしても良い。マスク行列の性質に基づく演算内容である。
さらに、上で述べた所定の更新演算式が、第1の行又は列と第1の係数との第1の積と第2の行又は列と第2の係数との第2の積と第3の行又は列と第3の係数との第3の積との和である場合もある。マスク行列が0ベクトルを追加することで拡張された場合には、マスク行列における1行又は1列がゼロとなっているが、このような演算式であれば、適切に更新される。
また、上で述べたマスク行列が、(a)複数の第1のマスク行列と補助行列との和により得られる行列における各行及び各列についての成分の総和がゼロとなるという性質を有する複数の第1のマスク行列のうちの1つの第1のマスク行列であるか、(b)複数の第2のマスク行列の総和における各行及び各列についての成分の総和がゼロとなるという性質を有する複数の第2のマスク行列のうちの1つの第2のマスク行列である場合もある。このようなマスク行列の性質は、秘匿集計で有用である。
さらに、上で述べた補助行列の行又は列単位の所定の更新演算式に従った演算を、補助行列における行又は列方向にサイクリックに行うことで、新たな補助行列を生成する処理をさらに含むようにしても良い。補助行列を用いる場合にも、同様の更新演算式を用いて更新を行えば、補助行列を配布するコストを下げることができる。
また、本実施の形態の第2の態様に係るマスク行列拡張方法は、(C)被マスク行列をマスクするための、データ格納部に格納されたマスク行列の拡張タイミングを検出し、(D)マスク行列の行又は列単位の所定の拡張演算式に従った演算をマスク行列における行又は列方向に行うことでマスク行列の新たな行又は列を生成し、マスク行列に付加することで新たなマスク行列を生成し、データ格納部に格納する処理を含む。このようにすれば、行列の拡張であっても、低コストでマスク行列を拡張できる。
また、上で述べた所定の拡張演算式が、マスク行列における第1の行又は列と第2の行又は列との和又は差を含むようにしても良い。
さらに、上で述べた格納する処理が、第1の行又は列と第2の行又は列との和を、マスク行列における第1及び第2の行又は列以外の行又は列から行又は列単位で差し引くようにしても良い。このようにすれば、マスク行列内における調整がなされることになる。
さらに、上で述べたマスク行列が、(a)複数の第1のマスク行列と補助行列との和により得られる行列における各行及び各列についての成分の総和がゼロとなるという性質を有する複数の第1のマスク行列のうちの1つの第1のマスク行列であるか、(b)複数の第2のマスク行列の総和における各行及び各列についての成分の総和がゼロとなるという性質を有する複数の第2のマスク行列のうちの1つの第2のマスク行列であることもある。秘匿集計で有用なマスク行列の性質を表すものである。
また、補助行列の行又は列単位の所定の拡張演算式に従った演算を補助行列における行又は列方向に行うことで補助行列の新たな行又は列を生成する処理をさらに含むようにしても良い。拡張演算式によっては、これだけでなく調整ベクトルを用いて調整を行うことになる場合もある。
なお、上で述べたような処理をコンピュータに実施させるためのプログラムを作成することができ、当該プログラムは、例えばフレキシブル・ディスク、CD−ROMなどの光ディスク、光磁気ディスク、半導体メモリ(例えばROM)、ハードディスク等のコンピュータ読み取り可能な記憶媒体又は記憶装置に格納される。なお、処理途中のデータについては、RAM等の記憶装置に一時保管される。
以上の実施例を含む実施形態に関し、さらに以下の付記を開示する。
(付記1)
被マスク行列をマスクするための、データ格納部に格納されたマスク行列の更新タイミングを検出し、
前記マスク行列の行又は列単位の所定の更新演算式に従った演算を、前記マスク行列における行又は列方向にサイクリックに行うことで、新たなマスク行列を生成し、前記データ格納部に格納する
処理を含み、コンピュータにより実行されるマスク行列更新方法。
(付記2)
前記更新タイミングが、時間、他のコンピュータからの指示、又は前記コンピュータにおいて実施された他の所定の処理の開始又は終了である
付記1記載のマスク行列更新方法。
(付記3)
前記更新タイミング毎に、前記所定の更新演算式が変更される
付記1又は2記載のマスク行列更新方法。
(付記4)
前記所定の更新演算式が、他のコンピュータから通知されるか、予め定められている複数の更新演算式から予め定められている順番にて選定される
付記1乃至3のいずれか1つ記載のマスク行列更新方法。
(付記5)
前記所定の更新演算式が、複数の行又は列の和又は差、又は第1の行又は列と第1の係数との第1の積と第2の行又は列と第2の係数との第2の積との和を含む
付記1乃至4のいずれか1つ記載のマスク行列更新方法。
(付記6)
前記所定の更新演算式が、第1の行又は列と第1の係数との第1の積と第2の行又は列と第2の係数との第2の積と第3の行又は列と第3の係数との第3の積との和である
付記1乃至4のいずれか1つ記載のマスク行列更新方法。
(付記7)
前記マスク行列が、
複数の第1のマスク行列と補助行列との和により得られる行列における各行及び各列についての成分の総和がゼロとなるという性質を有する前記複数の第1のマスク行列のうちの1つの第1のマスク行列であるか、
複数の第2のマスク行列の総和における各行及び各列についての成分の総和がゼロとなるという性質を有する前記複数の第2のマスク行列のうちの1つの第2のマスク行列である、
付記1乃至6のいずれか1つ記載のマスク行列更新方法。
(付記8)
前記補助行列の行又は列単位の前記所定の更新演算式に従った演算を、前記補助行列における行又は列方向にサイクリックに行うことで、新たな補助行列を生成する処理
をさらに含む、請求項7記載のマスク行列更新方法。
(付記9)
被マスク行列をマスクするための、データ格納部に格納されたマスク行列の拡張タイミングを検出し、
前記マスク行列の行又は列単位の所定の拡張演算式に従った演算を前記マスク行列における行又は列方向に行うことで前記マスク行列の新たな行又は列を生成し、前記マスク行列に付加することで新たなマスク行列を生成し、前記データ格納部に格納する
処理を含み、コンピュータにより実行されるマスク行列拡張方法。
(付記10)
前記所定の拡張演算式が、前記マスク行列における第1の行又は列と第2の行又は列との和又は差を含む
付記9記載のマスク行列拡張方法。
(付記11)
前記格納する処理が、
前記第1の行又は列と前記第2の行又は列との和を、前記マスク行列における前記第1及び第2の行又は列以外の行又は列から行又は列単位で差し引く
処理を含む付記10記載のマスク行列拡張方法。
(付記12)
前記マスク行列が、
複数の第1のマスク行列と補助行列との和により得られる行列における各行及び各列についての成分の総和がゼロとなるという性質を有する前記複数の第1のマスク行列のうちの1つの第1のマスク行列であるか、
複数の第2のマスク行列の総和における各行及び各列についての成分の総和がゼロとなるという性質を有する前記複数の第2のマスク行列のうちの1つの第2のマスク行列である、
付記9乃至11のいずれか1つ記載のマスク行列拡張方法。
(付記13)
前記補助行列の行又は列単位の前記所定の拡張演算式に従った演算を前記補助行列における行又は列方向に行うことで前記補助行列の新たな行又は列を生成する処理
をさらに含む、付記12記載のマスク行列拡張方法。
(付記14)
被マスク行列をマスクするための、データ格納部に格納されたマスク行列の更新タイミングを検出し、
前記マスク行列の行又は列単位の所定の更新演算式に従った演算を、前記マスク行列における行又は列方向にサイクリックに行うことで、新たなマスク行列を生成し、前記データ格納部に格納する
処理を、コンピュータに実行させるためのマスク行列更新プログラム。
(付記15)
被マスク行列をマスクするための、データ格納部に格納されたマスク行列の拡張タイミングを検出し、
前記マスク行列の行又は列単位の所定の拡張演算式に従った演算を前記マスク行列における行又は列方向に行うことで前記マスク行列の新たな行又は列を生成し、前記マスク行列に付加することで新たなマスク行列を生成し、前記データ格納部に格納する
処理を、コンピュータに実行させるためのマスク行列拡張プログラム。
(付記16)
被マスク行列をマスクするための、データ格納部に格納されたマスク行列の更新タイミングを検出する検出部と、
前記マスク行列の行又は列単位の所定の更新演算式に従った演算を、前記マスク行列における行又は列方向にサイクリックに行うことで、新たなマスク行列を生成し、前記データ格納部に格納する生成部と、
を有する情報処理装置。
(付記17)
被マスク行列をマスクするための、データ格納部に格納されたマスク行列の拡張タイミングを検出する検出部と、
前記マスク行列の行又は列単位の所定の拡張演算式に従った演算を前記マスク行列における行又は列方向に行うことで前記マスク行列の新たな行又は列を生成し、前記マスク行列に付加することで新たなマスク行列を生成し、前記データ格納部に格納する生成部と、
を有する情報処理装置。
1 ネットワーク
3 マスタサーバ
5 情報提供者装置
7 集計者サーバ
9 ユーザサーバ

Claims (15)

  1. 複数の第1のマスク行列と補助行列との和により得られる行列における各行についての成分の総和及び各列についての成分の総和がゼロとなるという第1の性質を有する前記複数の第1のマスク行列のうちの1つの第1のマスク行列であるか、または、複数の第2のマスク行列の総和における各行についての成分の総和及び各列についての成分の総和がゼロとなるという第2の性質を有する前記複数の第2のマスク行列のうちの1つの第2のマスク行列であり、被マスク行列をマスクするためのマスク行列を更新するマスク行列更新方法であって、
    ータ格納部に格納された前記マスク行列の更新タイミングを検出し、
    前記マスク行列の行又は列単位の更新演算式であって更新後も前記第1の性質又は前記第2の性質を維持するように予め定められた更新演算式に従った演算を、前記マスク行列における行又は列方向行うことで、新たなマスク行列を生成し、前記データ格納部に格納する
    処理を含み、コンピュータにより実行されるマスク行列更新方法。
  2. 前記更新タイミングが、所定の時刻、他のコンピュータからの指示、又は前記コンピュータにおいて実施された他の所定の処理の開始又は終了である
    請求項1記載のマスク行列更新方法。
  3. 前記更新タイミング毎に、前記新演算式が変更される
    請求項1又は2記載のマスク行列更新方法。
  4. 前記新演算式が、他のコンピュータから通知されるか、予め定められている複数の更新演算式から予め定められている順番にて選定される
    請求項1乃至3のいずれか1つ記載のマスク行列更新方法。
  5. 前記新演算式が、複数の行又は列の和又は差、若しくは第1の行又は列と第1の係数との第1の積と第2の行又は列と第2の係数との第2の積との和を含む
    請求項1乃至4のいずれか1つ記載のマスク行列更新方法。
  6. 前記新演算式が、第1の行又は列と第1の係数との第1の積と第2の行又は列と第2の係数との第2の積と第3の行又は列と第3の係数との第3の積との和である
    請求項1乃至4のいずれか1つ記載のマスク行列更新方法。
  7. 前記マスク行列が前記複数の第1のマスク行列のうちの1つの第1のマスク行列である場合に、前記更新演算式に従った演算を、前記補助行列における行又は列方向行うことで、新たな補助行列を生成する処理
    をさらに含む、請求項記載のマスク行列更新方法。
  8. 複数の第1のマスク行列と補助行列との和により得られる行列における各行についての成分の総和及び各列についての成分の総和がゼロとなるという第1の性質を有する前記複数の第1のマスク行列のうちの1つの第1のマスク行列であるか、または、複数の第2のマスク行列の総和における各行についての成分の総和及び各列についての成分の総和がゼロとなるという第2の性質を有する前記複数の第2のマスク行列のうちの1つの第2のマスク行列であり、被マスク行列をマスクするためのマスク行列を拡張するマスク行列拡張方法であって、
    ータ格納部に格納された前記マスク行列の拡張タイミングを検出し、
    前記マスク行列の行又は列単位の拡張演算式であって拡張後も前記第1の性質又は前記第2の性質を維持するように予め定められた拡張演算式に従った演算を前記マスク行列における行又は列方向に行うことで前記マスク行列の新たな行又は列を生成し、前記マスク行列に付加することで新たなマスク行列を生成し、前記データ格納部に格納する
    処理を含み、コンピュータにより実行されるマスク行列拡張方法。
  9. 前記張演算式が、前記マスク行列における第1の行又は列と第2の行又は列との和又は差を含む
    請求項記載のマスク行列拡張方法。
  10. 前記格納する処理が、
    前記第1の行又は列と前記第2の行又は列との和を、前記マスク行列における前記第1及び第2の行又は列以外の行又は列から行又は列単位で差し引く
    処理を含む請求項記載のマスク行列拡張方法。
  11. 前記マスク行列が前記複数の第1のマスク行列のうちの1つの第1のマスク行列である場合に、前記拡張演算式に従った演算を前記補助行列における行又は列方向に行うことで前記補助行列の新たな行又は列を生成する処理
    をさらに含む、請求項記載のマスク行列拡張方法。
  12. 複数の第1のマスク行列と補助行列との和により得られる行列における各行についての成分の総和及び各列についての成分の総和がゼロとなるという第1の性質を有する前記複数の第1のマスク行列のうちの1つの第1のマスク行列であるか、または、複数の第2のマスク行列の総和における各行についての成分の総和及び各列についての成分の総和がゼロとなるという第2の性質を有する前記複数の第2のマスク行列のうちの1つの第2のマスク行列であり、被マスク行列をマスクするためのマスク行列を更新するためのマスク行列更新プログラムであって、
    ータ格納部に格納された前記マスク行列の更新タイミングを検出し、
    前記マスク行列の行又は列単位の更新演算式であって更新後も前記第1の性質又は前記第2の性質を維持するように予め定められた更新演算式に従った演算を、前記マスク行列における行又は列方向行うことで、新たなマスク行列を生成し、前記データ格納部に格納する
    処理を、コンピュータに実行させるためのマスク行列更新プログラム。
  13. 複数の第1のマスク行列と補助行列との和により得られる行列における各行についての成分の総和及び各列についての成分の総和がゼロとなるという第1の性質を有する前記複数の第1のマスク行列のうちの1つの第1のマスク行列であるか、または、複数の第2のマスク行列の総和における各行についての成分の総和及び各列についての成分の総和がゼロとなるという第2の性質を有する前記複数の第2のマスク行列のうちの1つの第2のマスク行列であり、被マスク行列をマスクするためのマスク行列を拡張するためのマスク行列拡張プログラムであって、
    ータ格納部に格納された前記マスク行列の拡張タイミングを検出し、
    前記マスク行列の行又は列単位の拡張演算式であって拡張後も前記第1の性質又は前記第2の性質を維持するように予め定められた拡張演算式に従った演算を前記マスク行列における行又は列方向に行うことで前記マスク行列の新たな行又は列を生成し、前記マスク行列に付加することで新たなマスク行列を生成し、前記データ格納部に格納する
    処理を、コンピュータに実行させるためのマスク行列拡張プログラム。
  14. 複数の第1のマスク行列と補助行列との和により得られる行列における各行についての成分の総和及び各列についての成分の総和がゼロとなるという第1の性質を有する前記複数の第1のマスク行列のうちの1つの第1のマスク行列であるか、または、複数の第2のマスク行列の総和における各行についての成分の総和及び各列についての成分の総和がゼロとなるという第2の性質を有する前記複数の第2のマスク行列のうちの1つの第2のマスク行列であり、被マスク行列をマスクするためのマスク行列を更新する情報処理装置であって、
    ータ格納部に格納された前記マスク行列の更新タイミングを検出する検出部と、
    前記マスク行列の行又は列単位の更新演算式であって更新後も前記第1の性質又は前記第2の性質を維持するように予め定められた更新演算式に従った演算を、前記マスク行列における行又は列方向行うことで、新たなマスク行列を生成し、前記データ格納部に格納する生成部と、
    を有する情報処理装置。
  15. 複数の第1のマスク行列と補助行列との和により得られる行列における各行についての成分の総和及び各列についての成分の総和がゼロとなるという第1の性質を有する前記複数の第1のマスク行列のうちの1つの第1のマスク行列であるか、または、複数の第2のマスク行列の総和における各行についての成分の総和及び各列についての成分の総和がゼロとなるという第2の性質を有する前記複数の第2のマスク行列のうちの1つの第2のマスク行列であり、被マスク行列をマスクするためのマスク行列を拡張する情報処理装置であって、
    ータ格納部に格納された前記マスク行列の拡張タイミングを検出する検出部と、
    前記マスク行列の行又は列単位の拡張演算式であって拡張後も前記第1の性質又は前記第2の性質を維持するように予め定められた拡張演算式に従った演算を前記マスク行列における行又は列方向に行うことで前記マスク行列の新たな行又は列を生成し、前記マスク行列に付加することで新たなマスク行列を生成し、前記データ格納部に格納する生成部と、
    を有する情報処理装置。
JP2013003627A 2013-01-11 2013-01-11 行列更新方法、プログラム及び装置、並びに行列拡張方法、プログラム及び装置 Expired - Fee Related JP6032019B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2013003627A JP6032019B2 (ja) 2013-01-11 2013-01-11 行列更新方法、プログラム及び装置、並びに行列拡張方法、プログラム及び装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013003627A JP6032019B2 (ja) 2013-01-11 2013-01-11 行列更新方法、プログラム及び装置、並びに行列拡張方法、プログラム及び装置

Publications (2)

Publication Number Publication Date
JP2014134732A JP2014134732A (ja) 2014-07-24
JP6032019B2 true JP6032019B2 (ja) 2016-11-24

Family

ID=51413024

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013003627A Expired - Fee Related JP6032019B2 (ja) 2013-01-11 2013-01-11 行列更新方法、プログラム及び装置、並びに行列拡張方法、プログラム及び装置

Country Status (1)

Country Link
JP (1) JP6032019B2 (ja)

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7561307B2 (en) * 2005-02-14 2009-07-14 Seiko Epson Corporation Image processing method and device using dither matrixes with size and density being inversely related to a unit images distance to the center of the dither matrix
CN102577387B (zh) * 2009-10-30 2015-01-14 松下电器(美国)知识产权公司 解码方法、解码装置、编码方法以及编码装置
JP2012083536A (ja) * 2010-10-12 2012-04-26 Fujitsu Ltd 情報処理装置及び方法

Also Published As

Publication number Publication date
JP2014134732A (ja) 2014-07-24

Similar Documents

Publication Publication Date Title
Wang et al. Blockchain-based fair payment smart contract for public cloud storage auditing
JP6034927B1 (ja) 秘密計算システム、秘密計算装置、およびプログラム
Alessandri et al. Design of state estimators for uncertain linear systems using quadratic boundedness
US20160012238A1 (en) A method and system for privacy-preserving recommendation to rating contributing users based on matrix factorization
Yang et al. Synchronization of coupled neural networks with random coupling strengths and mixed probabilistic time‐varying delays
KR20160041028A (ko) 프라이버시 보호 행렬 분해를 위한 방법 및 시스템
Delshad et al. Synchronization of N-coupled incommensurate fractional-order chaotic systems with ring connection
US20220004815A1 (en) Learning system, learning method, and computer program product
US10950144B2 (en) Secret falsification detecting system, secret computation apparatus, secret falsification detecting method, and program
CN110460435B (zh) 数据交互方法、装置、服务器和电子设备
Kibangou Step-size sequence design for finite-time average consensus in secure wireless sensor networks
CN108028751B (zh) 用于移动主动秘密共享的系统、计算机可读介质和方法
Soriano-Sánchez et al. Coupling strength computation for chaotic synchronization of complex networks with multi-scroll attractors
Liu Modifications of steepest descent method and conjugate gradient method against noise for ill-posed linear systems
CN114691167A (zh) 机器学习模型更新的方法和装置
JP7471425B2 (ja) 秘密共有を使用するフィードバックコントローラ
US20100205075A1 (en) Large-scale item affinity determination using a map reduce platform
TWI652621B (zh) 產生虛擬機器訊息佇列應用程式之相依關係的方法與系統
JP6032019B2 (ja) 行列更新方法、プログラム及び装置、並びに行列拡張方法、プログラム及び装置
JP5655718B2 (ja) 変換処理方法、装置及びプログラム、復元処理方法、装置及びプログラム
US20160342899A1 (en) Collaborative filtering in directed graph
JP2012195733A (ja) 秘匿分析処理方法、プログラム及び装置
JP6972783B2 (ja) 分散システム、バックエンドサービス、エッジサーバ、及びその方法
JP2012083536A (ja) 情報処理装置及び方法
CN111492392B (zh) 用于更新客户端-项目矩阵的客户端、服务器和客户端-服务器系统

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20150903

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20160624

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160726

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160905

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20160927

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20161010

R150 Certificate of patent or registration of utility model

Ref document number: 6032019

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees