JP2019035949A - 暗号化データベースに対する解析を支援するシステムおよびアーキテクチャ - Google Patents

暗号化データベースに対する解析を支援するシステムおよびアーキテクチャ Download PDF

Info

Publication number
JP2019035949A
JP2019035949A JP2018135417A JP2018135417A JP2019035949A JP 2019035949 A JP2019035949 A JP 2019035949A JP 2018135417 A JP2018135417 A JP 2018135417A JP 2018135417 A JP2018135417 A JP 2018135417A JP 2019035949 A JP2019035949 A JP 2019035949A
Authority
JP
Japan
Prior art keywords
encrypted
database
query
server
plaintext
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
JP2018135417A
Other languages
English (en)
Other versions
JP2019035949A5 (ja
JP7061042B2 (ja
Inventor
シャンタヌ・レイン
Rane Shantanu
ヴィンセント・ビンシェドラー
Bindschaedler Vincent
アレハンドロ・イー・ブリトー
E Brito Alejandro
アーシン・ウズン
Uzun Ersin
ヴァニシュリー・ラオ
Rao Vanishree
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.)
Palo Alto Research Center Inc
Original Assignee
Palo Alto Research Center Inc
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 Palo Alto Research Center Inc filed Critical Palo Alto Research Center Inc
Publication of JP2019035949A publication Critical patent/JP2019035949A/ja
Publication of JP2019035949A5 publication Critical patent/JP2019035949A5/ja
Application granted granted Critical
Publication of JP7061042B2 publication Critical patent/JP7061042B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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
    • 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/25Integrating or interfacing systems involving database management systems
    • G06F16/254Extract, transform and load [ETL] procedures, e.g. ETL data flows in data warehouses
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • H04L63/0435Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload wherein the sending and receiving network entities apply symmetric encryption, i.e. same key used for encryption and decryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • H04L63/0442Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload wherein the sending and receiving network entities apply asymmetric encryption, i.e. different keys for encryption and decryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/06Network architectures or network communication protocols for network security for supporting key management in a packet data network
    • H04L63/061Network architectures or network communication protocols for network security for supporting key management in a packet data network for key exchange, e.g. in peer-to-peer networks
    • 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
    • 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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/085Secret sharing or secret splitting, e.g. threshold schemes
    • 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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0894Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2107File encryption

Abstract

【課題】暗号化データベースを生成する方法を提供する。【解決手段】方法100は、まず、1つ以上の列に平文データエントリを有する平文データベースDpを受信する。次いで、受信した平文データベースに1つ以上の列を追加する。ここで、追加された各列は条件付きクエリのために利用可能にされるべき属性に対応する。更に、拡張された平文データベースDaを暗号化して、暗号化データエントリを含む暗号化データベースを生成する。暗号化データベースDeは、追加された列に対応するそれらの属性についての少なくとも1つの形式の条件付きクエリをサポートする。少なくとも1つの形式の条件付きクエリは、暗号化データエントリを復号することなく、暗号化データエントリについて計算し、暗号化結果を生成する。【選択図】図2

Description

本明細書の主題は、一般に、データセキュリティの技術に関する。本明細書に開示された例示的な実施形態は、構造化照会言語(SQL)データベース(DB)および/またはデータベース管理システム(DBMS)(例えば、MySQLなど)と共に特定のアプリケーションを見出し、それらは、ここでは特に参照しながら記載される。しかしながら、本明細書に開示されるものなどの様々な例示的実施形態はまた、他の種類のリレーショナルデータベースならびにグラフィックおよび/または他の種類のデータベースを含む他の同様のアプリケーションにも適用可能であることを理解されたい。
データセキュリティの分野では、特定の種類の暗号化データベースは不明ではない。しかしながら、従来は、データ解析における設計によって十分なプライバシーを組み込んだ適切なアーキテクチャについての強力なコンセンサスはなかった。例えば、従来のデータベースクエリに適用可能なままであるように暗号化データをどのように配置または記憶されるべきか、どのようにキー管理が実行されるべきか、および/または秘密解析を効率的に実行するためにどのような対策を講じなければならないかなどについての強力なコンセンサスはなかった。
1つの提案されたアーキテクチャは、「CryptDB」として知られている。 一般に、異なる暗号化がデータに連続的に適用される「暗号化の玉ねぎ(onions of encryption)」を使用して暗号化フォーマットでデータを記憶する必要がある。したがって、クエリに応じて、適切な暗号化フォーマットでデータにアクセスし、クエリに応答するために十分な計算を実行することができるまで、暗号化のレイヤは削除される(玉ねぎをはがすなど)ことができる。このアプローチは、SQLクエリのサブセットをサポートするように示されているが、これは、平文データベースの解析に既に熟練しているデータサイエンティストにとっては有益であるが、いくつかの潜在的な欠点がある。
上述したアプローチの潜在的な欠点の1つは、CryptDBにおいて使用される全ての暗号システムが十分に強力なセキュリティ特性を有するとは限らないということである。例えば、決定論的暗号化および順序保持暗号化は、特定のクエリに応答するのに十分な情報よりも多くの情報を漏洩することがある。特に、SQL WHEREクエリを実行するために、CryptDBは、決定論的暗号化レイヤにアクセスする必要があり、データの分布および濃度を知っている人に追加情報を漏洩することがある。
暗号化データベースを提供および/または利用するための新規なおよび/または改良されたシステムおよび/または方法が本明細書に開示される。
例示的な1つの実施形態によれば、暗号化データベースを生成する方法が提供される。本方法は、1つ以上の列に平文データエントリを有する平文データベースを受信することと、拡張された平文データベースを生成するために受信した平文データベースを拡張することであって、拡張が1つ以上の列を受信した平文データベースに追加することを含み、追加された各列が条件付きクエリのために利用可能にされるべき属性に対応する、拡張することと、拡張された平文データベースを暗号化して、暗号化データエントリを含む暗号化データベースを生成することとを含む。暗号化データベースは、追加された列に対応するそれらの属性についての少なくとも1つの形式の条件付きクエリをサポートし、少なくとも1つの形式の条件付きクエリは、暗号化結果を生成するように、その復号なしで暗号化データエントリについて計算される。
別の例示的な実施形態によれば、暗号化データベースを管理するシステムが提供される。システムは、1つ以上のコンピュータに実装された抽出、転送、および書き込み(ETL)であって、ETLサーバは、(i)1つ以上の列において暗号化されていないデータエントリを有する平文データベースを入力として受信し、(ii)拡張された平文データベースを生成するように受信した平文データベースを拡張し、前記拡張された平文データベースが、入力された平文データベースに対する1つ以上の列の追加を含み、前記追加された列が条件付きクエリに利用可能にされるべき属性に対応し、(iii)暗号化データエントリを含む暗号化データベースを生成するように拡張された平文データベースを暗号化するように動作する前記ETLサーバと、1つ以上のコンピュータに実装されたデータベース(DB)であって、(i)ETLサーバから暗号化データベースを受信して保持し、(ii)DBサーバに提出されたクエリに応答して暗号化データを返すように動作する前記DBサーバと、1つ以上のコンピュータに実装された計算であって、(i)クエリをDBサーバに提出し、(ii)DBサーバから返された暗号化データに関する計算を実行するように動作する前記計算サーバとを含む。適切には、計算は、暗号化データの復号なしに暗号化データベースからの暗号化データに対して実行され、前記計算から得られた結果は暗号化される。暗号化データベースは、暗号化データの基礎となる暗号化されていないデータのサンプルを明らかにすることなく、少なくとも1つの形式の条件付きクエリに応答して正しい暗号化結果を得ることをサポートするように適切に構成されている。
図1は、本発明の主題の態様にかかる例示的なシステムおよび/またはアーキテクチャを示す概略図である。 図2は、本発明の主題の態様にかかるデータベースを前処理して暗号化する例示的なプロセスおよび/または方法を示すフローチャートである。
明瞭且つ簡潔にするために、本明細書は、本明細書に提示された好ましいおよび/または他の実施形態にしたがっておよび/またはそれらに適合して修正または変更された範囲を除き、それらの構成または動作に関するさらなる詳細な説明なしに当該技術分野において一般に知られている構造的および/または機能的要素、関連する標準、アルゴリズムおよび/またはプロトコル、および他の構成要素、方法および/またはプロセスを指すものとする。さらに、本明細書に開示された装置および方法は、例を介しておよび図面を参照して詳細に説明される。別段の指定がない限り、図中の同様の符号は、図面全体にわたって同一、類似または対応する要素の参照を示す。開示されて記載された例、配置、構成、構成要素、要素、装置、方法、材料などに対する変更が行われることができ、特定の用途のために所望されることができることが理解される。この開示において、特定の材料、技術、配置などのいかなる特定も、提示された特定の例に関連するか、またはそのような材料、技術、配置などの一般的な説明にすぎない。具体的な詳細または例の特定は、そのように具体的に指定されていない限り、義務的または限定的であると解釈されるように意図されておらず、そうであるべきではない。装置および方法の選択された例は、図面を参照して以下に詳細に開示されて記載される。
本発明の主題の態様によれば、相加的準同型暗号システムによって保護されたDBに対して実行可能な計算のセットが拡張される。1つの例示的な実施形態は、SQLのような言語を使用して照会されることができるリレーショナルDBに関する。例えば、学校のDBにおける子供の数を合計する以下のSQLクエリを考える:
SELECT AVG(年齢)FROM hogwarts
各世帯における子供の数が、意味的にセキュアな相加的準同型暗号システムを使用して暗号化されている場合、このクエリは、暗号化されたドメインで処理され、暗号化された結果を返す。そして、この結果は、アナリストまたは適切な特権を有する他のユーザによって復号される。
僅かにより複雑なクエリを考える:
SELECT AVG(年齢)FROM hogwarts
WHERE gender=“女性”;
このクエリにおいて、暗号化されたドメインの合計は、指定された条件、すなわち、性別属性が「女性」を満たすテーブルにおける特定の行にわたってのみ実行される。この小さな追加であっても、クエリの実行は、もはや簡単ではない。その理由は、意味的にセキュアな暗号化では、テーブルの暗号化された「性別」列における暗号文を調べることだけで、どの行が女性の子供に対応するのかを容易に実現可能に判断することができないからである。
代わりに、性別列のために決定論的暗号化を使用することもできる。しかしながら、これは、男性用および女性用の2種類の暗号文のみをもたらす。これは、意味的にセキュアな相加的準同型暗号システムを使用して暗号化された各生徒の年齢をなおも保持したまま、女性および男性の子供に対応する行を特定することを容易とする。上述した決定論的暗号化アプローチの問題点は、DBサーバのみならず、暗号化されたドメインにおけるクエリを処理している任意の計算ノードにも情報を漏洩する可能性があるということである。実際には、記憶および計算は、クラウドまたはその他のものに基づくことができ、それゆえに、信頼できない当事者によって処理されることがある。例えば、そのようなDBにおける選択された平文攻撃(CPA)は、データベースにおけるどのエントリが少女に対応し且つ少年に対応するのかを明白に明らかにする。本発明の主題の態様によれば、そのようなプライバシー漏洩を回避するためのシステムおよび/または方法が提案される。より具体的には、上記のような条件付きクエリをセマンティックセキュリティによって処理することができるシステムおよび/または方法が記載される。
本明細書は、プライバシーに敏感なデータに対して解析を実行するためのアーキテクチャを記載する。適切には、アーキテクチャは、DBサーバ、例えば信頼できないDBサーバを含む。実際には、DBサーバは、暗号化データを記憶し、MySQLなどのリレーショナルデータベース管理システムによってバックアップされる。このアーキテクチャはまた、暗号化されたドメインで計算を実行する計算サーバ(例えば、信頼できない計算サーバ)と、DBに問い合わせるウェブサーバまたはウェブサービスとを含む。適切には、計算サーバは、ウェブサーバ/サービスによって提出された全てのクエリについて暗号化結果を返す。実際には、許可されたユーザのみが返された結果を復号することができる。例示的な実施形態において、基礎データのサンプルを発見することなく、集計関数(例えば、総和、線形結合、基本分類器、カウントクエリおよびヒストグラムを含む)が計算される。適切には、本発明の主題の目的(例えば、SQLクエリのサブセットをサポートする一方で、改善されたプライバシー保証を提供する)は、記載されたシステムおよび/またはアーキテクチャ内で意味的にセキュアな準同型暗号化技術を使用して達成される。
一般に、本明細書において記載されるシステムおよび/またはアーキテクチャは、プライバシー保護データ解析を可能にし、それにより、データセットの所有者またはキュレータは、データセットの暗号化バージョンに対してクエリを実行する能力をユーザ(例えば、アナリストまたはデータサイエンティストなど)を与える。より正確には、開示されたシステムおよび/またはアーキテクチャは、データセットの所有者およびアナリストに以下の機能を適切に提供する:
・データセット所有者には、暗号鍵の生成、データセットの前処理および暗号化の能力が提供される;および
・アナリストには、暗号化形式でデータセットに対してクエリを実行し、クエリ結果を復号するためにデータ所有者から必要な鍵を取得する能力が提供される。
適切には、上述した機能を提供するために、システムは、例えば、図1に示されるような3層アーキテクチャによって設計される。より具体的には、実際には、システムは、(i)例えばウェブサービスおよび/またはウェブサーバ10などを介して実装するいわゆる「フロントエンド」、(ii)計算サーバ(CS)20を含むいわゆる「バックエンド」、および(iii)例えば、MySQLまたは別のリレーショナルもしくは他の適切な種類のDBを介して実装されたDBサーバを含むDBMS30を含むことができる。
実際には、基本的な実施形態は、以下の要素を含む:(1)複数の暗号化フォーマットのうちの1つ以上でデータにデータを記憶するDBサーバ(例えば、DBサーバは、MySQL DBサーバなど);(2)(例えば、適切なプライバシー保護プロトコルを介して)DBによってサービスされる暗号化データを使用してユーザ/アナリストによって提供されるクエリを実行するCS;および(3)DBに対して行われたクエリをサポートし、作成されたクエリに対応する暗号化結果を受信するウェブサービス/サーバ。
拡張された実施形態において、鍵管理機能を提供する鍵認証局(KA)40が含まれる。特に、KA40は、DBサーバに記憶された暗号化DBを生成するための公開暗号鍵を提供する。さらに、KA40は、プライバシー保護プロトコルを実行するために公開暗号鍵をCS20に提供する。最後に、KA40は、CS20から受信したクエリの暗号化結果をユーザが復号するのを可能にするウェブサービス/サーバの許可されたユーザに復号鍵を提供する。
さらに拡張された実施形態において、暗号化DB(ここではDとして示される)を準備するために、追加の要素および/または要素が提供される。実際には、Dの準備は、暗号化されていないDB(ここではDとして示される)を入力として開始する。すなわち、Dにおけるデータ要素は、暗号化されていない形式でまたは平文として最初に記憶および/または保持される。暗号化の前に、Dのスキーマは、拡張されたスキーマが所望のSQLクエリのサブセットをサポートするように拡張される。拡張されたDB(ここではDとして示される)において、データ要素はまた、暗号化されていない形式でまたは平文として記憶/保持される。(結果のデータによる拡張スキーマを有する)Dは、1つ以上の暗号化フォーマットを使用して暗号化されてDを達成する。最後に、Dは、DBサーバに送信される。
適切には、フロントエンドは、特定のタスクまたは複数のタスクに関する特定のビューおよび/またはユーザインターフェース(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からフロントエンドによって受信したデータを復号することによってクエリの結果を復元することができる。
例示的な1つの実施形態において、DBMS30は、標準的なMySQL DBサーバによって実装されると共に、CS20およびETLサーバ50は、双方とも、(例えば、同じコードベースを使用する)Java(登録商標)ベースのプログラムによって実装される。適切には、フロントエンドは、Java(登録商標)script、ハイパーテキストマークアップ言語(HTML)およびカスケードスタイルシート(CSS)の組み合わせとして実装されてもよい。これは、実際には、本明細書に記載された機能、目的、動作および/または目的を達成するのに適した上述した構成要素のために他の実装が使用されることができると述べた。
本明細書において記載される例示的な実施形態によれば、回避することが求められる1つの脅威は、システムにインポートされたデータセット32に関する情報を学習するデータ所有者およびアナリスト以外の当事者である。これは、CS20およびDBMS30における偶発的および意図的な漏洩の双方を含み、双方とも信頼できない可能性がある。適切には、インポートされたデータセット32は、DBMS30およびCS20のいずれにもアクセスできない鍵のもとで暗号化されることから、そのような漏洩は、設計によって防止される。さらに、コンテキストに応じて、システムのアーキテクチャは、例えば以下のようなさらなる脅威に対する保護を提供することができる。
(1)インポートされたデータセット32にレコードが含まれている個人に関する機密情報を学習するアナリスト;および/または、
(2)アナリストのクエリに関して学習するCS20、DBMS30および/またはデータ所有者。
例えば、上記項目(1)に対するガードは、個人のプライバシーを保持することと称され、差分プライバシーなどの技術を使用して達成されることができ、上記項目(2)に対するガードは、クエリプライバシーを保持することと称され、「現実の」クエリを難読化する「特別な」クエリを使用して達成されることができる。
ここで図2をさらに参照すると、例えばETLサーバ50を介して平文DB Dが前処理されて暗号化されるプロセスおよび/または方法100が示されている。実際には、DB所有者などは、ETLサーバ50にアクセスして平文データセット32を前処理および暗号化するためにETLビュー14または他の適切なUIを使用するフロントエンドウェブサービス/サーバ10を使用することができる。
適切には、プロセスまたは方法100は、入力された平文DB Dを、暗号化されたドメインにおいて条件付きクエリをサポートする暗号化DB Dに変換する。もちろん、適切な意味的にセキュアな準同型暗号システムを使用してDの個々の各エントリを単に暗号化するだけで単純にDを構築することができるが、上記説明されたように、このアプローチは、所望なように条件付きクエリを効率的にサポートしない。代わりに、本明細書において記載されるように、Dが最初に構築され、これは、Dの拡張された平文バージョンであり、次いでDは暗号化されてDを得る。
示されるように、ステップ110において、D(平文データセット32を含む)が、例えばETLプロセスを使用してETLサーバ50に入力される。Dのデータ要素は、適切に暗号化されず、および/または平文形式で表される。適切には、Dと共に、条件付きクエリなどに関連して使用するために利用可能とされる属性を特定する仕様が入力される。例えば、上記シナリオにおいて、性別属性は、2つの異なる値、すなわち男性または女性をとるような指定された条件付き属性であってもよい。条件付き属性は、暗号化されたドメインにおいて計算された条件付きクエリおよび/または同様のものの実行に利用可能とされるDBの属性である(例えば、入力Dと共に指定および/または特定される)。
ステップ120において、入力Dのスキーマは、例えば、DBが暗号化された後に拡張スキーマが所望のクエリのセットをサポートするように、Dを達成するように拡張される。
より具体的には、Dの拡張および/または生成は、以下のように行われることができる。結果の拡張平文DB Dは、入力Dと比較していくつかの追加の列を含む。追加の列の数は
Figure 2019035949
であり、M個の指定された条件付き属性があり、それらの属性のそれぞれがvをとる場合、値mを可能とする。ここで、m=1、2、...、Mである。実際には、いくつかの属性は、特定のDBエントリについて1つの値のみをとることができる。例えば、上述した性別属性は、男性または女性の値をとることができる。他の属性は、特定のデータベースエントリについて複数の値をとることができる。例えば、特定の生徒の趣味属性は、読書、サイクリング、ハーブの研究などの複数の値をとることができる。
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である。
拡張された平文DB Dを適切に取得した後、ステップ130において、例えば、KA40から取得した公開鍵(pk)を使用して、Dが暗号化されてDを取得する。実際には、この暗号化は、付加的な秘密の共有と意味的にセキュアな準同型暗号システムとの組み合わせを使用することによって適切に達成される。特定の環境、計算、記憶および/または他の適用可能な考慮事項に応じて、他の変形例も同様に適切であるおよび/または望ましいかもしれないが、以下は、Dを構築するために使用される準同型暗号システムの種類に応じて使用されることができる2つの適切な実施形態を記載する。
第1の変形例または実施形態において、暗号化手順は、単一の乗算の後に無制限数の加算が続く暗号化されたドメイン計算をサポートする例えばBGN(Boneh、GohおよびNissim)暗号システムなどの2−DNF(論理和標準形)演算をサポートする暗号システムを使用する。BGN暗号システムでは、照会された属性毎に単一の暗号化された列を追加して(例えば、上記取得したような)データベースDが暗号化される。BGN変形例の使用は、特に、暗号化結果を復号するために利用可能な計算能力は比較的高いが、DBサーバにおいて利用可能な記憶能力が比較的低い場合に適用可能である。
第2の変形例または実施形態において、暗号化手順は、暗号化されたドメインの加算のみをサポートする例えばPaillier暗号システムなどの相加的準同型暗号システムを使用する。2つの変形例は、暗号システムの能力とDの記憶オーバーヘッドとのトレードオフに対処する。Paillier暗号システムでは、(照会された属性、条件付き属性)のペア毎に単一の暗号化された列を追加して(例えば、上記取得したような)データベースDが暗号化される。Paillierバリアントの使用は、特に、暗号化結果を復号するために利用可能な計算能力は比較的低いが、DBサーバにおいて利用可能な記憶能力は比較的高くすることができる場合に適用可能である。
ここで、上述した第1の変形例を参照すると、暗号化プロセスまたはステップ130への入力は、(1)
Figure 2019035949
の追加の列を含む拡張平文データベースD、および(2)2−DNF準同型暗号システムの公開鍵pkを含む。結果の出力は、暗号化データベースDであり、
Figure 2019035949
の追加の列のエントリは、2−DNF準同型暗号システムを使用して暗号化され、照会されるべき属性は、追加的にブラインドされる。
(以下のサブステップの適用を含む)暗号化プロトコルを説明するために、ここでは、条件付き属性、すなわち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))を記憶する。
におけるM個の条件付き属性および照会済み属性のそれぞれの値に上記ステップを適用した結果、暗号化データベースDが得られる。
ここで、上述した第2の変形例を参照すると、暗号化プロセスまたはステップ130への入力は、(1)
Figure 2019035949
の追加の列を含む拡張平文データベースD、および(2)相加的準同型暗号システムの公開鍵pkを含む。結果の出力は、暗号化データベースDであり、
Figure 2019035949
の追加の列のエントリは、相加的準同型暗号システムを使用して暗号化され、照会されるべき属性は、追加的にブラインドされる。
(以下のサブステップの適用を含む)暗号化プロトコルを説明するために、ここでは再度、条件付き属性、すなわち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)の代わりに、加法的にブラインドされた値
Figure 2019035949
を記憶する。これらのブラインドされた値を含む列を新たな属性
Figure 2019035949
とみなす。
3)照会された各属性Q、および条件付き属性Aのv個の可能な値のそれぞれについて、Rk,mによって示される追加の列が導入される。この新たな列のi行目のエントリは、j=1,2、...、vについて、Rk,j(i)=E(pk,r(i)...S(i、j))によって与えられる。
におけるM個の条件付き属性およびL個の照会された属性のそれぞれの値に上記ステップを適用した結果、暗号化データベースDを得る。上記検討した2−DNF準同型の場合とは異なり、上記サブステップ3の結果として追加された列の総数は、
Figure 2019035949
であり、このアプローチでは記憶効率が低下させる。
いずれの場合にも、このようにして暗号化DB Dを取得した後、ステップ140において、暗号化DB Dは、送信され、ロードされ、および/またはDBMS30に送られる。実際には、DBMS30において、全てのテーブル名は平文で利用可能であり、全ての列属性名は平文で利用可能であるが、テーブルにおけるエントリは、上記説明されたように暗号化される。すなわち、DBサーバにおいて平文で利用可能な項目は、属性名のみである。例えば、リレーショナルDBにおいて、テーブルおよび列の名称は既知であるが、それらの列におけるデータエントリは暗号化される。
このようにして暗号化DB DをDBMS30にロードすると、それは、例えばアナリストビュー12を使用してフロントエンドウェブサービス/サーバ10を介してユーザ/アナリストによって提出されたクエリに応答してCS20によってアクセスされることができる。適切には、クエリは、平文形式で提出されることができる。DBMS30のDBサーバは、順次、CS20にデータを提供し、CS20によって実行される計算は、暗号化されたドメインにおいて適切に実行される。提出されたクエリに応答して、CS20によって実行された計算の結果は、暗号化された形式で返される。例えば、KA40から利用可能にされたまたは取得された対応する復号鍵または秘密鍵(暗号化を実行するために使用される公開鍵に対応する)を使用して、アナリストは、受信した暗号化結果を復号し、それらを平文でみることができる。実際には、そのような復号/秘密鍵は、情報またはデータ漏洩の脅威の可能性を制限するように、CS20またはDBMS30から利用可能とされずおよび/または保持されない。
1つの適切な実施形態によれば、アナリストによって供給される平文クエリに応答して、例えば、CS20および/またはDBサーバにおいて実行される暗号化ドメイン計算プロトコルがここで記載される。適切には、アナリストまたは他の同様のユーザは、アナリストビュー12を介して平文クエリを提出することができる。適切には、DBMS30のDBサーバにおいて、テーブル名が平文で利用可能であり、列属性名が平文で利用可能であるが、テーブルにおけるエントリは上記説明されたように暗号化されることに留意されたい。
最初に、本明細書では、例えば、WHERE句のない単一のクエリ属性に対する合計および平均クエリなどの単純な集計クエリが考えられる。実際には、これらのクエリを実行するために、CS20は、データを暗号化するために使用される暗号システムの相加的準同型特性を単に利用するにすぎない。集計プロトコルを介して、より複雑な条件付きクエリにおいて繰り返し使用される演算のいくつかがここで示されている。
例えば、アナリストは、入力として、以下の形式の平文クエリを提供することができる:
SELECT SUM(クエリ_属性)FROM table_name;
適切には、CS20は、このクエリを解析し、クエリ_属性に属する暗号化データにアクセスしなければならないことを直ちに認識する。以前の表記に続いて、この属性は、Qによって示され、i行目の個々の値は、Q(i)、i=1,2、...、nとして示される。
上述したクエリに応答して、CS20は、以下によって与えられる暗号化された総和をアナリストに適切に返す:
Figure 2019035949
ここで、pkは、DB Dを暗号化するために使用された公開鍵である。アナリストがデータ所有者および/またはKA40から適切な許可および/または鍵を受信したと仮定すると、彼はこの結果を復号することができる。
より具体的には、例えば、以下のプロトコルにしたがうことができる:
1)CS20は、属性Qに対応するテーブルtable_nameにおけるn個のエントリを検索する。
2)それは、以下のように所望の結果を得るために相加的準同型特性を使用する:
Figure 2019035949
3)CS20は、例えばウェブサービス/サーバ10のアナリストビュー12を介してアナリストに結果を返す。
暗号化DB Dの構築に基づいて、DBにおける行の総数は秘密ではないことに留意されたい。それゆえに、例えば、アナリストは、以下の形式のクエリを評価することもできる:
SELECT AVG(クエリ_属性)FROM table_name;
注目すべきことに、実際には、CS20は、平文総和にアクセスすることができないため、平均化を実行しない。したがって、このAVGクエリに応答して、まず、例えば上記示されたような単純なSUMプロトコルを実行し、さらに、行数nをアナリストに返す。アナリストは、例えばアナリストビュー12を介して、総和を復号してnで除算し、彼のクエリに対する回答を得ることができる。
次に、本明細書は、プライバシー保護のWHEREクエリ、すなわち、WHERE句を利用するクエリを含むプロトコルを取り扱う。ここでは、平文DB DがDに拡張されたときに導入された追加の列が利用される。以下は、2つの例示的なプロトコル、2−DNF準同型暗号化に基づく実装用のものと、Paillier準同型暗号化に基づく実装用のものとを示す。いずれの場合にも、クエリ属性列におけるブラインドされた値と、関連するインジケータ属性列における暗号化値との内積は、例えば、以下に説明されるようにセキュアに計算される。
例えば、アナリストは、入力として、以下の形式の平文クエリを提供することができる:
SELECT SUM(クエリ_属性)FROM table_name;
WHERE 条件_属性=“some_value”;
適切には、CS20は、このクエリを解析し、クエリ_属性に属するブラインドデータにアクセスしなければならないことを認識する。以前の表記に続いて、この属性は、Qによって示される。さらにまた、条件_属性に対応する暗号化データにアクセスしなければならない。以前の表記に続いて、この属性は、Aによって示される。some_valueは、属性Aによってとり得るv個の可能な値のうちのj番目のものとする。以前の表記に続いて、インジケータ変数は、データベースを拡張するために使用された行列Sの列S(・、j)において処理され、行列における各値は、意味的にセキュアな準同型暗号化方式を使用して暗号化される。
上述したクエリに応答して、CS20は、以下によって与えられる暗号化された総和をアナリストに適切に返す:
Figure 2019035949
ここで、pkは、DB Dを暗号化するために使用された公開鍵である。アナリストがデータ所有者および/またはKA40から適切な許可および/または鍵を受信したと仮定すると、彼はこの結果を復号することができる。上述した構成により、インジケータ関数は、条件_属性が値some_valueを有する値のもののみをクエリが抽出することを示す。
より具体的には、例えば、2−DNF準同型方式の場合、以下のプロトコルにしたがうことができる。この場合、暗号化関数E(pk、・)は、データ所有者の公開鍵の下での2−DNF準同型暗号化である。適切には、暗号化DB Dは、上述した手順にしたがって準備される。
1)CS20は、属性Qに対応するテーブルtable_nameにおけるn個の暗号化エントリを検索する。これらは、E(pk,Q(i)),i=1,2、...、nとして表される。
2)CS20は、n個の暗号化インジケータ変数S(・、j)、すなわち行列Sのj列目を検索する。これらは、E(pk、S(i、j))、i=1、...、nとして表される。
3)CS20は、2−DNF準同形特性を使用して以下を計算する:
Figure 2019035949
4)CS20は、例えばウェブサービス/サーバ10のアナリストビュー12を介してアナリストに結果を返す。
より具体的には、例えば、Paillier準同型方式の場合、以下のプロトコルにしたがうことができる。この場合、暗号化関数E(pk、・)は、データ所有者の公開鍵の下での相加的準同型暗号化である。適切には、暗号化DB Dは、上述した手順にしたがって準備される。
1)CS20は、属性Qに対応するテーブルtable_nameにおけるn個のブラインドエントリを検索する。これらは、Q(i),i=1,2、...、nとして表される。
2)CS20は、n個の暗号化インジケータ変数S(・、j)、すなわち行列Sのj列目を検索する。これらは、E(pk、S(i、j))、i=1、...、nとして表される。
3)各属性Qおよび条件付き属性Aのj番目の値に対応して、暗号化データベースDは、暗号化ブラインドエントリの列Rk,jを含むことに留意されたい。最初の接尾辞kを削除すると、属性
Figure 2019035949
に対応するブラインドエントリの列を属性Rによって示す。CS20はまた、R(i)=E(pk、r(i)...S(i、j))、i=1、...、nとして表される列Rからn個の暗号化されたブラインド項を検索する。
4)CS20は、相加的準同型特性を使用して以下を計算する:
Figure 2019035949
5)CS20は、例えばウェブサービス/サーバ10のアナリストビュー12を介してアナリストに結果を返す。
データベースプライバシーのために所望されるように、プロトコルは、計算を実行しているCS20に対してさえも、上記合計計算のためにどの行が選択されたかを明らかにしない。これらは、値S(i、j)=1の行である。アナリストは、実行された拡張と共に暗号化DB Dのスキーマを既に知っていることに留意されたい。そのため、条件_属性がj番目の可能な値をとった行数をみつけたい場合、例えば、以下のようなクエリを送ることができる:
SELECT SUM(条件_属性_の_j番目の_値)FROM table_name;
S(i、j)は、インジケータ変数であることから、これは、本質的にカウントクエリである。このカウントクエリに応答して、CS20は、以下を使用して(2−DNFおよび相加的準同型方式の双方についての)行数の暗号化を返す:
Figure 2019035949
上記引数はまた、以下の形式の平均クエリを実行する方法も提供する:
SELECT AVG(クエリ_属性)FROM table name;
WHERE 条件_属性=“some_value”;
本質的に、CS20が上記形式の平均クエリを解析する場合、内部的に、暗号化データベース上で以下の2つの関連するクエリを生成する:そのプロトコルが上述された条件付き総和クエリと、それに続く上述したカウントクエリ。それは、双方のクエリの結果をアナリストに返す。条件付き総和クエリの結果をカウントクエリの結果によって除算することにより、アナリストは、平均クエリの結果を取得する。
次に、本明細書は、プライバシー保護のGROUPBYクエリ、すなわち、GROUPBY句を利用するクエリを含むプロトコルを取り扱う。これらのプロトコルはまた、平文データベースDがDに拡張されたときに導入された追加の列も利用する。基本的に、プロトコルは、上記プロトコルを使用して等価条件で複数のWHEREクエリを実行することによってGROUPBY機能を実現する。
例えば、アナリストは、入力として、以下の形式の平文クエリを提供することができる:
SELECT SUM(クエリ_属性)FROM table_name;
GROUPBY 条件_属性;
適切には、CS20は、このクエリを解析し、クエリ_属性に属するブラインドデータにアクセスしなければならないことを認識する。以前の表記に続いて、この属性は、Qによって示される。さらにまた、条件_属性に対応する暗号化データにアクセスしなければならない。前述のように、条件付き属性は、Aによって示され、value_1、value_2、...、value_vによって示されるv個の可能な値をとることができると仮定する。暗号化データベースDのスキーマは、CS20、DBサーバおよびアナリストに知られているものとする。
適切には、CS20は、アナリストに(例えばアナリストビュー12を介して)暗号化されたv長ベクトルを返す。ここで、ベクトルのj番目の要素は、以下によって与えられる:
j=1,2、...、vについて、
Figure 2019035949
前述のように、pkは、DB Dを暗号化するために使用された公開鍵である。アナリストがデータ所有者および/またはKA40から適切な許可および/または鍵を受信したと仮定すると、彼は、この暗号化値のベクトルを復号することができる。使用される暗号化スキームに応じて、E(pk、・)は、それぞれ、相加的準同型または2−DNF準同型暗号システムについての暗号文である。
より具体的には、各j=1,2、...、vについて、以下のステップが実行されることができる:
1)計算サーバは、以下によって与えられるWHEREクエリを作成する。
SELECT SUM(クエリ_属性)FROM table_name;
条件_属性=値j;
2)上述したプロトコルを使用して、CS20は、式(1)によって与えられる暗号化結果を取得する。
適切には、CS20は、WHEREプロトコルをv長ベクトルに繰り返し呼び出すことによって得られた暗号化結果を収集し、アナリストに送る。
明らかに、プライバシー保護のGROUPBYプロトコルの正確さは、WHEREプロトコルのものにしたがう。前述のように集計クエリをカウントクエリと組み合わせることにより、CS20はまた、以下の形式の平均クエリを実行することもできる:
SELECT AVG(クエリ_属性)FROM table_name;
GROUPBY 条件_属性;
記載されたプライバシー保護クエリアーキテクチャの1つの適切な実施形態において、平文データベースは、1つ以上のテキストファイルの形式で読み取られる。データベース準備段階を容易にするために、データスキーマ、異なる属性の値の範囲および各属性のデータタイプをデータ所有者に表示するインターフェースが適切に提供される。例えば、インターフェースは、データ所有者に以下の能力を提供する:
1)カンマ区切り値(*.csv)ファイルなどのテキストファイルからデータベースをインポートする。
2)データベースのスキーマを表示する。
3)各属性について、その属性を無視するか、平文で属性をインポートするか、または暗号化形式で属性をインポートするかを選択する。
4)条件付き属性について、暗号化されたドメインのWHEREまたはGROUPBYクエリをサポートするか否かを選択する。
5)各属性について、属性に関する統計分布に対するクエリをサポートするか否かを選択する。
6)Paillier準同型暗号化の鍵をロードするか、または新たな鍵ペアを生成する。
データ所有者のインターフェースから提供されたコマンドに応答して、暗号化サーバによって暗号化が平文データベースD上で実行され、暗号化データベースDがDBMS30のDBサーバに記憶される。適切には、暗号化データベースは、MySQLによってバックアップされる。データ所有者のインターフェースは、ブラウザにおけるJava(登録商標)scriptで実装されることができ、RESTfulインターフェースを介して暗号化サーバおよびデータベースサーバと通信することができる。適切には、暗号化サーバによって実行される暗号化ルーチンは、Java(登録商標)プログラミング言語で実装される。
データ所有者の場合と同様に、ブラウザにおけるJava(登録商標)Scriptを使用して同様に、データアナリスト用のクエリインターフェースが提供される。これは、CS20からのデータを送受信するように、コンピュータ、タブレットまたはスマートフォンからアクセスされることができるRESTfulインターフェースとすることができる。照会を容易にするために、データアナリストには、以下の能力が提供されることができる:
1)MySQLデータベースから暗号化データベースをインポートする。
2)CS20によって返されたクエリの暗号文の結果を復号するための鍵をロードする。
3)データベーススキーマおよび属性がどのように暗号化されているかについての情報を表示する。
4)サポートされている一連のクエリを表示する。
5)暗号化されたおよび/または平文の属性を含むSQL様クエリを入力する。
6)照会結果を数値的に(または、要求される場合にはグラフィカルに)表示する。
データベースサーバは、MySQLによってバックアップされることから、暗号化されていない属性を含むいかなるクエリも、従来の方法で処理されることができる。暗号化データの処理を含むクエリは、本明細書に記載されたプロトコルを適切に使用する。
上記方法、システム、プラットフォーム、モジュール、プロセス、アルゴリズムおよび/または装置は、特定の実施形態に関して記載された。しかしながら、特定の修正および/または変更もまた想定されることを理解されたい。
本明細書に提示される特定の例示的な実施形態に関連して、特定の構造的および/または機能的特徴は、定義された要素および/または構成要素に組み込まれるものとして記載されることが理解されたい。しかしながら、これらの特徴はまた、同一または同様の利益のために、必要に応じて同様に他の要素および/または構成要素に組み込まれてもよいことが想定される。例示的な実施形態の異なる態様は、所望の用途に適した他の代替実施形態を達成するために必要に応じて選択的に使用されてもよく、それにより、他の代替実施形態は、それに組み込まれる態様の各利点を実現することも理解されたい。
本明細書において記載された特定のタスク、ステップ、プロセス、方法、機能、要素および/または構成要素のうちの任意の1つ以上は、ハードウェア、ソフトウェア、ファームウェアまたはそれらの組み合わせによって適切に実装されることができることも理解されたい。特に、様々なモジュール、構成要素および/または要素は、本明細書に記載されたタスク、ステップ、プロセス、方法および/または機能のうちの1つ以上を実行するように構成および/またはセットアップされたプロセッサ、電気回路、コンピュータおよび/または他の電子データ処理装置によって具現化されることができる。例えば、特定の要素を具現化するプロセッサ、コンピュータまたは他の電子データ処理装置は、コンピュータまたは他の電子データ処理装置によって実施および/または実行されたときに、本明細書に記載されたタスク、ステップ、プロセス、方法および/または機能のうちの1つ以上が完了または実行されるように、(例えば、ソースコード、解釈コード、オブジェクトコード、直接実行可能コードなどの)コードの適切なリストもしくは他の同様の命令またはソフトウェアもしくはファームウェアによって提供され、供給されおよび/またはプログラミングされることができる。適切には、コードもしくは他の同様の命令またはソフトウェアもしくはファームウェアのリストは、コンピュータまたは他の電子データ処理装置によって提供可能および/または実行可能であるように、持続性コンピュータおよび/または機械可読記憶媒体または媒体として実装され、および/またはその内部におよび/またはその上に記録、記憶、包含、または含有される。例えば、適切な記憶媒体および/または媒体は、限定されるものではないが、フロッピーディスク、フレキシブルディスク、ハードディスク、磁気テープ、もしくは任意の他の磁気記憶媒体または媒体、CD−ROM、DVD、光ディスク、もしくは任意の他の光媒体または媒体、RAM、ROM、PROM、EPROM、フラッシュEPROM、もしくは他のメモリもしくはチップもしくはカートリッジ、またはコンピュータもしくは機械もしくは電子データ処理装置が読み出して使用することができる任意の他の有形媒体または媒体を含むことができる。本質的に、本明細書において使用される場合、持続性コンピュータ可読媒体および/または機械可読媒体および/または媒体は、一時的な伝搬信号を除き、全てのコンピュータ可読媒体および/または機械可読媒体および/または媒体を含む。
必要に応じて、本明細書において記載された特定のタスク、ステップ、プロセス、方法、機能、要素および/または構成要素のうちの任意の1つ以上は、1つ以上の汎用コンピュータ、専用コンピュータ、プログラミングされたマイクロプロセッサもしくはマイクロコントローラおよび周辺集積回路要素、ASICもしくは他の集積回路、デジタル信号プロセッサ、ディスクリート素子回路などのハードワイヤード電子回路もしくは論理回路、PLD、PLA、FPGA、グラフィックカードCPU(GPU)、もしくはPALなどのプログラマブル論理素子に実装および/または具現化されることができる。一般に、本明細書に記載された各タスク、ステップ、プロセス、方法および/または機能を順次実装することができる有限状態機械を実装することができる任意の装置が使用可能である。
さらに、本明細書に記載されている特定の要素は、適切な状況下で、独立した要素であってもよくまたは別の方法で分割されてもよいことを理解されたい。同様に、1つの特定の要素によって実行されるように記載された複数の特定の機能は、個々の機能を実行するために独立して動作する複数の別個の要素によって実行されてもよく、または、特定の個々の機能は、協調して動作する複数の別個の要素によって実行されてもよい。あるいは、互いに区別されて本明細書に記載および/または示されたいくつかの要素または構成要素は、必要に応じて物理的にまたは機能的に組み合わされてもよい。
要するに、本明細書は、好ましい実施形態を参照して記載されている。明らかに、本明細書を読んで理解すると、修正および変更が他人に生じるであろう。本発明の主題は、添付の特許請求の範囲またはその均等物の範囲内に含まれる限りにおいて、そのような全ての修正および変更を含むと解釈されることが意図される。

