JP4810611B2 - 暗号化されたデータの検索 - Google Patents

暗号化されたデータの検索 Download PDF

Info

Publication number
JP4810611B2
JP4810611B2 JP2009527488A JP2009527488A JP4810611B2 JP 4810611 B2 JP4810611 B2 JP 4810611B2 JP 2009527488 A JP2009527488 A JP 2009527488A JP 2009527488 A JP2009527488 A JP 2009527488A JP 4810611 B2 JP4810611 B2 JP 4810611B2
Authority
JP
Japan
Prior art keywords
item
index
data item
plaintext data
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.)
Expired - Fee Related
Application number
JP2009527488A
Other languages
English (en)
Other versions
JP2010503118A5 (ja
JP2010503118A (ja
Inventor
ダニエラ クリストフォー エレナ
ボグダン クリストフォー ラウレンチウ
ドゥッタ タンモイ
ガルシア ラウル
エル.シュエ サング
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Corp
Original Assignee
Microsoft Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of JP2010503118A publication Critical patent/JP2010503118A/ja
Publication of JP2010503118A5 publication Critical patent/JP2010503118A5/ja
Application granted granted Critical
Publication of JP4810611B2 publication Critical patent/JP4810611B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting 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/6245Protecting personal data, e.g. for financial or medical purposes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/606Protecting data by securing the transmission between two devices or processes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic 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
    • H04L9/3236Cryptographic 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 using cryptographic hash functions

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Databases & Information Systems (AREA)
  • Computer Hardware Design (AREA)
  • Data Mining & Analysis (AREA)
  • Medical Informatics (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Mathematical Physics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Storage Device Security (AREA)

Description

本発明は、データの検索に関し、具体的には、暗号化されたデータの検索に関する。
会社は、様々なビジネスの局面で使用されるデータを格納および検索するため、データベースシステムを使用する。そのデータは、数百万もの数を含む場合があり、少なくとも一部は、例えば顧客情報のように会社が非公開にしておきたいものである。このような情報は、悪意のある人にとって価値あるものであろう。もし競業者がこれらの非公開の情報を得たとしたら、競業者は会社や顧客、または両者に対して問題を引き起こすかもしれない。
データベース中の価値ある情報を保護するため、およびプライバシーの規則または方針を遵守するために使用される1つの一般的な方法は、暗号化である。しかしながら、暗号化されたデータをデータベースで取り扱うことで、例えば、既存のアプリケーションからデータに対し、どのように権限のあるアクセスを許可するのか、また、すべてのデータを復号化し線形検索を行うことなく、特定のデータ項目を探すにはどのようにすべきか、などの別の問題が起こる。
既存のデータベースシステムは、決定論的暗号化を使用することにより、上記で述べた問題点を解決した。このようなデータベースシステムでは、同一の暗号鍵を使用する場合、平文項目はいつも同一の暗号文に暗号化される。決定論的暗号化の例には、電子コードブロック(ECB:Electronic Code Book)モードにおけるブロック暗号の使用、または、一定の初期化ベクター(IV:Initialization Vector)の使用が含まれる。決定論的暗号化では、ある与えられた暗号鍵を使用する場合、同一の平文は、同一の暗号文に暗号化されるため、データパターンが認識され、その結果情報漏洩につながる可能性がある。これは、暗号化されるべきデータがどのブロック暗号アルゴリズムが使用されるかに応じて、長さ8バイトまたは16バイトとすることができる単一ブロック内に収まらないくらい大きい場合には、特に問題である。
この要約は、以下の発明を実施するための形態でさらに深く記述するいくつかの概念を、簡単な形式で紹介するために提供される。この要約は、請求項に記載されている主題事項の重要な、または本質的な特徴を特定すること、また、請求項に記載されている主題事項の範囲を限定するために使用されることを意図するものではない。
以下に記載する実施形態は、非決定論的に暗号化されたデータについて検索を行うことができるデータベースシステムに関連する。
1つの実施形態では、データベースの暗号化された列に対応するインデックス構造を使用して、データベースの暗号化された列の非決定論的に暗号化された暗号文項目に対応するデータ項目の検索を行うことができる。コードを、要求側に関しては意識させないように、データ項目と暗号鍵とに基づいて計算することができる。このコードは、インデックス構造のインデックスとして使用することができるものであって、このインデックス構造は、対応するデータ項目と暗号鍵とに基づいた、それぞれのコードに従って組織化されたエントリーを持つことができる。いくつかの実施例では、インデックス構造の各エントリーは、データベースの暗号化された列の対応する非決定論的に暗号化された暗号文項目を含むデータベースの行へアクセスするための、それぞれのコードおよびデータを含むことができる。
他の実施形態では、データベースの暗号化された列に対応するインデックス構造にアクセスして、暗号化された列の非決定論的に暗号化された暗号文項目に対応する所望のデータ項目の検索を行うことができる。インデックス構造のエントリーを、データベースの暗号化された列の非決定論的に暗号化された暗号文項目に対応する平文データ項目に従って組織化することができる。このインデックス構造では、対応する平文データ項目に関連する参照を暗号化することができ、インデックス構造中の他の情報を暗号化しないことができる。この検索を、少なくともインデックス構造の一部をメモリーにロードし、インデックス構造のエントリーにアクセスし、および、インデックス構造のエントリーの少なくとも参照の1つを復号化することにより行うことができる。少なくとも1つの復号化された参照を、データベースの暗号化された列の対応する非決定論的に暗号化された暗号文項目を含むデータベースの行へのアクセスに使用することができる。
上記に挙げた利点および特徴ならびに他の利点および特徴を得ることができる方法を説明するため、より具体的な説明を以下に記載し、添付した図面中で例示されるその具体的な実施形態を参照することにより表現する。これらの図面は、単に例示的実施形態であり、したがって本発明の範囲を限定するものではない。実施例を、追加特性および詳細とともに、添付図面の使用により記述し、説明する。
本開示の主題に合致する例示的操作環境を示す図である。 図1の処理装置102、同図の処理装置104またはその両方の処理装置の実装に使用することができる例示的処理装置を示す機能ブロック図である。 本開示の主題に合致する実施形態において使用することができる例示的インデックス構造を示す図である。 本開示の主題に合致する実施形態において使用することができる例示的インデックス構造を示す図である。 本開示の主題に合致する実施形態において使用することができる例示的インデックス構造を示す図である。 図3Aから図3Cの例示的インデックス構造と合わせて行うことができる方法を示すフローチャートである。 本開示の主題に合致する他の実施形態において使用することができる例示的インデックス構造を示す図である。 図5の例示的インデックス構造を用いて行うことができる方法を示すフローチャートである。 本開示の主題に合致する3つ目の実施形態において行うことができる方法を示すフローチャートである。
以下に、詳細に実施例を説明する。特定の実施例について記載するが、これは説明を目的としてのみ行っていると解すべきである。当業者は、本開示の主題の趣旨、および範囲から切り離すことなく、他の構成要素および環境設定を使用することができると理解するであろう。
例示的操作環境
図1は、本開示の主題に合致する実施形態のための例示的操作環境100を示す。操作環境100は、処理装置102、処理装置104、およびネットワーク106を含むことができる。
処理装置102は、例えば、データベースシステムを実行することができるサーバーまたは他の処理装置とすることができる。処理装置104は、アプリケーションを実行することができ、かつ、ネットワーク106を介して処理装置102と通信することができるPC(Personal Computer)または他の処理装置とすることができる。
ネットワーク106は有線であっても無線であってもよく、有線または無線手段を介して接続された、複数の装置を含むことができる。ネットワーク104は、1つのネットワークまたは複数の異なるネットワークを含むことができるし、一部は異なるタイプの複数のネットワークとすることができる。
操作環境100において、処理装置104は、ネットワーク106を介して処理装置102のデータベース内にある情報にアクセスするアプリケーションを実行することができる。アプリケーションは、処理装置102のデータベース中のデータを作成、削除、読み取り、または変更することができる。
図1は、例示的操作環境を示す。他の操作環境または操作環境100のバリエーションを、本開示の主題に合致する他の実施形態にて使用することができる。例えば、図1においては処理装置102と処理装置104は別の装置としているが、ある実施形態では、処理装置102と処理装置104は組み合わされて1つの処理装置とすることができる。このような実施形態では、操作環境はネットワーク106を含まない。他の実施形態では、処理装置102によって行われる機能またはサービスは、複数の処理装置に渡って分散されることもできる。なお、これらの処理装置は、例えば、ネットワーク106などのネットワークを介して接続してもよい。
例示的処理装置
図2は、処理装置102、処理装置104またはその両方の処理装置を実装するために使用することができる例示的処理装置200を示す機能ブロック図である。処理装置200は、バス210、プロセッサー220、メモリー230、ROM(Read Only Memory)240、記憶装置250、入力装置260、出力装置270および通信インターフェース280を含むことができる。バス210は、処理装置200の構成要素間の通信を許可することができる。処理装置200を、単一の処理装置で処理装置102および処理装置104の両方を実装する装置として使用する実施形態では、通信インターフェース280を処理装置200の構成要素の1つとして含むことはできない。
プロセッサー220は、命令を解釈し、実行する、少なくとも1つの従来のプロセッサーまたはマイクロプロセッサーを含むことができる。メモリー230は、RAM(Random Access Memory)または動的記憶装置の他のタイプであって、プロセッサー220による実行のための情報および命令を格納できるものとすることができる。メモリー230はまた、プロセッサー220による命令の実行中に使用される一時変数または他の中間情報を格納することもできる。ROM240は、従来のROMまたは静的記憶装置の他のタイプであって、プロセッサー220のための静的な情報および命令を格納するものを含んでもよい。記憶装置250は、データおよび/または命令を格納するあらゆるタイプのメディアを含むことができる。処理装置200が処理装置102を実装するために使用される場合は、記憶装置250は1つまたは複数のデータベースシステムのデータベースを含むことができる。
入力装置260は、例えば、キーボード、マウス、または他の入力装置などの、ユーザーが処理装置200に対して情報を入力可能な、1つまたは複数の従来の機構を含むことができる。出力装置270は、例えば、画面、プリンターまたは他の出力装置などの、ユーザーに対して情報を出力可能な、1つまたは複数の従来の機構を含むことができる。通信インターフェース280は、処理装置200と他の装置またはネットワークとを通信可能とする、トランシーバーのようなどんな機構も含むことができる。1つの実施形態では、通信インターフェース280は、ネットワーク106へのインターフェースを含むことができる。
処理装置200は、プロセッサー220がコンピューターが読取可能な媒体、例えば、メモリー230、または他の媒体などに含まれる命令の配列を実行すると、それに応答してこれらの機能を行うことができる。これらの命令は、記憶装置250のような他のコンピューターが読取可能な媒体からメモリー230に読み込まれたり、または、通信インターフェース280を介して別の装置から読み込まれたりすることができる。
概要
例示的データベースシステムでは、データはテーブルに格納されると考えることができる。テーブルの1行は、ファイル中の1レコードに相当するものとすることができる。いくつかのデータベースシステムは、テーブルの列中に格納されるデータを、暗号化することができる。このようなデータベースシステムは、もしそのデータが決定論的に暗号化されたものであれば、暗号化された列のデータを検索することができる。すなわち、データベースの暗号化された列の決定論的に暗号化された暗号文に対応する特定の平文値を持つテーブルの行に対しては、検索を行うことができる。しかしながら、上述したように、決定論的な暗号化は、平文項目を、常に同一の対応する暗号文項目に暗号化する。したがって、データパターンは情報漏洩をもたらすと認識され得る可能性がある。
非決定論的暗号化方式は、同一の平文データ項目を異なる暗号文データ項目に暗号化することができる。非決定論的暗号化方式としては、例えば、ランダムな初期化ベクトルを使ったCBC(Cipher-Block Chaining)モード、または、他の非決定論的暗号化方式などがある。例えば、ランダムな初期化ベクトルを使ったCBCモードにおけるブロック暗号の使用に従った非決定論的暗号化は、平文のそれぞれのブロックを、現在のブロックが暗号化される前に、平文の現在のブロックと、前の暗号文ブロックとの排他的論理和によって暗号化することができる。したがって、暗号文データ項目の値は、対応する平文データ項目と暗号鍵だけでなく、他のデータ、例えば、前に暗号化されたデータブロックまたはランダムな初期化ベクトルなどに基づくことができる。
本開示の主題に合致する実施形態はデータベースシステムに関連するものであり、データベースの暗号化された列の非決定論的に暗号化されたデータの検索を行うことができる。1つの実施形態では、コードを、所望の平文データ項目と暗号鍵とに基づいて計算することができる。コードはMAC(Message Authentication Code)、HMAC(Hashed Message Authentication Code)または他のコードとすることができる。コードを、インデックス構造のインデックスとして使用することができ、このインデックス構造は、対応する平文データ項目と暗号鍵とに基づいた、それぞれのコードに従って組織化されたエントリーを持つことができる。
1つの実施形態では、インデックス構造はB-treeまたは他のインデックス構造とすることができる。これらのインデックス構造を、データベースの暗号化された列の暗号化されたデータに対応する、特定の平文データ項目を持つデータベース中の1行または複数行の検索に使用することができる。インデックス構造の各エントリーは、データベースの暗号化された列の対応する非決定論的に暗号化された暗号文項目を含むデータベースの行へアクセスするための、対応する平文データ項目と暗号鍵とに基づいて計算されたコードに対応するインデックス値、および、データを含むことができる。
他の実施形態では、インデックス構造は、対応するハッシュ値に従って、それぞれの項目に対して割り当てられたハッシュバケットを含むことができる。HMACを、それぞれの平文データ項目と暗号鍵とに基づいて計算することができる。ハッシュ値を、算出されたHMACにハッシュ関数を用いることによって生成することができる。ハッシュバケットのそれぞれの項目は、それぞれの平文データ項目に対応する非決定論的に暗号化されたデータ項目を含む、データベースエントリーを得るための情報を含むことができる。
他の実施形態では、データベースの非決定論的に暗号化された列のためのインデックス構造にアクセスすることができる。インデックス構造の各エントリーを、データベースの暗号化された列の、非決定論的に暗号化された暗号文項目に対応する平文データ項目に従って組織化することができる。インデックス構造の各エントリーは、対応する平文データ項目に関連した1つまたは複数の参照を含むことができる。この対応する平文データ項目に関連した1つまたは複数の参照を暗号化することができ、インデックス構造中の他の情報を暗号化しないことができる。検索が実行されると、少なくともインデックス構造の一部をメモリーにロードすることができ、インデックス構造のエントリーの1つにアクセスすることができる。インデックス構造のエントリーの1つへの1つまたは複数の暗号化された参照を、復号化することができ、データベースの暗号化された列の対応する非決定論的に暗号化された暗号文項目を含む行へのアクセスに使用することができる。
いくつかの実施形態では、非決定論的な暗号化および復号化を、対称鍵を使用して行うことができる。すなわち、ある暗号鍵を非決定論的なデータ項目の暗号化に使用することができ、その同一の暗号鍵を暗号化データ項目の復号化に使用することができる。
他の実施形態では、非決定論的な暗号化および復号化を、非対称鍵を使用して行うことができる。すなわち、公開暗号鍵を非決定論的なデータ項目の暗号化に使用することができ、秘密暗号鍵を暗号化データ項目の復号化に使用することができる。
例示的方法
データベースシステムは、特定のレコードまたは行にアクセスするために、データベースの列に格納されたデータを敏速に検索するある種のインデックス手法を典型的に使用する。よく知られている1つのインデックス手法はB-treeの使用を含むが、他の実施形態では他のインデックス手法を使用することもできる。1つの実施形態では、デュプレット(Duplet)と呼ばれる新しいデータタイプを、データベースシステムのインデックス手法と共に使用することができる。デュプレットは対のデータ項目を含むことができる。例えば、デュプレットは、データベースの暗号化された列中に格納された非決定論的に暗号化された暗号文項目に対応する平文項目に基づくコード、および、非決定論的に暗号化された暗号文を含むことができ、この暗号文はデータベースの暗号化された列中に格納された非決定論的に暗号化された暗号文項目と等しいものとすることができる。非決定論的に暗号化された暗号文は、E-値と呼ぶ。
データベースシステムがデータベース中のデータを挿入または更新する場合、データベースシステムは、単一の原子操作において、デュプレットの両方の部分を同期させ続けることができる。すなわち、いくつかの実施形態では、データベースシステムは、デュプレットの一方の部分への書き込みなしでは、デュプレットの他方の部分への書き込みを行うことができない。
本開示の主題に合致する実施形態では、平文項目に基づいたコードは、MACまたは他のコードとすることができる。1つの実施形態では、MACは、平文項目と暗号鍵を使用して計算される一方向のハッシュ値であるHMACとすることができる。暗号鍵は、E-値を形成するために使用される暗号鍵と同値とすることもできるし、E-値を形成するために使用される鍵が保護することができる第2の鍵と同値とすることもできるし、または、完全に独立した鍵と同値とすることもできる。
図3Aは、本開示の主題に合致する実施形態において、インデックス構造として使用される例示的B-treeを示す。例示的B-treeは、インデックスノード302、312、320、326、328、30、332、334、336、338、340、および342を含むことができる。各インデックスノードは、1つまたは複数のエントリーを含むことができる。リーフノードではないインデックスノードは、1つまたは複数の他のインデックスノードへのリンクを含むことができる。例えば、インデックスノード302は複数のエントリーおよび、インデックスノード312、320、326、および328などの他のインデックスノードへのリンクをさらに含むことができる。インデックスノード312は、複数のエントリーおよび、本実施例ではリーフノードとすることができるインデックスノード330、332、および334などの他のインデックスノードへのリンクをさらに含むことができる。インデックスノード320は、少なくとも1つのエントリーおよび、本実施例ではリーフノードとすることができるインデックスノード336、および338へのリンクを含むことができる。インデックスノード326は少なくとも1つのエントリーおよび、本実施例ではリーフノードとすることができるインデックスノード340へのリンクを含むことができる。インデックスノード328は少なくとも1つのエントリーおよび、本実施例ではリーフノードとすることができるインデックスノード342へのリンクを含むことができる。
図3Bは、本開示の主題に合致する図3Aの例示的インデックスノード302、312、および320のさらに詳細な図を示す。本例示的B-treeのンデックス構造では、インデックスノードの各エントリーは、デュプレットを含むことができる。しかしながら、他の実施形態では、デュプレットを、他のインデックス構造と共に使用することができる。図3Bに示すように、各インデックスノードは、1つまたは複数の項目を含むことができ、この1つまたは複数の項目の各々は、デュプレットを含むことができる。例えば、インデックスノード302は、インデックス値とE-値を含むデュプレットを持つ第1の項目、第2の項目、および第3の項目を含むことができる。第1の項目のインデックス値は、例えば33567のようなコードとすることができ、第1の平文項目に基づいたMACまたはHMACとすることができる。第1の項目のE-値、hdfyjdは、鍵k1により暗号化された第1の平文項目に対応する。第2の項目のインデックス値は、例えば58957のようなコードとすることができ、第2の平文項目に基づいたMACまたはHMACとすることができる。第2の項目のE-値、olhdrsは、鍵k1により暗号化された第2の平文項目に対応する。第3の項目のインデックス値は、例えば97460のようなコードとすることができ、第3の平文項目に基づいたMACまたはHMACとすることができる。第3の項目のE-値、thdksimは、鍵k1により暗号化された第3の平文項目に対応する。図3Bに示すように、インデックスノード312は、2つのエントリーを含むことができる。インデックスノード312の第1のエントリーは、第4の平文項目に基づいたインデックス値、16485および、鍵k1により暗号化された第4の平文項目に対応するE-値、ifjtrslkmを持つデュプレットを含むことができる。インデックスノード312の第2のエントリーは、第5の平文項目に基づいたインデックス値、20945および、鍵k1により暗号化された第5の平文項目に対応するE-値、eswghを持つデュプレットを含むことができる。インデックスノード320はデュプレットを含む1つのエントリーを含むことができる。このデュプレットは、第6の平文項目に基づいたインデックス値、46789および、鍵k1により暗号化された第6の平文項目に対応するE-値、dfthvcを含むことができる。
インデックスノード302は、リンク304、リンク306、リンク308、およびリンク310を含むことができる。リンク304は、対応するインデックス値がインデックスノード302のインデックス値33567よりも小さいエントリーを持つ、インデックスノード312へのリンクとすることができる。リンク306は、対応するインデックス値がインデックスノード302のインデックス値33567よりも大きく58957よりも小さいエントリーを持つ、インデックスノード320へのリンクである。リンク308は、インデックスノード302を、それぞれのインデックス値がインデックスノード302のインデックス値58957よりも大きく97460よりも小さい1つまたは複数のエントリーを持つ、インデックスノード326に連結することができる。リンク310は、インデックスノード302を、それぞれのインデックス値がインデックスノード302のインデックス値97460よりも大きい1つまたは複数のエントリーを持つ、インデックスノード328に連結することができる。
さらに、インデックスノード312は、インデックスノード312のインデックス値16485よりも小さいインデックス値を持つ、1つまたは複数のエントリーを含むインデックスノード330へのリンク314、インデックスノード312のインデックス値16485よりも大きく20945よりも小さいインデックス値を含む、1つまたは複数のエントリーを持つインデックスノード332へのリンク316、および、インデックスノード312のインデックス値20945よりも大きいインデックス値を含む、1つまたは複数のエントリーを含むインデックスノード334へのリンク318を含むことができる。インデックスノード320は、インデックスノード320のインデックス値46789よりも小さいインデックス値を含む、1つまたは複数のエントリーを含むことができるインデックスノード336へのリンク322、および、インデックスノード320のインデックス値46789よりも大きいインデックス値を含む、1つまたは複数のエントリーを含むことができるインデックスノード338へのリンク324を含むことができる。
各インデックスノードエントリーは、対応する平文データ項目のデータタイプを示す情報(図示せず)および、データベースの暗号化された列の対応する非決定論的に暗号化された暗号文への参照、またはポインター(図示せず)を含むことができる。さらに、各インデックスノードは、図3Bの例示的インデックス構造に示される以外にも、異なる複数の項目を含むことができる。例えば、インデックスノード302、インデックスノード312、またはインデックスノード320は、図3Bに示される以外にも、それぞれのインデックスノードの中に含まれる異なる複数の項目を含むことができる。
図3Aおよび図3Bのインデックス構造は、例示的インデックス構造である。図3Bは、インデックス値およびE-値を含む例示的インデックス構造の各項目を示すが、他の実施形態では、インデックス構造の各項目は、個別のデータ構造中に存在している対応するE-値がある、インデックス値を含むことができる。例えば、図3Cの例示的インデックスノード302’は図3Bのインデックスノード302と似ている。しかしながら、インデックスノード302’の各項目は、この例では、インデックス値、およびデータ構造360に含まれた対応するE-値への参照またはポインターであるデュプレットの第1のエントリーを含むことができる。データ構造360は、テーブル、配列、または他のデータ構造とすることができる。データ構造306は、インデックスノード302’に対応するE-値を、データ構造360中の連続した位置に示しているが、E-値を、データ構造360中の連続していない、または隣接していない位置に配置することもできる。
本開示の主題に合致する実施形態では、例えば、図3Aから図3Cのインデックス構造などのインデックス構造を、処理装置102により、インデックスノードへの項目の追加により、または、新規のインデックスノードの追加により、更新し、新規の項目と図3Aから図3Cに示された方法において機能するインデックス構造中の新規の項目に対応するリンクを含むようにすることができる。すなわち、インデックス構造中のあるノードに追加されたリーフではない各新規の項目は、それぞれ、その追加した項目のインデックス値より小さなインデックス値を持つ1つまたは複数の項目を含むインデックスノードを指し示すリンク、および、それぞれ、その追加した項目のインデックス値より大きなインデックス値を持つ1つまたは複数の項目を含むインデックスノードを指し示す第2のリンクを持つことができる。さらに、新しいインデックスノードがインデックス構造に追加される場合は、処理装置102は、新しいインデックスノードを指し示すための、インデックス構造中の既存のリンクのうち少なくとも1つを更新することができる。処理装置102がインデックス構造中に追加することができる各新規の項目は、それぞれのインデックス値と、対応するE-値、または、それぞれのインデックス値および対応するE-値への参照のどちらかを含むことができる。対応するE-値への参照を、インデックス構造の項目中に格納する場合は、対応するE-値を、別のデータ構造、例えば、テーブル、配列、またはその他のデータ構造などに格納することができる。
図4は、本開示の主題に合致する実施形態において、例えば、図3Aから図3Cの例示的インデックス構造のようなインデックス構造を使用して、データベース中の非決定論的に暗号化されたデータを検索するための例示的処理を示すフローチャートである。処理装置102は始めに、処理装置102のデータベース中に含まれることができる所望のデータ項目の要求を受け付けることができる(アクション402)。この要求は、例えば、処理装置102のユーザーまたはアプリケーションなどの要求側からであっても良く、または、他の処理装置であって、例えば、ネットワーク106などのネットワークを介して処理装置102と通信することができる例えば処理装置104などの他の処理装置のユーザーまたはアプリケーションなどの要求側からであっても良い。この要求は、検索要求または所望のデータ項目を見つけることを含む他の要求とすることができ、所望のデータ項目の平文形式を含むことができる。与えられた所望の平文データ項目に対して、処理装置102は、要求側に関しては意識させないように、例えば、所望の平文データ項目と暗号鍵とに基づくMACまたはHMACのようなコードとすることができる、インデックス値を計算することができる(アクション404)。処理装置102は次に、所望の平文データ項目に対応するデータを探し出す試みにおいて、データベースのインデックス構造にアクセスし、検索することができる(アクション406)。インデックス構造が例えばB-treeである場合は、処理装置102は、所望のデータを探し出す試みにおいて、B-tree内を走査するために、B-treeのインデックスノードの中でデュプレットのインデックス値を調べることができる。
処理装置102は次に、所望の項目が見つかったかどうかを判断することができる(アクション408)。所望の項目が見つからなかった場合は、処理装置102は次に、所望のデータがデータベース内で見つけられなかった指示を返すことができる(アクション422)。そうでなければ、処理装置102は、アクション404にて計算されたインデックス値に対応するデュプレットのE-値を得ることができる(アクション410)。処理装置102は次に、対応する平文をもたらすために、E-値を復号化することができる(アクション412)。この対応する平文を、アクション402にて与えられた所望のデータ項目の平文形式と比較することができる(アクション414)。処理装置102が、比較した平文が等しいと判断した場合は、インデックス構造の中で見つかった項目に対応するデータを、データベースから得ることができ、要求側に返すことができる(アクション416)。すなわち、インデックス構造の見つかった項目は、データベース中に格納された対応するデータへの参照を含むことができる。処理装置102は次に、見つかったデータ項目が一意であるか否かを判断することができる(アクション418)。1つの実施形態では、処理装置102は、見つかったデータ項目が一意であるか否かを、見つかったデータ項目がデータベース中の一次キーであるか否かに基づいて、データベースまたはインデックス構造のエントリー中に含まれることができる唯一の標識に基づいて、または他の基準に基づいて判断することができる。処理装置102が、見つかったデータ項目がデータベース中で一意であると判断した場合は、処理は完了する。そうでなければ、処理装置102は、インデックス値に対応する次の項目をインデックス構造から検索することができる(アクション420)。処理装置102は、アクション408から424を繰り返すことができる。
アクション414にて行われた比較が、平文が一致しないことを指し示す場合は、処理装置102は次に、ハッシュの衝突が生じたと判断することができる。すなわち、同一の暗号鍵を使用した場合に、二つの異なる平文項目から、同一のインデックス値が生成される。このような発生の可能性は稀であるが、しかし起こり得る。処理装置102がハッシュの衝突が生じたと判断した場合、処理装置102は、ハッシュの衝突を解決する、あらゆる複数のよく知られた方法の1つを使用することができる(アクション424)。例えば、1つの実施形態では、一意なコードまたはインデックス値を持つ項目(ハッシュの衝突を指し示す)は、インデックス構造のノードの隣接した位置に格納されている場合がある。ハッシュの衝突が生じたと判断した場合は、処理装置102は、該当のノード中で隣接した項目を検索し、ノードの中で隣接した項目のいずれかが、復号したときに所望の項目の平文と一致するE-値と関連するか否かを判断することができる。ハッシュの衝突が解決した時点で、処理装置102はアクション408から414を繰り返すことができる。
図5は、本開示の主題に合致する他の実施形態にて使用されることができる他の例示的インデックス構造を示す。図5は例示的B-treeインデックス構造を示すが、他の実施形態において他のインデックス構造を使用することができる。図5の右側に位置するインデックス構造502の一部は、メモリーに存在している場合のインデックス構造502のインデックスノードそのものを示す。メモリーのインデックス構造502は、インデックス値として平文項目を使用して作られたノードを含むことができる。各ノードは、インデックス値または平文項目、ならびに平文項目に関係する他のデータを、他の非暗号化されたデータと共に含むことができる。例えば、メモリーにおいてノード502は、2つの項目を含むことができる。第1の項目は、インデックス値および平文項目に関係する他のデータのように個別の平文項目である、平文-1と、第1の項目の他の暗号化されていない情報とすることができる、非暗号化データ-1を含むことができる。ノード502の第2の項目は、インデックス値および平文項目に関係する他のデータのように、他の個別の平文項目である、平文-2と、第2の項目の他の暗号化されていない情報とすることができる、非暗号化データ-2を含むことができる。例えば、インデックス構造をデータベース中の従業員名の検索のために構築する場合、インデックス値は、従業員名とすることができる。このようなインデックス構造における検索を、インデックス構造のノード中に所望の名称を見つけるまで、または、所望の名称は見つからない場合は所望の名称がデータベース中には含まれないと判断することができるまで、インデックス構造を走査して実行することができる。
図5の左側は、データベースシステムの中で記憶装置に保存された場合のインデックス構造502そのものを示す。インデックス構造502の保存されたバージョンは、すべての平文参照の暗号化されたバージョン、例えばノード502の第1の項目の暗号化テキスト−1と、ノード502の第2の項目の暗号化テキスト−2を含むことができる。すなわち、インデックス構造の構成が変化しない間は、インデックス値を含めたすべての平文参照を、暗号化された形式で保存することができる。言い換えると、インデックスノードにおける項目同士の順序とノード間のリンケージの順序は平文インデックス値に従って配置されるが、インデックス値を含むすべての平文参照は暗号化された形式で保存されることができる。さらに、例えば平文統計値のようなインデックスに使用することができる平文項目に関係する他のどのような情報も、暗号化することができる。インデックス構造に使用される、平文項目に関係する情報を含む平文参照を、データベース中の対応するデータの暗号化に使用した同一の鍵により、または他の鍵により、保存されたインデックス構造中で暗号化することができる。
図5は、2つの項目を持つインデックス構造の例示的ノードを示す。他の実施形態では、インデックス構造のノード内に、さらに多くの項目を格納することもできるし、少ない項目を格納することもできる。
図6は、本開示の主題に合致する実施形態において、例えば図5の例示的インデックス構造のような、データベース中の非決定論的に暗号化されたデータを検索するインデックス構造を使用する例示的プロセスを示すフローチャートである。処理装置102は始めに、処理装置102のデータベース中に含まれることができる所望のデータ項目の要求を受け付けることができる(アクション602)。この要求は、例えば、処理装置102を介してユーザーまたはアプリケーションなどの要求側により直接作られることもできるし、または、ネットワーク106などのネットワークを介する処理装置104などの他の処理装置を介してユーザーまたはアプリケーションなどの要求側により作られることができる。この要求は検索要求とすることができ、所望のデータ項目の平文形式を含むことができる。処理装置102は次に、所望のデータ項目に対応するデータベース中のデータの検索を実行するために、データベースのインデックス構造にアクセスすることができる(アクション604)。処理装置102は次に、メモリー230のような動的記憶装置に少なくともインデックス構造の一部をロードすることができる(アクション606)。処理装置102は、ロードしたインデックス構造の一部の中の暗号化された参照を、復号化し(アクション608)、かつデータベース中の1つまたは複数の非決定論的に暗号化されたデータを探し、アクセスするために、ロードしたインデックス構造の一部を使用することができる(アクション610)。
1つの実施形態では、処理装置102は、インデックスページまたはインデックス構造の一部をメモリー230にロードすると、インデックス構造の暗号化された参照を復号化することができる。このような実施形態では、対応する平文参照およびインデックス構造からの他の情報を使用して、検索を実行することができる。他の実施形態では、インデックス構造からの平文参照を、例えば、インデックスからの平文参照が必要になったときなどのように、検索しながら復号化することができる。
図6を参照して上記で記載した例示的方法を、例えば、一致検索(equality search)のような、特定のデータ項目に関係するデータの検索の実行に使用することができるし、例えば、範囲検索(range search)のような、データ値のレンジに関係するデータの検索の実行に使用することができるし、または、例えば、あいまい検索(fuzzy search)のような、特定のデータ項目に類似する情報の検索の実行に使用することができる。
本開示の主題に合致する実施形態において使用することができる他の例示的方法を、図7を参照して説明する。この方法を、ハッシュに基づいたインデックスをサポートするデータベースと共に使用することができる。図7の例示的方法によれば、処理装置102は始めに、検索要求または平文項目に関係するデータベースのデータを見つける他の要求を受け付けることができる(アクション702)。この要求は、例えば、処理装置102を介してユーザーまたはアプリケーションなどの要求側により直接作られることもできるし、または、ネットワーク106などのネットワークを介する処理装置104などの他の処理装置を介してユーザーまたはアプリケーションなどの要求側により作られることができる。処理装置102は、平文項目について暗号鍵を使用して、HMACを計算することができる(アクション704)。処理装置102は次に、計算されたHMACのハッシュ値を計算して、ハッシュ値を生成することができる(アクション706)。処理装置102はハッシュに基づいたインデックス構造710中で、ハッシュバケットのインデックス値としてハッシュ値を使用して、ハッシュに基づいたインデックス構造710の索引のついたエントリーに基づいた、要求された平文データ項目に関係するデータを得ることができる(アクション708)。ハッシュ値は平文項目に基づいてHMACから計算されるので、データの対応する平文項目のそれぞれのHMACに従ってデータの平文項目に対応する項目に対して、ハッシュに基づいたインデックスのハッシュバケットを割り当てることができる。少なくともいくつかの実施形態では、ハッシュに基づいたインデックス構造710は、要求された平文データ項目に関係する暗号化された情報を持つデータベース中の項目へのリンクを含むことができる。暗号化された情報は、非決定論的に暗号化されたデータを含むことができる。
図7に示したハッシュに基づいた例示的インデックス構造手法は、インデックスハッシュ関数に従って、ハッシュバケットの処理の結果として生じる可能性がある情報漏えいを、できる限り防ぐ。
構造上の特徴および/または方法論的な動作について、具体的な言葉で主題の事項を記載してきたが、添付した特許請求の範囲の主題は、必ずしも前述の具体的な特徴または動作に限定されない、と理解すべきである。 むしろ、前述の具体的な特徴および動作は、本特許請求の範囲を実施するための実施例の形態として明らかにしたものである。
上記の説明は具体的な詳細を含むことができるが、いかなる方法においても、本特許請求の範囲を限定する事項として解すべきでない。記載した実施形態の他の構成は、本開示の範囲の一部である。さらに、本開示の主題に合致する実施形態は、記載したよりも多くの、または、記載したより少ない動作を含むことができ、または、記載した順序とは異なる順で動作を実施することもできる。したがって、与えられたいずれの具体的な実施例ではなく、添付の特許請求の範囲およびそれらの法的な等価物だけが、本発明を唯一定義すべきである。

Claims (7)

  1. データベースシステム中の非決定論的に暗号化されたデータの検索を行う方法であって、当該方法は、記憶装置に記憶されたコンピュータ実行可能命令を処理装置が実行することによって実施され、
    ユーザーによって与えられた所望の平文データ項目のためのインデックス値を決定するステップであって、
    前記所望の平文データ項目および暗号鍵に基づいてMACを計算するステップと、
    前記計算されたMACにハッシュ関数を用いて、前記インデックス値を決定するステップと
    を含む、決定するステップと、
    前記インデックス値をインデックス構造中の対応するエントリーへのアクセスに使用し、前記所望の平文データ項目に対応する非決定論的に暗号化された暗号文を含むデータベースエントリーを得るステップであって、前記インデックス構造は複数の対データ項目を含み、各対データ項目は、第1の項目と、第2の項目または前記第2の項目への参照のいずれかと、を含み、前記第1の項目は、前記暗号鍵を使用して、それぞれの平文データ項目にHMACを適用することに基づいた値を持つインデックスデータ項目であり、前記第2の項目は、前記それぞれの平文データ項目に対応する非決定論的に暗号化された暗号文である、得るステップと、
    前記複数の対データ項目中の対応する1つの対データ項目の第2の項目を復号化するステップと、
    前記復号化した第2の項目と前記所望の平文データ項目とを比較して、ハッシュの衝突が生じたか否かを判断するステップと
    を含むことを特徴とする方法。
  2. 前記インデックス構造は、対応する平文データ項目のHMACに従ったそれぞれの項目に対して割り当てられた複数のハッシュバケットを含むことを特徴とする請求項1に記載の方法。
  3. データベースシステム中の非決定論的に暗号化されたデータの検索を実行する遠隔データベースを提供する方法であって、当該方法は、記憶装置に記憶されたコンピュータ実行可能命令を処理装置が実行することによって実施され、
    ネットワークを介して要求側から、所望の平文データ項目に対応するデータベースエントリーのための前記データベースシステム中の非決定論的に暗号化されたデータを検索する遠隔要求を受け付けるステップと、
    前記所望の平文データ項目および暗号鍵に基づいてコードを計算するステップと、
    前記コードをインデックス構造に対するインデックスとして使用し、前記所望の平文データ項目に対応する前記データベースエントリーを得るステップであって、前記インデックス構造は、対応するハッシュ値に従ったそれぞれの項目に対する複数のハッシュバケットを含み、前記対応するハッシュ値は、対応する平文データ項目および前記暗号鍵に基づいてHMACを計算するステップと、前記計算されたHMACにハッシュ関数を用いて、前記対応するハッシュ値を生成するステップとによって決定される、得るステップと、
    前記コードに対応する前記インデックス構造中のエントリーの非決定論的に暗号化された項目を復号化するステップと、
    前記復号化した項目と前記所望の平文データ項目とを比較して、ハッシュの衝突が生じたか否かを判断するステップと、
    前記要求側に対して、前記データベースシステムから得た前記所望の平文データ項目に対応するデータベースエントリーを含む返却データを返却するステップと
    を含むことを特徴とする方法。
  4. コードを計算する前記ステップは、HMACを計算するステップをさらに含むことを特徴とする請求項3に記載の方法。
  5. 前記インデックス構造は複数の項目をさらに含み、各項目は、少なくともデュプレットの第1の項目と、前記デュプレットの第2の項目または前記第2の項目への参照のいずれかと、を含み、前記第1の項目は、それぞれの平文データ項目に対応するコードを含み、前記第2の項目は、前記それぞれの平文データ項目に対応する非決定論的に暗号化された暗号文を含むことを特徴とする請求項3に記載の方法。
  6. 前記インデックス構造はB-treeを含むことを特徴とする請求項3に記載の方法。
  7. データベースシステム中の非決定論的に暗号化されたデータの検索を行う方法を処理装置に実行させるためのコンピュータ実行可能命令を記録したコンピュータ読み取り可能な記録媒体であって、前記方法は、
    所望の平文データ項目および暗号鍵に基づいてMACを計算するステップと、
    前記計算されたMACにハッシュ関数を用いて、前記インデックス値を決定するステップと、
    前記インデックス値をインデックス構造中の対応するエントリーへのアクセスに使用し、前記所望の平文データ項目に対応する非決定論的に暗号化された暗号文を含むデータベースエントリーを得るステップであって、前記インデックス構造は複数の対データ項目を含み、各対データ項目は、第1の項目と、第2の項目または前記第2の項目への参照のいずれかと、を含み、前記第1の項目は、前記暗号鍵を使用して、それぞれの平文データ項目にHMACを適用することに基づいた値を持つインデックスデータ項目であり、前記第2の項目は、前記それぞれの平文データ項目に対応する非決定論的に暗号化された暗号文である、得るステップと、
    前記インデックス値を使用して前記インデックス構造中の前記対応するエントリーの対データ項目の第2の項目を得るステップと、
    前記第2の項目を復号化するステップと、
    前記復号化した第2の項目と前記所望の平文データ項目とを比較して、ハッシュの衝突が生じたか否かを判断するステップと
    を含むことを特徴とするコンピュータ読み取り可能な記録媒体。
JP2009527488A 2006-09-06 2007-08-24 暗号化されたデータの検索 Expired - Fee Related JP4810611B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/516,267 US7689547B2 (en) 2006-09-06 2006-09-06 Encrypted data search
US11/516,267 2006-09-06
PCT/US2007/076758 WO2008030717A1 (en) 2006-09-06 2007-08-24 Encrypted data search

Publications (3)

Publication Number Publication Date
JP2010503118A JP2010503118A (ja) 2010-01-28
JP2010503118A5 JP2010503118A5 (ja) 2010-10-14
JP4810611B2 true JP4810611B2 (ja) 2011-11-09

Family

ID=39153188

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009527488A Expired - Fee Related JP4810611B2 (ja) 2006-09-06 2007-08-24 暗号化されたデータの検索

Country Status (7)

Country Link
US (1) US7689547B2 (ja)
EP (1) EP2064638B1 (ja)
JP (1) JP4810611B2 (ja)
KR (1) KR101403745B1 (ja)
CN (1) CN101512525B (ja)
TW (1) TWI372345B (ja)
WO (1) WO2008030717A1 (ja)

Families Citing this family (39)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080082837A1 (en) 2006-09-29 2008-04-03 Protegrity Corporation Apparatus and method for continuous data protection in a distributed computing network
US7809142B2 (en) * 2007-06-19 2010-10-05 International Business Machines Corporation Data scrambling and encryption of database tables
US10262136B1 (en) * 2008-08-04 2019-04-16 Zscaler, Inc. Cloud-based malware detection
CN101770462A (zh) * 2008-12-30 2010-07-07 日电(中国)有限公司 用于密文索引和检索的装置和方法
CN101788985B (zh) * 2009-01-23 2013-01-23 日电(中国)有限公司 对加密倒排索引表进行k匿名更新的方法和装置
US9684710B2 (en) * 2009-05-28 2017-06-20 Microsoft Technology Licensing, Llc Extending random number summation as an order-preserving encryption scheme
JP5411034B2 (ja) * 2010-03-19 2014-02-12 株式会社日立ソリューションズ データベース暗号化システム及び方法
US8533489B2 (en) * 2010-09-29 2013-09-10 Microsoft Corporation Searchable symmetric encryption with dynamic updating
WO2012081450A1 (ja) * 2010-12-13 2012-06-21 日本電気株式会社 暗号化データベース管理システム、クライアントおよびサーバ、自然結合方法およびプログラム
EP2738689A4 (en) 2011-07-29 2015-04-29 Nec Corp SYSTEM FOR GENERATING A DISPLAY OF INFORMATION RESISTANT INDEX, INDEX GENERATING DEVICE AND METHOD THEREFOR
US8832427B2 (en) 2012-03-30 2014-09-09 Microsoft Corporation Range-based queries for searchable symmetric encryption
EP2885732B1 (en) * 2012-08-15 2018-04-04 Visa International Service Association Searchable encrypted data
US8943331B2 (en) * 2012-12-28 2015-01-27 Alcatel Lucent Privacy-preserving database system
WO2014182419A1 (en) * 2013-05-06 2014-11-13 Thomson Reuters South Asia Private Limited Offline searching of encrypted content
US10122714B2 (en) 2013-08-01 2018-11-06 Bitglass, Inc. Secure user credential access system
US9553867B2 (en) 2013-08-01 2017-01-24 Bitglass, Inc. Secure application access system
US9552492B2 (en) * 2013-08-01 2017-01-24 Bitglass, Inc. Secure application access system
US9646166B2 (en) 2013-08-05 2017-05-09 International Business Machines Corporation Masking query data access pattern in encrypted data
US9852306B2 (en) 2013-08-05 2017-12-26 International Business Machines Corporation Conjunctive search in encrypted data
CN104462990B (zh) * 2013-09-13 2019-02-26 腾讯科技(深圳)有限公司 字符串加解密方法和装置
WO2016018298A1 (en) * 2014-07-30 2016-02-04 Hewlett-Packard Development Company, L.P. Key search token for encrypted data
US10853515B2 (en) 2014-09-15 2020-12-01 Salesforce.Com, Inc. Secure storage and access to sensitive data
US10013440B1 (en) * 2014-10-31 2018-07-03 Amazon Technologies, Inc. Incremental out-of-place updates for index structures
CN104572827B (zh) * 2014-12-08 2017-12-15 北京工业大学 一种基于跨明文与密文的混合搜索系统
JP6441160B2 (ja) 2015-04-27 2018-12-19 株式会社東芝 秘匿化装置、復号装置、秘匿化方法および復号方法
EP3292505A4 (en) * 2015-05-07 2018-06-13 Zerodb, Inc. Zero-knowledge databases
KR101703828B1 (ko) * 2015-10-15 2017-02-08 한국전자통신연구원 암호화된 데이터에 대한 색인 태그 생성 방법, 색인 태그를 이용한 암호화된 데이터 검색 방법 및 이를 위한 데이터베이스 장치
US10691817B2 (en) 2016-05-06 2020-06-23 ZeroDB, Inc. Encryption for distributed storage and processing
SG11201811425TA (en) * 2016-09-22 2019-01-30 Visa Int Service Ass Techniques for in-memory key range searches
US10482279B2 (en) * 2016-11-08 2019-11-19 Microsoft Technology Licensing, Llc Pattern-less private data detection on data sets
US10360390B2 (en) * 2016-12-14 2019-07-23 Sap Se Oblivious order-preserving encryption
PT3388969T (pt) 2017-04-13 2020-01-16 Dswiss Ag Sistema de pesquisa
WO2019053788A1 (ja) * 2017-09-12 2019-03-21 三菱電機株式会社 データ処理装置、データ処理方法及びデータ処理プログラム
CN110858251B (zh) * 2018-08-22 2020-07-21 阿里巴巴集团控股有限公司 数据查询方法和装置
US10783270B2 (en) 2018-08-30 2020-09-22 Netskope, Inc. Methods and systems for securing and retrieving sensitive data using indexable databases
US11003783B1 (en) * 2018-09-21 2021-05-11 Amazon Technologies, Inc. Searchable encrypted data stores
CA3126089C (en) 2019-03-01 2023-06-20 Cyborg Inc. System and method for statistics-based pattern searching of compressed data and encrypted data
EP4154147A1 (en) * 2020-06-29 2023-03-29 Huawei Technologies Co., Ltd. Data storage server and client devices for securely storing data
CN112182616B (zh) * 2020-09-29 2024-05-17 江苏大周基业智能科技有限公司 核心表数据的密码技术安全控制方法及系统

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0991303A (ja) * 1995-09-22 1997-04-04 Fujitsu Ltd データ管理装置
JPH1166095A (ja) * 1997-08-25 1999-03-09 Mitsubishi Electric Corp データ管理装置
JPH11143780A (ja) * 1997-11-05 1999-05-28 Hitachi Ltd データベースにおける秘密情報管理方法およびデータベースの秘密情報管理装置
US20020112152A1 (en) * 2001-02-12 2002-08-15 Vanheyningen Marc D. Method and apparatus for providing secure streaming data transmission facilities using unreliable protocols
US6446052B1 (en) * 1997-11-19 2002-09-03 Rsa Security Inc. Digital coin tracing using trustee tokens
US6928428B1 (en) * 2000-11-27 2005-08-09 Microsoft Corporation Distributed confidential contextual querying

Family Cites Families (39)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4827508A (en) * 1986-10-14 1989-05-02 Personal Library Software, Inc. Database usage metering and protection system and method
CA2000006C (en) * 1989-01-23 1994-07-12 Walter W. Chang Combinatorial signatures for data encoding and searching
US5293576A (en) * 1991-11-21 1994-03-08 Motorola, Inc. Command authentication process
US5475826A (en) * 1993-11-19 1995-12-12 Fischer; Addison M. Method for protecting a volatile file using a single hash
EP0734624A4 (en) * 1993-12-01 1999-10-06 William Micheal Raike NON-DETERMINED PUBLIC KEY ENCRYPTION SYSTEM
US5495533A (en) * 1994-04-29 1996-02-27 International Business Machines Corporation Personal key archive
US5990810A (en) * 1995-02-17 1999-11-23 Williams; Ross Neil Method for partitioning a block of data into subblocks and for storing and communcating such subblocks
US5742807A (en) * 1995-05-31 1998-04-21 Xerox Corporation Indexing system using one-way hash for document service
US5701469A (en) * 1995-06-07 1997-12-23 Microsoft Corporation Method and system for generating accurate search results using a content-index
US5854916A (en) * 1995-09-28 1998-12-29 Symantec Corporation State-based cache for antivirus software
US5864852A (en) * 1996-04-26 1999-01-26 Netscape Communications Corporation Proxy server caching mechanism that provides a file directory structure and a mapping mechanism within the file directory structure
US5692124A (en) * 1996-08-30 1997-11-25 Itt Industries, Inc. Support of limited write downs through trustworthy predictions in multilevel security of computer network communications
JP3022405B2 (ja) * 1997-06-03 2000-03-21 日本電気株式会社 画像メモリ制御装置
US6052686A (en) * 1997-07-11 2000-04-18 At&T Corporation Database processing using schemas
US6012057A (en) * 1997-07-30 2000-01-04 Quarterdeck Corporation High speed data searching for information in a computer system
US6233685B1 (en) * 1997-08-29 2001-05-15 Sean William Smith Establishing and employing the provable untampered state of a device
JP3849279B2 (ja) * 1998-01-23 2006-11-22 富士ゼロックス株式会社 インデクス作成方法および検索方法
JP3457184B2 (ja) * 1998-06-25 2003-10-14 シャープ株式会社 検索装置及びその制御プログラムを記憶した媒体
US7152165B1 (en) * 1999-07-16 2006-12-19 Intertrust Technologies Corp. Trusted storage systems and methods
US6601026B2 (en) * 1999-09-17 2003-07-29 Discern Communications, Inc. Information retrieval by natural language querying
US6738766B2 (en) * 2000-02-02 2004-05-18 Doongo Technologies, Inc. Apparatus and methods for providing personalized application search results for wireless devices based on user profiles
US7412462B2 (en) * 2000-02-18 2008-08-12 Burnside Acquisition, Llc Data repository and method for promoting network storage of data
US7043641B1 (en) * 2000-03-08 2006-05-09 Igt Encryption in a secure computerized gaming system
US6968456B1 (en) * 2000-08-08 2005-11-22 Novell, Inc. Method and system for providing a tamper-proof storage of an audit trail in a database
US7362868B2 (en) * 2000-10-20 2008-04-22 Eruces, Inc. Hidden link dynamic key manager for use in computer systems with database structure for storage of encrypted data and method for storage and retrieval of encrypted data
AU2002249939A1 (en) * 2001-01-11 2002-07-24 Z-Force Communications, Inc. File switch and switched file system
AU2002234258A1 (en) * 2001-01-22 2002-07-30 Sun Microsystems, Inc. Peer-to-peer network computing platform
US7062490B2 (en) * 2001-03-26 2006-06-13 Microsoft Corporation Serverless distributed file system
GB2377514B (en) * 2001-07-05 2005-04-27 Hewlett Packard Co Document encryption
US7266699B2 (en) * 2001-08-30 2007-09-04 Application Security, Inc. Cryptographic infrastructure for encrypting a database
US7269729B2 (en) * 2001-12-28 2007-09-11 International Business Machines Corporation Relational database management encryption system
US20030159054A1 (en) * 2002-02-19 2003-08-21 Minebea Co. Reconfigurable secure input device
US7287033B2 (en) * 2002-03-06 2007-10-23 Ori Software Development, Ltd. Efficient traversals over hierarchical data and indexing semistructured data
JP4077329B2 (ja) * 2003-01-31 2008-04-16 株式会社東芝 トランザクション処理システム、並行制御方法及びプログラム
US20030177115A1 (en) * 2003-02-21 2003-09-18 Stern Yonatan P. System and method for automatic preparation and searching of scanned documents
US20050004924A1 (en) * 2003-04-29 2005-01-06 Adrian Baldwin Control of access to databases
US10339336B2 (en) * 2003-06-11 2019-07-02 Oracle International Corporation Method and apparatus for encrypting database columns
US7743069B2 (en) * 2004-09-03 2010-06-22 Sybase, Inc. Database system providing SQL extensions for automated encryption and decryption of column data
US7571490B2 (en) * 2004-11-01 2009-08-04 Oracle International Corporation Method and apparatus for protecting data from unauthorized modification

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0991303A (ja) * 1995-09-22 1997-04-04 Fujitsu Ltd データ管理装置
JPH1166095A (ja) * 1997-08-25 1999-03-09 Mitsubishi Electric Corp データ管理装置
JPH11143780A (ja) * 1997-11-05 1999-05-28 Hitachi Ltd データベースにおける秘密情報管理方法およびデータベースの秘密情報管理装置
US6446052B1 (en) * 1997-11-19 2002-09-03 Rsa Security Inc. Digital coin tracing using trustee tokens
US6928428B1 (en) * 2000-11-27 2005-08-09 Microsoft Corporation Distributed confidential contextual querying
US20020112152A1 (en) * 2001-02-12 2002-08-15 Vanheyningen Marc D. Method and apparatus for providing secure streaming data transmission facilities using unreliable protocols

Also Published As

Publication number Publication date
KR101403745B1 (ko) 2014-06-03
WO2008030717A1 (en) 2008-03-13
TWI372345B (en) 2012-09-11
CN101512525A (zh) 2009-08-19
US20080059414A1 (en) 2008-03-06
EP2064638B1 (en) 2019-03-27
EP2064638A1 (en) 2009-06-03
US7689547B2 (en) 2010-03-30
JP2010503118A (ja) 2010-01-28
CN101512525B (zh) 2012-10-03
TW200817949A (en) 2008-04-16
EP2064638A4 (en) 2016-05-04
KR20090048623A (ko) 2009-05-14

Similar Documents

Publication Publication Date Title
JP4810611B2 (ja) 暗号化されたデータの検索
JP5156751B2 (ja) レンジド・ルックアップ
US10985902B2 (en) Dynamic symmetric searchable encryption
US7519835B2 (en) Encrypted table indexes and searching encrypted tables
Iyer et al. A framework for efficient storage security in RDBMS
CN104620533B (zh) 用于数据库查询的同态加密
US7930560B2 (en) Personal information management system, personal information management program, and personal information protecting method
JP2010506289A (ja) 暗号化されたコラムのインデックス構築方法
Handa et al. Searchable encryption: a survey on privacy‐preserving search schemes on encrypted outsourced data
US20130097430A1 (en) Encrypting data and characterization data that describes valid contents of a column
JP5140026B2 (ja) データベース処理方法、データベース処理プログラム、および、暗号化装置
US20190363878A1 (en) Value comparison server, value comparison encryption system, and value comparison method
Wang et al. SCALE: An efficient framework for secure dynamic skyline query processing in the cloud
Liu Securing outsourced databases in the cloud
Zhang et al. Towards efficient and privacy-preserving user-defined skyline query over single cloud
JP4594078B2 (ja) 個人情報管理システムおよび個人情報管理プログラム
US20200210595A1 (en) CryptoJSON Indexed Search Systems and Methods
Wang et al. Differential-linear cryptanalysis of the lightweight cryptographic algorithm KNOT
Almarwani et al. Efficient and Secure Encryption Adjustment for JSON Data.
Heidinger et al. Efficient and secure exact-match queries in outsourced databases
Rajendran et al. An Efficient Ranked Multi-Keyword Search for Multiple Data Owners Over Encrypted Cloud Data: Survey
Almarwani et al. Zero Update Encryption Adjustment on Encrypted Database Queries
Heidinger et al. Privacy-aware folksonomies
Jang et al. An effective queries execution algorithm on the encrypted database

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100824

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100824

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20110620

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20110701

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20110722

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110822

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140826

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees