JP2013130825A - Partial match search processing system and method - Google Patents

Partial match search processing system and method Download PDF

Info

Publication number
JP2013130825A
JP2013130825A JP2011281975A JP2011281975A JP2013130825A JP 2013130825 A JP2013130825 A JP 2013130825A JP 2011281975 A JP2011281975 A JP 2011281975A JP 2011281975 A JP2011281975 A JP 2011281975A JP 2013130825 A JP2013130825 A JP 2013130825A
Authority
JP
Japan
Prior art keywords
search
index
token
data
encryption
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2011281975A
Other languages
Japanese (ja)
Other versions
JP5667969B2 (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 JP2011281975A priority Critical patent/JP5667969B2/en
Publication of JP2013130825A publication Critical patent/JP2013130825A/en
Application granted granted Critical
Publication of JP5667969B2 publication Critical patent/JP5667969B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

PROBLEM TO BE SOLVED: To suppress the increase of a data amount due to encryption in a general search processing system by ensuring the security of data entrusted to a server and a search word for use for search in order to prevent unauthorized operations of a server manager.SOLUTION: A registration agent encrypts an index for search including data for exclusion of random number information and registers the encrypted index for search with a management server, and a search agent encrypts a token for search including data for exclusion of random number information and transmits the encrypted token for search to the management server. The management server uses data for exclusion of random number information, which is included in the encrypted index for search and the encrypted token for search, to determine whether the token for search corresponds to the index for search or not and, if it corresponds to the index for search, transmits encrypted data to the search agent as a search result, and the search agent decrypts the encrypted data.

Description

本発明は、サーバ/クライアントモデルにおいて、サーバが、クライアントの依頼に従って、暗号化データを復号せずに、預託された暗号化データに関する部分一致検索を高速に検索する、検索処理システムに関する。   The present invention relates to a search processing system in a server / client model in which a server searches at high speed a partial match search for entrusted encrypted data without decrypting the encrypted data in accordance with a client request.

情報システムの開発・運用管理費の効率化を目的に、近年、情報システムを自組織だけで維持するのではなく、他組織が提供する情報システムを部分的または全面的に利用する、クラウドコンピューティング(cloud computing、以下クラウドと略記する)と呼ばれる運用管理形態が脚光を浴びている。一方、クラウドにおいては、情報システムを管理する組織が、情報システムを利用する組織とは異なるため、情報漏えいの防止策や、事故発生後の原因究明、再発防止策等が自組織だけでは立てにくい。そのため、事前に、データの不正流出の予防策として、暗号技術を活用し、データの機密性を確保する必要がある。   In recent years, with the aim of improving the efficiency of information system development / operations and management costs, cloud computing that uses information systems provided by other organizations in part or in full, rather than maintaining them alone An operation management form called cloud computing (hereinafter abbreviated as “cloud computing”) is in the spotlight. On the other hand, in the cloud, the organization that manages the information system is different from the organization that uses the information system, so it is difficult for the organization itself to establish information leakage prevention measures, cause investigations after accidents, and recurrence prevention measures. . 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には、クライアントの依頼に従って、暗号化された検索用のインデックスを用いて、暗号化データを復号せずに検索する検索処理方法が記載されている。   In the server / client model, a method using encryption technology is known in which a client can freely withdraw data from a server while depositing the data in the server. For example, Non-Patent Document 1 and Non-Patent Document 2 describe a search processing method for searching without decrypting encrypted data using an encrypted search index according to a client request.

吉野 雅之,長沼 健,佐藤 尚宜.DB向け検索可能暗号の検討(2), Inproceedings of The 2011 Symposium on Cryptography and Information Security(2011).Yoshino Masayuki, Naganuma Ken, Sato Naoyoshi. Study of searchable encryption for DB (2), Inproceedings of The 2011 Symposium on Cryptography and Information Security (2011). Emily Shen,Elaine Shi, Brent Waters.Predicate privacy in encryption systems.In TCC,volume 5444 of Lecture Notes in Computer Science,pages 457−473(2009).Emily Shen, Elaine Shi, Brent Waters. Predicate privacy in encryption systems. In TCC, volume 5444 of Lecture Notes in Computer Science, pages 457-473 (2009). Dan Boneh, Eu−Jin Goh,Kobbi Nissim, Evaluating 2−DNF Formulas on Ciphertexts,In TCC,Volume 3378 of Lecture Notes in Computer Science,pages 325−341(2005).Dan Boneh, Eu-Jin Goh, Kobbi Nissim, Evaluating 2-DNF Formulas on Ciphertexts, In TCC, Volume 3378 of Lecture Notes in Computer Science, pages 325-341 (2005).

非特許文献1、非特許文献2の技術は共に、サーバに予め預託するデータ検索用のインデックスと、クライアントが検索時に送信する検索トークンの双方を確率的に暗号化し、安全性を高めている。しかしながら、非特許文献1の技術では、安全性が高い半面、データの完全一致検索処理のみを検索機能の対象としており、部分一致検索ができない。例えば、データ「abc」を検索する場合、その部分文字列である「ab」を検索トークンとしても、「abc」を検索できない。一方、非特許文献2の技術では、暗号文のデータサイズは、4つの素数の積(N=pqrs)で構成される、公開パラメータNに依存する。ここで、Nの素因子であるp,q,r,sはそれぞれが十分に大きな数でなければならない。暗号化可能なメッセージのデータサイズはNの素因子であるqのデータサイズに依存する為、非特許文献2の技術では、実際に暗号化できるメッセージの効率が低いことが課題として知られている。   Both the technologies of Non-Patent Document 1 and Non-Patent Document 2 probabilistically encrypt both a data search index deposited in advance with a server and a search token transmitted by a client at the time of search, thereby improving safety. However, in the technique of Non-Patent Document 1, the safety is high, but only the complete match search process of data is the target of the search function, and partial match search is not possible. For example, when searching for data “abc”, even if the partial character string “ab” is used as a search token, “abc” cannot be searched. On the other hand, in the technique of Non-Patent Document 2, the data size of the ciphertext depends on a public parameter N configured by a product of four prime numbers (N = pqrs). Here, p, q, r, and s, which are prime factors of N, must be sufficiently large numbers. Since the data size of a message that can be encrypted depends on the data size of q, which is a prime factor of N, it is known in the technique of Non-Patent Document 2 that the efficiency of a message that can be actually encrypted is low. .

(暗号化可能なメッセージの効率)=q/N=1/(prs)
そのため、高い安全性を実現しながら、部分一致検索を可能にし、更に暗号化可能なメッセージの効率が高い、暗号技術が必要とされている。
(Encryptable message efficiency) = q / N = 1 / (prs)
Therefore, there is a need for an encryption technique that enables partial match search while realizing high security, and further enables high efficiency of messages that can be encrypted.

本発明の目的は、検索用のインデックスを暗号化したまま、部分一致検索を可能にするシステムおよび方法を提供することにある。   An object of the present invention is to provide a system and a method that enable a partial match search while encrypting a search index.

前記目的を達成するために、本発明は、データと登録処理プログラムと検索処理プログラムを記憶部に記憶する管理サーバと、管理サーバに暗号化データと登録依頼プログラムを登録する登録エージェントと、検索依頼プログラムを記憶部に記憶する検索エージェントとがネットワーク経由で連携する検索処理システムを提供する。   To achieve the above object, the present invention provides a management server that stores data, a registration processing program, and a search processing program in a storage unit, a registration agent that registers encrypted data and a registration request program in the management server, and a search request Provided is a search processing system in which a search agent that stores a program in a storage unit cooperates via a network.

登録エージェントは、3つの素数(p、q、r)を生成し、これらの積から公開パラメータN(=pqr)を構成し、これらを位数(群を構成する要素である元aに対しa≡e(単位元)を満たす最小の整数n)とする双線形群上の元により、検索用のインデックスとデータを暗号化し、暗号化した検索用のインデックスは内部に2つの乱数情報の排除用データを保有し、その暗号化した検索用のインデックスを管理サーバに登録するよう依頼する。 The registration agent generates three prime numbers (p, q, r), constructs a public parameter N (= pqr) from these products, and converts these into a rank (the element a which is an element constituting the group a The index and data for search are encrypted by the element on the bilinear group with the smallest integer n) satisfying n ≡ e (unit element), and the encrypted search index excludes two random numbers information inside. And request to register the encrypted search index in the management server.

検索エージェントは、双線形群上の元により、検索用のトークン(token,ソースコードや平文を構成する単語や記号からなる文字列)を暗号化し、暗号化した検索用のトークンは内部に2つの乱数情報の排除用データを保有し、その暗号化した検索用のトークンを用いた検索処理を管理サーバに依頼する。   The search agent encrypts a token for search (a token, a character string made up of words and symbols that make up the plain code) based on the bilinear group, and there are two encrypted search tokens inside. Holds data for eliminating random number information, and requests the management server to perform a search process using the encrypted search token.

管理サーバは、暗号化された検索用のインデックスとデータを記憶部に格納し、検索を依頼された際には、暗号化された検索用のインデックスと、検索用のトークンの内部にそれぞれ保有する乱数情報の排除用のデータを用い、検索用のトークンが検索用のインデックスに該当するかを判定し、該当する場合は、管理サーバの記憶部に格納された暗号化されたデータを検索エージェントに検索結果として送信し、検索エージェントはこれを復号して出力する。   The management server stores the encrypted search index and data in the storage unit, and holds the encrypted search index and search token when requested to search. Using the data for eliminating random number information, it is determined whether the search token corresponds to the search index. If so, the encrypted data stored in the storage unit of the management server is used as the search agent. The search result is transmitted, and the search agent decodes it and outputs it.

登録エージェントは、検索用のインデックスを高速に暗号化できる。また、検索エージェントは、インデックスを暗号化したまま、その部分一致検索を管理サーバに委託できる。   The registration agent can encrypt the search index at high speed. Further, the search agent can entrust the partial match search to the management server with the index encrypted.

第一実施形態において、検索処理委託システムの概略を例示する図である。In a first embodiment, it is a figure which illustrates the outline of a search processing consignment system. 第一実施形態において、登録エージェントの機能の概略を例示する図である。In the first embodiment, it is a diagram illustrating an outline of functions of a registration agent. 第一実施形態において、検索エージェントの機能の概略を例示する図である。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. 第一実施形態において、登録エージェントと管理サーバがネットワーク400経由で実施する、暗号化データ134と暗号化インデックス135の登録処理の処理フローを例示する図である。6 is a diagram illustrating a processing flow of registration processing of encrypted data 134 and an encrypted index 135 performed by a registration agent and a management server via a network 400 in the first embodiment. FIG. 第一実施形態において、管理サーバの記憶部320に格納される、暗号化インデックス701と暗号化データ712を示すアドレス値702から構成される、インデックス・テーブル700を例示する図である。7 is a diagram illustrating an index table 700 configured with an address value 702 indicating an encrypted index 701 and encrypted data 712 stored in the storage unit 320 of the management server in the first embodiment. FIG. 第一実施形態において、管理サーバの記憶部320に格納される、暗号化データ712と暗号化データ712のアドレス711を示した、データ・テーブル710を例示する図である。6 is a diagram illustrating a data table 710 illustrating encrypted data 712 and addresses 711 of the encrypted data 712 stored in the storage unit 320 of the management server in the first embodiment. FIG. 第一実施形態において、登録エージェントが秘密鍵151と公開パラメータを作成する処理フローを例示した図である。6 is a diagram illustrating a processing flow in which a registration agent creates a secret key 151 and a public parameter in the first embodiment. FIG. 第一実施形態において、登録エージェントが暗号化インデックス135を作成する処理フローを例示する図である。6 is a diagram illustrating a processing flow in which a registration agent creates an encrypted index 135 in the first embodiment. FIG. 第一実施形態において、検索エージェントと管理サーバがネットワーク400経由で実施する、暗号化トークン236による検索処理の処理フローを例示する図である。6 is a diagram illustrating a processing flow of a search process using an encryption token 236, which is executed by a search agent and a management server via a network 400 in the first embodiment. FIG. 第一実施形態において、検索エージェントが暗号化トークン236を作成する処理フローを例示する図である。6 is a diagram illustrating a processing flow in which a search agent creates an encryption token 236 in the first embodiment. FIG. 第一実施形態において、管理サーバが実施する検索処理の処理フローを例示する図である。It is a figure which illustrates the processing flow of the search process which a management server implements in 1st embodiment. 部分一致検索処理の処理概要を示す図である。It is a figure which shows the process outline | summary of a partial matching search process. 検索結果データ生成処理の概要を示す図である。It is a figure which shows the outline | summary of a search result data generation process.

以下、本発明の実施の形態を図面に基づいて詳細に説明する。なお、実施の形態において、同一の部材には原則として同一の符号を付け、繰り返しの説明は省略する。   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.

(実施の形態1)
(システム構成)
図1は、本発明の第一の実施の形態である検索処理システムの概略図である。図示するように、検索処理システムは、登録エージェント100と、検索エージェント200と、管理サーバ300とを備え、登録エージェント100と管理サーバ300、検索エージェント200と管理サーバ300は、ネットワーク400を介して相互に情報を送受信できるように設計されている。
(Embodiment 1)
(System configuration)
FIG. 1 is a schematic diagram of a search processing system according to the first embodiment of the present invention. As illustrated, the search processing system includes a registration agent 100, a search agent 200, and a management server 300. The registration agent 100 and the management server 300, and the search agent 200 and the management server 300 are connected to each other via a network 400. It is designed to send and receive information.

本実施形態における登録エージェント100は、データと検索用のインデックス(以下、インデックスと呼ぶ)を管理サーバ300に送信し、受信結果を管理サーバから受信する送受信装置として機能し、検索エージェント200は、検索処理委託用のトークンを管理サーバ300に送信し、その検索結果を管理サーバ300から受信する送受信装置として機能し、管理サーバ300は、データを記憶し、また受信したトークンを用いてデータを検索する送受信装置として機能する。   The registration agent 100 according to the present embodiment functions as a transmission / reception device that transmits data and a search index (hereinafter referred to as an index) to the management server 300 and receives a reception result from the management server. It functions as a transmission / reception device that transmits a processing entrustment token to the management server 300 and receives the search result from the management server 300. The management server 300 stores data and searches for data using the received token. It functions as a transmission / reception device.

図2は、登録エージェント100の機能概略図である。図示するように、登録エージェント100は、制御部110と、記憶部120と、入力部101と、出力部102と、通信部103とを備える。   FIG. 2 is a functional schematic diagram of the registration agent 100. As illustrated, the registration agent 100 includes a control unit 110, a storage unit 120, an input unit 101, an output unit 102, and a communication unit 103.

記憶部120は、データ記憶部130と、鍵記憶部150と、プログラム記憶部160と、一時情報記憶部180とを備える。   The storage unit 120 includes a data storage unit 130, a key storage unit 150, a program storage unit 160, and a temporary information storage unit 180.

データ記憶部130には、管理サーバ300に送信するデータである、送信文に関する情報が記憶される。本実施形態においては、入力部101を介して、受け付けた平文データ131に関する情報と、検索処理に用いる平文インデックス132に関する情報とを(暗号化後に)管理サーバ300に登録する、平文データ131に関する情報と、パラメータ137に関する情報が記憶される。また、インデックス暗号化部113が出力する暗号化インデックス135に関する情報と、データ暗号化部117が出力する暗号化データ134に関する情報も記憶される。   The data storage unit 130 stores information related to a transmission sentence that is data to be transmitted to the management server 300. In the present embodiment, information related to the plaintext data 131 registered in the management server 300 (after encryption) information related to the received plaintext data 131 and information related to the plaintext index 132 used for the search process via the input unit 101. And information on the parameter 137 is stored. In addition, information related to the encrypted index 135 output from the index encryption unit 113 and information related to the encrypted data 134 output from the data encryption unit 117 are also stored.

鍵記憶部150には、安全性の観点から登録エージェント100が秘密に管理すべき秘密鍵151に関する情報が記憶される。   The key storage unit 150 stores information related to the secret key 151 that should be secretly managed by the registration agent 100 from the viewpoint of security.

プログラム記憶部160には、鍵生成、暗号化、復号などの暗号処理全般を含めた、暗号化データ134と暗号化インデックス135の登録処理に関するプログラムが記憶されている。暗号化データ134と暗号化インデックス135の登録処理については、図6を用い、後で詳しく説明する。   The program storage unit 160 stores a program related to the registration process of the encrypted data 134 and the encrypted index 135 including the entire encryption processes such as key generation, encryption, and decryption. The registration process of the encrypted data 134 and the encrypted index 135 will be described in detail later with reference to FIG.

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

制御部110は、全体処理部111と、鍵設定部112と、インデックス暗号化部113と、エンコード部115と、乱数生成部116と、データ暗号化部117と、を備える。   The control unit 110 includes an overall processing unit 111, a key setting unit 112, an index encryption unit 113, an encoding unit 115, a random number generation unit 116, and a data encryption unit 117.

全体処理部111は、プログラム記憶部160から、暗号化データ134と暗号化インデックス135の登録処理に関するプログラムをロードし、登録エージェント100における各モジュール間の制御を行い、さらに簡単な演算処理を実施する。例えば、全体処理部111は、入力部101を介して、入力を受け付けた情報を、データ記憶部130に、平文データ131や平文インデックス132として記憶する処理を行う。   The overall processing unit 111 loads a program related to the registration processing of the encrypted data 134 and the encrypted index 135 from the program storage unit 160, performs control between the modules in the registration agent 100, and performs simpler arithmetic processing. . For example, the overall processing unit 111 performs processing for storing the information received through the input unit 101 in the data storage unit 130 as the plaintext data 131 and the plaintext index 132.

また、本実施形態において、全体処理部111は、平文データ131を、出力部102に表示する処理を行う。   In the present embodiment, the overall processing unit 111 performs processing for displaying the plaintext data 131 on the output unit 102.

また、本実施形態において、全体処理部111は、データ記憶部130に記憶した平文データ131を読み込み、データ暗号化部117に入力し、出力されたデータを、データ記憶部130に、暗号化データ134として記憶する処理を行う。   In the present embodiment, the overall processing unit 111 reads the plaintext data 131 stored in the data storage unit 130, inputs the plaintext data 131 to the data encryption unit 117, and outputs the output data to the data storage unit 130. The process of storing as 134 is performed.

また、本実施形態において、全体処理部111は、データ記憶部130に記憶した平文インデックス132を読み込み、インデックス暗号化部113に入力し、出力されたデータを、データ記憶部130に、暗号化インデックス135として、記憶する処理を行う。   In the present embodiment, the overall processing unit 111 reads the plaintext index 132 stored in the data storage unit 130, inputs the plaintext index 132 to the index encryption unit 113, and outputs the output data to the data storage unit 130. As 135, the storing process is performed.

また、本実施形態において、全体処理部111は、暗号化インデックス135と暗号化データ134を、通信部103を介して、管理サーバ300に送信し、受信結果を管理サーバ300から受信する処理を行う。   In this embodiment, the overall processing unit 111 transmits the encrypted index 135 and the encrypted data 134 to the management server 300 via the communication unit 103, and performs a process of receiving the reception result from the management server 300. .

さらに、本実施形態において、全体処理部111は、管理サーバ300より、通信部103を介して受信した暗号化データ134を、一時情報記憶部180に記憶する処理と、出力部102に表示する処理を行う。   Furthermore, in the present embodiment, the overall processing unit 111 stores the encrypted data 134 received from the management server 300 via the communication unit 103 in the temporary information storage unit 180 and the process for displaying it on the output unit 102. I do.

鍵設定部112は、秘密鍵151と公開パラメータを生成する処理を行う。例えば、本実施形態において、全体処理部111がセキュリティパラメータを入力し、鍵設定部112が秘密鍵151を出力する処理を行う。なお、全体処理部111はパラメータ137の一部として記憶されたセキュリティパラメータをロードしてもよいし、入力部101を経由して鍵設定部112に入力してもよい。   The key setting unit 112 performs processing for generating a secret key 151 and a public parameter. For example, in the present embodiment, the overall processing unit 111 performs a process of inputting a security parameter and the key setting unit 112 outputting a secret key 151. The overall processing unit 111 may load a security parameter stored as a part of the parameter 137 or may input the security parameter to the key setting unit 112 via the input unit 101.

データ暗号化部117用の秘密鍵151の実現方法については、標準的な鍵生成アルゴリズム(AES(Advanced Encryption Standard)暗号、DES(Data Encryption Standard)暗号など)の実装により実現可能であるため、その詳細な説明は省く。   The method for realizing the private key 151 for the data encryption unit 117 can be realized by implementing a standard key generation algorithm (AES (Advanced Encryption Standard) encryption, DES (Data Encryption Standard) encryption, etc.). Detailed explanation is omitted.

インデックス暗号化部113(と、検索エージェント200のトークン暗号化部213)が用いる秘密鍵151と公開パラメータの実現方法については、図8を用い、後で詳しく説明する。   A method for realizing the secret key 151 and the public parameters used by the index encryption unit 113 (and the token encryption unit 213 of the search agent 200) will be described in detail later with reference to FIG.

インデックス暗号化部113は、エンコード部115と連携し、平文インデックス132を暗号化する処理を行う。平文インデックス132とは、平文データ131を検索する際にその平文データ131の特徴を指すデータ(文字列だけでなくバイナリデータ列でもよい)である。例えば、文字列の場合、平文データ“Tom is cryptographic researcher”から、その特徴的な文字列である“Tom”や“researcher”を平文インデックスとすればよい。もちろん、平文インデックス132はデータ内の完全な単語でなくてもよく、上記の場合、例えば、“res(researcherの一部)”を平文インデックス132としてもよい。また、平文データ131内に含まれていないデータを平文インデックス132としてもよく、上記の場合、例えば文字列“cryptography”を平文インデックス132としてよい。   The index encryption unit 113 performs a process of encrypting the plaintext index 132 in cooperation with the encoding unit 115. The plaintext index 132 is data (not only a character string but also a binary data string) indicating characteristics of the plaintext data 131 when the plaintext data 131 is searched. For example, in the case of a character string, from the plaintext data “Tom is cryptographic researcher”, the characteristic character string “Tom” or “researcher” may be used as a plaintext index. Of course, the plaintext index 132 may not be a complete word in the data. In the above case, for example, “res (part of the researcher)” may be used as the plaintext index 132. Further, data not included in the plaintext data 131 may be used as the plaintext index 132. In the above case, for example, the character string “cryptography” may be used as the plaintext index 132.

本実施形態においては、全体処理部111が平文インデックス132と秘密鍵151をインデックス暗号化部113に入力し、インデックス暗号化部113は暗号化インデックス135を出力する処理を行う。暗号化インデックス135の実現方法については、図9を用い、後で詳しく説明する。   In the present embodiment, the overall processing unit 111 inputs the plaintext index 132 and the secret key 151 to the index encryption unit 113, and the index encryption unit 113 performs a process of outputting the encrypted index 135. A method for realizing the encrypted index 135 will be described in detail later with reference to FIG.

エンコード部115は、入力された平文インデックス132を、固定長のデータに変換する処理を行う。本実施形態において、全体処理部111がエンコード部115に平文インデックス132を入力し、エンコード部115は入力された平文データ131をnlog2<q>ビットのインデックス・ベクトルに変換し、出力する処理を行う。ただし、<>は小数点第一位の切り上げを意味する。インデックス・ベクトルはlog2<q>ビットの要素データ(x1、x2、・・・・、xn)毎にn分割されている。また、それぞれの要素データは平文インデックス132を構成する文字列に含まれる各文字に対応した値であり、0以上q未満の整数で表わされる。エンコード部115の実現方法については、例えば、任意長の入力データを、固定長のデータへ変換する、標準的な暗号ハッシュ関数アルゴリズム(SHA−1、SHA−2など)の実装により実現可能であるため、その詳細な説明は省く。 The encoding unit 115 performs processing for converting the input plaintext index 132 into fixed-length data. In the present embodiment, the overall processing unit 111 inputs the plaintext index 132 to the encoding unit 115, and the encoding unit 115 converts the input plaintext data 131 into an nlog 2 <q> -bit index vector and outputs it. Do. However, <> means rounding up the first decimal place. The index vector is divided into n for each log 2 <q> -bit element data (x1, x2,..., Xn). Each element data is a value corresponding to each character included in the character string constituting the plaintext index 132, and is represented by an integer of 0 or more and less than q. The encoding unit 115 can be realized by, for example, implementation of a standard cryptographic hash function algorithm (SHA-1, SHA-2, etc.) that converts input data of an arbitrary length into fixed length data. Therefore, the detailed description is omitted.

乱数生成部116は、擬似乱数を出力する処理を行う。例えば、乱数生成部116は、温度、時間、電力量、等の物理現象から、乱数を出力する。本実施形態において、乱数生成部116は、全体処理部111から出力命令を受け、乱数を出力する。乱数生成部116の実現方法については、標準的な乱数生成器により実現可能であるため、その詳細な説明は省く。   The random number generator 116 performs a process of outputting a pseudo random number. For example, the random number generation unit 116 outputs a random number from physical phenomena such as temperature, time, and electric energy. In the present embodiment, the random number generation unit 116 receives an output command from the overall processing unit 111 and outputs a random number. The realization method of the random number generation unit 116 can be realized by a standard random number generator, and a detailed description thereof will be omitted.

なお、乱数生成部116の実現にあたって、乱数生成器の代わりに、擬似乱数生成器を用いてもよい。例えば、全体処理部111が秘密鍵151を擬似乱数生成器に入力し、擬似乱数生成器が擬似乱数(乱数列のように見えるが、確定的な計算によって求められる数列に含まれる数)を出力するようにしてもよい。   In realizing the random number generator 116, a pseudo-random number generator may be used instead of the random number generator. For example, the overall processing unit 111 inputs the secret key 151 to the pseudo-random number generator, and the pseudo-random number generator outputs a pseudo-random number (a number that looks like a random number sequence, but is included in the number sequence obtained by deterministic calculation). You may make it do.

データ暗号化部117は、入力された平文データ131を暗号化する処理を行う。例えば、本実施形態において、全体処理部111が平文データ131と秘密鍵151をデータ暗号化部117に入力し、データ暗号化部117は暗号化データ134を出力する処理を行う。なお、データ暗号化部117の実現方法については、一般的な暗号化アルゴリズム(AES暗号、DES暗号など)の実装により実現可能であるため、その詳細な説明は省く。   The data encryption unit 117 performs processing for encrypting the input plaintext data 131. For example, in the present embodiment, the overall processing unit 111 inputs the plaintext data 131 and the secret key 151 to the data encryption unit 117, and the data encryption unit 117 performs a process of outputting the encrypted data 134. Note that the method for realizing the data encryption unit 117 can be realized by mounting a general encryption algorithm (AES encryption, DES encryption, etc.), and thus detailed description thereof is omitted.

図3は、検索エージェント200の機能概略図である。図示するように、検索エージェント200は、制御部210と、記憶部220と、入力部201と、出力部202と、通信部203とを備える。   FIG. 3 is a functional schematic diagram of the search agent 200. As illustrated, the search 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と、鍵記憶部250と、プログラム記憶部260と、一時情報記憶部280とを備える。   The storage unit 220 includes a data storage unit 230, a key storage unit 250, a program storage unit 260, and a temporary information storage unit 280.

データ記憶部230には、管理サーバ300に送信するデータである送信文に関する情報が記憶される。本実施形態において、入力部201を介して受け付けた平文トークン233に関する情報と、パラメータ237に関する情報が記憶される。また、トークン暗号化部213が出力する暗号化トークン236に関する情報と、ネットワーク400経由で管理サーバ300から送信された暗号化データ712と、データ復号部218が出力する平文データ231に関する情報も記憶される。   The data storage unit 230 stores information related to a transmission sentence that is data to be transmitted to the management server 300. In the present embodiment, information regarding the plaintext token 233 received via the input unit 201 and information regarding the parameter 237 are stored. Also, information related to the encrypted token 236 output from the token encryption unit 213, encrypted data 712 transmitted from the management server 300 via the network 400, and information related to the plaintext data 231 output from the data decryption unit 218 are also stored. The

鍵記憶部250には、安全性の観点から検索エージェント200が秘密に管理すべき秘密鍵251に関する情報が記憶される。   The key storage unit 250 stores information related to the secret key 251 that should be secretly managed by the search agent 200 from the viewpoint of security.

プログラム記憶部260には、鍵生成、暗号化、復号などの暗号処理全般を含めた、暗号化トークン236による検索処理に関するプログラムが記憶されている。暗号化トークン236による検索処理については、図10を用い、後で詳しく説明する。   The program storage unit 260 stores a program related to a search process using the encryption token 236 including all encryption processes such as key generation, encryption, and decryption. The search process using the encryption token 236 will be described in detail later with reference to FIG.

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

制御部210は、全体処理部211と、トークン暗号化部213と、エンコード部215と、乱数生成部216と、データ復号部218とを備える。   The control unit 210 includes an overall processing unit 211, a token encryption unit 213, an encoding unit 215, a random number generation unit 216, and a data decryption unit 218.

全体処理部211は、プログラム記憶部260から、暗号化トークン236による検索処理に関するプログラムをロードし、検索エージェント200における各モジュール間の制御を行い、さらに簡単な演算処理を実施する。例えば、全体処理部211は、入力部201を介して、入力を受け付けた情報を、データ記憶部230に、平文トークン233として記憶する処理を行う。   The overall processing unit 211 loads a program related to the search processing using the encryption token 236 from the program storage unit 260, performs control between modules in the search agent 200, and further performs simple arithmetic processing. For example, the overall processing unit 211 performs processing for storing the information received through the input unit 201 as the plaintext token 233 in the data storage unit 230.

また、本実施形態において、全体処理部211は、平文トークン233を、出力部202に表示する処理を行う。   In the present embodiment, the overall processing unit 211 performs processing for displaying the plaintext token 233 on the output unit 202.

また、本実施形態において、全体処理部211は、データ記憶部230に記憶した平文トークン233を読み込み、トークン暗号化部213に入力し、出力されたデータを、データ記憶部230に、暗号化トークン236として記憶する処理を行う。   In the present embodiment, the overall processing unit 211 reads the plaintext token 233 stored in the data storage unit 230, inputs it to the token encryption unit 213, and outputs the output data to the data storage unit 230 as an encryption token. The process stored as 236 is performed.

また、本実施形態において、全体処理部211は、暗号化トークン236を、通信部203を介して管理サーバ300に送信し、データの検索結果を管理サーバ300から受信する処理を行う。なお、データの検索結果の一部を、暗号化データ234として、データ記憶部230に記憶する処理を行う。   In the present embodiment, the overall processing unit 211 performs a process of transmitting the encryption token 236 to the management server 300 via the communication unit 203 and receiving a data search result from the management server 300. A process of storing a part of the data search result in the data storage unit 230 as the encrypted data 234 is performed.

また、本実施形態において、全体処理部211は、データ記憶部230に記憶した暗号化データ231を読み込み、データ復号部218に入力し、出力されたデータを、データ記憶部230に、平文データ231として一時情報記憶部280に記憶する処理と、出力部202に表示する処理を行う。   In the present embodiment, the overall processing unit 211 reads the encrypted data 231 stored in the data storage unit 230, inputs the data to the data decryption unit 218, and outputs the output data to the data storage unit 230 in the plaintext data 231. Are stored in the temporary information storage unit 280 and displayed on the output unit 202.

トークン暗号化部213は、エンコード部215と連携し、平文トークン233を暗号化する処理を行う。平文トークン233とは、データ(文字列だけでなくバイナリデータ列でもよい)である。平文トークン233は、“researcher”等の完全な単語でもよく、また、“res”(researcherの一部)のように部分文字列を平文トークン233としてもよい。さらに、平文トークン233にはワイルドカード“*”を用いてもよく、例えば“researcher”の代わりに“re*earch*r”としてもよい。   The token encryption unit 213 performs a process of encrypting the plaintext token 233 in cooperation with the encoding unit 215. The plaintext token 233 is data (not only a character string but also a binary data string). The plaintext token 233 may be a complete word such as “researcher”, or a partial character string may be the plaintext token 233 such as “res” (part of the researcher). Further, a wild card “*” may be used for the plaintext token 233. For example, “re * earch * r” may be used instead of “researcher”.

本実施形態において、全体処理部211が平文トークン233と秘密鍵251をトークン暗号化部213に入力し、トークン暗号化部213は暗号化トークン236を出力する処理を行う。暗号化トークン236の実現方法については、図11を用い、後で詳しく説明する。   In the present embodiment, the overall processing unit 211 inputs the plaintext token 233 and the secret key 251 to the token encryption unit 213, and the token encryption unit 213 performs processing for outputting the encrypted token 236. A method for realizing the encryption token 236 will be described in detail later with reference to FIG.

エンコード部215は、入力された平文トークン233を、固定長のデータに変換する処理を行う。本実施形態において、全体処理部211がエンコード部215に平文トークン233を入力し、エンコード部215は入力された平文トークン233をnlog2<q>ビットのトークン・ベクトルに変換し、出力する処理を行う。ただし、<>は小数点第一位の切り上げを意味する。 The encoding unit 215 performs processing for converting the input plaintext token 233 into fixed-length data. In the present embodiment, the overall processing unit 211 inputs a plaintext token 233 to the encoding unit 215, and the encoding unit 215 converts the input plaintext token 233 into an nlog 2 <q> -bit token vector and outputs the token vector. Do. However, <> means rounding up the first decimal place.

エンコード部215の実現方法については、例えば、任意長の入力データを、固定長のデータへ変換する、標準的な暗号ハッシュ関数アルゴリズム(SHA−1、SHA−2など)の実装により、エンコード部215が実現可能であるため、その詳細な説明は省く。   For example, the encoding unit 215 can be realized by implementing a standard cryptographic hash function algorithm (SHA-1, SHA-2, etc.) that converts input data having an arbitrary length into fixed length data. Therefore, detailed description thereof is omitted.

乱数生成部216は、擬似乱数を出力する処理を行う。例えば、乱数生成部216は、温度、時間、電力量、等の物理現象に関する情報から、乱数を出力する。本実施形態において、乱数生成部216は、全体処理部211から出力命令を受け、乱数を出力する。乱数生成部216の実現方法については、標準的な乱数生成器により実現可能であるため、その詳細な説明は省く。   The random number generation unit 216 performs a process of outputting a pseudo random number. For example, the random number generation unit 216 outputs a random number from information regarding physical phenomena such as temperature, time, and electric energy. In the present embodiment, the random number generation unit 216 receives an output command from the overall processing unit 211 and outputs a random number. The realization method of the random number generation unit 216 can be realized by a standard random number generator, and thus detailed description thereof is omitted.

なお、乱数生成部216の実現にあたって、乱数生成器の代わりに、擬似乱数生成器を用いてもよい。例えば、全体処理部211が秘密鍵251を擬似乱数生成器に入力し、擬似乱数生成器が擬似乱数(乱数列のように見えるが、確定的な計算によって求められる数列に含まれる数)を出力するようにしてもよい。   In realizing the random number generation unit 216, a pseudo random number generator may be used instead of the random number generator. For example, the overall processing unit 211 inputs the secret key 251 to the pseudo-random number generator, and the pseudo-random number generator outputs a pseudo-random number (a number that looks like a random number sequence but is included in the number sequence obtained by deterministic calculation). You may make it do.

データ復号部218は、入力された暗号化データ234を復号する処理を行う。例えば、本実施形態において、全体処理部211が暗号化データ234と秘密鍵251をデータ復号部218に入力し、データ復号部218は平文データ231を出力する処理を行う。なお、データ復号部218の実現方法については、一般的な暗号化アルゴリズム(AES暗号、DES暗号など)の実装により実現可能であるため、その詳細な説明は省く。   The data decryption unit 218 performs a process of decrypting the input encrypted data 234. For example, in the present embodiment, the overall processing unit 211 inputs the encrypted data 234 and the secret key 251 to the data decrypting unit 218, and the data decrypting unit 218 performs processing for outputting the plaintext data 231. Note that the method for realizing the data decryption unit 218 can be realized by mounting a general encryption algorithm (AES encryption, DES encryption, etc.), and thus detailed description thereof is omitted.

図4は、管理サーバ300の機能概略図である。図示するように、管理サーバ300は、制御部310と、記憶部320と、入力部301と、出力部302と、通信部303とを備える。   FIG. 4 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を介して、登録エージェント100から受信したデータに関する情報が記憶される。本実施形態において、通信部303を介して、受信した暗号化データ134と暗号化インデックス135に関する情報が記憶される。また、パラメータ337に関する情報が記憶される。また、通信部303を介して、検索エージェント200から受信したデータに関する情報が、記憶される。本実施形態において、通信部303を介して、受信した暗号化トークン236に関する情報が一時的に記憶される。   The data storage unit 330 stores information related to data received from the registration agent 100 via the communication unit 303. In the present embodiment, information related to the encrypted data 134 and the encrypted index 135 received via the communication unit 303 is stored. Further, information regarding the 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 encryption token 236 is temporarily stored via the communication unit 303.

プログラム記憶部360には、暗号化データ検索処理に関するプログラムが記憶されている。暗号化データ検索処理については、図12を用い、後で詳しく説明する。   The program storage unit 360 stores a program related to encrypted data search processing. The encrypted data search process will be described in detail later with reference to 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から、暗号化データ検索処理に関するプログラムをロードし、管理サーバ300における各モジュール間の制御を行い、さらに簡単な演算処理を実施する。例えば、全体処理部311は、通信部303を介して、暗号化データ134、暗号化インデックス135を登録エージェント100から受信し、データ記憶部330に、記憶する処理を行う。暗号化データ134と暗号化インデックス135の保管方法については、図7Aと図7Bを用い、後で詳しく説明する。   The overall processing unit 311 loads a program related to the encrypted data search processing from the program storage unit 360, performs control between the modules in the management server 300, and performs further simple arithmetic processing. For example, the overall processing unit 311 performs processing for receiving the encrypted data 134 and the encrypted index 135 from the registration agent 100 via the communication unit 303 and storing them in the data storage unit 330. A method for storing the encrypted data 134 and the encrypted index 135 will be described in detail later with reference to FIGS. 7A and 7B.

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

また、本実施形態において、全体処理部311は、暗号化トークン336と暗号化インデックス701を検索部312に入力し、検索部312が出力したデータを、通信部303を介して、検索エージェント200へ送信する処理を行う。   In the present embodiment, the overall processing unit 311 inputs the encryption token 336 and the encrypted index 701 to the search unit 312, and sends the data output by the search unit 312 to the search agent 200 via the communication unit 303. Process to send.

さらに、全体処理部311は、検索エージェント200または登録エージェント100より、通信部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 100 via the communication unit 303 in the temporary information storage unit 380 and processing for displaying the information on the output unit 302. .

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

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

この所定のプログラムは、読書装置507を介して記憶媒体508から、あるいは、通信装置504を介してネットワーク400から、外部記憶装置503に記憶(ダウンロード)され、それから、メモリ502上にロードされて、CPU501により実行されるようにしてもよい。また、読書装置507を介して、記憶媒体508から、あるいは通信装置504を介してネットワーク400から、メモリ502上に直接ロードされ、CPU501により実行されるようにしてもよい。   This 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 400 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 onto the memory 502 from the storage medium 508 via the reading device 507 or from the network 400 via the communication device 504 and executed by the CPU 501.

(処理手順)
図13を用いて本実施例の部分一致検索処理の概要を説明する。
(Processing procedure)
The outline of the partial match search process of the present embodiment will be described with reference to FIG.

登録エージェント100は、所望のデータ及びそのデータに関するインデックスを管理サーバ300に登録する利用者が入力した公開パラメータN(整数)を素因数分解して3つの素数p、q、rを得る。これらの素数を用いて、管理サーバ300に登録するデータ及びインデックスをそれぞれ暗号化し、暗号化されたデータ及びインデックスを管理サーバ300に送信する。管理サーバ300は、暗号化されたデータ及びインデックスを互いに関連付けて記憶部320に格納する。   The registration agent 100 primes the public parameter N (integer) input by a user who registers desired data and an index related to the data into the management server 300 to obtain three prime numbers p, q, and r. Using these prime numbers, the data and index registered in the management server 300 are respectively encrypted, and the encrypted data and index are transmitted to the management server 300. The management server 300 stores the encrypted data and the index in the storage unit 320 in association with each other.

検索エージェント200は、データ検索の利用者から、部分文字列からなる検索用トークンを受け取り、上記の公開パラメータから生成した3つの素数を用いて、トークンを暗号化して管理サーバ300に送信する。なお、検索用トークンの平文にはワイルドカードが含まれていてもよく、ワイルドカードを考慮した暗号化が行われる。   The search agent 200 receives a search token composed of a partial character string from a data search user, encrypts the token using the three prime numbers generated from the public parameters, and transmits the encrypted token to the management server 300. Note that the plaintext of the search token may include a wild card, and encryption is performed in consideration of the wild card.

管理サーバ300は、検索エージェント200から受け取った暗号化されたトークンと暗号化されたインデックスとの照合を、双線形写像を用いて実行することによって検索を行い、照合が成功すれば、暗号化されたインデックスと関連付けられた暗号化データを検索して、検索結果を検索エージェント200に送信する。   The management server 300 performs a search by executing a matching between the encrypted token received from the search agent 200 and the encrypted index using a bilinear mapping, and if the matching is successful, the management server 300 is encrypted. The encrypted data associated with the index is searched, and the search result is transmitted to the search agent 200.

検索エージェント200は、管理サーバ300から受信した暗号化されたデータを、上記の公開パラメータから生成した3つの素数を用いて、複号化して平文の検索結果を出力してデータ検索の利用者に提示する。   The search agent 200 decrypts the encrypted data received from the management server 300 using the three prime numbers generated from the public parameters and outputs a plaintext search result to the data search user. Present.

図6は、本実施形態において、ネットワーク400を経由し、登録エージェント100が送信した暗号化インデックス135を、管理サーバ300が、記憶部320へ登録する処理を示すシーケンス図である。   FIG. 6 is a sequence diagram illustrating a process in which the management server 300 registers the encrypted index 135 transmitted by the registration agent 100 via the network 400 in the storage unit 320 in the present embodiment.

登録エージェント100の全体処理部111は、平文データ131をロードし、データ暗号化部117へ入力する、また、全体処理部111は、平文インデックス132をロードし、インデックス暗号化部113へ入力する(S601)。   The entire processing unit 111 of the registration agent 100 loads the plaintext data 131 and inputs it to the data encryption unit 117, and the entire processing unit 111 loads the plaintext index 132 and inputs it to the index encryption unit 113 ( S601).

登録エージェント100のデータ暗号化部117は、記憶部120に格納された秘密鍵151をロードし、平文データ131を暗号化データ134に変換する。なお、変換方法については、標準的な暗号化アルゴリズム(AES暗号、DES暗号など)の実装により、実現可能であるため、その詳細な説明は省く。また、登録エージェント100のインデックス暗号化部113は、記憶部120に格納された秘密鍵151とパラメータ137をロードし、平文インデックス132を暗号化インデックス135に変換する。なお、変換方法については、図9を用い、後で詳しく説明する(S602)。   The data encryption unit 117 of the registration agent 100 loads the secret key 151 stored in the storage unit 120 and converts the plaintext data 131 into the encrypted data 134. The conversion method can be realized by implementing a standard encryption algorithm (AES encryption, DES encryption, etc.), and thus detailed description thereof is omitted. Also, the index encryption unit 113 of the registration agent 100 loads the secret key 151 and the parameter 137 stored in the storage unit 120 and converts the plaintext index 132 into the encryption index 135. The conversion method will be described in detail later with reference to FIG. 9 (S602).

登録エージェント100の通信部は、データ暗号化部117より出力された暗号化データ134と、インデックス暗号化部113より出力された暗号化インデックス135を、ネットワーク400を経由し、管理サーバ300へ送信する処理を行う(S603)。   The communication unit of the registration agent 100 transmits the encrypted data 134 output from the data encryption unit 117 and the encrypted index 135 output from the index encryption unit 113 to the management server 300 via the network 400. Processing is performed (S603).

管理サーバ300の通信部303から、ネットワーク400を経由し、登録エージェント100が送信した暗号化データ134と暗号化インデックス135を受信する処理を行う(S604)。   A process of receiving the encrypted data 134 and the encrypted index 135 transmitted by the registration agent 100 from the communication unit 303 of the management server 300 via the network 400 is performed (S604).

管理サーバ300の全体処理部311は、暗号化データ134と暗号化インデックス135を記憶部320へ格納する。格納にあたっては、図7Bに示すように、暗号化データ134(701)はデータ・テーブルの一部(図7BのE1、E2、E3それぞれが暗号化データ134に該当する)として格納される。また、送信された暗号化インデックス135は、共に送信された暗号化データ134を格納した記憶部320のアドレス(仮想アドレスまたは物理アドレス)と関連付けられて、インデックス・テーブルの一部として格納される(図7AのI1、I2、I3、I4、I5がそれぞれ暗号化インデックス701(135)に該当する。また、address 1は暗号化データE1のアドレスを示す値であり、同様に、address 2は暗号化データE2のアドレスを示す値、address 3は暗号化データE3のアドレスを示す値である。)(S605) 。   The overall processing unit 311 of the management server 300 stores the encrypted data 134 and the encrypted index 135 in the storage unit 320. In storing, as shown in FIG. 7B, the encrypted data 134 (701) is stored as a part of the data table (E1, E2, and E3 in FIG. 7B correspond to the encrypted data 134). The transmitted encrypted index 135 is stored as a part of the index table in association with the address (virtual address or physical address) of the storage unit 320 storing the encrypted data 134 transmitted together ( 7A, I1, I2, I3, I4, and I5 correspond to the encrypted index 701 (135), and address 1 is a value indicating the address of the encrypted data E1, and similarly, address 2 is encrypted. A value indicating the address of the data E2, and address 3 is a value indicating the address of the encrypted data E3.) (S605).

管理サーバ300は、暗号化データ134と暗号化インデックス135の記憶部320への格納処理を終えた場合、「登録成功」とし、通信部303から、ネットワーク400を経由し、「登録成功」を示すデータを登録エージェント100へ送信する処理を行う。また、記憶容量の制限等を理由に、暗号化データ134または暗号化インデックス135の記憶部320への格納処理が終了できなかった場合、「登録失敗」とし、通信部303から、ネットワーク400を経由し、「登録失敗」を示すデータを登録エージェント100へ送信する処理を行う(S606)。   When the management server 300 finishes storing the encrypted data 134 and the encrypted index 135 in the storage unit 320, the management server 300 sets “registration success” and indicates “registration success” from the communication unit 303 via the network 400. A process of transmitting data to the registration agent 100 is performed. In addition, if the storage process of the encrypted data 134 or the encrypted index 135 to the storage unit 320 cannot be completed due to storage capacity limitations or the like, “registration failure” occurs and the communication unit 303 passes through the network 400. Then, a process of transmitting data indicating “registration failure” to the registration agent 100 is performed (S606).

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

上記の処理(S601からS607)により、登録エージェント100は、ネットワーク400経由で、管理サーバ300に暗号化データ134と暗号化インデックス135の記憶部120への格納を指示し、その処理結果を確認できる。   Through the above processing (S601 to S607), the registration agent 100 can instruct the management server 300 to store the encrypted data 134 and the encrypted index 135 in the storage unit 120 via the network 400, and can confirm the processing result. .

なお、上記の処理手順は、固定されたものではなく、処理手順を変更して実施してもかまわない。例えば、登録エージェント100は、暗号化データ134を作成、送信後に、暗号化インデックス135を作成、送信するようにS602とS603を変更してもよい。また、管理サーバ300も、暗号化データ134と暗号化インデックス135の受信、記憶処理を個別に実施してもよい。同様に、他の処理内容を変更してもよい。例えば、登録エージェント100は複数の暗号化データ134と暗号化インデックス135の作成、送信処理を一括で実施してもよい。また、管理サーバ300も、複数の暗号化データ134と暗号化インデックス135の受信、記憶処理を一括で実施してもかまわない。   Note that the above processing procedure is not fixed, and the processing procedure may be changed. For example, the registration agent 100 may change S602 and S603 so that the encrypted index 135 is created and transmitted after the encrypted data 134 is created and transmitted. Also, the management server 300 may individually receive and store the encrypted data 134 and the encrypted index 135. Similarly, other processing contents may be changed. For example, the registration agent 100 may collectively create and transmit a plurality of encrypted data 134 and encrypted index 135. Also, the management server 300 may receive and store a plurality of encrypted data 134 and encrypted index 135 in a lump.

図14を用いて本実施例の検索結果データ生成処理の概要を説明する。   The outline of the search result data generation process of this embodiment will be described with reference to FIG.

本実施例では、インデックスの暗号化とトークンの暗号化をそれぞれ強化するため、互いに、相手の(暗号化のための)因子によって自身の暗号化データを撹乱する。即ち、登録エージェント100で行われるインデックスの暗号化と検索エージェント200で行われるトークンの暗号化といったそれぞれ独立して行われる暗号化で使用される因子によって、互いに相手の暗号化データを撹乱することにより、暗号化のプロセスが自身の中で閉じないようにすることで暗号化の秘匿性を高めている。   In this embodiment, in order to reinforce the encryption of the index and the encryption of the token, the encrypted data of each other is disturbed by the other factor (for encryption). That is, by disturbing each other's encrypted data by factors used in encryption performed independently of each other, such as index encryption performed by the registration agent 100 and token encryption performed by the search agent 200, The confidentiality of the encryption is enhanced by preventing the encryption process from being closed within itself.

図14に示した種々の記号の詳細な説明は後述する。   A detailed description of the various symbols shown in FIG. 14 will be described later.

(1)暗号化のための因子及び情報の生成
まず、図14の左側に示すように、後述する図8、9及び11の処理では、(a)群Gpによってインデックスを暗号化するための因子が生成され、(b)群Gqによって暗号化インデックスの元となる情報が生成され、(c)トークンの文字列をベクトル化したトークン・ベクトルに直交するベクトルと群Gqによって暗号化トークンの元となる情報が生成され、(d)群Grによってトークンを暗号化するための因子が生成される。
(1) Generating Factors and Information for Encryption First, as shown on the left side of FIG. 14, in the processes of FIGS. 8, 9 and 11 described later, (a) Factors for encrypting indexes with the group Gp (B) Group Gq is used to generate information that is the source of the encryption index. (C) A vector orthogonal to the token vector obtained by vectorizing the token character string and the group Gq (D) A factor for encrypting the token is generated by the group Gr.

これらの因子又は情報は、インデックス又はトークンに関するものに大きく分けられるが、上記(a)のインデックスに関する因子の一部({gpvk}、(gpΣvkpk))はトークンの暗号化に対する撹乱の因子であり、上記(d)のトークンに関する因子の一部({gruk}、(grΣukrk))はインデックスの暗号化に対する撹乱の因子である。 These factors or information can be broadly divided into those related to indexes or tokens, but some of the factors related to the index (a) ({gp vk }, (gp Σvkpk )) are factors of disturbance to token encryption. In addition, some of the factors ({gr uk }, (gr Σukrk )) related to the token in (d) are disturbance factors for index encryption.

(2)暗号化インデックス及びトークンの生成
次に、図14の中央に示すように、後述する図9の処理では、上記(a)と(b)で生成されたインデックスに関する因子又は情報、及び上記(d)のトークンに関して生成された撹乱の因子を用いて、平文インデックスを暗号化した暗号化インデックスを生成する。同様に、後述する図11の処理では、上記(c)と(d)で生成されたトークンに関する因子又は情報、及び上記(a)のインデックスに関して生成された撹乱の因子を用いて、平文トークンを暗号化した暗号化トークンを生成する。さらに、上記の暗号化インデックス及び暗号化トークンの生成処理と同様に、インデックス及びトークンについて、後の処理で、それぞれの暗号化を解除するための因子も生成する。
(2) Generation of Encrypted Index and Token Next, as shown in the center of FIG. 14, in the process of FIG. 9 to be described later, factors or information relating to the index generated in the above (a) and (b), and the above An encrypted index obtained by encrypting the plaintext index is generated using the disturbance factor generated with respect to the token of (d). Similarly, in the process of FIG. 11 described later, the plaintext token is converted using the factor or information related to the token generated in (c) and (d) above and the disturbance factor generated regarding the index in (a) above. Generate an encrypted encryption token. Further, in the same way as the above-described encryption index and encryption token generation process, factors for releasing the encryption of the index and token are also generated in a later process.

これら暗号化解除用の因子の一部には、上記と同様に、相手の暗号化を撹乱する因子が含まれる。従って、図14では、互いに相手の暗号化を撹乱する因子に関しては、インデックス側からの矢印の一部とトークン側からの矢印の一部とが互いに交差し、暗号化インデックスと暗号化トークンのそれぞれに合流している。   Some of these decryption factors include factors that disturb the other party's encryption, as described above. Therefore, in FIG. 14, with respect to factors that disturb the other party's encryption, a part of the arrow from the index side and a part of the arrow from the token side intersect each other, and each of the encryption index and the encryption token Have joined.

(3)検索結果データの生成
最後に、図14の右側に示すように、後述する図12の処理では、上記の(2)で生成した暗号化インデックス、暗号化トークン、及びそれぞれの暗号化解除用の因子を用いて、暗号化されたインデックスとトークンとの照合が成功したかどうかを判定するための検索結果データを生成する。
(3) Generation of search result data Finally, as shown on the right side of FIG. 14, in the process of FIG. 12 described later, the encryption index, the encryption token, and the decryption of the encryption index generated in (2) above. The search result data for determining whether or not the verification of the encrypted index and the token is successful is generated using the factor for the above.

図14の破線の矢印は、上記(1)で生成された因子の逆元を用いて上記(2)の処理を行うことを示し、太い矢印は、{*}で示すデータ列の各データを掛け合わせること(乗積)を示す。図14の右上には、上記の(1)で因子や情報を生成する際に用いられる各種乱数の定義域(公開パラメータN(整数)を素因数分解して3つの素数p、q、rに関係する)及び、群Gpと群Grにそれぞれ関連する乱数の対応関係を示す。また、図14の下段には、上記の(2)で生成される中間データ(暗号化インデックス及びトークン、暗号化解除用の因子、及び暗号化撹乱の因子)の詳細を示す。   The dashed arrows in FIG. 14 indicate that the process (2) is performed using the inverse element of the factor generated in (1) above, and the thick arrows indicate the data in the data string indicated by {*}. Indicates multiplication (product). In the upper right of FIG. 14, the domain of various random numbers (public parameters N (integer) used for generating factors and information in (1) above are related to three prime numbers p, q, and r by prime factorization. And the correspondence relationship between the random numbers associated with the group Gp and the group Gr. The lower part of FIG. 14 shows details of the intermediate data (encryption index and token, decryption factor, and encryption disturbance factor) generated in (2) above.

図8は、登録エージェント100の秘密鍵と公開パラメータの生成処理を示すシーケンス図である。登録エージェント100において、全体処理部111は、鍵設定部112に、鍵の生成を指示する。   FIG. 8 is a sequence diagram showing a secret key and public parameter generation process of the registration agent 100. In the registration agent 100, the overall processing unit 111 instructs the key setting unit 112 to generate a key.

鍵設定部112は、記憶部120に記憶されたパラメータ137を読み込む(S801)。パラメータ137には、暗号鍵の長さに関するパラメータN−lengthや、暗号文の種類に関するパラメータn−kindsが記載されている。   The key setting unit 112 reads the parameter 137 stored in the storage unit 120 (S801). The parameter 137 describes a parameter N-length related to the length of the encryption key and a parameter n-kinds related to the type of ciphertext.

まず、鍵設定部112は素数pを生成する。素数の生成方法については、標準的な素数生成アルゴリズム(RSA暗号の鍵生成方法など)の実装により、実現できるため、その詳細な説明は省く。次に、位数をpとする、乗算に関する群Gpを生成する。ただし、位数とは、ある群に所属する異なる値を有するデータ(以降、元と呼ぶ)の数である。言い換えると、群Gpにおける異なるバイナリ値を有する元はたかだかp個である。簡単のため、本実施形態において、群Gp上の元は0以上p未満の整数値を持つデータとする。   First, the key setting unit 112 generates a prime number p. The method for generating prime numbers can be realized by implementing a standard prime number generation algorithm (such as a key generation method for RSA encryption), and a detailed description thereof will be omitted. Next, a group Gp related to multiplication with the order p is generated. However, the order is the number of data (hereinafter referred to as original) having different values belonging to a certain group. In other words, there are at most p elements having different binary values in the group Gp. For simplicity, in this embodiment, the element on the group Gp is data having an integer value of 0 or more and less than p.

同様の処理を、素数qと素数rにて行う。即ち、鍵設定部112は、素数q、素数rを生成し、位数をqとする乗算に関する群Gqと、位数をrとする乗算に関する群Grを生成する。また、本実施形態において、群Gq上の元は0以上q未満、群Gr上の元は0以上r未満、の整数値を持つデータとする(S802)。   Similar processing is performed for the prime number q and the prime number r. That is, the key setting unit 112 generates a prime number q and a prime number r, and generates a group Gq related to multiplication with the order q and a group Gr related to multiplication with the order r. In the present embodiment, the element on the group Gq is an integer value of 0 or more and less than q, and the element on the group Gr is an integer value of 0 or more and less than r (S802).

例えば、群Gp上の元gpは、gp≡1 (但し、pは位数(order))という合同式によって生成される任意のgpである。群Gq上の元gq、及び群Gr上の元grについてもそれぞれ素数q及びrを用いて同様に生成される。 For example, the element gp on the group Gp is an arbitrary gp generated by a congruence formula of gp p ≡1 (where p is an order). The element gq on the group Gq and the element gr on the group Gr are similarly generated using the prime numbers q and r, respectively.

ここで、上記の各群の名称と役割を説明する。   Here, the name and role of each group will be described.

Gp(トークン・ベクトル撹乱群):群Gqの元に埋め込まれた平文情報(トークン・ベクトル)を撹乱する為の群
Gq(平文情報エンコード群):平文情報が(インデックス・ベクトルとトークン・ベクトルとして)埋め込まれる群
Gr(インデックス・ベクトル撹乱群):群Gqの元に埋め込まれた平文情報(インデックス・ベクトル)を撹乱する為の群
上記のGp及びGrの名称及び役割は、互いに相手の暗号化を撹乱させる機能に基づいているが、図14の説明で述べたように、自身のインデックス又はトークンの暗号化にも関連する。
Gp (token vector disturbance group): a group for disturbing plaintext information (token vector) embedded in the group Gq Gq (plaintext information encoding group): plaintext information (as an index vector and a token vector) ) Embedded Group Gr (Index Vector Disturbance Group): Group for Disturbing Plain Text Information (Index Vector) Embedded in Group Gq The names and roles of Gp and Gr described above are mutually encrypted. Is related to the encryption of its own index or token, as described in the description of FIG.

鍵設定部112は、素数p、q、rの積からなる、整数N(=pqr)を生成する。この時、整数Nは鍵長パラメータN−length以上の数である。次に、位数をNとする、乗算に関し、双線形性写像を有する群GNを生成する。双線形写像とは、GN上の2つの元を入力とし、別のGN’上の元へ射影する写像e(e:GN×GN→GN’)であり、下記の2条件を満たす写像を指す。
条件1:e(g、h)が群GN’上の元であること
条件2:次式の数1を満たすこと
(数1)e(g、h)=e(g、h)ab
ただし、元g、元hは群GN上の任意の値である。また、a、bは任意の整数であり、gとは群GN上で元gをa乗し、hとは群GN上で元hをb乗した値である。また、群GN上の元から、群Gp上、群Gq上、群Gr上の各元への写像(以降、対応写像と呼ぶ)を生成する。例えば、群GN上の元g、hから群Gp上の元e(g、h)を生成する。合成数Nを位数とする群GNの生成手順と、群Gp、群Gq、群Grとの関係の詳細については、例えば非特許文献3に記載されているので、詳細な説明は省く(S803)。
The key setting unit 112 generates an integer N (= pqr) that is a product of prime numbers p, q, and r. At this time, the integer N is a number greater than or equal to the key length parameter N-length. Next, a group GN having a bilinearity map is generated for multiplication, where the order is N. A bilinear map is a map e (e: GN × GN → GN ′) that takes two elements on GN as input and projects to another element on GN ′, and indicates a map that satisfies the following two conditions. .
Condition 1: e (g, h) it is based on the group GN 'Condition 2: satisfying the number 1 of the following formula (Equation 1) e (g a, h b) = e (g, h) ab
However, the element g and the element h are arbitrary values on the group GN. Further, a and b are arbitrary integers, g a is a value obtained by raising the element g to the a power on the group GN, and h b is a value obtained by raising the element h to the b power on the group GN. Further, a mapping (hereinafter referred to as a corresponding mapping) from elements on the group GN to each element on the group Gp, the group Gq, and the group Gr is generated. For example, an element e (g, h) on the group Gp is generated from elements g and h on the group GN. The details of the generation procedure of the group GN having the composite number N as the order and the relationship between the group Gp, the group Gq, and the group Gr are described in, for example, Non-Patent Document 3, and thus detailed description thereof is omitted (S803). ).

