JP2012083536A - 情報処理装置及び方法 - Google Patents

情報処理装置及び方法 Download PDF

Info

Publication number
JP2012083536A
JP2012083536A JP2010229458A JP2010229458A JP2012083536A JP 2012083536 A JP2012083536 A JP 2012083536A JP 2010229458 A JP2010229458 A JP 2010229458A JP 2010229458 A JP2010229458 A JP 2010229458A JP 2012083536 A JP2012083536 A JP 2012083536A
Authority
JP
Japan
Prior art keywords
matrix
mask
computer
storage unit
stored
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.)
Pending
Application number
JP2010229458A
Other languages
English (en)
Inventor
Hiroshi Tsuda
宏 津田
Koichi Ito
孝一 伊藤
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 JP2010229458A priority Critical patent/JP2012083536A/ja
Publication of JP2012083536A publication Critical patent/JP2012083536A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Storage Device Security (AREA)

Abstract

【課題】オープンな環境においてデータベース内のデータを利用に適した形で適切に秘匿する。
【解決手段】本方法は、第1データ格納部に格納されている2次元以上のオリジナルマトリクスと同一形状のマスクマトリクスにおいて各次元方向についての集計結果が所定値になるようにマスクマトリクスにおける各要素のマスク値を生成するステップと、オリジナルマトリクスとマスクマトリクスとを加算して、マスク化マトリクスを生成するステップと、マスク化マトリクスを、複数のユーザのコンピュータからのデータを蓄積する第2のコンピュータに送信するステップとを含む。
【選択図】図2

Description

