JP2023019432A - 情報処理システム及び情報処理方法 - Google Patents
情報処理システム及び情報処理方法 Download PDFInfo
- Publication number
- JP2023019432A JP2023019432A JP2021124147A JP2021124147A JP2023019432A JP 2023019432 A JP2023019432 A JP 2023019432A JP 2021124147 A JP2021124147 A JP 2021124147A JP 2021124147 A JP2021124147 A JP 2021124147A JP 2023019432 A JP2023019432 A JP 2023019432A
- Authority
- JP
- Japan
- Prior art keywords
- terminal
- vector
- information processing
- vectors
- data
- 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
Images
Classifications
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09C—CIPHERING OR DECIPHERING APPARATUS FOR CRYPTOGRAPHIC OR OTHER PURPOSES INVOLVING THE NEED FOR SECRECY
- G09C1/00—Apparatus or methods whereby a given sequence of signs, e.g. an intelligible text, is transformed into an unintelligible sequence of signs by transposing the signs or groups of signs or by replacing them by others according to a predetermined system
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
【課題】複数のデータ保有者間におけるデータの類似部分の抽出において、類似していないデータについては他者に情報が漏えいするリスクを低減しつつ、少ない計算量及び通信量で類似部分を抽出する。【解決手段】第1端末は、第1ベクトル、ダミーベクトル、及び秘密鍵を保持し、記第2端末は、複数のベクトルを保持し、第1端末は、ダミーベクトルに基づき、かつ第1ベクトルを含む領域を決定し、決定した領域を示す情報を、第2端末に送信し、第2端末は、前記複数のベクトルのうち前記領域に含まれるベクトルを特定し、第1端末は、秘密鍵を用いて第1ベクトルを暗号化し、第1端末及び第2端末は、特定したベクトルのうち、第1ベクトルとの類似度が所定の第1しきい値より高いベクトルを、第1ベクトルを復号化することなく、抽出する。【選択図】図5
Description
本発明は、情報処理システム及び情報処理方法に関する。
近年、安全性の高い暗号化技術を用いてデータを暗号化し、当該データを復号化することなく何らかの処理を可能にする技術の研究に注目が集まっている。当該技術は、他者の情報を暗号化したまま必要な処理を行うことで情報の開示を最小限に抑え、不要な情報の漏洩を防ぐことができる。
特に、複数者がそれぞれ持つ情報に、同様の情報が含まれているかを特定し、分析に応用したいというニーズが高まっている。例えば、不正アクセスを試みる不審なアクセス情報の共有や与信情報の共有のニーズがある。
しかし、複数者がそれぞれ持つ情報のうち、類似している情報は共有したいが、類似していない情報については他者に知られたくないケースが多い。このような類似部分以外はお互いに開示せずに類似部分情報のみを抽出する安全な技術が求められる。
このような技術として、情報の類似部分を抽出したい二者が同じ暗号化鍵を共有した上で、それぞれ自身のデータを暗号化し、暗号文を比較するなどして類似部分を抽出する技術がある。しかし、このような技術は、類似部分以外の情報も暗号化して互いに送信しあう。従って、当該技術では、類似部分抽出処理の後に、一方が他方の、類似部分に含まれていなかったキーワードを推測するなどのオフライン攻撃が成立することがあり、類似部分以外の情報が漏えいするおそれがあり、高い安全性を持つとは言えない。
秘匿類似部分抽出の方法としては、準同型公開鍵暗号と呼ばれる暗号化方式を用いて、一方が持つデータを暗号化して他方に送付し、当該他方は自身の持つ各データを暗号化したものに対して、送付されたデータの暗号文との差分又は当該差分に類似した値を暗号化したまま計算し、その結果の暗号文を返送する方法や、特許文献1に記載の方法がある。
特許文献1の公報には、「第一の組織の装置は、組織内で秘匿すべき第一のデータ列に対して秘匿のための第一の変形を行い、変形された第一のデータ列を第三の組織の装置へ出力し、第二の組織の装置は、組織内で秘匿すべき第二のデータ列に対して秘匿のための第二の変形を行い、変形された第二のデータ列を第三の組織の装置へ出力し、第三の組織の装置は、変形された第一のデータ列と変形された第二のデータ列との内積を計算して、この内積を少なくとも第二の組織の装置へ返送する。第一の組織の装置は、第二の組織の装置へ、自装置が行った第一の変形に関する情報を送信し、第二の組織の装置は、自装置が行った第二の変形に関する情報と、第一の組織の装置から受信した情報と、第三の組織の装置から受け取った内積とに基づいて、第一のデータ列と第二のデータ列との内積を求める。」と記載されている(要約参照)。
特許文献1に記載の技術は、一方が他方のデータを推測することを防ぐことができ高い安全性を持つと考えられるものの、データ量が増大すると処理量や通信量が飛躍的に増大するため、現実的な時間やコストでは処理が困難である。また、特許文献1に記載の技術では、秘匿内積計算に第三者を仲介しなければならず、これも通信量や通信時間の増加などのコストが増加する。
そこで、本発明の一態様は、複数のデータ保有者間におけるデータの類似部分の抽出において、類似していないデータについては他者に情報が漏えいするリスクを低減しつつ、少ない計算量及び通信量で類似部分を抽出する。
上記課題を解決するために、本発明の一態様は、以下の構成を採用する。情報処理システムは、第1端末と第2端末とを含み、前記第1端末は、第1ベクトル、ダミーベクトル、及び秘密鍵を保持し、前記第2端末は、複数のベクトルを保持し、前記第1端末及び前記第2端末は絞込み処理を実行し、前記絞込み処理において、前記第1端末は、前記ダミーベクトルに基づき、かつ前記第1ベクトルを含む領域を決定し、前記決定した領域を示す情報を、前記第2端末に送信し、前記第2端末は、前記複数のベクトルのうち前記領域に含まれるベクトルを特定し、前記第1端末及び前記第2端末は、類似部分抽出処理を実行し、前記類似部分抽出処理において、前記第1端末は、前記秘密鍵を用いて前記第1ベクトルを暗号化し、前記第1端末及び前記第2端末は、前記特定したベクトルのうち、前記第1ベクトルとの類似度が所定の第1しきい値より高いベクトルを、前記第1ベクトルを復号化することなく、抽出する。
本発明の一態様によれば、複数のデータ保有者間におけるデータの類似部分の抽出において、類似していないデータについては他者に情報が漏えいするリスクを低減しつつ、少ない計算量及び通信量で類似部分を抽出することができる。
上記した以外の課題、構成及び効果は、以下の実施形態の説明により明らかにされる。
次に、本発明を実施するための形態について、適宜図面を参照しながら詳細に説明する。なお、実施形態において、同一の部材には原則として同一の符号を付け、繰り返しの説明は省略する。
<システム構成例>
図1は、秘匿類似部分抽出システムの一例を示すブロック図である。秘匿類似部分抽出システムは、二者間で一方が自身のデータを暗号化したまま他方のデータと照合し、類似部分を抽出するシステムである。秘匿類似部分抽出システムは、ユーザA端末100(第1端末の一例)と、ユーザB端末200(第2端末の一例)とを含む。ユーザA端末100と、ユーザB端末200と、はインターネット等のネットワーク1000を介して互いに接続され、通信可能な状態である。
図1は、秘匿類似部分抽出システムの一例を示すブロック図である。秘匿類似部分抽出システムは、二者間で一方が自身のデータを暗号化したまま他方のデータと照合し、類似部分を抽出するシステムである。秘匿類似部分抽出システムは、ユーザA端末100(第1端末の一例)と、ユーザB端末200(第2端末の一例)とを含む。ユーザA端末100と、ユーザB端末200と、はインターネット等のネットワーク1000を介して互いに接続され、通信可能な状態である。
(ユーザA端末100の構成例)
図2は、ユーザA端末100の構成例を示すブロック図である。ユーザA端末100は、例えば、CPU110、補助記憶装置120、入力装置101、出力装置102、通信装置103、及びメモリ104を有する計算機によって構成される。
図2は、ユーザA端末100の構成例を示すブロック図である。ユーザA端末100は、例えば、CPU110、補助記憶装置120、入力装置101、出力装置102、通信装置103、及びメモリ104を有する計算機によって構成される。
CPU110は、プロセッサを含み、メモリ104に格納されたプログラムを実行する。メモリ104は、不揮発性の記憶素子であるROM(Read Only Memory)及び揮発性の記憶素子であるRAM(Random Access Memory)を含む。ROMは、不変のプログラム(例えば、BIOS(Basic Input/Output System))などを格納する。RAMは、DRAM(Dynamic Random Access Memory)のような高速かつ揮発性の記憶素子であり、CPU110が実行するプログラム及びプログラムの実行時に使用されるデータを一時的に格納する。
補助記憶装置120は、例えば、磁気記憶装置(HDD(Hard Disk Drive))、フラッシュメモリ(SSD(Solid State Drive))等の大容量かつ不揮発性の記憶装置であり、CPU110が実行するプログラム及びプログラムの実行時に使用されるデータを格納する。すなわち、プログラムは、補助記憶装置120から読み出されて、メモリ104にロードされて、CPU110によって実行される。
なお、本実施形態において、秘匿類似部分抽出システムが使用する情報は、データ構造に依存せずどのようなデータ構造で表現されていてもよい。例えば、テーブル、リスト、データベース、又はキューから適切に選択したデータ構造体が、情報を格納することができる。
入力装置101は、キーボードやマウスなどの、オペレータからの入力を受ける装置である。出力装置102は、ディスプレイ装置やプリンタなどの、プログラムの実行結果をオペレータが視認可能な形式で出力する装置である。通信装置103は、所定のプロトコルに従って、他の装置との通信を制御するネットワークインターフェース装置である。
CPU110が実行するプログラムは、非一時的な記憶装置を備えた他の情報処理装置から、非一時的な記憶媒体であるリムーバブルメディア(CD-ROM、フラッシュメモリなど)又はネットワーク1000を介してユーザA端末100に提供され、非一時的記憶媒体である不揮発性の補助記憶装置120に格納されてもよい。このため、ユーザA端末100は、リムーバブルメディアからデータを読み込むインターフェースを有するとよい。これは、ユーザB端末200についても同様である。
ユーザA端末100は、物理的に一つの計算機上で、又は、論理的又は物理的に構成された複数の計算機上で構成される計算機システムであり、同一の計算機上で別個のスレッドで動作してもよく、複数の物理的計算機資源上に構築された仮想計算機上で動作してもよい。これは、ユーザB端末200についても同様である。
CPU110は、例えば、暗号化処理部111と、復号化処理部112と、ダミーデータ生成部113と、類似部分抽出部114と、を含む。暗号化処理部111は、ユーザAが持つデータ131を暗号化する。復号化処理部112は、ユーザAのデータとユーザBのデータとが暗号化したまま算出されたユーザAのデータとユーザBのデータとの距離値を復号化する。ダミーデータ生成部113は、ユーザB端末200が保持するデータを絞り込む際に用いられるダミーデータを生成する。なお、CPU110は、データを出力装置102に表示する処理を行ったり、補助記憶装置120に格納されているデータを読み込み、通信装置103を介して、ユーザB端末200へ送信したりする。類似部分抽出部114は、データ131に含まれるデータが暗号化されたまま、当該データに類似するデータを、ユーザB端末200が有するデータから抽出する。
例えば、CPU110は、メモリ104にロードされた暗号化処理プログラムに従って動作することで、暗号化処理部111として機能し、メモリ104にロードされた復号化処理プログラムに従って動作することで、復号化処理部112として機能する。CPU110に含まれる他の機能部についても、プログラムと機能部の関係は同様である。また、ユーザB端末200が有する後述するCPU210に含まれる後述する機能部についても、プログラムと機能部の関係は同様である。
なお、CPU110及びCPU210に含まれる機能部による機能の一部又は全部が、例えば、ASIC(Application Specific Integrated Circuit)やFPGA(Field-Programmable Gate Array)等のハードウェアによって実現されてもよい。
補助記憶装置120は、データ記憶領域130及び暗復号化鍵記憶領域140を含む。データ記憶領域130は、ユーザAが保持するデータ131などが格納される。暗復号化鍵記憶領域140には、暗号化処理部111や復号化処理部112による処理に利用される暗号化鍵141及び復号化鍵142が格納される。
(ユーザB端末200の構成例)
図3は、ユーザB端末200の構成例を示すブロック図である。ユーザB端末200は、例えば、CPU210、補助記憶装置220、入力装置201、出力装置202、通信装置203、及びメモリ204を有する計算機によって構成される。
図3は、ユーザB端末200の構成例を示すブロック図である。ユーザB端末200は、例えば、CPU210、補助記憶装置220、入力装置201、出力装置202、通信装置203、及びメモリ204を有する計算機によって構成される。
CPU210、補助記憶装置220、入力装置201、出力装置202、通信装置203、及びメモリ204のハードウェアとしての説明は、CPU110、補助記憶装置120、入力装置101、出力装置102、通信装置103、及びメモリ104のハードウェアとしての説明と同様であるため省略する。
CPU210は、距離値計算部211、データ抽出部212、及び類似部分抽出部213を含む。補助記憶装置120は、データ231を格納するためのデータ格納領域230を有する。なお、ユーザA端末100が有するデータ131及びユーザB端末200が有するデータ231は、その特徴を表すベクトルデータに変換されているものとする。データが文書である場合には、各要素が単語のカテゴリを表すベクトルを用いてその文書に現れる単語の頻度に応じて要素の値を決めることで当該データをベクトルデータに変換する方法がある。また、データが画像データである場合には、畳み込みニューラルネットワークでの最終値をハッシュ値とみなし、ビットベクトルとして対応付けることで当該データをベクトルデータに変換する方法などがある。
距離値計算部211は、ユーザA端末100から送信された絞込みのためのデータと、ユーザB端末200が有するデータ231との距離を計算し、ユーザAから送信されたしきい値と比較して当該しきい値より近いデータを抽出する。ここで、データがベクトルに変換されて対応付けられているため、ユークリッド空間の距離や、内積値、コサイン距離などはいずれもデータ間の距離の一例として利用可能である。また絞込みが十分に終了した後、距離値計算部211は暗号化したまま距離を計算するプロトコルをユーザA端末100との間で実行し、暗号化された距離情報をユーザA端末100に送信する。データ抽出部212は、データ231のうちユーザA端末100が指定した領域に含まれるデータを抽出する。類似部分抽出部213は、データ131に含まれるデータが暗号化されたまま、当該データに類似するデータを、データ231から抽出するための処理を実行する。
<データの絞込み>
図4は、ユーザA端末100が保持するデータ131に類似する、ユーザB端末200が保持するデータ231の絞込みの概要を示す説明図である。図4では、データが2次元のベクトルであり、距離としてユークリッド距離が用いられる例を示す。一般には高次元ベクトルやユークリッド距離以外の距離に対しても、内積で表現できる距離であれば、以下に示す方法と同様の方法で絞込みを実行することができる。
図4は、ユーザA端末100が保持するデータ131に類似する、ユーザB端末200が保持するデータ231の絞込みの概要を示す説明図である。図4では、データが2次元のベクトルであり、距離としてユークリッド距離が用いられる例を示す。一般には高次元ベクトルやユークリッド距離以外の距離に対しても、内積で表現できる距離であれば、以下に示す方法と同様の方法で絞込みを実行することができる。
図5は、秘匿類似データ抽出処理の一例を示すシーケンス図である。以下に説明するが、ユーザA端末100は目的とするデータa(データ131に含まれる)とは無関係なダミーデータa’を生成し、目的とするデータaとの距離rを計算する。なお、図4におけるベクトルb,c,d,e,fは、いずれもユーザB端末200が保持するデータである。
まず、ユーザA端末100のダミーデータ生成部113は、ダミーデータa’を生成し、生成したダミーデータa’と、a’からの距離がr+εである円の内側とa’からの距離がr-ε’である円の外側との共通領域である円環の領域408と、を示す情報をユーザB端末200に送信する(S501)。なお、ダミーデータ生成部113は、目的とするデータaにランダムな線形変換を施すことでダミーデータa’を生成してもよいし、目的とするデータaに依存せず例えばランダムなベクトルをダミーデータa’に決定してもよい。
また、領域408は、上記したような円環でなくてもよく、ダミーデータa’から生成され、データa及びデータaに類似する範囲(例えばデータaから所定距離以内の範囲)を含み、かつデータaを推測されない領域であればよい。例えば、当該領域内のランダムな位置にデータaが含まれ、かつ当該領域が十分な大きさ(例えばデータaに類似する範囲の面積の10倍以上)であれば、当該領域からデータaを推測されないといえる。
ダミーデータa’と領域408の情報を受信したユーザB端末200のデータ抽出部212は、データ231のうち、領域408に含まれるデータ(ベクトル)を抽出する(S502)。図4の例では、ベクトルb,d,eが領域408に含まれている。データ抽出部212は抽出したデータ(ベクトル)の個数をユーザA端末100に送信する(S503)。
ユーザA端末100の類似部分抽出部114は、ステップS503で受信した個数を評価し、個数が所定のしきい値を超えている場合には、ダミーデータ生成部113は、領域408をより小さくした領域の情報をユーザB端末200に送信し、ユーザB端末200のデータ抽出部212は、データ231のうち当該小さくした領域に含まれるデータを抽出して、データの個数をユーザA端末100に送信する(S504)。つまり、個数が当該しきい値以下になるまで、ユーザA端末100は領域を小さくする。
領域を小さくする処理の一例として、ダミーデータ生成部113は、領域を定義する半径r+ε、r-ε’の、ε、ε’を小さくしたり、データaを含む領域へ角度を(例えば所定の割合で)狭めたりするなどが考えられる。
ユーザA端末100が新たなε、ε’の値を(例えば、所定の割合で小さくなるように又はユーザAからの入力に従って)決定してもよいし、ユーザB端末200が、絞込みの個数が上記した所定のしきい値以下となるよう新たなε、ε’の値を決定してもよい。ただし、ユーザAが目的とするデータaに近いベクトルbが絞込み手順で排除されないようにユーザA端末100があらかじめε、ε’の取り得る最小値をユーザB端末200に送信する必要がある。
データaを含む領域へ角度を狭める処理の一例として、ダミーデータ生成部113は、データaを含み、ダミーデータa’を頂点とする、(一般には高次元)円錐領域を定義する情報をユーザB端末200に送信し、ユーザB端末200はa‘を中心とする円環と、a’を頂点とする円錐領域に同時に含まれるベクトルを抽出して絞り込む。
上記した絞込み手順において、ユーザA端末100は、ユーザB端末200にデータaの情報を直接送信しておらず、データaの情報を隠しながらユーザB端末200は絞込みを実行することができる。また、絞込みによって、類似部分抽出プロトコルの対象となるベクトルの個数が減少し、処理量及び通信量が低下する。
ユーザA端末100の類似部分抽出部114は、ステップS503で受信した個数を評価し、個数が所定のしきい値以下である場合には、データ(ベクトル)aと近いベクトルを暗号化したまま抽出するプロトコルをユーザB端末200の類似部分抽出部114との間で実行し、ユーザB端末200が保持するデータであって、データaに最も近いデータb1を抽出する(S505、S506)。データb1を抽出するプロトコルとしては特許文献1に記載の方法でもよいし、図6に示す以下の手順による方法でもよい。
<類似部分抽出プロトコル>
図6は、類似部分抽出プロトコルの一例を示すシーケンス図である。以下ではユーザA端末100とユーザB端末200との間でそれぞれが保持するベクトル形式のデータに対して、距離として内積値を用いる場合に、ユーザA端末100及びユーザB端末200それぞれがデータを開示することなく、暗号化したまま内積値を計算する方法を例示する。ユーザA端末100が保持するデータがベクトルa=(a1,a2,…,an)、ユーザB端末200が保持するデータがベクトルb=(b1,b2,…,bn)であるとする。
図6は、類似部分抽出プロトコルの一例を示すシーケンス図である。以下ではユーザA端末100とユーザB端末200との間でそれぞれが保持するベクトル形式のデータに対して、距離として内積値を用いる場合に、ユーザA端末100及びユーザB端末200それぞれがデータを開示することなく、暗号化したまま内積値を計算する方法を例示する。ユーザA端末100が保持するデータがベクトルa=(a1,a2,…,an)、ユーザB端末200が保持するデータがベクトルb=(b1,b2,…,bn)であるとする。
ユーザA端末100の暗号化処理部111は、データの暗号化のための秘密鍵として異なる素数p,qを選び(S601)、暗号化の際にはベクトルs=(s1,s2,…,sn),t=(t1,t2,…,tn)をランダムに選び(S602)、C=a+s*p+t*q=(a1+s1*p+t1*q,a2+s2*p+t2*q,…,an+sn*p+tn*q)を計算してユーザB端末200に送信する(S603)。
ユーザB端末200の類似部分抽出部213は、Cとbとの内積I=(a1+s1*p+t1*q)*b1+(a2+s2*p+t2*q)*b2+…+(an+sn*p+tn*q)*bnを計算してユーザA端末100に返送する(S604)。
ユーザA端末100の復号化処理部112は、I’=(I mod q)mod pを計算して、I’をベクトルaとベクトルbの内積値として導出することで、内積値を復号する(S605)。類似部分抽出部114は、あらかじめ決めたしきい値との比較の大小などにより、bがaに近いベクトルか否かを判断することで、bのaとの距離を評価する(S606)。ここでI’がベクトルaとベクトルbの内積値になるためには、類似部分抽出部114は、p,qを十分大きく取り、またベクトルs、tも適切な大きさの要素の範囲でランダムに選択される必要がある。具体的には、例えば、pは、ベクトルaとベクトルbの内積の最大値(ベクトルaとベクトルbとが動く範囲が定められているとする)よりも大きい必要があり、qはpより大きい必要がある。また、例えば、ベクトルsとベクトルtの各要素が、ベクトルaとベクトルbの各要素の最大値より小さい必要がある。
ユーザAの類似部分抽出部114は、内積値の評価結果に応じて、ユーザB端末200が類似ベクトルを保持することを確認するだけで十分であれば類似部分抽出プロトコルを終了し、類似ベクトル及び類似ベクトルに対応する元データ情報が必要であれば、ユーザB端末200に元データの開示を依頼する(S607)。ユーザB端末200は、類似ベクトル及び類似ベクトルに対応する元データ情報が開示可能であればこれらの情報をユーザAに開示してもよい(S608)。ただし、この場合はユーザAのデータaの一部の情報がユーザBに漏洩する可能性があることに注意する。図6の類似部分抽出処理では、実行される暗号化処理、内積値算出処理、mod計算、及び復号化処理はいずれも計算量が少ないため、高速に類似部分を抽出することができる。
上記で例示した類似部分抽出プロトコルでは、ユーザB端末200が保持する内積値計算対象のベクトルの個数と同数の暗号化された内積値をユーザA端末100に送付する必要がある。絞込み処理を実行し、十分に個数を減らすことで通信量を抑えることができる。
上記では内積値計算が実行される例を説明したが、類似度として内積値の代わりにベクトル間のユークリッド距離が用いられてもよい。この場合、ユーザA端末100が保持するデータがベクトルa=(a1,a2,…,an)、ユーザB端末200が持つデータがベクトルb=(b1,b2,…,bn)であるとき、ユークリッド距離をd_Euc(a,b)、内積を< , >で表せば、d_Euc(a,b)=SQRT(<a,a>+<b,b>-2<a,b>)で与えられるため、上記内積値計算を用いて絞込み、個数を十分絞込んだ段階で上記秘匿内積値計算を実行し、ユーザB端末200は秘匿内積値と、自身のデータの内積値<b,b>(複数のデータがある場合は複数の内積値)をユーザA端末100に返送すればよい。ユーザA端末100は暗号化された内積値を復号し、<a,b>を得た後、上記式によるユークリッド距離を計算して類似度を評価する。
また、類似度としてコサイン距離(コサイン類似度)が用いられてもよい。この場合、コサイン距離d_cos(a,b)はd_cos(a,b)=<a,b>/(SQRT(<a,a>)*SQRT(<b,b>))で与えられるため、上記したユークリッド距離が用いられる場合と同様に、内積値計算を用いた絞込みと秘匿内積計算プロトコル、及びユーザB端末200が保有するベクトルの内積値<b,b>(複数ある場合は複数)を用いたコサイン距離の評価が実行されればよい。
また、類似度としてハミング距離が用いられてもよく、この場合、ハミング距離は要素を整数とみなせばベクトルの内積で与えられるため、上記の内積値での類似度評価方法を用いればよい。
<ユースケース>
以下、秘匿類似部分抽出システムのユースケースを説明する。
以下、秘匿類似部分抽出システムのユースケースを説明する。
(分散SOC(Security Operation Cneter))
分散SOC(Security Operation Cneter)では、複数の組織間で情報セキュリティ上の脅威情報などの情報共有を行う。例えば、組織外からの不審なアクセスや、メール着信などについて、他の組織でも同様の現象が発生しているかなどを相互に情報交換するケースがある。
分散SOC(Security Operation Cneter)では、複数の組織間で情報セキュリティ上の脅威情報などの情報共有を行う。例えば、組織外からの不審なアクセスや、メール着信などについて、他の組織でも同様の現象が発生しているかなどを相互に情報交換するケースがある。
アクセスや同様のメール着信があった場合にはその他組織がその現象をどのように分析しているかなどについて情報交換を行う。しかし、他組織にはそのようなメールが着信していない場合もあり、その際、着信したメールの内容や、発信元のアドレスなどは伏せておきたい。
このような場合、本実施例に記載の秘匿類似部分抽出システムを用いて類似情報の検索や、類似情報に関する情報交換が行われるとよい。分散SOCのグループに参加している各組織は、ユーザA端末100及びユーザB端末200を準備する。また、当該各組織は対象データの特徴を表すベクトルに変換するための方法も共有しているとする。
組織が、メールなどにおいて一部内容が異なるが大部分は一致しているような、類似の情報を検索したい場合は、当該組織が保有するユーザA端末100は、当該メールを、特徴を表すベクトルデータに変換し、他組織が保有するユーザB端末200は、着信している大量のメールをそれぞれベクトルデータに予め変換しておく。ユーザA端末100及びユーザB端末200は、当該大量のメールのベクトルデータから、上記した方法により、効率的に類似情報を絞込み、絞込みを行ったものの中からより正確な類似部分抽出プロトコルを実行すればよい。
メールを、その特徴を表すベクトルに変換する方法の一例として、メールの本文やタイトルに記述されている単語を抽出し、その単語が表す意味の分類(事前に準備し、組織間で共有している辞書などを用いて分類)と、当該単語が出現する頻度と、に基づいて、ベクトル化するなどの方法がある。
(類似画像及び図面検索)
ある組織が保有する機密画像データに類似する機密画像データが、他組織が持つ多数の機密画像データの中にあるかを調べるケースを考える。機密画像データとしては、製品の図面や、個人を識別可能な顔写真などがある。画像の特徴を抽出してベクトル化する方法をこれらの組織間で共有しているとする。このようなベクトル化方法としては機械学習、特にCNN(convolutional neural network)を応用したものなどがある。
ある組織が保有する機密画像データに類似する機密画像データが、他組織が持つ多数の機密画像データの中にあるかを調べるケースを考える。機密画像データとしては、製品の図面や、個人を識別可能な顔写真などがある。画像の特徴を抽出してベクトル化する方法をこれらの組織間で共有しているとする。このようなベクトル化方法としては機械学習、特にCNN(convolutional neural network)を応用したものなどがある。
ある組織はユーザA端末100を保有し、ユーザA端末100は保有する画像データの特徴を表すベクトルを生成し、他組織はユーザB端末200を保有し、ユーザB端末200は保有する機密画像データの特徴を表すベクトルを生成しておく。ユーザA端末100及びユーザB端末200は、本実施例による秘匿類似部分抽出処理を実行することにより、他組織が持つ多数の機密画像データの中から、絞込みを行ってから、当該ある組織のユーザA端末100が保持する機密画像データに類似している画像データを効率的に抽出することができる。
(ユーザ行動履歴検索(購買及び移動))
ある組織が保有する顧客の行動を記録した機密データに類似する機密データが、他組織が持つ多数の顧客行動履歴データの中にあるかを調べるケースを考える。顧客の行動履歴として、顧客の購買履歴や移動履歴及び問い合わせ履歴などがる。これらの行動履歴を示すデータがすでにベクトル化された情報ならば、そのまま本実施例で説明した方法で類似データの抽出を実施すればよい。
ある組織が保有する顧客の行動を記録した機密データに類似する機密データが、他組織が持つ多数の顧客行動履歴データの中にあるかを調べるケースを考える。顧客の行動履歴として、顧客の購買履歴や移動履歴及び問い合わせ履歴などがる。これらの行動履歴を示すデータがすでにベクトル化された情報ならば、そのまま本実施例で説明した方法で類似データの抽出を実施すればよい。
位置及び移動履歴情報などにおいて場所の座標情報を単位時間ごとに抽出してベクトル化する方法などがある。また、問い合わせ履歴などテキストデータとして保管されているような非構造化データは前述のメールをベクトルデータに変換する方法で特徴を表すベクトルに変換する方法などが考えられる。
このような特徴を抽出してベクトル化する方法をこれらの組織間で共有しているとする。ある組織はユーザA端末100を保有し、ユーザA端末100は保有するデータの特徴を表すベクトルを生成し、他組織はユーザB端末200を保有し、ユーザB端末200は、保有する機密データの特徴を表すベクトルを生成しておく。ユーザA端末100及びユーザB端末200は、本実施例による秘匿類似部分抽出処理により他組織が持つ多数の機密データの中から、絞込みを行ってから、当該ある組織のユーザA端末100が保持する機密データに類似するデータを効率的に抽出することができる。
(金融商品売買(不正検知))
証券会社などの金融関係企業が自身の顧客の取引情報をもとに不正行為の有無などを分析するケースや、同業他社などで同様の取引行動をとっている顧客の有無やこのような顧客が存在する場合にその顧客の取引が不審であるか否かをその同業他社が認知しているかなどの情報交換をするケースを考える。
証券会社などの金融関係企業が自身の顧客の取引情報をもとに不正行為の有無などを分析するケースや、同業他社などで同様の取引行動をとっている顧客の有無やこのような顧客が存在する場合にその顧客の取引が不審であるか否かをその同業他社が認知しているかなどの情報交換をするケースを考える。
不審と思われる取引行動と同様の行動をとっている顧客がいなかった場合、当該金融関係企業は保有している情報を同業他社には開示したくない。また同業他社も類似している情報以外は開示したくない。このような状況に置いて、顧客の取引行動の特徴をベクトル化すれば本実施例で説明した方法で類似データを抽出することができる。
当該金融関係企業が不審と考える取引行動の特徴として、例えば連続した取引の間の時間や金額などが挙げられるが、それらを情報交換する相手との間であらかじめ形式を決めたベクトルとして表現し、本実施例による方法により、類似行動の抽出を実行すればよい。顧客の取引行動の履歴は膨大な件数にのぼるため、本実施例による効率的な方法が有効である。
<システム構成>
図7は、複数ユーザ間秘匿類似部分計算システムの構成例を示すブロック図である。複数ユーザ間秘匿類似部分計算システムは、複数のユーザ端末と、センターサーバ間でネットワーク1000を通じて通信を行い、ユーザ端末の持つデータの類似部分を計算するシステム構成例を示す図である。
図7は、複数ユーザ間秘匿類似部分計算システムの構成例を示すブロック図である。複数ユーザ間秘匿類似部分計算システムは、複数のユーザ端末と、センターサーバ間でネットワーク1000を通じて通信を行い、ユーザ端末の持つデータの類似部分を計算するシステム構成例を示す図である。
複数ユーザ間秘匿類似部分計算システムは、センターサーバ400(第1端末の一例)と、ユーザA端末100(第4端末の一例)と、ユーザB端末200(第2端末の一例)と、ユーザC端末300(第3端末の一例)と、を含み、これらの装置がインターネット等のネットワーク1000を介して互いに接続されている。なお、各ユーザ端末は、センターサーバ400と通信可能であるが、各ユーザ端末間の通信は不可能であってもよい。図7では、複数ユーザ間秘匿類似部分計算システムが3つのユーザ端末を含む例を説明しているが、複数ユーザ間秘匿類似部分計算システムが4つ以上のユーザ端末を含んでもよい。
センターサーバ400は、実施例1の図2に示すユーザA端末100と同様の構成である。また、実施例2に係るユーザA端末100及びユーザB端末200は、それぞれ実施例1の図2に示すユーザA端末100及び図3に示すユーザB端末200と同様の構成である。また、ユーザC端末300は、実施例1の図3に示すユーザB端末200と同様の構成である。
<秘匿類似データ抽出処理>
図8は、秘匿類似データ抽出処理の一例を示すシーケンス図である。ユーザA端末100は自身が保持するデータが、ユーザB端末200とユーザC端末300の持つデータと類似部分があるか否かを、センターサーバ400を通じて計算する。
図8は、秘匿類似データ抽出処理の一例を示すシーケンス図である。ユーザA端末100は自身が保持するデータが、ユーザB端末200とユーザC端末300の持つデータと類似部分があるか否かを、センターサーバ400を通じて計算する。
まず、ユーザA端末100は、類似部分を導出したいデータaを実施例1と同様の方法で、ベクトルに変換し、変換したベクトルをセンターサーバ400に送信する(S801)。センターサーバ400はユーザA端末100から送付されたベクトルを、自身が保持するベクトルとみなし、ユーザB端末200との間で、実施例1で示した方法によりユーザB端末200が持つデータ(ベクトル)との類似部分抽出プロトコルを実行する(S802、S803)。なお、類似部分抽出プロトコルが実行される前に、センターサーバ400とユーザB端末200との間で、ステップS501~ステップS504の絞込み処理が実行されてもよい。
センターサーバ400はステップS802及びステップS803で抽出した類似部分を、自身が保持するデータとみなし、ユーザC端末300との間で、実施例1で示した方法によりユーザC端末300が持つデータとの類似部分抽出プロトコルを実行する(S804、S805)。なお、類似部分抽出プロトコルが実行される前に、センターサーバ400とユーザC端末300との間で、ステップS501~ステップS504の絞込み処理が実行されてもよい。センターサーバ400は、ユーザA端末100、ユーザB端末200、及びユーザC端末300のいずれか又は全てに類似部分を送信して、情報を共有してもよい。
なお、本発明は上記した実施例に限定されるものではなく、様々な変形例が含まれる。例えば、上記した実施例は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、ある実施例の構成の一部を他の実施例の構成に置き換えることも可能であり、また、ある実施例の構成に他の実施例の構成を加えることも可能である。また、各実施例の構成の一部について、他の構成の追加・削除・置換をすることが可能である。
また、上記の各構成、機能、処理部、処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。また、上記の各構成、機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することによりソフトウェアで実現してもよい。各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリや、ハードディスク、SSD(Solid State Drive)等の記録装置、または、ICカード、SDカード、DVD等の記録媒体に置くことができる。
また、制御線や情報線は説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線や情報線を示しているとは限らない。実際には殆ど全ての構成が相互に接続されていると考えてもよい。
100 ユーザA端末、 101 入力装置、102 出力装置、103 通信装置、104 メモリ、110 CPU、111 暗号化処理部、112 復号化処理部、113 ダミーデータ生成部、114 類似部分抽出部、120 補助記憶装置、130 データ記憶領域、131 データ、140 暗復号化鍵記憶領域、141 暗号化鍵、142 復号化鍵、200 ユーザB端末、201 入力装置、202 出力装置、203 通信装置、204 メモリ、210 制御装置、211 距離値計算部、212 データ抽出部、213 類似部分抽出部、220 補助記憶装置、231 データ、300 ユーザC端末
Claims (10)
- 第1端末と第2端末とを含む情報処理システムであって、
前記第1端末は、第1ベクトル、ダミーベクトル、及び秘密鍵を保持し、
前記第2端末は、複数のベクトルを保持し、
前記第1端末及び前記第2端末は絞込み処理を実行し、
前記絞込み処理において、
前記第1端末は、前記ダミーベクトルに基づき、かつ前記第1ベクトルを含む領域を決定し、前記決定した領域を示す情報を、前記第2端末に送信し、
前記第2端末は、前記複数のベクトルのうち前記領域に含まれるベクトルを特定し、
前記第1端末及び前記第2端末は、類似部分抽出処理を実行し、
前記類似部分抽出処理において、
前記第1端末は、前記秘密鍵を用いて前記第1ベクトルを暗号化し、
前記第1端末及び前記第2端末は、前記特定したベクトルのうち、前記第1ベクトルとの類似度が所定の第1しきい値より高いベクトルを、前記第1ベクトルを復号化することなく、抽出する、情報処理システム。 - 請求項1に記載の情報処理システムであって、
前記絞込み処理において、
前記第2端末は、前記特定したベクトルの個数を前記第1端末に送信し、
前記第1端末が、前記特定したベクトルの個数が所定の第2しきい値以下であるかの判定処理を実行し、
前記第1端末が、前記判定処理において、前記特定したベクトルの個数が所定の第2しきい値以下であると判定した場合、前記絞込み処理が終了して、前記類似部分抽出処理が実行され、
前記第1端末が、前記判定処理において、前記特定したベクトルの個数が前記第2しきい値より大きいと判定した場合、前記絞込み処理が再度実行され、
前記第1端末は、前回の絞込み処理で決定された領域を、前記ダミーベクトルに基づき、前記第1ベクトルを含み、かつ当該領域を縮小した領域に更新し、更新後の領域を示す情報を、前記第2端末に送信し、
前記第2端末は、前記複数のベクトルのうち前記更新後の領域に含まれるベクトルを特定して、前記第1端末に送信して、前記判定処理が実行される、情報処理システム。 - 請求項1に記載の情報処理システムであって、
前記類似部分抽出処理において、
前記第1端末は、前記暗号化した第1ベクトルを前記第2端末に送信し、
前記第2端末は、前記暗号化した第1ベクトルと、前記特定したベクトルそれぞれと、の暗号化類似度を算出して、前記第1端末に送信し、
前記第1端末は、前記秘密鍵を用いて、前記暗号化類似度それぞれを復号化することで、前記類似度を算出する、情報処理システム。 - 請求項3に記載の情報処理システムであって、
前記秘密鍵は、異なる素数p,qであり、
前記第1ベクトルはa=(a1,a2,…,an)、
前記特定したベクトルはb=(b1,b2,…,bn)であり、
前記類似部分抽出処理において、
前記第1端末は、
ベクトルs=(s1,s2,…,sn)、及びt=(t1,t2,…,tn)をランダムに選択し、
C=a+s*p+t*q=(a1+s1*p+t1*q, a2+s2*p+t2*q,…, an+sn*p+tn*q)を計算して、前記第2端末に送信し、
前記第2端末は、Cとbとの内積値I=(a1+s1*p+t1*q)*b1+(a2+s2*p+t2*q)*b2+…+(an+sn*p+tn*q)*bnを前記暗号化類似度として計算して、前記第1端末に送信し、
前記第1端末は、I’=(I mod q)mod pを計算することで、I’をベクトルaとベクトルbの前記類似度として算出する、情報処理システム。 - 請求項1に記載の情報処理システムであって、
第3端末と第4端末とを含み、
前記第3端末は、複数のベクトルを保持し、
前記第4端末は、前記第1ベクトルを保持し、
前記第1端末が保持する前記第1ベクトルは、前記第4端末から送信されたものであり、
前記第1端末は、前記第2端末との間で実行された前記類似部分抽出処理において抽出したベクトルを前記第1ベクトルとみなして、前記第3端末との間で、前記絞込み処理及び前記類似部分抽出処理を実行する、情報処理システム。 - 第1端末と第2端末とを含む情報処理システムによる情報処理方法であって、
前記第1端末は、第1ベクトル、ダミーベクトル、及び秘密鍵を保持し、
前記第2端末は、複数のベクトルを保持し、
前記情報処理方法は、
前記第1端末及び前記第2端末が、絞込み処理を実行し、
前記絞込み処理において、
前記第1端末が、前記ダミーベクトルに基づき、かつ前記第1ベクトルを含む領域を決定し、前記決定した領域を示す情報を、前記第2端末に送信し、
前記第2端末が、前記複数のベクトルのうち前記領域に含まれるベクトルを特定し、
前記第1端末及び前記第2端末が、類似部分抽出処理を実行し、
前記類似部分抽出処理において、
前記第1端末が、前記秘密鍵を用いて前記第1ベクトルを暗号化し、
前記第1端末及び前記第2端末が、前記特定したベクトルのうち、前記第1ベクトルとの類似度が所定の第1しきい値より高いベクトルを、前記第1ベクトルを復号化することなく、抽出する、情報処理方法。 - 請求項6に記載の情報処理方法であって、
前記絞込み処理において、
前記第2端末が、前記特定したベクトルの個数を前記第1端末に送信し、
前記第1端末が、前記特定したベクトルの個数が所定の第2しきい値以下であるかの判定処理を実行し、
前記第1端末が、前記判定処理において、前記特定したベクトルの個数が所定の第2しきい値以下であると判定した場合、前記絞込み処理が終了して、前記類似部分抽出処理が実行され、
前記第1端末が、前記判定処理において、前記特定したベクトルの個数が前記第2しきい値より大きいと判定した場合、前記絞込み処理が再度実行され、
前記第1端末が、前回の絞込み処理で決定された領域を、前記ダミーベクトルに基づき、前記第1ベクトルを含み、かつ当該領域を縮小した領域に更新し、更新後の領域を示す情報を、前記第2端末に送信し、
前記第2端末が、前記複数のベクトルのうち前記更新後の領域に含まれるベクトルを特定して、前記第1端末に送信して、前記判定処理が実行される、情報処理方法。 - 請求項6に記載の情報処理方法であって、
前記類似部分抽出処理において、
前記第1端末が、前記暗号化した第1ベクトルを前記第2端末に送信し、
前記第2端末が、前記暗号化した第1ベクトルと、前記特定したベクトルそれぞれと、の暗号化類似度を算出して、前記第1端末に送信し、
前記第1端末が、前記秘密鍵を用いて、前記暗号化類似度それぞれを復号化することで、前記類似度を算出する、情報処理方法。 - 請求項8に記載の情報処理方法であって、
前記秘密鍵は、異なる素数p,qであり、
前記第1ベクトルはa=(a1,a2,…,an)、
前記特定したベクトルはb=(b1,b2,…,bn)であり、
前記情報処理方法は、
前記類似部分抽出処理において、
前記第1端末が、ベクトルs=(s1,s2,…,sn)、及びt=(t1,t2,…,tn)をランダムに選択し、
前記第1端末が、C=a+s*p+t*q=(a1+s1*p+t1*q, a2+s2*p+t2*q,…, an+sn*p+tn*q)を計算して、前記第2端末に送信し、
前記第2端末が、Cとbとの内積値I=(a1+s1*p+t1*q)*b1+(a2+s2*p+t2*q)*b2+…+(an+sn*p+tn*q)*bnを前記暗号化類似度として計算して、前記第1端末に送信し、
前記第1端末が、I’=(I mod q)mod pを計算することで、I’をベクトルaとベクトルbの前記類似度として算出する、情報処理方法。 - 請求項6に記載の情報処理方法であって、
前記情報処理システムは、第3端末と第4端末とを含み、
前記第3端末は、複数のベクトルを保持し、
前記第4端末は、前記第1ベクトルを保持し、
前記第1端末が保持する前記第1ベクトルは、前記第4端末から送信されたものであり、
前記情報処理方法は、
前記第1端末が、前記第2端末との間で実行された前記類似部分抽出処理において抽出したベクトルを前記第1ベクトルとみなして、前記第3端末との間で、前記絞込み処理及び前記類似部分抽出処理を実行する、情報処理方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2021124147A JP2023019432A (ja) | 2021-07-29 | 2021-07-29 | 情報処理システム及び情報処理方法 |
PCT/JP2022/025580 WO2023008045A1 (ja) | 2021-07-29 | 2022-06-27 | 情報処理システム及び情報処理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2021124147A JP2023019432A (ja) | 2021-07-29 | 2021-07-29 | 情報処理システム及び情報処理方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2023019432A true JP2023019432A (ja) | 2023-02-09 |
Family
ID=85087857
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2021124147A Pending JP2023019432A (ja) | 2021-07-29 | 2021-07-29 | 情報処理システム及び情報処理方法 |
Country Status (2)
Country | Link |
---|---|
JP (1) | JP2023019432A (ja) |
WO (1) | WO2023008045A1 (ja) |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2013038698A1 (ja) * | 2011-09-14 | 2013-03-21 | 独立行政法人産業技術総合研究所 | 検索システム、検索方法、およびプログラム |
JP2016224400A (ja) * | 2015-05-29 | 2016-12-28 | パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカPanasonic Intellectual Property Corporation of America | 類似情報検索方法、端末装置及び類似情報検索システム |
JP6557338B2 (ja) * | 2015-06-16 | 2019-08-07 | 株式会社日立製作所 | 類似性秘匿検索システム、類似性秘匿検索方法 |
CN108140334B (zh) * | 2015-10-09 | 2021-03-23 | 三菱电机株式会社 | 隐匿检索系统、管理装置、隐匿检索方法和记录介质 |
-
2021
- 2021-07-29 JP JP2021124147A patent/JP2023019432A/ja active Pending
-
2022
- 2022-06-27 WO PCT/JP2022/025580 patent/WO2023008045A1/ja unknown
Also Published As
Publication number | Publication date |
---|---|
WO2023008045A1 (ja) | 2023-02-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11652608B2 (en) | System and method to protect sensitive information via distributed trust | |
US11032255B2 (en) | Secure comparison of information | |
US10547446B2 (en) | Method and apparatus for providing a universal deterministically reproducible cryptographic key-pair representation for all SKUs, shipping cartons, and items | |
Zhang et al. | Additively homomorphical encryption based deep neural network for asymmetrically collaborative machine learning | |
WO2013038698A1 (ja) | 検索システム、検索方法、およびプログラム | |
US11271718B2 (en) | Systems and methods for linking anonymized user activities while preserving strong privacy guarantees | |
US10248800B2 (en) | Secure comparison of information | |
Banegas et al. | Low-communication parallel quantum multi-target preimage search | |
George et al. | Data sharing made easy by technology trends: New data sharing and privacy preserving technologies that bring in a new era of data monetization | |
Grivet Sébert et al. | SPEED: secure, PrivatE, and efficient deep learning | |
US20170279786A1 (en) | Systems and methods to protect sensitive information in data exchange and aggregation | |
US20230006819A1 (en) | Systems and methods for homomorphic encryption-based triggering | |
WO2018008547A1 (ja) | 秘密計算システム、秘密計算装置、秘密計算方法、およびプログラム | |
US20120155641A1 (en) | Non-interactive verifiable, delegated computation | |
WO2023008045A1 (ja) | 情報処理システム及び情報処理方法 | |
WO2022089518A1 (zh) | 地址的生成方法、区块链信息的处理方法以及相关设备 | |
Petrenko et al. | Universal quantum gate as a tool for modeling quantum cryptanalysis algorithms on a quantum circuit | |
KR102123435B1 (ko) | 멀티 클라이언트 환경에서 동치 질의를 지원하는 암호화 방법 및 이를 이용한 장치 | |
Sumathi et al. | Scale-based secured sensitive data storage for banking services in cloud | |
Saxena et al. | Integration of back-propagation neural network to classify of cybercriminal entities in blockchain | |
Patil | Enhanced-elliptic curve Diffie Hellman algorithm for secure data storage in multi cloud environment | |
US20240005024A1 (en) | Order preserving dataset obfuscation | |
Maradithaya et al. | Secure model for clustering distributed data | |
Block | ii. Cloud Storage | |
US20230086508A1 (en) | Methods and systems for similarity searching encrypted data strings |