ここで、数1の関係式の導出について説明する。写像e(g、h)において、e(xy、z)=e(x、z)e(y、z)の関係が成り立てば、mが整数の時、この関係を繰り返し適用すると、xに関してe(x、z)=e(x、z)が成り立ち、zに関しても同様に成り立つので、e(g、h)=e(g、h=[e(g、h)=e(g、h)abとなって、数1の関係が成り立つ。 Here, the derivation of the relational expression 1 will be described. In the map e (g, h), if the relationship e (xy, z) = e (x, z) e (y, z) holds, when m is an integer, (x m, z) = e (x, z) m holds is because similarly holds true with respect to z, e (g a, h b) = e (g, h b) a = [e (g, h) b ] a = e (g, h) ab, and the relationship of Formula 1 is established.

なお、f(xy)=f(x)f(y)の関係を満たすf(x)はf(x)=xと表される。但し、k=f(1)′。(y=1+Δ/xとし、f(1)=1を用いて差分方程式を作り、Δ→0として微分方程式を作って解く。)
鍵設定部112は、群Gp上の元gpをランダムに作成する。ランダムに元gpを作成するには、鍵設定部112は0以上p未満の乱数(整数)の生成を全体処理部111に依頼し、全体処理部111は乱数生成部116に0以上p未満の乱数を作成させ、作成した乱数を鍵設定部112に入力し、鍵設定部112は入力された乱数を群Gp上の元gpを作成すればよい。同様に、鍵設定部112は、群Gq上の元gqと、群Gr上の元grをランダムに作成する。
Incidentally, f (xy) = f ( x) satisfies the relationship of f (y) f (x) is expressed as f (x) = x k. However, k = f (1) ′. (Y = 1 + Δ / x, f (1) = 1 is used to create a differential equation, Δ → 0 to create a differential equation and solve it.)
The key setting unit 112 randomly creates the element gp on the group Gp. In order to generate the original gp at random, the key setting unit 112 requests the overall processing unit 111 to generate a random number (integer) of 0 or more and less than p, and the overall processing unit 111 sends the random number generation unit 116 of 0 or more and less than p. A random number is generated, and the generated random number is input to the key setting unit 112. The key setting unit 112 may generate an element gp on the group Gp using the input random number. Similarly, the key setting unit 112 randomly creates an element gq on the group Gq and an element gr on the group Gr.

鍵設定部112は、暗号文の種類パラメータn−kindsの数(以降、nとする)に従い、以下の処理を行う。   The key setting unit 112 performs the following processing according to the number of ciphertext type parameters n-kinds (hereinafter referred to as n).

鍵設定部112は、0以上p未満の乱数p1を作成し、群Gp上の元gpをp1乗した、群Gp上の元であるgpp1を作成する。乱数p1を作成するには、鍵設定部112は0以上p未満の乱数(整数)の生成を全体処理部111に依頼し、全体処理部111は乱数生成部116に0以上p未満の乱数を作成させ、作成した乱数を鍵設定部112に乱数p1として入力し、鍵設定部112は群Gp上の元gpのp1乗を計算すればよい。同様に、0以上p未満の乱数p2を作成し、群Gp上の元gpをp2乗した、群Gp上の元であるgpp2を作成する。この処理をn回くり返し、gpp1、・・・、gppnを作成する。 The key setting unit 112 creates a random number p1 that is greater than or equal to 0 and less than p, and creates gp p1 that is an element on the group Gp by multiplying the element gp on the group Gp by the power of p1. In order to generate the random number p1, the key setting unit 112 requests the entire processing unit 111 to generate a random number (integer) of 0 or more and less than p, and the entire processing unit 111 sends a random number of 0 or more and less than p to the random number generation unit 116. The generated random number is input to the key setting unit 112 as the random number p1, and the key setting unit 112 may calculate the p1 power of the element gp on the group Gp. Similarly, to create a random number p2 from 0 to less than p, the original gp on the group Gp and p2 power, creating a gp p2 is the original on the group Gp. This process is repeated n times to create gp p1 ,..., Gp pn .

さらに、0以上r未満の乱数r1、r2、・・・、rnを作成し、群Gr上の元grr1、・・・、grrnを作成する(S804)。 Furthermore, zero or more random number less than r r1, r2, · · ·, to create a rn, creating original gr r1 on the group Gr, · · ·, a gr rn (S804).

鍵処理部は、写像e、群GN、群GN’、元gp、元gpp1、・・・、元gppnと、元gp、元gqq1、・・・、元gqqnと、元gr、元grr1、・・・、元grrnを公開パラメータとして、元gqと対応写像を秘密鍵として出力する。全体処理部111は、鍵処理部が出力した公開パラメータをパラメータ137の一部として記憶部120へ保存し、秘密鍵は鍵記憶部150へ、元gq、素数p、素数q、素数rを秘密鍵151として保存する(S805)。 The key processing unit includes mapping e, group GN, group GN ', element gp, element gp p1 , ..., element gp pn , element gp, element gq q1 , ..., element gq qn , element gr, The element gr r1 ,..., The element gr rn are used as public parameters, and the element gq and the corresponding mapping are output as secret keys. The overall processing unit 111 stores the public parameter output from the key processing unit in the storage unit 120 as part of the parameter 137, and the secret key stores the element gq, prime p, prime q, and prime r in the key storage unit 150. Saved as the key 151 (S805).

上記の処理(S801からS805)により、登録エージェント100は、暗号化インデックス135と暗号化トークン236の作成に要する、秘密鍵151と公開パラメータを作成し、それらを記憶部120へ格納できる。   Through the above processing (S801 to S805), the registration agent 100 can create the secret key 151 and the public parameters required for creating the encryption index 135 and the encryption token 236, and store them in the storage unit 120.

なお、上記の処理手順は、固定されたものではなく、処理手順を変更して実施してもかまわない。例えば、登録エージェント100は、素数p、素数q、素数rに関する処理を逐次的に実施するようにS802からS805を変更して構わない。例えば、素数pを生成後、pを位数とする群Gpを生成し、群Gp上の元gp、gpp1、・・・、gppnを作成し、記憶部120に格納した後に、同様に、素数qに関する処理、と素数rに関する処理を実施しても構わない。同様に、他の処理内容を変更してもよい。 Note that the above processing procedure is not fixed, and the processing procedure may be changed. For example, the registration agent 100 may change S802 to S805 so as to sequentially perform the processes related to the prime p, prime q, and prime r. For example, after generating the prime number p, the group Gp having the order of p is generated, and the elements gp, gp p1 ,..., Gp pn on the group Gp are generated and stored in the storage unit 120. The processing related to the prime number q and the processing related to the prime number r may be performed. Similarly, other processing contents may be changed.

なお、上記の処理では、GN上の2つの元を入力とし、別のGN’上の元へ射影する双線形写像e(e:GN×GN→GN’)を用いたが、異なる性質の双線形写像e’(e’:GN1×GN2→GN3、ただし、GN1、GN2、GN3はそれぞれ異なる位数を有する)でも、同様に実現できる。   In the above processing, a bilinear map e (e: GN × GN → GN ′) that takes two elements on GN as input and projects to another element on GN ′ is used. A linear map e ′ (e ′: GN1 × GN2 → GN3, where GN1, GN2, and GN3 have different orders) can be similarly realized.

なお、上記の処理では、乗法に関する群を生成したが、楕円曲線上の加法群など、他の群でも同様に実現できる。   In the above processing, a group related to multiplication is generated, but other groups such as an additive group on an elliptic curve can be similarly realized.

図9は、登録エージェント100の暗号化データ134と暗号化インデックス135の登録処理における、完全一致検索に対する、暗号化インデックス135を実現する処理を示すシーケンス図である。図9の処理フローでは、検索用の平文インデックス132を変換するだけでなく、管理サーバ300向けに作成した2種類の検索用のデータ(IDn+1、IDn+2)を含めて、暗号化インデックス135を作成する(非特許文献2の技術とは異なり、本発明では、検索用のデータが2種類あるため、公開パラメータNは3つの素数の積で済む)。平文インデックス132の確率的な暗号化(同一値の平文インデックス132を入力すると、毎回、異なる暗号化インデックス135が作成される)を実現し、暗号化インデックス135に対する高い安全性を実現する。 FIG. 9 is a sequence diagram showing processing for realizing the encrypted index 135 for the exact match search in the registration processing of the encrypted data 134 and the encrypted index 135 of the registration agent 100. In the processing flow of FIG. 9, not only the plaintext index 132 for search is converted, but also the encrypted index 135 including the two types of search data (ID n + 1 , ID n + 2 ) created for the management server 300 is included. (Unlike the technique of Non-Patent Document 2, in the present invention, since there are two types of data for search, the public parameter N can be a product of three prime numbers). Probabilistic encryption of the plaintext index 132 (when a plaintext index 132 having the same value is input, a different encryption index 135 is created each time), and high security for the encryption index 135 is realized.

まず、全体処理部111は、エンコード部115に平文インデックス132を入力し、エンコード部115から出力されたnlog2<q>ビットのインデックス・ベクトルを出力する処理を行う。ただし、<>は小数点第一位の切り上げを意味する。インデックス・ベクトルはlog2<q>ビット毎の要素データ(x1、x2、・・・・、xn)にn分割されている。インデックスを構成する文字列C1C2・・・Cnの各Ckに対応する整数がxkである。また、それぞれの要素データは0以上q未満の整数で表わされる。全体処理部111は、インデックス暗号化部113に、インデックス・ベクトルの暗号化を指示する。 First, the overall processing unit 111 performs a process of inputting the plaintext index 132 to the encoding unit 115 and outputting an nlog 2 <q> -bit index vector output from the encoding unit 115. However, <> means rounding up the first decimal place. The index vector is divided into n pieces of element data (x1, x2,..., Xn) for each log 2 <q> bit. An integer corresponding to each Ck of the character strings C1C2... Cn constituting the index is xk. Each element data is represented by an integer of 0 or more and less than q. The overall processing unit 111 instructs the index encryption unit 113 to encrypt the index vector.

インデックス暗号化部113は、記憶部120に記憶されたパラメータ137を読み込む(S901)。パラメータ137には、暗号鍵の長さに関するパラメータN−lengthや、暗号文の種類に関するパラメータn−kinds、公開パラメータである、写像e、群GN、群GN’、元gp、元gpp1、・・・、元gppnと、元gr、元grr1、・・・、元grrnが記憶されている。秘密鍵151としては、元gq、素数p、素数q、素数rが記憶されている。 The index encryption unit 113 reads the parameter 137 stored in the storage unit 120 (S901). The parameter 137 includes a parameter N-length related to the length of the encryption key, a parameter n-kinds related to the type of ciphertext, and public parameters such as mapping e, group GN, group GN ′, element gp, element gp p1 ,. .., element gp pn , element gr, element gr r1 ,..., Element gr rn are stored. As the secret key 151, an element gq, a prime number p, a prime number q, and a prime number r are stored.

インデックス暗号化部113は、0以上p未満の乱数sを作成し、S804で生成した元gp、元gpp1、・・・、元gppnをs乗した、元gp、元gpsp1、・・・、元gpspnを作成する。なお、乱数sを作成するには、鍵設定部112は0以上p未満の乱数(整数)の生成を全体処理部111に依頼し、全体処理部111は乱数生成部116に0以上p未満の乱数を作成させ、作成した乱数を鍵設定部112に乱数sとして入力し、鍵設定部112は群Gp上の元gp、元gpp1、・・・、元gppnのs乗を計算すればよい(S902)。 Index encryption unit 113 creates a random number s from 0 to less than p, the original gp generated at S804, the original gp p1, · · ·, the former gp pn the multiplication s, original gp s, original gp sp1, · -Create the original gp spn . In order to generate the random number s, the key setting unit 112 requests the overall processing unit 111 to generate a random number (integer) of 0 or more and less than p, and the overall processing unit 111 asks the random number generation unit 116 to create a random number of 0 or more and less than p. to create a random number, enter the random number created in the key setting unit 112 as a random number s, the original gp on the key setting unit 112 group gp, based gp p1, · · ·, by calculating the multiplication s original gp pn Good (S902).

同様に、インデックス暗号化部113は、0以上r未満の乱数u1、乱数u2、・・・、乱数unを作成し、元grから、元gru1、・・・、元grunを作成する(S903)。 Similarly, the index encryption unit 113, random numbers u1 from 0 to less than r, the random number u2, · · ·, to create a random number un, from the original gr, original gr u1, · · ·, to create the original gr un ( S903).

インデックス暗号化部113は、S903で作成した乱数u1、乱数u2、・・・、乱数unを用い、S804で生成した元grr1、・・・、元grrnをそれぞれu1,u2,・・・un乗して、それぞれ元gru1r1、・・・、元grunrnを作成する。さらに、各元の積であるgru1r1+・・・+unrnを計算する。この処理は、検索に関わるインデックス・ベクトル内の要素データに関連している。即ち、インデックス・ベクトルとの完全一致検索のみを依頼する場合、gru1r1+・・・+unrnを作成すればよい。また、インデックス・ベクトルの一部との部分検索を可能にする場合、例えば、インデックス・ベクトルの1番目から(n−1)番目の要素データとの対応(n番目を無視したい場合)をとる場合は、gru1r1+・・・+u(n−1)r(n−1)を作成すればよく、インデックス・ベクトルの1番目と3番目と5番目の要素データのみと対応(他は無視したい場合)をとる場合は、gru1r1+u3r3+u5r5を作成すればよい。なお、積の計算は、次式の数2に示すように、乗算で処理可能である(S904)。
(数2)gru1r1+・・・+unrn=gru1r1gru2r2・・・grunrn
インデックス暗号化部113は、要素データ(x1、x2、・・・・、xn)を用い、元gqから、それぞれgqx1、gqx2、・・・、gqxnを作成する(S905)。
Index encryption unit 113, random numbers u1 created in S903, the random number u2, · · ·, using random numbers un, based gr r1 generated in S804, · · ·, respectively based gr rn u1, u2, · · · The element gr u1r1 ,..., and element gr unrn are generated by raising to un. Further, gr u1r1 +... + Unrn which is the product of each element is calculated. This processing is related to element data in an index vector related to search. That is, if only an exact match search with the index vector is requested, gr u1r1 +... + Unrn may be created. Also, when partial search with a part of the index vector is possible, for example, when correspondence with the first to (n-1) th element data of the index vector (when the nth is desired to be ignored) is taken. Needs to create gr u1r1 +... + U (n-1) r (n-1) , and corresponds only to the first, third and fifth element data of the index vector (if other are to be ignored) In this case, gr u1r1 + u3r3 + u5r5 may be created. The product calculation can be processed by multiplication as shown in the following equation (2) (S904).
( Equation 2) gr u1r1 +... + Unrn = gr u1r1 gr u2r2 ... Gr unrn
The index encryption unit 113 creates gq x1 , gq x2 ,..., Gq xn from the element gq using the element data (x1, x2,..., Xn) (S905).

インデックス暗号化部113は、各元の積である、gqx1gpsp1gru1、gqx2gpsp2gru2、・・・、gqxngpspngrun、を計算し、対応写像を用いて、GN上の元へ移したデータを、それぞれID(gqx1gpsp1gru1に対応)、ID(gqx2gpsp2gru2に対応)、・・・IDn(gqxngpspngrunに対応)とする(S906)。 The index encryption unit 113 calculates gq x1 gp sp1 gr u1 , gq x2 gp sp2 gr u2 ,..., Gq xn gp spn gr un , which is the product of each element, and uses the corresponding mapping to calculate GN. the data transferred onto the original, each ID 1 (corresponding to gq x1 gp sp1 gr u1), ( corresponding to gq x2 gp sp2 gr u2) ID 2, ( corresponding to gq xn gp spn gr un) ··· IDn (S906).

インデックス暗号化部113は、gpをIDn+1、gru1r1+・・・+unrnをIDn+2とし、ID、ID、・・・、IDn+2までを一組のデータとして、出力する。全体処理部111は、出力されたデータを暗号化インデックス135として、記憶部120に保存する(S907)。なお、公開パラメータNに4つの素数の積(N=pqrs)を要する非特許文献2の技術と異なり、本発明で公開パラメータNが3つの素数の積(N=pqr)でよいのは、検索用のデータが2種類(IDn+1、IDn+2)存在するからである。 The index encryption unit 113 outputs gp s as ID n + 1 , gr u1r1 +... + Unrn as ID n + 2, and ID 1 , ID 2 ,..., ID n + 2 as a set of data. The overall processing unit 111 stores the output data in the storage unit 120 as the encrypted index 135 (S907). Unlike the technique of Non-Patent Document 2 in which the public parameter N requires a product of four prime numbers (N = pqrs), the public parameter N may be a product of three prime numbers (N = pqr) in the present invention. This is because there are two types of data (ID n + 1 , ID n + 2 ).

ここで、中間データであるIDk、TDk、Uk(k=1〜n、n+1、n+2)の名称と役割を説明する。これらのデータの関連は図14に示した。   Here, the names and roles of IDk, TDk, Uk (k = 1 to n, n + 1, n + 2), which are intermediate data, will be described. The relationship between these data is shown in FIG.

(1)インデックス関連
IDk(インデックス・ベクトル表現インデックス):
平文情報(インデックス・ベクトル)埋め込み用の暗号化インデックスの一部
IDn+1(トークン・ベクトル撹乱群の削除用インデックス):
「トークン・ベクトル撹乱群の削除用トークン」と連携し、暗号化トークンからトークン・ベクトル撹乱群Gpの元を削除する、暗号化イ ンデックスの一部
IDn+2(インデックス・ベクトル撹乱群の削除用インデックス):
「インデックス・ベクトル撹乱群の削除用トークン」と連携し、暗号化インデックスからインデックス・ベクトル撹乱群Grの元を削除する、暗号化インデックスの一部
(2)トークン関連
TDk(インデックス・ベクトル表現トークン):
平文情報(トークン・ベクトル)埋め込み用の暗号化トークンの一部
TDn+1(トークン・ベクトル撹乱群の削除用トークン):
「トークン・ベクトル撹乱群の削除用インデックス」と連携し、暗号化トークンからトークン・ベクトル撹乱群Gpの元を削除する、暗号 化トークンの一部
TDn+2(インデックス・ベクトル撹乱群の削除用トークン):
「インデックス・ベクトル撹乱群の削除用インデックス」と連携し、暗号化インデックスからインデックス・ベクトル撹乱群Grの元を削 除する、暗号化トークンの一部
(3)検索結果データ関連
Uk(要素間照合データ):
「インデックス・ベクトル表現インデックス」と「インデックス・ベクトル表現トークン」の積。インデックス・ベクトルとトークン・ベ クトルの各要素の照合結果。(x_k z_k)を含む。
(1) Index-related IDk (index / vector expression index):
Part of encrypted index for embedding plaintext information (index / vector) ID n + 1 (index for deleting token / vector disturbance group):
Part of the encryption index ID n + 2 (index for deleting vector / vector disturbance group) that deletes the token / vector disturbance group Gp element from the encryption token in cooperation with the token / vector disturbance group deletion token ):
Part of the encrypted index that deletes the element of the index / vector disturbance group Gr from the encrypted index in cooperation with the “index / vector disturbance group deletion token” (2) Token related TDk (index vector expression token) :
Part of encryption token for embedding plaintext information (token vector) TD n + 1 (token / vector disturbance group deletion token):
Part of encryption token TD n + 2 (deletion token for index / vector disturbance group) that deletes the origin of token / vector disturbance group Gp from the encryption token in cooperation with “Index for deleting token / vector disturbance group” :
Part of the encryption token that deletes the source of the index / vector disturbance group Gr from the encryption index in cooperation with the “Index for deleting the index / vector disturbance group” (3) Search result data related Uk (Inter-element verification data):
The product of “index vector expression index” and “index vector expression token”. Matching result of each element of the index vector and token vector. (x_k z_k) is included.

n+1(トークン・ベクトル撹乱群の解除用データ):
「要素間照合データ」から、トークン・ベクトル撹乱群Gpによる、撹乱情報を取り除く。
n+2(インデックス・ベクトル撹乱群の解除用データ):
「要素間照合データ」から、インデックス・ベクトル撹乱群Grによる、撹乱情報を取り除く。
U n + 1 (token / vector disturbance group cancellation data):
Disturbance information by the token vector disturbance group Gp is removed from the “inter-element matching data”.
U n + 2 (data for releasing the index vector disturbance group):
Disturbance information by the index / vector disturbance group Gr is removed from the “inter-element verification data”.

上記の処理(S901からS907)により、登録エージェント100は、記憶部120に格納された秘密鍵151と公開パラメータに基づき、暗号化インデックス135を作成できる。特に、インデックス・ベクトル(x1、x2、・・・、xn)は秘密鍵151であるgqの指数として扱われる上、更に十分に乱数性が高いGpとGqの元に挟まれているので(例えば、IDは、gqx1gpsp1gru1であり、公開パラメータgpp1を乱数s乗したgpsp1と、公開パラメータgrを乱数u1乗したgru1とによって撹乱されている)、値が同じインデックス・ベクトルに対しても、毎回発生する乱数が異なるので、異なる値の暗号化インデックス135作成されるため、暗号化インデックス135には高い安全性が期待できる。 Through the above processing (S901 to S907), the registration agent 100 can create the encryption index 135 based on the secret key 151 and the public parameter stored in the storage unit 120. In particular, the index vector (x1, x2,..., Xn) is handled as an index of gq which is the secret key 151 and is further sandwiched between Gp and Gq having sufficiently high randomness (for example, ID 1 is gq x1 gp sp1 gr u1 and is disturbed by gp sp1 obtained by raising the public parameter gp p1 to the power of the random number s and gr u1 obtained by raising the public parameter gr to the power of the random number u1). Since the random number generated every time is different for the vector, the encryption index 135 having a different value is created. Therefore, the encryption index 135 can be expected to have high security.

また、3つの素数の積で構成された公開パラメータNを暗号化インデックス135の作成に用いたため、暗号化の対象であるメッセージも、非特許文献2の技術に比べ利用効率が高い。   In addition, since the public parameter N configured by the product of three prime numbers is used to create the encryption index 135, the message to be encrypted is also more efficient than the technique of Non-Patent Document 2.

(暗号化可能なメッセージの効率)=q/N=1/pr(>1/(pqr))
更に、S905の処理において、暗号化インデックス135に取り込むインデックス・ベクトルの要素データを選択することにより、完全一致検索だけでなく、部分一致検索用の暗号化インデックス135を作成できる。また、暗号化インデックス135は、ID・・・IDn+2だけで構成する必要はなく、特に部分一致検索用にその構成数を増やしてもよい。
(Encrypted message efficiency) = q / N = 1 / pr (> 1 / (pqr))
Furthermore, by selecting index vector element data to be incorporated into the encrypted index 135 in the processing of S905, it is possible to create an encrypted index 135 for partial match search as well as complete match search. Further, the encryption index 135 does not need to be configured only with ID 1 ... ID n + 2 , and the number of components may be increased particularly for partial match search.

なお、上記の処理手順は、固定されたものではなく、処理手順を変更して実施してもかまわない。例えば、S901の後にS903とS904を実施、S904の後にS902を実施してもよい。また、S905をS902、S903、S904より先に実施してもよい。   Note that the above processing procedure is not fixed, and the processing procedure may be changed. For example, S903 and S904 may be performed after S901, and S902 may be performed after S904. Further, S905 may be performed before S902, S903, and S904.

なお、上記の処理では、乗法に関する群を生成したが、楕円曲線上の加法群など、他の群でも同様に実現できる。   In the above processing, a group related to multiplication is generated, but other groups such as an additive group on an elliptic curve can be similarly realized.

図10は、本実施形態において、ネットワーク400を経由し、検索エージェント200が送信した暗号化トークン236を元に、管理サーバ300が、暗号化データ712を検索する処理を示すシーケンス図である。   FIG. 10 is a sequence diagram illustrating a process in which the management server 300 searches the encrypted data 712 based on the encryption token 236 transmitted by the search agent 200 via the network 400 in the present embodiment.

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

検索エージェント200のトークン暗号化部213は、記憶部220に格納された秘密鍵251とパラメータ237をロードし、平文トークン233を暗号化トークン236に変換する。なお、変換方法については、図11を用い、後で詳しく説明する(S1002)。   The token encryption unit 213 of the search agent 200 loads the secret key 251 and the parameter 237 stored in the storage unit 220, and converts the plaintext token 233 into the encryption token 236. The conversion method will be described in detail later with reference to FIG. 11 (S1002).

検索エージェント200の通信部は、トークン暗号化部213より出力された暗号化トークン236を、ネットワーク400を経由し、管理サーバ300へ送信する処理を行う(S1003)。   The communication unit of the search agent 200 performs a process of transmitting the encrypted token 236 output from the token encryption unit 213 to the management server 300 via the network 400 (S1003).

管理サーバ300の通信部303から、ネットワーク400を経由し、検索エージェント200が送信した暗号化トークン236を受信する処理を行う(S1004)。   A process of receiving the encryption token 236 transmitted by the search agent 200 from the communication unit 303 of the management server 300 via the network 400 is performed (S1004).

管理サーバ300の全体処理部311は、受信した暗号化トークン236と、ロードする暗号化インデックス701の番号を検索部312に入力する(S1005)。例えば、記憶部320に格納された暗号化インデックス701を網羅的に検索する場合、全体処理部311は、予めインデックス・テーブルに格納された暗号化インデックス701に番号を割り当てておき(例えば1から1000まで等)、検索部312に1から1000までの処理を逐次的に入力すればよい。   The overall processing unit 311 of the management server 300 inputs the received encryption token 236 and the number of the encryption index 701 to be loaded into the search unit 312 (S1005). For example, when searching the encrypted index 701 stored in the storage unit 320 comprehensively, the overall processing unit 311 assigns a number to the encrypted index 701 stored in the index table in advance (for example, 1 to 1000). Etc.), the processing from 1 to 1000 may be sequentially input to the search unit 312.