Claims (10)

  1. 暗号化データベースを生成する方法であって、前記方法は、
    (a)1つ以上の列に平文データエントリを有する平文データベースを受信することと、
    (b)拡張された平文データベースを生成するために前記受信した平文データベースを拡張することであって、前記拡張が1つ以上の列を前記受信した平文データベースに追加することを含み、前記追加された各列が条件付きクエリのために利用可能にされるべき属性に対応する、拡張することと、
    (c)前記拡張された平文データベースを暗号化して、暗号化データエントリを含む前記暗号化データベースを生成することと
    を備え、
    前記暗号化データベースが、前記追加された列に対応するそれらの属性についての少なくとも1つの形式の条件付きクエリをサポートし、前記少なくとも1つの形式の条件付きクエリが、暗号化結果を生成するように、その復号なしで前記暗号化データエントリについて計算される、
    方法。
  2. 前記暗号化データが、意味的にセキュアな暗号化によって暗号化される、請求項1に記載の方法。
  3. 前記暗号化データが、準同型暗号システムを使用して暗号化される、請求項2に記載の方法。
  4. 前記準同型暗号システムが、相加的準同型暗号システムである、請求項3に記載の方法。
  5. 前記準同型暗号システムが、2−DNF(論理和標準形)演算をサポートする、請求項3に記載の方法。
  6. 前記少なくとも1つの形式の条件付きクエリが、WHEREクエリまたはGROUPBYクエリのうちの1つである、請求項1に記載の方法。
  7. 暗号化データベースを管理するシステムであって、前記システムは、
    1つ以上のコンピュータに実装された抽出、転送、および書き込み(ETL)サーバであって、前記ETLサーバは、(i)1つ以上の列において暗号化されていないデータエントリを有する平文データベースを入力として受信し、(ii)拡張された平文データベースを生成するように前記受信した平文データベースを拡張し、前記拡張された平文データベースが、前記入力された平文データベースに対する1つ以上の列の追加を含み、前記追加された各列が条件付きクエリに利用可能にされるべき属性に対応し、(iii)暗号化データエントリを含む前記暗号化データベースを生成するように前記拡張された平文データベースを暗号化するように動作する、ETLサーバと、
    1つ以上のコンピュータに実装されたデータベース(DB)サーバであって、前記DBサーバは、(i)前記ETLサーバから前記暗号化データベースを受信して保持し、(ii)前記DBサーバに提出されたクエリに応答して暗号化データを返すように動作する、DBサーバと、
    1つ以上のコンピュータに実装された計算サーバであって、(i)クエリを前記DBサーバに提出し、(ii)前記DBサーバから返された暗号化データに関する計算を実行するように動作する、計算サーバと
    を備え、
    前記計算が、前記暗号化データの復号なしに前記暗号化データベースからの前記暗号化データに対して実行され、前記計算から得られた結果が暗号化され、前記暗号化データベースが、前記暗号化データの基礎となる前記暗号化されていないデータのサンプルを明らかにすることなく、少なくとも1つの形式の条件付きクエリに応答して正しい暗号化結果を得ることをサポートするように構成されている、システム。
  8. 前記暗号化データが、意味的にセキュアな暗号化によって暗号化される、請求項7に記載のシステム。
  9. 前記暗号化データが、準同型暗号システムを使用して暗号化される、請求項8に記載のシステム。
  10. 前記準同型暗号システムが、相加的準同型暗号システムである、請求項9に記載のシステム。
