特許第6105068号(P6105068)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ アルカテル−ルーセントの特許一覧

特許6105068コンテンツ隠蔽ブルームフィルタを用いたセキュアプライベートデータベースクエリ
<>
  • 特許6105068-コンテンツ隠蔽ブルームフィルタを用いたセキュアプライベートデータベースクエリ 図000002
  • 特許6105068-コンテンツ隠蔽ブルームフィルタを用いたセキュアプライベートデータベースクエリ 図000003
  • 特許6105068-コンテンツ隠蔽ブルームフィルタを用いたセキュアプライベートデータベースクエリ 図000004
  • 特許6105068-コンテンツ隠蔽ブルームフィルタを用いたセキュアプライベートデータベースクエリ 図000005
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6105068
(24)【登録日】2017年3月10日
(45)【発行日】2017年3月29日
(54)【発明の名称】コンテンツ隠蔽ブルームフィルタを用いたセキュアプライベートデータベースクエリ
(51)【国際特許分類】
   G09C 1/00 20060101AFI20170316BHJP
   G06F 17/30 20060101ALI20170316BHJP
   G06F 21/62 20130101ALI20170316BHJP
【FI】
   G09C1/00 660D
   G09C1/00 650Z
   G06F17/30 120A
   G06F17/30 414A
   G06F21/62 345
