JP2016502153A - プライバシー保護データベースシステム - Google Patents

プライバシー保護データベースシステム Download PDF

Info

Publication number
JP2016502153A
JP2016502153A JP2015550487A JP2015550487A JP2016502153A JP 2016502153 A JP2016502153 A JP 2016502153A JP 2015550487 A JP2015550487 A JP 2015550487A JP 2015550487 A JP2015550487 A JP 2015550487A JP 2016502153 A JP2016502153 A JP 2016502153A
Authority
JP
Japan
Prior art keywords
server
key
database
processor
client
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.)
Granted
Application number
JP2015550487A
Other languages
English (en)
Other versions
JP5997851B2 (ja
Inventor
コレスニコフ,ブラジーミン
Original Assignee
アルカテル−ルーセント
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 アルカテル−ルーセント filed Critical アルカテル−ルーセント
Publication of JP2016502153A publication Critical patent/JP2016502153A/ja
Application granted granted Critical
Publication of JP5997851B2 publication Critical patent/JP5997851B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/008Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols involving homomorphic encryption
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1408Protection against unauthorised use of memory or access to memory by using cryptography
    • 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

Landscapes

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

Abstract

データベースシステムが、サーバ、インデックスサーバおよびクライアントを備える。一実施形態において、サーバはデータベースレコードの順序をランダムに並べ替える。サーバは、並べ替えられた各データベースレコードに対応するランダムな暗号化キーを生成することによって、インデックスサーバに暗号化キーの配列を提供する。サーバは、並べ替えられた各データベースレコードを、それぞれに対応する暗号化キーで暗号化する。インデックスサーバは、各暗号化キーおよび対応するランダムなマスクとの合計を計算して暗号化し、並べ替えられたマスキング済みキーの配列をサーバに送信する。インデックスサーバはクライアントに、暗号化されたデータベースレコードならびに、暗号化されたレコードに対応するマスクおよびキーを提供する。クライアントは、暗号化されたマスクとキーの合計をサーバに送信する。サーバは、マスキングされたキーを公開キーで復号し、復号されたキーをクライアントに送信する。次に、クライアントはレコードキーを復元し、レコードを復号する。

Description

連邦政府資金による研究開発の記載
本発明は、情報先端研究プロジェクト活動(IARPA)により与えられた契約番号D11PC20194の下で連邦政府の支援を受けて行われた。連邦政府は本発明に一定の権利を有する。
本開示は一般に、情報の安全な格納および取り出しの分野に関する。
クライアントがデータベースからデータを取り出すとき、取り出したデータおよびクエリ自体が、例えばデータベースサーバおよび、何らかの補助サービスが存在する場合はその補助サービスなどの中間エンティティから見えない(つまり、隠される)ことが望ましいことがある。サーバからデータを隠すために、様々な方法が考案されてきたが、例えば、かなりの計算オーバヘッドの影響を被る。さらに、現在の解決策では、クライアントクエリを検閲から適切に保護することができず、それによって、クライアントに提供される情報を決定する機会を悪意のエンティティに与える可能性がある。
したがって、上記の欠陥に対処する、改良された安全な、データベースからのデータ取り出しのために解決策が必要とされる。
一実施形態では、本開示はデータベースサーバを提供する。サーバはプロセッサおよびメモリを備える。メモリはプロセッサによりアクセス可能で、複数のデータベースレコードを含む。プロセッサは、例えば、補助の非協働サーバなどのインデックスサーバとネットワーク上で通信するように構成される。プロセッサは、少なくとも疑似ランダムにデータベースレコードの順序を並べ替え、それによって並べ替えられたデータベースを生成する。プロセッサは、並べ替えられた各データベースレコードに対応する少なくとも疑似ランダムな暗号化キーを生成し、それによって暗号化キー配列を生成してもよい。並べ替えたデータベースレコードのそれぞれは、対応する暗号化キーで暗号化されてもよい。プロセッサは、並べ替えられたデータベースレコードおよび少なくとも疑似ランダムな暗号化キーをメモリに記憶するように構成される。
データベースサーバの任意の実施形態で、プロセッサは、公開−秘密のキーペアを生成し、疑似ランダムな暗号化キーのそれぞれを、キーペア、例えば公開キーを使用して準同型暗号化するようにさらに構成されてもよい。任意の実施形態で、プロセッサは、暗号化キーの配列を受信し、復号し、復号された暗号化キーを記憶するようにさらに構成されてもよく、受信される暗号キーはマスキングされていてもよい。任意の実施形態で、プロセッサは、インデックスサーバから受信した暗号化キーを復号し、復号結果のキーを、例えばクライアントへ送信するように構成されてもよい。任意の実施形態で、プロセッサは、並べ替えられたデータベースおよび暗号化されたキー配列を補助の非協働サーバに送信するように構成されてもよい。
別の実施形態では、本開示はデータベースインデックスサーバを提供する。インデックスサーバは、プロセッサおよび、プロセッサによりアクセス可能なメモリを備える。メモリは、プロセッサ、クライアントおよびインデックスサーバの間のネットワーク上に通信を提供するために、プロセッサにより実行可能なプログラム命令を含む。プロセッサは、暗号化キーの配列を受信するように構成され、この暗号化キーは暗号化されていてもよい。プロセッサは、配列内の各キーに対応する少なくとも疑似ランダムなマスクを生成してもよい。プロセッサは、各暗号化キーと、そのキーに対応するマスクの合計を計算して暗号化してもよい。
インデックスサーバの任意の実施形態で、プロセッサは、暗号化された合計の順序を少なくとも疑似ランダムに並べ替えて、並べ替えられたマスキング済みキーの配列を生成するようにさらに構成されてもよい。いくつかの実施形態では、合計は準同型暗号化される。任意の実施形態で、プロセッサは、データベースサーバからデータレコードの配列を受信するようにさらに構成されてもよい。そのような実施形態では、プロセッサは、クライアントからレコード番号を受信し、そのレコード番号に対応するデータレコードおよびマスクをクライアントに返すようにさらに構成されてもよい。インデックスサーバの任意の実施形態で、データレコードの配列の各レコードは暗号化されてもよい。
別の実施形態は、データベースクライアントを提供する。クライアントは、プロセッサおよびメモリを備える。メモリはプロセッサによりアクセス可能であり、インデックスサーバからデータベースレコード、マスクおよび対応するキーを受信するために、プロセッサにより実行可能なプログラム命令を含む。プロセッサは、キーとマスクの合計を計算して暗号化し、暗号化した合計をデータベースサーバに送信するように構成される。
データベースクライアントの任意の実施形態で、キーはマスキングされたキーでもよく、プロセッサは、そのマスキングされたキーに対応する復号されたキーをサーバから受信するようにさらに構成されてもよい。そのような任意の実施形態で、プロセッサは、受信された復号済みキーからマスクを減算するようにさらに構成されてもよい。そのような任意の実施形態で、プロセッサは、復号されたキーを使用して受信されたデータベースレコードを復号するようにさらに構成されてもよい。
別の実施形態は、データベースサーバを動作させる方法を提供する。この方法は、サーバによって記憶されるデータベースレコードの順序を少なくとも疑似ランダムに並べ替えるステップを含む。並べ替えられた各データベースレコードに対応する、少なくとも疑似ランダムな暗号化キーが生成される。並べ替えられたデータベースレコードのそれぞれは、対応する暗号化キーで暗号化される。
別の実施形態は、データベースインデックスサーバを動作させる方法を提供する。この方法は、暗号化キーの配列を受信するステップを含み、この暗号化キーは暗号化されていてもよい。配列内の各キーに対応する、少なくとも疑似ランダムなマスクが生成される。各暗号化キーと、そのキーに対応するマスクについて、暗号化された合計が計算される。
さらに別の実施形態は、データベースクライアントを動作させる方法を提供する。この方法は、あるレコード番号に対応するデータベースレコード、マスクおよびキーについてインデックスサーバにクエリを行うステップを含む。キーとマスクの合計が計算されて暗号化される。暗号化された合計は、データベースサーバに提供される。
本発明のさらなる態様が、下記の詳細な説明、図および特許請求の範囲に部分的に明記され、また、部分的に、詳細な説明から導かれるか、または本発明の実施により学習され得る。上記の一般的な説明および下記の詳細な説明はどちらも例であり、説明のみを目的とし、本発明を開示される内容に制限するものではないことが理解されよう。
通信ネットワークを介して結合されている、通信サーバ(S)、インデックスサーバ(IS)およびクライアント(C)を備えるデータベースシステムを示す図である。 例えば図1に示されるようなサーバの機能ブロックを示す図である。 例えば図1に示されるようなインデックスサーバの機能ブロックを示す図である。 例えば図1に示されるようなクライアントの機能ブロックを示す図である。 図1のサーバおよびインデックスサーバの一実施形態の動作、例えば、クエリに応答して安全にクライアントにデータを提供するように、図1のサーバおよびインデックスサーバを設定する動作を示す図である。 図1のサーバ、インデックスサーバおよびクライアントの第1の実施形態の動作、例えば、クライアントに安全にデータを提供する動作を示す図である。 図1のサーバ、インデックスサーバおよびクライアントの第1の実施形態の動作、例えば、クライアントに安全にデータを提供する動作を示す図である。 図1のサーバおよびインデックスサーバの別の実施形態の動作、例えば、図1のサーバおよびインデックスサーバを設定する動作を示す図である。 図1のサーバ、インデックスサーバおよびクライアントの第2の実施形態の動作、例えば、クライアントに安全にデータを提供する動作を示す図である。 図1のサーバ、インデックスサーバおよびクライアントの第2の実施形態の動作、例えば、クライアントに安全にデータを提供する動作を示す図である。
本開示は、例えばサーバによるデータベースレコードの安全な取り出しを目的とする。従来の安全なデータベースシステムのいくつかでは、データベースサーバが2つの非協働エンティティ、サーバSおよびインデックスサーバISとして実装される。そのようなシステムでは、サーバがデータベースの所有者である。インデックスサーバは、例えば補助的な非協働サーバと見なされてもよい。設定段階で、サーバはデータベースの各行を暗号化して、暗号化結果をインデックスサーバに送信する。クライアントCが、インデックスサーバが保持する暗号化されたデータベースのクエリを行うと、インデックスサーバは応答して正しい(暗号化された)行を返し、クライアントに復号キーを送信するようサーバに要請する。しかし、クライアントに送信されたキーをサーバが知っているので、このクライアントクエリは、厳密には秘密ではなく、悪意のエンティティにクエリデータを傍受する機会を与える可能性がある。
そのような従来のシステムの安全性を向上させるための試みには、高価な、または法外価格でさえあり得る計算資源が必要である。例えば、ある解決策の提案では、サイズnの準同型暗号化の行列を使用し、ここでnはデータベースレコードの数である。そのような実施形態では、インデックスサーバはn個のレコードのそれぞれを新しいキーで再暗号化するので、n回の暗号化操作が必要になる。少なくない数のデータベースレコードでは、このような解決策では、データベースシステムの実際的な計算限界を超えることがある。よって、代替の解決策が必要である。
発明者は、安全なデータベースシステムでのクエリの安全性は、例えば、本明細書に記載する実施形態で開示されるように設定段階で復号キーの割り当ておよび操作を行うことによって向上させ得ることを発見した。簡潔に要約すると、一実施形態で、サーバが非協働インデックスサーバに、並べ替えられた暗号化済みデータベースおよび、対応する暗号化/復号キーの配列を提供するが、これに限定されない。本明細書で、非協働サーバとは、暗号化されたデータベースを記憶および検索する補助サーバとして定義される。クライアントが、インデックスサーバにデータベースレコードのクエリを行う。インデックスサーバは、要求されたレコードを暗号化された形式で、対応する復号キーおよび対応するマスク値と共にクライアントに返す。クライアントは次に、キーにマスク値を加算し、合計を暗号化してサーバに送信する。サーバは次に、マスキングされた暗号化されていないキーを返し、クライアントはそのキーで、先にインデックスサーバから受信した暗号化レコードを復号する。クライアントのみが、要求されたデータベースレコードの値を決定するために十分な情報をもっている。インデックスサーバが所有しているのは、暗号化されたデータベースの並べ替えられたコピーなので、クエリはインデックスサーバから隠される。よって、インデックスサーバは、並べ替えられていないデータベースのどのレコードが返されたのかを知らない。サーバが返すキーはマスキングされているので、サーバもまた、並べ替えられていないデータベースのどのレコードが返されたのかを知らない。よって、サーバはマスキングされたキーと、サーバがデータベースの決定の行を暗号化するために使用したキーを関連付けることはできない。これによって、安全なデータベースシステムは、レコードの安全な取り出しを提供し得る。さらに、記載の実施形態は、nに比例する時間でデータベースクエリにサービスを提供する。したがって、1E8個のレコードを含むデータベースでは、本発明の実施形態では、現在の例で、n/nすなわち1E8の効率向上が得られる。
図1は、例えば安全なデータの記憶および取り出しのために動作することができる、非制限的な一実施形態によるシステム100を示す。システム100はシステム110を備え、システム110は同様にサーバ(S)200およびインデックスサーバ(IS)300を備える。クライアント(C)400はシステム110と通信して、データベース項目を取り出してもよい。クライアント400、サーバ200およびインデックスサーバ300間の通信は、ネットワーク120を介してもよい。ネットワーク120は、例えばインターネットなど、有線、無線または光接続のいずれの組み合わせでもよい。サーバ200およびインデックスサーバ300は物理的に併置されていてもよいし、互いに離れていてもよい。いくつかの実施形態では、サーバ200、インデックスサーバ300およびクライアント400は、インターネットを介して通信する。
図2は、サーバ200の例示的な一実施形態を示す。サーバ200は、プロセッサ(CPU)210、メモリ220およびネットワークインタフェース230を備える。メモリ220は、本明細書に記載する機能をサポートするために、RAM、ROMおよびディスク記憶装置のいずれの組み合わせを含んでもよい。メモリ220は、プロセッサ210によってアクセスおよび実行が可能な命令を含んでもよい。メモリ220はまた、例えば、クライアント400への要求時に提供されてもよいデータ項目の配列などのデータベースレコードを含んでもよい。メモリ220は、データベース機能をサポートするために、例えば100GBまたはそれ以上のRAMを含んでもよい。ネットワークインタフェース230は、インデックスサーバ300およびクライアント400と通信するための機能性を備えてもよい。例えば、ネットワークインタフェース230は、TCP/IPまたは類似の規格によってネットワーク120を介して通信するように構成されてもよい。
図3は、インデックスサーバ300の例示的な一実施形態を示す。インデックスサーバ300は、サーバ200について説明したものと類似する機能ブロックを備えてもよい。例えば、インデックスサーバ300は、プロセッサ310、メモリ320およびネットワークインタフェース330を備えてもよい。メモリ320は、プロセッサ310によってアクセスおよび実行が可能な命令、ならびに、下記に説明する様々なデータ構造およびクライアント400からのデータアクセス要求を収容するためのメモリ空間を含む。
図4は、クライアント400の一実施形態を示す。クライアント400もまた、例えば、プロセッサ410、メモリ420およびネットワークインタフェース430などの、サーバ200およびインデックスサーバ300のものと類似した機能ブロックを含んでもよい。メモリ220は、プロセッサ400によってアクセスおよび実行が可能な命令を含んでもよい。クライアント400は、例えば、パーソナルコンピュータ、移動体通信コンピューティング装置(例えばiPAD(R))、スマートフォン、ワークステーションまたはメインフレームコンピュータシステムなどであってもよい。
図5は、クライアント400に安全なデータ取り出しを提供するための、サーバ200およびインデックスサーバ300の初期化の第1の実施態様を示す。データベース初期化の方法500がステップS05で開始し、このステップではサーバ200が公開−秘密キーペアkppを生成し、公開キーをクライアント400に送信する。サーバ200は既にレコードR[i]=R[1],R[2],R[3],…のデータベースを含んでいると仮定される。ステップS10で、サーバ200は少なくとも疑似ランダムにデータベースレコードの順序を並べ替えて、並べ替えられたデータベースR[π]を生成する。換言すれば、データベース配列のレコードR[i]は新しいデータベース配列にマッピングされ、そこでは、レコードインデックスiは、少なくとも疑似ランダムに{i}の組から選択される並べ替えられたインデックスπに置き換えられる。本明細書で、「少なくとも疑似ランダムに」という用語は、「ランダムな」値を生成する計算的な方法は本質的に何らかの決定のレベルを含むが、ランダムに生成された値と事実上識別不可能であり得るという了解を反映する。以下、計算および数字の組が制限なく「ランダムである」として記載されることがあるが、これらの計算または組は疑似ランダムにすぎないこともあるのを認めてのことである。
ステップS15で、サーバ200はランダムなキー配列k[π]を生成する。この配列は、並べ替えられたデータベースR[π]の各レコードに関連するランダムなキー値kを含む。ステップS20で、サーバ200は、R[π]の各値をそれぞれの関連するキー値k[π]を使用して暗号化することにより、暗号化されたデータベース配列E[π]を生成する。ステップS25で、サーバ200は、キーペアkppの公開キーを使用してk[π]の各メンバを暗号化して、暗号化されたキー配列を生成する。好ましい実施形態では、暗号化は準同型である。準同型暗号化(HE)の一例に、Paillier暗号がある。下記に、様々な実施形態でのHEの利用について記載する。本実施形態を反映するために、暗号化されたキー配列は、kr,HE[π]と呼ばれるが、これに制限されない。ステップS30で、サーバ200は暗号化されたデータベース配列E[π]および暗号化されたキー配列kr,HE[π]をインデックスサーバ300に送信する。ステップIS05で、インデックスサーバ300は、E[π]およびkr,HE[π]を記憶する。
ステップIS05が終了すると、システム100の設定段階は終了する。E[π]を生成するために使用される、記載の動作に起因して、サーバ200は、E[π]配列の内容を決定するための十分な情報をもたない。より具体的には、サーバ200によって記憶されるR[i]データベース配列は、インデックスサーバ300によって記憶されるE[π]配列とは異なってインデックス付けされ、これらの配列間の関係は、サーバ200とインデックスサーバ300のそれぞれから隠されるようになる。しかし、下記に記載するように、クライアント400は、自身のみが知る情報を使用してデータベースレコードの値を決定できるので、従来の安全なデータベースシステムに比べて、システム100にはより優れた安全性が提供される。
図6および図7を参照しながら、クライアント400によるシステム100からのデータの安全な取り出しの第1の実施形態について説明する。図6は、クライアント400とサーバ200の間の情報交換および、クライアント400とインデックスサーバ300の間の情報交換の上位レベルでの説明である。図7は方法700を表し、本実施形態で、データベースクエリに応答してサーバ200、インデックスサーバ300およびクライアント400によって実行される動作のより詳細な説明である。
図7を参照すると、ステップC05で、クライアント400は特定のレコードnについてインデックスサーバ300にクエリを送信する。このステップは、図6では、クライアント400からインデックスサーバ300への第1の通信に対応する。クエリに応答して、ステップIS10(図7)で、インデックスサーバはE[n]およびkr,HE[n]をクライアント400に送信する。このステップは、図6では、インデックスサーバ300からクライアント400への第2の通信に対応する。
続いて図7を参照すると、ステップC10で、クライアント400は、並べ替えられたデータベースの各項目についてランダムなマスク値を生成する。ステップC15で、クライアント400は、サーバ200にキーk[n]を復号するよう求める要求を作成する。しかし、サーバ200がキー値を決定することを防ぐために、クライアント400は最初に、ステップC10で生成された対応するマスク値を加算することによってキーの値をマスキングする。これが可能な理由は、ステップS10(図5)でのキー値の準同型暗号化である。よって、第1のサブステップC20で、クライアント400は、先にサーバ200から受信した公開キーを使用して、kr,HE[n]とmask[n]の合計の準同型暗号化を実行する。当業者には理解されるように、準同型暗号化の性質から、暗号化されたkr,HE[n]値にmask[n]などのオフセットを加算し、加算結果を暗号化して、後に、例えば下記のステップC30で暗号化された合計を最初に復号することなく、mask[n]を減算することによってk[n]値を復元することが可能である。サブステップC25で、クライアント400は、km,HE[n]をサーバ200に送信する。このステップは、図6では、クライアント400からサーバ200への第3の通信に対応する。
m,HE[n]値の送信は、サーバ200にkr,HE[n]を復号してマスクされたキーk[n]を生成させるよう要求を開始する働きをする。ステップS35(図7)で、サーバ200は、例えばkppの秘密キーなどのkppを使用して、km,HE[n]を復号し、k[n]を復元する。この値は、この時点ではマスクされているので、サーバ200は対応するk[n]の値についての知識をもたない。ステップS40で、サーバ200はクライアント200にk[n]を送信する。このステップは、図6では、サーバ200からクライアント400への第4の通信として示される。
ステップC30(図7)で、クライアント400はk[n]からmask[n]を減算し、それによってk[n]を復元する。ステップC35で、クライアント400はk[n]を使用してE[n]を復号して、R[n]を得る。
前述の実施形態では、クライアント400のみが暗号化されたデータE[n]およびmask[n]値を所有するので、クライアントのみが、E[n]を復号するために必要な値k[n]を復元することができる。さらに、R[i]配列からR[π]配列への並べ替えにより、クライアント400が復元しようとしているデータベースレコードをサーバ200が決定できないことが確実になる。このようにして、クライアント400は、例えば、サーバ200またはインデックスサーバ300がクライアント400によって受信されたデータを決定することができないように、安全に、R[n]の値を復元することができる。
図8−図10は、システム100の動作の第2の実施形態を示す。図8は、図5に示されるデータベース設定方法500の実施形態の代替実施形態を説明する方法800を示す。図9および図10は、それぞれ、方法1000の詳細な上位レベルでの説明を示す。この実施形態では、方法700でクライアント400によって行われた準同型動作を行うのは、インデックスサーバ300である。そのような動作によって、クライアント400がサーバ200およびインデックスサーバ300とオンライン状態であるために必要とする時間が短縮され得るが、追加のオフライン処理に負担がかかることもある。
図8を参照すると、ステップS05−S30およびIS05は、図5について前述したとおりである。方法800では、ステップIS05の前にステップIS15があり、このステップで、インデックスサーバ300は、例えば、ステップC10(図7)について前述したように、各データベースレコードに対応するランダムなマスク値mask[π]を生成する。ステップIS05で、インデックスサーバ300は、前述したように、配列E[π]およびkr,HE[π]を記憶する。ステップIS20で、インデックスサーバ300は、各データベースレコードについて、kr,HE[π](例えばkppの公開キーを使用)とmask[π]の合計の準同型暗号化を、kppの公開キーを使用して計算し、この合計はkm,HE[π]と呼ばれる。ステップIS25で、インデックスサーバ300は、km,HE[π]の順序をランダムに並べ替え、並べ替えられた値の配列をサーバ200に送信する。ステップS45で、サーバ200は並べ替えられたマスク配列を、kppの秘密キーを使用して復号し、結果の値を記憶する。
図10を参照すると、方法1000は前述したステップC05を含み、このステップで、クライアント400はインデックスサーバ300に暗号化されたレコードnをクエリする。このクエリは、図9では、クライアント400からインデックスサーバ300への第1の通信として示される。インデックスサーバ300は、ステップIS30で、クライアント400にE[n]およびmask[n]を送信する。ステップIS35で、インデックスサーバ300は、クライアント400にE[n]およびmask[n]を送信する。このステップは、図9では、クライアント400とインデックスサーバ300との間の第2の通信に対応する。ステップIS50で、インデックスサーバ300は、並べ替えられたインデックスπをサーバ200に送信する。このステップは、図9では、インデックスサーバ300からサーバ200への第3の通信に対応する。ステップS55で、サーバ200は、並べ替えられたインデックスを、並べ替えられたマスク配列の対応する値と関連付け、ステップC55で、対応する値k[π]をクライアント400に送信する。この送信は、図9では、サーバ200からクライアント400への第4の通信として示される。前述したように、ステップC30で、クライアント400はk[n]からmask[n]を減算することによってk[n]を復元し、ステップC35で、クライアント400はk[n]を使用してE[n]を復号し、R[n]を得る。
記載の実施形態で、サーバ200、インデックスサーバ300およびクライアント400の動作は、記載の順序に限定されないことに留意されたい。他の実施形態では、記載の動作のステップは別の順序でもよく、もしくは結合または分離されてもよい。いくつかの実施形態では、本開示の範囲を逸脱することなく、図示されたステップのいくつかは削除されてもよく、他のステップが追加されてもよい。
本発明の複数の実施形態が添付の図面に示され、前述の、発明を実施するための形態に記載されているが、本発明は開示された実施形態に限定されず、下記の特許請求の範囲によって明記され定められる本発明から逸脱することなく、多数の再構成、修正および置換が可能であることを理解されたい。
図8を参照すると、ステップS05−S30およびIS05は、図5について前述したとおりである。方法800では、ステップIS05の前にステップIS15があり、このステップで、インデックスサーバ300は、例えば、ステップC10(図7)について前述したように、各データベースレコードに対応するランダムなマスク値mask[π]を生成する。ステップIS05で、インデックスサーバ300は、前述したように、配列E[π]およびkr,HE[π]を記憶する。ステップIS20で、インデックスサーバ300は、各データベースレコードについて、kr,HE[π](例えばkppの公開キーを使用)とmask[π]の合計の準同型暗号化を、kppの公開キーを使用して計算し、この合計はkm,HE[π]と呼ばれる。ステップIS25で、インデックスサーバ300は、km,HE[π]の順序をランダムに並べ替え、並べ替えられた値の配列をサーバ200に送信する。ステップS45で、サーバ200は並べ替えられたマスク配列を、kppの秘密キーを使用して復号し、結果の値を記憶する。
図10を参照すると、方法1000は前述したステップC05を含み、このステップで、クライアント400はインデックスサーバ300に暗号化されたレコードnをクエリする。このクエリは、図9では、クライアント400からインデックスサーバ300への第1の通信として示される。インデックスサーバ300は、ステップIS30で、クライアント400にE[n]およびmask[n]を送信する。このステップは、図9では、クライアント400とインデックスサーバ300との間の第2の通信に対応する。ステップIS35で、インデックスサーバ300は、並べ替えられたインデックスπをサーバ200に送信する。このステップは、図9では、インデックスサーバ300からサーバ200への第3の通信に対応する。ステップS50で、サーバ200は、並べ替えられたインデックスを、並べ替えられたマスク配列の対応する値と関連付け、ステップS55で、対応する値k[π]をクライアント400に送信する。この送信は、図9では、サーバ200からクライアント400への第4の通信として示される。前述したように、ステップC30で、クライアント400はk[n]からmask[n]を減算することによってk[n]を復元し、ステップC35で、クライアント400はk[n]を使用してE[n]を復号し、R[n]を得る。
記載の実施形態で、サーバ200、インデックスサーバ300およびクライアント400の動作は、記載の順序に限定されないことに留意されたい。他の実施形態では、記載の動作のステップは別の順序でもよく、もしくは結合または分離されてもよい。いくつかの実施形態では、本開示の範囲を逸脱することなく、図示されたステップのいくつかは削除されてもよく、他のステップが追加されてもよい。
本発明の複数の実施形態が添付の図面に示され、前述の、発明を実施するための形態に記載されているが、本発明は開示された実施形態に限定されず、下記の特許請求の範囲によって明記され定められる本発明から逸脱することなく、多数の再構成、修正および置換が可能であることを理解されたい。

Claims (15)

  1. プロセッサと、
    プロセッサによりアクセス可能で、複数のデータベースレコードを含むメモリと
    を備えるデータベースサーバであって、
    プロセッサが、
    少なくとも疑似ランダムにデータベースレコードの順序を並べ替え、それによって並べ替えられたデータベースを生成し、
    並べ替えられた各データベースレコードに対応する少なくとも疑似ランダムな暗号化キーを生成し、それによって暗号化キー配列を生成し、
    並べ替えられたデータベースレコードを、それぞれに対応する暗号化キーを使って暗号化し、
    並べ替えられたデータベースレコードおよび少なくとも疑似ランダムな暗号化キーをメモリに記憶するように構成されている、
    データベースサーバ。
  2. プロセッサとインデックスサーバとクライアントの間のネットワーク上に通信を提供するように構成されているネットワークインタフェースをさらに備える、請求項1に記載のサーバ。
  3. プロセッサが、公開−秘密のキーペアを生成し、疑似ランダムな暗号化キーのそれぞれを公開−秘密キーペアを使って準同型暗号化するようにさらに構成されている、請求項1に記載のサーバ。
  4. プロセッサが、暗号化キーの配列を受信し、暗号化キーを復号して記憶するようにさらに構成されている、請求項1に記載のサーバ。
  5. プロセッサが、受信したマスキング済みキーを復号し、復号結果のキーを送信するように構成されている、請求項1に記載のサーバ。
  6. プロセッサが、並べ替えられたデータベースおよび暗号化キー配列を補助の非協働サーバに送信するようにさらに構成されている、請求項1に記載のサーバ。
  7. プロセッサと、
    プロセッサによりアクセス可能で、プロセッサにより実行可能なプログラム命令を含むメモリと
    を備えるデータインデックスサーバであって、
    プログラム命令が
    暗号化された暗号化キーのキー配列を受信し、
    少なくとも疑似ランダムなマスクを含むマスク配列を生成し、疑似ランダムなマスクがそれぞれキー配列の要素に対応しており、
    キー配列の各暗号化キーについて、その暗号化キーと対応するマスクとの合計を計算し、
    各合計を暗号化するためのプログラム命令である、
    データベースインデックスサーバ。
  8. プロセッサが、暗号化した合計の順序を少なくとも疑似ランダムに並べ替えて、マスキングされた暗号化済みキーを並べ替えた配列を生成するように構成されている、請求項7に記載のインデックスサーバ。
  9. 合計が準同型暗号化される、請求項7に記載のインデックスサーバ。
  10. プロセッサが、データベースサーバからデータレコードの配列を受信するようにさらに構成されている、請求項7に記載のインデックスサーバ。
  11. プロセッサが、クライアントからレコード番号を受信し、クライアントにデータレコードおよび、レコード番号に対応するマスクを返すようにさらに構成されている、請求項10に記載のインデックスサーバ。
  12. プロセッサと、
    プロセッサによりアクセス可能で、プロセッサにより実行可能なプログラム命令を含むメモリと
    を備えるデータベースクライアントであって、
    プログラム命令が
    インデックスサーバからレコード番号に対応するデータベースレコード、マスク、およびキーを受信し、
    キーとマスクの合計を計算し、
    合計を暗号化し、
    暗号化した合計をデータベースサーバに送信するためのプログラム命令である、
    データベースクライアント。
  13. キーがマスキングされたキーであり、プロセッサが、マスキングされたキーに対応する復号されたキーをサーバから受信するようにさらに構成されている、請求項12に記載のデータベースクライアント。
  14. プロセッサが、受信した復号済みキーからマスクを減算するようにさらに構成されている、請求項13に記載のデータベースクライアント。
  15. プロセッサが、復号されたキーを使用して、受信したデータベースレコードを復号するようにさらに構成されている、請求項13に記載のデータベースクライアント。
JP2015550487A 2012-12-28 2013-12-18 プライバシー保護データベースシステム Expired - Fee Related JP5997851B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/729,619 US8943331B2 (en) 2012-12-28 2012-12-28 Privacy-preserving database system
US13/729,619 2012-12-28
PCT/US2013/076255 WO2014105580A1 (en) 2012-12-28 2013-12-18 A privacy-preserving database system

Publications (2)

Publication Number Publication Date
JP2016502153A true JP2016502153A (ja) 2016-01-21
JP5997851B2 JP5997851B2 (ja) 2016-09-28

Family

ID=49956402

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015550487A Expired - Fee Related JP5997851B2 (ja) 2012-12-28 2013-12-18 プライバシー保護データベースシステム

Country Status (6)

Country Link
US (1) US8943331B2 (ja)
EP (1) EP2939175A1 (ja)
JP (1) JP5997851B2 (ja)
KR (1) KR101699192B1 (ja)
CN (1) CN104995632B (ja)
WO (1) WO2014105580A1 (ja)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8943331B2 (en) 2012-12-28 2015-01-27 Alcatel Lucent Privacy-preserving database system
US10325329B2 (en) * 2014-12-12 2019-06-18 Mcafee, Inc. Smart home security of metered data using a mask
WO2018050911A1 (en) 2016-09-19 2018-03-22 Koninklijke Philips N.V. Oblivious outsourcing of file storage
US10291592B2 (en) 2016-10-17 2019-05-14 Microsoft Technology Licensing, Llc Secure electronic communication
US10395060B2 (en) 2016-10-17 2019-08-27 Microsoft Technology Licensing, Llc Multiple message retrieval for secure electronic communication
US11144663B2 (en) * 2016-12-30 2021-10-12 Robert Bosch Gmbh Method and system for search pattern oblivious dynamic symmetric searchable encryption
US10360397B2 (en) * 2017-02-22 2019-07-23 Sap Se Secure retrieval of cloud-based sensitive data by obfuscating data access patterns
KR101945885B1 (ko) * 2017-07-07 2019-06-11 서울대학교산학협력단 동형 암호화된 데이터의 연산의 위변조를 판단하는 방법
KR102602119B1 (ko) 2018-04-06 2023-11-15 주식회사 크립토랩 블록체인 및 동형암호 기술을 이용하여 데이터를 공유하는 사용자 장치와 전자장치 및 그 방법들
US11334547B2 (en) * 2018-08-20 2022-05-17 Koninklijke Philips N.V. Data-oblivious copying from a first array to a second array
US10778410B2 (en) * 2019-06-18 2020-09-15 Alibaba Group Holding Limited Homomorphic data encryption method and apparatus for implementing privacy protection
CN111008236B (zh) * 2019-12-06 2023-05-02 支付宝(杭州)信息技术有限公司 一种数据查询的方法和系统
CN112016932B (zh) * 2020-09-04 2024-05-17 中国银联股份有限公司 测试方法、装置、服务器及介质
CN115640601A (zh) * 2022-09-30 2023-01-24 蚂蚁区块链科技(上海)有限公司 一种实现隐私信息检索的方法、系统、服务端和客户端

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020025043A1 (en) * 2000-04-13 2002-02-28 Bao Feng Private retrieval of digital objects
JP2007124520A (ja) * 2005-10-31 2007-05-17 Ntt Data Corp データ検索システム、情報処理装置、データ検索方法、及び、プログラム。
JP2008021295A (ja) * 2006-06-16 2008-01-31 Internatl Business Mach Corp <Ibm> マッチング・サービスを提供するための装置、方法及びプログラム
JP2012151756A (ja) * 2011-01-20 2012-08-09 Nippon Telegr & Teleph Corp <Ntt> 復号システム、鍵装置、復号方法、及びプログラム

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005080131A (ja) * 2003-09-02 2005-03-24 Apuriko System:Kk 秘密データ通信システム
EP1569380B1 (en) * 2004-02-27 2008-06-18 International Business Machines Corporation System for achieving anonymous communication of messages using secret key crytptography
US7689547B2 (en) * 2006-09-06 2010-03-30 Microsoft Corporation Encrypted data search
KR20100003380A (ko) * 2008-07-01 2010-01-11 주식회사 사람인 암호화된 데이터베이스 정보의 조회 방법
KR101041568B1 (ko) * 2008-12-16 2011-06-15 한국전자통신연구원 다수의 데이터베이스에 저장된 보호가 필요한 정보들의 평균값 산출 방법
KR101003131B1 (ko) * 2009-04-09 2010-12-22 소프트포럼 주식회사 데이터베이스 패턴별 암호화에 따른 인덱스 검색 시스템
US9154298B2 (en) * 2012-08-31 2015-10-06 Cleversafe, Inc. Securely storing data in a dispersed storage network
US8943331B2 (en) 2012-12-28 2015-01-27 Alcatel Lucent Privacy-preserving database system

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020025043A1 (en) * 2000-04-13 2002-02-28 Bao Feng Private retrieval of digital objects
JP2007124520A (ja) * 2005-10-31 2007-05-17 Ntt Data Corp データ検索システム、情報処理装置、データ検索方法、及び、プログラム。
JP2008021295A (ja) * 2006-06-16 2008-01-31 Internatl Business Mach Corp <Ibm> マッチング・サービスを提供するための装置、方法及びプログラム
JP2012151756A (ja) * 2011-01-20 2012-08-09 Nippon Telegr & Teleph Corp <Ntt> 復号システム、鍵装置、復号方法、及びプログラム

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
JPN6015017923; 大井 篤、外5名: 'プライバシー保護を考慮した効率的な検索のための安全な索引構造' CSS2011コンピュータセキュリティシンポジウム2011論文集 併催 マルウェア対策研究人材育成ワ 第2011巻,第3号, 20111012, p.480-485, 一般社団法人情報処理学会 コンピュータセキュリティ *
JPN6016025557; Masayuki Yoshino , et al.: 'Symmetric Searchable Encryption for Database Applications' 2011 International Conference on Network-Based Information Systems (NBiS) , 20110907, pp.657-662, IEEE *
JPN6016025559; Rafail Ostrovsky, et al.: 'A Survey of Single-Batabase Private Information Retrieval: Techniques and Applications' LNCS, Public Key Cryptography - PKC 2007 Vol.4450, 20070416, pp.393-411, Springer Berlin Heidelberg [オンライン] *
JPN6016025561; Rikke Bendlin, et al.: 'Semi-homomorphic Encryption and Multiparty Computation' LNCS, Advances in Cryptology - EUROCRYPT 2011 Vol.6632, 20110515, pp.169-188, Springer Berlin Heidelberg [オンライン] *

Also Published As

Publication number Publication date
KR101699192B1 (ko) 2017-01-23
WO2014105580A1 (en) 2014-07-03
KR20150090204A (ko) 2015-08-05
EP2939175A1 (en) 2015-11-04
JP5997851B2 (ja) 2016-09-28
US20140189364A1 (en) 2014-07-03
US8943331B2 (en) 2015-01-27
CN104995632B (zh) 2017-11-03
CN104995632A (zh) 2015-10-21

Similar Documents

Publication Publication Date Title
JP5997851B2 (ja) プライバシー保護データベースシステム
US11108753B2 (en) Securing files using per-file key encryption
US11966380B2 (en) Secure information retrieval and update
US9122888B2 (en) System and method to create resilient site master-key for automated access
KR101371608B1 (ko) Dbms 및 데이터베이스에서 암호화 방법
BR112019013130A2 (pt) método e sistema de criptografia pesquisável simétrica dinâmica alheia a padrões de busca
US9363247B2 (en) Method of securing files under the semi-trusted user threat model using symmetric keys and per-block key encryption
CN107615730A (zh) 跨文件系统对象和客户端共享的数据的安全的基于云的存储
CN105051750A (zh) 用于加密文件系统层的系统和方法
JP6348004B2 (ja) 暗号化データ管理システム、プロキシサーバ、暗号化データ管理方法およびコンピュータプログラム
US20030210791A1 (en) Key management
GB2514428A (en) Enabling access to data
CN105227566A (zh) 密钥处理方法、密钥处理装置及密钥处理系统
CN103812927A (zh) 一种存储方法
CN109802832B (zh) 一种数据文件的处理方法、系统、大数据处理服务器和计算机存储介质
CN102571329A (zh) 密码密钥管理
WO2017033843A1 (ja) 検索可能暗号処理システム
Sivakumar et al. Securing data and reducing the time traffic using AES encryption with dual cloud
Kang et al. ESPRESSO: An encryption as a service for cloud storage systems
Riad et al. Secure storage and retrieval of IoT data based on private information retrieval
WO2017009388A1 (en) Encryption scheme using multiple parties
WO2008065351A1 (en) Self encryption
GB2444343A (en) Encryption system for peer-to-peer networks in which data is divided into chunks and self-encryption is applied
US10756892B2 (en) Protecting data in a multi-tenant cloud-based system
Murugan et al. An effective secured cloud based log management system using homomorphic encryption

Legal Events

Date Code Title Description
A529 Written submission of copy of amendment under article 34 pct

Free format text: JAPANESE INTERMEDIATE CODE: A529

Effective date: 20150824

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20150824

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20160613

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: 20160705

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20160802

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160826

R150 Certificate of patent or registration of utility model

Ref document number: 5997851

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R371 Transfer withdrawn

Free format text: JAPANESE INTERMEDIATE CODE: R371

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R360 Written notification for declining of transfer of rights

Free format text: JAPANESE INTERMEDIATE CODE: R360

LAPS Cancellation because of no payment of annual fees
R360 Written notification for declining of transfer of rights

Free format text: JAPANESE INTERMEDIATE CODE: R360

R371 Transfer withdrawn

Free format text: JAPANESE INTERMEDIATE CODE: R371

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