説明

第1のベクトルおよび第2のベクトルに関数を適用した結果を求めるための方法、および第3のプロセッサを用いて第1のベクトルおよび第2のベクトルに関数を適用した結果を求めるためのシステム

【課題】複数のパーティーが、個々に保有する秘密情報に基づいて、その情報を他のパーティーのいずれにも明らかにすることなく共同である値を計算する計算システムを提供する。
【解決手段】第1のベクトル115および第2のベクトル116に関数を適用した結果を求めるためのシステムおよび方法であり、該関数は、正規化和型関数である。第1のベクトルは、第1のプロセッサ117において格納され、第2のベクトルは、第2のプロセッサ118において格納される。セキュアなマルチパーティー計算を用いて第1のベクトルおよび第2のベクトルの経験的同時確率分布(JEPD)を求める。関数は、JEPDの値と該関数の対応する値との積の正規化された総和として求められる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、包括的にはセキュアなマルチパーティー計算に関し、より詳細には、正規化和型関数(normalized sum-type function)のセキュアなマルチパーティー計算に関する。
【背景技術】
【0002】
セキュアなマルチパーティー計算
暗号法において、セキュアなマルチパーティー計算(SMPC)は、1982年にAndrew C. Yaoによって「億万長者問題(millionaire problem)」として最初に提案された問題である。アリスおよびボブは自身の富の正確な量を明らかにすることなく誰がより裕福であるかを突き止めることを望む2人の億万長者である。Yaoは、アリスおよびボブが制約条件を守りながら自身の好奇心を満たすことを可能にする解決策を提案した。
【0003】
一般に、SMPCは、複数のパーティーが、個々に保有する秘密情報に基づいて、その情報を他のパーティーのいずれにも明らかにすることなく共同である値を計算する計算システムを指す。
【0004】
たとえば、第1のパーティー(アリス)および第2のパーティー(ボブ)は、秘密データを有する。たとえば、第1のパーティーは、ベクトルXを有し、第2のパーティーは、ベクトルYを有する。第1のパーティーおよび第2のパーティーは、多くの場合に第3のパーティー(チャールズ)からの支援を受けて、秘密データを互いに明らかにすることなく関数f(X,Y)を計算する必要がある。その目的のために、パーティーは、ある特定の条件を満たす関数計算プロトコルを有しなくてはならない。
【0005】
たとえば、1つの条件は、第1のパーティーおよび第2のパーティーが関数の計算中のいかなる段階においても対応する秘密データを他のパーティーに開示しないというものである。別の条件は、プロトコルが各パーティーにおいて受ける計算オーバーヘッドが小さく、かつパーティーの任意の対間で有する送信オーバーヘッドが低いというものである。
【0006】
不都合なことに、関数fを計算するための従来のSMPC法は、一般的な形式において、各パーティーにおいて高い計算複雑度を有し、パーティーの任意の対間の送信オーバーヘッドも実現不可能なほど高くなる可能性がある。いくつかの状況では、従来の最新技術によるSMPC法のいずれを用いても、関数fの計算が不可能である可能性さえある。
【発明の概要】
【発明が解決しようとする課題】
【0007】
したがって、複雑な数学式を有する関数であっても、参加しているパーティーにおいて、低い計算および通信のオーバーヘッドで該関数を計算するSMPC法を提供することが望ましい。
【課題を解決するための手段】
【0008】
本発明の実施の形態は、全ての正規化和型関数が経験的同時確率分布(JEPD:joint empirical probability distribution)の観点から表現可能であるという認識に基づいている。したがって、セキュアなマルチパーティー計算(SMPC)を用いて、たとえば、2つのベクトルに関数を適用した結果を計算するには、SMPCを用いてその2つのベクトルのJEPDを計算すれば十分である。これによって、複数の用途において、計算複雑度および送信オーバーヘッドが大幅に減少する。JEPDが分かると、関数の値を、JEPDの値と該関数の対応する値との積の正規化された総和として求めることができる。
【0009】
本発明の実施の形態の背後にある認識によって、解決されるべき問題の根源が明らかとなり、SMPCの分野において、その問題が従来にはない方法で解決される。
【0010】
複雑な関数の結果を求める従来の手法は、既知の暗号プリミティブを用いるか、またはSMPCプロトコルをその関数の詳細に適合させる。そのような手法の結果として生じる複雑性は、問題であるとは考えられておらず、セキュアな計算の当然な結果であると受け止められていた。
【0011】
最新技術とは対照的に、本発明の実施の形態は、2つのベクトルの関数の結果をセキュアに求めることを、2つのベクトルのJEDPをセキュアに求めることに簡約する。
【0012】
たとえば、1つの実施の形態では、関数は、2つのベクトルの値の全てのあり得る対および該関数の対応する結果を含む参照テーブルの形態において明示的に規定される。この実施の形態では、関数の式は、規定されない。この実施の形態は、SMPCプロトコルを用いて値の全てのあり得る対のJEPDを求め、関数の結果を、参照テーブルからの関数の対応する結果を有するJEPDの値の積の正規化和として求める。
【0013】
したがって、本発明の1つの実施の形態は、第1のベクトルおよび第2のベクトルに関数を適用した結果を求めるための方法であって、該関数は、正規化和型関数である、方法を開示する。前記第1のベクトルは、第1のプロセッサにおいて格納され、前記第2のベクトルは、第2のプロセッサにおいて格納される。該方法は、セキュアなマルチパーティー計算(MPC)を用いて前記第1のベクトルおよび前記第2のベクトルの経験的同時確率分布(JEPD)を求め、前記関数の前記結果を、前記JEPDの値と該関数の対応する値との積の正規化された総和として求め、該方法のステップは、少なくとも前記第1のプロセッサおよび前記第2のプロセッサによって実行される。
【0014】
本発明の別の実施の形態は、第3のプロセッサを用いて第1のベクトルおよび第2のベクトルに関数を適用した結果を求めるためのシステムであって、該関数は、正規化和型関数であり、前記第1のベクトルは、第1のプロセッサにおいて格納され、前記第2のベクトルは、第2のプロセッサにおいて格納され、該システムは、セキュアなマルチパーティー計算(MPC)を用いて前記第1のベクトルおよび前記第2のベクトルの経験的同時確率分布(JEPD)を求める手段と、前記関数の前記結果を、前記JEPDの値と該関数の対応する値との積の正規化された総和として求める手段とを備え、前記方法の前記ステップは、少なくとも前記第1のプロセッサおよび前記第2のプロセッサによって実行される、システムを開示する。
【0015】
さらに、別の実施の形態は、第3のプロセッサを用いて第1のベクトルおよび第2のベクトルに関数を適用した結果を求めるためのシステムであって、該関数は、正規化和型関数であり、前記第1のベクトルは、第1のプロセッサにおいて格納され、前記第2のベクトルは、第2のプロセッサにおいて格納され、該システムは、前記第1のベクトルおよび前記第2のベクトルの要素の対応する対毎に、難読化されたJEPDを表す1組のインジケーター行列を求める手段と、前記1組のインジケーター行列を第1の加法シェア(additive share)および第2の加法シェアに分割する手段と、前記第1の加法シェアを前記第1のプロセッサに送信し、前記第2の加法シェアを前記第2のプロセッサに送信する手段と、前記関数の前記結果の第1の加法シェアおよび前記関数の前記結果の第2の加法シェアに基づいて前記関数の前記結果を求める手段と、を備える、システムを開示する。
【発明の効果】
【0016】
本発明の実施の形態は、全ての正規化和型関数が経験的同時確率分布(JEPD)の観点で表現可能であるという認識に基づいている。したがって、セキュアなマルチパーティー計算(SMPC)を用いて2つのベクトルに適用された関数の結果を計算するには、SMPCを用いて2つのベクトルのJEPDを計算すれば十分である。これによって、複数の用途において、計算複雑度および送信オーバーヘッドが大幅に減少する。
【0017】
JEPDが分かると、関数の値を、JEPDの値と、該関数の対応する値との積の正規化された総和として求めることができる。
【0018】
本発明によって、結果としてSMPCの分野において従来にはない解決策が生じる。複雑な関数の結果を求める従来の手法は、SMPCプロトコルをその関数の詳細に合わせて調整するかまたは適合させる。これらの手法の結果として生じる複雑性は、問題であるとは考えられておらず、セキュアな計算の性質であると受け止められていた。
【0019】
最新技術とは対照的に、本発明の実施の形態は、2つのベクトルに関数を適用した結果をセキュアに求めることを、2つのベクトルのJEDPをセキュアに求めることに簡約する。これによって、複数の用途において、計算複雑度および送信オーバーヘッドが大幅に減少する。
【図面の簡単な説明】
【0020】
【図1】本発明の実施の形態による、関数を2つの信号に適用した結果を求めるための方法の流れ図である。
【図2】加法シェアおよび可逆的難読化を用いた関数の結果を求めるための方法の流れ図である。
【図3】本発明の実施の形態による、関数の結果を求める流れ図の例である。
【図4】本発明の実施の形態による、関数の結果を求める流れ図の例である。
【発明を実施するための形態】
【0021】
定義
本発明の実施の形態を説明する際に、全体を通して(上記の説明も含む)以下の定義が適用可能である。
【0022】
「コンピューター」は、入力を受け取り、該入力を所定の規則に従って処理し、処理結果を出力として生成することができる任意の装置を指す。コンピューターの例には、汎用コンピューター;スーパーコンピューター;メインフレーム;スーパーミニコンピューター;ミニコンピューター;ワークステーション;マイクロコンピューター;サーバー;双方向テレビ;コンピューターおよび双方向テレビのハイブリッド結合;ならびにコンピューターおよび/またはソフトウエアをエミュレートする特定用途向けハードウエアが含まれる。コンピューターは、単一のプロセッサまたは複数のプロセッサを有することができ、それらのプロセッサは、並列に、かつ/または非並列に動作することができる。また、コンピューターは、コンピューター間で情報を送信または受信するためのネットワークを介してともに接続される2つ以上のコンピューターも指す。そのようなコンピューターの例には、ネットワークによってリンクされるコンピューターを介して情報を処理するための分散コンピューターシステムが含まれる。
【0023】
「メモリ」または「コンピューター可読媒体」は、コンピューターによってアクセス可能なデータを格納するための任意の記憶装置を指す。その例には、磁気ハードディスク;フロッピー(登録商標)ディスク;光ディスク;磁気テープ;メモリチップ;ならびに電子メールを送受信する際に、またはネットワークおよびコンピューターメモリ、たとえば、ランダムアクセスメモリ(RAM)にアクセスする際に用いられるような、コンピューター可読電子データを搬送するために用いられる搬送波が含まれる。
【0024】
「ソフトウエア」は、コンピューターを動作させるための命令を指す。ソフトウエアの例には、ソフトウエア;コードセグメント;命令;コンピュータープログラム;およびプログラムされたロジックが含まれる。
【0025】
「モジュール」または「ユニット」は、タスクまたはタスクの一部を実行するコンピューター内の基本構成要素を指す。モジュールまたはユニットは、ソフトウエアまたはハードウエアのいずれかによって実装することができる。
【0026】
「ネットワーク」は、通信設備によって接続された複数のコンピューターおよび関連デバイスを指す。ネットワークは、ケーブル等の永久接続、電話若しくは他の通信リンクを通じて行われる接続等の一時接続、および/または無線接続を伴う。ネットワークの例には、インターネット(Internet)等の相互接続ネットワーク(internet);イントラネット:ローカルエリアネットワーク(LAN);広域ネットワーク(WAN);ならびに相互接続ネットワークおよびイントラネット等のネットワークの組み合わせが含まれる。
【0027】
「SMPCシステム」は、複数のプロセッサが、個々に保有する秘密情報、すなわち、データに基づいて、該情報を計算中に互いに明らかにすることなく、関数の結果を共同で求める計算システムの任意のプロセッサを指す。
【0028】
「SMPC法」は、1つのプロセッサにおいて格納されたデータをいかなる他のプロセッサにも開示することなく、いくつかのプロセッサまたは全てのプロセッサが複数のプロセッサに格納されたデータに関数を適用した結果を求めるように、該複数のプロセッサがインタラクトすることを可能にする任意のプロトコルを指す。
【0029】
「SMPC」は、SMPCシステム、またはSMPC法、またはその両方を指す。
【0030】
図1は、関数f110を第1の信号xおよび第2の信号yに適用した結果190を求めるための方法100を示している。関数fは、正規化和型関数である。本発明の実施の形態は、関数を3つ以上の信号に適用した結果も求める。信号は、任意のデータ表現、たとえば、ベクトル、行列、テーブルを有することができる。たとえば、いくつかの実施の形態では、信号xおよびyは、ベクトル、すなわち、第1のベクトル115および第2のベクトル116である。本方法は、複数のプロセッサを用いて実行され、各プロセッサは、当該技術分野において既知のメモリおよび入力/出力インターフェースを備えることができる。詳細には、第1のベクトルは、第1のプロセッサ117に格納され、第2のベクトルは、第2のプロセッサ118に格納され、関数の計算は、第1のプロセッサおよび第2のプロセッサによって実行され、オプションで第3のプロセッサ119の助けにより実行される。
【0031】
正規化和型関数
様々な実施の形態において、第1のベクトルX115および第2のベクトルY116は、それぞれn個の要素を有する。第1のベクトルXの個々の要素は、Xによって表され、指数iは、1からnまで変化する。同様に、第2のベクトルYの個々の要素は、Yによって表され、指数iは、1からnまで変化する。関数f(X,Y)110は、以下の形式の「正規化和型関数」である。
【0032】
【数1】

