JP2013145420A - High-speed similarity retrieval processing system of encrypted data - Google Patents

High-speed similarity retrieval processing system of encrypted data Download PDF

Info

Publication number
JP2013145420A
JP2013145420A JP2012004631A JP2012004631A JP2013145420A JP 2013145420 A JP2013145420 A JP 2013145420A JP 2012004631 A JP2012004631 A JP 2012004631A JP 2012004631 A JP2012004631 A JP 2012004631A JP 2013145420 A JP2013145420 A JP 2013145420A
Authority
JP
Japan
Prior art keywords
encryption
unit
search
management server
plaintext
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2012004631A
Other languages
Japanese (ja)
Other versions
JP5948060B2 (en
Inventor
Masayuki Yoshino
雅之 吉野
Hisanobu Sato
尚宜 佐藤
Takeshi Naganuma
健 長沼
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2012004631A priority Critical patent/JP5948060B2/en
Publication of JP2013145420A publication Critical patent/JP2013145420A/en
Application granted granted Critical
Publication of JP5948060B2 publication Critical patent/JP5948060B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

PROBLEM TO BE SOLVED: To provide a retrieval processing system for executing similarity retrieval at a high speed while encrypting data in order to block a fraudulent operation from a cloud system manager in a processing form of making a cloud system retrieve the data.SOLUTION: A retrieval agent encrypts data for which a plaintext reference stored in a storage unit is divided in units of blocks and prepares a primary encrypted reference and a secondary encrypted reference. Also, the retrieval agent encrypts data for which a plaintext read stored in the storage unit is divided in units of blocks and prepares a primary encrypted read and a secondary encrypted read. According to scores by the right and wrong of a retrieval result of the primary encrypted reference and the primary encrypted read and a retrieval result of the secondary encrypted reference and the secondary encrypted read by a management server, the management server determines that the secondary encrypted reference of a high score is similar to the secondary encrypted read.

Description

本発明は、サーバが格納する暗号化データを復号せずに、サーバに暗号化データの高速な類似検索を委託可能な検索処理システムに関する。   The present invention relates to a search processing system that can entrust high-speed similarity search of encrypted data to a server without decrypting the encrypted data stored in the server.

近年、バイオインフォマティクス分野では、分析装置の普及などに伴い、ゲノム解析が飛躍的に進展している。その解析において、ある断片的なゲノム情報が、蓄積されたゲノムデータのどの部分に類似しているかを判定することが必要だが、そのための標準的なアルゴリズムがある。しかし、大容量のゲノムデータを保管し、判定処理を実行するには多大な計算リソースが必要なため、クラウド上での類似検索サービスが提供されることが望まれている。   In recent years, in the bioinformatics field, genome analysis has progressed dramatically with the spread of analyzers. In the analysis, it is necessary to determine to which part of the accumulated genome data a certain piece of genomic information is similar, but there are standard algorithms for that purpose. However, a large amount of computational resources are required to store a large amount of genome data and execute the determination process, and therefore it is desired to provide a similar search service on the cloud.

一方、クラウドシステムにおいては、情報システムを管理する組織が、情報システムを利用する組織とは異なるため、情報漏えいの防止策や、事故発生後の原因究明、再発防止策等が自組織だけでは立てにくい。そのため、事前に、データの不正流出の予防策として、暗号技術を活用し、データの機密性を確保する必要がある。   On the other hand, in the cloud system, the organization that manages the information system is different from the organization that uses the information system. Therefore, measures to prevent information leakage, investigation of the cause after the occurrence of an accident, measures to prevent recurrence, etc. can be established only by the organization itself. Hateful. Therefore, it is necessary to ensure the confidentiality of data in advance by using encryption technology as a preventive measure against illegal data leakage.

そこで、クラウドシステムに暗号化したデータを預託し、クラウドシステムにデータを暗号化したまま検索させる、暗号技術が研究されている。例えば、非特許文献1や非特許文献2には、復号せずに暗号化データを検索する検索処理方式が記載されている。   Therefore, research has been conducted on encryption technology that deposits encrypted data in a cloud system and allows the cloud system to search the data while it is encrypted. For example, Non-Patent Document 1 and Non-Patent Document 2 describe a search processing method for searching encrypted data without decryption.

吉野 雅之, 長沼 健, 佐藤 尚宜. DB向け検索可能暗号の検討(2), Inproceedings of The 2011 Symposium on Cryptography and Information Security(2011).Masayuki Yoshino, Ken Naganuma, Naoyoshi Sato. Study of searchable encryption for DB (2), Inproceedings of The 2011 Symposium on Cryptography and Information Security (2011). Dan Boneh, Brent Waters: Conjunctive, Subset, and Range Queries on Encrypted Data. TCC, volume 4392 of Lecture Notes in Computer Science, pages 535-554(2007).Dan Boneh, Brent Waters: Conjunctive, Subset, and Range Queries on Encrypted Data.TCC, volume 4392 of Lecture Notes in Computer Science, pages 535-554 (2007).

非特許文献1は、共通鍵暗号をベースとしており、高速であるが、完全一致検索のみが可能であり、類似検索ができない。例えば、データ「abcd」を検索する場合、その部分文字列である「ab」を検索リードでは、「abcd」を検索できない。一方、非特許文献2の技術は、部分一致検索が可能であるものの、演算処理の重い合成数位数の双線形群によるペアリングを用いるため、低速である。そのため、検索キーワードと被検索データを共に暗号化しながら、それらの類似性を高速に解析する処理方式が必要とされている。   Non-Patent Document 1 is based on common key cryptography and is fast, but only complete match search is possible and similarity search is not possible. For example, when searching for data “abcd”, “abcd” cannot be searched by a search lead for “ab” that is the partial character string. On the other hand, the technique of Non-Patent Document 2 is capable of partial match search, but is slow because it uses pairing with a complex number bilinear group with heavy arithmetic processing. For this reason, there is a need for a processing method that analyzes the similarity between the search keyword and the data to be searched together at a high speed.

前記課題を解決するために、本発明は、データの暗号化処理と復号処理に関するプログラムを記憶部に格納する検索エージェントと、暗号化データの一致検索処理に関するプログラムを記憶部に格納する管理サーバが、ネットワーク経由で連携する検索処理システムであって、検索エージェントは、非特許文献1や非特許文献2などのデータの暗号化と復号を実現するプログラムを記憶部に格納し、管理サーバは非特許文献1や非特許文献2などの暗号化データの一致検索を実現するプログラムを記憶部に格納し、検索エージェントは記憶部に格納された平文リファレンスを、ブロック単位に分割したデータを暗号化して1次暗号化リファレンスと2次暗号化リファレンスを作成し、また検索エージェントは記憶部に格納された検索エージェントは記憶部に格納された平文リードを、ブロック単位に分割したデータを暗号化して1次暗号化リードと2次暗号化リードを作成し、管理サーバによる1次暗号化リファレンスと1次暗号化リードの検索結果と、管理サーバによる2次暗号化リファレンスと2次暗号化リードの検索結果の是非による得点に従い、得点の高い2次暗号化リファレンスが2次暗号化リードと類似している、と判定する。   In order to solve the above-described problems, the present invention provides a search agent that stores a program related to data encryption processing and decryption processing in a storage unit, and a management server that stores a program related to encrypted data match search processing in the storage unit. A search processing system that cooperates via a network, the search agent stores a program for realizing encryption and decryption of data such as Non-Patent Document 1 and Non-Patent Document 2 in a storage unit, and the management server is non-patent A program that realizes a coincidence search of encrypted data such as Document 1 and Non-Patent Document 2 is stored in the storage unit, and the search agent encrypts the data obtained by dividing the plaintext reference stored in the storage unit into block units, and 1 The secondary encryption reference and secondary encryption reference are created, and the search agent is stored in the storage unit. The primary encryption read and the secondary encryption read are created by encrypting the data obtained by dividing the plaintext read stored in the storage unit into block units, and the primary encryption reference and primary encryption by the management server. According to the search result of the lead and the score of the secondary encryption reference by the management server and the search result of the secondary encryption lead, the secondary encryption reference with a high score is similar to the secondary encryption lead. judge.

検索エージェントは、検索キーワードと被検索データを共に暗号化したまま、検索キーワードに類似した、被検索データを管理サーバに検知させる処理を高速に行うことができる。   The search agent can perform a process of causing the management server to detect the searched data similar to the search keyword while encrypting both the search keyword and the searched data.

第一実施形態において、検索処理委託システムの概略を例示する図である。In a first embodiment, it is a figure which illustrates the outline of a search processing consignment system. 第一実施形態において、検索エージェントの機能の概略を例示する図である。FIG. 3 is a diagram illustrating an outline of a function of a search agent in the first embodiment. 第一実施形態において、管理サーバの機能の概略を例示する図である。In 1st embodiment, it is a figure which illustrates the outline of the function of a management server. コンピュータの概略構成を例示する図である。It is a figure which illustrates schematic structure of a computer. 第一実施形態において、検索エージェントと管理サーバがネットワーク100経由で実施する、1次暗号化リファレンスと2次暗号化リファレンスの登録処理の処理フローを例示する図である。4 is a diagram illustrating a processing flow of a registration process of a primary encryption reference and a secondary encryption reference, which is performed by a search agent and a management server via a network 100 in the first embodiment. FIG. 第一実施形態において、検索エージェントのデータ記憶部に格納される、平文リファレンスを例示する図である。It is a figure which illustrates the plaintext reference stored in the data storage part of a search agent in 1st embodiment. 第一実施形態において、管理サーバのデータ記憶部に格納される、1次暗号化リファレンスと2次暗号化リファレンスを例示する図である。FIG. 4 is a diagram illustrating a primary encryption reference and a secondary encryption reference stored in a data storage unit of the management server in the first embodiment. 第一実施形態において、検索エージェントと管理サーバがネットワーク100経由で実施する、2次暗号化リファレンスの検索処理の処理フローを例示する図である。FIG. 3 is a diagram illustrating a processing flow of a secondary encryption reference search process performed by the search agent and the management server via the network 100 in the first embodiment. 第一実施形態において、登録エージェントが1次暗号化リファレンスを作成する処理フローを例示する図である。FIG. 10 is a diagram illustrating a processing flow in which a registration agent creates a primary encryption reference in the first embodiment. 第一実施形態において、登録エージェントが2次暗号化リファレンスを作成する処理フローを例示する図である。FIG. 9 is a diagram illustrating a processing flow in which a registration agent creates a secondary encryption reference in the first embodiment. 第一実施形態において、検索エージェントが1次暗号化リードに該当する2次暗号化リファレンスを検索する処理フローを例示する図である。FIG. 7 is a diagram illustrating a processing flow in which a search agent searches for a secondary encryption reference corresponding to a primary encryption lead in the first embodiment. 第一実施形態において、登録エージェントが2次暗号化リードを作成する処理フローを例示する図である。FIG. 6 is a diagram illustrating a processing flow in which a registration agent creates a secondary encrypted lead in the first embodiment. 第一実施形態において、管理サーバが2次暗号化リードに該当する2次暗号化リファレンスを検索する処理フローを例示する図である。FIG. 10 is a diagram illustrating a processing flow in which the management server searches for a secondary encryption reference corresponding to a secondary encryption read in the first embodiment. 検索エージェント200の全体処理部211が出力部に表示した検索結果を例示図である。FIG. 10 is a view showing an example of search results displayed on the output unit by the overall processing unit 211 of the search agent 200.

以下、本発明の実施の形態を図面に基づいて詳細に説明する。なお、実施の形態において、同一の部材には原則として同一の符号を付け、繰り返しの説明は省略する。
(実施の形態1)
図1は、本発明の第一の実施の形態である検索処理システムの概略図である。図示するように、検索処理システムは、検索エージェント200と、管理サーバ300と、を備え、検索エージェント200と管理サーバ300は、ネットワーク100を介して相互に情報を送受信できるように設計されている。
Hereinafter, embodiments of the present invention will be described in detail with reference to the drawings. Note that, in the embodiment, the same members are, in principle, given the same reference numerals, and repeated description is omitted.
(Embodiment 1)
FIG. 1 is a schematic diagram of a search processing system according to the first embodiment of the present invention. As shown in the figure, the search processing system includes a search agent 200 and a management server 300, and the search agent 200 and the management server 300 are designed to be able to transmit and receive information to and from each other via a network 100.

本実施形態における検索エージェント200は、データと検索用のリファレンス(以下、リファレンスと呼ぶ)を管理サーバ300に送信し、受信結果を管理サーバ300から受信する送受信装置として機能し、かつ検索処理委託用のリード(以下、リードと呼ぶ)を管理サーバ300に送信し、その検索結果を管理サーバ300から受信する送受信装置として機能し、管理サーバ300は、リファレンスを記憶し、また受信したリードを用いて、リファレンスを検索する送受信装置として機能する。   The search agent 200 in the present embodiment functions as a transmission / reception device that transmits data and a reference for search (hereinafter referred to as a reference) to the management server 300 and receives a reception result from the management server 300, and for search processing consignment Of the server (hereinafter referred to as “lead”) to the management server 300 and functions as a transmission / reception device that receives the search result from the management server 300. The management server 300 stores the reference and uses the received lead. It functions as a transmission / reception device for searching for a reference.

<図2>
図2は、検索エージェント200の機能概略図である。図示するように、登録エージェント200は、制御部210と、記憶部220と、入力部201と、出力部202と、通信部203と、を備える。
<Figure 2>
FIG. 2 is a functional schematic diagram of the search agent 200. As illustrated, the registration agent 200 includes a control unit 210, a storage unit 220, an input unit 201, an output unit 202, and a communication unit 203.

記憶部220は、データ記憶部230と、プログラム記憶部260と、一時情報記憶部280と、を備える。   The storage unit 220 includes a data storage unit 230, a program storage unit 260, and a temporary information storage unit 280.

データ記憶部230には、管理サーバ300に送信するデータである、暗号化前のリファレンス(以下、平文リファレンス231と呼ぶ)に関する情報が記憶される。本実施形態においては、入力部201を介して、受け付けた平文リファレンス231に関する情報と、検索処理に用いる暗号化前のリード(以下、平文リード233)に関する情報と、管理サーバ300に(暗号化後に)登録する、平文リファレンス231に関する情報と、公開パラメータ237に関する情報が記憶される。また、リファレンス暗号化部213が出力する1次暗号化リファレンスと2次暗号化リファレンスに関する情報と、リード暗号化部217が出力する1次暗号化リードと2次暗号化リードに関する情報も記憶される。また、安全性の観点から登録エージェント200が秘密に管理すべき、秘密鍵251に関する情報も記憶される。   The data storage unit 230 stores information about a reference before encryption (hereinafter referred to as a plaintext reference 231), which is data to be transmitted to the management server 300. In the present embodiment, the information regarding the received plaintext reference 231, the information regarding the pre-encryption lead (hereinafter, plaintext lead 233) used for the search process, and the management server 300 (after encryption) via the input unit 201. ) Information related to the plaintext reference 231 to be registered and information related to the public parameter 237 are stored. In addition, information related to the primary encryption reference and the secondary encryption reference output from the reference encryption unit 213 and information related to the primary encryption read and the secondary encryption read output from the read encryption unit 217 are also stored. . In addition, information on the secret key 251 that should be secretly managed by the registration agent 200 from the viewpoint of security is also stored.

