JP5816299B2 - Secret search method and secret search device - Google Patents
Secret search method and secret search device Download PDFInfo
- Publication number
- JP5816299B2 JP5816299B2 JP2013546927A JP2013546927A JP5816299B2 JP 5816299 B2 JP5816299 B2 JP 5816299B2 JP 2013546927 A JP2013546927 A JP 2013546927A JP 2013546927 A JP2013546927 A JP 2013546927A JP 5816299 B2 JP5816299 B2 JP 5816299B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- search
- client
- cluster
- unit
- 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.)
- Expired - Fee Related
Links
Images
Classifications
-
- 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/602—Providing cryptographic facilities or services
-
- 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/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3236—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
- H04L9/3239—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/901—Indexing; Data structures therefor; Storage structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/903—Querying
- G06F16/90335—Query processing
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Computer Security & Cryptography (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Computational Linguistics (AREA)
- Software Systems (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Description
本発明は、クラウドコンピューティングなどのクライアントサーバモデルにおいて、サーバに預託された暗号化データを復号せずに検索する「検索可能暗号」を用いた、秘匿検索システムに関する。 The present invention relates to a secret search system using a “searchable cipher” for searching without decrypting encrypted data deposited in a server in a client server model such as cloud computing.
クラウドコンピューティングの普及により、データベースサーバへの情報の預託が活発になってきてきる。その一方で、個人情報などといった機密情報の漏えいも大きな社会問題となってきている。 With the spread of cloud computing, the deposit of information to database servers has become active. On the other hand, leakage of confidential information such as personal information has become a major social problem.
情報漏えいを防止しつつ安全にデータベースサーバへ情報を預託するために、暗号化したまま預託データの検索を可能にする検索可能暗号技術が提案されている。検索可能暗号を用いることで、通信路上の第三者だけではなくデータベースサーバ管理者に対しても情報漏えいを防止することができる。 In order to safely deposit information to a database server while preventing information leakage, a searchable encryption technique that enables retrieval of deposit data while being encrypted has been proposed. By using searchable encryption, it is possible to prevent information leakage not only for third parties on the communication path but also for the database server administrator.
検索可能暗号技術としてさまざまな方法が提案されている。検索可能暗号を用いた検索は、一般に以下の手順で行われる。 Various methods have been proposed as searchable cryptographic techniques. A search using a searchable encryption is generally performed according to the following procedure.
(1)データを預託するクライアントにおいて、預託するデータ(以下、預託データとよぶ)の内容を表すインデックスを計算し、秘匿化する。ここで秘匿化とは、当該インデックスから預託データの内容を求めることが困難となるような検索可能暗号特有の処理をいう。以下、秘匿化されたインデックスを秘匿化インデックスという。 (1) In a client depositing data, an index representing the contents of the deposited data (hereinafter referred to as deposit data) is calculated and concealed. Here, concealment refers to a process unique to searchable encryption that makes it difficult to obtain the contents of deposit data from the index. Hereinafter, the concealed index is referred to as a concealed index.
(2)クライアントは、預託するデータを暗号化し(以下、暗号化データという)、秘匿化インデックスとともにデータベースサーバに送信する。 (2) The client encrypts data to be deposited (hereinafter referred to as encrypted data) and transmits it to the database server together with the concealment index.
(3)データベースサーバは、暗号化データと秘匿化インデックスのペアをデータベースに登録する。 (3) The database server registers a pair of encrypted data and a concealment index in the database.
(4)データを検索する検索クライアントにおいて、検索したいキーワード(検索クエリ)のトラップドア(trapdoor)を計算する。ここでトラップドアとは、検索用の情報であり、特に、検索クエリに含まれる検索用キーワードを秘匿化したものをいう。 (4) In a search client that searches for data, a trapdoor of a keyword (search query) to be searched is calculated. Here, the trap door is information for search, and in particular, it means that the search keyword included in the search query is concealed.
(5)検索クライアントは、トラップドアをデータベースサーバに送信する。 (5) The search client transmits the trap door to the database server.
(6)データベースサーバは、データベースに登録した秘匿化インデックスとトラップドアを検索可能暗号特有の手順で照合することで、検索クエリにヒットするデータを検索する。 (6) The database server searches the data hitting the search query by collating the concealment index registered in the database with the trapdoor in a procedure specific to searchable encryption.
(7)データベースサーバは、ヒットした秘匿化インデックスに対応する暗号化データなどを検索クライアントに送信する。 (7) The database server transmits encrypted data corresponding to the hit concealment index to the search client.
(8)検索クライアントは、受信した検索結果からデータを預託したクライアントを特定し、当該クライアントとの間で復号鍵を共有する。 (8) The search client specifies the client that has deposited the data from the received search result, and shares the decryption key with the client.
(9)検索クライアントは、共有した鍵を用いて、データベースサーバから受信した暗号化データを復号する。 (9) The search client decrypts the encrypted data received from the database server using the shared key.
預託データが暗号化されているので、データベースサーバ管理者が預託データを解読するのは実質不可能である。また、インデックスが秘匿化されているので、インデックスから預託データの内容を抽出するのは困難である。さらに、検索クエリがトラップドアに変換されているので、検索クエリが漏えいする可能性も低い。さらに、それぞれ異なる秘匿化インデックスが同じキーワードを含んでいるかどうかを判定するのも困難なので、単語の出現頻度から平文を推測する頻度分析などの不正攻撃を防止することができる。このように検索可能暗号技術を用いることで、通信路上の第三者だけではなくデータベースサーバ管理者などに対しても情報漏えいを事実上防止することができる。 Since the deposit data is encrypted, it is virtually impossible for the database server administrator to decrypt the deposit data. Moreover, since the index is kept secret, it is difficult to extract the contents of the deposit data from the index. Furthermore, since the search query is converted into a trapdoor, the possibility that the search query is leaked is low. Furthermore, since it is difficult to determine whether or not different concealment indexes include the same keyword, it is possible to prevent illegal attacks such as frequency analysis in which plaintext is estimated from the appearance frequency of words. By using the searchable encryption technology in this way, information leakage can be effectively prevented not only for third parties on the communication path but also for database server managers and the like.
検索可能暗号技術として、例えば非特許文献1や非特許文献2が知られている。これらの方式は、平文と暗号文が1対1の単純な対応関係を有する決定的暗号化方式よりも安全な、平文と暗号文が1対mの複雑な対応関係を有する確率的暗号化方式を採用している。頻度分析などの攻撃に対して比較的安全である。
For example, Non-Patent
また、非特許文献3、非特許文献4、および特許文献1も知られている。非特許文献3や非特許文献4記載の方式では、確率的なデータ構造の一つであるブルームフィルタを利用することで頻度分析などの攻撃にも耐性を持たせている。特許文献1記載の方法では、誤り訂正符号を用いて集合間のあいまい照合を実現する「Fuzzy Vault」を用いることで、頻度分析などの攻撃にも耐性を持たせている。
Non-Patent Document 3, Non-Patent Document 4, and
非特許文献1〜非特許文献4や特許文献1記載の技術は、いずれも、確率的暗号化や確率的データ構造、あいまい照合技術などを利用することで、頻度分析に対しても安全となるようにしている。具体例を挙げると、例えば「雲」というキーワードを含む複数のデータをデータベースサーバに預託する場合、預託データごとに対応する秘匿化インデックスは異なったものになる。さらに、秘匿化インデックス同士を比較しても、同じ「雲」というキーワードを含んでいると判定することは困難となっている。また、「雲」で検索したとしても、トラップドアから検索クエリ「雲」を推測することは困難である。よって検索クエリにヒットした事実を知ったとしても、秘匿化インデックスが「雲」を含んでいるかどうか、データベースサーバ管理者には事実上知られることはない。
All of the techniques described in
一般に、文字列検索においては、単語とその単語を含む文書の索引(転置インデックス)を備えることで、検索応答時間の短縮を図っている。このような索引がない場合、毎回検索クエリと預託データを総当りで照合する必要があり、検索応答が大幅に遅延することとなる。 Generally, in a character string search, a search response time is shortened by providing a word and an index (transposition index) of a document including the word. If there is no such index, it is necessary to collate the search query with the deposit data every time, and the search response is greatly delayed.
非特許文献1〜非特許文献4や特許文献1記載の技術では、頻度分析などの攻撃に耐性を持たせるために、秘匿化インデックスがどの単語を含んでいるかを判定することが困難な仕組みとなっている。つまり、転置インデックスなどの索引を構成することが事実上不可能である。よってこれらの従来技術では、検索クエリと秘匿化インデックスを毎回総当りで照合する必要があり、検索応答が大幅に遅延してしまう。本発明の目的は、検索可能暗号を用いた秘匿検索システムにおいては、検索の高速化を達成することにある。
In the technologies described in
上記の目的を達成するために本発明は、暗号化データや秘匿化インデックスだけではなく、預託データの特徴量もデータベースサーバに登録する手段を提供する。ここで特徴量とは、預託データの特徴をできるだけ損なわないようにデータ長を大幅に削減したもので、特徴量だけを用いて預託データの類似度を計算することができるが、特徴量から元のデータを推測することが困難なものとして定義される。特徴量として、例えば預託データ内の単語などから計算される特徴ベクトルや、預託データを分割してハッシュ値を求めて連結したファジィハッシュとよばれる量などが知られている。 In order to achieve the above object, the present invention provides a means for registering not only encrypted data and a concealment index but also a feature amount of deposit data in a database server. Here, the feature quantity is a data length that has been greatly reduced so as not to impair the characteristics of the deposit data as much as possible, and the similarity of the deposit data can be calculated using only the feature quantity. Is defined as difficult to guess. Known feature quantities include, for example, feature vectors calculated from words in depositary data, quantities called fuzzy hashes obtained by dividing depository data and obtaining hash values.
次に本発明は、暗号化データや秘匿化インデックスともに受信した特徴量を用いて、データベースサーバ側で特徴量に対応する預託データの類似度を計算し、類似した預託データが同じクラスタに含まれるように秘匿化インデックスなどをクラスタリングしておく手段を提供する。 Next, the present invention calculates the similarity of deposit data corresponding to the feature amount on the database server side using the feature amount received together with the encrypted data and the concealment index, and the similar deposit data is included in the same cluster. Thus, a means for clustering the concealment index is provided.
さらに本発明は、秘匿検索処理において、まず各クラスタにおいて秘匿化インデックスの代表(以下ピボットと呼ぶ)を選択して、ピボットとトラップドア(検索クエリに含まれる検索キーワードを秘匿化したもの)の照合を行い、ピボットがトラップドアにヒットした場合、当該ピボットが属するクラスタに含まれる全登録データについてトラップドアとの照合の優先順位を上げ、ピボットがトラップドアにヒットしなかった場合、当該ピボットが属するクラスタに含まれる全登録データについて照合の優先順位を下げる手段を提供する。照合対象の優先順位を定めた後全登録データについて照合を順次行い、一定回数で照合を打ち切ることで、安全性や検索精度の低下を抑えつつ秘匿検索処理の高速化を実現する。 Further, according to the present invention, in the secret search process, first, a representative of the concealment index (hereinafter referred to as a pivot) is selected in each cluster, and the pivot and the trap door (the concealment of the search keyword included in the search query) are collated. If the pivot hits the trap door, the priority of collation with the trap door is raised for all registered data included in the cluster to which the pivot belongs, and if the pivot does not hit the trap door, the pivot belongs A means for lowering the priority of collation for all registered data included in a cluster is provided. After the priority order of the verification target is determined, the verification is sequentially performed for all registered data, and the verification is terminated at a fixed number of times, thereby realizing a high-speed secure search process while suppressing a decrease in safety and search accuracy.
データベースサーバに預託された暗号化データを復号せずに検索する秘匿検索システムにおいて、元のデータを推測しにくい特徴量を用いて秘匿化インデックスをクラスタリングしておくことで、安全性や検索精度の低下を抑えつつ、秘匿検索を高速化することができる。 In a secure search system that searches encrypted data entrusted to a database server without decryption, clustering the secure index using features that are difficult to guess the original data can improve safety and search accuracy. It is possible to speed up the confidential search while suppressing the decrease.
以下、本発明の実施の形態を図面に基づいて詳細に説明する。 Hereinafter, embodiments of the present invention will be described in detail with reference to the drawings.
(システム構成)
図1は、本発明の実施の形態である秘匿検索処理システムの概略図である。図示するように検索処理システムは、n個の登録クライアント20−1〜20−n、m個の検索クライアント30−1〜30−mおよびデータベースサーバ40を備え、これらがネットワーク10を介して相互に情報を送受信できるよう設計されている。ここでn及びmは1以上の整数をとり、nとmは異なっていてもよい。登録クライアント20−1〜20−nはすべて同じ構成をとる。以下、任意の一つを登録クライアント20と呼ぶ。同様に、検索クライアント30−1〜30−mはすべて同じ構成をとる。以下、任意の一つを検索クライアント30と呼ぶ。(System configuration)
FIG. 1 is a schematic diagram of a confidential search processing system according to an embodiment of the present invention. As shown in the figure, the search processing system includes n registration clients 20-1 to 20-n, m search clients 30-1 to 30-m, and a
本実施形態における登録クライアント20は、暗号化した預託データなどをデータベースサーバ40に送信するデータ登録用の送受信装置として機能する。検索クライアント30は、秘匿化した検索クエリをデータベースサーバ40に送信して検索結果を受信する、検索用の送受信装置として機能する。データベースサーバ40は、暗号化した預託データなどをデータベースに登録し、かつデータベース内のデータを検索する秘匿検索装置として機能する。
The
(登録クライアント)
図2は登録クライアント20の概略構成を例示する図である。図示するように登録クライアント20は、CPU212、メモリ214、記憶装置216、鍵生成部218、登録部220、ユーザインターフェース230および通信インターフェース232を備え、これらが内部バス200を介して相互に情報を送受信できるように設計されている。登録部220は、暗号化部222、秘匿化インデックス生成部224、特徴量算出部226および設定部228を備える。これらの装置はハブ200を介して、単体でCPU212などと相互に情報を送受信することができる。(Registered client)
FIG. 2 is a diagram illustrating a schematic configuration of the
まず汎用的な構成要素について説明する。CPU212は、様々な数値計算や情報処理、機器制御などを行う中央処理装置である。メモリ214は、CPU212が直接読み書きできるRAMやROMなどの半導体記憶装置である。記憶装置216は、コンピュータ内でデータやプログラムを記憶するハードディスクや磁気テープ、フラッシュメモリなどといった装置である。当該装置はデータベースサーバ40に預託するデータなどを格納する。
First, general-purpose components will be described. The
鍵生成部218は、データを暗号化もしくは復号化するための鍵などを生成し、さらに検索クライアント30と復号鍵を共有するための処理を行う装置である。復号鍵の共有については後で図7を用いて説明する。
The
ユーザインターフェース230は、ユーザに処理結果を出力し、かつユーザの指示を受け付けて登録クライアント20の各構成要素に反映させる、ディスプレイやマウス、キーボードなどといった装置である。通信インターフェース232は、登録クライアント20の各構成要素と検索クライアント30やデータベースサーバ40などの外部装置とのデータの送受信を制御するための装置である。
The user interface 230 is a device such as a display, a mouse, and a keyboard that outputs a processing result to the user, receives a user instruction, and reflects it on each component of the
本発明特有の構成要素は、登録部220およびこれを構成する暗号化部222、秘匿化インデックス生成部224、特徴量算出部226、設定部228である。これらのうち、従来の検索可能暗号技術にはない最も特徴的な構成要素は、特徴量算出部226である。まず登録部220の構成要素から説明する。
Constituent elements unique to the present invention are a
暗号化部222は、データベースサーバ40に預託するデータを記憶装置216から読み出して、鍵生成部218で生成した暗号鍵を用いて暗号化し、暗号化したデータを登録部220に通知し、またはメモリ214もしくは記憶装置216に一時的に出力する装置である。
The encryption unit 222 reads the data to be deposited with the
秘匿化インデックス生成部204は、データベースサーバ40に預託するデータを記憶装置216から読み出し、検索可能暗号特有のアルゴリズムで預託データの内容から秘匿化インデックスを生成し、生成した秘匿化インデックスを登録部220に通知し、またはメモリ214もしくは記憶装置216に一時的に出力する装置である。秘匿化インデックスの具体的な生成手順については、後で図5を用いて説明する。
The concealment index generation unit 204 reads data to be deposited in the
特徴量算出部206は、データベースサーバ40に預託するデータを記憶装置216から読み出し、所定のアルゴリズムで預託データの特徴量を算出し、算出した特徴量を登録部220に通知し、またはメモリ214もしくは記憶装置216に一時的に出力する装置である。特徴量の具体的な算出手順については後で図5を用いて説明する。
The feature amount calculation unit 206 reads data to be deposited in the
設定部228は、暗号化、秘匿化インデックス生成、特徴量算出などの処理に必要なパラメータを設定するための装置である。当該パラメータはユーザインターフェース230を介してユーザによって設定され、登録部220、暗号化部222、秘匿化インデックス生成部224、特徴量算出部226に反映される。
The
そして登録部220は、ユーザインターフェース230を介してデータベースサーバ40への登録指示をユーザから受け取り、指示された記憶装置216の格納データに対して、暗号化部222、秘匿化インデックス生成部224および特徴量算出部226を制御して、暗号化データ、秘匿化インデックスおよび特徴量の組に含まれるそれぞれを計算して、計算したそれぞれを含む組を、通信インターフェース232を介してデータベースサーバ40に送信する装置である。データ登録処理の詳細については後で図5を用いて説明する。
Then, the
なお、鍵生成部218、登録部220およびこれを構成する暗号化部222、秘匿化インデックス生成部224、特徴量算出部226、設定部228については、それぞれの装置が単体で処理を実行してもよいし、それぞれの装置はプログラムのみを具備し、CPU212が当該プログラムをメモリ214に読み込んで実行してもよい。
The
(検索クライアント)
図3は検索クライアント30の概略構成を例示する図である。図示するように検索クライアント30は、CPU312、メモリ314、記憶装置316、検索部320、ユーザインターフェース330および通信インターフェース332を備え、これらが内部バス300を介して相互に情報を送受信できるように設計されている。また、検索部320は、トラップドア生成部322、鍵共有部324、復号化部326および設定部328を備える。これらの装置は内部バス300を介して、単体でCPU312などと相互に情報を送受信することができる。「トラップドア」とは、検索用の情報であって、検索クエリに含まれる検索キーワードを秘匿化したものである。(Search client)
FIG. 3 is a diagram illustrating a schematic configuration of the
汎用的な構成要素であるCPU312、メモリ314、記憶装置316、ユーザインターフェース330および通信インターフェース332は、図2の説明と同様の機能を有する。本発明特有の構成要素は、検索部320およびこれを構成するトラップドア生成部322、鍵共有部324、復号化部326、設定部328となる。以下、CPU312など汎用的な構成要素の説明については割愛し、検索部320の構成要素から説明する。
The
トラップドア生成部322は、検索クエリを、ユーザインターフェース330を介してユーザから受け取り、検索可能暗号特有のアルゴリズムで検索クエリに含まれるキーワードを秘匿化することによってトラップドアを生成し、生成したトラップドアを検索部320に通知し、またはメモリ314もしくは記憶装置316に出力する装置である。トラップドアの具体的な生成手順については、後で図7を用いて説明する。
The trap door generation unit 322 receives a search query from the user via the user interface 330, generates a trap door by concealing a keyword included in the search query using an algorithm specific to searchable encryption, and generates the generated trap door. Is transmitted to the
鍵共有部324は、データベースサーバ40から検索クエリにヒットした暗号化データを受信した際、当該暗号化データの復号鍵を登録クライアント20と共有するための装置である。共有した復号鍵は、検索部320内に、またはメモリ314もしくは記憶装置316に一時的に保存される。具体的な鍵共有処理については、後で図7を用いて説明する。
The
復号化部326は、鍵共有部324が取得した復号鍵を用いてデータベースサーバ40から受信した暗号化データを復号して検索部320に通知し、またはメモリ314もしくは記憶装置316に一時的に出力する装置である。
The
設定部328は、トラップドア生成、鍵共有、復号化などの処理に必要なパラメータを設定するための装置である。当該パラメータはユーザインターフェース330を介してユーザによって設定され、検索部320、トラップドア生成部322、鍵共有部324、復号化部326に反映される。パラメータ設定の一例について、後で図11を用いて説明する。
The
そして検索部320は、ユーザインターフェース330を介してユーザから検索クエリを受けとり、トラップドア生成部322を制御して検索クエリからトラップドアを生成し、生成したトラップドアをデータベースサーバ40に送信し、データベースサーバ40から返信された暗号化データを鍵共有部324および復号化部326を制御して復号してメモリ314もしくは記憶装置316に出力し、またはユーザインターフェース330を介してユーザに提示する装置である。処理の詳細については後で図7を用いて説明する。
The
なお、検索部320およびこれを構成するトラップドア生成部322、鍵共有部324、復号化部326、設定部328については、それぞれの装置が単体で処理を実行してもよいし、それぞれの装置はプログラムのみを具備し、CPU312が当該プログラムをメモリ314に読み込んで実行してもよい。
Note that the
(データベースサーバ)
図4はデータベースサーバ40の概略構成を例示する図である。図示するようにデータベースサーバ40は、CPU412、メモリ414、記憶装置416、認証部418、登録部420、クラスタリング部430、検索部440、設定部450、ユーザインターフェース460および通信インターフェース462を備え、これらが内部バス400を介して相互に情報を送受信できるように設計されている。また、クラスタリング部430は類似度算出部432を備える。類似度算出部432は内部バス400を介して単体でCPU412などと相互に情報を送受信することができる。また、検索部440は優先順位算出部442および照合部444を備える。これらの装置も内部バス400を介して単体でCPU412などと相互に情報を送受信することができる。(Database server)
FIG. 4 is a diagram illustrating a schematic configuration of the
汎用的な構成要素であるCPU412、メモリ414、記憶装置416、ユーザインターフェース460および通信インターフェース462は、図2の説明と同様の機能を有するので説明を割愛する。
The
認証部418は、データベースサーバ40へのデータ登録や検索を許可するユーザのIDやパスワードを管理する装置である。詳細については後で図5を用いて説明する。
The
本発明特有の構成要素は、登録部420、クラスタリング部430、これを構成する類似度算出部432、検索部440およびこれを構成する優先順位算出部442、照合部444、ならびに設定部450である。
Constituent elements unique to the present invention are a
登録部420は、登録クライアント20から暗号化データ、秘匿化インデックスおよび特徴量の組を受信したとき、この組を記憶装置416に登録する装置である。以下、この組のことを登録データと呼ぶ。具体的な登録内容については後で図6を用いて説明する。
The
クラスタリング部430は、記憶装置416に登録されている登録データをクラスタリングし、クラスタリング結果をメモリ414もしくは記憶装置416に一時的に出力する装置である。クラスタリングを行うには登録データ間の類似度を計算する必要があるが、この計算は類似度算出部432が登録データ中の特徴量を用いてクラスタリングを行う。具体的なクラスタリング処理については後で図5を用いて説明する。また、クラスタリング結果の具体例を図6であげる。
The
類似度算出部432は、クラスタリング部430からの要求に応じて2つの登録データの類似度を算出する装置である。類似度を算出する登録データは、クラスタリング部430が一時的にメモリ414もしくは記憶装置416に格納するか、類似度算出部432に直接通知する。算出した類似度は、メモリ414もしくは記憶装置416に一時的に出力されるか、クラスタリング部430に直接返される。具体的な類似度の計算手順については後で図5を用いて説明する。
The
検索部440は、検索クライアント30から検索クエリのトラップドアを受信し、検索クエリにヒットした暗号化データを、通信インターフェース442を介して検索クライアント30に返信する装置である。トラップドアを受信したとき検索部440は、まず優先順位算出部442を起動する。
The
優先順位算出部442は、クラスタリング部430の処理によるクラスタリング結果をもとに照合処理の優先順位を算出する装置である。各クラスタの秘匿インデックスを代表する秘匿インデックスであるピボットとトラップドアとを比較して、各クラスタの照合処理の優先順位を決める。算出した優先順位はメモリ414もしくは記憶装置416に一時的に出力されるか、検索部430に直接返される。具体的な優先順位算出手順については後で図8を用いて説明する。各クラスタのピボットは、クラスタリング部430又は優先順位算出部442で設定/決定される。
The priority
次に検索部440は照合部444を呼び出し、メモリ414もしくは記憶装置416に、または検索部430に格納されている優先順位に基づいて、優先度が高い順にトラップドアと秘匿化インデックスとの照合を行う。照合すべきトラップドアおよび秘匿化インデックスは、検索部440が一時的にメモリ414もしくは記憶装置416に格納するか、直接照合部444に渡す。照合部444は検索可能暗号特有のアルゴリズムによりトラップドアと秘匿化インデックスとの照合を行い、照合の結果をメモリ414もしくは記憶装置416に一時的に出力するか、検索部440に直接返す。具体的な照合手順については後で図9を用いて説明する。
Next, the
従来技術では全登録データについて総当りでトラップドアと照合する必要があったが、優先順位算出部442が特徴量を用いて登録データの照合処理の優先順位を設定し、検索部440が優先度の高い順でトラップドアと秘匿化インデックスとの照合を行い、一定回数で照合を打ち切ることで、検索応答時間の大幅な短縮を実現する。さらに、特徴量からは元の預託データの中身を推測することが困難なので、安全性の低下を抑えることができる。具体的な検索手順については、後で図7ないし図10を用いて説明する。In the prior art, it was necessary to collate with all trapped doors for all registered data. However, the
設定部450はクラスタリングや検索などの処理に必要なパラメータを設定するための装置である。当該パラメータはユーザインターフェース460を介してデータベースサーバ管理者によって設定され、登録部420、クラスタリング部430、類似度算出部432、検索部440、優先順位算出部442および照合部444に反映される。
The
なお、認証部418、登録部420、クラスタリング部430、類似度算出部432、検索部440、優先順位算出部442、照合部444および設定部450については、それぞれの装置が単体で処理を実行してもよいし、それぞれの装置はプログラムのみを具備し、CPU412が当該プログラムをメモリ414に読み込んで実行してもよい。
Note that, regarding the
(処理概要)
まず始めに、図12を用いて、本発明の秘匿検索方法の処理概要を説明する。(Outline of processing)
First, the processing outline of the secret search method of the present invention will be described with reference to FIG.
(1)登録クライアントは、預託データを暗号化した暗号化データや、預託データから抽出したインデックスを秘匿化した秘匿化インデックスだけではなく、預託データの特徴量もデータベースサーバに登録する(1201)。ここで特徴量とは、預託データの特徴をできるだけ損なわないようにデータ長を大幅に削減したもので、例えば預託データ内の単語などから計算される特徴ベクトルや、預託データを分割してハッシュ値を求めて連結したファジィハッシュとよばれる量などがある。 (1) The registration client registers not only the encrypted data obtained by encrypting the deposit data and the concealed index obtained by concealing the index extracted from the deposit data, but also the feature amount of the deposit data in the database server (1201). Here, the feature amount is a data length that is greatly reduced so as not to damage the characteristics of the deposit data as much as possible. For example, a feature vector calculated from words in the deposit data or a hash value obtained by dividing the deposit data. There is an amount called a fuzzy hash that is concatenated in search of.
(2)データベースサーバは、受信した特徴量を用いて、特徴量に対応する預託データの類似度を計算し、類似した預託データが同じクラスタに含まれるように秘匿化インデックスなどをクラスタリングする(1202)。 (2) The database server calculates the similarity of the deposit data corresponding to the feature amount using the received feature amount, and clusters the concealment index or the like so that the similar deposit data is included in the same cluster (1202). ).
(3)データベースサーバは、秘匿検索処理において、まず、各クラスタにおいて秘匿化インデックスの代表(ピボット)を選択し、このピボットと、検索クライアントで検索クエリに含まれる検索キーワードを秘匿化したトラップドアとの照合を行なうことにより、登録データ照合時のクラスタの優先順位を決定する(1203)。 (3) In the secret search process, the database server first selects a representative (pivot) of the concealment index in each cluster, and a trap door that conceals the search keyword included in the search query by the search client. The priorities of the clusters at the time of registered data verification are determined (1203).
(4)データベースサーバは、優先順位に基づいて、クラスタ単位に全登録データの照合を行い(1204)、検索結果を検索クライアントに出力する。 (4) The database server collates all registered data for each cluster based on the priority order (1204), and outputs the search result to the search client.
なお、優先順位決定の際に、ピボットがトラップドアにヒットした場合、当該ピボットが属するクラスタに含まれる全登録データについてトラップドアとの照合の優先順位を上げ、ピボットがトラップドアにヒットしなかった場合、当該ピボットが属するクラスタに含まれる全登録データについて照合の優先順位を下げる。さらに、秘匿検索処理を高速化するために、照合対象の優先順位を定めた後全登録データについて照合を順次行なう際に、一定回数で照合処理を打ち切る。 If the pivot hits the trap door at the time of priority determination, the priority of collation with the trap door is raised for all registered data included in the cluster to which the pivot belongs, and the pivot did not hit the trap door. In this case, the collation priority is lowered for all registered data included in the cluster to which the pivot belongs. Further, in order to speed up the confidential search process, the collation process is terminated at a fixed number of times when the collation is sequentially performed on all registered data after the priority order of collation targets is determined.
(データ登録処理)
図5は、登録クライアント20とデータベースサーバ40のデータ登録処理を例示するシーケンス図である。図5に基づいて当該データ登録処理を説明するとともに、図2の説明で述べた秘匿化インデックス生成手順、特徴量算出手順や、図4の説明で述べたクラスタリング処理、類似度算出手順についても、具体的な処理内容を例示する。(Data registration process)
FIG. 5 is a sequence diagram illustrating the data registration process of the
登録クライアント20によるデータベースサーバ40へのデータ登録は、大別すると、登録クライアント20が登録データを生成するデータ生成処理S50と、登録クライアント20とデータベースサーバ40との間でデータの授受を行うデータ送受信処理S52と、データベースサーバ40が登録データをクラスタリングするクラスタリング処理S54からなる。
The data registration to the
データ生成処理S50は以下の手順で進行する。 The data generation process S50 proceeds in the following procedure.
(S500)登録クライアント20のユーザは、ユーザインターフェース230を介してデータベースサーバ40に登録するデータを指定する。当該指定を受けて登録部220は、まず鍵生成部218を起動する。鍵生成部218は暗号鍵と復号鍵のペアを生成し、メモリ214または記憶装置216に格納する。暗号化部222は登録指示を受けたデータ(預託データ)に対して、鍵生成部218が生成した暗号鍵を用いて暗号化処理を施す。なお、生成した復号鍵は後で検索クライアント30からの要求により外部に送信される可能性があるため、記憶装置216または鍵生成部218自体が保持しておく。
(S500) The user of the
(S502)秘匿化インデックス生成部224は預託データの内容から秘匿化インデックスを生成する。非特許文献1に基づいて具体的な生成方法を例示すると以下のようになる。秘匿化インデックス生成の処理手順を図13に示す。
(S502) The concealment
(S502−1)預託データから照合対象となる単語(w1,w2,...)を抽出する。単語の抽出は、英語であれば空白で区切られた文字列を抽出することでなされる。日本語の場合は、預託データ内の文章を一定の長さの文字列に分解する方法(N−gram)や、形態素解析により単語の抽出を行うことができる。 (S502-1) Extract words (w1, w2,...) To be verified from the deposit data. Words are extracted by extracting character strings separated by spaces in the case of English. In the case of Japanese, words can be extracted by a method (N-gram) for decomposing a sentence in the deposit data into a character string of a certain length or by morphological analysis.
(S502−2)抽出した単語(w1,w2,...)それぞれについてハッシュ値(h1,h2,...)を計算する。各ハッシュ値のビット長をnとする。 (S502-2) A hash value (h1, h2,...) Is calculated for each extracted word (w1, w2,...). Let n be the bit length of each hash value.
(S502−3)各ハッシュ値hiに対してcビットの乱数列riを生成する(i=1,2,...)。各乱数列riについて所定の演算を行ってn−cビットのメッセージダイジェストdiを求める。ダイジェスト算出のための所定の演算は、例えば、上記のような単語からハッシュ値を計算する場合とは異なる別のハッシュ関数である。 (S502-3) A c-bit random number sequence ri is generated for each hash value hi (i = 1, 2,...). A predetermined calculation is performed on each random number sequence ri to obtain an nc-bit message digest di. The predetermined calculation for calculating the digest is, for example, another hash function different from the case of calculating the hash value from the word as described above.
(S502−4)乱数列riの末尾にメッセージダイジェストdiを連結して、長さnのビット列siを得る(i=1,2,...)。各ハッシュ値hiとビット列siとの排他的論理和が秘匿化インデックスHiとなる。 (S502-4) A message digest di is concatenated to the end of the random number sequence ri to obtain a bit sequence si of length n (i = 1, 2,...). The exclusive OR of each hash value hi and bit string si becomes the concealment index Hi.
ここで、図13を参照しながら、上記のステップS502−1〜4によって得られる秘匿化インデックスHiの表現について説明する。排他的論理和を「XOR」、2つのビット列の結合を「|」とすると、秘匿化インデックスHiは、hi(単語wiのハッシュ値)と(ri|di)(乱数列riとメッセージダイジェストdiからなるビット列si)を用いて、Hi=hi XOR(ri|di)と表される。但し、単語Wiのハッシュ値hi、乱数列ri、メッセージダイジェストdiは、それぞれ、ハッシュ関数h(Wi)=hi、乱数生成R(hi)=ri、所定演算f(ri)=diによって生成される。 Here, the expression of the concealment index Hi obtained by the above steps S502-1 to S502-1 will be described with reference to FIG. When the exclusive OR is “XOR” and the combination of two bit strings is “|”, the concealment index Hi is obtained from hi (hash value of word wi) and (ri | di) (random number sequence ri and message digest di). Hi = hi XOR (ri | di), using the bit string si). However, the hash value hi, the random number sequence ri, and the message digest di of the word Wi are generated by the hash function h (Wi) = hi, the random number generation R (hi) = ri, and the predetermined calculation f (ri) = di, respectively. .
単語そのものではなくハッシュ値を用いたり、乱数列との排他的論理和を取ったりしているため、秘匿化インデックスから預託データ内の単語を求めることは困難となる。詳細については非特許文献1参照のこと。こうして求めた秘匿化インデックスとトラップドアとの照合方法については、後の図8の説明で明らかにする。
Since a hash value is used instead of the word itself, or an exclusive OR is performed with a random number sequence, it is difficult to obtain a word in the deposit data from the concealment index. See
(S504)特徴量算出部226は預託データの内容から特徴量を算出する。特徴量として、例えば預託データの大きさなど、恣意的に変更することが難しく、かつ連続的な値を取るような属性情報を用いる方法がまずあげられる。預託データの大きさを特徴量とした場合、2つの預託データ間の類似度は、預託データの大きさをs1、s2とすると、1/(1+|s1−s2|)で近似することができる。この類似度は0から1までの値をとり、預託データが類似するほど1に近づく。
(S504) The feature
より洗練された特徴量として、預託データ内の単語からベクトル(特徴ベクトル)を生成する方法が知られている。特徴ベクトルは以下の手順で求められる。特徴ベクトル生成の処理手順を図15に示す。 As a more sophisticated feature value, a method of generating a vector (feature vector) from words in deposit data is known. The feature vector is obtained by the following procedure. The feature vector generation processing procedure is shown in FIG.
(S504−1)預託データから照合対象となる単語(w1,w2,...)を抽出する。 (S504-1) Extract words (w1, w2,...) To be verified from the deposit data.
(S504−2)抽出した単語列(w1,w2,...)それぞれについてハッシュ値(h1,h2,...)を計算する。各ハッシュ値のビット長をnとする。 (S504-2) A hash value (h1, h2,...) Is calculated for each extracted word string (w1, w2,...). Let n be the bit length of each hash value.
(S504−3)h1、h2、...の各ビットの論理和をとる。これをn次元のベクトルとみなして特徴ベクトルと呼ぶ。 (S504-3) h1, h2,. . . OR of each bit. This is regarded as an n-dimensional vector and is called a feature vector.
こうして算出した特徴ベクトルを用いれば、2つの預託データ間の類似度を特徴ベクトル内のともに1になるビットの個数で近似することができる。即ち、2つの預託データに対応するハッシュ値のそれぞれのビットに対して論理積(AND)を求めた結果に含まれるビット「1」の個数が類似度となる。特徴ベクトルの詳細については非特許文献5を参照のこと。 By using the feature vector calculated in this way, the similarity between two deposit data can be approximated by the number of bits that are both 1 in the feature vector. That is, the number of bits “1” included in the result of calculating the logical product (AND) for each bit of the hash values corresponding to the two deposit data is the similarity. See Non-Patent Document 5 for details of feature vectors.
また、単語の抽出などを行なわずに、計算可能な特徴量として「ファジィハッシュ」とよばれる量を用いて類似度を求めることができる。ファジィハッシュは以下の手順で算出される。 Further, the similarity can be obtained by using a quantity called “fuzzy hash” as a feature quantity that can be calculated without extracting a word or the like. The fuzzy hash is calculated by the following procedure.
(S504−a)預託データを分割する。固定長で分割するほか、特定のビット列が境界となるように分割する方法が知られている。 (S504-a) The deposit data is divided. In addition to dividing at a fixed length, a method of dividing so that a specific bit string becomes a boundary is known.
(S504−b)各分割データ(d1,d2,...)のハッシュ値(h1,h2,...)を計算する。 (S504-b) The hash value (h1, h2,...) Of each divided data (d1, d2,...) Is calculated.
(S504−c)ハッシュ値の配列(h1,h2,...)をファジィハッシュとして出力する。 (S504-c) The hash value array (h1, h2,...) Is output as a fuzzy hash.
当該預託データに対応するファジィハッシュH=(h1,h2,...)、他の預託データに対応するファジィハッシュF=(f1,f2,...)を用いると、2つの預託データ間の類似度を、(h1,h2,...)と(f1,f2,...)との積集合の要素数(HとFの双方に含まれているハッシュ値の数n)と、(h1,h2,...)と(f1,f2,...)の和集合の要素数(HとFの双方における要素の数の和Nからnを引いた数)との比n/(N−n)で近似することができる。なお、H及びFの要素の数をm1及びm2とすると、N=m1+m2、0=<n=<min(m1、m2)<Nである。 When the fuzzy hash H = (h1, h2,...) Corresponding to the deposit data and the fuzzy hash F = (f1, f2,...) Corresponding to other deposit data are used, the two deposit data are The similarity is expressed by the number of elements of the product set of (h1, h2,...) And (f1, f2,...) (The number n of hash values included in both H and F), and ( The ratio n / (h1, h2,...) and the number of elements in the union of (f1, f2,...) (the sum N of the numbers of elements in both H and F minus n) N−n). If the number of elements H and F is m1 and m2, N = m1 + m2, 0 = <n = <min (m1, m2) <N.
これまでさまざまなファジィハッシュ技術が提案されている。詳細については非特許文献6を参照のこと。 Various fuzzy hash techniques have been proposed so far. See Non-Patent Document 6 for details.
次にデータ送受信処理S52は、以下の手順で進行する。 Next, the data transmission / reception process S52 proceeds in the following procedure.
(S520)登録クライアント20とデータベースサーバ40との間でデータ授受のための通信路を確立する。具体的には、まず認証部418が、通信インターフェース232,462やユーザインターフェース230を介して登録クライアント20のユーザのID、及びパスワードなどでユーザの認証を行う。あらかじめ登録された正規のユーザと判断した場合、認証部418は登録クライアント20の登録部220とデータベースサーバ40の登録部420との間で通信路を確立する。この際、認証部418は登録クライアント20のIPアドレスなどの識別情報も収集して、記憶装置416に格納する。この識別情報は検索クライアント30と登録クライアント20との間で鍵共有をする場合に必要になる。詳細については後で図6及び図7を用いて説明する。なお、正規のユーザでないと判断した場合は、通信路を確立せず処理を終了する。
(S520) A communication path for data exchange is established between the
(S522)登録部220は通信インターフェース232を介して、登録データ(暗号化データ、秘匿化インデックス、及び特徴量の組)をデータベースサーバ40に送信する。
(S522) The
(S524)登録部420は通信インターフェース462を介して送信された登録データを受信し、記憶装置416に格納する。具体的な登録内容については後で図6を用いて説明する。
(S524) The
(S526)登録部420は通信インターフェース462を介して登録完了の旨を登録クライアント20の登録部220に通知する。
(S526) The
(S528)認証部418は、登録クライアント20の登録部220とデータベースサーバ40の登録部420との間で確立した通信路を開放する。
(S528) The
以上の手順により、登録クライアント20のユーザは、データベースサーバ40の管理者や通信路上の第三者に内容を事実上知られることなくデータベースサーバ40に自己のデータを預託できる。
Through the above procedure, the user of the
データの登録後データベースサーバ40は登録データのクラスタリング処理S54を行う。代表的なクラスタリング手法として、K平均法と階層的クラスタリングが知られている。まず、K平均法は以下の手順で行われる。特徴量の個数をNとする。
After the data registration, the
(S54−1)K個のクラスタの中心をランダムに設定する。あるいは、各クラスタに含まれる複数の秘匿化インデックスを所定の順に並べた時に、順序の中心の位置するものを当該クラスタの「中心」に設定する。 (S54-1) The centers of K clusters are set at random. Alternatively, when a plurality of concealment indexes included in each cluster are arranged in a predetermined order, the one at the center of the order is set as the “center” of the cluster.
(S54−2)各特徴量xi(i=1,2,...,N)についてK個の中心との類似度を計算して、最も類似する中心を求める。xiを当該中心が属するクラスタに割り振る。 (S54-2) For each feature quantity xi (i = 1, 2,..., N), the degree of similarity with K centers is calculated to find the most similar center. xi is assigned to the cluster to which the center belongs.
(S54−3)全ての特徴量についてクラスタへの割り振りが変化しなかった場合は処理を終了する。それ以外の場合は割り振った特徴量から各クラスタの中心を計算し直してから、ステップS54−2に戻る。 (S54-3) If the allocation to the cluster has not changed for all the feature values, the process is terminated. In other cases, the center of each cluster is recalculated from the assigned feature amount, and the process returns to step S54-2.
結果は最初のクラスタのランダムな設定に依存するが、計算量はnKのオーダなので比較的高速に動作するというメリットがある。詳細については非特許文献7を参照のこと。 Although the result depends on the random setting of the first cluster, since the calculation amount is on the order of nK, there is an advantage that the operation is relatively fast. See Non-Patent Document 7 for details.
なおK平均法では、同じクラスタに属している特徴量からクラスタの中心を求める必要がある。特徴量として預託データの大きさを用いた場合、あるクラスタには、そのクラスタに含まれるm個の預託データそれぞれの大きさである特徴量xk(k=1,...,m)が属しているとすると、その中心vは(x1+...+xm)/mで与えられる。 In the K-average method, it is necessary to obtain the center of the cluster from the feature quantities belonging to the same cluster. When the size of the deposit data is used as the feature amount, a feature amount xk (k = 1,..., M) that is the size of each of the m deposit data included in the cluster belongs to a certain cluster. The center v is given by (x1 +... + Xm) / m.
特徴量として特徴ベクトルを用いた場合、中心ベクトルvのi番目の要素をvi、m個の預託データからなるクラスタに含まれる預託データkの、n個の特徴量からなる特徴ベクトルxkのi番目の要素をxk,i(i=1,・・・・,n)とかくと、xk,iのk(k=1,...,m)個の預託データについての標準偏差uiと平均値<xi>との比(ui/<xi>)が、1/C(Cは2〜10程度の定数)よりも小さければ((ui/<xi>)=<(1/C)、即ち、(<xi>/ui)>=C)、多くのxk,iが平均値<xi>の近傍に集中しているので、n個の特徴量におけるi番目の特徴量がそのクラスタの特徴量として有効であることを意味しており、その場合はvi=1、それ以外の場合(i番目の特徴量がそのクラスタの特徴量として有効でない)はvi=0とし、1又は0であるviを要素とする中心ベクトルv=(v1,・・・・,vn)を求めることができる。即ち、中心ベクトルvは、n個の特徴量の中で、どの特徴量がそのクラスタの特徴量として有効であるかを示す特徴量ベクトルである。 When a feature vector is used as a feature amount, the i-th element of the center vector v is vi, and the i-th feature vector xk of n feature amounts of deposit data k included in a cluster of m deposit data Where xk, i (i = 1,..., N), the standard deviation ui and the average value of k (k = 1,..., M) deposit data of xk, i < If the ratio (ui / <xi>) to xi> is smaller than 1 / C (C is a constant of about 2 to 10) ((ui / <xi>) = <(1 / C), that is, ( <Xi> / ui)> = C), since many xk, i are concentrated in the vicinity of the average value <xi>, the i-th feature value of n feature values is effective as the feature value of the cluster In that case, vi = 1, otherwise (the i-th feature is the cluster Not effective as a feature) of the vi = 0, the center vector v = (v1 to the vi is 1 or 0 and elements, · · · ·, vn) can be obtained. That is, the center vector v is a feature quantity vector indicating which of the n feature quantities is effective as the feature quantity of the cluster.
また、上記の<xi>が正であれば、上記の判定式によって得られる、中心ベクトルの要素vi(1又は0)は、ガウスの記号[ ]を用いてvi=[pi]−[|pi−1|]と表される。但し、pi=(<xi>/(ui・C))である。 Also, if the above <xi> is positive, the element vi (1 or 0) of the center vector obtained by the above determination formula is expressed as vi = [pi] − [| pi using the Gaussian symbol []. -1 |]. However, pi = (<xi> / (ui · C)).
一方、特徴量としてファジィハッシュを用いた場合は、類似度の計算が特殊なので特徴量から中心を求めることは難しい。 On the other hand, when a fuzzy hash is used as a feature value, it is difficult to obtain the center from the feature value because the similarity calculation is special.
類似度さえ計算できればどのような特徴量でもクラスタリング可能な方法として階層的クラスタリングがある。これは以下の手順で行われる。 Hierarchical clustering is a method capable of clustering any feature amount as long as the similarity can be calculated. This is done in the following procedure.
(S54−a)1個の特徴量だけを含むN個のクラスタを生成する。 (S54-a) N clusters including only one feature amount are generated.
(S54−b)クラスタiとjのそれぞれの特徴量xiとxjの距離(非類似度)からクラスタ間の距離を計算し、最も距離の近い2つのクラスタを逐次的に1つのクラスタに併合する。 (S54-b) The distance between the clusters is calculated from the distance (dissimilarity) between the respective feature quantities xi and xj of the clusters i and j, and the two nearest clusters are sequentially merged into one cluster. .
(S54−c)この併合を全ての対象が1つのクラスタに併合されるまで繰り返す。 (S54-c) This merging is repeated until all objects are merged into one cluster.
階層的クラスタリングによる出力はデンドログラム(dendrogram、樹状図、系統樹)とよばれるツリー構造をとる。デンドログラムによりどのデータがどのクラスタに属するかということだけではなく、クラスタ内のデータ同士がどの程度離れているかということも求められる。なお、クラスタの併合を工夫することで、計算量のオーダをNの2乗にまで抑えられることが知られている。詳細については非特許文献8を参照のこと。 The output by hierarchical clustering takes a tree structure called a dendrogram (dendrogram, dendrogram). The dendrogram requires not only which data belongs to which cluster but also how far the data in the cluster are. It is known that the order of calculation amount can be suppressed to the square of N by devising the merging of clusters. See Non-Patent Document 8 for details.
以上まとめると、K平均法は高速に動作するが、特徴量から中心が定まる場合にのみ適用できる。階層的クラスタリングはK平均法より低速だが、類似度さえ計算できればどのようなデータでもクラスタリングできる。 In summary, the K-average method operates at high speed, but can be applied only when the center is determined from the feature amount. Hierarchical clustering is slower than the K-means method, but any data can be clustered as long as the similarity can be calculated.
図6はデータベースサーバが作成する登録データ格納位置管理テーブル60とクラスタ管理テーブル62のデータ構成を例示する図である。データベースサーバ40の登録部420は、登録クライアント20から暗号化データ、秘匿化インデックス、特徴量の組(登録データ)を受信すると、登録データ格納位置管理テーブル60を作成して記憶装置416に格納する。
FIG. 6 is a diagram illustrating a data configuration of the registered data storage location management table 60 and the cluster management table 62 created by the database server. When the
登録データ格納位置管理テーブル60は、登録データを一意に識別する登録データIDを格納する登録IDカラム600、受信した暗号化データの記憶装置416内の格納場所を記録する暗号化データカラム602、秘匿化インデックスの記憶装置416内の格納場所を記録する秘匿化インデックスカラム604、特徴量の記憶装置416内の格納場所を記録する特徴量カラム606、暗号化データ等を登録した登録クライアント20の識別情報を格納する登録クライアントカラム608およびその他必要な事項を格納するカラム608を備える。
The registration data storage location management table 60 includes a
登録部420は、登録データが追加される度に値を1ずつ増やすなどして、登録データを一意に識別できるように登録データIDを発行する。
The
暗号化データカラム602、秘匿化インデックスカラム604および特徴量カラム606に記録する情報として、暗号化データなどのファイル名や記憶装置416内のセクタアドレスなどがある。なお、特徴量は暗号化データなどと比較してデータ量が少ないため、直接特徴量カラム606に格納してもよい。
Information recorded in the
登録クライアントカラム608に格納すべき情報として、暗号化データ等を登録した登録クライアント20のIPアドレスがある。この情報は認証部418が図5のステップS520で取得しており、検索クライアント30と登録クライアント20の間で鍵共有をする場合に必要になる。鍵共有処理の詳細については後で図7を用いて説明する。
Information to be stored in the registered
さらに、カラム608に格納すべき情報として、例えばデータの登録日時がある。
Furthermore, as information to be stored in the
クラスタリング部430は特徴量を用いてクラスタリングした結果をクラスタ管理テーブル62に記録し、記憶装置416に格納する。そのクラスタ管理テーブル62は、クラスタを一意に識別するクラスタIDを格納するクラスタIDカラム620、クラスタに属する登録データの登録データID600を格納する登録データIDカラム622およびその他必要な事項を格納するカラム624からなる。カラム624に格納すべき情報として、例えばK平均法におけるクラスタの中心に関する情報をなどがある。
The
(秘匿検索処理の詳細)
以上、特徴量算出方法やクラスタリング方法、およびこれらを実現するための装置について説明してきた。これらの方法および装置は、秘匿検索の高速化のために必要な、いわば事前準備に相当する。以下、データベースサーバが行う秘匿検索処理の詳細について説明する。(Details of confidential search processing)
The feature amount calculation method and the clustering method, and the apparatus for realizing them have been described above. These methods and apparatuses correspond to preparations necessary for speeding up the secret search. Hereinafter, the details of the confidential search process performed by the database server will be described.
(検索クライアントとデータベースサーバの検索処理)
図7は検索クライアントとデータベースサーバの検索処理を例示するシーケンス図である。図7に基づいて当該データ登録処理を説明するとともに、図2、図3および図6の説明で述べた鍵共有手順や、図3の説明で述べたトラップドア生成手順についても具体的な処理を例示する。(Search processing of search client and database server)
FIG. 7 is a sequence diagram illustrating search processing of the search client and the database server. The data registration process will be described with reference to FIG. 7, and specific processing will be performed for the key sharing procedure described in the description of FIGS. 2, 3, and 6, and the trap door generation procedure described in the description of FIG. Illustrate.
検索クライアント30とデータベースサーバ40で行われる秘匿検索処理は、大別すると、検索クライアント20が検索クエリからトラップドアを生成するトラップドア生成処理S70と、検索クライアント20とデータベースサーバ40との間で検索処理を行う秘匿検索処理S72と、登録クライアント20と検索クライアント30との間で復号鍵を共有し、暗号データを復号する復号化処理S74からなる。
The secret search process performed by the
検索クライアント20の検索部320はトラップドア生成処理S70として、ユーザインターフェース330を介してユーザから検索クエリを受けとり、トラップドア生成部322を制御して検索クエリからトラップドアを生成する。非特許文献1に基づいて具体的なトラップドア生成処理S70を例示すると、以下のようになる。
As the trap door generation process S70, the
(S70−1)秘匿化インデックス生成処理(S502−2)で用いたハッシュ関数を準備する。 (S70-1) The hash function used in the concealment index generation process (S502-2) is prepared.
(S70−2)当該ハッシュ関数を用いて検索クエリ(検索キーワード)のハッシュ値を計算する(検索キーワードの秘匿化)。これがトラップドアとなる。 (S70-2) The hash value of the search query (search keyword) is calculated using the hash function (search keyword concealment). This is the trap door.
検索クエリのハッシュ値を用いるので、トラップドアから検索クエリを特定することは困難となる。こうして求めたトラップドアと秘匿化インデックスとの照合方法については、後の図9の説明で明らかにする。 Since the hash value of the search query is used, it is difficult to specify the search query from the trapdoor. A method for collating the trap door and the concealment index thus obtained will be clarified in the description of FIG.
秘匿検索処理S72は以下の手順で進行する。 The secret search process S72 proceeds in the following procedure.
(S720)検索クライアント30とデータベースサーバ40との間でデータ授受のための通信路を確立する。具体的には、まず認証部418が通信インターフェース332,462やユーザインターフェース330を介して検索クライアント30のユーザとのID、及びパスワードなどでユーザの認証を行う。あらかじめ登録された正規のユーザと判断した場合、認証部418は、検索クライアント30の検索部320とデータベースサーバ40の検索部440との間で通信路を確立する。正規のユーザでないと判断した場合は通信路を確立せず、処理を終了する。
(S720) A communication path for data exchange is established between the
(S722)検索部320は通信インターフェース332を介してトラップドアをデータベースサーバ40に送信する。データベースサーバ40の検索部440は通信インターフェース462を介して当該トラップドアを受信する。
(S722) The
(S724)検索部440の優先順位算出部442は、受信したトラップドアと記憶装置416に格納されている秘匿化インデックスの一部と照合を行うことで照合の優先順位を算出する。具体的な優先順位算出手順については次の図8を用いて説明する。
(S724) The
(S726)検索部440はステップS724で求めた優先順位をもとに照合部444を制御して、優先度が高い順にトラップドアと秘匿化インデックスの照合処理を行う。具体的な照合手順については後で図9を用いて説明する。
(S726) The
(S728)検索部440は、ヒットした暗号化データを検索部320に返信する。併せて、登録データ格納位置管理テーブル60の登録クライアントカラム608に格納されている登録クライアント20のIPアドレスも返信する。後の復号化処理S74で検索クライアント30が復号鍵を入手するために必要となるためである。
(S728) The
(S730)認証部418は、検索部320と検索部440との間で確立した通信路を開放する。
(S730) The
次に復号化処理S74について説明する。検索結果として入手した暗号化データを復号するためには、登録クライアント20から復号鍵を共有しなければならない。鍵共有の方法として、SSL(Secure Sockets Layer)で利用されている公開鍵暗号を用いる鍵共有法や、IPSec(Security Architecture for Internet Protocol)で利用されているDH(Diffie-Hellman)鍵共有法が知られている。ここでは公開鍵暗号を用いる鍵共有法について具体的手順を説明する。
Next, the decoding process S74 will be described. In order to decrypt the encrypted data obtained as a search result, the decryption key must be shared from the
(S740)鍵共有部324はデータベースサーバ40から受信した検索結果から、暗号化データ等を登録した登録クライアント20の、IPアドレスなどといった識別情報を取り出す。登録クライアント20は当該暗号化データの復号鍵を所有している。復号鍵を共有する前に、まずは検索クライアント30がなりすましなどをしていない正規のクライアントであることを証明しなければならない。鍵共有部324は以下の手順で登録クライアント20の認証を行う。
(S740) The
(S740−1)鍵共有部324は登録クライアント20のIPアドレスをもとに通信インターフェース332を介して登録クライアント20に接続する。
(S740-1) The
(S740−2)登録クライアント20の鍵生成部218は、通信インターフェース232を介して検索クライアント30の鍵共有部324に証明書を要求する。ここで証明書とは、信頼できる第三者(CA:Certificate Authority、認証局)が検索クライアント30の公開鍵に電子署名を施したものである。
(S740-2) The
(S740−3)鍵共有部324は当該証明書を登録クライアント20へ送付する。
(S740-3) The
(S740−4)鍵生成部218は当該証明書の署名を検証し、検索クライアント30の公開鍵を取得する。署名の検証に失敗した場合は、証明書が不正であるとして通信路を切断して処理を終了する。
(S740-4) The
(S740−5)鍵共有部324はメッセージを生成してメッセージダイジェストを付加し、鍵共有部324の持つ秘密鍵で暗号化して、鍵生成部218へ送信する。
(S740-5) The
(S740−6)鍵生成部218は、鍵共有部324の公開鍵を使ってメッセージを解読する。解読したメッセージからメッセージダイジェストを作成し、鍵共有部324が付加したメッセージダイジェストと比較する。双方のメッセージダイジェストの一致が確認されれば正規の検索クライアント30から改ざんされていないメッセージを受信したと判定され、認証が完了する。そうでない場合は、検索クライアント30は正規のクライアントではないと判定され、通信路を切断し、処理を終了する。
(S740-6) The
(S704−1)から(S740−6)で述べた認証手順では、登録クライアント20のユーザの意思にかかわらず、CAに正規の証明書を発行してもらった正規の検索クライアント30は全て、暗号化データを復号し得ることになる。復号鍵の送付先を限定するためには、ステップS704−1で検索クライアント30から接続された際や、ステップS740−4において証明書を検証した際に、鍵生成部218が接続元の情報や証明書などから検索クライアント30の識別情報も読み取り、所定の検索クライアント以外に復号鍵を送信しないように通信路を切断するといった方法をとればよい。復号鍵の送信先の指定は、ユーザがユーザインターフェース230を介して行うことができる。
In the authentication procedure described in (S704-1) to (S740-6), regardless of the intention of the user of the registered
認証が完了した後、検索クライアント30は、以下の手順で登録クライアント20から復号鍵を入手する。
After the authentication is completed, the
(S742)登録クライアント20の鍵生成部218は、証明書から取得した公開鍵で自己の有する復号鍵を暗号化して、通信インターフェース232を介して検索クライアント30の鍵共有部324に送信する。鍵共有部324は当該暗号化された復号鍵を自己の秘密鍵で復号して、所望の復号鍵を得る。
(S742) The
(S744)復号化部326がS742で入手した復号鍵を用いて暗号データを復号して、検索処理が完了する。
(S744) The
以上の手順により検索クライアント30のユーザは、データベースサーバ40の管理者や通信路上の第三者に検索クエリや検索結果の内容を事実上知られることなく、所望の検索結果を入手することができる。
Through the above procedure, the user of the
(優先順位決定)
図8はデータベースサーバ40が行う優先順位算出S724の処理手順を例示するフローチャートである。図8に基づいて検索クライアント30からトラップドアを受信してから行う優先順位算出処理について以下に説明する。図5で述べた秘匿化インデックスとトラップドアとの照合についても、具体的な処理を例示する。なお、以下の処理はすべてデータベースサーバ40の検索部440の優先順位算出部442が行う。(Priority determination)
FIG. 8 is a flowchart illustrating the processing procedure of priority order calculation S724 performed by the
(S800)クラスタをカウントするための変数pに1を設定する。 (S800) 1 is set to a variable p for counting clusters.
(S802)クラスタIDがpとなるクラスタに属する全登録データから代表データを選択する。代表データは、当該クラスタに属する全登録データからランダムに選択してもいいし、K平均法を用いた場合には、当該クラスタの中心に最も近い登録データを代表データとしてもよい。例えば、所定の順序でクラスタ内の登録データを並べた時に、全体の順序の中心付近に位置するデータを代表データとする。 (S802) Representative data is selected from all registered data belonging to the cluster whose cluster ID is p. The representative data may be selected randomly from all the registered data belonging to the cluster, or when the K average method is used, the registered data closest to the center of the cluster may be used as the representative data. For example, when the registration data in the cluster is arranged in a predetermined order, data located near the center of the whole order is used as representative data.
(S804)変数pが全クラスタ数よりも小さい場合、pを1増やして(S806)、ステップS802に戻り、次のクラスタについて同様の処理を行う。そうでない場合はステップS810へ進む。 (S804) If the variable p is smaller than the total number of clusters, p is incremented by 1 (S806), the process returns to step S802, and the same processing is performed for the next cluster. Otherwise, the process proceeds to step S810.
(S810)クラスタをカウントするための変数qに1を設定する。 (S810) 1 is set to the variable q for counting clusters.
(S812)クラスタIDがqとなるクラスタの代表データの秘匿化インデックスとトラップドアとを照合する。非特許文献1に基づいて具体的な照合方法を例示すると以下のようになる。秘匿化インデックスとトラップドアの照合の処理手順を図14に示す。なお、図13の(S502−1)から(S502−4)で求められた秘匿化インデックスHiは、預託データ内の単語Wiから生成したハッシュ値hiと、乱数列riとそのメッセージダイジェストdiを連結したものとの排他的論理和で生成されたものとする(i=1,2,...)。また、(S70−1)から(S70−2)の手順で求めたトラップドアをh′とする。なお、添え字「i」は、預託データ内に含まれるそれぞれの単語に対する識別子である。
(S812) The concealment index of the representative data of the cluster whose cluster ID is q is collated with the trap door. A specific verification method based on
(S812−1)各単語Wiについて、秘匿化インデックスHiとトラップドアh′との排他的論理和を取る。 (S812-1) For each word Wi, the exclusive OR of the concealment index Hi and the trap door h 'is calculated.
(S812−2)ステップS502−3と同様に、当該排他的論理和(ビット列S′i)の先頭cビットのビット列r′iから、図13のステップS502−3と同じ所定の演算を行なってメッセージダイジェストDiを計算し、このDiを、当該排他的論理和の後半n−cビットのビット列d′iと比較する。 (S812-2) Similar to step S502-3, the same predetermined operation as step S502-3 in FIG. 13 is performed from the bit string r′i of the first c bits of the exclusive OR (bit string S′i). The message digest Di is calculated, and this Di is compared with the bit sequence d′ i of the second half nc bits of the exclusive OR.
(S812−3)もしhi=h′、即ち、元の単語Wiと検索キーワードとが一致するならば、このダイジェストDiとビット列d′iとの排他的論理和を取ることで、乱数列riとそのメッセージダイジェストdiだけが残るはずである。よって、r′iのメッセージダイジェストDiがd′iに一致すれば、hiはh′に等しく、秘匿化インデックスに対応する預託データはトラップドアに対応する検索クエリ(検索キーワード)を含んでいると判断できる。以下この事象を単純に検索にヒットしたという。一致しない場合、秘匿化インデックスに対応する預託データはトラップドアに対応する検索クエリを含んでいないと判断する。 (S812-3) If hi = h ′, that is, if the original word Wi and the search keyword match, by taking the exclusive OR of the digest Di and the bit string d′ i, Only the message digest di should remain. Therefore, if the message digest Di of r′i matches d′ i, hi is equal to h ′, and the deposit data corresponding to the concealment index includes a search query (search keyword) corresponding to the trapdoor. I can judge. Hereinafter, this event is simply referred to as a search hit. If they do not match, it is determined that the deposit data corresponding to the concealment index does not include a search query corresponding to the trapdoor.
ここで、図14を参照しながら、ステップS812−2、812−3における検索クエリとトラップドアとの一致判定のアルゴリズムを説明する。 Here, an algorithm for determining whether or not the search query matches the trapdoor in steps S812-2 and 812-3 will be described with reference to FIG.
排他的論理和を「XOR」、集合Aの補集合(否定)を「¬」、論理和を「+」、論理積を「・」、2つのビット列の結合を「|」とすると、一般に、3つの集合の排他的論理和は、(A XOR B)XOR C=X・B+¬X・¬B、かつ、X=¬(A XOR C)、¬X=(A XOR C)となる。ここで、A=hi(単語wiのハッシュ値)、B=(ri|di)(乱数列riとメッセージダイジェストdiからなるビット列Si)、C=h′(トラップドア)とすると、X=hi XOR ¬h′、¬X=hi XOR h′となる。特に、hi=h′の場合、X=1、¬X=0となる。 When the exclusive OR is “XOR”, the complement of the set A (negation) is “¬”, the logical sum is “+”, the logical product is “•”, and the combination of two bit strings is “|”, The exclusive OR of the three sets is (A XOR B) XOR C = X · B + ¬X · ¬B, X = ¬ (A XOR C), and ¬X = (A XOR C). Here, if A = hi (hash value of word wi), B = (ri | di) (bit string Si composed of random number sequence ri and message digest di), C = h ′ (trap door), X = hi XOR ¬h 'and ¬X = hi XOR h'. In particular, when hi = h ′, X = 1 and ¬X = 0.
秘匿化インデックスHiとトラップドアh′
との排他的論理和を、Hi XOR h′=(r′i|d′i)(乱数列とメッセージダイジェストからなるビット列S′i)とおいて(S812−1)、この左辺のHiに上記のHiの表現を代入すると、r′i=X・ri+¬X・¬ri、及びd′i=X・di+¬X・¬diとなる。Concealment index Hi and trap door h '
And XOR h ′ = (r′i | d′ i) (bit sequence S′i consisting of a random number sequence and a message digest) (S812-1), Substituting the expression of Hi, r′i = X · ri + ¬X · ¬ri and d'i = X · di + ¬X · ¬di.
もし、hi=h′ならば、X=1、¬X=0であるから、r′i=ri、及びd′i=diとなる。従って、トラップドアによるメッセージダイジェストDi=f(r′i)=f(ri)=di(S812−2)、さらに、d′i=di であるから、Di=d′i となる(S812−3)。 If hi = h ′, since X = 1 and ¬X = 0, r′i = ri and d′ i = di. Therefore, the message digest Di = f (r′i) = f (ri) = di (S812-2) by the trap door, and since d′ i = di, Di = d′ i (S812-3). ).
以上のことから、hi=h′、即ち、単語Wi=検索キーワードであれば、Di=d′iとなる(S812−3)。 From the above, if hi = h ′, that is, if the word Wi = search keyword, then Di = d′ i (S812-3).
乱数列と排他的論理和の性質を利用することで、平文と暗号文が1対1とならない場合でもトラップドアとの照合を行うことができる。詳細については非特許文献1参照のこと。なお、クラスタ内の代表データ(登録データ)、特に、登録データ内の秘匿化インデックスを「ピボット」とも言う。
By using the property of the random number sequence and exclusive OR, even when the plaintext and ciphertext are not one-to-one, it is possible to collate with the trapdoor. See
(S814)秘匿化インデックスとトラップドアとの合致率が大きいほど優先度が高くなるよう、クラスタIDがqとなるクラスタの優先度を算出する。トラップドアが1つの場合、合致度は検索にヒットしたか否かの二値で与えられる。複数の検索キーワードを指定してこれらのand(論理積)検索やor(論理和)検索を行った場合、トラップドアは複数となるため、合致度は、検索にヒットしたトラップドアの個数と全トラップドアとの比で与えられる。 (S814) The priority of the cluster whose cluster ID is q is calculated so that the higher the match rate between the concealment index and the trapdoor, the higher the priority. When there is one trapdoor, the degree of match is given as a binary value indicating whether or not the search is hit. When these AND (logical product) search or or (logical sum) search is performed by specifying multiple search keywords, there are multiple trap doors, so the degree of match is the number of trap doors that hit the search and the total number of trap doors. It is given as a ratio to the trapdoor.
(S816)変数qが全クラスタ数よりも小さい場合、qを1増やして(S818)、ステップS812に戻り、次のクラスタについて同様の処理を行う。そうでない場合はステップS820へ進む。 (S816) If the variable q is smaller than the total number of clusters, q is incremented by 1 (S818), the process returns to step S812, and the same processing is performed for the next cluster. Otherwise, the process proceeds to step S820.
(S820)優先順位算出部442は、優先度が高い順になるようにクラスタIDをソートし、当該結果をメモリ414または記憶装置416に出力する。以上で優先順位算出処理を終了する。
(S820) The priority
(クラスタの優先順位に基づく登録データの照合)
図9は、データベースサーバ40が行う秘匿化インデックスとトラップドアの照合処理(図8のステップS812)の手順を例示するフローチャートである。本発明の実施の形態では、預託データの特徴量を用いて照合対象の優先順位を定めてから照合を順次行い、一定回数で照合を打ち切ることで、安全性や検索精度の低下を抑えつつ秘匿検索処理の高速化を実現することを特徴とする。以下、照合を行う回数を照合回数とよぶ。当該照合回数はあらかじめ登録クライアント20のユーザがユーザインターフェース230を介して設定しておく。照合回数の設定については後で図11を用いて説明する。(Verification of registered data based on cluster priority)
FIG. 9 is a flowchart illustrating the procedure of the concealment index and trapdoor matching process (step S812 in FIG. 8) performed by the
秘匿化インデックスとトラップドアの照合処理は以下の手順で行われる。なお、以下の処理(S904を除く)はすべて検索部440が行う。
The verification process of the concealment index and the trapdoor is performed according to the following procedure. Note that the
(S900)照合回数をカウントする変数tを0に、クラスタをカウントする変数kを1に設定する。 (S900) A variable t for counting the number of collations is set to 0, and a variable k for counting clusters is set to 1.
(S902)クラスタ内の登録データをカウントする変数nを1に設定する。メモリ414または記憶装置416からステップS820で優先順位算出部442が出力した優先順位を読み込み、k番目に優先順位が高いクラスタCkを特定する。
(S902) A variable n for counting registered data in the cluster is set to 1. The priority order output by the priority
(S904)照合部444は、クラスタCkに含まれるn番目の登録データの秘匿化インデックスとトラップドアとを照合する。ヒットした場合、秘匿化インデックスとトラップドアの合致率と併せて、対応する登録データIDをメモリ414または記憶装置416に一時的に出力する。ヒットしなかった場合は何も出力しない。
(S904) The
(S906)照合回数の変数tを1増やす。 (S906) The variable t of the number of verifications is incremented by one.
(S908)もし変数tがあらかじめ定めた照合回数より小さい場合は、次のステップS910に進む。そうでない場合はステップS918に進み、処理を終了する。 (S908) If the variable t is smaller than the predetermined number of collations, the process proceeds to the next step S910. Otherwise, the process proceeds to step S918, and the process ends.
(S910)登録データをカウントする変数nがクラスタCkに含まれる全登録データ数よりも小さい場合、nを1増やして(S912)、ステップS904に戻り、クラスタ内の次の登録データについて同様の処理を行う。そうでない場合はステップS914へ進む。 (S910) When the variable n for counting registered data is smaller than the total number of registered data included in the cluster Ck, n is incremented by 1 (S912), and the process returns to step S904, and the same processing is performed for the next registered data in the cluster. I do. Otherwise, the process proceeds to step S914.
(S914)優先順位を表す変数kが全クラスタ数よりも小さい場合、kを1増やして(S916)、ステップS902に戻り、次に優先順位が高いクラスタについて同様の処理を行う。そうでない場合はステップS918へ進む。 (S914) If the variable k representing the priority order is smaller than the total number of clusters, k is incremented by 1 (S916), the process returns to step S902, and the same processing is performed for the cluster with the next highest priority order. Otherwise, the process proceeds to step S918.
(S918)検索部440は、照合部444がメモリ414または記憶装置416に一時的に出力した登録データIDに対応する暗号化データを、メモリ414または記憶装置416に合致率とともに出力する。以上で秘匿化インデックスとトラップドアの照合処理を終了する。
(S918) The
例えば、登録クライアント20が「雲」というキーワードを含む1000個の預託データと、「雲」を含まない9000個の預託データを、本実施形態によりデータベースサーバ40に登録したとする。データベースサーバ40では、クラスタリング処理により、「雲」を含むクラスタAと含まないクラスタBの2つに分解して登録データが管理されることになる。検索クライアント30が「雲」という検索クエリで検索した場合、検索クエリ(トラップドア)とピボット(秘匿化インデックスの代表)との照合により、クラスタAの1000個の登録データが優先的に照合される。よって、仮に1000回で照合を打ち切ったとしても、「雲」を含む1000個の全預託データにヒットすることになる。一方、従来の検索可能暗号を用いた秘匿検索システムにおいては、10000個の全登録データに対して「雲」という検索クエリのトラップドアと照合して、初めて「雲」を含む全預託データにヒットする。従って、この例では、本発明は従来と比較して10倍検索速度を向上できたといえる。このように、図1から図9を用いて説明した本発明の実施の形態に従って、元のデータを推測しにくい特徴量を用いて秘匿化インデックスをクラスタリングしておくことで、安全性や検索精度の低下を抑えつつ、秘匿検索を高速化することができた。
For example, it is assumed that the
図10も、データベースサーバ40が行う秘匿化インデックスとトラップドアとの照合処理手順を例示するフローチャートである。図9の例では一定回数で照合を打ち切ることで秘匿検索処理の高速化を実現したが、照合回数ではなく検索にヒットした回数(以下、ヒット回数とよぶ)で打ち切ることでも高速化を実現できる。具体的には、図9のステップS906およびS908が以下のステップS906−a,S906−b,S908′に置き換わる。以下の処理はすべて検索部440が行う。
FIG. 10 is also a flowchart illustrating the collating process procedure between the concealment index and the trapdoor performed by the
(S906−a)照合部444において検索がヒットしたかどうかを判断する。ヒットしたときS906−bへ進む。ヒットしなかったときステップS908′へ進む。
(S906-a) The
(S906−b)照合回数の変数tを1増やす。 (S906-b) The variable t of the number of collations is increased by one.
(S908′)もし変数tがあらかじめ定めたヒット回数より小さい場合は、次のS910に進む。そうでない場合はS918に進み、処理を終了する。 (S908 ′) If the variable t is smaller than the predetermined number of hits, the process proceeds to the next S910. Otherwise, the process proceeds to S918, and the process ends.
ヒット回数は、あらかじめ登録クライアント20のユーザがユーザインターフェース230を介して設定しておく。ヒット回数の設定については後で図11を用いて説明する。
The number of hits is set in advance by the user of the
図10のフローチャートによる方法はあらかじめ設定したヒット回数に達するまで照合を繰り返すため、図9で説明した検索方法と比較して検索漏れが少なくなるという利点がある。その反面、検索にヒットしなければ検索が遅延するという欠点がある。一方、図9で説明した方法は、あらかじめ設定した照合回数しか照合を行わないため、図10の方法よりも検索漏れが生じやすいという欠点があるが、検索結果のいかんにかかわらず検索応答時間が一定に保たれるという利点がある。 The method according to the flowchart of FIG. 10 has an advantage that search omissions are reduced as compared with the search method described in FIG. 9 because the collation is repeated until a preset number of hits is reached. On the other hand, if the search is not hit, the search is delayed. On the other hand, the method described with reference to FIG. 9 has a drawback in that a search omission is more likely to occur than the method of FIG. There is an advantage that it is kept constant.
図11は、検索クライアント30またはデータベースサーバ40で行う設定画面を例示する図である。図3の説明で述べた検索クライアント30の設定部328が設定するパラメータとして、例えば照合回数がある。
FIG. 11 is a diagram illustrating a setting screen performed by the
ダイアログ1100や1120は、設定部328が照合回数をユーザに設定させるためにユーザインターフェース330を介してユーザに提示する画面の例である。ダイアログ1100では、スライドバー1102を左に動かすほど照合回数が小さくなって検索速度が向上する一方で、検索にヒットする登録データに到達する可能性が下がり、検索精度が低下する。スライドバー1102を右に動かすほど照合回数が大きくなって、検索速度が低下する一方、検索精度が向上する。スライドバー1122の位置に応じて、照合回数は、設定部328が保持する所定の値に設定される。また、ダイアログボックス1120の入力ボックス1122で、ユーザが直接照合回数を設定することもできる。なお図10で説明した実施形態においては、上記説明における照合回数をヒット回数に読み替える。
また、照合回数(またはヒット回数)の設定をデータベースサーバ40の管理者が行う実施形態もある。この場合、データベースサーバ40の設定部450がユーザインターフェース460を介してダイアログ1100や1120を提示する。データベースサーバ40の管理者が、登録データ数やクラスタリングの態様を定期的にチェックし、検索応答時間が遅延しないように照合回数を調整することで、秘匿検索サービスの質を保証することができる。
There is also an embodiment in which the administrator of the
10:ネットワーク、20−1〜20−n、20:登録クライアント、30−1〜30−m、30:検索クライアント、40:データベースサーバ、
200、300、400:内部バス、212、312、412:CPU、214、314、414:メモリ、216、316、416:記憶装置、230、330、460:ユーザインターフェース、232、332、462:通信インターフェース、
218:鍵生成部、220:登録部、222:暗号化部、224:秘匿化インデックス生成部、226:特徴量算出部、228:設定部、
320:検索部、322:トラップドア生成部、324:鍵共有部、326:復号化部、328:設定部、418:認証部、420:登録部、430:クラスタリング部、432:類似度算出部、440:検索部、442:優先順位算出部、444:照合部、450:設定部、
S50:データ生成処理、S52:データ送受信処理、S54:クラスタリング処理、
60:登録データ格納位置管理テーブル、600:登録データIDカラム、602:暗号化データカラム、604:秘匿化インデックスカラム、606:特徴量カラム、608:登録クライアントカラム、610:その他必要な事項を格納するカラム、62:クラスタ管理テーブル、620:クラスタIDカラム、622:登録データIDカラム、624:その他必要な事項を格納するカラム、
S70:トラップドア生成処理、S72:秘匿検索処理、S74:復号化処理、
1100、1120:ダイアログ、1102:スライドバー、1122:入力ボックス10: Network, 20-1 to 20-n, 20: Registration client, 30-1 to 30-m, 30: Search client, 40: Database server,
200, 300, 400: Internal bus, 212, 312, 412: CPU, 214, 314, 414: Memory, 216, 316, 416: Storage device, 230, 330, 460: User interface, 232, 332, 462: Communication interface,
218: Key generation unit, 220: Registration unit, 222: Encryption unit, 224: Concealment index generation unit, 226: Feature quantity calculation unit, 228: Setting unit,
320: search unit, 322: trap door generation unit, 324: key sharing unit, 326: decryption unit, 328: setting unit, 418: authentication unit, 420: registration unit, 430: clustering unit, 432: similarity calculation unit 440: Search unit, 442: Priority calculation unit, 444: Verification unit, 450: Setting unit,
S50: data generation processing, S52: data transmission / reception processing, S54: clustering processing,
60: Registration data storage location management table, 600: Registration data ID column, 602: Encrypted data column, 604: Confidential index column, 606: Feature column, 608: Registration client column, 610: Store other necessary items 62: Cluster management table, 620: Cluster ID column, 622: Registered data ID column, 624: Column for storing other necessary items,
S70: Trap door generation process, S72: Secret search process, S74: Decryption process,
1100, 1120: Dialog, 1102: Slide bar, 1122: Input box
Claims (9)
前記登録クライアントから、前記データを暗号化した暗号化データと、前記データから抽出したインデックスを秘匿化した秘匿化インデックスと、データ間の類似度を計算するための特徴量との組を受信する受信手段と、
前記登録クライアントから受信した前記特徴量をもとに、2つのデータの類似度を算出する類似度算出手段と、
前記類似度算出手段が算出した類似度に基づいて、前記登録クライアントから受信した前記暗号化データをクラスタリングするクラスタリング手段と、
前記秘匿検索装置に登録されたデータの検索を行うための検索クエリに含まれる検索キーワードを秘匿化したトラップドアを前記検索クライアントから受け取り、前記クラスタリング手段が生成したクラスタリングの結果をもとに、前記クラスタリングされた暗号化データと前記トラップドアとの照合処理の優先順位を算出する優先順位算出手段と、
前記登録クライアントから受信した前記秘匿化インデックスと前記トラップドアとの照合処理を行う照合手段と、
前記検索クライアントから前記トラップドアを受信したとき、前記優先順位算出手段が算出した優先順位に基づいて、あらかじめ定めた回数だけ、前記優先順位が高いクラスタの順に、前記照合手段によって、前記暗号化データと前記トラップドアとの照合を行ない、前記トラップドアにヒットした前記暗号化データを前記検索クライアントに返信する検索手段とを、
有することを特徴とする秘匿検索装置。 A secret search device that receives data from a registered client and receives search information from the search client.
Received from the registered client is a set of encrypted data obtained by encrypting the data, a concealed index obtained by concealing an index extracted from the data, and a feature amount for calculating a similarity between the data. Means,
Similarity calculation means for calculating the similarity of two data based on the feature amount received from the registered client;
Clustering means for clustering the encrypted data received from the registered client based on the similarity calculated by the similarity calculation means;
The trap door that conceals the search keyword included in the search query for searching the data registered in the secret search device is received from the search client, and based on the clustering result generated by the clustering unit, Priority order calculating means for calculating a priority order of collation processing between the clustered encrypted data and the trapdoor;
Collating means for performing collation processing between the concealment index received from the registered client and the trap door;
When the trap door is received from the search client, based on the priority calculated by the priority calculation means, the collation means performs the encrypted data in the order of the clusters having the highest priority by a predetermined number of times. Search means for performing a comparison with the trap door and returning the encrypted data hitting the trap door to the search client,
A secret search device characterized by comprising:
前記クラスタリング手段は、
クラスタを1以上生成し、各クラスタについて中心をランダムに設定し、
前記登録クライアントから受信した全てのデータについて、各データに含まれる特徴量に基づいて、前記類似度算出手段に、当該中心との類似度を計算させて、各データを最も類似する中心が属するクラスタに割り振り、
前記登録クライアントから受信した全てのデータについて、クラスタへの割り振りが変化しなかった場合は処理を終了し、
それ以外の場合は各クラスタの中心を、当該クラスタに属するデータの特徴量を用いて計算し直してから、当該中心を求める処理を繰り返す
ことを特徴とする請求項1記載の秘匿検索装置。 In the secret search device,
The clustering means includes
Generate one or more clusters, set the center randomly for each cluster,
For all data received from the registered client, based on the feature amount included in each data, let the similarity calculation means calculate the similarity to the center, and each data belongs to the cluster to which the most similar center belongs Allocated to
For all data received from the registered client, if the allocation to the cluster has not changed, terminate the process,
The center of each cluster Otherwise, the re-calculated by using the feature amount of data belonging to the cluster, the secure search apparatus according to claim 1, wherein repeating the processing for obtaining the center.
前記クラスタリング手段は、
前記登録クライアントから受信したデータを1つだけを含むクラスタを、前記データの総数分生成し、
前記類似度算出手段に、各クラスタに属するデータの特徴量を用いてクラスタ間の距離を計算させ、最も距離の近い2つのクラスタを逐次的に併合し、
前記併合を、全ての対象が1つのクラスタに併合されるまで繰り返す、
ことを特徴とする請求項1記載の秘匿検索装置。 In the secret search device,
The clustering means includes
A cluster including only one data received from the registered client is generated for the total number of the data,
Let the similarity calculation means calculate the distance between the clusters using the feature amount of the data belonging to each cluster, sequentially merge the two clusters with the closest distance;
Repeat the merging until all objects are merged into one cluster,
The secret search device according to claim 1 .
前記優先順位算出手段は、
各クラスタについて、前記クラスタに属する全てのデータのうち1つを代表データとして選択し、
各クラスタについて、前記クラスタの代表データの秘匿化インデックスと前記トラップドアを前記照合手段に照合させて、
前記トラップドアとの合致率が大きいほど優先度が高くなるように当該クラスタの優先度を算出し、
前記優先度が高い順になるようにクラスタに含まれるデータの照合順序をソートする、
ことを特徴とする請求項1記載の秘匿検索装置。 In the secret search device,
The priority order calculating means includes:
For each cluster, select one of all data belonging to the cluster as representative data,
For each cluster, let the collation means collate the concealment index of the representative data of the cluster and the trapdoor,
Calculate the priority of the cluster so that the higher the match rate with the trapdoor, the higher the priority,
Sorting the collation order of the data contained in the cluster so that the priorities are in descending order;
The secret search device according to claim 1 .
前記照合手段は、
前記秘匿化インデックスと前記トラップドアの排他的論理和を取り、
前記秘匿化インデックス生成の際に生成した乱数列と同じ長さのビット列を前記排他的論理和の先頭から取って、前記ビット列のメッセージダイジェストを計算し、
前記メッセージダイジェストが、前記排他的論理和の前記メッセージダイジェストを計算していないビット列と一致した場合、前記秘匿化インデックスは前記トラップドアに対応する検索クエリを含んでいると判断し、
一致しない場合、前記秘匿化インデックスは前記トラップドアに対応する前記検索クエリを含んでいないと判断する、
ことを特徴とする請求項1記載の秘匿検索装置。 In the secret search device,
The verification means includes
Take the exclusive OR of the concealment index and the trapdoor,
Taking a bit string having the same length as the random number sequence generated when generating the concealment index from the head of the exclusive OR, calculating a message digest of the bit sequence,
If the message digest matches a bit string for which the message digest of the exclusive OR is not calculated, it is determined that the concealment index includes a search query corresponding to the trapdoor;
If not, it is determined that the concealment index does not include the search query corresponding to the trapdoor;
The secret search device according to claim 1 .
前記検索手段が行う照合処理の回数は、前記検索クライアントが設定する、
ことを特徴とする請求項1記載の秘匿検索装置。 In the secret search device,
The number of matching processes performed by the search means is set by the search client.
The secret search device according to claim 1 .
前記検索手段が行う照合処理の回数は、前記秘匿検索装置が設定する、
ことを特徴とする請求項1記載の秘匿検索装置。 In the secret search device,
The number of matching processes performed by the search means is set by the secret search device.
The secret search device according to claim 1 .
データを前記秘匿検索装置に送信する前記登録クライアントは、
前記秘匿検索装置に送信するデータを暗号化して暗号化データを生成する暗号化手段、
前記データから抽出したインデックスを秘匿化した秘匿化インデックスを生成する秘匿化インデックス生成手段、
前記データから、データ間の類似度を計算するための特徴量を算出する特徴量算出手段、及び
前記暗号化データ、前記秘匿化インデックス、及び前記特徴量の組を、前記秘匿検索装置に送信する登録手段を有し、
前記秘匿検索装置に対して検索を行う前記検索クライアントは、
前記秘匿検索装置に登録されたデータの検索を行うための検索クエリに含まれる検索キーワードを秘匿化したトラップドアを生成するトラップドア生成手段を有し、
データを前記登録クライアントから受信し、検索用の情報を前記検索クライアントから受信する前記秘匿検索装置は、
前記登録クライアントから、前記暗号化データと、前記秘匿化インデックスと、前記特徴量との組を受信する受信手段、
前記登録クライアントから受信した前記特徴量をもとに、2つのデータの類似度を算出する類似度算出手段、
前記類似度算出手段が算出した類似度に基づいて、前記登録クライアントから受信した前記暗号化データをクラスタリングするクラスタリング手段、
前記トラップドアを前記検索クライアントから受け取り、前記クラスタリングの結果をもとに、前記クラスタリングされた暗号化データと前記トラップドアとの照合処理の優先順位を算出する優先順位算出手段、
前記登録クライアントから受信した前記秘匿化インデックスと前記トラップドアとの照合処理を行う照合手段、及び
前記検索クライアントから前記トラップドアを受信したとき、前記優先順位に基づいて、あらかじめ定めた回数だけ、前記優先順位が高いクラスタの順に、前記照合手段によって、前記暗号化データと前記トラップドアとの照合を行ない、前記トラップドアにヒットした前記暗号化データを前記検索クライアントに返信する検索手段とを有する、
ことを特徴とする計算機システム。 A computer system in which at least one registered client, a secret search device, and at least one search client are connected to each other via a network,
The registration client that transmits data to the secret search device includes:
Encryption means for encrypting data to be transmitted to the confidential search device to generate encrypted data;
A concealment index generating means for generating a concealment index concealing the index extracted from the data;
A feature amount calculating means for calculating a feature amount for calculating a similarity between data from the data, and a set of the encrypted data, the concealment index, and the feature amount are transmitted to the confidential search device. Have registration means,
The search client that performs a search for the secret search device is:
A trap door generating means for generating a trap door that conceals a search keyword included in a search query for searching for data registered in the secret search device;
The secret search device that receives data from the registered client and receives search information from the search client,
Receiving means for receiving a set of the encrypted data, the concealment index, and the feature amount from the registered client;
Similarity calculation means for calculating the similarity of two data based on the feature received from the registered client;
Clustering means for clustering the encrypted data received from the registered client based on the similarity calculated by the similarity calculation means;
Priority order calculating means for receiving the trap door from the search client, and calculating a priority of collation processing between the clustered encrypted data and the trap door based on the clustering result;
Collation means for performing a collation process between the concealment index received from the registered client and the trap door, and when the trap door is received from the search client, the predetermined number of times based on the priority order. In the order of clusters having the highest priority, the collating means collates the encrypted data with the trap door, and has a retrieval means for returning the encrypted data hitting the trap door to the search client.
A computer system characterized by that.
前記登録クライアントから、前記データを暗号化した暗号化データと、前記データから抽出したインデックスを秘匿化した秘匿化インデックスと、データ間の類似度を計算するための特徴量との組を受信し、
前記登録クライアントから受信した前記特徴量をもとに、2つのデータの類似度を算出し、
前記算出した類似度に基づいて、前記登録クライアントから受信した前記暗号化データをクラスタリングし、
前記秘匿検索装置に登録されたデータの検索を行うための検索クエリに含まれる検索キーワードを秘匿化したトラップドアを前記検索クライアントから受け取り、
前記生成したクラスタリングの結果をもとに、前記クラスタリングされた暗号化データと前記トラップドアとの照合処理の優先順位を算出し、
前記検索クライアントから前記トラップドアを受信したとき、前記算出した優先順位に基づいて、あらかじめ定めた回数だけ、前記登録クライアントから受信した前記暗号化インデックスと前記トラップドアとを照合し、
前記トラップドアにヒットした前記暗号化データを前記検索クライアントに返信する、
ことを特徴とする秘匿検索方法。 A secret search method in a secret search device connected to a registration client that transmits data to be registered in the secret search device and a search client that searches the secret search device via a network includes:
From the registered client, a set of encrypted data obtained by encrypting the data, a concealed index obtained by concealing an index extracted from the data, and a feature amount for calculating a similarity between the data is received.
Based on the feature amount received from the registered client, the similarity between the two data is calculated,
Clustering the encrypted data received from the registered client based on the calculated similarity,
Receiving from the search client a trapdoor that conceals a search keyword included in a search query for searching for data registered in the secret search device;
Based on the generated clustering result, calculate the priority of collation processing between the clustered encrypted data and the trapdoor,
When the trap door is received from the search client, based on the calculated priority order, the encryption index received from the registered client is compared with the trap door a predetermined number of times,
Returning the encrypted data hitting the trapdoor to the search client;
A secret search method characterized by the above.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2011/077862 WO2013080365A1 (en) | 2011-12-01 | 2011-12-01 | Secure search method and secure search device |
Publications (2)
Publication Number | Publication Date |
---|---|
JPWO2013080365A1 JPWO2013080365A1 (en) | 2015-04-27 |
JP5816299B2 true JP5816299B2 (en) | 2015-11-18 |
Family
ID=48534880
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2013546927A Expired - Fee Related JP5816299B2 (en) | 2011-12-01 | 2011-12-01 | Secret search method and secret search device |
Country Status (3)
Country | Link |
---|---|
US (1) | US9311494B2 (en) |
JP (1) | JP5816299B2 (en) |
WO (1) | WO2013080365A1 (en) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20210067538A (en) * | 2019-11-29 | 2021-06-08 | 고려대학교 산학협력단 | Device and method for scalable and secure similarity search for multiple entities |
WO2022092346A1 (en) * | 2020-10-28 | 2022-05-05 | 주식회사 스파이스웨어 | Reinforcement learning-based apparatus and method for generating random numbers |
US11360978B2 (en) | 2017-05-18 | 2022-06-14 | Mitsubishi Electric Corporation | Search device, tag generation device, query generation device, searchable encryption system and computer readable medium |
Families Citing this family (35)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6137173B2 (en) * | 2012-04-24 | 2017-05-31 | 日本電気株式会社 | Encrypted database system, client terminal and database server, combining method and program |
US9449178B2 (en) * | 2012-07-24 | 2016-09-20 | ID Insight | System, method and computer product for fast and secure data searching |
US9654472B2 (en) * | 2013-06-18 | 2017-05-16 | Hitachi, Ltd. | Storage count verification system |
JP6144992B2 (en) * | 2013-08-08 | 2017-06-07 | 株式会社日立製作所 | Searchable cryptographic processing system and method |
JP2015118603A (en) * | 2013-12-19 | 2015-06-25 | 日本電信電話株式会社 | Database search system and search method |
MX353871B (en) | 2014-02-10 | 2018-02-01 | Geenee Gmbh | Systems and methods for image-feature-based recognition. |
US10181168B2 (en) | 2014-03-31 | 2019-01-15 | Hitachi Kokusa1 Electric, Inc. | Personal safety verification system and similarity search method for data encrypted for confidentiality |
JP6348004B2 (en) * | 2014-06-30 | 2018-06-27 | Kddi株式会社 | Encrypted data management system, proxy server, encrypted data management method, and computer program |
CN107077469B (en) * | 2014-10-21 | 2020-11-27 | 三菱电机株式会社 | Server device, search system, terminal device, and search method |
JP6738061B2 (en) * | 2014-11-05 | 2020-08-12 | 日本電気株式会社 | Ciphertext verification system, method, and recording medium |
US9727648B2 (en) * | 2014-12-19 | 2017-08-08 | Quixey, Inc. | Time-box constrained searching in a distributed search system |
WO2016122513A1 (en) * | 2015-01-29 | 2016-08-04 | Hewlett Packard Enterprise Development Lp | Data analytics on encrypted data elements |
WO2016136142A1 (en) * | 2015-02-24 | 2016-09-01 | 日本電気株式会社 | Ciphertext collation system, method and recording medium |
US10482263B2 (en) * | 2015-04-01 | 2019-11-19 | Microsoft Technology Licensing, Llc | Computing on encrypted data using deferred evaluation |
DE102015209123A1 (en) * | 2015-05-19 | 2016-11-24 | Robert Bosch Gmbh | Computing device and operating method for this |
GB201517331D0 (en) * | 2015-10-01 | 2015-11-18 | Chase Information Technology Services Ltd And Cannings Nigel H | System and method for preserving privacy of data in a cloud |
WO2017122326A1 (en) | 2016-01-14 | 2017-07-20 | 三菱電機株式会社 | Confidential search system, confidential search method and confidential search program |
WO2017122352A1 (en) | 2016-01-15 | 2017-07-20 | 三菱電機株式会社 | Encryption device, encryption method, and encryption program |
WO2017168798A1 (en) * | 2016-03-30 | 2017-10-05 | 株式会社日立ソリューションズ | Encryption search index merge server, encryption search index merge system, and encryption search index merge method |
EP3438904B1 (en) * | 2016-03-31 | 2023-02-15 | Nec Corporation | Biological data registration support device, biological data registration support system, biological data registration support method, biological data registration support program, recording medium for storing biological data registration support program |
JP6688688B2 (en) * | 2016-06-14 | 2020-04-28 | 株式会社エヌ・ティ・ティ・データ | Secret information analysis system and secret information analysis method |
JP6836068B2 (en) * | 2017-03-24 | 2021-02-24 | 富士通株式会社 | Learning method, learning device, learning program, search method, search device and search program |
US11106740B2 (en) | 2017-04-25 | 2021-08-31 | Mitsubishi Electric Corporation | Search device, search system, search method, and computer readable medium |
KR102050888B1 (en) | 2017-11-29 | 2019-12-02 | 고려대학교 산학협력단 | Method and system for similarity search over encrypted data in cloud computing |
US10831911B2 (en) * | 2017-12-19 | 2020-11-10 | Industrial Technology Research Institute | Method, computer program product and processing system for generating secure alternative representation |
EP3537328B1 (en) | 2018-03-05 | 2020-10-21 | British Telecommunications public limited company | Data access authentication |
US10958415B2 (en) * | 2018-07-11 | 2021-03-23 | Informatica Llc | Method, apparatus, and computer-readable medium for searching polymorphically encrypted data |
WO2020112484A1 (en) * | 2018-11-26 | 2020-06-04 | Kansas State University Research Foundation | Puf-ipa: a puf-based identity preserving lightweight authentication protocol using binary string shuffling |
US10909261B2 (en) | 2018-12-12 | 2021-02-02 | Industrial Technology Research Institute | Method and computer program product for generating secure alternative representation for numerical datum |
US11924327B2 (en) | 2019-01-09 | 2024-03-05 | British Telecommunications Public Limited Company | Variable data protection |
EP3681094B1 (en) | 2019-01-09 | 2021-11-10 | British Telecommunications public limited company | Impeding data access |
WO2020223901A1 (en) * | 2019-05-07 | 2020-11-12 | 比特大陆科技有限公司 | Data query method, and server |
JP7165795B2 (en) * | 2020-08-31 | 2022-11-04 | 株式会社日立製作所 | Methods and devices for generating privacy-preserving data for data analysis systems |
CN114900318B (en) * | 2022-06-02 | 2024-04-19 | 浙江工商大学 | One-round communication searchable encryption method based on key negotiation protocol and verifiable |
JP7352249B1 (en) * | 2023-05-10 | 2023-09-28 | 株式会社Fronteo | Information processing device, information processing system, and information processing method |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7519835B2 (en) * | 2004-05-20 | 2009-04-14 | Safenet, Inc. | Encrypted table indexes and searching encrypted tables |
JP4722620B2 (en) | 2005-08-19 | 2011-07-13 | Kddi株式会社 | Encrypted document search method and encrypted document search system |
KR100839220B1 (en) * | 2006-10-19 | 2008-06-19 | 고려대학교 산학협력단 | Method for searching encrypted database and System thereof |
JP2009271584A (en) | 2008-04-30 | 2009-11-19 | Tokyo Metropolitan Univ | Similar information retrieval system and similar information retrieval program |
KR101190061B1 (en) * | 2008-12-01 | 2012-10-11 | 한국전자통신연구원 | Method for data encryption and method for data search using conjunctive keyword |
JP5388727B2 (en) | 2009-07-07 | 2014-01-15 | 三菱電機株式会社 | Information processing system, information processing apparatus, server apparatus, information processing method, and program |
-
2011
- 2011-12-01 WO PCT/JP2011/077862 patent/WO2013080365A1/en active Application Filing
- 2011-12-01 US US14/361,593 patent/US9311494B2/en not_active Expired - Fee Related
- 2011-12-01 JP JP2013546927A patent/JP5816299B2/en not_active Expired - Fee Related
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11360978B2 (en) | 2017-05-18 | 2022-06-14 | Mitsubishi Electric Corporation | Search device, tag generation device, query generation device, searchable encryption system and computer readable medium |
KR20210067538A (en) * | 2019-11-29 | 2021-06-08 | 고려대학교 산학협력단 | Device and method for scalable and secure similarity search for multiple entities |
KR102292246B1 (en) | 2019-11-29 | 2021-08-24 | 고려대학교 산학협력단 | Device and method for scalable and secure similarity search for multiple entities |
WO2022092346A1 (en) * | 2020-10-28 | 2022-05-05 | 주식회사 스파이스웨어 | Reinforcement learning-based apparatus and method for generating random numbers |
Also Published As
Publication number | Publication date |
---|---|
JPWO2013080365A1 (en) | 2015-04-27 |
US9311494B2 (en) | 2016-04-12 |
US20140331044A1 (en) | 2014-11-06 |
WO2013080365A1 (en) | 2013-06-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5816299B2 (en) | Secret search method and secret search device | |
CN110224986B (en) | Efficient searchable access control method based on hidden policy CP-ABE | |
Chen et al. | {SANNS}: Scaling up secure approximate {k-Nearest} neighbors search | |
Barni et al. | Privacy protection in biometric-based recognition systems: A marriage between cryptography and signal processing | |
Qin et al. | Towards efficient privacy-preserving image feature extraction in cloud computing | |
CN108062485A (en) | A kind of fuzzy keyword searching method of multi-service oriented device multi-user | |
Somu et al. | Authentication service in hadoop using one time pad | |
Weng et al. | Privacy-preserving outsourced media search | |
Wang et al. | Privacy-preserving ranked multi-keyword fuzzy search on cloud encrypted data supporting range query | |
US20200042497A1 (en) | Distributed ledger system | |
Tong et al. | VFIRM: Verifiable fine-grained encrypted image retrieval in multi-owner multi-user settings | |
Sun et al. | Research on logistics information blockchain data query algorithm based on searchable encryption | |
Miao et al. | Ranked keyword search over encrypted cloud data through machine learning method | |
Shekokar et al. | Implementation of fuzzy keyword search over encrypted data in cloud computing | |
Zhu et al. | Privacy-preserving search for a similar genomic makeup in the cloud | |
Li et al. | DVREI: Dynamic verifiable retrieval over encrypted images | |
Yang et al. | MASK: Efficient and privacy-preserving m-tree based biometric identification over cloud | |
Raghavendra et al. | Survey on data storage and retrieval techniques over encrypted cloud data | |
JP7024709B2 (en) | Cryptographic information collation device, cryptographic information collation method, and cryptographic information collation program | |
Gao et al. | Secure approximate nearest neighbor search over encrypted data | |
CN113904823A (en) | Constant-level authorization computation complexity attribute base searchable encryption method and system | |
CN113158245A (en) | Method, system, equipment and readable storage medium for searching document | |
XIONG et al. | Searchable Encryption Scheme for Large Data Sets in Cloud Storage Environment. | |
Chen et al. | Memory leakage-resilient dynamic and verifiable multi-keyword ranked search on encrypted smart body sensor network data | |
Hong et al. | Secure kNN computation and integrity assurance of data outsourcing in the cloud |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20150630 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20150817 |
|
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: 20150908 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20150925 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5816299 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |