説明

通信効率の良い秘匿情報検索及び紛失通信のための方法及び装置

【課題】データベースから非公開で情報を検索する方法、工業製品、及び装置を開示する。
【解決手段】一実施形態において、該方法は、データベースから検索する情報に対応するインデックスを取得するステップと、データベースに対して検索を明らかにしないクエリを生成するステップを含む。クエリは、インデックスの算術関数と秘密値であり、この算術関数には、素数の冪がランダム値の位数であるように、位数が素数の冪で割り切れるランダム値のモジュラスによって特定される乗法群を含む。秘密値は、モジュラスの素数への因数分解を含むインデックスの算術関数である。また、該方法は、データベースの全体に対して算術関数を実行するためにクエリをデータベースに通信するプロセスを更に含む。

【発明の詳細な説明】
【技術分野】
【0001】
本特許出願は、2004年5月20日に出願された「Method And Apparatus For Communication Efficient Private Information Retrieval And Oblivious Transfer」と題した仮出願第60573573号に対して優先権を主張する。
【0002】
本発明は、一般的な暗号論に関し、特に秘匿情報検索及び紛失通信の問題点に関する。
【背景技術】
【0003】
2人の架空の人物AliceとBobの次のようなシナリオを考えてみる。人物Bobは、m個の要素からなるデータベースDを所有している。ユーザであるAliceは、このデータベースにアクセスしたいと思っており、そのデータベースにアクセスできるようにBobと契約を結んでいる。しかしながら、プライバシーの理由から、Aliceは、自分がデータベース内のどの項目を探索しているのかをBobに知られたくないと思っている。当然、データベースのプライバシーが望まれる多くのシナリオを想定することができる。
【0004】
当技術分野では、上記の問題に対処する課題分野が公知であり、本明細書では、その課題分野を「秘匿情報検索(PIR:Private Information Retrieval)」と称す。(例えば、ユーザが知るべき情報以上の情報を知ることのないようにすることによる)データベースのプライバシー保持については、当技術分野において、その課題分野について時々言及されており、この明細書においては、「対称型秘匿情報検索(SPIR:Symmetric Private Information Retrieval)」又は「紛失通信(Oblivious Transfer)」として言及する。
【0005】
プライバシーの目的を実現するための単純なスキームとしては、データベースの所有者(この場合は、Bob)が、データベースの全てをAliceに送ることである。データベースに、m個のビットが含まれていれば、総通信計算量は、O(m)である。ここで、目的のためのこの表記は、am+bを意味する。なお、aとbは、数字である。Aliceは、いかなるクエリをも実行することができ、Bobは、単純に、Aliceのクエリについての情報を全く持たない。もちろん、この解決法は、中位の大きさのデータベースに対してさえ、全くもって非実用的である。また、このタイプのスキームは、データベースのプライバシー保持に対する要求も満たさない。
【0006】
あるスキームは、データベースの大きさにおいて超対数的である、つまり、O((logm))である総通信量を要求する。ここで、mは、データベース内の項目数であり、dは、1より大きい。このようなシナリオでの総通信量の理論的下限で、最もよく知られているものが、O(logm)である。
【0007】
「Private Information Retrieval」(ACMジャーナル(Journal of the ACM)、45巻、1998年(旧バーションは、FOCG95に掲載))において、Chor、Kushilevitz、Goldreich及びSudanは、セキュリティ分析に計算処理による仮定を必要としない情報理論的事例を検討している。
【0008】
この場合、彼らは、単一データベースを使いさえすれば、mビットが通信されるはずであるということを示している。
【0009】
一方、同一のデータベースの複製を数個使えば(これらのデータベースは互いに通信しないという制限のもと)、mビットの送信を必要としないスキームを実現することができる。
【0010】
データベースが互いに通信しないという制限の下、通信計算量がO(m1/3)である2つのデータベース用の秘匿情報検索スキームが存在し、任意の定数k≧2に対して、データベースが互いに通信しないという制限の下、通信計算量がO(m1/k)であるk個のデータベース用の秘匿情報検索スキームが存在することについて究明している。
【0011】
「Upper Bound on the communication complexity of privete information retrieval」(第24回ICALP予稿集、1997年)において、Ambainisは、データベースが互いに通信しないという制限の下、任意の定数k≧2に対して、通信計算量が
【数1】

【0012】
であるk個のデータベース用の秘匿情報検索スキームが存在し、同じく、データベースが互いに通信しないという制限の下、任意のk=θ(logm)に対して、通信計算量がO(logm−loglogm)であるθ(logm)個のデータベース用の秘匿情報検索スキームが存在することを示している。
【0013】
「Computationally Private Information Retrieval」(第29回STOC予稿集、pp.304−313、1997年)において、Chor及びN.Gilboaは、任意の∈>0に対して、通信計算量がO(m)である2つのデータベース用の秘匿情報検索スキームが存在していることを示している。
【0014】
彼らのスキームでは、疑似ランダムジェネレータの存在が必要となっている。一方向の関数が存在すれば、そのようなジェネレータが構成されることは、当技術分野では公知である。
【0015】
「Replication is not needed:single database、computationally privete information retrieval」(1997年FOC予稿集、pp.364−373)において、Kshilevitz及びR.Ostricskyは、計算処理による処理が難しい仮定を用いて、通信計算量がmより小さい単一(すなわち、k=1である)データベース用の秘匿情報検索スキームを実現している。
【0016】
公知の2次余剰仮定(Quadratic Residuocity assumption)に基づいて、彼らは、任意の∈>0に対して、通信計算量がO(m)である単一データベース用の秘匿情報検索スキームが存在することを実証している。
【0017】
そのようなスキームを構成するために、第1に、彼らは、通信計算量がO((2√m+1)−k)(但し、kは、セキュリティのパラメータ)である基本的なスキームを実証した。
【0018】
ある定数cに対してk=mであるとの仮定の下、結果として得られるスキームでは、通信計算量
【数2】

【0019】
を実現している。
【0020】
次に、Kshilevitz及びR.Ostricskyは、このスキームのステップの1つ自体が単一データベース用の秘匿情報検索プロトコルで置換できるとすると、結果として得られる通信計算量が、少なくなるであろうということを実証している。
【0021】
この考えを使って、彼らは、Lを帰納のレベルの数とする通信計算量が
【数3】

【0022】
である帰納的スキームを提案している。
【0023】
ある定数cに対して、セキュリティのパラメータがk=mであると仮定し、
【数4】

【0024】
を設定すると、通信計算量は、nO(√c)である。
【0025】
その後、Cachin、Micali、Stadlerが、「Computational Private Information Retrieval with Polylogarithmic Communication」(Eurocryp1999年予稿集、LNCS、pp.402−414、Springer−Verlag社)において、データベースの大きさにおいて、通信計算量が、多項式対数関数的である、すなわち、O(logm)である単一データベース用の計算処理による秘匿情報検索スキームの構成の仕方を示した。ここで、dは、1よりも大きい定数である。
【0026】
彼らのスキームにおいて推奨されるパラメータは、d=6であり、これにより、実際の総通信計算量は、O(logm)となる。
【0027】
Cachin―Micali―Stadlerスキームは、2つの計算処理による処理が難しい仮定に基づいている。
第1の仮定は、「Φ-hiding仮定(Φ-hiding assumption)」であり、これは、大雑把にいうと、合成数n及び小さい素数pが与えられると、pが、1/2よりも無視できない程良い確率で、Φ(n)を割り切れるかどうかについて決めることは難しいというものである。
【0028】
第2の仮定は、「Φ-samplimg仮定(Φ-samplimg assumption)」であり、これは、大雑把にいうと、pが、Φ(n)を割り切れるように、ランダムな合成数nを効率的に見つけることができるというものである。
【0029】
ユーザは、mビットのデータベースのi番目のビットを得るためには、iの符号化したものを少なくとも送信しなければならない。よって、いかなるスキームにおいても、O(logm)ビットを通信しなければならない。
【0030】
しかしながら、(計算量がO(logm)である)「Cachin―Micali―Stadlerスキーム」と、O(logm)という理論的下限との間には、まだ隔たりがある。
【0031】
Changは、「Single−Database Private Information Retrieval with Logarithmic Communication」(9th Australasian Conference on Information Security and Privacy)(ACISP 2004)予稿集、シドニー、オーストラリア、コンピュータサイエンスにおける講義録、Springer−Verlag社)において、サーバ側の通信計算量がO(logm)である最初の単一データベースの計算処理による秘匿情報検索スキームを実証している。
【0032】
このスキームは、ビルディングブロックとして、Paillierの暗号システムを利用しており、そのため、その暗号システである限り、安全である。
【0033】
言い換えると、Paillierの暗号システムは、(上述したKushilevitz−Ostrovskyスキームで使われるものと同じ仮定である)2次余剰仮定の拡張である合成剰余仮定を仮定し、安全であることを示すことができる。
【0034】
大雑把に言うと、合成剰余仮定は、
【数5】

【0035】
中のランダムな要素がnを法とするn乗根を有するかどうかを決定することが、計算処理によっては難しいということである。
【0036】
Julian Stemが、単一データベース用の秘匿情報検索の組みたて方法を、Paillierの暗号システムがその一例となっている意味的に安全な加法同形暗号スキームのほぼ全てから実証しているため、Changのスキームは、特別なケースのスキームである。
【発明の開示】
【発明が解決しようとする課題】
【0037】
しかしながら、Changのスキームのユーザ側の通信計算量は、O(m・logm)であり、これは、総通信計算量がO(m・logm)であることを意味している。
【0038】
よって、全体の通信計算量の観点から、Cachin―Micali―Stadlerスキームが、より優れているが、それでもなお、このスキームのO(logm)の計算量と、理論上の下限であるO(logm)との間には、著しい隔たりがあった。
【課題を解決するための手段】
【0039】
一実施形態において、当該方法は、データベースから検索する情報に対応するインデックスを取得するステップと、データベースに対してインデックスを明らかにしないクエリを生成するステップを含む。
【0040】
クエリは、インデックス及び秘密値の算術関数である。ここで、この算術関数には、素数の冪がランダム値の位数であるように、位数が素数の冪で割り切れるランダム値の法(モジュラス)によって特定される乗法群を含む。秘密値は、法の素数への因数分解を含むインデックスの算術関数である。
【0041】
また、当該方法は、データベースの全体に対して算術関数を実行するためにクエリをデータベースに通信するステップを更に含む。
【発明の効果】
【0042】
データベースから非公開で情報を検索する方法、工業製品、及び装置が開示されている。
【発明を実施するための最良の形態】
【0043】
本発明は、後述する詳細な説明及び本発明の様々な実施形態の添付図によって、より深く理解できるであろう。なお、これらの図は、本発明を特定の実施形態に制限するために用いたものではなく、単に、説明と理解のためのものである。
【0044】
以下、秘匿情報検索技術を説明する。これらの技術には、安全な秘匿情報検索技術が含まれる。
【0045】
本発明の実施形態は、クエリを行う側及びデータベースの所有者の計算処理上の要件、及び、これらの当事者が通信を行うチャンネルの帯域幅の要件に関して、効率的である安全な秘匿情報検索のためのスキームを含む。
【0046】
一実施形態において、ユーザは、自分がどのクエリを要求したかのかをデータベースの所有者に知られることなく、クエリに対する正しい応答を取得できるように、データベースに対してクエリを実行することができる。
【0047】
別の実施形態においては、データベースの所有者は、自分が知らせてもよいと思うデータベース以上の情報をユーザが知り得ることがないようにすることができる。
【0048】
これらの実施形態には、通信が、全体としてデータベースの大きさにおいて対数的であるスキームが含まれる。
【0049】
すなわち、通信計算量が、O(logm)であり、この通信計算量は、これらのスキームの全体の通信計算量と、典型的に実現しようとする理論上の下限であるO(logm)との範囲に収まる。
【0050】
換言すると、かかるインタラクションの間に要求される全体の通信量は、O(logm)である。
【0051】
一実施形態において、クライアントとサーバとの間で通信が発生する。ここでは、クライアントが、O(logm)ビットをサーバに送信し、サーバが、O(logm)ビットをクライアントに送信するものとする。
【0052】
しかしながら、当業者であれば、本発明は、このような具体的な詳細がなくても実行できることが明らかであろう。別の例においては、本発明を曖昧にすることを防ぐために、公知の構成及び装置を、詳細ではなく、概略図の形式で示している。
【0053】
以下に続く詳細な説明の幾つかの箇所は、コンピュータメモリ内のデータビットに関する演算のアルゴリズムとシンボリック表現によって表されている。
【0054】
これらのアルゴリズム的説明及び表現は、データ処理技術における当業者が、自分達の仕事の実体を効率的に当該分野の他の技術者に伝達するために利用する手段である。
【0055】
ここでのアルゴリズムは、一般的に、所望する結果へ導くステップの自己無撞着シーケンスであると考えられている。これらのステップは、物理量の物理的処理を必要としているものである。
【0056】
通常、必ずそうであるというわけではないが、これらの量は、記録し、転送し、組み合わせ、比較し、もしくは処理することが可能な電気又は磁気信号の形式をとっている。これらの信号を、ビット、値、要素、シンボル、特徴、用語、数等として参照することが、時によっては、共有して使用するという主な理由のために、都合がよいと証明されることもあった。
【0057】
しかしながら、これら全ての用語及び同様な用語は、適当な物理量と関連付けられ、これらの物理量に適用された都合のよいラベルにすぎないということに留意されたい。
【0058】
以下の説明から明らかなように、特に言及していない場合は、本明細書を通して、「処理(processing)」、「計算処理(computing)」、「計算(calculating)」、「決定(determining)」、「表示(displaying)」等の用語を用いて行う説明では、コンピュータシステム又は同様な電気演算器のアクションやプロセスに言及している。
【0059】
ここに言うコンピュータシステム又は同様な電気演算器とは、コンピュータシステムのレジスタやメモリ内の物理(電気)量として表されるデータを処理して、コンピュータシステムのメモリやレジスタ、その他の情報記録装置、送信装置、表示装置の内部の物理量として表される他のデータへ変換するものである。
【0060】
また、本発明は、本明細書の演算を実行する装置にも関する。
【0061】
この装置は、要求される目的のために特別に構成されてもよく、又は、コンピュータに記憶されているコンピュータプログラムによって選択的に起動又は再構成される汎用型のコンピュータから構成されていてもよい。
【0062】
このようなコンピュータプログラムは、それに限定されるものではないが、フロッピディスク、光ディスク、CD−ROM、磁気光ディスク、読み取り専用メモリ(ROM)、ランダムアクセスメモリ(RAM)、EPROM、EEPROM、磁気カード又は光カード等のあらゆるタイプのディスク、或いは、電気命令を記憶するのに適しており、それぞれがコンピュータシステムのバスに接続されているあらゆるタイプの媒体等のコンピュータで読み取り可能な記憶媒体に記憶されていてもよい。
【0063】
本明細書に提示したアルゴリズム及び表示は、特定のコンピュータ及び他の装置に本質的に関するものではない。様々な汎用型システムを、本明細書の教示に従ってプログラムと共に利用してもいいし、又は、必要な方法のステップを実行するためにより特化した装置を構成する方が便利かもしれない。
【0064】
これらの様々なシステムに必要な構成は、以下の説明から明らかになるであろう。また、本発明は、いかなる特定のプログラム言語をも参照せずに、説明している。ここに説明する本発明の教示するものを実装するために、様々なプラグラム言語を使用することができるということが分かるであろう。
【0065】
機械的に読み取り可能な媒体には、機械(例えば、コンピュータ)によって読み取り可能な形式で情報を記憶又は送信するためのあらゆるメカニズムが含まれる。
【0066】
例えば、機械的に読み取り可能な媒体には、読み取り専用メモリ(ROM)、ランダムアクセスメモリ(RAM)、磁気ディスク記憶媒体、光記憶媒体、フラッシュメモリ装置、電気、光、音響、又は、他形式の伝播信号(例えば、搬送波、赤外線信号、デジタル信号等)等が含まれる。
【0067】
<用語の定義>
以下の説明を通して、mは、データベース中の要素の数を表し、nは、効率的に因数分解することが難しいとされる合成モジュラスを表す。
【0068】
話を簡単にするために、データベースの各要素は、単一のビット(0か1)と仮定する。当該技術分野において通常の熟練を有する者が、以下の定義を読めば、本明細書に記載した方法、構成要素、システムが、任意のビット数を取り扱うように(例えば、単純な反復によって)修正することができることがわかるであろう。
【0069】
また、本明細書の目的のために、いかなる多項式関数q(n)においても、全てのn>nに対して、f(n)<1/q(n)となるような値nが存在するならば、関数f(n)は無視することができる。このように無視できる関数の一例が、f(n)=1/2である。
【0070】
aとbが、a≦bとなる2つの整数である場合に、[a,b]は、a以上b以下の整数の集合を表すものとする。すなわち、[a,b]={c∈Z|a≦c≦b}である。
【0071】
Sが、要素の集合で、Dが、Sにおいてサンプル化可能な確率分布とすると、分布Dに従って集合Sから要素sを取り出すプロセスを
【数6】