プログラム記憶部260には、鍵生成、暗号化、復号などの暗号処理全般を含めた、1次暗号化リファレンスと2次暗号化リファレンスの登録処理に関するプログラムと、1次暗号化リードと2次暗号化リードによる検索処理に関するプログラムが記憶されている。1次暗号化リファレンスと2次暗号化リファレンスの登録処理については、図5を用い、後で詳しく報告する。また、1次暗号化リードによる2次暗号化リファレンスの検索処理については、図8を用い、後で詳しく報告する。2次暗号化リードによる2次暗号化リファレンスの検索処理については、図9を用い、後で詳しく報告する。   The program storage unit 260 includes a program for primary encryption reference and secondary encryption reference registration processing, including primary encryption reference and secondary encryption reference, including encryption processing such as key generation, encryption, and decryption. Stores a program related to search processing using a computerized lead. The registration process of the primary encryption reference and the secondary encryption reference will be described in detail later using FIG. Further, the secondary encryption reference search processing by the primary encryption read will be described in detail later using FIG. The search processing of the secondary encryption reference by the secondary encryption read will be described in detail later using FIG.

一時情報記憶部280には、制御部210などの処理に必要な情報が記憶される。   The temporary information storage unit 280 stores information necessary for processing by the control unit 210 and the like.

制御部210は、全体処理部211と、鍵生成部212と、リファレンス暗号化部213と、リファレンス復号部215と、リード暗号化部217と、を備える。   The control unit 210 includes an overall processing unit 211, a key generation unit 212, a reference encryption unit 213, a reference decryption unit 215, and a read encryption unit 217.

全体処理部211は、プログラム記憶部260から、1次暗号化リファレンスと2次暗号化リファレンスの登録処理に関するプログラムをロードし、検索エージェント200における各モジュール間の制御を行い、さらに簡単な演算処理を実施する。   The overall processing unit 211 loads a program related to the registration processing of the primary encryption reference and the secondary encryption reference from the program storage unit 260, performs control between the modules in the search agent 200, and further performs simple arithmetic processing. carry out.

例えば、全体処理部211は、入力部201を介して、入力を受け付けた情報を、データ記憶部230に、平文リファレンス231として、記憶する処理を行う。また、本実施形態において、全体処理部211は、平文リファレンス231を、出力部202に表示する処理を行う。   For example, the overall processing unit 211 performs processing for storing the information received through the input unit 201 as the plaintext reference 231 in the data storage unit 230. In the present embodiment, the overall processing unit 211 performs processing for displaying the plaintext reference 231 on the output unit 202.

また、本実施形態において、全体処理部211は、データ記憶部230に記憶した平文リファレンス231を読み込み、リファレンス暗号化部213に入力し、出力されたデータを、データ記憶部230に、1次暗号化リファレンスまたは2次暗号化リファレンスとして、記憶する処理を行う。   In this embodiment, the overall processing unit 211 reads the plaintext reference 231 stored in the data storage unit 230, inputs the plaintext reference 231 to the reference encryption unit 213, and outputs the output data to the data storage unit 230 in the primary encryption. The process of storing as an encryption reference or a secondary encryption reference is performed.

また、本実施形態において、全体処理部211は、データ記憶部230に記憶した平文リード233を読み込み、リード暗号化部217に入力し、出力されたデータを、データ記憶部230に、1次暗号化リードまたは2次暗号化リードとして、記憶する処理を行う。   Further, in this embodiment, the overall processing unit 211 reads the plaintext read 233 stored in the data storage unit 230, inputs it to the read encryption unit 217, and outputs the output data to the data storage unit 230 as a primary encryption. To store as an encrypted read or secondary encrypted read.

また、本実施形態において、全体処理部211は、1次暗号化リファレンス、2次暗号化リファレンス、1次暗号化リード、2次暗号化リードを、通信部203を介して、管理サーバ300に送信し、受信結果を管理サーバ300から受信する処理を行う。   In this embodiment, the overall processing unit 211 transmits the primary encryption reference, the secondary encryption reference, the primary encryption read, and the secondary encryption lead to the management server 300 via the communication unit 203. The reception result is received from the management server 300.

また、本実施形態において、全体処理部211は、1次暗号化リードと2次暗号化リードを、通信部203を介して、管理サーバ300に送信し、2次暗号化リファレンスの検索結果を管理サーバ300から受信する処理を行う。   In this embodiment, the overall processing unit 211 transmits the primary encryption lead and the secondary encryption lead to the management server 300 via the communication unit 203, and manages the search result of the secondary encryption reference. Processing to receive from the server 300 is performed.

さらに、本実施形態において、全体処理部211は、管理サーバ300より、通信部203を介して受信した、2次暗号化リファレンスを一時情報記憶部280に記憶する処理と、出力部202に表示する処理を行う。   Further, in the present embodiment, the overall processing unit 211 stores the secondary encryption reference received from the management server 300 via the communication unit 203 in the temporary information storage unit 280 and displays it on the output unit 202. Process.

鍵生成部212は、秘密鍵251と公開パラメータ237を生成する処理を行う。例えば、本実施形態において、全体処理部211が公開パラメータ237を入力し、鍵生成部212が秘密鍵251を出力する処理を行う。なお、全体処理部211は公開パラメータ237の一部として記憶された公開パラメータ237をロードしてもよいし、入力部201を経由して鍵生成部212に入力してもよい。   The key generation unit 212 performs processing for generating the secret key 251 and the public parameter 237. For example, in the present embodiment, the overall processing unit 211 inputs the public parameter 237, and the key generation unit 212 performs a process of outputting the secret key 251. The overall processing unit 211 may load the public parameter 237 stored as a part of the public parameter 237, or may input the public parameter 237 to the key generation unit 212 via the input unit 201.

秘密鍵251の実現方法については、各暗号方式の鍵生成アルゴリズム(AES暗号、DES暗号、検索可能暗号など)の実装により、実現可能であるため、その詳細な説明は省く。   The method for realizing the secret key 251 can be realized by implementing a key generation algorithm (AES cipher, DES cipher, searchable cipher, etc.) of each encryption method, and thus detailed description thereof will be omitted.

リファレンス暗号化部213(と、検索エージェント200のリード暗号化部217)が用いる、秘密鍵251と公開パラメータ237の実現方法については、各暗号方式の鍵生成方法(検索可能暗号など)の実装により、実現可能であるため、その詳細な説明は省く。   The method of realizing the secret key 251 and the public parameter 237 used by the reference encryption unit 213 (and the read encryption unit 217 of the search agent 200) depends on the implementation of the key generation method (searchable encryption, etc.) of each encryption method. Since it is feasible, the detailed description is omitted.

リファレンス暗号化部213は、全体処理部211と連携し、平文リファレンス231を暗号化する処理を行う。平文リファレンス231とは、文字、数字、記号から構成されるディジタルデータである。図6(a)は、DNAの塩基配列を意味する文字(A:アデニン、G:グアニン、C:シトシン、T:チミン)から構成されるディジタルデータである、平文リファレンス231を例示したものである。   The reference encryption unit 213 performs a process of encrypting the plaintext reference 231 in cooperation with the overall processing unit 211. The plaintext reference 231 is digital data composed of letters, numbers, and symbols. FIG. 6 (a) shows an example of plaintext reference 231 which is digital data composed of letters (A: adenine, G: guanine, C: cytosine, T: thymine) meaning the base sequence of DNA. .

リード暗号化部217は、全体処理部211と連携し、平文リード233を暗号化する処理を行う。平文リード233は、平文リファレンス231と同様に、文字、数字、記号から構成されるディジタルデータである。   The read encryption unit 217 cooperates with the overall processing unit 211 to perform processing for encrypting the plaintext lead 233. The plaintext lead 233 is digital data composed of letters, numbers, and symbols, like the plaintext reference 231.

本実施形態においては、全体処理部211が平文リファレンス231と秘密鍵251をリファレンス暗号化部213に入力し、リファレンス暗号化部213は1次暗号化リファレンスと2次暗号化リファレンスを出力する処理を行う。1次暗号化リファレンスの作成方法については、図8を用い、後で詳しく説明する。2次暗号化リファレンスの作成方法については、図9を用い、後で詳しく説明する。   In this embodiment, the overall processing unit 211 inputs the plaintext reference 231 and the secret key 251 to the reference encryption unit 213, and the reference encryption unit 213 performs a process of outputting the primary encryption reference and the secondary encryption reference. Do. A method for creating the primary encryption reference will be described later in detail with reference to FIG. A method for creating the secondary encryption reference will be described later in detail with reference to FIG.

本実施形態において、全体処理部211が平文リード233と秘密鍵251をリード暗号化部217に入力し、リード暗号化部217は1次暗号化リードと2次暗号化リードを出力する処理を行う。1次暗号化リードの作成方法については、図10を用い、後で詳しく説明する。2次暗号化リードの作成方法については、図11を用い、後で詳しく説明する。   In this embodiment, the overall processing unit 211 inputs the plaintext lead 233 and the secret key 251 to the read encryption unit 217, and the read encryption unit 217 performs a process of outputting the primary encryption read and the secondary encryption read. . The method for creating the primary encrypted lead will be described later in detail with reference to FIG. The method for creating the secondary encrypted lead will be described in detail later with reference to FIG.