管理サーバ300の検索部312は検索結果に関するデータを出力する(S1006)。なお、検索部312の処理については、図12を用い、後で詳しく説明する。   The search unit 312 of the management server 300 outputs data related to the search result (S1006). The processing of the search unit 312 will be described in detail later with reference to FIG.

管理サーバ300の全体処理部311は、検索結果が1である(暗号化トークン236と暗号化インデックス701が関連する)場合、図7Aに示すインデックス・テーブルから、該当した暗号化インデックス701に関連するアドレスをロードし(例えば、図7Aのインデックス・テーブルにおいて、暗号化インデックスI1(701)が該当した場合、全体処理部311はaddress 1をロードする)、そのアドレスに記憶される暗号化データ712をロードする(例えば、図7Bのデータ・テーブルにおいては、全体処理部311はaddress 1に記憶される暗号化データE1をロードする)。全体処理部311は、ロードした暗号化データ712を検索結果の一部として、記憶部320に保存する(S1007)。   When the search result is 1 (the encryption token 236 and the encryption index 701 are related), the overall processing unit 311 of the management server 300 relates to the corresponding encryption index 701 from the index table shown in FIG. 7A. The address is loaded (for example, when the encrypted index I1 (701) corresponds to the index table in FIG. 7A, the overall processing unit 311 loads address 1), and the encrypted data 712 stored in the address is stored. (For example, in the data table of FIG. 7B, the overall processing unit 311 loads the encrypted data E1 stored in address 1). The overall processing unit 311 stores the loaded encrypted data 712 in the storage unit 320 as a part of the search result (S1007).