【0033】
本発明の実施の形態は、全ての正規化和型関数が経験的同時確率分布(JEPD)の観点から表現可能であるという認識に基づいている。さらに、関数のJEPDは、該関数の複雑度と無関係である。したがって、従来のシステムにおけるように、セキュアなマルチパーティー計算(SMPC)を用いて関数の結果を求める代わりに、本実施の形態は、セキュアなMPC130を用いて第1のベクトルおよび第2のベクトルのJEPD125を求め(120)、次に、関数110の結果190を、JEPDの値と、該関数の対応する値155との積の正規化された総和として求める(140)。
【0034】
いくつかの実施の形態では、関数は、参照テーブル150の形態でメモリ内に明示的に格納される。テーブルは、第1のベクトルおよび第2のベクトルの値のあり得る対(x,y)、および関数f(x,y)の対応する結果を格納する。
【0035】
1つの実施の形態では、プロセッサ170によって参照テーブルがあらかじめ求められる(160)。代替的にまたは付加的に、参照テーブルは、第1のプロセッサ、第2のプロセッサ、および第3のプロセッサのうちのいずれかによって求め、格納することができる。
【0036】
経験的同時確率分布(JEDP)
長さnのベクトルXおよびYを所与とすると、2つのベクトルXおよびYの要素のJEDP H(x,y)は、下式(1)となる。
【0037】
【数2】