<図3>
図3は、管理サーバ300の機能概略図である。図示するように、管理サーバ300は、制御部310と、記憶部320と、入力部301と、出力部302と、通信部303と、を備える。
<Figure 3>
FIG. 3 is a functional schematic diagram of the management server 300. As illustrated, the management server 300 includes a control unit 310, a storage unit 320, an input unit 301, an output unit 302, and a communication unit 303.

記憶部320は、プログラム記憶部360と、データ記憶部330と、一時情報記憶部380と、を備える。   The storage unit 320 includes a program storage unit 360, a data storage unit 330, and a temporary information storage unit 380.

データ記憶部330には、通信部303を介して、登録エージェント200から受信したデータに関する情報が、記憶される。本実施形態において、通信部303を介して、受信した1次暗号化リファレンス331と2次暗号化リファレンス332に関する情報が記憶される。また、公開パラメータ337に関する情報が記憶される。また、通信部303を介して、検索エージェント200から受信したデータに関する情報が、記憶される。本実施形態において、通信部303を介して、受信した1次暗号化リードと2次暗号化リードに関する情報が一時的に記憶される。   Information relating to data received from the registration agent 200 via the communication unit 303 is stored in the data storage unit 330. In the present embodiment, information regarding the primary encryption reference 331 and the secondary encryption reference 332 received via the communication unit 303 is stored. In addition, information related to the public parameter 337 is stored. In addition, information related to data received from the search agent 200 via the communication unit 303 is stored. In the present embodiment, information regarding the received primary encryption lead and secondary encryption lead is temporarily stored via the communication unit 303.

プログラム記憶部360には、2次暗号化リファレンス332の検索処理に関するプログラムが記憶されている。2次暗号化リファレンス332の検索処理については、図10と図12を用い、後で詳しく報告する。   The program storage unit 360 stores a program related to the search process for the secondary encryption reference 332. The search processing of the secondary encryption reference 332 will be described in detail later using FIG. 10 and FIG.

一時情報記憶部380には、制御部310での処理で必要となる情報が記憶される。   The temporary information storage unit 380 stores information necessary for processing in the control unit 310.

制御部310は、全体処理部311と、検索部312と、を備える。   The control unit 310 includes an overall processing unit 311 and a search unit 312.

全体処理部311は、プログラム記憶部360から、2次暗号化リファレンス332の検索処理に関するプログラムをロードし、管理サーバ300における各モジュール間の制御を行い、さらに簡単な演算処理を実施する。   The overall processing unit 311 loads a program related to the search processing of the secondary encryption reference 332 from the program storage unit 360, performs control between the modules in the management server 300, and performs simpler arithmetic processing.

例えば、全体処理部311は、通信部303を介して、1次暗号化リファレンス331、2次暗号化リファレンス332、1次暗号化リード、2次暗号化リードを、登録エージェント200から受信し、データ記憶部330に、記憶する処理を行う。1次暗号化リファレンス331と2次暗号化リファレンス332の保管方法については、図6(a)と図6(b)を用い、後で詳しく報告する。   For example, the overall processing unit 311 receives the primary encryption reference 331, the secondary encryption reference 332, the primary encryption lead, and the secondary encryption lead from the registration agent 200 via the communication unit 303, and the data Processing to be stored in the storage unit 330 is performed. The storage method of the primary encryption reference 331 and the secondary encryption reference 332 will be described in detail later using FIG. 6 (a) and FIG. 6 (b).

また、本実施形態において、全体処理部311は、通信部303を介して、1次暗号化リードと2次暗号化リードを、検索エージェント200から受信し、データ記憶部330に、記憶する処理を行う。   In the present embodiment, the overall processing unit 311 receives the primary encryption lead and the secondary encryption lead from the search agent 200 via the communication unit 303, and stores the data in the data storage unit 330. Do.

また、本実施形態において、全体処理部311は、1次暗号化リードと1次暗号化リファレンス331を検索部312に入力し、または2次暗号化リードと2次暗号化リファレンス332を検索部312に入力し、検索部312が出力したデータを、受け取る処理を行う。   In the present embodiment, the overall processing unit 311 inputs the primary encryption lead and the primary encryption reference 331 to the search unit 312 or the secondary encryption lead and the secondary encryption reference 332 as the search unit 312. The data received by the search unit 312 is received.

さらに、全体処理部311は、検索エージェント200または登録エージェント200より、通信部303を介して受信したデータに関する情報を、一時情報記憶部380に記憶する処理と、出力部302に表示する処理を行う。   Furthermore, the overall processing unit 311 performs processing for storing information related to data received from the search agent 200 or the registration agent 200 via the communication unit 303 in the temporary information storage unit 380 and processing for displaying the information on the output unit 302. .

<図4>
以上に示した検索エージェント200、管理サーバ300は、例えば、図4(コンピュータの概略図)に示すような、CPU501と、メモリ502と、HDD等の外部記憶装置503と、CDやDVD等の可搬性を有する記憶媒体508に対して情報を読み書きする読書装置507と、キーボードやマウス等の入力装置506と、ディスプレイ等の出力装置505と、通信ネットワークに接続するためのNIC等の通信装置504と、これらを連結するシステムバス等の内部通信線(システムバスという)と、を備えた一般的なコンピュータで実現できる。
<Figure 4>
The search agent 200 and the management server 300 described above are, for example, a CPU 501, a memory 502, an external storage device 503 such as an HDD, a CD, a DVD, etc. as shown in FIG. 4 (schematic diagram of a computer). A reading device 507 for reading / writing information from / to a portable storage medium 508, an input device 506 such as a keyboard and a mouse, an output device 505 such as a display, and a communication device 504 such as a NIC for connecting to a communication network; It can be realized by a general computer provided with an internal communication line (referred to as a system bus) such as a system bus for connecting them.

例えば、記憶部220、320は、CPU501がメモリ502または外部記憶装置503を利用することにより実現可能であり、制御部210、310に含まれる各処理部は、外部記憶装置503に記憶されている所定のプログラムをメモリ502にロードしてCPU501で実行することで実現可能であり、入力部201、301は、CPU501が入力装置506を利用することで実現可能であり、出力部202、302は、CPU501が出力装置505を利用することで実現可能であり、通信部203、303は、CPU501が通信装置504を利用することで実現可能である。   For example, the storage units 220 and 320 can be realized by the CPU 501 using the memory 502 or the external storage device 503, and each processing unit included in the control units 210 and 310 is stored in the external storage device 503. It can be realized by loading a predetermined program into the memory 502 and executed by the CPU 501, the input units 201 and 301 can be realized by using the input device 506 by the CPU 501, and the output units 202 and 302 are This can be realized by using the output device 505 by the CPU 501, and the communication units 203 and 303 can be realized by using the communication device 504 by the CPU 501.

この所定のプログラムは、読書装置507を介して記憶媒体508から、あるいは、通信装置504を介してネットワーク100から、外部記憶装置503に記憶(ダウンロード)され、それから、メモリ502上にロードされて、CPU501により実行されるようにしてもよい。また、読書装置507を介して、記憶媒体508から、あるいは通信装置504を介してネットワーク100から、メモリ502上に直接ロードされ、CPU501により実行されるようにしてもよい。   The predetermined program is stored (downloaded) in the external storage device 503 from the storage medium 508 via the reading device 507 or from the network 100 via the communication device 504, and then loaded onto the memory 502, It may be executed by the CPU 501. Alternatively, the program may be directly loaded on the memory 502 from the storage medium 508 via the reading device 507 or from the network 100 via the communication device 504 and executed by the CPU 501.

<図5:1次暗号化リファレンス331と2次暗号化リファレンス332の登録処理>
図5は、本実施形態において、ネットワーク100を経由し、検索エージェント200が送信した1次暗号化リファレンスと2次暗号化リファレンスを、管理サーバ300が、記憶部320へ登録する処理を示すシーケンス図である。
<FIG. 5: Registration Process of Primary Encryption Reference 331 and Secondary Encryption Reference 332>
FIG. 5 is a sequence diagram illustrating processing in which the management server 300 registers the primary encryption reference and the secondary encryption reference transmitted by the search agent 200 via the network 100 in the storage unit 320 in the present embodiment. It is.

検索エージェント200の全体処理部211は、平文リファレンス231をロードし、リファレンス暗号化部213へ入力する(S601)。   The entire processing unit 211 of the search agent 200 loads the plaintext reference 231 and inputs it to the reference encryption unit 213 (S601).

検索エージェント200のリファレンス暗号化部213は、記憶部220に格納された秘密鍵251と公開パラメータ237をロードし、平文リファレンス231を1次暗号化リファレンスと2次暗号化リファレンスに変換する。なお、変換方法については、図8と図9を用い、後で詳しく説明する(S602)。   The reference encryption unit 213 of the search agent 200 loads the secret key 251 and the public parameter 237 stored in the storage unit 220, and converts the plaintext reference 231 into a primary encryption reference and a secondary encryption reference. The conversion method will be described in detail later with reference to FIGS. 8 and 9 (S602).

検索エージェント200の通信部203は、リファレンス暗号化部213より出力された1次暗号化リファレンスと2次暗号化リファレンスを、ネットワーク100を経由し、管理サーバ300へ送信する処理を行う(S603)。   The communication unit 203 of the search agent 200 performs processing of transmitting the primary encryption reference and the secondary encryption reference output from the reference encryption unit 213 to the management server 300 via the network 100 (S603).

管理サーバ300の通信部303から、ネットワーク100を経由し、登録エージェント200が送信した1次暗号化リファレンスと2次暗号化リファレンスを受信する処理を行う(S604)。   A process of receiving the primary encryption reference and the secondary encryption reference transmitted by the registration agent 200 from the communication unit 303 of the management server 300 via the network 100 is performed (S604).

管理サーバ300の全体処理部311は、1次暗号化リファレンス331と2次暗号化リファレンス332を記憶部320へ格納する(S605)。
管理サーバ300は、1次暗号化リファレンス331と2次暗号化リファレンス332の記憶部320への格納処理を終えた場合、「登録成功」とし、通信部303から、ネットワーク100を経由し、「登録成功」を示すデータを検索エージェント200へ送信する処理を行う。また、記憶量の制限等を理由に、格納処理が終了できなかった場合、「登録失敗」とし、通信部303から、ネットワーク100を経由し、「登録失敗」を示すデータを検索エージェント200へ送信する処理を行う(S606)。
The overall processing unit 311 of the management server 300 stores the primary encryption reference 331 and the secondary encryption reference 332 in the storage unit 320 (S605).
When the management server 300 finishes storing the primary encryption reference 331 and the secondary encryption reference 332 in the storage unit 320, the management server 300 sets “registration success”, and transmits the “registration” from the communication unit 303 via the network 100. A process of transmitting data indicating “success” to the search agent 200 is performed. In addition, if the storage process cannot be completed due to the limitation of the storage amount, etc., “registration failure” is determined, and data indicating “registration failure” is transmitted from the communication unit 303 via the network 100 to the search agent 200. (S606).

検索エージェント200の通信部203から、ネットワーク100を経由し、管理サーバ300が送信した「登録成功」または「登録失敗」を示すデータを受信する処理を行う(S607)。   A process of receiving data indicating “registration success” or “registration failure” transmitted from the management server 300 via the network 100 from the communication unit 203 of the search agent 200 is performed (S607).

上記の処理(S601からS607)により、検索エージェント200は、ネットワーク100経由で、管理サーバ300に平文リファレンス231を暗号化し、管理サーバ300のの記憶部320への格納を指示し、その処理結果を確認できる。   Through the above processing (S601 to S607), the search agent 200 encrypts the plaintext reference 231 to the management server 300 via the network 100, instructs the management server 300 to store it in the storage unit 320, and displays the processing result. I can confirm.