JP2018135417A 2017-08-11 2018-07-19 暗号化データベースに対する解析を支援するシステムおよびアーキテクチャ Active JP7061042B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US15/675,055 2017-08-11
US15/675,055 US10783263B2 (en) 2017-08-11 2017-08-11 System and architecture for supporting analytics on encrypted databases

Publications (3)

Publication Number Publication Date
JP2019035949A true JP2019035949A (ja) 2019-03-07
JP2019035949A5 JP2019035949A5 (ja) 2021-08-26
JP7061042B2 JP7061042B2 (ja) 2022-04-27

Family

ID=63404937

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018135417A Active JP7061042B2 (ja) 2017-08-11 2018-07-19 暗号化データベースに対する解析を支援するシステムおよびアーキテクチャ

Country Status (4)

Country Link
US (1) US10783263B2 (ja)
EP (1) EP3442158B1 (ja)
JP (1) JP7061042B2 (ja)
AU (1) AU2018208667B2 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2021189431A (ja) * 2020-05-29 2021-12-13 バイドゥ オンライン ネットワーク テクノロジー (ベイジン) カンパニー リミテッド ブロックチェーンのプライバシーデータ処理方法、装置、デバイス及び記憶媒体
JP2022027416A (ja) * 2020-07-31 2022-02-10 エムエックス・テクノロジーズ・インコーポレーテッド データ保護問合せインターフェース
WO2023139934A1 (ja) * 2022-01-21 2023-07-27 株式会社Nttドコモ プライバシー保護データ集計装置およびプライバシー保護データ集計システム

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11539517B2 (en) * 2019-09-09 2022-12-27 Cisco Technology, Inc. Private association of customer information across subscribers
CN114503105A (zh) * 2019-09-25 2022-05-13 联邦科学和工业研究组织 用于浏览器应用的密码服务
CN112948386B (zh) * 2021-03-04 2023-09-22 电信科学技术第五研究所有限公司 一种针对etl异常数据的简易索引及加密落盘机制

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140281512A1 (en) * 2013-03-15 2014-09-18 Microsoft Corporation Secure query processing over encrypted data
WO2016120975A1 (ja) * 2015-01-26 2016-08-04 株式会社日立製作所 データ集計分析システム及びその方法

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9087212B2 (en) 2012-01-25 2015-07-21 Massachusetts Institute Of Technology Methods and apparatus for securing a database
US10833841B2 (en) * 2016-07-13 2020-11-10 Sap Se Leakage-free order-preserving encryption
US10601593B2 (en) * 2016-09-23 2020-03-24 Microsoft Technology Licensing, Llc Type-based database confidentiality using trusted computing
US11120141B2 (en) * 2017-06-30 2021-09-14 Jpmorgan Chase Bank, N.A. System and method for selective dynamic encryption

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140281512A1 (en) * 2013-03-15 2014-09-18 Microsoft Corporation Secure query processing over encrypted data
WO2016120975A1 (ja) * 2015-01-26 2016-08-04 株式会社日立製作所 データ集計分析システム及びその方法

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2021189431A (ja) * 2020-05-29 2021-12-13 バイドゥ オンライン ネットワーク テクノロジー (ベイジン) カンパニー リミテッド ブロックチェーンのプライバシーデータ処理方法、装置、デバイス及び記憶媒体
US11665000B2 (en) 2020-05-29 2023-05-30 Baidu Online Network Technology (Beijing) Co., Ltd. Method and apparatus for processing privacy data of block chain, device, and storage medium
JP2022027416A (ja) * 2020-07-31 2022-02-10 エムエックス・テクノロジーズ・インコーポレーテッド データ保護問合せインターフェース
JP7204790B2 (ja) 2020-07-31 2023-01-16 エムエックス・テクノロジーズ・インコーポレーテッド データ保護問合せインターフェース
WO2023139934A1 (ja) * 2022-01-21 2023-07-27 株式会社Nttドコモ プライバシー保護データ集計装置およびプライバシー保護データ集計システム