【0038】
ここで、N(x,y)は、ベクトルXおよびY内におけるシングルトン要素の対(x,y)の発生数である。N(x,y)は、2つのベクトルXおよびYの同時ヒストグラム(joint histogram)とも呼ばれる。
【0039】
本発明のいくつかの実施の形態は、2つのベクトルXおよびYの部分JEPDを用いる。これらの実施の形態は、各ベクトルからm<n個の要素をランダムに選択することによって、第1のベクトルおよび第2のベクトルをサブサンプリングし(180)、サブサンプリングされた第1のベクトルX’181およびサブサンプリングされた第2のベクトルY’182を生成する。第1のベクトルおよび第2のベクトルにおける同じ位置から要素mが選択される。
【0040】
部分JEDP H’(x,y)が、以下に従って求められる。
【0041】
【数3】

【0042】
ここで、L(x,y)は、ランダムにサブサンプリングされたベクトルX’およびY’におけるシングルトン要素の対(x,y)の発生数である。L(x,y)は、ベクトルXおよびYの部分同時ヒストグラムとも呼ばれる。
【0043】
正規化和型関数は、JEPDの観点から、以下のように表すことができる。
【0044】
【数4】

【0045】
右辺の項は、関数f(X,Y)を求めるには、全ての対(x,y)においてf(x,y)を評価し、次に、JEPDに基づいて関数の値をスケーリングすれば十分であることを示している。したがって、関数f(X,Y)をセキュアに計算するには、第1のプロセッサ、第2のプロセッサ、および第3のプロセッサが、第1のプロセッサが第2のベクトルYを発見せず、第2のプロセッサが第1のベクトルXを発見せず、第3のプロセッサが双方のベクトルXおよびYを発見しないようなJEPD H(x,y)を求めれば十分である。
【0046】
本発明の実施の形態の背後にある認識によって、解決されるべき問題の根源が明らかとなり、SMPCの分野において、その問題が、従来にはない方法で解決される。
【0047】
複雑な関数の結果を求める従来の手法は、SMPCプロトコルをその関数の詳細に合わせて設計することである。従来、関数は、代数式として表され、そして、その代数式を評価するのに暗号プリミティブが用いられる。しかしながら、多くの用途において、関数を代数的に表現することが困難であるか、またはさらには不可能であり、それに応じて従来のSMPCが適用困難となるかまたは適用不可能となっている。
【0048】
さらに、いくつかの用途では、関数は、値のテーブルとしてのみ規定され、それによって、関数の式は提供されない。これらの用途の場合、ラグランジュ補間等の方法を用いて関数の多項式を導出する。多項式が非常に高次である場合、関数を表すのに用いられる代数式は、通例、非常に複雑であり、このため、その式を評価するSMPCプロトコルは、さらに複雑となる。後述するように、本発明の原理を用いる実施の形態は、関数の式を求める必要性を回避する。
【0049】
したがって、本発明の実施の形態は、従来のSMPC法よりも優れた結果を達成する。特に、本発明の実施の形態は、関数を求めることを、2つのベクトルのJEDPを求めることから切り離し、これによって、複数の用途において、計算複雑度および送信オーバーヘッドが大幅に減少する。
【0050】
たとえば、1つの実施の形態は、閉形式の式を有しない関数の結果を求める。この関数は、全てのあり得る対(x,y)および対応する値f(x,y)を含む参照テーブルの形式で明示的に規定される。実施の形態は、プライバシーを保護する形でJEPD H(x,y)を求めるSMPCプロトコルを実行し、JEPDを用いて関数f(x,y)の結果を得る。
【0051】
同様に、別の実施の形態では、関数f(・,・)は、複雑な式、たとえば、下式を有する。
【0052】
【数5】

【0053】
この場合、関数fの従来のプライバシーを保護するプロトコルは、各プロセッサにおいて、非常に高い計算複雑度を有し、プロセッサのいずれの対間でも送信オーバーヘッドは、実現不可能なほど高い。いくつかの実施の形態では、最新技術のプライバシーを保護するプロトコルを用いて、fを評価することが不可能である場合さえある。
【0054】
実施の形態は、式(2)を用い、関数fのためのそのようなプロトコルを構築しない。その代わり、SMPCを用いて、大幅に低い計算複雑度および低い送信オーバーヘッドでJEPDを求める。
【0055】
JEPDを求めるためのSMPC
概して、本発明の実施の形態は、JEPDを求めるように構成された任意のSMPCプロトコルを用いることができる。そのようなSMPCプロトコルには、限定ではないが、計算機密性または無条件機密性に基づくプロトコルが含まれる。
【0056】
1つの実施の形態は、公開鍵暗号化、紛失通信、および準同型関数等の暗号プリミティブを用いてJEPDを求める。暗号プリミティブにより達成されるこの形態の機密性は、計算機密性であり、すなわち、機密性は、大きな数の因数分解等のある数学問題は解くのが困難であるという仮定に依拠する。
【0057】
この実施の形態の1つの変形形態は、多項式秘密共有を用いてヒストグラムの加法シェア、すなわち、換言すればJEPDを求める。任意の一般関数の加法シェアを直接評価するために適用される多項式秘密共有は、送信オーバーヘッドおよび計算複雑度の観点から複雑である。しかしながら、本発明者らの認識によれば、JEPDの加法シェアは、常に低い送信オーバーヘッドおよび低い計算複雑度で計算可能である。
【0058】
別の実施の形態は、無条件機密性を用いてJEPDを求める。この実施の形態は、以下でより詳細に説明するように、2つのベクトルのJEPDは、難読化に対し不変であるという別の認識に基づく。
【0059】
本明細書において定義されるとき、平易な意味を用いれば、難読化とは、通信において意図される意味を秘匿することであり、通信を混乱させ、意図的にあいまいにし、解釈をより困難にする。特に、暗号法の分野において既知のように、難読化は、機密性を保持するためにある暗号化方式でデータを符号化することを指す。
【0060】
いくつかの実施の形態は、多項式秘密共有に基づく手法が、計算機密性と対照的に、無条件機密性を提供するということを検討する。無条件機密性は、証明されていない数学的仮定に基づかないので、計算機密性よりも強い機密性の概念であると考えられる。
【0061】
JEPDが難読化に対し不変であることに基づくSMPC
図2は、加法シェアおよび2つのベクトルの可逆的難読化を用いた、ベクトル115および116への関数110の適用の結果190を求めるための方法を示している。この実施の形態は、半正直(semi-honest)設定を考察する。この設定において、各プロセッサは、規則、すなわち、本方法のステップに正確に従い、各プロセッサは、詮索的(curious)であり、すなわち、プロトコルのステップ中に取得した情報を用いて、他のプロセッサが利用可能なデータに関して、可能な限りの情報を推測する。半正直設定は「正直であるが詮索的」設定とも呼ばれる。
【0062】
第1のプロセッサ117は、難読化の第1の規則211に基づいて、第1のベクトルを可逆的に難読化する(220)。たとえば、第1のプロセッサは、第1のベクトルXを難読化して、第1の難読化されたベクトルX225を生成する。第1のプロセッサは、第1の難読化されたベクトルXを第3のプロセッサ119に送信する。
【0063】
この実施の形態の1つの変形形態では、第1のプロセッサは、第1のベクトルXの要素と同じシンボルアルファベットAからn個のシンボルの第1のパッドベクトル(pad vector)Wを、ランダムに選択する。いくつかの実施の形態では、アルファベットAは、バイナリである。他の実施の形態では、アルファベットは、|A|で表される値の有限正数である。次に、シンボルアルファベットを下式に従って有限加法群として扱いながら、加法演算によりベクトルXおよびWから対応する要素を組み合わせることによって、第1の難読化されたベクトルXの各要素が生成される。
【0064】
【数6】