なお、上記の処理手順は、固定されたものではなく、処理手順を変更して実施してもかまわない。例えば、検索エージェント200は、1次暗号化リファレンスを作成、送信後に、2次暗号化リファレンス332を作成、送信するようにS602とS603を変更してもよい。また、管理サーバ300も、1次暗号化リファレンスと2次暗号化リファレンスの受信、記憶処理を個別に実施してもよい。同様に、他の処理内容を変更してもよい。   Note that the above processing procedure is not fixed, and the processing procedure may be changed. For example, the search agent 200 may change S602 and S603 to create and transmit the secondary encryption reference 332 after creating and transmitting the primary encryption reference. In addition, the management server 300 may separately perform reception and storage processing of the primary encryption reference and the secondary encryption reference. Similarly, other processing contents may be changed.

<図6:平文リファレンス231と1次暗号化リファレンス331と2次暗号化リファレンス332>
図6(a)は、検索エージェント200の記憶部220内のデータ記憶部230における平文リファレンス231を例示している。図6(a)の例では、平文リファレンス231は1文字毎に分割可能なアルファベットや記号(終端文字など)による、m文字のデータ(バイトコードなどで表現)として表現されている。
<FIG. 6: Plaintext Reference 231 and Primary Encryption Reference 331 and Secondary Encryption Reference 332>
FIG. 6A illustrates the plaintext reference 231 in the data storage unit 230 in the storage unit 220 of the search agent 200. In the example of FIG. 6 (a), the plaintext reference 231 is expressed as m-character data (expressed in byte code or the like) using alphabets and symbols (terminal characters etc.) that can be divided into characters.

図6(b)は、管理サーバ300の記憶部320内のデータ記憶部330における1次暗号化リファレンス331と2次暗号化リファレンス332を例示している。図6(b)の例では、1次暗号化リファレンス331は一定数の文字列毎(11文字毎など)に平文リファレンス231が暗号化されている。図6(a)の例を用いると、 B1ブロックはGCTATACTGCTの11文字の文字列からなり、これを暗号化したEs(B1)が1つの暗号文として保存されている。同様に、B2ブロックは、B1ブロックを1文字ずらしたCTATACTGCTAの文字列からなり、これを暗号化したEs(B2)がEs(B1)と同様に保存されている。また、2次暗号化リファレンス332はある暗号化されたインデックスと平文リファレンス231の一文字を連結し、これが暗号化して保存されている。同様に、他の文字列も暗号化され、(m-10)個の暗号文から、1次暗号化リファレンス331は構成される。図6(b)の例では、インデックス1が暗号化されたE(1)と平文リファレンス231の一文字目であるGが(G||E(1))として連結され(ただし、||はデータの連結を意味する)、これを暗号化したEs(G||E(1))が一つの暗号文として保存されている。同様に、インデックス2が暗号化されたE(2)と平文リファレンス231の一文字目であるCが(C||E(2))として連結され、これを暗号化したEs(C||E(2))が、Es(G||E(1))と同様に保存されている。同様に、他の文字も暗号化され、m個の暗号文から、2次暗号化リファレンス332は構成される。   FIG. 6B illustrates the primary encryption reference 331 and the secondary encryption reference 332 in the data storage unit 330 in the storage unit 320 of the management server 300. In the example of FIG. 6B, in the primary encryption reference 331, the plaintext reference 231 is encrypted for every fixed number of character strings (for example, every 11 characters). Using the example of FIG. 6 (a), the B1 block consists of a character string of 11 characters GCTATACTGCT, and Es (B1) obtained by encrypting this is stored as one ciphertext. Similarly, the B2 block is composed of a CTATACTGCTA character string obtained by shifting the B1 block by one character, and Es (B2) obtained by encrypting this is stored in the same manner as Es (B1). Further, the secondary encryption reference 332 concatenates a certain encrypted index and one character of the plaintext reference 231, and this is encrypted and stored. Similarly, other character strings are also encrypted, and the primary encryption reference 331 is composed of (m-10) ciphertexts. In the example of FIG. 6 (b), E (1) in which index 1 is encrypted and G which is the first character of plaintext reference 231 are concatenated as (G || E (1)) (where || Es (G || E (1)) obtained by encrypting this is stored as one ciphertext. Similarly, E (2) in which index 2 is encrypted and C which is the first character of plaintext reference 231 are concatenated as (C || E (2)), and Es (C || E ( 2)) is stored in the same way as Es (G || E (1)). Similarly, other characters are also encrypted, and the secondary encryption reference 332 is composed of m ciphertexts.

<図7と図13:1次暗号化リファレンスと2次暗号化リファレンスの検索処理>
図7は、本実施形態において、ネットワーク100を経由し、検索エージェント200が送信した暗号化リードを用い、管理サーバ300が、記憶部320へ登録された1次暗号化リファレンス331と2次暗号化リファレンス332から、暗号化リードに関連する部分的な2次暗号化リファレンスを発見する処理を示すシーケンス図である。
<FIGS. 7 and 13: Search processing of primary encryption reference and secondary encryption reference>
FIG. 7 shows that in this embodiment, the management server 300 uses the encrypted read transmitted by the search agent 200 via the network 100 and the primary encryption reference 331 registered in the storage unit 320 and the secondary encryption. FIG. 38 is a sequence diagram showing processing for finding a partial secondary encryption reference related to an encryption read from reference 332;

検索エージェント200の全体処理部211は、平文リード233をロードし、リード暗号化部217へ入力する(S801)。   The entire processing unit 211 of the search agent 200 loads the plaintext lead 233 and inputs it to the read encryption unit 217 (S801).

検索エージェント200のリード暗号化部217は、記憶部220に格納された秘密鍵251と公開パラメータ237をロードし、平文リード233を1次暗号化リード213に変換する。なお、変換方法については、S1101からS1108の各処理で詳しく説明する(S802)。   The read encryption unit 217 of the search agent 200 loads the secret key 251 and the public parameter 237 stored in the storage unit 220, and converts the plaintext lead 233 into the primary encryption lead 213. The conversion method will be described in detail in each processing from S1101 to S1108 (S802).

検索エージェント200の通信部203は、リード暗号化部217より出力された1次暗号化リードを、ネットワーク100を経由し、管理サーバ300へ送信する処理を行う(S803)。   The communication unit 203 of the search agent 200 performs processing of transmitting the primary encrypted lead output from the read encryption unit 217 to the management server 300 via the network 100 (S803).

管理サーバ300の通信部303から、ネットワーク100を経由し、登録エージェント200が送信した1次暗号化リードを受信する処理を行う(S804)。   From the communication unit 303 of the management server 300, a process of receiving the primary encryption read transmitted by the registration agent 200 via the network 100 is performed (S804).

管理サーバ300の全体処理部311は、記憶部320へ格納された2次暗号化リファレンス332から、1次暗号化リードに該当する、2次暗号化リファレンス332の部分データを抽出する。この抽出にあたっては、図10を用い、後で詳しく報告する(S805)。   The overall processing unit 311 of the management server 300 extracts partial data of the secondary encryption reference 332 corresponding to the primary encryption read from the secondary encryption reference 332 stored in the storage unit 320. This extraction will be described in detail later using FIG. 10 (S805).

管理サーバ300は、通信部303から、ネットワーク100を経由し、抽出した2次暗号化リファレンス332の部分データを検索エージェント200へ送信する処理を行う(S806)。   The management server 300 performs a process of transmitting the extracted partial data of the secondary encryption reference 332 from the communication unit 303 via the network 100 to the search agent 200 (S806).

検索エージェント200は、通信部203から、ネットワーク100を経由し、管理サーバ300が送信した2次暗号化リファレンスの部分データを受信する処理を行う(S807)。   The search agent 200 performs processing for receiving, from the communication unit 203, the partial data of the secondary encryption reference transmitted by the management server 300 via the network 100 (S807).

検索エージェント200は、記憶部220に格納された秘密鍵251と公開パラメータ237をロードし、リファレンス復号部215を用い、2次暗号化リファレンスの部分データを、平文リファレンスの部分データに復号する(S808)。   The search agent 200 loads the secret key 251 and the public parameter 237 stored in the storage unit 220, and uses the reference decryption unit 215 to decrypt the secondary encryption reference partial data into plaintext reference partial data (S808). ).

検索エージェント200は、平文リファレンスの部分データを用い、リード暗号化部217は、2次暗号化リード213を作成する。なお、2次暗号化リードの作成方法については、図11を用い、後で詳しく説明する(S809)。   The search agent 200 uses the partial data of the plaintext reference, and the read encryption unit 217 creates the secondary encrypted lead 213. The method for creating the secondary encrypted lead will be described later in detail with reference to FIG. 11 (S809).

検索エージェント200の通信部203は、リード暗号化部217より出力された2次暗号化リードを、ネットワーク100を経由し、管理サーバ300へ送信する処理を行う(S810)。   The communication unit 203 of the search agent 200 performs processing for transmitting the secondary encrypted lead output from the read encryption unit 217 to the management server 300 via the network 100 (S810).

管理サーバ300の通信部303から、ネットワーク100を経由し、登録エージェント200が送信した1次暗号化リードを受信する処理を行う(S811)。   From the communication unit 303 of the management server 300, a process of receiving the primary encryption read transmitted by the registration agent 200 via the network 100 is performed (S811).

管理サーバ300の全体処理部311は、記憶部320へ格納された2次暗号化リファレンス332から、2次暗号化リードに該当する、2次暗号化リファレンス332の部分データを抽出する。この抽出にあたっては、図12を用い、後で詳しく報告する(S812)
管理サーバ300は、通信部303から、ネットワーク100を経由し、抽出した2次暗号化リファレンスの部分データを検索エージェント200へ送信する処理を行う(S813)。
The overall processing unit 311 of the management server 300 extracts partial data of the secondary encryption reference 332 corresponding to the secondary encryption read from the secondary encryption reference 332 stored in the storage unit 320. This extraction will be described in detail later using FIG. 12 (S812)
The management server 300 performs processing for transmitting the extracted partial data of the secondary encryption reference from the communication unit 303 via the network 100 to the search agent 200 (S813).

検索エージェント200は、通信部203から、ネットワーク100を経由し、管理サーバ300が送信した2次暗号化リファレンスの部分データを受信する処理を行う(S814)。   The search agent 200 performs processing for receiving, from the communication unit 203, the partial data of the secondary encryption reference transmitted by the management server 300 via the network 100 (S814).

検索エージェント200の全体処理部211は、記憶部220に格納された秘密鍵251と公開パラメータ237をロードし、リファレンス復号部215を用い、2次暗号化リファレンスの部分データを、平文リファレンス231の部分データに復号する(S815)。   The entire processing unit 211 of the search agent 200 loads the secret key 251 and the public parameter 237 stored in the storage unit 220, and uses the reference decryption unit 215 to convert the partial data of the secondary encryption reference into the part of the plaintext reference 231. The data is decrypted (S815).

検索エージェント200の全体処理部211は、平文リファレンスの部分データと平文リード233のエディット距離が最も近くなるよう、平文リファレンスの部分データを変更する(S816)。   The entire processing unit 211 of the search agent 200 changes the plaintext reference partial data so that the edit distance between the plaintext reference partial data and the plaintext lead 233 is the shortest (S816).

上記の処理(S801からS816)により、検索エージェント200は、ネットワーク100経由で、管理サーバ300の記憶部320へ登録された1次暗号化リファレンス331と2次暗号化リファレンスから、1次暗号化リードと2次暗号化リードに類似した2次暗号化リファレンスの部分データを発見できる。   Through the above processing (S801 to S816), the search agent 200 can obtain the primary encryption read from the primary encryption reference 331 and the secondary encryption reference registered in the storage unit 320 of the management server 300 via the network 100. And partial data of secondary encryption reference similar to secondary encryption lead.

図13に、検索エージェント200の全体処理部211が出力部に表示した検索結果を例示する。1行目の合致率とは、2次暗号化クエリと2次暗号化リファレンスの検索結果が同じである割合を指す。2行目の得点については、図14を用い、後で詳しく説明する。3行目以降に、類似する2次暗号化クエリと2次暗号化リファレンスを復号した結果を表示している。   FIG. 13 illustrates search results displayed on the output unit by the overall processing unit 211 of the search agent 200. The match rate on the first line refers to the rate at which the search results of the secondary encryption query and the secondary encryption reference are the same. The score on the second row will be described later in detail with reference to FIG. From the third line onward, similar secondary encryption queries and secondary encryption reference decryption results are displayed.