管理サーバ300の検索部312は、S1005からS1007までの処理を、全体処理部311が停止させるまで処理を繰り返す(S1008)。   The search unit 312 of the management server 300 repeats the processing from S1005 to S1007 until the overall processing unit 311 stops (S1008).

管理サーバ300は、検索結果の一部として、ロードした全ての暗号化データ712を通信部303から、ネットワーク400を経由し、検索エージェント200へ送信する処理を行う。なお、暗号化データ712をロードしなかった場合、「該当なし」とし、通信部303から、ネットワーク400を経由し、「該当なし」を示すデータを検索エージェント200へ送信する処理を行う(S1009)。   The management server 300 performs processing for transmitting all the loaded encrypted data 712 from the communication unit 303 to the search agent 200 via the network 400 as part of the search result. If the encrypted data 712 is not loaded, “N / A” is set, and data indicating “N / A” is transmitted from the communication unit 303 via the network 400 to the search agent 200 (S1009). .

検索エージェント200の通信部203から、ネットワーク400を経由し、管理サーバ300が送信した暗号化データ712または「該当なし」を示すデータを受信する処理を行う(S1010)。   A process of receiving encrypted data 712 or data indicating “not applicable” transmitted from the management server 300 via the network 400 from the communication unit 203 of the search agent 200 is performed (S1010).

