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

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

▶ パロ アルト リサーチ センター インコーポレイテッドの特許一覧

特許6971926暗号化データベースに関する解析のためのシステムおよびアーキテクチャ
<>
  • 特許6971926-暗号化データベースに関する解析のためのシステムおよびアーキテクチャ 図000010
  • 特許6971926-暗号化データベースに関する解析のためのシステムおよびアーキテクチャ 図000011
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6971926
(24)【登録日】2021年11月5日
(45)【発行日】2021年11月24日
(54)【発明の名称】暗号化データベースに関する解析のためのシステムおよびアーキテクチャ
(51)【国際特許分類】
   G09C 1/00 20060101AFI20211111BHJP
   G06F 21/62 20130101ALI20211111BHJP
【FI】
   G09C1/00 660D
   G06F21/62 318
【請求項の数】10
【全頁数】14
(21)【出願番号】特願2018-135415(P2018-135415)
(22)【出願日】2018年7月19日
(65)【公開番号】特開2019-35948(P2019-35948A)
(43)【公開日】2019年3月7日
【審査請求日】2021年7月14日
(31)【優先権主張番号】15/674,935
(32)【優先日】2017年8月11日
(33)【優先権主張国】US
【早期審査対象出願】
(73)【特許権者】
【識別番号】504407000
【氏名又は名称】パロ アルト リサーチ センター インコーポレイテッド
(74)【代理人】
【識別番号】100094569
【弁理士】
【氏名又は名称】田中 伸一郎
(74)【代理人】
【識別番号】100088694
【弁理士】
【氏名又は名称】弟子丸 健
(74)【代理人】
【識別番号】100067013
【弁理士】
【氏名又は名称】大塚 文昭
(74)【代理人】
【識別番号】100086771
【弁理士】
【氏名又は名称】西島 孝喜
(74)【代理人】
【識別番号】100109070
【弁理士】
【氏名又は名称】須田 洋之
(74)【代理人】
【識別番号】100109335
【弁理士】
【氏名又は名称】上杉 浩
(74)【代理人】
【識別番号】100120525
【弁理士】
【氏名又は名称】近藤 直樹
(74)【代理人】
【識別番号】100139712
【弁理士】
【氏名又は名称】那須 威夫
(72)【発明者】
【氏名】シャンタヌ・レイン
(72)【発明者】
【氏名】ヴィンセント・ビンシェドラー
(72)【発明者】
【氏名】アレハンドロ・イー・ブリトー
(72)【発明者】
【氏名】アーシン・ウズン
(72)【発明者】
【氏名】ヴァニシュリー・ラオ
【審査官】 児玉 崇晶
(56)【参考文献】
【文献】 特開2012−123614(JP,A)
【文献】 特開2016−206918(JP,A)
【文献】 米国特許出願公開第2013/0191650(US,A1)
【文献】 中国特許出願公開第106934301(CN,A)
(58)【調査した分野】(Int.Cl.,DB名)
G09C 1/00
G06F 21/62
(57)【特許請求の範囲】
【請求項1】
暗号化データベースを生成するためのコンピュータによって実行される方法であって、前記方法は、
平文データエントリを有する平文データベースを受信することと、
平文フォーマットの1つ以上のデータエントリの追加的な配列を受信した前記平文データベースに追加することによって拡張された平文データベースを達成して前記受信した平文データベースを拡張することであって、前記追加的な配列は、暗号化されたドメインにおける条件付きクエリの実行のために利用可能となる条件付き属性として特定される、受信した前記平文データベースにおける1つ以上の属性を表わすために受信した前記平文データベースのデータから生成される、拡張することと、
前記拡張された平文データベースを使用して暗号化データベースを生成することであって、前記暗号化データベースが暗号化データエントリを含む、生成することと、
を備え、
前記暗号化データベースが、少なくとも1つの形式の条件付きクエリがその復号なしで前記暗号化データエントリについて前記クエリが計算されたときに正しい暗号化結果を返すように、前記少なくとも1つの形式の条件付きクエリをサポートするように構成されている、方法。
【請求項2】
前記暗号化データが、意味的にセキュアな暗号化によって暗号化される、請求項1に記載の方法。
【請求項3】
前記少なくとも1つの形式の条件付きクエリが、WHEREクエリまたはGROUPBYクエリのうちの1つである、請求項1に記載の方法。
【請求項4】
公開−秘密鍵のペアを確立することであって、前記暗号化データベースを暗号化するために前記ペアの公開鍵が使用され、クエリの返された結果を復号するために前記ペアの秘密鍵が提供される、確立すること
をさらに備える、請求項1に記載の方法。
【請求項5】
前記秘密鍵が、前記暗号化データベースが保持されるデータベース管理システムまたは前記暗号化データベース上で実行されるクエリを計算するサーバで利用可能とされない、請求項1に記載の方法。
【請求項6】
暗号化データベースを管理するシステムであって、前記システムは、
1つ以上のハードウェア要素で実行される、抽出、転送および書き込み(ETL)サーバであって、前記ETLサーバは、(i)暗号化されていないデータを有する平文データベースを入力として受信し、(ii)前記入力された平文データベースに基づいて、暗号化データを有する対応する暗号化データベースを出力するように動作し、暗号化されていないフォーマットの1つ以上のデータエントリの追加的な配列を入力された前記平文データベースに追加することによって拡張された平文データベースを達成して前記入力された平文データベースを拡張し、前記追加的な配列は、暗号化されたドメインにおける条件付きクエリの実行のために利用可能となる条件付き属性として特定される、入力された前記平文データベースにおける1つ以上の属性を表わすために入力された前記平文データベースのデータから生成され、前記拡張された平文データベースを暗号化することによって、対応する前記暗号化されたデータベースを生成する、ETLサーバと、
1つ以上のハードウェア要素で実行されるデータベース(DB)サーバであって、前記DBサーバは、(i)前記ETLサーバから前記暗号化データベースを受信して保持し、(ii)前記DBサーバに提出されたクエリに応答して暗号化データを返すように動作する、DBサーバと、
1つ以上のハードウェア要素で実行される計算サーバであって、(i)クエリを前記DBサーバに提出し、(ii)前記DBサーバから返された暗号化データに関する計算を実行するように動作する、計算サーバと
を備え、
前記計算が、前記暗号化データの復号なしに前記暗号化データベースからの前記暗号化データに対して実行され、前記計算から得られた結果が暗号化され、前記暗号化データベースが、前記暗号化データの基礎となる前記暗号化されていないデータのサンプルを明らかにすることなく、少なくとも1つの形式の条件付きクエリに応答して正しい暗号化結果を得ることをサポートするように構成されている、
システム。
【請求項7】
前記暗号化データが、意味的にセキュアな暗号化によって暗号化される、請求項6に記載のシステム。
【請求項8】
前記暗号化データが、準同型暗号システムを使用して暗号化される、請求項7に記載のシステム。
【請求項9】
前記準同型暗号システムが、相加的準同型暗号システムである、請求項8に記載のシステム。
【請求項10】
前記準同型暗号システムが、2−DNF(論理和標準形)演算をサポートする、請求項8に記載のシステム。
【発明の詳細な説明】
【技術分野】
【0001】
本明細書の主題は、一般に、データセキュリティの技術に関する。本明細書に開示された例示的な実施形態は、構造化照会言語(SQL)データベース(DB)および/またはデータベース管理システム(DBMS)(例えば、MySQLなど)と共に特定のアプリケーションを見出し、それらは、ここでは特に参照しながら記載される。しかしながら、本明細書に開示されるものなどの様々な例示的実施形態はまた、他の種類のリレーショナルデータベースならびにグラフィックおよび/または他の種類のデータベースを含む他の同様のアプリケーションにも適用可能であることを理解されたい。
【背景技術】
【0002】
データセキュリティの分野では、特定の種類の暗号化データベースは不明ではない。しかしながら、従来は、データ解析における設計によって十分なプライバシーを組み込んだ適切なアーキテクチャについての強力なコンセンサスはなかった。例えば、従来のデータベースクエリに適用可能なままであるように暗号化データをどのように配置または記憶されるべきか、どのようにキー管理が実行されるべきか、および/または秘密解析を効率的に実行するためにどのような対策を講じなければならないかなどについての強力なコンセンサスはなかった。
【0003】
1つの提案されたアーキテクチャは、「CryptDB」として知られている。一般に、異なる暗号化がデータに連続的に適用される「暗号化の玉ねぎ(onions of encryption)」を使用して暗号化フォーマットでデータを記憶する必要がある。したがって、クエリに応じて、適切な暗号化フォーマットでデータにアクセスし、クエリに応答するために十分な計算を実行することができるまで、暗号化のレイヤは削除される(玉ねぎをはがすなど)ことができる。このアプローチは、SQLクエリのサブセットをサポートするように示されているが、これは、平文データベースの解析に既に熟練しているデータサイエンティストにとっては有益であるが、いくつかの潜在的な欠点がある。
【0004】
上述したアプローチの潜在的な欠点の1つは、CryptDBにおいて使用される全ての暗号システムが十分に強力なセキュリティ特性を有するとは限らないということである。例えば、決定論的暗号化および順序保持暗号化は、特定のクエリに応答するのに十分な情報よりも多くの情報を漏洩することがある。特に、SQL WHEREクエリを実行するために、CryptDBは、決定論的暗号化レイヤにアクセスする必要があり、データの分布および濃度を知っている人に追加情報を漏洩することがある。
【発明の概要】
【0005】
この簡単な説明は、本明細書に関連する概念を紹介するために提供される。それは、特許請求された主題の本質的な特徴を特定することを意図するものでもなく、特許請求された主題の範囲を決定または限定する際の使用を意図するものでもない。以下に記載される例示的な実施形態は、網羅的であることをまたは以下の詳細な説明に開示された厳密な形態に特許請求の範囲を限定することを意図するものではない。むしろ、実施形態は、当業者が本明細書に提示される主題の原理および実践を評価して理解することができるように選択されて以下に記載される。
【課題を解決するための手段】
【0006】
例示的な1つの実施形態によれば、暗号化データベースを生成する方法が提供される。本方法は、平文データエントリを有する平文データベースを受信することと、平文データベースを使用して暗号化データベースを生成することであって、暗号化データベースが暗号化データエントリを含む、生成することとを含む。暗号化データベースは、少なくとも1つの形式の条件付きクエリが、その復号なしで暗号化データエントリについてクエリが計算されたときに正しい暗号化結果を返すように、少なくとも1つの形式の条件付きクエリをサポートするように構成されている。
【0007】
別の例示的な実施形態によれば、暗号化データベースを管理するシステムが提供される。システムは、1つ以上のコンピュータに実装された抽出、転送、および書き込み(ETL)であって、ETLサーバは、(i)暗号化されていないデータを有する平文データベースを入力として受信し、(ii)入力された平文データベースに基づいて、暗号化データを有する対応する暗号化データベースを出力するように動作する前記ETLサーバと、1つ以上のコンピュータに実装されたデータベース(DB)であって、(i)ETLサーバから暗号化データベースを受信して保持し、(ii)DBサーバに提出されたクエリに応答して暗号化データを返すように動作する前記DBと、1つ以上のコンピュータに実装された計算であって、(i)クエリをDBサーバに提出し、(ii)DBサーバから返された暗号化データに関する計算を実行するように動作する前記計算サーバとを含む。適切には、計算は、暗号化データの復号なしに暗号化データベースからの暗号化データに対して実行され、前記計算から得られた結果は暗号化される。暗号化データベースは、暗号化データの基礎となる暗号化されていないデータのサンプルを明らかにすることなく、少なくとも1つの形式の条件付きクエリに応答して正しい暗号化結果を得ることをサポートするように構成されている。
【0008】
以下の詳細な説明は、添付図面における図面を参照する。しかしながら、本明細書に開示された本発明の主題は、様々な構成要素および構成要素の配置の、ならびに様々なステップおよびステップの配置の形態をとることができる。図面は、例示的なおよび/または好ましい実施形態を説明するためのものにすぎず、限定するものとして解釈されるべきではない。さらに、図面は縮尺通りではないことがあることを理解されたい。
【図面の簡単な説明】
【0009】
図1図1は、本発明の主題の態様にかかる例示的なシステムおよび/またはアーキテクチャを示す概略図である。
図2図2は、本発明の主題の態様にかかるデータベースを前処理して暗号化する例示的なプロセスおよび/または方法を示すフローチャートである。
【発明を実施するための形態】
【0010】
明瞭且つ簡潔にするために、本明細書は、本明細書に提示された好ましいおよび/または他の実施形態にしたがっておよび/またはそれらに適合して修正または変更された範囲を除き、それらの構成または動作に関するさらなる詳細な説明なしに当該技術分野において一般に知られている構造的および/または機能的要素、関連する標準、アルゴリズムおよび/またはプロトコル、および他の構成要素、方法および/またはプロセスを指すものとする。さらに、本明細書に開示された装置および方法は、例を介しておよび図面を参照して詳細に説明される。別段の指定がない限り、図中の同様の符号は、図面全体にわたって同一、類似または対応する要素の参照を示す。開示されて記載された例、配置、構成、構成要素、要素、装置、方法、材料などに対する変更が行われることができ、特定の用途のために所望されることができることが理解される。この開示において、特定の材料、技術、配置などのいかなる特定も、提示された特定の例に関連するか、またはそのような材料、技術、配置などの一般的な説明にすぎない。具体的な詳細または例の特定は、そのように具体的に指定されていない限り、義務的または限定的であると解釈されるように意図されておらず、そうであるべきではない。装置および方法の選択された例は、図面を参照して以下に詳細に開示されて記載される。
【0011】
本発明の主題の態様によれば、相加的準同型暗号システムによって保護されたDBに対して実行可能な計算のセットが拡張される。1つの例示的な実施形態は、SQLのような言語を使用して照会されることができるリレーショナルDBに関する。例えば、学校のDBにおける子供の数を合計する以下のSQLクエリを考える:
SELECT AVG(年齢)FROM hogwarts
【0012】
各世帯における子供の数が、意味的にセキュアな相加的準同型暗号システムを使用して暗号化されている場合、このクエリは、暗号化されたドメインで処理され、暗号化された結果を返す。そして、この結果は、アナリストまたは適切な特権を有する他のユーザによって復号される。
【0013】
僅かにより複雑なクエリを考える:
SELECT AVG(年齢)FROM hogwarts
WHERE gender=“女性”;
【0014】
このクエリにおいて、暗号化されたドメインの合計は、指定された条件、すなわち、性別属性が「女性」を満たすテーブルにおける特定の行にわたってのみ実行される。この小さな追加であっても、クエリの実行は、もはや簡単ではない。その理由は、意味的にセキュアな暗号化では、テーブルの暗号化された「性別」列における暗号文を調べることだけで、どの行が女性の子供に対応するのかを容易に実現可能に判断することができないからである。
【0015】
代わりに、性別列のために決定論的暗号化を使用することもできる。しかしながら、これは、男性用および女性用の2種類の暗号文のみをもたらす。これは、意味的にセキュアな相加的準同型暗号システムを使用して暗号化された各生徒の年齢をなおも保持したまま、女性および男性の子供に対応する行を特定することを容易とする。上述した決定論的暗号化アプローチの問題点は、DBサーバのみならず、暗号化されたドメインにおけるクエリを処理している任意の計算ノードにも情報を漏洩する可能性があるということである。実際には、記憶および計算は、クラウドまたはその他のものに基づくことができ、それゆえに、信頼できない当事者によって処理されることがある。例えば、そのようなDBにおける選択された平文攻撃(CPA)は、データベースにおけるどのエントリが少女に対応し且つ少年に対応するのかを明白に明らかにする。本発明の主題の態様によれば、そのようなプライバシー漏洩を回避するためのシステムおよび/または方法が提案される。より具体的には、上記のような条件付きクエリをセマンティックセキュリティによって処理することができるシステムおよび/または方法が記載される。
【0016】
本明細書は、プライバシーに敏感なデータに対して解析を実行するためのアーキテクチャを記載する。適切には、アーキテクチャは、DBサーバ、例えば信頼できないDBサーバを含む。実際には、DBサーバは、暗号化データを記憶し、MySQLなどのリレーショナルデータベース管理システムによってバックアップされる。このアーキテクチャはまた、暗号化されたドメインで計算を実行する計算サーバ(例えば、信頼できない計算サーバ)と、DBに問い合わせるウェブサーバまたはウェブサービスとを含む。適切には、計算サーバは、ウェブサーバ/サービスによって提出された全てのクエリについて暗号化結果を返す。実際には、許可されたユーザのみが返された結果を復号することができる。例示的な実施形態において、基礎データのサンプルを発見することなく、集計関数(例えば、総和、線形結合、基本分類器、カウントクエリおよびヒストグラムを含む)が計算される。適切には、本発明の主題の目的(例えば、SQLクエリのサブセットをサポートする一方で、改善されたプライバシー保証を提供する)は、記載されたシステムおよび/またはアーキテクチャ内で意味的にセキュアな準同型暗号化技術を使用して達成される。
【0017】
一般に、本明細書において記載されるシステムおよび/またはアーキテクチャは、プライバシー保護データ解析を可能にし、それにより、データセットの所有者またはキュレータは、データセットの暗号化バージョンに対してクエリを実行する能力をユーザ(例えば、アナリストまたはデータサイエンティストなど)を与える。より正確には、開示されたシステムおよび/またはアーキテクチャは、データセットの所有者およびアナリストに以下の機能を適切に提供する:
データセット所有者には、暗号鍵の生成、データセットの前処理および暗号化の能力が提供される;および
アナリストには、暗号化形式でデータセットに対してクエリを実行し、クエリ結果を復号するためにデータ所有者から必要な鍵を取得する能力が提供される。
【0018】
適切には、上述した機能を提供するために、システムは、例えば、図1に示されるような3層アーキテクチャによって設計される。より具体的には、実際には、システムは、(i)例えばウェブサービスおよび/またはウェブサーバ10などを介して実装するいわゆる「フロントエンド」、(ii)計算サーバ(CS)20を含むいわゆる「バックエンド」、および(iii)例えば、MySQLまたは別のリレーショナルもしくは他の適切な種類のDBを介して実装されたDBサーバを含むDBMS30を含むことができる。
【0019】
実際には、基本的な実施形態は、以下の要素を含む:(1)複数の暗号化フォーマットのうちの1つ以上でデータにデータを記憶するDBサーバ(例えば、DBサーバは、MySQL DBサーバなど);(2)(例えば、適切なプライバシー保護プロトコルを介して)DBによってサービスされる暗号化データを使用してユーザ/アナリストによって提供されるクエリを実行するCS;および(3)DBに対して行われたクエリをサポートし、作成されたクエリに対応する暗号化結果を受信するウェブサービス/サーバ。
【0020】
拡張された実施形態において、鍵管理機能を提供する鍵認証局(KA)40が含まれる。特に、KA40は、DBサーバに記憶された暗号化DBを生成するための公開暗号鍵を提供する。さらに、KA40は、プライバシー保護プロトコルを実行するために公開暗号鍵をCS20に提供する。最後に、KA40は、CS20から受信したクエリの暗号化結果をユーザが復号するのを可能にするウェブサービス/サーバの許可されたユーザに復号鍵を提供する。
【0021】
さらに拡張された実施形態において、暗号化DB(ここではDとして示される)を準備するために、追加の要素および/または要素が提供される。実際には、Dの準備は、暗号化されていないDB(ここではDとして示される)を入力として開始する。すなわち、Dにおけるデータ要素は、暗号化されていない形式でまたは平文として最初に記憶および/または保持される。暗号化の前に、Dのスキーマは、拡張されたスキーマが所望のSQLクエリのサブセットをサポートするように拡張される。拡張されたDB(ここではDとして示される)において、データ要素はまた、暗号化されていない形式でまたは平文として記憶/保持される。(結果のデータによる拡張スキーマを有する)Dは、1つ以上の暗号化フォーマットを使用して暗号化されてDを達成する。最後に、Dは、DBサーバに送信される。
【0022】
適切には、フロントエンドは、特定のタスクまたは複数のタスクに関する特定のビューおよび/またはユーザインターフェース(UI)を提供する。実際には、例えば、暗号化データセット32eに対して構造化照会言語(SQL)および/またはSQL様クエリを書き込んで実行するためにアナリストによって使用されるように、アナリストビュー12および/または適切なUIが第1の場合に提供されるのに対して、第2の場合には、平文データセット32を前処理および暗号化するためにデータ所有者によって使用されるように、抽出、転送および書き込み(ETL)ビュー14および/または適切なUIが提供される。実際には、フロントエンドは、CS20、アナリストビュー12、およびETLビュー14のETLサーバ50と直接対話することができる。適切な実施形態において、ETLサーバ50は、データ所有者の制御下で信頼できる「ヘルパー」であってもよい。対照的に、CS20は、別個のエンティティとして機能する信頼できないヘルパーであってもよい。適切には、CS20は、受信したアナリストのクエリを処理し、DBMS30と対話する責を負う。データセット32eは、DBMS30において暗号化されることから、CS20は、暗号化データに対するクエリを実行し、フロントエンドを介してアナリストに(暗号化された)結果を返す。例えば鍵認証局(KA)40から必要な復号鍵を予め取得したアナリストは、CS20からフロントエンドによって受信したデータを復号することによってクエリの結果を復元することができる。
【0023】
例示的な1つの実施形態において、DBMS30は、標準的なMySQL DBサーバによって実装されると共に、CS20およびETLサーバ50は、双方とも、(例えば、同じコードベースを使用する)Java(登録商標)ベースのプログラムによって実装される。適切には、フロントエンドは、Java(登録商標)script、ハイパーテキストマークアップ言語(HTML)およびカスケードスタイルシート(CSS)の組み合わせとして実装されてもよい。これは、実際には、本明細書に記載された機能、目的、動作および/または目的を達成するのに適した上述した構成要素のために他の実装が使用されることができると述べた。
【0024】
本明細書において記載される例示的な実施形態によれば、回避することが求められる1つの脅威は、システムにインポートされたデータセット32に関する情報を学習するデータ所有者およびアナリスト以外の当事者である。これは、CS20およびDBMS30における偶発的および意図的な漏洩の双方を含み、双方とも信頼できない可能性がある。適切には、インポートされたデータセット32は、DBMS30およびCS20のいずれにもアクセスできない鍵のもとで暗号化されることから、そのような漏洩は、設計によって防止される。さらに、コンテキストに応じて、システムのアーキテクチャは、例えば以下のようなさらなる脅威に対する保護を提供することができる。
(1)インポートされたデータセット32にレコードが含まれている個人に関する機密情報を学習するアナリスト;および/または、
(2)アナリストのクエリに関して学習するCS20、DBMS30および/またはデータ所有者。
【0025】
例えば、上記項目(1)に対するガードは、個人のプライバシーを保持することと称され、差分プライバシーなどの技術を使用して達成されることができ、上記項目(2)に対するガードは、クエリプライバシーを保持することと称され、「現実の」クエリを難読化する「特別な」クエリを使用して達成されることができる。
【0026】
ここで図2をさらに参照すると、例えばETLサーバ50を介して平文DB Dが前処理されて暗号化されるプロセスおよび/または方法100が示されている。実際には、DB所有者などは、ETLサーバ50にアクセスして平文データセット32を前処理および暗号化するためにETLビュー14または他の適切なUIを使用するフロントエンドウェブサービス/サーバ10を使用することができる。
【0027】
適切には、プロセスまたは方法100は、入力された平文DB Dを、暗号化されたドメインにおいて条件付きクエリをサポートする暗号化DB Dに変換する。もちろん、適切な意味的にセキュアな準同型暗号システムを使用してDの個々の各エントリを単に暗号化するだけで単純にDを構築することができるが、上記説明されたように、このアプローチは、所望なように条件付きクエリを効率的にサポートしない。代わりに、本明細書において記載されるように、Dが最初に構築され、これは、Dの拡張された平文バージョンであり、次いでDは暗号化されてDを得る。
【0028】
示されるように、ステップ110において、D(平文データセット32を含む)が、例えばETLプロセスを使用してETLサーバ50に入力される。Dのデータ要素は、適切に暗号化されず、および/または平文形式で表される。適切には、Dとともに、条件付きクエリなどに関連して使用するために利用可能とされる属性を特定する仕様が入力される。例えば、上記シナリオにおいて、性別属性は、2つの異なる値、すなわち男性または女性をとるような指定された条件付き属性であってもよい。条件付き属性は、暗号化されたドメインにおいて計算された条件付きクエリおよび/または同様のものの実行に利用可能とされるDBの属性である(例えば、入力Dとともに指定および/または特定される)。
【0029】
ステップ120において、入力Dのスキーマは、例えば、DBが暗号化された後に拡張スキーマが所望のクエリのセットをサポートするように、Dを達成するように拡張される。
【0030】
より具体的には、Dの拡張および/または生成は、以下のように行われることができる。結果の拡張平文DB Dは、入力Dと比較していくつかの追加の列を含む。追加の列の数は
【0031】
【数1】
【0032】
であり、M個の指定された条件付き属性があり、それらの属性のそれぞれがvをとる場合、値mを可能とする。ここで、m=1、2、...、Mである。実際には、いくつかの属性は、特定のDBエントリについて1つの値のみをとることができる。例えば、上述した性別属性は、男性または女性の値をとることができる。他の属性は、特定のデータベースエントリについて複数の値をとることができる。例えば、特定の生徒の趣味属性は、読書、サイクリング、ハーブの研究などの複数の値をとることができる。
【0033】
1つの適切な実施形態において、DからDを構築するために、以下のサブステップがM個の条件付き属性のそれぞれに適用される。以下のサブステップにおいて、v個の異なる値をとる条件付き属性Aを考える。ここで、m=1、2、...、Mである。そして、各属性Aについて以下とする:
1)D=Dに設定する。
2)Dにおいてv個の追加の列を作成する。便宜上、v個の追加の列が行列Sに属している結果、データベースDに追加された追加のv×n個のエントリを考える。この表記法は、i行目且つj列目の追加要素をS(i、j)と指すのを可能とする。ここで、1≦i≦nおよび1≦j≦vである。
3)全ての行インデックスiについて、S(i、j)をAのj番目の可能な値のバイナリインジケータ変数に設定する。それゆえに、特定の行i∈{1,2、...、n}について、属性値がb∈{1,2、...、v}である場合、全てのj≠bについてS(i、b)=1およびS(i、j)=0である。
【0034】
拡張された平文DB Dを適切に取得した後、ステップ130において、例えば、KA40から取得した公開鍵(pk)を使用して、Dが暗号化されてDを取得する。実際には、この暗号化は、付加的な秘密の共有と意味的にセキュアな準同型暗号システムとの組み合わせを使用することによって適切に達成される。特定の環境、計算、記憶および/または他の適用可能な考慮事項に応じて、他の変形例も同様に適切であるおよび/または望ましいかもしれないが、以下は、Dを構築するために使用される準同型暗号システムの種類に応じて使用されることができる2つの適切な実施形態を記載する。
【0035】
第1の変形例または実施形態において、暗号化手順は、単一の乗算の後に無制限数の加算が続く暗号化されたドメイン計算をサポートする例えばBGN(Boneh、GohおよびNissim)暗号システムなどの2−DNF(論理和標準形)演算をサポートする暗号システムを使用する。BGN暗号システムでは、照会された属性毎に単一の暗号化された列を追加して(例えば、上記取得したような)データベースDが暗号化される。BGN変形例の使用は、特に、暗号化結果を復号するために利用可能な計算能力は比較的高いが、DBサーバにおいて利用可能な記憶能力が比較的低い場合に適用可能である。
【0036】
第2の変形例または実施形態において、暗号化手順は、暗号化されたドメインの加算のみをサポートする例えばPaillier暗号システムなどの相加的準同型暗号システムを使用する。2つの変形例は、暗号システムの能力とDの記憶オーバーヘッドとのトレードオフに対処する。Paillier暗号システムでは、(照会された属性、条件付き属性)のペア毎に単一の暗号化された列を追加して(例えば、上記取得したような)データベースDが暗号化される。Paillierバリアントの使用は、特に、暗号化結果を復号するために利用可能な計算能力は比較的低いが、DBサーバにおいて利用可能な記憶能力は比較的高くすることができる場合に適用可能である。
【0037】
ここで、上述した第1の変形例を参照すると、暗号化プロセスまたはステップ130への入力は、(1)
【0038】
【数2】
【0039】
の追加の列を含む拡張平文データベースD、および(2)2−DNF準同型暗号システムの公開鍵pkを含む。結果の出力は、暗号化データベースDであり、
【0040】
【数3】
【0041】
の追加の列のエントリは、2−DNF準同型暗号システムを使用して暗号化され、照会されるべき属性は、追加的にブラインドされる。
【0042】
(以下のサブステップの適用を含む)暗号化プロトコルを説明するために、ここでは、条件付き属性、すなわちWHERE句に続く属性と、クエリ属性、すなわちSELECT文に続く属性とに別個に焦点をあてる。
1)上記のように、条件付き属性をAとする。ここで、v個の異なる値をとるm=1,2、...、Mである。変数j=1,2、...、vを使用してこれらの値をインデキシングする。そして、各属性Aについて、i行目におけるAのj番目の可能な値についてのバイナリインジケータ変数S(i、j)が構成される。ここで、i∈{1,2、...、n}である。S(i、j)は、意味的にセキュアな2−DNF準同型暗号システムを使用して暗号化され、E(pk、S(i、j))を取得する。
2)照会された属性をQ、k=1,2、...、Lとする。そして、行i∈{1,2、...、n}における属性Qの各平文値Q(i)の代わりに、データ所有者の公開鍵pkの下でのクエリ属性値の2−DNF準同型暗号化であるE(pk、Q(i))を記憶する。
【0043】
におけるM個の条件付き属性および照会済み属性のそれぞれの値に上記ステップを適用した結果、暗号化データベースDが得られる。
【0044】
ここで、上述した第2の変形例を参照すると、暗号化プロセスまたはステップ130への入力は、(1)
【0045】
【数4】
【0046】
の追加の列を含む拡張平文データベースD、および(2)相加的準同型暗号システムの公開鍵pkを含む。結果の出力は、暗号化データベースDであり、
【0047】
【数5】
【0048】
の追加の列のエントリは、相加的準同型暗号システムを使用して暗号化され、照会されるべき属性は、追加的にブラインドされる。
【0049】
(以下のサブステップの適用を含む)暗号化プロトコルを説明するために、ここでは再度、条件付き属性、すなわちWHERE句に続く属性と、クエリ属性、すなわちSELECT文に続く属性とに別個に焦点をあてる。
1)上記のように、条件付き属性をAとする。ここで、v個の異なる値をとるm=1,2、...、Mである。上記のように、変数j=1,2、...、vを使用してこれらの値をインデキシングする。そして、各属性Aについて、i行目におけるAのj番目の可能な値についてのバイナリインジケータ変数S(i、j)が構成される。ここで、i∈{1,2、...、n}である。S(i、j)は、意味的にセキュアな相加的準同型暗号システムを使用して暗号化され、E(pk、S(i、j))を取得する。
2)照会された属性をQ、k=1,2、...、Lとする。そして、行i∈{1,2、...、n}における属性Qの値Q(i)について、間隔∈[−R、R]から無作為に均一に整数r(i)を選択する。Rは正の整数であり、λ(R)によって示されるRにおけるビット数はセキュリティパラメータである。平文属性値Q(i)の代わりに、加法的にブラインドされた値
【0050】
【数6】
【0051】
を記憶する。これらのブラインドされた値を含む列を新たな属性
【0052】
【数7】
【0053】
とみなす。
3)照会された各属性Q、および条件付き属性Aのv個の可能な値のそれぞれについて、Rk,mによって示される追加の列が導入される。この新たな列のi行目のエントリは、j=1,2、...、vについて、Rk,j(i)=E(pk,r(i)...S(i、j))によって与えられる。
【0054】
におけるM個の条件付き属性およびL個の照会された属性のそれぞれの値に上記ステップを適用した結果、暗号化データベースDを得る。上記検討した2−DNF準同型の場合とは異なり、上記サブステップ3の結果として追加された列の総数は、
【0055】
【数8】
【0056】
であり、このアプローチでは記憶効率が低下させる。
【0057】
いずれの場合にも、このようにして暗号化DB Dを取得した後、ステップ140において、暗号化DB Dは、送信され、ロードされ、および/またはDBMS30に送られる。実際には、DBMS30において、全てのテーブル名は平文で利用可能であり、全ての列属性名は平文で利用可能であるが、テーブルにおけるエントリは、上記説明されたように暗号化される。すなわち、DBサーバにおいて平文で利用可能な項目は、属性名のみである。例えば、リレーショナルDBにおいて、テーブルおよび列の名称は既知であるが、それらの列におけるデータエントリは暗号化される。
【0058】
このようにして暗号化DB DをDBMS30にロードすると、それは、例えばアナリストビュー12を使用してフロントエンドウェブサービス/サーバ10を介してユーザ/アナリストによって提出されたクエリに応答してCS20によってアクセスされることができる。適切には、クエリは、平文形式で提出されることができる。DBMS30のDBサーバは、順次、CS20にデータを提供し、CS20によって実行される計算は、暗号化されたドメインにおいて適切に実行される。提出されたクエリに応答して、CS20によって実行された計算の結果は、暗号化された形式で返される。例えば、KA40から利用可能にされたまたは取得された対応する復号鍵または秘密鍵(暗号化を実行するために使用される公開鍵に対応する)を使用して、アナリストは、受信した暗号化結果を復号し、それらを平文でみることができる。実際には、そのような復号/秘密鍵は、情報またはデータ漏洩の脅威の可能性を制限するように、CS20またはDBMS30から利用可能とされずおよび/または保持されない。
【0059】
上記方法、システム、プラットフォーム、モジュール、プロセス、アルゴリズムおよび/または装置は、特定の実施形態に関して記載された。しかしながら、特定の修正および/または変更もまた想定されることを理解されたい。
【0060】
本明細書に提示される特定の例示的な実施形態に関連して、特定の構造的および/または機能的特徴は、定義された要素および/または構成要素に組み込まれるものとして記載されることが理解されたい。しかしながら、これらの特徴はまた、同一または同様の利益のために、必要に応じて同様に他の要素および/または構成要素に組み込まれてもよいことが想定される。例示的な実施形態の異なる態様は、所望の用途に適した他の代替実施形態を達成するために必要に応じて選択的に使用されてもよく、それにより、他の代替実施形態は、それに組み込まれる態様の各利点を実現することも理解されたい。
【0061】
本明細書において記載された特定のタスク、ステップ、プロセス、方法、機能、要素および/または構成要素のうちの任意の1つ以上は、ハードウェア、ソフトウェア、ファームウェアまたはそれらの組み合わせによって適切に実装されることができることも理解されたい。特に、様々なモジュール、構成要素および/または要素は、本明細書に記載されたタスク、ステップ、プロセス、方法および/または機能のうちの1つ以上を実行するように構成および/またはセットアップされたプロセッサ、電気回路、コンピュータおよび/または他の電子データ処理装置によって具現化されることができる。例えば、特定の要素を具現化するプロセッサ、コンピュータまたは他の電子データ処理装置は、コンピュータまたは他の電子データ処理装置によって実施および/または実行されたときに、本明細書に記載されたタスク、ステップ、プロセス、方法および/または機能のうちの1つ以上が完了または実行されるように、(例えば、ソースコード、解釈コード、オブジェクトコード、直接実行可能コードなどの)コードの適切なリストもしくは他の同様の命令またはソフトウェアもしくはファームウェアによって提供され、供給されおよび/またはプログラミングされることができる。適切には、コードもしくは他の同様の命令またはソフトウェアもしくはファームウェアのリストは、コンピュータまたは他の電子データ処理装置によって提供可能および/または実行可能であるように、持続性コンピュータおよび/または機械可読記憶媒体または媒体として実装され、および/またはその内部におよび/またはその上に記録、記憶、包含、または含有される。例えば、適切な記憶媒体および/または媒体は、限定されるものではないが、フロッピーディスク、フレキシブルディスク、ハードディスク、磁気テープ、もしくは任意の他の磁気記憶媒体または媒体、CD−ROM、DVD、光ディスク、もしくは任意の他の光媒体または媒体、RAM、ROM、PROM、EPROM、フラッシュEPROM、もしくは他のメモリもしくはチップもしくはカートリッジ、またはコンピュータもしくは機械もしくは電子データ処理装置が読み出して使用することができる任意の他の有形媒体または媒体を含むことができる。本質的に、本明細書において使用される場合、持続性コンピュータ可読媒体および/または機械可読媒体および/または媒体は、一時的な伝搬信号を除き、全てのコンピュータ可読媒体および/または機械可読媒体および/または媒体を含む。
【0062】
必要に応じて、本明細書において記載された特定のタスク、ステップ、プロセス、方法、機能、要素および/または構成要素のうちの任意の1つ以上は、1つ以上の汎用コンピュータ、専用コンピュータ、プログラミングされたマイクロプロセッサもしくはマイクロコントローラおよび周辺集積回路要素、ASICもしくは他の集積回路、デジタル信号プロセッサ、ディスクリート素子回路などのハードワイヤード電子回路もしくは論理回路、PLD、PLA、FPGA、グラフィックカードCPU(GPU)、もしくはPALなどのプログラマブル論理素子に実装および/または具現化されることができる。一般に、本明細書に記載された各タスク、ステップ、プロセス、方法および/または機能を順次実装することができる有限状態機械を実装することができる任意の装置が使用可能である。
【0063】
さらに、本明細書に記載されている特定の要素は、適切な状況下で、独立した要素であってもよくまたは別の方法で分割されてもよいことを理解されたい。同様に、1つの特定の要素によって実行されるように記載された複数の特定の機能は、個々の機能を実行するために独立して動作する複数の別個の要素によって実行されてもよく、または、特定の個々の機能は、協調して動作する複数の別個の要素によって実行されてもよい。あるいは、互いに区別されて本明細書に記載および/または示されたいくつかの要素または構成要素は、必要に応じて物理的にまたは機能的に組み合わされてもよい。
【0064】
要するに、本明細書は、好ましい実施形態を参照して記載されている。明らかに、本明細書を読んで理解すると、修正および変更が他人に生じるであろう。本発明の主題は、添付の特許請求の範囲またはその均等物の範囲内に含まれる限りにおいて、そのような全ての修正および変更を含むと解釈されることが意図される。
図1
図2