なお、上記の処理手順は、固定されたものではなく、処理手順や処理内容を変更して実施してもかまわない。例えば、検索エージェント200は、1次暗号化リードと、2次暗号化リードを作成(S808)後、1次暗号化リードの送信(S804)、2次暗号化リードの送信(S808)を実行してもよい。同様に、他の処理内容を変更してもよい。   Note that the above processing procedure is not fixed, and the processing procedure and processing content may be changed and executed. For example, the search agent 200 creates a primary encryption lead and a secondary encryption lead (S808), and then transmits a primary encryption lead (S804) and a secondary encryption lead (S808). May be. Similarly, other processing contents may be changed.

<図8:1次暗号化リファレンスの作成処理>
図8は、本実施形態の(S602)において、検索エージェント200が、平文リファレンスを1次暗号化リファレンスに変換する処理を示すシーケンス図である。
<Figure 8: Primary encryption reference creation process>
FIG. 8 is a sequence diagram illustrating processing in which the search agent 200 converts the plaintext reference into the primary encryption reference in (S602) of the present embodiment.

検索エージェント200の全体処理部211は、リファレンス暗号化部213に、ロードした秘密鍵251と公開パラメータ237と、平文リファレンスを入力する(S901)。   The overall processing unit 211 of the search agent 200 inputs the loaded secret key 251, public parameter 237, and plaintext reference to the reference encryption unit 213 (S 901).

検索エージェント200の全体処理部211は、リファレンスの分割単位を意味するブロック長wを設定する(S902)。(図6(b)の例では、1次暗号化リファレンスのブロック長wは11文字である。)
検索エージェント200の全体処理部211は、インデックスiの値を初期値1に設定(i←1)し、また終了値を設定する(S903)。以降は、図6(b)の例に倣い、終了値は文字数mが設定されるものとする。
The overall processing unit 211 of the search agent 200 sets a block length w that means a reference division unit (S902). (In the example of FIG. 6B, the block length w of the primary encryption reference is 11 characters.)
The overall processing unit 211 of the search agent 200 sets the value of the index i to the initial value 1 (i ← 1) and sets the end value (S903). Thereafter, following the example of FIG. 6B, the end value is set to the number of characters m.

検索エージェント200の全体処理部211は、平文リファレンスにおけるi番目の文字からw+(i-1)番目の文字を抜き出し、これをブロックBiとして、リファレンス暗号化部213へ入力する(従って、1ブロックはw個の文字列からなる)(S904)。   The overall processing unit 211 of the search agent 200 extracts the w + (i−1) th character from the i-th character in the plaintext reference, and inputs this as a block Bi to the reference encryption unit 213 (therefore, one block is (consisting of w character strings) (S904).

検索エージェント200のリファレンス暗号化部213は、ブロックBiを暗号化し、暗号文Es(Bi)を作成する(S905)。   The reference encryption unit 213 of the search agent 200 encrypts the block Bi and creates a ciphertext Es (Bi) (S905).

検索エージェント200の全体処理部211は、インデックスiを1つインクリメントする(i←i+1)(S906)。   The overall processing unit 211 of the search agent 200 increments the index i by 1 (i ← i + 1) (S906).

検索エージェント200の全体処理部211は、インデックスiが終了値を超えているかを判定する(i>m?)(S907)。越えていない場合は、S904へ戻る。越えている場合は、S908へ進む。   The overall processing unit 211 of the search agent 200 determines whether the index i exceeds the end value (i> m?) (S907). If not, return to S904. If it exceeds, go to S908.

検索エージェント200の全体処理部211は、S905において、逐次的に作成したEs(B1)からEs(Bm)を、1次暗号化リファレンスとして、記憶部220へ格納する(S908)。   The entire processing unit 211 of the search agent 200 stores Es (B1) to Es (Bm) sequentially generated in S905 in the storage unit 220 as the primary encryption reference (S908).

上記の処理(S901からS908)により、検索エージェント200は、平文リファレンスをワード長毎に分割し、これをリファレンス暗号化部により暗号化した、1次暗号化リファレンス331を作成できる。   Through the above processing (S901 to S908), the search agent 200 can create a primary encryption reference 331 in which the plaintext reference is divided for each word length and is encrypted by the reference encryption unit.

なお、上記の処理手順は、固定されたものではなく、処理手順や処理内容を変更して実施してもかまわない。例えば、検索エージェント200は、複数のブロックを抜き出し(S904)、それらを暗号化し(S905)、インクリメントする数を増やしてもよい(S906)。同様に、他の処理内容を変更してもよい。   Note that the above processing procedure is not fixed, and the processing procedure and processing content may be changed and executed. For example, the search agent 200 may extract a plurality of blocks (S904), encrypt them (S905), and increase the number of increments (S906). Similarly, other processing contents may be changed.

<図9:2次暗号化リファレンスの作成処理>
図9は、本実施形態の(S602)において、検索エージェント200が、平文リファレンスを2次暗号化リファレンスに変換する処理を示すシーケンス図である。
<Figure 9: Processing for creating secondary encryption reference>
FIG. 9 is a sequence diagram illustrating processing in which the search agent 200 converts the plaintext reference into the secondary encryption reference in (S602) of the present embodiment.

検索エージェント200のリファレンス暗号化部213に、全体処理部211によってロードされた秘密鍵251と公開パラメータ237と、平文リファレンスが入力される(S1001)。   The secret key 251 loaded by the overall processing unit 211, the public parameter 237, and the plaintext reference are input to the reference encryption unit 213 of the search agent 200 (S1001).

検索エージェント200の全体処理部211は、リファレンスの分割単位を意味するブロック長wを設定する(S1002)。(図6(b)の例では、2次暗号化リファレンスのブロック長wは1文字である。)
検索エージェント200の全体処理部211は、インデックスiの値を初期値1に設定(i←1)し、また終了値を設定する(S1003)。以降は、図6(b)の例に倣い、終了値は文字数mが設定されるものとする。
The overall processing unit 211 of the search agent 200 sets a block length w that means a reference division unit (S1002). (In the example of FIG. 6B, the block length w of the secondary encryption reference is 1 character.)
The overall processing unit 211 of the search agent 200 sets the value of the index i to the initial value 1 (i ← 1) and sets the end value (S1003). Thereafter, following the example of FIG. 6B, the end value is set to the number of characters m.

検索エージェント200の全体処理部211は、インデックスiを暗号化し、暗号文E(i)を作成する(S1004)。   The overall processing unit 211 of the search agent 200 encrypts the index i and creates a ciphertext E (i) (S1004).

検索エージェント200の全体処理部211は、平文リファレンスにおけるi番目の文字からw+(i-1)番目の文字を抜き出し、これをブロックCiとする(従って、1ブロックはw個の文字列からなる)(S1005)。   The overall processing unit 211 of the search agent 200 extracts the w + (i−1) th character from the i-th character in the plaintext reference and sets it as a block Ci (thus, one block consists of w character strings). (S1005).

検索エージェント200の全体処理部211は、抽出したブロックCiと暗号化したインデックスE(i)を連結し、それをリファレンス暗号化部213に入力し、暗号文Es(Ci||E(i))を作成する(S1006)。ただし、||はデータの連結を意味する(S1006)。   The overall processing unit 211 of the search agent 200 concatenates the extracted block Ci and the encrypted index E (i), and inputs them to the reference encryption unit 213, where the ciphertext Es (Ci || E (i)) Is created (S1006). However, || means concatenation of data (S1006).

検索エージェント200の全体処理部211は、インデックスiを1つインクリメントする(i←i+1)(S1007)。   The overall processing unit 211 of the search agent 200 increments the index i by 1 (i ← i + 1) (S1007).

検索エージェント200の全体処理部211は、インデックスiが終了値を超えているかを判定する(i>m?)(S1008)。越えていない場合は、S1005へ戻る。越えている場合は、S1009へ進む。   The overall processing unit 211 of the search agent 200 determines whether the index i exceeds the end value (i> m?) (S1008). If not, return to S1005. If it exceeds, go to S1009.

検索エージェント200の全体処理部211は、S1005において、逐次的に作成したEs(C1||E(1))からEs(Cm||E(m))を、2次暗号化リファレンスとして、記憶部220へ格納する(S1009)。   The entire processing unit 211 of the search agent 200 stores Es (C1 || E (1)) to Es (Cm || E (m)), which are sequentially created in S1005, as a secondary encryption reference. Store in 220 (S1009).

上記の処理(S1001からS1009)により、検索エージェント200は、平文リファレンスをワード長毎に分割し、インデックスを連結したデータをリファレンス暗号化部により暗号化した、2次暗号化リファレンス332を作成できる。   Through the above processing (S1001 to S1009), the search agent 200 can create the secondary encryption reference 332 in which the plaintext reference is divided for each word length and the index concatenated data is encrypted by the reference encryption unit.

なお、上記の処理手順は、固定されたものではなく、処理手順や処理内容を変更して実施してもかまわない。例えば、検索エージェント200は、複数のブロックを抜き出し(S1005)、それらを暗号化し(S1006)、インデックスiのインクリメントする数を増やしてもよい(S1006)。同様に、他の処理内容を変更してもよい。   Note that the above processing procedure is not fixed, and the processing procedure and processing content may be changed and executed. For example, the search agent 200 may extract a plurality of blocks (S1005), encrypt them (S1006), and increase the number of increments of the index i (S1006). Similarly, other processing contents may be changed.

<図なし:1次暗号化リードの作成処理>
本実施形態の(S802)において、検索エージェント200が、平文リード233を1次暗号化リードに変換する処理を示す。
<No figure: Creation of primary encryption lead>
In (S802) of the present embodiment, a process in which the search agent 200 converts the plaintext lead 233 into a primary encrypted lead is shown.

検索エージェント200のリード暗号化部217に、全体処理部211によってロードされた秘密鍵251と公開パラメータ237と、平文リード233が入力される(S1101)。   The secret key 251, the public parameter 237, and the plaintext lead 233 loaded by the overall processing unit 211 are input to the read encryption unit 217 of the search agent 200 (S 1101).

検索エージェント200の全体処理部211は、リファレンスの分割単位を意味するブロック長wを設定する(S1102)。(図6(b)の例では、1次暗号化リードのブロック長wは11文字である。)
検索エージェント200の全体処理部211は、インデックスiの値を初期値1に設定(i←1)し、また終了値を設定する(S1103)。以降は、リードの終了値はnを設定するものとする。
The overall processing unit 211 of the search agent 200 sets a block length w that means a reference division unit (S1102). (In the example of FIG. 6B, the block length w of the primary encryption read is 11 characters.)
The overall processing unit 211 of the search agent 200 sets the value of the index i to the initial value 1 (i ← 1) and sets the end value (S1103). Thereafter, the read end value is set to n.

検索エージェント200の全体処理部211は、平文リード233におけるi番目の文字からw+(i-1)番目の文字を抜き出し、これをブロックBiとして、リード暗号化部217へ入力する(従って、1ブロックはw個の文字列からなる)(S1104)。   The entire processing unit 211 of the search agent 200 extracts the w + (i−1) th character from the i-th character in the plaintext lead 233, and inputs this as a block Bi to the read encryption unit 217 (accordingly, one block). Consists of w character strings) (S1104).

検索エージェント200のリード暗号化部217は、ブロックBiを暗号化し、暗号文E(Bi)を作成する(S1105)。   The read encryption unit 217 of the search agent 200 encrypts the block Bi and creates a ciphertext E (Bi) (S1105).

検索エージェント200の全体処理部211は、インデックスiを1つインクリメントする(i←i+1)(S1106)。   The overall processing unit 211 of the search agent 200 increments the index i by 1 (i ← i + 1) (S1106).

