JP2016035554A - 完全準同型暗号化方式を使用したコンパクトなファジープライベートマッチング - Google Patents
完全準同型暗号化方式を使用したコンパクトなファジープライベートマッチング Download PDFInfo
- Publication number
- JP2016035554A JP2016035554A JP2015090001A JP2015090001A JP2016035554A JP 2016035554 A JP2016035554 A JP 2016035554A JP 2015090001 A JP2015090001 A JP 2015090001A JP 2015090001 A JP2015090001 A JP 2015090001A JP 2016035554 A JP2016035554 A JP 2016035554A
- Authority
- JP
- Japan
- Prior art keywords
- vector
- encrypted data
- data elements
- data element
- encryption
- 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.)
- Pending
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/008—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols involving homomorphic encryption
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
- G06F21/6227—Protecting 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 where protection concerns the structure of data, e.g. records, types, queries
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/30—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Theoretical Computer Science (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Computing Systems (AREA)
- General Health & Medical Sciences (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Bioethics (AREA)
- Health & Medical Sciences (AREA)
- Databases & Information Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
【課題】誤りを含むときのデータマッチングに関し、秘密データのプライバシーを保持しながら、ファジーマッチングを実現する。
【解決手段】データ要素をそれぞれのベクトルセットに変換し、各ベクトルを、準同型暗号化方式の公開鍵を用いて暗号化することによって、2つの暗号化データ要素セットを提供する。暗号化データ要素の対について、暗号化ベクトルセット間の比較測度が計算される。第1のセット内の各暗号化データ要素について、比較測度が第1の暗号化データ要素を含むデータ要素の対の少なくとも1つについての閾値を満たさないときに、第1の暗号化データ要素を解読不能にする難読化ベクトルが生成される。難読化ベクトルが秘密鍵を用いて解読され得、比較測度が第2のセット内のデータ要素の少なくとも1つについての閾値を満たす場合に、第1のセット内のデータ要素が解読され、マッチングを実行する。
【選択図】図2
【解決手段】データ要素をそれぞれのベクトルセットに変換し、各ベクトルを、準同型暗号化方式の公開鍵を用いて暗号化することによって、2つの暗号化データ要素セットを提供する。暗号化データ要素の対について、暗号化ベクトルセット間の比較測度が計算される。第1のセット内の各暗号化データ要素について、比較測度が第1の暗号化データ要素を含むデータ要素の対の少なくとも1つについての閾値を満たさないときに、第1の暗号化データ要素を解読不能にする難読化ベクトルが生成される。難読化ベクトルが秘密鍵を用いて解読され得、比較測度が第2のセット内のデータ要素の少なくとも1つについての閾値を満たす場合に、第1のセット内のデータ要素が解読され、マッチングを実行する。
【選択図】図2
Description
例示的な実施形態は、マッチングされるべきデータが不完全である、たとえば、誤りを含むときのデータマッチングに関し、特に、完全準同型暗号化方式を用いた暗号化データのマッチングに関連して適用される。
ファジープライベートマッチング(FPM)は、クライアントが、自身のデータセットの要素にほぼ等しい要素を発見するためにサーバのデータベースにおいてクエリを行うことを望むときにプライバシーを保持するのに有用な方法である。交換プロトコルは、すべての通信および処理ステップの間に、クエリが秘密の(すなわち、サーバには分からない)ままであり、一致する要素とは別のサーバのデータベースの内容がクライアントに対して隠されたままであるようなものである。そのような技法は、指紋、DNA、または虹彩パターンのような秘密の個人的な特性が、認証およびユーザアクセス制御(UAC)を提供するのによく使用される、生体認証に適用される。ここで、正確な値は測定することが困難であることが多く、したがって、秘密データのプライバシーを保持しながら、ファジーマッチングが所望される。同様に、ナンバープレート番号のマッチングにおいては、ナンバープレートの画像から文字列を識別するのに光学式文字認識(OCR)構成要素が使用され得るが、認識において誤りが生じることがある。秘密情報を可能な限りセキュアなままにしながら、OCR認識された文字列を、データベースに記憶されているナンバープレート番号とファジーマッチングすることが所望され得る。
準同型暗号化方式が、指定の数学演算が暗号化データに対して実施されることを可能にする。結果もたらされる暗号文は、解読されると、従来の暗号化方式とは対照的に、元の平文に同じ演算を実施した結果に等しい値を提供する。暗号化方式Ε、値aおよびbならびに演算子opについて、準同型暗号化特性は以下のように表すことができる。
演算子は、乗算または加算のような、標準的な数学演算子とすることができる。いくつかの事例において、演算子は、等式の各辺において異なってもよく、たとえば、暗号化データの乗算が平文の加算に対応してもよい。
1つのみの算術演算が可能である(たとえば、加算のみまたは乗算のみ)場合、暗号化方式は部分的に準同型と考えられる。初期のプロトコルはすべて、部分準同型システムを利用する。たとえば、Michael J. Freedman他「Efficient private matching and set intersection」(EUROCRYPT 2004, pp. 1 − 19 (2004))、以下「Freedman 2004」、Lukasz Chmielewski他「Fuzzy private matching」(ARES 08, pp. 327 − 334 (2008))、以下「Chmielewski 2008」、およびQingsong Ye他「Efficient fuzzy matching and intersection on private datasets」(ICISC 2009, pp. 211 − 228 (2010))、以下Ye 2010を参照されたい。これらの引用文献は、Paillier暗号システムのような、意味論的にセキュアな加法的準同型公開鍵暗号システムを利用している。Pascal Paillier「Public−key cryptosystems based on composite degree residuosity classes」(EUROCRYPT99, pp. 223 − 238 (1999))を参照されたい。これらのシステムは、暗号文加算およびスカラ乗算のみを可能にし、暗号文の間の乗算は可能にしない。
加算および乗算の両方を計算する方法を提供する場合、暗号化方式は完全準同型(FHE)であると言われる。他の準同型演算、たとえば、排他的もしくはGoldwasser Micali暗号化方式の場合、または、Brakerski−Gentry−Vaikuntanathan (BGV)暗号化方式のベクトル回転が可能である。Zvika Brakerski他「Fully homomorphic encryption without bootstrapping」(Cryptology ePrint Archive, Report 2011/277 (2011))を参照されたい。完全準同型暗号化は、サーバが暗号化データを受信して、秘密復号鍵にアクセスすることができないにもかかわらず、そのデータが暗号化されたままで、任意選択の複雑な動的に選択される計算を実施することを可能にする。
確認すべき最初の完全準同型暗号化方式は、イデアル格子に基づいていた。たとえば、Craig Gentry「Fully homomorphic encryption using ideal lattices」(Proc.41st Annual ACM Symposium on Theory of Computing, STOC ’09, pp. 169 − 178 (2009))、以下「Gentry 2009」を参照されたい。この方式のセキュリティは、最近ベクトル問題に基づく。BGVのような他のFHE暗号化方式が後に開発された。BVGの一実施態様が、Shai Halevi他「Design and implementation of a homomorphic encryption library」(MIT Computer Science and Artificial Intelligence Laboratory manuscript (2013))、以下Halevi 2013に記載されている。
表1は、例示的な暗号化方式および可能になる演算を提供する。
BGV暗号システムによって暗号化データに対して可能になる準同型演算のいくつかは、加算、乗算、右シフト、および右回転を含む。
Freedman 2004は、準同型プロトコルにおいてFPMを可能にすることに対処しており、FPM問題を解決するための、多項式符号化に基づく、2−out−of−3プロトコルを提案している(すなわち、ファジー度閾値が2に固定され、単語のサイズが3に固定される)。一方、Chmielewski 2008は、Freedman 2004によって提案されている2−out−of−3プロトコルが、クライアントがサーバのセット内の単語を、たとえそれらの単語自体が存在しない場合であっても発見することが可能であるという点においてセキュアでないことを示している。Freedmanプロコトルのもう1つの問題は、通信複雑度において
係数を受けない効率的なFPMプロトコルをどのように提供するかである。
Chmielewski 2008は、FPM問題を解決するための2つの他のプロトコル、すなわち、FPM−CHM1(多項式符号化ベースのプロトコル)およびFPM−CHM2(線形秘密分散に基づく)を提案している。これらは、t−out−of−Tに対する正解を提案している。しかしながら、Ye 2010は、FPM−CHM2がセキュアでないことを示している。Ye 2010は、FPM−YEと称される、多項式符号化、および、インターリーブされたリード−ソロモン符号に基づく共有−隠蔽ランダム誤り訂正閾値秘密分散法式に基づく、別の解決策を提案している。
これらすべてのFPMプロトコルに共通しているのは、暗号化データに対する計算機能を提供するために部分準同型暗号化方式が使用されていることである。これらのすべてが、加法のみの方式(乗算は暗号化値とスカラとの間でのみ可能)であるPaillier暗号システムを参照する。加えて、通信および計算時間に関して依然としてセキュアと考えられるこれらのプロトコルの性能は、用途によっては許容できないものであり得る。
セキュアで、実際の適用に許容可能な性能を提供する暗号化方式が依然として必要とされている。
例示的な実施形態の一態様によれば、データマッチングのための方法は、第1の暗号化データ要素セットを提供するステップを含み、第1のセット内の暗号化データ要素の各々は、第1のセットのデータ要素のそれぞれを、ベクトルのセットに変換し、各ベクトルを、準同型暗号化方式の公開鍵を用いて暗号化することによって形成されている。第1のセット内の各データ要素は、アルファベットから取り出される文字列を含む。第2の暗号化データ要素セットが受信され、第2のセット内の暗号化データ要素の各々は、第2のセットのデータ要素のそれぞれを、ベクトルのセットに変換し、各ベクトルを、上記公開鍵を用いて暗号化することによって形成されている。第2のセット内の各データ要素は、アルファベットから取り出される文字列を含む。複数の暗号化データ要素対の各々について、各対は、第1のセットからの暗号化データ要素および第2のセットからの暗号化データ要素を含み、方法は、第2のセット内の暗号化データ要素の暗号化ベクトルと、第1のセット内の暗号化データ要素の暗号化ベクトルとの間の比較測度を計算するステップを含む。第1のセット内の各暗号化データ要素について、比較測度が第1の暗号化データ要素を含むデータ要素の対の少なくとも1つについての閾値を満たさないときに、第1の暗号化データ要素を解読不能にする難読化ベクトルが生成される。方法は、難読化ベクトルを出力するステップをさらに含み、それによって、難読化ベクトルが準同型暗号化方式の秘密鍵を用いて解読されるときに、比較測度が第2のセット内のデータ要素の少なくとも1つについての閾値を満たす第1のセット内のデータ要素のみが解読可能である。比較測度を計算するステップ、および、難読化ベクトルを生成するステップのうちの少なくとも1つは、コンピュータプロセッサによって実施される。
別の態様によれば、データマッチングのためのシステムは、第1の暗号化データ要素セットを記憶するメモリを含み、第1のセット内の暗号化データ要素の各々は、第1のセットのデータ要素のそれぞれを、ベクトルのセットに変換し、各ベクトルを、準同型暗号化方式の公開鍵を用いて暗号化することによって形成されている。第1のセット内の各データ要素は、アルファベットから取り出される文字列を含む。第2の暗号化データ要素セットを受信するための命令がメモリに記憶されており、第2のセット内の暗号化データ要素の各々は、第2のセットのデータ要素のそれぞれを、ベクトルのセットに変換し、各ベクトルを、上記公開鍵を用いて暗号化することによって形成されている。第2のセット内の各データ要素は、アルファベットから取り出される文字列を含む。第1のセットおよび第2のセットからの暗号化データ要素の各対について、第2のセット内の暗号化データ要素の暗号化ベクトルと、第1のセット内の暗号化データ要素の暗号化ベクトルとの間の比較測度が計算される。第1のセット内の各暗号化データ要素について、命令が、比較測度が第1の暗号化データ要素を含むデータ要素の対の少なくとも1つについての閾値を満たさないときに、第1の暗号化データ要素を解読不能にする難読化ベクトルを生成する。難読化ベクトルが出力され、それによって、難読化ベクトルが準同型暗号化方式の公開鍵を用いて解読されるときに、比較測度が閾値を満たす第1のセット内のデータ要素のみが解読可能である。プロセッサが命令を実施する。
別の態様によれば、データマッチングのための方法は、サーバコンピュータによって、第1の暗号化データ要素セットを生成するために第1のデータ要素セットを暗号化するステップを含み、暗号化するステップは、第1のセットのデータ要素の各々をそれぞれのベクトルのセットに変換するサブステップと、ベクトルセット内の各ベクトルを、準同型暗号化方式の公開鍵を用いて暗号化するサブステップとを含み、第1のデータ要素セット内の各データ要素は、アルファベットから取り出される文字列を含む。方法は、クライアントコンピュータによって、第2の暗号化データ要素セットを生成するために第2のデータ要素セットを暗号化するステップを含み、暗号化するステップは、第2のセットのデータ要素の各々をそれぞれのベクトルのセットに変換するサブステップと、ベクトルセット内の各ベクトルを、上記公開鍵を用いて暗号化するサブステップとを含み、第2のデータ要素セット内の各データ要素は、アルファベットから取り出される文字列を含む。方法は、サーバコンピュータによって、第2の暗号化データ要素セットを受信するステップを含む。複数の暗号化データ要素対の各々について、各対は、第1のセットからの暗号化データ要素および第2のセットからの暗号化データ要素を含み、方法は、第2のセット内の暗号化データ要素の暗号化ベクトルと、第1のセット内の暗号化データ要素の暗号化ベクトルとの間の比較測度を計算するステップを含む。第1のセット内の各暗号化データ要素について、比較測度が第1の暗号化データ要素を含むデータ要素の対の少なくとも1つについての閾値を満たさないときに、第1の暗号化データ要素を解読不能にする難読化ベクトルが生成される。難読化ベクトルが、サーバによって出力される。クライアントコンピュータによって、難読化ベクトルが、準同型暗号化方式の秘密鍵を用いて解読され、それによって、比較測度が第2のセット内のデータ要素の少なくとも1つについての閾値を満たす第1のセット内のデータ要素のみが解読可能である。
例示的な実施形態の諸態様は、データマッチングのためのシステムおよび方法に関する。システムおよび方法は、加算および乗算の両方の演算が暗号文に対して直接実施されることを可能にする完全準同型暗号化(FHE)方式に基づく、ファジープライベートマッチング(FPM)問題を解決するためのプロトコルを利用する。一実施形態において、システムおよび方法は、格子ベースの非対称暗号プリミティブ(すなわち、たとえばGentry 2009に記載されているような格子ベースの暗号)を中心として構築される。本明細書において使用されるプロトコルは、完全準同型暗号化を使用したコンパクトなファジープライベートマッチング(CFPM−FHE)と称される。
例示的な完全準同型暗号化方式は、FPMプロトコルを作成するために加法的および乗法的に使用することができる。例示のFHE方式の加法および乗法の特性を組み合わせて使用することによって、コンパクトなデータ構造を作成することが可能になる。これらはプロトコルの通信部分の間に、通信コストを低減し、計算部分のより良好な複雑度を保証するために使用される。協働してCFPM−FHEプロトコルのコンパクトなデータ構造、固有の特性を提供するためにFHE方式の加算、乗算、および任意選択の回転を使用する結果として、既存のソリューションと比較したときにより効率的なアルゴリズムがもたらされている。
CFPM−FHEプロトコルは、選択される敵対者モデル(すなわち、semi−honest環境において計算的に制限されている敵対者)に対してセキュアであることが証明されている。CFPM−FHEプロトコルはまた、処理時間およびデータ空間要件の両方に関する複雑性について、少なくとも二次の倍数をもって既存のアルゴリズムよりも良好に機能する。BGV準同型暗号化方式に基づく、HELib(Shai Halevi他「Helib」(GitHub (2013)において公開されているGPLソースコード)参照)において実施される、概念の適用の証明において得られる実験結果も記載されている。
例示的なCFPM−FHEプロトコルは、私人または企業によって、「ファジーなクエリ(たとえば、外部センサから入来する不完全な入力)を用いて、または、「ファジーなデータ」(たとえば、不正確なまたは破損したデータ)に対してのデータアクセスに関して、プライバシーの侵害が生じる場合に実際に適用され得る。たとえば、指紋、DNA、または虹彩パターンのような個人的な特性がクエリに使用される生体認証において、サービスを実施する、すなわち、センサからの「ファジーなデータ」をデータベースにマッチングするためにこの例示的なプロトコルを使用することができる。この特定の使用事例において、CFPM−FHEプロトコルは、セキュリティ、UAC(指紋の特徴ベクトルのようなファジーなデータをデータベースに効率的にマッチングすることによって)、およびプライバシー(サービス提供者は何がデータベース内の一致する要素であったかを知ることができないため)を提供する。同様に、ビデオカメラによってキャプチャされたデータを用いて動作しているときの、不正確な文字検出のような光学式文字認識(OCR)ソフトウェアから入来するファジーな入力をマッチングするために、システムを使用することができる。この事例において、駐車場ビル内のナンバープレートのような文字列が、ナンバープレートのような記憶されているシーケンスのセットとマッチングされる。一致が発見されると、これによって自動的に、出口バリアの開放または他の動作のような応答がトリガされ得る。この事例において、CFPM−FHEを使用することによって、セキュアアクセス機能を提供し、出入りするユーザのプライバシーを保持することができる。諒解されるように、CFPM−FHEプロトコルは、データベクトルの類似度を計算することが所望される他の領域(たとえば、単語集号表現に基づくテキストのクラスタリングまたはカテゴリー化)に使用することができる。
図1は、図2に示す方法を実施することができる例示的な環境を示す。クライアントコンピューティングデバイス10が、データベース16に記憶されている、記憶されているデータセットY14と比較されることになる入力データセットX12を受信(または内部で生成)する。データベース16は、クライアントコンピューティングデバイス10にとってアクセス可能でない。入力データベース12は、1つまたは複数のデータ要素を含み得、データ要素は本明細書において単語と称される場合があり、各単語は文字列を含む。この文字列が、OCR認識されたナンバープレート番号もしくは生体認証データ、またはその一部を形成し得る。データベース16は、ナンバープレート/生体認証データのような、クライアントの(第2の)セット12のうちの1つまたは複数に一致する可能性がある相対的に多数の第1のデータ要素を、データセットY14内に記憶し得る。サーバコンピュータ18は、データベース16に記憶されているデータセットY14にアクセスすることができ、ローカルエリアネットワーク、または、インターネットのような広域ネットワークのようなネットワーク20を介して、クライアントコンピューティングデバイス10と通信可能に接続される。
1つのクライアントデバイス10が図示されているが、同じサーバ18と通信する多くのクライアントコンピューティングデバイス10があってもよい。一例として、駐車場ビルのセットが、OCR認識されるナンバープレートの画像をキャプチャし、検出されたナンバープレート番号が、駐車場ビルの登録されたユーザのナンバープレート番号とマッチングするために、サーバ18に(暗号化された形態で)送信される。
各コンピューティングデバイス10、18は、本方法のそれぞれの部分を実施するための適切な命令26、28を記憶するメモリ22、24と、命令を実行するためにメモリと通信するプロセッサデバイス30、32とを含む。入出力デバイス、34、36、38、40が、コンピュータが外部デバイスと通信することを可能にする。それぞれのコンピュータのハードウェア構成要素22、24、30、32、34、36、38、40が、それぞれのバス42、44によって通信可能に接続される。クライアントデバイス10は、LCD画面またはコンピュータモニタのような表示デバイス46、キーボード、キーパッド、タッチスクリーンなどのようなユーザ入力デバイス48を含むユーザインターフェースにリンクされ得る。
クライアントコンピュータ10は、公開鍵50を生成してサーバコンピュータ16と共有し、サーバに提供されない秘密(シークレット)鍵52を保持する。公開鍵50および秘密鍵52は、非対称鍵対を形成する。この鍵対の2つの部分は、数学的に連結される。公開鍵は、平文を暗号化して暗号文を形成するのに使用されるが、暗号文を解読することはできず、一方で、秘密鍵はクライアントデバイスによって、暗号文を解読するのに使用される。
例示的なクライアント命令26は、ベクトル表現構成要素60と、暗号化構成要素62と、解読構成要素64とを含む。簡潔には、入力(第2の)データセットX12の各要素(単語)について、ベクトル表現構成要素60は、(行)ベクトルのセットを含む行列表現を生成する。入力としてベクトルを必要としない暗号化方式において、この構成要素は省かれてもよい。暗号化構成要素62は、入力(第2の)データセット12の各要素について形成されたベクトルのセットを、公開鍵50を用いて暗号化して、入力データセット12の各要素の各ベクトルが別個に暗号化されている暗号化入力データセット66を形成する。解読構成要素64は、サーバがファジーマッチング動作を実施した後に、サーバコンピュータ18から受信される暗号化データ(難読化ベクトル)68を解読する。任意選択的に、出力構成要素69が、暗号化ベクトル66をサーバに出力し、解読構成要素64によって生成される、解読された難読化ベクトル68を比較して、クライアントの単語のいずれかとの一致があるか否かを判定する。
例示的なサーバ命令28は、ベクトル表現構成要素70と、暗号化構成要素72と、マッチング構成要素74と、難読化構成要素76とを含む。簡潔には、記憶されているデータセットYの各要素について、ベクトル表現構成要素70は、クライアントベクトル表現構成要素60(使用される場合)によって実施されるものと同じプロセスを使用して、ベクトル表現のセットとしての役割を果たす行列を生成する。暗号化構成要素72は、記憶されているデータセットの各要素についてのベクトル表現を、クライアント暗号化構成要素62によって実施されるものと同じプロセスを使用して、公開鍵50を用いて暗号化して、暗号化データセット78を形成する。マッチング構成要素74は、入力データセット66の暗号化要素(複数の場合もあり)とデータベースデータセット78の暗号化要素との間でのファジーマッチング動作を、たとえば、暗号化要素の対の間の、距離のような比較測度を計算することによって、実施する。難読化構成要素76は、クライアントデータセット12の要素に対してt−ファジーである、データベースデータセット14の要素のみがクライアントデバイスにおいて解読されて平文を形成することができるように、データベースデータセット14の暗号化要素を難読化して暗号化データ68を生成する。データベースデータセットの残りの要素は、解読されるとき、クライアントデバイスによって解読不能である乱数の形態で返される。クライアントデバイスは、平文要素、またはそれに基づく情報を、結果80として出力する。
コンピュータ10、18は各々、デスクトップ、ラップトップ、パームトップ、タブレットコンピュータ、携帯情報端末(PDA)、サーバコンピュータ、携帯電話、ポケットベル、それらの組合せ、または、例示的な方法を実行するための命令を実行することが可能な他のコンピューティングデバイスであってもよい。
メモリ22、24は各々、ランダムアクセスメモリ(RAM)、読み出し専用メモリ(ROM)、磁気ディスクもしくはテープ、光ディスク、フラッシュメモリ、またはホログラフィックメモリのような、任意のタイプの持続性コンピュータ可読媒体を表してもよい。一実施形態において、メモリ22、24は、ランダムアクセスメモリと読み出し専用メモリとの組合せを含む。ネットワークインターフェース36、38は、コンピュータが、コンピュータネットワーク20を介して他のデバイスと通信することを可能にし、変調復調器(MODEM)、ルータ、ケーブル、および/またはEthernet(登録商標)ポートを含んでもよい。
デジタルプロセッサ30、32は、シングルコアプロセッサ、デュアルコアプロセッサ(またはより一般的にマルチコアプロセッサによって)、デジタルプロセッサおよび協働する数値演算コプロセッサ、デジタルコントローラなどによってなどで様々に具現化されてもよい。各デジタルプロセッサ30、32は、それぞれのコンピュータ10、18の動作の制御に加えて、それぞれのメモリ22、24に記憶されている、図2に概説している方法を実施するための命令を実行する。
用語「ソフトウェア」は本明細書において使用される場合、コンピュータまたは他のデジタルシステムによって、当該コンピュータまたは他のデジタルシステムを、ソフトウェアの意図であるタスクを実行するように構成するように実行可能な命令の任意の集合またはセットを包含するように意図される。用語「ソフトウェア」は本明細書において使用される場合、RAM、ハードディスク、光ディスクなどのような記憶媒体に記憶されるそのような命令を包含するように意図され、また、ROMなどに記憶されているソフトウェアであるいわゆる「ファームウェア」を包含するようにも意図される。そのようなソフトウェアは、様々な方法で編成されてもよく、ライブラリ、遠隔サーバなどに記憶されているインターネットベースのプログラム、ソースコード、解釈コード、オブジェクトコード、直接実行可能なコードなどとして編成されるソフトウェア構成要素を含んでもよい。ソフトウェアは、特定の機能を実行するために、システムレベルコードまたはサーバもしくは他の位置に存在する他のソフトウェアへのコールを起動することができることが企図される。
諒解されるように、図1は、コンピュータシステム10、18に組み込まれる構成要素の一部のみの高レベル機能ブロック図である。プログラム可能コンピュータの構成および動作は周知であるため、それらはこれ以上説明しない。
ファジープライベートマッチング(FPM)は、各々がそれぞれサイズ(要素の数)mおよびnの要素のセットXおよびYを保持するクライアントCおよびサーバS(たとえば、図1においてデバイス10および18によって示すような)を含む2パーティプロトコルである。セット内の各要素は、D文字のアルファベットAから取り出されるT個の文字から構成される固定サイズの単語であり、Dは、非ゼロ自然数
のセットからのものである。アルファベットAが、有限の文字セットであり、濃度Dを有するとする。
A={1,...,D};|A|=D
A={1,...,D};|A|=D
Wが、サイズがT文字の、アルファベットAに対して定義されるすべての単語(要素)のセットであるとする。
W={li:i∈[1...T],li∈A}
W={li:i∈[1...T],li∈A}
このとき、クライアントの要素セットXおよびサーバの要素セットYは以下のように定義することができる。
X={Xi:i∈[1...m],Xi∈W}
Y={Yi:i∈[1...n],Yi∈W}
X={Xi:i∈[1...m],Xi∈W}
Y={Yi:i∈[1...n],Yi∈W}
すなわち、各要素セットXおよびYは、同じ単語セットWから取り出される1つまたは複数の単語のセットを含む。クライアントは、2つのセットXおよびYの「共通集合」を秘密裏に発見することを望む。これは、各々がクライアントの単語のうちの少なくとも1つに一致するサーバのセット内で発見され得る単語から形成されるセットを構築することを伴う。そのような共通集合の成員であることは、単語間のt−ファジー性を計算することによって解決される。これによって、文字間に完全な一致がないときの単語間の一致が可能になる。クライアントの単語、
がサーバの単語、
に対してt−ファジーであることを意味する2つの単語の間のt−ファジー性
は、以下のように定義される。
すなわち、要素Xwと要素Ywとの間の共通集合(それぞれの位置を考慮に入れた一致する文字の数)が閾値t以上である場合、X内の要素Xwは、Y内の要素Ywとファジー一致する。閾値は、各単語内の文字数未満である値を有する、すなわち、t<Tである。
たとえば、単語CABおよびCARは、単語の第1の位置内の文字が一致し、単語の第2の位置内の文字が一致し、そのため、2つの単語間の共通集合(CA)内に見られる文字数が2であるため、閾値tが2であるとき、t−ファジー一致と考えられ得る。
このとき、所与の閾値tについてのセットXおよびY間のFPM問題に対する解を求めることは、以下の単語セットを発見することが可能であるプロコトルを構築することとして定義される。
これはすなわち、所定の閾値tを所与として、X内の少なくとも1つの要素Xiが要素Yiとファジー一致する、少なくとも1つの要素Xiがある、Y内の要素のセットである。
これには、以下のプライバシー制約が課される。
1.サーバSは、Xのいかなる要素を発見することも可能でない、かつ
1.サーバSは、Xのいかなる要素を発見することも可能でない、かつ
2.クライアントCは、
のいかなる要素を発見することも可能でない、すなわち、クライアントのセット内の要素とファジー一致しないセットサーバのセット内のいかなる要素も発見することができない。
一例として、上述したナンバープレートのマッチングの例において、クライアント10は、すべての文字および数字(Oおよび/または0のような、これらの文字のいくつかは、認識を容易にするためにセットから省かれてもよい)のような、有限アルファベットAから取り出される文字列から構成されるナンバープレート番号を有する。この文字列を固定長要素に変換するために、クライアントは、補充文字、たとえば、ナンバープレートに使用される通常の文字セットの一部でない文字を付加し得る。たとえば、固定長が8文字であるとき、文字列「CAB 123」は、文字列00CAB123に変換されてもよく、ここで、スペースは無視され、0はアルファベットAの一部を形成する補充文字である。サーバ18は、データベース内の記憶されているナンバープレートのセット14を用いて同様のプロセスを実施し、それによって、すべての要素(ナンバープレート番号)が同じ数の文字を有する。
FPM問題について考えられる敵対者モデルは、計算的に制限されている敵対者を有するsemi−honest環境であり、これは、以下のことを意味する。
1.このパーティは、定義されているプロトコルから逸脱しないが、元の設計によって意図されているよりも多くを発見しようと試みるために、後者によって提供される任意の追加の情報を使用することができる。
2.選択されるセキュリティパラメータ数kに対して、暗号化システムが攻撃者によって破壊可能であるというごくわずかな可能性がある。
例示的な暗号化構成要素62、72および方法は、準同型演算として加算および乗算の両方を可能にする完全準同型暗号化方式を使用する。ベクトルを用いて動作するとき、回転のような第3の準同型演算が可能になってもよい。
例示的なFPMプロトコルにおいて、プライバシーを提供するためにBGV暗号化方式が使用されるが、本明細書に記載する準同型演算を可能にする他のFHE方式が暗号化に使用されてもよい。BGVは、以下の形態の多項式環に対して定義される。
式中、各
は整数であり、pは選択可能なパラメータであり、Φp(x)は、p番目の円周等分多項式である。環
は平文空間の2元多項式に対応し、暗号文は、低減していくサイズの一連の係数に対して定義される。BGV暗号化の例示的な実施態様に関するさらなる詳細については、Halevi 2013を参照されたい。一実施態様において、Φp(x)は、種々の演算を通じて情報を維持するのに十分大きいように選択され、これは、モジュロがこの上限で計算されるすべての数を維持するのに十分に大きいことを意味する。
BGVにおいて、基本要素は、ベクトルとして表される点のセットである(単一の整数はこの方式では表されないが、単一の整数を含むサイズ1のベクトルは可能である)。このとき、要素(単語)は、ベクトルとして、またはより一般的には、その暗号システムのために選択されるパラメータに応じて、ベクトルのセットとして表すことができる。任意の符号化方式に関して、各文字はこのとき、整数によって表される。
以下において、{a}Kは、暗号化ベクトル{a0,...,an}Kを表し、Kは、暗号化に使用される公開鍵50である。したがって、公開鍵50およびskとして示されている秘密鍵52はいずれも、BGVシステムまたはその変形形態におけるように、多項式環に対して定義され得る。たとえば、参照により本明細書に組み込まれる米国特許出願公開第2013/0216044号明細書を参照されたい。
本発明において有用である、BGV暗号システムによって暗号化データに対して可能になる演算のいくつかを、表2に示す。
加算演算は、加算が暗号化の前に実施されるか、または後に実施されるかにかかわらず、2+3の和が5になることを可能にする。
右シフトは、データ要素の右の文字をシフトし、たとえば、データ要素が2進数として表されるとき、その数の右のビットが廃棄される。数4は2進法では100として表され、これを右シフトすると、2に対応する010が与えられる。
右回転は、右端の文字を左端の位置にシフトする。
アルゴリズム1は、CFPM−FHEプロトコルを簡潔に説明している。これは下記により詳細に説明されて、図2に示されており、図2において、クライアント側の動作が左に示されており、サーバ側の動作が右に示されている。
[表]
[表]
図2は、この手順を示す。方法は、S100において開始する。
設定
クライアント10は、公開鍵50およびシークレット鍵52の対(K,sk)を有する。クライアントが、完全準同型暗号システムのパラメータを準備し、Kおよびパラメータをサーバに送信する(S102)。送信されるパラメータは、使用される暗号化のタイプに応じて決まり得る。たとえば、送信されるパラメータは、式1におけるパラメータpを含んでもよい。S104において、サーバ18がこの情報を受信する。公開鍵およびパラメータが、たとえば、先行するデータベース検索のためにすでにサーバに送信される場合、これらのステップは省かれてもよい。
クライアント10は、公開鍵50およびシークレット鍵52の対(K,sk)を有する。クライアントが、完全準同型暗号システムのパラメータを準備し、Kおよびパラメータをサーバに送信する(S102)。送信されるパラメータは、使用される暗号化のタイプに応じて決まり得る。たとえば、送信されるパラメータは、式1におけるパラメータpを含んでもよい。S104において、サーバ18がこの情報を受信する。公開鍵およびパラメータが、たとえば、先行するデータベース検索のためにすでにサーバに送信される場合、これらのステップは省かれてもよい。
S106において、クライアント10は、1つまたは複数のデータ要素(単語)のセットXの形態で表される入力データセット12を受信する。データセットXは、少なくとも1単語を含み、いくつかの実施形態では、最大10単語、またはそれ以上のような、2つ以上の単語を含む。同様にS108において、サーバ18が、記憶されているデータセットY(Xと比較されることになる1つまたは複数のデータ要素を含む)を取り出す。データセットYは少なくとも1単語を含み、いくつかの実施形態では、少なくとも5単語、または少なくとも10単語、または最大100単語、または少なくとも100単語、または最大1000単語、またはそれ以上のような、2つ以上の単語を含む。いくつかの実施形態において、データセットY内の単語の数は、データセットX内の単語の数の少なくとも5倍、または少なくとも10倍、または少なくとも100倍である。
各単語のプライバシーを保持するために、単語のベクトル表現(すなわち、その文字列)は行列表現に変換され、行列表現は、アルファベットAの各文字についてのベクトルを含み、ベクトルは行列の行(または列)であり得る。行列内の各ベクトルは、ベクトル要素のセットを含み、単語のベクトル表現における各文字について、1つのベクトル要素がある。したがって、たとえば、単語が6文字長であり、アルファベットに24文字がある場合、6×24行列が生成される。ベクトルは、単語ベクトルの各文字をアルファベットの各文字と比較する単語−行列表現関数を使用してベクトル表現構成要素60、70によって生成される(S110、S112)。これは、以下のように実施され得る。
X内の所与の単語Xi(およびそれぞれ、Y内の各単語Yj)について、各単語Xiが文字列を含む、すなわち、ベクトルとして処理されるXi=(x1,x2,・・・xT)である場合、Riとして示される単語Xiの行列表現R(Xi)は以下のように定義される。
ここで、ρはXiの各文字を変換する関数であり、
式中、aはアルファベットA内の位置aにある文字を表し、bは、単語内の位置bにある文字を表す。行列の各行は、単語の文字毎に1つの、T個のベクトル要素を有し、各列はアルファベット内のDの文字に対応するD個の要素を有する。行列は無論、行が列として表されるように配列され得る。
したがって、たとえば、ρ1,2は、アルファベットの第1の文字を、単語の第2の文字x2と比較し、それらが同じである場合は1を出力し、そうでなければ0を出力する。したがって、行列内の列の各々は列内のただ1つの位置において1を有し、ここで、単語の文字はアルファベット内のその位置に一致し、すべての他の位置は0である。行ベクトルは各位置において0を有し得るが、行ベクトルの少なくともいくつかは、1つまたは複数の位置に1を含む。したがって、行ベクトルの各々は、各ベクトル要素が2つの2進値のうちの一方である2値ベクトルである。
S114において、クライアント暗号化構成要素62が、提供されたパラメータを使用して、完全準同型暗号化方式の公開Kを用いて行列の各行ベクトルを暗号化して、暗号化行ベクトルのセットを形成する。このとき、単語Xiの暗号化行列表現(およびYjについても同様に)は、以下の様な、{Ri}Kとして示される暗号化行ベクトルの1つのベクトルである。
クライアントの行ベクトルセットはRとして示され、ベクトルの要素はρとして示される。サーバの表現および要素はそれぞれ、R´およびρ´として示される。
ステップS110およびS114の一例として、アルファベット(a,b,c,d)での単語「cab」は、以下の行列によって表される。
また、単語の暗号化は、以下の暗号化行ベクトルセットによって表される。
したがって、クライアントのデータセットXの各単語は、同じ暗号化パラメータを使用して、同じ完全準同型暗号化方式の公開鍵Kを使用してこのように暗号化される。S116において、クライアントは、各単語のベクトルの暗号化セットを、サーバに送信する。諒解されるように、本明細書に記載されているものに加えて、他の暗号化がデータの送信に使用されてもよいが、これは一般的に必要とされない。
サーバは、そのデータ要素セットを同じように暗号化する(S118)。サーバはまた、Kを使用して0...TのT+1個のユニタリベクトルのような、ユニタリベクトルのセットも暗号化する(S120)。暗号化ユニタリベクトルのセットは、アルゴリズムにおいて後に使用される。これらの暗号化ユニタリベクトルは、{(0,0,0,...)}K、{(1,1,1,...)}Kなどの形態であり、すなわち、ベクトルの各位置に同じ数がある。しかしながら、0...Tのすべてのこれらの暗号化ベクトルが一般的に必要とされるわけではない。一実施形態において、0...(T−t)およびTのユニタリベクトルのみが本方法に使用される場合、(T−t)+2個のユニタリベクトルから成るセットのみが、実際に暗号化される必要がある。別の実施形態において、t...Tのユニタリベクトルのみが本方法に使用される場合、(T−t)+1個のユニタリベクトルのみが、暗号化される必要がある。
クライアントの暗号化データ66(暗号化行ベクトルセット)がサーバ18によって受信され、一時的にメモリに記憶される(S122)。サーバには秘密鍵52が提供されないため、サーバは暗号化行ベクトルセット(複数の場合もあり)を解読することが可能でない。
サーバのマッチング構成要素74が、1つはサーバからの、1つはクライアントからの要素の対の間の比較測度、たとえば、サーバの要素の1つの暗号化ベクトルと、クライアントの要素の1つの暗号化ベクトルとの間の距離(または類似度)を計算する(S124)。一実施形態において、比較測度はハミング距離である。等しい長さの2つのベクトルの間のハミング距離は、対応するシンボルが異なる位置の数である。このステップにおいて、サーバは、nm個のハミング距離ベクトルΔH(Xi,Yj)を計算するが、暗号化形式で、すなわち、{ΔH(Xi,Yj)}Kとしてこれを行う。
最初にサーバは、類似する要素を識別する暗号化類似度ベクトル
(逆ハミング距離に対応する)を計算する。
すなわち、各i∈[0..m]および各j∈[0..n]について、比較されている2つの単語の対応する行ベクトル
がともに乗算されて、D行すべてにわたる結果の和が計算される。2つのベクトルの乗算において、1つのベクトルの各要素が、他方において同じ位置にある要素と乗算される。XiおよびYjにおいて、k番目の文字が同じである場合、乗算の結果は位置kにおいて1を含むことになり、それ以外では、0になる。したがって、たとえば、ベクトル{(0,1,0)}Kおよび{(0,1,0)}Kが乗算されるとき、結果は{(0,1,0)}Kであり、ベクトル{(0,0,1)}Kおよび{(0,1,0)}Kが乗算されるとき、結果は{(0,0,0)}Kである。この暗号化方式は乗算演算が、この演算が暗号化されていないベクトルに対して実施されるときと同じ結果を生成することを可能にするため、この乗算は暗号化ベクトルに対して実施される。乗算されたベクトルのすべての和が、0および1を含む単一の暗号化ベクトルを与える。類似度ベクトル
内の1の数が、2つの単語における同一の文字の数に対応する。
ハミング距離を得るために、この目的は、ベクトル
のすべての要素を加算して、これを各要素における文字の数Tから減算することである。しかしながら、類似度測度数
はベクトルの形態であるため、暗号化ベクトルを(暗号システムの回転演算子を使用して)回転させて、各回転されたベクトルを初期ベクトルと加算することによって、この加算は容易に実施することができる。このステップは式(3)に従って実施することができる。
具体的には、各回転によってベクトルの最後の要素が第1の位置に再配置され、ベクトルのすべての他の要素が1位置だけ右にシフトする。これをT回行うことによって、その要素がすべて同じ、2つの単語における同一の文字の数であるベクトルが得られる。したがって、たとえば、暗号化ベクトル
は1回目の回転において{(0,0,1}Kになり、2回目の回転において{(1,0,0}Kになる。これらを初期ベクトルに加算することによって、
が得られる。最後の演算は、このベクトルをTの暗号化表現{T}Kから減算することであり、これは、すべての要素が値T、すなわち各単語の長さを有する暗号化ユニタリベクトル(ステップS118において事前に計算されている)である。たとえば、T=3であるとき、{T}K={(3,3,3)}Kである。ベクトルΔH(Xi,Yj)の各要素が一致しない文字の数に対応する暗号化ハミング距離ベクトル{ΔH(Xi,Yj)}Kは、このようにして得られる。たとえば、上記の例において、
である、すなわち、一致しない文字は2つである。
別の実施形態において、異なるベクトルの要素の数に対応するハミング距離ではなく、下記に説明するような、逆ハミング距離(同様の要素の数)を使用することができる。
暗号化ハミング距離{ΔH(Xi,Yj)}Kの計算は、すべての可能性のある暗号化データ要素対(一方はサーバセットから、他方はクライアントセットからのもの)について実施される。
その後、S126においてYセットを難読化するためにハミング距離ベクトルが使用される。特に、S124において計算された要素対間のハミング距離ベクトルを使用して、サーバの難読化構成要素76が、以下の形態の、Y内の各単語に1つの、n個の難読化ベクトルから成るセットを計算する。
すなわち、jの各値について、(ΔH(Xi,Yj)−w).rを計算し、式中、ΔH(Xi,Yj)は、上述したように計算されたハミング距離ベクトル(暗号化形態)であり、各wは0〜T−tの(暗号化)ユニタリベクトル(すなわち、(0,0,0...),(1,1,1,...))であり、Tは各単語内の文字の数であり、tは閾値であり、rはランダムベクトルである。rは、ランダムベクトル生成器によって生成することができ、したがって、アルゴリズムが実行される度毎に、および、nおよびmならびにw毎に異なる。その後、この第1の項が暗号化ベクトル{Yj}Kに加算され、Yjは従来の表現(y1,...,yT)において使用される。
クライアントのデータ要素のうちの少なくとも1つXiがYjに対して
である、すなわち、rと乗算されることになる0から構成されるベクトルを与える、Y内のn番目の単語に対するそのハミング距離ベクトルが、ユニタリベクトルwのうちの1つに対応する少なくとも1つの単語がX内にある場合かつその場合に限り、式4の第1の項は空値になり、これによって、ゼロベクトルが与えられる(下記の証明参照)。これが真である場合のみ、式4における積の結果は{yj}Kである。しかしながら、n個の結果もたらされる難読化ベクトルを解読することは不可能であるため、サーバはこれらの間で区別しない。サーバは単純に、n個の難読化ベクトル68のすべてをクライアントに送信する(S128)。S130において、難読化ベクトルセットがクライアントにおいて受信される。
S132において、クライアントが、解読構成要素を用いてn個の難読化ベクトル68を解読し、それらを入力データセットと比較する(S134)。AT内の任意の平文がXからの任意の単語に対してt−ファジーである場合、解読構成要素はこの平文を出力セットに加える。式4に従って計算された難読化ベクトルが{Yj}Kに対応する場合、解読された難読化ベクトルは、平文のみに対応することになる。そうでない場合、Yjが、長さがランダムなベクトルに加えられ、解読不能になる。
式3の出力を所与として、以下のように、クライアントが、自身が予期されているものを得ることが容易に示され得る。
すべてのj∈[1..n]について、2つの事例を区別することができる。
すなわち、少なくとも1つのiについて、クライアントの単語Xiは、記憶されている単語Yjとt−ファジーである。
すなわち、すべてのiについて、クライアントの単語Xiは記憶されている単語Yjとt−ファジーでない、すなわち、クライアントの単語のいずれとサーバのデータセットのn番目の単語との間にもファジー一致がない。
事例1):
その後、クライアントが難読化ベクトル{Yj}Kを受信し、これを解読し、クライアントの単語ベクトルの1つとt−ファジーであるため、この結果を出力に加える。
事例2):
クライアントが難読化ベクトル
を受信し、rndは、ランダムベクトルrを乗算することによって形成されるランダムベクトルである。この二重積は零ベクトルではないため、クライアントは大きいランダムベクトルであるように見えるものを解読し、ここからYjを解読することはできない。ランダムrndがATにおいて正確なt−fuzzy要素を生成する確率はごくわずかである。それゆえ、誤検出の可能性はごくわずかである。それゆえ、このベクトルは出力80に加えられない。
クライアントが難読化ベクトル
クライアントは、解読された難読化ベクトルに対するハミング距離をクライアントデータセットの各単語と比較することによって、単純なチェックを行うことができる。たとえば、入力データセットが「cab」に対応し、解読されたベクトルの1つが「car」である場合、t=1であるときにt−ファジー一致が見つかる。クライアントはサーバ側で使用されるものとは異なるtの値を使用し得るが、例示的な実施形態においては、同じ値が使用される。
S136において、クライアントデバイスが、ファジーマッチングの結果またはそれに基づく情報を出力する。たとえば、クライアントデバイスは、ファジー一致したXiのセットを返してもよい。別の実施形態において、ナンバープレートの例におけるように、ファジー一致が見つかった場合、クライアントは単純に、一致が見つかったことを示すための正の値、そうでない場合の負の値を出力してもよい。他の実施形態において、この結果は、ナンバープレートの例の場合の、駐車場ビルへのアクセスを提供すること、ナンバープレートと関連付けられる人に請求を行うことなど、または、生体認証スキャンの場合のアクセスを提供することのような、プロセスを実施するのに使用される。
方法は、S138において終了する。
ここで、例示のために、アルゴリズムの例示的な実施態様を示す。
T=3、D=4、m=2およびn=3の例
T=3、D=4、m=2およびn=3の例
例として、アルゴリズムの使用の一例が与えられる。各単語内の文字の数T=3とし、アルファベット内の文字の数D=4(文字はa、b、c、dである)、クライアントのセット内の単語の数m=2とし、サーバのセット内の単語の数n=3とする。X=(´cab´,´abc´)およびY=(´cad´,´ddd´,´acb´)とする。ファジー度閾値t=2とする、すなわち、単語内で異なるのがわずか1文字であれば、一致が見つかり得る。このとき、出力は
となるはずである。このアルゴリズムに従って、データは以下のように表される。
その後、クライアントは、{X1}K、{X2}K、およびKをサーバに送信する。サーバは、{Y1}K、{Y2}K、{Y3}Kを計算する。その後、サーバは、すべてのベクトル間のハミング距離を計算する。一例として、{X1}Kおよび{Y1}Kについて、
その後、第1のフェーズにおいて、
結果は以下のとおりである。
したがって、ハミング距離が1であるため、X1、Y1はファジー一致である。
第2のフェーズにおいて、式4がすべての結果について計算される。積の第2の部分T−t=1について、そのため、wは0および1のユニタリベクトルを使用する。
Y1の例。サーバは以下を返す。
Y2およびY3について、ランダムベクトルは相殺されないことに留意されたい。サーバはベクトル{(3,1,4)}K、{(r1,r2,r3)}K、{(r4,r5,r6)}Kを送信し、ここで、r1、r2、r3などは、結果もたらされるランダムベクトルの要素である。
クライアントはこれらの暗号化ベクトルを受信し、これらを解読する。解読されたベクトルは、平文がt−ファジーである場合、クライアントのセットの平文に対してチェックされる。第1のベクトルのみが出力(3,1,4)=(´cad´)内に保持される。諒解されるように、解読されたベクトルが長いランダムな文字列である場合、短いベクトルのみが一致である可能性があるため、クライアントは比較を実施する必要はない。
アルゴリズムの複雑度は、以下のように求めることができる。通信および計算複雑度について、主要な項のみが保持される。
1.設定:(n+m)D回の暗号化、mD個の暗号化ベクトルの転送。
2.フェーズ1:nm(2D+2T−3)回の演算。
3.フェーズ2:n(m(2t−1)+2)回の演算、n個の暗号化ベクトルの転送。
4.検証:n回の解読、その後n*m回の演算。
n=m(各セット内の要素の数)、および
を考えると、表3に示す複雑度が得られる。lpkは、選択される暗号化方式による基本要素の暗号文サイズであり、tはファジー度閾値であり、Tは単語のサイズであり、T´εは準同型演算の組合せに必要とされる時間である。これらの複雑度が、なおセキュアと考えられる2つの既存のプロトコルのものと比較される。
0の表記の非公式な定義が、比較を容易にするために使用されている。本発明のプロトコルが、より効率的である。
複雑度を低減するために、いくつかの最適化が実施され得る。例として、
1)ハミング距離計算フェーズの間、dが少なくとも1つの「1」を含む場合、サーバは、dのベクトルを乗算すれば十分である。その理由は、そうでない場合、積は空値になり、したがって、何の情報ももたらさないためである。T<D(実際の事例ではほんの数例しかこの特性を検証することにならない)である場合、これによってD/T倍複雑度が低減する。そうでない場合、データを表すためにアルファベットがどのように使用されるかに応じて、ほんのいくつかの乗算が行われなくなる。
3)暗号化のためのパラメータを選択するときに、得られるフィールドが2T個を超えるパラメータを有する場合、サーバによって送信されるデータのサイズを低減することができる。事実、乗法マスクを使用して、2つ以上のYを各ベクトルに記憶することができる。たとえば、操作されているベクトルのサイズが5Tである場合、データのうちの5をすべてのベクトルに記憶することができる。このとき、通信複雑度はサーバの部分で5だけ低減される。
完全準同型暗号化は、暗号文のサイズおよび演算を計算するための時間のような、いくつかの制約を有することが知られている。これらのパラメータの両方を改善することができる方法が存在する(たとえば、Yin Hu「Improving the Efficiency of Homomorphic Encryption Schemes」(PhD thesis, Virginia Tech, 2013)参照)。実施態様の最適化は、制限された数の演算がサポートされている(たとえば、特定の深度の回路を評価する)準完全準同型暗号化(SWHE)暗号化方式(たとえば、Boneh他「Private Database Queries Using Somewhat Homomorphic Encryption」(ACNS 2013: 102−118 (2013)参照)、または、寸法低減のためのLSH関数を使用することによって達成され得る。
図2に示す方法は、コンピュータ上で実行されてもよいコンピュータプログラム製品内に実装されてもよい。コンピュータプログラム製品は、ディスク、ハードドライブなどのような、制御プログラムが記録(記憶)されている持続性コンピュータ可読記録媒体を含んでもよい。一般的な形態の持続性コンピュータ可読媒体は、たとえば、フロッピー(登録商標)ディスク、フレキシブルディスク、ハードディスク、磁気テープ、または任意の他の磁気記憶媒体、CD−ROM、DVD、または任意の他の光媒体、RAM、PROM、EPROM、FLASH−EPROM、または他のメモリチップもしくはカートリッジ、あるいはコンピュータが読み出し使用することができる任意の他の持続性媒体を含む。
代替的に、本方法は、無線波および赤外線データ通信などの間に生成されるもののような、音響波または光波のような伝送媒体を使用してデータ信号として制御プログラムが具現化される伝送可能な搬送波のような、一時的媒体において実施されてもよい。
例示的な方法は、1つまたは複数の汎用コンピュータ、専用コンピュータ(複数の場合もあり)、プログラムされているマイクロプロセッサもしくはマイクロコントローラおよび周辺集積回路要素、ASICもしくは他の集積回路、デジタル信号プロセッサ、個別素子回路のような配線電子装置もしくは論理回路、PLD、PLA、FPGAのようなプログラム可能論理デバイス、グラフィックカードCPU(GPU)、またはPALなどで実施されてもよい。一般に、図2に示す流れ図を実施することが可能である有限状態機械を実装することが可能な任意のデバイスを、本方法を実施するのに使用することができる。諒解されるように、本方法のステップはすべてコンピュータ実施されてもよいが、いくつかの実施形態において、これらステップの1つまたは複数は、少なくとも部分的に手動で実行されてもよい。
例示的な実施形態の範囲を制限することを意図せず、以下の例は、本システムのプロトタイプ実施態様を示す。
Linux(登録商標)環境におけるクライアントとサーバとの間でCFPM−FHEプロトコルの1バージョンが実装された。クライアントおよびサーバの命令はC++で書かれ、表4に示す同じ特性を有する2つの異なる機械上に展開されている。
クライアントおよびサーバのセットはファイルに記憶され、通信はraw socketを使用して行われ、使用されているFHEライブラリはHELibである(Shai Halevi他「Helib」(GitHub https://github.com/shaih/HElib上で公開されているGPLソースコード(2013)))。この例におけるアルゴリズムに関して、またはC++コア(マルチスレッド要素の使用)に関する最適化は行われなかった。Helib方式は、準同型評価の実行をより高速にするための最適化を行い、主にSmart−Vercauteren暗号文パッキング技法(Smart他「Fully Homomorphic SIMD Operations」(Cryptology ePrint Archive: Report 2011/133 (2011)))およびGentry−Halevi−Smart最適化(Gentry他「Homomorphic Evaluation of the AES Circuit」(Cryptology ePrint Archive: Report 2012/099 (2012)))の効果的な使用に焦点を当てたBGVを採用している。Helibアルゴリズムに使用されたパラメータは、p=257、L=32、c=3、d=1、r=1、M=23377であった。
アルゴリズムの有効性および正確性をチェックすること以外の主な目標は、データ空間および計算に関して所与の複雑度を実験的に検証することであった。
表5は、HELibを使用した暗号化データサイズに対するいくつかの測定基準、および、同じレベルのセキュリティを使用した、RSA暗号システムとの比較(AES128ビット鍵、またはRSA2048ビット鍵と等価な112ビットのセキュリティが与えられている)を提供する。
表6において、鍵生成時間から準同型演算の結果の解読までのHELibの計算コストに関するいくつかの測定基準が示されている。
実験結果
CFPM−FHEプロトコルによって生成されたデータサイズの変動(すなわち、m、nおよびTの値を変更するときのGb単位の通信コスト)が図3〜図5に示されている。図3は、m、すなわちクライアントのセットサイズに対する計算時間を示す。図4は、n、すなわちサーバのセットサイズに対する計算時間を示す。図5は、T、すなわち単語サイズに対する計算時間を示す。
CFPM−FHEプロトコルによって生成されたデータサイズの変動(すなわち、m、nおよびTの値を変更するときのGb単位の通信コスト)が図3〜図5に示されている。図3は、m、すなわちクライアントのセットサイズに対する計算時間を示す。図4は、n、すなわちサーバのセットサイズに対する計算時間を示す。図5は、T、すなわち単語サイズに対する計算時間を示す。
m、nおよびTの値を変更するときの計算コスト(データサイズ)の変動が図6〜図8に示されている。図6は、m、すなわちクライアントのセットサイズに対する計算コストを示す。図7は、n、すなわちサーバのセットサイズに対する計算コストを示す。図8は、T、すなわち単語サイズに対する計算コストを示す。
これらの観測は、プロトコル複雑度の理論的分析と一致する。
このプロトタイプ例において、ファイルがデータを交換する手段として使用された。入力および出力動作は効率的ではないが、視覚的に例証的であるという利点を有する。別の実施態様(Helibを使用する)において、バイトのダイレクトバッファがサーバに送信されており、これは計算および転送時間を劇的に改善する。同じことがこの実施態様によって行われ得ると仮定することができる。
この特定の実施態様において、スレッドは使用されなかった。その主な理由は、本発明の計算複雑度の有効性をチェックするためであった。しかしながら、性能を向上させるために並列化が使用され得る。アルゴリズムはサーバベクトルに同じ計算を適用することによって動作するため、本発明の動作の大部分は並列化することができる。このタスクは、n個のプロセッサの間で容易に分散することができ、したがって、サーバの計算時間がn分の1に低減される。
複雑度を低減するために、いくつかの最適化も行われ得る。
他の実験において、ハミング距離の計算の最適化が評価された。上記の例と同じクライアント−サーバアーキテクチャが使用された。たとえば、圧縮されたバッファを転送し、ファイルの使用を可能な限り低減することによって、計算時間および転送時間が10sから120msへと100倍改善された。これらの結果は、性能の改善を得ることが可能であることを示している。これらの最適化は、小さく見え得るが、動作の数を低減することによって、より小さいパラメータを暗号システムに使用すること、および、基本動作時間を改善することが可能になる。
Helibは依然として相対的に新しいライブラリであり、まだBGVに記載されているすべての機能が実装されているわけではない。たとえば、モジュラ簡約化、すなわち、係数にわたる暗号文のノイズの低減は、利用可能でない。本実装例について、これは、生成される最大量のノイズを考慮に入れる必要があり、そのようなノイズとともに解読することが可能であるパラメータが使用されることを意味する。このライブラリの次の実装は、より小さいパラメータを用いて動作することが可能になるため、計算時間をさらに改善することになる。代替的には、専用のライブラリが利用されてもよい。
Claims (10)
- データマッチングのための方法であって、
第1の暗号化データ要素セットを提供するステップであって、前記第1のセット内の前記暗号化データ要素の各々は、第1のセットのデータ要素のそれぞれを、ベクトルのセットに変換し、各ベクトルを、準同型暗号化方式の公開鍵を用いて暗号化することによって形成されており、前記第1のセット内の各データ要素は、アルファベットから取り出される文字列を含む、提供するステップと、
第2の暗号化データ要素セットを受信するステップであって、前記第2のセット内の前記暗号化データ要素の各々は、第2のセットのデータ要素のそれぞれを、ベクトルのセットに変換し、各ベクトルを、前記公開鍵を用いて暗号化することによって形成されており,前記第2のセット内の各データ要素は、前記アルファベットから取り出される文字列を含む、受信するステップと、
各対が、前記第1のセットからの暗号化データ要素および前記第2のセットからの暗号化データ要素を含む複数の暗号化データ要素対の各々について、前記第2のセット内の前記暗号化データ要素の前記暗号化ベクトルと、前記第1のセット内の前記暗号化データ要素の前記暗号化ベクトルとの間の比較測度を計算するステップと、
前記第1のセット内の各暗号化データ要素について、前記比較測度が前記暗号化データ要素を含むデータ要素の前記対の少なくとも1つについての閾値を満たさないときに、前記第1の暗号化データ要素を解読不能にする難読化ベクトルを生成するステップと、
前記難読化ベクトルを出力するステップであって、それによって、前記難読化ベクトルが前記準同型暗号化方式の秘密鍵を用いて解読されるときに、前記比較測度が前記第2のセット内の前記データ要素の少なくとも1つについての前記閾値を満たす前記第1のセット内のデータ要素のみが解読可能である、出力するステップと
を含み、
前記比較測度を計算するステップ、および、前記難読化ベクトルを生成するステップのうちの少なくとも1つは、コンピュータプロセッサによって実施される、方法。 - 前記準同型暗号化方式は、完全準同型暗号化方式である、請求項1に記載の方法。
- 前記準同型暗号化方式は、加算、乗算、および、任意選択の右回転演算が暗号化データに対して実施されることを可能にする、請求項1に記載の方法。
- 前記準同型暗号化方式は、Brakerski−Gentry−Vaikuntanathan(BGV)暗号化方式に基づく、請求項1に記載の方法。
- 前記第1のセット内の各データ要素は、前記第2のセット内の各データ要素と同じ数の文字を有する、請求項1に記載の方法。
- 前記第1のセット内の各データ要素は少なくとも2文字を含む、請求項5に記載の方法。
- 前記第1のセットおよび第2のセット内の各データ要素について、前記暗号化ベクトルセットは、同じ数の暗号化ベクトルから構成される、請求項1に記載の方法。
- 前記暗号化ベクトルの数は、前記アルファベット内の前記文字の数に対応する、請求項7に記載の方法。
- データマッチングのためのシステムであって、
第1の暗号化データ要素セットを記憶するメモリであって、前記第1のセット内の前記暗号化データ要素の各々は、第1のセットのデータ要素のそれぞれを、ベクトルのセットに変換し、各ベクトルを、準同型暗号化方式の公開鍵を用いて暗号化することによって形成されており、前記第1のセット内の各データ要素は、アルファベットから取り出される文字列を含む、メモリと、
メモリに記憶されている命令であって、
第2の暗号化データ要素セットを受信し、前記第2のセット内の前記暗号化データ要素の各々は、第2のセットのデータ要素のそれぞれを、ベクトルのセットに変換し、各ベクトルを、前記公開鍵を用いて暗号化することによって形成されており、前記第2のセット内の各データ要素は、前記アルファベットから取り出される文字列を含み、
前記第1のセットおよび第2のセットからの暗号化データ要素の各対について、前記第2のセット内の前記暗号化データ要素の前記暗号化ベクトルと、前記第1のセット内の前記暗号化データ要素の前記暗号化ベクトルとの間の比較測度を計算し、
前記第1のセット内の各暗号化データ要素について、前記比較測度が前記暗号化データ要素を含むデータ要素の前記対の少なくとも1つについての閾値を満たさないときに、前記第1の暗号化データ要素を解読不能にする難読化ベクトルを生成し、
前記難読化ベクトルを出力し、それによって、前記難読化ベクトルが前記準同型暗号化方式の秘密鍵を用いて解読されるときに、前記比較測度が前記閾値を満たす前記第1のセット内のデータ要素のみが解読可能である、命令と、
前記命令を実施するプロセッサと
を備える、システム。 - データマッチングのための方法であって、
サーバコンピュータによって、第1の暗号化データ要素セットを生成するために第1のデータ要素セットを暗号化するステップであって、前記暗号化するステップは、前記第1のセットのデータ要素の各々をそれぞれのベクトルのセットに変換するサブステップと、前記ベクトルセット内の各ベクトルを、準同型暗号化方式の公開鍵を用いて暗号化するサブステップとを含み、前記第1のデータ要素セット内の各データ要素は、アルファベットから取り出される文字列を含む、暗号化するステップと、
クライアントコンピュータによって、第2の暗号化データ要素セットを生成するために第2のデータ要素セットを暗号化するステップを含み、前記暗号化するステップは、前記第2のセットのデータ要素の各々をそれぞれのベクトルのセットに変換するサブステップと、前記ベクトルセット内の各ベクトルを、前記公開鍵を用いて暗号化するサブステップとを含み、前記第2のデータ要素セット内の各データ要素は、前記アルファベットから取り出される文字列を含む、暗号化するステップと、
前記サーバコンピュータによって、
前記第2の暗号化データ要素セットを受信するステップと、
各対が、前記第1のセットからの暗号化データ要素および前記第2のセットからの暗号化データ要素を含む複数の暗号化データ要素対の各々について、前記第2のセット内の前記暗号化データ要素の前記暗号化ベクトルと、前記第1のセット内の前記暗号化データ要素の前記暗号化ベクトルとの間の比較測度を計算するステップと、
前記第1のセット内の各暗号化データ要素について、前記比較測度が前記暗号化データ要素を含むデータ要素の前記対の少なくとも1つについての閾値を満たさないときに、前記第1の暗号化データ要素を解読不能にする難読化ベクトルを生成するステップと、
前記難読化ベクトルを出力するステップと、
前記クライアントコンピュータによって、前記難読化ベクトルを、前記準同型暗号化方式の秘密鍵を用いて解読するステップであって、それによって、前記比較測度が前記第2のセット内の前記データ要素の少なくとも1つについての前記閾値を満たす前記第1のセット内のデータ要素のみが解読可能である、解読するステップと
を含む、方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/278,570 US9749128B2 (en) | 2014-05-15 | 2014-05-15 | Compact fuzzy private matching using a fully-homomorphic encryption scheme |
US14/278,570 | 2014-05-15 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2016035554A true JP2016035554A (ja) | 2016-03-17 |
Family
ID=54361877
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2015090001A Pending JP2016035554A (ja) | 2014-05-15 | 2015-04-27 | 完全準同型暗号化方式を使用したコンパクトなファジープライベートマッチング |
Country Status (3)
Country | Link |
---|---|
US (1) | US9749128B2 (ja) |
JP (1) | JP2016035554A (ja) |
DE (1) | DE102015208142A1 (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2020075797A1 (ja) * | 2018-10-10 | 2020-04-16 | 日本電信電話株式会社 | 秘密右シフト演算システム、秘密除算システム、それらの方法、秘密計算装置、およびプログラム |
KR102346081B1 (ko) * | 2021-01-29 | 2022-01-03 | 주식회사 디사일로 | 특정인에 대한 근접성을 결정하기 위한 장치, 방법 및 명령을 기록한 기록 매체 |
Families Citing this family (59)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6413598B2 (ja) * | 2014-10-10 | 2018-10-31 | 富士通株式会社 | 暗号処理方法、暗号処理装置、及び暗号処理プログラム |
US9825758B2 (en) * | 2014-12-02 | 2017-11-21 | Microsoft Technology Licensing, Llc | Secure computer evaluation of k-nearest neighbor models |
US9787647B2 (en) * | 2014-12-02 | 2017-10-10 | Microsoft Technology Licensing, Llc | Secure computer evaluation of decision trees |
JP6421576B2 (ja) * | 2014-12-12 | 2018-11-14 | 富士通株式会社 | 暗号処理装置、暗号処理方法、及び暗号処理プログラム |
US10484168B2 (en) * | 2015-03-02 | 2019-11-19 | Dell Products L.P. | Methods and systems for obfuscating data and computations defined in a secure distributed transaction ledger |
US10592985B2 (en) | 2015-03-02 | 2020-03-17 | Dell Products L.P. | Systems and methods for a commodity contracts market using a secure distributed transaction ledger |
US9813243B1 (en) * | 2015-03-30 | 2017-11-07 | EMC IP Holding Company LLC | Methods and apparatus for password-based secret sharing schemes |
US10892889B2 (en) * | 2015-04-07 | 2021-01-12 | Coleridge Enterprises Llc | Systems and methods for an enhanced XOR cipher through extensions |
KR102423885B1 (ko) * | 2015-05-08 | 2022-07-21 | 한국전자통신연구원 | 연산 에러 검출이 가능한 준동형 암호 방법 및 그 시스템 |
SG11201708750TA (en) * | 2015-05-13 | 2017-11-29 | Agency Science Tech & Res | Network system, and methods of encrypting data, decrypting encrypted data in the same |
US9875375B2 (en) * | 2015-05-29 | 2018-01-23 | Panasonic Intellectual Property Corporation Of America | Method for performing similar-information search while keeping content confidential by encryption |
US10075289B2 (en) | 2015-11-05 | 2018-09-11 | Microsoft Technology Licensing, Llc | Homomorphic encryption with optimized parameter selection |
US10153894B2 (en) * | 2015-11-05 | 2018-12-11 | Microsoft Technology Licensing, Llc | Homomorphic encryption with optimized encoding |
FR3047373B1 (fr) * | 2016-01-28 | 2018-01-05 | Morpho | Procede de calcul securise multipartite protege contre une partie malveillante |
US10083155B2 (en) * | 2016-05-17 | 2018-09-25 | International Business Machines Corporation | Method for detecting original language of translated document |
JP7024709B2 (ja) * | 2016-06-02 | 2022-02-24 | 日本電気株式会社 | 暗号化情報照合装置、暗号化情報照合方法、及び、暗号化情報照合プログラム |
US10296709B2 (en) | 2016-06-10 | 2019-05-21 | Microsoft Technology Licensing, Llc | Privacy-preserving genomic prediction |
WO2018026944A1 (en) * | 2016-08-02 | 2018-02-08 | X-Logos, LLC | Methods and systems for enhanced data-centric encryption systems using geometric algebra |
US10496638B2 (en) * | 2016-12-07 | 2019-12-03 | City University Of Hong Kong | Systems and methods for privacy-assured similarity joins over encrypted datasets |
US10812252B2 (en) * | 2017-01-09 | 2020-10-20 | Microsoft Technology Licensing, Llc | String matching in encrypted data |
WO2018140961A1 (en) * | 2017-01-30 | 2018-08-02 | X-Logos, LLC | Methods and systems for enhanced data-centric additive homomorphic encryption systems using geometric algebra |
US10496631B2 (en) * | 2017-03-10 | 2019-12-03 | Symphony Communication Services Holdings Llc | Secure information retrieval and update |
US10320758B2 (en) * | 2017-04-25 | 2019-06-11 | International Business Machines Corporation | Cryptography using multi-factor key system and finite state machine |
US11196539B2 (en) * | 2017-06-22 | 2021-12-07 | Microsoft Technology Licensing, Llc | Multiplication operations on homomorphic encrypted data |
US10541805B2 (en) * | 2017-06-26 | 2020-01-21 | Microsoft Technology Licensing, Llc | Variable relinearization in homomorphic encryption |
US10749665B2 (en) | 2017-06-29 | 2020-08-18 | Microsoft Technology Licensing, Llc | High-precision rational number arithmetic in homomorphic encryption |
WO2019014425A1 (en) * | 2017-07-13 | 2019-01-17 | Pindrop Security, Inc. | SAFE PARTY WITH SEVERAL PARTIES KNOWING NO VOICE IMPRESSIONS |
US10728017B2 (en) | 2017-11-03 | 2020-07-28 | International Business Machines Corporation | Performing vector comparison operations in fully homomorphic encryption |
US10665244B1 (en) | 2018-03-22 | 2020-05-26 | Pindrop Security, Inc. | Leveraging multiple audio channels for authentication |
US20190318118A1 (en) * | 2018-04-16 | 2019-10-17 | International Business Machines Corporation | Secure encrypted document retrieval |
US11032061B2 (en) * | 2018-04-27 | 2021-06-08 | Microsoft Technology Licensing, Llc | Enabling constant plaintext space in bootstrapping in fully homomorphic encryption |
US20210326866A1 (en) * | 2018-08-17 | 2021-10-21 | Visa International Service Association | Techniques For Securely Communicating Sensitive Data |
EP3667512A1 (en) * | 2018-12-11 | 2020-06-17 | Siemens Aktiengesellschaft | A cloud platform and method for efficient processing of pooled data |
US11368308B2 (en) * | 2019-01-11 | 2022-06-21 | Visa International Service Association | Privacy preserving biometric authentication |
CN109889320B (zh) * | 2019-01-24 | 2022-04-15 | 中国人民武装警察部队工程大学 | 一种bgv型多密钥全同态加密方法 |
EP3909198B1 (en) * | 2019-02-08 | 2024-09-18 | Keyless Technologies Ltd | Authentication processing service |
WO2020166879A1 (en) * | 2019-02-15 | 2020-08-20 | Crypto Lab Inc. | Apparatus for performing threshold design on secret key and method thereof |
US11250140B2 (en) * | 2019-02-28 | 2022-02-15 | Sap Se | Cloud-based secure computation of the median |
US12067151B2 (en) * | 2019-04-30 | 2024-08-20 | Enya Inc. | Resource-efficient privacy-preserving transactions |
WO2020229644A1 (en) | 2019-05-15 | 2020-11-19 | Koninklijke Philips N.V. | Categorizing a sensitive data field in a dataset |
US11804955B1 (en) | 2019-09-13 | 2023-10-31 | Chol, Inc. | Method and system for modulated waveform encryption |
CA3059032A1 (en) | 2019-10-17 | 2021-04-17 | The Toronto-Dominion Bank | Homomorphic encryption of communications involving voice-enabled devices in a distributed computing environment |
US11663521B2 (en) * | 2019-11-06 | 2023-05-30 | Visa International Service Association | Two-server privacy-preserving clustering |
US11038683B1 (en) * | 2020-01-24 | 2021-06-15 | Via Science, Inc. | Secure data processing |
US12099997B1 (en) | 2020-01-31 | 2024-09-24 | Steven Mark Hoffberg | Tokenized fungible liabilities |
CN111355587B (zh) * | 2020-02-18 | 2021-02-19 | 华南农业大学 | 一种基于对抗网络的可认证加密安全通信系统及方法 |
DE102020204655B3 (de) * | 2020-04-09 | 2021-01-28 | Volkswagen Aktiengesellschaft | Verfahren zur Authentifizierung eines Nutzers eines Kraftfahrzeugs und Kraftfahrzeug |
CN111526000B (zh) * | 2020-04-20 | 2023-08-18 | 北京电子科技学院 | 一种基于混淆模投影的并行部分同态加密方法和系统 |
US12039273B2 (en) * | 2020-07-30 | 2024-07-16 | International Business Machines Corporation | Feature vector generation for probabalistic matching |
WO2022035909A1 (en) | 2020-08-10 | 2022-02-17 | X-Logos, LLC | Methods for somewhat homomorphic encryption and key updates based on geometric algebra for distributed ledger technology |
US11949778B1 (en) | 2020-09-16 | 2024-04-02 | Snap Inc. | Privacy-preserving multi-touch attribution |
US11683151B2 (en) * | 2020-09-17 | 2023-06-20 | Algemetric, Inc. | Methods and systems for distributed computation within a fully homomorphic encryption scheme using p-adic numbers |
CN112637174B (zh) * | 2020-12-16 | 2022-10-21 | 百度在线网络技术(北京)有限公司 | 数据相关度计算方法、装置、电子设备和存储介质 |
EP4125236A1 (en) * | 2021-07-26 | 2023-02-01 | Nagravision Sarl | Secret code verification protocol |
CN115810208A (zh) * | 2021-09-14 | 2023-03-17 | 超聚变数字技术有限公司 | 一种人脸识别方法、设备及系统 |
CN114817943A (zh) * | 2022-02-28 | 2022-07-29 | 中国银联股份有限公司 | 一种数据匹配方法、装置、设备及介质 |
CN115865391A (zh) * | 2022-08-04 | 2023-03-28 | 中国银联股份有限公司 | 一种数据匹配方法、装置、系统、设备及介质 |
CN115442021A (zh) * | 2022-08-09 | 2022-12-06 | 中国银联股份有限公司 | 一种数据匹配方法、装置、系统、设备及介质 |
CN116455575B (zh) * | 2023-06-16 | 2023-10-10 | 北京天润基业科技发展股份有限公司 | 一种密钥生成、加密、解密方法、电子设备及存储介质 |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7539032B2 (en) * | 2006-09-19 | 2009-05-26 | Netlogic Microsystems, Inc. | Regular expression searching of packet contents using dedicated search circuits |
US8069053B2 (en) * | 2008-08-13 | 2011-11-29 | Hartford Fire Insurance Company | Systems and methods for de-identification of personal data |
US8249250B2 (en) | 2009-03-30 | 2012-08-21 | Mitsubishi Electric Research Laboratories, Inc. | Secure similarity verification between homomorphically encrypted signals |
US8959455B2 (en) * | 2009-09-25 | 2015-02-17 | Advanced Bionics Ag | Methods and systems for preventing unauthorized access to patient information |
CN102298582B (zh) * | 2010-06-23 | 2016-09-21 | 商业对象软件有限公司 | 数据搜索和匹配方法和系统 |
US8532289B2 (en) | 2010-08-16 | 2013-09-10 | International Business Machines Corporation | Fast computation of a single coefficient in an inverse polynomial |
US8429421B2 (en) * | 2010-12-17 | 2013-04-23 | Microsoft Corporation | Server-side encrypted pattern matching |
WO2012149395A1 (en) | 2011-04-29 | 2012-11-01 | International Business Machines Corporation | Fully homomorphic encryption |
US9281941B2 (en) * | 2012-02-17 | 2016-03-08 | International Business Machines Corporation | Homomorphic evaluation including key switching, modulus switching, and dynamic noise management |
US9202079B2 (en) * | 2012-10-25 | 2015-12-01 | Verisign, Inc. | Privacy preserving data querying |
US9197632B2 (en) * | 2013-03-15 | 2015-11-24 | Kaarya Llc | System and method for account access |
US10810178B2 (en) * | 2013-09-24 | 2020-10-20 | QIikTech International AB | Methods and systems for data management and analysis |
-
2014
- 2014-05-15 US US14/278,570 patent/US9749128B2/en active Active
-
2015
- 2015-04-27 JP JP2015090001A patent/JP2016035554A/ja active Pending
- 2015-04-30 DE DE102015208142.7A patent/DE102015208142A1/de not_active Withdrawn
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2020075797A1 (ja) * | 2018-10-10 | 2020-04-16 | 日本電信電話株式会社 | 秘密右シフト演算システム、秘密除算システム、それらの方法、秘密計算装置、およびプログラム |
JPWO2020075797A1 (ja) * | 2018-10-10 | 2021-09-02 | 日本電信電話株式会社 | 秘密右シフト演算システム、秘密除算システム、それらの方法、秘密計算装置、およびプログラム |
JP7067633B2 (ja) | 2018-10-10 | 2022-05-16 | 日本電信電話株式会社 | 秘密右シフト演算システム、秘密除算システム、それらの方法、秘密計算装置、およびプログラム |
KR102346081B1 (ko) * | 2021-01-29 | 2022-01-03 | 주식회사 디사일로 | 특정인에 대한 근접성을 결정하기 위한 장치, 방법 및 명령을 기록한 기록 매체 |
WO2022163991A1 (ko) * | 2021-01-29 | 2022-08-04 | 주식회사 디사일로 | 특정인에 대한 근접성을 결정하기 위한 장치, 방법 및 명령을 기록한 기록 매체 |
Also Published As
Publication number | Publication date |
---|---|
US9749128B2 (en) | 2017-08-29 |
US20160119119A1 (en) | 2016-04-28 |
DE102015208142A1 (de) | 2015-11-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2016035554A (ja) | 完全準同型暗号化方式を使用したコンパクトなファジープライベートマッチング | |
US10630655B2 (en) | Post-quantum secure private stream aggregation | |
Liu et al. | An efficient privacy-preserving outsourced calculation toolkit with multiple keys | |
Liu et al. | Privacy-preserving outsourced calculation toolkit in the cloud | |
JP6504013B2 (ja) | 暗号処理方法、暗号処理装置、および暗号処理プログラム | |
JP6763378B2 (ja) | 暗号情報作成装置、暗号情報作成方法、暗号情報作成プログラム、及び、照合システム | |
JP5496410B2 (ja) | 類似度算出システム及び類似度算出装置及びコンピュータプログラム及び類似度算出方法 | |
JP5966877B2 (ja) | 復号方法、復号プログラム、復号装置、および鍵生成方法 | |
WO2017126001A1 (ja) | 暗号化装置、暗号文変換装置、暗号化プログラム、暗号文変換プログラム、暗号化方法及び暗号文変換方法 | |
US20190020472A1 (en) | Practical reusable fuzzy extractor based on the learning-with-error assumption and random oracle | |
JPWO2018110608A1 (ja) | 照合システム、方法、装置及びプログラム | |
JP2014126865A (ja) | 暗号処理装置および方法 | |
JP2010237653A (ja) | 第1の信号と第2の信号との間の類似性を検証するための方法及びシステム | |
Koppu et al. | A fast enhanced secure image chaotic cryptosystem based on hybrid chaotic magic transform | |
CN114039785B (zh) | 数据加密、解密、处理方法、装置、设备和存储介质 | |
CN112865973A (zh) | 基于格的加密密钥和数字签名的生成方法 | |
Kumar et al. | Complex entropy based encryption and decryption technique for securing medical images | |
KR20240004830A (ko) | 완전 동형 암호화에서 사용하기 위한 블라인드 회전 | |
Theodouli et al. | Implementing private k-means clustering using a LWE-based cryptosystem | |
JP6922385B2 (ja) | ノイズ存在下におけるパリティ値の同定に基づく、近似関係の関係暗号化 | |
US20230085577A1 (en) | Secured performance of an elliptic curve cryptographic process | |
US20240340178A1 (en) | Secure computation and communication | |
Elamir et al. | Review of Advanced Techniques for Data Security Technology and Applications | |
JP6599215B2 (ja) | 秘匿計算装置およびプログラム | |
Haldar et al. | Securing Mobile Robots Multi-Party Authentication Technique Using Modified Elliptic Curve Cryptography |