JP2022531496A - Rlwe暗号文の圧縮および忘却型展開 - Google Patents

Rlwe暗号文の圧縮および忘却型展開 Download PDF

Info

Publication number
JP2022531496A
JP2022531496A JP2021566137A JP2021566137A JP2022531496A JP 2022531496 A JP2022531496 A JP 2022531496A JP 2021566137 A JP2021566137 A JP 2021566137A JP 2021566137 A JP2021566137 A JP 2021566137A JP 2022531496 A JP2022531496 A JP 2022531496A
Authority
JP
Japan
Prior art keywords
encrypted
server
plaintext
sequence
query
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
JP2021566137A
Other languages
English (en)
Other versions
JP7212179B2 (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.)
Google LLC
Original Assignee
Google LLC
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 Google LLC filed Critical Google LLC
Publication of JP2022531496A publication Critical patent/JP2022531496A/ja
Application granted granted Critical
Publication of JP7212179B2 publication Critical patent/JP7212179B2/ja
Active 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/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • 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/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3006Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters
    • H04L9/3026Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters details relating to polynomials generation, e.g. generation of irreducible polynomials
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/901Indexing; Data structures therefor; Storage structures
    • G06F16/9027Trees
    • 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/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/083Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) involving central third party, e.g. key distribution center [KDC] or trusted third party [TTP]
    • H04L9/0833Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) involving central third party, e.g. key distribution center [KDC] or trusted third party [TTP] involving conference or group key
    • H04L9/0836Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) involving central third party, e.g. key distribution center [KDC] or trusted third party [TTP] involving conference or group key using tree structure or hierarchical structure
    • 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/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3093Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving Lattices or polynomial equations, e.g. NTRU scheme

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computer Security & Cryptography (AREA)
  • Computing Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Analysis (AREA)
  • Algebra (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • General Engineering & Computer Science (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

方法(600)は、平文整数(136)のシーケンスを含む平文クエリ(134)を取得することと、前記平文クエリの前記平文整数のシーケンスを含む係数(173)を有する多項式(172)を生成することと、を備える。前記方法は、また、秘密暗号化鍵(132)を用いて前記多項式を暗号化することと、暗号化された前記多項式(182)をサーバ(111)に送信することと、を備える。前記秘密暗号化鍵は、暗号文空間からランダムにサンプリングされ、前記サーバは、前記平文整数のシーケンスに対応する暗号化された整数(210)のシーケンスを取得するために、暗号化された前記多項式を公開暗号化鍵(130)を用いて展開するように構成されている。前記方法はまた、前記サーバから暗号化された結果(192)を受信することを備える。前記暗号化された結果は、前記暗号化された整数のシーケンスに基づく。

Description

本開示は、RLWE暗号文の圧縮および忘却型展開に関する。
個人情報取出(PIR)方式は、1または複数のストレージ・デバイスをホストするサーバに対し、ユーザや取り出されるデータに関するいかなる知識も明かすことなく、ユーザが該1または複数のストレージ・デバイスからデータを取り出すことを可能とする。
PIRでは、サーバ・ストレージ・デバイスは一般に保護されていない。個人情報は、公開のストレージ・デバイスまたはサーバ・ストレージ・デバイスから取り出され、加入者のグループの皆がストレージ・デバイス全体からデータをダウンロードすることが認められている。ユーザはアクセス・パターンが明かされないように単純にサーバ・ストレージ・デバイスからすべてのコンテンツをダウンロードするが、複数のストレージ・デバイスにまたがるクラウド・ストレージ・サービスからすべてのコンテンツをダウンロードすることが必要な場合、掛かる時間が長すぎる。さらにまた、従来のPIR方式では、特にユーザがサーバからデータの複数のブロックまたはエントリを取り出すことを望む場合には、著しい量の帯域幅が消費される。
本開示の一態様では、1または複数の整数を暗号化された多項式へと圧縮する方法を提供する。前記方法は、ユーザ装置のデータ処理ハードウェアによって、平文整数のシーケンスを含む平文クエリを取得することと、データ処理ハードウェアによって、前記平文クエリの前記平文整数のシーケンスを含む係数を有する多項式を生成することと、を備える。前記方法は、また、データ処理ハードウェアによって、秘密暗号化鍵を用いて前記多項式を暗号化することと、暗号化された前記多項式を前記データ処理ハードウェアと通信状態にあるサーバに送信することと、を備える。前記秘密暗号化鍵は、暗号文空間からデータ処理ハードウェアによってランダムにサンプリングされ、前記サーバは、前記平文クエリの前記平文整数のシーケンスに対応する暗号化された整数のシーケンスを取得するために、暗号化された前記多項式を公開暗号化鍵を用いて展開するように構成されている。前記方法は、また、前記データ処理ハードウェアにおいて、前記サーバから暗号化された結果を受信することを備える。前記暗号化された結果は、前記暗号化された整数のシーケンスに基づく。
本開示の実装は、次の随意の特徴のうちの1つ以上を含んでもよい。いくつかの実装では、前記サーバは、暗号化された前記多項式を前記公開暗号化鍵を用いて展開した後、前記暗号化された結果を、前記サーバにおける信頼済みでないデータ・ストアと、前記暗号化された整数のシーケンスとに基づき計算することと、前記暗号化された結果を前記ユーザ装置に返すことと、を行うように構成されている。それらの実装では、前記サーバは、前記信頼済みでないデータ・ストアと前記暗号化された整数のシーケンスとの内積を決定することによって、前記暗号化された結果を計算するように構成されてよい。これに加えて、またはこれに代えて、それらの実装では、前記方法はまた、前記サーバから前記暗号化された結果を受信した後、前記データ処理ハードウェアによって、復号された結果を取得するように、前記暗号化された結果を復号することを備えてもよい。ここで、前記復号された結果は、前記信頼済みでないデータ・ストアの1つ以上のデータ・ブロックに対応する。
いくつかの例では、前記サーバは、木データ構造を生成することによって、暗号化された前記多項式を展開するように構成されており、暗号化された前記多項式は、前記木データ構造の根を含む。それらの例では、前記木データ構造の最上位の行は、前記暗号化された整数のシーケンスを含む。これに加えて、前記多項式を暗号化することは、完全準同型性を有する暗号化方式により前記多項式を暗号化することを含んでよい。前記平文クエリの前記平文整数のシーケンスにおける各平文整数は、前記サーバにおける信頼済みでないデータ・ストアのそれぞれのデータ・ブロックに対する選択基準に対応してよい。
いくつかの実装では、前記平文クエリを取得することは、前記平文整数のシーケンスを含むランダム化クエリを生成することを含む。それらの実装では、前記方法は随意で、前記データ処理ハードウェアによって、修正されたクエリを形成するために、前記ランダム化クエリの前記平文整数のシーケンスからの1つの選択された平文整数を反転すること、および、前記データ処理ハードウェアによって、前記修正されたクエリを前記サーバに送信すること、を備えてよい。ここで、前記選択された平文整数は、前記サーバにおける信頼済みでないデータ・ストアのそれぞれのデータ・ブロックに関連付けられており、前記サーバは、前記信頼済みでないデータ・ストアと、前記修正されたクエリとに基づき、暗号化されていない結果を計算することと、前記暗号化されていない結果を前記ユーザ装置に返すことと、を行うように構成されている。随意で、前記方法は、前記サーバから前記暗号化された結果および前記暗号化されていない結果を受信した後、前記データ処理ハードウェアによって、前記ランダム化クエリの前記平文整数のシーケンスからの前記選択された平文整数に関連付けられている前記信頼済みでないデータ・ストアの前記それぞれのデータ・ブロックに対する値を取得するために、前記暗号化された結果と前記暗号化されていない結果との間の差を計算することをさらに備えてよい。
本開示の別の態様では、1または複数の整数を暗号化された多項式へと圧縮するシステムを提供する。前記システムは、データ処理ハードウェアと、ユーザ装置の前記データ処理ハードウェアと通信状態にあるメモリ・ハードウェアと、を備える。前記メモリ・ハードウェアは命令を記憶しており、前記命令は前記データ処理ハードウェア上で実行される時、前記データ処理ハードウェアに、平文整数のシーケンスを含む平文クエリを取得することと、前記平文クエリの前記平文整数のシーケンスを含む係数を有する多項式を生成することと、を含む動作を行わせる。前記動作は、また、秘密暗号化鍵を用いて前記多項式を暗号化することと、暗号化された前記多項式を前記データ処理ハードウェアと通信状態にあるサーバに送信することと、を含む。前記秘密暗号化鍵は、暗号文空間からデータ処理ハードウェアによってランダムにサンプリングされ、前記サーバは、前記平文クエリの前記平文整数のシーケンスに対応する暗号化された整数のシーケンスを取得するために、暗号化された前記多項式を公開暗号化鍵を用いて展開するように構成されている。前記動作はまた、前記サーバから暗号化された結果を受信することを含む。前記暗号化された結果は、前記暗号化された整数のシーケンスに基づく。
この態様は、以下の随意の特徴のうちの1つ以上を含んでよい。いくつかの実装では、前記サーバは、暗号化された前記多項式を前記公開暗号化鍵を用いて展開した後、前記暗号化された結果を、前記サーバにおける信頼済みでないデータ・ストアと、前記暗号化された整数のシーケンスとに基づき計算することと、前記暗号化された結果を前記ユーザ装置に返すことと、を行うように構成されている。それらの実装では、前記サーバは、前記信頼済みでないデータ・ストアと前記暗号化された整数のシーケンスとの内積を決定することによって、前記暗号化された結果を計算するように構成されてよい。これに加えて、またはこれに代えて、それらの実装では、前記動作はまた、前記サーバから前記暗号化された結果を受信した後、復号された結果を取得するように、前記暗号化された結果を復号することを備えてもよい。ここで、前記復号された結果は、前記信頼済みでないデータ・ストアの1つ以上のデータ・ブロックに対応する。
いくつかの例では、前記サーバは、木データ構造を生成することによって、暗号化された前記多項式を展開するように構成されており、暗号化された前記多項式は、前記木データ構造の根を含む。それらの例では、前記木データ構造の最上位の行は、前記暗号化された整数のシーケンスを含む。これに加えて、前記多項式を暗号化することは、完全準同型性を有する暗号化方式により前記多項式を暗号化することを含んでよい。前記平文クエリの前記平文整数のシーケンスにおける各平文整数は、前記サーバにおける信頼済みでないデータ・ストアのそれぞれのデータ・ブロックに対する選択基準に対応してよい。
いくつかの実装では、前記平文クエリを取得することは、前記平文整数のシーケンスを含むランダム化クエリを生成することを含む。これらの実装では、前記動作はまた、随意で、修正されたクエリを形成するために、前記ランダム化クエリの前記平文整数のシーケンスからの1つの選択された平文整数を反転することと、前記修正されたクエリを前記サーバに送信することと、を含んでよい。ここで、前記選択された平文整数は、前記サーバにおける信頼済みでないデータ・ストアのそれぞれのデータ・ブロックに関連付けられており、前記サーバは、前記信頼済みでないデータ・ストアと、前記修正されたクエリとに基づき、暗号化されていない結果を計算することと、前記暗号化されていない結果を前記ユーザ装置に返すことと、を行うように構成されている。随意で、前記動作は、前記サーバから前記暗号化された結果および前記暗号化されていない結果を受信した後、前記ランダム化クエリの前記平文整数のシーケンスからの前記選択された平文整数に関連付けられている前記信頼済みでないデータ・ストアの前記それぞれのデータ・ブロックに対する値を取得するために、前記暗号化された結果と前記暗号化されていない結果との間の差を計算することを含んでよい。
本開示の1または複数の実装の詳細について、添付の図面および以下の記載により示す。他の態様、特徴、および利点は、係る記載および図面、ならびに特許請求の範囲から明らかとなる。
分散型システムの非一時的なデータ・ストレージ上に記憶されたデータ・ブロックに忘却型アクセスを行うときにクエリの圧縮および展開を行う一例の個人情報取出システムの概略図。 図1のシステムのエキスパンダによって生成される木データ構造の概略図。 暗号化された多項式を展開するための一例のアルゴリズムを提供する図。 図1のシステムのデクリプタの概略図。 いずれのデータ・ブロックを分散型システムからダウンロードするかを選択するサンプル選択クエリの概略図。 オンラインおよびオフライン計算を実行する図1のシステムの概略図。 オンラインおよびオフライン計算を実行する図1のシステムの概略図。 個人情報取出を用いて信頼済みでないストレージ・デバイスからデータ・ブロックの忘却型取出を行うときにクエリの圧縮および展開を行う方法の動作の一例の構成のフローチャート。 本明細書に記載のシステムおよび方法を実装するために用いられ得る一例のコンピューティング・デバイスの概略図。
様々な図面における類似の参照符合は類似の要素を示す。
完全準同型暗号(FHE)は、信頼済みでない者が暗号化されたデータに対しセキュアな計算を実行することを可能とする重要な準同型性を有する暗号体系である。すなわち、秘密鍵sK、公開鍵pK、および何らかのデータxを有するユーザが、f(x)を取り出すために関数fを適用することを望む場合がある。しかしながら、ユーザがfを計算したくない場合、fを適用する計算能力を有しない場合、またはその両方である場合がある。FHEでは、ユーザは、暗号化関数E(sK,x)を生成するために、秘密鍵sKによりデータを暗号化することが可能である。ユーザは、次いで、暗号化関数E(sK,x)、関数f、および公開鍵pKをサーバに送信することによって、xに対するfの計算をアウトソーシングすることができる。サーバは、次いで、f′(E(sK,x))を復号することによってf(x)が得られるように、公開鍵pKを用いて何らかの関数f′を計算することができる。サーバは、次いで、単純にf′を暗号化関数E(sK,x)に適用し、それをf(x)の復号および取出のためにユーザに送信することができる。
多くの場合、データxは1つの値ではなく、値x,...,xのシーケンスであり、ユーザは、サーバに計算f(x,...,x)をアウトソーシングすることを望む。この計算をアウトソーシングする素朴な手法は、l個の暗号化関数E(sK,x),...,E(sK,x)を作成し、l個の暗号化関数すべてを公開鍵pKとともに、サーバに送信することである。しかしながら、典型的には暗号化関数は非常に大きいので、この場合、ユーザおよびサーバの両方の通信/ネットワーク・コストに相当なオーバーヘッドが生じる。したがって、通信コストを改善するために、x,...,xの暗号化関数を、l個未満の暗号化関数へと圧縮することが有利である。そうした圧縮をサポートするには、サーバが、fを計算してf(x)の暗号化関数を返すことができるように、圧縮された暗号化関数を元のl個の暗号化関数E(sK,x),...,E(sK,x)に展開することができる必要がある。さらにまた、プライバシーを維持するには、サーバが値x,...,xや秘密鍵sKを学習しないように、サーバの展開プロトコルが忘却性を有したままである必要がある。
本明細書における実装は、ユーザまたはクライアントが1または複数の整数を暗号化された多項式へと圧縮することを可能とするとともに、公開鍵および暗号化された多項式が与えられると、サーバが、整数または秘密鍵の平文値を学習することなく、暗号化された整数を取り出すために暗号化された多項式を展開することを可能とする、個人情報取出(PIR)ルーチンに関する。このルーチンは、空間の利用を最大化するとともに複数の値を同じ暗号文へとパッキングすることによって、1000倍を超える圧縮を提供することができる。サーバは、公開されており暗号化されていない(例えば、平文である)場合がある信頼済みでないデータ・ストア上に記憶されているデータ・ブロックに忘却型アクセスを行うために、展開された暗号化された整数を用いることができる。一例では、クライアント装置を用いるクライアントは、サーバに位置を明かすことなく、特定の位置の地図データにアクセスすることを望む場合がある。例えば、クライアントは、空港に着陸したばかりであり、自身の周囲の地図データをプライベートに取り出すことを望んでいる。PIRルーチンによって、地図データを記憶するサーバが、いずれのデータ(すなわち、クライアントの位置を明かすデータ)がクライアント装置によって取り出されたかを学習することが妨げられる。別の例では、クライアントは、いずれのビデオがダウンロードされたかを明かすことなく、サーバからビデオをダウンロードすることを望む場合がある。いくつかの実装では、PIRルーチンは、オフラインの手法により計算および通信の一部を実行し(すなわち、リソースの競合が少ないとき)、それによって計算および通信のオンライン部分を減少させる(すなわち、リソースの競合が多いとき)。
図1を参照すると、いくつかの実装では、一例のシステム100は、それぞれのユーザに関連付けられておりネットワーク112を介してリモート・システム111と通信状態にあるユーザ装置10(クライアント装置10とも呼ぶ)を備える。ユーザ装置10は、デスクトップ・ワークステーション、ラップトップ・ワークステーション、またはモバイル・デバイス(すなわち、スマートフォン)など、任意のコンピューティング・デバイスにも対応してよい。リモート・システム111は、1つのコンピュータ、複数のコンピュータ、またはスケーラブルな/エラスティックなコンピューティング・リソース118(例えば、データ処理ハードウェア)および/またはストレージ・リソース116(例えば、メモリ・ハードウェア)を有する分散型システム(例えば、クラウド環境)であってよい。信頼済みでないデータ・ストア150は、クライアントまたはコンピューティング・リソース118のうちの1つ以上によるストレージ・リソース116のスケーラブルな使用を可能とするように、ストレージ・リソース116上にオーバレイされている。信頼済みでないデータ・ストア150は、複数のデータ・ブロック152、すなわち、152a~nを記憶するように構成されている。
例えば、信頼済みでないデータ・ストア150は、公開されており暗号化されていないn個のデータ・ブロック(B)152を含み、1または複数のクライアント装置10が、データ・ブロック(b)152の忘却型取出を行ってアクセス・パターンを秘匿するためにPIRを用いることを、クライアント装置10によるデータ・ブロック(B)152に対する検索機能を保持したまま可能とする。このように、クライアント装置10がデータ・ブロック152を所有しなくてよいので、データ・ブロック152のコンテンツは、いくつかの構成では公衆に利用可能である。これに代えて、データ・ブロック152が特定のクライアント12に対してプライベートである場合があるが、しかしながら、その場合でも、クライアント12は、信頼済みでないデータ・ストア150からアクセス・パターンを秘匿することを依然として望む。クライアント12に関連付けられているクライアント装置10(例えば、コンピュータ)は、関連するメモリ・ハードウェア122および関連するデータ処理ハードウェア124を備えてもよい。各クライアント装置10は、関連するメモリ・ハードウェア122に、公開鍵(pK)130および秘密鍵(sK)132、ならびにデータ処理ハードウェア124によってクエリ134を生成するために実行可能な命令を保持すなわち記憶させてもよい。いくつかの例では、データ処理ハードウェア124は、リモート・システム111(本明細書では、信頼済みでない環境において実行しているサーバとも呼ぶ)に対し発行されるクエリ134を圧縮するためのコンプレッサ160を実行する。
コンプレッサ160は、いくつかの例では、l個の整数136を含む平文クエリ134(すなわち、整数136からなる長さlのシーケンス)を取得または受信する。ここでlは整数136の個数であり、信頼済みでないデータ・ストア150に記憶されているデータ・ブロック数n以下である。例えば、信頼済みでないデータ・ストア150が100万個のデータ・ブロック152を含む場合、クエリ134は100万個以下の整数136を含む。いくつかの例では、より詳細に以下に述べるように、クエリ134の整数136は、サーバ111がデータ・ブロック152に対して行う計算を示す。すなわち、クエリ134の各整数136は、信頼済みでないデータ・ストア150上に記憶されているデータ・ブロック152に対応し、各整数136の値は、対応するデータ・ブロック152との計算が行われる値をサーバ111に提供する。コンプレッサ160は、秘密暗号化鍵(sK)132も受信する。sK132は、暗号文空間からユーザ装置10によってランダムにサンプリングされてもよい。
コンプレッサ160は、いくつかの実装では、クエリ134を受信し、係数173および次数dを有する関連する多項式172を生成する、多項式ジェネレータ170を実装する。多項式172の係数173は、クエリ134の整数136を含む。整数136の個数lが次数d未満である場合、欠けている係数173は0に設定されてもよい。対照的に、整数136の個数lが次数dより大きい場合、多項式ジェネレータ170は、全ての整数136が係数173として含まれるまで、複数の別個の多項式172を生成してもよい。この場合、複数の別個の多項式172が結合され、1つの結合した多項式172として扱われてもよい。いくつかの例では、多項式ジェネレータ170は、多項式172を生成するために、RLWE(ring learning with errors)法を用いる。RLWEは、有限場における多項式環に特化したLWE(learning with errors)である。LWEは、耐量子性の暗号法であり、AおよびBが既知であるとき、B=A×s+eを解く値を発見することが困難であることに基づく。すなわち、LWE法(またしたがって、拡張では、RLWE法)は、少量のノイズeによって乱されるランダムな線型方程式による。
示した例では、コンプレッサ160は、多項式172および秘密暗号化鍵(sK)132を受信するエンクリプタ180も含む。エンクリプタ180は、多項式172を暗号化するためにsK132を用い、例えば、暗号化された多項式182を生成するために完全準同型暗号(FHE)方式を用いる。例えば、エンクリプタ180は、BGV(Brakerski-Gentry-Vaikuntanathan)法またはFV(Fan-Vercauteren)法を用いてもよい。FHEは暗号化の一形態であり、暗号文に対して、復号されると平文に対して演算が実行された場合の演算の結果と一致する暗号化された結果を生成するような計算を可能とする。FHEを用いる暗号化演算では平文としてのその入力がアフィン性を有するので、暗号文は、例えば、0または1が乗算された暗号化された単項式の和(すなわち、係数173を有する多項式172)として表現され得る。
その後、クライアント装置10は(すなわち、データ処理ハードウェア124を介して)、暗号化された多項式182をサーバ111に送信する。この場合において、コンプレッサ160は、d個の暗号化関数を1つの暗号化関数へと圧縮する。典型的なPIR方式では、各暗号化関数の別個の選択ベクトルが必要である。したがって、例えば、dが1024または2048に等しい場合、システム100では、そうした従来の方式に対して、通信および/またはネットワーク・コストがそれぞれ1024倍または2048倍、改善される。
引き続き図1を参照すると、サーバ111(すなわち、リモート・システム111)は、いくつかの実装では、暗号化された多項式182および公開暗号化鍵(pK)130を受信するエキスパンダ200を実行する。クライアント装置10は、暗号化された多項式182を提供する場合、pK130を提供してもよい。エキスパンダ200は、より詳細に以下に述べるように、暗号化された整数210、すなわち、E(sK,x),...,E(sK,x)のシーケンスの忘却型取出を行うために、暗号化された多項式182を展開する。すなわち、エキスパンダ200は、暗号化された多項式182から、平文クエリ134の各整数136の暗号化関数(それによって、各整数136が、暗号化された整数210のシーケンスを形成するべく、sK132を用いてクライアント装置10によって暗号化されている)を取り出す。sK132のコンテンツがサーバ111に対し明かされはしないので、サーバ111は、暗号化された整数210のシーケンスに関連付けられている平文値(すなわち、整数136)を確認したり学習したりしない。
ここで図2Aを参照すると、随意で、エキスパンダ200は、暗号化された多項式182を展開するとき、ノード230,230a~nを有する木データ構造220を生成する。暗号化された多項式182は、木データ構造220の根230Rとして設定されてもよい。すなわち、エキスパンダ200は、根230Rから開始する木のようにして動作してもよい。木の高さ(すなわち、レベルまたは行の数)は、いくつかの例では、log(d)+1である。例えば、次数dが1024の場合、高さは10となる。木220の「トップ」(すなわち、最終レベル)は、暗号化された整数210のシーケンスを含んでもよい。図2Bは、暗号化された多項式182を暗号化された整数210のシーケンスへ展開するための一例のアルゴリズム240を提供する。いくつかの実装では、木データ構造220は、二次元配列resの形態を取る。
配列resは、木データ構造220のレベル(すなわち、高さ)を示すインデックスiを有する第1のforループと、木220のレベルiにおける全てのノード230(2個が存在する)を通じて繰り返されるインデックスjを有する第2のforループとによって埋められてもよい。レベルは0から開始するインデックスを付けられるので、第1のレベルは、2=1個のノード230(根230Rである)を有する。木220の各ノード230は、対応する値、231,231a~nに関連付けられている。非葉ノード230(すなわち、1つ以上の子ノード230を有するノード)については、これらの値231は、最終的な展開された暗号文(すなわち、暗号化された整数210のシーケンス)を計算するために用いられる中間値231である。各ノード230に関連付けられている値231は、二次元配列resに記憶されることになる。特に、res[i][j]は、i番目のレベルにおける左端からj番目のノードに関連付けられている値を指す。最も内側のループは、i番目のレベルの左端からj番目のノード230の2つの子ノード230に対する値231を計算する。親は、i番目のレベルのこの左端からj番目のノードの値を参照する。左および右は、いくつかの例では、それぞれ左および右の子ノードの値231に対する最終的な値を計算するために用いられる追加の中間値231を参照する(それぞれ、res[i][j]およびres[i][j+2]に記憶されることになる)。いくつかの実装(例えば、サーバ111がメモリの制約を有する場合)では、中間値231はメモリ節約のため1つのループにおける使用後に削除される。例えば、レベルiに対する値を計算した後、図2Bのアルゴリズム240は、レベル0,1,...,i-1に対する値231を必要としないので、それらの値231が削除されてもよい。
典型的な二分木では、ノード230は、典型的には、連続するインデックスにより配置される。しかしながら、いくつかの例では、エキスパンダ200は、連続するインデックスによりノード230を配置しない。アルゴリズム240の和(Sum)関数は、異なる冪を用いて置き換えられた2つの暗号文の正確な加算を行うためにpKを用いる。両方のループが完了した後、葉ノード230(すなわち、木220のトップのレベル)は、暗号化された整数210のシーケンスを含む。示した例では、葉ノード230は、暗号化された整数210のシーケンスを返すのに先立って、次数dで除算される。これに代えて、多項式172が暗号化に先立って次数dで除算されてもよい。この例の場合、ユーザ装置10による追加の計算のコストによって、ユーザ装置10とサーバ111との間の通信において消費される帯域幅を減少させるように、より小さなパラメータ(例えば、ノイズ)を選択することが可能である。
戻って図1を参照すると、暗号化された整数210のシーケンスに基づき、サーバ111は、暗号化された結果192をユーザ装置10に返す。例えば、サーバ111は、暗号化された整数210を受信し、暗号化された整数を用いて信頼済みでないデータ・ストア150からデータ・ブロックを取り出すカリキュレータ190を実行してもよい。例えば、カリキュレータ190は、信頼済みでないデータ・ストア150から取り出されるデータ・ブロック152と、暗号化された整数210のシーケンスとに基づき、暗号化された結果192を計算する。
ここで図3を参照すると、いくつかの例では、カリキュレータ190は、暗号化された整数210のシーケンスと信頼済みでないデータ・ストア150から取り出されたデータ・ブロック152との内積310(ドット積またはスカラー積としても知られている)を決定することによって、暗号化された結果192を計算する。暗号化された結果192は、内積310を含んでもよい。いくつかの実装では、ユーザ装置10は、暗号化された結果192をサーバ111から受信し、暗号化された結果192をsK132を用いて復号するためにデクリプタ300を実行する(すなわち、データ処理ハードウェア124を介して)。sK132は、ローカルのメモリ・ハードウェア122上に記憶されてもよく、デクリプタ300は、暗号化された結果192を復号するためにsK132を取得してもよい。したがって、デクリプタ300は、データ・ブロック152との平文クエリ134の内積310を計算することによって取得され得る結果を表す復号された結果302を出力するが、しかしながら、この取出は忘却型であった。復号された結果302は、サーバ111に対し送信されたクエリ134(または複数のクエリ)に応じて、任意の数のデータ・ブロック152に対応してよい。
ここで図4の概略図400を参照すると、いくつかの例では、平文クエリ134における各平文整数136は、信頼済みでないデータ・ストア150のそれぞれのデータ・ブロック152に対する選択基準に対応する。平文クエリ134は、信頼済みでないデータ・ストア150から1つのデータ・ブロック152を選択するための選択ベクトルを含んでもよい。例えば、コンプレッサ160に対して入力される第1の平文クエリ134aは、2番目の位置の1つの「1」を除いてすべて「0」であるベクトルを含んでもよい。ここで、デクリプタ300は、第1のクエリ134aから返される暗号化された結果192を、復号された結果302(信頼済みでないデータ・ストア150の2番目の位置に対応するデータ・ブロック152を含む)へと復号するであろう(内積310では、2番目のデータ・ブロックを除いてすべてのデータ・ブロック152に0が乗算されるので)。0が乗算されたデータ・ブロック152は省かれるので、和では、2番目のデータ・ブロック152だけが残ることになる。明らかに、そうしたクエリ134aは、データ・ストア150の任意の位置/場所からの任意のデータ・ブロック152の忘却型選択を行うために用いられ得る。しかしながら、様々な他の関数がクエリ134によって実行されてもよい。
コンプレッサ160によって実行される圧縮アルゴリズムは、単なる選択ベクトルの受信を超えて拡張され、一般ベクトル(すなわち、各整数136が平文空間における任意の整数を含み得るベクトル)を受信することを含む。すなわち、典型的なPIR方式では、各データ・ブロック152の取出のためにサーバ111に対し別個の選択ベクトルが送信される必要がある(各選択ベクトルはデータ・ブロックの個数nと等しい長さを有する)、コンプレッサ160は、d個の暗号化関数を1つの一般ベクトルへと圧縮してもよい。例えば、コンプレッサ160に対し入力される第2のクエリ134bには、「1」に等しい3つの整数136(すなわち、2番目、3番目、およびl番目の整数136)が設定され、残りの整数136は「0」に等しく設定される。ここで、第2のクエリ134bは、対応する暗号化された結果192(信頼済みでないデータ・ストア150の2番目、3番目、およびl番目のデータ・ブロック152の値の和に対応する)を返すであろう。クエリ134は、重み付けされた和を取り出してもよい。例えば、コンプレッサ160に対し入力される第3のクエリ134cでは、αの重み因子に設定される3番目の整数136を除き、すべての整数136が「1」に等しく設定される。したがって、第3のクエリ134cは、重み付けされた和(すなわち、3番目のデータ・ブロックにはαの重み付けがされ、残りのデータ・ブロック152には「1」の重み付けがされる)に対応する、対応する暗号化された結果192を返すであろう。さらに別の例では、サーバ111は、コンプレッサ160に対し入力される第4のクエリ134d(すべての整数が「1」に等しく設定される)に応答して、複数のデータ・ブロック152の平均を返してもよい。したがって、コンプレッサ160が、(選択ベクトルのみとは反対に)整数136が平文空間全体に渡り得る一般ベクトルに対する圧縮を提供することが理解される。
いくつかの実装では、システム100は、オフライン期間とオンライン期間との間で計算および/または通信を割り当てる。オフライン期間は、リソース(例えば、帯域幅、計算、電力など)がオンライン期間中よりも比較的安価な期間として定義される。すなわち、オフライン期間中には、オンライン期間中よりもリソースの競合が少ない。例えば、ユーザ装置10(図1)は、夜間(オフライン期間中)にWiFiに接続されて、日中(オンライン期間中)にモバイル・データを用いるよりも帯域幅を比較的安価にすることができる。展開のオーバーヘッドに起因する乗数(いくつかのアプリケーションでは4~5倍まで増加し得る)のために、忘却型取出では通常の平文取出に対して相当コスト(すなわち、リソース利用)が増加する。したがって、オンライン期間とオフライン期間との間でのコスト差を広げることは有利である。このように、システム100は、信頼済みでないデータ・ストア150の忘却型クエリ134が望ましい場合、展開のオーバーヘッドをオフライン期間へ移すことによって、オンライン期間中のコストを減少させる(すなわち、消費リソースを低減する)ためにオフライン計算を行ってもよい。
ここで図5Aを参照すると、概略図500aは、オフライン期間中、ランダム化平文クエリ134Rを受信するコンプレッサ160を示す。ランダム化平文クエリ134Rは、0または1に等しい各整数136の設定をランダム化する(例えば、データ処理ハードウェア124によって)。示した例では、2番目、4番目、5番目の整数136は「1」に等しく設定され、残りの整数136は「0」に等しく設定される。上述の通り、クエリ134Rは、サーバ111に、暗号化された結果192R(ランダム化平文クエリ134Rにおいて「1」に等しく設定された整数136(すなわち、2番目、4番目、5番目の整数136)に関連付けられているデータ・ブロック152の和となる)を返させる。クエリ134Rがオフライン期間に行われたので、対応する暗号化された結果192Rを取り出すコストは比較的低い。ユーザ装置10は、ユーザ12がオンライン期間中にクエリ134を行うまで、暗号化された結果192Rおよびランダム化平文クエリ134Rを記憶してもよい(すなわち、ローカルメモリ・ハードウェア122に)。
いくつかの例では、ユーザ12がオンライン期間中にクエリ134を行うとき、データ処理ハードウェア124上で実行中のインバータ530は、修正されたクエリ134Mを形成するために、ランダム化平文クエリ134Rの1つの平文整数(すなわち、選択整数136M)を反転する。すなわち、ランダム化平文クエリ134Rの選択された整数136Mが0に等しく設定されている場合、インバータ530は、選択された整数136Mを「0」から「1」に変更する。一方、ランダム化平文クエリ134Rの選択された整数136Mが「1」に等しく設定されている場合、インバータ530は、選択された整数136Mを「1」から「0」に変更する。修正されたクエリ134Mにおける反転された整数136M(例えば、図5Aにおける3番目の整数136)は、ユーザ12がオンライン期間中に信頼済みでないデータ・ストア150から取り出すことを望むデータ・ブロック152に対応する。ここで、インバータ530は、修正されたクエリ134Mをサーバ111のエキスパンダ200に暗号でなく(すなわち、平文で)送信する。すなわち、エンクリプタ180は、修正されたクエリ134Mを暗号化しない。修正されたクエリ134Mは、暗号化されていないので、データ・ストア150におけるデータ・ブロック152の個数nの大きさのバイナリベクトルであり、暗号化関数による展開のオーバーヘッドがない。したがって、修正されたクエリ134Mによって消費される帯域幅は、例えば、暗号化された多項式182によって消費される帯域幅よりも、相当小さい。修正されたクエリ134Mは圧縮されておらず、したがって展開が不要である(そのため、サーバ111によって要求される計算を大幅に減らす)ので、サーバ111のカリキュレータ190は、修正されたクエリ134Mを直接受信し、平文結果520を計算する。すなわち、修正されたクエリ134Mとデータ・ブロック152との間の計算(例えば、ドット積)は、修正されたクエリ134Mによって選択されたデータ・ブロック152の和に等しい平文結果520を含む。サーバ111は、平文結果520をユーザ装置10に提供してもよい。
ここで図5Bの概略図500bを参照すると、いくつかの例では、ユーザ装置10は、以前に記憶した暗号化された結果192Rを対応する復号された結果302Rへと復号するために、デクリプタ300を実行する(すなわち、データ処理ハードウェア124を介して)。ここで、以前に記憶した暗号化された結果192Rは、図5Aを参照して上述した通り、オフライン期間中に行われるランダム化平文クエリ134Rに対応する。これらの例では、データ処理ハードウェア124は、結果カリキュレータ540(サーバ111から受信される平文結果520とデクリプタ300から出力される復号された結果302Rとの間の結果の差542を計算するように構成されている)をさらに実行する。
クエリ134R,134Mに応答して取り出されるデータ・ブロック152は、1つの反転された整数136Mだけ異なるので、結果の差542は、反転された整数136Mに関連付けられている値に対応する。したがって、ユーザ装置10がオンライン期間中に最小のリソースを用いてデータ・ブロック152を取り出し、いずれのデータ・ブロック152が信頼済みでないデータ・ストア150から取り出されたかをサーバ111が判定することはない。ランダム化クエリ134Rの暗号化によって、ランダム化クエリ134Rと修正されたクエリ134Mとの間でいずれの整数136が反転されているかをサーバ111が判定不可能であることが保証される。修正されたクエリ134Mはランダム化クエリ134Rから修正されたので、クエリ134Mが暗号でなく(すなわち、平文で)サーバ111に対し送信されているにもかかわらず、サーバが修正されたクエリ134Mから単独で決定する情報はない。しかしながら、再利用によってサーバ111が複数の修正されたクエリ134Mの間の差を決定することが可能となるので、プライバシーを維持するためにはランダム化クエリ134Rおよび暗号化された結果192Rが再利用されるべきでないことが留意される。いくつかの例では、ユーザ装置10は、暗号化された結果192Rおよびランダム化クエリ134Rの「プール」を作成してオンライン期間中に使用するために、複数の独立したランダム化クエリ134Rから複数の暗号化された結果192Rを取り出す。いくつかの実装では、ランダム化クエリ134Rは、ランダム化ビット・ベクトルに代えて、平文空間からサンプリングされたランダム化整数を含む。これによって計算が増加するものの、取り出されるデータ・ブロック152以外のデータ・ブロック152がクライアント12から隠蔽されたままとなることが保証される(すなわち、内積310は、データ・ブロック152に関する追加情報をクライアント12に明かさない)。これは、信頼済みでないデータ・ストア150がプライベートである場合、有利であることがある。
図6は、暗号化された結果をサーバから忘却的に取り出すためのクエリを圧縮する一例の方法600のフローチャートである。方法600は動作602で開始し、ユーザ装置10のデータ処理ハードウェア124において平文クエリ134を取得する。クエリ134は、平文整数136のシーケンスを含む。動作604では、方法600は、データ処理ハードウェア124によって、係数173を有する多項式172を生成することを含む。係数173は、平文整数136のシーケンスを含む。動作606では、方法600は、データ処理ハードウェア124によって、秘密暗号化鍵132を用いて多項式172を暗号化することを含む。秘密暗号化鍵132は、データ処理ハードウェア124によって、暗号文空間からランダムにサンプリングされる。
動作608では、方法600は、データ処理ハードウェア124によって、暗号化された多項式182をデータ処理ハードウェア124と通信状態にあるサーバ111に送信することを含む。サーバ111は、暗号化された整数210のシーケンスを取得するために、暗号化された多項式182を公開暗号化鍵130を用いて展開するように構成されている。暗号化された整数210のシーケンスは、平文クエリ134の平文整数136のシーケンスに対応する。方法600は、工程610にて、データ処理ハードウェア124において、サーバ111から暗号化された結果192を受信することを含む。暗号化された結果192は、暗号化された整数210のシーケンスに基づく。いくつかの実装では、方法600は、暗号化された結果192を、サーバ111上に記憶されている信頼済みでないデータ・ストア150(例えば、データベース)と、暗号化された整数210のシーケンスと、に基づき計算することと、暗号化された結果192をユーザ装置10に返すことと、を含む。例えば、サーバ111は、サーバ111上に記憶されているデータベース150と暗号化された整数210のシーケンスとの内積310を決定することによって、暗号化された結果192を計算してもよい。
図7は、本明細書に記載のシステムおよび方法を実装するために用いられ得る一例のコンピューティング・デバイス700の概略図である。コンピューティング・デバイス700は、ラップトップ、デスクトップ、ワークステーション、携帯情報端末、サーバ、ブレードサーバ、メインフレーム、および他の適切なコンピュータなど、様々な形態のデジタル・コンピュータを表すことが意図される。ここに示したコンポーネント、それらの接続および関係、ならびにそれらの機能は、例示的な意味でしかなく、本開示において記載され特許を請求される発明の実装を限定することを意味するものではない。
コンピューティング・デバイス700は、プロセッサ710、メモリ720、ストレージ・デバイス730、メモリ720および高速拡張ポート750に接続する高速インタフェース/コントローラ740、ならびに低速バス770およびストレージ・デバイス730に接続する低速インタフェース/コントローラ760を備える。コンポーネント710,720,730,740,750,760の各々は、様々なバスを用いて相互接続されており、共通のマザーボード上に、または他の適切な手法により、取り付けられてよい。プロセッサ710は、高速インタフェース740に結合されているディスプレイ780などの外部入力/出力装置上にグラフィカル・ユーザ・インタフェース(GUI)用のグラフィック情報を表示するためにメモリ720にまたはストレージ・デバイス730上に記憶されている命令を含む、コンピューティング・デバイス700内における実行用の命令を処理することが可能である。他の実装では、複数のメモリおよびメモリ種類に加えて、適切であるように複数のプロセッサおよび/または複数のバスが用いられてよい。また、各デバイスが必要な動作の一部分を提供する複数のコンピューティング・デバイス700が接続されてもよい(例えば、サーバ・バンク、ブレードサーバのグループ、またはマルチプロセッサ・システムとして)。
メモリ720は、コンピューティング・デバイス700内に情報を非一時的に記憶する。メモリ720は、コンピュータ可読媒体、揮発性メモリユニット、または不揮発性メモリユニットであってよい。非一時的なメモリ720は、コンピューティング・デバイス700による使用のため、プログラム(例えば、命令のシーケンス)またはデータ(例えば、プログラム状態情報)を一時的にまたは永続的に記憶するために用いられる物理デバイスであってよい。不揮発性のメモリの例は、次に限定されないが、フラッシュ・メモリおよび読出専用メモリ(ROM)/プログラマブル読取専用メモリ(PROM)/消去可能プログラマブル読取専用メモリ(EPROM)/電子的に消去可能なプログラマブル読取専用メモリ(EEPROM)(例えば、ブート・プログラムなど典型的にはファームウェアに用いられる)を含む。揮発性メモリの例は、次に限定されないが、ランダム・アクセス・メモリ(RAM)、ダイナミック・ランダム・アクセス・メモリ(DRAM)、スタティック・ランダム・アクセス・メモリ(SRAM)、相変化メモリ(PCM)、およびディスクまたはテープを含む。
ストレージ・デバイス730は、コンピューティング・デバイス700にマス・ストレージを提供することができる。いくつかの実装では、ストレージ・デバイス730はコンピュータ可読媒体である。様々な異なる実装では、ストレージ・デバイス730は、フロッピー(登録商標)ディスク装置、ハードディスク装置、光学ディスク装置、もしくはテープ装置、フラッシュ・メモリまたは他の同様のソリッド・ステート・メモリ装置、またはストレージ・エリア・ネットワークもしくは他の構成における装置を含む装置のアレイであってよい。追加の実装では、コンピュータ・プログラム製品は情報キャリアにより有形に具体化される。コンピュータ・プログラム製品は、実行時に上述のものなど1または複数の方法を実行する、命令を含む。情報キャリアは、メモリ720、ストレージ・デバイス730、またはプロセッサ710上のメモリなど、コンピュータ可読媒体または機械可読媒体である。
高速コントローラ740がコンピューティング・デバイス700用の帯域幅集約的な動作を管理する一方、低速コントローラ760は、より帯域幅集約的でない動作を管理する。そのような役割の割当は単に例示に過ぎない。いくつかの実装では、高速コントローラ740は、メモリ720、ディスプレイ780(例えば、グラフィックス・プロセッサまたはアクセラレータを通じて)、および高速拡張ポート750(様々な拡張カード(示していない)を受け入れることができる)に結合されている。いくつかの実装では、低速コントローラ760は、ストレージ・デバイス730および低速拡張ポート790に結合されている。低速拡張ポート790(様々な通信ポート(例えば、USB、BLUETOOTH(登録商標)、イーサネット(登録商標)、無線イーサネット)を含んでよい)は、1または複数の入力/出力デバイス(キーボード、ポインティング・デバイス、スキャナなど)またはネットワーク・デバイス(スイッチもしくはルータなど)に対し、結合されてよい(例えば、ネットワーク・アダプタを通じて)。
コンピューティング・デバイス700は、図に示すように、多くの異なる形式により実装されてよい。例えば、1つの標準的なサーバ700aとして実装されてもよく、そのようなサーバ700aのグループにより複数回実装されてもよく、ラップトップ・コンピュータ700bとして、またはラック・サーバ・システム700cの一部として実装されてもよい。
本明細書に記載のシステムおよび技術の様々な実装は、デジタルな電子回路および/または光回路、集積回路、特別に設計されたASIC(特定用途向けIC)、コンピュータ・ハードウェア、ファームウェア、ソフトウェア、および/またはそれらの組み合わせにより実現可能である。それらの様々な実装は、ストレージ・システム、1つ以上の入力装置、および1つ以上の出力装置との間でデータおよび命令を送受信するように結合されている、1つ以上のプログラム可能な(専用または汎用の)プロセッサを備えるプログラム可能なコンピュータ上において実行可能および/または解釈可能である、1または複数のコンピュータ・プログラムによる実装を含むことが可能である。
ソフトウェア・アプリケーション(すなわち、ソフトウェア・リソース)は、コンピューティング・デバイスにタスクを実行させるコンピュータ・ソフトウェアを指す場合がある。いくつかの例では、ソフトウェア・アプリケーションは、「アプリケーション」、「アプリ(app)」または「プログラム」と呼ばれる場合がある。アプリケーションの例は、次に限定されないが、システム診断アプリケーション、システム管理アプリケーション、システム保守アプリケーション、文書処理アプリケーション、表計算アプリケーション、メッセージング・アプリケーション、メディア・ストリーミング・アプリケーション、ソーシャル・ネットワーキング・アプリケーション、およびゲーム・アプリケーションを含む。
それらのコンピュータ・プログラム(プログラム、ソフトウェア、ソフトウェア・アプリケーション、またはコードとしても知られている)は、プログラム可能なプロセッサ用の機会命令を含み、高レベルの手続的および/またはオブジェクト指向のプログラミング言語により、アセンブリ/機械語により、またはそのバケツにより実装されることが可能である。本明細書で用いられるところでは、用語「機械可読媒体」および「コンピュータ可読媒体」は、機械可読信号として機械命令を受信する機械可読媒体を含め、プログラム可能なプロセッサに機械命令および/またはデータを提供するために用いられる、任意のコンピュータ・プログラム製品、非一時的なコンピュータ可読媒体、装置、および/またはデバイス(例えば、磁気ディスク、光ディスク、メモリ、プログラム可能論理回路(PLD))を指す。用語「機械可読信号」は、プログラム可能なプロセッサに機械命令および/またはデータを提供するために用いられる任意の信号を指す。
本明細書に記載の処理および論理フローは、入力データに対する演算と出力の生成とによって機能を実行するように1または複数のコンピュータ・プログラムを実行する1または複数のプログラム可能なプロセッサ(データ処理ハードウェアとも呼ぶ)によって実行されることが可能である。処理および論理フローは、専用の論理回路(例えば、FPGA(field programmable gate array)またはASIC(特定用途向けIC))によって実行されることが可能である。コンピュータ・プログラムの実行に適切なプロセッサは、例として、汎用および専用のマイクロプロセッサ、および任意の種類のデジタル・コンピュータの1または複数のプロセッサの両方を含む。一般に、プロセッサは、読出専用メモリ、ランダム・アクセス・メモリ、またはその両方から命令およびデータを受け取るであろう。コンピュータの必須要素は、命令を実行するためのプロセッサと、命令およびデータを記憶するための1または複数のメモリ・デバイスとである。一般に、コンピュータは、データを記憶するための1または複数のマス・ストレージ(例えば、磁気、光磁気ディスク、または光ディスク)を備えるか、データの受信、データの送信、またはその両方を行うように、該マス・ストレージに対し動作可能に結合されている。しかしながら、コンピュータがそのようなデバイスを備える必要はない。コンピュータ・プログラム命令およびデータを記憶するために適切なコンピュータ可読媒体は、例として、半導体メモリ・デバイス(例えば、EPROM、EEPROMおよび、フラッシュメモリ・デバイス)、磁気ディスク(例えば、内部ハードディスクまたはリムーバブル・ディスク)、光磁気ディスク、ならびにCD-ROMおよびDVD-ROMディスクを含む、全ての形式の不揮発性メモリ、メディア、およびメモリ・デバイスを含む。プロセッサおよびメモリは、専用論理回路によって補足されるか、専用論理回路に組み込まれることが可能である。
ユーザとの対話を提供するため、本開示の1または複数の態様は、ユーザに情報を表示するためのディスプレイ・デバイス(例えば、CRT(陰極線管)、LCD(液晶ディスプレイ)モニタ、またはタッチ・スクリーン)を有する、また随意では、それによってユーザがコンピュータに入力を提供可能であるキーボードおよびポインティング・デバイス(例えば、マウスまたはトラックボール)を有する、コンピュータ上に実装されることが可能である。他の種類のデバイスもユーザとの対話を提供するために用いられることが可能である。例えば、ユーザに対し提供されるフィードバックは、任意の形態の感覚フィードバック(例えば、視覚フィードバック、聴覚フィードバック、または触覚フィードバック)であることが可能であり、ユーザからの入力は、音響、音声、または触覚の入力を含む、任意の形態により受信されることが可能である。加えて、コンピュータは、ユーザによって用いられるデバイスとの間でドキュメントを送受信することによって(例えば、ウェブ・ブラウザから受信される要求に応じてユーザのクライアント装置上のウェブ・ブラウザにウェブ・ページを送信することによって)、ユーザと対話することが可能である。
多くの実装について記載した。しかしながら、様々な変更が本開示の精神および範囲から逸脱することなくなされ得ることが理解されるであろう。したがって、他の実装は添付の特許請求の範囲の範囲内にある。

Claims (22)

  1. 方法(600)であって、
    ユーザ装置(10)のデータ処理ハードウェア(124)において、平文整数(136)のシーケンスを含む平文クエリ(134)を取得することと、
    前記データ処理ハードウェア(124)によって、前記平文クエリ(134)の前記平文整数(136)のシーケンスを含む係数(173)を有する多項式(172)を生成することと、
    前記データ処理ハードウェア(124)によって、暗号文空間から前記データ処理ハードウェア(124)によってランダムにサンプリングされた秘密暗号化鍵(132)を用いて前記多項式(182)を暗号化することと、
    前記データ処理ハードウェア(124)によって、暗号化された前記多項式(182)を前記データ処理ハードウェア(124)と通信状態にあるサーバ(111)に送信することであって、前記サーバ(111)は、暗号化された整数(210)のシーケンスを取得するために、暗号化された前記多項式(182)を公開暗号化鍵(130)を用いて展開するように構成されており、前記暗号化された整数(210)のシーケンスは前記平文クエリ(134)の前記平文整数(136)のシーケンスに対応する、送信することと、
    前記データ処理ハードウェア(124)において、前記サーバ(111)から暗号化された結果(192)を受信することであって、前記暗号化された結果(192)は、前記暗号化された整数(210)のシーケンスに基づく、受信することと、を備える方法(600)。
  2. 前記サーバ(111)は、木データ構造(220)を生成することによって、暗号化された前記多項式(182)を展開するように構成されており、暗号化された前記多項式(182)は、前記木データ構造(220)の根(230R)を含む、請求項1に記載の方法(600)。
  3. 前記木データ構造(220)の最上位の行は、前記暗号化された整数(210)のシーケンスを含む、請求項2に記載の方法(600)。
  4. 前記多項式(182)を暗号化することは、完全準同型性を有する暗号化方式により前記多項式(182)を暗号化することを含む、請求項1~3のいずれか一項に記載の方法(600)。
  5. 前記サーバ(111)は、暗号化された前記多項式(182)を前記公開暗号化鍵(130)を用いて展開した後、
    前記暗号化された結果(192)を、前記サーバ(111)における信頼済みでないデータ・ストア(150)と、前記暗号化された整数(210)のシーケンスとに基づき計算することと、
    前記暗号化された結果(192)を前記ユーザ装置(10)に返すことと、を行うように構成されている、請求項1~4のいずれか一項に記載の方法(600)。
  6. 前記サーバ(111)は、前記信頼済みでないデータ・ストア(150)と前記暗号化された整数(210)のシーケンスとの内積(310)を決定することによって、前記暗号化された結果(192)を計算するように構成されている、請求項5に記載の方法(600)。
  7. 前記サーバ(111)から前記暗号化された結果(192)を受信した後、前記データ処理ハードウェア(124)によって、前記信頼済みでないデータ・ストア(150)の1つ以上のデータ・ブロック(152)に対応する復号された結果(302)を取得するために、前記暗号化された結果(192)を復号することをさらに備える、請求項5または6に記載の方法(600)。
  8. 前記平文クエリ(134)の前記平文整数(136)のシーケンスにおける各平文整数(136)は、前記サーバ(111)における信頼済みでないデータ・ストア(150)のそれぞれのデータ・ブロック(152)に対する選択基準に対応する、請求項1~7のいずれか一項に記載の方法(600)。
  9. 前記平文クエリ(134)を取得することは、前記平文整数(136)のシーケンスを含むランダム化クエリ(134)を生成することを含む、請求項1~8のいずれか一項に記載の方法(600)。
  10. 前記データ処理ハードウェア(124)によって、修正されたクエリ(134)を形成するために、前記ランダム化クエリ(134)の前記平文整数(136)のシーケンスからの1つの選択された平文整数(136)を反転することであって、前記選択された平文整数(136)は、前記サーバ(111)における信頼済みでないデータ・ストア(150)のそれぞれのデータ・ブロック(152)に関連付けられている、反転することと、
    前記データ処理ハードウェア(124)によって、前記修正されたクエリ(134)を前記サーバ(111)に送信することと、をさらに備え、前記サーバ(111)は、
    前記サーバ(111)前記信頼済みでないデータ・ストア(150)と、前記修正されたクエリ(134)とに基づき、暗号化されていない結果(192)を計算することと、
    前記暗号化されていない結果(192)を前記ユーザ装置(10)に返すことと、を行うように構成されている、請求項9に記載の方法(600)。
  11. 前記サーバ(111)から前記暗号化された結果(192)および前記暗号化されていない結果(192)を受信した後、前記データ処理ハードウェア(124)によって、前記ランダム化クエリ(134)の前記平文整数(136)のシーケンスからの前記選択された平文整数(136)に関連付けられている前記信頼済みでないデータ・ストア(150)の前記それぞれのデータ・ブロック(152)に対する値を取得するために、前記暗号化された結果(192)と前記暗号化されていない結果(192)との間の差を計算することをさらに備える、請求項10に記載の方法(600)。
  12. システム(100)であって、
    データ処理ハードウェア(124)と、
    ユーザ装置(10)の前記データ処理ハードウェア(124)と通信状態にあるメモリ・ハードウェア(122)と、を備え、前記メモリ・ハードウェア(122)は命令を記憶しており、前記命令は前記データ処理ハードウェア(124)上で実行される時、前記データ処理ハードウェア(124)に、
    平文整数(136)のシーケンスを含む平文クエリ(134)を取得することと、
    前記平文クエリ(134)の前記平文整数(136)のシーケンスを含む係数(173)を有する多項式(172)を生成することと、
    暗号文空間から前記データ処理ハードウェア(124)によってランダムにサンプリングされた秘密暗号化鍵(132)を用いて前記多項式(182)を暗号化することと、
    暗号化された前記多項式(182)を前記データ処理ハードウェア(124)と通信状態にあるサーバ(111)に送信することであって、前記サーバ(111)は、暗号化された整数(210)のシーケンスを取得するために、暗号化された前記多項式(182)を公開暗号化鍵(130)を用いて展開するように構成されており、前記暗号化された整数(210)のシーケンスは前記平文クエリ(134)の前記平文整数(136)のシーケンスに対応する、送信することと、
    前記サーバ(111)から暗号化された結果(192)を受信することであって、前記暗号化された結果(192)は、前記暗号化された整数(210)のシーケンスに基づく、受信ことと、を含む動作を実行させる、システム(100)。
  13. 前記サーバ(111)は、木データ構造(220)を生成することによって、暗号化された前記多項式(182)を展開するように構成されており、暗号化された前記多項式(182)は、前記木データ構造(220)の根(230R)を含む、請求項12に記載のシステム(100)。
  14. 前記木データ構造(220)の最上位の行は、前記暗号化された整数(210)のシーケンスを含む、請求項13に記載のシステム(100)。
  15. 前記多項式(182)を暗号化することは、完全準同型性を有する暗号化方式により前記多項式(182)を暗号化することを含む、請求項12~14のいずれか一項に記載のシステム(100)。
  16. 前記サーバ(111)は、暗号化された前記多項式(182)を前記公開暗号化鍵(130)を用いて展開した後、前記暗号化された結果(192)を、前記サーバ(111)における信頼済みでないデータ・ストア(150)と、前記暗号化された整数(210)のシーケンスとに基づき計算することと、前記暗号化された結果(192)を前記ユーザ装置(10)に返すことと、を行うように構成されている、請求項12~15のいずれか一項に記載のシステム(100)。
  17. 前記サーバ(111)は、前記サーバ(111)における前記信頼済みでないデータ・ストア(150)と前記暗号化された整数(210)のシーケンスとの内積(310)を決定することによって、前記暗号化された結果(192)を計算するように構成されている、請求項16に記載のシステム(100)。
  18. 前記動作は、前記サーバ(111)から前記暗号化された結果(192)を受信した後、前記サーバ(111)における前記信頼済みでないデータ・ストア(150)の1つ以上のデータ・ブロック(152)に対応する復号された結果(302)を取得するために、前記暗号化された結果(192)を復号することを含む、請求項16または17に記載のシステム(100)。
  19. 前記平文クエリ(134)の前記平文整数(136)のシーケンスにおける各平文整数(136)は、前記サーバ(111)における信頼済みでないデータ・ストア(150)のそれぞれのデータ・ブロック(152)に対する選択基準に対応する、請求項12~18のいずれか一項に記載のシステム(100)。
  20. 前記平文クエリ(134)を取得することは、前記平文整数(136)のシーケンスを含むランダム化クエリ(134)を生成することを含む、請求項12~19のいずれか一項に記載のシステム(100)。
  21. 前記動作は、修正されたクエリ(134)を形成するために、前記ランダム化クエリ(134)の前記平文整数(136)のシーケンスからの1つの選択された平文整数(136)を反転することであって、前記選択された平文整数(136)は、前記サーバ(111)における信頼済みでないデータ・ストア(150)のそれぞれのデータ・ブロック(152)に関連付けられている、反転することと、
    前記修正されたクエリ(134)を前記サーバ(111)に送信することと、を含み、前記サーバ(111)は、
    前記サーバ(111)における前記信頼済みでないデータ・ストア(150)と、前記修正されたクエリ(134)とに基づき、暗号化されていない結果(192)を計算することと、
    前記暗号化されていない結果(192)を前記ユーザ装置(10)に返すことと、を行うように構成されている、請求項20に記載のシステム(100)。
  22. 前記動作は、前記サーバ(111)から前記暗号化された結果(192)および前記暗号化されていない結果(192)を受信した後、前記ランダム化クエリ(134)の前記平文整数(136)のシーケンスからの前記選択された平文整数(136)に関連付けられている前記信頼済みでないデータ・ストア(150)の前記それぞれのデータ・ブロック(152)に対する値を取得するために、前記暗号化された結果(192)と前記暗号化されていない結果(192)との間の差を計算することを含む、請求項21に記載のシステム(100)。
JP2021566137A 2019-05-09 2019-12-03 Rlwe暗号文の圧縮および忘却型展開 Active JP7212179B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201962845793P 2019-05-09 2019-05-09
US62/845,793 2019-05-09
PCT/US2019/064334 WO2020226695A1 (en) 2019-05-09 2019-12-03 Compression and oblivious expansion of rlwe ciphertexts

Publications (2)

Publication Number Publication Date
JP2022531496A true JP2022531496A (ja) 2022-07-06
JP7212179B2 JP7212179B2 (ja) 2023-01-24

Family

ID=69005988

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2021566137A Active JP7212179B2 (ja) 2019-05-09 2019-12-03 Rlwe暗号文の圧縮および忘却型展開

Country Status (7)

Country Link
US (1) US11310045B2 (ja)
EP (1) EP3959841B1 (ja)
JP (1) JP7212179B2 (ja)
KR (1) KR102424856B1 (ja)
CN (1) CN114073037B (ja)
TW (1) TWI730533B (ja)
WO (1) WO2020226695A1 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116887076A (zh) * 2023-09-05 2023-10-13 北京中科智易科技股份有限公司 一种装备信息模块化采集系统

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6167392A (en) * 1997-10-09 2000-12-26 Telcordia Technologies, Inc. Method and apparatus for private information retrieval from a single electronic storage device
US20090193033A1 (en) * 2005-05-19 2009-07-30 Zulfikar Amin Ramzan Method and apparatus for communication efficient private information retrieval and oblivious transfer
US20170147835A1 (en) * 2015-11-25 2017-05-25 International Business Machines Corporation Efficient two party oblivious transfer using a leveled fully homomorphic encryption
US10075288B1 (en) * 2014-02-28 2018-09-11 The Governing Council Of The University Of Toronto Systems, devices, and processes for homomorphic encryption
JP2019510261A (ja) * 2016-03-22 2019-04-11 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation プライバシーが強化された中央データ・ストレージのためのコンピュータ実装方法、サーバ、ユーザ・デバイス、およびコンピュータ・プログラム製品

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9900024B2 (en) * 2011-11-10 2018-02-20 Parallel Geometry Inc. Method and system for coding information
EP2822218A1 (en) * 2012-03-02 2015-01-07 Sony Corporation Information processing device, information processing method, and program
USRE48644E1 (en) 2012-04-12 2021-07-13 Jintai Ding Cryptographic system using pairing with errors
US9306738B2 (en) 2012-12-21 2016-04-05 Microsoft Technology Licensing, Llc Managed secure computations on encrypted data
CN103401871B (zh) * 2013-08-05 2016-08-10 苏州大学 一种面向同态加密的密文定序方法及系统
JP6173904B2 (ja) * 2013-12-13 2017-08-02 株式会社東芝 共通鍵暗号装置及びプログラム、並びに、共通鍵復号装置及びプログラム
JP6413743B2 (ja) * 2014-12-16 2018-10-31 富士通株式会社 暗号処理装置、暗号処理方法、及び暗号処理プログラム
WO2017008043A1 (en) * 2015-07-08 2017-01-12 Brown University Homomorphic encryption
CN105610793B (zh) * 2015-12-18 2018-10-26 江苏大学 一种外包数据加密存储与密文查询系统及其应用方法
FR3048102B1 (fr) 2016-02-24 2018-03-09 Commissariat A L'energie Atomique Et Aux Energies Alternatives Methode d'execution confidentielle d'un programme operant sur des donnees chiffrees par un chiffrement homomorphe
US20180373882A1 (en) * 2017-06-23 2018-12-27 Thijs Veugen Privacy preserving computation protocol for data analytics

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6167392A (en) * 1997-10-09 2000-12-26 Telcordia Technologies, Inc. Method and apparatus for private information retrieval from a single electronic storage device
US20090193033A1 (en) * 2005-05-19 2009-07-30 Zulfikar Amin Ramzan Method and apparatus for communication efficient private information retrieval and oblivious transfer
US10075288B1 (en) * 2014-02-28 2018-09-11 The Governing Council Of The University Of Toronto Systems, devices, and processes for homomorphic encryption
US20170147835A1 (en) * 2015-11-25 2017-05-25 International Business Machines Corporation Efficient two party oblivious transfer using a leveled fully homomorphic encryption
JP2019510261A (ja) * 2016-03-22 2019-04-11 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation プライバシーが強化された中央データ・ストレージのためのコンピュータ実装方法、サーバ、ユーザ・デバイス、およびコンピュータ・プログラム製品

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
YI, X. ET AL.: "Single-Database Private Information Retrieval from Fully Homomorphic Encryption", IEEE TRANSACTIONS ON KNOWLEDGE AND DATA ENGINEERING, vol. 25, no. 5, JPN6022047010, May 2013 (2013-05-01), pages 1125 - 1134, XP011498436, ISSN: 0004916321, DOI: 10.1109/TKDE.2012.90 *
ZHANG, W. ET AL.: "RLWE-based homomorphic encryption and private information retrieval", 2013 5TH INTERNATIONAL CONFERENCE ON INTELLIGENT NETWORKING AND COLLABORATIVE SYSTEMS, JPN6022047009, September 2013 (2013-09-01), pages 535 - 540, XP032503117, ISSN: 0004916320, DOI: 10.1109/INCoS.2013.100 *

Also Published As

Publication number Publication date
TW202101936A (zh) 2021-01-01
WO2020226695A1 (en) 2020-11-12
US20200358610A1 (en) 2020-11-12
CN114073037B (zh) 2024-05-17
CN114073037A (zh) 2022-02-18
EP3959841A1 (en) 2022-03-02
EP3959841B1 (en) 2022-06-08
TWI730533B (zh) 2021-06-11
KR102424856B1 (ko) 2022-07-22
JP7212179B2 (ja) 2023-01-24
KR20210152030A (ko) 2021-12-14
US11310045B2 (en) 2022-04-19

Similar Documents

Publication Publication Date Title
TWI734368B (zh) 實現隱私保護的數據同態加解密方法及裝置
Arora et al. Evaluation and comparison of security issues on cloud computing environment
KR101829267B1 (ko) 암호문의 크기가 감소되는 동형 암호화 방법
Qiu et al. Toward practical privacy-preserving frequent itemset mining on encrypted cloud data
WO2019114122A1 (zh) 登录信息的加密方法、装置、电子设备及介质
US8958547B2 (en) Generation of relative prime numbers for use in cryptography
Dowsley et al. A survey on design and implementation of protected searchable data in the cloud
CN111026788A (zh) 一种混合云中基于同态加密的多关键词密文排序检索方法
JP6915375B2 (ja) 多項式ベースの準同型暗号
US20240104234A1 (en) Encrypted information retrieval
CN113630250B (zh) 基于数据加密的模型训练方法及系统
CN111767411A (zh) 知识图谱表示学习优化方法、设备及可读存储介质
JP2010165275A (ja) データ格納システム及び情報送信装置及びサーバ装置
KR102308066B1 (ko) 저선형 공개-키 동작들을 사용하는 개인 정보 리트리벌
JP2022531496A (ja) Rlwe暗号文の圧縮および忘却型展開
CN111798236B (zh) 交易数据加、解密方法、装置及设备
JP2023179681A (ja) 同型暗号文に対する非多項式演算を行う方法
US10615961B2 (en) Method and encryption node for encrypting message
JP5784662B2 (ja) 暗号化データ演算システム、装置及びプログラム
KR101264286B1 (ko) 데이터베이스 암호화 시스템 및 방법
JP4664008B2 (ja) アクセス権管理システム、アクセス権管理装置、アクセス権管理方法、端末用プログラム、及びアクセス権管理プログラム
CN114785592B (zh) 信息处理方法及装置
JP7440662B2 (ja) マルチキー情報検索
Nguyen et al. Client-Efficient Online-Offline Private Information Retrieval
Singh et al. Security of Data with 3DES & Watermarking Algorithm

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20211222

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20221108

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20221125

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20230112

R150 Certificate of patent or registration of utility model

Ref document number: 7212179

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150