【0065】
同様に、第2のプロセッサ118は、難読化の第2の規則212に基づいて第2のベクトルを可逆的に難読化し(230)、第2の難読化されたベクトルYを生成し、該第2の難読化されたベクトルYを第3のプロセッサに送信する。たとえば、第2のプロセッサは、n個のシンボルの第2のパッドベクトルZをランダムに選択する。通例、ベクトルYおよびZの要素は、|B|個の要素を有する同じアルファベット集合Bに属する。上述したように、いくつかの実施の形態では、|B|=2である。第2のベクトルは、以下に従って難読化される。
【0066】
【数7】

【0067】
第3のプロセッサは、第1のベクトルおよび第2のベクトルの受信に基づいて、かつ、該受信に応じて、難読化されたJEPD245を求める(240)。ここで、第1のベクトルおよび第2のベクトルは、それぞれ第1の難読化規則および第2の難読化規則に基づいて、可逆的に難読化される。たとえば、1つの実施の形態では、第3のプロセッサは、2つの受信したベクトルXおよびYからの(X,Y)によって表される全ての対応する要素対について、|A|個の行および|B|個の列を有するインジケーター行列Mを求める。1からnまでの範囲をとる各指数iについて、インジケーター行列Mは、対(X,Y)のためのインジケーター関数を表す。このため、行列内の(X,Y)位置における要素は、1に設定される一方、全ての他の要素は、0に設定される。したがって、1組のインジケーター行列は、難読化されたJEPDを表す。
【0068】
次に、第3のプロセッサは、難読化されたJEPDを第1の加法シェア251および第2の加法シェア252に分割し(250)、該第1の加法シェアおよび該第2の加法シェアをそれぞれ第1のプロセッサおよび第2のプロセッサに送信する。
【0069】
たとえば、上述した実施の形態では、第3のプロセッサは、要素毎の有限体加算がMとなるように十分大きな有限体にわたって値をとる2つの行列をランダムに選択することによって、各インジケーター行列Mを、加法シェアM{A,i}およびM{B,i}に分割する。このため、M=M{A,i}+M{B,i}modFであり、ここで、Fは、アルファベット|A|および|B|のサイズよりもサイズが大きい有限体である。したがって、第3のプロセッサは、1組のインジケーター行列M{A,1},M{A,2},...,M{A,n}を第1のプロセッサに送信し、1組のインジケーター行列M{B,1},M{B,2},...,M{b,n}を第2のプロセッサに送信する。
【0070】
第1のプロセッサおよび第2のプロセッサは、第1の難読化規則および第2の難読化規則を用いて加法シェアの逆難読化260を適用する。その目的のために、1つの実施の形態では、第1のプロセッサおよび第2のプロセッサは、難読化の規則を交換する。たとえば、第1のプロセッサは、第1のパッドベクトルWを第2のプロセッサに送信し、第2のプロセッサは、第2のパッドベクトルZを第1のプロセッサに送信する。
【0071】
この実施の形態の1つの変形形態では、第1のパッドベクトルおよび第2のパッドベクトルは、同一であり、すなわち、W=Zである。しかしながら、パッドベクトルWおよびZが異なる場合、第1のプロセッサは、各インジケーター行列がベクトルXおよびYの要素の各対に対応するインジケーター関数行列の加法シェアとなるように、パッドベクトルWおよびZを用いてインジケーター行列M{A,1},M{A,2},...,M{A,n}の行および列を再配置する。
【0072】
同様に、第2のプロセッサは、パッドベクトルWおよびZを用いてインジケーター行列M{B,1},M{B,2},...,M{B,n}の行および列を再配置する。
【0073】
次に、第1のプロセッサは、再配置された行列を加算して、JEPDを表す行列の加法シェア261である行列Nを生成する。第2のプロセッサは、再配置された行列を加算して、行列N、すなわち、JEPDの対応する加法シェア262を生成する。
【0074】
第1のプロセッサおよび第2のプロセッサは、JEPDの加法シェアを用いて、関数110の結果190の第1の加法シェアF270および第2の加法シェアF271を求める。1つの実施の形態では、関数の結果の加法シェアは、参照テーブル150を用いて、式(1)に従って求められる。たとえば、第1のプロセッサは、下式に従って、f(X,Y)の第1の加法シェアを求める。
【0075】
【数8】