本技術は、データの秘匿化技術に関する。
例えば、各支店で各商品の月別売上表をサーバで共有し、本部の集計担当者が商品別集計、月別集計などを行うというようなケースを考える。例えば図1の左に示すように、支店Aでは、商品A、商品B及び商品Cの月毎の売上を表す売上表を有し、支店Bでは、同じく商品A、商品B及び商品Cの月毎の売上を表す売上表を有する。そして、図1の右に示すように、本部では、全ての支店に関して、商品A、商品B、商品Cそれぞれについての売上合計値、全商品についての月毎の売上合計値といった集計値を算出する。場合によっては、全売上高というような集計値を計算する場合もある。
このような場合に、各支店では細かい売上高を他の支店などに知らせたくなく、本部も細かい情報を把握できなくとも集計値を得られればよい、といった要望が出てくることがある。しかしながら、このような要望に十分対応できるような技術は存在しない。
例えば、データを秘匿化するために、データを暗号化してサーバに保持させるようなことも考えられる。しかし、第三者がこのデータを集計する場合には、結局復号化しなければならず、結果としてデータの中身そのものを第三者が見ることになってしまう。
また、暗号化したまま加算処理を行う準同型暗号方式も存在している。しかしながら、この方式を採用すると加算結果も同じキーで暗号化されてしまう。複数のユーザがクラウド上でデータを共有し、第三者が集計処理を行う場合、全ユーザと集計者がキーを共有することになり、結果としてデータの中身そのものも第三者は見ることができるようになってしまう。
さらに、元データにノイズ(すなわち乱数)を加えることで、元データを秘匿しつつ、統計的にある程度の精度でクロス集計を可能にするという技術も存在している。このような技術における集計システムでは、各ユーザに対して、指定したパラメータ(具体的には維持確率)を与えて値をランダム化させた上で集計を行い、この集計値から真の集計値を統計的に推定するというものである。但し、この方法は、以下のような問題を有している。すなわち、元データに対してノイズが小さいと元データのおおよその値がわかってしまう。また集計値が近似値である。さらに、クラウド側で集計処理の後統計的推定処理という別の処理を行うことになる。特に、クラウド上の他社サービスに独自機能を追加することは難しい場合があり、実用上は問題となることがある。
特開2010−108488
Paillier, P., Public-Key Cryptosystems Based on Composite Degree Residuosity Classes, Proc. Eurocrypt 99, pp.223-238, 1999.
従って、本技術の目的は、一側面として、オープンな環境においてデータベース内のデータを利用に適した形で適切に秘匿するための技術を提供することである。
第1の態様に係る情報処理方法は、(A)第1のデータ格納部に格納されている2次元以上のオリジナルマトリクスと同一形状のマスクマトリクスにおいて各次元方向についての集計結果が所定値になるようにマスクマトリクスにおける各要素のマスク値を生成し、記憶装置に格納するステップと、(B)第1のデータ格納部に格納されているオリジナルマトリクスと記憶装置に格納されているマスクマトリクスとを加算して、マスク化マトリクスを生成し、第2のデータ格納部に格納するステップと、(C)第2のデータ格納部に格納されているマスク化マトリクスを、複数のユーザのコンピュータからのデータを蓄積する第2のコンピュータに送信するステップとを含む。
第2の態様に係る情報処理方法は、(A)第1のデータ格納部に格納されている2次元以上のオリジナルマトリクスと同一形状のマスクマトリクスにおける各要素のマスク値を生成し、記憶装置に格納するステップと、(B)第1のデータ格納部に格納されているオリジナルマトリクスと記憶装置に格納されているマスクマトリクスとを加算してマスク化マトリクスを生成し、第2のデータ格納部に格納するステップと、(C)第2のデータ格納部に格納されているマスク化マトリクスを、複数のユーザのコンピュータからのデータを蓄積する第2のコンピュータに送信するステップと、(D)記憶装置に格納されているマスクマトリクスにおいて各次元方向についての集計を実施し、当該集計の結果に基づく値を複数のユーザのうちいずれかのユーザのコンピュータ又は第2のコンピュータに蓄積されたデータを利用する第3のコンピュータに送信する通知ステップとを含む。
第3の態様に係る情報処理方法は、(A)第2のコンピュータから、第1のデータ格納部に格納されている2次元以上のオリジナルマトリクスと同一形状のマスクマトリクスを受信し、記憶装置に格納するステップと、(B)第1のデータ格納部に格納されているオリジナルマトリクスと記憶装置に格納されているマスクマトリクスとを加算して、マスク化マトリクスを生成し、第2のデータ格納部に格納するステップと、(C)第2のデータ格納部に格納されているマスク化マトリクスを、複数のユーザのコンピュータからのデータを蓄積する第3のコンピュータに送信するステップとを含む。そして、マスクマトリクスが、各次元方向についての集計結果が0となっている復号マトリクスを複数のユーザに対して分解することで得られるマトリクスである。
オープンな環境においてデータベース内のデータを利用に適した形で適切に秘匿できるようになる。
図1は、従来技術の問題を説明するための図である。 図2は、実施の形態におけるシステム構成の一例を示す図である。 図3は、第1の実施の形態に係る本部コンピュータの機能ブロック図である。 図4は、第1の実施の形態に係る支店コンピュータの機能ブロック図である。 図5は、第1の実施の形態の概要を説明するための図である。 図6は、第1の実施の形態の概要を説明するための図である。 図7は、第1の実施の形態の処理フローを示す図である。 図8は、マスク生成処理の処理フローを示す図である。 図9は、マスク生成処理の概要を説明するための図である。 図10は、更新処理の処理フローを示す図である。 図11は、第2の実施の形態の処理フローを示す図である。 図12は、第3の実施の形態に係る支店コンピュータの機能ブロック図である。 図13は、第3の実施の形態に係る処理フローを示す図である。 図14は、第3の実施の形態に係る処理フローを示す図である。 図15は、第4の実施の形態に係る本部コンピュータの機能ブロック図である。 図16は、第4の実施の形態の処理フローを示す図である。 図17は、第5の実施の形態に係るマスクマトリクスを説明するための図である。 図18は、第5の実施の形態に係る集計キーを説明するための図である。 図19は、第6の実施の形態に係る本部コンピュータの機能ブロック図である。 図20は、第6の実施の形態に係る支店コンピュータの機能ブロック図である。 図21は、第6の実施の形態に係る処理フローを示す図である。 図22は、第6の実施の形態を説明するための図である。 図23は、第6の実施の形態に係る処理フローを示す図である。 図24は、第7の実施の形態を説明するための図である。 図25は、第7の実施の形態に係る処理フローを示す図である。 図26は、第7の実施の形態に係る処理フローを示す図である。 図27は、第7の実施の形態に係る処理フローを示す図である。 図28は、コンピュータの機能ブロック図である。
[実施の形態1]
図2に本実施の形態に係るシステム構成例を示す。例えばインターネットであるネットワーク1には、クラウドシステム3と、本部コンピュータ9と、複数の支店コンピュータ5及び7とが接続されている。支店コンピュータ5及び7の台数は、2台以上の任意の台数でよい。
クラウドシステム3は、秘匿化されたデータを格納する秘匿情報データベース(DB)33を有しており、秘匿情報DB33に対してデータ登録及び更新処理等を実施するデータ登録部31と、秘匿情報DB33に対する各種集計処理を実施する集計処理部35と、集計処理部35による処理結果等を格納するデータ格納部37とを有する。また、集計処理部35は、他のコンピュータから集計要求等を受信し、処理結果を要求元のコンピュータに送信する処理も行う。
図3に、本部コンピュータ9の機能ブロック図を示す。本部コンピュータ9は、集計キー生成部91と、集計キー格納部92と、集計キー配布処理部93と、出力処理部94と、集計データ格納部95と、要求処理部96と、データ格納部97とを有する。
集計キー生成部91は、例えば管理者などの指示に応じて集計キーを生成し、集計キー格納部92に格納する。集計キー配布処理部93は、データ格納部97に格納されているデータに基づき支店コンピュータ5及び7に対して集計キーを配布する処理を実施する。また、要求処理部96は、本部担当者等からの指示に応じて、クラウドシステム3から集計データ等を取得して、集計データ等を集計データ格納部95に格納する。出力処理部94は、集計データ格納部95に格納されているデータを出力する処理を実施したり、集計キー格納部92に格納されている集計キーを用いて集計データを処理して出力データを生成し、出力する処理を実施する。
また、図4に支店コンピュータ5の機能ブロック図を示す。支店コンピュータ5は、集計キー取得部51と、集計キー格納部52と、マスク生成部53と、マスク格納部54と、オリジナルデータ取得部55と、オリジナルデータ格納部56と、マスク処理部57と、マスク化データ格納部58と、データ送信部59と、データ取得部60と、受信データ格納部61と、アンマスク処理部62と、アンマスク化データ格納部63と、アンマスク化データ出力部64とを有する。
集計キー取得部51は、例えば本部コンピュータ9から集計キーを取得し、集計キー格納部52に格納する。マスク生成部53は、集計キー格納部52からマスクを生成し、マスク格納部54に格納する。オリジナルデータ取得部55は、支店担当者などからオリジナルデータを取得し、オリジナルデータ格納部56に格納する。マスク処理部57は、マスク格納部54に格納されているマスクを用いてオリジナルデータ格納部56に格納されているデータに対してマスク化処理を実施して、処理結果をマスク化データ格納部58に格納する。データ送信部59は、マスク化データ格納部58に格納されているデータを、クラウドシステム3に送信する。データ取得部60は、例えばクラウドシステム3からマスク化データを取得し、受信データ格納部61に格納する。アンマスク処理部62は、受信データ格納部61に格納されているマスク化データを、マスク格納部54に格納されているマスクを用いてアンマスク化処理を実施し、アンマスク化データ格納部63に格納する。アンマスク化データ出力部64は、アンマスク化データ格納部63に格納されているデータを、支店の担当者等に出力する。
次に、図5及び図6を用いて、本実施の形態における処理の概要を説明する。本実施の形態では、図1を用いて説明したケースと同様に、各支店iでは、月別商品別の売上数のマトリクスOMi(すなわちオリジナルマトリクス)を保持しているものとする。そして、このオリジナルマトリクスと同一形状(次元数が同一で且つ各次元の要素数が同一)のマスクマトリクスMMiを加算することでオリジナルマトリクスにおける各要素の値をマスクする。但し、単純に乱数等でマスクマトリクスMMiの各要素の値を生成すると、全支店の集計を行う際に真の集計値を得ることができなくなる。そこで、マスクマトリクスMMiの制約条件として、集計キーを導入する。
例えば、各支店iにおいて、商品A乃至Dについて1月から6月までの売上数についてのオリジナルマトリクスOMiを保持していることを想定する。このような場合には、図5に示すようなマスクマトリクスMMiは、オリジナルマトリクスMMiと同一形状のマトリクスとなる。そして、集計キーは、マスクマトリクスMMiにおいて、横方向に要素の値を合計した値の1次元行列である集計キーTKHiと、縦方向に要素の値を合計した値の一次元行列である集計キーTKViとを含む。具体的には、集計キーTKHは、商品Aについて1月から6月までの売上数を合計した値と、商品Bについて1月から6月までの売上数を合計した値と、商品Cについて1月から6月までの売上数を合計した値と、商品Dについて1月から6月までの売上数を合計した値とを要素の値として含む。また、集計キーTKVは、1月における商品A乃至Dの売上数を合計した値と、2月における商品A乃至Dの売上数を合計した値と、3月における商品A乃至Dの売上数を合計した値と、4月における商品A乃至Dの売上数を合計した値と、5月における商品A乃至Dの売上数を合計した値と、6月における商品A乃至Dの売上数を合計した値とを、要素の値として含む。
実際には、集計キーTKHi及びTKViを与えて、集計キーTKHi及びTKViが得られるようにマスクマトリクスMMiの各要素の値を生成する。さらに、全ての支店についての集計キーTKHiを加算すると0となり、全ての支店についての集計キーTKViを加算すると0となるように、各支店のTKHi及びTKViを決定する。
例えば、集計キーTKH及びTKVの各要素に適切な値を設定することで決定する。例えば、支店番号が偶数であれば、その支店には集計キー+TKH及び+TKVを与え、支店番号が奇数であれば、その支店には集計キー−TKH及び−TKVを与える。支店数nが偶数であれば、このように割り当てることによって、全ての支店について集計キーTKH及びTKVを全て加算すると0となる。一方、支店数nが奇数であれば、支店番号nには集計キー−TKH及び−TKVを与え、支店番号(n−1)には集計キー+2TKH及び+2TKVを与え、支店番号(n−2)には集計キー−TKH及び−TKVを与え、支店番号(n−3)以下については支店数が偶数と同じように割り当てる。そうすれば、全ての支店について集計キーTKH及びTKVを加算すると0となる。なお、支店数nが奇数の場合には、本部などが、オリジナルマトリクスOMがゼロ行列となっている(n+1)番目のダミー支店として機能して、集計キー+TKH及び+THVを用いるようにしても、全支店について集計キーTHK及びTHVを加算すると0となる。
このような制約条件を満たすようなマスクマトリクスMMiをオリジナルマトリクスOMiに加算しておけば、マスクマトリクスMMiとオリジナルマトリクスOMiとの加算結果であるマスク化マトリクスMKMiを全て足し合わせた結果における縦方向の集計値及び横方向の集計値は、オリジナルマトリクスOMiを全て重ね合わせた結果における縦方向の集計値及び横方向の集計値になる。
図6に模式的に示すように、支店iの商品Aの1月の売上数をai1と表し、商品Bの1月の売上数をbi1と表すようにする。また、支店iのマスクマトリクスMMiにおいて商品Aの1月の売上数をマスクする要素値をmi11と表し、商品Bの1月の売上数をマスクする要素値をmi21と表すものとする。すなわち、mの下付けの数値のうち2番目の数値は商品Aであれば「1」により表し、商品Bであれば「2」により表し、商品Cであれば「3」により表し、商品Dであれば「4」により表すものとする。そして、マスク化マトリクスMKMiにおいて、商品Aの1月の売上数は、ai1+mi11というようにマスクされている。同様に、商品Bの1月の売上数は、bi1+mi21というようにマスクされている。
そして、全支店について、マスク化マトリクスMKMiを加算して、横方向に集計すると、商品Aについては、Σi,jij+Σi,ji1jとなる。jは月についてのパラメータである。しかしながら、Σi,ji1jは、マスクマトリクスMMiを全ての支店iについて加算してさらに商品Aについて行の要素値を全て加算したものであるから「0」となっている。すなわち、Σi,jijが、マスク化マトリクスMKMiの加算結果における商品Aについての集計値となるが、これはオリジナルマトリクスOMiの加算結果における商品Aについての集計値と一致する。
同様に、全支店について、マスク化マトリクスMKMiを加算して、縦方向に集計すると、1月については、Σii1+Σii1+Σii1+Σii1+Σi,kik1となる。kは商品についてのパラメータである。しかしながら、Σi,kik1は、マスクマトリクスMMiを全ての支店iについて加算してさらに1月について列の要素値を全て加算したものであるから「0」となっている。すなわち、Σii1+Σii1+Σii1+Σii1が、マスク化マトリクスMKMiの加算結果における1月についての集計値となるが、これはオリジナルマトリクスOMiの加算結果における1月についての集計値と一致する。
このように、上でも述べたようにマスクマトリクスMMiにおける縦方向の集計値及び横方向の集計値、すなわち集計キーは、全支店について加算すれば0となっているため、集計処理の際にはマスクマトリクスMMiによるマスクの効果が相殺される。
このような処理の概要を実現するための処理について図7乃至図10を用いて説明する。なお、本部コンピュータ9の集計キー生成部91は、本実施の形態では、乱数等によってランダムな集計キーTK(TKHとTKVとをまとめてTKと表すものとする。)を生成し、集計キー格納部92に格納しておく。
また、データ格納部97には、支店コンピュータ5及び7の支店番号及びアドレス等を格納しておくものとする。
本部コンピュータの集計キー配布処理部93は、データ格納部97に格納されている、各支店コンピュータのアドレス宛に、当該支店コンピュータのための集計キーTKを送信する(図7:ステップS1)。上でも述べたように、支店番号が偶数であれば、その支店には集計キー+TKH及び+TKVを配布し、支店番号が奇数であれば、その支店には集計キー−TKH及び−TKVを配布する。支店数が奇数であれば、上で述べたようにさらに調整が行われる支店もある。各支店コンピュータの集計キー取得部51は、本部コンピュータ9から集計キーTKを受信し、集計キー格納部52に格納する(ステップS3)。
次に、マスク生成部53は、集計キー格納部52に格納されている集計キーからマスクキーを生成するマスク生成処理を実施する(ステップS5)。このマスク生成処理については、図8を用いて説明する。
なお、ここでは、オリジナルマトリクスOMは、M×Nの2次元マトリクスであるものとする。
マスク生成部53は、i=1乃至N−1及びj=1乃至M−1について、乱数を発生して、マスクマトリクスMMであるa(i,j)に設定する(ステップS31)。図9に模式的に示すように、ここでは最後の1行及び1列以外の部分については、乱数によって要素値を決定する。
そして、マスク生成部53は、集計キー格納部52から縦方向の集計結果に対応する集計キーTKV(j)を読み出し(ステップS33)、j=1乃至M−1に対して、未設定のマスクMM(N,j)を以下のように設定する(ステップS35)。具体的には以下のとおりである。
MM(N,j)=TKV(j)−ΣpMM(p,j)
Σはp=1乃至M−1についての加算を表している。
さらに、マスク生成部53は、集計キー格納部52から横方向の集計値に対応する集計キーTKH(i)を読み出し(ステップS37)、i=1乃至Nに対して、未設定のマスクMM(i,M)を、以下のように設定する(ステップS39)。
なお、TKHの要素値の合計とTKVの要素値の合計とは同一であるため、このような処理フローでTKHとTKVの制約条件を満たすマスクマトリクスを生成できる。
a(i,M)=TKH(i)−Σqa(i,q)
Σはq=1乃至Nについての加算を表している。そして元の処理に戻る。なお、マスクa(i,j)についてはマスク格納部54に格納される。
このように、最後の1行及び1列で、集計キーTKH及びTKVとの差を調整する例を示したが、他の1行及び1列で、集計キーTKH及びTKVとの差を調整するようにしても良い。また、1行及び1列ではなく、2以上の行及び列で、集計キーTKH及びTKVとの差を調整するようにしてもよい。例えば2行及び2列で調整を行う場合には、TKH及びTKVとの差を1/2ずつ調整するようにしてもよい。その他の手法でマスクマトリクスMMを生成しても良い。
図7の処理に戻って、マスク処理部57は、オリジナルデータ格納部56に格納されているオリジナルマトリクスOM(オリジナルデータとも呼ぶ)に、マスク格納部54に格納されているマスクマトリクスMMを適用し、マスク化マトリクスMKM(マスク化データとも呼ぶ)を生成し、マスク化データ格納部58に格納する(ステップS7)。具体的には、オリジナルマトリクスOM+マスクマトリクスMMという行列の加算を行う。
そして、データ送信部59は、マスク化データ格納部58に格納されているマスク化マトリクスMKMをクラウドシステム3に送信する(ステップS9)。なお、オリジナルマトリクスOMについては、支店担当者等からの指示によりオリジナルデータ取得部55が支店の他のコンピュータなどから取得して、オリジナルデータ格納部56に格納する。支店コンピュータ5及び7で生成したオリジナルマトリクスOMであってもよい。
また、データ秘匿のため、マスク処理部57は、オリジナルデータ格納部56に格納されているオリジナルマトリクスOMを破棄し、データ送信部59は、マスク化データ格納部58に格納されているマスク化マトリクスMKMを破棄する(ステップS11)。
クラウドシステム3のデータ登録部31は、支店コンピュータからマスク化マトリクスMKMを受信し、例えば支店番号等と対応付けて秘匿情報DB33に登録する(ステップS13)。
このような処理を、集計キーを配布した全ての支店コンピュータについて実施すれば、集計キーを配布した全ての支店についてのデータが秘匿情報DB33に登録されたことになる。
その後任意のタイミングで、本部コンピュータ9は、本部集計担当者からの集計指示を受け付け、本部コンピュータ9の要求処理部96は、集計要求をクラウドシステム3に送信する(ステップS15)。なお、特定の行、特定の列、行のみ、列のみなど集計の種類を指示するようにしても良い。
クラウドシステム3の集計処理部35は、本部コンピュータ9から集計要求を受信し、データ格納部37に格納する(ステップS17)。そして、集計処理部35は、集計要求に従って指定の集計処理を実施し、集計結果をデータ格納部37に格納する(ステップS19)。集計処理の具体的な処理については従来技術であるので、ここでは詳細に説明しない。但し、特定の行番号を指定して行方向(列番号を変動させる)に集計を行う処理、特定の列番号を指定して列方向(行番号を変動させる)に集計を行う処理、各行番号について行方向に集計を行う処理、各列番号について列方向に集計を行う処理などを行う。
上でも述べたように、マスク化マトリクスMKMについてこのような集計処理を行ったとしてもマスクは相殺し合って、集計結果自体は真の値となる。すなわち、クラウドシステム3の集計処理部35は特別な処理を行わないでも良い。
そして、集計処理部35は、データ格納部37に格納された集計結果を本部コンピュータ9に送信する(ステップS21)。本部コンピュータ9の要求処理部96は、クラウドシステム3から集計結果を受信し、集計データ格納部95に格納する(ステップS23)。そして、出力処理部94は、本実施の形態では特別な処理を行わずに、出力装置(例えば表示装置、プリンタ)又は他のコンピュータに、集計データ格納部95に格納されている集計結果を出力する(ステップS25)。
このように集計処理の段階では特別な処理を行わずに真の集計結果を得ることができるようになる。
次に、各支店がオリジナルマトリクスOMを更新する場合の処理について説明する。支店コンピュータのデータ取得部60は、支店担当者等からの指示に応じて、当該支店のマスク化マトリクスの要求をクラウドシステム3に送信する(ステップS41)。クラウドシステム3のデータ登録部31は、支店コンピュータから当該支店のマスク化マトリクスの要求を受信し(ステップS43)、秘匿情報DB33から該当する支店番号に対応付けられているマスク化マトリクスを抽出し、要求元の支店コンピュータに送信する(ステップS45)。支店コンピュータのデータ取得部60は、クラウドシステム3からマスク化マトリクスのデータを受信し、受信データ格納部61に格納する(ステップS47)。
支店コンピュータのアンマスク処理部62は、マスク格納部54に格納されているマスクマトリクスMMを用いて受信データ格納部61に格納されているマスク化マトリクスMKMに対してアンマスク処理を実施する(ステップS49)。具体的には、MKM−MMという行列演算を実施する。アンマスク化されたマトリクスのデータは、アンマスク化データ格納部63に格納する。アンマスク化データ出力部64は、出力装置又は支店の他のコンピュータ、若しくは支店コンピュータに別途設けられる更新処理部に、アンマスク化されたマトリクスのデータを出力する。支店の他のコンピュータ又は更新処理部などによって、アンマスク化されたマトリクスのデータ(すなわちオリジナルマトリクス)の更新を行い、更新結果を新たなオリジナルマトリクスOMとしてオリジナルデータ取得部55に出力する。オリジナルデータ取得部55は、オリジナルデータ格納部56に格納する(ステップS51)。なお、ステップS51は、他のコンピュータの処理の場合もあるので、図10では点線で示している。
そして、支店コンピュータのマスク処理部57は、オリジナルデータ格納部56に格納されている新たなオリジナルマトリクスに対して、マスク格納部54に格納されているマスクマトリクスを適用してマスク化マトリクスを生成し、マスク化データ格納部58に格納する(ステップS53)。そして、データ送信部59は、マスク化データ格納部58に格納されているマスク化マトリクスをクラウドシステム3に送信する(ステップS55)。
また、データ秘匿のため、マスク処理部57は、オリジナルデータ格納部56に格納されているオリジナルマトリクスOMを破棄し、データ送信部59は、マスク化データ格納部58に格納されているマスク化マトリクスMKMを破棄する(ステップS59)。
クラウドシステム3のデータ登録部31は、支店コンピュータからマスク化マトリクスを受信し、秘匿情報DB33に登録する(ステップS57)。
このような処理を行えば、支店コンピュータはマスク化マトリクスのデータ更新を実施することができる。
更新時にマスクマトリクスを生成し直してもよい。なお、マスクマトリクスの各要素の値は、オリジナルマトリクスの要素値の桁数等に応じて決定する。加算するわけであるから、オリジナルマトリクスの要素値に比して小さすぎる値を加算しても十分に秘匿化できないためである。
[実施の形態2]
実施の形態1では、全ての支店についての集計キーを合計すると0になるように集計キーを生成する例を示したが、必ずしも集計キーの合計が0でなくともよい。具体的には集計キーの合計値を調整値として保持しておき、クラウドシステム3から受信した集計結果から調整値を差し引けば真の集計値を得ることができるようになる。
このような処理の詳細について図11を用いて説明する。なお、本部コンピュータ9の集計キー生成部91は、本実施の形態では、乱数等によって各支店のためのランダムな集計キーTKi(TKHiとTKViとをまとめてTKと表すものとする。)を生成し、集計キー格納部92に格納しておく。なお、全ての支店について集計キーを同じ値に設定するようにしても良い。
また、データ格納部97には、支店コンピュータ5及び7の支店番号及びアドレス等を格納しておくものとする。
本部コンピュータの集計キー配布処理部93は、データ格納部97に格納されている、各支店コンピュータのアドレス宛に、当該支店コンピュータのための集計キーTKiを送信する(図11:ステップS61)。本実施の形態では、例えば全ての支店について異なる集計キーTKiを送信する。
また、集計キー生成部91は、集計キー格納部92に格納されている全ての集計キーTKiを加算することで、調整値を生成し、集計キー格納部92に格納する(ステップS62)。
各支店コンピュータの集計キー取得部51は、本部コンピュータ9から集計キーTKiを受信し、集計キー格納部52に格納する(ステップS63)。そして、マスク生成部53は、集計キー格納部52に格納されている集計キーからマスクキーを生成するマスク生成処理を実施する(ステップS65)。このマスク生成処理については、図8と同じであるからこれ以上述べない。
図11の処理に戻って、マスク処理部57は、オリジナルデータ格納部56に格納されているオリジナルマトリクスOM(オリジナルデータとも呼ぶ)に、マスク格納部54に格納されているマスクマトリクスMMを適用し、マスク化マトリクスMKM(マスク化データとも呼ぶ)を生成し、マスク化データ格納部58に格納する(ステップS67)。具体的には、オリジナルマトリクスOM+マスクマトリクスMMという行列の加算を行う。
そして、データ送信部59は、マスク化データ格納部58に格納されているマスク化マトリクスMKMをクラウドシステム3に送信する(ステップS69)。なお、オリジナルマトリクスOMについては、支店担当者等からの指示によりオリジナルデータ取得部55が支店の他のコンピュータなどから取得して、オリジナルデータ格納部56に格納する。支店コンピュータ5及び7で生成したオリジナルマトリクスOMであってもよい。
また、データ秘匿のため、マスク処理部57は、オリジナルデータ格納部56に格納されているオリジナルマトリクスOMを破棄し、データ送信部59は、マスク化データ格納部58に格納されているマスク化マトリクスMKMを破棄する(ステップS71)。
クラウドシステム3のデータ登録部31は、支店コンピュータからマスク化マトリクスMKMを受信し、例えば支店番号等と対応付けて秘匿情報DB33に登録する(ステップS73)。
このような処理を、集計キーを配布した全ての支店コンピュータについて実施すれば、集計キーを配布した全ての支店についてのデータが秘匿情報DB33に登録されたことになる。
その後任意のタイミングで、本部コンピュータ9は、本部集計担当者からの集計指示を受け付け、本部コンピュータ9の要求処理部96は、集計要求をクラウドシステム3に送信する(ステップS75)。なお、特定の行、特定の列、行のみ、列のみなど集計の種類を指示するようにしても良い。
クラウドシステム3の集計処理部35は、本部コンピュータ9から集計要求を受信し、データ格納部37に格納する(ステップS77)。そして、集計処理部35は、集計要求に従って指定の集計処理を実施し、集計結果をデータ格納部37に格納する(ステップS79)。集計処理の具体的な処理については従来技術であるので、ここでは詳細に説明しない。但し、特定の行番号を指定して行方向(列番号を変動させる)に集計を行う処理、特定の列番号を指定して列方向(行番号を変動させる)に集計を行う処理、各行番号について行方向に集計を行う処理、各列番号について列方向に集計を行う処理などを行う。
本実施の形態では、集計キーは相殺されないので、全支店についての集計キーの合計値、すなわち上で述べた調整値が真の集計結果に上乗せされている。但し、クラウドシステム3の集計処理部35は特別な処理を行わない。
そして、集計処理部35は、データ格納部37に格納された集計結果を本部コンピュータ9に送信する(ステップS81)。本部コンピュータ9の要求処理部96は、クラウドシステム3から集計結果を受信し、集計データ格納部95に格納する(ステップS83)。そして、出力処理部94は、集計データ格納部95に格納されている集計結果から集計キー格納部92に格納されている調整値における該当値を差し引くことにより調整し(ステップS85)、調整結果を出力装置(例えば表示装置、プリンタ)又は他のコンピュータに出力する(ステップS87)。調整値は、集計キーと同一形状の行列であるから、集計要求で指定した行又は列についての値を該当値として用いる。
このようにすれば、クラウドシステム3の集計処理部35に対して修正を行わずに、本部コンピュータ9で調整を行うことで、真の集計結果を得ることができるようになる。
なお、各支店iについての集計キーTKiを0に設定することも可能である。このようにすれば、本実施の形態でも調整値が0となるので、実質的に調整を行わなくても良いようになる。
また、第1及び第2の実施の形態における集計キーの配布については、別途メールその他の手段によって行うようにしても良い。
[実施の形態3]
第1及び第2の実施の形態では、集計キーを本部コンピュータ9から支店コンピュータ5及び7に配布するような構成を採用していたが、本部コンピュータ9の関与無くして相殺可能な集計キーを生成するような形態も可能である。
本実施の形態に係る支店コンピュータ7は、例えば図12に示すような構成を有する。但し、本実施の形態では、図4と同じ参照番号の構成要素については同一の機能を有するものとする。図4と図12の差異は、集計キー通信部151と第2集計キー格納部152とマスク生成部153とを、集計キー取得部51と集計キー格納部52とマスク生成部53との代わりに導入する。さらに、支店コンピュータの支店番号及びアドレス等を格納するデータ格納部154を新たに導入する。
集計キー通信部151は、支店コンピュータ間で集計キーを調整するための調整集計キーなどを他の支店コンピュータから受信し、新たな調整集計キーを送信する。マスク生成部153は、マスクマトリクスMMを生成すると共に、当該マスクマトリクスMMの集計キーである個別集計キーを生成し、さらに新たな調整集計キーを生成するといった処理等を行う。また、マスク生成部153は、使用すべき集計キーを算出する処理をも行う場合がある。なお、本実施の形態では、N個の支店コンピュータが存在する場合には、N番目の支店コンピュータが処理の起点となる。
次に、図13及び図14を用いて本実施の形態の処理を説明する。まず、N番目の支店コンピュータ(ここでは3番目の支店コンピュータC)の集計キー通信部151は、ダミーの調整集計キーTK0を生成し、第2集計キー格納部152に保管すると共に、1番目の支店コンピュータである支店コンピュータAに調整集計キーを送信する。ダミーの調整集計キーTK0を送信することで、真の集計キーを他の支店コンピュータにさらすことなく調整集計キーを送ることができるようになる。
これに対して支店コンピュータAの集計キー通信部151は、N番目の支店コンピュータから調整集計キーTK0を受信し、第2集計キー格納部152に格納する(ステップS91)。支店コンピュータAのマスク生成部153は、マスクマトリクスMM1を生成し、マスク格納部54に格納する(ステップS93)。本実施の形態では、オリジナルマトリクスOMと同一形状のマトリクスにおいて各要素値を乱数等で生成することで、マスクマトリクスを生成する。このとき、集計キーの制約なしでマスクマトリクスMM1を生成することができる。
また、マスク生成部153は、生成したマスクマトリクスMM1から個別集計キーTK1を生成し、第2集計キー格納部152に格納する(ステップS95)。個別集計キーTK1は、第2の実施の形態の集計キーと同じようにして算出される。すなわち、マスクマトリクスMMにおいて、列方向に(行番号を変更しつつ)同一の列番号の要素値を合計する処理と、行方向に(列番号を変更しつつ)同一の行番号の要素値を合計する処理とを行うことで集計キーTKH1及びTKV1を生成する。
そして、集計キー通信部151は、受信した調整集計キーTK0と生成した個別集計キーとを加算して、新たな調整集計キーTK1を生成して、2番目の支店コンピュータBのアドレス等をデータ格納部154に格納されているデータから特定して、当該支店コンピュータBに送信する(ステップS97)。支店コンピュータ間の通信は暗号化などで秘匿化する。
なお、マスク処理部57は、オリジナルデータ格納部56に格納されているオリジナルマトリクスOM(オリジナルデータとも呼ぶ)に、マスク格納部54に格納されているマスクマトリクスMMを適用し、マスク化マトリクスMKM(マスク化データとも呼ぶ)を生成し、マスク化データ格納部58に格納する(ステップS99)。具体的には、オリジナルマトリクスOM+マスクマトリクスMMという行列の加算を行う。
そして、データ送信部59は、マスク化データ格納部58に格納されているマスク化マトリクスMKMをクラウドシステム3に送信する(ステップS101)。なお、オリジナルマトリクスOMについては、支店担当者等からの指示によりオリジナルデータ取得部55が支店の他のコンピュータなどから取得して、オリジナルデータ格納部56に格納する。支店コンピュータAで生成したオリジナルマトリクスOMであってもよい。
また、データ秘匿のため、マスク処理部57は、オリジナルデータ格納部56に格納されているオリジナルマトリクスOMを破棄し、データ送信部59は、マスク化データ格納部58に格納されているマスク化マトリクスMKMを破棄する(ステップS105)。
クラウドシステム3のデータ登録部31は、支店コンピュータからマスク化マトリクスMKMを受信し、例えば支店番号等と対応付けて秘匿情報DB33に登録する(ステップS103)。
さらに、支店コンピュータBの集計キー通信部151は、支店コンピュータAから調整集計キーTK1を受信し、第2集計キー格納部152に格納する(ステップS107)。これとは別に、支店コンピュータBのマスク生成部153は、マスクマトリクスMM2を、集計キーの制約なしで生成し、マスク格納部54に格納する(ステップS109)。さらに、マスク生成部153は、マスクマトリクスMM2から個別集計キーを生成し、第2集計キー格納部152に格納する(ステップS111)。
そして、集計キー通信部151は、受信した調整集計キーTK1と生成した個別集計キーとを加算して、新たな調整集計キーTK2を生成して、3番目の支店コンピュータCのアドレス等をデータ格納部154に格納されているデータから特定して、当該支店コンピュータCに送信する(ステップS113)。処理は端子Aを介して図14の処理移行する。
支店コンピュータBの集計キー通信部151は、3番目の支店コンピュータCのアドレス等をデータ格納部154に格納されているデータから特定して、当該支店コンピュータCに送信する(ステップS115)。支店コンピュータ間の通信は暗号化などで秘匿化する。
なお、マスク処理部57は、オリジナルデータ格納部56に格納されているオリジナルマトリクスOM(オリジナルデータとも呼ぶ)に、マスク格納部54に格納されているマスクマトリクスMM2を適用し、マスク化マトリクスMKM(マスク化データとも呼ぶ)を生成し、マスク化データ格納部58に格納する(ステップS117)。具体的には、オリジナルマトリクスOM+マスクマトリクスMMという行列の加算を行う。
そして、データ送信部59は、マスク化データ格納部58に格納されているマスク化マトリクスMKMをクラウドシステム3に送信する(ステップS119)。なお、オリジナルマトリクスOMについては、支店担当者等からの指示によりオリジナルデータ取得部55が支店の他のコンピュータなどから取得して、オリジナルデータ格納部56に格納する。支店コンピュータBで生成したオリジナルマトリクスOMであってもよい。
また、データ秘匿のため、マスク処理部57は、オリジナルデータ格納部56に格納されているオリジナルマトリクスOMを破棄し、データ送信部59は、マスク化データ格納部58に格納されているマスク化マトリクスMKMを破棄する(ステップS123)。
クラウドシステム3のデータ登録部31は、支店コンピュータからマスク化マトリクスMKMを受信し、例えば支店番号等と対応付けて秘匿情報DB33に登録する(ステップS121)。
一方、支店コンピュータCの集計キー通信部151は、支店コンピュータBから調整集計キーTK2を受信し(ステップS125)、第2集計キー格納部152に格納する。そして、マスク生成部153は、調整集計キーTK2からダミーの調整集計キーTK0を差し引くことで、他の支店についての個別集計キーを相殺するための支店Cについての集計キー(−(TK2−TK0))を生成し、さらに図8に示したような処理を行ってこの集計キーの制約の下、マスクマトリクスMM3を生成し、マスク格納部54に格納する(ステップS127)。
そして、支店コンピュータCのマスク処理部57は、オリジナルデータ格納部56に格納されているオリジナルマトリクスOM(オリジナルデータとも呼ぶ)に、マスク格納部54に格納されているマスクマトリクスMM3を適用し、マスク化マトリクスMKM(マスク化データとも呼ぶ)を生成し、マスク化データ格納部58に格納する(ステップS129)。具体的には、オリジナルマトリクスOM+マスクマトリクスMMという行列の加算を行う。
そして、データ送信部59は、マスク化データ格納部58に格納されているマスク化マトリクスMKMをクラウドシステム3に送信する(ステップS131)。なお、オリジナルマトリクスOMについては、支店担当者等からの指示によりオリジナルデータ取得部55が支店の他のコンピュータなどから取得して、オリジナルデータ格納部56に格納する。支店コンピュータCで生成したオリジナルマトリクスOMであってもよい。
また、データ秘匿のため、マスク処理部57は、オリジナルデータ格納部56に格納されているオリジナルマトリクスOMを破棄し、データ送信部59は、マスク化データ格納部58に格納されているマスク化マトリクスMKMを破棄する(ステップS135)。
クラウドシステム3のデータ登録部31は、支店コンピュータからマスク化マトリクスMKMを受信し、例えば支店番号等と対応付けて秘匿情報DB33に登録する(ステップS133)。
以上の処理を実施することで、第1の実施の形態と同様のデータがクラウドシステム3の秘匿情報DB33に蓄積されたことになる。
従って、図7のステップS15乃至S25を実施すれば、本部コンピュータ9では、真の集計キーを特別な処理を行わずに得ることができるようになる。
なお、上で述べた処理は以下のような処理に変形することも可能である。N個の支店コンピュータのうちN−1個の支店コンピュータが、自由にマスクマトリクスMMを生成し、そのマスクマトリクスMMの集計キーを生成して本部コンピュータに送信する。本部コンピュータは、N−1個の支店コンピュータからN−1個の集計キーを受信すると、それらを加算して合計集計キーを算出し、符号を逆転することによってN−1個の支店についての集計キーを相殺するための相殺集計キーを生成し、N番目の支店コンピュータに送信する。N番目の支店コンピュータは、相殺集計キーからマスクマトリクスを生成する。このようにすれば、支店コンピュータ間の通信なしでも全ての支店コンピュータで集計キーを相殺するようなマスクマトリクスを各支店コンピュータで生成できるようになる。
さらに、上で述べた例では1つの支店コンピュータで残りの支店コンピュータの集計キー合計を相殺するような集計キーを採用することになっているが、複数の支店コンピュータで残りの支店コンピュータの集計キー合計を相殺するような集計キーを採用するようにしてもよい。この複数の支店コンピュータの集計キーで均等に合計集計キーを相殺するようにしても良いし、不均一に相殺するようにしても良い。例えば、支店コンピュータをいくつかのグループに分類して、そのグループ内で合計集計キーを相殺するようにしてもよい。
[実施の形態4]
第3の実施の形態では、起点となる支店コンピュータ以外の支店コンピュータでは自由にマスクマトリクスMMを生成できるが、全ての支店コンピュータにおける集計キーを合計すると0になるようにするため、支店コンピュータ間で調整集計キーの通信を行うことになる。
例えば本実施の形態のような構成を採用することによって全ての支店コンピュータにおいて自由にマスクマトリクスMMを生成できるようになる。
なお、本実施の形態において支店コンピュータ5及び7については例えば図12に示したような構成を採用する。また、本部コンピュータ9には、図15に示すような構成を採用する。
図15の本部コンピュータ9は、集計キー受信部191と、第2集計キー格納部192と、調整値生成部193と、第2データ格納部194と、出力処理部94と、集計データ格納部95と、要求処理部96とを有する。図3と同じ参照符号の構成要素は同様の処理を実施する。集計キー受信部191は、支店コンピュータから集計キーを受信すると、第2集計キー格納部192に格納する。調整値生成部193は、第2集計キー格納部192に格納されている集計キーを合計して調整値を生成し、第2集計キー格納部192に格納する。なお、調整値生成部193は、第2データ格納部194に格納されている支店番号リストなどを確認して、全ての支店コンピュータの集計キーを加算したかを確認する。
次に、図16を用いて本実施の形態における処理を説明する。
各支店コンピュータのマスク生成部153は、集計キーの制約なしに、マスクマトリクスMMを生成し、マスク格納部54に格納する(ステップS141)。また、マスク生成部153は、生成したマスクマトリクスから集計キーを生成し、第2集計キー格納部152に格納する(ステップS143)。そして、集計キー通信部151は、データ格納部154に格納されている本部コンピュータ9のアドレス宛に、第2集計キー格納部152に格納されている集計キーを送信する(ステップS145)。本部コンピュータ9の集計キー受信部191は、いずれかの支店コンピュータから集計キーを受信すると、第2集計キー格納部192に格納する(ステップS147)。
任意のタイミングで、調整値生成部193は、第2データ格納部194に格納されている支店番号リストなどに基づき全ての支店コンピュータから集計キーを受信しているか確認して、全集計キーを受信済みであれば、全集計キーを加算して調整値を生成し、第2集計キー格納部192に格納する(ステップS157)。
一方、マスク処理部57は、オリジナルデータ格納部56に格納されているオリジナルマトリクスOM(オリジナルデータとも呼ぶ)に、マスク格納部54に格納されているマスクマトリクスMMを適用し、マスク化マトリクスMKM(マスク化データとも呼ぶ)を生成し、マスク化データ格納部58に格納する(ステップS149)。具体的には、オリジナルマトリクスOM+マスクマトリクスMMという行列の加算を行う。
そして、データ送信部59は、マスク化データ格納部58に格納されているマスク化マトリクスMKMをクラウドシステム3に送信する(ステップS151)。なお、オリジナルマトリクスOMについては、支店担当者等からの指示によりオリジナルデータ取得部55が支店の他のコンピュータなどから取得して、オリジナルデータ格納部56に格納する。支店コンピュータ5及び7で生成したオリジナルマトリクスOMであってもよい。
また、データ秘匿のため、マスク処理部57は、オリジナルデータ格納部56に格納されているオリジナルマトリクスOMを破棄し、データ送信部59は、マスク化データ格納部58に格納されているマスク化マトリクスMKMを破棄する(ステップS155)。
クラウドシステム3のデータ登録部31は、支店コンピュータからマスク化マトリクスMKMを受信し、例えば支店番号等と対応付けて秘匿情報DB33に登録する(ステップS153)。
このような処理を、集計キーを配布した全ての支店コンピュータについて実施すれば、集計キーを配布した全ての支店についてのデータが秘匿情報DB33に登録されたことになる。
その後任意のタイミングで、本部コンピュータ9は、本部集計担当者からの集計指示を受け付け、本部コンピュータ9の要求処理部96は、集計要求をクラウドシステム3に送信する(ステップS161)。なお、特定の行、特定の列、行のみ、列のみなど集計の種類を指示するようにしても良い。
クラウドシステム3の集計処理部35は、本部コンピュータ9から集計要求を受信し、データ格納部37に格納する(ステップS163)。そして、集計処理部35は、集計要求に従って指定の集計処理を実施し、集計結果をデータ格納部37に格納する(ステップS165)。集計処理の具体的な処理については従来技術であるので、ここでは詳細に説明しない。但し、特定の行番号を指定して行方向(列番号を変動させる)に集計を行う処理、特定の列番号を指定して列方向(行番号を変動させる)に集計を行う処理、各行番号について行方向に集計を行う処理、各列番号について列方向に集計を行う処理などを行う。
本実施の形態では、集計キーは相殺されないので、全支店についての集計キーの合計値、すなわち上で述べた調整値が真の集計結果に上乗せされている。但し、クラウドシステム3の集計処理部35は特別な処理を行わない。
そして、集計処理部35は、データ格納部37に格納された集計結果を本部コンピュータ9に送信する(ステップS167)。本部コンピュータ9の要求処理部96は、クラウドシステム3から集計結果を受信し、集計データ格納部95に格納する(ステップS169)。そして、出力処理部94は、集計データ格納部95に格納されている集計結果から、第2集計キー格納部192に格納されている調整値を差し引くことにより調整し(ステップS171)、調整結果を出力装置(例えば表示装置、プリンタ)又は他のコンピュータに出力する(ステップS173)。
このようにすれば、支店コンピュータは自由にマスクマトリクスを生成することができるので、処理負荷を下げることができる。また、支店コンピュータは他の支店コンピュータのデータを保持しなくとも済む。
[実施の形態5]
上で述べた実施の形態では、分かりやすいようにオリジナルマトリクスは2次元マトリクスの例を示していた。しかし、2次元以上のマトリクスであっても良い。例えば、図17に示すように3次元マトリクスであってもよい。マスクマトリクスMMも同一形状である。図17の例では、マスクマトリクスMMは直方体であり、場所r、病気p、年齢qの3軸が用意されており、2次元マトリクスの同様に、例えばp個の病気のうちp−1個の病気とq−1個の年齢とr−1個の場所との各組み合わせに対して乱数等によって要素値を生成する。これが図17のハッチング付きの直方体部分であり、その外側の部分を調整することで、与えられた集計キーが得られるようにする。
すなわち、図18に示すように、病気p方向の集計値についての集計キーTKp(q,r)と、年齢q方向の集計値についての集計キーTKq(p,r)と、場所r方向の集計値についての集計キーTKr(p,q)とが与えられる。
例えば、マスクマトリクスにおけるpq平面の最も外側の要素値は、以下のように設定する。
TKp(1,1)−Σpa(p,1,1),TKp(2,1)−Σpa(p,2,1),・・・,TKp(qmax−1,1)−Σpa(p,qmax−1,1)
ここでΣはpを1乃至pmax−1まで変更して加算することを意味する。
TKq(1,1)−Σqa(1,q,1),TKq(2,1)−Σqa(2,q,1),・・・,TKq(pmax,1)−Σqa(pmax,q,1)
ここでΣqを1乃至qmaxまで変更して加算することを意味する。
さらに、このような計算をr=rmax−1まで実施する。そして、r=rmaxについては、p=1からpmaxまで及びq=1からqmaxまでの全ての組み合わせ(pa,qa)について、以下のような計算を行う。
TKr(pa,qa)−Σra(pa,qa,r)
ここでΣはrを1乃至rmax−1まで変更して加算することを意味する。
このような場合には、集計キーが用意されている方向の集計及び当該集計結果を用いる集計について、正しい集計結果を得ることができる。上で述べた例では、場所、病気、年齢の集計結果、場所と病気との組み合わせ、病気と年齢との組み合わせ、場所と年齢との組み合わせについての集計結果を得ることができる。
なお、このような演算は、次元数が増加しても同様である。
[実施の形態6]
上で述べた実施の形態では、図6中に「真の集計値」と述べた部分については値を得ることができるようになる。しかしながら、Σai1のみ、Σbi1といった、全てのオリジナルマトリクスの加算結果における特定の要素の値のみを得ることができない。
そこで、以下に示すような構成及び処理によって、特定の利用者には全てのオリジナルマトリクスにおける特定の要素の値のみを得ることができるようにする。
本実施の形態において、本部コンピュータ9には、図19に示すような構成を採用する。
図19の本部コンピュータ9は、マスク生成部291と、マスク格納部292と、マスク配布処理部293と、第2出力処理部294と、集計データ格納部95と、要求処理部96とを有する。図3と同じ参照符号の構成要素は同様の処理を実施する。マスク生成部291は、各支店用のマスクマトリクスを生成し、マスクマトリクスの加算結果と共にマスク格納部292に格納する。また、マスク配布処理部293は、データ格納部97に格納されている支店番号とアドレス等とに基づきマスクマトリクスを各支店コンピュータに配布する。また、第2出力部294は、マスク格納部292に格納されているデータを用いて、集計データ格納部95に格納されているデータを処理して、出力する。
また、本実施の形態に係る支店コンピュータ7は、例えば図20に示すような構成を有する。但し、本実施の形態では、図4と同じ参照番号の構成要素については同一の機能を有するものとする。図4と図12の差異は、集計キー取得部51及び集計キー格納部52が存在せず、マスク生成部53の代わりにマスク取得部253が設けられている。マスク取得部253は、マスクマトリクスをマスク格納部54に格納する。
次に、図21乃至図23を用いて本実施の形態における処理フローを示す。
本部コンピュータ9のマスク生成部291は、各支店のためのマスクマトリクスM1乃至Mn-1を例えば乱数等によって生成し、マスク格納部292に格納する(ステップS181)。さらに、マスク生成部291は、マスクマトリクスM1乃至Mnについて行方向の集計値及び列方向の集計値が全て0になるように、生成したマスクマトリクスM1乃至Mn-1からマスクマトリクスMnを生成し、マスク格納部54に格納する(ステップS183)。例えば、マスクマトリクスMnの1行1列以外は乱数等で要素値を決定し、この要素値と他のマスクマトリクスM1乃至Mn-1の要素値とから集計キーが0となるように、当該1行1列の値を決定するようにしても良い。
そして、マスク配布処理部293は、データ格納部97に格納されているデータに従って、各支店コンピュータに、マスク格納部292に格納されている当該支店用のマスクマトリクスを配布する(ステップS185)。さらに、マスク生成部291は、マスクマトリクスと同一形状の復号キーK=Σiiを生成し、マスク格納部292に格納する(ステップS187)。復号キーKについては、第2出力処理部294で用いられる。また、ステップS183からして、復号キーKの縦方向の集計値及び横方向の集計値は0となっている。なお、ステップ187の後に、マスクマトリクスについては削除する。これによって本部コンピュータの利用者が、各支店のマスク化データを復号できないようにする。
一方、各支店コンピュータ5のマスク取得部253は、自支店用のマスクマトリクスを本部コンピュータ9から受信し、マスク格納部54に格納する(ステップS189)。
また、マスク処理部57は、オリジナルデータ格納部56に格納されているオリジナルマトリクスOM(オリジナルデータとも呼ぶ)に、マスク格納部54に格納されているマスクマトリクスMMを適用し、マスク化マトリクスMKM(マスク化データとも呼ぶ)を生成し、マスク化データ格納部58に格納する(ステップS191)。具体的には、オリジナルマトリクスOM+マスクマトリクスMMという行列の加算を行う。
そして、データ送信部59は、マスク化データ格納部58に格納されているマスク化マトリクスMKMをクラウドシステム3に送信する(ステップS193)。なお、オリジナルマトリクスOMについては、支店担当者等からの指示によりオリジナルデータ取得部55が支店の他のコンピュータなどから取得して、オリジナルデータ格納部56に格納する。支店コンピュータ5及び7で生成したオリジナルマトリクスOMであってもよい。
また、データ秘匿のため、マスク処理部57は、オリジナルデータ格納部56に格納されているオリジナルマトリクスOMを破棄し、データ送信部59は、マスク化データ格納部58に格納されているマスク化マトリクスMKMを破棄する(ステップS195)。
クラウドシステム3のデータ登録部31は、支店コンピュータからマスク化マトリクスMKMを受信し、例えば支店番号等と対応付けて秘匿情報DB33に登録する(ステップS197)。
このような処理を、マスクマトリクスを配布した全ての支店コンピュータについて実施すれば、集計キーを配布した全ての支店についてのデータが秘匿情報DB33に登録されたことになる。
秘匿情報DB33に格納されているデータ等について模式的に示せば図22のようになる。支店1では、オリジナルマトリクスOM+マスクマトリクスM1が算出され、秘匿データ(すなわちマスク化マトリクス)としてOM1+M1が秘匿情報DB33に登録される。他の支店についても同様の演算が行われ、同様の秘匿データが秘匿情報DB33に登録される。
そうすると、秘匿データを全てマトリクスとして加算すると、OM1+OM2+・・・・・+Kとなる。これは、ステップS187でマスクマトリクスMiの合計が復号キーKとして算出しているためである。従って、復号キーKを有するならば、OM1+OM2+・・・+OMnが得られるため、全オリジナルマトリクスについてセル(要素)毎の集計値を得ることができる。一方、復号キーを有しない場合には、M1+M2+・・・+Mn=Kについて縦方向の集計値及び横方向の集計値が0になるようにマスクマトリクスが生成されているので、特別な演算を行わずに、OM1+OM2+・・・+OMnについて横方向の集計値、縦方向の集計値を得ることができる。
次に、集計処理を実施する際の処理について図23を用いて説明する。但し、本実施の形態では、本部コンピュータのうち権限の低い集計担当者が操作する本部コンピュータA又は秘匿情報DB33にアクセス権限を有するが権限の低い他の利用者が操作するコンピュータと、本部コンピュータのうち権限の高い集計担当者が操作する本部コンピュータBとは異なる集計処理が行われる。
まず、本部コンピュータAの要求処理部96は、権限の低い集計担当者からの集計指示を受け付け、本部コンピュータAの要求処理部96は、第1の集計要求をクラウドシステム3に送信する(ステップS201)。なお、特定の行、特定の列、行のみ、列のみなど集計の種類を指示するようにしても良い。
クラウドシステム3の集計処理部35は、本部コンピュータAから第1の集計要求を受信し、データ格納部37に格納する(ステップS203)。そして、集計処理部35は、第1の集計要求に従って指定の集計処理を実施し、集計結果をデータ格納部37に格納する(ステップS205)。集計処理の具体的な処理については従来技術であるので、ここでは詳細に説明しない。但し、特定の行番号を指定して行方向(列番号を変動させる)に集計を行う処理、特定の列番号を指定して列方向(行番号を変動させる)に集計を行う処理、各行番号について行方向に集計を行う処理、各列番号について列方向に集計を行う処理などを行う。
そして、集計処理部35は、データ格納部37に格納された集計結果を本部コンピュータAに送信する(ステップS207)。本部コンピュータ9の要求処理部96は、クラウドシステム3から集計結果を受信し、集計データ格納部95に格納する。そして、出力処理部94は、本実施の形態の形態では特別な処理を行わずに、出力装置(例えば表示装置、プリンタ)又は他のコンピュータに、集計データ格納部95に格納されている集計結果を出力する(ステップS209)。
このように集計処理の段階では特別な処理を行わずに真の集計結果を得ることができるようになる。
一方、本部コンピュータBの要求処理部96は、権限の高い集計担当者からの集計指示を受け付け、本部コンピュータBの要求処理部96は、第2の集計要求をクラウドシステム3に送信する(ステップS211)。ここでは、全マスク化マトリクスの加算結果についてセル単位の集計値を要求したものとする。セルの一部を指定しても良い。
そうすると、クラウドシステム3の集計処理部35は、本部コンピュータBから第2の集計要求を受信し、データ格納部37に格納する(ステップS213)。そして、集計処理部35は、第2の集計要求に従って全マスク化マトリクスについてセル毎に要素値を加算する処理(すなわち、マスク化マトリクスの全てを加算する処理)を実施し、この集計結果をデータ格納部37に格納する(ステップS215)。
そして、集計処理部35は、データ格納部37に格納された集計結果を本部コンピュータBに送信する(ステップS217)。本部コンピュータBの要求処理部96は、クラウドシステム3から集計結果を受信し、集計データ格納部95に格納する(ステップS219)。そして、出力処理部94は、マスク格納部292に格納されている復号キーKを読み出し、集計データ格納部95に格納されている集計結果から復号キーを差し引くことにより、セル単位の集計結果を表す集計結果マトリクスを生成し、出力装置(例えば表示装置、プリンタ)又は他のコンピュータに、集計結果マトリクスを出力する(ステップS221)。なお、集計結果マトリクスについては、集計データ格納部95に格納するようにしても良い。
以上のように、権限に応じて開示するデータ内容を変更するようにしても良い。なお、復号キーKを有する担当者も、復号キーKを有しない担当者と同様の集計処理を行わせることも可能である。
さらに、復号キーKについて縦方向の集計値及び縦方向の集計値を0にすることになっているが、0ではない所定値に設定すれば、復号キーと集計値とで、開示のさらなる段階化を行うことも可能となる。すなわち、何も有さないユーザには完全に秘匿化し、集計値を有するユーザには全オリジナルマトリクスについて横方向の集計値及び縦方向の集計値を開示し、復号キーを有するユーザには集計結果マトリクスを開示するといった段階化も可能となる。
[実施の形態7]
第6の実施の形態では、全ての支店についてまとめて1つの復号キーを生成することにしていた。しかし、例えば全国に支店が存在する場合には、例えば都道府県単位又は市単位などで集計を行いたい場合もあるが、このような場合に対応できない。
従って、予め定められた単位で支店をグループ化し、グループj毎に復号キーKを生成し、復号キーKにおいて縦方向の集計値及び横方向の集計値を0になるようにグループ内の各支店のためのマスクマトリクスMを生成する。そうすれば、例えば都道府県毎に、オリジナルマトリクスにおける縦方向の集計結果及び横方向の集計結果並びに集計結果マトリクスを生成できるようになる。さらに、全支店についてのオリジナルマトリクスにおける縦方向の集計値及び横方向の集計値並びに集計結果マトリクスを算出することもできる。
例えば、図24に模式的に示すように、東京都、神奈川県、埼玉県に支店がある場合には、東京都の支店について縦方向及び横方向の集計値が0である復号キーK1を1つ生成し、神奈川県の支店について縦方向及び横方向の集計値が0である復号キーK2を1つ生成し、埼玉県の支店について縦方向及び横方向の集計値が0である復号キーK3を1つ生成する。そうすれば、東京都、神奈川県、埼玉県の単位だけではなく、全支店という観点からも集計値を算出することができる。
従って、本部コンピュータ9は、以下のような処理を実施する。なお、データ格納部97に、支店番号と住所とアドレス等とを登録しておくものとする。まず、本部コンピュータ9のマスク生成部291は、データ格納部97に格納されているデータに基づき、支店のグループ化を行う(図25:ステップS231)。例えばグループ化を都道府県単位で行う場合には、支店の住所から都道府県毎にグループ化する。
そして、マスク生成部291は、未処理のグループjを1つ特定する(ステップS233)。その後、マスク生成部291は、当該グループjについて、各支店のためのマスクマトリクスM1乃至Mn-1を例えば乱数等によって生成し、マスク格納部292に格納する(ステップS235)。さらに、マスク生成部291は、当該グループjについて、マスクマトリクスM1乃至Mnについて行方向の集計値及び列方向の集計値が全て0になるように、生成したマスクマトリクスM1乃至Mn-1からマスクマトリクスMnを生成し、マスク格納部54に格納する(ステップS237)。
そして、マスク配布処理部293は、データ格納部97に格納されているデータに従って、当該グループjの各支店コンピュータに、マスク格納部292に格納されている当該支店用のマスクマトリクスを配布する(ステップS239)。さらに、マスク生成部291は、当該グループについて、マスクマトリクスと同一形状の復号キーKj=Σiiを生成し、マスク格納部292に格納する(ステップS241)。復号キーKjについては、第2出力処理部294で用いられる。また、ステップS237からして、復号キーKjの縦方向の集計値及び横方向の集計値は0となっている。
その後、マスク生成部291は、未処理のグループが存在するか判断し、未処理のグループが存在する場合にはステップS233に戻る。一方、未処理のグループが存在していない場合には、処理を終了する。
各支店コンピュータにおける処理は第6の実施の形態と同じである。
次に、集計処理の際の処理について図26を用いて説明する。
まず、本部コンピュータAの要求処理部96は、権限の低い集計担当者からの集計指示を受け付け、本部コンピュータAの要求処理部96は、集計単位の指定を含む第1の集計要求をクラウドシステム3に送信する(ステップS251)。上の例では東京都や神奈川県といった都道府県の単位又は全支店といった指定を行う。さらに、特定の行、特定の列、行のみ、列のみなど集計の種類を指示するようにしても良い。
クラウドシステム3の集計処理部35は、本部コンピュータAから集計単位を含む第1の集計要求を受信し、データ格納部37に格納する(ステップS253)。そして、集計処理部35は、第1の集計要求に従って指定された集計単位についての集計処理を実施し、集計結果をデータ格納部37に格納する(ステップS255)。集計処理の具体的な処理については従来技術であるので、ここでは詳細に説明しない。但し、指定された集計単位についてのマスク化マトリクスを全て加算した上で、特定の行番号を指定して行方向(列番号を変動させる)に集計を行う処理、特定の列番号を指定して列方向(行番号を変動させる)に集計を行う処理、各行番号について行方向に集計を行う処理、各列番号について列方向に集計を行う処理などを行う。
そして、集計処理部35は、データ格納部37に格納された集計結果を本部コンピュータAに送信する(ステップS257)。本部コンピュータ9の要求処理部96は、クラウドシステム3から集計結果を受信し、集計データ格納部95に格納する。そして、出力処理部94は、本実施の形態では特別な処理を行わずに、出力装置(例えば表示装置、プリンタ)又は他のコンピュータに、集計データ格納部95に格納されている集計結果を出力する(ステップS259)。
このように縦方向又は横方向についての集計処理の段階では特別な処理を行わずに真の集計結果を得ることができるようになる。
一方、本部コンピュータBの要求処理部96は、権限の高い集計担当者から集計単位を含む集計指示を受け付け、本部コンピュータBの要求処理部96は、集計単位の指定を含む第2の集計要求をクラウドシステム3に送信する(図27:ステップS261)。ここでは、東京都における全オリジナルマトリクスについてセル単位の集計値を要求したものとする。
そうすると、クラウドシステム3の集計処理部35は、本部コンピュータBから集計単位を含む第2の集計要求を受信し、データ格納部37に格納する(ステップS263)。そして、集計処理部35は、第2の集計要求に従って集計単位に含まれるマスク化マトリクスを読み出し、読み出したマスク化マトリクスを全て加算する集計処理を実施し、この集計結果をデータ格納部37に格納する(ステップS265)。上で述べた例では、東京都の支店についてのマスク化マトリクスを読み出す。
そして、集計処理部35は、データ格納部37に格納された集計結果を本部コンピュータBに送信する(ステップS267)。本部コンピュータBの要求処理部96は、クラウドシステム3から集計結果を受信し、集計データ格納部95に格納する(ステップS269)。そして、出力処理部94は、マスク格納部292に格納されている復号キーKのうち指定集計単位についての復号キーを読み出し、集計データ格納部95に格納されている集計結果から当該復号キーを差し引くことにより、セル単位の集計結果を表す集計結果マトリクスを生成し、出力装置(例えば表示装置、プリンタ)又は他のコンピュータに、集計結果マトリクスを出力する(ステップS271)。なお、集計結果マトリクスについては、集計データ格納部95に格納するようにしても良い。上で述べた例では、東京都についての復号キーを集計結果から差し引くことによって、集計結果マトリクスを生成する。なお、埼玉県と東京都を指定した場合についても、集計結果マトリクスから埼玉県及び東京都の復号キーを2つ差し引けばよい。
以上のように、権限に応じて開示するデータ内容を変更するようにしても良い。なお、復号キーKを有する担当者も、復号キーKを有しない担当者と同様の集計処理を行わせることも可能である。
さらに、本実施の形態も第6の実施の形態と同じであり、復号キーKについて縦方向の集計値及び縦方向の集計値を0にすることになっているが、0ではない所定値に設定すれば、復号キーと集計値とで、開示の段階化を行うことも可能となる。すなわち、何も有さないユーザには完全に秘匿化し、集計値を有するユーザには全オリジナルマトリクスについての横方向の集計値及び縦方向の集計値を開示し、復号キーを有するユーザには集計結果マトリクスを開示するといった段階化も可能となる。
以上本技術の実施の形態を説明したが、本技術はこれに限定されるものではない。例えば、上では支店と本部という例のみを示したが、必ずしもこのような適用例に限定されるものではない。例えば、患者を10代、20代、30代といったように年齢で区分し、さらに患者を病気の種類で区分して、各組み合わせについてマトリクスで管理するような場合にも適用できる。すなわち、このようなオリジナルマトリクスを病院毎に生成して、保健所などの本部に相当する機関が集計結果を利用するようなケースにも適用できる。
また、上で述べた機能ブロック図は一例であって、実際のプログラムモジュール構成とは異なる場合もある。さらに、処理フローについても、処理結果が変わらないかぎり処理順番を入れ替えたり、並列に実施するようにしても良い。
さらに、上で述べた技術は様々に変形可能であるから、各機能についてはネットワーク上の様々な位置に配置されることになる。すなわち、様々な装置間で協働して上で述べたような機能を実現する。
例えば、クラウドシステム3に、本部コンピュータ9に相当する機能を有する装置を設けるようにしても良い。
なお、上で述べた本部コンピュータ9及び支店コンピュータ5及び7並びにクラウドシステム3におけるコンピュータは、コンピュータ装置であって、図28に示すように、メモリ2501とCPU2503とハードディスク・ドライブ(HDD)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)第1のデータ格納部に格納されている2次元以上のオリジナルマトリクスと同一形状のマスクマトリクスにおいて各次元方向についての集計結果(例えば、マスクマトリクスにおいて各次元方向について他の次元の要素番号の各々について集計を行った結果)が所定値になるようにマスクマトリクスにおける各要素のマスク値を生成し、記憶装置に格納するステップと、(B)第1のデータ格納部に格納されているオリジナルマトリクスと記憶装置に格納されているマスクマトリクスとを加算して、マスク化マトリクスを生成し、第2のデータ格納部に格納するステップと、(C)第2のデータ格納部に格納されているマスク化マトリクスを、複数のユーザのコンピュータからのデータを蓄積する第2のコンピュータに送信するステップとを含む。
所定値を適切に設定することによって、オリジナルマトリクスを秘匿しつつ、各次元方向についての集計結果を得ることができるようになる。例えば、このようにマスク化マトリクスを生成する全コンピュータの所定値の合計がゼロになるようにすれば、特別な集計処理を行うことなく各次元方向についての集計結果を得ることができる。たとえ所定値の合計がゼロでなくとも、所定値の合計(以下で述べる調整値)を有していれば、正しい集計結果を得ることができる。例えば、所定値は集計処理を行うユーザ等が指定する。
また、実施の形態の第1の態様に係る情報処理方法は、(D)他のコンピュータ(例えば所定値の通知元である第3のコンピュータ又は第2のコンピュータ)が、複数のユーザからのマスク化マトリクスに対して特定の次元方向に他の次元における特定の要素番号について集計を行った結果の合計値から、複数のユーザについての所定値を加算することで算出される調整値のうちの他の次元の特定の要素番号についての値を差し引く演算を実施するステップをさらに含むようにしてもよい。所定値の合計が0でない場合でも、複数のユーザについての全てのオリジナルマトリクスに対して特定の次元方向に他の次元の特定の要素番号について集計を行った結果の合計値を得ることができる。
なお、実施の形態の第1の態様においては、複数のユーザについての所定値を加算すると0となるようにしてもよい。このようにすれば、集計処理を簡単にすることができる。さらに、複数のユーザが複数セット存在するような場合もある。所定値の合計が0であれば、例えば東京の支店群、神奈川の支店群でグループを構成するようにすれば、東京と神奈川とで分けて集計処理を行うこともできるし、東京と神奈川で合わせて集計処理を行うことも可能である。
また、実施の形態における第1の態様に係る情報処理方法は、(E)複数のユーザのうちいずれかのユーザのコンピュータから通知された第1の値から当該第1の値を相殺するように所定値を算出するステップをさらに含むようにしてもよい。例えば、ユーザのグループで所定値の合計に制約が課されている場合には、このように他のユーザから通知された値から所定値を算出すれば、制約を満たすことができるようになる。
本実施の形態における第2の態様に係る情報処理方法は、(A)第1のデータ格納部に格納されている2次元以上のオリジナルマトリクスと同一形状のマスクマトリクスにおける各要素のマスク値を生成し、記憶装置に格納するステップと、(B)第1のデータ格納部に格納されているオリジナルマトリクスと記憶装置に格納されているマスクマトリクスとを加算してマスク化マトリクスを生成し、第2のデータ格納部に格納するステップと、(C)第2のデータ格納部に格納されているマスク化マトリクスを、複数のユーザのコンピュータからのデータを蓄積する第2のコンピュータに送信するステップと、(D)記憶装置に格納されているマスクマトリクスにおいて各次元方向についての集計を実施し、当該集計の結果に基づく値を複数のユーザのうちいずれかのユーザのコンピュータ又は第2のコンピュータに蓄積されたデータを利用する第3のコンピュータに送信する通知ステップとを含む。
このように、複数のユーザ間で連携が可能であれば、自由にマスクマトリクスを生成できる場合もある。その場合にも、集計の結果に基づく値を上で述べたように用いるコンピュータに送信することによって、集計処理に対処できるようになる。具体的には複数のユーザ間で複数のユーザについてのマスクマトリクスにおける各次元方向の集計値を調整する場合もあれば、集計処理の結果を調整する場合もある。
また、本実施の形態における第2の態様に係る情報処理方法は、(E)第3のコンピュータ又は第2のコンピュータが、複数のユーザのコンピュータから受信した集計の結果に基づく値を加算して調整値を生成するステップと、(F)第3のコンピュータ又は第2のコンピュータが、複数のユーザからのマスク化マトリクスに対して特定の次元方向に他の次元における特定の要素番号について集計を行った結果の合計値から、調整値のうち他の次元の特定の要素番号についての値を差し引く演算を実施するステップとをさらに含むようにしてもよい。このように、集計結果を調整値により調整するようにしても良い。
また、本実施の形態における第2の態様に係る情報処理方法は、(G)複数のユーザのうちの他のユーザのコンピュータから第1の値を受信するステップをさらに含むようにしてもよい。その際、上で述べた通知ステップにおいて、第1の値と集計の結果とを加算することで集計の結果に基づく値を算出すると共に、集計の結果に基づく値を複数のユーザのうちのさらに他のユーザのコンピュータに送信するようにしてもよい。このように、複数のユーザ間で調整を行うことも可能である。
本実施の形態における第3の態様に係る情報処理方法は、(A)第2のコンピュータから、第1のデータ格納部に格納されている2次元以上のオリジナルマトリクスと同一形状のマスクマトリクスを受信し、記憶装置に格納するステップと、(B)第1のデータ格納部に格納されているオリジナルマトリクスと記憶装置に格納されているマスクマトリクスとを加算して、マスク化マトリクスを生成し、第2のデータ格納部に格納するステップと、(C)第2のデータ格納部に格納されているマスク化マトリクスを、複数のユーザのコンピュータからのデータを蓄積する第3のコンピュータに送信するステップとを含む。そして、マスクマトリクスが、各次元方向についての集計結果が0となっている復号マトリクスを複数のユーザに対して分解することで得られるマトリクスである。
このようなマスクマトリクスを配布して復号マトリクスを用意することで、上記複数のユーザについてのオリジナルマトリクスの加算結果さえも得ることができるようになる。
さらに、本実施の形態における第3の態様に係る情報処理方法は、(D)他のコンピュータ(例えば第3のコンピュータ又は第2のコンピュータ)が、複数のユーザからのマスク化マトリクスについて同一要素の値を加算した結果である合計マスク化マトリクスから復号マトリクスを引くことにより、複数のユーザの全てのオリジナルマトリクスを加算した結果を取得するステップをさらに含むようにしてもよい。このようにすれば、オリジナルマトリクス自体は得ることはできないが、複数のユーザの全てのオリジナルマトリクスを加算した結果を得ることができるようになる。
なお、本実施の形態における第3の態様において、複数のユーザが複数セット存在する場合もある。このようにすれば、セット毎に集計を行うことができ、さらに複数のセットまとめて集計を行うことができるようになる。
なお、上で述べたような処理をコンピュータに実施させるためのプログラムを作成することができ、当該プログラムは、例えばフレキシブル・ディスク、CD−ROMなどの光ディスク、光磁気ディスク、半導体メモリ(例えばROM)、ハードディスク等のコンピュータ読み取り可能な記憶媒体又は記憶装置に格納される。なお、処理途中のデータについては、RAM等の記憶装置に一時保管される。
以上の実施例を含む実施形態に関し、さらに以下の付記を開示する。
(付記1)
コンピュータにより実行される情報処理方法であって、
第1のデータ格納部に格納されている2次元以上のオリジナルマトリクスと同一形状のマスクマトリクスにおいて各次元方向についての集計結果が所定値になるように前記マスクマトリクスにおける各要素のマスク値を生成し、記憶装置に格納するステップと、
前記第1のデータ格納部に格納されている前記オリジナルマトリクスと前記記憶装置に格納されている前記マスクマトリクスとを加算して、マスク化マトリクスを生成し、第2のデータ格納部に格納するステップと、
前記第2のデータ格納部に格納されている前記マスク化マトリクスを、複数のユーザのコンピュータからのデータを蓄積する第2のコンピュータに送信するステップと、
を含む情報処理方法。
(付記2)
他のコンピュータが、前記複数のユーザからの前記マスク化マトリクスに対して特定の次元方向に他の次元における特定の要素番号について集計を行った結果の合計値から、前記複数のユーザについての前記所定値を加算することで算出される調整値のうちの前記他の次元の特定の要素番号についての値を差し引く演算を実施するステップ
をさらに含む付記1記載の情報処理方法。
(付記3)
前記複数のユーザについての前記所定値を加算すると0となる
付記1記載の情報処理方法。
(付記4)
前記複数のユーザの組が複数存在する
付記3記載の情報処理方法。
(付記5)
前記複数のユーザのうちいずれかのユーザのコンピュータから通知された第1の値から当該第1の値を相殺するように前記所定値を算出するステップ
をさらに含む付記1又は2記載の情報処理方法。
(付記6)
コンピュータにより実行される情報処理方法であって、
第1のデータ格納部に格納されている2次元以上のオリジナルマトリクスと同一形状のマスクマトリクスにおける各要素のマスク値を生成し、記憶装置に格納するステップと、
前記第1のデータ格納部に格納されている前記オリジナルマトリクスと前記記憶装置に格納されている前記マスクマトリクスとを加算してマスク化マトリクスを生成し、第2のデータ格納部に格納するステップと、
前記第2のデータ格納部に格納されている前記マスク化マトリクスを、複数のユーザのコンピュータからのデータを蓄積する第2のコンピュータに送信するステップと、
前記記憶装置に格納されている前記マスクマトリクスにおいて各次元方向についての集計を実施し、当該集計の結果に基づく値を前記複数のユーザのうちいずれかのユーザのコンピュータ又は前記第2のコンピュータに蓄積されたデータを利用する第3のコンピュータに送信する通知ステップと、
を含む情報処理方法。
(付記7)
前記第3のコンピュータ又は前記第2のコンピュータが、前記複数のユーザのコンピュータから受信した前記集計の結果に基づく値を加算して調整値を生成するステップと、
前記第3のコンピュータ又は前記第2のコンピュータが、前記複数のユーザからの前記マスク化マトリクスに対して特定の次元方向に他の次元における特定の要素番号について集計を行った結果の合計値から、前記調整値のうち前記他の次元の特定の要素番号についての値を差し引く演算を実施するステップと、
をさらに含む付記6記載の情報処理方法。
(付記8)
前記複数のユーザのうちの他のユーザのコンピュータから第1の値を受信するステップ
をさらに含み、
前記通知ステップにおいて、
前記第1の値と前記集計の結果とを加算することで前記集計の結果に基づく値を算出すると共に、前記集計の結果に基づく値を前記複数のユーザのうちのさらに他のユーザのコンピュータに送信する
付記6記載の情報処理方法。
(付記9)
コンピュータにより実行される情報処理方法であって、
第2のコンピュータから、第1のデータ格納部に格納されている2次元以上のオリジナルマトリクスと同一形状のマスクマトリクスを受信し、記憶装置に格納するステップと、
前記第1のデータ格納部に格納されている前記オリジナルマトリクスと前記記憶装置に格納されている前記マスクマトリクスとを加算して、マスク化マトリクスを生成し、第2のデータ格納部に格納するステップと、
前記第2のデータ格納部に格納されている前記マスク化マトリクスを、複数のユーザのコンピュータからのデータを蓄積する第3のコンピュータに送信するステップと、
を含み、
前記マスクマトリクスが、各次元方向についての集計結果が0となっている復号マトリクスを前記複数のユーザに対して分解することで得られるマトリクスである
情報処理方法。
(付記10)
他のコンピュータが、前記複数のユーザからの前記マスク化マトリクスを加算した結果である合計マスク化マトリクスから前記復号マトリクスを引くことにより、前記複数のユーザの全てのオリジナルマトリクスを加算した結果を取得するステップ、
をさらに含む付記9記載の情報処理方法。
(付記11)
前記複数のユーザの組が複数存在する
付記9記載の情報処理方法。
(付記12)
第1のデータ格納部に格納されている2次元以上のオリジナルマトリクスと同一形状のマスクマトリクスにおいて各次元方向についての集計結果が所定値になるように前記マスクマトリクスにおける各要素のマスク値を生成し、記憶装置に格納するマスク値生成部と、
前記第1のデータ格納部に格納されている前記オリジナルマトリクスと前記記憶装置に格納されている前記マスクマトリクスとを加算して、マスク化マトリクスを生成し、第2のデータ格納部に格納するマスク処理部と、
前記第2のデータ格納部に格納されている前記マスク化マトリクスを、複数のユーザのコンピュータからのデータを蓄積する第2のコンピュータに送信する登録部と、
を有する情報処理装置。
(付記13)
第1のデータ格納部に格納されている2次元以上のオリジナルマトリクスと同一形状のマスクマトリクスにおける各要素のマスク値を生成し、記憶装置に格納するマスク値生成部と、
前記第1のデータ格納部に格納されている前記オリジナルマトリクスと前記記憶装置に格納されている前記マスクマトリクスとを加算してマスク化マトリクスを生成し、第2のデータ格納部に格納するマスク処理部と、
前記第2のデータ格納部に格納されている前記マスク化マトリクスを、複数のユーザのコンピュータからのデータを蓄積する第2のコンピュータに送信する登録部と、
前記記憶装置に格納されている前記マスクマトリクスにおいて各次元方向についての集計を実施し、当該集計の結果に基づく値を前記複数のユーザのうちいずれかのユーザのコンピュータ又は前記第2のコンピュータに蓄積されたデータを利用する第3のコンピュータに送信する通知部と、
を有する情報処理装置。
(付記14)
第1のコンピュータから、第1のデータ格納部に格納されている2次元以上のオリジナルマトリクスと同一形状のマスクマトリクスを受信し、記憶装置に格納するマスク取得部と、
前記第1のデータ格納部に格納されている前記オリジナルマトリクスと前記記憶装置に格納されている前記マスクマトリクスとを加算して、マスク化マトリクスを生成し、第2のデータ格納部に格納するマスク処理部と、
前記第1のデータ格納部に格納されている前記マスク化マトリクスを、複数のユーザのコンピュータからのデータを蓄積する第2のコンピュータに送信する登録部と、
を有し、
前記マスクマトリクスが、各次元方向についての集計結果が0となっている復号マトリクスを前記複数のユーザに対して分解することで得られるマトリクスである
情報処理装置。
1 ネットワーク
3 クラウドシステム
9 本部コンピュータ
5,7 支店コンピュータ
3 クラウドシステム
33 秘匿情報DB
31 データ登録部
35 集計処理部
37 データ格納部
91 集計キー生成部
92 集計キー格納部
93 集計キー配布処理部
94 出力処理部
95 集計データ格納部
96 要求処理部
97 データ格納部
51 集計キー取得部
52 集計キー格納部
53 マスク生成部
54 マスク格納部
55 オリジナルデータ取得部
56 オリジナルデータ格納部
57 マスク処理部
58 マスク化データ格納部
59 データ送信部
60 データ取得部
61 受信データ格納部
62 アンマスク処理部
63 アンマスク化データ格納部
64 アンマスク化データ出力部