検索エージェント200の全体処理部211は、インデックスiが終了値を超えているかを判定する(i>n?)(S1107)。越えていない場合は、S1104へ戻る。越えている場合は、S1108へ進む。   The overall processing unit 211 of the search agent 200 determines whether the index i exceeds the end value (i> n?) (S1107). If not, the process returns to S1104. If so, the process proceeds to S1108.

検索エージェント200の全体処理部211は、S1105において、逐次的に作成したE(B1)からE(Bn)を、1次暗号化リードとして、記憶部220へ格納する(S1108)。   The entire processing unit 211 of the search agent 200 stores the E (B1) to E (Bn) sequentially generated in S1105 in the storage unit 220 as the primary encryption read (S1108).

上記の処理(S901からS908)により、検索エージェント200は、平文リードをリード暗号化部により暗号化した、1次暗号化リードを作成できる。   Through the above processing (S901 to S908), the search agent 200 can create a primary encrypted lead obtained by encrypting the plaintext read by the read encryption unit.

なお、上記の処理手順は、固定されたものではなく、処理手順や処理内容を変更して実施してもかまわない。例えば、検索エージェント200は、複数のブロックを抜き出し(S1105)、それらを暗号化し(S1106)、インクリメントする数を増やしてもよい(S1107)。同様に、他の処理内容を変更してもよい。   Note that the above processing procedure is not fixed, and the processing procedure and processing content may be changed and executed. For example, the search agent 200 may extract a plurality of blocks (S1105), encrypt them (S1106), and increase the number of increments (S1107). Similarly, other processing contents may be changed.

<図10:2次暗号化リードの抽出処理>
図10は、本実施形態の(S805)において、管理サーバ300が、2次暗号化リファレンス332を抽出する処理を示すシーケンス図である。
<Figure 10: Secondary encryption lead extraction process>
FIG. 10 is a sequence diagram illustrating processing in which the management server 300 extracts the secondary encryption reference 332 in (S805) of the present embodiment.

管理サーバ300の検査部312に、全体処理部311によってロードされた公開パラメータ337が入力される(S1201)。   The public parameter 337 loaded by the overall processing unit 311 is input to the inspection unit 312 of the management server 300 (S1201).

管理サーバ300の全体処理部311は、ブロック長wを設定する(S1202)。(図6(b)の例に倣い、1次暗号化リファレンス331のブロック長wは11とする。)
管理サーバ300の全体処理部311は、インデックスiの値を初期値に設定し、また終了値を設定する(S1203)。以降では、S908に倣い、一次暗号化リードとしてE(B1)からE(Bn)を受信したものとし、初期値を1(i←1)、終了値をnに設定するものとする。
The overall processing unit 311 of the management server 300 sets the block length w (S1202). (In the example of FIG. 6B, the block length w of the primary encryption reference 331 is assumed to be 11.)
The overall processing unit 311 of the management server 300 sets the value of the index i to the initial value and sets the end value (S1203). Thereafter, following S908, it is assumed that E (B1) to E (Bn) are received as the primary encryption read, the initial value is set to 1 (i ← 1), and the end value is set to n.

管理サーバ300の全体処理部311は、1次暗号化リードから暗号文E(Bi)を抽出する(S1204)。   The overall processing unit 311 of the management server 300 extracts the ciphertext E (Bi) from the primary encrypted read (S1204).

管理サーバ300の全体処理部311は、インデックスjの値を初期値に設定し、また終了値を設定する(S1205)。以降では、図6(b)に倣い、1次暗号化リファレンス331としてEs(B1)からEs(B(m-w+1))を記憶しているものとし、初期値を1(i←1)、終了値を(m-w+1)に設定するものとする。   The overall processing unit 311 of the management server 300 sets the value of the index j as an initial value and sets an end value (S1205). In the following, it is assumed that Es (B1) to Es (B (m−w + 1)) are stored as the primary encryption reference 331 according to FIG. 6B, and the initial value is 1 (i ← 1 ), And the end value is set to (m-w + 1).

管理サーバ300の全体処理部311は、1次暗号化リファレンス331から暗号文Es(Bi)を抽出する(S1206)。   The overall processing unit 311 of the management server 300 extracts the ciphertext Es (Bi) from the primary encryption reference 331 (S1206).

管理サーバ300の全体処理部311は、S1204で抽出した暗号文E(Bi)と、S1205で抽出した暗号文Es(Bi)を検索部へ入力する。検査部312は、暗号文E(Bi)と暗号文Es(Bi)が暗号化前は同じ平文値を有するかを判定し、等しい場合は1を、等しくない場合は0を返す(S1207)。検索部が1を出力した場合はS1208へ進み、0を出力した場合はS1209へ進む。   The overall processing unit 311 of the management server 300 inputs the ciphertext E (Bi) extracted in S1204 and the ciphertext Es (Bi) extracted in S1205 to the search unit. The inspection unit 312 determines whether or not the ciphertext E (Bi) and the ciphertext Es (Bi) have the same plaintext value before encryption, and returns 1 if they are equal and 0 if they are not equal (S1207). If the search unit outputs 1, the process proceeds to S1208, and if 0 is output, the process proceeds to S1209.

管理サーバ300の全体処理部311は、暗号文Es(Bi)と同じインデックスiを有する2次暗号化リファレンスEs(Ci)と、Es(Ci+1)、Es(Ci+2)、・・・、Es(Ci+w-1)を抽出し、記憶部220に格納する(S1208)。ただし、既に同じ暗号文が抽出されている場合は、その暗号文は抽出しない。   The overall processing unit 311 of the management server 300 includes a secondary encryption reference Es (Ci) having the same index i as the ciphertext Es (Bi), Es (Ci + 1), Es (Ci + 2),. , Es (Ci + w−1) is extracted and stored in the storage unit 220 (S1208). However, if the same ciphertext is already extracted, the ciphertext is not extracted.

管理サーバ300の全体処理部311は、インデックスjを1つインクリメントする(j←j+1)(S1209)。   The overall processing unit 311 of the management server 300 increments the index j by 1 (j ← j + 1) (S1209).

管理サーバ300の全体処理部311は、インデックスjが終了値を超えているかを判定する(j>m-w+1?)(S1210)。越えていない場合は、S1206へ戻る。越えている場合は、S1211へ進む。   The overall processing unit 311 of the management server 300 determines whether the index j exceeds the end value (j> m−w + 1?) (S1210). If not, the process returns to S1206. If it exceeds, go to S1211.

管理サーバ300の全体処理部311は、インデックスiを1つインクリメントする(i←i+1)(S1211)。   The overall processing unit 311 of the management server 300 increments the index i by 1 (i ← i + 1) (S1211).

管理サーバ300の全体処理部311は、インデックスiが終了値を超えているかを判定する(i>n?)(S1212)。越えていない場合は、S1205へ戻る。越えている場合は、S1212へ進む。
なお、上記の処理手順は、固定されたものではなく、処理手順や処理内容を変更して実施してもかまわない。例えば、検索エージェント200は、複数のブロックを抜き出し(S1206)、それらを検索し(S1207)、インデックスjの更新する数を増やしてもよい(S1209)。同様に、他の処理内容を変更してもよい。
The overall processing unit 311 of the management server 300 determines whether the index i exceeds the end value (i> n?) (S1212). If not, the process returns to S1205. If it exceeds, go to S1212.
Note that the above processing procedure is not fixed, and the processing procedure and processing content may be changed and executed. For example, the search agent 200 may extract a plurality of blocks (S1206), search for them (S1207), and increase the number of updates of the index j (S1209). Similarly, other processing contents may be changed.

<図11:2次暗号化リードの作成処理>
図10は、本実施形態の(S808)と(S809)において、検索エージェント200が、平文リード233を2次暗号化リードに変換する処理を示すシーケンス図である。
<Figure 11: Secondary encryption lead creation process>
FIG. 10 is a sequence diagram showing processing in which the search agent 200 converts the plaintext lead 233 into the secondary encrypted lead in (S808) and (S809) of the present embodiment.

検索エージェント200は、通信部203を介し、2次暗号化リードを受信する処理を行う(S1301)。   The search agent 200 performs a process of receiving the secondary encryption read via the communication unit 203 (S1301).

検索エージェント200の全体処理部211は、リファレンス復号部215とリード暗号化部217に、ロードした秘密鍵251と公開パラメータ237と、2次暗号化リファレンスを入力する(S1302)。   The overall processing unit 211 of the search agent 200 inputs the loaded secret key 251, public parameter 237, and secondary encryption reference to the reference decryption unit 215 and the read encryption unit 217 (S 1302).

検索エージェント200の全体処理部211は、リファレンスの分割単位を意味するブロック長wを設定する(S1303)。以降では、2次暗号化リファレンスのブロック長wは1文字とする。   The overall processing unit 211 of the search agent 200 sets a block length w that means a reference division unit (S1303). Hereinafter, the block length w of the secondary encryption reference is 1 character.

検索エージェント200の全体処理部211は、インデックスiの値を初期値1に設定(i←1)し、また終了値を設定する(S1304)。以降は、図6(b)の例に倣い、終了値は文字数nが設定されるものとする。   The overall processing unit 211 of the search agent 200 sets the value of the index i to the initial value 1 (i ← 1) and sets the end value (S1304). Thereafter, following the example of FIG. 6B, the end value is set to the number of characters n.

検索エージェント200の全体処理部211は、2次暗号化リファレンスにおけるi番目の文字を抜き出し、これをブロックE(Ci||E(i))とみなして、リファレンス復号部215へ入力する(S1305)。   The overall processing unit 211 of the search agent 200 extracts the i-th character in the secondary encryption reference, regards this as the block E (Ci || E (i)), and inputs it to the reference decryption unit 215 (S1305). .

検索エージェント200の全体処理部211は、リファレンス復号部215が出力したCi||E(i)からE(i)を抽出し、再びリファレンス復号部215に入力する(S1306)。   The overall processing unit 211 of the search agent 200 extracts E (i) from Ci || E (i) output from the reference decoding unit 215, and inputs it again to the reference decoding unit 215 (S1306).

検索エージェント200の全体処理部211は、リファレンス復号部215が出力したiを取得する(S1307)。   The overall processing unit 211 of the search agent 200 acquires i output from the reference decoding unit 215 (S1307).

検索エージェント200の全体処理部211は、インデックスiを1つインクリメントする(i←i+1)(S1308)。   The overall processing unit 211 of the search agent 200 increments the index i by 1 (i ← i + 1) (S1308).

検索エージェント200の全体処理部211は、インデックスiが終了値を超えているかを判定する(i>m?)(S1309)。越えていない場合は、S1305へ戻る。越えている場合は、S1310へ進む。   The overall processing unit 211 of the search agent 200 determines whether the index i exceeds the end value (i> m?) (S1309). If not, the process returns to S1305. If it exceeds, go to S1310.

上記S1301からS1309の処理により、2次暗号化リファレンスに埋め込まれていたインデックスi、i+1、…、i+n-1を取得した。   Through the processes from S1301 to S1309, indexes i, i + 1,..., I + n−1 embedded in the secondary encryption reference are acquired.

検索エージェント200の全体処理部211は、ターゲットレンジ長vを設定する(S1310)。   The overall processing unit 211 of the search agent 200 sets the target range length v (S1310).

検索エージェント200の全体処理部211は、インデックスjの値を初期値i-Vに設定し、また終了値としてi-1を設定する(S1311)。ただし、初期値であるi-Vが0以下(i-V<=0)である場合は、初期値を1とする。また、終了値であるi-1が0以下(i-1<=0)である場合は、S1311からS1315の処理を飛ばし、S1316へと進む。   The overall processing unit 211 of the search agent 200 sets the value of the index j to the initial value i-V and sets i-1 as the end value (S1311). However, when i-V which is an initial value is 0 or less (i-V <= 0), the initial value is set to 1. If the end value i-1 is 0 or less (i-1 <= 0), the processing from S1311 to S1315 is skipped, and the process proceeds to S1316.

検索エージェント200のリード暗号化部217は、インデックスjを暗号化し、暗号文E(j)を作成する(S1312)。   The read encryption unit 217 of the search agent 200 encrypts the index j and creates a ciphertext E (j) (S1312).

