説明

プライバシを保護したまま暗号化された要素の順序を選択するための方法およびシステム

【課題】プライバシを保護するために、暗号化されたベクトル内の暗号化された要素を、該暗号化されたベクトル内の該暗号化された要素の順序により選択するシステムおよび方法を提供する。
【解決手段】第1プロセッサ101において、暗号化されたベクトルの要素の値は、該暗号化されたベクトル内の該要素の順序が維持されるように、スケーリングされ、そして、順列化されて、スケーリングされ順列化されたベクトルを生成する。上記スケーリングされ順列化されたベクトルの中の要素の順序を示す暗号化された領域の情報は、秘密鍵を有する第2プロセッサ102に与えられる。第2プロセッサ102は、上記暗号化された要素のインデックスを上記要素の順序に基づいて決定するために、上記情報を解読する。上記暗号化された要素は、上記インデックスに基づき、いかなるプロセッサによっても発見されることなく選択される。

【発明の詳細な説明】
【技術分野】
【0001】
この発明は、概して、安全なマルチパーティ(多数協同)計算方法およびシステムに関し、特に、暗号化されたベクトルにおける暗号化された要素を、該暗号化されたベクトルにおける該暗号化された要素の順序により、決定するための方法に関するものである。
【背景技術】
【0002】
多数アプリケーションに対して、エレメント(要素)の有限長のシーケンス(配列)の最小または最大を、プライバシを保護するように、決定する問題は重要である。たとえば、要素は、機密(sensitive)のバイオメトリック(生物測定的)、医療的、科学的、技術的、金融的、或いは商業的なデータである。
【0003】
その問題は以下のように定義される。第1プロセッサは暗号化された要素のシーケンスを格納する。その第1プロセッサは、たとえばそのシーケンスの最小要素の暗号化を決定する第2プロセッサと相互に作用する。その問題の要件は、最小要素の値およびインデックスがいかなるプロセッサによっても発見されないということである。
【0004】
特にこの問題は多くの安全なマルチパーティ計算方法において生じる。たとえば、第1プロセッサは、2進法の指紋特徴ベクトルのデータベースを有し、また、第2プロセッサは単一の暗号化された指紋特徴ベクトルを有する。そして、安全なマルチパーティ計算方法を使用して、第1プロセッサは、第2プロセッサの単一の特徴ベクトルとデータベースにおける各特徴ベクトルとの間の暗号化されたハミング距離を決定する。このようにして、第1プロセッサは、暗号化されたハミング距離のベクトルを得る。次に、最初の特徴ベクトルに最も類似するデータベース内の指紋特徴ベクトルを見つけるように、最小のハミング距離の暗号化が決定される。
【発明の概要】
【発明が解決しようとする課題】
【0005】
したがって、暗号化されたベクトル内の暗号化された或る(1つの)要素を、該暗号化されたベクトル内の該暗号化された複数の要素の順序により、選択する必要がある。
【0006】
この発明は、暗号化されたベクトル内の暗号化された或る(1つの)要素を、該暗号化されたベクトル内の該暗号化された要素の順序により、選択するためのシステムおよび方法を提供することを目的とする。暗号化されたベクトル内の暗号化された要素の順序は、秘密鍵で解読された、暗号化されたベクトルの複数の要素の値の順序で決定される。たとえば、いくつかのこの発明の実施の形態では、プライバシを保護するように、暗号化されたベクトルから最小要素を選択する。同様に、いくつかの実施の形態では、暗号化されたベクトル内で、最大の要素あるいは所定の順序を有する要素を選択した。
【0007】
この発明の実施の形態では、第1プロセッサと第2プロセッサとの間の安全なマルチパーティ(多数共同)通信を使用して、暗号化された要素を選択する。第2プロセッサは強秘匿な(semantically secure)加法的準同形写像暗号システム(additively homomorphic cryptosystem)用の1対の鍵を有し、該1対の鍵は秘密鍵と公開鍵とを含む。第2プロセッサは主に、暗号化されていない領域において動作する。反対に、第1プロセッサは公開鍵だけを格納し、暗号化された領域においてのみ動作する。暗号化されたベクトルは、公開鍵で暗号化され、第1プロセッサに格納される。
【0008】
この発明の実施の形態は2つの認識に基づく。第一に、第1プロセッサは順序を維持するマッピングを要素のシーケンスに適用して、その結果を第2プロセッサへ送信することができ、該第2プロセッサは、要素を知らずに、要素の順序に基づいて要素のインデックスを決定することができる。第二に、順序を維持するマッピングは、暗号化されたドメイン(領域)において適用することができ、それによって、要素のシーケンス全体を第1プロセッサおよび第2プロセッサの両方から秘密にしておく。
【0009】
したがって、この発明の実施の形態では、暗号化されたベクトル内の要素の順序が維持されるように、暗号化されたドメイン(領域)における暗号化されたベクトルの値をスケーリング(拡大、縮小)する。順序の順列(permutation)と組み合わせて、順序を維持しながらスケーリングすることにより、スケーリングされ順列化されたベクトル(scaled permuted vector)を生成する。而して、スケーリングされ順列化されたベクトルに関する情報を、秘密鍵を格納する2番目のプロセッサに与えることができ、一方、暗号化されていない領域の情報はスケーリングされ順列化されたベクトル内の要素の順序を表示する。暗号化されたベクトルの実際の値および実際の順序はスケーリングと順列化(permutation)によって隠されるので、そのような伝送(送信)(transmission)が可能である。
【課題を解決するための手段】
【0010】
したがって、この発明の実施の形態1は、第1プロセッサと第2プロセッサとの間の安全なマルチパーティ通信を使用して、暗号化されたベクトル内の暗号化された要素を、該暗号化されたベクトル内の該暗号化された要素の順序により、選択する方法を開示するものであり、ここで、上記第2プロセッサは強秘匿な加法的準同形写像暗号システムのための1対の鍵を格納し、該1対の鍵は秘密解読鍵および公開暗号鍵を含み、また、上記暗号化されたベクトルは、上記公開鍵で暗号化されて、上記第1プロセッサに格納され、また、上記第1プロセッサは、該第1プロセッサが暗号化された領域においてのみ動作するように、上記公開鍵だけを格納するものであり、
上記方法は、
暗号化されたベクトルの要素の値を、該暗号化されたベクトル内の該要素の順序が維持されるように、スケーリングするステップと、
スケーリングされ順列化されたベクトルを生成するために、上記暗号化されたベクトルの上記要素の順序を順列化する(permuting)ステップと、
上記暗号化された領域の情報を上記第2プロセッサへ提供するステップであって、暗号化されていない領域の情報は、上記スケーリングされ順列化されたベクトルの中の要素の順序を示すものである、ステップと、
上記スケーリングされ順列化されたベクトルの中の暗号化された要素の暗号化されたインデックスを得るステップと、
上記暗号化されたインデックスに基づいて、上記暗号化された要素を選択するステップと、を含み、
本方法の上記各ステップは上記第1プロセッサによって行われる。
【0011】
他の実施の形態は、システムの第1プロセッサと第2プロセッサとの間の安全なマルチパーティ通信を使用して、暗号化されたベクトル内の暗号化された要素を、該暗号化されたベクトル内の該暗号化された要素の順序により、選択するためのシステムを開示するものであり、ここで、上記第2プロセッサは強秘匿な加法的準同形写像暗号システムのための1対の鍵を格納し、該1対の鍵は秘密解読鍵および公開暗号鍵を含み、また、上記暗号化されたベクトルは、上記公開鍵で暗号化されて、上記第1プロセッサに格納され、また、上記第1プロセッサは暗号化された領域においてのみ動作するものであり、
上記システムは、
上記暗号化されたベクトルの要素の値を、該暗号化されたベクトル内の該要素の順序が維持されるように、スケーリングするための手段と、
スケーリングされ順列化されたベクトルを生成するために、上記暗号化されたベクトルの上記要素の順序を順列化する手段と、
上記暗号化された領域の情報を上記第2プロセッサへ提供するための手段であって、暗号化されていない領域の情報は、上記スケーリングされ順列化されたベクトルの中の要素の順序を示すものである、手段と、
上記スケーリングされ順列化されたベクトルの中の上記暗号化された要素の暗号化されたインデックスを得る手段と、
上記暗号化されたインデックスに基づいて、上記暗号化された要素を選択する手段と、を含み、
本システムの上記各手段は上記第1プロセッサによって行われる。
【0012】
さらに他の実施の形態は、システムの第1プロセッサと第2プロセッサとの間の安全なマルチパーティ通信を使用して、暗号化されたベクトル内の暗号化された要素を、該暗号化されたベクトル内の該暗号化された要素の順序により、選択するための方法を開示するものであり、ここで、上記第2プロセッサは強秘匿な加法的準同形写像暗号システムのための1対の鍵を格納し、該1対の鍵は秘密暗号鍵および公開解読鍵を含み、また、上記暗号化されたベクトルは、上記公開鍵で暗号化されて、上記第1プロセッサに格納され、また、上記第1プロセッサは暗号化された領域においてのみ動作するものであり、
上記方法は、
上記暗号化されたベクトルの要素の値を、該暗号化されたベクトル内の該要素の順序が維持されるように、スケーリングするステップと、
スケーリングされ順列化されたベクトルを生成するために、上記暗号化されたベクトルの上記要素の順序を順列化するステップと、
上記スケーリングされ順列化されたベクトルを第1加算的ベクトル(first additive vector)と第2加算的ベクトル(second additive vector)とに分割するステップと、
上記第1加算的ベクトルの要素対の差( pairwise differences of elements)のベクトルを決定するステップと、
暗号化されたインデックスを決定するために、上記要素対の差のベクトルおよび上記第2加算的ベクトルを上記第2プロセッサへ与えるステップと、
上記スケーリングされ順列化されたベクトルの中の上記暗号化された要素の暗号化されたインデックスを得るステップと、
上記インデックスの第1摂動項(first perturbation term)および第2摂動関数(second perturbation function)によって修正変更された、上記暗号化されたベクトルを上記第2プロセッサに提供するステップであって、上記暗号化されたインデックスでの上記第2摂動関数の値が零に等しいものである、ステップと、
上記暗号化されたインデックスに対応する、上記暗号化されたベクトルの要素を上記第2プロセッサから得るステップと、
上記暗号化されたベクトルの上記暗号化された要素を得るために、上記暗号化された領域において上記第1摂動項を減算するステップと、を含み、
本方法の上記各ステップは上記第1プロセッサによって行われる。
【0013】
定義
この発明の実施の形態について記述する際に、次の定義がそれらの実施の形態(上記を含み)を通して適用可能である。
【0014】
「コンピュータ」とは、構造化された入力を受け付け、所定の規則により該構造化された入力を処理し、また、その処理の結果を出力として生成することができる、あらゆる装置を指すものである。そのようなコンピュータの例としては、コンピュータ、汎用コンピュータ、スーパーコンピュータ、メインフレーム、スーパーミニコンピュータ、ミニコンピュータ、ワークステーション、マイクロコンピュータ、サーバー、対話型テレビジョン、コンピュータと対話型テレビジョンとのハイブリッド結合(組合せ)、およびコンピュータおよび(または)ソフトウェアをエミュレートするアプリケーションに特有のハードウェア、を含む。コンピュータは、単一のロセッサ、あるいは並列におよび(または)並列ではなく動作することができる多数のプロセッサを有することができる。コンピュータはまた、コンピュータ間で情報を送信または受信するために、ネットワークを介して共に接続された2つ以上のコンピュータをも指す。そのようなコンピュータの一例は、ネットワークによってリンク(結合)された複数のコンピュータを介して情報を処理するための分散形計算機システム、を含む。
【0015】
「中央演算処理装置(CPU)」あるいは「プロセッサ」は、コンピュータ、あるいはソフトウェア命令を読み取って実行するコンピュータのコンポーネント(構成要素)を指す。
【0016】
「メモリ」あるいは「コンピュータ可読媒体」は、コンピュータによってアクセス可能なデータを格納するための、あらゆる記憶装置を指す。それらの例としては、磁気ハードディスク、フロッピー(登録商標)ディスク、CD−ROMまたはDVDのような光ディスク、磁気テープ、メモリチップ、および電子メールを送受信する際あるいはネットワークにアクセスする際に使用されるような、コンピュータが読み取り可能な電子化データを搬送するのに使用される搬送波とたとえばランダムアクセスメモリ(RAM)等のコンピュータメモリー、を含む。
【0017】
「ソフトウェア」とは、コンピュータを作動させるための所定の(予め定められた)規則を指す。そのようなソフトウェアの例としては、ソフトウェア、コードセグメント、命令、コンピュータプログラム、およびプログラムされたロジック(論理)、を含む。インテリジェントシステムのソフトウェアは自己学習ができてもよい。
【0018】
「モジュール」あるいは「ユニット」とは、タスクあるいはタスクの一部を行うコンピュータ内の基本的なコンポーネント(構成要素)を指す。それはソフトウェアやハードウェアのいずれかによって実行することができる。
【発明の効果】
【0019】
この発明の実施の形態は、順序を維持したままのスケーリングを使用することにより、ベクトルの要素対(ペア)の比較を回避する。マッピングは、暗号化されていない領域における関心要素のインデックスの決定を可能にする。
【図面の簡単な説明】
【0020】
【図1】この発明の実施の形態1による、暗号化されたベクトル内の暗号化されたエレメント(要素)を選択するための方法のブロック図である。
【図2】この発明の実施の形態1による、順序を維持するスケーリング(拡大、縮小)の概略図である。
【図3】この発明の実施の形態1による、複数の要素の順序を表す情報を安全に決めるための方法のブロック図である。
【図4】この発明の実施の形態1の擬似コードの説明図である。
【発明を実施するための形態】
【0021】
実施の形態1.
図1は、第1プロセッサ101と第2プロセッサ102との間の安全なマルチパーティ通信を使用して、暗号化されたベクトル105内の暗号化された要素180を、該暗号化されたベクトル105内の該暗号化された要素180の順序(order)により、選択するための方法100を示している。
【0022】
暗号化されたベクトル内の暗号化された要素の順序は、秘密鍵で解読された、暗号化されたベクトルの複数の要素の値の順序で決定される。暗号化された要素は、順序ルール(規則)151によって選択される。順序規則の例としては、最小要素を選択すること、最大の要素を選択すること、暗号化されたベクトル内の2番目の最小要素を選択すること、あるいは中央の要素を選択すること、を含む。様々な実施の形態では、第2プロセッサあるいは両方のプロセッサが順序規則を知っている。
【0023】
第2プロセッサは、強秘匿な加法的準同形写像暗号システムのための1対の鍵を有する。その1対の鍵は、秘密解読鍵141および公開暗号鍵161を含む。第2プロセッサは主に、暗号化されていない領域において動作する。反対に、第1プロセッサは暗号化された領域においてのみ動作する。暗号化されたベクトル105は、公開鍵で暗号化され、第1プロセッサに格納される。
【0024】
たとえば、それらの鍵の対(ペア)(κ、κ)は、強秘匿な加法的準同形写像公開鍵暗号システムのための暗号化/解読の鍵の対である。暗号化関数はξ(・)であり、また、解読関数はξ−1(・)である。加法的準同形写像特性は、要素m,mのベクトルに対して、ξ(m)ξ(m)=ξ(m+m)およびξ(m=ξ(m)を保証する。さらに、要素z∈Zのベクトルに対して、暗号化されたベクトル105はξ(z)=(ξ(z)、ξ(z)、・・・、ξ(z))である。
【0025】
したがって、第1プロセッサは公開暗号鍵κおよび暗号化されたベクトルξ(z)を有し、第2プロセッサは鍵の対(ペア)(κ、κ)を有する。本方法100を行った後に、第1プロセッサはξ(min1≦i≦N)を得る。第2プロセッサは何も得ない。
【0026】
この発明の実施の形態1では、暗号化されたドメイン(領域)の暗号化されたベクトル内の要素の値をスケーリング110して、スケーリングされたベクトル115を生成する。そのスケーリングの後、暗号化されたベクトル内の要素の順序は維持されている。たとえば、暗号化されたベクトル内の最小要素のインデックスは、スケーリングされたベクトル内の最小要素のインデックスに等しい。そのスケーリングは、以下により詳細に記述されるように、順序を維持する行列210を使用して行われる。
【0027】
次に、スケーリングされたベクトル内の要素の順序は、スケーリングされ順列化されたベクトル125を生成するために、順列化120され、また、暗号化された領域の情報135は第2プロセッサに提供130される。ここで、暗号化されていない領域の情報は、スケーリングされ順列化されたベクトルの中の要素の順序を示す。この発明の実施の形態1では、その情報はスケーリングされ順列化されたベクトル自体である。
【0028】
他の実施の形態では、スケーリングされ順列化されたベクトルを第1加算的ベクトルと第2加算的ベクトルへ分割する。また、情報は、第1加算的ベクトルと第2加算的ベクトルの要素対(ペア)の差のベクトルである。
【0029】
第2プロセッサは、秘密鍵を使用して情報を解読140して、順序規則151により、暗号化されていない領域の情報142から要素のインデックス151を決定150する。次に、第2プロセッサは公開鍵でそのインデックスを暗号化160して、暗号化されたインデックスを第1プロセッサへ提供165する。
【0030】
第1プロセッサは、暗号化されたインデック165に基づいて、暗号化された要素180を選択170する。様々な実施の形態では、要素の暗号化されたインデックスに基づく暗号化された要素の選択は、以下に述べるように、第1プロセスと第2プロセッサとの間のオブリビアス(oblivious:紛失)通信に基づいている。
【0031】
順序を維持するスケーリング
順序を維持するスケーリングの目的は、ベクトルの要素の順序を維持しながら、暗号化されたベクトルの値を修正変更することである。この発明の実施の形態1は、順序を維持するマッピングが、暗号化されたドメイン(領域)において適用することができ、それによって、要素のシーケンス全体を第1プロセッサおよび第2プロセッサの両方から秘密にしておく、という認識に基づく。
【0032】
図2は、順序を維持するスケーリングの概略図を示す。たとえば、ベクトル220は5つの要素221〜225を有する。要素222および223は等しい値を有する。順序を維持する行列210でベクトル220を乗算することにより、異なる値であるが要素の順序が同じである、5つの要素231〜235を有するスケーリングされたベクトル230を生成する。たとえば、インデックス1を有する要素224がベクトル220内の最小要素である場合、同一のインデックス1を有する要素234はスケーリングされたベクトル230内の最小要素である。
【0033】
そのスケーリングは、ベクトル220内の同一の値、たとえば要素222−223、を有する要素がスケーリングされたベクトル230において同一の値を有することを保証しない。しかしながら、要素232−233の異なる値は、スケーリングされたベクトル230内の要素の順序を乱さない。
【0034】
したがって、この発明の実施の形態1では、第1プロセッサは、そのセット{1,2,・・・,N}上で順列πを生成して、ここで、Nは暗号化されたベクトルの大きさであり、順列化(permuted)されたベクトルξ(ν)=π(ξ(z))を得る。そして、第1プロセッサは整数g>0を選択して、次式によって順序を維持する行列G∈ZNxN210を生成する。
【0035】
【数1】

【0036】
この発明の実施の形態1では、スケーリングは、暗号化されたベクトルに順序を維持する行列を乗算することにより達成される。たとえば、スケーリングされ順列化されたベクトルは、ω=Gνである。順序を維持する行列において、要素gは整数である。
【0037】
如何なる1≦i、j≦Nに対して、ω−ω=g(ν−ν)であり、それは、g>0に対して、Gは順序を維持する行列であること、すなわち、ω≦ωである時かつそのときに限り、ν≦νであることを意味する。加法的準同形写像暗号化の特性を使用して、第1プロセッサはξ(ω)=ξ(Gν)を決定する。
【0038】
順序を表示する情報
スケーリングされ順列化されたベクトルに関する情報は、秘密鍵を格納する第2プロセッサに与えられ、たとえば、送信される。一方、基礎となる、暗号化されていない領域の情報は、スケーリングされ順列化されたベクトルの中の要素の順序を表わしており、また、気付かずに(obliviously)、順序を維持する行列の構成による暗号化されたベクトル内の要素の順序に関するものである。暗号化されたベクトルの実際の値および実際の順序はスケーリングと順列化(permuting)によって隠されるので、そのような伝送(送信)が可能である。
【0039】
図3に示される実施の形態では、スケーリングされ順列化されたベクトルが第1加算的ベクトルと第2加算的ベクトルとへ分割され、また、情報は、第1加算的ベクトルおよび第2加算的ベクトル自体の要素対の差のベクトルによって形成される。
【0040】
具体的には、第1プロセッサは、乱数の第1加算的ベクトル315 a∈Zを生成310する。準同形写像特性を使用して、第1プロセッサは、第2加算的ベクトル325ξ(ω−a)を決定320する。
【0041】
次に、第1プロセッサは、対(ペア)の差aΔのベクトル335を構成する。ベクトル335の要素は第1加算的ベクトルaの要素対の差である。
したがって、以下となる。
【0042】
【数2】

【0043】
対差のベクトル335および第2加算的ベクトル325は、スケーリングされ順列化されたベクトルの中の要素の順序を表示する情報135を形成する。情報135は第2プロセッサに提供130される。
【0044】
この発明の実施の形態の1つの変形例では、対差のベクトルの値がノイズベクトル345で修正変更340される。たとえば、第1プロセッサは、間隔[−g,g]に亘ってランダムノイズηを生成し、−g≦ηij≦gおよびΣ1≦i≦j≦N ηij=ηのように、ノイズベクトル
【数3】

を決定する。対差のベクトルは、aΔ−ηによってノイズベクトルで修正変更され、そして第2プロセッサへ伝送(送信)される。
【0045】
第2プロセッサは、暗号化された領域において第2付加的(加算的)シェア(second additive share)を得ており、また、要素毎の解読によってb=ω−aを得る。第1プロセッサは第1加算的ベクトルαを有し、また、第2プロセッサは第2加算的ベクトルbを有し、それらはスケーリングされ順列化されたベクトルωの加算的(加法的)なシェアである。したがって、α+b≦α+bのとき、かつそのときに限り、またα−α≦b−bのとき、かつそのときに限り、ω≦ωである。
【0046】
次に、式により、第2プロセッサは、第2加算的(加法的)シェアの対差のベクトルを決定する。
【0047】
【数4】

【0048】
両方の対差aΔおよびbΔのベクトルは
【数5】

要素を含む。
【0049】
第2プロセッサは、aΔ−ηおよび−bΔの対応する要素を比較する。ノイズベクトルηの任意の要素ηijに対して、第2プロセッサは、1≦i<j≦Nに対してα−α−ηij≦b−bであるか否かを決定する。この決定は、行列G行列の構成によって、g(ν−ν)−ηij≦0であるか否かを決定することと等価である。
【0050】
−g≦ηij≦gであるため、第2プロセッサは、
【数6】

のとき、かつそのときに限り、
【数7】

であると決定する。ここで、オペレータ
【数8】

は、場合に応じて、「より大きい」、または「より小さい」を意味する。而して、ν≠νのとき、順序が維持される。ν=νならば、第1プロセッサによって選択されたノイズベクトルηijの要素の値に依存して、α−α−ηijはb−bより大きくなったり、あるいは、小さくなったりする。しかしながら、このような摂動(変動:perturbation)により、第2プロセッサが、スケーリングされ順列化されたベクトルの要素を知らずに、インデックス151、たとえば、α=arg min1≦i≦Nν、を決定することをさらに可能にする。暗号化されたインデックス165は第1プロセッサに与えられる。
【0051】
要素の暗号化されたインデックスに基づいて選択すること
様々な実施の形態では、暗号化された要素の選択を該要素の暗号化されたインデックスに基づいて行うことが、第1プロセッサと第2プロセッサとの間のオブリビアス(紛失)通信を使用する。たとえば、1つの実施の形態では、第1プロセッサは、1≦i≦Nに対して、数γおよびβをランダム(無作為)に選択して、ξ(β(i−α)+ν+γ)を決定するために、準同形写像特性を使用する。ここで、γは第1摂動項であり、また、β(i−α)は、その値が暗号化されたインデックスで零と等しいインデックスの第2摂動関数である。第1プロセッサは、その結果として生じる、N個の暗号化されたエントリー(項目)を有するベクトルを第2プロセッサへ与える。
【0052】
第2プロセッサは、修正変更された要素να+γを得るためインデックスi=αに対応するエントリーを解読する。第2プロセッサは、修正変更された要素を再暗号化して、第1プロセッサに提供する。
【0053】
第1プロセッサは、次式を介して第1摂動項γにより導入されたノイズを削除して暗号化された要素180を生成するために、加法的準同形写像特性を使用する。
【0054】
【数9】

【0055】
図4は、この実施の形態の、自明である擬似コードを示す。
従来の方法は、安全なミリオネア(millionaire)プロトコルの変形例を使用して、プライバシを保護したままベクトルの要素を決定する。たとえば、それらの方法は、ベクトルの最小要素を決定するために、安全なミリオネアプロトコルを繰り返し適用することを行う。しかしながら、それらの方法は、両方のプロセッサでの通信オーバヘッドがN2に比例するので、計算(演算)上非能率的である。
【0056】
この発明の実施の形態は、順序を維持したままのスケーリングを使用することにより、ベクトルの要素対(ペア)の比較を回避する。マッピングは、暗号化されていない領域における関心要素のインデックスの決定を可能にする。
【0057】
この発明は好ましい実施の形態の例として記述されたが、この発明の趣旨および範囲内で、様々な他の改変および変更が行われてもよいことが理解されるべきである。したがって、この発明の真実の趣旨および範囲内に入るような、すべての変更例および変形例をカバーすることが、添付の特許請求の範囲の目的である。

【特許請求の範囲】
【請求項1】
第1プロセッサと第2プロセッサとの間の安全なマルチパーティ通信を使用して、暗号化されたベクトル内の暗号化された要素を、該暗号化されたベクトル内の該暗号化された要素の順序により、選択する方法であって、前記第2プロセッサは強秘匿な加法的準同形写像暗号システムのための1対の鍵を格納し、該1対の鍵は秘密解読鍵および公開暗号鍵を含み、また、前記暗号化されたベクトルは、前記公開鍵で暗号化されて、前記第1プロセッサに格納され、また、前記第1プロセッサは、暗号化された領域においてのみ動作するものであり、
前記方法は、
前記暗号化されたベクトルの要素の値を、該暗号化されたベクトル内の該要素の順序が維持されるように、スケーリングするステップと、
スケーリングされ順列化されたベクトルを生成するために、前記暗号化されたベクトルの前記要素の順序を順列化するステップと、
前記暗号化された領域の情報を前記第2プロセッサへ提供するステップであって、基礎となる、暗号化されていない領域の情報は、前記スケーリングされ順列化されたベクトルの中の要素の順序を示すものである、ステップと、
前記スケーリングされ順列化されたベクトルの中の前記暗号化された要素の暗号化されたインデックスを得るステップと、
前記暗号化されたインデックスに基づいて、前記暗号化された要素を選択するステップと、を含み、
本方法の前記各ステップは前記第1プロセッサによって行われる、方法。
【請求項2】
前記暗号化されたベクトル内の前記暗号化された要素の順序は、前記秘密鍵で前記第2プロセッサにより解読された、前記暗号化されたベクトルの複数の要素の値の順序で決定される、請求項1の方法。
【請求項3】
前記暗号化されたインデックスは、前記暗号化されていない領域において、前記スケーリングされ順列化されたベクトルの中の要素の順序により前記第2プロセッサによって決定され、前記公開鍵で暗号化される、請求項1の方法。
【請求項4】
前記提供するステップは、
前記スケーリングされ順列化されたベクトルを第1加算的ベクトルと第2加算的ベクトルとに分割するステップと、
前記第1加算的ベクトルの要素対の差のベクトルを決定するステップと、
前記暗号化されたインデックスを決定するために、前記要素対の差のベクトルおよび前記第2加算的ベクトルを前記第2プロセッサへ与えるステップと、
をさらに含む、請求項1の方法。
【請求項5】
前記提供するステップは、
前記暗号化されたインデックスを決定するために、前記スケーリングされ順列化されたベクトルを前記第2プロセッサへ与えるステップ、
をさらに含む、請求項1の方法。
【請求項6】
前記選択するステップは、
前記インデックスの第1摂動項および第2摂動関数によって修正変更された、前記暗号化されたベクトルを前記第2プロセッサに提供するステップであって、前記暗号化されたインデックスでの前記第2摂動関数の値が零に等しいものである、ステップと、
前記暗号化されたインデックスに対応する、前記暗号化されたベクトルの要素を前記第2プロセッサから得るステップと、
前記暗号化されたベクトルの前記暗号化された要素を得るために、前記暗号化された領域において前記第1摂動項を減算するステップと、
をさらに含む、請求項1の方法。
【請求項7】
前記暗号化されたインデックスは、順序規則に基づいて決定される、請求項1の方法。
【請求項8】
前記順序規則は、前記暗号化された要素がそれぞれ、前記暗号化されたベクトル内の最小要素あるいは前記暗号化されたベクトル内の最小要素であるように、最小あるいは最大の要素を選択するものである、請求項7の方法。
【請求項9】
前記スケーリングするステップは、
順序を維持する行列を構成するステップと、
前記暗号化されたベクトルに前記順序を維持する行列を乗算するステップと、
をさらに含む、請求項1の方法。
【請求項10】
整数g>0を選択するステップと、
次式により順序を維持する行列G∈ZNxNを決定するステップであって、
【数1】

ここで、Zは整数のセット(組)であり、Nは前記暗号化されたベクトル内の要素の数であり、また、要素gは整数である、ステップと、
をさらに含む、請求項9の方法。
【請求項11】
システムの第1プロセッサと第2プロセッサとの間の安全なマルチパーティ通信を使用して、暗号化されたベクトル内の暗号化された要素を、該暗号化されたベクトル内の該暗号化された要素の順序により、選択するためのシステムであって、前記第2プロセッサは強秘匿な加法的準同形写像暗号システムのための1対の鍵を格納し、該1対の鍵は秘密解読鍵および公開暗号鍵を含み、また、前記暗号化されたベクトルは、前記公開鍵で暗号化されて、前記第1プロセッサに格納され、また、前記第1プロセッサは暗号化された領域においてのみ動作するものであり、
前記システムは、
前記暗号化されたベクトルの要素の値を、該暗号化されたベクトル内の該要素の順序が維持されるように、スケーリングするための手段と、
スケーリングされ順列化されたベクトルを生成するために、前記暗号化されたベクトルの前記要素の順序を順列化する手段と、
前記暗号化された領域の情報を前記第2プロセッサへ提供するための手段であって、暗号化されていない領域の情報は、前記スケーリングされ順列化されたベクトルの中の要素の順序を示すものである、手段と、
前記スケーリングされ順列化されたベクトルの中の前記暗号化された要素の暗号化されたインデックスを得る手段と、
前記暗号化されたインデックスに基づいて、前記暗号化された要素を選択する手段と、を含み、
本システムの前記各手段は前記第1プロセッサによって行われる、システム。
【請求項12】
前記スケーリングされ順列化されたベクトルを第1加算的ベクトルと第2加算的ベクトルとに分割する手段と、
前記第1加算的ベクトルの要素対の差のベクトルを決定する手段と、
前記暗号化されたインデックスを決定するために、前記要素対の差のベクトルおよび前記第2加算的ベクトルを前記第2プロセッサへ与える手段と、
をさらに含む、請求項11のシステム。
【請求項13】
前記暗号化されたインデックスを決定するために、前記スケーリングされ順列化されたベクトルを前記第2プロセッサへ与える手段、
をさらに含む、請求項11のシステム。
【請求項14】
前記インデックスの第1摂動項および第2摂動関数によって修正変更された、前記暗号化されたベクトルを前記第2プロセッサに提供する手段であって、前記暗号化されたインデックスでの前記第2摂動関数の値が零に等しいものである、手段と、
前記暗号化されたインデックスに対応する、前記暗号化されたベクトルの要素を前記第2プロセッサから得る手段と、
前記暗号化されたベクトルの前記暗号化された要素を得るために、前記暗号化された領域において前記第1摂動項を減算する手段と、
をさらに含む、請求項11のシステム。
【請求項15】
第1プロセッサと第2プロセッサとの間の安全なマルチパーティ通信を使用して、暗号化されたベクトル内の暗号化された要素を、該暗号化されたベクトル内の該暗号化された要素の順序により、選択するための方法であって、前記第2プロセッサは強秘匿な加法的準同形写像暗号システムのための1対の鍵を格納し、該1対の鍵は秘密暗号鍵および公開解読鍵を含み、また、前記暗号化されたベクトルは、前記公開鍵で暗号化されて、第1プロセッサに格納され、また、前記第1プロセッサは暗号化された領域においてのみ動作するものであり、
前記方法は、
前記暗号化されたベクトルの要素の値を、該暗号化されたベクトル内の該要素の順序が維持されるように、スケーリングするステップと、
スケーリングされ順列化されたベクトルを生成するために、前記暗号化されたベクトルの前記要素の順序を順列化するステップと、
前記スケーリングされ順列化されたベクトルを第1加算的ベクトルと第2加算的ベクトルとに分割するステップと、
前記第1加算的ベクトルの要素対の差のベクトルを決定するステップと、
暗号化されたインデックスを決定するために、前記要素対の差のベクトルおよび前記第2加算的ベクトルを前記第2プロセッサへ与えるステップと、
前記スケーリングされ順列化されたベクトルの中の暗号化された要素の暗号化されたインデックスを得るステップと、
前記インデックスの第1摂動項および第2摂動関数によって修正変更された、前記暗号化されたベクトルを前記第2プロセッサに提供するステップであって、前記暗号化されたインデックスでの前記第2摂動関数の値が零に等しいものである、ステップと、
前記暗号化されたインデックスに対応する、前記暗号化されたベクトルの要素を前記第2プロセッサから得るステップと、
前記暗号化されたベクトルの前記暗号化された要素を得るために、前記暗号化された領域において前記第1摂動項を減算するステップと、を含み、
本方法の前記各ステップは前記第1プロセッサによって行われる、方法。
【請求項16】
前記暗号化された要素は前記暗号化されたベクトル内の最小要素である、請求項15の方法。
【請求項17】
順序を維持する行列を構成するステップと、
前記暗号化されたベクトルに前記順序を維持する行列を乗算するステップと、
をさらに含む、請求項15の方法。
【請求項18】
次式により前記順序を維持する行列G∈ZNxNを決定するステップであって、
【数2】

ここで、gは正の整数であり、Zは整数のセット(組)であり、Nは前記暗号化されたベクトル内の要素の数であり、また、要素gは整数である、ステップ、
をさらに含む、請求項17の方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate


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