Also Published As

Publication number Publication date
AU2018208667A1 (en) 2019-02-28
EP3442158B1 (en) 2020-11-18
US10783263B2 (en) 2020-09-22
EP3442158A1 (en) 2019-02-13
AU2018208667B2 (en) 2023-07-13
JP7061042B2 (ja) 2022-04-27
US20190050589A1 (en) 2019-02-14

Similar Documents

Publication Publication Date Title
JP7061042B2 (ja) 暗号化データベースに対する解析を支援するシステムおよびアーキテクチャ
Li et al. On sampling, anonymization, and differential privacy or, k-anonymization meets differential privacy
US9852306B2 (en) Conjunctive search in encrypted data
US20150039903A1 (en) Masking query data access pattern in encrypted data
Buyrukbilen et al. Secure similar document detection with simhash
JP6971926B2 (ja) 暗号化データベースに関する解析のためのシステムおよびアーキテクチャ
US11902425B2 (en) Encrypted search with a public key
Li et al. An efficient blind filter: Location privacy protection and the access control in FinTech
US20180165470A1 (en) Secure Database
Zaw et al. Database security with AES encryption, elliptic curve encryption and signature
Ying et al. Reliable policy updating under efficient policy hidden fine-grained access control framework for cloud data sharing
Ren et al. HEDA: multi-attribute unbounded aggregation over homomorphically encrypted database
Dagher et al. SecDM: privacy-preserving data outsourcing framework with differential privacy
JP2023518111A (ja) ボリューム漏洩が低減された、暗号化されたデータに対する暗号化されたサーチ
Muhammad et al. A secure data outsourcing scheme based on Asmuth–Bloom secret sharing
Hu et al. Towards a privacy protection-capable noise fingerprinting for numerically aggregated data
Baby et al. On query execution over encrypted data
Pleskach et al. Mechanisms for Encrypting Big Unstructured Data: Technical and Legal Aspects
Areekijseree et al. Secure and efficient multi-party directory publication for privacy-preserving data sharing
Ganesh et al. A survey of advanced encryption for database security: Primitives, schemes, and attacks
Wang et al. BopSkyline: Boosting privacy-preserving skyline query service in the cloud
Do Privacy preserving query processing on outsourced data via secure multiparty computation
Sasidharan et al. Multiple integer packing for optimizing partial homomorphic encrypted databases
Tang Cryptographic framework for analyzing the privacy of recommender algorithms
RANGA et al. Statistical Collection Search on Encrypted Spatial information

Legal Events

Date Code Title Description
RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20180726

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20180731

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210713

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210713

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20210713

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20211011

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220107

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20220415

R150 Certificate of patent or registration of utility model

Ref document number: 7061042

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150