JP2008501175A - プロテクトされた構造化されたデータのクエリ方法及び装置 - Google Patents
プロテクトされた構造化されたデータのクエリ方法及び装置 Download PDFInfo
- Publication number
- JP2008501175A JP2008501175A JP2007514220A JP2007514220A JP2008501175A JP 2008501175 A JP2008501175 A JP 2008501175A JP 2007514220 A JP2007514220 A JP 2007514220A JP 2007514220 A JP2007514220 A JP 2007514220A JP 2008501175 A JP2008501175 A JP 2008501175A
- Authority
- JP
- Japan
- Prior art keywords
- polynomial
- tree
- node
- blind
- data
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
- G06F21/6245—Protecting personal data, e.g. for financial or medical purposes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
- G06F21/6227—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database where protection concerns the structure of data, e.g. records, types, queries
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/60—Digital content management, e.g. content distribution
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Theoretical Computer Science (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- Databases & Information Systems (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Medical Informatics (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Storage Device Security (AREA)
Abstract
ツリー形式により構成されるプロテクトされたデータのクエリ方法及び装置。対象となるノードからスタートするツリーのブランチにおいて出現するノード名に割り当てられた識別子に等しい入力に対しては、各ノードポリノミアルはゼロと評価するように、対応するノードポリノミアルのツリーが構成される。ノードポリノミアルのツリーの各ポリノミアルが、ブラインドポリノミアルのツリーにおける対応するポリノミアルと差分ポリノミアルのツリーにおける対応するポリノミアルとの和に等しくなるように、対応するブラインドポリノミアルのツリーと差分ポリノミアルのツリーとが構成される。ブラインドツリーはクライアントに、差分ツリーはサーバに与えられる。クライアントとサーバの評価結果を組み合わせることによって、与えられたクエリに該当するノードを特定することが可能である。
Description
XML構造化文書などのデータをリモートデータベースに格納する必要性が増大している。このようなデータが、例えば、患者情報や(音声)映像コンテンツに対する営業上貴重なメタデータなどの機密情報を含むとき、それはプロテクトされるべきである。通常のアプローチは、データをリモートデータベースに格納する前にデータを暗号化するというものである。そのとき、どのようにクライアント装置が以降においてデータベースをクエリすることができるかという問題が生じる。最も自明な解法は、データベース全体をローカルにダウンロードし、その後にクエリを実行するというものである。もちろん、これはかなり非効率的である。他の選択肢は、データベースサーバに解読キーを提供するというものであるが、これは、データベースサーバシステムやそれを管理する人々に完全な信頼を必要とするため、常に望ましいとは限らない。
従って、この分野における問題は、サーバが暗号化されたデータ、特にXML構造化データを効率的にクエリすることを可能にする方法に関する。W3Cは、要素コンテンツが対称キーにより暗号化され、さらにそれが受信者の公開キーにより暗号化される対称キーと公開キーの組み合わせを利用して、XMLデータの暗号化を可能にするため、「XML暗号化シンタックス」を推奨している。http://www.w3.org/TR/xml−encryption−reqにおけるW3Cノート“XML Encryption Requirements”(2002年3月4日)と、http://www.w3.org/TR/xmlenc−core/におけるW3C勧告“XML Encryption Syntax and Processing”(2002年12月10日)を参照されたい。
クエリは、XMLデータに対して実行される基本的処理であるため、実行すべき第1ステップは、暗号化されたXMLデータのクエリに関する問題を解決することである。暗号化されたXMLデータを検索する直接的なアプローチは、まず暗号化されたデータを解読し、その後に解読されたXMLデータについて検索を行うというものである。しかしながら、これは必然的に、大量の不要な解読作業を伴い、特に検索されるデータが大きなものであって、検索ターゲットがそのわずかな部分からしか得られないものであるときには、クエリパフォーマンスを大変悪いものにする。
効果的には、本発明は、請求項1記載のプロテクトされたデータのクエリを可能にするコンピュータにより実現される方法及び請求項9記載の対応する装置を提供する。本発明はまた、請求項11記載のクライアント装置を提供する。
データはツリーにより構成されていると仮定されている。データが構成されるツリーに構造上対応するノードポリノミアル(node polynomial)のツリーが構成される。当該ツリーの各ノードポリノミアルは、対称となるノードからスタートするツリーのブランチに出現するノード名に割り当てられる識別子に等しい入力に対してゼロと評価する。
構成されたツリーは、クライアント部分とサーバ部分に分割される。クライアント部分はランダムに選択され、サーバ部分は元のデータツリーとの差分である。クエリに応答して、クライアントとサーバは共に、各自の部分におけるポリノミアルを評価し、その結果をクエリソース(クライアント自体であるかもしれない)に供給する。これらの結果の何れも、元のデータを再構成するのに十分な情報を含んでいる。従って、当該データはプロテクトされたままである。
クライアント部分とサーバ部分の評価結果を合成することによって、与えられたクエリに該当するノードを特定することが可能である。これらの部分の評価の和は、任意のノード名に対して、当該ノード名の元のノードポリノミアルの評価と同じになる。そして、この評価は、クエリのノード名が当該ノード名のノード名に一致する場合にはゼロとなる。従って、クエリは、サーバが答えを知ることなく回答することが可能である。
一致するノードが検出されると、それらの(暗号化された)コンテンツが、サーバから抽出され、クライアントによって解読することが可能である。
好適な実施例では、ツリーのデータノードは、トライ(trie)表現に変換され、これにより、データセグメントの第2キャラクタに続く第1キャラクタは、当該第2キャラクタのチャイルドノードとして表現することが可能となる。これは、暗号化された文書における要素のデータコンテンツの検索を可能にする。
図面を通じて、同様の参照番号は、同様又は対応する特徴を示す。図面に示される特徴のいくつかは、典型的には、ソフトウェアにより実現され、また、ソフトウェアモジュール又はオブジェクトなどのソフトウェアエンティティを表す。
図1は、本発明によるシステムの概略を示す。サーバ100は、データを有するデータベース101を維持し、当該技術分野において周知なように、1以上のクライアント102からのクエリに回答するよう構成される。これらのクエリは、インターネットなどのネットワーク110を介し受信される。データベース101に格納されているデータは、データソースシステム103により提供されたものである。このシステム103は、クライアント102の1つであってもよいが、また独立したシステムであることも可能である。もちろん、当該データは、複数のソースからのものであり、サーバ100により管理されているものとすることも可能である。
例えば、クライアント102は、患者情報が入力される病院内の端末とすることも可能である。このとき、患者情報は、いくつかの理由により、遠隔地にあるデータベース101に格納される。患者情報は、プライバシーの点からプロテクトされる必要がある。以降において、クライアント102は、以前に入力された患者情報を抽出するため、データベース101をクエリするのに利用される。このような場合、データソースシステム103は、クライアント102との同一である。
他の実施例では、データソースシステム103は、映画や音楽などのコンテンツを顧客に利用可能にするコンテンツプロバイダとすることも可能である。さらに、コンテンツプロバイダは、それの顧客が販売するコンテンツのタイトルやアーチストなどのメタデータによりデータベースをクエリすることを可能にする。効率性の点から、プロバイダは、データベースの管理を第三者にアウトソースすることを所望するかもしれない。また、データベースは経済的に大変貴重なものであり、プロバイダは、データベース内のデータをプロテクトする必要がある。
データは、XMLベース文書の場合など、ツリー状の構成を有していると仮定される。XML文書では、各ノードは、名前とおそらく値を有している。2つのノードの間には複数のパスは存在しない。以下において、異例となるXMLベース文書が示される。それのツリー表現が、図2(a)に示されている。
このデータはまた、電子メールメッセージなどのフラットテキストファイルの検索を可能にするインデックス構成とすることも可能である。非構造化データは、ツリー状に構成されたフォーマットにまず変換可能である。
データを復元するのに十分な情報がサーバ100に存在しないように、データをプロテクトすることが望ましい。従って、データソースシステム103は、以下のようにプロテクトされた形式によりデータを供給する。
各ノード名には、まず識別子と、当該ノード名の識別子に等しいxに対してはゼロと評価する対応する識別ポリノミアルi(x)が割り当てられる。ノード名から識別子への一例となるマッピングが、テーブル1において示される。各名前に対して、これらの識別子は一意的なものとなるべきである。それらは、(擬似)ランダムに選択され、あるいは、オペレータなどによって割り当てることも可能である。このマッピングによって、識別ポリノミアルi(x)を構成することが可能である。好ましくは、識別ポリノミアルは、必ずしも必要ではないが、第1次ポリノミアル(first−degree polynomial)である。第1次ポリノミアルは、ちょうど1つの入力に対してのみゼロと評価する。より高い次数のポリノミアルを使用することは、回答が正しいものを検出するためフィルタリングされる必要があることを意味する。
本明細書を通じて使用される実施例において使用されるシンプルな構成は、i(x)=x−nの形式のポリノミアルを使用するものである。ただし、nはノード名に割り当てられた識別子に等しい。
ノード名自体をサーバ100から秘密に維持することが望ましい場合、ノード名から識別子へのマッピングはもちろん、サーバ100に提供されるべきではない。サーバ100は、以下において明らかになるように、クエリを実行可能にするためにこの情報を必要としない。
次に、すべてのノード名には、対応するノードポリノミアルn(x)が割り当てられる。リーフノードに対しては、それのノードポリノミアルは、それの識別ポリノミアルに等しい。非リーフノードに対しては、それのノードポリノミアルは、それの識別ポリノミアルとそれのすべてのチャイルドノードのノードポリノミアルの積として計算される。図2(b)において、これが示される。
大きな次数のポリノミアルを回避するため、例えば、Fp[x]やZ[r(x)]などの有限フィールドで作業することが好ましい。有限フィールドを使用することは、何れの情報も失うことはない。
第1の例では、ポリノミアルの係数は、モジュローpに減少される。pが素数である場合、
第2の例では、ポリノミアルは、還元不可能な(irreducible)ポリノミアルr(x)のモジュローに減少される。このポリノミアルの次数は、r(x)の次数未満となる。しかしながら、その係数は、Z、すなわち、すべての数の要素となり、多数のノード名を有するデータ構造について大変大きなものとなりうる。これは、r(x)=x2+1の選択による図3(b)に示される。
まとめると、実施例のノード名、割り当てられた識別子、識別ポリノミアル及びノード名に対するノードポリノミアルが以下で概略される。
好適な実施例では、ポリノミアルのツリーは、以下のように分割される。各ノードには、そのノードポリノミアルと同一の次数の自ら(擬似)ランダムに選択したブラインドポリノミアルが割り当てられる。このことは、同一の名前を有する2つのノードは通常は異なるブラインドポリノミアルに割り当てられることを意味する。図4(a)において、図2(a)の一例となるツリーのこのような割り当ての例が示される。図4(a)のツリーは、ブラインドポリノミアルのツリーと呼ばれる。これらのポリノミアルはすべて、F5[x]に含まれる。
次に、各ノードに対して、差分ポリノミアルが、ブラインドポリノミアルと差分ポリノミアルの和がノードポリノミアルに等しくなるように計算される。図4(b)において、一例となるツリーについて対応する「差分ポリノミアルのツリー」が示される。各ノードに対して、当該ノードの図4(a)のブラインドポリノミアルが図4(b)の対応する差分ポリノミアルに加えられる場合、その結果が図3(a)の当該ノードのノードポリノミアルとなることは真である。例えば、図4(b)のルートノードに加えて、図4(a)のルートノードは、図3(a)のルートノードに等しい
図5(a)及び5(b)において、Z[x2+1]の対応する例が示される。図5(a)のルートノードが図5(b)のルートノードに加えられる場合、その結果は図3(b)のルートノードとなる。
原則的には、クライアント102とサーバ100の何れがどのツリーを受信するかは重要ではない。しかしながら、クライアント102が限られた格納容量しか有しない場合には、差分ポリノミアルのツリーをサーバ100に割り当てることが効果的である。そのとき、クライアント102には、ブラインドポリノミアルが生成された擬似乱数生成装置を初期化するのに使用されるシードしか提供することはできない。このとき、クライアント102は、必要なときには常に、ブラインドポリノミアルを再生成することができる。例えば、携帯電話は、限られた格納容量しか有しないが、必要な計算を実行するのに十分なパワーを有する。
ブラインド及び差分ポリノミアルのツリーがクライアントとサーバに供給された後、クライアントは、サーバを照会することが可能である。まず、シンプルな要素検索、すなわち、ノード名が与えられたとき、ツリーからノードを検出することが説明される。
XPathと呼ばれるW3C勧告は、あるパスを含むXML文書の検索を記載している。「client」という名前のノードの要素検索は、XPathにおいて“//client」として示される。通常、サーバ100は、ツリー全体を探索し、「client」という名前とすべてのノード名を比較することによってこのような検索を実行する。これはやや非効率であり、さらに、サーバが実際のノード名を有していない場合には、差分ポリノミアル(又はブラインドポリノミアル)のツリーのみにより行うことは不可能である。
本発明によると、クライアント102はまず、対象となるノード名に割り当てられた識別子を決定する。「client」という名前に対しては、上述したように識別子は「2」である。このとき、クライアント102は、サーバ100に当該識別子、本例ではx=2に等しいxについてそれのツリーにおけるポリノミアルを評価し、結果を返すよう問い合わせる。好ましくは、サーバ100は、さらなる不要な計算を行うことを回避するため、クライアント102がサーバ100に計算終了時間を通知することができるように、計算が終了するとすぐに、各ポリノミアルの各結果を返すべきである。このことが、以下において説明される。
クライアント102はまた、x=2の与えられた値に対して、1つずつそれのポリノミアルを評価する。さらに、クライアント102は、各ノードに対して、それ自体の評価とサーバ100によって当該ノードに返された評価結果との和を計算する。この和がゼロに等しい場合、当該ノードのノードポリノミアルは、係数(x−2)を含む。このことは、このノードが「client」というノード名を有しているか、あるいは、それの下位の何れかにその名前を有するノードがあることを意味する。
この和が非ゼロである場合、ノードポリノミアルは係数(x−2)を含まない。このことは、当該ノードの下位の何れにも「client」というノード名が存在しないことを意味する。従って、このブランチにおいてさらなる検索を実行することは不要である。このとき、クライアント102は、それが当該ブランチのポリノミアルの評価を止めることが可能であることをサーバ100に通知することが可能である。
和がゼロに等しく、それのチャイルドの和がゼロに等しくない各ノードは、クエリに対する回答を表している。これは、図6(a)〜(c)に示されている。すべての評価は、F5[x]に属する。図7(a)〜(c)において、Z[x2+1]の同一の例が示される。
図6(a)は、クライアントツリーのすべてのポリノミアル(従って、ブラインドポリノミアル)の評価を示す。図6(b)は、サーバツリーのすべてのポリノミアル(従って、差分ポリノミアル)の評価を示す。図6(c)は、図6(a)と(b)のポリノミアルの各評価の各自の和を示す。図6(c)から図2(a)を比較することによって確認することができるように、図2(a)の「client」という名前を有するノードはゼロの和を有し、それらのチャイルドは非ゼロの和を有する。「customers」というノードはゼロの和を有し、またチャイルドもまたゼロの和を有する。このことは、当該ノードの下位には「client」という名前のノードが1以上存在することを示している。
このアプローチは、あるノード名がツリーの複数のレベルに出現可能である場合には、完全に正確な結果を提供しない。例えば、データが以下のように構成された場合、
この問題を有しない一致したノードを特定するより良好な方法が利用可能である。それは、ノードの一部について元のノードポリノミアルを再構成することを要求する。クライアント102がブラインドポリノミアルのツリーを受信していることを仮定する。サーバ100から回答を受信し、上述のような特定のノードを特定した後、クライアント102は、特定された各ノードに対して、それの差分ポリノミアルと当該ノードの直接のチャイルドの差分ポリノミアルとをサーバ100からリクエストする。例えば、図6(c)の例では、ルートノードは一致したノードである。クライアント102は、ルートノードと当該ルートノードの直接下位にある2つのノードの差分ポリノミアルを要求する。
ここで、クライアント102は、対象となる各ノードに対して、関連するブラインドポリノミアルと差分ポリノミアルを単に加えることによって、ノードポリノミアルを再構成することが可能である。その後、ゼロの和を有するノードのノードポリノミアルは、それの直接のチャイルドのノードポリノミアルによって除算される。これは、ゼロの和を有するノードの識別ポリノミアルを明らかにする。識別ポリノミアルが、与えられたクエリに対してゼロに評価されるか否かは、容易に評価することが可能である。これから、対象となるノードがクエリに該当するか、あるいは、回答がチャイルドの1つに求められるべきか結論付けることができる。
さらに、サーバからの回答の正しさをチェックすることも可能である。fをノードのノードポリノミアルとし、q1,...,qnをそれのn個のチャイルドノードのノードポリノミアルとする。回答の正しさをチェックするため、tに対して以下の式が解かれる必要がある。
該当するノードが検出されると、クライアント102は、サーバ100からこれらのノードの(暗号化された)コンテンツを要求し、当該コンテンツをローカルに解読することが可能である。このように、暗号化されたデータベースの全体の代わりに、該当するノードのコンテンツのみがサーバ100からクライアント102に送信されるだけでよい。
いくつかのアプリケーションでは、ノードは、エンプティであり、すなわち、コンテンツを有していないかもしれない。このとき、すべての情報は、ノード名に含まれ、ノードの構成はツリーに含まれる。
本発明はまた、より高度なXPathのクエリがプロテクトされたデータに対して実行することを可能にする。もちろん、“//a/b//a/d/e”などのクエリが、左から右に評価することが可能である。すなわち、まず‘a’の出現についてツリーを検索し、その後、‘b’と名付けられたノードに対してこの名前を有するノードの下位のブランチ内において検索などが行われる。一度にクエリ全体を評価することは、はるかにより効率的である。
ツリーのすべてのポリノミアルは、それのすべての下位ノードのルートを有する。これは、1つのクエリが特定の下位ノードを含むすべての要素を検出することを可能にする。上述した例のクエリを解くには、以下のステップを必要とする。
1.ルートノードから、ツリーのより下位の何れかにある‘b’、‘c’、‘d’及び‘e’という名前を有する要素を有する‘a’という名前を有するすべての要素を検出する。
2.検出された名前‘a’を有するすべての要素から、ツリーのより下位の何れかにある‘c’、‘d’及び‘e’という名前を有する要素を有する‘b’という名前を有するすべての直接のチャイルドを検出する。
3.検出された名前‘b’を有するすべての要素から、ツリーのより下位の何れかにある‘d’及び‘e’という名前を有する要素を有する‘c’という名前を有するすべての下位ノードを検出する。
4.検出された名前‘c’を有するすべての要素から、ツリーのより下位の何れかにある‘e’という名前を有する要素を有する‘d’という名前を有するすべての直接的なチャイルドを検出する。
5.検出された名前‘d’を有するすべての要素から、‘e’という名前を有するすべての直接的なチャイルドを検出する。
1.ルートノードから、ツリーのより下位の何れかにある‘b’、‘c’、‘d’及び‘e’という名前を有する要素を有する‘a’という名前を有するすべての要素を検出する。
2.検出された名前‘a’を有するすべての要素から、ツリーのより下位の何れかにある‘c’、‘d’及び‘e’という名前を有する要素を有する‘b’という名前を有するすべての直接のチャイルドを検出する。
3.検出された名前‘b’を有するすべての要素から、ツリーのより下位の何れかにある‘d’及び‘e’という名前を有する要素を有する‘c’という名前を有するすべての下位ノードを検出する。
4.検出された名前‘c’を有するすべての要素から、ツリーのより下位の何れかにある‘e’という名前を有する要素を有する‘d’という名前を有するすべての直接的なチャイルドを検出する。
5.検出された名前‘d’を有するすべての要素から、‘e’という名前を有するすべての直接的なチャイルドを検出する。
上記実施例は、要素名が例えば、DTDにより記述された固定サイズのセットから選択されるが、異なるデータ要素の個数が無限に存在しうるため、XML要素のコンテンツについては使用することはできないと仮定している。以下において、データ検索に適した実施例が提供される。
本実施例では、元のXML文書のデータ文字列は、各ノードが小さなセットから選択されるノードのパスに変換される。好ましくは、この小さなセットは、もちろん、他のキャラクタが当該セットに含まれてもよいが、アルファベット、すなわち、{‘A’,...,‘Z’,‘a’,...,‘z’}である。
当該セットは、すべてのデータ要素が当該セットからのキャラクタのみを使用して表現することができるように選択されてもよい。しかしながら、データ要素に使用されるすべてのキャラクタの限られたサブセットのみを選択することによって、当該セットを構成することも可能である。例えば、句読点、スペースなどは排除することができる。セットの選択は、何れのタイプのクエリがデータに対して実行可能であるか決定する。当該セットがアルファベットのみを含む場合、ワードに対するクエリのみが実行可能である。
セットを構成した後、次のステップは、データノードをいわゆる「トライ」表現に変換することである。このタイプの表現は、Edward Fredkin、Bolt Beranek及びNewmanによる“Trie memory”(Communications of the ACM,3(9):490−499,September 1960)に記載されている。効果的に、データセグメントのトライ表現により、データセグメントの第2キャラクタに続く第1キャラクタが、当該第2キャラクタのチャイルドノードとして表現される。
図8(a)は、データコンテンツを有するXML要素の一例を示す。この例では、当該要素は、“name”と呼ばれ、“Joan Johnson”というデータを含む。
図8(b)は、このXML要素の圧縮されたトライ表現を示す。図8(c)は、このXML要素の圧縮されていないトライ表現を示す。圧縮されていないトライは、オリジナルと正確に同一の情報を格納し、圧縮されたトライは、ワードのオーダ及びカージナリティ(cardinality)を欠落している。この例では、文字列は、パスによって表されるワードに分割され、その後、各パスは複数のキャラクタに分割される。文字列をノードに分割する他の方法は、大変良好に可能である。これらの図において確認することができるように、データセグメント“Joan”のキャラクタ“J”に続くキャラクタ“o”が、“J”のノードのチャイルドノードとして表される。
この処理は、セット内の要素と同数の新たな要素名を生成する。例えば、テキストがアルファベット(a,b,...,z)の小文字に分割されるとき、これは26個の新たな名前を与える。ポリノミナルを可能な限り少数に維持するため、29の素数pが妥当である。書く文字は、p*log_2(p)ビット=18バイトをとる。従って、ワーストケースシナリオでは(共通のプリフィックスが存在しないとき)、テキストのサイズは、この定数により増大する。しかしながら、当該文書が大きいほど、共通のプリフィックスの個数は増加し、これにより、サイズの増加はより小さくなる。変換された文書が元の文書より小さくなる可能性はさらに小さい。
元のXMLツリーを(圧縮された)トライに変換すると、上述したものと同様の方針が文書を符号化するのに利用可能である。ここでは、XML文書のデータコンテンツを検索することが可能である。例えば、このクエリはここでは可能である。
上記検索方針を利用して、まず、「name」という名前を有するXML要素が配置される。次のステップは、この要素はデータ文字列“Joan”を含むか判断するというものである。これは、上記のようにこの要素(及びそれのチャイルド)に対してクエリ“J/o/a/n”を実行することによって行われる。言い換えると、クエリ“Joan”は、“Joan”のトライ表現に対するクエリに変換される。
図8(b)及び(c)において確認することができるように、それの下位にノード“o”があり、それは“Joan”のその他のキャラクタである“a”と“n”のノードに後続する。従って、上記方針を使用してクエリ“J/o/a/n”は、ノード“name”が“Joan”の値を含むか明らかにする。
上述したように、本実施例は、当初選択されたセットのキャラクタを使用して構成される文書のデータを検索することを可能にする。セット{‘A’,...,‘Z’,‘a’,...,‘z’}により、ワードに対するクエリを実行することが可能である。当該セットに属しないデータのキャラクタは、それらは具体的に指定されたキャラクタにマッピングすることも可能であるが、好ましくは、トライにおいて省略される。トライにおいてこのようなキャラクタを省略することによって、このようなキャラクタはクエリにおいて指定される必要はない。例えば、図8(b)のトライにおいて、“Joan Johnson”に対するクエリは、“Joan”と“Johnson”との間のクエリのスペースキャラクタがトライに存在しなくても、成功するであろう。
さらなる精緻化では、キャラクタのセットは、データ要素において使用されるすべての一意的なキャラクタを決定することによって構成される。あるいは、XML文書は、それの符号化を決定するため検討可能であり、それから何れのキャラクタセットが使用されるか判断することが可能である。このとき、当該セットは、キャラクタセットに等しいように選択される。これは、特にUnicodeキャラクタセットが使用されるときには、比較的大きなセットを与えるが、可能性のあるすべてのクエリを検索することが可能である。
必要な計算を実行するため、サーバ100とクライアント102には、特別に記述されたソフトウェア及び/又はハードウェアを設けることが可能である。大部分の計算はポリノミアルの評価であるため、標準的なCPUがソフトウェアを実行するため利用可能である。
上記実施例は本発明を限定するものではなく、説明するものであって、当業者は添付した請求項の範囲から逸脱することなく他の多数の実施例を構成することが可能であるということに留意すべきである。
例えば、ブラインドポリノミアルのツリーを第1サーバに、差分ポリノミアルのツリーを第2サーバに格納することが可能である。そのとき、クライアントは、双方のサーバに与えられたxの値に対してそれらのポリノミアルを評価することを要求することが可能であり、これらの結果を加えるだけでよい。このように、クライアントは、自らポリノミアルを評価する必要はない。
ノードポリノミアルを有するツリーは、3以上の主体がクエリを解くのに必要とされるように、3以上のツリーに分割することが可能である。これを実行する直接的な方法の1つは、各ノードに対して複数の(擬似)ランダムにブラインドポリノミアルを選択することである。その後、各ノードの差分ポリノミアルが、当該ノードに対するすべてのブラインドポリノミアルと差分ポリノミアルの和が当該ノードのノードポリノミアルに等しくなるように、選択される。各主体は、ブラインドポリノミアルのツリー又は差分ポリノミアルのツリーの1つを受信する。1つのノードに対してすべてのポリノミアルのすべての評価を加えることによって、当該ノードがクエリに該当しているか確認することが可能である。
請求項では、括弧内におかれる参照記号は、請求項を限定するものとして解釈されるべきでない。「有する」という用語は、請求項に列挙された以外の要素又はステップの存在を排除するものではない。要素に先行する「ある」という用語は、そのような要素が複数存在することを排除するものではない。
本発明は、複数の相異なる要素を有するハードウェア及び適切にプログラムされたコンピュータによって実現することが可能である。請求項に記載される「手段」は、各自のソフトウェアライブラリ又はモジュールによって実現可能である。複数の手段が、1つのコンピュータプログラムによって実現可能である。
複数の手段を列挙した装置クレームでは、これらの手段のいくつかが、1つの同一のハードウェアアイテムにより実現することが可能である。ある手段が互いに異なる従属クレームに記載されているという事実は、これらの手段の組み合わせが効果的には利用可能でないことを示すものではない。
Claims (16)
- プロテクトされたデータのクエリを可能にするコンピュータにより実現される方法であって、
前記データは、各自のノード名を有するノードを有するツリーとして構成され、各ノード名には一意的な識別子が割り当てられており、
当該方法は、
対象となるノードからスタートするツリーのブランチにおいて出現するノード名に割り当てられた識別子に等しい入力に対しては、各ノードポリノミアルはゼロと評価するように、前記データが構成されるツリーに構成上対応するノードポリノミアルのツリーを構成するステップと、
前記ノードポリノミアルのツリーの各ポリノミアルが、ブラインドポリノミアルのツリーにおける対応するポリノミアルと差分ポリノミアルのツリーにおける対応するポリノミアルとの和に等しくなるように、前記データが構成されるツリーに双方構成上対応する前記ブラインドポリノミアルのツリーと前記差分ポリノミアルのツリーとを構成するステップと、
前記ブラインドポリノミアルのツリーと前記差分ポリノミアルのツリーとの1つをサーバシステムに利用可能にし、他方をクライアント装置に利用可能にするステップと、
を有することを特徴とする方法。 - 請求項1記載の方法であって、さらに、
前記一意的な識別子に等しいxに対してゼロに評価するxの識別ポリノミアルを各ノード名に割り当てるステップを有することを特徴とする方法。 - 請求項2記載の方法であって、
前記識別ポリノミアルは、第1次ポリノミアルであることを特徴とする方法。 - 請求項2又は3記載の方法であって、さらに、
前記ツリーの各ノードに対して、該ノードがリーフノードである場合、前記ノードポリノミアルは前記ノードの識別ポリノミアルに等しく、そうでない場合、前記ノードポリノミアルは、前記ノードの識別ポリノミアルと前記ノードのチャイルドノードのノードポリノミアルとの積に等しいように、前記ノードポリノミアルのツリーを構成するステップを有することを特徴とする方法。 - 請求項1記載の方法であって、
前記ブラインドポリノミアルのツリーは、前記クラインと装置に利用可能にされ、
前記差分ポリノミアルのツリーは、前記サーバシステムに利用可能にされる、
ことを特徴とする方法。 - 請求項1記載の方法であって、
前記ブラインドポリノミアルのツリーは、該ブラインドポリノミアルの係数を(擬似)ランダムに選択することによって構成されることを特徴とする方法。 - 請求項5又は6記載の方法であって、
前記ブラインドポリノミアルのツリーは、該ブラインドポリノミアルの係数が生成された擬似乱数生成装置を初期化するのに使用されるシードを前記クラインと装置に利用可能にすることによって、前記クラインと装置に利用可能にされることを特徴とする方法。 - 請求項1記載の方法であって、さらに、
前記ノードポリノミアルのツリーの各ポリノミアルが、前記ブラインドポリノミアルのツリーにおける対応するポリノミアルと前記差分ポリノミアルのツリーにおける対応するポリノミアルとの和に等しくなるように、複数のブラインドポリノミアルを構成するステップと、
前記ブラインドポリノミアルの複数のツリー又は前記差分ポリノミアルの1つを前記サーバシステムに利用可能にし、他方のツリーを各クラインと装置に利用可能にするステップと、
を有することを特徴とする方法。 - 請求項1記載の方法であって、さらに、
前記ツリーのデータノードをトライ表現に変換するステップを有し、
これにより、データセグメントの第2キャラクタに続く第1キャラクタが、前記第2キャラクタのチャイルドノードとして表される、
ことを特徴とする方法。 - プロテクトされたデータのクエリを可能にする装置であって、
前記データは、各自のノード名を有するノードを有するツリーとして構成され、各ノード名には一意的な識別子が割り当てられており、
当該装置は、
対象となるノードからスタートするツリーのブランチにおいて出現するノード名に割り当てられた識別子に等しい入力に対しては、各ノードポリノミアルはゼロと評価するように、前記データが構成されるツリーに構成上対応するノードポリノミアルのツリーを構成する手段と、
前記ノードポリノミアルのツリーの各ポリノミアルが、ブラインドポリノミアルのツリーにおける対応するポリノミアルと差分ポリノミアルのツリーにおける対応するポリノミアルとの和に等しくなるように、前記データが構成されるツリーに双方構成上対応する前記ブラインドポリノミアルのツリーと前記差分ポリノミアルのツリーとを構成する手段と、
前記ブラインドポリノミアルのツリーと前記差分ポリノミアルのツリーとの1つをサーバシステムに利用可能にし、他方をクライアント装置に利用可能にする手段と、
を有することを特徴とする装置。 - 請求項10記載の装置であって、
当該装置は、前記クライアント装置として動作するよう構成されることを特徴とする装置。 - プロテクトされたデータに対してサーバをクエリするクライアント装置であって、
前記データは、各自のノード名を有するノードを有するツリーとして構成され、各ノード名には一意的な識別子が割り当てられており、
当該クライアント装置は、
ノード名に対するクエリを受信することに応答して、前記ノード名に割り当てられた一意的な識別子を決定する手段と、
前記決定された識別子に等しい入力に対して、請求項1記載の方法によってサーバシステムに利用可能にされる前記ツリーのポリノミアルを評価するリクエストを前記サーバシステムと通信する手段と、
前記決定された識別子に等しい入力に対して、請求項1記載の方法によって前記クライアント装置に利用可能にされる前記ツリーのポリノミアルを評価する手段と、
前記サーバシステムから受け付けた評価結果と、前記クライアント装置による評価結果との和がゼロに等しいか判断する手段と、
前記決定された和がゼロに等しいものであって、前記ノードのチャイルドノードの和がゼロに等しくならないノードを、前記クエリの回答として返す手段と、
を有することを特徴とするクライアント装置。 - 請求項12記載のクライアント装置であって、さらに、
あるブランチのポリノミアルの評価を、該ブランチのルートノードの前記サーバシステムによる評価が非ゼロとなる場合、前記サーバシステムに通知する手段を有することを特徴とするクライアント装置。 - 請求項12記載のクライアント装置であって、さらに、
あるノードに含まれるデータセグメントに対するクエリを、前記データセグメントのトライ表現に対するクエリに先行する前記ノードに対するクエリに変換する手段を有することを特徴とするクライアント装置。 - 請求項10記載の装置として計算装置が動作することを可能にする命令を有するコンピュータプログラム。
- 請求項12記載の装置として計算装置が動作することを可能にする命令を有するコンピュータプログラム。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP04102375 | 2004-05-28 | ||
PCT/IB2005/051412 WO2005116792A1 (en) | 2004-05-28 | 2005-04-29 | Method of and device for querying of protected structured data |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2008501175A true JP2008501175A (ja) | 2008-01-17 |
Family
ID=34966272
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007514220A Pending JP2008501175A (ja) | 2004-05-28 | 2005-04-29 | プロテクトされた構造化されたデータのクエリ方法及び装置 |
Country Status (5)
Country | Link |
---|---|
US (1) | US20070282870A1 (ja) |
EP (1) | EP1754123A1 (ja) |
JP (1) | JP2008501175A (ja) |
CN (1) | CN1961269A (ja) |
WO (1) | WO2005116792A1 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2016072022A1 (ja) * | 2014-11-07 | 2016-05-12 | 株式会社日立製作所 | 暗号化グラフの検索方法、暗号化グラフの検索システム及び計算機 |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8040823B2 (en) | 2007-01-08 | 2011-10-18 | Industrial Technology Research Institute | Method and system for network data transmitting |
US20100054242A1 (en) * | 2008-08-28 | 2010-03-04 | Nokia Corporation | Method, apparatus and computer program to generate a unique node identifier |
US8150835B2 (en) * | 2009-09-23 | 2012-04-03 | Nokia Corporation | Method and apparatus for creating and utilizing information signatures |
US8468345B2 (en) | 2009-11-16 | 2013-06-18 | Microsoft Corporation | Containerless data for trustworthy computing and data services |
US10348693B2 (en) * | 2009-12-15 | 2019-07-09 | Microsoft Technology Licensing, Llc | Trustworthy extensible markup language for trustworthy computing and data services |
US9537650B2 (en) | 2009-12-15 | 2017-01-03 | Microsoft Technology Licensing, Llc | Verifiable trust for data through wrapper composition |
US20180115535A1 (en) * | 2016-10-24 | 2018-04-26 | Netflix, Inc. | Blind En/decryption for Multiple Clients Using a Single Key Pair |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH11143780A (ja) * | 1997-11-05 | 1999-05-28 | Hitachi Ltd | データベースにおける秘密情報管理方法およびデータベースの秘密情報管理装置 |
JP2001101055A (ja) * | 1999-09-30 | 2001-04-13 | Casio Comput Co Ltd | データベース管理装置、データベースシステム、暗号化装置及び記録媒体 |
JP2002108910A (ja) * | 2000-09-27 | 2002-04-12 | Nec Soft Ltd | 暗号化ファイルシステム及び暗号化ファイル検索方法並びにコンピュータ可読記録媒体 |
JP2002108911A (ja) * | 2000-09-28 | 2002-04-12 | Nec Soft Ltd | 暗号化ファイル検索方法及びその装置並びにコンピュータ可読記録媒体 |
JP2002278970A (ja) * | 2001-03-16 | 2002-09-27 | Ricoh Co Ltd | 文書管理システム |
JP2003150600A (ja) * | 2001-11-13 | 2003-05-23 | Canon Inc | 情報検索装置、データ処理方法及び記録媒体 |
JP2003178070A (ja) * | 2001-12-12 | 2003-06-27 | Canon Inc | 情報検索装置 |
JP2003296331A (ja) * | 2002-04-04 | 2003-10-17 | Kddi Corp | データ検索方法、データ検索システム、検索キーワード生成装置、及びコンピュータプログラム |
JP2004021654A (ja) * | 2002-06-17 | 2004-01-22 | Internatl Business Mach Corp <Ibm> | データベース検索システム、データ共有システム及びそのデータ検索方法 |
JP2005284915A (ja) * | 2004-03-30 | 2005-10-13 | Canon Inc | 情報検索装置および方法、ならびに情報検索システムおよびその制御方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB9712459D0 (en) * | 1997-06-14 | 1997-08-20 | Int Computers Ltd | Secure database system |
AU3477500A (en) * | 1999-02-02 | 2000-09-04 | Smithkline Beecham Corporation | Apparatus and method for depersonalizing information |
-
2005
- 2005-04-29 JP JP2007514220A patent/JP2008501175A/ja active Pending
- 2005-04-29 US US11/569,690 patent/US20070282870A1/en not_active Abandoned
- 2005-04-29 EP EP05731769A patent/EP1754123A1/en not_active Withdrawn
- 2005-04-29 WO PCT/IB2005/051412 patent/WO2005116792A1/en active Application Filing
- 2005-04-29 CN CNA2005800171112A patent/CN1961269A/zh active Pending
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH11143780A (ja) * | 1997-11-05 | 1999-05-28 | Hitachi Ltd | データベースにおける秘密情報管理方法およびデータベースの秘密情報管理装置 |
JP2001101055A (ja) * | 1999-09-30 | 2001-04-13 | Casio Comput Co Ltd | データベース管理装置、データベースシステム、暗号化装置及び記録媒体 |
JP2002108910A (ja) * | 2000-09-27 | 2002-04-12 | Nec Soft Ltd | 暗号化ファイルシステム及び暗号化ファイル検索方法並びにコンピュータ可読記録媒体 |
JP2002108911A (ja) * | 2000-09-28 | 2002-04-12 | Nec Soft Ltd | 暗号化ファイル検索方法及びその装置並びにコンピュータ可読記録媒体 |
JP2002278970A (ja) * | 2001-03-16 | 2002-09-27 | Ricoh Co Ltd | 文書管理システム |
JP2003150600A (ja) * | 2001-11-13 | 2003-05-23 | Canon Inc | 情報検索装置、データ処理方法及び記録媒体 |
JP2003178070A (ja) * | 2001-12-12 | 2003-06-27 | Canon Inc | 情報検索装置 |
JP2003296331A (ja) * | 2002-04-04 | 2003-10-17 | Kddi Corp | データ検索方法、データ検索システム、検索キーワード生成装置、及びコンピュータプログラム |
JP2004021654A (ja) * | 2002-06-17 | 2004-01-22 | Internatl Business Mach Corp <Ibm> | データベース検索システム、データ共有システム及びそのデータ検索方法 |
JP2005284915A (ja) * | 2004-03-30 | 2005-10-13 | Canon Inc | 情報検索装置および方法、ならびに情報検索システムおよびその制御方法 |
Non-Patent Citations (2)
Title |
---|
JPN6010036997, R. Brinkman, L. Feng, J. Doumen, P.H. Hartel, and W. Jonker, "Effcient Tree Search in Encrypted Data", INFORMATION SYSTEMS SECURITY, 2004, p.14−21 * |
JPN6010036999, Richard Brinkman, Jeroen Doumen, and Willem Jonker, "Using Secret Sharing for Searching in Encrypted Data", SDM 2004, LNCS 3178, 2004, p.18−27 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2016072022A1 (ja) * | 2014-11-07 | 2016-05-12 | 株式会社日立製作所 | 暗号化グラフの検索方法、暗号化グラフの検索システム及び計算機 |
Also Published As
Publication number | Publication date |
---|---|
WO2005116792A1 (en) | 2005-12-08 |
CN1961269A (zh) | 2007-05-09 |
US20070282870A1 (en) | 2007-12-06 |
EP1754123A1 (en) | 2007-02-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10985902B2 (en) | Dynamic symmetric searchable encryption | |
KR20210092802A (ko) | 블록체인 네트워크를 통한 데이터의 효율적이고 안전한 처리, 접근 및 전송을 위한 시스템 및 방법 | |
US20230370245A1 (en) | Privacy-Preserving Domain Name Services (DNS) | |
Örencik et al. | An efficient privacy-preserving multi-keyword search over encrypted cloud data with ranking | |
US8819770B2 (en) | Data mapping using trust services | |
Awad et al. | Chaotic searchable encryption for mobile cloud storage | |
Kissel et al. | Verifiable phrase search over encrypted data secure against a semi-honest-but-curious adversary | |
CN117972795B (zh) | 基于异或过滤器的密态空间关键字安全检索方法及装置 | |
Patel et al. | What Storage Access Privacy is Achievable with Small Overhead? | |
JP2008501175A (ja) | プロテクトされた構造化されたデータのクエリ方法及び装置 | |
US20230155815A1 (en) | Secure integer comparison using binary trees | |
JP2006189925A (ja) | 個人情報管理システム、個人情報管理プログラムおよび個人情報保護方法 | |
Moataz et al. | Substring search over encrypted data | |
Singh et al. | Aggregating privatized medical data for secure querying applications | |
Ghosh et al. | Fully-dynamic verifiable zero-knowledge order queries for network data | |
Dang | Ensuring correctness, completeness, and freshness for outsourced tree-indexed data | |
Uchide et al. | Searchable symmetric encryption capable of searching for an arbitrary string | |
YueJuan et al. | A searchable ciphertext retrieval method based on counting bloom filter over cloud encrypted data | |
KR20070030792A (ko) | 보호 구조로 된 데이터의 질의 방법 및 디바이스 | |
CN114615050B (zh) | 基于区块链存储的可验证的可搜索对称加密方法 | |
US20090313216A1 (en) | System and method for best-fit lookup of multi-field key | |
Sujatha et al. | An efficient enhanced prefix hash tree model for optimizing the storage and image deduplication in cloud | |
Luo et al. | A layered searchable encryption scheme with functional components independent of encryption methods | |
Le et al. | Query access assurance in outsourced databases | |
Mohammed et al. | Index seek technique for Querying Encrypted Databases |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20080425 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20100706 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20101207 |