JP5895080B2 - データ秘匿型統計処理システム、統計処理結果提供サーバ装置及びデータ入力装置、並びに、これらのためのプログラム及び方法 - Google Patents

データ秘匿型統計処理システム、統計処理結果提供サーバ装置及びデータ入力装置、並びに、これらのためのプログラム及び方法 Download PDF

Info

Publication number
JP5895080B2
JP5895080B2 JP2015079666A JP2015079666A JP5895080B2 JP 5895080 B2 JP5895080 B2 JP 5895080B2 JP 2015079666 A JP2015079666 A JP 2015079666A JP 2015079666 A JP2015079666 A JP 2015079666A JP 5895080 B2 JP5895080 B2 JP 5895080B2
Authority
JP
Japan
Prior art keywords
data
partial
partial data
original data
calculation
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.)
Active
Application number
JP2015079666A
Other languages
English (en)
Other versions
JP2015158935A (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.)
Intec Inc Japan
Original Assignee
Intec Inc Japan
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 Intec Inc Japan filed Critical Intec Inc Japan
Priority to JP2015079666A priority Critical patent/JP5895080B2/ja
Publication of JP2015158935A publication Critical patent/JP2015158935A/ja
Application granted granted Critical
Publication of JP5895080B2 publication Critical patent/JP5895080B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Description