【0076】
また、第2のプロセッサは、下式に従って、f(X,Y)の第2の加法シェアを求める。
【0077】
【数9】

【0078】
次に、それぞれ第1のプロセッサおよび第2のプロセッサから受信した関数の結果の第1の加法シェアおよび第2の加法シェアに基づいて、第3のプロセッサによって関数の結果が求められる。付加的にまたは代替的に、第1のプロセッサおよび第2のプロセッサは、加法シェアの総和が変化しないように、関数の結果の第1の加法シェアおよび第2の加法シェアに共通変更子を減算および加算することによって、関数の結果のそれぞれの加法シェアを変更することができる。
【0079】
たとえば、第1のプロセッサおよび第2のプロセッサは、共通変更子S、たとえば、第1のプロセッサによってランダムに選択され、第2のプロセッサに送信された数を求める。第1のプロセッサは、第3のプロセッサにF+Sを送信する。第2のプロセッサは、第3のプロセッサにF−Sを送信する。第3のプロセッサは、受信した加法シェアを加算し、F+S+F−S=F+F=f(X,Y)を求める。
【0080】
実施例
図3は、第1のベクトルおよび第2のベクトルの要素の1つの対305のJEPDを求める例を示している。例は、限定ではなく、明確化の目的でのみ提供される。たとえば、第1のベクトルの要素xは、1であり、第2のベクトルの対応する要素yは、2である。第1のベクトルのアルファベットのサイズは、2であり、すなわち、|A|=2、A={0,1}である。第2のベクトルのアルファベットのサイズは、3であり、すなわち、|B|=3、B={0,1,2}である。第1のベクトルは、第1のパッドベクトルWおよびたとえば対応するw=5を用いて難読化される。第2のベクトルは、第2のパッドベクトルZおよびたとえば対応するz=2を用いて難読化される。
【0081】
このため、第1のベクトルの難読化された要素xは、x=1+5mod2=0である。
【0082】
同様に、第2のベクトルの難読化された要素yは、y=2+2mod3=1である。
【0083】
したがって、第3のベクトルは、可逆的に難読化された要素の対(0,1)310を受信し(320)、インジケーター行列335を求める(330)。図3に示すように、行列の(x,y)位置にある要素は、1に設定される一方、全ての他の要素は、0に設定される。インジケーター行列は、インジケーター行列の第1の加法シェアおよび第2の加法シェア、たとえば、加法的行列341および342に分割される(340)。分割は、任意に、たとえば、ランダムに実行される。唯一の要件は、2つ加法的行列の対応する要素の和によって、インジケーター行列が生成されることである。次に、2つの加法シェアが、それぞれ第1のプロセッサおよび第2のプロセッサに送信される(350および355)。
【0084】
後述するように、第1のプロセッサおよび第2のプロセッサは、関数の結果の第1の加法シェアおよび第2の加法シェアを求める。第3のプロセッサは、それぞれ第1のプロセッサおよび第2のプロセッサから受信した(360)関数の結果の第1の加法シェアおよび第2の加法シェアに基づいて、関数の結果190を求める(370)。
【0085】
図4は、第1のプロセッサおよび第2のプロセッサによって関数の結果の加法シェアを求める例を示している。第1のパッドベクトルおよび第2のパッドベクトルを交換した(405)後、第1のプロセッサおよび第2のプロセッサは、難読化の効果を逆にする(410および450)。たとえば、wmod2=5mod2=1であるので、第1のパッドベクトルを用いた難読化の効果は、加法シェア行列の行を入れ替えることによって逆にされる。入れ替えの結果、行列415および455となる。
【0086】
同様に、zmod3=2mod3=2であるので、第2のパッドベクトルを用いた難読化の効果は、加法シェア行列の列を、難読化の方向と反対の方向に動かす、すなわち、左に2列、すなわち、−2列動かすことによって逆にされる。逆にした結果、逆にされた行列425および465となる。特に、行列425および465の和は、要素(1,2)以外全てゼロの要素を有する行列となる。この行列は、難読化前の第1のベクトルおよび第2のベクトルの要素305の元の値を反映している。
【0087】
第1のベクトルおよび第2のベクトルの全ての対応する要素が処理されると、第1のプロセッサおよび第2のプロセッサの全ての逆にされた行列を結合したもの430および470が、JEPD加法シェア、すなわち、第1のJEPD加法シェア261および第2のJEPD加法シェア262となる。次に、関数の結果の第1の加法シェアおよび第2の加法シェアが、第1のプロセッサおよび第2のプロセッサによって、JEPDの値と参照テーブル150から選択された関数の対応する値と積の正規化された総和440および480として求められる。
【0088】
ランダムサブサンプリング
上述したように、本発明のいくつかの実施の形態は、2つのベクトルXおよびYの部分JEPDを用いる。これらの実施の形態は、各ベクトルからm<n個の要素をランダムに選択することによって、第1のベクトルおよび第2のベクトルをサブサンプリングし(180)、サブサンプリングされた第1のベクトルX’181、およびサブサンプリングされた第2のベクトルY’182を生成する。要素mは、第1のベクトルおよび第2のベクトルの同じ位置から選択されるべきである。次に、部分JEPDの観点から関数f(X’,Y’)が表現され、解かれる。
【0089】
XおよびYのランダムに選択されたサブサンプルから構築された部分JEPDは、XおよびYの全ての要素から構築されたJEPDに収束する。特に、サブサンプリングされたベクトルX’およびY’に基づく部分JEPDと、全ての要素に基づくJEPDとの間の最大期待絶対誤差は、m、すなわち、サブサンプル数の平方根に反比例する。したがって、関数f(X’,Y’)の結果は、関数f(X,Y)の結果の近似である。この近似は、mが十分に大きいがnよりはるかに小さいときに、f(X,Y)に収束する。
【0090】
ベクトルXおよびYをランダムにサンプリングすることによって関数の近似を評価する利点は、各プロセッサにおける計算複雑度の低減、および任意のセキュアなMPCプロトコルによって要求される送信オーバーヘッドの低減である。計算複雑度および送信オーバーヘッドの双方が関数の引数の長さに直接比例する。このため、関数評価のためにランダムに選択されたサンプルのより小さな集合を用いることは、ベクトルXおよびYの全ての要素を用いるよりも効率的である。この実施の形態は、特に、データのサイズが大きく、非常に精度が高いが正確ではない計算しか必要でない用途に関する。
【0091】
いくつかの実施の形態では、経験的同時確率分布のランダムサンプリングおよび評価を、第1の2つのプロセッサのみを用いて計算することもできる。