検索エージェント200が暗号化データ712を受信した場合、全体処理部211は、データ復号部218へ暗号化データ712を入力し、データ復号部218は、記憶部220に格納された秘密鍵251をロードし、暗号化データ712を平文データ231に変換する。なお、変換方法については、標準的な復号アルゴリズム(AES暗号、DES暗号など)の実装により、実現可能であるため、その詳細な説明は省く(S1011)。   When the search agent 200 receives the encrypted data 712, the overall processing unit 211 inputs the encrypted data 712 to the data decrypting unit 218, and the data decrypting unit 218 loads the secret key 251 stored in the storage unit 220. Then, the encrypted data 712 is converted into plaintext data 231. Note that the conversion method can be realized by mounting a standard decryption algorithm (AES encryption, DES encryption, etc.), and thus detailed description thereof is omitted (S1011).

検索エージェント200の全体処理部211は、データ復号部218が出力した平文データ231を、記憶部220へ格納する(S1012)。   The overall processing unit 211 of the search agent 200 stores the plaintext data 231 output from the data decryption unit 218 in the storage unit 220 (S1012).

上記の処理(S1001からS1012)により、検索エージェント200は、ネットワーク400経由で、管理サーバ300に暗号化データ712の検索を指示し、その検索結果を確認できる。   Through the above processing (S1001 to S1012), the search agent 200 can instruct the management server 300 to search the encrypted data 712 via the network 400 and check the search result.

なお、上記の処理手順は、固定されたものではなく、処理手順または処理内容を変更して実施してもかまわない。例えば、管理サーバ300は複数の暗号化インデックス701に対する検索処理を一括で実施し(S1005からS1007)、さらに繰り返し処理を省くようにしてもよい(S1008)。また、管理サーバ300も、1件の暗号化インデックス701の検索毎に、検索結果を作成(S1007)、送信(S1009)してもよく、さらに複数件ごとにまとめてもかまわない。
Note that the above processing procedure is not fixed, and the processing procedure or the processing content may be changed. For example, the management server 300 may perform a search process for a plurality of encrypted indexes 701 at once (S1005 to S1007), and further omit the repeated process (S1008). Also, the management server 300 may create (S1007) and transmit (S1009) search results for each search of the encrypted index 701, or may collect the search results for a plurality of records.

図11は、検索エージェント200の暗号化トークン236による検索処理における、暗号化トークン236を生成する処理を示すシーケンス図である。   FIG. 11 is a sequence diagram showing a process for generating the encryption token 236 in the search process using the encryption token 236 of the search agent 200.

図11の処理フローでは、検索用の平文トークン233を変換するだけでなく、管理サーバ300向けに作成した2種類の検索用データを含め、暗号化トークン236を作成する(非特許文献2の技術とは異なり、本発明では、検索用のデータが2種類あるため、公開パラメータNは3つの素数の積で済む)。平文トークン233の確率的な暗号化(同一値の平文トークン233を入力すると、毎回、異なる暗号化トークン236が作成される)を実現し、暗号化トークン236に対する高い安全性を実現する。   In the processing flow of FIG. 11, not only the plaintext token 233 for search is converted, but also an encryption token 236 is created including two types of search data created for the management server 300 (the technology of Non-Patent Document 2). Unlike in the present invention, since there are two types of search data, the public parameter N is a product of three prime numbers). Probabilistic encryption of the plaintext token 233 (a different encryption token 236 is created every time the same value of the plaintext token 233 is input) realizes high security for the encryption token 236.

全体処理部211は、トークン暗号化部213に、トークン・ベクトルの暗号化を指示する。   The overall processing unit 211 instructs the token encryption unit 213 to encrypt the token vector.

トークン暗号化部213は、記憶部220に記憶されたパラメータ237と秘密鍵251を読み込む(S1101)。パラメータ237には、暗号鍵の長さに関するパラメータN−lengthや、暗号文の種類に関するパラメータn−kinds、公開パラメータである、写像e、群GN、群GN’、元gp、元gpp1、・・・、元gppn、元gr、元grr1、・・・、元grrnが記憶されている。秘密鍵251としては、元gq、素数p、素数q、素数rが記憶されている。 The token encryption unit 213 reads the parameter 237 and the secret key 251 stored in the storage unit 220 (S1101). The parameter 237 includes a parameter N-length related to the length of the encryption key, a parameter n-kinds related to the type of ciphertext, and public parameters such as mapping e, group GN, group GN ′, element gp, element gp p1 ,. .., element gp pn , element gr, element gr r1 ,..., Element gr rn are stored. As the secret key 251, an element gq, a prime number p, a prime number q, and a prime number r are stored.