Claims (11)

  1. コンピュータにより実行される情報処理方法であって、
    第1のデータ格納部に格納されている2次元以上のオリジナルマトリクスと同一形状のマスクマトリクスにおいて各次元方向についての集計結果が所定値になるように前記マスクマトリクスにおける各要素のマスク値を生成し、記憶装置に格納するステップと、
    前記第1のデータ格納部に格納されている前記オリジナルマトリクスと前記記憶装置に格納されている前記マスクマトリクスとを加算して、マスク化マトリクスを生成し、第2のデータ格納部に格納するステップと、
    前記第2のデータ格納部に格納されている前記マスク化マトリクスを、複数のユーザのコンピュータからのデータを蓄積する第2のコンピュータに送信するステップと、
    を含む情報処理方法。
  2. 他のコンピュータが、前記複数のユーザからの前記マスク化マトリクスに対して特定の次元方向に他の次元における特定の要素番号について集計を行った結果の合計値から、前記複数のユーザについての前記所定値を加算することで算出される調整値のうちの前記他の次元の特定の要素番号についての値を差し引く演算を実施するステップ
    をさらに含む請求項1記載の情報処理方法。
  3. 前記複数のユーザのうちいずれかのユーザのコンピュータから通知された第1の値から当該第1の値を相殺するように前記所定値を算出するステップ
    をさらに含む請求項1又は2記載の情報処理方法。
  4. コンピュータにより実行される情報処理方法であって、
    第1のデータ格納部に格納されている2次元以上のオリジナルマトリクスと同一形状のマスクマトリクスにおける各要素のマスク値を生成し、記憶装置に格納するステップと、
    前記第1のデータ格納部に格納されている前記オリジナルマトリクスと前記記憶装置に格納されている前記マスクマトリクスとを加算してマスク化マトリクスを生成し、第2のデータ格納部に格納するステップと、
    前記第2のデータ格納部に格納されている前記マスク化マトリクスを、複数のユーザのコンピュータからのデータを蓄積する第2のコンピュータに送信するステップと、
    前記記憶装置に格納されている前記マスクマトリクスにおいて各次元方向についての集計を実施し、当該集計の結果に基づく値を前記複数のユーザのうちいずれかのユーザのコンピュータ又は前記第2のコンピュータに蓄積されたデータを利用する第3のコンピュータに送信する通知ステップと、
    を含む情報処理方法。
  5. 前記第3のコンピュータ又は前記第2のコンピュータが、前記複数のユーザのコンピュータから受信した前記集計の結果に基づく値を加算して調整値を生成するステップと、
    前記第3のコンピュータ又は前記第2のコンピュータが、前記複数のユーザからの前記マスク化マトリクスに対して特定の次元方向に他の次元における特定の要素番号について集計を行った結果の合計値から、前記調整値のうち前記他の次元の特定の要素番号についての値を差し引く演算を実施するステップと、
    をさらに含む請求項4記載の情報処理方法。
  6. 前記複数のユーザのうちの他のユーザのコンピュータから第1の値を受信するステップ
    をさらに含み、
    前記通知ステップにおいて、
    前記第1の値と前記集計の結果とを加算することで前記集計の結果に基づく値を算出すると共に、前記集計の結果に基づく値を前記複数のユーザのうちのさらに他のユーザのコンピュータに送信する
    請求項4記載の情報処理方法。
  7. コンピュータにより実行される情報処理方法であって、
    第2のコンピュータから、第1のデータ格納部に格納されている2次元以上のオリジナルマトリクスと同一形状のマスクマトリクスを受信し、記憶装置に格納するステップと、
    前記第1のデータ格納部に格納されている前記オリジナルマトリクスと前記記憶装置に格納されている前記マスクマトリクスとを加算して、マスク化マトリクスを生成し、第2のデータ格納部に格納するステップと、
    前記第2のデータ格納部に格納されている前記マスク化マトリクスを、複数のユーザのコンピュータからのデータを蓄積する第3のコンピュータに送信するステップと、
    を含み、
    前記マスクマトリクスが、各次元方向についての集計結果が0となっている復号マトリクスを前記複数のユーザに対して分解することで得られるマトリクスである
    情報処理方法。
  8. 他のコンピュータが、前記複数のユーザからの前記マスク化マトリクスを加算した結果である合計マスク化マトリクスから前記復号マトリクスを引くことにより、前記複数のユーザの全てのオリジナルマトリクスを加算した結果を取得するステップ、
    をさらに含む請求項7記載の情報処理方法。
  9. 第1のデータ格納部に格納されている2次元以上のオリジナルマトリクスと同一形状のマスクマトリクスにおいて各次元方向についての集計結果が所定値になるように前記マスクマトリクスにおける各要素のマスク値を生成し、記憶装置に格納するマスク値生成部と、
    前記第1のデータ格納部に格納されている前記オリジナルマトリクスと前記記憶装置に格納されている前記マスクマトリクスとを加算して、マスク化マトリクスを生成し、第2のデータ格納部に格納するマスク処理部と、
    前記第2のデータ格納部に格納されている前記マスク化マトリクスを、複数のユーザのコンピュータからのデータを蓄積する第2のコンピュータに送信する登録部と、
    を有する情報処理装置。
  10. 第1のデータ格納部に格納されている2次元以上のオリジナルマトリクスと同一形状のマスクマトリクスにおける各要素のマスク値を生成し、記憶装置に格納するマスク値生成部と、
    前記第1のデータ格納部に格納されている前記オリジナルマトリクスと前記記憶装置に格納されている前記マスクマトリクスとを加算してマスク化マトリクスを生成し、第2のデータ格納部に格納するマスク処理部と、
    前記第2のデータ格納部に格納されている前記マスク化マトリクスを、複数のユーザのコンピュータからのデータを蓄積する第2のコンピュータに送信する登録部と、
    前記記憶装置に格納されている前記マスクマトリクスにおいて各次元方向についての集計を実施し、当該集計の結果に基づく値を前記複数のユーザのうちいずれかのユーザのコンピュータ又は前記第2のコンピュータに蓄積されたデータを利用する第3のコンピュータに送信する通知部と、
    を有する情報処理装置。
  11. 第1のコンピュータから、第1のデータ格納部に格納されている2次元以上のオリジナルマトリクスと同一形状のマスクマトリクスを受信し、記憶装置に格納するマスク取得部と、
    前記第1のデータ格納部に格納されている前記オリジナルマトリクスと前記記憶装置に格納されている前記マスクマトリクスとを加算して、マスク化マトリクスを生成し、第2のデータ格納部に格納するマスク処理部と、
    前記第1のデータ格納部に格納されている前記マスク化マトリクスを、複数のユーザのコンピュータからのデータを蓄積する第2のコンピュータに送信する登録部と、
    を有し、
    前記マスクマトリクスが、各次元方向についての集計結果が0となっている復号マトリクスを前記複数のユーザに対して分解することで得られるマトリクスである
    情報処理装置。