【特許請求の範囲】
【請求項1】
第1のベクトルおよび第2のベクトルに関数を適用した結果を求めるための方法であって、該関数は、正規化和型関数であり、前記第1のベクトルは、第1のプロセッサにおいて格納され、前記第2のベクトルは、第2のプロセッサにおいて格納され、該方法は、
セキュアなマルチパーティー計算(SMPC)を用いて前記第1のベクトルおよび前記第2のベクトルの経験的同時確率分布(JEPD)を求めるステップと、
前記関数の前記結果を、前記JEPDの値と該関数の対応する値との積の正規化された総和として求めるステップと
を含み、該方法の前記2つのステップは、少なくとも前記第1のプロセッサおよび前記第2のプロセッサによって実行される、方法。
【請求項2】
前記第1のベクトルおよび前記第2のベクトルの受信に応じて難読化されたJEPDを求めるステップであって、前記第1のベクトルおよび前記第2のベクトルは、それぞれ第1の難読化規則および第2の難読化規則に基づいて可逆的に難読化される、求めるステップと、
前記難読化されたJEPDを第1の加法シェアおよび第2の加法シェアに分割するステップと、
前記第1の加法シェアを前記第1のプロセッサに送信し、前記第2の加法シェアを前記第2のプロセッサに送信するステップであって、前記第1のプロセッサが前記第1の難読化規則および前記第2の難読化規則に基づいて前記第1の加法シェアを逆にして前記関数の前記結果の第1の加法シェアを求め、前記第2のプロセッサが前記第1の難読化規則および前記第2の難読化規則に基づいて前記第2の加法シェアを逆にして前記関数の前記結果の第2の加法シェアを求めるようにする、送信するステップと、
それぞれ前記第1のプロセッサおよび前記第2のプロセッサから受信した前記関数の前記結果の前記第1の加法シェアおよび前記第2の加法シェアに基づいて前記関数の前記結果を求めるステップと
をさらに含む、請求項1に記載の方法。
【請求項3】
前記難読化されたJEPDに対応する1組のインジケーター行列を求めるステップであって、各該インジケーター行列が前記第1の加法シェアおよび前記第2の加法シェアに分割されるようにする、求めるステップ
をさらに含む、請求項2に記載の方法。
【請求項4】
前記関数は、前記第1のベクトルおよび前記第2のベクトルの値の対応する対の該関数のとり得る結果としてメモリ内に明示的に格納される、請求項1に記載の方法。
【請求項5】
前記第1のベクトルおよび前記第2のベクトルは、各該ベクトルから要素をランダムに選択することによってサブサンプリングされる、請求項1に記載の方法。
【請求項6】
前記JEPDは部分JEPDである、請求項5に記載の方法。
【請求項7】
前記SMPCは、計算機密性に基づくプロトコル、無条件機密性に基づくプロトコル、およびそれらの組み合わせからなるグループから選択されたプロトコルである、請求項1に記載の方法。
【請求項8】
前記SMPCは、前記第1のベクトルおよび前記第2のベクトルの難読化に対して前記JEPDが不変であることに基づいている、請求項1に記載の方法。
【請求項9】
前記第1のベクトルおよび前記第2のベクトルは、それぞれ第1のパッドベクトルおよび第2のパッドベクトルに基づいて、前記第1のベクトルおよび前記第2のベクトルからの要素を、それぞれ前記第1のパッドベクトルおよび前記第2のパッドベクトルの対応する要素と結合することによって可逆的に難読化され、前記第1のベクトルおよび前記第2のベクトルのそれぞれのアルファベットは、有限加法群として扱われる、請求項8に記載の方法。
【請求項10】
前記アルファベットは、バイナリである、請求項9に記載の方法。
【請求項11】
可逆的に難読化された形式で前記第1のベクトルおよび前記第2のベクトルを受信するステップと、
前記第1のベクトルおよび前記第2のベクトルの要素の対応する対毎に、難読化されたJEPDを表す1組のインジケーター行列を求めるステップと、
前記1組のインジケーター行列を第1の加法シェアおよび第2の加法シェアに分割するステップと、
前記第1の加法シェアを前記第1のプロセッサに送信し、前記第2の加法シェアを前記第2のプロセッサに送信するステップであって、前記第1のプロセッサが前記第1の難読化規則および前記第2の難読化規則に基づいて前記第1の加法シェアを逆にして前記関数の前記結果の第1の加法シェアを求め、前記第2のプロセッサが前記第1の難読化規則および前記第2の難読化規則に基づいて前記第2の加法シェアを逆にして前記関数の前記結果の第2の加法シェアを求めるようにする、送信するステップと、
それぞれ前記第1のプロセッサおよび前記第2のプロセッサから受信した前記関数の前記結果の前記第1の加法シェアおよび前記第2の加法シェアに基づいて前記関数の前記結果を求めるステップと
をさらに含む、請求項1に記載の方法。
【請求項12】
第3のプロセッサを用いて第1のベクトルおよび第2のベクトルに関数を適用した結果をセキュアに求めるためのシステムであって、該関数は、正規化和型関数であり、前記第1のベクトルは、第1のプロセッサのみにおいて格納され、前記第2のベクトルは、第2のプロセッサのみにおいて格納され、該システムは、
セキュアなマルチパーティー計算(SMPC)を用いて前記第1のベクトルおよび前記第2のベクトルの経験的同時確率分布(JEPD)を求める手段と、
前記関数を、前記JEPDの値と該関数の対応する値との積の正規化された総和として求める手段と
を備え、前記方法の前記ステップは少なくとも前記第1のプロセッサおよび前記第2のプロセッサによって実行される、システム。
【請求項13】
可逆的に難読化された形式で前記第1のベクトルおよび前記第2のベクトルを受信する手段と、
前記第1のベクトルおよび前記第2のベクトルの要素の対応する対毎に、難読化されたJEPDを表す1組のインジケーター行列を求める手段と、
前記1組のインジケーター行列を第1の加法シェアおよび第2の加法シェアに分割する手段と、
前記第1の加法シェアを前記第1のプロセッサに送信し、前記第2の加法シェアを前記第2のプロセッサに送信する手段であって、前記第1のプロセッサが前記第1の難読化規則および前記第2の難読化規則に基づいて前記第1の加法シェアを逆にして前記関数の前記結果の第1の加法シェアを求め、前記第2のプロセッサが前記第1の難読化規則および前記第2の難読化規則に基づいて前記第2の加法シェアを逆にして前記関数の前記結果の第2の加法シェアを求めるようにする、送信する手段と、
それぞれ前記第1のプロセッサおよび前記第2のプロセッサから受信した前記関数の前記結果の前記第1の加法シェアおよび前記第2の加法シェアに基づいて前記関数の前記結果を求める手段と
をさらに備える、請求項12に記載のシステム。
【請求項14】
前記第1のベクトルおよび前記第2のベクトルの値の対応する対に関する前記関数の結果を格納するためのメモリをさらに備える、請求項12に記載のシステム。
【請求項15】
第3のプロセッサを用いて第1のベクトルおよび第2のベクトルに関数を適用した結果を求めるためのシステムであって、該関数は、正規化和型関数であり、前記第1のベクトルは、第1のプロセッサにおいて格納され、前記第2のベクトルは、第2のプロセッサにおいて格納され、該システムは、
前記第1のベクトルおよび前記第2のベクトルの要素の対応する対毎に、難読化されたJEPDを表す1組のインジケーター行列を求める手段と、
前記1組のインジケーター行列を第1の加法シェアおよび第2の加法シェアに分割する手段と、
前記第1の加法シェアを前記第1のプロセッサに送信し、前記第2の加法シェアを前記第2のプロセッサに送信する手段と、
前記関数の前記結果の第1の加法シェアおよび前記関数の前記結果の第2の加法シェアに基づいて前記関数の前記結果を求める手段と
を備えるシステム。
【請求項16】
前記第1のベクトルおよび前記第2のベクトルの値の対応する対に関する前記関数の結果を格納するためのメモリをさらに備える、請求項15に記載のシステム。
【請求項17】
可逆的に難読化された形式で前記第1のベクトルおよび前記第2のベクトルを受信する手段をさらに備える、請求項15に記載のシステム。
【請求項18】
前記第1のベクトルおよび前記第2のベクトルは、サブサンプリングされたベクトルである、請求項15に記載のシステム。
【請求項19】
前記JEPDは、部分JEPDである、請求項18に記載のシステム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate


【公開番号】特開2012−70380(P2012−70380A)
【公開日】平成24年4月5日(2012.4.5)
【国際特許分類】
【外国語出願】
【出願番号】特願2011−206944(P2011−206944)
【出願日】平成23年9月22日(2011.9.22)
【出願人】(597067574)ミツビシ・エレクトリック・リサーチ・ラボラトリーズ・インコーポレイテッド (484)
【住所又は居所原語表記】201 BROADWAY, CAMBRIDGE, MASSACHUSETTS 02139, U.S.A.
【Fターム(参考)】