検索エージェント200の全体処理部211は、抽出したブロックCjと暗号化したインデックスE(j)を連結し、それを暗号化し、暗号文E(Ci||E(i))を作成する(S1313)。ただし、||はデータの連結を意味する。   The overall processing unit 211 of the search agent 200 concatenates the extracted block Cj and the encrypted index E (j), encrypts it, and creates a ciphertext E (Ci || E (i)) (S1313). . However, || means concatenation of data.

検索エージェント200の全体処理部211は、インデックスjを1つインクリメントする(j←j+1)(S1314)。   The overall processing unit 211 of the search agent 200 increments the index j by one (j ← j + 1) (S1314).

検索エージェント200の全体処理部211は、インデックスiが終了値を超えているかを判定する(j>i-1?)(S1315)。越えていない場合は、S1312へ戻る。越えている場合は、S1316へ進む。   The overall processing unit 211 of the search agent 200 determines whether the index i exceeds the end value (j> i−1?) (S1315). If not, the process returns to S1312. If it exceeds, go to S1316.

検索エージェント200の全体処理部211は、ターゲットレンジ長vを再設定する(S1316)。   The overall processing unit 211 of the search agent 200 resets the target range length v (S1316).

検索エージェント200の全体処理部211は、インデックスjの値を初期値i+nに設定し、また終了値としてi+n+v-1を設定する(S1317)。ただし、初期値であるi+nがm以上(i-V<0)である場合は、S1317からS1311の処理を飛ばし、S1312へと進む。また、終了値であるi+n+v-1がm以上(i-1<0)である場合は、終了値もmとする(S1317)。   The entire processing unit 211 of the search agent 200 sets the value of the index j to the initial value i + n and sets i + n + v−1 as the end value (S1317). However, if i + n, which is the initial value, is greater than or equal to m (i−V <0), the process from S1317 to S1311 is skipped, and the process proceeds to S1312. If i + n + v−1, which is the end value, is greater than or equal to m (i−1 <0), the end value is also set to m (S1317).

検索エージェント200のリード暗号化部217は、インデックスjを暗号化し、暗号文E(j)を作成する(S1318)。   The read encryption unit 217 of the search agent 200 encrypts the index j and creates a ciphertext E (j) (S1318).

検索エージェント200の全体処理部211は、抽出したブロックCjと暗号化したインデックスE(j)を連結し、それを暗号化し、暗号文E(Ci||E(i))を作成する(S1319)。ただし、||はデータの連結を意味する。   The overall processing unit 211 of the search agent 200 concatenates the extracted block Cj and the encrypted index E (j), encrypts it, and creates a ciphertext E (Ci || E (i)) (S1319) . However, || means concatenation of data.

検索エージェント200の全体処理部211は、インデックスjを1つインクリメントする(j←j+1)(S1320)。   The overall processing unit 211 of the search agent 200 increments the index j by one (j ← j + 1) (S1320).

検索エージェント200の全体処理部211は、インデックスiが終了値を超えているかを判定する(j>i-1?)(S1321)。越えていない場合は、S1318へ戻る。越えている場合は、S1322へ進む。   The overall processing unit 211 of the search agent 200 determines whether the index i exceeds the end value (j> i−1?) (S1321). If not, the process returns to S1318. If so, the process proceeds to S1322.

検索エージェント200の全体処理部211は、S1313とS1319において、逐次的に作成した暗号文を、2次暗号化リードとして、記憶部220へ格納する(S1322)。   The entire processing unit 211 of the search agent 200 stores the ciphertexts sequentially generated in S1313 and S1319 in the storage unit 220 as a secondary encryption read (S1322).

上記のS1310からS1322の処理により、S1301からS1309の処理で抽出したインデックスi、i+1、・・・、i+n-1に対応する2次暗号化リードを作成できた。
なお、上記の処理手順は、固定されたものではなく、処理手順や処理内容を変更して実施してもかまわない。
By the processes from S1310 to S1322, the secondary encrypted read corresponding to the indexes i, i + 1,..., I + n−1 extracted by the processes from S1301 to S1309 can be created.
Note that the above processing procedure is not fixed, and the processing procedure and processing content may be changed and executed.

<図12:2次暗号化リファレンスの検索処理>
図12は、本実施形態の(S812)において、管理サーバ300が、2次暗号化リファレンス332を抽出する処理を示すシーケンス図である。
<Figure 12: Secondary Encryption Reference Search Processing>
FIG. 12 is a sequence diagram illustrating processing in which the management server 300 extracts the secondary encryption reference 332 in (S812) of the present embodiment.

管理サーバ300の全体処理部311は、合計点S、得点A、減点B、最大値M、しきい値T、インデックスL、インデックスR、ブール値bの初期値を設定する。例えば、S、A、B、M、T、L、R、bの初期値はそれぞれ0、5、4、0、-50、0、0、0とする(S1401)。以降では、ブール値bは2次暗号化リードの調査順序の設定(降順または昇順)に用いる。   The overall processing unit 311 of the management server 300 sets initial values of the total score S, score A, deduction B, maximum value M, threshold value T, index L, index R, and Boolean value b. For example, the initial values of S, A, B, M, T, L, R, and b are 0, 5, 4, 0, -50, 0, 0, and 0, respectively (S1401). Hereinafter, the Boolean value b is used for setting the search order of the secondary encryption lead (descending order or ascending order).

管理サーバ300の検査部312に、全体処理部311によってロードされた公開パラメータ237が入力される(S1402)。   The public parameter 237 loaded by the overall processing unit 311 is input to the inspection unit 312 of the management server 300 (S1402).

管理サーバ300の全体処理部311は、ブロック長wを設定する(S1403)。(図6(b)の例に倣い、2次暗号化リファレンス332のブロック長wは1とする。)
管理サーバ300の全体処理部311は、インデックスkの値を初期値に設定し、また終了値を設定する(S1404)。以降では、v個の2次暗号化リードE(C(i-v))からE(C(i-1))を受信したものとし、インデックスkの初期値をi、終了値をi-v+1に設定するものとする。
The overall processing unit 311 of the management server 300 sets the block length w (S1403). (Following the example of FIG. 6B, the block length w of the secondary encryption reference 332 is assumed to be 1.)
The overall processing unit 311 of the management server 300 sets the value of the index k as an initial value and sets an end value (S1404). In the following, it is assumed that v secondary encryption leads E (C (iv)) to E (C (i-1)) are received, the initial value of index k is i, and the end value is i-v + 1. Shall be set to

管理サーバ300の全体処理部311は、2次暗号化リードから暗号文E(Ck)を抽出する(S1405)。   The overall processing unit 311 of the management server 300 extracts the ciphertext E (Ck) from the secondary encrypted read (S1405).

管理サーバ300の全体処理部311は、2次暗号化リファレンス332から暗号文Es(Ck)を抽出する(S1406)。   The overall processing unit 311 of the management server 300 extracts the ciphertext Es (Ck) from the secondary encryption reference 332 (S1406).

管理サーバ300の全体処理部311は、S1404で抽出した暗号文E(Ck)と、S1406で抽出した暗号文Es(Ck)を検索部へ入力する。検査部312は、暗号文E(Ck)と暗号文Es(Ck)が暗号化前は同じ平文値を有するかを判定し、等しい場合は1を、等しくない場合は0を返す(S1407)。   The overall processing unit 311 of the management server 300 inputs the ciphertext E (Ck) extracted in S1404 and the ciphertext Es (Ck) extracted in S1406 to the search unit. The inspection unit 312 determines whether the ciphertext E (Ck) and the ciphertext Es (Ck) have the same plaintext value before encryption, and returns 1 if they are equal and returns 0 if they are not equal (S1407).

管理サーバ300の全体処理部311は、S1404で抽出した暗号文E(Ck)と、S1406で抽出した暗号文Es(Ck)を検索部へ入力する。検査部312は、暗号文E(Ck)と暗号文Es(Ck)が暗号化前は同じ平文値を有するかを判定し、等しい場合は1を、等しくない場合は0を返す(S1407)。   The overall processing unit 311 of the management server 300 inputs the ciphertext E (Ck) extracted in S1404 and the ciphertext Es (Ck) extracted in S1406 to the search unit. The inspection unit 312 determines whether the ciphertext E (Ck) and the ciphertext Es (Ck) have the same plaintext value before encryption, and returns 1 if they are equal and returns 0 if they are not equal (S1407).

管理サーバ300の全体処理部311は、得点Sと最大値を更新する(S1408)。S1407で検査部312が1を出力した場合は、Sを得点A分だけ加え(S←S+A)、検査部312が0を出力した場合は、Sを減点B分だけ減らす(S←S―B)。   The overall processing unit 311 of the management server 300 updates the score S and the maximum value (S1408). When the inspection unit 312 outputs 1 in S1407, S is added by the point A (S ← S + A), and when the inspection unit 312 outputs 0, S is decreased by the deduction point B (S ← S−B ).

管理サーバ300の全体処理部311は、得点Sとしきい値Tを比較し、得点Sがしきい値以下である(S <= T)場合は、S1414へ進み、そうでなければS1410へと進む。   The overall processing unit 311 of the management server 300 compares the score S with the threshold value T. If the score S is equal to or less than the threshold value (S <= T), the process proceeds to S1414; otherwise, the process proceeds to S1410. .

管理サーバ300の全体処理部311は、最大値Mが得点Sより低い場合、その差分(S-M)だけ、しきい値Tを増やす(T←T+S-M)(S1410)。   When the maximum value M is lower than the score S, the overall processing unit 311 of the management server 300 increases the threshold T by the difference (S−M) (T ← T + S−M) (S1410).

管理サーバ300の全体処理部311は、最大値Mが得点Sより低い(M<S)場合、得点Sの値を最大値Mの値にコピーする(M←S)。また、最大値を更新し、かつブール値bが0であった場合は、インデックスLにkの値をコピーする(L←kif (b==0 && M<S))。最大値を更新し、かつブール値bが1であった場合は、インデックスRにkの値をコピーする(R←kif (b==1 && M<S))。(S1411)
管理サーバ300の全体処理部311は、ブール値bが0である場合は、インデックスkを1つインクリメントし(k←k-1)、ブール値bが1である場合は、インデックスkを1つインクリメントし(k←k+1)、(S1412)。
When the maximum value M is lower than the score S (M <S), the overall processing unit 311 of the management server 300 copies the value of the score S to the value of the maximum value M (M ← S). If the maximum value is updated and the Boolean value b is 0, the value of k is copied to the index L (L ← kif (b == 0 && M <S)). When the maximum value is updated and the Boolean value b is 1, the value of k is copied to the index R (R ← kif (b == 1 && M <S)). (S1411)
The overall processing unit 311 of the management server 300 increments the index k by 1 when the Boolean value b is 0 (k ← k−1), and increments the index k by 1 when the Boolean value b is 1. Increment (k ← k + 1), (S1412).

管理サーバ300の全体処理部311は、インデックスkが終了値を超えているかを判定する(k>i+v-1?)(S1413)。越えていない場合は、S1405へ戻る。越えている場合は、S1413へ進む。   The overall processing unit 311 of the management server 300 determines whether the index k exceeds the end value (k> i + v−1?) (S1413). If not, the process returns to S1405. If it exceeds, go to S1413.

管理サーバ300の全体処理部311は、インデックスkがi+nを超えているかを判定する(k>i+n?)(S1414)。越えていない場合は、S1414へ進む。越えている場合は、S1415へ進む。   The overall processing unit 311 of the management server 300 determines whether the index k exceeds i + n (k> i + n?) (S1414). If not, the process proceeds to S1414. If it exceeds, go to S1415.

管理サーバ300の全体処理部311は、インデックスkの値を初期値に設定し、また終了値を設定する(S1415)。以降では、2次暗号化リードとしてE(C(i+n))からE(C(i+n+v-1))を受信したものとし、インデックスkの初期値をi+n、終了値をi+n+v-1に設定するものとする。   The overall processing unit 311 of the management server 300 sets the value of the index k as an initial value and sets an end value (S1415). In the following, it is assumed that E (C (i + n + v-1)) is received from E (C (i + n)) as the secondary encryption read, the initial value of index k is i + n, and the end value Is set to i + n + v-1.