【0072】
で表す。
【0073】
多くの暗号化に関する発明の安全性は、特定の計算処理が困難であると仮定されていることに依拠している。
【0074】
例えば、特定の数を素因数に効率的に分解することが難しい限りにおいて、暗号化が安全であると証明しようとした。
【0075】
「計算処理上の(computational)」という用語が、このクラスの暗号システム(すなわち、特定の数を素因数に効率的に分解することが難しい限りにおいて安全である暗号システム)を識別するために使用されることがよくある。
【0076】
したがって、単一データベースの計算処理による秘匿情報検索スキームは、そのスキームの安全性を確立するために、ある種の計算処理上の仮定が必要とされていることを意味している。
【0077】
当技術分野においては、「情報理論的(information theoretic)」又は「無条件に(unconditional)」という用語を、いかなるタイプの仮定をも行わずに、特定の意味のある安全性の定義に数学的に見合っていると考えられるスキームに関連して使用することが多い。
【0078】
仮定に関しては、1つの仮説が別のものを示唆する場合が多々ある。
【0079】
典型的には、当技術分野において、このことは、第2の仮定に反するためのメカニズムを、第1の仮定に反するためのメカニズムに変換(当技術分野においては簡約として知られている変換)することによって示されている。
【0080】
そのような場合において、第1の仮説は、「より強い」と呼ばれ、一方の第2の仮定は、「より弱い」と呼ばれる。一般に、より弱い仮定のほうが好ましい。
【0081】
<計算処理による秘匿情報検索(CPIR)>
本明細書の目的のために、多項式対数関数的単一データベースの計算処理による秘匿情報検索スキームは、以下の定義に従う。
【0082】
(定義1:多項式対数関数的PIR)
D(・,・,・)、Q(・,・,・)、R(・,・,・)を効率的なアルゴリズムであるとする。
【0083】
かかる定義によれば、以下のような定数a,b,c,d>0が存在するならば、(D,Q,R)は、完全に多項式対数関数的CPIRスキームである。
【0084】
1.(正確さ) 全てのm、全てのmビットの文字列B、全てのi∈[1,m]、全てのkに対して、
【数7】

【0085】
2.(プライバシー) 全てのm、全ての(I,j)∈[1,m]、k>max(k,logm)となるような全てのk、全ての2ck−ゲート回路Aに対して、
【数8】

【0086】
ただし、a、b、c及びdは、CPIRの基礎の定数を使う。Bは、(サーバのコンポーネントに記憶してもよい)データベースの内容を構成し、個別のビットから成る。
【0087】
Dは、データベースからの応答を生成する方法である。ペア(Q,R)は、それぞれ、クエリ生成方法及び再構築方法を構成する。sは、(クエリqに関連付けられており、クエリqからのデータベースの応答を「再構築」するために使用される)秘密である。
【0088】
rは、応答であり、kは、安全性のパラメータである。一実施形態において、安全性のパラメータkは、個人個人が希望する安全性のレベルに従って設定され、残りのパラメータは、データベースの特徴(例えば、その大きさ)に基づいて設定される。
【0089】
多項式対数関数的スキームが、純粋に対数的総通信計算量を持つことを保証するために、b=1であり、|q|及び|r|は、O(k)である。
【0090】
<Φ-hiding仮定及びその変形>
定義される実施形態の安全性を提供することに関連して、多くの仮定がある。これらの仮定は、可変サンプリング分布Dに関して定義されている。その後、Dの候補である特定のサンプリング方法が与えられる。
【0091】
(オリジナルのΦ-hiding仮定)
(定義2: Φ-hiding仮定)
次の2つの条件を満たすようなe,f,g,h>0が存在する。
【0092】
[[1]] 全てのk>hに対して、全てのkビットの素数pに対して、S(p)が、pに対して「Φ-hide」処理を行うランダムなkビットの数
【数9】

【0093】
を出力するようなサンプリング・アルゴリズムS(・)が存在する。
【0094】
[[2]] 全てのk>hに対して、多項式時間アルゴリズムCが、
【数10】

【0095】
であるようなサンプリングアルゴリズムS(・)が存在する。
【0096】
なお、オリジナルの仮定では、k>hに対するkビットの素数の集合を使用している。一般化するために、Pで表される許容集合の1つの集合について考えてみる。
【0097】
例えば、許容集合の1つである当該集合が、ある範囲内の奇素数の冪であるとする。次に、オリジナルのΦ-hiding仮定において、サンプリングアルゴリズムは、一様にランダムである。
【0098】
これは、問題を難しくする、ある効率的に計算可能な分布を要求するだけで一般化することができる。そのため、オリジナルの形式は、より強い仮定である。
【0099】
(定義3:Pに対するΦ-hiding仮定)
任意のP∈Pに対して、
【数11】