【請求項の数】10
【全頁数】14
(21)【出願番号】特願2015-534554(P2015-534554)
(86)(22)【出願日】2013年9月18日
(65)【公表番号】特表2015-535956(P2015-535956A)
(43)【公表日】2015年12月17日
(86)【国際出願番号】US2013060347
(87)【国際公開番号】WO2014052116
(87)【国際公開日】20140403
【審査請求日】2015年5月26日
(31)【優先権主張番号】13/630,590
(32)【優先日】2012年9月28日
(33)【優先権主張国】US
(73)【特許権者】
【識別番号】391030332
【氏名又は名称】アルカテル−ルーセント
(74)【代理人】
【識別番号】110001173
【氏名又は名称】特許業務法人川口國際特許事務所
(72)【発明者】
【氏名】コレスニコフ,ブラジーミル・ワイ
【審査官】 脇岡 剛
(56)【参考文献】
【文献】 特開2007−052698(JP,A)
【文献】 特開平10−327141(JP,A)
【文献】 米国特許出願公開第2005/0166046(US,A1)
【文献】 特開2010−164899(JP,A)
【文献】 RAYKOVA MARIANA,SECURE ANONYMOUS DATABASE SEARCH,CLOUD COMPUTING SECURITY WORKSHOP 2009,米国,ASSOCIATION FOR COMPUTING MACHINERY,2009年11月 9日,P115-126
(58)【調査した分野】(Int.Cl.,DB名)
G09C 1/00
G06F 17/30
G06F 21/62
(57)【特許請求の範囲】
【請求項1】
データベースにおいて、少なくとも2つのキーワードAおよびBについての式評価を有するクエリに対して、クライアントによるセキュアプライベートデータベースクエリのために、サーバによって実行される方法であって、
暗号化されたキーワードの暗号化されたブルームフィルタからなるブルームフィルタツリーをデータベースから受信するステップであって、ブルームフィルタツリーの各ブルームフィルタが、ランダムなマスクパッドPによって個別にマスクされる、受信するステップと、
少なくとも2つのキーワードAおよびBの暗号化されたバージョンをクライアントから受信するステップと、
キーワードAおよびB向けのマスクされたブルームフィルタインデックスを取得するステップと、
秘匿関数計算(SFE)にクライアントと共に参加するステップであって、秘匿関数計算が式を表わす少なくとも1つのガーブル回路を使用し、サーバが、少なくとも2つのキーワードAおよびB向けのマスクされたブルームフィルタインデックスを含む入力を有し、クライアントが、ランダムなマスクパッドPを含む入力を有する、参加するステップと
を含み、クライアントとともにサーバによって実行される秘匿関数計算が、以下のステップ、すなわち、
ランダムなマスクパッドPを、サーバによって入力されたマスクされたブルームフィルタインデックスから除去するステップと、
少なくとも2つのキーワードAおよびBのそれぞれに対して、一致しているブルームフィルタがある場合を判定するステップと、
式が満たされているかどうかを判定するための式評価を適用するステップと、
結果を生成するステップであって、結果が式の各用語にブルームフィルタツリーが一致しているかどうかを明らかにしない、結果を生成するステップ
を含む、方法。
【請求項2】
ブルームフィルタツリーのブルームフィルタのそれぞれが、ランダムなマスクパッドPによって、ブルームフィルタのノードインデックスに基づいて個別にマスクされる、請求項1に記載の方法。
【請求項3】
データベースにおける、少なくとも2つのキーワードAおよびBについての式評価を有するクエリに対する、クライアントによるセキュアプライベートデータベースクエリのための、有形のマシン可読および記録可能記憶媒体であって、1つまたは複数のソフトウェアプログラムが、1つまたは複数の処理デバイスによって実行されると、請求項1に記載の方法のステップを実施する、有形のマシン可読および記録可能記憶媒体。
【請求項4】
データベースにおいて、少なくとも2つのキーワードAおよびBについての式評価を有するクエリに対して、セキュアプライベートデータベースクエリのために、サーバと共に、クライアントによって実行される方法であって、
少なくとも2つのキーワードAおよびBの暗号化されたバージョンをサーバに提供するステップであって、サーバが、データベースを、データベース由来の、暗号化されたキーワードの暗号化されたブルームフィルタからなるブルームフィルタツリーとして表し、ブルームフィルタツリーの各ブルームフィルタが、ランダムなマスクパッドPによって個別にマスクされる、提供するステップと、
秘匿関数計算(SFE)にサーバと共に参加するステップであって、秘匿関数計算が式を表わす少なくとも1つのガーブル回路を使用し、サーバが、ブルームフィルタツリー由来の、少なくとも2つのキーワードAおよびB向けのマスクされたブルームフィルタインデックスを含む入力を有し、クライアントが、ランダムなマスクパッドPを含む入力を有する、参加するステップと
を含み、サーバとともにクライアントによって実行される秘匿関数計算が、以下のステップ、すなわち、
ランダムなマスクパッドPを、サーバによって入力されたマスクされたブルームフィルタインデックスから除去するステップと、
少なくとも2つのキーワードAおよびBのそれぞれに対して、一致しているブルームフィルタがある場合を判定するステップと、
式が満たされているかどうかを判定するための式評価を適用するステップと、
結果を生成するステップあって、結果が式の各用語にブルームフィルタツリーが一致しているかどうかを明らかにしない、結果を生成するステップ
を含む、方法。
【請求項5】
ブルームフィルタツリーのブルームフィルタのそれぞれが、ランダムなマスクパッドPによって、ブルームフィルタのノードインデックスに基づいて個別にマスクされる、請求項4に記載の方法。
【請求項6】
データベースにおける、少なくとも2つのキーワードAおよびBについての式評価を有するクエリに対する、サーバと共に用いる、セキュアプライベートデータベースクエリのための、有形のマシン可読および記録可能記憶媒体であって、1つまたは複数のソフトウェアプログラムが、1つまたは複数の処理デバイスによって実行されると、請求項4に記載の方法のステップを実施する、有形のマシン可読および記録可能記憶媒体。
【請求項7】
データベースにおける、少なくとも2つのキーワードAおよびBについての式評価を有するクエリに対する、クライアントによるセキュアプライベートデータベースクエリのためのサーバシステムであって、
メモリと、
メモリに結合された少なくとも1つのハードウェアデバイスであって、
暗号化されたキーワードの暗号化されたブルームフィルタからなるブルームフィルタツリーをデータベースから受信し、ブルームフィルタツリーの各ブルームフィルタが、ランダムなマスクパッドPによって個別にマスクされ、
少なくとも2つのキーワードAおよびBの暗号化されたバージョンをクライアントから受信し、
少なくとも2つのキーワードAおよびB向けのマスクされたブルームフィルタインデックスを取得し、
秘匿関数計算(SFE)にクライアントと共に参加し、秘匿関数計算が式を表わす少なくとも1つのガーブル回路を使用し、サーバが、少なくとも2つのキーワードAおよびB向けのマスクされたブルームフィルタインデックスを含む入力を有し、クライアントが、ランダムなマスクパッドPを含む入力を有する
ように動作するハードウェアデバイスと
を備え、クライアントとともにサーバによって実行される秘匿関数計算が、以下のステップ、すなわち、
ランダムなマスクパッドPを、サーバによって入力されたマスクされたブルームフィルタインデックスから除去するステップと、
少なくとも2つのキーワードAおよびBのそれぞれに対して、一致しているブルームフィルタがある場合を判定するステップと、
式が満たされているかどうかを判定するための式評価を適用するステップと、
結果を生成するステップであって、結果が式の各用語にブルームフィルタツリーが一致しているかどうかを明らかにしない、結果を生成するステップと
を含む、サーバシステム。
【請求項8】
ブルームフィルタツリーのブルームフィルタのそれぞれが、ランダムなマスクパッドPによって、ブルームフィルタのノードインデックスに基づいて個別にマスクされる、請求項7に記載のサーバシステム。
【請求項9】
データベースにおける、少なくとも2つのキーワードAおよびBについての式評価を有するクエリに対する、クライアントによるセキュアプライベートデータベースクエリのためのクライアントシステムであって、
メモリと、
メモリに結合された少なくとも1つのハードウェアデバイスであって、
少なくとも2つのキーワードAおよびBの暗号化されたバージョンをサーバに提供し、サーバが、データベースを、データベース由来の、暗号化されたキーワードの暗号化されたブルームフィルタからなるブルームフィルタツリーとして表し、ブルームフィルタツリーの各ブルームフィルタが、ランダムなマスクパッドPによって個別にマスクされ、
秘匿関数計算(SFE)にサーバと共に参加し、秘匿関数計算が式を表わす少なくとも1つのガーブル回路を使用し、サーバが、ブルームフィルタツリー由来の、少なくとも2つのキーワードAおよびB向けのマスクされたブルームフィルタインデックスを含む入力を有し、クライアントが、ランダムなマスクパッドPを含む入力を有する
ように動作するハードウェアデバイスと
を備え、サーバとともにクライアントによって実行される秘匿関数計算が、以下のステップ、すなわち、
ランダムなマスクパッドPを、サーバによって入力されたマスクされたブルームフィルタインデックスから除去するステップと、
少なくとも2つのキーワードAおよびBのそれぞれに対して、一致しているブルームフィルタがある場合を判定するステップと、
式が満たされているかどうかを判定するための式評価を適用するステップと、
結果を生成するステップであって、結果が式の各用語にブルームフィルタツリーが一致しているかどうかを明らかにしない、結果を生成するステップと
を含む、クライアントシステム。
【請求項10】
ブルームフィルタツリーのブルームフィルタのそれぞれが、ランダムなマスクパッドPによって、ブルームフィルタのノードインデックスに基づいて個別にマスクされる、請求項9に記載のクライアントシステム。
【発明の詳細な説明】
【技術分野】
【0001】
政府の権利の記述
本発明は、内務省(DOI)の契約番号第D11PC20194号によるIntelligence Advanced Research Projects Activity(IARPA)の下で実行される作業に関連して実施されたものである。
【0002】
本発明は、一般に、セキュアプライベートデータベースのための秘匿性保護技法に関する。
【背景技術】
【0003】
様々なパーティが相互に関心のあるデータを有するとき、セキュア匿名データベース検索が利用されてきた。例えば、M.Raykovaらによる「Secure Anonymous Database Search」、Cloud Computing Security Workshop(CCSW)、(2009年11月)およびV.Pappasらによる「Private Search in the Real World」、Proc. 27th Annual Computer Security Applications Conference(ACSAC)、(2011年12月)を参照されたい。一般に、セキュア匿名データベース検索技法は、クライアントが、サーバ上に存在する情報を、クライアントの識別情報またはサーバに対するクエリの内容を明らかにすることなく、検索できるようにする。同時に、クエリ機能は許可されたクライアントにのみ与えられており、またクライアントはクエリと無関係のことは何も知ることがないという点で、サーバは保護されている。
【0004】
例示的な一実装形態では、サーバSは、入力ごとに別個の鍵を用いてデータベースを暗号化し、また暗号化されたデータベースをインデックスサーバISに提供する。さらに、サーバSは、同様にインデックスサーバISにも与えられる暗号化された検索構造を作成する。クライアントCがデータベースにクエリを実行しようとするとき、クライアントCは、クエリを暗号化し、それをインデックスサーバISに送信し、そしてクエリは、インデックスサーバISによって、暗号化された検索構造を使用して、見えない状態で実行される。
【0005】
クエリおよび応答に関する情報の漏洩を削減するために、暗号化されたキーワードのブルームフィルタ(BF:Bloom Filter)が検索構造として使用されてきた。キーワードなどの異種混合の要素をブルームフィルタに挿入することができる。その後、ユーザは、ブルームフィルタのうちのいくつかのビットが1に設定されているかを検査することにより、特定の要素がブルームフィルタに挿入されたかどうかを検査することができる。
【0006】
ブルームフィルタを利用するセキュア匿名データベース検索システムでは、インデックスサーバISによって格納されるそれぞれの暗号化されたデータベース行は、関連する暗号化されたブルームフィルタを有する。(クライアントCによって供給された)暗号化されたキーワードをブルームフィルタで検査することにより、インデックスサーバISは、キーワードが、対応するデータベースレコードに関連付けられているかを判定し、また要求されたレコードを返すことができるようになる。キーワードが暗号化されているので、インデックスサーバISは、クエリの内容を知ることがない。
【0007】
Eu−Jin Goh、「Secure Indexes」、Cryptology ePrint Archive:Report 2003/216(http://eprint.iacr.org/2003/216)は、ブルームフィルタのツリーの使用を提案することにより、こうしたセキュア匿名データベース検索システムの拡張性を改善する。一般に、二分木は、データベース行に対応するブルームフィルタの上に作成され、内部ノードは、部分木のブルームフィルタのいずれかに含まれるキーワードすべてを含むブルームフィルタである。データベースは、ブルームフィルタツリー(Bloom filter tree)をくだることによって、一致しているデータベース行が識別されるため、より高速に検索できるようになった。
【先行技術文献】
【非特許文献】
【0008】
【非特許文献1】M.Raykovaらによる「Secure Anonymous Database Search」、Cloud Computing Security Workshop(CCSW)、(2009年11月)
【非特許文献2】V.Pappas、「Private Search in the Real World」、Proc. 27th Annual Computer Security Applications Conference(ACSAC)、(2011年12月)
【非特許文献3】Eu−Jin Goh、「Secure Indexes」、Cryptology ePrint Archive:Report 2003/216(http://eprint.iacr.org/2003/216)
【非特許文献4】Andrew C.Yao、「Protocols for Secure Computations」、Proc. 23rd IEEE Symp. on Foundations of Comp. Science、160−164頁、(Chicago、1982)
【非特許文献5】Andrew C.Yao、「How to Generate and Exchange Secrets」、Proc. 27th IEEE Symp. on Foundations of Comp. Science、162−167頁、(Toronto、1986)
【非特許文献6】Y.LindellおよびB.Pinkas、「A Proof of Yao’s Protocol for Secure Two−Party Computation」、Journal of Cryptology、22(2)、161−188頁、(2009)
【非特許文献7】D.Harnikらによる「OT−Combiners via Secure Computation」、TCC 5th Theory of Cryptography Conference 2008、(2008年3月)、Lecture Notes in Computer Science、Vol.4948、393−411頁、(2008)
【非特許文献8】Y.Ishaiらによる「Extending Oblivious Transfers Efficiently」、Advances in Cryptology − CRYPTO 2003、(2003年8月)、Lecture Notes in Computer Science、Vol.2729、145−161頁、(2003)
【発明の概要】
【発明が解決しようとする課題】
【0009】
セキュア匿名データベース検索システムには、単なるキーワード検索よりもより複雑なクエリを処理することができる必要が残っている。具体的には、セキュア匿名データベース検索システムには、式、範囲クエリ、否定、および近似などの式評価を要求するクエリを処理することができる必要が残っている。セキュア匿名データベース検索システムには、式の各用語にブルームフィルタが一致しているかどうかを明らかにすることなく、式評価を要求するクエリを処理することができるさらに別の必要も残っている。
【課題を解決するための手段】
【0010】
一般に、コンテンツ隠蔽ブルームフィルタを用いたセキュアプライベートデータベースクエリのための方法および装置が提供される。本発明の一態様によれば、サーバは、暗号化されたキーワードの暗号化されたブルームフィルタからなるブルームフィルタツリーをデータベースから受信することであって、ブルームフィルタツリーの各ブルームフィルタが、ランダムなマスクパッドPによって個別にマスクされる、受信することと、キーワードAおよびBの暗号化されたバージョンをクライアントから受信することと、キーワードAおよびB向けのマスクされたブルームフィルタインデックスを取得することと、秘匿関数計算(SFE:Secure Function Evaluation)にクライアントと共に参加することであって、サーバが、キーワードAおよびB向けのマスクされたブルームフィルタインデックスを含む入力を有し、クライアントが、ランダムなマスクパッドPを含む入力を有する、参加することにより、データベースにおける、少なくとも2つのキーワードAおよびBについての式評価を有するクエリに対する、クライアントによるセキュアプライベートデータベースクエリを提供し、秘匿関数計算が、以下のステップ、すなわち、ランダムなマスクパッドPを、サーバによって入力されたマスクされたブルームフィルタインデックスから除去することと、キーワードAおよびBのそれぞれに対して、一致しているブルームフィルタがあるかどうかを判定することと、式が満たされているかどうかを判定するための式評価を適用することと、結果を生成することとを含む。
【0011】
本発明の別の態様によれば、クライアントは、キーワードAおよびBの暗号化されたバージョンをサーバに提供することであって、サーバが、データベースを、データベース由来の、暗号化されたキーワードの暗号化されたブルームフィルタからなるブルームフィルタツリーとして表し、ブルームフィルタツリーの各ブルームフィルタが、ランダムなマスクパッドPによって個別にマスクされる、提供することと、秘匿関数計算(SFE)にサーバと共に参加することであって、サーバが、ブルームフィルタツリー由来の、キーワードAおよびB向けのマスクされたブルームフィルタインデックスを含む入力を有し、クライアントが、ランダムなマスクパッドPを含む入力を有する、参加することとにより、データベースにおいて、少なくとも2つのキーワードAおよびBについての式評価を有するクエリに対して、サーバと共に、セキュアプライベートデータベースクエリを実行し、秘匿関数計算が、以下のステップ、すなわち、ランダムなマスクパッドPを、サーバによって入力されたマスクされたブルームフィルタインデックスから除去することと、キーワードAおよびBのそれぞれに対して、一致しているブルームフィルタがあるかどうかを判定することと、式が満たされているかどうかを判定するための式評価を適用することと、結果を生成することとを含む。
【0012】
ブルームフィルタツリーのブルームフィルタは、ランダムなマスクパッドPによって、例えば、ブルームフィルタのノードインデックスに基づいて、個別にマスクすることができる。ランダムなマスクパッドPは、XOR関数を使用して、サーバによって入力されたマスクされたブルームフィルタインデックスから除去することができる。例えば、ランダムなマスクパッドPは、XOR関数を、キーワードAおよびB向けのマスクされたインデックスならびにキーワードAおよびB向けの別個のインデックスに適用することにより、サーバによって入力されたマスクされたブルームフィルタインデックスから除去することができる。
【0013】
以下の詳細な説明および図面を参照することにより、本発明、ならびに本発明のさらなる特徴および利点がより完全に理解されよう。
【図面の簡単な説明】
【0014】
図1】本発明のプロセスを実装することができる、改良された汎用的な2パーティSFEシステムのブロック図である。
図2】例示的なブルームフィルタを示す図である。
図3】例示的なセキュア匿名データベース検索システムを示す図である。
図4】本発明の態様を組み込んでいるセキュアプライベートデータベースクエリプロセスの例示的な実装形態のための疑似コードを示す図である。
【発明を実施するための形態】
【0015】
本発明の態様は、式、範囲クエリ、否定、および近似などの式評価を要求するクエリを処理できる、セキュア匿名データベース検索の方法およびシステムを提供する。本発明の一態様によれば、開示される、セキュア匿名データベース検索の方法およびシステムは、式の各用語にブルームフィルタが一致しているかどうかを明らかにすることなく、式評価を要求するクエリを処理することができる。
【0016】
暗号化されたキーワードおよびブルームフィルタツリーを含む上述のブルームフィルタ技法は、秘匿関数計算(SFE)を利用するセキュア匿名データベース検索システムにおいて構成要素として使用される。ブルームフィルタはさらに、(サーバSによって生成されてクライアントCに提供される)ワンタイムマスクパッドで暗号化される。クライアントCとインデックスサーバISとの間の秘匿関数計算(SFE)は、インデックスサーバISがブルームフィルタが一致していることを知ることがないよう、効率的にブルームフィルタを復号化して(すなわち、ワンタイムマスクパッドを取り去って)クエリ式を評価するために使用される。
【0017】
図1は、改良されたセキュアプライベートデータベースクエリシステム100のブロック図である。図1に示すように、メモリ130は、本明細書で開示された、セキュアプライベートデータベースクエリの改良された方法、ステップ、および機能(集合的に、図1の150として示され、また図2から図4と共にさらに後述される)を実装するために、プロセッサ120を構成する。メモリ130は、分散させたり、ローカルなものとすることができ、またプロセッサ120は、分散させたり、単一のものとすることができる。メモリ130は、電気的、磁気的、もしくは光学的メモリとして、またはそれらの種類のもしくは他の種類の記憶デバイスの任意の組合せとして実装することができる。プロセッサ120を構成する各分散プロセッサは、一般に、独自のアドレス可能メモリ空間を含むことに留意されたい。コンピュータシステム100の一部またはすべては、パーソナルコンピュータ、ラップトップコンピュータ、ハンドヘルドコンピューティングデバイス、特定用途向け回路、または汎用集積回路内に組み込むことができることにも留意されたい。
【0018】
ブルームフィルタ
図2は、集合{x,y,z}を表している、例示的なブルームフィルタ200を示す。一般に、ブルームフィルタは、空間効率の良い確率的データ構造であり、要素が集合のメンバーであるかどうかのテストに使用することができる。空のブルームフィルタ200は、すべて0に設定されたmビットのビット配列である。また、同時にk個の異なるハッシュ関数が定義されなければならず、それぞれが、一様ランダム分布を使用して、ある集合要素をm個の配列位置の1つにマッピングまたはハッシュする。要素をブルームフィルタ200に追加するには、それをk個のハッシュ関数のそれぞれに適用してk個の配列位置を得る。そして、それらk個の位置のビットがすべて1に設定される。
【0019】
ブルームフィルタ200で、ある要素に関してクエリを実行する(すなわち、その要素が集合に含まれるかどうかをテストする)には、その要素をk個のハッシュ関数に適用してk個の配列位置を得る。これらの位置のビットのいずれかが0である場合、その要素は集合に含まれていない(含まれていたならば、すべてのビットは、挿入時に1に設定されていたであろう)。これらの位置のすべてのビットが1である場合、その要素は集合に含まれている(または、場合によっては、他の要素を挿入している間にビットが偶然1に設定され、偽陽性になった)。
【0020】
図2の矢印210は、各集合要素{x,y,z}がマッピングされている、ブルームフィルタ200のビット配列における位置を示している。要素wはブルームフィルタ200において少なくとも1つの、0を含むビット配列位置のハッシュ値をもっているので、wは集合{x,y,z}に含まれない。図2の例示的な実施形態では、m=18およびk=3である。
【0021】
セキュアプライベートデータベースクエリ
図3は、例示的なセキュア匿名データベース検索システム300を示す。1つまたは複数のキーワードをもつクライアントCは、キーワードをもつデータベース所有者/サーバSの文書を、それ以上何かを知ることや自身のクエリを明らかにすることなく、識別することができる。例示的なシステム300は、検索を円滑化する、中程度の信頼性の2つのパーティである、インデックスサーバISと任意選択のクエリルータQRを備えている。一般に、前処理段階310の間、サーバSは、データベースの検索構造を計算する。文書ごとのブルームフィルタは文書のすべての単語を暗号化することで作られ、文書ブルームフィルタ330はインデックスサーバISに提供される。さらに、それぞれの許可されたクライアントCは、クエリの送信およびその結果を復号化するのに使用される鍵を受信する。クエリルータQRは、そのクライアントのクエリに対応した変換鍵を受信する。
【0022】
検索段階350の間にクエリを送信するために、クライアントCは、自身のクエリの暗号化を行い、暗号化されたイオンクエリ375をクエリルータQRに送信する。クエリルータQRは、クライアントCが許可されていることを検証し、クエリを対応する変換鍵で再暗号化し、暗号化で取得されたBFインデックス380を計算し、インデックスサーバISに送信する。インデックスサーバISは、格納しているブルームフィルタにわたって検索を実行し、一致している文書の識別子を暗号化し、それを暗号化された結果385としてクエリルータQRに送信する。クエリルータQRは、暗号化結果を変換し、それを再暗号化された結果390としてクライアントCに配信する。クライアントCは、再暗号化された結果390を復号化して自身の検索結果を取得する。
【0023】
例示的なセキュア匿名データベース検索システム300のより詳細な説明は、例えば、それぞれが引用により組み込まれている、M.Raykovaらによる「Secure Anonymous Database Search」、Cloud Computing Security Workshop(CCSW)、(2009年11月)およびV.Pappas、「Private Search in the Real World」、Proc. 27th Annual Computer Security Applications Conference(ACSAC)、(2011年12月)を参照されたい。
【0024】
SFEを使用したセキュア匿名データベース検索
前述したように、暗号化されたキーワードおよびブルームフィルタツリーを含む上述のブルームフィルタ技法は、秘匿関数計算(SFE)を利用するセキュア匿名データベース検索システムにおいて構成要素として使用される。ブルームフィルタはさらに、(サーバSによって生成されてクライアントCに提供される)ワンタイムマスクパッドで暗号化される。クライアントCとインデックスサーバISとの間の秘匿関数計算(SFE)は、インデックスサーバISがブルームフィルタが一致していることを知ることがないよう、効率的にブルームフィルタを復号化して(すなわち、ワンタイムマスクパッドを取り去って)クエリ式を評価するために使用される。
【0025】
一般的な2パーティ秘匿関数計算(SFE)は、2つのパーティが、xとyの両方の秘匿性を維持しつつ、任意の関数をそれぞれの入力xおよび入力yで評価できるようにする。効率的なSFEアルゴリズムは、参加者の相互不信によって以前は不可能であった様々な電子トランザクションを可能にする。例えば、SFEアルゴリズムは、オークション、契約時の署名、および分散データベースマイニングアプリケーションにおいて利用されている。セキュアな計算の問題は、半誠実な(semi−honest)関係者と悪意のある関係者の両方に対して解決されている。一般に、半誠実なサーバにアクセスすることで、悪意のある回路生成の問題を解決する。計算および通信のリソースが増加してきたので、SFEは、一般的な利用にとってまさに実用的なものとなった。悪意のあるSFEモデルは、関係者の入力の完全な秘匿性を保証する。既存の汎用的な2パーティSFEアルゴリズムは通常、ガーブル回路(GC:Garbled Circuit)を利用する。GCの詳細な説明は、例えば、Andrew C.Yao、「Protocols for Secure Computations」、Proc. 23rd IEEE Symp. on Foundations of Comp. Science、160−164頁、(Chicago、1982)、Andrew C.Yao、「How to Generate and Exchange Secrets」、Proc. 27th IEEE Symp. on Foundations of Comp. Science、162−167頁、(Toronto、1986)、ならびに/またはY.LindellおよびB.Pinkas、「A Proof of Yao’s Protocol for Secure Two−Party Computation」、Journal of Cryptology、22(2)、161−188頁、(2009)を参照されたい。
【0026】
ガーブル回路の実装下では、計算関数を表すブール回路は、第1のパーティによって暗号化され、第2のパーティに評価のために与えられる。評価は暗号化の下で進むので、第2のパーティはプロトコルから逸脱することはできない。GCは、悪意のある回路評価器および半誠実な回路構成器に対してセキュアであり、したがって半誠実なサーバSは、(両方のクライアントによってSに伝えられているような)選ばれた関数のためにガーブル回路を生成する。入力に関しては、OT拡張機能が、悪意のある受信器および半誠実なサーバに関してセキュアであるために使用され得る。例えば、D.Harnikらによる「OT−Combiners via Secure Computation」、TCC 5th Theory of Cryptography Conference 2008、(2008年3月)、Lecture Notes in Computer Science、Vol.4948、393−411頁、(2008)および/またはY.Ishaiらによる「Extending Oblivious Transfers Efficiently」、Advances in Cryptology − CRYPTO 2003、(2003年8月)、Lecture Notes in Computer Science、Vol.2729、145−161頁、(2003)を参照されたい。
【0027】
図4は、本発明の態様を組み込んでいるセキュアプライベートデータベースクエリプロセス400の例示的な実装形態のための疑似コードを示す。図4に示すように、ステップ410の間、サーバSは、最初に、暗号化されたブルームフィルタおよび暗号化されたブルームフィルタツリーを生成する。ステップ420の間、サーバSは、ランダムなシードsを選択し、ランダムなマスクパッドPを生成する。
【0028】
ステップ430の間、サーバSは、ランダムなマスクパッドPをクライアントCに送信する。ステップ440の間、サーバSは、ランダムなマスクパッドPを、ブルームフィルタツリーの各ブルームフィルタに個別に適用する。異なるパッドPは、各ブルームフィルタに、例えば、ブルームフィルタのノードインデックスに基づいて、適用され得る。ステップ450の間、サーバSは、次いで、各ノードがランダムなパッドPでマスクされたブルームフィルタツリーをインデックスサーバISに送信する。
【0029】
ステップ460の間、クライアントCは、少なくとも2つの用語AおよびBについての式評価を有するクエリを生成する(「return if keywdA OR keywdB」など)。ステップ470の間、クライアントCは、キーワードAおよびBを暗号化し、暗号化されたクエリをインデックスサーバISに送信する。
【0030】
ステップ480の間、インデックスサーバISは、ブルームフィルタにおいて、対応するビット位置を検索し、キーワードAおよびB向けのマスクされたブルームフィルタインデックスを取得する。インデックスサーバISは、ブルームフィルタがランダムなパッドPでマスクされているので、2つの用語のいずれかへの一致があるかどうかに関して判定することができない。
【0031】
ステップ490の間、インデックスサーバISおよびクライアントCは、以下のプライベートな入力を用いて、秘匿関数計算(SFE)に携わる:
インデックスサーバIS:AおよびB向けのマスクされたブルームフィルタインデックス、ならびに
クライアントC:AおよびB向けの暗号化されたブルームフィルタインデックスをオフセットするためのマスクパッドP
ステップ495の間、クライアントCおよびインデックスサーバISによるSFEは、以下のように進む:
i.マスクPは、XOR関数を使用して、インデックスサーバISの入力から以下のように除去される:
(AおよびB向けのマスクされたインデックス)XOR(P)=キーワードAおよびB向けの別個のインデックス
ii.各キーワードに対して、一致しているブルームフィルタがあるかどうかを判定する
iii.式が満たされているかどうかを判定するためのクエリ式を適用する、および
iv.結果を出力する
【0032】
このように、式の各用語にブルームフィルタが一致しているかどうかを明らかにすることなく、式評価を要求するクエリを処理することができる、セキュア匿名データベース検索システムが提供される。
【0033】
ステップ496の間、クライアントCおよびインデックスサーバISは、BFツリーをたどるのに必要なステップ480−495を繰り返す。
【0034】
システムおよび製品の詳細
図4は例示的なステップシーケンスを示しているが、本発明の一実施形態では、シーケンスが変更されてもよい。アルゴリズムの様々な置換えが本発明の代替の実施形態として考えられる。
【0035】
本発明の例示的な実施形態がソフトウェアプログラムの処理ステップに関連して説明されてきたが、当業者には明らかであろうように、様々な機能が、ソフトウェアプログラムの処理ステップとして、回路素子もしくは状態機械によるハードウェアの処理ステップとして、またはソフトウェアとハードウェアの両方の組合せの処理ステップとして、デジタル領域に実装されてもよい。こうしたソフトウェアは、例えば、デジタル信号プロセッサ、特定用途向け集積回路、マイクロコントローラ、または汎用コンピュータにおいて利用されてもよい。こうしたハードウェアおよびソフトウェアは、集積回路内に実装された回路内に具体化されてもよい。
【0036】
したがって、本発明の機能は、方法、およびそれらの方法を実施するための装置の形で具体化することができる。本発明の1つまたは複数の態様は、例えば、記憶媒体に格納されようが、マシンにロードされ、また/もしくはマシンによって実行されようが、または何らかの伝送媒体上を伝送されようが、プログラムコードの形で具体化されることができ、プログラムコードがコンピュータなどのマシンにロードされ、マシンによって実行されると、マシンは本発明を実施するための装置になる。汎用プロセッサに実装されると、プログラムコードセグメントは、プロセッサと共に機能して、特定の論理回路と同様に動作するデバイスを提供する。本発明はまた、集積回路、デジタル信号プロセッサ、マイクロプロセッサ、およびマイクロコントローラのうちの1つまたは複数に実装することもできる。
【0037】
当技術分野で知られているように、本明細書で説明される方法および装置は、それ自体が、コンピュータ可読コード手段をその上で具体化するコンピュータ可読媒体を備える製品として供給されてもよい。コンピュータ可読プログラムコード手段はコンピュータシステムと共に、本明細書で説明される、方法の実行もしくは装置の作成を行うステップのすべてまたは一部を実行することができる。コンピュータ可読媒体は、記録可能媒体(例えば、フロッピー(登録商標)ディスク、ハードドライブ、コンパクトディスク、メモリカード、半導体デバイス、チップ、特定用途向け集積回路(ASIC))であってもよく、また伝送媒体(例えば、光ファイバで構成されるネットワーク、ワールドワイドウェブ、ケーブル、または時分割多元接続、符号分割多元接続、もしくは他の無線周波数チャネルを使用する無線チャネル)であってもよい。コンピュータシステムで使用するのに適した情報を格納できる、知られている、または開発された任意の媒体を使用することができる。コンピュータ可読コード手段は、コンピュータが、磁気媒体の磁気的な変形形態やコンパクトディスクの表面の高さの変形形態などの、命令およびデータを読むことができるようにするための任意のメカニズムである。
【0038】
本明細書で説明されるコンピュータシステムおよびサーバは、それぞれ、本明細書で開示される方法、ステップ、および機能を実装するように、関連するプロセッサを構成することになるメモリを備える。メモリは、分散させたり、ローカルなものとすることができ、またプロセッサは、分散させたり、単一のものとすることができる。メモリは、電気的、磁気的、もしくは光学的メモリとして、またはそれらの種類のもしくは他の種類の記憶デバイスの任意の組合せとして実装することができる。さらに、「メモリ」という用語は、関連するプロセッサによってアクセスされるアドレス可能空間のアドレスとの間で読取りまたは書込みを実施することができる任意の情報を含むのに十分なほど、広く解釈されるべきである。この定義の場合、ネットワーク上の情報は、関連するプロセッサがネットワークから情報を検索できるため、やはりメモリ内に含まれている。
【0039】
本明細書で図示され、説明される、実施形態および変形形態は、本発明の原理を単に例示したものであり、また様々な修正形態は、当業者によって、本発明の範囲および趣旨から逸脱することなく、実装され得ることを理解されたい。
図1
図2
図3
図4