管理サーバ300の全体処理部311は、S1404で設定した初期値(i-1)からインデックスLまでの2次暗号化リファレンスにおける暗号文E(C(L))、・・・, E(C(i-1))を抽出する。ただし、インデックスLが0である場合は、この処理を省く。また同様に、S1415で設定した初期値(i+n)からインデックスRまでの2次暗号化リファレンスにおける暗号文E(C(i+n))、・・・, E(C(R))を抽出する。ただし、インデックスRが0である場合は、この処理を省く(S1416)。   The overall processing unit 311 of the management server 300 transmits the ciphertext E (C (L)), ..., E (C () in the secondary encryption reference from the initial value (i-1) set in S1404 to the index L. i-1)) is extracted. However, if the index L is 0, this process is omitted. Similarly, the ciphertext E (C (i + n)), ..., E (C (R)) in the secondary encryption reference from the initial value (i + n) set in S1415 to the index R Extract. However, if the index R is 0, this process is omitted (S1416).

上記の処理により、一文字毎の暗号化データの完全一致検索を用い、暗号化リファレンスと暗号化リードの類似検索が実施できた。
なお、上記の処理手順は、固定されたものではなく、処理手順や処理内容を変更して実施してもかまわない。
By the above processing, the similarity search between the encrypted reference and the encrypted lead can be performed using the exact match search of the encrypted data for each character.
Note that the above processing procedure is not fixed, and the processing procedure and processing content may be changed and executed.

100:ネットワーク、200:検索エージェント、300:管理サーバ、
500:コンピュータ、201、301:入力部、202、302:出力部、203、303:通信部、210、310:制御部、211、311:全体処理部、212:鍵生成部、213:リファレンス暗号化部、215:リファレンス復号部、217:リード暗号化部、312:検索部、220、320:記憶部、230、330:データ記憶部、231:平文リファレンス、、233:平文リード、237、337:公開パラメータ、331:1次暗号化リファレンス、332:2次暗号化リファレンス、251:秘密鍵、260、360:プログラム記憶部、280、380:一時情報記憶部、501:CPU(Central Processing Unit)、502:メモリ、503:外部記憶装置、508:記憶媒体、507:読書装置、506:入力装置、505:出力装置、504:通信装置、509:内部通信線
100: network, 200: search agent, 300: management server,
500: Computer, 201, 301: Input unit, 202, 302: Output unit, 203, 303: Communication unit, 210, 310: Control unit, 211, 311: Overall processing unit, 212: Key generation unit, 213: Reference cipher 215: reference decryption unit, 217: read encryption unit, 312: search unit, 220, 320: storage unit, 230, 330: data storage unit, 231: plaintext reference, 233: plaintext read, 237, 337 : Public parameter, 331: primary encryption reference, 332: secondary encryption reference, 251: secret key, 260, 360: program storage unit, 280, 380: temporary information storage unit, 501: CPU (Central Processing Unit) 502: Memory, 503: External storage device, 508: Storage medium, 507: Reading device, 506: Input device, 5 5: Output device 504: communication device, 509: internal communication line

Claims (3)

データの暗号化処理と復号処理に関するプログラムを記憶部に格納する検索エージェントと、暗号化データの一致検索処理に関するプログラムを記憶部に格納する管理サーバが、ネットワーク経由で連携する検索処理システムであって、
検索エージェントは平文リファレンスから1次暗号化リファレンスと2次暗号化リファレンスを作成し、
検索エージェントは平文リードから1次暗号化リードと2次暗号化リードを作成し、
管理サーバによる1次暗号化リファレンスと1次暗号化リードの検索結果と、管理サーバによる2次暗号化リファレンスと2次暗号化リードの検索結果により、平文リファレンスと平文リードの類似性を判定すること、
を特徴とする検索処理システム。
A search processing system in which a search agent that stores a program related to data encryption processing and decryption processing in a storage unit and a management server that stores a program related to encrypted data match search processing in the storage unit cooperate via a network. ,
The search agent creates a primary encryption reference and a secondary encryption reference from the plaintext reference,
The search agent creates a primary encryption lead and a secondary encryption lead from the plaintext lead,
The similarity between the plaintext reference and the plaintext read is determined based on the search result of the primary encryption reference and the primary encryption lead by the management server and the search result of the secondary encryption reference and the secondary encryption lead by the management server. ,
A search processing system characterized by this.
請求項1記載の検索処理システムであって、
前記1次暗号化リファレンスとは、ブロック単位に分割された平文リファレンスを暗号化して作成されたものであって、
前記2次暗号化リファレンスとは、ブロック単位に分割された平文リファレンスとインデックスを連結したデータを暗号化して作成されたものであって、
前記1次暗号化リードとは、前記1次暗号化リファレンスと同じブロック単位に分割された平文リードを暗号化して作成されたものであって、
前記2次暗号化リードとは、前記1次暗号化リファレンスと同じブロック単位に分割された平文リードとインデックスを連結したデータを暗号化して作成されたものであること、
を特徴とする検索処理システム。
The search processing system according to claim 1,
The primary encryption reference is created by encrypting a plaintext reference divided into blocks,
The secondary encryption reference is created by encrypting data obtained by concatenating a plaintext reference divided into blocks and an index,
The primary encryption read is created by encrypting a plaintext read divided into the same block units as the primary encryption reference,
The secondary encryption read is created by encrypting data obtained by concatenating a plaintext read and an index divided into the same block units as the primary encryption reference,
A search processing system characterized by this.
請求項1記載の検索処理システムであって、
管理サーバによる2次暗号化リファレンスと2次暗号化リードの前記検索結果とは、2次暗号化リファレンスと2次暗号化リードの判定の是非により加点と減点を用いて得点化し、得点の高い場合に2次暗号化リファレンスが2次暗号化リードと類似している、と判定すること、
を特徴とする検索処理システム。
The search processing system according to claim 1,
The search result of the secondary encryption reference and secondary encryption lead by the management server is scored using the points added and subtracted depending on whether the secondary encryption reference and secondary encryption lead are judged. Determining that the secondary encryption reference is similar to the secondary encryption lead,
A search processing system characterized by this.
JP2012004631A 2012-01-13 2012-01-13 High-speed similarity search processing system for encrypted data Active JP5948060B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2012004631A JP5948060B2 (en) 2012-01-13 2012-01-13 High-speed similarity search processing system for encrypted data

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012004631A JP5948060B2 (en) 2012-01-13 2012-01-13 High-speed similarity search processing system for encrypted data

Publications (2)

Publication Number Publication Date
JP2013145420A true JP2013145420A (en) 2013-07-25
JP5948060B2 JP5948060B2 (en) 2016-07-06

Family

ID=49041197

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012004631A Active JP5948060B2 (en) 2012-01-13 2012-01-13 High-speed similarity search processing system for encrypted data

Country Status (1)

Country Link
JP (1) JP5948060B2 (en)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016203555A1 (en) * 2015-06-16 2016-12-22 株式会社日立製作所 System for confidentially searching for similarity, and method for confidentially searching for similarity
JP2017022697A (en) * 2015-07-13 2017-01-26 富士通株式会社 Equivalence checking method using relational encryption, computer program, and storage medium
JP2017021330A (en) * 2015-07-13 2017-01-26 富士通株式会社 Equivalence confirmation method using relational encryption and computer program
KR20170041187A (en) * 2014-07-08 2017-04-14 소프트키네틱 센서스 엔브이 A high dynamic range pixel and a method for operating it
US10594473B2 (en) 2015-02-10 2020-03-17 Kabushikikaisha Rnai Terminal device, database server, and calculation system
US10673614B2 (en) 2015-10-09 2020-06-02 Mitsubishi Electric Corporation Secret search system, management device, secret search method and computer readable medium
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 (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102050888B1 (en) 2017-11-29 2019-12-02 고려대학교 산학협력단 Method and system for similarity search over encrypted data in cloud computing

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2008068675A2 (en) * 2006-12-05 2008-06-12 Koninklijke Philips Electronics N.V. Secure matching of dna profiles
JP2009271584A (en) * 2008-04-30 2009-11-19 Tokyo Metropolitan Univ Similar information retrieval system and similar information retrieval program
WO2011013463A1 (en) * 2009-07-29 2011-02-03 日本電気株式会社 Range retrieval system, range retrieval method, and program for range retrieval

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2008068675A2 (en) * 2006-12-05 2008-06-12 Koninklijke Philips Electronics N.V. Secure matching of dna profiles
JP2009271584A (en) * 2008-04-30 2009-11-19 Tokyo Metropolitan Univ Similar information retrieval system and similar information retrieval program
WO2011013463A1 (en) * 2009-07-29 2011-02-03 日本電気株式会社 Range retrieval system, range retrieval method, and program for range retrieval

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20170041187A (en) * 2014-07-08 2017-04-14 소프트키네틱 센서스 엔브이 A high dynamic range pixel and a method for operating it
KR102332287B1 (en) * 2014-07-08 2021-11-29 소니 뎁쓰센싱 솔루션즈 에스에이/엔브이 A high dynamic range pixel and a method for operating it
US10594473B2 (en) 2015-02-10 2020-03-17 Kabushikikaisha Rnai Terminal device, database server, and calculation system
WO2016203555A1 (en) * 2015-06-16 2016-12-22 株式会社日立製作所 System for confidentially searching for similarity, and method for confidentially searching for similarity
JPWO2016203555A1 (en) * 2015-06-16 2018-02-15 株式会社日立製作所 Concealed similarity search system and similarity concealment search method
JP2017022697A (en) * 2015-07-13 2017-01-26 富士通株式会社 Equivalence checking method using relational encryption, computer program, and storage medium
JP2017021330A (en) * 2015-07-13 2017-01-26 富士通株式会社 Equivalence confirmation method using relational encryption and computer program
US10673614B2 (en) 2015-10-09 2020-06-02 Mitsubishi Electric Corporation Secret search system, management device, secret search method and computer readable medium
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

Also Published As

Publication number Publication date
JP5948060B2 (en) 2016-07-06

Similar Documents

Publication Publication Date Title
JP5948060B2 (en) High-speed similarity search processing system for encrypted data
EP3012754B1 (en) Searchable symmetric encryption processing system
EP2894810B1 (en) Searchable Code Processing System and Method
CN107480163B (en) Efficient ciphertext image retrieval method supporting privacy protection in cloud environment
CN103927357B (en) Data encryption and retrieval method for database
EP2951945B1 (en) Method and system for providing encrypted data for searching of information therein and a method and system for searching of information on encrypted data
CN108111587B (en) Cloud storage searching method based on time release
Rane et al. Multi-user multi-keyword privacy preserving ranked based search over encrypted cloud data
CN1941691B (en) Apparatus and method for generating data for detecting false alteration of encrypted data during processing
JP6961324B2 (en) Searchable cryptographic processing system
CN108416037B (en) Central keyword ciphertext searching method based on two-stage index in cloud environment
EP3264314B1 (en) System and method for searching over encrypted data
CN108370312B (en) Encryption device, search device, computer-readable recording medium, encryption method, and search method
CN104794243B (en) Third party&#39;s cipher text retrieval method based on filename
JPWO2019053788A1 (en) Data processing device, data processing method, and data processing program
CN106227783B (en) A kind of government data polyplant, data provide end, system and method
CN114285575B (en) Image encryption and decryption method and device, storage medium and electronic device
CN111475690B (en) Character string matching method and device, data detection method and server
WO2021144834A1 (en) Secret retrieval system, secret retrieval method, and secret retrieval program
CN115238689B (en) Word segmentation and sentence segmentation index processing method, document retrieval equipment and storage medium
US20170132279A1 (en) Criteria generation device, criteria generation method, recording medium containing criteria generation program, database search system, and recording medium containing database search program
JP2015108682A (en) Secrecy comparison method, program, and system
EP3975472A1 (en) Private set intersection protocol based on commutative deterministic encryption
US20210248262A1 (en) Secret search system and secret search method
Pabboju A Comparative Result Analysis of Text Based Steganographic Approaches

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20150105

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20151027

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20151228

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160308

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160325

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160606

R151 Written notification of patent or utility model registration

Ref document number: 5948060

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151