全体処理部211は、エンコード部215に平文トークン233を入力し、エンコード部215から出力されたnlog2<q>ビットのトークン・ベクトルを出力する処理を行う。ただし、<>は小数点第一位の切り上げを意味する。トークン・ベクトルはlog2<q>ビット毎の要素データ(y1、y2、・・・・、yn)にn分割されている。トークンを構成する文字列C1C2・・・Cnの各Ckに対応する整数がykである。また、それぞれの要素データは0以上q未満の整数で表わされる。全体処理部211は、トークン・ベクトルと内積をとると、その値がGN上で0と等しくなる直交ベクトルを作成する。この直交ベクトルも、log2<q>ビット毎の要素データ(z1、z2、・・・・、zn)にn分割されており、それぞれの要素データは0以上q未満の整数で表わされる。 The overall processing unit 211 inputs the plaintext token 233 to the encoding unit 215 and performs processing for outputting an nlog 2 <q> -bit token vector output from the encoding unit 215. However, <> means rounding up the first decimal place. The token vector is divided into n pieces of element data (y1, y2,..., Yn) for each log 2 <q> bit. An integer corresponding to each Ck of the character strings C1C2... Cn constituting the token is yk. Each element data is represented by an integer of 0 or more and less than q. The overall processing unit 211, when taking the inner product with the token vector, creates an orthogonal vector whose value is equal to 0 on the GN. This orthogonal vector is also divided into n pieces of element data (z1, z2,..., Zn) for each log 2 <q> bit, and each element data is represented by an integer of 0 or more and less than q.

直交ベクトルの作成では、次式の数3を満たすよう、0以上q未満の整数をそれぞれ、z1、z2、・・・znに設定すればよい。
(数3)y1z1+・・・+ynzn=kq(kは任意の整数)
上記の数3は、y1z1+・・・+ynzn≡0(mod q)と等価である。
具体的には、全体処理部211は乱数生成部216に0以上q未満の乱数を作成させ、作成した乱数を、それぞれz1、z2、z(n−1)と設定する。また、数3を満たすznの値は(連立一次方程式を解くことにより)一意に求まるので、その値をznに設定する(S1102)。
In the generation of the orthogonal vector, an integer of 0 or more and less than q may be set to z1, z2,.
(Expression 3) y1z1 +... + Ynzn = kq (k is an arbitrary integer)
The above equation 3 is equivalent to y1z1 +... + Ynzn≡0 (mod q).
Specifically, the overall processing unit 211 causes the random number generation unit 216 to generate a random number from 0 to less than q, and sets the generated random numbers as z1, z2, and z (n−1), respectively. Further, since the value of zn satisfying Equation 3 is uniquely obtained (by solving simultaneous linear equations), the value is set to zn (S1102).

数3で示されるy1z1+・・・+ynzn=0を満たす直交ベクトル(z1、z2、・・・・、zn)は、例えば、以下の手順により求められる。元のベクトル{yk}をベースとして直交ベクトルの成分を求めると、直交ベクトル{zk}は、z1=y1−yn/y1,zk=yk−(y(k−1))/yk(k=2〜n)と表される。特に、yk>y(k−1)(k=2〜n)の場合は、zk>0(k=2〜n)、z1<0となる。さらに、{zk}のそれぞれを整数化するために、{yk}の最小公倍数Mを掛けても直交条件は満たされる。 Orthogonal vectors (z1, z2,..., Zn) satisfying y1z1 +... + Ynzn = 0 expressed by Equation 3 are obtained by the following procedure, for example. When obtaining the components of the orthogonal vector original vector {yk} as a base, an orthogonal vector {zk} is, z1 = y1-yn 2 / y1, zk = yk- (y (k-1)) 2 / yk (k = 2 to n). In particular, when yk> y (k−1) (k = 2 to n), zk> 0 (k = 2 to n) and z1 <0. Furthermore, the orthogonality condition is satisfied even if the least common multiple M of {yk} is multiplied in order to convert {zk} into an integer.

z1<0となるz1を正の値にするため、z1′=z1+Δ(>0)とおくと(|z1|<Δ)、直交条件は、y1z1′+y2z2+・・・・+ynzn=y1Δ(=kqとおく)となる。z1′=w(>0)とすると、Δ=w−z1=w+|z1|=w+(yn/y1)−y1。 If z1 ′ = z1 + Δ (> 0) is set to z1 <0, where z1 <0 (+0) (| z1 | <Δ), the orthogonality condition is y1z1 ′ + y2z2 +... + ynzn = y1Δ (= kq It will be). When z1 ′ = w (> 0), Δ = w−z1 = w + | z1 | = w + (yn 2 / y1) −y1.

なお、平文トークン233にワイルドカード“*”が含まれていた場合は、該当するトークン・ベクトルの要素データは無視して、作成する。例えば、平文トークン233に“abced”の代わりに“a*b*e”と入力された(かつn=5の)場合、平文トークン233がトークン・ベクトルの要素データに1文字毎にエンコードされる場合、次式の数4を元に直交ベクトル(z1、z2、z3、z4、z5)を作成する。   When the plaintext token 233 includes a wild card “*”, the element data of the corresponding token vector is ignored and created. For example, when “a * b * e” is input to the plaintext token 233 instead of “abced” (and n = 5), the plaintext token 233 is encoded for each character in the token vector element data. In this case, an orthogonal vector (z1, z2, z3, z4, z5) is created based on Equation 4 below.

(数4)y1z1+y2z2+y3z3+y4z4+y5z5=kq(kは任意の整数)
一方、平文トークンがワイルドカードを含む“a*b*e”の場合には“*”が入力された2番目と4番目にはワイルドカードが入力されているので、次式の数5に基づいて直交ベクトル(z1、*、z3、*、z5)を求める。
(Expression 4) y1z1 + y2z2 + y3z3 + y4z4 + y5z5 = kq (k is an arbitrary integer)
On the other hand, when the plaintext token is “a * b * e” including a wild card, since the wild card is input in the second and fourth in which “*” is input, based on Equation 5 below To obtain orthogonal vectors (z1, *, z3, *, z5).

(数5)y1z1+y3z3+y5z5=kq(kは任意の整数)
数5は、数3の式において、ワイルドカードに対応する要素データz2、z4をそれぞれ0としたものである。
(Expression 5) y1z1 + y3z3 + y5z5 = kq (k is an arbitrary integer)
Expression 5 is obtained by setting element data z2 and z4 corresponding to the wild card to 0 in the expression of Expression 3.

S1103では、トークン暗号化部213は、0以上r未満の乱数tを作成し、S804で生成した元gr、元grr1、・・・、元grrnをt乗した、元gr、元grtr1、・・・、元grtrnを作成する。なお、乱数tを作成するには、トークン暗号化部213は0以上r未満の乱数(整数)の生成を全体処理部211に依頼し、全体処理部211は乱数生成部216に0以上r未満の乱数を作成させ、作成した乱数をトークン暗号化部213に乱数tとして入力し、トークン暗号化部213は群Gp上の元gr、元grr1、・・・、元grrnのt乗を計算すればよい(S1103)。 In S1103, the token encryption unit 213 creates a random number t that is greater than or equal to 0 and less than r, and the element gr t , element gr obtained by powering the element gr, element gr r1 ,. tr1 ,..., the original gr trn is created. In order to generate the random number t, the token encryption unit 213 requests the whole processing unit 211 to generate a random number (integer) of 0 or more and less than r, and the whole processing unit 211 sends the random number generation unit 216 to 0 or more and less than r. And the generated random number is input to the token encryption unit 213 as a random number t, and the token encryption unit 213 calculates the element gr, element gr r1 ,. What is necessary is just to calculate (S1103).

同様に、トークン暗号化部213は、0以上r未満の乱数v1、乱数v2、・・・、乱数vnを作成し、元gpから、元gpv1、・・・、元gpvnを作成する(S1104)。 Similarly, the token encryption unit 213 creates a random number v1, a random number v2,..., A random number vn of 0 or more and less than r, and creates an element gp v1 ,. S1104).