JP2010229458A 2010-10-12 2010-10-12 情報処理装置及び方法 Pending JP2012083536A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2010229458A JP2012083536A (ja) 2010-10-12 2010-10-12 情報処理装置及び方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010229458A JP2012083536A (ja) 2010-10-12 2010-10-12 情報処理装置及び方法

Publications (1)

Publication Number Publication Date
JP2012083536A true JP2012083536A (ja) 2012-04-26

Family

ID=46242475

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010229458A Pending JP2012083536A (ja) 2010-10-12 2010-10-12 情報処理装置及び方法

Country Status (1)

Country Link
JP (1) JP2012083536A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012165374A (ja) * 2011-02-04 2012-08-30 Palo Alto Research Center Inc 時系列データのプライバシー保護アグリゲーション
JP5137046B1 (ja) * 2012-05-31 2013-02-06 株式会社イースティル 系列データ保護方法および系列データ保護プログラム
JP2014134732A (ja) * 2013-01-11 2014-07-24 Fujitsu Ltd 行列更新方法、プログラム及び装置、並びに行列拡張方法、プログラム及び装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005025589A (ja) * 2003-07-04 2005-01-27 Mitsubishi Electric Corp 多次元データ集計処理装置及び多次元データ集計処理プログラム
JP2006018053A (ja) * 2004-07-02 2006-01-19 Hitachi Ltd 情報の収集方法及び端末
JP2008234605A (ja) * 2007-03-23 2008-10-02 Nec Corp データ取得流通時のデータ匿名性確保に係わる、データ集計システム、データ集計方法およびデータ集計プログラム
JP2010524413A (ja) * 2007-04-25 2010-07-15 エヌイーシー ヨーロッパ リミテッド ネットワーク内でデータを集計する方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005025589A (ja) * 2003-07-04 2005-01-27 Mitsubishi Electric Corp 多次元データ集計処理装置及び多次元データ集計処理プログラム
JP2006018053A (ja) * 2004-07-02 2006-01-19 Hitachi Ltd 情報の収集方法及び端末
JP2008234605A (ja) * 2007-03-23 2008-10-02 Nec Corp データ取得流通時のデータ匿名性確保に係わる、データ集計システム、データ集計方法およびデータ集計プログラム
JP2010524413A (ja) * 2007-04-25 2010-07-15 エヌイーシー ヨーロッパ リミテッド ネットワーク内でデータを集計する方法

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012165374A (ja) * 2011-02-04 2012-08-30 Palo Alto Research Center Inc 時系列データのプライバシー保護アグリゲーション
JP5137046B1 (ja) * 2012-05-31 2013-02-06 株式会社イースティル 系列データ保護方法および系列データ保護プログラム
JP2014134732A (ja) * 2013-01-11 2014-07-24 Fujitsu Ltd 行列更新方法、プログラム及び装置、並びに行列拡張方法、プログラム及び装置