【0100】
である効率的に計算処理可能な分布Dが存在するような定数fが存在する。
【0101】
上記の仮定は、2通りに修正することができる。
【0102】
まず、pがランダムに選択されていないとしても真であるという仮定である。
【0103】
そして、安全性を保持するために、モジュラスにおいて必要とされるビットの数がより少ないという仮定である。
【0104】
一実施形態では、同じ素数が、それぞれの新たなクエリに対して使用されるので、固定したpに対する安全性が仮定される。一方、Cachin―Micali―Stadlerスキームでは、各クエリに対する各データベースのビットに対して異なった素数を生成する。
【0105】
以下に、定義の形式表現を示す。
【0106】
(定義4:(Pに対する線形のΦ-hiding仮定)
neg(k)をkにおいて無視できる関数とする。任意のP∈Pに対して、
【数12】

【0107】
である効率的に計算処理可能な分布Dが存在するような定数fが存在する。
【0108】
(定義5:Pに対する強い線形のΦ-hiding仮定)
neg(k)をkにおいて無視できる関数とする。P∈P且つ任意のp∈Pに対して、
【数13】

【0109】
である効率的に計算処理可能な分布Dが存在するような定数fが存在する。
【0110】
なお、Φ(n)の大きい除数を明らかにすることは、nの因数分解を露呈することになりかねない。つまり、p>n1/4が、Φ(n)の除数であれば、(n;p)が与えられたnを容易に因数分解できることは、従来技術において公知である。従って、fは少なくとも4である。しかし、pがこれより小さければ、同様のことは知られていない。
【0111】
<サンプリング分布>
集合Pが与えられると、分布Dは、様々なΦ-hiding仮定を持つ傾向が強いと定義される。
【0112】
一実施形態において、nが2つの素数の積であり、Dが一様な分布である場合には、Φ-hiding仮定は、p=3に対して適用されない。
【0113】
例えば、素数QとQに対するn=Q≡2(mod 3)を仮定してみる。そうすると、QとQの一方が、3を法とする1と合同であることが分かる。したがって、3が、Φ(n)=(Q−1)(Q−1)を割ることが明らかである。
【0114】
3よりも大きな素数に対して同様な議論が可能である。
【0115】
例えば、Dが、2つの素数の合成数を
【数14】

【0116】
から一様に引き出すと仮定してみる。
【0117】
そうすると、pを法とするDの出力を考慮するだけで、Dが、どの集合を引き出したかを識別することができる。
【0118】
原則的に、一方の素数は、pを法とする1の値に合同であり、他方の素数は、pを法とする任意の値(0を除く)に合同になることができるので、第1の集合から引き出された数は、pを法とする一様なものとなる。
【0119】
しかしながら、第2の集合から引き出される数は、pを法とする一様なものではない。この場合、両方の素数は、pを法とする[2,p−1]における、ある数と合同である。
【0120】
pを素数と仮定すると、a∈[1,p−1]に対して、そのような2つの素数の積nは、a≠1であれば、n≡a(mod p)を満たす
【数15】

【0121】
の確率があり、a=1であれば、確率は、少し高い
【数16】

【0122】
となる。pが、合成数であれば、同じような状況が起こる。
【0123】
したがって、一実施形態において、特徴的な利点が無視することができるように分布Dが調整される。この目的を実現する1つの解決法は、
【数17】

【0124】
からサンプリングする場合に、上述した一様でない分布に一致するpを法とする分布でサンプリングするように、分布Dを調整することである。これは、先ず一様な分布でサンプリングし、次に或る確率で出力を拒否することで達成することができる。
【0125】
<データベースクエリ、応答、再構築>
図1は、データベースから非公開で情報を検索するプロセスの一実施形態の流れ図である。
【0126】
このプロセスは、(例えば、回路、専用ロジック等の)ハードウェアや、(汎用型コンピュータシステム、又は、専用装置などで作動する)ソフトウェアや、又は、その両者の組み合わせから構成されている処理ロジックによって実行される。処理ロジックは、ファームウェアから構成されてもよい。一実施形態において、処理ロジックは、(例えば、コンピュータシステム、移動装置(例えば、携帯電話等)の)クライアント装置の一部である。
【0127】
図1を参照すると、データベースから検索される情報に対応するインデックスを取得する処理ロジックによってプロセスが始まる(処理ブロック101)。インデックスは、データベース内の特定の場所を特定するアドレスを表している。
【0128】
このインデックスを使うことにより、処理ロジックは、インデックスの算術関数であるクエリ及びインデックスの算術関数である秘密値を生成する(処理ブロック102)。
【0129】
かかる算術関数は、モジュラス及びランダム値を含み、データベースにインデックスを明らかにしないために、インデックスの暗号化を表している。
【0130】
秘密値は、モジュラスの素数への因数分解を含む。一実施形態においては、クエリは、O(logm)ビットを含み、mは、データベースに記憶されている要素の数と等しい。
【0131】
クエリを生成すると、処理ロジックは、データベースの全体に対して算術関数を実行するために、クエリをデータベースに通信する(処理ブロック103)。
【0132】
その後、処理ロジックは、データベースによる算術関数の実行結果を受け取り(処理ブロック104)、その結果を復号する(処理ブロック105)。一実施形態においては、データベースとの間で交換する情報の総量は、データベースに記憶されている情報の総量よりも少ない。
【0133】
(クエリ生成プロセスの例)
以下、σ:[1;m]→Pは、データベースのインデックスの集合を、
【数18】

【0134】
、素数であるp’によって与えられる素数の冪の集合へ写像することを表すものとする。ここで、pは、Pにおけるj番目の素数の冪である。
【0135】
本明細書の目的のために、P及びσの写像は、クエリア及びデータベースの両方に知られているものと仮定する。
【0136】
図2は、クエリを生成するプロセスの一実施形態の流れ図である。
【0137】
このプロセスは、(例えば、回路、専用ロジック等の)ハードウェアや、(汎用型コンピュータシステム、又は、専用装置等で作動する)ソフトウェアや、又は、その両方の組み合わせから構成されてもよい処理ロジックによって実行される。処理ロジックは、ファームウェアによって構成されていてもよい。
【0138】
一実施形態において、プロセスは、入力値として、多くの値(m,I,k,P,D,σ)を有する。
【0139】
ここで、mは、データベース内のビット数であり、i∈[1,m]は、クエリアが興味を持っている事項を表すデータベースのインデックスであり、kは、より高いセキュリティを提供するために大きくすることができるセキュリティのパラメータであり、Pは、素数の冪の集合であり、Dは、
【数19】

【0140】
に対する分布であり、σは、上述した[1,m]からPへの写像である。
【0141】
図2を参照すると、素数の冪を求めるために、写像をインデックスに論理的に適用する処理ロジックによって、かかるプロセスが開始する(処理ブロック201)。一実施形態において、素数の冪は、σ(i)=Pi’を計算することにより求められる。
【0142】
素数の冪を使って、処理ロジックは、素数の冪に対して「Φ-hide」処理を行う値の集合から、十分に大きいモジュラスを、分布関数により、サンプリングする(処理ブロック202)。
【0143】
つまり、モジュラスの因数分解を困難にするために、モジュラスは十分に大きい。例えば、一実施形態においては、1024ビットは、十分に大きいと考えられるが、それよりも大きいモジュラスを使用してもよい。
【0144】
一実施形態において、このことは、
【数20】

【0145】
を生成することにより起こる。
【0146】
モジュラスをサンプリングした後、処理ロジックは、モジュラスを法としてとる乗法群において、位数が素数の冪であるランダム値を生成する(処理ブロック203)。
【0147】
一実施形態においては、ランダム値は、pi’で割り切れる位数を有するランダムなx∈(Z/nZ)を生成することによって生成される。
【0148】
ランダム値を生成した後に、処理ロジックは、クエリを出力する(処理ブロック204)。一実施形態において、クエリq=(n;x)及び秘密sは、nの因数分解を表している。
【0149】
(応答生成プロセスの例)
データベースは、クエリアからクエリを受け取り、それに応答して、クエリアに送信される応答を生成する。図3は、応答を生成するプロセスの一実施形態の流れ図である。
【0150】
このプロセスは、(例えば、回路、専用ロジック等の)ハードウェアや、(汎用型コンピュータシステム又は専用装置等で作動する)ソフトウェアや、又は、それらの組み合わせから構成されている処理ロジックによって実行される。処理ロジックは、ファームウェアによって構成されていてもよい。処理ロジックは、データベースの一部であってよい。
【0151】
一実施形態において、かかるプロセスは、入力値として多くの値(B,n,x,P,σ)を有する。
【0152】
ここで、Bは、mビット文字列として閲覧されたデータベースの内容を示し、nは、合成モジュラスであり、xは、(Z/nZ)からの要素であり、Pは、素数の冪の集合であり、σは、上述した[1,m]からPへの写像である。
【0153】
図3を参照すると、データベースを複数の群に分割することによって、プロセスが始まる(処理ブロック301)。
【0154】
一実施形態において、データベースBは、
【数21】

【0155】
に分割される。ここで、
【数22】

【0156】
である。
【0157】
データベースを群に分割した後で、処理ロジックは、データベースの複数の群のそれぞれを整数として表す(処理ブロック302)。
【0158】
一実施形態において、このことは、各Cを、数C∈[0,2−1]として表現することで起こる。つまり、[0,2−1]内の数を、底2で表記したものとしてCを見る場合に、そのときの数をCと呼ぶ。
【0159】
次に、処理ロジックは、上述した各群のインデックスに関連付けられた素数の冪を法とする群のそれぞれの整数表記と合同である整数値を計算処理する(処理ブロック303)。
【0160】
一実施形態においては、全てのiに対して、e≡C(mod pi’)となるような最小の正の整数となるように、eを設定することにより、整数値の計算が行われる。
【0161】
かかる整数値を使うことにより、処理ロジックは、応答を生成する(処理ブロック304)。
【0162】
一実施形態において、処理ロジックは、かかる整数値と等しい指数を持つ底の入力値を冪乗し、モジュラス値で算術モジュロ演算を実行することによって、応答を生成する。一実施形態において、応答生成には、応答r=x(mod n)の出力が含まれる。
【0163】
この技術の最初の3つの演算は、クエリから独立していることに留意されたい。そのため、本発明の他の実施形態では、これらの3つの演算は、予め計算処理することができる。
【0164】
(再構築プロセスの例)
データベースが、クエリへの応答をクエリアに提供した後、クエリアは、応答を検索するために、結果に基づいて再構築を行う。図4は、応答の検索を実行するプロセスの流れ図である。
【0165】
このプロセスは、(例えば、回路、専用ロジック等の)ハードウェアや、(汎用型コンピュータシステム又は専用装置等で作動する)ソフトウェアや、又は、それらの組み合わせから構成されている処理ロジックによって実行される。処理ロジックは、ファームウェアによって構成されていてもよい。処理ロジックは、データベースの一部であってもよい。
【0166】
一実施形態において、かかるプロセスは、入力値として多くの値(m,i,n,x,r)を有する。
【0167】
ここで、mは、データベース内のビット数であり、i∈[1,m]は、クエリアが興味を持っている事項を表すデータベースのインデックスであり、nは、合成モジュラスであり、xは、(Z/nZ)からの要素であり、rは、(Z/nZ)における値である。
【0168】
図4を参照すると、特定のインデックスに関連付けられた素数の冪によって分割されるモジュラスに適用されるオイラーのファイ関数(Euler totient function)と等しい冪まで、第1の入力底を冪乗し、第1の入力底を冪乗した結果に基づくモジュラスを使用するモジュロ演算を実行することによって第1の値を決定するという処理ロジックにより、プロセスが開始される(処理ブロック401)。
【0169】
一実施形態において、第2の値は、
【数23】

【0170】
を演算処理することにより生成される。
【0171】
第1の値を決定した後で、処理ロジックは、素数の冪まで第2の入力底を冪乗し、第1の入力底を冪乗した結果に基づくモジュラスを用いるモジュロ演算を実行することによって、第2の値を決定する(処理ブロック402)。
【0172】
一実施形態において、第2の値は、
【数24】

【0173】
を演算処理することにより生成される。
【0174】
第2の値を決定した後で、処理ロジックは、第1の値と等しい底に対する第2の値の離散対数に基づき、第3の値を算術的に決定する(処理ブロック403)。
【0175】
一実施形態において、第3の値は、底yに対するzの離散対数(モジュロn)であるCを演算処理することにより生成される。
【0176】
一度、第3の値が生成されると、処理ロジックは、この第3の値から、クエリに関連付けられた少なくとも1ビットを生成する(処理ブロック404)。
【0177】
一実施形態において、少なくとも1ビットを生成することには、Cの(i mod l)ビットであるBの出力を含む。
【0178】
<単一データベースの計算処理的秘匿情報検索のためのクライアント、サーバ及びシステムの実施形態>
クライアントコンポーネントは、処理ロジックを実行することができる(例えば、回路、専用ロジック等の)ハードウェア装置や、(汎用型のコンピュータシステム、又は、専用装置等で作動するような)ソフトウェア装置や、又は、その両方の組み合わせであってよい。
【0179】
図5は、クライアントの一実施形態の流れ図である。
【0180】
図5を参照すると、クライアントは、クエリを生成して応答を送信する方法を実行することによってデータベースの項目を要求することができる外部ネットワークインターフェイス501と、外部ネットワークインターフェイス501及びメモリ503に連結されたプロセッサ502とを備える。
【0181】
一実施形態において、プロセッサ502は、データベースに対する応答を受け取り、再構築のための方法を適用することができるので、興味のあるデータベースに含まれる項目を取得することができる。
【0182】
サーバコンポーネントは、処理ロジックを実行することができる(回路、専用ロジック等の)ハードウェア装置や、(汎用型のコンピュータシステム、又は、専用装置上で作動するような)ソフトウェア装置や、又は、その両方の組み合わせであってよい。
【0183】
図6は、クライアントの一実施形態の流れ図である。
【0184】
図6を参照すると、サーバは、データベースの項目に対する要求を受け取ることのできる外部ネットワークインターフェイス601と、外部ネットワークインターフェイス及びメモリに接続されたプロセッサ602とを備える。
【0185】
かかるプロセッサは、データベースの応答を生成するための方法によって与えられた出力をネットワークに送信する。ここで、第2、第3の入力が、かかる要求から取られる。
【0186】
単一データベースの計算処理による秘匿情報検索を提供するクライアントとサーバとの間のデータを通信するシステムについて考えてみる。
【0187】
このようなシステムは、データベースクエリを生成し、そのようなクエリを通信ネットワークを通じてサーバに送信し、サーバから通信ネットワークを介して応答を受け取り、興味のあるデータベースの項目を再構成することができるクライアントコンポーネントを備え、サーバコンポーネントは、データベースの応答を生成し、そのような応答を、通信ネットワークを通じてクライアントに送信することができる。
【0188】
<対数的紛失通信>
紛失通信において、クエリアが情報の単一ビットの検索だけを許可されているという意味で、サーバのプライバシーも保持されている。秘匿情報検索スキームのための本明細書に記載の技術は、紛失通信を提供するために修正することができる。
【0189】
一実施形態において、幾分不十分な紛失通信スキームを構成するための一般的な合成パラダイムが、効率的な秘匿情報検索スキームで定義され、効率的な紛失通信スキームが実現する。
【0190】
次に、どのようにして上述した既存の秘匿情報検索スキームを、そのような幾分不十分な紛失通信スキームに変換することができるかについて具体的に述べる。
【0191】
非効率な紛失通信のコンポーネントは、小さい入力の演算のみを行い、一方で、より効率的な秘匿情報検索コンポーネントは、大きいサイズの入力の演算を行うので、合成パラダイムが機能する。合成パラダイムを適用することにより、対数的総通信を実現する紛失通信スキームが得られる。
【0192】
上述した秘匿情報検索の技術によって、クエリアが、(少なくとも)logmビットを回復することができる。ここで、mは、データベースのサイズである。
【0193】
このスキームを修正するために、このスキームにより、クエリアは、所与のlビット(l=logm)ブロックCから単一ビットを回復させることだけができるが、同時に、クエリアが、1つ以上のブロックからビットを回復することも防いでいる。
【0194】
以下では、OTを、lビットの文字列C及びクエリアのクエリqOTi,jを入力として取得し、応答
【数25】

【0195】
を出力する既存の紛失通信スキームとする。
【数26】

【0196】
という制限を条件として、さまざまな紛失通信スキームを使うことができる。
【0197】
一実施形態において、この制限は、紛失通信スキームの通信計算量がO(logm)であるように使われている。この紛失通信スキームを使うことで、上述した秘匿情報検索スキームの技術を、クエリアが任意のブロックの単一ビットを越えて回復することができないことを保証するように修正してもよい。
【0198】
(紛失通信クエリ生成プロセスの例)
図8は、紛失通信クエリ生成方法の一実施形態の流れ図である。
【0199】
このプロセスは、(例えば、回路、専用ロジック等の)ハードウェアや、(汎用型コンピュータシステム、又は、専用装置等で作動するような)ソフトウェアや、又は、その両者の組み合わせによって構成されてもよい処理ロジックによって実行される。処理ロジックは、ファームウェアによって構成されていてもよい。一実施形態において、流れ図中の演算は、クエリアによって実行される。
【0200】
図8を参照すると、このプロセスは、データベースB中のデータベースビットを素数の冪に写像する処理ロジックによって開始される(処理ブロック801)。このことは、上述したものと同様に起こる。但し、例外は、(底の素数は同じであっても)素数の冪がオリジナルのものより小さい、又は、大きい可能性があるということである。
【0201】
一実施形態において、各素数の冪は(各素数の冪が2より大きくなくてはならないことにもともと反して)2max{ri}より大きいので、データベースの応答は、劣化なしに暗号化することができる。
【0202】
次に、クエリアにおける処理ロジックは、適当な素数の冪p及びジェネレータxに対して「Φ-hide」処理を行うモジュラスnを生成する(処理ブロック802)。
【0203】
これにより、データベースのビットCのj番目のビット、ブロックCにおけるj∈[1,l]に、クエリアが興味を持っていることを推測することができる。
【0204】
その後、クエリアの処理ロジックは、(任意の文字列Cに対して)データベースの紛失通信応答
【数27】

【0205】
により、クエリアが、Cijを回復できるように、j∈[1,l]におけるインデックスを暗号化する紛失通信クエリ
【数28】

【0206】
を生成する(処理ブロック803)。
【0207】
(紛失通信応答生成プロセスの例)
図9は、紛失通信クエリ生成プロセスの一実施形態の流れ図である。
【0208】
このプロセスは、(例えば、回路、専用ロジック等の)ハードウェアや、(汎用型コンピュータシステム、又は、専用装置等で作動するような)ソフトウェアや、又は、その両者の組み合わせから構成されてもよい処理ロジックによって実行される。処理ロジックは、ファームウェアによって構成されていてもよい。 一実施形態において、流れ図中の演算は、データベースによって実行される。
【0209】
図9を参照すると、このプロセッサは、全てのiに対して、e≡rij(mod p)であるようなeを計算処理する処理ロジックによって開始される(処理ブロック901)。
【0210】
次に、処理ロジックは、値x(mod n)を計算し(処理ブロック902)、そして、この値をクエリアに送信する(処理ブロック903)。
【0211】
(紛失通信再構築プロセスの例)
図10は、紛失通信応答検索のプロセスの一実施形態の流れ図である。
【0212】
このプロセスは、(例えば、回路、専用ロジック等の)ハードウェアや、(汎用型コンピュータシステム、又は、専用装置等で作動するような)ソフトウェアや、又は、その両方の組み合わせから構成されてもよい処理ロジックによって実行される。処理ロジックは、ファームウェアによって構成されていてもよい。一実施形態において、図10に記載されている演算は、クエリアによって実行される。
【0213】
プロセッサは、図10を参照すると、rijを回復する処理ロジックによって開始される(処理ブロック1001)。
【0214】
一実施形態において、処理ロジックは、秘匿情報検索の再構築プロセスにおいてCを回復するのと同様の方法で回復を実行する。
【0215】
ijを回復した後に、処理ロジックは、ビットCijを紛失通信応答rijから回復する(処理ブロック1002)。
【0216】
(紛失通信プロセスの分析)
上記のやり方によって、クエリアが、任意の単一ブロックCから1ビットを越えて回復することはできないことを保証されるが、クエリアが、1つ以上のブロックから1ビットを回復することができないことを保証するものではない。
【0217】
例えば、クエリアは、2つの素数の冪pi1及びpi2に対して「Φ-hide」処理を行うように、nを選択することができ、この場合、上述したデータベースの紛失通信の補足された応答によって、2つのデータベースビット、つまり、Ci1jとCi2jが、クエリアに与えられる。
【0218】
この問題に対処するため、一実施形態において、データベースは、クエリアが、nにおいて、2以上の素数の冪に対して「Φ-hide」処理を行うことから恩恵を受けることができないことを保証するために、この技術を使う。
【0219】
議論のために、Φ(n)が、1つの素数の冪pだけによって割り切れ、残りに対して互いに素であることを確認することができるデータベースを想定してみる。
【0220】
また、e’が、pを法とするrijと合同である最も小さい整数であり、(上記スキームで設定したように)e=e’と設定する代わりに、データベースが、適当に大きい範囲(例えば、[1,n])から乱数zを選び、
【数29】

【0221】
を設定し、x(mod n)をクエリアに送信する場合を考えてみる(この方法で選択された場合、eは、必要なモジュール方式の等式をまだ満たしていることに注意されたい)。
【0222】
このシナリオにおいて、pi2が、Φ(n)に対して互いに素であれば、クエリアは、値Ci2jについて何らかの情報を取得することができるかどうかの問いに関して、たとえ境界のない計算処理上の素数を有し、データベースの他の全てのビットを知っていたとしても、クエリアは、せいぜい無視できる程の情報を得られ程度であるというのが答えである。
【0223】
なぜならば、クエリアが、Ci2jに関して取得可能な唯一の情報は、eに埋め込まれているためである。特に、クエリアが、eについて引き出せる唯一の情報は、以下の通りである。
【0224】
1. Φ(n)を法とするeの値(クエリアは、難しい課題ではあるが、底xに対してxの離散対数を計算処理することによって、この値を回復することができる)
2.
【数30】

【0225】
に対して、
【数31】

【0226】
である。ここで、Cij=0ならば、e’=e’であり、Cij=1ならば、e’=e’である(これは、データベースが、eを計算処理する方法なので、クエリアは、このことを知っている)。
【0227】
そこで、問題は、クエリアが、
【数32】

【0228】
の2つの確率のうち、どちらが真であるかを見分けることができるかどうかである。答えは、(無視できる程度の利点を除き、)できない、である。
【0229】
なぜならば、2つの事象の条件付き確率(クエリアのeについての情報に関する条件)は、無視できるためである。
【0230】
eΦ(n)=e mod Φ(n)を設定すると、z∈[1,n]に対して、
【数33】

【0231】
を満たすeの
【数34】

【0232】
の可能値のどちらか一方が存在する。
【0233】
状況は、等式、すなわち、z∈[1,n]に対して、
【数35】

【0234】
の第2の集合に対して同じである。
【0235】
したがって、条件付き確率同士の差は、せいぜい
【数36】

【0236】
であり、これは、無視できるものであることを検証することができる。
【0237】
一実施形態において、ユーザは、Φ(n)が、素数の冪pのうち、1つだけによって割り切れ、残りに対して互いに素であるように、nを選択する。
【0238】
なお、クエリアが、不正を行わなければ(そして、Φ(n)が、Φ(n)を割り切る1つ(p)を除く全ての素数の冪に対して互いに素であれば)、Z/nZの任意の数が、nを法とする固有の
【数37】

【0239】
乗根を持つことになることに留意されたい。
【0240】
しかしながら、ユーザが、不正を行った場合(根が存在するならば)、その根は、固有ではなくなる。
【0241】
そのため、不正を防止するため、不正を行わない者は、計算処理を行うことができるが、不正を行う者は、計算処理を行うことができない固有の
【数38】

【0242】
乗根から生成される疑似ランダム系列で、データベースが、ブロックCのビットをマスクする(そして、オリジナルのCではなく、このマスクされた文字列からrijを生成する)
一実施形態において、全体的に改良した紛失通信スキームの方法について以下に説明する。
【0243】
(紛失通信のためのクエリ生成プロセスの他の実施形態)
一実施形態において、紛失通信クエリ生成のためのクエリ生成プロセスは、上述したプロセスと同じである。
【0244】
(応答生成プロセスの他の実施形態)
図11は、応答生成プロセスの他の実施形態の流れ図である。
【0245】
このプロセスは、(例えば、回路、専用ロジック等の)ハードウェアや、(汎用型コンピュータシステム、又は、専用装置等で作動するような)ソフトウェアや、又は、その両方の組み合わせから構成されてもよい処理ロジックによって実行される。処理ロジックは、ファームウェアによって構成されていてもよい。一実施形態において、図11に記載される演算は、データベースよって実行される。
【0246】
図11を参照すると、このプロセスは、乱数y∈(Z/nZ)を生成するロジックを処理する処理ロジックによって開始され、
【数39】

【0247】
を設定する(処理ブロック1101)。
【0248】
各ブロックCに対して、処理ロジックは、y=ypi(mod n)を設定し、
【数40】

【0249】
を設定し、そして、rij=OT(C’;qOT,l)を設定する(処理ブロック1102)。
【0250】
そして、処理ブロックは、乱数z∈[1,n](又は、他の適当な範囲において)を生成する(処理ブロック1103)。
【0251】
その後、処理ブロックは、任意のiに対して、e’=rij(mod p)を満たす最小の正の整数となるe’を設定し、
【数41】

【0252】
を設定し(処理ブロック1104)、そして、r=x(mod n)とする応答(Y,y)を送信する(処理ブロック1105)。
【0253】
図12は、紛失通信応答検索の他の実施形態の流れ図である。
【0254】
このプロセスは、(例えば、回路、専用ロジック等の)ハードウェアや、(汎用型コンピュータシステム、又は、専用装置等で作動するような)ソフトウェアや、又は、その両方の組み合わせから構成されている処理ロジックによって実行される。処理ロジックは、ファームウェアによって構成されていてもよい。一実施形態において、図12に記載する演算は、クエリアによって実行される。
【0255】
図12を参照すると、このプロセスは、上述した標準的なメカニズム、すなわち、Φ(n)/pによって冪乗し、関連する離散対数を計算するメカニズムを使って、rijを回復する処理ブロックによって開始される(処理ブロック1201)。
【0256】
ijを使って、処理ロジックは、C’のj番目のビットを回復する(処理ブロック1202)。
【0257】
そして、処理ロジックは、nを法とするYの固有の
【数42】

【0258】
乗根として、yを回復する(処理ブロック1203)。
【0259】
最後に、処理ロジックは、Ci’jとH(y)から、Cijを計算する(処理ブロック1204)。
【0260】
結果として得られるビットが予測不可能であるということが、関数Hから必要とされる唯一の安全性のプロパティである。この目的を実現するための数多くの方法が、当業者には公知である。このような方法には、ハードコアビットや、SHA-1等の安全な暗号化ハッシュ関数、強秘匿暗号化スキーム当を使用することが含まれるが、これらに限定されるものではない。
【0261】
(紛失通信クライアントの例)
紛失通信クライアントのコンポーネントは、処理ロジックを実行可能な、(例えば、回路、専用ロジック等の)ハードウェア装置や、(汎用型コンピュータシステム、又は、専用装置等で作動するような)ソフトウェア装置、又は、その両方の組み合わせであってよい。
【0262】
一実施形態において、このコンポーネントは、図5のクライアントコンポーネントと同様なコンポーネントを有する。例えば、コンポーネントは、データベースの項目に対する要求がなされる外部ネットワークインターフェイスから構成されている。
【0263】
しかしながら、紛失通信クライアントは、紛失通信クエリを生成して応答を送信する方法を実行することによってそれを行う。
【0264】
コンポーネントは、外部ネットワークインターフェイス及びメモリに接続されたプロセッサを更に備える。
【0265】
プロセッサは、紛失通信データベースに対する応答を受け取り、データベースに含まれる興味のある項目を取得するために、再構築プロセスを適用することができる。
【0266】
紛失通信サーバのコンポーネントは、上述した処理を実行可能な、(例えば、回路、専用ロジック等の)ハードウェア装置や、(汎用型コンピュータシステム、又は、専用装置等で作動するような)ソフトウェア装置や、又は、その両方の組み合わせであってよい。
【0267】
一実施形態において、コンポーネントは、図6のクライアントコンポーネントと同様なコンポーネントを有する。
【0268】
例えば、サーバコンポーネントは、データベースの項目に対する要求を受け取る外部ネットワークインターフェイスを備える。
【0269】
また、コンポーネントは、外部ネットワークインターフェイス及びメモリに接続されたプロセッサを更に備える。
【0270】
プロセッサは、紛失通信データベースの応答を生成するプロセスによって与えられる出力をネットワークへ送信する。ここで、第2及び第3の入力は、かかる要求から取得される。
【0271】
<単一データベースの計算処理による秘匿情報検索のためのシステム>
システムの一実施形態では、単一データベースの紛失通信を提供するために、クライアントとサーバとの間で、データを通信する。
【0272】
一実施形態において、システムは、紛失通信データベースクエリが可能で、そのようなクエリを通信ネットワーク上でサーバに送信することができ、サーバから通信ネットワークを介して紛失通信応答が可能であり、データベースの興味がある項目を再構築することができる紛失通信応答クライアントコンポーネントを含む。
【0273】
一実施形態において、サーバコンポーネントは、データベース応答を生成し、そのような応答を通信ネットワーク上でクライアントに送信する。
【0274】
<紛失通信を実現するための入れ子秘匿情報検索方法>
上述の秘匿情報検索スキームを使うことで、非効率的な紛失通信スキームが構築されることがある。
【0275】
この非効率的なスキームが、本明細書に記載されている秘匿情報検索からなる場合、その結果として得られるスキームは、効率的な秘匿情報検索スキームである。
【0276】
「非効率な」紛失通信スキームは、小さい入力値を演算するだけであり、一方、効率的な秘匿情報検索スキームは、大きい入力値を演算するので、その構成は効率的である。
【0277】
スキームは、秘匿情報検索スキームの修正であり、mと等しくなるように値lが選択されている。
【0278】
この場合、結果として得られるデータベースは、それぞれ1ビットを構成するmブロックに分割される。
【0279】
上述したように、不正を行わない者は、計算処理を行うことができ、不正を行う者は、それができない固有の
【数43】

【0280】
乗根から生成される疑似ランダム系列を使って各値がマスクされる。
【0281】
上述の紛失通信スキームは、クエリアが、モジュラー根を計算するので、クエリアに対して、(秘匿情報検索スキームのように、O(√m)の計算ではなく)、O(m)の計算を持つ。
【0282】
しかしながら、入れ子秘匿情報検索スキームという当技術分野において公知の技術を使うことで、因数fc−1(但し、fは、(logn)/|Pの最小許容値を表す定数)により、スキームの通信計算量を増加させるという犠牲を払って、ユーザによる計算O(m1/c)を得ることができる。
【0283】
本明細書に記載されているプロセスは、紛失ファイル通信を実現するために拡張することもできる。
【0284】
クエリアが、データベースからのファイルを欲しており、データベースが、ユーザにクエリ毎に1ファイルまでと制限したいというシナリオを例とする。
【0285】
各ファイルを、(各lビット列ではなく)素数の冪に関連付けることより、ビット単位の解決策よりも効率的な解決策を構成することが可能である。長いファイルは、定数因数の暗号文展開だけで紛失通信することができる。
【0286】
(コンピュータシステムの一実施形態)
図13は、本明細書に説明する1つ以上の演算を実行するコンピュータシステムの一例のブロック図である。
【0287】
図13を参照すると、コンピュータシステムは、クライアント又はサーバのコンピュータシステムを備えていてもよい。
【0288】
コンピュータシステムは、通信メカニズム、又は、情報を通信するためのバス、及び、情報を処理するためのバスに連結されたプロセッサを備えている。
【0289】
プロセッサには、マイクロプロセッサに限定しないが、例えば、Pentium、PowerPC、Alphaなどのマイクロプロセッサを含んでいる。
【0290】
システムは、情報や、プロセッサによって実行される命令を格納するバスに連結されるランダムアクセスメモリ(RAM)、又は、他の動的記憶装置(メインメモリと称す)を更に備える。
【0291】
また、メインメモリも、プロセッサによる命令を実行している間に、暫定変数、又は、他の中間情報のために使うことができる。
【0292】
また、コンピュータシステムも、静的情報やプロセッサに対する命令を記憶するためにバスに接続されている読み取り専用メモリ(ROM)、及び/又は、他の静的記憶装置、磁気ディスク、又は、光学ディスク等のデータ記憶装置、及び、それに対応するディスクドライブを備えている。
【0293】
データ記憶装置は、情報及び命令を記憶するために、バスに接続されている。
【0294】
コンピュータシステムは、ブラウン管ディスプレイ装置(CRT)、又は、液晶表示装置(LCD)等のコンピュータユーザに情報を表示するためにバスに接続されている表示装置に更に接続されてもよい。
【0295】
英数字キー及び他のキーを含む英数字入力装置も、情報及びプロセッサに対するコマンドを選択を通信するために、バスに接続されている。
【0296】
他のユーザ入力装置は、マウス、トラックボール、トラックパッド、スタイラス、又は、カーソル指示キー等の、指示情報やコマンドの選択をプロセッサに通信し、表示装置上でのカーソルの動きを制御するために、バスに接続されているカーソル制御である。
【0297】
バスに連結することができる他の装置は、紙、フィルム、又は、同様のタイプの媒体に、指示、データ、又は、他の情報をプリントとするために使うことのできるハードコピー装置である。
【0298】
また、スピーカー、及び/又は、マイク等の音声録音再生装置も、コンピュータシステムと音声でインターフェイスするために、オプションとしてバスに接続してもよい。
【0299】
バスに接続してもよい他の装置は、電話、又は、手のひらサイズの携帯装置と通信する有線/無線の通信機能である。
【0300】
なお、システムの任意の、又は、全てのコンポーネント、及び、関連するハードウェアを本発明に使用してもよいことに留意されたい。
【0301】
しかしながら、コンピュータシステムの他の構成には、上記の装置の中のいくつかの装置又は全ての装置を含んでも良いということを理解することができる。
【0302】
上述の説明を読めば、本発明の変更や修正が、当該技術分野において通常の熟練を有する者には明らかとなるであろうが、図を使って表し説明した、いかなる特定の実施形態も、本発明を制限するものと考えられるようには意図されていないことを理解すべきである。
【0303】
よって、様々な実施形態の詳細を参照することは、本発明にとって必要不可欠であると見なされる特徴だけを詳述する請求項の範囲を制限するように意図するものではない。
【図面の簡単な説明】
【0304】
【図1】データベースから情報を非公開に検索するプロセスの一実施形態の流れ図である。
【図2】クエリ生成プロセスの一実施形態の流れ図である。
【図3】応答生成プロセスの一実施形態の流れ図である。
【図4】応答検索プロセスの流れ図である。
【図5】クライアントコンポーネントの一実施形態を示す。
【図6】サーバコンポーネントの一実施形態を示す。
【図7】クライアントコンポーネントを有するシステム構成の一実施形態を示す。
【図8】紛失通信クエリ生成方法の一実施形態の流れ図である。
【図9】紛失通信クエリ生成プロセスの一実施形態の流れ図である。
【図10】紛失通信応答検索プロセスの一実施形態の流れ図である。
【図11】応答生成プロセスの他の実施形態の流れ図である。
【図12】紛失通信応答検索プロセスの他の実施形態の流れ図である。
【図13】コンピュータシステムの一実施形態の例を示す。
【符号の説明】
【0305】
501、601…ネットワークインターフェイス
502、602…プロセッサ
503、603…メモリ(暗号鍵)

【特許請求の範囲】
【請求項1】
非公開で、データベースから情報を検索する方法であって、
前記データベースから検索される情報に対応するインデックスを取得する工程と、
前記インデックスを前記データベースに対して明らかにしないクエリであり、前記インデックスの算術関数で、かつ、前記インデックスの算術関数である秘密値であるクエリを生成する工程と、
前記データベースの全体に対して前記算術関数を実行するために前記クエリを前記データベースに通信する工程とを有し、
前記算術関数は、素数の冪がランダム値の位数であるように、位数が前記素数の冪によって割り切れるランダム値のモジュラスによって特定される乗法群を含み、
前記秘密値は、前記モジュラスの素数への因数分解を含むことを特徴とする方法。
【請求項2】
前記素数の冪を求めるために、前記データベースに対する写像を適用する工程を更に有することを特徴とする請求項1に記載の方法。
【請求項3】
前記素数の冪に対して「Φ-hide」処理を行う値の集合から、分布関数に従って、前記モジュラスをサンプリングする工程と、
前記モジュラスを法としてとる前記乗法群において、位数が前記素数の冪である前記ランダム値を生成する工程とを有することを特徴とする請求項1に記載の方法。
【請求項4】
素数の冪を求めるために、写像を前記インデックスに適用する工程と、
前記素数の冪に対して「Φ-hide」処理を行う値の集合から、分布関数に従って、十分に大きいモジュラスをサンプリングする工程と、
前記モジュラスを法としてとる前記乗法群において、位数が前記素数の冪であるランダム値を生成する工程とを有することを特徴とする請求項1に記載の方法。
【請求項5】
前記算術関数を実行した結果を受け取る工程と、
前記結果を復号する工程を有し、
前記データベースと交換された情報の総量は、前記データベースに記憶されている情報の総量より少ないことを特徴とする請求項1に記載の方法。
【請求項6】
システムによって実行される時に、前記システムに対して方法を実行させる命令を記憶する1つ以上の記録可能な媒体を有する工業製品であって、
前記方法は、
前記データベースから検索される情報に対応するインデックスを取得する工程と、
前記インデックスを前記データベースに対して明らかにしないクエリであり、前記インデックスの算術関数で、かつ、前記インデックスの算術関数である秘密値であるクエリを生成する工程と、
前記データベースの全体に対して前記算術関数を実行するために前記クエリを前記データベースに通信する工程とを有し、
前記算術関数は、素数の冪がランダム値の位数であるように、位数が前記素数の冪によって割り切れるランダム値のモジュラスによって特定される乗法群を含み、
前記秘密値は、前記モジュラスの素数への因数分解を含むことを特徴とする工業製品。
【請求項7】
前記方法は、前記素数の冪を求めるために、前記データベースに対する写像を適用する工程を更に有することを特徴とする請求項6に記載の工業製品。
【請求項8】
前記方法は、
前記素数の冪に対して「Φ-hide」処理を行う値の集合から、分布関数に従って、前記モジュラスをサンプリングする工程と、
前記モジュラスを法としてとる前記乗法群において、位数が前記素数の冪である前記ランダム値を生成する工程とを有することを特徴とする請求項6に記載の工業製品。
【請求項9】
前記方法は、
素数の冪を求めるために、写像を前記インデックスに適用する工程と、
前記素数の冪に対して「Φ-hide」処理を行う値の集合から、分布関数に従って、十分に大きいモジュラスをサンプリングする工程と、
前記モジュラスを法としてとる前記乗法群において、位数が前記素数の冪であるランダム値を生成する工程とを有することを特徴とする請求項6に記載の工業製品。
【請求項10】
前記算術関数を実行した結果を受け取る工程と、
前記結果を復号する工程を有し、
前記データベースと交換された情報の総量は、前記データベースに記憶されている情報の総量より少ないことを特徴とする請求項6に記載の工業製品。
【請求項11】
情報に対する要求が行われる外部ネットワークインターフェイスと、メモリと、前記外部ネットワークインターフェイス及び前記メモリに接続されているプロセッサとを具備する装置であって、
前記プロセッサは、
前記データベースから検索される情報に対応するインデックスを取得し、
前記インデックスを前記データベースに対して明らかにしないクエリであり、前記インデックスの算術関数で、かつ、前記インデックスの算術関数である秘密値であるクエリを生成し、
前記データベースの全体に対して前記算術関数を実行するために前記クエリを前記データベースに通信するように構成されており、
前記算術関数は、素数の冪がランダム値の位数であるように、位数が前記素数の冪によって割り切れるランダム値のモジュラスによって特定される乗法群を含み、
前記秘密値は、前記モジュラスの素数への因数分解を含むことを特徴とする方法。
【請求項12】
前記プロセッサは、
素数の冪を求めるために、写像を前記インデックスに適用し、
前記素数の冪に対して「Φ-hide」処理を行う値の集合から、分布関数に従って、十分に大きいモジュラスをサンプリングし、
前記モジュラスを法としてとる前記乗法群において、位数が前記素数の冪であるランダム値を生成するように構成されていることを特徴とする請求項11に記載の装置。
【請求項13】
多項式対数関数的な単一データベースの計算処理による秘匿情報検索プロセスであって、
インデックスを前記データベースに対して明らかにしないように、前記インデックスを算術関数に暗号化するクエリを生成する工程と、
前記データベースの全体に対して前記算術関数を実行するために、前記クエリを前記データベースに通信する工程と、
前記データベースから前記算術関数を実行した結果を受け取る工程とを有し、
前記データベースと交換された情報の総量が、前記データベースのサイズの対数の定数因数内であることを特徴とするプロセス。
【請求項14】
システムによって実行される時に、前記システムに対して多項式対数関数的な単一データベースの計算処理による秘匿情報検索プロセスを実行させる命令を記憶する1つ以上の記録可能な媒体を有する工業製品であって、
前記プロセスは、
インデックスを前記データベースに対して明らかにしないように、前記インデックスを算術関数に暗号化するクエリを生成する工程と、
前記データベースの全体に対して前記算術関数を実行するために、前記クエリを前記データベースに通信する工程と、
前記データベースから前記算術関数を実行した結果を受け取る工程とを有し、
前記データベースと交換された情報の総量が、前記データベースのサイズの対数の定数因数内であることを特徴とする工業製品。
【請求項15】
情報に対する要求が行われる外部ネットワークインターフェイスと、メモリと、前記外部ネットワークインターフェイス及び前記メモリに接続されているプロセッサとを具備する装置であって、
前記プロセッサは、
インデックスを前記データベースに対して明らかにしないように、前記インデックスを算術関数に暗号化するクエリを生成し、
前記データベースの全体に対して前記算術関数を実行するために、前記クエリを前記データベースに通信し、
前記データベースから前記算術関数を実行した結果を受け取るように構成されており、
前記データベースと交換された情報の総量が、前記データベースのサイズの対数の定数因数内であることを特徴とする装置。
【請求項16】
データベースの複数の群の各々を整数として表す工程と、
前記各群のインデックスに関連付けられた素数の冪を法とする前記群の各々の各整数表記と合同である整数値を計算する工程と、
モジュラス値を法とする前記整数値の演算に等しい指数がを与えられた底入力値を冪乗することより応答を生成する工程とを有することを特徴とする方法。
【請求項17】
システムによって実行される時に、前記システムに対して方法を実行させる命令を記憶する1つ以上の記録可能な媒体を有する工業製品であって、
前記方法は、
データベースの複数の群の各々を整数として表す工程と、
前記各群のインデックスに関連付けられた素数の冪を法とする前記群の各々の各整数表記と合同である整数値を計算する工程と、
モジュラス値を法とする前記整数値の演算に等しい指数がを与えられた底入力値を冪乗することより応答を生成する工程とを有することを特徴とする工業製品。
【請求項18】
情報に対する要求が行われる外部ネットワークインターフェイスと、メモリと、前記外部ネットワークインターフェイス及び前記メモリに接続されているプロセッサとを具備する装置であって、
前記プロセッサは、
データベースの複数の群の各々を整数として表し、
前記各群のインデックスに関連付けられた素数の冪を法とする前記群の各々の各整数表記と合同である整数値を計算し、
モジュラス値を法とする前記整数値の演算に等しい指数が与えられた底入力値を冪乗することより応答を生成するように構成されていることを特徴とする装置。
【請求項19】
入力に対して紛失通信関数を適用して、出力を生成する工程と、
前記紛失通信の前記出力を用いた秘匿検索プロセスを適用する工程とを有することを特徴とする方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate


【公表番号】特表2008−500598(P2008−500598A)
【公表日】平成20年1月10日(2008.1.10)
【国際特許分類】
【出願番号】特願2007−527450(P2007−527450)
【出願日】平成17年5月20日(2005.5.20)
【国際出願番号】PCT/US2005/017618
【国際公開番号】WO2005/114481
【国際公開日】平成17年12月1日(2005.12.1)
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.PENTIUM
【出願人】(392026693)株式会社エヌ・ティ・ティ・ドコモ (5,876)
【Fターム(参考)】