本発明は、個人のプライバシ等に関する秘匿すべきデータに対して、データの秘匿性を維持しながら統計処理を行い、その結果を提供するための技術に関する。
近年、個人情報や行動記録などの「ライフログ」を解析し、さまざまなビジネスシーンに活用する事例が増えている。例えば、POSデータなどの購買履歴、電子マネーの利用履歴、交通網の乗車履歴、車のGPS情報、携帯電話やスマートフォンなどの通話履歴や利用履歴、血圧や体重等のヘルスケアに関する測定履歴、さらに病歴等、あらゆる場面でデータを解析することが求められている。
「ライフログ」から得られる情報は有益なものが多く、行動パターンの推定やリコメンド、ターゲットマーケティング、新製品や新手法の研究開発等、多くの応用が考えられる。一方で、データを解析する際のプライバシ情報の取り扱いに関する懸念も大きい。
また、クラウド・コンピューティングの技術を利用し、個人や企業等のユーザが、自身のデータを、手元の機器に保存せずに、ネットワークを介してデータセンタ等へ送信して保存できるようにするサービスも、普及している。この場合も、クラウド上に保存されるデータにプライバシ情報が含まれると、情報漏洩への懸念が大きくなる。
プライバシ情報を保護しつつデータを解析して有用な知識を見出すための技術としては、プライバシ保護データマイニング(PPDM)と呼ばれる技術が開発されており(非特許文献1参照)、保存されているデータ自体が第三者に流出しても秘密の情報は漏洩しないようにするための技術としては、秘密分散と呼ばれる技術が提案されている(特許文献1〜3参照)。
特開2013−20314号公報 特表2012−530391号公報 特開2005−250866号公報
佐久間 淳、小林重信「プライバシ保護データマイニング」、人工知能学会誌 Vol.24 No.2(2009)
PPDMには、信頼できる第三者機関の存在を想定し、秘匿すべきオリジナルデータを当該第三者機関へ渡す方式があるが、そのように信頼できる第三者機関は、実際には実現困難である上に、秘密の情報が集約される当該第三者機関から情報が漏洩すると、その被害が甚大となることから、現実的な解決策にはならない。
PPDMのうち、信頼できる第三者機関を利用しない方式は、ある組織が有するオリジナルデータを外部から秘匿しながら、そのオリジナルデータの集合に対する解析の結果を当該組織の外部において求めるものであり、解析処理を行う外部の者は、オリジナルデー
タを渡されることなく、何らかの秘匿化処理が行われたデータを渡されて、解析処理を行う。その際、外部の者が、渡されたデータから、組織内に秘匿されているオリジナルデータを求めることができないようにするために、種々の手法が開発されている。
しかしながら、信頼できる第三者機関を利用しない方式も、組織の内部では、秘匿すべきオリジナルデータを保持していることを前提としている。したがって、当該組織の保持しているオリジナルデータが第三者に流出し、プライバシ情報が漏洩するリスクについては、PPDM自体は、無防備であることになる。
そうすると、従来の技術では、PPDMとオリジナルデータの保持を暗号化された状態で行う技術とを組み合わせることにより、秘匿すべきデータの安全性を保つことになるが、いくら暗号化された状態であっても、オリジナルデータが存在する以上は、暗号化強度に応じて膨大となるものの計算能力と時間さえかければ、復号化してオリジナルデータを求めることができてしまう。よって、情報漏洩のリスクは、排除できないものとして残ることになる。
これに対して、秘密分散技術は、秘密情報を幾つか(N個とする)のデータに分割して、分散させて保持することにより、N個のうちのK個(K<N)のデータが第三者に流出して、それらが集められても、秘密情報を復元することはできないようにして、情報漏洩を防ぐものである。
このように秘密情報を分散させるということは、オリジナルデータを保持しないということであり、N及びKの値を大きくすることにより、確実に情報漏洩のリスクを低減することができる。つまり、K箇所で、保持しているデータの流出が起きても、秘密情報は漏洩しないことが担保されるため、Kの値を十分に大きくし、それぞれのデータ保持場所でのセキュリティを高くすることにより、K個の全ての場所からデータが流出する可能性を、極めて小さくすることが可能である。
しかしながら、秘密分散技術により安全に保持されている秘密情報を解析したい場合、分割された状態のままで解析をすることができないため、一旦、データ全部を一箇所に集めてオリジナルの秘密情報を復元した上で、解析処理を行わなければならない。そうすると、たとえ通常の保存時に秘密分散技術を利用していても、解析をする際にオリジナルデータを保持することになるため、データの流出が即、情報漏洩につながるというリスクは、依然として残ることになる。
本発明は、上述した状況に鑑み、オリジナルデータの受け渡しも保存も行わないことにより、オリジナルデータを保持しないようにして、秘匿すべき情報が漏洩するリスクを低減しつつ、オリジナルデータの集合について統計処理の結果を得ることを可能にすることを目的とする。
本発明の原理に従う一つの例に係るデータ秘匿型統計処理システムは、それぞれが秘匿すべきオリジナルデータを取得する手段を備える複数のデータ入力装置と、それぞれが複数の入力データに基づいて所定の演算を行う手段を備える複数の演算装置と、前記複数の演算装置のそれぞれが前記オリジナルデータの部分データを前記入力データとして演算を行った結果を利用することにより、前記複数のデータ入力装置により取得された複数のオリジナルデータに基づく統計処理の結果を、該オリジナルデータを取得することなく求める手段を備えるデータ処理装置を備える。
この構成によれば、各データ入力装置が取得したオリジナルデータは、部分データにさ
れて複数の演算装置に分散して渡されるため、いずれの演算装置もオリジナルデータを取得せず、データ処理装置もオリジナルデータを取得しない。よって、オリジナルデータを保持しないことで、秘匿すべき情報が漏洩するリスクを低減することが可能になる。一方で、各演算装置が、部分データについて演算を行い、データ処理装置が、複数の演算装置からの演算結果を利用することで、オリジナルデータの集合についての統計処理の結果を得ることが可能になる。
上記の構成において、前記データ入力装置が、全ての部分を合わせると前記オリジナルデータが復元されるように前記オリジナルデータを秘密の比率に従って分割し、所定の個数の部分データを生成する手段と、前記所定の個数の部分データのそれぞれを、前記複数の演算装置のうち対応する演算装置へ、保護された通信路により送信する手段を備えるようにしてもよい。
これにより、オリジナルデータをM個に分割して、M個の演算装置に送信した場合、最大(M−1)個までの部分データが第三者に流出しても、オリジナルデータを復元することができないようにすることが可能になる。したがって、M個の演算装置がそれぞれの部分データを保存して、一部の演算装置からデータが第三者に流出したとしても、オリジナルデータの秘匿性を維持可能とすることができる。また、データ入力装置からの通信路の保護により、通信の傍受によって全部の部分データ(即ちオリジナルデータ)が第三者に取得されることを防止することができる。
なお、秘密の比率は、各々のデータ入力装置によって異なるようにすることが望ましい。また、各々のデータ入力装置が生成する部分データの個数は、一つの統計処理の対象となる集合に属するオリジナルデータの全てについて同一とする方が、運用管理が簡単化されるが、異なることを許容しても構わない。
上記の構成において、前記演算装置が、前記複数のデータ入力装置から受信した複数の前記部分データに基づいて所定の演算を行って得た演算結果を、前記データ処理装置へ送信する手段を備え、前記データ処理装置が、前記複数の演算装置から受信した複数の前記演算結果に基づいて所定の統計処理を行う手段を備えるようにしてもよい。
これにより、M個の演算装置のそれぞれが、N個のデータ入力装置から部分データを受信し、N個の部分データから演算した結果をデータ処理装置へ送信し、データ処理装置が、M個の演算結果を処理することで、N個のオリジナルデータについて統計処理を行った結果を求めることが可能になる。
このとき、各演算装置は、N個のオリジナルデータに対応するN個のデータを受け取るが、それは部分データであってオリジナルデータの情報を含んでおらず、データ処理装置は、オリジナルデータを構成するM個の部分データに対応するM個の演算結果を受け取るが、それはオリジナルデータの集合についての情報であって個々のオリジナルデータの情報を含んでいない。よって、各演算装置とデータ処理装置に、いずれのオリジナルデータも取得させることなく、統計処理の結果が得られることになる。
上記の構成において、前記所定の個数の部分データは、前記オリジナルデータを分割した各々の部分の値から生成されるものを含み、前記演算装置が行う所定の演算は、前記複数の部分データの総和の演算を含み、前記データ処理装置が行う所定の統計処理は、前記所定の個数の演算結果の総和を計算する処理を含むものとしてもよい。
これにより、N個のオリジナルデータの総和(X1+X2+…+XN)という統計処理の
結果を求めることが、オリジナルデータを取得することなく可能になる。例えば、i番目
のデータ入力装置(i=1,2,…,N)が、Xi=x1i+x2i+…+xmiとなるように
、m個の部分データxjiを生成し、j番目の演算装置(j=1,2,…,m)が、N個の部分データの総和(xj1+xj2+…+xjN)の値を求め、データ処理装置が、m個の演算装置が求めた値の総和を求めれば、(X1+X2+…+XN)の値が求められる。
上記の構成において、前記所定の個数の部分データは、前記オリジナルデータを分割した各々の部分の値から生成されるものと、互いに異なる2つの部分同士を乗算した値に基づいて生成されるものとを含み、前記演算装置が行う所定の演算は、前記複数の部分データの総和及び2乗和の少なくとも一方の演算を含み、前記データ処理総理が行う所定の統計処理は、前記所定の個数の演算結果のうち前記各々の部分の値に対応するものについて2乗和を計算する処理と、前記所定の個数の演算結果のうち前記部分同士を乗算した値に対応するものについて総和を計算する処理を含むものとしてもよい。
これにより、N個のオリジナルデータの2乗和(X1 2+X2 2+…+XN 2)という統計処理の結果を求めることが、オリジナルデータを取得することなく可能になる。例えば、i番目のデータ入力装置(i=1,2,…,N)が、Xi=x1i+x2i+…+xmiとなるよ
うに、m個の部分データxjiを生成し、さらに、m個の部分データ[Σjk(xjiki)](以下、「x’ji」と記す)を生成し、j番目の演算装置(j=1,2,…,m)が、N個の部分データxjiの2乗和(xj1 2+xj2 2+…+xjN 2)の値を求め、j番目の演算
装置(j=m+1,m+2,…,2m)が、N個の部分データx’jiの総和(x’j1+x’j2+…+x’jN)の値を求め、データ処理装置が、2m個の演算装置が求めた値の総和を求めれば、(X1 2+X2 2+…+XN 2)の値が得られる。
別の例として、i番目のデータ入力装置(i=1,2,…,N)が、Xi=x1i+x2i
+…+xmiとなるように、m個の部分データxjiを生成し、さらに、m+1番目の部分データ[Σj(Σjk(xjiki))](以下、「x”i」と記す)を生成し、j番目の演算装置(j=1,2,…,m)が、N個の部分データxjiの2乗和(xj1 2+xj2 2+…+xjN 2)の値を求め、m+1番目の演算装置が、N個の部分データx”iの総和(x”1+x
2+…+x”N)の値を求め、データ処理装置が、m+1個の演算装置が求めた値の総和を求めるのでも、(X1 2+X2 2+…+XN 2)の値が得られる。
代替となる構成として、上記の構成において、前記所定の個数の部分データは、前記オリジナルデータを分割した各々の部分を2乗した値から生成されるものと、互いに異なる2つの部分同士を乗算した値に基づいて生成されるものとを含み、前記演算装置が行う所定の演算は、前記複数の部分データの総和の演算を含み、前記データ処理総理が行う所定の統計処理は、前記所定の個数の演算結果の総和を計算する処理を含むものとしてもよい。
これによっても、N個のオリジナルデータの2乗和(X1 2+X2 2+…+XN 2)という統計処理の結果を求めることが、オリジナルデータを取得することなく可能になる。例えば、i番目のデータ入力装置(i=1,2,…,N)が、Xi=x1i+x2i+…+xmiとな
るようにxjiを定めて、m個の部分データxji 2と、m個の部分データx’jiとを生成し
、j番目の演算装置(j=1,2,…,m)が、N個の部分データxji 2の総和(xj1 2+xj2 2+…+xjN 2)の値を求め、j番目の演算装置(j=m+1,m+2,…,2m)が、N個の部分データx’jiの総和(x’j1+x’j2+…+x’jN)の値を求め、データ処理装置が、2m個の演算装置が求めた値の総和を求めれば、(X1 2+X2 2+…+XN 2)の値が得られる。
別の例として、i番目のデータ入力装置(i=1,2,…,N)が、Xi=x1i+x2i
+…+xmiとなるようにxjiを定めて、m個の部分データxji 2と、1個の部分データx
iとを生成し、j番目の演算装置(j=1,2,…,m)が、N個の部分データxji 2の総和(xj1 2+xj2 2+…+xjN 2)の値を求め、m+1番目の演算装置が、N個の部分デ
ータx”iの総和(x”1+x”2+…+x”N)の値を求め、データ処理装置が、m+1個の演算装置が求めた値の総和を求めるのでも、(X1 2+X2 2+…+XN 2)の値が得られる。
上述した例では、総和を求めるのにm個の演算装置を用い、2乗和を求めるのに2m個もしくはm+1個の演算装置を用いているが、いずれの場合も、同時に(m−1)箇所でデータ流出があっても、オリジナルデータの秘匿性は維持可能である。
また、各々の演算装置は、データ入力装置から受信したデータが何であるかに関わらず、受信したデータに対して総和及び2乗和の演算をして、この2つの演算結果をデータ処理装置に送信するという、統一的な処理を行う構成とし、データ処理装置が、行いたい統計処理に従ってデータ処理装置からの演算結果を選択(例えば、1〜m番目の演算装置については2乗和の方の結果を選択し、m+1〜2m番目の演算装置については総和の方の結果を選択する等)して、計算対象とするように構成してもよい。
上記のようにオリジナルデータの集合の総和及び2乗和という統計処理の結果を求めることができる構成を利用して、標本平均の算出、標本分散の算出、標本偏差の算出、最尤推定、T分布を用いた区間推定、母比率の信頼区間の推定、母分散の推定、母平均の検定、母集団A及びBに関する母平均の差の検定、母比率の検定、母集団A及びBの母分散の比較検定、分散分析のうちの少なくとも1つの結果を、最終的な統計処理の結果として求める構成とすることも可能である。
上記の構成において、前記複数のデータ入力装置は、同数ずつの互いに対応する第1のデータ入力装置と第2のデータ入力装置とを含み、前記第1のデータ入力装置及び前記第2のデータ入力装置が行う送信は、前記所定の個数の部分データのそれぞれを、所定の個数の2乗個の前記演算装置のうち対応する所定の個数の演算装置へ送信するものであり、前記演算装置が行う所定の演算は、前記第1のデータ入力装置からの部分データ列と前記第2のデータ入力装置からの部分データ列との内積を求める演算を含み、前記データ処理装置が行う統計処理は、前記所定の個数の2乗個の演算装置から受信した所定の個数の2乗個の前記演算結果の総和を計算する処理を含むものとしてもよい。
これにより、第1のオリジナルデータの集合(N個のオリジナルデータXi)と第2の
オリジナルデータの集合(N個のオリジナルデータYi)の内積(X11+X22+…+
NN)という統計処理の結果を求めることが、オリジナルデータを取得することなく可能になる。例えば、i番目の第1のデータ入力装置(i=1,2,…,N)が、Xi=x1i+x2i+…+xmiとなるように、m個の部分データxjiを生成し、i番目の第2のデー
タ入力装置(i=1,2,…,N)が、Yi=y1i+y2i+…+ymiとなるように、m個
の部分データykiを生成し、jk番目の演算装置(jk=1,2,…,m2)が、N個の
部分データxjiとN個の部分データykiとの内積(xj1k1+xj2k2+…+xjNkN)の値を求め、データ処理装置が、m2個の演算装置が求めた値の総和を求めれば、(X11+X22+…+XNN)の値が求められる。
上記のように2つのオリジナルデータの集合の内積という統計処理の結果を求めることができる構成を利用して、共分散の算出、相関係数の算出、回帰分析のうちの少なくとも1つの結果を、最終的な統計処理の結果として求める構成とすることも可能である。
上記のデータ秘匿型統計処理システムにおいて、前記データ入力装置が、前記オリジナルデータを分割する際に発生させた乱数を用いて前記秘密の比率を定め、分割した後に前
記秘密の比率の記憶を消去する手段をさらに備えるようにしてもよい。
これにより、オリジナルデータを構成する複数の部分データのうちの一つしか第三者に流出しておらず、オリジナルデータの秘匿性が維持されるべき場合でも、秘密の比率を知られてしまうと、オリジナルデータが復元できてしまうという情報漏洩のリスクを、低減することが可能になる。その都度ランダムに秘密の比率を定めるようにすれば、比率が推測されてしまう可能性が少なくなるし、秘密の比率の記憶を消去しておけば、情報漏洩の可能性も少なくなる。
上記のシステムにおいて、前記演算装置が、前記複数のデータ入力装置から受信した複数の前記部分データのそれぞれを、該部分データを送信したデータ入力装置と関連付けて保存する手段と、前記データ入力装置との関連付けを示す要求に応じて、前記複数の部分データのうち、該データ入力装置と関連付けて保存されている部分データを返送する手段をさらに備えるようにしてもよい。
これにより、データ入力装置が取得したオリジナルデータを即座に分割し、複数の演算装置に分散して保存させることで、データ入力装置もオリジナルデータを保持しないことになり、秘匿すべき情報が漏洩するリスクを確実に低減することが可能になる。
上記の構成において、前記データ入力装置との関連付けを有する装置が、前記オリジナルデータを分割して生成した部分データの全てを、前記複数の演算装置のうち対応する演算装置から取得して、前記オリジナルデータを復元する手段を備えるようにしてもよい。
これにより、秘密の比率の記憶が残っていなくても、オリジナルデータの本来の保有者は、分散して保存されている複数の部分データを全て集めることで、オリジナルデータを復元することが可能になる。
代替となる構成として、前記データ入力装置との関連付けを有する装置が、前記オリジナルデータを分割した各々の部分のうち一つについての前記比率を記憶する手段と、前記オリジナルデータを分割して生成した部分データのうち、記憶されている前記一つの比率に該当する部分データを、前記複数の演算装置のうち対応する演算装置から取得して、前記オリジナルデータを復元する手段とを備えるようにしてもよい。
これにより、オリジナルデータの本来の保有者は、分散して保存されている複数の部分データのうちの一つを取得することで、オリジナルデータを復元することが可能になる。
上記のシステムにおいて、前記データ処理装置が、前記複数のデータ入力装置のそれぞれへ、前記部分データを前記複数の演算装置のうちいずれへ送信すべきかを指示する手段と、前記複数の演算装置のそれぞれへ、前記複数のデータ入力装置から受信した複数の前記部分データのうちいずれを対象として所定の演算を行うべきかを指示する手段を備えるようにしてもよい。
これにより、どのような統計処理の結果を得たいかに応じて、その都度、利用する演算装置を選択したり、演算装置の数を指定したりすることが可能になり、時々の状況に応じた負荷分散や、安全度の細かい設定等が可能になる。また、各演算装置が有する部分データが、所望の統計処理の対象となるオリジナルデータの部分データであるかそうでないかを、演算装置に伝えることが可能になり、統計処理の対象に含めてしまうと結果に誤差等が生じる部分データを、演算から外すことが可能になる。
上記のシステムにおいて、前記複数のデータ入力装置のそれぞれが、前記部分データを
前記複数の演算装置のうちいずれへ送信すべきかを決定する手段を備え、前記複数の演算装置のそれぞれが、前記複数のデータ入力装置から受信した複数の前記部分データのうちいずれを対象として所定の演算を行うべきかを決定する手段を備えるようにしてもよい。
これにより、各データ入力装置自身が送信先の演算装置を選択することと、各演算装置自身が統計処理の対象に含めるべき部分データを選別することとが可能になり、データ処理装置が、各オリジナルデータの内容を取得しないだけでなく、各オリジナルデータに関係する情報をも取り扱わないようにすることができ、さらなるデータの安全性を実現することができる。
上記のいずれの構成においても、前記複数の演算装置の数を、一つのオリジナルデータから得られる部分データの個数である所定の数と同じかそれよりも大きくし、前記所定の個数の部分データが、それぞれ異なる演算装置に送信されるようにするとよい。
上述したシステムにおいて、前記複数の演算装置は、それぞれ異なる事業者により提供されるサービスに属するものであり、前記データ処理装置は、前記複数の演算装置とは異なる事業者により運営されるものであってもよい。
これにより、例えば、統計処理の主体となる事業者が、データ処理装置を運営管理し、既存の複数のクラウドサービス事業者から提供されるデータの保存及び演算サービスを利用して、統計処理結果提供サービスを行うようなことが可能になる。
本発明の原理に従う一つの例に係る統計処理結果提供サーバ装置は、秘匿されるべきオリジナルデータを取得することなく、複数の前記オリジナルデータに基づく統計処理の結果を提供するサービスのためのサーバ装置であり、それぞれが複数の入力データに基づいて所定の演算を行う手段を有する複数の演算装置と通信する手段と、前記複数の演算装置のそれぞれに、前記オリジナルデータの部分データを前記入力データとして演算を行わせ、該演算の結果を取得する手段と、前記複数の演算装置からの演算結果に基づいて、所定の統計処理を行う手段を備える。複数の前記部分データは、全ての部分を合わせると前記オリジナルデータが復元されるように前記オリジナルデータを秘密の比率に従って分割することにより、生成されたものとする。
この構成によれば、オリジナルデータが部分データにされて複数の演算装置に分散して渡されるため、いずれの演算装置もオリジナルデータを取得せず、サーバ装置もオリジナルデータを取得しない。よって、オリジナルデータを保持しないことで、秘匿すべき情報が漏洩するリスクを低減することが可能になる。一方で、サーバ装置が、複数の演算装置に部分データを入力とする演算を行わせ、その結果を利用することで、オリジナルデータの集合についての統計処理の結果を得ることが可能になる。また、第三者が一部の部分データを取得してもオリジナルデータは復元されないため、オリジナルデータの秘匿性を維持可能とすることができる。なお、秘密の比率は、オリジナルデータを分割する機器内にのみ、少なくとも分割時に存在するだけで、誰にも知られないか、オリジナルデータの保有者しか知ることのできないものである。
上記のサーバ装置において、前記複数の演算装置に前記オリジナルデータに属する全ての部分データが揃ったことを確認する手段と、前記確認のされた部分データのそれぞれを対象として対応する演算装置における前記所定の演算が行われるように、前記複数の演算装置のそれぞれへ指示を行う手段をさらに備えるようにしてもよい。
これにより、統計処理の対象に含めてしまうと結果に誤差等が生じる部分データを、演算から外すことが可能になる。例えば、同じオリジナルデータに属するある部分データは
対応する演算装置に受信され保存されているが、別の部分データは対応する演算装置に受信されていない場合に、各演算装置が、自身に保存されている部分データ全てを対象に演算してしまうと、それらの演算装置からの演算結果を処理した結果は、誤ったものとなってしまう。ここで、複数の演算装置を統括的に利用するサーバ装置が、全ての部分データが揃っているものを各演算装置に伝えれば、正しい統計処理結果を得ることが可能になる。
上記の構成において、サーバ装置が、前記確認のために、前記複数の演算装置のそれぞれから、該演算装置に保存された部分データが属するオリジナルデータの識別番号を受信する手段をさらに備えるようにしてもよい。
これにより、サーバ装置は、複数の演算装置を見渡して、全ての部分データが揃っている状態になったか否かを、各演算装置から個々の部分データを取得するようなことなく、確認することが可能になる。
上記の構成において、サーバ装置が、前記確認がされたオリジナルデータの識別番号の集合をシーケンス番号と対応付けて前記複数の演算装置へ通知する手段と、前回の通知の後に前記確認がされたオリジナルデータの識別番号の集合を次のシーケンス番号と対応付けて前記複数の演算装置へ通知する手段をさらに備え、前記複数の演算装置のそれぞれに、1つのシーケンス番号の指定と共に前記所定の演算の指示を送信することにより、指定されたシーケンス番号以前の複数のシーケンス番号に対応する識別番号の集合を併せて前記所定の演算の対象とする部分データが特定されるようにしてもよい。
これにより、数多くの部分データが各演算装置に受信され蓄積されていく間に、随時、各演算装置が有する数多くの部分データのうちどれが、全ての部分データが揃っている状態になったかという情報を、サーバ装置が各演算装置に共有させることが可能になる。
上記の構成において、サーバ装置は、あるオリジナルデータの集合を対象として、前記複数の演算装置に前記所定の演算を行わせた結果を取得した後に、該あるオリジナルデータの集合に限定された数のオリジナルデータを加えた集合を対象として、前記複数の演算装置に前記所定の演算を行わせた結果を取得することを禁止する手段をさらに備えるようにしてもよい。
上述したように、サーバ装置は、N個の部分データから演算した結果を、M個の演算装置のそれぞれから受信して処理することで、N個のオリジナルデータについて統計処理を行った結果を求めるのであるから、ある時点で、i=1,…,Nのオリジナルデータについての統計処理結果を求め、次の時点で、i=1,…,N,N+1のオリジナルデータについての統計処理結果を求めて、両者の差分を取れば、i=N+1のオリジナルデータを求めることができてしまう。
そのような時点で演算結果を取得することを禁止することにより、サーバ装置が、実質的に各演算装置から個々の部分データを取得してオリジナルデータを復元するような、悪意のある動作を行わないことを担保することが可能になる。
上記のサーバ装置において、それぞれが前記オリジナルデータを取得して前記部分データを生成する手段を有する複数のデータ入力装置と通信する手段と、利用可能な演算装置の中から、前記所定の統計処理を行うための前記複数の演算装置を選択する手段と、前記複数のデータ入力装置のそれぞれへ、選択された前記複数の演算装置に対して複数の前記部分データを送信できるように、前記複数の演算装置の情報を通知する手段をさらに備えるようにしてもよい。
これにより、どのような統計処理の結果を得たいかに応じて、その都度、利用する演算装置を選択することが可能になり、また、データ入力装置の数が多くても、サーバ装置からの通知によって一元的に部分データの送信先を設定することができるため、運用管理が簡単化される。
本発明の原理に従う一つの例に係るデータ入力装置は、秘匿すべきオリジナルデータを取得する手段と、全ての部分を合わせると前記オリジナルデータが復元されるように前記オリジナルデータを秘密の比率に従って分割し、所定の個数の部分データを生成する手段と、それぞれが複数の入力データに基づいて所定の演算を行う手段を有する複数の演算装置のうちの対応する演算装置への前記複数の入力データの1つとして、前記所定の個数の部分データのそれぞれを、保護された通信路により送信する手段とを備える。そして、前記複数の演算装置のそれぞれが、複数の前記データ入力装置からの部分データに基づいて前記所定の演算を行った結果を、前記複数の演算装置とは異なるサーバ装置が利用することにより、複数の前記データ入力装置により取得された複数の前記オリジナルデータに基づく統計処理の結果が、該オリジナルデータが秘匿されたまま求められる。
この構成によれば、秘匿すべきオリジナルデータが漏洩するリスクを低減しつつ、サーバ装置が、複数の演算装置に部分データを入力とする演算を行わせ、その結果を利用することで、オリジナルデータの集合についての統計処理の結果を得ることが可能になる。
上記のデータ入力装置において、送信した前記所定の個数の部分データを、それぞれ対応する前記演算装置に、許可された者からのみアクセスできるように保存させる手段と、取得した前記オリジナルデータの記憶を消去する手段とをさらに備えるようにし、前記オリジナルデータは、前記許可された者によりそれぞれ対応する前記演算装置に取得された前記所定の個数の部分データに基づいて復元されるものとしてもよい。
これにより、本来の保有者が後でオリジナルデータを取得したい場合への備えを、データ入力装置においてオリジナルデータを保存するのではなく、複数の演算装置に分散して保存されている部分データを取得してオリジナルデータを復元可能とすることにより、実現することができるため、秘匿すべき情報が漏洩するリスクを確実に低減することが可能になる。
上記のデータ入力装置において、前記サーバ装置にアクセスするための情報を記憶する手段と、前記対応する演算装置を特定するための情報を前記サーバ装置から受信する手段とをさらに備えるようにしてもよい。
これにより、データ入力装置は、サーバ装置にアクセスするための情報さえ記憶していれば、オリジナルデータを幾つに分割してどのように部分データを生成し、どの複数の演算装置へ渡すか等を、サーバ装置からの指定に従って行うことが可能になる。
上記のデータ入力装置において、前記部分データに、システムにおいて一意となる識別情報を付与する手段と、前記識別情報に基づいて求められる値が、前記複数の演算装置のそれぞれが担当する範囲のうちのいずれの範囲に属するかに従って、前記対応する演算装置を特定する手段とをさらに備えるようにしてもよい。
これにより、データ入力装置は、自身で、各部分データの送信先となる演算装置を決定することが可能になり、サーバ装置が、各オリジナルデータに関係する情報を取り扱わないようにすることができるとともに、一つのオリジナルデータから得られる各部分データが、それぞれ異なる演算装置に送信されるようにすることも可能になり、さらなるデータ
の安全性を実現することができる。
上記のデータ入力装置において、一つのオリジナルデータから得られる部分データの全てがいずれかの演算装置に受信されたことを確認した後に、確認済みであることを示す情報をいずれかの演算装置へ送信して登録する手段をさらに備えるようにしてもよい。
この構成と、以下に例示する各演算装置の構成とにより、各演算装置が有する部分データのうち、統計処理の対象に含めてしまうと結果に誤差等が生じる部分データを、演算から外すことが可能になる。
本発明の原理に従う一つの例に係る演算装置は、秘匿されるべきオリジナルデータを取得することなく、複数の前記オリジナルデータに基づく統計処理の結果を提供するサービスのためのサーバ装置と通信する手段と、それぞれが前記オリジナルデータを自装置の内部に秘匿する手段を有する複数のデータ入力装置から、複数の前記オリジナルデータのそれぞれに属する部分データを受信する手段と、複数の入力データに基づいて所定の演算を行う手段とを備える。そして、前記サーバ装置は、複数の前記演算装置からの演算結果に基づいて、所定の統計処理を行うものであり、前記演算装置は、前記複数のデータ入力装置から受信した複数の前記部分データのうち、該部分データに対応して、一つのオリジナルデータから得られる部分データの全てがいずれかの演算装置に受信されたことが確認済みであることを示す情報が登録されているものを、前記入力データとして選択する手段と、選択された前記入力データについての前記所定の演算の結果を、前記サーバ装置へ送信する手段とをさらに備える。
上述したデータ秘匿型統計処理システム、統計処理結果提供サーバ装置及びデータ入力装置の発明は、それぞれ互いに他の要素の発明としても、本システム全体もしくは個々の装置において行なわれる方法の発明としても、汎用のコンピュータシステムを本システムとして動作させるためのプログラム(又はそのプログラムを記録した記録媒体)の発明としても、汎用のコンピュータを個々の装置として動作させるためのプログラム(又はそのプログラムを記録した記録媒体)の発明としても、勿論成立するものである。以下に、そのうちの幾つかを例示する。
本発明の原理に従う一つの例に係るプログラムは、他のコンピュータと通信する機能を有するコンピュータを、データ秘匿型統計処理システムにおけるデータ処理装置として動作させるためのプログラムである。前記他のコンピュータとして、それぞれが複数の入力データに基づいて所定の演算を行う手段を有する複数の演算装置があり、前記データ処理装置は、秘匿されるべきオリジナルデータを取得することなく、複数の前記オリジナルデータに基づく統計処理の結果を提供するものである。そして、前記プログラムは、前記コンピュータに、前記複数の演算装置のそれぞれに、前記オリジナルデータの部分データを前記入力データとして演算を行わせ、該演算の結果を取得する手段と、前記複数の演算装置からの演算結果に基づいて、所定の統計処理を行う手段を備えさせるものであり、複数の前記部分データは、全ての部分を合わせると前記オリジナルデータが復元されるように前記オリジナルデータを秘密の比率に従って分割することにより、生成されたものである。
本発明の原理に従う別の例に係るプログラムは、秘匿すべきオリジナルデータを取得する機能と他のコンピュータと通信する機能とを有するコンピュータを、データ秘匿型統計処理システムにおけるデータ入力装置として動作させるためのプログラムである。前記他のコンピュータとして、それぞれが複数の入力データに基づいて所定の演算を行う手段を有する複数の演算装置がある。そして、前記プログラムは、前記コンピュータに、全ての部分を合わせると前記オリジナルデータが復元されるように前記オリジナルデータを秘密
の比率に従って分割し、所定の個数の部分データを生成する手段と、前記所定の個数の部分データのそれぞれを、前記複数の演算装置のうちの対応する演算装置への前記複数の入力データの1つとして、保護された通信路により送信する手段とを備えさせるものであり、前記複数の演算装置のそれぞれが、複数の前記データ入力装置からの部分データに基づいて前記所定の演算を行った結果を、前記複数の演算装置とは異なるサーバ装置が利用することにより、複数の前記データ入力装置により取得された複数の前記オリジナルデータに基づく統計処理の結果が、該オリジナルデータが秘匿されたまま求められる。
本発明の原理に従うさらに別の例に係るプログラムは、他のコンピュータと通信する機能を有するコンピュータを、データ秘匿型統計処理システムにおける複数の演算装置のうちの一つとして動作させるためのプログラムである。前記他のコンピュータとして、秘匿されるべきオリジナルデータを取得することなく、複数の前記オリジナルデータに基づく統計処理の結果を提供するサービスのためのサーバ装置と、それぞれが前記オリジナルデータを自装置の内部に秘匿する手段を有する複数のデータ入力装置とがある。そして、前記プログラムは、前記コンピュータに、前記複数のデータ入力装置から、複数の前記オリジナルデータのそれぞれに属する部分データを受信する手段と、複数の入力データに基づいて所定の演算を行う手段と、前記複数のデータ入力装置から受信した複数の前記部分データのうち、該部分データに対応して、一つのオリジナルデータから得られる部分データの全てがいずれかの演算装置に受信されたことが確認済みであることを示す情報が登録されているものを、前記入力データとして選択する手段と、選択された前記入力データについての前記所定の演算の結果を、前記サーバ装置へ送信する手段とを備えさせるものであり、前記サーバ装置は、前記複数の演算装置からの演算結果に基づいて、所定の統計処理を行うものである。
本発明の原理に従う一つの例に係る統計処理結果提供サービス方法は、秘匿すべきオリジナルデータを取得する手段を備える複数のデータ入力装置のそれぞれが、全ての部分を合わせると前記オリジナルデータが復元されるように前記オリジナルデータを秘密の比率に従って分割して得られた所定の個数の部分データを出力し、複数の入力データに基づいて所定の演算を行う手段を備える複数の演算装置のそれぞれが、複数の前記データ入力装置のそれぞれから出力された前記部分データを前記入力データとして前記演算を行った結果を出力し、データ処理装置が、前記複数の演算装置のそれぞれから出力された前記演算の結果を利用することにより、前記複数のデータ入力装置により取得された複数のオリジナルデータに基づく統計処理の結果を、該オリジナルデータを取得することなく求める。
本発明によれば、オリジナルデータを保持しないようにして秘匿すべき情報が漏洩するリスクを低減しつつ、オリジナルデータの集合について統計処理の結果を得ることが可能になる。
本発明の実施の形態に係るデータ秘匿型統計処理システム(以下、「本システム」という)において総和を求める例を説明する図 本システムにおいて総和を求める別の例を説明する図 本システムにおいて2乗和を求める例を説明する図 本システムにおいて2乗和を求める別の例を説明する図 本システムにおいて内積を求める例を説明する図 本システムの構成例を示す図 本システムにおける統計処理結果提供サーバの構成例を示す図 本システムにおける処理手順の例(1)〜(3)を説明する図 本システムにおける処理手順の例(4)〜(6)を説明する図 本システムにおける処理手順の例(7)〜(9)を説明する図 本システムにおける処理手順の例(10)〜(12)を説明する図 本システムにおける処理手順の例(13)〜(15)を説明する図 本システムにおける処理手順の例(16)〜(18)を説明する図 本システムにおける処理手順の例(19)〜(21)を説明する図 本システムにおける処理手順の例(22)〜(24)を説明する図 本システムの別の構成例を示す図 本システムにおける別の処理手順の例(1)〜(2)を説明する図 本システムにおける別の処理手順の例(3)〜(5)を説明する図 本システムにおける別の処理手順の例(6)〜(8)を説明する図 本システムのさらに別の構成例を示す図 本システムにおけるさらに別の処理手順の例(1)〜(2)を説明する図 本システムにおけるさらに別の処理手順の例(3)〜(6)を説明する図 本システムにおけるさらに別の処理手順の例(7)〜(10)を説明する図 本システムを教育の分野において応用する例を説明する図 本システムを医療の分野において応用する例を説明する図 本システムを流通業(小売業)の分野において応用する例を説明する図 本システムをテレマティクスの分野において応用する例を説明する図
以下、本発明の実施の形態にについて、例示のために、図面を用いて説明する。本システムは、プライバシ保護を考慮したクラウド型のデータ処理を行うためのシステムである。
現在、多数のセンサやICカードが普及しており、例えば、車は数億台、スマートフォンは十億台超、センサは数十億〜数兆個という、膨大な数のデータ生成源(本システムにおけるデータ入力デバイスとなり得るもの)が存在する。これらを対象とするM2M(マシンtoマシン)型のサービスも、種々考案されている。
これらのサービスの多くが、データの蓄積と解析処理を、データの本来の所有者ではない第三者がリソースを提供するクラウドを利用して、行うことが想定される。そうすると、クラウドにおいて扱われるデータには、プライバシ情報が大量に含まれることになり、データがクラウドの外部へ流出したときの情報漏洩のリスクが、より深刻になる。したがって、クラウドを利用する際には、情報漏洩のリスクを低減するために、クラウドにおけるデータの蓄積から解析処理まで通して、クラウド上のデータを秘匿化した状態にすることが、強く望まれる。
そこで、本システムでは、データ生成源からオリジナルデータを集める際に、オリジナルデータを秘匿化できるような分割(以下、「秘匿分割」ということがある)を行う。そして、オリジナルデータはどこへも渡さず、分割されたデータを複数のクラウドへ渡して、蓄積及び解析処理をさせる。このようにすれば、単一のクラウドからデータが流出しても、そこからオリジナルデータを復元することはできなくなる。
そして、本システムでは、各クラウドで個別に、統計解析処理を行い、クラウドとは別の解析事業者(「統計処理結果提供サービス事業者」ともいう)が、各クラウドの処理結果を集めて、本来の統計処理の結果を得る。ここで、各クラウドサービスを提供する事業者は、複数のクラウドから一度にデータが流出する可能性を低くするためにも、複数のクラウド上のデータを合わせてオリジナルデータを導き出そうとする試みをさせないためにも、別々の事業者とすることが好ましい。どのクラウドサービスを利用するかは、解析事
業者もしくはデータ生成源の所有者が決めればよい。
なお、クラウドサービスでは一時的な計算資源の利用も可能であるため、本システムを、データの永続保存が不要(オリジナルデータの復元が不要)な場合に適用する際には、クラウドサービスを用いて必要なときに必要なだけの計算資源を確保し、演算処理を行ったのち、不要になった計算資源を開放する(その演算処理のために保存した部分データを全て消去する)ようにしてもよい。これにより、より情報漏洩に対する安全性を高めることができることに加えて、物理的に冗長な計算資源を維持せずに済むようにすることが可能である。
解析事業者は、データ生成源の所有者とは異なる者でもよいし、例えば、一つの企業が自身の所有する多数のデータ生成源からのデータについて第三者のクラウドサービスを利用して蓄積及び解析処理を行う場合には、解析事業者がデータ生成源を所有する企業自身であってもよい。各データ生成源の所有者がそれぞれ異なる個人であって、解析事業者とも、解析事業者による統計処理結果を提供される利用者企業とも、異なるという応用例もあり得る。
本システムでは、このようにオリジナルデータを秘匿分割して複数のクラウドに分散させた状態を保ちながら処理を行って、多数のオリジナルデータの総和、2乗和、内積等を求めることができる。例えば、総和と2乗和が求められるだけでも、統計処理として、平均値や分散値を求めたり、基本的な推定や検定を行ったりすることができるため、多様な応用が可能である。しかも、オリジナルデータをどこにも存在させず、秘匿分割された状態のまま、且つ、一つのオリジナルデータから秘匿分割により生成された複数のデータが一箇所に集まることなく分散された状態のまま、統計処理の結果を求められるため、安全性を十分に高くすることが可能である。
図1は、各オリジナルデータを2つに分割して、N個のオリジナルデータの総和を求める本システムの例を示している。図中、説明のため、各々のデータ入力デバイス10−1〜10−Nが、各々のオリジナルデータx1〜xNを分割して、クラウドサービス設備30−1及び30−2へアップロードするように描かれているが、本システムでは、1つのデータ入力デバイスが複数のオリジナルデータについて、取得、秘匿分割、アップロードを行うことも、勿論可能である。なお、Nは、2以上の整数であり、億や兆の単位の数とすることも可能である。
各々のデータ入力デバイス10−iは、オリジナルデータxiを取得すると、xi=x1i+x2iを満たすようにxiを分割する。どのような比率で分割するかは、その都度、デバ
イス内で乱数を発生させる等により、ランダムに定め、その比率は、秘密とする(この処理を、「ランダムシェアによる秘匿分割」という)。
これにより、個々のx1i,x2iは、xiについて完全秘匿性を持つことになる(このこ
とを、「H(xi|x1i)=H(xi)&H(xi|x2i)=H(xi)」と表す)。これにより、単一のクラウドにおけるデータ流出ではオリジナルデータを復元できないことが、担保される。
そして、各々のデータ入力デバイス10−iは、第1のクラウドサービス設備30−1へ部分データx1iをアップロードし、第2のクラウドサービス設備30−2へ部分データx2iをアップロードする。
各々のクラウドサービス設備30−jは、アップロードされてきたデータを保存する。各データ入力デバイスからのアップロードのタイミングはそれぞれ任意の時点でよく、あ
る時点で、第1のクラウドサービス設備30−1にはN個の部分データ{x11,x12,…,x1N}が保存されており、第2のクラウドサービス設備30−2にはN個の部分データ{x21,x22,…,x2N}が保存されている状態になる。
この時点で、第1のクラウドサービス設備30−1は、N個の部分データx1iの総和を計算した結果f(X1)を統計処理結果提供サーバ50へ送信し、第2のクラウドサービ
ス設備30−2は、N個の部分データx2iの総和を計算した結果f(X2)を統計処理結
果提供サーバ50へ送信する。Nが膨大な数である場合、クラウド上の計算機リソースを使って処理ができることも、重要な利点となる。
統計処理結果提供サーバ50は、送信されてきた結果について、総和を求める処理を行う。「f(X1)+f(X2)」の値は、(x1i+x2i)のiを1からNまで合計した値と等しくなるから、オリジナルデータxiの総和を求めたことになる。本システムにより提
供されるサービスの利用者は、統計解析の結果のみを参照する。
なお、統計処理結果提供サーバ50は、各クラウドからN個の部分データについて計算処理を行った結果であるf(Xi)のみを取得し、個々の部分データには関知しないため
、統計処理結果提供サーバ50を運営する解析事業者に対しても、オリジナルデータの秘匿性を高く保つことが可能である。
図1は、各オリジナルデータを2個に分割する例であるが、図2は、各オリジナルデータをm個(2より多い数)に分割して、N個のオリジナルデータの総和を求める本システムの例を示している。図2の場合、m箇所の独立した異なるクラウド上で、分散して処理を行うことになる。
各々のデータ入力デバイス10−iは、オリジナルデータxiを取得すると、xi=x1i+x2i+…+xmiを満たすようにxiを分割する。どのような比率で分割するかは、その
都度、デバイス内で乱数を発生させる等により、ランダムに定め、その比率は、秘密とする。
このランダムシェアによる秘匿分割により、個々のx1i,x2i,…,xmiは、xiにつ
いて完全秘匿性を持ち、また、例えば、x1i〜x(m-1)iの値が分かっても、xmiの値が分からなければ、xiを復元できないことから、同時に (m−1) 箇所のデータ流出があっ
ても、秘匿性は維持されることになる。
そして、各々のデータ入力デバイス10−iは、m個のクラウドサービス設備30−jのそれぞれへ対応する部分データxjiをアップロードする。アップロードのタイミングはデータ入力デバイス毎に独立としてよいが、ある時点で、いずれのクラウドサービス設備30−jにもN個の部分データ{xj1,xj2,…,xjN}が保存されている状態になる。
この時点で、各々のクラウドサービス設備30−jは、N個の部分データxjiの総和を計算した結果f(Xj)を統計処理結果提供サーバ50へ送信する。統計処理結果提供サ
ーバ50は、送信されてきた結果について、総和を求める処理を行う。「f(X1)+f
(X2)+…+f(Xm)」の値は、(x1i+x2i+…+xmi)のiを1からNまで合計した値と等しくなるから、オリジナルデータxiの総和を求めたことになる。
図3は、各オリジナルデータを2つに分割して、N個のオリジナルデータの2乗和を求める本システムの例を示している。図1では、iが1からNまでのxiの総和を求める処
理をf(Xi)と記述しているが、図3及び図4では、同じ総和を求める処理をfΣ(Xi)と表し、iが1からNまでのxiの2乗和を求める処理をfS(Xi)と記述する。
また、図3では、統計処理結果提供サーバ50が、第1のクラウドサービス設備30−1からの2乗和fS(X1)と、第2のクラウドサービス設備30−2からの2乗和fS
2)と、第3のクラウドサービス設備30−3からの総和fΣ(X12)とを用いて、N
個のオリジナルデータの2乗和fS(X)を求める点を説明しているが、同時に、第1の
クラウドサービス設備30−1からの総和fΣ(X1)と、第2のクラウドサービス設備
30−2からの総和fΣ(X2)とを用いて、N個のオリジナルデータの総和fΣ(X)
を求めることも可能である。
各々のデータ入力デバイス10−iは、オリジナルデータxiを取得すると、ランダム
シェアによる秘匿分割を行い、xiはxi=x1i+x2iを満たすように分割される。統計処理の結果として2乗和を求めたい場合、各データ入力デバイス10−iはさらに、x1iとx2iを乗算した値を求めて、x1i,x2i,x1i2iの3つを、xiの部分データとして生
成する。図3のようにx1i2iをも生成してアップロードすべきか、図1のようにx1iとx2iだけでよいかを、統計処理結果提供サーバ50が各データ入力デバイス10−iに指示するようにしてもよい。
そして、各々のデータ入力デバイス10−iは、第1のクラウドサービス設備30−1へ部分データx1iをアップロードし、第2のクラウドサービス設備30−2へ部分データx2iをアップロードし、第3のクラウドサービス設備30−3へ部分データx1i2iをアップロードする。この場合、3つのクラウドのうちの1つにおいてデータが流出しても、オリジナルデータは復元されない。
各々のクラウドサービス設備30−jは、アップロードされてきたデータを保存する。各データ入力デバイスからのアップロードのタイミングはそれぞれ任意の時点でよく、ある時点で、第1のクラウドサービス設備30−1にはN個の部分データ{x11,x12,…,x1N}が保存されており、第2のクラウドサービス設備30−2にはN個の部分データ{x21,x22,…,x2N}が保存されており、第3のクラウドサービス設備30−3にはN個の部分データ{x1121,x1222,…,x1N2N}が保存されている状態になる。
この時点で、第1のクラウドサービス設備30−1は、N個の部分データx1iの総和と2乗和をそれぞれ計算した結果fΣ(X1)とfS(X1)を統計処理結果提供サーバ50
へ送信し、第2のクラウドサービス設備30−2は、N個の部分データx2iの総和と2乗和をそれぞれ計算した結果fΣ(X2)とfS(X2)を統計処理結果提供サーバ50へ送
信し、第3のクラウドサービス設備30−3は、N個の部分データx1i2iの総和と2乗和をそれぞれ計算した結果fΣ(X12)とfS(X12)を統計処理結果提供サーバ50へ
送信する。
統計処理結果提供サーバ50は、送信されてきた結果の中から、fS(X1)とfS(X2)とfΣ(X12)とを選択して、fΣ(X12)については2倍した上で、これら全てを合計する処理を行う。「fS(X1)+2fΣ(X12)+fS(X2)」の値は、(x1i+x2i2のiを1からNまで合計した値と等しくなるから、オリジナルデータxi 2の総和(即
ちxiの2乗和)を求めたことになる。
図3の構成において、統計処理結果提供サーバ50が、送信されてきた結果の中から、fΣ(X1)とfΣ(X2)とを選択して、総和を求める処理を行えば、オリジナルデータxiの総和が求められる。いずれの場合も、第3のクラウドからのfS(X12)の結果は用いられないし、2乗和のみを求める場合、第1及び第2クラウドからのfΣ(Xj)の結
果は用いられない。また、図3の構成で総和のみを求める場合、第1及び第2クラウドからのfS(Xj)の結果は用いられず、第3のクラウドからのいずれの結果も用いられない
ことになる。
結果が用いられない計算処理を行うことはリソースの浪費とも捉えられるが、クラウド上には豊富な計算機リソースがあることに加え、統計処理結果提供サーバ50で行いたい統計処理の内容に関わらず、各クラウドにおける計算処理の内容を同一にすることには、以下の利点がある。
図3の構成では、各クラウドサービス設備30−jは、アップロードされてきたデータが、xiを分割した部分xjiであるのか、2つの部分を乗算したxjikiであるのか、さ
らにいえばオリジナルデータなのか部分データなのかさえ、関知することなく、単に、入力されたデータに対して、iが1からNまでの総和及び2乗和を計算するという処理を、画一的に行う。よって、各クラウドにおいて行われる計算処理の内容から、統計処理結果提供サーバ50で行われる統計処理の内容や、各クラウドに保存されているデータの意味等を推測されることがなく、安全性をより高めることが可能である。
図3は、各オリジナルデータを2個に分割する例であるが、図4は、各オリジナルデータをm個(2より多い数)に分割して、N個のオリジナルデータの2乗和を求める本システムの例を示している。図4の場合、2m箇所の独立した異なるクラウド上で分散して処理を行うことになる。この場合、2m個のクラウドのうちの(m−1)個においてデータが流出しても、オリジナルデータは復元されない。
各々のデータ入力デバイス10−iは、オリジナルデータxiを取得すると、ランダム
シェアによる秘匿分割を行い、xi=x1i+x2i+…+xmiを満たすようにxiを分割する。そして、まず、m個の部分データxji(j=1,2,…,m)を生成する。
各データ入力デバイス10−iはさらに、xjiの値とxji以外のxkiを合計した値とを乗算した値をx’jiとして、m個の部分データx’ji(j=1,2,…,m)を生成する。例えば、m=4であれば、x’1i=x1i2i+x1i3i+x1i4iと、x’2i=x2i1i+x2i3i+x2i4iと、x’3i=x3i1i+x3i2i+x3i4iと、x’4i=x4i1i+x4i2i+x4i3iとを生成する。
そして、各々のデータ入力デバイス10−iは、m個のクラウドサービス設備30−j(j=1,2,…,m)のそれぞれへ対応する部分データxjiをアップロードし、さらにm個のクラウドサービス設備30−j(j=m+1,m+2,…,m+m)のそれぞれへ対応する部分データx’jiをアップロードする。アップロードのタイミングはデータ入力デバイス毎に独立としてよいが、ある時点で、いずれのクラウドサービス設備30−jにもiが1からNまでのN個の部分データが保存されている状態になる。
この時点で、各々のクラウドサービス設備30−jは、N個の部分データ(j=1〜mについてはxji、j=m+1〜2mについてはx’jiになるが、各クラウドはその相違を関知しない)の総和及び2乗和をそれぞれ計算した結果(j=1〜mについてはfΣ(Xi)とfS(Xi)、j=m+1〜2mについてはfΣ(X’i)とfS(X’i)になるが、各クラウドはその相違を関知しない)を統計処理結果提供サーバ50へ送信する。
統計処理結果提供サーバ50は、送信されてきた結果の中から、j=1〜mのクラウドからの結果についてはfS(Xi)を、j=m+1〜2mのクラウドからの結果についてはfΣ(X’i)を選択して、これら全てを合計する処理を行う。「fS(X1)+fS(X2
)+…+fS(Xm)+fΣ(X’1)+fΣ(X’2)+…+fΣ(X’m)」の値は、(
1i+x2i+…+xmi2のiを1からNまで合計した値と等しくなるから、オリジナル
データxi 2の総和(即ちxiの2乗和)を求めたことになる。
図4の構成でも、図3と同様に、オリジナルデータxiの総和と2乗和の両方を求める
ことができ、各クラウドから出力される結果のうち、j=1〜mのクラウドからのfΣ(Xi)が総和に利用され、j=1〜mのクラウドからのfS(Xi)とj=m+1〜2mの
クラウドからのfΣ(X’i)とが2乗和に利用されることになる。
上述したように総和と2乗和が得られると、以下に例示するように、基本的な統計解析手法への幅広い応用が可能になる。
標本平均mは、m=σ/N=fΣ(X)/Nにより求めることができ、最尤推定は、母集団が正規分布に従うとき、母集団に最尤平均値=mとして行うことができる。
標本分散s2は、s2=(S−σ2)/N=(fS(X)−{fΣ(X)}2)/Nにより
求めることができ、標準偏差sは、標本分散s2の正の平方根として求めることができる
T分布を用いた区間推定は、T=(m−μ)/(s/N1/2) が自由度(N−1)のt分布に従うことから、例えば、母平均μの信頼度95%の信頼区間を、
m−1.96×s/N1/2≦μ≦m+1.96×s/N1/2
と推定することができる。以上により、母集団の平均を推定することが可能になる。
母比率の信頼区間の推定は、標本比率r(例えば、N人のうちr人がYESと答えた)
が、r=fΣ(X)により求められると、母比率Rの95%信頼区間を、
r−1.96×(r(1−r)/N)1/2≦R≦r+1.96×(r(1−r)/N)1/2
と推定することができる。これは、YES/NOや選択式(又は機械のon/off)の統計データに応用することができる。
母分散の推定は、母集団は分散σ2の正規分布で、N個の標本の不偏分散をs2とすると、Z=(N−1)×s2/σ2が自由度(N−1)のχ2分布に従うことから、母分散σ2につき、同分布の下側95%点k1、上側95%点k2との関係が、
(N−1)×s2/k2≦σ2≦(N−1)×s2/k1
となることが推定することができる。これにより、母集団のばらつきを推定することが可能になる。
母平均の検定(t検定)は、T=(m−μ)/(s/N1/2) が自由度(N−1)のt分布に従うことを応用して、行うことができる。また、母集団A,Bに関する母平均の差の検定は、T=(mA−mB)/(Z1 1/2×Z2 1/2)が自由度(NA+NB−2)のt分布
に従うことを応用して、行うことができる。但し、
1=1/NA+1/NB
2=((NA−1)×sA 2+(NB−1)×sB 2)/(NA+NB−2)
である。これにより、母集団の平均を検定することが可能になる。
母比率の検定(χ2検定)は、χ2=(N−1)×s2/σ2 は自由度(N−1)のχ2分布に従うことを応用して、行うことができる。また、母集団A,Bの母分散の比較検定(F検定)は、F=(sA 2/σA 2)/(sB 2/σB 2)が自由度kA,kBのF分布に従うことから、母分散が同じであると仮定すると、F=sA 2/sB 2が自由度NA−1,NB−1のF分布に従うことを応用して、行うことができる。これにより、母集団のばらつきを検定することが可能になる。
一次元配置の分散分析は、例えば、施策1,2,…,kに効果の差があるかどうかを検
討するために行うことができ、全体平均m=ΣiΣjij/N(但し、N=Σii)、グル
ープ平均mi=Σjij/Ni、グループ間変動Q1=Σi(mi−m)2、グループ内変動Q2=ΣiΣj(xij−mi2 であるとき、F=Q1/Q2は自由度(k−1),k×(N−1
)のF分布に従うことを応用して、行うことができる。これは、例えば、施策、投薬、改修、改善、キャンペーン、広告等の取り組みの効果を確認する際に有効である。
二次元配置の分散分析は、上述した一次元配置の分散分析の簡単な拡張から、繰り返し有りと繰り返し無しの両方のケースについて、行うことができる。これは、複数の取り組みの組合せによる効果を確認する際に有効である。
以上、一つの要素に対する統計解析について説明したが、本システムは、複数の要素に対する統計解析にも、適用可能である。例えば、2つの要素への応用として、内積、共分散、相関係数、さらには、回帰方程式、決定係数等を求めることも可能である。
図5は、2つの要素の各オリジナルデータxi,yiをそれぞれ2つに分割して、N対のオリジナルデータの内積を求める本システムの例を示している。図5は、各オリジナルデータを2個に分割する例であるが、各オリジナルデータをm個(2より多い数)に分割して、m2個の独立した異なるクラウド上で分散して処理を行うことにより、N対のオリジ
ナルデータの内積を求めることも、勿論可能である。
第1の要素に属するオリジナルデータxiを取得する各々のデータ入力デバイス10−
iは、取得したオリジナルデータxiに対してランダムシェアによる秘匿分割を行い、xiはxi=x1i+x2iを満たすように分割される。第2の要素に属するオリジナルデータyiを取得する各々のデータ入力デバイス20−iは、取得したオリジナルデータyiに対し
てランダムシェアによる秘匿分割を行い、yiはyi=y1i+y2iを満たすように分割される。
そして、各々のデータ入力デバイス10−iは、第1及び第2のクラウドサービス設備30−1,2へ部分データx1iをアップロードし、第3及び第4のクラウドサービス設備30−3,4へ部分データx2iをアップロードし、各々のデータ入力デバイス20−iは、第1及び第3のクラウドサービス設備30−1,3へ部分データy1iをアップロードし、第2及び第4のクラウドサービス設備30−2,4へ部分データy2iをアップロードする。
各々のクラウドサービス設備30−jは、アップロードされてきたデータを保存する。各データ入力デバイスからのアップロードのタイミングはそれぞれ任意の時点でよく、ある時点で、第1のクラウドサービス設備30−1には第1の要素のN個の部分データ{x11,x12,…,x1N}及び第2の要素のN個の部分データ{y11,y12,…,y1N}が保存されており、第2のクラウドサービス設備30−2には第1の要素のN個の部分データ{x11,x12,…,x1N}及び第2の要素のN個の部分データ{y21,y22,…,y2N}が保存されており、第3のクラウドサービス設備30−3には第1の要素のN個の部分データ{x21,x22,…,x2N}及び第2の要素のN個の部分データ{y11,y12,…,y1N}が保存されており、第4のクラウドサービス設備30−3には第1の要素のN個の部分データ{x21,x22,…,x2N}及び第2の要素のN個の部分データ{y21,y22,…,y2N}が保存されている状態になる。
この時点で、第1のクラウドサービス設備30−1は、N対の部分データx1iとy1iの内積を計算した結果fP(X1,Y1)を統計処理結果提供サーバ50へ送信し、第2のク
ラウドサービス設備30−2は、N対の部分データx1iとy2iの内積を計算した結果fP
(X1,Y2)を統計処理結果提供サーバ50へ送信し、第3のクラウドサービス設備30
−3は、N対の部分データx2iとy1iの内積を計算した結果fP(X2,Y1)を統計処理
結果提供サーバ50へ送信し、第4のクラウドサービス設備30−4は、N対の部分データx2iとy2iの内積を計算した結果fP(X2,Y2)を統計処理結果提供サーバ50へ送
信する。
統計処理結果提供サーバ50は、送信されてきた結果の全てを合計する処理を行う。「fP(X1,Y1)+fP(X1,Y2)+fP(X2,Y1)+fP(X2,Y2)」の値は、(x1i+x2i)と(y1i+y2i)を乗算した値をiが1のものからNのものまで合計した値と等しくなるから、オリジナルデータxiとyiの内積を求めたことになる。
上述したように内積、さらに必要に応じて総和及び2乗和が得られると、以下に例示するように、様々な統計解析手法への幅広い応用が可能になる。
共分散CovXYは、mX,mYをそれぞれX,Yの標本平均として、
CovXY=1/N×Σ(xi−mX)(yi−mY
であり、mX=fΣ(X)/N,mY=fΣ(Y)/Nであるから、
CovXY=(fP(X,Y)−fΣ(X)fΣ(Y))/N
として求められる。
相関係数CCXYは、sX,sYをそれぞれX,Yの標本偏差として、
CCXY=CovXY/sXY
として求められる。ここで、sX=[(fS(X)−{fΣ(X)}2)/N]1/2,sY
[(fS(Y)−{fΣ(Y)}2)/N]1/2である。
そして、上述したように、平均mX,mY、分散sX 2,sY 2、共分散CovXYが求められれば、回帰分析における1次式の係数を求める公式への応用が可能であり、変動、残差平方和、決定係数も計算可能である。
図6は、図1〜5を参照して説明した本システムが採り得る構成の一例を示している。データ入力デバイス10−1〜10−N(図示しないが、内積を求める場合の20−1〜20−Nも、同様の構成を有する)と、クラウドサービス設備30−1〜30−Mと、統計処理結果提供サーバ50とが、ネットワーク40(例えば、インターネット)を介して接続されている。
なお、各データ入力デバイス10と各クラウドサービス設備30との間、各クラウドサービス設備30と統計処理結果提供サーバ50との間、統計処理結果提供サーバ50と各データ入力デバイス10との間に、それぞれ別個の通信網(例えば、無線網と有線網等)がある構成としてもよい。
それぞれの間の通信の安全性に関しては、現存する十分な安全性を持った通信の暗号化を行う。特に、各データ入力デバイス10と各クラウドサービス設備30との間は、個々の通信は、分割されたデータしか含んでいないが、あるデータ入力デバイスからm個のクラウドサービス設備への通信の全てを傍受すれば、オリジナルデータが復元できてしまうことから、例えば、オンラインショッピングや電子決済、商取引、ネットバンキング等などで利用されているのと同程度の安全性を持った暗号化技術を用いることが好ましい。
図6に示すとおり、各データ入力デバイス10は、データ取得部110と、取得したオリジナルデータを秘匿分割する秘匿分割部120と、秘匿分割により得られた部分データを暗号化された通信路で各クラウドサービス設備30へアップロードするアップロード部130を備える。データ取得部110は、機器が自動的にオリジナルデータを生成するも
のでもよいし、人間がオリジナルデータを入力するのでもよいし、別のデータベース等からオリジナルデータを抽出するのでもよい。
各データ入力デバイス10の備える制御部140は、統計処理結果提供サーバ50中の管理部(管理サーバ)500からの指示に従って、秘匿分割部120におけるデータの分割数や生成すべき部分データの種類を制御する。制御部140はまた、管理サーバ500からの指示に従って、アップロード部130における各部分データのアップロード先を制御する。
但し、アップロード先となるクラウドサービス設備が予め決まっている場合は、統計処理結果提供サーバ50と通信することなく、制御部140の内部に埋め込まれている制御情報に従って、これらの制御を行えばよい。
各クラウドサービス設備30は、各データ入力デバイス10からアップロードされたデータを保存するデータ保存部310と、保存された多数の部分データについて総和(322)、2乗和(324)、内積(326)等の演算処理を行う計算部320を備える。いずれの演算処理も、データ入力デバイスの数Nに対して計算量O(N)で演算が可能であり、億や兆のような単位の大きな数のNに対しても、実用的なレベルでシステムをスケール(拡張)することができる。
なお、計算部320は、本システムの用途に応じて必要な演算処理だけを備えれば十分であり、例えば、内積を求める用途には使わないことが予め決まっている場合は、内積演算部は備えなくてよい。あるいは、用途の拡大に備えて、計算部320に、種々の演算部を構成可能にしておき、管理サーバ500からの指示に従って、統計処理毎に用いる演算部を選択するようにしてもよい。
各クラウドサービス設備30の備える制御部330は、統計処理結果提供サーバ50中の管理部(管理サーバ)500からの指示に従って、計算部320が所定の演算処理を行うタイミングと、その演算処理の対象としてデータ保存部310から読み出すべきデータとを特定する。
各データ入力デバイス10は、例えば、コンピューティング機能を有する機器に本方式のためのプログラムをインストールすることにより、構成される。その機器は、汎用のコンピュータでも、プログラムが予め組み込まれて製造される専用の機器でもよい。秘匿分割前にオリジナルデータを一時記憶している部分や、秘匿分割のための秘密の比率を使用する部分等については、特に、ハードウェア又はソフトウェア上のセキュリティを高めたモジュール内に設けるようにしてもよい。
各データ入力デバイス10が、専用の機器で、記憶容量が少ない場合等には、機器内に埋め込んでおく初期情報を最小限にするため、統計処理を司るマネージャ(管理サーバ500)のアドレス(URLもしくはIPアドレス等)と、マネージャとの通信を暗号化するための鍵(公開鍵方式又は共通鍵方式)とを初期情報とし、各クラウド30のアドレス等は、マネージャを利用して取得するようにしてもよい。
各クラウドサービス設備30は、一般に提供されているクラウドサービスの設備を利用して、実現することができる。
統計処理結果提供サーバ50は、例えば、汎用のサーバに本方式のためのプログラムをインストールすることにより、構成可能であり、統計処理結果提供サービス自体を、クラウド上の計算サービスとして実現してもよい。
図7は、統計処理結果提供サーバ50の内部構成の一例を示している。統計処理結果提供サーバ50は、統計処理部570とともに、各データ入力デバイス10や各クラウドサービス設備30を制御する機能を備える管理部(管理サーバ)500と、その統計処理の結果を利用者へ提供するための結果提供インタフェース590を備える。
統計処理結果提供サーバ50が、独立の複数の利用者に対して結果を提供するために、独立の複数の統計処理を行うことを可能とする場合、各々の統計処理について、管理サーバ500の機能が設けられることになり、その各々をマネージャと呼ぶ。例えば、各マネージャに異なるURLを割り当てる等により、マネージャの識別が可能である。
図6及び後述する図7における各部の機能は、ハードウェア又はソフトウェア、もしくはハードウェアとソフトウェアの組み合わせにより、実現することができる。複数の統計処理が並存する場合、着目する統計処理lを司るマネージャ50−lが、管理サーバ500として機能する。
図8〜15は、本システムにおける処理手順の一例を説明するためのものである。本例の手順を実現する管理サーバ500が、例えば、図7に示す各部を備えるものとなる。
本例の手順を開始する前に、統計処理結果提供サービス事業者は、その統計処理のために用いるクラウドの個数と、各クラウドに必要な計算リソース(台数、CPU、メモリ等)を見積もり、本システムの設計を行う。そして、独立なクラウドサービス事業者を必要な個数選択して、クラウドリソースを契約する。その後、以下の手順を行い、必要な統計処理結果を得たら、情報漏洩のリスクを確実になくすため、データを初期化(完全削除)して、クラウドリソースを解約する。
図8は、マネージャの通知部510と各データ入力デバイス10との間で行われる準備段階の手順を示す。各データ入力デバイスは、予め決められたマネージャに問い合わせ[1]、マネージャは、M個の利用可能なクラウド群の中から、図1の例では2つのクラウドを選択して[2]、その情報を各データ入力デバイスへ通知する[3]。マネージャは、図3〜5の例ではどのクラウドにどの種類のデータをアップロードするかを示す情報も、各データ入力デバイスへ通知する[3]。また、マネージャは、処理対象データ利用クラウド登録部520において、各々のオリジナルデータのID(1デバイス1データの場合、データ入力デバイスのIDでもよい)に対応させて、データ入力デバイスへ通知した内容を記憶する[2]。
図9は、各データ入力デバイス10が、マネージャから通知された内容に従って、秘匿分割[4]により得られた各部分データを各クラウドサービス設備へアップロードする[5][6]手順を示す。各データ入力デバイス10は、部分データに加えて、マネージャのアドレス等の識別情報と、データのIDも、アップロードする。なお、[5]と[6]は、同時に行っても、時間差を設けて行ってもよく、また、各データ入力デバイス10における[4]〜[6]の実行タイミングは、独立でよい。つまり、データ入力デバイス間で同期を取る必要はなく、各々のデータ入力デバイス10でオリジナルデータ取得されたタイミングで、[4]〜[6]が実行される。
図10は、各クラウドサービス設備30が、それぞれのタイミングで、マネージャのアップロード状態把握部530へ、アップロードされたデータのIDを通知する[8][9]手順を示す。これらの通知を受けたマネージャは、処理対象データ利用クラウド登録部520において各データIDに対応させて登録されている複数のクラウドのうち、通知されたクラウドにアップロード済みのマークを付す等により、状態一時記憶部530に、登
録された複数のクラウドの一部から通知を受けた状態になったデータIDについて、その状態を記憶する[9]。これにより、マネージャは、部分データ自体を受信することなく、どのデータの部分データがどのクラウドに保存されたかを管理することが可能になる。
図11は、マネージャの計算対象データ特定部550が、各クラウドサービス設備30との間で、全てのクラウドに部分データが受信されているデータIDを共有するための手順を示す。マネージャは、状態一時記憶部530に記憶されているデータIDが、登録されている全てのクラウドから通知を受けている状態になると、そうなったデータID又はデータID群に対応するシーケンス番号を払い出し、シーケンス情報登録部560に、払い出したシーケンス番号とそのID又はID群とを登録する[10]。そして、登録されたID又はID群の記憶を状態一時記憶部530から消去する[10]。
マネージャの計算対象データ特定部550は、その後、所定のタイミングで、シーケンス番号と対応するID又はID群とを、各クラウドサービス設備30に通知する[11]。この通知は、シーケンス番号が払い出される毎に行ってもよいし、幾つかのシーケンス番号の情報をまとめて通知するようにしてもよい。各クラウドサービス設備30は、自身が保存しているアップロードされた部分データのIDと、通知されたシーケンス番号との対応を記憶する[12]。
図9に示すように、例えば、ID=3の部分データが、クラウドBには届いているが、クラウドAには届いていない場合、図10に示す管理により、図11で、クラウドA及びBの全てに部分データが届いているID=1,2だけが、シーケンス番号=1に対応することが通知される。
図12は、図9の続きであり、ID=4の各部分データと、ID=5の各部分データが、各データ入力デバイス10での秘匿分割により生成され[13]、各クラウドサービス設備へアップロードされている[14][15]。
図13は、図12のアップロードを受けた各クラウドが、図10で説明したように、マネージャへの通知を行い[16][17]、マネージャが状態を記憶する[18]様子を示している。
図14は、図13の通知を受けたマネージャが、図11で説明したシーケンス番号を払い出した後に、登録されている全てのクラウドから通知を受けている状態になったデータID又はデータID群に対応して、新たなシーケンス番号を払い出し[19]、各クラウドへ通知して[20]、対応を記憶させる[21]様子を示している。
例えば、ID=3の部分データがクラウドBに届かないまま、クラウドA及びBの全てにID=4,5の部分データが届いたとすると、マネージャは、ID=4,5を、新たなシーケンス番号=2に対応させて、登録する。
ここで、過去に遡って統計処理をする用途がないものであれば、マネージャは、シーケンス番号=1に対応して登録されているID=1,2を、シーケンス番号=2に対応するものとして追加し、シーケンス番号=1についての登録を削除してしまっても構わない。また、各クラウドは、マネージャから通知されたとおり、ID=1,2はシーケンス番号=1に対応し、ID=4,5はシーケンス番号=2に対応するものとして記憶して、後にシーケンス番号=2が指定された場合に、指定されたシーケンス番号及びそれより小さいシーケンス番号に対応するID群のデータが指定されたと解釈してもよいし、その解釈を示すようにシーケンス番号を書き換えて記憶してもよい。
図15は、マネージャが統計処理の結果を求める段階の手順を示す。マネージャの統計処理部570における計算依頼部575が、部分データを保存する全てのクラウドに対して、現在の(過去に遡って統計処理をする場合には指定した時点の)シーケンス番号を引数として、計算処理をするよう依頼する[22]。このとき、マネージャから各クラウドへ渡される情報は、シーケンス番号のみとすることができる。図3又は図4の例では、各クラウドで行われる処理は、総和及び2乗和の計算である。
依頼を受けた各クラウドサービス設備30では、既に、指定されたシーケンス番号にどのID群が対応するかが記憶されているため、これらのID群の部分データにつき計算処理を行って、その結果の値をマネージャへ返送する[23]。
マネージャの統計処理部570における集計部577は、依頼した全てのクラウドから結果が返送されると、それらの値を合計等して、求める統計値を算出する[24]。図3のように、一部のクラウドからの値については2倍する等、どのクラウドからの結果かによってマネージャにおいて行う処理が異なる場合は、処理対象データ利用クラウド登録部520に記憶されているクラウドとアップロードされるデータの種類との対応を示す情報を参照する。
上述したように、マネージャが管理するシーケンス番号を利用することで、全てのクラウドに部分データが揃ったデータ(上記の例では、ID=1,2,4,5)を対象にして、統計処理の結果を求めることができ、データの整合性が保証される。
なお、シーケンス番号を利用して、マネージャが、各クラウドに対して、計算処理の対象としてよいデータIDの情報を頻繁に共有することにより、通信の負荷を分散させるとともに、統計処理のために計算を依頼する際のレスポンスを速くすることが可能になる。
すなわち、データIDの情報共有をせず(計算対象データ特定部550を備えず)に、マネージャが、各クラウドに計算処理を依頼する際に、対象とすべき(全てのクラウドに部分データが揃っている)データIDの全てを通知する(上記の例では、シーケンス番号=2の代わりに、ID=1,2,4,5という情報を通知する)構成でも、本システムを実現することができるが、膨大な数のデータに対して統計処理を行う場合、シーケンス番号を利用した情報共有をしておく方が望ましい。
本システムにおいては、マネージャと、他の装置との間のAPI(インタフェース)は、オリジナルデータは勿論、オリジナルデータを構成する個々の部分データも、一切、受け渡しされることがないように構成される。また、オリジナルデータを取り扱う各データ入力デバイスと、他の装置との間のAPIは、データ入力デバイスからのアクセスのみが行われ(図8の[1]、図9の[5][6]等)、データ入力デバイスが外部からアクセスされることがないように構成される。そして、オリジナルデータは存在せず秘匿化されているものの、部分データは保持する各クラウドと、他の装置との間のAPIは、クラウドから部分データを取り出すことがないように構成される。これらのAPIによっても、秘匿すべきデータの安全性が保たれる。
上記のAPIに加えて、マネージャの統計処理部570を、あるシーケンス番号に対応するデータ群についての処理をした後、一定量(例えば、1万等、個々のデータについての推測を事実上不可能にするくらいの大量)以上のデータIDが処理対象として追加されるまでは、次の計算依頼を各クラウドへ送信しない構成とすると、さらに安全である。これは、マネージャが、例えば、シーケンス番号=2(ID=1,2,4,5)の総和を求めた後に、シーケンス番号=3(ID=1,2,4,5,7)の総和を求めると、引き算することにより、追加された個別要素であるID=7のオリジナルデータが求められてし
まうためである。
図6〜15で説明した本システムの構成例においては、各データ入力デバイスの生成した各部分データがそれぞれどのクラウドサービス設備に保存されるかという情報を、統計処理結果提供サーバ(マネージャ)が管理しているため、悪意を持った攻撃者に同サーバがクラックされると、各データの所有者や保存場所等のヒントを攻撃者に与える可能性がある。
そのような可能性までをも低減するためには、各データ入力デバイスと統計処理結果提供サーバが通信することがなく、各データ入力デバイス自身が各部分データを保存するクラウドサービス設備(アップロード先)を決定できるようにして、統計処理結果提供サーバは各データ入力デバイスを特定する情報を取り扱わないようにするとよい。
具体例としては、各データ入力デバイスが、コンシステントハッシュ(例えば、D.Karger et al. "Consistent Hashing and Random Trees: Distributed Caching Protocols for Relieving Hot Spots on the World Wide Web," Proceedings of the 29th Annual ACM
Symposium of Theory of Computing, pp.654-663 (1997)、I.Stoica et al. "Chord: A scalable peer-to-peer lookup service for internet applications," ACM SIGCOMM Computer Communication Review 31(4), p.149 (2001)等を参照)の仕組みを利用して、データの保存先となるクラウドサービス設備を決定することができる。
図16は、そのように構成した本システムの例であり、図6及び図7の例と同一の符号を付したブロックは、図6及び図7に関して説明したのと同一の機能を有する。
図16では、データ入力デバイス15−1〜15−Nと、クラウドサービス設備35−1〜35−Mと、統計処理結果提供サーバ55が、ネットワーク40を介して接続されているが、各データ入力デバイス15と統計処理結果提供サーバ55との間では、通信が行われない。
各データ入力デバイス15は、データ取得部110と、秘匿分割部120と、秘匿分割により得られた部分データを暗号化された通信路で各クラウドサービス設備35へアップロードするアップロード部130に加えて、コンシステントハッシュによりアップロード先を決定するためのキー生成部160及びハッシュ計算部170を備える。
各データ入力デバイス15の備える制御部150は、秘匿分割部120におけるデータの分割数や生成すべき部分データの種類を制御することに加えて、キー生成部160に、秘匿分割されたデータ毎に一意となるキー(例えば、UUID(ユニバーサリーユニーク識別子)、IPv6(インターネットプロトコルバージョン6)アドレス等)を生成させ、ハッシュ計算部170に、生成されたキーと、時刻と、シーケンス番号との合計を求めさせ、その合計値から、ハッシュ値を算出させることを行う。
例えば、各クラウドサービス設備35に、予め所定の範囲を持った値群(range)を割
り当てておくことにより、算出されたハッシュ値がそのrangeに含まれるクラウドサービ
ス設備を、データのアップロード先として特定することができる。この仕組みにより、制御部150が、部分データ毎に算出されたハッシュ値に従って、アップロード部130における各部分データのアップロード先を指定することで、各データ入力デバイスは、統計処理結果提供サーバ(マネージャ)に対して、アップロード先となるクラウドを問い合わせる必要がなくなる。
各クラウドサービス設備35の備える制御部335は、統計処理結果提供サーバ55中
の管理部(管理サーバ)505からの指示に従って、計算部320が所定の演算処理を行うタイミングを特定する。その演算処理の対象としてデータ保存部310から読み出すべきデータは、制御部335自身が特定する。
統計処理結果提供サーバ55は、管理サーバ505と、結果提供インタフェース590とを備える。管理サーバ505は、統計処理部572を備え、各クラウドサービス設備35へ計算処理を依頼し(計算依頼部576)、各依頼に対して返却される計算結果を集計して(集計部578)、統計処理の結果を求める。
図16における統計処理結果提供サーバ55(管理サーバ505)は、図7の統計処理結果提供サーバ50(管理サーバ500)と異なり、アップロード先のクラウドを各データ入力デバイスに通知するための機能や、アップロード状態を把握したり計算対象となるデータを特定したりするための機能を備えない。よって、統計処理結果提供サーバ55(マネージャ)は、個々のデータに関連するヒントを一切持たない。
また、マネージャは、自身の行う統計処理について、どのクラウドが利用され得るか(上述したrangeが割り当てられていると各データ入力デバイスが認識しているクラウドが
どれか)は把握しており、統計処理を行う際には、利用され得る全てのクラウドに対して総和および2乗和の計算を依頼するが、各クラウドにおける計算がどのデータ入力デバイスからのデータを対象として行われたものかは把握できないため、マネージャに対しても、データのセキュリティを担保することが可能となる。
さらに、コンシステントハッシュを利用することで、クラウドの数が増えてもスケーラビリティを担保することが可能であり、分散処理に強いシステムを実現することができるという利点もある。
図17〜19は、図16の構成例において、各データ入力デバイスXiが、取得したデ
ータAiを、2つの部分データai及びbiに秘匿分割して、複数(本例では4つだが、多
数とすることが可能)のクラウドから任意に選択した2つのクラウドにアップロードし、統計処理を行うための処理手順の一例を示している。
図17は、各データ入力デバイス15の内部で行われる準備段階の手順を示す。各データ入力デバイスは、2つの部分データのアップロード先のクラウドを決定するために、UUIDを利用して、2つのキー(k1及びk2)を生成する[1]。そして、それぞれのキー(k1及びk2)に対して、時刻(time)と、シーケンス番号n(1及び2)とを足し、それぞれの合計値のハッシュ値(h1及びh2)を算出する。
ここで、各クラウドには、0000〜ffffまでの値が割り振られており、リング(環)が形成されている。例えば、クラウドが4つの場合、クラウドAには0000〜3fffまでの範囲の値群を、クラウドBには4000〜7fffまでの範囲の値群を、クラウドCには8000〜bfffまでの範囲の値群を、クラウドDにはc000〜ffffまでの範囲の値群を割り当てることができる。本例では、割り当てる範囲を等分割しているが、あるクラウドに割り当てる値群の範囲を、別のクラウドに割り当てる値群の範囲よりも大きくしてもよい。そして、算出されたハッシュ値(h1及びh2)が、割り当てられた値群の中に含まれるクラウドを、それぞれ対応する部分データ(ai及びbi)のアップロード先として決定する[2]。
図18は、各データ入力デバイス15が、秘匿分割[3]により得られた各部分データ(ai及びbi)を、各クラウドサービス設備35へアップロードする[4][5]手順を示す。各データ入力デバイス15は、部分データのみをアップロードするのでもよいし、部分データに加えてマネージャのアドレス等(統計処理の識別情報となるもの)をアップ
ロードしてもよい。
また、[4]と[5]は、同時に行っても、時間差を設けて行ってもよいところ、一つのデータから秘匿分割で得られた全ての部分データが各クラウドに保存されるまでのタイムラグの間に、当該データを対象とする統計処理が行われてしまうと、結果に誤りが生じる。これを防ぐために、所定時間以上前の時刻が付されたデータに計算対象を限定する機能を、各クラウドが有している場合等には、部分データに加えて、時刻をアップロードしてもよい。但し、図16の構成例では、データのIDは、アップロードされない。
[4]と[5]の具体的な処理は、次のようになる。各データ入力デバイスXiは、そ
れぞれのタイミングで、[2]のn=1で生成したハッシュ値h1に相当するクラウドに
対して、[3]の部分データai(及び必要に応じて時刻)を送信する。図18の例では
、データ入力デバイスX1はクラウドBに対して、データ入力デバイスX2はクラウドAに対して、データ入力デバイスX3はクラウドAに対して、部分データaiを送信している。
上述した部分データaiのアップロード先での保存が、キーバリューストアによって行
われる場合、部分データaiは、対応するハッシュ値h1と共に送信される。そうすると、各クラウドは、ハッシュ値h1をキーとし、部分データai(及び必要に応じて時刻)をバリューとして、データ保存部310への保存を行い、データ入力デバイスXiへ受領確認
通知を行う[4]。
同様に、各データ入力デバイスXiは、それぞれのタイミングで、[2]のn=2で生
成したハッシュ値h2に相当するクラウドに対して、[3]の部分データbi(及び必要に応じて時刻)を送信する。図18の例では、データ入力デバイスX1はクラウドCに対し
て、データ入力デバイスX2はクラウドCに対して、データ入力デバイスX3はクラウドDに対して、部分データbiを送信している。
部分データbiは、対応するハッシュ値h2と共に送信され、各クラウドにおいて、ハッシュ値h2をキーとし、部分データbi(及び必要に応じて時刻)をバリューとして、データ保存部310への保存が行われる。そして、データ入力デバイスXiへ受領確認通知が
返される[5]。
図19は、統計処理結果提供サーバ(マネージャ)55が、複数のクラウドを利用して、統計処理の結果を求める段階の手順を示す。マネージャは、本統計処理のために利用する全てのクラウドに対して、各クラウドに対象となるデータが実際にアップロードされているか否かに関わらず(各データ入力デバイスが任意にアップロード先を選択するため、一部のクラウドがどのデータ入力デバイスからも選択されていないという状態も生じ得るが、マネージャではその状態を把握せずに)、計算処理(例えば、総和及び2乗和の計算)をするよう依頼する[6]。
依頼を受けた各クラウドサービス設備35では、データ保存部310に保存されている部分データを対象として計算処理を行い、その結果の値をマネージャへ返送する[7]。このとき、上述したタイムラグを考慮して、データ保存部310に保存されているデータのうち、現在時刻から所定時間以上前となる時刻が付されたものだけを、計算処理の対象とするようにしてもよい。また、一度統計処理の対象となった部分データを再び対象としないよう、計算処理をした部分データをデータ保存部310から削除するか、計算処理の対象を未処理の部分データに限定するようにしてもよい。
マネージャは、依頼した全てのクラウドから結果が返送される(対象となるデータが実際にアップロードされていないクラウドからは、ゼロという値が返送される)と、それら
の値を合計等して、求める統計値を算出する[8]。
以上の構成により、少なくとも図1及び図2の例の総和を求めることが可能である。図3及び図4の例の2乗和を求めるためには、図17に例示したクラウドのリングを少なくとも2つ設けておき、m個の部分データxjiについては、第1のリングに属する複数のクラウドの中から各部分データに対して決定されたクラウドへアップロードし、m個の部分データx’jiについては、第2のリングに属する複数のクラウドの中から各部分データに対して決定されたクラウドへアップロードする。
そして、マネージャ55は、各クラウドが第1のリングと第2のリングのいずれに属しているのかは把握しており、第1のリングに属するクラウドからの結果についてはfs
i)即ち総和を選択し、第2のリングに属するクラウドからの結果についてはfΣ(X
i)即ち2乗和を選択して、これらを合計する処理を行う。これにより、オリジナルデ
ータxiの2乗和を求めることができる。また、第1のリングに属するクラウドからの結
果のうちのfs(Xi)を選択して、これらを合計する処理を行えば、オリジナルデータxiの総和が求められる。
図16〜19で説明した構成例において、一つのデータを秘匿分割して得られた複数の部分データのうち、一部はクラウドに保存されているが、残りが保存されていない状態である場合に、そのような状態のデータを確実に除いて、統計処理の結果を求めることができるように、マーカーという仕組みを導入してもよい。
具体的には、各データ入力デバイスが、秘匿分割により得られた各部分データ用のハッシュ値に加えて、マーカー用のハッシュ値を算出し、一つのデータを構成する全ての部分データがクラウド上に保存されたことを確認した後で、クラウド上にマーカーを設定する。このマーカーを指し示す情報を、各データ入力デバイスが各部分データをクラウドに保存する際に、部分データと一緒に保存しておく。
これにより、統計処理結果提供サーバが計算処理をクラウドに依頼した際に、クラウドは、保存された部分データに紐づくマーカーが、設定されている場合、すなわち、そのデータを構成する全ての部分データが、それぞれいずれかのクラウドに保存済みである場合にのみ、データを計算の対象に含めることができ、データ入力デバイスからクラウドへのアップロードが途中であるデータが計算されるのを、確実に防ぐことができる。
上記の仕組みは、3相コミットメント(例えば、Dale Skeen, "A Formal Model of Crash Recovery in a Distributed System," IEEE Transactions on Software Engineering 9(3), pp.219-228 (May 1983)等を参照)の技術を応用して実現することも可能である。
上記のマーカーが、3相コミットメントの調整者に対応し、各データ入力デバイスが、3相コミットメントの参加者に対応するが、その際、各データ入力デバイスは、一意なキーにUUID等を利用するため、毎回アドレスが変わることで自らを隠蔽することになる。
図20は、そのように構成した本システムの例であり、図16の例と同一の符号を付したブロックは、図16に関して説明したのと同一の機能を有する。
図20では、データ入力デバイス17−1〜17−Nと、クラウドサービス設備37−1〜37−Mと、統計処理結果提供サーバ55が、ネットワーク40を介して接続されているが、各データ入力デバイス17と統計処理結果提供サーバ55との間では、通信が行われない。
各データ入力デバイス17は、データ取得部110と、秘匿分割部120と、キー生成
部160及びハッシュ計算部170と、アップロード部190とを備え、アップロード部190は、秘匿分割により得られた部分データを各クラウドサービス設備37へアップロードする機能に加えて、マーカーを設定する情報(以下、「マーカー情報」という)をいずれかのクラウドサービス設備37へアップロードする機能を有する。
各データ入力デバイス17の備える制御部180は、図16の制御部150が有する機能に加えて、マーカー用に、キー生成部160における一意なキー(UUID等)の生成と、ハッシュ計算部170における生成されたキーと、時刻と、シーケンス番号との合計値からのハッシュ値の算出とを、行わせる機能を有する。また、制御部180は、アップロード部190と連携して、秘匿分割により得られた全ての部分データがクラウド上に保存されたことを確認した後に、マーカー情報をアップロードする。
各クラウドサービス設備37の備えるデータ保存部317は、アップロードされた各部分データと共に、マーカー情報の保存先を指し示す情報を保存する機能を有し、各クラウドサービス設備37は、データ保存部317に加えて、アップロードされたマーカー情報を保存するためのマーカー保存部350と、自身のもしくは他のクラウドサービス設備37のマーカー保存部350におけるマーカー情報の保存状況を問い合わせるためのマーカー問い合わせ部340とを備える。
各クラウドサービス設備37の備える制御部337は、統計処理結果提供サーバ55中の管理部(管理サーバ)505からの指示に従って、計算部320が所定の演算処理を行うタイミングを特定する。制御部337は、その演算処理をデータ保存部317に保存された部分データのうちのどれを対象として行うべきかを、マーカー問い合わせ部340と連携して、特定する。
図21〜23は、図20の構成例において、各データ入力デバイスXiが、取得したデ
ータAiを、2つの部分データai及びbiに秘匿分割して、複数(本例では4つだが、多数とすることが可能)のクラウドから任意に選択した2つのクラウドにアップロードし、マーカーmiを用いて整合性を担保しながら、統計処理を行うための処理手順の一例を示
している。
図21は、各データ入力デバイス17の内部で行われる準備段階の手順を示す。各データ入力デバイスは、2つの部分データ及びマーカー情報のアップロード先のクラウドを決定するために、UUIDを利用して、3つのキー(k0、k1、k2)を生成する[1]。
そして、それぞれのキー(k0、k1、k2)に対して、時刻(time)と、シーケン
ス番号n(0、1、2)とを足し、それぞれの合計値のハッシュ値(h0、h1、h2)を
算出する。そして、算出されたハッシュ値(h0、h1、h2)が、割り当てられた値群の
中に含まれるクラウドを、それぞれ対応するマーカー及び部分データ(mi、ai、bi
のアップロード先として決定する[2]。
図22は、各データ入力デバイス17が、秘匿分割[3]により得られた各部分データ(ai及びbi)を、各クラウドサービス設備37へアップロードし[4][5]、その受領確認が得られた後に、それら部分データに対応するマーカー(mi)を、クラウドサー
ビス設備37へアップロードする[6]手順を示す。
各データ入力デバイス17は、それぞれの部分データと一緒に、マーカー情報の保存先を指し示す情報(miに対応するハッシュ値h0)をアップロードする。これらに加えて、図16の構成例と同様に、マネージャのアドレス等(統計処理の識別情報となるもの)をアップロードしてもよい。なお、図20の構成例でも、データのIDは、アップロードさ
れない。
また、一つのデータから秘匿分割で得られた複数の部分データのうちの一部についてのアップロードのトランザクションがエラーとなった場合に、残りの部分データについてのトランザクションを解除する(保存されたデータを削除する等)ために、トランザクションにかかる時間の上限を超えたこと(タイムアウト)を検出する機能を、各クラウドが有している場合等には、部分データに加えて、時刻をアップロードしてもよい。
[4]〜[6]の具体的な処理は、次のようになる。各データ入力デバイスXiは、そ
れぞれのタイミングで、[2]のn=1で生成したハッシュ値h1に相当するクラウドに
対して、[3]の部分データai及びハッシュ値h0(及び必要に応じて時刻)を送信する。図22の例では、データ入力デバイスX1はクラウドBに対して、データ入力デバイス
2はクラウドAに対して、データ入力デバイスX3はクラウドAに対して、部分データai及びハッシュ値h0を送信している。
上述した部分データai及びハッシュ値h0のアップロード先での保存が、キーバリューストアによって行われる場合、部分データai及びハッシュ値h0は、対応するハッシュ値h1と共に送信される。そうすると、各クラウドは、ハッシュ値h1をキーとし、部分データai及びハッシュ値h0(及び必要に応じて時刻)をバリューとして、データ保存部317への保存を行い、データ入力デバイスXiへ受領確認通知を行う[4]。
同様に、各データ入力デバイスXiは、それぞれのタイミングで、[2]のn=2で生
成したハッシュ値h2に相当するクラウドに対して、[3]の部分データbi及びハッシュ値h0(及び必要に応じて時刻)を送信する。図22の例では、データ入力デバイスX1はクラウドCに対して、データ入力デバイスX2はクラウドCに対して、データ入力デバイ
スX3はクラウドDに対して、部分データbi及びハッシュ値h0を送信している。
部分データbi及びハッシュ値h0は、対応するハッシュ値h2と共に送信され、各クラ
ウドにおいて、ハッシュ値h2をキーとし、部分データbi及びハッシュ値h0(及び必要
に応じて時刻)をバリューとして、データ保存部317への保存が行われる。そして、データ入力デバイスXiへ受領確認通知が返される[5]。
各データ入力デバイスXiは、[4]及び[5]の受領確認通知を受信する(データの
クラウド上での保存に成功する)と、[2]のn=0で生成したハッシュ値h0に相当す
るクラウドに対して、マーカー(mi)を設定する値(例えば、1)を送信する。図22
の例では、データ入力デバイスX1はクラウドAに対して、データ入力デバイスX2はクラウドBに対して、データ入力デバイスX3はクラウドDに対して、マーカー(mi)を設定する値を送信している。
上述したマーカー(mi)のクラウド上での設定が、キーバリューストアによって行わ
れる場合、マーカーを設定する値(例えば、1)は、対応するハッシュ値h0と共に送信
される。そうすると、各クラウドは、ハッシュ値h0をキーとし、値1をバリューとして
、マーカー保存部350への保存を行い、データ入力デバイスXiへ受領確認通知を行う
[6]。
図23は、統計処理結果提供サーバ(マネージャ)55が、複数のクラウドを利用して、統計処理の結果を求める段階の手順を示す。マネージャは、本統計処理のために利用する全てのクラウドに対して、各クラウドに対象となるデータが実際にアップロードされているか否かに関わらず、計算処理(例えば、総和及び2乗和の計算)をするよう依頼する[7]。
依頼を受けた各クラウドサービス設備37では、データ保存部317に部分データと一緒に保存されているハッシュ値h0(マーカー情報の保存先を指し示す情報)を読み出し
、そのハッシュ値h0に相当するクラウドに対して、マーカーが設定されているか、すな
わち、ハッシュ値h0をキーとしてマーカーを設定する値(1)がマーカー保存部350
に保存されているかの確認を行う[8]。
図23の例では、クラウドAは、自身が保存している部分データa2、a3についてのマーカー問い合わせ[8]を、それぞれクラウドB、Dに対して行い、クラウドBは、自身が保存している部分データa1についてのマーカー問い合わせ[8]をクラウドAに対し
て行い、クラウドCは、自身が保存している部分データb1、b2についてのマーカー問い合わせ[8]を、それぞれクラウドA、Bに対して行い、クラウドDは、自身が保存している部分データb3についてのマーカー問い合わせ[8]を自身の内部で行っている。
問い合わせを受けたクラウドは、問い合わせに係るキー(ハッシュ値h0)とバリュー
の組を自身が保存していればそのバリュー(1)を、マーカー(mi)の値として、問い
合わせ元のクラウドへ返送する。保存していなければ、エラーを示す値(1以外の値)を、マーカーの値として返送する。
問い合わせ元のクラウドでは、[8]で返送されたマーカー(mi)の値が1であれば
、そのハッシュ値h0と一緒に保存されていた部分データを対象として計算処理を行い、
その結果の値をマネージャへ返送する[9]。マーカーの値が1以外である部分データは、計算対象に含めないことにより、一つのデータを構成する全ての部分データがクラウド上に揃っているデータのみに基づいて、正確な統計処理を行うことが可能である。
また、問い合わせ元のクラウドは、問い合わせ先のクラウドから1という値が返送されなかったマーカーのハッシュ値h0と一緒に保存されていた時刻をチェックして、その時
刻が現在時刻から所定時間(例えば10分)以上前であれば、トランザクションが正常に完了されなかったとみなして、一緒に保存されていた部分データを削除してもよい。所定時間以内であれば、まだトランザクションの途中である可能性があるとみなして、その部分データを計算対象には含めずに、そのまま残せばよい。
マネージャは、依頼した全てのクラウドから結果が返送される(対象となるデータが実際にアップロードされていないクラウドからは、ゼロという値が返送される)と、それらの値を合計等して、求める統計値を算出する[10]。
なお、図6〜15で説明した例と、図16〜19で説明した例と、図20〜23で説明した例とは、それぞれ適宜組み合わせて実施することも可能である。
例えば、図5の例の内積を求める構成として、1つのデータ毎に4つのクラウドを各データ入力デバイス自身が(マネージャから指示を受けることなく)特定できるようにしつつ、各データ入力デバイスから各クラウドへ、部分データと共にデータのID(i)をアップロードする(クラウドからマネージャへは報告しない)ことで、統計処理結果提供サーバ(マネージャ)が管理する情報を少なくすることが可能になる。このときに、4つのクラウドのいずれか又は他のクラウドにマーカーを登録し、各クラウドが内積を計算する対象をマーカーが登録されている部分データに限ることで、マネージャが管理を行わずに正確な統計処理結果を求めることも可能になる。
また、例えば、図16〜19について説明したのと同様に、図20〜23においても、2乗和を求めるために、クラウドのリングを少なくとも2つ設けることができる。その場
合に、マーカーを登録するクラウドとして、第1のリングに属するクラウドを選択しても、第2のリングに属するクラウドを選択しても、いずれのリングにも属さないクラウドを選択しても構わない。
以上、統計処理について述べてきたが、本システムは、オリジナルデータの所有者が、統計処理のために部分データをアップロードする各クラウドを利用して、オリジナルデータを秘匿化して分散保存しておき、他者はこれにアクセスできないようにしつつ、本人は参照したいときにいつでもオリジナルデータを復元できるように構成することも可能である。
このためには、各クラウドサービス設備30のデータ保存部310に、鍵によるアクセス権限の検証機能を追加し、例えば、データ入力デバイス10から各クラウドサービス設備30へ部分データをアップロードする際に、その鍵の情報も付加してアップロードする。そして、各クラウドサービス設備30のデータ保存部310は、部分データとともに鍵によるアクセス情報を保存しておき、部分データに対するアクセスを受けると、アクセスしてきた者が対応する鍵を所有していることが検証された場合のみ、部分データの取得を許可する。
別の例として、各クラウドサービス設備30のデータ保存部310に、予めデータの所有者の鍵の情報を保存しておき、部分データがアップロードされた際に、その部分データに対応する鍵の情報を付加して(例えば、部分データをその鍵で暗号化して)保存するようにしてもよい。いずれの例でも、オリジナルデータの所有者は、部分データを保存する全てのクラウドにアクセスして、それぞれ鍵を用いて部分データを取得し、全ての部分データを集めることにより、オリジナルデータを復元することができる。
図24〜27は、本システムのあり得る応用例について、そのごく一部を説明するものである。図24は、教育分野への応用であり、例えば、オンライン試験や模擬試験等を対象とする統計処理に適用可能である。図25は、医療(ヘルスケア)分野への応用であり、例えば、血圧、体重、体脂肪率等を対象とする統計処理に適用可能である。図26は、流通業分野への応用であるが、それに限らず、例えば、生活実態調査等の匿名アンケート調査における統計処理にも適用可能である。図27は、テレマティクス(自動車)分野への応用であり、例えば、速度、加速度等の走行情報を対象とする統計処理に適用可能であるが、それ以外の分野におけるリスク管理への応用等も可能である。
以上、本発明の実施形態について例示的に説明したが、本明細書における説明により本発明が限定されるものではなく、上述の実施形態を本発明の範囲内で当業者が適宜、種々に変形、応用して実施できることは勿論である。

Claims (16)

  1. それぞれが秘匿すべきオリジナルデータを取得する手段を備える複数のデータ入力装置と、
    それぞれが複数の入力データに基づいて所定の演算を行う手段を備える複数の演算装置と、
    前記複数の演算装置のそれぞれが前記オリジナルデータの部分データを前記入力データとして演算を行った結果を利用することにより、前記複数のデータ入力装置により取得された複数のオリジナルデータに基づく統計処理の結果を、該オリジナルデータを取得することなく求める手段を備えるデータ処理装置とを備え、
    前記データ入力装置は、
    全ての部分を合わせると前記オリジナルデータが復元されるように前記オリジナルデータをM個(Mは2以上の整数)に分割し、M以上の個数の部分データを生成する手段と、
    それぞれの前記部分データを、(M−1)個の前記部分データを入手しても前記オリジナルデータが復元できないように、前記複数の演算装置のうち対応する演算装置へ送信する手段とを備え、
    前記M以上の個数の部分データは、前記オリジナルデータを分割した各々の部分の値にそれぞれ基づいて生成される部分データと、複数の前記部分の値に基づく演算であって前記複数のオリジナルデータに基づく統計処理の一部を成す演算を行って生成される部分データとを含むことを特徴とするデータ秘匿型統計処理システム。
  2. 前記部分データのそれぞれが、各々異なる前記演算装置へ送信されることを特徴とする請求項1に記載のデータ秘匿型統計処理システム。
  3. 前記演算装置は、
    複数の前記データ入力装置から受信した複数の前記部分データに基づいて所定の演算を行って得た演算結果を、前記データ処理装置へ送信する手段を備え、
    前記データ処理装置は、
    複数の前記演算装置から受信した複数の前記演算結果に基づいて所定の統計処理を行う手段を備えることを特徴とする請求項1又は2に記載のデータ秘匿型統計処理システム。
  4. 前記演算装置が行う所定の演算は、複数の前記部分データの総和の演算を含み、
    前記データ処理装置が行う所定の統計処理は、複数の前記演算結果の総和を計算する処理を含むことを特徴とする請求項3に記載のデータ秘匿型統計処理システム。
  5. 前記データ処理装置は、
    前記複数のデータ入力装置のそれぞれへ、前記部分データを前記複数の演算装置のうちいずれへ送信すべきかを指示する手段と、
    前記複数の演算装置のそれぞれへ、前記複数のデータ入力装置から受信した複数の前記部分データのうちいずれを対象として所定の演算を行うべきかを指示する手段とを備えることを特徴とする請求項1〜のいずれか1項に記載のデータ秘匿型統計処理システム。
  6. 前記複数のデータ入力装置のそれぞれは、
    前記部分データを前記複数の演算装置のうちいずれへ送信すべきかを決定する手段を備え、
    前記複数の演算装置のそれぞれは、
    前記複数のデータ入力装置から受信した複数の前記部分データのうちいずれを対象として所定の演算を行うべきかを決定する手段を備えることを特徴とする請求項1〜のいずれか1項に記載のデータ秘匿型統計処理システム。
  7. 前記複数の演算装置の数は、一つのオリジナルデータから得られる部分データの個数同じかそれよりも大きことを特徴とする請求項1〜のいずれか1項に記載のデータ秘匿型統計処理システム。
  8. 前記複数の演算装置は、それぞれ異なる事業者により提供されるサービスに属するものであり、
    前記データ処理装置は、前記複数の演算装置とは異なる事業者により運営されるものであることを特徴とする請求項1〜のいずれか1項に記載のデータ秘匿型統計処理システム。
  9. それぞれが秘匿すべきオリジナルデータを取得する手段を備える複数のデータ入力装置と、
    それぞれが複数の入力データに基づいて所定の演算を行う手段を備える複数の演算装置と、
    前記複数の演算装置のそれぞれが前記オリジナルデータの部分データを前記入力データとして演算を行った結果を利用することにより、前記複数のデータ入力装置により取得された複数のオリジナルデータに基づく統計処理の結果を、該オリジナルデータを取得することなく求める手段を備えるデータ処理装置とを備え、
    前記データ入力装置は、
    全ての部分を合わせると前記オリジナルデータが復元されるように前記オリジナルデータをM個(Mは2以上の整数)に分割し、M以上の個数の部分データを生成する手段と、
    それぞれの前記部分データを、(M−1)個の前記部分データを入手しても前記オリジナルデータが復元できないように、前記複数の演算装置のうち対応する演算装置へ送信する手段とを備え、
    前記M以上の個数の部分データは、前記オリジナルデータを分割した各々の部分の値にそれぞれ基づいて生成される部分データと、複数の前記部分の値に基づく演算を行って生成される部分データとを含み、
    前記演算装置は、
    複数の前記データ入力装置から受信した複数の前記部分データに基づいて所定の演算を行って得た演算結果を、前記データ処理装置へ送信する手段を備え、
    前記データ処理装置は、
    複数の前記演算装置から受信した複数の前記演算結果に基づいて所定の統計処理を行う手段を備え、
    前記データ入力装置は、前記オリジナルデータを分割した各々の部分の値からM個の部分データを生成し、互いに異なる2つの部分同士を乗算した値に基づいて1〜M個の部分データを生成し、(M+1)〜(2M)個の部分データをそれぞれ対応する演算装置へ送信するものであり、
    前記演算装置が行う所定の演算は、複数の前記部分データの総和及び2乗和の少なくとも一方の演算を含み、
    前記データ処理装置が行う所定の統計処理は、複数の前記演算結果のうち、前記各々の部分の値に対応する部分データの2乗和及び前記部分同士を乗算した値に対応する部分データの総和について、総和を計算する処理を含むことを特徴とするデータ秘匿型統計処理システム。
  10. それぞれが秘匿すべきオリジナルデータを取得する手段を備える複数のデータ入力装置と、
    それぞれが複数の入力データに基づいて所定の演算を行う手段を備える複数の演算装置と、
    前記複数の演算装置のそれぞれが前記オリジナルデータの部分データを前記入力データとして演算を行った結果を利用することにより、前記複数のデータ入力装置により取得された複数のオリジナルデータに基づく統計処理の結果を、該オリジナルデータを取得することなく求める手段を備えるデータ処理装置とを備え、
    前記データ入力装置は、
    全ての部分を合わせると前記オリジナルデータが復元されるように前記オリジナルデータをM個(Mは2以上の整数)に分割し、M以上の個数の部分データを生成する手段と、
    それぞれの前記部分データを、(M−1)個の前記部分データを入手しても前記オリジナルデータが復元できないように、前記複数の演算装置のうち対応する演算装置へ送信する手段とを備え、
    前記M以上の個数の部分データは、前記オリジナルデータを分割した各々の部分の値にそれぞれ基づいて生成される部分データと、複数の前記部分の値に基づく演算を行って生成される部分データとを含み、
    前記演算装置は、
    複数の前記データ入力装置から受信した複数の前記部分データに基づいて所定の演算を行って得た演算結果を、前記データ処理装置へ送信する手段を備え、
    前記データ処理装置は、
    複数の前記演算装置から受信した複数の前記演算結果に基づいて所定の統計処理を行う手段を備え、
    前記データ入力装置は、前記オリジナルデータを分割した各々の部分を2乗した値からM個の部分データを生成し、互いに異なる2つの部分同士を乗算した値に基づいて1〜M個の部分データを生成し、(M+1)〜(2M)個の部分データをそれぞれ対応する演算装置へ送信するものであり、
    前記演算装置が行う所定の演算は、複数の前記部分データの総和の演算を含み、
    前記データ処理装置が行う所定の統計処理は、複数の前記演算結果の総和を計算する処理を含むことを特徴とするデータ秘匿型統計処理システム。
  11. それぞれが秘匿すべきオリジナルデータを取得する手段を備える複数のデータ入力装置と、
    それぞれが複数の入力データに基づいて所定の演算を行う手段を備える複数の演算装置と、
    前記複数の演算装置のそれぞれが前記オリジナルデータの部分データを前記入力データとして演算を行った結果を利用することにより、前記複数のデータ入力装置により取得された複数のオリジナルデータに基づく統計処理の結果を、該オリジナルデータを取得することなく求める手段を備えるデータ処理装置とを備え、
    前記データ入力装置は、
    全ての部分を合わせると前記オリジナルデータが復元されるように前記オリジナルデータをM個(Mは2以上の整数)に分割し、M以上の個数の部分データを生成する手段と、
    それぞれの前記部分データを、(M−1)個の前記部分データを入手しても前記オリジナルデータが復元できないように、前記複数の演算装置のうち対応する演算装置へ送信する手段とを備え、
    前記M以上の個数の部分データは、前記オリジナルデータを分割した各々の部分の値にそれぞれ基づいて生成される部分データと、複数の前記部分の値に基づく演算を行って生成される部分データとを含み、
    前記演算装置は、
    複数の前記データ入力装置から受信した複数の前記部分データに基づいて所定の演算を行って得た演算結果を、前記データ処理装置へ送信する手段を備え、
    前記データ処理装置は、
    複数の前記演算装置から受信した複数の前記演算結果に基づいて所定の統計処理を行う手段を備え、
    前記複数のデータ入力装置は、同数ずつの互いに対応する第1のデータ入力装置と第2のデータ入力装置とを含み、
    前記第1のデータ入力装置及び前記第2のデータ入力装置は、前記オリジナルデータを分割した各々の部分の値からM個の部分データを生成し、M個の部分データのそれぞれを、(M )個の前記演算装置のうち対応するM個の演算装置へ送信するものであり、
    前記演算装置が行う所定の演算は、前記第1のデータ入力装置からの部分データ列と前記第2のデータ入力装置からの部分データ列との内積を求める演算を含み、
    前記データ処理装置が行う所定の統計処理は、前記(M )個の演算装置から受信した演算結果の総和を計算する処理を含むことを特徴とするデータ秘匿型統計処理システム。
  12. 秘匿されるべきオリジナルデータを取得することなく、複数の前記オリジナルデータに基づく統計処理の結果を提供するサービスのためのサーバ装置であって、
    それぞれが複数の入力データに基づいて所定の演算を行う手段を有する複数の演算装置と通信する手段と、
    前記複数の演算装置のそれぞれに、前記オリジナルデータの部分データを前記入力データとして演算を行わせ、該演算の結果を取得する手段と、
    前記複数の演算装置からの演算結果に基づいて、所定の統計処理を行う手段とを備え、
    前記部分データは、前記オリジナルデータを取得したデータ入力装置が、全ての部分を合わせると前記オリジナルデータが復元されるように前記オリジナルデータをM個(Mは2以上の整数)に分割し、M以上の個数の部分データを生成し、それぞれの前記部分データを、(M−1)個の前記部分データを入手しても前記オリジナルデータが復元できないように、前記複数の演算装置のうち対応する演算装置へ送信したものであり、
    前記M以上の個数の部分データは、前記オリジナルデータを分割した各々の部分の値にそれぞれ基づいて生成される部分データと、複数の前記部分の値に基づく演算であって前記複数のオリジナルデータに基づく統計処理の一部を成す演算を行って生成される部分データとを含むことを特徴とする統計処理結果提供サーバ装置。
  13. 秘匿すべきオリジナルデータを取得する手段と、
    全ての部分を合わせると前記オリジナルデータが復元されるように前記オリジナルデータをM個(Mは2以上の整数)に分割し、M以上の個数の部分データを生成する手段と、
    それぞれが複数の入力データに基づいて所定の演算を行う手段を有する複数の演算装置のうちの対応する演算装置への前記複数の入力データの1つとして、それぞれの前記部分データを、(M−1)個の前記部分データを入手しても前記オリジナルデータが復元できないように送信する手段とを備えるデータ入力装置であって、
    前記複数の演算装置のそれぞれが、複数の前記データ入力装置からの部分データに基づいて前記所定の演算を行った結果を、前記複数の演算装置とは異なるサーバ装置が利用することにより、複数の前記データ入力装置により取得された複数の前記オリジナルデータに基づく統計処理の結果が、該オリジナルデータが秘匿されたまま求められ、
    前記M以上の個数の部分データは、前記オリジナルデータを分割した各々の部分の値にそれぞれ基づいて生成される部分データと、複数の前記部分の値に基づく演算であって前記複数のオリジナルデータに基づく統計処理の一部を成す演算を行って生成される部分データとを含むことを特徴とするデータ入力装置。
  14. 他のコンピュータと通信する機能を有するコンピュータを、データ秘匿型統計処理システムにおけるデータ処理装置として動作させるためのプログラムであって、
    前記他のコンピュータとして、それぞれが複数の入力データに基づいて所定の演算を行う手段を有する複数の演算装置があり、
    前記データ処理装置は、秘匿されるべきオリジナルデータを取得することなく、複数の前記オリジナルデータに基づく統計処理の結果を提供するものであって、
    前記プログラムは、前記コンピュータに、
    前記複数の演算装置のそれぞれに、前記オリジナルデータの部分データを前記入力データとして演算を行わせ、該演算の結果を取得する手段と、
    前記複数の演算装置からの演算結果に基づいて、所定の統計処理を行う手段とを備えさせるものであり、
    前記部分データは、前記オリジナルデータを取得したデータ入力装置が、全ての部分を合わせると前記オリジナルデータが復元されるように前記オリジナルデータをM個(Mは2以上の整数)に分割し、M以上の個数の部分データを生成し、それぞれの前記部分データを、(M−1)個の前記部分データを入手しても前記オリジナルデータが復元できないように、前記複数の演算装置のうち対応する演算装置へ送信したものであり、
    前記M以上の個数の部分データは、前記オリジナルデータを分割した各々の部分の値にそれぞれ基づいて生成される部分データと、複数の前記部分の値に基づく演算であって前記複数のオリジナルデータに基づく統計処理の一部を成す演算を行って生成される部分データとを含むことを特徴とするプログラム。
  15. 秘匿すべきオリジナルデータを取得する機能と他のコンピュータと通信する機能とを有するコンピュータを、データ秘匿型統計処理システムにおけるデータ入力装置として動作させるためのプログラムであって、
    前記他のコンピュータとして、それぞれが複数の入力データに基づいて所定の演算を行う手段を有する複数の演算装置があり、
    前記プログラムは、前記コンピュータに、
    全ての部分を合わせると前記オリジナルデータが復元されるように前記オリジナルデータをM個(Mは2以上の整数)に分割し、M以上の個数の部分データを生成する手段と、
    前記複数の演算装置のうちの対応する演算装置への前記複数の入力データの1つとして、それぞれの前記部分データを、(M−1)個の前記部分データを入手しても前記オリジナルデータが復元できないように送信する手段とを備えさせるものであり、
    前記複数の演算装置のそれぞれが、複数の前記データ入力装置からの部分データに基づいて前記所定の演算を行った結果を、前記複数の演算装置とは異なるサーバ装置が利用することにより、複数の前記データ入力装置により取得された複数の前記オリジナルデータに基づく統計処理の結果が、該オリジナルデータが秘匿されたまま求められ、
    前記M以上の個数の部分データは、前記オリジナルデータを分割した各々の部分の値にそれぞれ基づいて生成される部分データと、複数の前記部分の値に基づく演算であって前記複数のオリジナルデータに基づく統計処理の一部を成す演算を行って生成される部分データとを含むことを特徴とするプログラム。
  16. 秘匿すべきオリジナルデータを取得する手段を備える複数のデータ入力装置のそれぞれが、全ての部分を合わせると前記オリジナルデータが復元されるように前記オリジナルデータをM個(Mは2以上の整数)に分割して生成したM以上の個数の部分データを出力し、
    複数の入力データに基づいて所定の演算を行う手段を備える複数の演算装置のそれぞれが、(M−1)個の前記部分データを入手しても前記オリジナルデータが復元できないように複数の前記データ入力装置のそれぞれから出力された前記部分データを前記入力データとして、前記演算を行った結果を出力し、
    データ処理装置が、前記複数の演算装置のそれぞれから出力された前記演算の結果を利用することにより、前記複数のデータ入力装置により取得された複数のオリジナルデータに基づく統計処理の結果を、該オリジナルデータを取得することなく求め、
    前記M以上の個数の部分データは、前記オリジナルデータを分割した各々の部分の値にそれぞれ基づいて生成される部分データと、複数の前記部分の値に基づく演算であって前記複数のオリジナルデータに基づく統計処理の一部を成す演算を行って生成される部分データとを含むことを特徴とする統計処理結果提供サービス方法。
JP2015079666A 2013-10-23 2015-04-09 データ秘匿型統計処理システム、統計処理結果提供サーバ装置及びデータ入力装置、並びに、これらのためのプログラム及び方法 Active JP5895080B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2015079666A JP5895080B2 (ja) 2013-10-23 2015-04-09 データ秘匿型統計処理システム、統計処理結果提供サーバ装置及びデータ入力装置、並びに、これらのためのプログラム及び方法

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2013220673 2013-10-23
JP2013220673 2013-10-23
JP2015079666A JP5895080B2 (ja) 2013-10-23 2015-04-09 データ秘匿型統計処理システム、統計処理結果提供サーバ装置及びデータ入力装置、並びに、これらのためのプログラム及び方法

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2014176590A Division JP2015108807A (ja) 2013-10-23 2014-08-29 データ秘匿型統計処理システム、統計処理結果提供サーバ装置及びデータ入力装置、並びに、これらのためのプログラム及び方法

Publications (2)

Publication Number Publication Date
JP2015158935A JP2015158935A (ja) 2015-09-03
JP5895080B2 true JP5895080B2 (ja) 2016-03-30

Family

ID=54182826

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015079666A Active JP5895080B2 (ja) 2013-10-23 2015-04-09 データ秘匿型統計処理システム、統計処理結果提供サーバ装置及びデータ入力装置、並びに、これらのためのプログラム及び方法

Country Status (1)

Country Link
JP (1) JP5895080B2 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2021056435A (ja) * 2019-10-01 2021-04-08 株式会社東芝 情報処理装置、情報処理方法、およびプログラム
JP2021089679A (ja) 2019-12-05 2021-06-10 株式会社日立製作所 データ分析システムおよびデータ分析方法
JP7464555B2 (ja) 2021-03-12 2024-04-09 Kddi株式会社 データ提供装置、集計システム及びデータ提供プログラム

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3596595B2 (ja) * 1999-08-25 2004-12-02 沖電気工業株式会社 個人認証システム
JP4685317B2 (ja) * 2002-03-29 2011-05-18 株式会社富士通ソーシアルサイエンスラボラトリ データ分散格納方法、データ分散格納装置、プログラム及びバックアップサイト
JP4292835B2 (ja) * 2003-03-13 2009-07-08 沖電気工業株式会社 秘密再構成方法、分散秘密再構成装置、及び秘密再構成システム
JP3943118B2 (ja) * 2005-04-28 2007-07-11 Sbシステム株式会社 電子情報保存方法及び装置、電子情報分割保存方法及び装置、電子情報分割復元処理方法及び装置並びにそれらのプログラム
JP2006331072A (ja) * 2005-05-26 2006-12-07 Canon Inc サーバ装置、データ処理装置、アップロード処理情報およびコンピュータが読み取り可能なプログラムを格納した記憶媒体およびプログラム
JP2007299088A (ja) * 2006-04-28 2007-11-15 Fujitsu Ltd データ保護システム、方法及びプログラム
JP2008016014A (ja) * 2006-06-07 2008-01-24 Matsushita Electric Ind Co Ltd 機密情報保護システム、機密情報復元装置、及び割符生成装置

Also Published As

Publication number Publication date
JP2015158935A (ja) 2015-09-03

Similar Documents

Publication Publication Date Title
WO2015059918A1 (ja) データ秘匿型統計処理システム、統計処理結果提供サーバ装置及びデータ入力装置、並びに、これらのためのプログラム及び方法
Yang et al. A blockchain-based location privacy-preserving crowdsensing system
Eskandarian et al. Express: Lowering the cost of metadata-hiding communication with cryptographic privacy
Khaliq et al. A secure and privacy preserved parking recommender system using elliptic curve cryptography and local differential privacy
Abi Sen et al. Preserving privacy of smart cities based on the fog computing
Cui et al. Efficient verification of edge data integrity in edge computing environment
Patil et al. Data security over cloud
Li et al. Inspecting edge data integrity with aggregate signature in distributed edge computing environment
Yan et al. Context-aware verifiable cloud computing
Dattana et al. A probability based model for big data security in smart city
JP7155437B2 (ja) 暗号化されたネットワーク値の集約
JP5895080B2 (ja) データ秘匿型統計処理システム、統計処理結果提供サーバ装置及びデータ入力装置、並びに、これらのためのプログラム及び方法
Horey et al. Reconstructing spatial distributions from anonymized locations
JP2022532950A (ja) 時間データの取得または操作を防止しながらネットワークデータのシーケンスを生成すること
Wang et al. Blockchain-based public auditing scheme for shared data
JP2023524356A (ja) 分類の正確さを改善するための機械学習モデリングデータの処理
JP2014206696A (ja) データ秘匿型内積計算システム、方法、及びプログラム
Jacquez et al. Geospatial cryptography: enabling researchers to access private, spatially referenced, human subjects data for cancer control and prevention
Michalas et al. Locless: Do you really care where your cloud files are?
Yu et al. Secure cloud storage auditing with deduplication and efficient data transfer
Renuga et al. Efficient privacy-preserving data sanitization over cloud using optimal GSA algorithm
Singh et al. Security enhancement of the cloud paradigm using a novel optimized crypto mechanism
Ahmed et al. Augmenting security and accountability within the eHealth Exchange
Noman et al. Hardware-based DLAS: Achieving geo-location guarantees for cloud data using TPM and provable data possession
Nguyen et al. Long live randomization: on privacy-preserving contact tracing in pandemic

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150529

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20150529

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20150529

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20150616

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150630

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150828

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20151013

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20151211

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: 20160202

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160229

R150 Certificate of patent or registration of utility model

Ref document number: 5895080

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250