トークン暗号化部213は、S1104で作成した乱数v1、乱数v2、・・・、乱数vnを用い、S804で生成した元gpp1、・・・、元gppnをそれぞれV1,V2,・・・・Vn乗して、各元gpv1p1、・・・、元gpvnpnを作成する。さらに、それぞれの元の積であるgpv1p1+・・・+vnpnを計算する。この処理は、検索に関わるトークン・ベクトル内の要素データに関連している。即ち、トークン・ベクトルとの完全一致検索のみを依頼する場合、gpv1p1+・・・+vnpnを作成すればよい。また、トークン・ベクトルの一部との部分検索を可能にする場合、例えば、トークン・ベクトルの1番目から(n−1)番目の要素データとの対応(n番目の要素データがワイルドカード)をとる場合は、gpv1p1+・・・+v(n−1)p(n−1)を作成すればよく、トークン・ベクトルの1番目と3番目と5番目の要素データのみと対応(他の要素データはワイルドカード)をとる場合は、gpv1p1+v3p3+v5p5を作成すればよい。即ち、トークン・ベクトル内の要素データのうち、ワイルドカードに対応する乱数pk、即ちp2及びp4の値を0に設定する。なお、積の計算は、次式の数6に示すように、乗算で処理可能である(S1105)。
(数6)grv1p1+・・・+vnpn=grv1p1grv2p2・・・grvnpn
トークン暗号化部213は、直交ベクトルの要素データ(z1、z2、・・・・zn)を用い、元gqから、それぞれgqz1、gqz2、・・・、gqznを作成する(S1106)。
The token encryption unit 213 uses the random number v1, the random number v2,..., The random number vn created in S1104, and the original gp p1 generated in S804 is converted into the original gp pn as V1, V2,. Each element gp v1p1 ,..., Element gp vnpn is generated by raising to the power of Vn. Further, gp v1p1 +... + Vnpn which is the original product of each is calculated. This processing is related to element data in the token vector related to the search. That is, when only a complete match search with a token vector is requested, gp v1p1 +... + Vnpn may be created. In addition, when a partial search with a part of the token vector is enabled, for example, the correspondence with the first to (n-1) th element data of the token vector (the nth element data is a wild card). In order to take this, it is sufficient to create gp v1p1 +... + V (n-1) p (n-1) , corresponding to only the first, third and fifth element data of the token vector (other element data Can be used to create gp v1p1 + v3p3 + v5p5 . That is, among the element data in the token vector, the random numbers pk corresponding to the wild card, that is, the values of p2 and p4 are set to zero. The product calculation can be processed by multiplication as shown in the following equation (6) (S1105).
( Equation 6) gr v1p1 +... + Vnpn = gr v1p1 gr v2p2 ... Gr vnpn
The token encryption unit 213 creates gq z1 , gq z2 ,..., Gq zn from the element gq using the orthogonal vector element data (z1, z2,... Zn) (S1106).

トークン暗号化部213は、各元の積である、gqz1gpv1grtr1、gqz2gpv2grtr2、・・・、gqzngpvngrtrn、を計算し、対応写像を用いて、GN上の元へ移したデータを、それぞれTD(gqz1gpv1grtr1に対応)、TD(gqz2gpv2grtr2に対応)、・・・TD(gqzngpvngrtrnに対応)とする(S1107)。 The token encryption unit 213 calculates gq z1 gp v1 gr tr1 , gq z2 gp v2 gr tr2 ,..., Gq zn gp vn gr trn , which is a product of each element, and uses GN the data transferred onto the original, (corresponding to gq z1 gp v1 gr tr1) TD 1 respectively, (corresponding to gq z2 gp v2 gr tr2) TD 2, corresponding to the ··· TD n (gq zn gp vn gr trn (S1107).

なお、公開パラメータNが4つの素数の積(N=pqrs)であり、インデックスとトークンを撹乱する為に、3つの群(Gp,Gr,Gs)が利用可能な非特許文献2の開示技術とは異なり、本発明では、公開パラメータNを3つの素数の積(N=pqr)にしたため、インデックスとトークンを撹乱する為に、2つの群 (Gp,Gr)しか、利用できない。そこで、S1107で示したように、トークン・ベクトル撹乱群の削除用トークンと、インデックス・ベクトル撹乱群の削除用トークンを作成し、それらの撹乱情報の削除を可能にした。   It should be noted that the public parameter N is a product of four prime numbers (N = pqrs), and the disclosed technique of Non-Patent Document 2 in which three groups (Gp, Gr, Gs) can be used to disturb the index and the token In the present invention, since the public parameter N is a product of three prime numbers (N = pqr), only two groups (Gp, Gr) can be used to disturb the index and the token. Therefore, as shown in S1107, a token / vector disturbance group deletion token and an index / vector disturbance group deletion token are created, and the disturbance information can be deleted.

S1107も、S1105同様、検索に関わるトークン・ベクトル内の要素データに関連している。即ち、トークン・ベクトルとの完全一致検索のみを依頼する場合は、全てのTD、TD、・・・、TDを作成すればよいが、トークン・ベクトルの部分一致検索の場合、例えば、トークン・ベクトルの1番目から(n−1)番目の要素データとの対応(n番目の要素データがワイルドカード)をとる場合は、TD、TD、・・・、TDn−1を作成すればよく、ワイルドカードを含む上記の例では、トークン・ベクトルの1番目と3番目と5番目の要素データのみと対応(他の要素データはワイルドカード)をとる場合は、TD、TD、TDを作成すればよい。さらに、検索用のデータとして、TD及びTDを作成する。 S1107 is also related to element data in the token vector related to the search, similar to S1105. That is, if only a complete match search with a token vector is requested, all TD 1 , TD 2 ,..., TD n may be created. TD 1 , TD 2 ,..., TD n-1 are created when correspondence with the first to (n-1) th element data of the token vector is taken (the nth element data is a wild card). In the above example including a wild card, only the first, third, and fifth element data of the token vector correspond to each other (other element data is a wild card), and TD 1 , TD 3 , TD 5 may be created. Further, TD 6 and TD 7 are created as search data.

トークン暗号化部213は、gpv1p1+・・・+vnpnの逆元gp−(v1p1+・・・+vnpn)を計算し、これをTDn+1とし、grの逆元gr−tをTDn+2とし、TD、TD、・・・、TDn+2までを一組のデータとして、出力する。全体処理部211は、出力されたデータを暗号化トークン236として、記憶部220に保存する。更に、作成した(ワイルドカードの番号を抜いた)TDの添え字番号も、暗号化トークン236として記憶部220に保存する(S1108)。 Token encryption unit 213, gp v1p1 + ··· + vnpn the inverse element gp - (v1p1 + ··· + vnpn ) was calculated, which was the TD n + 1, the inverse element gr -t of gr t and TD n + 2, TD 1 , TD 2 ,..., TD n + 2 are output as a set of data. The overall processing unit 211 stores the output data in the storage unit 220 as an encryption token 236. Further, the created subscript number of TD (from which the wild card number is removed) is also stored in the storage unit 220 as the encryption token 236 (S1108).

上記の処理(S1101からS1108)により、検索エージェント200は、記憶部220に格納された秘密鍵251と公開パラメータに基づき、暗号化トークン236を作成できる。特に、トークン・ベクトル(z1、z2、・・・、zn)は秘密鍵251であるgqの指数として扱われる上、更に十分に乱数性が高い群Gpと群Gqの元に挟まれているので(例えば、TDは、gqz1gpv1grtr1であり、公開パラメータgpを乱数v1乗したgpv1と、公開パラメータgrr1を乱数t乗したgrtr1とによって撹乱されている)、値が同じトークン・ベクトルに対しても、毎回発生する乱数が異なるので、異なる値の暗号化トークン236が作成されるため、暗号化トークン236には高い安全性が期待できる。また、3つの素数の積で構成された公開パラメータNを暗号化トークン236の作成に用いるため、暗号化の対象であるメッセージの利用効率も、非特許文献2の技術に比べ、高い。 Through the above processing (S1101 to S1108), the search agent 200 can create the encryption token 236 based on the secret key 251 and the public parameter stored in the storage unit 220. In particular, the token vector (z1, z2,..., Zn) is handled as an index of gq which is the secret key 251, and is further sandwiched between the group Gp and the group Gq having sufficiently high randomness. (For example, TD 1 is gq z1 gp v1 gr tr1 , and is disturbed by gp v1 obtained by raising the public parameter gp to the power of the random number v1 and gr tr1 obtained by raising the public parameter gr r1 to the power of the random number t). Since the generated random numbers are different for each token vector, encryption tokens 236 having different values are created, so that the encryption token 236 can be expected to have high security. In addition, since the public parameter N configured by the product of three prime numbers is used to create the encryption token 236, the use efficiency of the message to be encrypted is higher than that of the technique of Non-Patent Document 2.

(暗号化可能なメッセージの効率)=q/N=1/pr(>1/(pqr))
更に、S1105の処理において、暗号化トークン236に取り込むトークン・ベクトルの要素データを選択することにより、完全一致検索だけでなく、部分一致検索用の暗号化トークン236を作成できる。また、暗号化トークン236は、TD・・・TDn+2だけで構成する必要はなく、特に部分一致検索用にその構成数を増やしてもよい。
(Encrypted message efficiency) = q / N = 1 / pr (> 1 / (pqr))
Further, by selecting the element data of the token vector to be taken into the encryption token 236 in the processing of S1105, it is possible to create the encryption token 236 for partial match search as well as complete match search. Also, the encryption token 236 need not be composed of TD 1 ... TD n + 2 alone, and the number of components may be increased particularly for partial match search.

なお、上記の処理手順は、固定されたものではなく、処理手順を変更して実施してもかまわない。例えば、登録エージェント100は、S1103、S1104、S1105の順序を変更し、暗号化トークン236を作成してもよい。   Note that the above processing procedure is not fixed, and the processing procedure may be changed. For example, the registration agent 100 may change the order of S1103, S1104, and S1105 to create the encryption token 236.

図12は、管理サーバ300の暗号化データを検索する処理を示す、シーケンス図である。管理サーバ300において、全体処理部311は、検索部312に、暗号化トークン336と、暗号化インデックス701の番号を入力し、暗号化データ712の検索処理を指示する。検索では、管理サーバ300向けに作成された暗号化インデックス701と暗号化トークン336の2種類の検索用データ(IDn+1(=gp)、IDn+2(=grΣukrk)、TDn+1(=gp−Σvkpk)、TDn+2(=gr−t))を活用し、暗号化インデックス701と暗号化トークン336における乱数情報(群Gpの元と群Grの元)を排除する。
(非特許文献2の技術とは異なり、本発明では、検索用のデータが2種類あるため、公開パラメータNが3つの素数の積でも、部分検索が可能である)。
FIG. 12 is a sequence diagram illustrating a process for searching the encrypted data of the management server 300. In the management server 300, the overall processing unit 311 inputs the encryption token 336 and the number of the encryption index 701 to the search unit 312, and instructs the search processing of the encrypted data 712. In the search, two types of search data (ID n + 1 (= gp s ), ID n + 2 (= gr Σukrk ), TD n + 1 (= gp ) created for the management server 300 are used. Σvkpk ), TD n + 2 (= gr −t )) is used to eliminate random number information (group Gp element and group Gr element) in the encryption index 701 and the encryption token 336.
(Unlike the technique of Non-Patent Document 2, in the present invention, since there are two types of search data, partial search is possible even if the public parameter N is a product of three prime numbers).

検索部312は、記憶部320に記憶されたパラメータを読み込む(S1201)。パラメータ337には、暗号鍵の長さに関するパラメータN−lengthや、暗号文の種類に関するパラメータn−kinds、双線形写像などが記載されている。   The search unit 312 reads the parameters stored in the storage unit 320 (S1201). The parameter 337 describes a parameter N-length related to the length of the encryption key, a parameter n-kinds related to the type of ciphertext, a bilinear mapping, and the like.

検索部は、入力された暗号化インデックス701の番号を元に、記憶部320に格納されたインデックス・テーブルから暗号化インデックス701を読み込む(S1202)。   The search unit reads the encrypted index 701 from the index table stored in the storage unit 320 based on the input number of the encrypted index 701 (S1202).

以降、管理サーバ300は暗号化インデックス701と暗号化トークン336の照合処理を行う。   Thereafter, the management server 300 performs verification processing of the encryption index 701 and the encryption token 336.

まず、検索部312は暗号化トークン336から、TDの添え字番号を抜き出す(S1203)。以降では、簡単のため、TDの添え字番号が1からn+2まで全て存在する場合を紹介する。   First, the search unit 312 extracts the TD subscript number from the encryption token 336 (S1203). In the following, for simplicity, the case where all the subscript numbers of TD exist from 1 to n + 2 will be introduced.

検索部312は暗号化インデックス701からID(元gqx1gpsp1gru1に対応)、暗号化トークン336からTD(元gqz1gpv1grtr1に対応)を取り出す。次式の数7に従い、IDとTDの双線形写像を計算し、これをUとする。
(数7)U=e(gqx1gpsp1gru1、gqz1gpv1grtr1
=e(gp、gp)sp1v1e(gq、gq)x1z1e(gr、gr)u1tr1
ここで、数7の関係式の導出について説明する。
The search unit 312 extracts ID 1 (corresponding to the original gq x1 gp sp1 gr u1 ) from the encryption index 701 and TD 1 (corresponding to the original gq z1 gp v1 gr tr1 ) from the encryption token 336. A bilinear map of ID 1 and TD 1 is calculated according to the following equation (7), and this is defined as U 1 .
(Expression 7) U 1 = e (gq x1 gp sp1 gr u1 , gq z1 gp v1 gr tr1 )
= E (gp, gp) sp1v1 e (gq, gq) x1z1 e (gr, gr) u1tr1
Here, derivation of the relational expression of Expression 7 will be described.

数1に関連したe(xy、z)=e(x、z)e(y、z)の関係を用いると、2つの変数x、yを含む場合に、
e(xm1n1,xm2n2)=e(xm1,xm2n2)e(yn1,xm2n2
=e(xm1,xm2)e(xm1,yn2)e(yn1,xm2)e(yn1,yn2
=e(x,x)m1m2e(x,y)m1n2e(y,x)n1m2e(y,y)n1n2となる。特に、x∈X、y∈Y、かつX≠Yの場合(xとyが異なる群に属する場合)にe(x,y)=e(y,x)=1とすると、e(xm1n1,xm2n2)=e(x,x)m1m2e(y,y)n1n2となる。さらに変数が増えた場合、上記の関係を繰り返し適用すると、数7の関係式が得られる。なお、e(xy、z)=e(x、z)e(y、z)の関係において、変数及びe(xy、z)等の対数によって上記の関係を整理すると、上記の関係が2つの変数に対する線形写像(双線形写像)であることが示される。
Using the relationship e (xy, z) = e (x, z) e (y, z) associated with Equation 1, if we include two variables x and y,
e (x m1 y n1 , x m2 y n2 ) = e (x m1 , x m2 y n2 ) e (y n1 , x m2 y n2 )
= E (x m1 , x m2 ) e (x m1 , y n2 ) e (y n1 , x m2 ) e (y n1 , y n2 )
= E (x, x) m1m2 e (x, y) m1n2 e (y, x) n1m2 e (y, y) n1n2 . In particular, when e (x, y) = e (y, x) = 1 when x∈X, y∈Y and X ≠ Y (when x and y belong to different groups), e (x m1 y n1 , x m2 y n2 ) = e (x, x) m1m2 e (y, y) n1n2 . When the number of variables further increases, when the above relation is repeatedly applied, the relational expression of Expression 7 is obtained. In addition, in the relationship of e (xy, z) = e (x, z) e (y, z), when the above relationship is arranged by a logarithm such as a variable and e (xy, z), the above relationship becomes two. It is shown to be a linear mapping (bilinear mapping) to a variable.

次に、検索部312は、暗号化インデックス701からID(元gqx2gpsp2gru2に対応)、暗号化トークン336からTD(元gqz2gpv2grtr2に対応)を取り出し、同様に双線形写像を計算し、Uを作成する。この手順を暗号化インデックス701のID、ID、・・・Dn+2、及び暗号化トークン336のTD、TD、・・・TD、TDn+1、TDn+2についてUk=e(IDk,TDk)(k=1〜n,n+1,n+2)の処理を行い、中間データU、U、・・・、U、Un+1、Un+2を作成する。(S1204)
次に、管理サーバ300は、中間データU1、U2、・・・Un、Un+1、Un+2の積を計算し、これを検索結果データvとする(S1205)。以降、Un+1とUn+2は、それぞれ双線形写像U1、U2、・・・Unにおける群Gpの元と、群Grの元からなる乱数情報の排除に用いられる。暗号化インデックス701と暗号化トークン336に、検索用のデータが2種類(IDn+1、IDn+2、TDn+1、TDn+2)存在するため、これら乱数情報の排除用のデータUn+1、Un+2が作成できる。
(数8)v=U・・・Un+2
=e(gp、gp)sp1v1e(gq、gq)x1z1e(gr、gr)u1tr1
e(gp、gp)sp2v2e(gq、gq)x2z2e(gr、gr)u2tr2
・・・・・・・・・・・・・・
・・・・・・・・・・・・・・
e(gp、gp)spnvne(gq、gq)xnzne(gr、gr)untrn
e(gp、gp)−sΣvkpke(gr、gr)−tΣukrk
=e(gp、gp)sΣpkvke(gr、gr)tΣukrk
e(gq、gq)(x1z1+x2z2+・・・+xnzn)
e(gp、gp)−sΣpkvke(gr、gr)−tΣukrk
=e(gq、gq)(x1z1+x2z2+・・・+xnzn)
上記の数8の右辺の第3式は、模式的に、(インデックスの撹乱因子)・(トークンの撹乱因子)・(インデックス・ベクトルとトークン・ベクトルの直交ベクトルとの内積)・(インデックスの撹乱削除因子)・(トークンの撹乱削除因子)のように、複数の因子の積として表され、インデックス及びトークンのそれぞれの撹乱因子とその削除因子とが相殺されて(インデックス・ベクトルとトークン・ベクトルの直交ベクトルとの内積)のみが残り、数8の右辺の第4式が得られる。
Next, the search unit 312 extracts ID 2 (corresponding to the original gq x2 gp sp2 gr u2 ) from the encryption index 701 and TD 2 (corresponding to the original gq z2 gp v2 gr tr2 ) from the encryption token 336, and similarly A bilinear map is calculated and U 2 is created. This procedure is performed for ID 1 , ID 2 ,... D n + 2 of the encryption index 701 and Uk = e (IDk, TD n , TD n + 1 , TD n + 2 of the encryption token 336 and TD 1 , TD 2 ,. TDk) (k = 1 to n, n + 1, n + 2) is performed, and intermediate data U 1 , U 2 ,..., U n , U n + 1 , U n + 2 are created. (S1204)
Next, the management server 300 calculates a product of the intermediate data U1, U2,... Un, Un + 1, Un + 2, and sets this as search result data v (S1205). Thereafter, Un + 1 and Un + 2 are used to exclude random number information composed of elements of the group Gp and elements of the group Gr in the bilinear maps U1, U2,. Since there are two types of search data (ID n + 1 , ID n + 2 , TD n + 1 , TD n + 2 ) in the encryption index 701 and the encryption token 336, the data Un + 1 and Un + 2 for eliminating these random number information can be created.
(Equation 8) v = U 1 U 2 ... U n + 2
= E (gp, gp) sp1v1 e (gq, gq) x1z1 e (gr, gr) u1tr1
e (gp, gp) sp2v2 e (gq, gq) x2z2 e (gr, gr) u2tr2
...
...
e (gp, gp) spnvn e (gq, gq) xnzn e (gr, gr) untrn
e (gp, gp) −sΣvkpk e (gr, gr) −tΣukrk
= E (gp, gp) sΣpkkk e (gr, gr) tΣukrk
e (gq, gq) (x1z1 + x2z2 + ... + xnzn)
e (gp, gp) −sΣpkkk e (gr, gr) −tΣukrk
= E (gq, gq) (x1z1 + x2z2 + ... + xnzn)
The third equation on the right side of Equation 8 is schematically expressed as (index disturbance factor), (token disturbance factor), (inner product of index vector and token vector orthogonal vector), (index disturbance) (Deletion factor) ・ (token disturbance deletion factor) It is expressed as a product of multiple factors, and each disturbance factor of index and token and its deletion factor are offset (index vector and token vector Only the inner product with the orthogonal vector) remains, and the fourth equation on the right side of Equation 8 is obtained.

ここで、x1z1+・・・+xnzn=kq(kは任意の整数)
が成立すれば、次式の数9より、群GN上の単位元1を得る。
(数9)v=e(gq、gq)=1
また、x1z1+・・・+xnzn=kq(kは任意の整数)が成立しない時、数9は成立しえない。従って、平文インデックス132と平文トークン233が等しければ、エンコードされたインデックス・ベクトルとトークン・ベクトルは等しく、更にインデックス・ベクトルと直交ベクトルで数9が成立するので、数9の成立、未成立で評価できる。
Here, x1z1 +... + Xnzn = kq (k is an arbitrary integer)
Is established, the unit element 1 on the group GN is obtained from the following equation (9).
(Equation 9) v = e (gq, gq) 0 = 1
Further, when x1z1 +... + Xnzn = kq (k is an arbitrary integer) is not established, Expression 9 cannot be established. Therefore, if the plaintext index 132 and the plaintext token 233 are equal, the encoded index vector is equal to the token vector, and further, the formula 9 is established by the index vector and the orthogonal vector. it can.

検索部312は、全体処理部311へ検索結果データvを出力する(S1206)。   The search unit 312 outputs the search result data v to the overall processing unit 311 (S1206).

全体処理部311は、検索結果データvの値が1である場合、記憶部320から、暗号化インデックス701に関連付けられたアドレスをロードする(S1207)。   If the value of the search result data v is 1, the overall processing unit 311 loads the address associated with the encrypted index 701 from the storage unit 320 (S1207).

全体処理部311は、ロードしたアドレスから、該当する暗号化データ712をロードし、これを検索結果の一部として、記憶部320に保存する(S1208)。   The overall processing unit 311 loads the corresponding encrypted data 712 from the loaded address, and stores it in the storage unit 320 as a part of the search result (S1208).

上記の処理(S1201からS1208)により、管理サーバ300は、記憶部320に格納された公開パラメータに基づき、暗号化トークン336に関連する暗号化インデックス701を発見でき、その暗号化インデックス701に関連する暗号化データ712を含めた検索結果を作成できる。   Through the above processing (S1201 to S1208), the management server 300 can find the encryption index 701 associated with the encryption token 336 based on the public parameters stored in the storage unit 320, and can relate to the encryption index 701. A search result including the encrypted data 712 can be created.

なお、上記の処理手順は、固定されたものではなく、処理手順や処理内容を変更して実施してもかまわない。例えば、管理サーバ300は中間データU、・・・、Un+2の作成処理を一括で実施してもよい(S1204)。また、複数件の暗号化インデックス701の検索毎に、検索結果データvを作成し(S1205)、出力(S1206)してもよい。S1204、S1205では、TDの添え字番号が1からn+2まで全て存在する完全一致検索の場合を紹介した。同様に、例えば、1から(n−1)番とn+1番とn+2番が記憶されている場合、U・・・Un―1n+1n+2を検索結果vとすればよく、1番と3番と5番とn+1番とn+2番が記憶されている場合は、Un+1n+2を検索結果vとすれば、部分一致検索が実施できる。 Note that the above processing procedure is not fixed, and the processing procedure and processing content may be changed and executed. For example, the management server 300 may collectively perform the process of creating the intermediate data U 1 ,..., U n + 2 (S1204). Further, for each search of a plurality of encrypted indexes 701, search result data v may be created (S1205) and output (S1206). In S1204 and S1205, the case of an exact match search in which all subscript numbers of TD exist from 1 to n + 2 was introduced. Similarly, for example, when 1 to (n−1), n + 1, and n + 2 are stored, U 1 U 2 ... U n−1 U n + 1 U n + 2 may be used as the search result v. If No. 1, No. 3, No. 5, No. n + 1 and No. n + 2 are stored, a partial match search can be performed if U 1 U 3 U 5 U n + 1 U n + 2 is used as the search result v.

なお、上記の処理では、GN上の2つの元を入力とし、別のGN’上の元へ射影する双線形写像e(e:GN×GN→GN’)を用いたが、異なる性質の双線形写像e’(e’:GN1×GN2→GN3、ただし、GN1、GN2、GN3はそれぞれ異なる位数を有する)でも、同様に実現できる。   In the above processing, a bilinear map e (e: GN × GN → GN ′) that takes two elements on GN as input and projects to another element on GN ′ is used. A linear map e ′ (e ′: GN1 × GN2 → GN3, where GN1, GN2, and GN3 have different orders) can be similarly realized.

なお、上記の処理では、乗法に関する群を用いたが、楕円曲線上の加法群など、他の群でも同様に実現できる。   In the above processing, a group related to multiplication is used, but other groups such as an additive group on an elliptic curve can be similarly realized.

(実施の形態2)
本発明の第一の実施形態と異なり、第二の実施の形態では、検索処理システムは、登録エージェント100と、管理サーバ300で構成される。登録エージェント100と管理サーバ300は、ネットワーク400を介して相互に情報を送受信できるように設計されている。
(Embodiment 2)
Unlike the first embodiment of the present invention, in the second embodiment, the search processing system includes a registration agent 100 and a management server 300. The registration agent 100 and the management server 300 are designed to be able to send and receive information to and from each other via the network 400.

本実施形態における登録エージェント100は、データと検索用のインデックス(以下、インデックスと呼ぶ)を管理サーバ300に送信し、受信結果を管理サーバ300から受信する送受信装置として機能する。また、登録エージェント100は、検索処理委託用のトークンを管理サーバ300に送信し、その検索結果を管理サーバ300から受信する送受信装置として機能し、管理サーバ300は、データを記憶し、また受信したトークンを用いて、データを検索する送受信装置として機能する。   The registration agent 100 according to the present embodiment functions as a transmission / reception device that transmits data and a search index (hereinafter referred to as an index) to the management server 300 and receives a reception result from the management server 300. Also, the registration agent 100 functions as a transmission / reception device that transmits a search processing entrustment token to the management server 300 and receives the search result from the management server 300. The management server 300 stores and receives data. It functions as a transmission / reception device that searches for data using a token.

この時、管理サーバ300の機能は第一の実施の形態と同様である。また、登録エージェント100の機能は、第一の実施の形態が示す登録エージェント100の機能に加え、検索エージェント200の機能も備える。即ち、第一の実施の形態が示す登録エージェント100に対し、更に制御部110にトークン暗号化部213、記憶部120に平文トークン233と暗号化トークン236を格納し、更にプログラム記憶部160には、暗号化トークン236による検索処理に関するプログラムを記憶する。   At this time, the function of the management server 300 is the same as that of the first embodiment. Further, the function of the registration agent 100 includes the function of the search agent 200 in addition to the function of the registration agent 100 shown in the first embodiment. That is, for the registration agent 100 shown in the first embodiment, the token encryption unit 213 is further stored in the control unit 110, the plaintext token 233 and the encryption token 236 are stored in the storage unit 120, and the program storage unit 160 is further stored in the program storage unit 160. A program related to the search process using the encryption token 236 is stored.

第二の実施の形態における管理サーバ300の処理内容は、第一の実施の形態と同様であり、この説明を省く。また、第二の実施の形態における登録エージェント100の処理内容は、第一の実施の形態における登録エージェント100と検索エージェント200の処理内容を兼ねるものであり、同様に、その説明を省く。   The processing contents of the management server 300 in the second embodiment are the same as those in the first embodiment, and a description thereof will be omitted. The processing contents of the registration agent 100 in the second embodiment also serve as the processing contents of the registration agent 100 and the search agent 200 in the first embodiment, and will not be described in the same manner.

100:登録エージェント、200:検索エージェント、300:管理サーバ
400:ネットワーク、500:コンピュータ、101、201、301:入力部、102、202、302:出力部、103、203、303:通信部、110、210、310:制御部、111、211、311:全体処理部、112:鍵設定部、113:インデックス暗号化部、115、215:エンコード部、116、216:乱数生成部、117データ暗号化部、213:トークン暗号化部、218:データ復号部、312:検索部、120、220、320:記憶部、
130、230、330:データ記憶部、131、231:平文データ、132:平文インデックス、134、234:暗号化データ、135:暗号化インデックス、137、237、337:パラメータ、233:平文トークン、236、336:暗号化トークン、331:暗号化データ・テーブル、332:暗号化インデックス・テーブル、150、250:鍵記憶部、151、251:秘密鍵、160、260、360:プログラム記憶部、180、280、380:一時情報記憶部、501:CPU(Central Processing Unit)、502:メモリ、503:外部記憶装置、508:記憶媒体、507:読書装置、506:入力装置、505:出力装置、504:通信装置、509:内部通信線、700:インデックス・テーブル、701:暗号化インデックス、702:アドレス値、710:データ・テーブル、711:アドレス、712:暗号化データ
100: registration agent, 200: search agent, 300: management server 400: network, 500: computer, 101, 201, 301: input unit, 102, 202, 302: output unit, 103, 203, 303: communication unit, 110 210, 310: Control unit, 111, 211, 311: Overall processing unit, 112: Key setting unit, 113: Index encryption unit, 115, 215: Encoding unit, 116, 216: Random number generation unit, 117 Data encryption , 213: token encryption unit, 218: data decryption unit, 312: search unit, 120, 220, 320: storage unit,
130, 230, 330: Data storage unit, 131, 231: Plain text data, 132: Plain text index, 134, 234: Encrypted data, 135: Encryption index, 137, 237, 337: Parameter, 233: Plain text token, 236 336: Encryption token, 331: Encryption data table, 332: Encryption index table, 150, 250: Key storage unit, 151, 251: Private key, 160, 260, 360: Program storage unit, 180, 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, 505: Output device, 504: Communication device 509: Internal communication line 700: Index table 701: Encryption Index, 702: address value, 710: data table, 711: address, 712: encrypted data

Claims (14)

登録処理プログラムと検索処理プログラムを記憶部に記憶する管理サーバと、登録依頼プログラムを記憶部に記憶する登録エージェントと、検索依頼プログラムを記憶部に記憶する検索エージェントがネットワーク経由で連携する検索処理システムであって、
登録エージェントは、3つの素数(p、q、r)を生成し、これらの積から公開パラメータN(=pqr)を構成し、qを位数とする群の元を秘密鍵として記憶する鍵記憶部と、pとqを位数とする群の元を公開パラメータとして記憶するデータ記憶部を備え、
登録エージェントは、検索用の平文インデックスを上記秘密鍵と上記公開パラメータにより、検索用の暗号化インデックスへ変換し、この暗号化インデックスを管理サーバの記憶部へ登録し、
検索エージェントは、検索用の平文トークンを上記秘密鍵と上記公開パラメータにより、検索用の暗号化トークンへ変換し、この暗号化トークンを管理サーバの記憶部へネットワーク経由で送信し、
管理サーバは、受信した暗号化トークンが、記憶部に格納された暗号化インデックスに該当するかを、前記暗号化トークンと前記暗号化インデックスを双線形写像することによって得られる検索結果データを用いて判定すること、
を特徴とする検索処理ステム。
A search processing system in which a management server that stores a registration processing program and a search processing program in a storage unit, a registration agent that stores a registration request program in the storage unit, and a search agent that stores a search request program in the storage unit cooperate via a network Because
The registration agent generates three prime numbers (p, q, r), constructs a public parameter N (= pqr) from these products, and stores a group element with q as an order as a secret key And a data storage unit for storing, as public parameters, elements of a group whose order is p and q,
The registration agent converts the plaintext index for search into an encrypted index for search using the secret key and the public parameter, and registers the encrypted index in the storage unit of the management server.
The search agent converts the plaintext token for search into an encryption token for search using the secret key and the public parameter, and transmits the encryption token to the storage unit of the management server via the network.
The management server uses search result data obtained by bilinearly mapping the encryption token and the encryption index to determine whether the received encryption token corresponds to the encryption index stored in the storage unit. Judging,
A search processing system characterized by
請求項1記載の検索処理システムであって、
前記暗号化インデックスは、暗号化された平文インデックスの情報と、2つの乱数情報の排除用のデータから構成され、
前記暗号化トークンは、暗号化された平文トークンの情報と、2つの乱数情報の排除用のデータから構成され、
管理サーバは、前記暗号化インデックスと前記暗号化トークンがそれぞれ保有する乱数情報の排除用のデータを用い、暗号化された平文インデックスの情報と暗号化された平文トークンの情報との照合の有無を示す情報を抽出し、前記暗号化トークンが前記インデックスに該当するかを判定すること、
を特徴とする検索処理ステム。
The search processing system according to claim 1,
The encrypted index is composed of encrypted plaintext index information and data for excluding two random number information,
The encryption token is composed of encrypted plaintext token information and data for excluding two random number information,
The management server uses the data for eliminating the random number information held by the encryption index and the encryption token, and determines whether or not the encrypted plaintext index information and the encrypted plaintext token information are collated. Extracting information indicating, and determining whether the encryption token corresponds to the index;
A search processing system characterized by
請求項2記載の検索処理システムであって、
前記平文インデックスから、前記暗号化インデックスへの変換は、群Gqの元の指数に平文インデックスに関する情報を埋め込み、さらに公開パラメータとして検索エージェントの記憶部に記憶された群Gpの元と群Grの元を、群Gqの元に掛け合わせていること、
を特徴とする検索処理システム。
The search processing system according to claim 2,
The conversion from the plaintext index to the encrypted index is performed by embedding information about the plaintext index in the original index of the group Gq, and further, the elements of the group Gp and the elements of the group Gr stored in the storage unit of the search agent as public parameters. Is multiplied by the group Gq,
A search processing system characterized by this.
請求項3記載の検索処理システムであって、
前記平文トークンから、前記暗号化トークンへの変換は、双線形群Gqの元の指数に平文トークンのデータ情報を埋め込み、さらに公開パラメータとして検索エージェントの記憶部に記憶された双線形群Gpの元と双線形群Grの元を、双線形群Gqの元に掛け合わせていること、
を特徴とする検索処理システム。
The search processing system according to claim 3,
The conversion from the plaintext token to the encryption token is performed by embedding data information of the plaintext token in the original index of the bilinear group Gq, and further, the element of the bilinear group Gp stored in the storage unit of the search agent as a public parameter. And the elements of the bilinear group Gr are multiplied by the elements of the bilinear group Gq,
A search processing system characterized by this.
請求項4記載の検索処理システムであって、
前記検索エージェントは、前記平文トークンに対応するトークン・ベクトルに直交する直交ベクトルを作成し、前記平文インデックスに対応するインデックス・ベクトルとの内積を作成すること、
を特徴とする検索処理システム。
The search processing system according to claim 4,
The search agent creates an orthogonal vector orthogonal to a token vector corresponding to the plaintext token, and creates an inner product with an index vector corresponding to the plaintext index;
A search processing system characterized by this.
請求項5記載の検索処理システムであって、
前記登録エージェントは、平文インデックスを部分一致検索用の前記暗号化インデックスに変換する、インデックス暗号化部を備え、
前記検索エージェントは、ワイルドカードが入力された前記平文トークンを、前記ワイルドカードに対応する部分を間引いた前記暗号化トークンに変換し、
前記登録サーバは、前記暗号化インデックスを管理サーバの記憶部に格納し、格納した上記暗号化インデックスを前記暗号化トークンが該当するかを判断すること、
を特徴とする検索処理システム。
The search processing system according to claim 5, wherein
The registration agent includes an index encryption unit that converts a plaintext index into the encrypted index for partial match search,
The search agent converts the plaintext token in which a wild card is input into the encryption token obtained by thinning a part corresponding to the wild card,
The registration server stores the encryption index in a storage unit of a management server, and determines whether the encryption token corresponds to the stored encryption index;
A search processing system characterized by this.
請求項6記載の検索処理システムであって、
前記登録サーバは、暗号化したデータを前記管理サーバの記憶部への登録を依頼し、
前記管理サーバは、前記暗号化したデータを上記管理サーバの前記記憶部へ記憶し、
前記暗号化インデックスは、記憶した前記暗号化したデータのアドレス値と関連付けた状態で前記記憶部へ記憶されること、
を特徴とする検索処理ステム。
The search processing system according to claim 6,
The registration server requests registration of the encrypted data in the storage unit of the management server;
The management server stores the encrypted data in the storage unit of the management server,
The encrypted index is stored in the storage unit in a state associated with the stored address value of the encrypted data;
A search processing system characterized by
請求項7記載の検索処理システムであって、
前記管理サーバは、前記暗号化トークンが前記インデックスに該当するかを判定し、該当すると判定した場合には、前記暗号化インデックスに関連付けられたアドレス値に記憶されている、前記暗号化されたデータを記憶部からロードし、前記暗号化されたデータを検索結果の一部とすること、
を特徴とする検索処理ステム。
The search processing system according to claim 7, wherein
The management server determines whether or not the encryption token corresponds to the index, and if it is determined to be applicable, the encrypted data stored in an address value associated with the encryption index From the storage unit, and making the encrypted data a part of the search result,
A search processing system characterized by
請求項8記載の検索処理システムであって、
前記検索エージェントは、前記管理サーバから受信した前記検索結果を復号し、前記暗号化されたデータを抽出すること、
を特徴とする検索処理ステム。
The search processing system according to claim 8, wherein
The search agent decrypts the search result received from the management server and extracts the encrypted data;
A search processing system characterized by
データを登録するための登録エージェントと、データを検索するための検索エージェントと、データを管理するための管理サーバとがネットワークを介して接続された検索処理システムにおける部分一致検索方法であって、
前記登録エージェントは、
所望のデータ及び前記データに関するインデックスを前記管理サーバに登録する利用者が入力した公開パラメータである整数Nを素因数分解して3つの素数を取得し、
前記素数を用いて、前記管理サーバに登録するデータ及びインデックスを暗号化し、
前記暗号化されたデータ及びインデックスを前記管理サーバに送信し、
前記管理サーバは、
前記暗号化されたデータ及びインデックスを互いに関連付けて記憶部に格納し、
前記検索エージェントは、
データ検索の利用者が入力した、部分文字列からなる検索用トークンを受け取り、
前記公開パラメータから生成した3つの前記素数を用いて、トークンを暗号化して前記管理サーバに送信し、
前記管理サーバは、
前記検索エージェントから受け取った前記暗号化されたトークンと前記暗号化されたインデックスとの照合を、双線形写像を用いて実行することによって検索を行い、
前記照合が成功すれば、前記暗号化されたインデックスと関連付けられた前記暗号化データを検索し、前記検索された暗号化データを前記検索エージェントに送信し、
前記検索エージェントは、
前記管理サーバから受信した前記暗号化されたデータを、前記公開パラメータから生成した3つの前記素数を用いて、複号化して平文の検索結果を出力して前記データ検索の利用者に提示する、
ことを特徴とする部分一致検索方法。
A partial match search method in a search processing system in which a registration agent for registering data, a search agent for searching for data, and a management server for managing data are connected via a network,
The registered agent is:
The integer N which is a public parameter input by a user who registers desired data and an index related to the data in the management server is primed to obtain three prime numbers,
Using the prime number, the data and index to be registered in the management server are encrypted,
Sending the encrypted data and index to the management server;
The management server
Storing the encrypted data and the index in association with each other in a storage unit;
The search agent is
Receives a search token consisting of a substring entered by the user of the data search,
Using the three prime numbers generated from the public parameters, a token is encrypted and sent to the management server,
The management server
A search is performed by performing a match between the encrypted token received from the search agent and the encrypted index using a bilinear map;
If the verification is successful, search the encrypted data associated with the encrypted index, and send the searched encrypted data to the search agent;
The search agent is
The encrypted data received from the management server is decrypted using the three prime numbers generated from the public parameters, and a plaintext search result is output and presented to a user of the data search.
A partial match search method characterized by the above.
前記検索用トークンの平文にワイルドカードが含まれている場合は、ワイルドカードに対応した部分を間引いて、前記暗号化トークンを生成することを特徴とする請求項10記載の部分一致検索方法。   11. The partial match search method according to claim 10, wherein when a plain card of the search token includes a wild card, the encryption token is generated by thinning out a part corresponding to the wild card. 前記部分一致検索方法において、
前記公開パラメータを素因数分解して第1、第2及び第3の素数を取得し、
前記第1の素数に基づいて生成される第1の群によって、前記インデックスを暗号化するための第1の因子を生成し、
前記第2の素数に基づいて生成される第2の群によって、前記暗号化インデックスの元となる第1の情報を生成し、
前記トークンの文字列をベクトル化したトークン・ベクトルに直交するベクトルと前記第2の群によって前記暗号化トークンの元となる第2の情報を生成し、
前記第3の素数に基づいて生成される第3の群によって前記トークンを暗号化するための第2の因子を生成する、
ことを特徴とする請求項10記載の部分一致検索方法。
In the partial match search method,
Factoring the public parameters to obtain first, second and third prime numbers;
Generating a first factor for encrypting the index by a first group generated based on the first prime number;
Generating a first information as a source of the encrypted index by a second group generated based on the second prime number;
Generating a second information as a source of the encryption token by a vector orthogonal to a token vector obtained by vectorizing the token character string and the second group;
Generating a second factor for encrypting the token by a third group generated based on the third prime number;
The partial match search method according to claim 10.
前記部分一致検索方法は、さらに、
前記第1の因子、前記第1の情報、及び前記第2の因子に関連して生成された第1の撹乱の因子を用いて、前記平文インデックスを暗号化した前記暗号化インデックスを生成し、
前記第2の情報、前記第2の因子、及び前記第1の因子に関連して生成された第2の撹乱の因子を用いて、前記平文トークンを暗号化した前記暗号化トークンを生成し、
前記インデックス及び前記トークンについて、それぞれの暗号化を解除するための暗号化解除因子を生成する、
ことを特徴とする請求項12記載の部分一致検索方法。
The partial match search method further includes:
Generating the encrypted index by encrypting the plaintext index using the first factor, the first information, and the first disturbance factor generated in relation to the second factor;
Using the second information, the second factor, and a second perturbation factor generated in relation to the first factor to generate the encrypted token that is the encrypted plaintext token;
For the index and the token, generate a decryption factor for decrypting each encryption,
The partial match search method according to claim 12, wherein:
前記部分一致検索方法は、さらに、
前記生成した暗号化インデックス、暗号化トークン、及びそれぞれの前記暗号化解除用の因子を用いて、前記暗号化インデックスと前記暗号化トークンとの照合が成功したかどうかを判定するための検索結果データを生成する、
ことを特徴とする請求項13記載の部分一致検索方法。
The partial match search method further includes:
Search result data for determining whether or not the verification of the encryption index and the encryption token is successful using the generated encryption index, the encryption token, and the respective decryption factors. Generate
The partial match search method according to claim 13.
JP2011281975A 2011-12-22 2011-12-22 Search processing system and partial match search method Active JP5667969B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2011281975A JP5667969B2 (en) 2011-12-22 2011-12-22 Search processing system and partial match search method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2011281975A JP5667969B2 (en) 2011-12-22 2011-12-22 Search processing system and partial match search method

Publications (2)

Publication Number Publication Date
JP2013130825A true JP2013130825A (en) 2013-07-04
JP5667969B2 JP5667969B2 (en) 2015-02-12

Family

ID=48908391

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011281975A Active JP5667969B2 (en) 2011-12-22 2011-12-22 Search processing system and partial match search method

Country Status (1)

Country Link
JP (1) JP5667969B2 (en)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015108052A1 (en) * 2014-01-16 2015-07-23 株式会社日立ソリューションズ Retrievable cryptograph processing system and retrievable cryptograph processing method
JP2015212756A (en) * 2014-05-02 2015-11-26 富士通株式会社 Information processing method and program
US10594473B2 (en) 2015-02-10 2020-03-17 Kabushikikaisha Rnai Terminal device, database server, and calculation system
US10673627B2 (en) 2016-01-18 2020-06-02 Mitsubishi Electric Corporation Encryption device, search device, computer readable medium, encryption method, and search method

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010164835A (en) * 2009-01-16 2010-07-29 Mitsubishi Electric Corp Retrieval system, index encrypting device, retrieval encrypting device, retrieval device, computer program, and retrieval method
WO2011086687A1 (en) * 2010-01-15 2011-07-21 三菱電機株式会社 Confidential search system and encryption processing system
JP2011147074A (en) * 2010-01-18 2011-07-28 Nippon Telegr & Teleph Corp <Ntt> Keyword search system for encrypted information, keyword search method, search requesting device, search proxy device, program, and recording medium

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010164835A (en) * 2009-01-16 2010-07-29 Mitsubishi Electric Corp Retrieval system, index encrypting device, retrieval encrypting device, retrieval device, computer program, and retrieval method
WO2011086687A1 (en) * 2010-01-15 2011-07-21 三菱電機株式会社 Confidential search system and encryption processing system
JP2011147074A (en) * 2010-01-18 2011-07-28 Nippon Telegr & Teleph Corp <Ntt> Keyword search system for encrypted information, keyword search method, search requesting device, search proxy device, program, and recording medium

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
JPN6014037299; Y. Zhang et al.: 'Anonymous Fuzzy Identity-based Encryption for Similarity Search' Cryptology ePrint Archive Report 2009/496,Version 20100112:145032, 20100112, International Association for Cryptologic Research *
JPN6014037300; E. Shi et al.: 'Delegating Capabilities in Predicate Encryption Systems' Cryptology ePrint Archive Report 2008/279,Version 20080624:094506, 200806, International Association for Cryptologic Research *
JPN6014037301; E. Shen et al.: 'Predicate Privacy in Encryption Systems' Cryptology ePrint Archive Report 2008/536,Version 20081228:085550, 200812, International Association for Cryptologic Research *
JPN6014037302; S. Sedghi et al.: 'Searching Keywords with Wildcards on Encrypted Data' Lecture Notes in Computer Science volume 6280, 201009, pp. 138-153, Springer *

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015108052A1 (en) * 2014-01-16 2015-07-23 株式会社日立ソリューションズ Retrievable cryptograph processing system and retrievable cryptograph processing method
JP2015135541A (en) * 2014-01-16 2015-07-27 株式会社日立ソリューションズ Retrievable encryption processing system and retrievable encryption processing method
US10489604B2 (en) 2014-01-16 2019-11-26 Hitachi, Ltd. Searchable encryption processing system and searchable encryption processing method
JP2015212756A (en) * 2014-05-02 2015-11-26 富士通株式会社 Information processing method and program
US9596083B2 (en) 2014-05-02 2017-03-14 Fujitsu Limited Information processing technique for pattern matching
US10594473B2 (en) 2015-02-10 2020-03-17 Kabushikikaisha Rnai Terminal device, database server, and calculation system
US10673627B2 (en) 2016-01-18 2020-06-02 Mitsubishi Electric Corporation Encryption device, search device, computer readable medium, encryption method, and search method

Also Published As

Publication number Publication date
JP5667969B2 (en) 2015-02-12

Similar Documents

Publication Publication Date Title
CN110637441B (en) Encryption key generation for data deduplication
Zhu et al. Cooperative provable data possession for integrity verification in multicloud storage
Gutoski et al. Hierarchical deterministic bitcoin wallets that tolerate key leakage
Yang et al. Achieving efficient and privacy-preserving cross-domain big data deduplication in cloud
JP5422053B2 (en) Encryption system, encryption communication method, encryption device, key generation device, decryption device, content server device, program, storage medium
CN103023637B (en) Encryption and search method for revocable keyword search public keys in cloud storage
Jayapandian et al. Secure and efficient online data storage and sharing over cloud environment using probabilistic with homomorphic encryption
CN110750797B (en) Cloud database encryption method based on combined encryption
Bogos et al. Cryptanalysis of a homomorphic encryption scheme
Tuo et al. An effective fuzzy keyword search scheme in cloud computing
JP5667969B2 (en) Search processing system and partial match search method
Ma et al. CP‐ABE‐Based Secure and Verifiable Data Deletion in Cloud
JP6961324B2 (en) Searchable cryptographic processing system
Zhang et al. IPad: ID-based public auditing for the outsourced data in the standard model
Jiang et al. Towards efficient fully randomized message-locked encryption
Gang et al. Secure image deduplication in cloud storage
Abo-Alian et al. Auditing-as-a-service for cloud storage
KR100951034B1 (en) Method of producing searchable keyword encryption based on public key for minimizing data size of searchable keyword encryption and method of searching data based on public key through that
JP6693503B2 (en) Secret search system, server device, secret search method, search method, and program
JP5486519B2 (en) Search system, determination device, vector construction device, method and program thereof
Zhang et al. Token-leakage tolerant and vector obfuscated IPE and application in privacy-preserving two-party point/polynomial evaluations
Al Etaiwi et al. Structured encryption algorithm for text cryptography
Ye et al. Comparable encryption scheme supporting multiple users in cloud computing
Shah et al. Secure featurization and applications to secure phishing detection
Zhao et al. CRT‐Based Homomorphic Encryption over the Fraction

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20130924

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20140731

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140902

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20140908

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20141030

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20141215

R150 Certificate of patent or registration of utility model

Ref document number: 5667969

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150