Similar Documents

Publication Publication Date Title
KR102348418B1 (ko) 네트워크 내의 분산 데이터베이스를 효율적으로 구현하기 위한 방법들 및 장치
Elmisery et al. A new computing environment for collective privacy protection from constrained healthcare devices to IoT cloud services
KR102433285B1 (ko) 이벤트들의 삭제를 가능하게 하는 분산 데이터베이스를 위한 방법 및 장치
CN107835076B (zh) 用于令牌的安全通信及其聚合的方法和系统
CN109923536B (zh) 用于包括匿名条目的分布式数据库的方法和装置
JP6034927B1 (ja) 秘密計算システム、秘密計算装置、およびプログラム
CN110383760A (zh) 用户控制的、分散式、分布式且安全的内容分发
TWI749444B (zh) 可靠的使用者服務系統和方法
CN106060057B (zh) 视频直播网站基于用户弹幕行为生成白名单的系统及方法
CN113711202A (zh) 用于在分布式数据库中实现状态证明和分类帐标识符的方法和装置
KR20160030874A (ko) 행렬 인수분해에 기초한 등급 기여 사용자들에게로의 추천을 프라이버시-보호하기 위한 방법 및 시스템
JP5574402B2 (ja) 分散型秘匿化データ統合装置、分散型秘匿化データ統合方法および分散型秘匿化データ統合用プログラム
EP4152197A1 (en) Methods and systems for managing user data privacy
JP2012083536A (ja) 情報処理装置及び方法
CN114945920A (zh) 使用安全多方计算来提高内容选择过程完整性
JP5516284B2 (ja) 情報処理方法及び装置
JP5637139B2 (ja) ネットワーク鍵更新システム、サーバ、ネットワーク鍵更新方法および記録媒体
US20220164712A1 (en) Systems and methods for federated learning using distributed messaging with entitlements for anonymous computation and secure delivery of model
JP2009038416A (ja) マルチキャスト通信システム、並びにグループ鍵管理サーバ
JP2023549009A (ja) セキュアマルチパーティ計算を使用した暗号学的に安全な制御
JP6737086B2 (ja) アドレス管理装置、データ管理システム及びプログラム
WO2024140263A2 (zh) 业务权限的管理方法、装置及设备
KR102557196B1 (ko) 프록시 서버를 이용하여 노드간 트랜잭션을 전달하는 블록체인 시스템
CN114450919B (zh) 在线隐私保护方法和系统
US20230394303A1 (en) Machine learning system, client terminal, aggregated server device and method

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20130805

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20140204

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140225

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140418

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20140513