JP5274271B2 - SEARCH SYSTEM, INDEX ENCRYPTION DEVICE, SEARCH ENCRYPTION DEVICE, SEARCH DEVICE, COMPUTER PROGRAM, AND SEARCH METHOD - Google Patents

SEARCH SYSTEM, INDEX ENCRYPTION DEVICE, SEARCH ENCRYPTION DEVICE, SEARCH DEVICE, COMPUTER PROGRAM, AND SEARCH METHOD Download PDF

Info

Publication number
JP5274271B2
JP5274271B2 JP2009007892A JP2009007892A JP5274271B2 JP 5274271 B2 JP5274271 B2 JP 5274271B2 JP 2009007892 A JP2009007892 A JP 2009007892A JP 2009007892 A JP2009007892 A JP 2009007892A JP 5274271 B2 JP5274271 B2 JP 5274271B2
Authority
JP
Japan
Prior art keywords
search
index
source
integer
unit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2009007892A
Other languages
Japanese (ja)
Other versions
JP2010164835A (en
Inventor
充洋 服部
伊藤  隆
規 松田
健 米田
宏郷 辻
英憲 太田
陽一 柴田
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.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric Corp
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 Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to JP2009007892A priority Critical patent/JP5274271B2/en
Publication of JP2010164835A publication Critical patent/JP2010164835A/en
Application granted granted Critical
Publication of JP5274271B2 publication Critical patent/JP5274271B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Storage Device Security (AREA)

Abstract

<P>PROBLEM TO BE SOLVED: To enhance safety in confidential retrieval for retrieving such data that the d-number or more out of the n-number of index data are coincident with retrieval data. <P>SOLUTION: An index encrypting device 200 encrypts the n-number of index data to obtain the n-number of encrypted index data, and a retrieval device 400 accumulates the data. A retrieval encrypting device 300 encrypts the n-number of retrieval data using the value of a (d-1) order polynomial f(x) to obtain the n-number of encrypted retrieval data. The retrieval device 400 carries out retrieval using the value of a Lagrange's interpolation coefficient &Delta;<SB>i,S</SB>(x). <P>COPYRIGHT: (C)2010,JPO&amp;INPIT

Description

この発明は、暗号化したままの状態で、暗号化した索引を暗号化した検索文により検索する秘匿検索に関する。   The present invention relates to a secret search in which an encrypted index is searched with an encrypted search sentence in an encrypted state.

秘匿検索とは、大量の暗号化されたデータのなかから欲しいデータを検索する場合において、暗号化されたデータを復号することなく、暗号化されたままの状態で検索をすることである。
秘匿検索には、検索に用いるキーワードをあらかじめ定めて索引キーワードとし、これを暗号化したものに対して、検索キーワードを指定して検索を行い、索引キーワードと検索キーワードとが一致するものを抽出する方式がある。
The secret search is a search in an encrypted state without decrypting the encrypted data when searching for desired data from a large amount of encrypted data.
In the secret search, the keyword used for the search is determined in advance as an index keyword, and the encrypted keyword is used to perform a search by specifying the search keyword, and the index keyword and the search keyword match are extracted. There is a method.

また、このような特殊な暗号方式を実現するための技術として、代数曲線上のペアリングなどの双線形ペアリング写像を利用する方式がある。   Further, as a technique for realizing such a special encryption method, there is a method using a bilinear pairing map such as pairing on an algebraic curve.

特表2005−500740号公報JP 2005-500740 gazette 特開2007−114494号公報JP 2007-114494 A

Dan Boneh、Matthew Franklin著「Identity−Based Encryption from the Weil Pairing」、Crypto 2001、LNCS第2139巻、213〜229ページ、Springer−Verlag、2001年。Dan Boneh, Matthew Franklin, “Identity-Based Encryption from The Weil Pairing”, Crypto 2001, LNCS 2139, 213-229, Springer-Verlag, 2001. Dan Boneh、Giovanni Di Crescenzo、Rafail Ostrovsky、Giuseppe Persiano著「Public Key Encryption with keyword Search」、Eurocrypt 2004、LNCS第3027巻、506〜522ページ、2004年。Dan Boneh, Giovanni Di Crescenzo, Rafir Ostrovsky, Giuseppe Persiano, "Public Key Encryption with keyword Search, Vol. 4 to No. 40, No. 4", Euroc. Jonathan Katz、Amit Sahai、Brent Waters著「Predicate Encryption Supporting Disjunctions,Polynomial Equations,and Inner Products」、Eurocrypt 2008、LNCS第4965巻、146〜162ページ、2008年。Jonathan Katz, Amit Sahai, Brent Waters, “Predictate Encryption Supporting Discovery, Polynomial Equations, and Inner Products, Vol. 8 to No. 49, Eur.

索引キーワードが複数種類あり、そのうちの一定数以上が、対応する検索キーワードと一致するものを抽出したい場合、索引キーワードが1つの場合における秘匿検索を応用し、抽出された集合に対して集合演算により抽出したいデータの集合を得る方式が考えられる。
しかし、この方式では、どのキーワードが一致したかすべてわかってしまうので、暗号方式としての安全性が低くなる可能性がある。
この発明は、例えば、上記のような課題を解決するためになされたものであり、検索実行時にどのキーワードが一致したかについての情報をできるだけ隠蔽することにより、暗号方式としての安全性を高めることを目的とする。
When there are multiple types of index keywords, and you want to extract those that match a certain search keyword with a certain number or more, apply secret search when there is only one index keyword, and perform the set operation on the extracted set A method for obtaining a set of data to be extracted can be considered.
However, in this method, since all the keywords that match are known, there is a possibility that the security as the encryption method is lowered.
The present invention has been made, for example, in order to solve the above-described problems, and enhances the security as an encryption method by concealing as much as possible information about which keywords are matched when executing a search. With the goal.

この発明にかかる検索システムは、
索引暗号化装置と、検索暗号化装置と、検索装置とを有し、
上記索引暗号化装置は、データを記憶する記憶装置と、データを処理する処理装置と、索引記憶部と、索引暗号化部とを有し、
上記索引記憶部は、上記記憶装置を用いて、1以上n以下のn個の整数(nは1以上の整数。)に対応するn個の索引データを記憶し、
上記索引暗号化部は、上記処理装置を用いて、1以上n以下のn個の整数それぞれについて、上記索引記憶部が記憶した索引データを暗号化して、n個の暗号化索引データとし、
上記検索暗号化装置は、データを記憶する記憶装置と、データを処理する処理装置と、検索記憶部と、多項式値算出部と、検索暗号化部とを有し、
上記検索記憶部は、上記記憶装置を用いて、1以上n以下のn個の整数に対応するn個の検索データを記憶し、
上記多項式値算出部は、上記処理装置を用いて、1以上n以下のn個の整数それぞれについて、(d−1)次の一変数多項式(dは1以上n以下の整数。)に上記整数を代入した値を算出して、n個の多項式値とし、
上記検索暗号化部は、上記処理装置を用いて、1以上n以下のn個の整数それぞれについて、上記検索記憶部が記憶した検索データと、上記多項式値算出部が算出した多項式値との組を暗号化して、n個の暗号化検索データとし、
上記検索装置は、データを処理する処理装置と、データを記憶する記憶装置と、暗号化索引記憶部と、暗号化検索記憶部と、判定対象選択部と、補間係数値算出部と、写像算出部と、比較算出部と、判定部とを有し、
上記暗号化索引記憶部は、上記記憶装置を用いて、上記索引暗号化装置が暗号化したn個の暗号化索引データを記憶し、
上記暗号化検索記憶部は、上記記憶装置を用いて、上記検索暗号化装置が暗号化したn個の暗号化検索データを記憶し、
上記判定対象選択部は、上記処理装置を用いて、1以上n以下のn個の整数のなかからd個の整数を選択して、d個の判定対象整数とし、
上記補間係数値算出部は、上記処理装置を用いて、上記判定対象選択部が選択したd個の判定対象整数に基づいて、ラグランジュの補間係数の値を算出して、d個の補間係数値とし、
上記写像算出部は、上記処理装置を用いて、上記判定対象選択部が選択したd個の判定対象整数それぞれについて、上記暗号化索引記憶部が記憶した暗号化索引データと、上記暗号化検索記憶部が記憶した暗号化検索データと、上記補間係数値算出部が算出した補間係数値との組を写像して、d個の写像データとし、
上記比較算出部は、上記処理装置を用いて、上記写像算出部が写像したd個の写像データに基づいて、比較データを算出し、
上記判定部は、上記処理装置を用いて、上記比較算出部が算出した比較データに基づいて、上記判定対象選択部が選択したd個の判定対象整数について、上記索引データと、上記検索データとが一致するか否かを判定することを特徴とする。
A search system according to the present invention includes:
An index encryption device, a search encryption device, and a search device;
The index encryption device includes a storage device that stores data, a processing device that processes data, an index storage unit, and an index encryption unit,
The index storage unit stores n index data corresponding to n integers of 1 to n (n is an integer of 1 or more) using the storage device,
The index encryption unit encrypts the index data stored in the index storage unit for each of n integers of 1 to n using the processing device to obtain n encrypted index data,
The search encryption device includes a storage device that stores data, a processing device that processes data, a search storage unit, a polynomial value calculation unit, and a search encryption unit,
The search storage unit stores n search data corresponding to n integers of 1 to n using the storage device,
The polynomial value calculation unit uses the processing device to convert the integer into a (d-1) -degree univariate polynomial (d is an integer of 1 to n) for each of n integers of 1 to n. Is calculated as n polynomial values,
The search encryption unit uses the processing device to set the search data stored in the search storage unit and the polynomial value calculated by the polynomial value calculation unit for each of n integers of 1 to n. Is encrypted into n pieces of encrypted search data,
The search device includes a processing device that processes data, a storage device that stores data, an encryption index storage unit, an encrypted search storage unit, a determination target selection unit, an interpolation coefficient value calculation unit, and a mapping calculation. Part, a comparison calculation part, and a determination part,
The encrypted index storage unit uses the storage device to store n encrypted index data encrypted by the index encryption device;
The encrypted search storage unit stores n encrypted search data encrypted by the search encryption device using the storage device,
The determination target selection unit uses the processing device to select d integers from n integers of 1 to n to obtain d determination target integers,
The interpolation coefficient value calculation unit calculates a Lagrange interpolation coefficient value based on the d determination target integers selected by the determination target selection unit using the processing device, and obtains d interpolation coefficient values. age,
The mapping calculation unit uses the processing device to store the encrypted index data stored in the encrypted index storage unit and the encrypted search storage for each of the d determination target integers selected by the determination target selection unit. A set of encrypted search data stored by the unit and the interpolation coefficient value calculated by the interpolation coefficient value calculation unit to obtain d mapped data;
The comparison calculation unit calculates comparison data based on the d pieces of mapping data mapped by the mapping calculation unit using the processing device,
The determination unit uses the processing device to determine the index data, the search data, and the search data for the d determination target integers selected by the determination target selection unit based on the comparison data calculated by the comparison calculation unit. It is characterized by determining whether or not.

この発明にかかる検索システムによれば、(d−1)次の一変数多項式の値を用いて、検索データを暗号化し、ラグランジュの補間係数の値を用いて、検索を実行するので、n個のデータのうちd個以上が一致する場合に、一致することを検索装置が判定でき、d個未満しか一致しない場合には、いずれのデータが一致したかを検索装置が知ることができない。これにより、索引データや検索データに関する情報の漏洩を防ぐことができる。   According to the search system of the present invention, (d-1) the search data is encrypted using the value of the univariate polynomial of order (d-1), and the search is executed using the value of the Lagrange interpolation coefficient. When d or more of the data matches, the search device can determine that they match, and when only less than d data match, the search device cannot know which data matched. Thereby, it is possible to prevent leakage of information related to index data and search data.

実施の形態1における検索システム800の全体構成の一例を示すシステム構成図。1 is a system configuration diagram illustrating an example of an overall configuration of a search system 800 according to Embodiment 1. FIG. 実施の形態1における復号装置810、暗号化装置820、サーバ装置830の外観の一例を示す斜視図。FIG. 3 is a perspective view illustrating an example of the appearance of a decryption device 810, an encryption device 820, and a server device 830 in Embodiment 1. 実施の形態1における復号装置810、暗号化装置820、サーバ装置830のハードウェア資源の一例を示す図。3 is a diagram illustrating an example of hardware resources of a decryption device 810, an encryption device 820, and a server device 830 in Embodiment 1. FIG. 実施の形態1における設定装置100の構成の一例を示すブロック構成図。FIG. 2 is a block configuration diagram illustrating an example of a configuration of a setting device 100 according to the first embodiment. 実施の形態1における検索暗号化装置300の構成の一例を示すブロック構成図。FIG. 3 is a block configuration diagram illustrating an example of a configuration of a search encryption apparatus 300 according to Embodiment 1. 実施の形態1における索引暗号化装置200の構成の一例を示すブロック構成図。FIG. 3 is a block configuration diagram showing an example of the configuration of the index encryption device 200 according to the first embodiment. 実施の形態1における検索装置400の構成の一例を示すブロック構成図。FIG. 3 is a block configuration diagram illustrating an example of a configuration of a search device 400 according to Embodiment 1. 実施の形態1におけるデータ暗号化装置840、暗号化データ記憶装置850、データ復号装置860の構成の一例を示すブロック構成図。2 is a block configuration diagram illustrating an example of a configuration of a data encryption device 840, an encrypted data storage device 850, and a data decryption device 860 according to Embodiment 1. FIG. 実施の形態1における設定処理S610の流れの一例を示すフローチャート図。FIG. 6 is a flowchart showing an example of a flow of setting processing S610 in the first embodiment. 実施の形態1における索引暗号化処理S630の流れの一例を示すフローチャート図。FIG. 6 is a flowchart showing an example of a flow of index encryption processing S630 in the first embodiment. 実施の形態1における検索暗号化処理S650の流れの一例を示すフローチャート図。FIG. 6 is a flowchart showing an example of a flow of search encryption processing S650 in the first embodiment. 実施の形態1における検索実行処理S670の流れの一例を示すフローチャート図。FIG. 6 is a flowchart showing an example of a flow of search execution processing S670 in the first embodiment. 実施の形態2における設定装置100の構成の一例を示すブロック構成図。FIG. 4 is a block configuration diagram illustrating an example of a configuration of a setting device 100 according to a second embodiment. 実施の形態2における検索暗号化装置300の構成の一例を示すブロック構成図。FIG. 6 is a block configuration diagram illustrating an example of a configuration of a search encryption device 300 according to Embodiment 2. 実施の形態2における索引暗号化装置200の構成の一例を示すブロック構成図。FIG. 6 is a block configuration diagram showing an example of a configuration of an index encryption device 200 according to Embodiment 2. 実施の形態2における検索装置400の構成の一例を示すブロック構成図。FIG. 9 is a block configuration diagram illustrating an example of a configuration of a search device 400 according to Embodiment 2. 実施の形態2における設定処理S610の流れの一例を示すフローチャート図。FIG. 10 is a flowchart showing an example of a flow of setting processing S610 in the second embodiment. 実施の形態2における索引暗号化処理S630の流れの一例を示すフローチャート図。FIG. 10 is a flowchart showing an example of a flow of index encryption processing S630 in the second embodiment. 実施の形態2における検索暗号化処理S650の流れの一例を示すフローチャート図。FIG. 10 is a flowchart showing an example of a flow of search encryption processing S650 in the second embodiment. 実施の形態2における検索実行処理S670の流れの一例を示すフローチャート図。FIG. 11 is a flowchart showing an example of a flow of search execution processing S670 in the second embodiment.

実施の形態1.
実施の形態1について、図1〜図12を用いて説明する。
Embodiment 1 FIG.
The first embodiment will be described with reference to FIGS.

図1は、この実施の形態における検索システム800の全体構成の一例を示すシステム構成図である。
検索システム800は、復号装置810、暗号化装置820、サーバ装置830を有する。
暗号化装置820は、データ本体(平文データ)とデータ本体をキーワード検索するための索引とを暗号化して、サーバ装置830に送る。サーバ装置830は、暗号化装置820から送られたデータ本体や索引を復号することができない。サーバ装置830は、暗号化されたデータ本体と索引とを、暗号化されたまま蓄積する。復号装置810は、キーワード検索を実行するための検索文を暗号化して、サーバ装置830に送る。サーバ装置830は、復号装置810から送られた検索文を復号することができない。サーバ装置830は、暗号化されたままの検索文により、暗号化されたまま蓄積した索引を検索し、ヒットしたか否かを判定して、検索結果を返す。サーバ装置830は、復号装置810からの要求により、検索にヒットした索引に対応するデータ本体を復号装置810に送る。復号装置810は、サーバ装置830から送られたデータ本体を復号して、復号したデータ本体を取得する。
FIG. 1 is a system configuration diagram showing an example of the overall configuration of a search system 800 in this embodiment.
The search system 800 includes a decryption device 810, an encryption device 820, and a server device 830.
The encryption device 820 encrypts the data body (plain text data) and the index for keyword search of the data body and sends them to the server device 830. The server device 830 cannot decrypt the data body or index sent from the encryption device 820. The server device 830 stores the encrypted data body and the index while being encrypted. The decryption device 810 encrypts the search text for executing the keyword search and sends it to the server device 830. The server device 830 cannot decrypt the search text sent from the decryption device 810. The server device 830 searches the index stored in the encrypted form by using the encrypted search sentence, determines whether or not the index is hit, and returns the search result. In response to a request from the decryption device 810, the server device 830 sends a data body corresponding to the index hit in the search to the decryption device 810. The decryption device 810 decrypts the data body sent from the server device 830 and acquires the decrypted data body.

データ本体は、例えば、指紋・光彩・静脈などの生体情報を表わす画像データ、電子メール、その他のデータベースの各レコードなどである。
1つのデータ本体に対して、所定の数(以下「索引数n」と呼ぶ。)の索引が付けられる。例えば、画像データに対しては、位置や大きさなどを正規化した上で各ピクセルの値を索引とする。電子メールに対しては、差出人や日付などを索引とする。データベースに対しては、各フィールドのデータを索引とする。
検索条件は、閾値dと、各索引に対応するデータとを指定する。各索引の内容と、その索引に対して指定したデータとが一致する数が閾値d以上である場合に、ヒットしたと判定される。例えば、画像データであれば、閾値として指定した数以上のピクセルの値が一致するものがヒットするので、類似する画像を検索することができる。
なお、指定したデータが異なる位置の索引と一致しても、それは一致したものとは数えない。例えば、電子メールの差出人を検索するために指定したデータが、電子メールの送信先と一致しても、一致したとは数えない。
The data body is, for example, image data representing biometric information such as fingerprints, glows, and veins, e-mails, and other database records.
A predetermined number (hereinafter referred to as “index number n”) of indexes is attached to one data body. For example, with respect to image data, the position and size are normalized, and the value of each pixel is used as an index. For e-mail, the sender and date are used as an index. For the database, the data of each field is used as an index.
The search condition specifies a threshold value d and data corresponding to each index. A hit is determined when the number of matches between the contents of each index and the data designated for the index is equal to or greater than the threshold value d. For example, in the case of image data, hits are made when the values of pixels equal to or more than the number specified as the threshold value are hit, so that similar images can be searched.
Note that even if the specified data matches the index at a different position, it does not count as a match. For example, even if the data specified for searching for the sender of an email matches the destination of the email, it does not count as a match.

復号装置810は、設定装置100、検索暗号化装置300、データ復号装置860を有する。
設定装置100は、索引や検索文を暗号化したり、検索したりするために必要なパラメータを設定する。設定装置100は、設定したパラメータの一部(以下「公開パラメータ」と呼ぶ。)を、検索システム800内で公開し、他の一部(以下「秘密パラメータ」と呼ぶ。)を、検索暗号化装置300に対して秘密裡に通知する。
検索暗号化装置300は、設定装置100が設定した秘密パラメータ(秘密情報)を秘密裡に保持する。検索暗号化装置300は、検索条件を入力し、秘密パラメータや公開パラメータ(公開情報)を用いて、検索文を暗号化する。暗号化された検索文(以下「暗号化検索データ」と呼ぶ。)は、サーバ装置830に対して通知される。
データ復号装置860は、サーバ装置830から通知されたデータ本体を復号する。
The decryption device 810 includes a setting device 100, a search encryption device 300, and a data decryption device 860.
The setting device 100 sets parameters necessary for encrypting or searching an index or a search sentence. The setting device 100 publishes a part of the set parameters (hereinafter referred to as “public parameter”) in the search system 800 and the other part (hereinafter referred to as “secret parameter”) for search encryption. The device 300 is notified secretly.
The search encryption device 300 holds the secret parameter (secret information) set by the setting device 100 in a secret manner. The search encryption device 300 inputs a search condition and encrypts a search sentence using a secret parameter or a public parameter (public information). The encrypted search text (hereinafter referred to as “encrypted search data”) is notified to the server device 830.
The data decryption device 860 decrypts the data body notified from the server device 830.

暗号化装置820は、索引暗号化装置200、データ暗号化装置840を有する。
索引暗号化装置200は、設定装置100が設定した公開パラメータを用いて、索引を暗号化する。
データ暗号化装置840は、データ本体を暗号化する。なお、データ暗号化装置840がデータ本体を暗号化し、データ復号装置860が復号する暗号方式は、既存の公開鍵暗号方式や共通鍵暗号方式などであってもよい。
暗号化された索引(以下「暗号化索引データ」と呼ぶ。)と暗号化されたデータ本体とは組として、サーバ装置830に対して通知される。
The encryption device 820 includes an index encryption device 200 and a data encryption device 840.
The index encryption device 200 encrypts the index using the public parameter set by the setting device 100.
The data encryption device 840 encrypts the data body. Note that the encryption method that the data encryption device 840 encrypts the data body and the data decryption device 860 decrypts may be an existing public key encryption method or a common key encryption method.
The encrypted index (hereinafter referred to as “encrypted index data”) and the encrypted data body are notified as a pair to the server device 830.

サーバ装置830は、検索装置400、暗号化データ記憶装置850を有する。
検索装置400は、暗号化装置820から通知された暗号化索引データを蓄積し、復号装置810から通知された暗号化検索データにより、検索を実行する。
暗号化データ記憶装置850は、暗号化装置820から通知されたデータ本体を暗号化されたまま蓄積する。
The server device 830 includes a search device 400 and an encrypted data storage device 850.
The search device 400 accumulates the encrypted index data notified from the encryption device 820 and executes a search using the encrypted search data notified from the decryption device 810.
The encrypted data storage device 850 stores the data body notified from the encryption device 820 in an encrypted state.

なお、復号装置810・暗号化装置820・サーバ装置830の数は、1つに限らず、2つ以上であってもよい。復号装置810が複数ある場合、暗号化装置820は、各復号装置810について設定されたパラメータを用いて、索引データを暗号化する。したがって、1つの索引データに対して、復号装置810の数と等しい数の暗号化索引データを生成する。また、サーバ装置830は、各復号装置810について暗号化装置820が生成した暗号化索引データを蓄積し、各復号装置810からの要求にしたがって、その復号装置810について蓄積した暗号化検索データにより、検索を実行する。   The number of decryption devices 810, encryption devices 820, and server devices 830 is not limited to one, and may be two or more. When there are a plurality of decrypting devices 810, the encrypting device 820 encrypts the index data using the parameters set for each decrypting device 810. Therefore, the same number of encrypted index data as the number of decrypting devices 810 is generated for one index data. Further, the server device 830 stores the encrypted index data generated by the encryption device 820 for each decryption device 810, and in accordance with the request from each decryption device 810, the encrypted search data stored for the decryption device 810 Perform a search.

図2は、この実施の形態における復号装置810、暗号化装置820、サーバ装置830の外観の一例を示す斜視図である。
復号装置810、暗号化装置820、サーバ装置830は、システムユニット910、CRT(Cathode・Ray・Tube)やLCD(液晶)の表示画面を有する表示装置901、キーボード902(Key・Board:K/B)、マウス903、FDD904(Flexible・Disk・Drive)、コンパクトディスク装置905(CDD)、プリンタ装置906、スキャナ装置907などのハードウェア資源を備え、これらはケーブルや信号線で接続されている。
システムユニット910は、コンピュータであり、ファクシミリ機932、電話器931とケーブルで接続され、また、ローカルエリアネットワーク942(LAN)、ゲートウェイ941を介してインターネット940に接続されている。
FIG. 2 is a perspective view showing an example of the external appearance of the decryption device 810, the encryption device 820, and the server device 830 in this embodiment.
The decryption device 810, the encryption device 820, and the server device 830 are a system unit 910, a display device 901 having a CRT (Cathode / Ray / Tube) or LCD (liquid crystal) display screen, a keyboard 902 (Key / Board: K / B). ), A mouse 903, an FDD 904 (Flexible / Disk / Drive), a compact disk device 905 (CDD), a printer device 906, a scanner device 907, and the like, which are connected by cables and signal lines.
The system unit 910 is a computer, and is connected to the facsimile machine 932 and the telephone 931 via a cable, and is connected to the Internet 940 via a local area network 942 (LAN) and a gateway 941.

図3は、この実施の形態における復号装置810、暗号化装置820、サーバ装置830のハードウェア資源の一例を示す図である。
復号装置810、暗号化装置820、サーバ装置830は、プログラムを実行するCPU911(Central・Processing・Unit、中央処理装置、処理装置、演算装置、マイクロプロセッサ、マイクロコンピュータ、プロセッサともいう)を備えている。CPU911は、バス912を介してROM913、RAM914、通信装置915、表示装置901、キーボード902、マウス903、FDD904、CDD905、プリンタ装置906、スキャナ装置907、磁気ディスク装置920と接続され、これらのハードウェアデバイスを制御する。磁気ディスク装置920の代わりに、光ディスク装置、メモリカード読み書き装置などの記憶装置でもよい。
RAM914は、揮発性メモリの一例である。ROM913、FDD904、CDD905、磁気ディスク装置920の記憶媒体は、不揮発性メモリの一例である。これらは、記憶装置あるいは記憶部の一例である。通信装置915、キーボード902、スキャナ装置907、FDD904などは、入力部、入力装置の一例である。また、通信装置915、表示装置901、プリンタ装置906などは、出力部、出力装置の一例である。
FIG. 3 is a diagram illustrating an example of hardware resources of the decryption device 810, the encryption device 820, and the server device 830 in this embodiment.
The decryption device 810, the encryption device 820, and the server device 830 include a CPU 911 (also referred to as a central processing unit, a central processing unit, a processing unit, a processing unit, a microprocessor, a microcomputer, or a processor) that executes a program. . The CPU 911 is connected to the ROM 913, the RAM 914, the communication device 915, the display device 901, the keyboard 902, the mouse 903, the FDD 904, the CDD 905, the printer device 906, the scanner device 907, and the magnetic disk device 920 via the bus 912, and the hardware. Control the device. Instead of the magnetic disk device 920, a storage device such as an optical disk device or a memory card read / write device may be used.
The RAM 914 is an example of a volatile memory. The storage media of the ROM 913, the FDD 904, the CDD 905, and the magnetic disk device 920 are an example of a nonvolatile memory. These are examples of a storage device or a storage unit. A communication device 915, a keyboard 902, a scanner device 907, an FDD 904, and the like are examples of an input unit and an input device. Further, the communication device 915, the display device 901, the printer device 906, and the like are examples of an output unit and an output device.

通信装置915は、ファクシミリ機932、電話器931、LAN942等に接続されている。通信装置915は、LAN942に限らず、インターネット940、ISDN等のWAN(ワイドエリアネットワーク)などに接続されていても構わない。インターネット940或いはISDN等のWANに接続されている場合、ゲートウェイ941は不用となる。
磁気ディスク装置920には、オペレーティングシステム921(OS)、ウィンドウシステム922、プログラム群923、ファイル群924が記憶されている。プログラム群923のプログラムは、CPU911、オペレーティングシステム921、ウィンドウシステム922により実行される。
The communication device 915 is connected to a facsimile machine 932, a telephone 931, a LAN 942, and the like. The communication device 915 is not limited to the LAN 942, and may be connected to the Internet 940, a WAN (wide area network) such as ISDN, or the like. When connected to a WAN such as the Internet 940 or ISDN, the gateway 941 is unnecessary.
The magnetic disk device 920 stores an operating system 921 (OS), a window system 922, a program group 923, and a file group 924. The programs in the program group 923 are executed by the CPU 911, the operating system 921, and the window system 922.

上記プログラム群923には、以下に述べる実施の形態の説明において「〜部」として説明する機能を実行するプログラムが記憶されている。プログラムは、CPU911により読み出され実行される。
ファイル群924には、以下に述べる実施の形態の説明において、「〜の判定結果」、「〜の計算結果」、「〜の処理結果」として説明する情報やデータや信号値や変数値やパラメータが、「〜ファイル」や「〜データベース」の各項目として記憶されている。「〜ファイル」や「〜データベース」は、ディスクやメモリなどの記録媒体に記憶される。ディスクやメモリになどの記憶媒体に記憶された情報やデータや信号値や変数値やパラメータは、読み書き回路を介してCPU911によりメインメモリやキャッシュメモリに読み出され、抽出・検索・参照・比較・演算・計算・処理・出力・印刷・表示などのCPUの動作に用いられる。抽出・検索・参照・比較・演算・計算・処理・出力・印刷・表示のCPUの動作の間、情報やデータや信号値や変数値やパラメータは、メインメモリやキャッシュメモリやバッファメモリに一時的に記憶される。
また、以下に述べる実施の形態の説明において説明するフローチャートの矢印の部分は主としてデータや信号の入出力を示し、データや信号値は、RAM914のメモリ、FDD904のフレキシブルディスク、CDD905のコンパクトディスク、磁気ディスク装置920の磁気ディスク、その他光ディスク、ミニディスク、DVD(Digital・Versatile・Disk)等の記録媒体に記録される。また、データや信号は、バス912や信号線やケーブルその他の伝送媒体によりオンライン伝送される。
The program group 923 stores programs that execute functions described as “˜units” in the description of the embodiments described below. The program is read and executed by the CPU 911.
The file group 924 includes information, data, signal values, variable values, and parameters that are described as “determination results of”, “calculation results of”, and “processing results of” in the description of the embodiments described below. Are stored as items of “˜file” and “˜database”. The “˜file” and “˜database” are stored in a recording medium such as a disk or a memory. Information, data, signal values, variable values, and parameters stored in a storage medium such as a disk or memory are read out to the main memory or cache memory by the CPU 911 via a read / write circuit, and extracted, searched, referenced, compared, Used for CPU operations such as calculation, calculation, processing, output, printing, and display. Information, data, signal values, variable values, and parameters are temporarily stored in the main memory, cache memory, and buffer memory during the CPU operations of extraction, search, reference, comparison, operation, calculation, processing, output, printing, and display. Is remembered.
In addition, the arrows in the flowcharts described in the following description of the embodiments mainly indicate input / output of data and signals. The data and signal values are the RAM 914 memory, the FDD 904 flexible disk, the CDD 905 compact disk, and the magnetic field. The data is recorded on a recording medium such as a magnetic disk of the disk device 920, another optical disk, a mini disk, and a DVD (Digital Versatile Disk). Data and signals are transmitted online via a bus 912, signal lines, cables, or other transmission media.

また、以下に述べる実施の形態の説明において「〜部」として説明するものは、「〜回路」、「〜装置」、「〜機器」であってもよく、また、「〜ステップ」、「〜手順」、「〜処理」であってもよい。すなわち、「〜部」として説明するものは、ROM913に記憶されたファームウェアで実現されていても構わない。或いは、ソフトウェアのみ、或いは、素子・デバイス・基板・配線などのハードウェアのみ、或いは、ソフトウェアとハードウェアとの組み合わせ、さらには、ファームウェアとの組み合わせで実施されても構わない。ファームウェアとソフトウェアは、プログラムとして、磁気ディスク、フレキシブルディスク、光ディスク、コンパクトディスク、ミニディスク、DVD等の記録媒体に記憶される。プログラムはCPU911により読み出され、CPU911により実行される。すなわち、プログラムは、以下に述べる「〜部」としてコンピュータを機能させるものである。あるいは、以下に述べる「〜部」の手順や方法をコンピュータに実行させるものである。   In the description of the embodiments described below, what is described as “to part” may be “to circuit”, “to device”, and “to device”, and “to step” and “to”. “Procedure” and “˜Process” may be used. That is, what is described as “˜unit” may be realized by firmware stored in the ROM 913. Alternatively, it may be implemented only by software, or only by hardware such as elements, devices, substrates, and wirings, by a combination of software and hardware, or by a combination of firmware. Firmware and software are stored as programs in a recording medium such as a magnetic disk, a flexible disk, an optical disk, a compact disk, a mini disk, and a DVD. The program is read by the CPU 911 and executed by the CPU 911. That is, the program causes the computer to function as “to part” described below. Alternatively, the procedure or method of “to part” described below is executed by a computer.

図4は、この実施の形態における設定装置100の構成の一例を示すブロック構成図である。   FIG. 4 is a block configuration diagram showing an example of the configuration of the setting device 100 according to this embodiment.

設定装置100は、設定記憶部110、ペアリング値算出部121、秘密生成部130、公開算出部140、公開出力部150を有する。
設定記憶部110は、磁気ディスク装置920を用いて、あらかじめ、検索システム800の基本設定を表わすパラメータを記憶している。設定記憶部110が記憶するパラメータは、あらかじめ定められているものであってもよいし、設定装置100が設定したものであってもよい。
The setting device 100 includes a setting storage unit 110, a pairing value calculation unit 121, a secret generation unit 130, a public calculation unit 140, and a public output unit 150.
The setting storage unit 110 stores parameters representing basic settings of the search system 800 using the magnetic disk device 920 in advance. The parameter stored in the setting storage unit 110 may be determined in advance or may be set by the setting device 100.

検索システム800は、群を用いて、暗号演算を行う。検索システム800が暗号演算に用いる群は、CPU911を用いて、群演算を計算可能な群であり、例えば、代数曲線上の点がなす群である。以下では、群演算を乗法的に記述する。例えば、群演算による元aと元bとの結合を「積」と呼び「a・b」あるいは「ab」と記述する。また、元aの逆元を「1/a」と記述し、元aと元bの逆元1/bとの積を「商」と呼び「a/b」と記述する。また、m個の元aの積を「累乗」と呼び「a」あるいは「a^m」と記述する。すなわち、「a=a・a」「a=a・a・a」「a=a・a・…・a(m個)」である。
検索システム800では、三つの群G,G,Gを暗号演算に用いる。三つの群G,G,Gはいずれも、離散対数問題を解くことが困難な群である。なお、群Gと群Gとは、同一の群であってもよい。三つの群G,G,Gの位数は、いずれも素数pである。群Gの元と群Gの元との組を群Gの元へ写すペアリング写像e:G×G→Gが定義されていて、CPU911を用いて、計算可能である。群Gの元gと群Gの元hとの組をペアリング写像eで写した群Gの元を「e(g,h)」と記述する。ペアリング写像eは、双線形であり、非縮退である。すなわち、群Gの任意の元g、群Gの任意の元h、任意の整数a,bについて、次の式が成立する(双線形性)。

Figure 0005274271
また、元gが群Gの単位元でなく、かつ、元hが群Gの単位元でなければ、e(g,h)は、群Gの単位元ではない(非縮退性)。 The search system 800 performs cryptographic operations using groups. The group used by the search system 800 for the cryptographic operation is a group that can calculate the group operation using the CPU 911, for example, a group formed by points on the algebraic curve. In the following, group operations are described in a multiplicative manner. For example, the combination of element a and element b by group operation is called “product” and described as “a · b” or “ab”. Also, the inverse element of element a is described as “1 / a”, and the product of element a and inverse element 1 / b of element b is called “quotient” and is described as “a / b”. The product of m number of elements a is called “power” and is described as “a m ” or “a ^ m”. That is, “a 2 = a · a”, “a 3 = a · a · a”, and “a m = a · a ··· a (m)”.
In the search system 800, three groups G 1 , G 2 , and G 3 are used for cryptographic operations. All of the three groups G 1 , G 2 , and G 3 are groups in which it is difficult to solve the discrete logarithm problem. Note that the group G 1 and the group G 2 may be the same group. The orders of the three groups G 1 , G 2 , G 3 are all prime numbers p. Pairing mapping copy a set of the original and the original group G 2 group G 1 to the original group G 3 e: G 1 × G 2 → G 3 is defined, using the CPU 911, can be calculated . An element of the group G 3 obtained by mapping a pair of the element g of the group G 1 and the element h of the group G 2 by the pairing map e is described as “e (g, h)”. The pairing map e is bilinear and non-degenerate. That is, any element g of the group G 1, any element h of the group G 2, any integer a, the b, the following equation is satisfied (bilinearity).
Figure 0005274271
If element g is not a unit element of group G 1 and element h is not a unit element of group G 2 , e (g, h) is not a unit element of group G 3 (non-degenerate). .

また、以下の説明において、整数の演算は、特に断わりのない限り、pを法とする剰余類からなる有限体Zにおける四則演算による。すなわち、加算・減算・乗算は、通常の整数の加算・減算・乗算の結果をpで割った余りを求めることにより演算し、除算は、除数の逆数(除数との乗算の結果が1になる整数)を乗ずることにより演算する。 In the following description, the integer arithmetic, unless otherwise stated, by the four arithmetic operations in finite field Z p consisting of coset modulo to p. That is, addition / subtraction / multiplication is performed by calculating the remainder obtained by dividing the result of normal integer addition / subtraction / multiplication by p, and division is the reciprocal of the divisor (the result of multiplication with the divisor is 1). It is calculated by multiplying by (integer).

設定装置100は、あらかじめ定められた群G〜G、ペアリング写像eなどを用いる構成であってもよいし、安全性の程度を定める指標であるセキュリティパラメータkを入力して、入力したセキュリティパラメータkに基づいて、暗号演算に用いる群G〜G、ペアリング写像eなどを定義する構成であってもよい。その場合、設定装置100は、定義した群G〜G、ペアリング写像eなど公開パラメータの一部として公開する。 The setting device 100 may be configured to use a predetermined group G 1 to G 3 , a pairing map e, or the like, or a security parameter k that is an index for determining the degree of safety is input and input. A configuration may be used in which groups G 1 to G 3 , pairing map e, and the like used for cryptographic computation are defined based on security parameter k. In that case, the setting apparatus 100 publishes it as a part of public parameters such as the defined groups G 1 to G 3 and the pairing map e.

設定記憶部110は、第一生成元記憶部111、第二生成元記憶部112、第三生成元記憶部113、索引数記憶部115を有する。
第一生成元記憶部111は、磁気ディスク装置920を用いて、群Gの生成元gを記憶する。第二生成元記憶部112は、磁気ディスク装置920を用いて、群Gの生成元gを記憶する。第三生成元記憶部113は、磁気ディスク装置920を用いて、群Gの生成元gを記憶する。索引数記憶部115は、磁気ディスク装置920を用いて、索引数nを記憶する。なお、索引数nは、1以上の整数である。
The setting storage unit 110 includes a first generation source storage unit 111, a second generation source storage unit 112, a third generation source storage unit 113, and an index number storage unit 115.
The first generation source storage unit 111 stores the generation source g 1 of the group G 1 using the magnetic disk device 920. The second generation source storage unit 112 stores the generation source g 2 of the group G 2 using the magnetic disk device 920. The third generator storage unit 113 uses the magnetic disk device 920 to store the generator g 3 of the group G 3 . The index number storage unit 115 uses the magnetic disk device 920 to store the index number n. The index number n is an integer of 1 or more.

なお、設定装置100は、索引数入力部を有する構成であってもよい。その場合、索引数入力部は索引数を入力し、索引数記憶部115は、索引数入力部が入力した索引数を記憶する。   The setting device 100 may have a configuration having an index number input unit. In that case, the index number input unit inputs the index number, and the index number storage unit 115 stores the index number input by the index number input unit.

ペアリング値算出部121は、CPU911を用いて、第一生成元記憶部111が記憶した生成元gと、第二生成元記憶部112が記憶した生成元gとを入力する。ペアリング値算出部121は、CPU911を用いて、生成元gと生成元gとの組をペアリング写像eにより写像した元e(g,g)を算出する。ペアリング値算出部121は、CPU911を用いて、算出した元を、群Gの生成元gとして出力する。第三生成元記憶部113は、CPU911を用いて、ペアリング値算出部121が出力した群Gの生成元gを入力し、磁気ディスク装置920を用いて、記憶する。 The pairing value calculation unit 121 uses the CPU 911 to input the generation source g 1 stored in the first generation source storage unit 111 and the generation source g 2 stored in the second generation source storage unit 112. The pairing value calculation unit 121 uses the CPU 911 to calculate an element e (g 1 , g 2 ) obtained by mapping a pair of the generation source g 1 and the generation source g 2 by the pairing mapping e. Pairing value calculation unit 121, by using the CPU 911, the calculated original, and outputs as a generator g 3 groups G 3. The third generation source storage unit 113 receives the generation source g 3 of the group G 3 output from the pairing value calculation unit 121 using the CPU 911 and stores it using the magnetic disk device 920.

秘密生成部130は、CPU911を用いて、秘密パラメータを生成する。秘密生成部130は、秘密整数生成部131、秘密乱数生成部132を有する。
秘密整数生成部131は、CPU911を用いて、1以上p未満の整数をランダムに生成する。秘密整数生成部131は、CPU911を用いて、生成した整数を秘密整数yとして出力する。
秘密乱数生成部132は、CPU911を用いて、1以上n以下のn個の整数それぞれについて、1以上p未満の整数を1つずつランダムに生成する。秘密乱数生成部132は、CPU911を用いて、生成したn個の整数を秘密乱数u(iは1以上n以下の整数。)として出力する。
The secret generation unit 130 uses the CPU 911 to generate a secret parameter. The secret generation unit 130 includes a secret integer generation unit 131 and a secret random number generation unit 132.
The secret integer generation unit 131 uses the CPU 911 to randomly generate an integer of 1 or more and less than p. Using the CPU 911, the secret integer generation unit 131 outputs the generated integer as a secret integer y.
Using the CPU 911, the secret random number generator 132 randomly generates an integer of 1 to less than p for each of n integers of 1 to n. Using the CPU 911, the secret random number generation unit 132 outputs the generated n integers as secret random numbers u i (i is an integer between 1 and n).

公開算出部140は、CPU911を用いて、公開パラメータを算出する。公開算出部140は、公開元算出部141、公開乱数元算出部142を有する。
公開元算出部141は、CPU911を用いて、第三生成元記憶部113が記憶した群Gの生成元gと、秘密整数生成部131が出力した秘密整数yとを入力する。公開元算出部141は、CPU911を用いて、入力した生成元gと秘密整数yとに基づいて、元gのy乗である群Gの元g を算出する。公開元算出部141は、CPU911を用いて、算出した元を、公開元Yとして出力する。
公開乱数元算出部142は、CPU911を用いて、第一生成元記憶部111が記憶した群Gの生成元gと、秘密乱数生成部132が出力したn個の秘密乱数uとを入力する。公開乱数元算出部142は、CPU911を用いて、1以上n以下のn個の整数それぞれについて、生成元gと、対応する秘密乱数uとに基づいて、元gのu乗である群Gの元[g^u]を算出する。公開乱数元算出部142は、CPU911を用いて、算出したn個の元を公開乱数元U(iは1以上n以下の整数。)として出力する。
The public calculation unit 140 uses the CPU 911 to calculate public parameters. The public calculation unit 140 includes a public source calculation unit 141 and a public random number source calculation unit 142.
Public element calculation unit 141, by using the CPU 911, and generates original g 3 groups G 3 to the third generation source storage unit 113 stores, inputs the secret integer y outputted secret integer generation unit 131. Public element calculation unit 141, by using the CPU 911, based on the origin g 3 entered secret integer y, to calculate the original g 3 y groups G 3 be a power y of the original g 3. The publisher calculation unit 141 uses the CPU 911 to output the calculated source as the publisher Y.
The public random number source calculation unit 142 uses the CPU 911 to generate the generation source g 1 of the group G 1 stored in the first generation source storage unit 111 and the n secret random numbers u i output from the secret random number generation unit 132. input. The public random number element calculation unit 142 uses the CPU 911 to calculate the element g 1 to the power of u i based on the generator g 1 and the corresponding secret random number u i for each of n integers of 1 to n. An element [g 1 ^ u i ] of a certain group G 1 is calculated. Using the CPU 911, the public random number element calculation unit 142 outputs the calculated n elements as public random number elements U i (i is an integer of 1 to n).

公開出力部150は、公開算出部140が算出した公開パラメータを公開する。公開出力部150は、公開元出力部151、公開乱数元出力部152を有する。
公開元出力部151は、CPU911を用いて、公開元算出部141が出力した公開元Yを入力する。公開元出力部151は、CPU911を用いて、入力した公開元Yを外部に出力する。
公開乱数元出力部152は、CPU911を用いて、公開乱数元算出部142が出力したn個の公開乱数元Uを入力する。公開乱数元出力部152は、CPU911を用いて、入力したn個の公開乱数元Uを外部に出力する。
群G及び群Gは、離散対数問題を解くことが困難な群であるから、公開元Y及び公開乱数元Uを公開しても、秘密整数y及び秘密乱数uを第三者が知ることはできない。
The public output unit 150 publishes the public parameter calculated by the public calculation unit 140. The public output unit 150 includes a public source output unit 151 and a public random number source output unit 152.
The publisher output unit 151 uses the CPU 911 to input the publisher Y output from the publisher calculation unit 141. The publisher output unit 151 uses the CPU 911 to output the input publisher Y to the outside.
The public random number source output unit 152 uses the CPU 911 to input n public random number sources U i output from the public random number source calculation unit 142. Using the CPU 911, the public random number source output unit 152 outputs the input n public random number sources U i to the outside.
Since the group G 1 and the group G 3 are groups in which it is difficult to solve the discrete logarithm problem, even if the public source Y and the public random number source U i are disclosed, the secret integer y and the secret random number u i are transferred to a third party. Can not know.

図5は、この実施の形態における検索暗号化装置300の構成の一例を示すブロック構成図である。
検索暗号化装置300は、設定記憶部310、秘密記憶部320、検索条件入力部330、閾値記憶部341、多項式係数生成部342、多項式係数記憶部343、多項式値算出部344、検索変換部352、検索整数記憶部353、検索元算出部360、暗号化検索出力部370を有する。
FIG. 5 is a block configuration diagram showing an example of the configuration of the search encryption device 300 in this embodiment.
The search encryption apparatus 300 includes a setting storage unit 310, a secret storage unit 320, a search condition input unit 330, a threshold storage unit 341, a polynomial coefficient generation unit 342, a polynomial coefficient storage unit 343, a polynomial value calculation unit 344, and a search conversion unit 352. A search integer storage unit 353, a search source calculation unit 360, and an encrypted search output unit 370.

設定記憶部310は、磁気ディスク装置920を用いて、検索システム800の基本設定や設定装置100が公開した公開パラメータなどを記憶する。設定記憶部310は、第二生成元記憶部312、索引数記憶部315を有する。
第二生成元記憶部312は、磁気ディスク装置920を用いて、群Gの生成元gを記憶する。索引数記憶部315は、磁気ディスク装置920を用いて、索引数nを記憶する。
The setting storage unit 310 uses the magnetic disk device 920 to store basic settings of the search system 800, public parameters released by the setting device 100, and the like. The setting storage unit 310 includes a second generation source storage unit 312 and an index number storage unit 315.
The second generator storage unit 312 stores the generator g 2 of the group G 2 using the magnetic disk device 920. The index number storage unit 315 uses the magnetic disk device 920 to store the index number n.

秘密記憶部320は、耐タンパ性のある記憶装置を用いて、設定装置100が設定した秘密パラメータを記憶する。秘密記憶部320は、秘密整数記憶部321、秘密乱数記憶部323を有する。
秘密整数記憶部321は、耐タンパ性のある記憶装置を用いて、設定装置100が生成した秘密整数yを記憶する。秘密乱数記憶部323は、耐タンパ性のある記憶装置を用いて、設定装置100が生成したn個の秘密乱数uを記憶する。
The secret storage unit 320 stores the secret parameter set by the setting device 100 using a tamper-resistant storage device. The secret storage unit 320 includes a secret integer storage unit 321 and a secret random number storage unit 323.
The secret integer storage unit 321 stores the secret integer y generated by the setting device 100 using a tamper-resistant storage device. The secret random number storage unit 323 stores n secret random numbers u i generated by the setting device 100 using a tamper-resistant storage device.

検索条件入力部330は、キーボード902などの入力装置を用いて、検索条件を入力する。検索条件入力部330は、閾値入力部331、検索入力部332を有する。
閾値入力部331は、キーボード902などの入力装置を用いて、閾値dを入力する。閾値入力部331は、CPU911を用いて、入力した閾値dを出力する。
検索入力部332は、キーボード902などの入力装置を用いて、1以上n以下のn個の整数それぞれについて、任意の長さの文字列を入力する。検索入力部332は、CPU911を用いて、入力したn個の文字列を検索文字列ω(iは1以上n以下の整数。)として出力する。
The search condition input unit 330 inputs a search condition using an input device such as a keyboard 902. The search condition input unit 330 includes a threshold value input unit 331 and a search input unit 332.
The threshold value input unit 331 inputs a threshold value d using an input device such as a keyboard 902. The threshold input unit 331 uses the CPU 911 to output the input threshold d.
The search input unit 332 uses an input device such as the keyboard 902 to input a character string having an arbitrary length for each of n integers of 1 to n. Using the CPU 911, the search input unit 332 outputs the input n character strings as a search character string ω i (i is an integer of 1 to n).

検索入力部332が入力する検索文字列ωに対応する整数iは、一致判定をする索引の番号に対応している。例えば、1番目の索引が「氏名」、2番目の索引が「性別」、3番目の索引が「年齢」を表わす場合、検索入力部332は、1番目の検索文字列ωとして利用者が検索したい「氏名」を入力し、2番目の検索文字列ωとして利用者が検索したい「性別」を入力し、3番目の検索文字列ωとして利用者が検索したい「年齢」を入力する。
なお、ある番号の索引を検索の対象としない場合には、検索入力部332は、その整数についての検索文字列ωを入力しない。上記の例において、「性別」を不問としたい場合には、検索入力部332は、2番目の検索文字列ωを入力しない。その場合、その番号の索引が検索文字列と一致することはないので、閾値入力部331は、閾値dとして1つ少ない閾値を入力する。
The integer i corresponding to the search character string ω i input by the search input unit 332 corresponds to the index number to be determined for matching. For example, when the first index indicates “name”, the second index indicates “gender”, and the third index indicates “age”, the search input unit 332 displays the first search character string ω 1 as the user. you want to search by entering the "name", you want to search the user as the second search string ω 2 enter the "sex", the user inputs the "age" you want to search as the third search string ω 3 .
If an index with a certain number is not to be searched, the search input unit 332 does not input the search character string ω i for the integer. In the above example, when it is desired to make “sex” unquestioned, the search input unit 332 does not input the second search character string ω2. In this case, since the index with that number does not match the search character string, the threshold value input unit 331 inputs one less threshold value as the threshold value d.

閾値記憶部341は、CPU911を用いて、閾値入力部331が出力した閾値dを入力する。閾値記憶部341は、磁気ディスク装置920を用いて、入力した閾値dを記憶する。   Using the CPU 911, the threshold storage unit 341 inputs the threshold d output from the threshold input unit 331. The threshold storage unit 341 stores the input threshold d using the magnetic disk device 920.

多項式係数生成部342は、CPU911を用いて、閾値記憶部341が記憶した閾値dに基づいて、1以上(d−2)以下の(d−2)個の整数それぞれについて、0以上p未満の整数を1つずつランダムに生成する。多項式係数生成部342は、CPU911を用いて、整数(d−1)について、1以上p未満の整数をランダムに生成する。多項式係数生成部342は、生成した(d−1)個の整数を多項式係数a(jは1以上(d−1)以下の整数。)として出力する。 The polynomial coefficient generation unit 342 uses the CPU 911 to calculate 0 to less than p for each of (d−2) integers of 1 or more and (d−2) or less based on the threshold value d stored by the threshold storage unit 341. Generate integers one by one at random. The polynomial coefficient generation unit 342 uses the CPU 911 to randomly generate an integer of 1 or more and less than p for the integer (d−1). The polynomial coefficient generation unit 342 outputs the generated (d−1) integers as polynomial coefficients a j (j is an integer of 1 or more and (d−1) or less).

多項式係数記憶部343は、CPU911を用いて、多項式係数生成部342が出力した(d−1)個の多項式係数aを入力する。多項式係数記憶部343は、RAM914を用いて、入力した(d−1)個の多項式係数aを記憶する。 Using the CPU 911, the polynomial coefficient storage unit 343 inputs (d−1) polynomial coefficients a j output from the polynomial coefficient generation unit 342. Using the RAM 914, the polynomial coefficient storage unit 343 stores the input (d-1) polynomial coefficients a j .

多項式値算出部344は、CPU911を用いて、多項式係数記憶部343が記憶した(d−1)個の多項式係数aと、秘密整数記憶部321が記憶した秘密整数yとを入力する。多項式値算出部344は、CPU911を用いて、入力した(d−1)個の多項式係数aと、秘密整数yとに基づいて、多項式係数aをj次の項の係数とし、秘密整数yを定数項とする多項式f(x)=Σ(a・x)+yについて、xに1以上n以下のn個の整数それぞれを代入した値を算出する。多項式値算出部344は、CPU911を用いて、算出したn個の値を多項式値f(i)(iは1以上n以下の整数。)として出力する。
具体的には、多項式値算出部344は、CPU911を用いて、1以上d−1以下の(d−1)個の整数jそれぞれについて、整数iのj乗を算出し、算出した整数iと、多項式係数aとの積(a・i)を算出する。多項式値算出部344は、CPU911を用いて、算出した(d−1)個の積(a・i)と、秘密整数yとの総和[Σ(a・i)+y]を算出して、多項式値f(i)とする。多項式値算出部344は、これを1以上n以下のn個の整数iについて繰り返す。
Using the CPU 911, the polynomial value calculation unit 344 inputs (d−1) polynomial coefficients a j stored in the polynomial coefficient storage unit 343 and the secret integer y stored in the secret integer storage unit 321. The polynomial value calculation unit 344 uses the CPU 911 to set the polynomial coefficient a j as the coefficient of the j-th term based on the input (d−1) polynomial coefficients a j and the secret integer y. For a polynomial f (x) = Σ (a j · x j ) + y with y as a constant term, a value obtained by substituting each of n integers of 1 to n for x is calculated. Using the CPU 911, the polynomial value calculation unit 344 outputs the calculated n values as a polynomial value f (i) (i is an integer between 1 and n).
Specifically, the polynomial value calculation unit 344 uses the CPU 911 to calculate the j-th power of the integer i for each of (d−1) integers j that are 1 or more and d−1 or less, and calculates the calculated integer i j And a polynomial coefficient a j (a j · i j ) is calculated. The polynomial value calculation unit 344 uses the CPU 911 to calculate the sum [Σ (a j · i j ) + y] of the calculated (d−1) products (a j · i j ) and the secret integer y. The polynomial value is f (i). The polynomial value calculation unit 344 repeats this for n integers i of 1 to n.

検索変換部352は、CPU911を用いて、検索入力部332が出力したn個の検索文字列ωを入力する。検索変換部352は、CPU911を用いて、入力したn個の検索文字列ωそれぞれについて、所定の写像Hにより、検索文字列ωを写像した整数を算出する。検索変換部352は、CPU911を用いて、算出したn個の整数を検索整数η(iは1以上n以下の整数。)として出力する。
写像Hは、任意の長さの文字列を1以上p未満の整数に写す写像である。写像Hは、衝突耐性を有する。すなわち、任意の二つの文字列について、写像Hにより写した整数が等しくなる確率が極めて低い。例えば、検索変換部352は、写像Hとして、ハッシュ関数を用いる。あるいは、検索変換部352は、ハッシュ関数に、検索文字列ωの番号である整数iと検索文字列ωとを結合した文字列[i‖ω]を入力する構成であってもよいし、ハッシュ関数の出力の逆数や、ハッシュ関数の出力の定数倍などを、写像Hにより写した整数とする構成であってもよい。
Using the CPU 911, the search conversion unit 352 inputs n search character strings ω i output from the search input unit 332. The search conversion unit 352 uses the CPU 911 to calculate an integer obtained by mapping the search character string ω i by using a predetermined mapping H for each of the n search character strings ω i inputted. Using the CPU 911, the search conversion unit 352 outputs the calculated n integers as search integers η i (where i is an integer between 1 and n).
The map H is a map that maps a character string of an arbitrary length to an integer of 1 or more and less than p. The map H has collision resistance. That is, for any two character strings, the probability that the integers copied by the mapping H are equal is extremely low. For example, the search conversion unit 352 uses a hash function as the mapping H. Alternatively, the search conversion unit 352, the hash function may be configured to enter a search string omega i string by combining the integer i the search string omega i is the number of [i‖ω i] The reciprocal of the output of the hash function, a constant multiple of the output of the hash function, or the like may be used as an integer copied by the mapping H.

なお、検索入力部332が、ある整数についての検索文字列ωを入力しなかった場合、検索変換部352は、その整数について、1以上p未満の整数をランダムに生成して、検索整数ηとする。 Note that if the search input unit 332 does not input the search character string ω i for an integer, the search conversion unit 352 randomly generates an integer that is greater than or equal to 1 and less than p for the integer, and retrieves the search integer η Let i .

検索整数記憶部353(検索記憶部)は、CPU911を用いて、検索変換部352が出力したn個の検索整数ηを入力する。検索整数記憶部353は、磁気ディスク装置920を用いて、入力したn個の検索整数η(検索データ)を記憶する。 The search integer storage unit 353 (search storage unit) uses the CPU 911 to input the n search integers η i output by the search conversion unit 352. Using the magnetic disk device 920, the search integer storage unit 353 stores n input search integers η i (search data).

検索元算出部360は、CPU911を用いて、n個の検索元T(iは1以上n以下の整数。)を算出する。検索元Tは、検索整数ηを暗号化したものであり、暗号化検索データの一部である。検索元算出部360は、指数算出部361、累乗部366を有する。
指数算出部361は、CPU911を用いて、秘密乱数記憶部323が記憶したn個の秘密乱数uと、多項式値算出部344が出力したn個の多項式値f(i)と、検索整数記憶部353が記憶したn個の検索整数ηとを入力する。指数算出部361は、CPU911を用いて、1以上n以下のn個の整数それぞれについて、対応する秘密乱数uと、対応する多項式値f(i)と、対応する検索整数ηとに基づいて、秘密乱数uと検索整数ηとの積で、多項式値f(i)を割った商f(i)/(u・η)(iは1以上n以下の整数。)を算出する。指数算出部361は、CPU911を用いて、算出したn個の商を出力する。
累乗部366は、CPU911を用いて、第二生成元記憶部312が記憶した群Gの生成元gと、指数算出部361が出力したn個の商f(i)/(u・η)とを入力する。累乗部366は、CPU911を用いて、1以上n以下のn個の整数それぞれについて、生成元gと、対応する商f(i)/(u・η)とに基づいて、元gのf(i)/(u・η)乗である群Gの元を算出する。累乗部366は、CPU911を用いて、算出したn個の元を検索元Tとして出力する。
The search source calculation unit 360 uses the CPU 911 to calculate n search sources T i (i is an integer of 1 to n). The search source T i is obtained by encrypting the search integer η i and is a part of the encrypted search data. The search source calculation unit 360 includes an index calculation unit 361 and a power unit 366.
The exponent calculation unit 361 uses the CPU 911 to store n secret random numbers u i stored in the secret random number storage unit 323, n polynomial values f (i) output from the polynomial value calculation unit 344, and a search integer storage The n search integers η i stored in the unit 353 are input. Using the CPU 911, the exponent calculation unit 361 uses, based on the corresponding secret random number u i , the corresponding polynomial value f (i), and the corresponding search integer η i for each of n integers of 1 to n. Then, the product of the secret random number u i and the search integer η i, and the quotient f (i) / (u i · η i ) (i is an integer of 1 to n) obtained by dividing the polynomial value f (i). calculate. The exponent calculation unit 361 uses the CPU 911 to output the calculated n quotients.
Power unit 366, by using the CPU 911, and generates original g 2 groups G 2 to the second generation source storage unit 312 has stored, n-number of the quotient f the index calculating unit 361 outputs (i) / (u i · η i ). The power unit 366 uses the CPU 911 to calculate the element g based on the generator g 2 and the corresponding quotient f (i) / (u i · η i ) for each of n integers of 1 to n. calculating a second f (i) / (u i · η i) th power in which the original group G 2. Power unit 366, by using the CPU 911, and outputs the calculated n elements as search source T i.

暗号化検索出力部370は、CPU911を用いて、暗号化検索データを外部に出力する。暗号化検索出力部370は、閾値出力部371、検索元出力部372を有する。
閾値出力部371は、CPU911を用いて、閾値記憶部341が記憶した閾値dを入力する。閾値出力部371は、CPU911を用いて、入力した閾値dを外部に出力する。
検索元出力部372は、CPU911を用いて、累乗部366が出力したn個の検索元Tを入力する。検索元出力部372は、CPU911を用いて、入力したn個の検索元Tを外部に出力する。
Using the CPU 911, the encrypted search output unit 370 outputs the encrypted search data to the outside. The encrypted search output unit 370 includes a threshold output unit 371 and a search source output unit 372.
Using the CPU 911, the threshold output unit 371 inputs the threshold d stored by the threshold storage unit 341. Using the CPU 911, the threshold output unit 371 outputs the input threshold d to the outside.
Search source output unit 372, using the CPU 911, inputs the n number of search source T i that power unit 366 is output. Using the CPU 911, the search source output unit 372 outputs the input n search sources Ti to the outside.

なお、暗号化検索出力部370は、閾値出力部371が出力する閾値dを表わすデータと、検索元出力部372が出力するn個の検索元Tを表わすデータとを1つに結合し、暗号化検索データ(検索文)として出力する構成であってもよい。 Incidentally, the encryption search output unit 370 combines the data representing the threshold value d threshold output unit 371 outputs, and the data representing the n-number of search source T i output by the search source output unit 372 to one, It may be configured to output as encrypted search data (search text).

図6は、この実施の形態における索引暗号化装置200の構成の一例を示すブロック構成図である。
索引暗号化装置200は、設定記憶部210、索引入力部221、索引変換部223、索引整数記憶部224、索引乱数生成部230、判定元算出部240、索引元算出部250、暗号化索引出力部260を有する。
FIG. 6 is a block configuration diagram showing an example of the configuration of the index encryption device 200 in this embodiment.
The index encryption apparatus 200 includes a setting storage unit 210, an index input unit 221, an index conversion unit 223, an index integer storage unit 224, an index random number generation unit 230, a determination source calculation unit 240, an index source calculation unit 250, and an encrypted index output. Part 260.

設定記憶部210は、検索システム800の基本設定や設定装置100が公開した公開パラメータを記憶する。設定記憶部210は、索引数記憶部215、公開元記憶部216、公開乱数元記憶部217を有する。
索引数記憶部215は、磁気ディスク装置920を用いて、索引数nを記憶する。公開元記憶部216は、磁気ディスク装置920を用いて、設定装置100が設定した公開元Yを記憶する。公開乱数元記憶部217は、磁気ディスク装置920を用いて、設定装置100が設定したn個の公開乱数元Uを記憶する。
The setting storage unit 210 stores basic settings of the search system 800 and public parameters disclosed by the setting device 100. The setting storage unit 210 includes an index number storage unit 215, a public source storage unit 216, and a public random number source storage unit 217.
The index number storage unit 215 uses the magnetic disk device 920 to store the index number n. The disclosure source storage unit 216 uses the magnetic disk device 920 to store the disclosure source Y set by the setting device 100. The public random number source storage unit 217 stores n public random number sources U i set by the setting device 100 using the magnetic disk device 920.

索引入力部221は、キーボード902などの入力装置を用いて、1以上n以下のn個の整数それぞれについて、任意の長さの文字列(キーワード)を入力する。索引入力部221は、CPU911を用いて、入力したn個の文字列を索引文字列w(iは1以上n以下の整数。)として出力する。
索引変換部223は、CPU911を用いて、索引入力部221が記憶したn個の索引文字列wを入力する。索引変換部223は、CPU911を用いて、入力したn個の索引文字列wそれぞれについて、写像Hにより、索引文字列wを写像した整数を算出する。索引変換部223は、CPU911を用いて、算出したn個の整数を索引整数h(iは1以上n以下の整数。)として出力する。
写像Hは、検索変換部352が用いる写像と同じ写像であり、衝突耐性を有する。したがって、索引文字列wと検索文字列ωとが一致する場合、索引整数hと検索整数ηとは等しく、索引文字列wと検索文字列ωとが一致しない場合、索引整数hと検索整数ηとは等しくない。
索引整数記憶部224(索引記憶部)は、CPU911を用いて、索引変換部223が出力したn個の索引整数hを入力する。索引整数記憶部224は、磁気ディスク装置920を用いて、入力したn個の索引整数h(索引データ)を記憶する。
The index input unit 221 inputs a character string (keyword) having an arbitrary length for each of n integers of 1 to n using an input device such as a keyboard 902. Using the CPU 911, the index input unit 221 outputs the input n character strings as index character strings w i (i is an integer of 1 to n).
The index conversion unit 223 uses the CPU 911 to input the n index character strings w i stored in the index input unit 221. Index conversion unit 223, using the CPU 911, for n indexed string w i respectively inputted, the mapping H, calculates the integer obtained by mapping the index string w i. Using the CPU 911, the index conversion unit 223 outputs the calculated n integers as index integers h i (i is an integer of 1 to n).
The map H is the same map as the map used by the search conversion unit 352 and has collision resistance. Therefore, when the index character string w i matches the search character string ω i , the index integer h i is equal to the search integer η i, and when the index character string w i does not match the search character string ω i , The integer h i and the search integer η i are not equal.
Index integer storage unit 224 (index storage unit), using the CPU 911, inputs the n number of indexes integer h i the index conversion unit 223 is output. Index integer storage unit 224, by using the magnetic disk device 920 stores the entered n number of indexes integral h i (index data).

なお、一部あるいはすべてのデータ本体に対する索引として、n個未満の索引文字列を指定することとしてもよい。その場合、索引入力部221は、索引文字列を指定しない整数についての索引文字列wを入力せず、索引変換部223が、0以上p未満の整数をランダムに生成して索引整数hとし、索引整数記憶部224が記憶する。 Note that less than n index character strings may be designated as indexes for some or all data bodies. In that case, the index input unit 221 does not input an index character string w i for an integer that does not designate an index character string, and the index conversion unit 223 randomly generates an integer of 0 or more and less than p to generate an index integer h i. And the index integer storage unit 224 stores it.

索引乱数生成部230は、CPU911を用いて、1以上p未満の整数をランダムに生成する。索引乱数生成部230は、CPU911を用いて、生成した整数を索引乱数sとして出力する。   The index random number generator 230 uses the CPU 911 to randomly generate an integer of 1 or more and less than p. Using the CPU 911, the index random number generation unit 230 outputs the generated integer as the index random number s.

判定元算出部240は、CPU911を用いて、判定元E’を算出する。判定元E’は、索引乱数sを暗号化したものであり、暗号化索引データの一部である。判定元算出部240は、累乗部242を有する。
累乗部242は、CPU911を用いて、公開元記憶部216が記憶した公開元Yと、索引乱数生成部230が出力した索引乱数sとを入力する。累乗部242は、CPU911を用いて、入力した公開元Yと索引乱数sとに基づいて、元Yのs乗である群Gの元Yを算出する。累乗部242は、CPU911を用いて、算出した元Yを判定元E’として出力する。
ここで、公開元Yは、元gのy乗であるから、判定元E’は、元gの(s・y)乗である。
The determination source calculation unit 240 uses the CPU 911 to calculate the determination source E ′. The determination source E ′ is obtained by encrypting the index random number s and is a part of the encrypted index data. The determination source calculation unit 240 includes a power unit 242.
The power unit 242 uses the CPU 911 to input the publication source Y stored in the publication source storage unit 216 and the index random number s output from the index random number generation unit 230. The power unit 242 uses the CPU 911 to calculate the element Y s of the group G 3 that is the s power of the element Y based on the input disclosure element Y and the index random number s. The power unit 242 uses the CPU 911 to output the calculated element Y s as the determination element E ′.
Here, the public element Y, since it is the power of y original g 3, determined based on E 'is a power of the original g 3 (s · y).

索引元算出部250は、CPU911を用いて、n個の索引元E(iは1以上n以下の整数。)を算出する。索引元Eは、索引整数hを暗号化したものであり、暗号化索引データの一部である。索引元算出部250は、指数算出部251、累乗部253を有する。
指数算出部251は、CPU911を用いて、索引整数記憶部224が記憶したn個の索引整数hと、索引乱数生成部230が出力した索引乱数sとを入力する。指数算出部251は、CPU911を用いて、1以上n以下のn個の整数それぞれについて、索引乱数sと、対応する索引整数hとに基づいて、索引乱数sと索引整数hとの積s・hを算出する。指数算出部251は、CPU911を用いて、算出したn個の積s・hを出力する。
累乗部253は、CPU911を用いて、公開乱数元記憶部217が記憶したn個の公開乱数元Uと、指数算出部251が出力したn個の積s・hとを入力する。累乗部253は、CPU911を用いて、1以上n以下のn個の整数それぞれについて、対応する公開乱数元Uと、対応する積s・hとに基づいて、元Uの(s・h)乗である群Gの元を算出する。累乗部253は、CPU911を用いて、算出したn個の元を索引元Eとして出力する。
ここで、公開乱数元Uは、元gのu乗であるから、索引元Eは、元gの(s・h・u)乗である。
The index element calculation unit 250 uses the CPU 911 to calculate n index elements E i (i is an integer of 1 to n). The index source E i is obtained by encrypting the index integer h i and is a part of the encrypted index data. The index element calculation unit 250 includes an index calculation unit 251 and a power unit 253.
Index calculating unit 251, using the CPU 911, the index integer storage unit 224 inputs the n number of indexes integer h i which stores, and indexes random number s to the index random number generation unit 230 has output. The index calculation unit 251 uses the CPU 911 to calculate the product of the index random number s and the index integer h i based on the index random number s and the corresponding index integer h i for each of n integers of 1 to n. to calculate the s · h i. Index calculating unit 251, using the CPU 911, and outputs the calculated n pieces of the product s · h i.
The power unit 253 uses the CPU 911 to input the n public random number sources U i stored in the public random number source storage unit 217 and the n products s · h i output from the exponent calculation unit 251. Power unit 253, by using the CPU 911, for each 1 to n of n integers, the corresponding public random number based on U i, corresponding on the basis of a product s · h i, of the original U i (s · calculating the h i) th power in which the original group G 2. The power unit 253 uses the CPU 911 to output the calculated n elements as the index element E i .
Here, since the public random number element U i is the u i power of the element g 1 , the index element E i is the (s · h i · u i ) power of the element g 1 .

暗号化索引出力部260は、CPU911を用いて、暗号化索引データを外部に出力する。暗号化索引出力部260は、索引元出力部261、判定元出力部262を有する。
索引元出力部261は、CPU911を用いて、累乗部253が出力したn個の索引元Eを入力する。索引元出力部261は、CPU911を用いて、入力したn個の索引元Eを外部に出力する。
判定元出力部262は、CPU911を用いて、累乗部242が出力した判定元E’を入力する。判定元出力部262は、CPU911を用いて、入力した判定元E’を外部に出力する。
Using the CPU 911, the encrypted index output unit 260 outputs the encrypted index data to the outside. The encrypted index output unit 260 includes an index source output unit 261 and a determination source output unit 262.
Using the CPU 911, the index source output unit 261 inputs the n index sources E i output from the power unit 253. Using the CPU 911, the index source output unit 261 outputs the input n index sources E i to the outside.
Using the CPU 911, the determination source output unit 262 inputs the determination source E ′ output from the power unit 242. Using the CPU 911, the determination source output unit 262 outputs the input determination source E ′ to the outside.

なお、暗号化索引出力部260は、索引元出力部261が出力するn個の索引元Eを表わすデータと、判定元出力部262が出力する判定元E’を表わすデータとを1つに結合し、暗号化索引データ(キーワード暗号文)として出力する構成であってもよい。 The encrypted index output unit 260 combines the data representing the n index sources E i output from the index source output unit 261 and the data representing the determination source E ′ output from the determination source output unit 262 into one. It may be configured to be combined and output as encrypted index data (keyword ciphertext).

図7は、この実施の形態における検索装置400の構成の一例を示すブロック構成図である。
検索装置400は、索引数記憶部415、暗号化索引記憶部420、暗号化検索記憶部430、判定対象選択部441、補間係数値算出部442、写像元算出部450、比較元算出部460、判定部470を有する。
FIG. 7 is a block configuration diagram showing an example of the configuration of the search device 400 in this embodiment.
The search apparatus 400 includes an index number storage unit 415, an encrypted index storage unit 420, an encrypted search storage unit 430, a determination target selection unit 441, an interpolation coefficient value calculation unit 442, a mapping source calculation unit 450, a comparison source calculation unit 460, A determination unit 470 is included.

索引数記憶部415は、磁気ディスク装置920を用いて、索引数nを記憶する。   The index number storage unit 415 uses the magnetic disk device 920 to store the index number n.

暗号化索引記憶部420は、磁気ディスク装置920を用いて、索引暗号化装置200が出力した暗号化索引データを記憶する。暗号化索引記憶部420は、1つのデータ本体に対して1つずつの暗号化索引データを記憶する。暗号化索引記憶部420は、索引元記憶部421、判定元記憶部422を有する。
索引元記憶部421は、磁気ディスク装置920を用いて、1つの暗号化索引データについてn個ずつの索引元Eを記憶する。判定元記憶部422は、磁気ディスク装置920を用いて、1つの暗号化索引データについて1つずつの判定元E’を記憶する。
Using the magnetic disk device 920, the encrypted index storage unit 420 stores the encrypted index data output by the index encryption device 200. The encrypted index storage unit 420 stores one piece of encrypted index data for one data body. The encrypted index storage unit 420 includes an index source storage unit 421 and a determination source storage unit 422.
Using the magnetic disk device 920, the index source storage unit 421 stores n index sources E i for each encrypted index data. The determination source storage unit 422 uses the magnetic disk device 920 to store one determination source E ′ for each encrypted index data.

暗号化検索記憶部430は、磁気ディスク装置920を用いて、検索暗号化装置300が出力した暗号化検索データを記憶する。暗号化検索記憶部430は、閾値記憶部431、検索元記憶部432を有する。
閾値記憶部431は、磁気ディスク装置920を用いて、閾値dを記憶する。検索元記憶部432は、磁気ディスク装置920を用いて、n個の検索元Tを記憶する。
Using the magnetic disk device 920, the encrypted search storage unit 430 stores the encrypted search data output by the search encryption device 300. The encrypted search storage unit 430 includes a threshold storage unit 431 and a search source storage unit 432.
The threshold storage unit 431 stores the threshold d using the magnetic disk device 920. Search source storage unit 432, by using the magnetic disk device 920 stores n pieces of retrieval source T i.

判定対象選択部441は、CPU911を用いて、1以上n以下のn個の整数からなる集合の部分集合であり、d個の整数からなる集合Sを選択する。
判定対象選択部441は、CPU911を用いて、閾値記憶部431が記憶した閾値dを入力する。判定対象選択部441は、CPU911を用いて、1以上n以下のn個の整数のなかから、d個の整数を選択する。判定対象選択部441は、CPU911を用いて、選択したd個の整数(集合S)を出力する。
Using the CPU 911, the determination target selection unit 441 selects a set S that is a subset of a set of n integers that are 1 or more and n or less and that includes d integers.
Using the CPU 911, the determination target selection unit 441 inputs the threshold value d stored in the threshold storage unit 431. The determination target selection unit 441 uses the CPU 911 to select d integers from n integers of 1 to n. Using the CPU 911, the determination target selection unit 441 outputs the selected d integers (set S).

補間係数値算出部442は、CPU911を用いて、ラグランジュの補間係数の値を算出する。ラグランジュの補間係数は、次の式により定義される。

Figure 0005274271
集合Sはd個の元からなるので、ラグランジュの補間係数は変数xについて(d−1)次の多項式である。
補間係数値算出部442は、ラグランジュの補間係数の変数xに0を代入したときの値Δi,S(0)を算出する。
補間係数値算出部442は、CPU911を用いて、判定対象選択部441が出力したd個の整数を入力する。補間係数値算出部442は、CPU911を用いて、入力したd個の整数それぞれについて、ラグランジュの補間係数の値を算出する。補間係数値算出部442は、CPU911を用いて、算出したd個のラグランジュの補間係数の値を補間係数値Δi,Sとして出力する。
具体的には、判定対象選択部441が選択したd個の整数のうち、補間係数値を求める対象である整数を対象整数iとし、対象整数i以外の(d−1)個の整数を対象外整数jとすると、補間係数値算出部442は、CPU911を用いて、(d−1)個の対象外整数jそれぞれについて、対象外整数jから対象整数iを差し引いた差(j−i)を算出し、算出した差(j−i)で対象外整数jを割った商[j/(j−i)]を算出する。補間係数値算出部442は、CPU911を用いて、算出した(d−1)個の商[j/(j−i)]すべての総積Π[j/(j−i)]を算出して、補間係数値Δi,Sとする。 The interpolation coefficient value calculation unit 442 uses the CPU 911 to calculate the value of the Lagrange interpolation coefficient. The Lagrangian interpolation coefficient is defined by the following equation.
Figure 0005274271
Since the set S consists of d elements, the Lagrange interpolation coefficient is a (d-1) degree polynomial for the variable x.
The interpolation coefficient value calculation unit 442 calculates a value Δ i, S (0) when 0 is substituted for the variable x of the Lagrange interpolation coefficient.
The interpolation coefficient value calculation unit 442 uses the CPU 911 to input the d integers output from the determination target selection unit 441. Using the CPU 911, the interpolation coefficient value calculation unit 442 calculates a Lagrange interpolation coefficient value for each of the input d integers. Using the CPU 911, the interpolation coefficient value calculation unit 442 outputs the calculated d Lagrangian interpolation coefficient values as interpolation coefficient values Δ i, S.
Specifically, among the d integers selected by the determination target selection unit 441, the integer that is the target for obtaining the interpolation coefficient value is the target integer i, and (d−1) integers other than the target integer i are the targets. When the outer integer j is used, the interpolation coefficient value calculation unit 442 uses the CPU 911 to calculate the difference (j−i) obtained by subtracting the target integer i from the non-target integer j for each of (d−1) non-target integers j. And the quotient [j / (j−i)] obtained by dividing the non-target integer j by the calculated difference (j−i). Using the CPU 911, the interpolation coefficient value calculation unit 442 calculates the total product Π [j / (j−i)] of all the calculated (d−1) quotients [j / (j−i)]. Interpolation coefficient value Δ i, S.

写像元算出部450(写像算出部)は、CPU911を用いて、d個の写像元e’(写像データ)を算出する。写像元算出部450は、ペアリング値算出部451、累乗部455を有する。
ペアリング値算出部451は、CPU911を用いて、検索条件に合うか否かを判定する対象である索引について索引元記憶部421が記憶したn個の索引元Eと、検索元記憶部432が記憶したn個の検索元Tとを入力する。ペアリング値算出部451は、CPU911を用いて、1以上n以下のn個の整数それぞれについて、対応する索引元Eと、対応する検索元Tとに基づいて、索引元Eと検索元Tとの組をペアリング写像eにより写像した群Gの元e(E,T)を算出する。ペアリング値算出部451は、CPU911を用いて、算出したn個の元e(E,T)をペアリング値e(iは1以上n以下の整数。)として出力する。
ここで、索引元Eは、元gの(s・h・u)乗であり、検索元Tは、元gの[f(i)/(u・η)]乗であるから、ペアリング値eは、元gの[f(i)・s・h/η]乗である。
Using the CPU 911, the mapping source calculation unit 450 (mapping calculation unit) calculates d mapping sources e ′ i (mapping data). The mapping source calculation unit 450 includes a pairing value calculation unit 451 and a power unit 455.
Using the CPU 911, the pairing value calculation unit 451 uses the n index sources E i stored in the index source storage unit 421 and the search source storage unit 432 for an index that is a target for determining whether or not the search condition is met. The n search sources T i stored in are input. Pairing value calculation unit 451, by using the CPU 911, for 1 to n of n integers, the corresponding index based E i, based on the corresponding search source T i, an index based on E i Search The element e (E i , T i ) of the group G 3 obtained by mapping the pair with the element T i by the pairing map e is calculated. Using the CPU 911, the pairing value calculation unit 451 outputs the calculated n elements e (E i , T i ) as a pairing value e i (i is an integer between 1 and n).
Here, the index element E i is the power of the element g 1 to the (s · hi i · u i ) power, and the search source T i is the element g 2 [f (i) / (u i · η i )]. Since it is a power, the pairing value e i is the [f (i) · s · h i / η i ] power of the element g 3 .

累乗部455は、CPU911を用いて、補間係数値算出部442が出力したd個の補間係数値Δi,Sと、ペアリング値算出部451が出力したn個のペアリング値eのうちd個の補間係数値Δi,Sに対応する(すなわち、判定対象選択部441が選択したd個の整数に対応する)d個のペアリング値eとを入力する。累乗部455は、判定対象選択部441が選択したd個の整数それぞれについて、対応する補間係数値Δi,Sと、対応するペアリング値eとに基づいて、ペアリング値eのΔi,S乗である群Gの元を算出する。累乗部455は、CPU911を用いて、算出したd個の元を写像元e’として出力する。 Using the CPU 911, the power unit 455 uses the d interpolation coefficient values Δ i, S output from the interpolation coefficient value calculation unit 442 and the n pairing values e i output from the pairing value calculation unit 451. The d pairing values e i corresponding to the d interpolation coefficient values Δ i, S (that is, corresponding to the d integers selected by the determination target selection unit 441) are input. Power unit 455, for each determination target selection unit 441 selects the d integers, and the corresponding interpolation coefficient value delta i, S, on the basis of the corresponding pairing value e i, the pairing value e i delta i, to calculate the original group G 3 be a power S. The power unit 455 uses the CPU 911 to output the calculated d elements as the mapping element e ′ i .

比較元算出部460(比較算出部)は、CPU911を用いて、比較元B(比較データ)を算出する。比較元算出部460は、総積部461を有する。
総積部461は、CPU911を用いて、累乗部455が出力したd個の写像元e’を入力する。総積部461は、CPU911を用いて、入力したd個の元e’すべての総積Π[e’]を算出する。総積部461は、CPU911を用いて、算出した総積Π[e’]を比較元Bとして出力する。
ここで、比較元Bは、

Figure 0005274271
である。 The comparison source calculation unit 460 (comparison calculation unit) uses the CPU 911 to calculate the comparison source B (comparison data). The comparison source calculation unit 460 includes a total product unit 461.
Using the CPU 911, the total product unit 461 receives the d mapping sources e ′ i output from the power unit 455. Total product unit 461, using the CPU 911, calculates a d number of elements e 'i all of the total product [pi [e' entered i]. The total product unit 461 uses the CPU 911 to output the calculated total product Π [e ′ i ] as the comparison source B.
Here, the comparison source B is
Figure 0005274271
It is.

判定部470は、CPU911を用いて、検索条件に合うか否かを判定する対象である索引について判定元記憶部422が記憶した判定元E’と、総積部461が出力した比較元Bとを入力する。判定部470は、入力した判定元E’と比較元Bとを比較し、一致する場合に、その索引が検索条件に合うと判定する。判定部470は、CPU911を用いて、判定した結果を検索結果として出力する。   The determination unit 470 uses the CPU 911 to determine the determination source E ′ stored in the determination source storage unit 422 for the index that is the target for determining whether or not the search condition is satisfied, and the comparison source B output from the total product unit 461. Enter. The determination unit 470 compares the input determination source E ′ and the comparison source B, and determines that the index meets the search condition if they match. Using the CPU 911, the determination unit 470 outputs the determined result as a search result.

ここで、

Figure 0005274271
とおく。ラグランジュの補間係数Δi,S(x)は、定義より明らかに、x=iのとき1、x∈Sかつx≠iのとき0である。したがって、x∈Sのとき、φ(x)=f(x)である。φ(x)及びf(x)は、xについての(d−1)次多項式であり、d個のxについてφ(x)=f(x)であるから、φ(x)≡f(x)である。したがって、
Figure 0005274271
である。 here,
Figure 0005274271
far. The Lagrange interpolation coefficient Δ i, S (x) is apparently 1 by 1 when x = i, and 0 when x∈S and x ≠ i. Therefore, when xεS, φ (x) = f (x). φ (x) and f (x) are (d−1) degree polynomials for x, and φ (x) = f (x) for d xs, so φ (x) ≡f (x ). Therefore,
Figure 0005274271
It is.

すべてのi∈Sについて、h=ηである場合、比較元Bは、

Figure 0005274271
であるから、比較元Bは、判定元E’と一致する。 For all i∈S, if h i = η i , then the comparison source B is
Figure 0005274271
Therefore, the comparison source B matches the determination source E ′.

一方、いずれかのi∈Sについて、h≠ηである場合、B=E’となる確率は、極めて低い。例えば、i∈S’(S’はSの部分集合であり空集合でない。)について、h≠ηであり、それ以外のi∈Sについて、h=ηだとすると、

Figure 0005274271
であるから、B=E’となるのは、
Figure 0005274271
の場合のみである。この値は、0以上p未満のランダムな値をとるから、0になる確率は1/pである。pは通常大きな数であるから、この確率は、極めて低い。 On the other hand, for any iεS, if h i ≠ η i , the probability of B = E ′ is very low. For example, if i ∈ S ′ (S ′ is a subset of S and not an empty set), and h i ≠ η i and h i = η i for other i∈S,
Figure 0005274271
Therefore, B = E '
Figure 0005274271
This is only the case. Since this value takes a random value of 0 or more and less than p, the probability of becoming 0 is 1 / p. Since p is usually a large number, this probability is very low.

図8は、この実施の形態におけるデータ暗号化装置840、暗号化データ記憶装置850、データ復号装置860の構成の一例を示すブロック構成図である。   FIG. 8 is a block configuration diagram showing an example of the configuration of the data encryption device 840, the encrypted data storage device 850, and the data decryption device 860 in this embodiment.

データ暗号化装置840は、本体記憶部841、暗号化鍵記憶部842、本体暗号化部843を有する。
本体記憶部841は、磁気ディスク装置920を用いて、データ本体(平文データ)を記憶する。
暗号化鍵記憶部842は、磁気ディスク装置920を用いて、データ本体の暗号化に用いる暗号化鍵を記憶する。
本体暗号化部843は、CPU911を用いて、本体記憶部841が記憶したデータ本体と、暗号化鍵記憶部842が記憶した暗号化鍵とを入力する。本体暗号化部843は、CPU911を用いて、入力した暗号化鍵により、入力したデータ本体を暗号化する。本体暗号化部843は、CPU911を用いて、暗号化したデータ本体を暗号化データ本体として出力する。
本体暗号化部843が用いる暗号方式は、例えばRSA暗号など一般的な公開鍵暗号方式であってもよいし、例えばAES暗号など一般的な共通鍵暗号方式であってもよいし、IDベース暗号などの暗号方式であってもよい。あるいは、本体暗号化部843は、ランダムに生成した共通鍵を用いて共通鍵暗号方式でデータ本体を暗号化した上で、暗号化鍵記憶部842が記憶した暗号化鍵を用いて公開鍵暗号方式などの暗号方式で共通鍵を暗号化し、暗号化したデータ本体と暗号化した共通鍵とを結合したものを暗号化データ本体とする構成としてもよい。
The data encryption device 840 includes a main body storage unit 841, an encryption key storage unit 842, and a main body encryption unit 843.
The main body storage unit 841 stores the data main body (plain text data) using the magnetic disk device 920.
Using the magnetic disk device 920, the encryption key storage unit 842 stores an encryption key used for encrypting the data body.
Using the CPU 911, the main body encryption unit 843 inputs the data main body stored in the main body storage unit 841 and the encryption key stored in the encryption key storage unit 842. The main body encryption unit 843 uses the CPU 911 to encrypt the input data main body with the input encryption key. Using the CPU 911, the main body encryption unit 843 outputs the encrypted data body as an encrypted data body.
The encryption method used by the main body encryption unit 843 may be a general public key encryption method such as RSA encryption, a common common key encryption method such as AES encryption, or ID-based encryption. An encryption method such as Alternatively, the main body encryption unit 843 encrypts the data body using a common key encryption method using a randomly generated common key, and then uses the encryption key stored in the encryption key storage unit 842 to perform public key encryption. The common key may be encrypted by an encryption method such as a scheme, and the encrypted data body may be combined with the encrypted data body and the encrypted common key.

暗号化データ記憶装置850は、暗号化本体記憶部851、検索結果入力部852、検索本体出力部853を有する。
暗号化本体記憶部851は、磁気ディスク装置920を用いて、データ暗号化装置840が出力した暗号化データ本体を記憶する。
検索結果入力部852は、CPU911を用いて、検索装置400が出力した検索結果を入力する。
検索本体出力部853は、CPU911を用いて、検索結果入力部852が入力した検索結果に基づいて、検索条件に合う索引に対応づけられた暗号化データ本体を、暗号化本体記憶部851が記憶した暗号化データ本体のなかから取得する。検索本体出力部853は、CPU911を用いて、取得した暗号化データ本体を出力する。
The encrypted data storage device 850 includes an encrypted main body storage unit 851, a search result input unit 852, and a search main body output unit 853.
The encrypted body storage unit 851 stores the encrypted data body output from the data encryption device 840 using the magnetic disk device 920.
Using the CPU 911, the search result input unit 852 inputs the search result output by the search device 400.
Using the CPU 911, the search main body output unit 853 stores the encrypted data main body associated with the index that meets the search condition based on the search result input by the search result input unit 852. Obtain from the encrypted data itself. Using the CPU 911, the search body output unit 853 outputs the acquired encrypted data body.

なお、検索にヒットするか否かのみが問題となり、データ本体がない場合や、暗号化データ本体を暗号化索引データと結合した形式で検索装置400が記憶する構成の場合には、暗号化データ記憶装置850がない構成であってもよい。   Note that only whether or not the search hits is a problem. If there is no data body or if the search apparatus 400 stores the encrypted data body in a format combined with the encrypted index data, the encrypted data is stored. A configuration without the storage device 850 may be used.

データ復号装置860は、復号鍵記憶部861、本体復号部862、復号本体出力部863を有する。
復号鍵記憶部861は、磁気ディスク装置920を用いて、データ暗号化装置840が記憶した暗号化鍵に対応する復号鍵を記憶する。
本体復号部862は、CPU911を用いて、暗号化データ記憶装置850が出力した暗号化データ本体と、復号鍵記憶部861が記憶した復号鍵とを入力する。本体復号部862は、CPU911を用いて、入力した復号鍵により、入力した暗号化データ本体を復号する。本体復号部862は、復号したデータ本体を復号データ本体として出力する。
復号本体出力部863は、CPU911を用いて、本体復号部862が出力した復号データ本体を入力する。復号本体出力部863は、CPU911を用いて、入力した復号データ本体を外部に出力する。
The data decryption apparatus 860 includes a decryption key storage unit 861, a main body decryption unit 862, and a decryption main body output unit 863.
The decryption key storage unit 861 stores a decryption key corresponding to the encryption key stored by the data encryption device 840 using the magnetic disk device 920.
The main body decrypting unit 862 uses the CPU 911 to input the encrypted data main body output from the encrypted data storage device 850 and the decryption key stored in the decryption key storage unit 861. The body decrypting unit 862 uses the CPU 911 to decrypt the input encrypted data body using the input decryption key. The main body decoding unit 862 outputs the decoded data body as a decoded data body.
Using the CPU 911, the decrypted body output unit 863 inputs the decrypted data body output from the body decryptor 862. Using the CPU 911, the decrypted body output unit 863 outputs the input decrypted data body to the outside.

図9は、この実施の形態における設定処理S610の流れの一例を示すフローチャート図である。
設定処理S610において、設定装置100は、検索システム800で用いるパラメータを設定する。設定処理S610は、第三生成元算出工程S611、秘密整数生成工程S613、公開元算出工程S615、整数選択工程S616、秘密乱数生成工程S617、公開乱数元算出工程S619、整数繰り返し工程S620を有する。
FIG. 9 is a flowchart showing an example of the flow of the setting process S610 in this embodiment.
In the setting process S610, the setting apparatus 100 sets parameters used in the search system 800. The setting process S610 includes a third generation source calculation step S611, a secret integer generation step S613, a disclosure source calculation step S615, an integer selection step S616, a secret random number generation step S617, a public random number source calculation step S619, and an integer repetition step S620.

第三生成元算出工程S611において、ペアリング値算出部121は、CPU911を用いて、第一生成元記憶部111が記憶した群Gの生成元gと、第二生成元記憶部112が記憶した群Gの生成元gとに基づいて、元gと元gとの組をペアリング写像eにより写像した群Gの元e(g,g)を算出して、元gとする。 In a third generation element calculation step S611, the pairing value calculation unit 121, by using the CPU 911, and a generator g 1 of the group G 1 of the first generation source storage unit 111 is stored, the second generation source storage unit 112 the stored based on the generated original g 2 groups G 2, and calculates an element e of the group G 3 which maps a set of the original g 1 from the original g 2 by pairing mapping e (g 1, g 2) , to the original g 3.

秘密整数生成工程S613において、秘密整数生成部131は、CPU911を用いて、1以上p未満の整数をランダムに生成して、秘密整数yとする。   In the secret integer generation step S613, the secret integer generation unit 131 uses the CPU 911 to randomly generate an integer of 1 or more and less than p and set it as the secret integer y.

公開元算出工程S615において、公開元算出部141は、CPU911を用いて、第三生成元算出工程S611でペアリング値算出部121が算出した元gと、秘密整数生成工程S613で秘密整数生成部131が生成した秘密整数yとに基づいて、元gのy乗である群Gの元g を算出して、公開元Yとする。 In the public element calculation step S615, the public element calculation unit 141, by using the CPU 911, the original g 3 pairing value calculation unit 121 is calculated in the third generation element calculation step S611, a secret integer generated by the secret integer generating step S613 based on the secret integer y which part 131 is generated, and calculates an element g 3 y groups G 3 be a power y of the original g 3, and public element Y.

整数選択工程S616において、秘密乱数生成部132は、CPU911を用いて、1以上n以下のn個の整数のなかから、整数を1つずつ順に選択して、整数iとする。   In the integer selection step S616, the secret random number generation unit 132 uses the CPU 911 to select integers one by one from n integers of 1 to n in order to obtain an integer i.

秘密乱数生成工程S617において、秘密乱数生成部132は、CPU911を用いて、整数選択工程S616で選択した整数iについて、1以上p未満の整数をランダムに生成して、秘密乱数uとする。 In the secret random number generation step S617, the secret random number generation unit 132 uses the CPU 911 to randomly generate an integer less than or equal to 1 and less than p for the integer i selected in the integer selection step S616 and set it as the secret random number u i .

公開乱数元算出工程S619において、公開乱数元算出部142は、CPU911を用いて、整数選択工程S616で秘密乱数生成部132が選択した整数iについて、第一生成元記憶部111が記憶した群Gの生成元gと、第二秘密乱数生成工程S617で秘密乱数生成部132が生成した秘密乱数uとに基づいて、元gのu乗である群Gの元を算出して、公開乱数元Uとする。 In the public random number source calculation step S619, the public random number source calculation unit 142 uses the CPU 911 to store the group G stored in the first generation source storage unit 111 for the integer i selected by the secret random number generation unit 132 in the integer selection step S616. Based on the generator g 1 of 1 and the secret random number u i generated by the secret random number generator 132 in the second secret random number generation step S617, the element of the group G 1 that is the u i power of the element g 1 is calculated. The public random number source U i .

整数繰り返し工程S620において、秘密乱数生成部132は、1以上n以下のすべての整数を、整数選択工程S616で選択したか否かを判定する。まだ選択していない整数があると判定した場合、秘密乱数生成部132は、整数選択工程S616に戻り、次の整数を選択する。すべての整数を選択したと判定した場合、設定装置100は、設定処理S610を終了する。   In the integer repetition step S620, the secret random number generation unit 132 determines whether all integers greater than or equal to 1 and less than n have been selected in the integer selection step S616. If it is determined that there is an integer that has not yet been selected, the secret random number generation unit 132 returns to the integer selection step S616 and selects the next integer. If it is determined that all the integers have been selected, the setting apparatus 100 ends the setting process S610.

図10は、この実施の形態における索引暗号化処理S630の流れの一例を示すフローチャート図である。
索引暗号化処理S630において、索引暗号化装置200は、暗号化した索引を生成する。索引暗号化処理S630は、索引乱数生成工程S631、判定元算出工程S633、整数選択工程S635、索引整数算出工程S636、索引元算出工程S637、整数繰り返し工程S638を有する。
FIG. 10 is a flowchart showing an example of the flow of the index encryption processing S630 in this embodiment.
In the index encryption process S630, the index encryption apparatus 200 generates an encrypted index. The index encryption processing S630 includes an index random number generation step S631, a determination source calculation step S633, an integer selection step S635, an index integer calculation step S636, an index source calculation step S637, and an integer repetition step S638.

索引乱数生成工程S631において、索引乱数生成部230は、CPU911を用いて、1以上p未満の整数をランダムに生成して、索引乱数sとする。   In the index random number generation step S631, the index random number generation unit 230 uses the CPU 911 to randomly generate an integer greater than or equal to 1 and less than p to obtain an index random number s.

判定元算出工程S633において、累乗部242は、CPU911を用いて、公開元記憶部216が記憶した公開元Yと、索引乱数生成工程S631で索引乱数生成部230が生成した索引乱数sとに基づいて、元Yのs乗である群Gの元Yを算出して、判定元E’とする。 In the determination source calculation step S633, the power unit 242 uses the CPU 911 based on the disclosure source Y stored in the disclosure source storage unit 216 and the index random number s generated by the index random number generation unit 230 in the index random number generation step S631. Te, and calculates an element Y s of the group G 3 be a power s of the original Y, and determines based on E '.

整数選択工程S635において、索引変換部223は、CPU911を用いて、1以上n以下のn個の整数のなかから、整数を1つずつ順に選択して、整数iとする。   In the integer selection step S635, the index conversion unit 223 uses the CPU 911 to select integers one by one from n integers of 1 to n in order to obtain an integer i.

索引整数算出工程S636において、索引変換部223は、CPU911を用いて、整数選択工程S635で選択した整数iについて、写像Hにより、索引入力部221が入力した索引文字列wを写像した整数を算出して、索引整数hとする。 In the index integer calculation step S636, the index conversion unit 223 uses the CPU 911 to calculate an integer obtained by mapping the index character string w i input by the index input unit 221 using the mapping H for the integer i selected in the integer selection step S635. calculated and, to an index integer h i.

索引元算出工程S637において、指数算出部251は、CPU911を用いて、索引乱数生成工程S631で索引乱数生成部230が生成した索引乱数sと、索引整数算出工程S636で索引変換部223が算出した索引整数hとの積(s・h)を算出する。
累乗部253は、CPU911を用いて、整数選択工程S635で索引変換部223が選択した整数iについて、公開乱数元記憶部217が記憶した公開乱数元Uと、指数算出部251が算出した積(s・h)とに基づいて、元Uの(s・h)乗である群Gの元を算出して、索引元Eとする。
In the index source calculation step S637, the index calculation unit 251 uses the CPU 911 to calculate the index random number s generated by the index random number generation unit 230 in the index random number generation step S631 and the index conversion unit 223 in the index integer calculation step S636. The product (s · h i ) with the index integer h i is calculated.
The power unit 253 uses the CPU 911 to calculate the public random number source U i stored in the public random number source storage unit 217 and the product calculated by the exponent calculation unit 251 for the integer i selected by the index conversion unit 223 in the integer selection step S635. based on (s · h i) and calculates the original U i of (s · h i) th power in which the original group G 1, and an index based on E i.

整数繰り返し工程S638において、索引変換部223は、CPU911を用いて、1以上n以下のすべての整数を、整数選択工程S635で選択したか否かを判定する。まだ選択していない整数があると判定した場合、索引変換部223は、整数選択工程S635に戻り、次の整数を選択する。すべての整数を選択したと判定した場合、索引暗号化装置200は、索引暗号化処理S630を終了する。   In the integer repetition step S638, the index conversion unit 223 uses the CPU 911 to determine whether all integers of 1 or more and n or less have been selected in the integer selection step S635. If it is determined that there is an integer that has not yet been selected, the index conversion unit 223 returns to the integer selection step S635 and selects the next integer. If it is determined that all the integers have been selected, the index encryption apparatus 200 ends the index encryption process S630.

図11は、この実施の形態における検索暗号化処理S650の流れの一例を示すフローチャート図である。
検索暗号化処理S650において、検索暗号化装置300は、暗号化した検索文を生成する。検索暗号化処理S650は、次数選択工程S651、多項式係数生成工程S652、次数繰り返し工程S653、最高次係数生成工程S654、整数選択工程S655、検索整数算出工程S656、多項式値算出工程S657、検索元算出工程S659、整数繰り返し工程S661を有する。
FIG. 11 is a flowchart showing an example of the flow of the search encryption process S650 in this embodiment.
In the search encryption process S650, the search encryption apparatus 300 generates an encrypted search sentence. The search encryption processing S650 includes an order selection step S651, a polynomial coefficient generation step S652, an order repetition step S653, a highest order coefficient generation step S654, an integer selection step S655, a search integer calculation step S656, a polynomial value calculation step S657, and a search source calculation. Step S659 has an integer repeating step S661.

次数選択工程S651において、多項式係数生成部342は、CPU911を用いて、1以上(d−2)以下の(d−2)個の整数のなかから、整数を1つずつ順に選択して、整数jとする。   In the order selection step S651, the polynomial coefficient generation unit 342 uses the CPU 911 to sequentially select integers one by one from (d-2) integers of 1 to (d-2). j.

多項式係数生成工程S652において、多項式係数生成部342は、CPU911を用いて、次数選択工程S651で選択した整数jについて、0以上p未満の整数をランダムに選択して、多項式係数aとする。 In the polynomial coefficient generation step S652, the polynomial coefficient generation unit 342 uses the CPU 911 to randomly select an integer of 0 or more and less than p for the integer j selected in the order selection step S651 to obtain a polynomial coefficient a j .

次数繰り返し工程S653において、多項式係数生成部342は、CPU911を用いて、1以上(d−2)以下のすべての整数を、次数選択工程S651で選択したか否かを判定する。まだ選択していない整数があると判定した場合、多項式係数生成部342は、次数選択工程S651に戻り、次の整数を選択する。すべての整数を選択したと判定した場合、検索暗号化装置300は、最高次係数生成工程S654へ進む。   In the order repetition step S653, the polynomial coefficient generation unit 342 uses the CPU 911 to determine whether all integers greater than or equal to 1 and less than (d−2) are selected in the order selection step S651. When it is determined that there is an integer that has not yet been selected, the polynomial coefficient generation unit 342 returns to the order selection step S651 and selects the next integer. If it is determined that all the integers have been selected, the search encryption apparatus 300 proceeds to the highest order coefficient generation step S654.

最高次係数生成工程S654において、多項式係数生成部342は、CPU911を用いて、整数(d−1)について、1以上p未満の整数をランダムに選択し、多項式係数ad−1とする。 In the highest-order coefficient generation step S654, the polynomial coefficient generation unit 342 uses the CPU 911 to randomly select an integer that is greater than or equal to 1 and less than p for the integer (d−1) and sets it as the polynomial coefficient a d−1 .

整数選択工程S655において、検索変換部352は、CPU911を用いて、1以上n以下のn個の整数のなかから、整数を1つずつ順に選択して、整数iとする。   In the integer selection step S655, the search conversion unit 352 uses the CPU 911 to select integers one by one from n integers of 1 to n in order to obtain an integer i.

検索整数算出工程S656において、検索変換部352は、CPU911を用いて、整数選択工程S655で選択した整数iについて、写像Hにより、検索入力部332が入力した検索文字列ωを写像した整数を算出して、検索整数ηとする。 In the search integer calculation step S656, the search conversion unit 352 uses the CPU 911 to calculate an integer obtained by mapping the search character string ω i input by the search input unit 332 using the mapping H for the integer i selected in the integer selection step S655. Calculated as a search integer η i .

多項式値算出工程S657において、多項式値算出部344は、CPU911を用いて、秘密整数記憶部321が記憶した秘密整数yと、多項式係数生成工程S652で多項式係数生成部342が生成した(d−2)個の多項式係数aと、最高次係数生成工程S654で多項式係数生成部342が生成した多項式係数ad−1とに基づいて、多項式係数aをj次の項の係数とし、秘密整数yを定数項の係数とする一変数多項式f(x)に、整数選択工程S655で検索変換部352が選択した整数iを代入した値を算出して、多項式値f(i)とする。 In the polynomial value calculation step S657, the polynomial value calculation unit 344 uses the CPU 911 to generate the secret integer y stored in the secret integer storage unit 321 and the polynomial coefficient generation unit 342 in the polynomial coefficient generation step S652 (d-2). ) and number of polynomial coefficients a j, the polynomial coefficient generator 342 in the highest order coefficient generation step S654 is based on the polynomial coefficients a d-1 was generated, the polynomial coefficients a j and a coefficient of j-th order term, secret integer A value obtained by substituting the integer i selected by the search conversion unit 352 in the integer selection step S655 into the univariate polynomial f (x) having y as a constant term coefficient is calculated as a polynomial value f (i).

検索元算出工程S659において、指数算出部361は、CPU911を用いて、整数選択工程S655で検索変換部352が選択した整数iについて、秘密乱数記憶部323が記憶した秘密乱数uと、検索整数算出工程S656で検索変換部352が算出した検索整数ηと、多項式値算出工程S657で多項式値算出部344が算出した多項式値f(i)とに基づいて、秘密乱数uと検索整数ηとの積(u・η)で、多項式値f(i)を割った商[f(i)/(u・η)]を算出する。
累乗部366は、CPU911を用いて、整数選択工程S655で検索変換部352が選択した整数iについて、第二生成元記憶部312が記憶した群Gの生成元gと、指数算出部361が算出した商[f(i)/(u・η)]とに基づいて、元gの[f(i)/(u・η)]乗である群Gの元を算出して、検索元Tとする。
In the search source calculation step S659, the index calculation unit 361 uses the CPU 911 to store the secret random number u i stored in the secret random number storage unit 323 and the search integer for the integer i selected by the search conversion unit 352 in the integer selection step S655. Based on the search integer η i calculated by the search conversion unit 352 in the calculation step S656 and the polynomial value f (i) calculated by the polynomial value calculation unit 344 in the polynomial value calculation step S657, the secret random number u i and the search integer η The quotient [f (i) / (u i · η i )] obtained by dividing the polynomial value f (i) by the product (u i · η i ) with i is calculated.
The power unit 366 uses the CPU 911 to generate the generation source g 2 of the group G 2 stored in the second generation storage unit 312 and the exponent calculation unit 361 for the integer i selected by the search conversion unit 352 in the integer selection step S655. There based on the calculated quotient [f (i) / (u i · η i)], the original g 2 a [f (i) / (u i · η i)] th power at which the original group G 2 calculated and, as a search based on T i.

整数繰り返し工程S661において、検索変換部352は、CPU911を用いて、1以上n以下のすべての整数を、整数選択工程S655で選択したか否かを判定する。まだ選択していない整数があると判定した場合、検索変換部352は、整数選択工程S655に戻り、次の整数を選択する。すべての整数を選択したと判定した場合、検索暗号化装置300は、検索暗号化処理S650を終了する。   In the integer repetition step S661, the search conversion unit 352 uses the CPU 911 to determine whether all integers greater than or equal to 1 and less than n have been selected in the integer selection step S655. If it is determined that there is an integer that has not yet been selected, the search conversion unit 352 returns to the integer selection step S655 and selects the next integer. If it is determined that all the integers have been selected, the search encryption device 300 ends the search encryption processing S650.

図12は、この実施の形態における検索実行処理S670の流れの一例を示すフローチャート図である。
検索実行処理S670において、検索装置400は、検索を実行する。検索実行処理S670は、索引選択工程S671、整数選択工程S672、ペアリング値算出工程S673、整数繰り返し工程S674、判定選択工程S675、判定整数選択工程S676、補間係数値算出工程S677、累乗工程S678、判定整数繰り返し工程S679、総積工程S680、判定工程S681、判定繰り返し工程S682、索引繰り返し工程S683を有する。
FIG. 12 is a flowchart showing an example of the flow of search execution processing S670 in this embodiment.
In the search execution process S670, the search device 400 executes a search. Search execution processing S670 includes index selection step S671, integer selection step S672, pairing value calculation step S673, integer repetition step S674, determination selection step S675, determination integer selection step S676, interpolation coefficient value calculation step S677, power step S678, It has determination integer repetition process S679, total product process S680, determination process S681, determination repetition process S682, and index repetition process S683.

索引選択工程S671において、ペアリング値算出部451は、CPU911を用いて、暗号化索引記憶部420が記憶した暗号化索引データのなかから、暗号化索引データを1つずつ順に選択する。   In the index selection step S671, the pairing value calculation unit 451 uses the CPU 911 to sequentially select the encrypted index data one by one from the encrypted index data stored in the encrypted index storage unit 420.

整数選択工程S672において、ペアリング値算出部451は、CPU911を用いて、1以上n以下のn個の整数のなかから、整数を1つずつ順に選択して、整数iとする。   In the integer selection step S672, the pairing value calculation unit 451 uses the CPU 911 to select integers one by one from n integers of 1 to n in order to obtain an integer i.

ペアリング値算出工程S673において、ペアリング値算出部451は、CPU911を用いて、索引選択工程S671で選択した暗号化索引データについて索引元記憶部421が記憶した索引元Eと、整数選択工程S672で選択した整数iについて検索元記憶部432が記憶した検索元Tとに基づいて、ペアリング写像eにより、索引元Eと検索元Tとの組を写像した群Gの元を算出して、ペアリング値eとする。 In the pairing value calculation step S673, the pairing value calculation unit 451 uses the CPU 911 to store the index source E i stored in the index source storage unit 421 for the encrypted index data selected in the index selection step S671, and the integer selection step. Based on the search source T i stored in the search source storage unit 432 for the integer i selected in S672, the element of the group G 3 in which the pair of the index source E i and the search source T i is mapped by the pairing map e Is calculated as a pairing value e i .

整数繰り返し工程S674において、ペアリング値算出部451は、CPU911を用いて、1以上n以下のすべての整数を、整数選択工程S672で選択したか否かを判定する。まだ選択していない整数があると判定した場合、ペアリング値算出部451は、整数選択工程S672に戻り、次の整数を選択する。すべての整数を選択したと判定した場合、検索装置400は、判定選択工程S675へ進む。   In the integer repetition step S674, the pairing value calculation unit 451 uses the CPU 911 to determine whether all integers of 1 or more and n or less have been selected in the integer selection step S672. If it is determined that there is an integer that has not yet been selected, the pairing value calculation unit 451 returns to the integer selection step S672 and selects the next integer. If it is determined that all the integers have been selected, the search device 400 proceeds to the determination selection step S675.

判定選択工程S675において、判定対象選択部441は、CPU911を用いて、閾値記憶部431が記憶した閾値dに基づいて、1以上n以下のn個の整数のなかからd個の整数を選択する組み合わせのなかから、組み合わせを1つずつ順に選択して、集合Sとする。   In the determination selection step S675, the determination target selection unit 441 uses the CPU 911 to select d integers from n integers of 1 to n based on the threshold value d stored in the threshold storage unit 431. From the combinations, combinations are selected one by one in order, and set S is obtained.

判定整数選択工程S676において、補間係数値算出部442は、CPU911を用いて、判定選択工程S675で判定対象選択部441が選択した集合Sに含まれる整数のなかから、整数を1つずつ順に選択して、整数iとする。   In the determination integer selection step S676, the interpolation coefficient value calculation unit 442 uses the CPU 911 to sequentially select integers one by one from the integers included in the set S selected by the determination target selection unit 441 in the determination selection step S675. And an integer i.

補間係数値算出工程S677において、補間係数値算出部442は、CPU911を用いて、判定整数選択工程S676で選択した整数iについて、補間係数値Δi,Sを算出する。 In the interpolation coefficient value calculation step S677, the interpolation coefficient value calculation unit 442 uses the CPU 911 to calculate the interpolation coefficient values Δ i, S for the integer i selected in the determination integer selection step S676.

累乗工程S678において、累乗部455は、CPU911を用いて、判定整数選択工程S676で補間係数値算出部442が選択した整数iについて、ペアリング値算出工程S673でペアリング値算出部451が算出したペアリング値eと、補間係数値算出工程S677で補間係数値算出部442が算出した補間係数値Δi,Sとに基づいて、ペアリング値eのΔi,S乗である群Gの元を算出して、写像元e’とする。 In the power step S678, the power unit 455 uses the CPU 911 to calculate the integer i selected by the interpolation coefficient value calculation unit 442 in the determination integer selection step S676 and calculated by the pairing value calculation unit 451 in the pairing value calculation step S673. Based on the pairing value e i and the interpolation coefficient value Δ i, S calculated by the interpolation coefficient value calculation unit 442 in the interpolation coefficient value calculation step S677, the group G is the Δ i, S power of the pairing value e i. The element of 3 is calculated and set as a mapping element e ′ i .

判定整数繰り返し工程S679において、補間係数値算出部442は、CPU911を用いて、集合Sに含まれるすべての整数を、判定整数選択工程S676で選択したか否かを判定する。まだ選択していない整数があると判定した場合、補間係数値算出部442は、判定整数選択工程S676に戻り、次の整数を選択する。すべての整数を選択したと判定した場合、検索装置400は、総積工程S680へ進む。   In the determination integer repetition step S679, the interpolation coefficient value calculation unit 442 uses the CPU 911 to determine whether all the integers included in the set S have been selected in the determination integer selection step S676. If it is determined that there is an integer that has not yet been selected, the interpolation coefficient value calculation unit 442 returns to the determination integer selection step S676 and selects the next integer. If it is determined that all the integers have been selected, the search device 400 proceeds to the total product step S680.

総積工程S680において、総積部461は、CPU911を用いて、累乗工程S678で算出したd個の写像元e’の総積を算出して、比較元Bとする。 In the total product step S680, the total product unit 461 uses the CPU 911 to calculate the total product of the d mapping sources e ′ i calculated in the power step S678, and sets it as the comparison source B.

判定工程S681において、判定部470は、CPU911を用いて、索引選択工程S671でペアリング値算出部451が選択した索引について判定元記憶部422が記憶した判定元E’と、総積工程S680で総積部461が算出した比較元Bとを比較して、等しいか否かを判定する。等しいと判定した場合、判定部470は、CPU911を用いて、索引選択工程S671でペアリング値算出部451が選択した索引が、検索条件に合致したと判定して、索引繰り返し工程S683へ進む。等しくないと判定した場合、検索装置400は、判定繰り返し工程S682へ進む。   In the determination step S681, the determination unit 470 uses the CPU 911, the determination source E ′ stored in the determination source storage unit 422 for the index selected by the pairing value calculation unit 451 in the index selection step S671, and the total product step S680. The comparison unit B calculated by the total product unit 461 is compared to determine whether or not they are equal. If it is determined that they are equal, the determination unit 470 uses the CPU 911 to determine that the index selected by the pairing value calculation unit 451 in the index selection step S671 matches the search condition, and proceeds to the index repetition step S683. If it is determined that they are not equal, the search device 400 proceeds to the determination repetition step S682.

判定繰り返し工程S682において、判定対象選択部441は、CPU911を用いて、1以上n以下のn個の整数のなかからd個の整数を選択するすべての組み合わせを、判定選択工程S675で選択したか否かを判定する。まだ選択していない組み合わせがあると判定した場合、判定対象選択部441は、判定選択工程S675に戻り、次の組み合わせを選択する。すべての組み合わせを選択したと判定した場合、判定部470は、索引選択工程S671でペアリング値算出部451が選択した索引が、検索条件に合致しないと判定して、索引繰り返し工程S683へ進む。   In the determination repetition step S682, the determination target selection unit 441 uses the CPU 911 to select, in the determination selection step S675, all combinations that select d integers from n integers of 1 to n. Determine whether or not. When it is determined that there is a combination that has not yet been selected, the determination target selection unit 441 returns to the determination selection step S675 and selects the next combination. If it is determined that all combinations have been selected, the determination unit 470 determines that the index selected by the pairing value calculation unit 451 in the index selection step S671 does not match the search condition, and proceeds to the index repetition step S683.

索引繰り返し工程S683において、判定部470は、CPU911を用いて、判定工程S681あるいは判定繰り返し工程S682で判定した判定結果を出力する。ペアリング値算出部451は、CPU911を用いて、暗号化索引記憶部420が記憶したすべての暗号化索引データを、索引選択工程S671で選択したか否かを判定する。まだ選択していない暗号化索引データがあると判定した場合、ペアリング値算出部451は、索引選択工程S671に戻り、次の暗号化索引データを選択する。すべての暗号化索引データを選択したと判定した場合、検索装置400は、検索実行処理S670を終了する。   In the index repetition step S683, the determination unit 470 uses the CPU 911 to output the determination result determined in the determination step S681 or the determination repetition step S682. Using the CPU 911, the pairing value calculation unit 451 determines whether or not all the encrypted index data stored in the encrypted index storage unit 420 has been selected in the index selection step S671. If it is determined that there is encrypted index data that has not yet been selected, the pairing value calculation unit 451 returns to the index selection step S671 and selects the next encrypted index data. If it is determined that all the encrypted index data have been selected, the search device 400 ends the search execution process S670.

上述したように、判定選択工程S675で判定対象選択部441が選択した集合Sに含まれるd個の整数すべてについて、索引整数hと検索整数ηとが一致する場合のみ、比較元Bと判定元E’とが等しくなるので、その索引に含まれるn個の索引文字列wのうちd個以上の索引文字列wが、検索暗号化装置300が指定した検索文字列ωと一致する場合に、判定部470は、検索条件に合致したと判定する。
このとき、検索装置400は、索引文字列wと検索文字列ωとが一致するd個の整数iを知ることができる。上述した検索実行処理S670では、判定工程S681で比較元Bと判定元E’とが一致した場合、1以上n以下のn個の整数のなかからd個の整数を選択するすべての組み合わせについて判定することをしないので、集合Sに含まれるd個の整数i以外の(n−d)個の整数については、索引文字列wと検索文字列ωとが一致するか否かは明らかにならないが、判定工程S681で比較元Bと判定元E’とが一致した場合でも処理を続行し、1以上n以下のn個の整数のなかからd個の整数を選択するすべての組み合わせについて比較元Bと判定元E’とが判定するか否かを判定する構成とすれば、検索装置400は、1以上n以下のn個の整数すべてについて、索引文字列wと検索文字列ωとが一致するか否かを知ることができる。すなわち、索引文字列wと検索文字列ωとがd個以上一致する場合には、どのデータが一致するかを知ることができる。
As described above, for all the d integers included in the set S selected by the determination target selection unit 441 in the determination selection step S675, only when the index integer h i matches the search integer η i , Since the determination source E ′ is equal, d or more index character strings w i out of the n index character strings w i included in the index are the search character strings ω i designated by the search encryption device 300. If they match, the determination unit 470 determines that the search condition is met.
At this time, the search device 400 can know d integers i in which the index character string w i matches the search character string ω i . In the search execution processing S670 described above, when the comparison source B and the determination source E ′ match in the determination step S681, determination is made for all combinations in which d integers are selected from n integers of 1 to n. Since (n−d) integers other than the d integers i included in the set S are clearly not determined whether or not the index character string w i matches the search character string ω i. However, even if the comparison source B and the determination source E ′ match in the determination step S681, the processing is continued, and comparison is made for all combinations in which d integers are selected from n integers of 1 to n. If it is configured to determine whether or not the element B and the determination source E ′ determine, the search apparatus 400 uses the index character string w i and the search character string ω i for all n integers of 1 to n. You can know whether or not That is, when d or more index character strings w i and search character strings ω i match, it is possible to know which data matches.

しかし、暗号化索引記憶部420が記憶した索引元Eや判定元E’、暗号化検索記憶部430が記憶した検索元Tなどから、索引整数hや検索整数ηを知ることはできないので、たとえ写像Hの逆写像H−1を知っていたとしても、一致した索引文字列wや検索文字列ωを知ることはできない。 However, it is possible to know the index integer h i and the search integer η i from the index source E i and the determination source E ′ stored in the encrypted index storage unit 420, the search source T i stored in the encrypted search storage unit 430, and the like. Therefore, even if the reverse map H −1 of the map H is known, the matched index character string w i and the search character string ω i cannot be known.

また、1以上n以下のn個の整数のうちd個未満の整数について、索引文字列wと検索文字列ωとが一致し、それ以外は一致しない場合、1以上n以下のn個の整数のなかからd個の整数を選択するすべての組み合わせについて、比較元Bは、判定元E’と不一致となる。したがって、どのデータが一致するかを知ることはできない。 In addition, for n integers less than d among n integers greater than or equal to 1 and less than or equal to n, if the index character string w i matches the search character string ω i and the others do not match, n equal to or greater than 1 and less than n The comparison source B does not match the determination source E ′ for all combinations that select d integers from the integers. Therefore, it is not possible to know which data matches.

索引元Eには、索引文字列wによって定まる索引整数hの要素のほかに、索引ごとに異なるランダムな索引乱数sの要素が含まれている。したがって、ある索引の索引文字列wと別の索引の索引文字列wとが同じであったとしても、索引元Eは索引ごとに異なり、索引文字列wが同じか否かについての情報を隠蔽している。 In addition to the elements of the index integer h i determined by the index character string w i , the index element E i includes elements of random index random numbers s that differ for each index. Therefore, even if the index string w i of the index string w i and another index of a index was the same, the index based on E i is different for each index, whether the index string w i are the same The information is hidden.

ある索引文字列wが、ある検索条件における検索文字列ωと一致することがわかると、ある索引における索引文字列wと、他の索引における索引文字列wとが同じか否かを知ることができる。これは、索引文字列wを解読する手がかりになる可能性がある。様々な検索条件による検索を何回も繰り返すことにより手がかりが増えていくと、やがて、索引文字列w、ひいてはデータ本体を解読される可能性がある。
このため、ある索引文字列wが、ある検索条件における検索文字列ωと一致するか否かに関する情報は、できる限り知られないようにしたほうがよい。
Some index string w i is, there is and it can be seen that match the search string ω i in the search conditions, and the index string w i in a certain index, whether the index string or w i and is the same in other index Can know. This can be a clue to deciphering the index string w i . If clues increase by repeating the search with various search conditions many times, the index character string w i and eventually the data body may be decoded.
For this reason, it is preferable that information regarding whether or not a certain index character string w i matches a search character string ω i in a certain search condition is not known as much as possible.

この実施の形態における検索システム800は、1以上n以下のn個の整数のうちd個未満の整数について、索引文字列wと検索文字列ωとが一致し、それ以外は一致しない場合、どの索引文字列wと検索文字列ωとが一致したかについての情報を秘匿できる。このため、索引文字列wを解読する手がかりの漏洩を最小限に抑えることができる。 In the search system 800 according to this embodiment, the index character string w i matches the search character string ω i for n integers less than d out of n integers greater than or equal to 1 and less than or equal to n. , Information about which index character string w i matches the search character string ω i can be concealed. For this reason, it is possible to minimize the clue of leakage to decipher the index string w i.

この実施の形態における検索システム800は、索引暗号化装置200と、検索暗号化装置300と、検索装置400とを有する。
上記索引暗号化装置200は、データを記憶する記憶装置(磁気ディスク装置920)と、データを処理する処理装置(CPU911)と、索引記憶部(索引整数記憶部224)と、索引暗号化部(索引元算出部250)とを有する。
上記索引記憶部は、上記記憶装置を用いて、1以上n以下のn個の整数(nは1以上の整数。)に対応するn個の索引データ(索引整数h)を記憶する。
上記索引暗号化部は、上記処理装置を用いて、1以上n以下のn個の整数それぞれについて、上記索引記憶部が記憶した索引データを暗号化して、n個の暗号化索引データ(索引元E)とする。
上記検索暗号化装置300は、データを記憶する記憶装置(磁気ディスク装置920)と、データを処理する処理装置(CPU911)と、検索記憶部(検索整数記憶部353)と、多項式値算出部344と、検索暗号化部(検索元算出部360)とを有する。
上記検索記憶部は、上記記憶装置を用いて、1以上n以下のn個の整数に対応するn個の検索データ(検索整数η)を記憶する。
上記多項式値算出部344は、上記処理装置を用いて、1以上n以下のn個の整数それぞれについて、(d−1)次の一変数多項式f(x)(dは1以上n以下の整数。)に上記整数を代入した値を算出して、n個の多項式値f(i)とする。
上記検索暗号化部は、上記処理装置を用いて、1以上n以下のn個の整数それぞれについて、上記検索記憶部が記憶した検索データと、上記多項式値算出部344が算出した多項式値f(i)との組を暗号化して、n個の暗号化検索データ(検索元T)とする。
上記検索装置400は、データを処理する処理装置(CPU911)と、データを記憶する記憶装置(磁気ディスク装置920)と、暗号化索引記憶部420と、暗号化検索記憶部430と、判定対象選択部441と、補間係数値算出部442と、写像算出部(写像元算出部450)と、比較算出部(比較元算出部460)と、判定部470とを有する。
上記暗号化索引記憶部420は、上記記憶装置を用いて、上記索引暗号化装置200が暗号化したn個の暗号化索引データ(索引元E)を記憶する。
上記暗号化検索記憶部430は、上記記憶装置を用いて、上記検索暗号化装置300が暗号化したn個の暗号化検索データ(検索元T)を記憶する。
上記判定対象選択部441は、上記処理装置を用いて、1以上n以下のn個の整数のなかからd個の整数を選択して、d個の判定対象整数とする。
上記補間係数値算出部442は、上記処理装置を用いて、上記判定対象選択部441が選択したd個の判定対象整数に基づいて、ラグランジュの補間係数の値を算出して、d個の補間係数値Δi,Sとする。
上記写像算出部は、上記処理装置を用いて、上記判定対象選択部441が選択したd個の判定対象整数それぞれについて、上記暗号化索引記憶部420が記憶した暗号化索引データと、上記暗号化検索記憶部430が記憶した暗号化検索データと、上記補間係数値算出部442が算出した補間係数値との組を写像して、d個の写像データ(写像元e’)とする。
上記比較算出部は、上記処理装置を用いて、上記写像算出部が写像したd個の写像データに基づいて、比較データ(比較元B)を算出する。
上記判定部470は、上記処理装置を用いて、上記比較算出部が算出した比較データに基づいて、上記判定対象選択部441が選択したd個の判定対象整数について、上記索引データと、上記検索データとが一致するか否かを判定する。
The search system 800 in this embodiment includes an index encryption device 200, a search encryption device 300, and a search device 400.
The index encryption device 200 includes a storage device (magnetic disk device 920) for storing data, a processing device (CPU 911) for processing data, an index storage unit (index integer storage unit 224), and an index encryption unit ( Index source calculation unit 250).
The index storage unit stores n index data (index integer h i ) corresponding to n integers (n is an integer of 1 or more) using the storage device.
The index encryption unit encrypts the index data stored in the index storage unit for each of n integers of 1 to n using the processing device, so that n encrypted index data (index source E i ).
The search encryption device 300 includes a storage device (magnetic disk device 920) for storing data, a processing device (CPU 911) for processing data, a search storage unit (search integer storage unit 353), and a polynomial value calculation unit 344. And a search encryption unit (search source calculation unit 360).
The search storage unit stores n search data (search integer η i ) corresponding to n integers of 1 to n using the storage device.
The polynomial value calculation unit 344 uses the processing device to calculate (d−1) -order univariate polynomial f (x) (d is an integer of 1 to n) for each of n integers of 1 to n. .)), The value obtained by substituting the integer is calculated as n polynomial values f (i).
The search encryption unit uses the processing device to store the search data stored in the search storage unit and the polynomial value f ( The pair with i) is encrypted to obtain n encrypted search data (search source T i ).
The search device 400 includes a processing device (CPU 911) that processes data, a storage device (magnetic disk device 920) that stores data, an encrypted index storage unit 420, an encrypted search storage unit 430, and a determination target selection. Unit 441, interpolation coefficient value calculation unit 442, mapping calculation unit (mapping source calculation unit 450), comparison calculation unit (comparison source calculation unit 460), and determination unit 470.
The encrypted index storage unit 420 stores n pieces of encrypted index data (index source E i ) encrypted by the index encryption apparatus 200 using the storage device.
The encrypted search storage unit 430 stores n pieces of encrypted search data (search source T i ) encrypted by the search encryption device 300 using the storage device.
The determination target selection unit 441 uses the processing device to select d integers from n integers equal to or greater than 1 and equal to or less than n to obtain d determination target integers.
The interpolation coefficient value calculation unit 442 calculates the value of the Lagrange interpolation coefficient based on the d determination target integers selected by the determination target selection unit 441 using the processing device, and calculates d interpolations. The coefficient value is Δ i, S.
The mapping calculation unit uses the processing apparatus to store the encrypted index data stored in the encrypted index storage unit 420 for each of the d determination target integers selected by the determination target selection unit 441, and the encryption A set of the encrypted search data stored in the search storage unit 430 and the interpolation coefficient value calculated by the interpolation coefficient value calculation unit 442 is mapped to obtain d mapping data (mapping source e ′ i ).
The comparison calculation unit calculates comparison data (comparison source B) based on the d pieces of mapping data mapped by the mapping calculation unit using the processing device.
The determination unit 470 uses the processing device to calculate the index data and the search for the d determination target integers selected by the determination target selection unit 441 based on the comparison data calculated by the comparison calculation unit. It is determined whether or not the data matches.

この実施の形態における検索システム800によれば、(d−1)次の一変数多項式f(x)の値f(i)を用いて、検索データを暗号化し、ラグランジュの補間係数の値Δi,Sを用いて、検索を実行するので、n個のデータのうちd個以上が一致する場合に、一致することを検索装置400が判定でき、d個未満しか一致しない場合には、いずれのデータが一致したかを検索装置400が知ることができない。これにより、索引データや検索データに関する情報の漏洩を防ぐことができる。 According to the search system 800 in this embodiment, the search data is encrypted using the value f (i) of the (d−1) -order univariate polynomial f (x), and the value of the Lagrange interpolation coefficient Δ i , S is used to perform a search, so that when d or more of n pieces of data match, the search apparatus 400 can determine that they match, and if less than d matches, The search device 400 cannot know whether the data matches. Thereby, it is possible to prevent leakage of information related to index data and search data.

この実施の形態における検索システム800において、上記補間係数値算出部442は、上記処理装置(CPU911)を用いて、上記判定対象選択部441が選択したd個の判定対象整数のうちの一つを対象整数iとし、上記判定対象選択部441が選択したd個の判定対象整数のうち上記対象整数以外の(d−1)個の判定対象整数を(d−1)個の対象外整数jとし、(d−1)個の対象外整数jそれぞれについて、上記対象外整数jから上記対象整数iを差し引いた差(j−i)で、上記対象外整数jを割った商[j/(j−i)]を算出し、算出した(d−1)個の商の総積Π[j/(j−i)]を算出して、上記対象整数iについての補間係数値Δi,Sとする。 In the search system 800 in this embodiment, the interpolation coefficient value calculation unit 442 uses the processing device (CPU 911) to calculate one of the d determination target integers selected by the determination target selection unit 441. The target integer i is set, and (d−1) determination target integers other than the target integer among the d determination target integers selected by the determination target selection unit 441 are (d−1) non-target integers j. , (D−1) for each non-target integer j, the quotient [j / (j) obtained by dividing the non-target integer j by the difference (j−i) obtained by subtracting the target integer i from the non-target integer j. −i)], and the total product Π [j / (j−i)] of the calculated (d−1) quotients is calculated, and the interpolation coefficient value Δ i, S for the target integer i To do.

この実施の形態における検索システム800によれば、未知の一変数関数について、判定対象選択部441が選択したd個の判定対象整数を代入したときの値が既知である場合におけるラグランジュの補間係数について、補間係数値算出部442が、ラグランジュの補間係数に0を代入したときの値を算出して補間係数値Δi,Sとするので、判定対象選択部441が選択したd個の判定対象整数について、索引データと検索データとが一致する場合に、比較元Bが、一変数多項式f(x)に0を代入したときの値f(0)に対応する値となる。検索装置400は、これを利用することにより、判定対象選択部441が選択したd個の判定対象整数について、索引データと検索データとが一致するか否かを判定する。 According to the search system 800 in this embodiment, the Lagrange interpolation coefficient in the case where the value obtained by substituting the d determination target integers selected by the determination target selection unit 441 for the unknown variable function is known. Since the interpolation coefficient value calculation unit 442 calculates a value when 0 is substituted for the Lagrange interpolation coefficient to obtain the interpolation coefficient value Δ i, S , the d determination target integers selected by the determination target selection unit 441 When the index data matches the search data, the comparison source B becomes a value corresponding to the value f (0) when 0 is substituted into the univariate polynomial f (x). By using this, the search device 400 determines whether or not the index data and the search data match for the d determination target integers selected by the determination target selection unit 441.

この実施の形態における検索システム800において、上記多項式値算出部344は、上記処理装置(CPU911)を用いて、所定の秘密整数yを上記一変数多項式f(x)の定数項として、上記多項式値f(i)を算出する。
上記索引暗号化部(判定元算出部240)は、上記秘密整数yを暗号化したデータ(公開元Y)に基づいて、上記索引データを暗号化する。
In the search system 800 in this embodiment, the polynomial value calculation unit 344 uses the processing device (CPU 911) to set the predetermined polynomial integer y as a constant term of the univariate polynomial f (x) and the polynomial value. f (i) is calculated.
The index encryption unit (determination source calculation unit 240) encrypts the index data based on the data (public source Y) obtained by encrypting the secret integer y.

この実施の形態における検索システム800によれば、検索暗号化装置300は、秘密変数yを(d−1)次の一変数多項式f(x)の定数項とすることにより、秘密整数yについての情報をn個の多項式値f(i)に分散して埋め込む。このため、n個の多項式値f(i)のうちd個以上を知ることができれば、秘密整数yを求めることができる。検索装置400は、秘密整数yを直接求めることはしないが、判定対象選択部441が選択したd個の判定対象整数について、索引データと検索データとが一致する場合に、d個の多項式値f(i)に対応する暗号化されたデータから、秘密整数yに対応する暗号化されたデータを求めることができる。検索装置400は、これを利用することにより、判定対象選択部441が選択したd個の判定対象整数について、索引データと検索データとが一致するか否かを判定する。   According to the search system 800 in this embodiment, the search encryption device 300 uses the secret variable y as a constant term of the (d−1) -degree univariate polynomial f (x), so that the secret integer y Information is embedded in n polynomial values f (i). Therefore, if d or more of n polynomial values f (i) can be known, the secret integer y can be obtained. The search device 400 does not directly determine the secret integer y, but when the index data and the search data match for the d determination target integers selected by the determination target selection unit 441, the d polynomial values f The encrypted data corresponding to the secret integer y can be obtained from the encrypted data corresponding to (i). By using this, the search device 400 determines whether or not the index data and the search data match for the d determination target integers selected by the determination target selection unit 441.

この実施の形態における検索システム800は、更に、設定装置100を有する。
上記設定装置100は、秘密整数生成部131と、公開元算出部141とを有する。
上記秘密整数生成部131は、上記処理装置を用いて、1以上p未満の整数(pは素数。)をランダムに生成して、秘密整数yとする。
上記公開元算出部141は、上記処理装置を用いて、0以上p未満の整数を位数pの群の元に単射する第一の写像により、上記秘密整数生成部131が生成した秘密整数yを写像した元を算出して、公開元Yとする。
上記索引暗号化装置200は、公開元記憶部216と、索引整数記憶部224と、索引元算出部250と、判定元算出部240とを有する。
上記公開元記憶部216は、上記記憶装置を用いて、上記設定装置100が算出した公開元Yを記憶する。
上記索引整数記憶部224は、上記記憶装置を用いて、n個の1以上p未満の整数を、1以上n以下のn個の整数iそれぞれに対応する索引整数hとして記憶する。
上記索引元算出部250は、上記処理装置を用いて、1以上n以下のn個の整数iそれぞれについて、上記索引整数記憶部224が記憶した索引整数hに基づいて、0以上p未満の整数を位数pの群の元に単射する第二の写像により、上記索引整数hを写像した元を算出して、n個の索引元Eとする。
上記判定元算出部240は、上記処理装置を用いて、上記公開元記憶部216が記憶した公開元Yに基づいて、位数pの群の元を位数pの群の元に単射する第三の写像により、上記公開元Yを写像した元を算出して、判定元E’とする。
上記検索暗号化装置300は、秘密整数記憶部321と、検索整数記憶部353と、多項式係数生成部342と、検索元算出部360とを有する。
上記秘密整数記憶部321は、上記記憶装置を用いて、上記設定装置100が生成した秘密整数yを記憶する。
上記検索整数記憶部353は、上記記憶装置を用いて、n個の1以上p未満の整数を、1以上n以下のn個の整数iそれぞれに対応する検索整数ηとして記憶する。
上記多項式係数生成部342は、上記処理装置を用いて、(d−1)個の0以上p未満の整数をランダムに生成して、(d−1)個の多項式係数aとする。
上記多項式値算出部344は、上記処理装置を用いて、上記秘密整数記憶部321が記憶した秘密整数yを、上記一変数多項式f(x)の定数項とし、上記多項式係数生成部342が生成した(d−1)個の多項式係数aを、上記一変数多項式f(x)の1次から(d−1)次までの各項の係数として、上記多項式値f(i)を算出する。
上記検索元算出部360は、上記処理装置を用いて、1以上n以下のn個の整数iそれぞれについて、上記検索整数記憶部353が記憶した検索整数ηと、上記多項式値算出部344が算出した多項式値f(i)とに基づいて、1以上p未満の整数と0以上p未満の整数との組を位数pの群の元に写像する第四の写像により、上記検索整数ηと上記多項式値f(i)との組を写像した元を算出して、n個の検索元Tとする。
上記検索装置400は、索引元記憶部421と、判定元記憶部422と、検索元記憶部432と、写像元算出部450と、比較元算出部460とを有する。
上記索引元記憶部421は、上記記憶装置を用いて、上記索引暗号化装置200が算出したn個の索引元Eを記憶する。
上記判定元記憶部422は、上記記憶装置を用いて、上記索引暗号化装置200が算出した判定元E’を記憶する。
上記検索元記憶部432は、上記記憶装置を用いて、上記検索暗号化装置300が算出したn個の検索元Tを記憶する。
上記写像元算出部450は、上記処理装置を用いて、上記判定対象選択部441が選択したd個の判定対象整数iそれぞれについて、上記索引元記憶部421が記憶した索引元Eと、上記検索元記憶部432が記憶した検索元Tと、上記補間係数値算出部442が算出した補間係数値Δi,Sとに基づいて、位数pの群の元と位数pの群の元と0以上p未満の整数との組を位数pの群の元に写像する第五の写像により、上記索引元Eと上記検索元Tと上記補間係数値Δi,Sとの組を写像した元を算出して、d個の写像元e’とする。
上記比較元算出部460は、上記処理装置を用いて、上記写像元算出部450が算出したd個の写像元e’を群演算により結合した元を算出して、比較元Bとする。
上記判定部470は、上記処理装置を用いて、上記比較元算出部460が算出した比較元Bと、上記判定元記憶部422が記憶した判定元E’とが等しい場合に、上記判定対象選択部441が選択したd個の判定対象整数iについて、上記索引整数hと、上記検索整数ηとが一致すると判定する。
The search system 800 in this embodiment further includes a setting device 100.
The setting apparatus 100 includes a secret integer generation unit 131 and a public source calculation unit 141.
The secret integer generation unit 131 randomly generates an integer of 1 or more and less than p (p is a prime number) using the processing device, and sets it as a secret integer y.
The public source calculation unit 141 uses the processing device to generate a secret integer generated by the secret integer generation unit 131 by a first mapping that injects an integer of 0 or more and less than p into a group of order p. The element which mapped y is calculated and set as the publication source Y.
The index encryption apparatus 200 includes a public source storage unit 216, an index integer storage unit 224, an index source calculation unit 250, and a determination source calculation unit 240.
The publisher storage unit 216 stores the publisher Y calculated by the setting device 100 using the storage device.
The index integer storage unit 224, using the storage device, an integer less than n 1-or p, is stored as an index integer h i corresponding to each 1 to n of the n integers i.
The index element calculation unit 250, using the processing device, for each 1 to n of the n integers i, based on an index integer h i where the index integral storage unit 224 stores, from 0 to less than p An element that maps the index integer h i is calculated by a second mapping that injects the integer onto the group of the order p, and is set to n index elements E i .
The determination source calculation unit 240 uses the processing device to inject the elements of the group of order p into the elements of the group of order p based on the disclosure source Y stored in the disclosure source storage unit 216. Based on the third mapping, an element that maps the publication source Y is calculated as a determination source E ′.
The search encryption apparatus 300 includes a secret integer storage unit 321, a search integer storage unit 353, a polynomial coefficient generation unit 342, and a search source calculation unit 360.
The secret integer storage unit 321 stores the secret integer y generated by the setting device 100 using the storage device.
Using the storage device, the search integer storage unit 353 stores n integers from 1 to less than p as search integers η i corresponding to n integers from 1 to n.
The polynomial coefficient generation unit 342 randomly generates (d−1) integers of 0 or more and less than p using the processing device, and sets them as (d−1) polynomial coefficients a j .
The polynomial value calculation unit 344 uses the processing device to set the secret integer y stored in the secret integer storage unit 321 as a constant term of the univariate polynomial f (x) and generate the polynomial coefficient generation unit 342. The polynomial value f (i) is calculated using the (d−1) polynomial coefficients a j as the coefficients of the respective terms from the first order to the (d−1) th order of the univariate polynomial f (x). .
The search source calculation unit 360 uses the processing device to store the search integer η i stored in the search integer storage unit 353 and the polynomial value calculation unit 344 for each of the n integers 1 to n. Based on the calculated polynomial value f (i), a fourth mapping that maps a set of integers greater than or equal to 1 and less than p and integers greater than or equal to 0 and less than p to a group of order p is used to obtain the search integer η to calculate the i and the original that maps the set of the above polynomial solutions f (i), and n number of search source T i.
The search device 400 includes an index source storage unit 421, a determination source storage unit 422, a search source storage unit 432, a mapping source calculation unit 450, and a comparison source calculation unit 460.
The index source storage unit 421 stores n index sources E i calculated by the index encryption device 200 using the storage device.
The determination source storage unit 422 stores the determination source E ′ calculated by the index encryption device 200 using the storage device.
The search source storage unit 432 stores n search sources T i calculated by the search encryption device 300 using the storage device.
The mapping source calculation unit 450 uses the processing device to store the index source E i stored in the index source storage unit 421 for each of the d determination target integers i selected by the determination target selection unit 441, and the above Search and retrieval source T i of source storage unit 432 has stored, on the basis of the interpolation coefficient value delta i, S where the interpolation coefficient value calculation unit 442 calculates, in a group of order p source and order of the group of p By a fifth mapping that maps a set of elements and integers greater than or equal to 0 and less than p to a group of order p, the index element E i , the search source T i, and the interpolation coefficient value Δ i, S The element which mapped the set is calculated, and d mapping elements e ′ i are obtained.
The comparison element calculation unit 460 calculates an element obtained by combining the d mapping elements e ′ i calculated by the mapping element calculation unit 450 by the group operation using the processing device, and sets the comparison element B as the comparison element B.
The determination unit 470 selects the determination target when the comparison source B calculated by the comparison source calculation unit 460 and the determination source E ′ stored by the determination source storage unit 422 are equal using the processing device. For the d determination target integers i selected by the unit 441, it is determined that the index integer h i matches the search integer η i .

この実施の形態における検索システム800によれば、位数pが素数である群を用いて、暗号化処理をするので、用いることができる群や写像の種類が多く、安全性の高いシステムを構築することができる。   According to the search system 800 in this embodiment, since encryption processing is performed using a group whose order p is a prime number, there are many types of groups and mappings that can be used, and a highly secure system is constructed. can do.

ここでいうところの第一の写像をφ、第二の写像をφ、第三の写像をφ、第四の写像をφ、第五の写像をφとすると、この実施の形態で用いる写像φ〜φは、次の式で定義される。

Figure 0005274271
If the first mapping here is φ 1 , the second mapping is φ 2 , the third mapping is φ 3 , the fourth mapping is φ 4 , and the fifth mapping is φ 5 , then this implementation Maps φ 1 to φ 5 used in the form are defined by the following equations.
Figure 0005274271

すなわち、第一の写像φは、0以上p未満の整数を位数pの群Gの元へ写す写像であり、整数xを、元e(g,g)のx乗へ写す。pは素数であり、元gは群Gの単位元でなく、元gは群Gの単位元でなく、ペアリング写像eは双線形かつ非縮退なので、元e(g,g)は群Gの単位元ではない。したがって、第一の写像φは全単射であり、整数がpを法とする加法についてなす群から群Gへの同型写像である。
第二の写像φは、0以上p未満の整数を位数pの群Gの元へ写す写像であり、整数xを、元[gの(u・s)乗]のx乗へ写す。生成元gは群Gの単位元でなく、秘密乱数u及び索引乱数sは0でないので、元[gの(u・s)乗]は群Gの単位元ではない。したがって、第二の写像φは全単射であり、整数がpを法とする加法についてなす群から群Gへの同型写像である。
第三の写像φは、位数pの群Gの元を位数pの群Gの元へ写す写像であり、元Xを、元Xのs乗へ写す。索引乱数sは0でない。したがって、第三の写像φは全単射であり、群Gの自己同型写像である。
第四の写像φは、1以上p未満の整数と0以上p未満の整数との組を位数pの群Gの元へ写す写像であり、整数xと整数xとの組(x,x)を、元[gの(1/u)乗]の(x/x)乗へ写す。生成元gは群Gの単位元でないので、元[gの(1/u)乗]は群Gの単位元ではない。したがって、整数xを固定して考えると、第四の写像φは全単射であり、整数がpを法とする加法についてなす群から群Gへの同型写像である。また、整数xを固定して考えると、第四の写像φは単射であり、群Gから単位元を除いた集合に対する全単射である。
第五の写像φは、位数pの群Gの元と位数pの群Gの元と0以上p未満の整数との組を位数pの群Gの元へ写す写像であり、元Xと元Xと整数xとの組(X,X,x)を、元e(X,X)のx乗へ写す。ペアリング写像eは双線形かつ非縮退である。したがって、X,xを固定して考えると、第五の写像φは群Gから群Gへの準同型写像であり、xが0でないとき全単射である。また、X,xを固定して考えると、第五の写像φは群Gから群Gへの準同型写像であり、xが0でないとき全単射である。更に、X,Xを固定して考えると、第五の写像φは全単射であり、整数がpを法とする加法についてなす群から群Gへの同型写像である。
That is, the first mapping φ 1 is a mapping that maps an integer of 0 or more and less than p to the element of the group G 3 of order p, and maps the integer x to the power of the element e (g 1 , g 2 ). . Since p is a prime number, element g 1 is not a unit element of group G 1 , element g 2 is not a unit element of group G 2 , and pairing map e is bilinear and non-degenerate, element e (g 1 , g 2 ) is not a unit element of group G 3 . Therefore, the first map φ 1 is bijective, and is an isomorphism from the group to the group G 3 formed by addition with an integer modulo p.
The second mapping φ 2 is a mapping that maps an integer of 0 or more and less than p to an element of the group G 1 of order p, and converts the integer x to the power of the element [g 1 raised to the (u i · s) power] x Copy to. Since the generator g 1 is not a unit element of the group G 1 and the secret random number u i and the index random number s are not 0, the element [g 1 raised to the power of (u i · s)] is not a unit element of the group G 1 . Therefore, the second map φ 2 is bijective, and is an isomorphism from the group to the group G 1 formed by addition in which the integer modulo p.
Third mapping phi 3 is a mapping which maps the original group G 3 of order p to order p group G 3 of the original, the original X, copy to the original X s ride. The index random number s is not 0. Therefore, the third map φ 3 is bijective and is an automorphism map of the group G 3 .
The fourth mapping φ 4 is a mapping that maps a set of integers greater than or equal to 1 and less than p and integers greater than or equal to 0 and less than p to the group G 2 of order p, and a set of integer x 1 and integer x 2 Copy (x 1 , x 2 ) to the (x 2 / x 1 ) power of the element [g 2 raised to the (1 / u i ) power]. Since the generator g 2 is not the unit element of the group G 2 , the element [g 2 raised to the (1 / u i ) power] is not the unit element of the group G 2 . Therefore, when the integer x 1 is fixed, the fourth map φ 4 is bijective, and is an isomorphism from the group to the group G 2 formed by addition of the integer modulo p. When the integer x 2 is fixed, the fourth map φ 4 is a bijection, and a bijection to the set obtained by removing the unit element from the group G 2 .
The fifth mapping φ 5 is a mapping that maps a set of elements of group G 1 of order p, elements of group G 2 of order p, and integers greater than or equal to 0 and less than p to elements of group G 3 of order p. , and the sets of the original X 1 original X 2 and integer x 3 (X 1, X 2 , x 3), copy the x 3 cube of the original e (X 1, X 2). The pairing map e is bilinear and non-degenerate. Accordingly, when X 2 and x 3 are fixed, the fifth map φ 5 is a homomorphic map from the group G 1 to the group G 3 , and is bijective when x 3 is not 0. If X 1 and x 3 are fixed, the fifth map φ 5 is a homomorphic map from the group G 2 to the group G 3 , and is bijective when x 3 is not 0. Further, when X 1 and X 2 are fixed, the fifth map φ 5 is bijective, and is an isomorphism from the group formed by addition modulo p to the group G 3 .

上記判定元算出部240は、0以上p未満の任意の整数xについて、上記任意の整数xを上記第一の写像φにより写像した元φ(x)を、上記第三の写像φにより写像した元φ(φ(x))が、上記任意の整数xと等しい数の所定の元Zを、群演算により結合した元[Z]と等しくなる写像を、上記第三の写像φとして用いる。
上記写像元算出部450は、1以上p未満の任意の第一の整数xについて、上記任意の第一の整数xを上記第二の写像φにより写像した元φ(x)と、上記任意の第一の整数xと第二の整数xとの組を上記第四の写像φにより写像した元φ(x,x)と、第三の整数xとの組を、上記第五の写像により写像した元φ(x),φ(x,x),x)が、上記第二の整数xと上記第三の整数xとの積と等しい数の上記所定の元Zを、群演算により結合した元[Z^(x・x)]と等しくなる写像を、上記第五の写像φとして用いる。
The determination source calculation unit 240 converts, for an arbitrary integer x not less than 0 and less than p, an element φ 1 (x) obtained by mapping the arbitrary integer x by the first mapping φ 1 to the third mapping φ 3. The mapping in which the element φ 31 (x)) mapped by the above is equal to the element [Z x ] obtained by combining the predetermined number of predetermined elements Z equal to the above-mentioned arbitrary integer x by the group operation is expressed as the third used as a mapping φ 3.
The mapping element calculation unit 450, for any first integer x 1 that is greater than or equal to 1 and less than p, is an element φ 2 (x 1 ) obtained by mapping the arbitrary first integer x 1 by the second mapping φ 2. And an element φ 4 (x 1 , x 2 ) obtained by mapping the set of the arbitrary first integer x 1 and the second integer x 2 by the fourth mapping φ 4 , and a third integer x 3 And the element φ 52 (x 1 ), φ 4 (x 1 , x 2 ), x 3 ) mapped by the fifth mapping is the second integer x 2 and the third A map that is equal to the element [Z ^ (x 2 · x 3 )] obtained by combining the predetermined elements Z equal to the product of the integer x 3 with the group operation is used as the fifth map φ 5. .

この実施の形態における検索システム800によれば、判定対象選択部441が選択したd個の判定対象整数について、索引整数hと検索整数ηとが一致する場合に、比較元算出部460が算出する比較元Bと、判定元算出部240が算出する判定元E’とが一致する。検索装置400は、これを利用することにより、判定対象選択部441が選択したd個の判定対象整数について、索引整数hと検索整数ηとが一致するか否かを判定する。 According to the search system 800 in this embodiment, when the index integer h i matches the search integer η i for the d determination target integers selected by the determination target selection unit 441, the comparison source calculation unit 460 The comparison source B to be calculated matches the determination source E ′ calculated by the determination source calculation unit 240. By using this, the search device 400 determines whether or not the index integer h i matches the search integer η i for the d determination target integers selected by the determination target selection unit 441.

例えば、この実施の形態における写像φ〜φについては、次の関係が成り立つ。

Figure 0005274271
For example, the following relations hold for the mappings φ 1 to φ 5 in this embodiment.
Figure 0005274271

上記5つの写像φ〜φは、この実施の形態における例に限らない。上述した関係が成り立つ組み合わせであれば、検索装置400における検索が可能である。 The above five maps φ 1 to φ 5 are not limited to the examples in this embodiment. Any combination that satisfies the above-described relationship can be searched by the search device 400.

この実施の形態における検索システム800において、上記設定装置100は、更に、秘密乱数生成部132と、公開乱数元算出部142とを有する。
上記秘密乱数生成部132は、上記処理装置を用いて、1以上n以下のn個の整数iそれぞれについて、1以上p未満の整数をランダムに生成して、n個の秘密乱数uとする。
上記公開元算出部141は、上記処理装置を用いて、第一の群Gの元と第二の群Gの元との組を第三の群Gの元に写像する双線形ペアリング写像e(上記第一の群G及び上記第二の群G及び上記第三の群Gの位数はp。)により、上記第一の群Gの生成元である第一生成元gと、上記第二の群Gの生成元である第二生成元gとの組を写像した元である第三生成元gと、上記秘密整数生成部131が生成した秘密整数yとに基づいて、上記秘密整数yと等しい数の上記第三生成元gを、上記第三の群Gの群演算により結合した元g を算出して、公開元Yとする。
上記公開乱数元算出部142は、上記処理装置を用いて、1以上n以下のn個の整数iそれぞれについて、上記第一生成元gと、上記秘密乱数生成部132が生成した秘密乱数uとに基づいて、上記秘密乱数uと等しい数の上記第一生成元gを、上記第一の群Gの群演算により結合した元[g^u]を算出して、n個の公開乱数元Uとする。
上記索引暗号化装置200は、更に、公開乱数元記憶部217と、索引乱数生成部230とを有する。
上記公開乱数元記憶部217は、上記記憶装置を用いて、上記設定装置100が算出したn個の公開乱数元Uを記憶する。
上記索引乱数生成部230は、上記処理装置を用いて、1以上p未満の整数をランダムに生成して、索引乱数sとする。
上記判定元算出部240は、上記処理装置を用いて、上記公開元記憶部216が記憶した公開元Yと、上記索引乱数生成部230が生成した索引乱数sとに基づいて、上記索引乱数sと等しい数の上記公開元Yを、上記第三の群Gの群演算により結合した元Yを算出して、判定元E’とする。
上記索引元算出部250は、上記処理装置を用いて、1以上n以下のn個の整数iそれぞれについて、上記公開乱数元記憶部217が記憶した公開乱数元Uと、上記索引整数記憶部224が記憶した索引整数hと、上記索引乱数生成部230が生成した索引乱数sとに基づいて、上記索引整数hと上記索引乱数sとの積と等しい数の上記公開乱数元Uを、上記第一の群Gの群演算により結合した元[U^(s・h)]を算出して、n個の索引元Eとする。
上記検索暗号化装置300は、更に、秘密乱数記憶部323を有する。
上記秘密乱数記憶部323は、上記記憶装置を用いて、上記設定装置100が生成したn個の秘密乱数uを記憶する。
上記検索元算出部360は、上記処理装置を用いて、1以上n以下のn個の整数iそれぞれについて、上記第二生成元gと、上記秘密乱数記憶部323が記憶した秘密乱数uと、上記検索整数記憶部353が記憶した検索整数ηと、上記多項式値算出部344が算出した多項式値f(i)とに基づいて、上記秘密乱数uと上記検索整数ηとの積で上記多項式値f(i)を割った商と等しい数の上記第二生成元gを、上記第二の群Gの群演算により結合した元[g^{f(i)/(u・η)}]を算出して、n個の検索元Tとする。
上記検索装置400において、上記写像元算出部450は、上記処理装置を用いて、上記判定対象選択部441が選択したd個の判定対象整数iそれぞれについて、上記索引元記憶部421が記憶した索引元Eと、上記検索元記憶部432が記憶した検索元Tとに基づいて、上記双線形ペアリング写像eにより上記索引元Eと上記検索元Tとの組を写像した上記第三の群Gの元e(E,T)を算出して、d個のペアリング値eとし、上記判定対象選択部441が選択したd個の判定対象整数iそれぞれについて、算出した上記ペアリング値eと、上記補間係数値算出部442が算出した補間係数値Δi,Sとに基づいて、上記補間係数値Δi,Sと等しい数の上記ペアリング値eを、上記第三の群Gの群演算により結合した元[e^Δi,S]を算出して、d個の写像元e’とする。
上記比較元算出部460は、上記処理装置を用いて、上記写像元算出部450が算出したd個の写像元e’を、上記第三の群Gの群演算により結合した元Π(e’)を算出して、比較元Bとする。
In the search system 800 according to this embodiment, the setting device 100 further includes a secret random number generation unit 132 and a public random number source calculation unit 142.
The secret random number generation unit 132 randomly generates an integer less than or equal to 1 and less than p for each of n integers i greater than or equal to 1 and less than or equal to n by using the processing device, thereby obtaining n secret random numbers u i . .
The public element calculation unit 141 uses the processing device to map a pair of elements of the first group G 1 and elements of the second group G 2 to elements of the third group G 3. The ring map e (the order of the first group G 1, the second group G 2, and the third group G 3 is p.) Is the first generation source of the first group G 1 . Generated by the third generator g 3 that is a mapping element of the generator g 1 and the second generator g 2 that is the generator of the second group G 2 and the secret integer generator 131. Based on the secret integer y, the element g 3 y obtained by combining the third generators g 3 having the same number as the secret integer y by the group operation of the third group G 3 is calculated. And
The public random number source calculation unit 142 uses the processing device to generate the first random number g 1 and the secret random number u generated by the secret random number generation unit 132 for each of n integers 1 to n. Based on i , an element [g 1 ^ u i ] obtained by combining the first generator g 1 having the same number as the secret random number u i by the group operation of the first group G 1 is calculated. Let n public random number sources U i .
The index encryption apparatus 200 further includes a public random number source storage unit 217 and an index random number generation unit 230.
The public random number source storage unit 217 stores n public random number sources U i calculated by the setting device 100 using the storage device.
The index random number generation unit 230 randomly generates an integer that is greater than or equal to 1 and less than p by using the processing device, and sets it as an index random number s.
The determination source calculation unit 240 uses the processing device to calculate the index random number s based on the publication source Y stored in the publication source storage unit 216 and the index random number s generated by the index random number generation unit 230. The element Y s obtained by combining the same number of public elements Y with the group operation of the third group G 3 is calculated as a determination element E ′.
The index source calculation unit 250 uses the processing device to store the public random number element U i stored in the public random number source storage unit 217 and the index integer storage unit for each of the n integers 1 to n. Based on the index integer h i stored in 224 and the index random number s generated by the index random number generator 230, the number of the public random number elements U i equal to the product of the index integer h i and the index random number s. Are combined by the group operation of the first group G 1 to calculate n [U i ^ (s · h i )] as n index elements E i .
The search encryption device 300 further includes a secret random number storage unit 323.
The secret random number storage unit 323 stores n secret random numbers u i generated by the setting device 100 using the storage device.
The search source calculation unit 360 uses the processing device to store the second generation source g 2 and the secret random number u i stored in the secret random number storage unit 323 for each of n integers 1 to n. Based on the search integer η i stored in the search integer storage unit 353 and the polynomial value f (i) calculated by the polynomial value calculation unit 344, the secret random number u i and the search integer η i An element [g 2 ^ {f (i) / a] obtained by combining the number of the second generators g 2 equal to the quotient obtained by dividing the polynomial value f (i) by the product by the group operation of the second group G 2. (U i · η i )}] is calculated and set as n search sources T i .
In the search device 400, the mapping source calculation unit 450 uses the processing device to store the index stored in the index source storage unit 421 for each of the d determination target integers i selected by the determination target selection unit 441. Based on the element E i and the search source T i stored in the search source storage unit 432, the bilinear pairing map e maps the set of the index element E i and the search source T i . The element e (E i , T i ) of the third group G 3 is calculated as d pairing values e i and calculated for each of the d determination target integers i selected by the determination target selection unit 441. Based on the pairing value e i and the interpolation coefficient value Δ i, S calculated by the interpolation coefficient value calculation unit 442 , the same number of pairing values e i as the interpolation coefficient value Δ i, S are obtained. , Group operation of the third group G3 The element [e i ^ Δ i, S ] combined by is calculated as d mapping elements e ′ i .
The comparison source calculation unit 460 uses the processing apparatus to combine the d mapping sources e ′ i calculated by the mapping source calculation unit 450 by the group operation of the third group G 3. e ′ i ) is calculated and set as the comparison source B.

安全性の証明については省略するが、この実施の形態における検索システム800によれば、索引整数や検索整数を解読しようとする第三者の攻撃に対して、安全性を有する。   Although the proof of security is omitted, the search system 800 in this embodiment has security against attacks by a third party who tries to decipher the index integer and the search integer.

この実施の形態における検索システム800において、上記索引暗号化装置200は、更に、索引変換部223を有する。
上記索引変換部223は、上記処理装置を用いて、1以上n以下のn個の整数iに対応するn個の索引文字列wを入力し、1以上n以下のn個の整数iそれぞれについて、任意の長さの文字列を1以上p未満の整数に変換する変換写像Hにより、入力した索引文字列wを変換して、n個の索引整数hとする。
上記索引整数記憶部224は、上記記憶装置を用いて、上記索引変換部223が変換したn個の索引整数hを記憶する。
上記検索暗号化装置300は、更に、検索変換部352を有する。
上記検索変換部352は、上記処理装置を用いて、1以上n以下のn個の整数iに対応するn個の検索文字列ωを入力し、1以上n以下のn個の整数iそれぞれについて、上記変換写像Hにより、入力した検索文字列ωを変換して、n個の検索整数ηとする。
上記検索整数記憶部353は、上記記憶装置を用いて、上記検索変換部352が変換したn個の検索整数ηを記憶する。
In the search system 800 in this embodiment, the index encryption apparatus 200 further includes an index conversion unit 223.
The index conversion unit 223 uses the processing device to input n index character strings w i corresponding to n integers i of 1 to n, and each of n integers i of 1 to n. , The input index character string w i is converted into n index integers h i by a conversion map H that converts a character string of an arbitrary length into an integer of 1 or more and less than p.
The index integer storage unit 224, using the storage device, for storing the n index integer h i where the index conversion unit 223 converts.
The search encryption apparatus 300 further includes a search conversion unit 352.
The search conversion unit 352 uses the processing device to input n search character strings ω i corresponding to n integers i of 1 to n, and each of n integers i of 1 to n. , The input search character string ω i is converted by the conversion map H to obtain n search integers η i .
The search integer storage unit 353 stores the n search integers η i converted by the search conversion unit 352 using the storage device.

この実施の形態における検索システム800によれば、索引データ及び検索データとして、1以上p未満の整数に限らず、任意の長さの文字列を用いることができるので、検索システム800を応用できる範囲が広くなる。   According to the search system 800 in this embodiment, the index data and the search data are not limited to integers of 1 or more and less than p, and a character string of any length can be used. Becomes wider.

この実施の形態における索引暗号化装置200によれば、算出した暗号化索引データを第三者に知られても、もとである索引データを知られることはなく、それでいて、暗号化索引データを用いて、n個ある索引データのうちd個以上が検索データと一致するものを検索することを可能にする。また、n個ある索引データのうち検索データと一致するものがd個未満の場合には、どの索引データが検索データと一致したかについても知られずに済むので、より高い安全性を実現できる。   According to the index encryption apparatus 200 in this embodiment, even if the calculated encrypted index data is known to a third party, the original index data is not known, and the encrypted index data is By using this, it is possible to search for n index data whose d or more matches the search data. Further, when n index data matches the search data, and less than d, it is not necessary to know which index data matches the search data, so that higher security can be realized.

この実施の形態における検索暗号化装置300によれば、算出した暗号化検索データを第三者に知られても、もとである検索データを知られることはなく、それでいて、暗号化検索データを用いて、n個ある索引データのうちd個以上が検索データと一致するものを検索することを可能にする。また、n個ある索引データのうち検索データと一致するものがd個未満の場合には、どの索引データが検索データと一致したかについても知られずに済むので、より高い安全性を実現できる。   According to the search encryption device 300 in this embodiment, even if the calculated encrypted search data is known to a third party, the original search data is not known, and the encrypted search data is still stored. By using this, it is possible to search for n index data whose d or more matches the search data. Further, when n index data matches the search data, and less than d, it is not necessary to know which index data matches the search data, so that higher security can be realized.

この実施の形態における検索装置400によれば、暗号化索引データ及び暗号化検索データのいずれも復号することなく、n個ある索引データのうちd個以上が検索データと一致するものを検索することができる。   According to the search device 400 in this embodiment, it is possible to search for data in which d or more of the index data matches the search data without decrypting both the encrypted index data and the encrypted search data. Can do.

この実施の形態における索引暗号化装置200・検索暗号化装置300・検索装置400は、いずれも、コンピュータを、索引暗号化装置200または検索暗号化装置300または検索装置400として機能させるコンピュータプログラムを、コンピュータが実行することにより、実現することができる。   The index encryption device 200, the search encryption device 300, and the search device 400 in this embodiment are all computer programs that cause a computer to function as the index encryption device 200, the search encryption device 300, or the search device 400. This can be realized by execution by a computer.

この実施の形態における検索システム800において、索引暗号化装置200が索引データを暗号化した暗号化索引データと、検索暗号化装置300が検索データを暗号化した暗号化検索データとを用いて、検索装置400が上記索引データと上記検索データとが一致するか否かを判定する検索方法は、以下の工程を有する。
上記索引暗号化装置200が、1以上n以下のn個の整数i(nは1以上の整数。)に対応するn個の索引データ(索引整数h)を記憶する。
上記索引暗号化装置200が、1以上n以下のn個の整数iそれぞれについて、記憶した索引データを暗号化して、n個の暗号化索引データ(索引元E)とする。
上記検索暗号化装置300が、1以上n以下のn個の整数iに対応するn個の検索データ(検索整数η)を記憶する。
上記検索暗号化装置300が、1以上n以下のn個の整数iそれぞれについて、(d−1)次の一変数多項式f(x)(dは1以上n以下の整数。)に上記整数iを代入した値を算出して、n個の多項式値f(i)とする。
上記検索暗号化装置300が、1以上n以下のn個の整数iそれぞれについて、記憶した検索データと、算出した多項式値f(i)との組を暗号化して、n個の暗号化検索データ(検索元T)とする。
上記検索装置400が、上記索引暗号化装置200が暗号化したn個の暗号化索引データを記憶する。
上記検索装置400が、上記検索暗号化装置300が暗号化したn個の暗号化検索データを記憶する。
上記検索装置400が、1以上n以下のn個の整数のなかからd個の整数を選択して、d個の判定対象整数iとする。
上記検索装置400が、選択したd個の判定対象整数iに基づいて、ラグランジュの補間係数の値を算出して、d個の補間係数値Δi,Sとする。
上記検索装置400が、選択したd個の判定対象整数iそれぞれについて、記憶した暗号化索引データと、記憶した暗号化検索データと、算出した補間係数値Δi,Sとの組を写像して、d個の写像データ(写像元e’)とする。
上記検索装置400が、写像したd個の写像データに基づいて、比較データ(比較元B)を算出する。
上記検索装置400が、算出した比較データに基づいて、選択したd個の判定対象整数iについて、上記索引データと、上記検索データとが一致するか否かを判定する。
In the search system 800 in this embodiment, a search is performed using the encrypted index data obtained by encrypting the index data by the index encryption device 200 and the encrypted search data obtained by encrypting the search data by the search encryption device 300. A search method in which the apparatus 400 determines whether or not the index data matches the search data includes the following steps.
The index encryption device 200 stores n pieces of index data (index integers h i ) corresponding to n integers i (n is an integer of 1 or more).
The index encryption apparatus 200 encrypts the stored index data for each of the n integers i of 1 to n to obtain n encrypted index data (index source E i ).
The search encryption apparatus 300 stores n search data (search integer η i ) corresponding to n integers i of 1 to n.
For each of n integers i of 1 to n, the search encryption apparatus 300 converts the integer i to a (d-1) -degree univariate polynomial f (x) (d is an integer of 1 to n). Is substituted into n polynomial values f (i).
The search encryption device 300 encrypts a set of the stored search data and the calculated polynomial value f (i) for each of n integers i of 1 to n, and n encrypted search data (Search source T i ).
The search device 400 stores the n encrypted index data encrypted by the index encryption device 200.
The search device 400 stores the n encrypted search data encrypted by the search encryption device 300.
The search device 400 selects d integers out of n integers greater than or equal to 1 and less than or equal to n to obtain d determination target integers i.
The search device 400 calculates Lagrangian interpolation coefficient values based on the selected d determination target integers i and sets them as d interpolation coefficient values Δ i, S.
The search device 400 maps a set of the stored encrypted index data, the stored encrypted search data, and the calculated interpolation coefficient value Δ i, S for each of the selected d determination target integers i. , D mapping data (mapping source e ′ i ).
The search device 400 calculates comparison data (comparison source B) based on the mapped d pieces of mapping data.
Based on the calculated comparison data, the search device 400 determines whether or not the index data matches the search data for the selected d determination target integers i.

この実施の形態における検索方法によれば、検索暗号化装置300が、(d−1)次の一変数多項式f(x)の値f(i)を用いて、検索データを暗号化し、検索装置400が、ラグランジュの補間係数の値Δi,Sを用いて、検索を実行するので、n個のデータのうちd個以上が一致する場合に、一致することを検索装置400が判定でき、d個未満しか一致しない場合には、いずれのデータが一致したかを検索装置400が知ることができない。これにより、索引データや検索データに関する情報の漏洩を防ぐことができる。 According to the search method in this embodiment, the search encryption apparatus 300 encrypts the search data using the value f (i) of the (d−1) -order univariate polynomial f (x), and the search apparatus 400 performs a search using Lagrange interpolation coefficient values Δ i, S, and therefore, when d or more of n pieces of data match, the search device 400 can determine that they match, and d If there is less than a match, the search device 400 cannot know which data matched. Thereby, it is possible to prevent leakage of information related to index data and search data.

以上説明した検索システム800によれば、暗号化したままの状態でのキーワード検索が可能であり、複数のキーワードのうち、ある一定個以上が一致すれば検索にヒットする。検索にヒットしない場合には、どのキーワードが一致し、どのキーワードが一致しなかったかについての情報が漏れない。   According to the search system 800 described above, keyword search can be performed in an encrypted state, and if a certain number or more of a plurality of keywords match, the search is hit. If the search is not hit, information about which keywords match and which keywords do not match does not leak.

これに対し、単一のキーワードの検索方式を応用しても、複数のキーワードのうち、ある一定個以上が一致するか否かを判定することは可能である。すなわち、データ作成者(索引暗号化装置)が、キーワード数(索引数)に応じて複数の暗号化タグ(暗号化索引データ)を生成し、データ検索者(検索暗号化装置)も、検索キーワード数(索引数)に応じて複数の検索用トラップドア(検索暗号化データ)を生成して、データ保管サーバ(検索装置)が検索を実行して、それぞれのキーワードが一致するものを抽出すれば、複数のキーワードのうち一定個以上以上が一致するか否かを調べることができる。しかし、この方式の場合、データ保管サーバ(検索装置)は、キーワード自体を知ることはできないものの、どの暗号化タグとどの検索用トラップドアが何個一致したかが分かってしまう。したがって、この情報を利用して、データ保管サーバは、データ検索者がどのようなデータを検索しようとしているかについて推測をすることが可能になってしまう。   On the other hand, even if a single keyword search method is applied, it is possible to determine whether or not a certain number or more of a plurality of keywords match. That is, the data creator (index encryption device) generates a plurality of encryption tags (encrypted index data) according to the number of keywords (number of indexes), and the data searcher (search encryption device) also searches the search keyword. If a plurality of search trap doors (search encrypted data) are generated according to the number (index number) and the data storage server (search device) executes a search to extract those that match each keyword It is possible to check whether or not a certain number or more of a plurality of keywords match. However, in this method, the data storage server (search device) cannot know the keyword itself, but knows how many encryption tags and which search trap doors match. Therefore, using this information, the data archiving server can infer what data the data searcher is seeking.

以上説明した検索システム800によれば、複数キーワードのうち一定個以上が一致するか否かが検索可能で、かつ、どの暗号化キーワードが何個一致したかに関する情報の漏洩を従来よりも低減させることができる。   According to the search system 800 described above, it is possible to search whether a certain number or more of a plurality of keywords match, and to reduce the leakage of information related to how many encrypted keywords match. be able to.

以上説明した検索システム800は、素数位数の群におけるペアリングを利用している。これに対し、合成数位数の群におけるペアリングを利用する方式も考えられるが、その場合、利用できるペアリングの種類が限定されてしまう。以上説明した検索システム800によれば、素数位数の群におけるペアリングを利用するので、利用できるペアリングの種類が限定されず、ペアリングの計算量を低減することができる。   The search system 800 described above uses pairing in a group of prime orders. On the other hand, a method of using pairing in a group of composite orders is also conceivable, but in that case, the types of pairing that can be used are limited. According to the search system 800 described above, since pairing in a group of prime orders is used, the type of pairing that can be used is not limited, and the amount of calculation for pairing can be reduced.

なお、以上の説明において、検索暗号化装置300は、暗号化検索データとして閾値dを指定し、検索装置400は、d個以上の索引が一致するデータを検索する構成としているが、検索暗号化装置300が、もっと細かく条件を指定する構成としてもよい。
例えば、検索暗号化装置300は、必ず一致しなければならない索引の番号や、一致するか否かを問わない索引の番号を指定する構成としてもよい。一致するか否かを問わない索引の番号を指定する場合、その番号に対応する検索元Tを暗号化検索データに含める必要はなく、暗号化検索データの量を少なくすることができる。
これを受けて、検索装置400では、判定対象選択部441が、1以上n以下のn個の整数のなかからd個の整数を選択する際、必ず一致しなければならない索引として指定された番号は、選択するd個の整数のなかに必ず含め、一致するか否かを問わない索引として指定された番号は、選択するd個の整数のなかに含めない。これにより、検索装置400における計算量を減らすことができる。
In the above description, the search encryption device 300 designates the threshold value d as encrypted search data, and the search device 400 is configured to search for data that matches d or more indexes. The apparatus 300 may be configured to specify conditions more finely.
For example, the search encryption device 300 may be configured to specify an index number that must match or an index number that does not matter whether or not they match. When specifying the number of the index does not matter whether the matching, it is not necessary to include a search source T i corresponding to the number to the encrypted search data, it is possible to reduce the amount of encrypted search data.
In response to this, in the search device 400, when the determination target selection unit 441 selects d integers from n integers of 1 to n, a number designated as an index that must be matched. Is always included in the d integers to be selected, and the number designated as an index regardless of whether or not they match is not included in the d integers to be selected. Thereby, the calculation amount in the search device 400 can be reduced.

また、索引暗号化装置200は、索引文字列を指定していない索引がある場合、その索引の番号を、暗号化索引データに含めて、検索装置400に知らせる構成としてもよい。その場合、その番号に対応する索引元Eを暗号化索引データに含める必要はなく、暗号化索引データの量を少なくすることができる。
これを受けて、検索装置400では、その暗号化索引データに対して検索を実行する際、判定対象選択部441が、索引文字列を指定していないとされる索引の番号を、選択するd個の整数のなかに含めない。これにより、検索装置400における計算量を減らすことができる。
Further, when there is an index for which no index character string is designated, the index encryption apparatus 200 may be configured to include the index number in the encrypted index data and notify the search apparatus 400. In that case, it is not necessary to include the index source E i corresponding to the number in the encrypted index data, and the amount of the encrypted index data can be reduced.
In response to this, in the search device 400, when performing a search on the encrypted index data, the determination target selection unit 441 selects an index number for which no index character string is designated. Do not include in integers. Thereby, the calculation amount in the search device 400 can be reduced.

実施の形態2.
実施の形態2について、図13〜図20を用いて説明する。
なお、実施の形態1と共通する部分については、同一の符号を付し、説明を省略する。
この実施の形態における検索システム800の全体構成、復号装置810、暗号化装置820、サーバ装置830の外観及びハードウェア資源は、実施の形態1と同様である。
Embodiment 2. FIG.
The second embodiment will be described with reference to FIGS.
In addition, about the part which is common in Embodiment 1, the same code | symbol is attached | subjected and description is abbreviate | omitted.
The overall configuration of the search system 800 in this embodiment, the external appearance and hardware resources of the decryption device 810, the encryption device 820, and the server device 830 are the same as those in the first embodiment.

図13は、この実施の形態における設定装置100の構成の一例を示すブロック構成図である。
設定装置100は、設定記憶部110、秘密生成部130、公開算出部140、公開出力部150を有する。
FIG. 13 is a block configuration diagram showing an example of the configuration of the setting device 100 according to this embodiment.
The setting device 100 includes a setting storage unit 110, a secret generation unit 130, a public calculation unit 140, and a public output unit 150.

設定記憶部110は、第一生成元記憶部111、索引数記憶部115を有する。第一生成元記憶部111は、磁気ディスク装置920を用いて、群Gの生成元gを記憶する。索引数記憶部115は、磁気ディスク装置920を用いて、索引数nを記憶する。 The setting storage unit 110 includes a first generation source storage unit 111 and an index number storage unit 115. The first generation source storage unit 111 stores the generation source g 1 of the group G 1 using the magnetic disk device 920. The index number storage unit 115 uses the magnetic disk device 920 to store the index number n.

秘密生成部130は、秘密整数生成部131を有する。秘密整数生成部131は、CPU911を用いて、1以上p以下の整数をランダムに生成し、秘密整数yとして出力する。   The secret generation unit 130 includes a secret integer generation unit 131. Using the CPU 911, the secret integer generation unit 131 randomly generates an integer between 1 and p and outputs it as a secret integer y.

公開算出部140は、公開元算出部141、公開乱数元算出部142、第二生成元算出部147を有する。
公開元算出部141は、CPU911を用いて、第一生成元記憶部111が記憶した群Gの生成元gと、秘密整数生成部131が出力した秘密整数yとを入力する。公開元算出部141は、CPU911を用いて、入力した生成元gと秘密整数yとに基づいて、元gのy乗である群Gの元g を算出する。公開元算出部141は、CPU911を用いて、算出した元を公開元g’として出力する。
公開乱数元算出部142は、CPU911を用いて、索引数記憶部115が記憶した索引数nを入力する。公開乱数元算出部142は、CPU911を用いて、1以上n以下のn個の整数それぞれについて、群Gの単位元以外の元をランダムに生成する。公開乱数元算出部142は、CPU911を用いて、生成したn個の元を公開乱数元u(iは1以上n以下の整数。)として出力する。
第二生成元算出部147は、CPU911を用いて、群Gの単位元以外の元をランダムに生成する。第二生成元算出部147は、CPU911を用いて、生成した元を生成元gとして出力する。
The public calculation unit 140 includes a public source calculation unit 141, a public random number source calculation unit 142, and a second generation source calculation unit 147.
Using the CPU 911, the disclosure source calculation unit 141 inputs the generation source g 1 of the group G 1 stored in the first generation source storage unit 111 and the secret integer y output from the secret integer generation unit 131. Public element calculation unit 141, by using the CPU 911, based on the origin g 1 input and secret integer y, to calculate the original g 1 y of the group G 1 be a power of the original g 1 y. Using the CPU 911, the publication source calculation unit 141 outputs the calculated element as the publication source g 1 ′.
The public random number source calculation unit 142 uses the CPU 911 to input the index number n stored in the index number storage unit 115. Published random number element calculation unit 142 uses the CPU 911, for each 1 to n of n integers, to produce the original other than the unit of the group G 2 source randomly. Using the CPU 911, the public random number element calculation unit 142 outputs the generated n elements as public random number elements u i (i is an integer of 1 to n).
Second generation element calculation unit 147, using the CPU 911, generates the original than the unit of the group G 2 source randomly. Second generation element calculation unit 147, using the CPU 911, and outputs the generated original as a generation source g 2.

公開出力部150は、公開元出力部151、公開乱数元出力部152、第一生成元出力部156、第二生成元出力部157を有する。公開元出力部151は、CPU911を用いて、公開元算出部141が出力した公開元g’を入力して、外部に出力する。公開乱数元出力部152は、CPU911を用いて、公開乱数元算出部142が出力したn個の公開乱数元uを入力して、外部に出力する。第一生成元出力部156は、CPU911を用いて、第一生成元記憶部111が記憶した群Gの生成元gを入力して、外部に出力する。第二生成元出力部157は、第二生成元算出部147が出力した群Gの生成元gを入力して、外部に出力する。 The public output unit 150 includes a public source output unit 151, a public random number source output unit 152, a first generation source output unit 156, and a second generation source output unit 157. Using the CPU 911, the publishing source output unit 151 inputs the publishing source g 1 ′ output from the publishing source calculation unit 141, and outputs it to the outside. Published random number based on the output unit 152, using the CPU 911, and enter the n-number of public random number source u i public random element calculation unit 142 is output, and output to the outside. Using the CPU 911, the first generation source output unit 156 inputs the generation source g 1 of the group G 1 stored in the first generation source storage unit 111 and outputs it to the outside. The second generation output unit 157 receives the generation source g 2 of the group G 2 output by the second generation calculation unit 147 and outputs the input to the outside.

図14は、この実施の形態における検索暗号化装置300の構成の一例を示すブロック構成図である。
検索暗号化装置300は、設定記憶部310、秘密記憶部320、検索条件入力部330、閾値記憶部341、多項式係数生成部342、多項式係数記憶部343、多項式値算出部344、検索変換部352、検索整数記憶部353、検索乱数生成部380、検索乱数元算出部390、検索元算出部360、暗号化検索出力部370を有する。
FIG. 14 is a block configuration diagram showing an example of the configuration of the search encryption device 300 in this embodiment.
The search encryption apparatus 300 includes a setting storage unit 310, a secret storage unit 320, a search condition input unit 330, a threshold storage unit 341, a polynomial coefficient generation unit 342, a polynomial coefficient storage unit 343, a polynomial value calculation unit 344, and a search conversion unit 352. A search integer storage unit 353, a search random number generation unit 380, a search random number source calculation unit 390, a search source calculation unit 360, and an encrypted search output unit 370.

設定記憶部310は、第一生成元記憶部311、第二生成元記憶部312、索引数記憶部315、公開乱数元記憶部317を有する。第一生成元記憶部311は、磁気ディスク装置920を用いて、群Gの生成元gを記憶する。第二生成元記憶部312は、磁気ディスク装置920を用いて、群Gの生成元gを記憶する。索引数記憶部315は、磁気ディスク装置920を用いて、索引数nを記憶する。公開乱数元記憶部317は、磁気ディスク装置920を用いて、設定装置100が公開したn個の公開乱数元uを記憶する。 The setting storage unit 310 includes a first generation source storage unit 311, a second generation source storage unit 312, an index number storage unit 315, and a public random number source storage unit 317. The first generation source storage unit 311 stores the generation source g 1 of the group G 1 using the magnetic disk device 920. The second generator storage unit 312 stores the generator g 2 of the group G 2 using the magnetic disk device 920. The index number storage unit 315 uses the magnetic disk device 920 to store the index number n. The public random number source storage unit 317 uses the magnetic disk device 920 to store n public random number sources u i disclosed by the setting device 100.

検索乱数生成部380は、CPU911を用いて、1以上n以下のn個の整数それぞれについて、1以上p未満の整数をランダムに生成する。検索乱数生成部380は、CPU911を用いて、生成したn個の整数を検索乱数r(iは1以上n以下の整数。)として出力する。 Using the CPU 911, the search random number generation unit 380 randomly generates an integer of 1 to less than p for each of n integers of 1 to n. Using the CPU 911, the search random number generation unit 380 outputs the generated n integers as search random numbers r i (i is an integer of 1 to n).

検索乱数元算出部390は、CPU911を用いて、n個の検索乱数元t(iは1以上n以下の整数。)を算出する。検索乱数元tは、検索乱数を暗号化したものであり、暗号化検索データの一部である。検索乱数元算出部390は、累乗部391を有する。
累乗部391は、CPU911を用いて、第一生成元記憶部311が記憶した群Gの生成元gと、検索乱数生成部380が出力したn個の検索乱数rとを入力する。累乗部391は、CPU911を用いて、1以上n以下のn個の整数それぞれについて、生成元gと、対応する検索乱数rとに基づいて、元gのr乗である群Gの元[g^r]を算出する。累乗部391は、CPU911を用いて、算出したn個の元を検索乱数元t(iは1以上n以下の整数。)として出力する。
Using the CPU 911, the search random number source calculation unit 390 calculates n search random number sources t i (i is an integer between 1 and n). Search random number based on t i is obtained by encrypting the search random number, which is part of the encrypted search data. The search random number source calculation unit 390 includes a power unit 391.
The power unit 391 uses the CPU 911 to input the generation source g 1 of the group G 1 stored in the first generation source storage unit 311 and the n search random numbers r i output from the search random number generation unit 380. The power unit 391 uses the CPU 911 to generate a group G that is the r i power of the element g 1 based on the generator g 1 and the corresponding search random number r i for each of n integers of 1 to n. to calculate the 1 of the original [g 1 ^ r i]. The power unit 391 uses the CPU 911 to output the calculated n elements as a search random number element t i (i is an integer of 1 to n).

検索元算出部360は、関数値算出部362、二つの累乗部365,366、積算出部367を有する。
関数値算出部362は、CPU911を用いて、公開乱数元記憶部317が記憶したn個の公開乱数元uと、検索整数記憶部353が記憶したn個の検索整数ηとを入力する。関数値算出部362は、CPU911を用いて、1以上n以下のn個の整数それぞれについて、対応する公開乱数元uと、対応する検索整数ηとに基づいて、検索整数ηと公開乱数元uとの組を関数Uに代入した値を算出する。関数値算出部362は、CPU911を用いて、算出したn個の値を関数値U(η,u)(iは1以上n以下の整数。)として出力する。
関数Uは、0以上p未満の整数と群Gの元との組を引数とし、値として、群Gの元をとる。関数Uは、例えば、次の式により定義される。

Figure 0005274271
この例において、関数値算出部362は、CPU911を用いて、1以上n以下の整数iについて、第二生成元記憶部312が記憶した群Gの生成元gと、検索変換部352が出力した検索整数ηとに基づいて、元gのη乗である群Gの元[g^η]を算出する。関数値算出部362は、CPU911を用いて、算出した元[g^η]と、公開乱数元記憶部317が記憶した公開乱数元uとの積を算出して、関数値U(η,u)とする。 The search source calculation unit 360 includes a function value calculation unit 362, two power units 365 and 366, and a product calculation unit 367.
Using the CPU 911, the function value calculation unit 362 inputs n public random number sources u i stored in the public random number source storage unit 317 and n search integers η i stored in the search integer storage unit 353. . The function value calculation unit 362 uses the CPU 911 to disclose the search integer η i and the public based on the corresponding public random number element u i and the corresponding search integer η i for each of n integers of 1 to n. A value obtained by substituting the pair with the random number element u i into the function U is calculated. Using the CPU 911, the function value calculation unit 362 outputs the calculated n values as function values U (η i , u i ) (i is an integer between 1 and n).
The function U takes a pair of an integer of 0 or more and less than p and an element of the group G 2 as an argument, and takes an element of the group G 2 as a value. The function U is defined by the following expression, for example.
Figure 0005274271
In this example, the function value calculation unit 362 uses the CPU 911 to generate the generation source g 2 of the group G 2 stored in the second generation storage unit 312 and the search conversion unit 352 for an integer i of 1 or more and n or less. based on the search integer eta i outputted, it calculates a group G 2 be a power eta i of the original g 2 based on [g 2 ^ η i]. Using the CPU 911, the function value calculation unit 362 calculates the product of the calculated element [g 2 ^ η i ] and the public random number source u i stored in the public random number source storage unit 317, and the function value U ( η i , u i ).

累乗部365は、CPU911を用いて、関数値算出部362が出力したn個の関数値U(η,u)と、検索乱数生成部380が出力したn個の検索乱数rとを入力する。累乗部365は、1以上n以下のn個の整数それぞれについて、対応する関数値U(η,u)と、対応する検索乱数rとに基づいて、関数値U(η,u)のr乗である群Gの元[U(η,u)^r]を算出する。累乗部365は、CPU911を用いて、算出したn個の元[U(η,u)^r](iは1以上n以下の整数。)を出力する。 The power unit 365 uses the CPU 911 to calculate the n function values U (η i , u i ) output from the function value calculation unit 362 and the n search random numbers r i output from the search random number generation unit 380. input. Power unit 365, for each 1 to n of n integers, the corresponding function value U (η i, u i) , based on the corresponding search random number r i, the function value U (η i, u The element [U (η i , u i ) ^ r i ] of the group G 2 that is the power of i i ri is calculated. The power unit 365 uses the CPU 911 to output the calculated n elements [U (η i , u i ) ^ r i ] (i is an integer of 1 to n).

累乗部366は、CPU911を用いて、第二生成元記憶部312が記憶した群Gの生成元gと、多項式値算出部344が出力したn個の多項式値f(i)とを入力する。累乗部366は、CPU911を用いて、1以上n以下のn個の整数それぞれについて、生成元gと、対応する多項式値f(i)とに基づいて、元gのf(i)乗である群Gの元[g^f(i)]を算出する。累乗部366は、CPU911を用いて、算出したn個の元[g^f(i)](iは1以上n以下の整数。)を出力する。 The power unit 366 uses the CPU 911 to input the generation source g 2 of the group G 2 stored in the second generation source storage unit 312 and the n polynomial values f (i) output from the polynomial value calculation unit 344. To do. Power unit 366, by using the CPU 911, for 1 to n of n integers, the origin g 2, based on the corresponding polynomial solutions f (i), multiply the original g 2 of f (i) The element [g 2 ^ f (i)] of the group G 2 is calculated. The power unit 366 uses the CPU 911 to output the calculated n elements [g 2 ^ f (i)] (i is an integer of 1 to n).

積算出部367は、CPU911を用いて、累乗部365が出力したn個の関数値U(η,u)と、累乗部366が出力したn個の元[g^f(i)]とを入力する。積算出部367は、CPU911を用いて、1以上n以下のn個の整数それぞれについて、対応する関数値U(η,u)と、対応する元[g^f(i)]との積を算出する。積算出部367は、CPU911を用いて、算出したn個の積を検索元T(iは1以上n以下の整数。)として出力する。 Using the CPU 911, the product calculation unit 367 uses the n function values U (η i , u i ) output from the power unit 365 and the n elements [g 2 ^ f (i) output from the power unit 366. ]. Using the CPU 911, the product calculation unit 367 uses a function value U (η i , u i ) corresponding to each of n integers of 1 to n and a corresponding element [g 2 ^ f (i)] The product of is calculated. Using the CPU 911, the product calculation unit 367 outputs the calculated n products as a search source T i (i is an integer of 1 to n).

暗号化検索出力部370は、閾値出力部371、検索元出力部372、検索乱数元出力部373を有する。閾値出力部371は、CPU911を用いて、閾値記憶部341が記憶した閾値dを入力して、外部に出力する。検索元出力部372は、CPU911を用いて、積算出部367が出力したn個の検索元Tを入力して、外部に出力する。検索乱数元出力部373は、CPU911を用いて、累乗部391が出力したn個の検索乱数元tを入力して、外部に出力する。 The encrypted search output unit 370 includes a threshold output unit 371, a search source output unit 372, and a search random number source output unit 373. Using the CPU 911, the threshold output unit 371 inputs the threshold d stored by the threshold storage unit 341 and outputs it to the outside. Search source output unit 372, using the CPU 911, and enter the n-number of search source T i which calculating unit 367 is output, and output to the outside. Search random number based on the output unit 373, using the CPU 911, and enter the n-number of search random number based on t i the power unit 391 has been output to the outside.

図15は、この実施の形態における索引暗号化装置200の構成の一例を示すブロック構成図である。
索引暗号化装置200は、設定記憶部210、索引入力部221、索引変換部223、索引整数記憶部224、索引乱数生成部230、判定元算出部240、乱数元算出部270、索引元算出部250、暗号化索引出力部260を有する。
FIG. 15 is a block configuration diagram showing an example of the configuration of the index encryption device 200 in this embodiment.
The index encryption apparatus 200 includes a setting storage unit 210, an index input unit 221, an index conversion unit 223, an index integer storage unit 224, an index random number generation unit 230, a determination source calculation unit 240, a random number source calculation unit 270, and an index source calculation unit. 250 and an encrypted index output unit 260.

設定記憶部210は、第一生成元記憶部211、第二生成元記憶部212、索引数記憶部215、公開元記憶部216、公開乱数元記憶部217を有する。第一生成元記憶部211は、磁気ディスク装置920を用いて、群Gの生成元gを記憶する。第二生成元記憶部212は、磁気ディスク装置920を用いて、群Gの生成元gを記憶する。索引数記憶部215は、磁気ディスク装置920を用いて、索引数nを記憶する。公開元記憶部216は、磁気ディスク装置920を用いて、設定装置100が公開した公開元g’を記憶する。公開乱数元記憶部217は、磁気ディスク装置920を用いて、設定装置100が公開したn個の公開乱数元uを記憶する。 The setting storage unit 210 includes a first generation source storage unit 211, a second generation source storage unit 212, an index number storage unit 215, a public source storage unit 216, and a public random number source storage unit 217. The first generation source storage unit 211 stores the generation source g 1 of the group G 1 using the magnetic disk device 920. The second generation source storage unit 212 stores the generation source g 2 of the group G 2 using the magnetic disk device 920. The index number storage unit 215 uses the magnetic disk device 920 to store the index number n. The disclosure source storage unit 216 stores the disclosure source g 1 ′ disclosed by the setting device 100 using the magnetic disk device 920. The public random number source storage unit 217 uses the magnetic disk device 920 to store n public random number sources u i released by the setting device 100.

判定元算出部240は、ペアリング値算出部241、累乗部242を有する。
ペアリング値算出部241は、CPU911を用いて、公開元記憶部216が記憶した公開元g’と、第二生成元記憶部212が記憶した群Gの生成元gとを入力する。ペアリング値算出部241は、CPU911を用いて、ペアリング写像eにより、元g’と元gとの組を写像した群Gの元e(g’,g)を算出する。ペアリング値算出部241は、CPU911を用いて、算出した元e(g’,g)を出力する。
累乗部242は、CPU911を用いて、ペアリング値算出部241が出力した元e(g’,g)と、索引乱数生成部230が出力した索引乱数sとを入力する。累乗部242は、CPU911を用いて、元e(g’,g)のs乗である群Gの元[e(g’,g]を算出する。累乗部242は、CPU911を用いて、算出した元を判定元E’として出力する。
ここで、公開元g’は、群Gの生成元gのy乗であるから、判定元E’は、
群Gの元e(g,g)の(s・y)乗である。
The determination source calculation unit 240 includes a pairing value calculation unit 241 and a power unit 242.
Using the CPU 911, the pairing value calculation unit 241 inputs the disclosure source g 1 ′ stored in the disclosure source storage unit 216 and the generation source g 2 of the group G 2 stored in the second generation source storage unit 212. . The pairing value calculation unit 241 uses the CPU 911 to calculate an element e (g 1 ′, g 2 ) of the group G 3 obtained by mapping a pair of the element g 1 ′ and the element g 2 using the pairing map e. . The pairing value calculation unit 241 uses the CPU 911 to output the calculated element e (g 1 ′, g 2 ).
The power unit 242 uses the CPU 911 to input the element e (g 1 ′, g 2 ) output from the pairing value calculation unit 241 and the index random number s output from the index random number generation unit 230. Power unit 242, by using the CPU 911, calculates an original e (g 1 ', g 2 ) based on [e (g 1 of the group G 3 be a power s of', g 2) s]. The power unit 242 uses the CPU 911 to output the calculated element as the determination element E ′.
Here, since the disclosure source g 1 ′ is the y-th power of the generation source g 1 of the group G 1 , the determination source E ′ is
The element e (g 1 , g 2 ) of the group G 3 is the (s · y) power.

乱数元算出部270は、CPU911を用いて、乱数元E”を算出する。乱数元E”は、索引乱数を暗号化したものであり、暗号化索引データの一部である。乱数元算出部270は、累乗部271を有する。
累乗部271は、CPU911を用いて、第一生成元記憶部211が記憶した群Gの生成元gと、索引乱数生成部230が出力した索引乱数sとを入力する。累乗部271は、CPU911を用いて、元gのs乗である群Gの元(g )を算出する。累乗部271は、CPU911を用いて、算出した元(g )を乱数元E”として出力する。
The random number source calculation unit 270 calculates a random number source E ″ using the CPU 911. The random number source E ″ is an encrypted index random number and is a part of the encrypted index data. The random number element calculation unit 270 includes a power unit 271.
The power unit 271 uses the CPU 911 to input the generation source g 1 of the group G 1 stored in the first generation source storage unit 211 and the index random number s output from the index random number generation unit 230. Power unit 271, by using the CPU 911, calculates an original (g 1 s) of the group G 1 be a power of the original g 1 s. The power unit 271 uses the CPU 911 to output the calculated element (g 1 s ) as the random number element E ″.

索引元算出部250は、関数値算出部252、累乗部253を有する。
関数値算出部252は、CPU911を用いて、公開乱数元記憶部217が記憶したn個の公開乱数元uと、索引整数記憶部224が記憶したn個の索引整数hとを入力する。関数値算出部252は、CPU911を用いて、1以上n以下のn個の整数それぞれについて、対応する公開乱数元uと、対応する索引整数hとに基づいて、索引整数hと公開乱数元uとの組を関数Uに代入した値を算出する。関数値算出部252は、CPU911を用いて、算出したn個の値を関数値U(h,u)として出力する。
関数Uは、関数値算出部362が用いる関数と同じ関数である。したがって、索引整数hと検索整数ηとが等しければ、関数値算出部252が算出する関数値U(h,u)と関数値算出部362が算出する関数値U(η,u)とは等しい。
The index element calculation unit 250 includes a function value calculation unit 252 and a power unit 253.
Using the CPU 911, the function value calculation unit 252 inputs n public random number sources u i stored in the public random number source storage unit 217 and n index integers h i stored in the index integer storage unit 224. . Function value calculation unit 252, by using the CPU 911, for each 1 to n of n integers, the corresponding public random number source u i, based on the corresponding index integer h i, publish and index integer h i A value obtained by substituting the pair with the random number element u i into the function U is calculated. Using the CPU 911, the function value calculation unit 252 outputs the calculated n values as function values U (h i , u i ).
The function U is the same function as the function used by the function value calculation unit 362. Therefore, if the index integer h i is equal to the search integer η i , the function value U (h i , u i ) calculated by the function value calculation unit 252 and the function value U (η i , u i ).

累乗部253は、CPU911を用いて、関数値算出部252が出力したn個の関数値U(h,u)と、索引乱数生成部230が出力した索引乱数sとを入力する。累乗部253は、CPU911を用いて、1以上n以下のn個の整数それぞれについて、関数値U(h,u)のs乗である群Gの元[U(h,u]を算出する。累乗部253は、CPU911を用いて、算出したn個の元[U(h,u]を索引元Eとして出力する。 The power unit 253 uses the CPU 911 to input the n function values U (h i , u i ) output from the function value calculation unit 252 and the index random number s output from the index random number generation unit 230. The power unit 253 uses the CPU 911 to generate an element [U (h i , u i ) of the group G 2 that is the s power of the function value U (h i , u i ) for each of n integers of 1 to n. ) S ] is calculated. The power unit 253, using the CPU 911, outputs the calculated n elements [U (h i , u i ) s ] as the index element E i .

暗号化索引出力部260は、索引元出力部261、判定元出力部263、乱数元出力部264を有する。索引元出力部261は、CPU911を用いて、累乗部253が出力したn個の索引元Eを入力して、外部に出力する。判定元出力部263は、CPU911を用いて、累乗部242が出力した判定元E’を入力して、外部に出力する。乱数元出力部264は、CPU911を用いて、累乗部271が出力した乱数元E”を入力して、外部に出力する。 The encrypted index output unit 260 includes an index source output unit 261, a determination source output unit 263, and a random number source output unit 264. Using the CPU 911, the index source output unit 261 inputs the n index sources E i output from the power unit 253 and outputs them to the outside. Using the CPU 911, the determination source output unit 263 inputs the determination source E ′ output from the power unit 242 and outputs the input to the outside. Using the CPU 911, the random number source output unit 264 receives the random number source E ″ output from the power unit 271 and outputs it to the outside.

図16は、この実施の形態における検索装置400の構成の一例を示すブロック構成図である。
検索装置400は、索引数記憶部415、暗号化索引記憶部420、暗号化検索記憶部430、判定対象選択部441、補間係数値算出部442、写像元算出部450、比較元算出部460、判定部470を有する。
FIG. 16 is a block configuration diagram showing an example of the configuration of the search device 400 in this embodiment.
The search apparatus 400 includes an index number storage unit 415, an encrypted index storage unit 420, an encrypted search storage unit 430, a determination target selection unit 441, an interpolation coefficient value calculation unit 442, a mapping source calculation unit 450, a comparison source calculation unit 460, A determination unit 470 is included.

暗号化索引記憶部420は、索引元記憶部421、判定元記憶部422、乱数元記憶部424を有する。索引元記憶部421は、磁気ディスク装置920を用いて、1つの暗号化索引データについてn個ずつ索引元Eを記憶する。判定元記憶部422は、磁気ディスク装置920を用いて、1つの暗号化索引データについて1つずつの判定元E’を記憶する。乱数元記憶部424は、磁気ディスク装置920を用いて、1つの暗号化索引データについて1つずつの乱数元E”を記憶する。 The encrypted index storage unit 420 includes an index source storage unit 421, a determination source storage unit 422, and a random number source storage unit 424. The index source storage unit 421 uses the magnetic disk device 920 to store n index sources E i for each encrypted index data. The determination source storage unit 422 uses the magnetic disk device 920 to store one determination source E ′ for each encrypted index data. The random number source storage unit 424 uses the magnetic disk device 920 to store one random number source E ″ for each encrypted index data.

暗号化検索記憶部430は、閾値記憶部431、検索元記憶部432、検索乱数元記憶部433を有する。閾値記憶部431は、磁気ディスク装置920を用いて、閾値dを記憶する。検索元記憶部432は、磁気ディスク装置920を用いて、n個の検索元Tを記憶する。検索乱数元記憶部433は、磁気ディスク装置920を用いて、n個の検索乱数元tを記憶する。 The encrypted search storage unit 430 includes a threshold value storage unit 431, a search source storage unit 432, and a search random number source storage unit 433. The threshold storage unit 431 stores the threshold d using the magnetic disk device 920. Search source storage unit 432, by using the magnetic disk device 920 stores n pieces of retrieval source T i. Search random number source storage unit 433, by using the magnetic disk device 920 stores n pieces of search random number based on t i.

写像元算出部450は、二つのペアリング値算出部451,453、除算部454、累乗部455を有する。
ペアリング値算出部451は、CPU911を用いて、乱数元記憶部424が記憶した乱数元E”と、検索元記憶部432が記憶したn個の検索元Tとを入力する。ペアリング値算出部451は、CPU911を用いて、1以上n以下のn個の整数それぞれについて、乱数元E”と、対応する検索元Tとに基づいて、ペアリング写像eにより、乱数元E”と検索元Tとの組を写像した群Gの元e(E”,T)を算出する。ペアリング値算出部451は、CPU911を用いて、算出したn個の元e(E”,T)(iは1以上n以下の整数。)を出力する。
ペアリング値算出部453は、CPU911を用いて、索引元記憶部421が記憶したn個の索引元Eと、検索乱数元記憶部433が記憶したn個の検索乱数元tとを入力する。ペアリング値算出部453は、CPU911を用いて、1以上n以下のn個の整数それぞれについて、対応する索引元Eと、対応する検索乱数元tとに基づいて、ペアリング写像eにより、検索乱数元tと索引元Eとの組を写像した群Gの元e(t,E)を算出する。ペアリング値算出部453は、CPU911を用いて、算出したn個の元e(t,E)(iは1以上n以下の整数。)を出力する。
除算部454は、CPU911を用いて、ペアリング値算出部451が出力したn個の元e(E”,T)と、ペアリング値算出部453が出力したn個の元e(t,E)とを入力する。除算部454は、CPU911を用いて、1以上n以下のn個の整数それぞれについて、対応する元e(E”,T)と、対応する元e(t,E)とに基づいて、元e(E”,T)を元e(t,E)で割った商[e(E”,T)/e(t,E)]を算出する。除算部454は、CPU911を用いて、算出したn個の商をペアリング値e(iは1以上n以下の整数。)として出力する。
ここで、乱数元E”は、群Gの生成元gのs乗であり、検索元Tは、群Gの生成元gのf(i)乗と関数値U(η,u)との積であり、検索乱数元tは、群Gの生成元gのt乗であり、索引元Eは、関数値U(h,u)のs乗であるから、ペアリング値eは、

Figure 0005274271
The mapping source calculation unit 450 includes two pairing value calculation units 451 and 453, a division unit 454, and a power unit 455.
Pairing value calculation unit 451, by using the CPU 911, the random number and the source storage unit 424 stores the random number based on E ", the search source storage unit 432 inputs the n number of search source T i stored. Pairing value calculating unit 451, using the CPU 911, for each 1 to n of the n integers, the random number based on E "and, on the basis of the corresponding search source T i, by pairing mapping e, a random number based on E" and The element e (E ″, T i ) of the group G 3 that maps the pair with the search source T i is calculated. Using the CPU 911, the pairing value calculation unit 451 outputs the calculated n elements e (E ″, T i ) (i is an integer between 1 and n).
The pairing value calculation unit 453 uses the CPU 911 to input the n index sources E i stored in the index source storage unit 421 and the n search random number sources t i stored in the search random number source storage unit 433. To do. The pairing value calculation unit 453 uses the CPU 911 to perform the pairing map e on the basis of the corresponding index element E i and the corresponding search random number element t i for each of n integers of 1 to n. , calculated based on e (t i, E i) of the group G 3 which maps a set of the search random number based on t i and index based E i a. Using the CPU 911, the pairing value calculation unit 453 outputs the calculated n elements e (t i , E i ) (i is an integer of 1 to n).
Using the CPU 911, the division unit 454 uses the n elements e (E ″, T i ) output by the pairing value calculation unit 451 and the n elements e (t i ) output by the pairing value calculation unit 453. , E i ) Using the CPU 911, the division unit 454 uses a corresponding element e (E ″, T i ) and a corresponding element e (t) for each of n integers of 1 to n. i, based on the E i), based on e (E ", T i) the original e (t i, the quotient obtained by dividing by E i) [e (E" , T i) / e (t i, E i )] Is calculated. Using the CPU 911, the division unit 454 outputs the calculated n quotients as a pairing value e i (i is an integer between 1 and n).
Here, the random number element E ″ is the s-th power of the generator g 1 of the group G 1 , and the search source T i is the f (i) power of the generator g 2 of the group G 2 and the function value U (η i , u i) the product of the search random number based on t i is a power of t i of origin g 1 of the group G 1, an index based on E i is the function value U (h i, s of u i) Since it is a power, the pairing value e i is
Figure 0005274271

である。 It is.

累乗部455は、CPU911を用いて、補間係数値算出部442が出力したd個の補間係数値Δi,Sと、ペアリング値算出部451が出力したn個のペアリング値eのうち判定対象選択部441が選択したd個の整数に対応するd個のペアリング値eとを入力する。累乗部455は、判定対象選択部441が選択したd個の整数それぞれについて、対応する補間係数値Δi,Sと、対応するペアリング値eとに基づいて、ペアリング値eのΔi,S乗である群Gの元を算出する。累乗部455は、CPU911を用いて、算出したd個の元を写像元e’として出力する。 Using the CPU 911, the power unit 455 uses the d interpolation coefficient values Δ i, S output from the interpolation coefficient value calculation unit 442 and the n pairing values e i output from the pairing value calculation unit 451. The d pairing values e i corresponding to the d integers selected by the determination target selection unit 441 are input. Power unit 455, for each determination target selection unit 441 selects the d integers, and the corresponding interpolation coefficient value delta i, S, on the basis of the corresponding pairing value e i, the pairing value e i delta i, to calculate the original group G 3 be a power S. The power unit 455 uses the CPU 911 to output the calculated d elements as the mapping element e ′ i .

比較元算出部460は、総積部461を有する。
総積部461は、CPU911を用いて、累乗部455が出力したd個の写像元e’を入力する。総積部461は、CPU911を用いて、入力したd個の写像元e’すべての総積Π[e’]を算出する。総積部461は、CPU911を用いて、算出した総積Π[e’]を比較元Bとして出力する。
ここで、比較元Bは、

Figure 0005274271
である。 The comparison source calculation unit 460 includes a total product unit 461.
Using the CPU 911, the total product unit 461 receives the d mapping sources e ′ i output from the power unit 455. Using the CPU 911, the total product unit 461 calculates the total product Π [e ′ i ] of all the input d mapping sources e ′ i . The total product unit 461 uses the CPU 911 to output the calculated total product Π [e ′ i ] as the comparison source B.
Here, the comparison source B is
Figure 0005274271
It is.

判定部470は、CPU911を用いて、検索条件に合うか否かを判定する対象である索引について判定元記憶部422が記憶した判定元E’と、総積部461が出力した比較元Bとを入力する。判定部470は、入力した判定元E’と比較元Bとを比較し、一致する場合に、その索引が検索条件に合うと判定する。判定部470は、CPU911を用いて、判定した結果を出力する。   The determination unit 470 uses the CPU 911 to determine the determination source E ′ stored in the determination source storage unit 422 for the index that is the target for determining whether or not the search condition is satisfied, and the comparison source B output from the total product unit 461. Enter. The determination unit 470 compares the input determination source E ′ and the comparison source B, and determines that the index meets the search condition if they match. The determination unit 470 uses the CPU 911 to output the determined result.

すべてのi∈Sについて、h=ηである場合、U(h,u)=U(η,u)であるから、比較元Bは、

Figure 0005274271
となり、比較元Bは、判定元E’と一致する。 For all iεS, if h i = η i , U (h i , u i ) = U (η i , u i ), so the comparison source B is
Figure 0005274271
Thus, the comparison source B matches the determination source E ′.

一方、いずれかのi∈Sについて、h≠ηである場合、B=E’となる確率は、極めて低い。例えば、i∈S’(S’はSの部分集合であり空集合でない。)について、h≠ηであり、それ以外のi∈Sについて、h=ηだとすると、

Figure 0005274271
である。例えば、関数Uが数21で定義される関数である場合、
Figure 0005274271
であるから、B=E’となるのは、
Figure 0005274271
の場合のみである。この値は、0以上p未満のランダムな値をとるから、0になる確率は1/pである。pは通常大きな数であるから、この確率は、極めて低い。 On the other hand, for any iεS, if h i ≠ η i , the probability of B = E ′ is very low. For example, if i ∈ S ′ (S ′ is a subset of S and not an empty set), and h i ≠ η i and h i = η i for other i∈S,
Figure 0005274271
It is. For example, when the function U is a function defined by Equation 21,
Figure 0005274271
Therefore, B = E '
Figure 0005274271
This is only the case. Since this value takes a random value of 0 or more and less than p, the probability of becoming 0 is 1 / p. Since p is usually a large number, this probability is very low.

図17は、この実施の形態における設定処理S610の流れの一例を示すフローチャート図である。
設定処理S610は、第二生成元生成工程S612、秘密整数生成工程S614、公開元算出工程S615、整数選択工程S616、公開乱数元生成工程S618、整数繰り返し工程S620を有する。
FIG. 17 is a flowchart showing an example of the flow of the setting process S610 in this embodiment.
The setting process S610 includes a second generation source generation step S612, a secret integer generation step S614, a public source calculation step S615, an integer selection step S616, a public random number source generation step S618, and an integer repetition step S620.

第二生成元生成工程S612において、第二生成元算出部147は、CPU911を用いて、群Gの元であって単位元でない元をランダムに生成して、生成元gとする。
秘密整数生成工程S614において、秘密整数生成部131は、CPU911を用いて、1以上p未満の整数をランダムに生成して、秘密整数yとする。
公開元算出工程S615において、公開元算出部141は、CPU911を用いて、第一生成元記憶部111が記憶した群Gの生成元gと、秘密整数生成工程S614で秘密整数生成部131が生成した秘密整数yとに基づいて、元gのy乗である群Gの元を算出して、公開元g’とする。
In the second generation source generating step S612, the second generation element calculation unit 147, using the CPU 911, the original non-unity a former group G 2 are randomly generated, and a generator g 2.
In the secret integer generation step S614, the secret integer generation unit 131 uses the CPU 911 to randomly generate an integer that is greater than or equal to 1 and less than p and sets it as the secret integer y.
In the public element calculation step S615, the public element calculation unit 141, by using the CPU 911, and a generator g 1 of the group G 1 of the first generation source storage unit 111 and stored by the secret integer generating unit 131 by the secret integer generating step S614 Based on the secret integer y generated by, the element of the group G 1 that is the y-th power of the element g 1 is calculated as a public element g 1 ′.

整数選択工程S616において、公開乱数元算出部142は、CPU911を用いて、1以上n以下のn個の整数のなかから、整数を1つずつ順に選択して、整数iとする。
公開乱数元生成工程S618において、公開乱数元算出部142は、CPU911を用いて、整数選択工程S616で選択した整数iについて、群Gの元であって単位元でない元をランダムに生成して、公開乱数元uとする。
整数繰り返し工程S620において、公開乱数元算出部142は、CPU911を用いて、1以上n以下のすべての整数を、整数選択工程S616で選択したか否かを判定する。まだ選択していない整数があると判定した場合、公開乱数元算出部142は、CPU911を用いて、整数選択工程S616に戻り、次の整数を選択する。すべての整数を選択したと判定した場合、設定装置100は、設定処理S610を終了する。
In the integer selection step S616, the public random number source calculation unit 142 uses the CPU 911 to select integers one by one from n integers of 1 to n in order to obtain an integer i.
In public random element generation step S618, the public random element calculation unit 142 uses the CPU 911, the integer i selected in integer selection step S616, the source is not the unit A of the original group G 2 source to randomly generated , The public random number source u i .
In the integer repetition step S620, the public random number source calculation unit 142 uses the CPU 911 to determine whether all integers greater than or equal to 1 and less than n have been selected in the integer selection step S616. If it is determined that there is an integer that has not yet been selected, the public random number source calculation unit 142 uses the CPU 911 to return to the integer selection step S616 and select the next integer. If it is determined that all the integers have been selected, the setting apparatus 100 ends the setting process S610.

図18は、この実施の形態における索引暗号化処理S630の流れの一例を示すフローチャート図である。
索引暗号化処理S630は、索引乱数生成工程S631、判定元算出工程S632、乱数元算出工程S634、整数選択工程S635、索引整数算出工程S636、索引元算出工程S637、整数繰り返し工程S638を有する。
FIG. 18 is a flowchart showing an example of the flow of the index encryption processing S630 in this embodiment.
The index encryption processing S630 includes an index random number generation step S631, a determination source calculation step S632, a random number source calculation step S634, an integer selection step S635, an index integer calculation step S636, an index source calculation step S637, and an integer repetition step S638.

索引乱数生成工程S631において、索引乱数生成部230は、CPU911を用いて、1以上p未満の整数をランダムに生成して、索引乱数sとする。
判定元算出工程S632において、ペアリング値算出部241は、CPU911を用いて、ペアリング写像eにより、公開元記憶部216が記憶した公開元g’と、第二生成元記憶部212が記憶した群Gの生成元gとの組を写像した群Gの元e(g’,g)を算出する。累乗部242は、CPU911を用いて、ペアリング値算出部241が算出した元e(g’,g)と、索引乱数生成工程S631で索引乱数生成部230が生成した索引乱数sとに基づいて、元e(g’,g)のs乗である群Gの元を算出して、判定元E’とする。
乱数元算出工程S634において、累乗部271は、CPU911を用いて、第一生成元記憶部211が記憶した群Gの生成元gと、索引乱数生成工程S631で索引乱数生成部230が生成した索引乱数sとに基づいて、元gのs乗である群Gの元を算出して、乱数元E”とする。
In the index random number generation step S631, the index random number generation unit 230 uses the CPU 911 to randomly generate an integer greater than or equal to 1 and less than p to obtain an index random number s.
In the determination source calculation step S632, the pairing value calculation unit 241 uses the CPU 911 to store the disclosure source g 1 ′ stored in the disclosure source storage unit 216 and the second generation source storage unit 212 using the pairing map e. The element e (g 1 ′, g 2 ) of the group G 3 that maps the set of the group G 2 and the generation source g 2 is calculated. The power unit 242 uses the CPU 911 to convert the element e (g 1 ′, g 2 ) calculated by the pairing value calculation unit 241 and the index random number s generated by the index random number generation unit 230 in the index random number generation step S631. Based on the element e (g 1 ′, g 2 ), the element of the group G 3 that is the s-th power is calculated and set as the determination element E ′.
In random element calculation step S634, a power unit 271, by using the CPU 911, and a generator g 1 of the group G 1 of the first origin storage section 211 has stored, index random number generation unit 230 in the index number generating step S631 is generated Based on the index random number s, the element of the group G 1 that is the power of the element g 1 to the s power is calculated as a random number element E ″.

整数選択工程S635において、索引変換部223は、CPU911を用いて、1以上n以下のn個の整数のなかから、整数を1つずつ順に選択して、整数iとする。
索引整数算出工程S636において、索引変換部223は、CPU911を用いて、整数選択工程S635で選択した整数iについて、写像Hにより、索引入力部221が入力した索引文字列wを写像した整数を算出して、索引整数hとする。
索引元算出工程S637において、関数値算出部252は、CPU911を用いて、整数選択工程S635で索引変換部223が選択した整数iについて、索引整数算出工程S636で索引変換部223が算出した索引整数hと、公開乱数元uとの組を、関数Uに代入した値である群Gの元を算出して、関数値U(h,u)とする。累乗部253は、CPU911を用いて、関数値算出部252が算出した関数値U(h,u)と、索引乱数生成工程S631で索引乱数生成部230が生成した索引乱数sとに基づいて、関数値U(h,u)のs乗である群Gの元を算出して、索引元Eとする。
整数繰り返し工程S638において、索引変換部223は、CPU911を用いて、1以上n以下のすべての整数を、整数選択工程S635で選択したか否かを判定する。まだ選択していない整数があると判定した場合、索引変換部223は、CPU911を用いて、整数選択工程S635に戻り、次の整数を選択する。すべての整数を選択したと判定した場合、索引暗号化装置200は、索引暗号化処理S630を終了する。
In the integer selection step S635, the index conversion unit 223 uses the CPU 911 to select integers one by one from n integers of 1 to n in order to obtain an integer i.
In the index integer calculation step S636, the index conversion unit 223 uses the CPU 911 to calculate an integer obtained by mapping the index character string w i input by the index input unit 221 using the mapping H for the integer i selected in the integer selection step S635. calculated and, to an index integer h i.
In the index source calculation step S637, the function value calculation unit 252 uses the CPU 911 to calculate the index integer calculated by the index conversion unit 223 in the index integer calculation step S636 for the integer i selected by the index conversion unit 223 in the integer selection step S635. and h i, a set of the public random number source u i, calculate the original group G 2 is a value assigned to a function U, the function value U (h i, u i) and. The power unit 253 uses the CPU 911 based on the function value U (h i , u i ) calculated by the function value calculation unit 252 and the index random number s generated by the index random number generation unit 230 in the index random number generation step S631. Then, the element of the group G 2 that is the s-th power of the function value U (h i , u i ) is calculated and set as the index element E i .
In the integer repetition step S638, the index conversion unit 223 uses the CPU 911 to determine whether all integers of 1 or more and n or less have been selected in the integer selection step S635. If it is determined that there is an integer that has not been selected, the index conversion unit 223 uses the CPU 911 to return to the integer selection step S635 and select the next integer. If it is determined that all the integers have been selected, the index encryption apparatus 200 ends the index encryption process S630.

図19は、この実施の形態における検索暗号化処理S650の流れの一例を示すフローチャート図である。
検索暗号化処理S650は、次数選択工程S651、多項式係数生成工程S652、次数繰り返し工程S653、最高次係数生成工程S654、整数選択工程S655、検索整数算出工程S656、多項式値算出工程S657、検索乱数生成工程S658、検索元算出工程S659、検索乱数元算出工程S660、整数繰り返し工程S661を有する。
FIG. 19 is a flowchart showing an example of the flow of the search encryption process S650 in this embodiment.
The search encryption process S650 includes an order selection step S651, a polynomial coefficient generation step S652, an order repetition step S653, a highest order coefficient generation step S654, an integer selection step S655, a search integer calculation step S656, a polynomial value calculation step S657, and a search random number generation. Step S658, search source calculation step S659, search random number source calculation step S660, and integer repetition step S661.

検索乱数生成工程S658において、検索乱数生成部380は、CPU911を用いて、整数選択工程S655で検索変換部352が選択した整数iについて、1以上p未満の整数をランダムに生成して、検索乱数rとする。
検索元算出工程S659において、関数値算出部362は、CPU911を用いて、整数選択工程S655で検索変換部352が選択した整数iについて、検索整数算出工程S656で検索変換部352が算出した検索整数ηと、公開乱数元uとの組を、関数Uに代入した値である群Gの元を算出して、関数値U(η,u)とする。累乗部365は、CPU911を用いて、関数値算出部362が算出した関数値U(η,u)と、検索乱数生成工程S658で検索乱数生成部380が生成した検索乱数rとに基づいて、関数値U(η,u)のr乗である群Gの元[U(η,u)^r]を算出する。累乗部366は、CPU911を用いて、第二生成元記憶部312が記憶した群Gの生成元gと、多項式値算出工程S657で多項式値算出部344が算出した多項式値f(i)とに基づいて、元gのf(i)乗である群Gの元[g^f(i)]を算出する。積算出部367は、CPU911を用いて、累乗部366が算出した元[g^f(i)]と、累乗部365が算出した元[U(η,u)^r]との積である群Gの元を算出して、検索元Tとする。
検索乱数元算出工程S660において、累乗部391は、CPU911を用いて、第一生成元記憶部311が記憶した群Gの生成元gと、検索乱数生成工程S658で検索乱数生成部380が生成した検索乱数rとに基づいて、元gのr乗である群Gの元を算出して、検索乱数元tとする。
In the search random number generation step S658, the search random number generation unit 380 uses the CPU 911 to randomly generate an integer between 1 and less than p for the integer i selected by the search conversion unit 352 in the integer selection step S655. Let r i .
In the search source calculation step S659, the function value calculation unit 362 uses the CPU 911 to search for the integer i selected by the search conversion unit 352 in the integer selection step S655, and the search integer calculated by the search conversion unit 352 in the search integer calculation step S656. and eta i, a set of the public random number source u i, calculate the original group G 2 is a value assigned to the function U, a function value U (η i, u i) . The power unit 365 uses the CPU 911 to convert the function value U (η i , u i ) calculated by the function value calculation unit 362 and the search random number r i generated by the search random number generation unit 380 in the search random number generation step S658. Based on this, the element [U (η i , u i ) ^ r i ] of the group G 2 that is the r i power of the function value U (η i , u i ) is calculated. The power unit 366 uses the CPU 911 to generate the generator g 2 of the group G 2 stored in the second generator storage unit 312 and the polynomial value f (i) calculated by the polynomial value calculator 344 in the polynomial value calculation step S657. Based on the above, the element [g 2 ^ f (i)] of the group G 2 that is the power of the element g 2 to the power of f (i) is calculated. Using the CPU 911, the product calculation unit 367 uses the element [g 2 ^ f (i)] calculated by the power unit 366 and the element [U (η i , u i ) ^ r i ] calculated by the power unit 365. It calculates the original group G 2 is a product, a search source T i.
In search random element calculation step S660, a power unit 391, by using the CPU 911, and a generator g 1 of the group G 1 of the first generation source storage unit 311 and stored by the search random number generation unit 380 in the search random number generation step S658 generated on the basis of the search random number r i, to calculate the original group G 1 be a power r i of the original g 1, and searches the random number based on t i.

図20は、この実施の形態における検索実行処理S670の流れの一例を示すフローチャート図である。
検索実行処理S670は、索引選択工程S671、整数選択工程S672、ペアリング値算出工程S673、整数繰り返し工程S674、判定選択工程S675、判定整数選択工程S676、補間係数値算出工程S677、累乗工程S678、判定整数繰り返し工程S679、総積工程S680、判定工程S681、判定繰り返し工程S682、索引繰り返し工程S683を有する。
FIG. 20 is a flowchart showing an example of the flow of search execution processing S670 in this embodiment.
Search execution processing S670 includes index selection step S671, integer selection step S672, pairing value calculation step S673, integer repetition step S674, determination selection step S675, determination integer selection step S676, interpolation coefficient value calculation step S677, power step S678, It has determination integer repetition process S679, total product process S680, determination process S681, determination repetition process S682, and index repetition process S683.

ペアリング値算出工程S673において、ペアリング値算出部451は、CPU911を用いて、索引選択工程S671で選択した暗号化索引データについて乱数元記憶部424が記憶した乱数元E”と、整数選択工程S672で選択した整数iについて検索元記憶部432が記憶した検索元Tとに基づいて、ペアリング写像eにより、乱数元E”と検索元Tとの組を写像した群Gの元e(E”,T)を算出して、第一ペアリング値とする。ペアリング値算出部453は、CPU911を用いて、整数選択工程S672で選択した整数iについて、索引元記憶部421が記憶した索引元Eと、検索乱数元記憶部433が記憶した検索乱数元tとに基づいて、ペアリング写像eにより、検索乱数元tと索引元Eとの組を写像した群Gの元e(t,E)を算出して第二ペアリング値とする。除算部454は、CPU911を用いて、ペアリング値算出部451が算出した第一ペアリング値e(E”,T)と、ペアリング値算出部453が算出した第二ペアリング値e(t,E)とに基づいて、第一ペアリング値e(E”,T)を第二ペアリング値e(t,E)で割った商である群Gの元を算出して、ペアリング値eとする。 In the pairing value calculation step S673, the pairing value calculation unit 451 uses the CPU 911 to store the random number source E ″ stored in the random number source storage unit 424 for the encrypted index data selected in the index selection step S671, and the integer selection step. Based on the search source T i stored in the search source storage unit 432 for the integer i selected in S672, the element of the group G 3 is obtained by mapping the pair of the random number source E ″ and the search source T i by the pairing map e. e (E ″, T i ) is calculated and used as the first pairing value. The pairing value calculation unit 453 uses the CPU 911 to perform the index source storage unit 421 for the integer i selected in the integer selection step S672. There the index based on E i stored, based on the search random number based on t i a search random number source storage unit 433 stores, by pairing mapping e, a set of the search random number based on t i and index based E i Source e (t i, E i) of the group G 3 that image and the second pairing value calculated. Division unit 454, by using the CPU 911, the first pairing the pairing value calculation unit 451 has calculated Based on the value e (E ″, T i ) and the second pairing value e (t i , E i ) calculated by the pairing value calculation unit 453, the first pairing value e (E ″, T i). ) the second pairing value e (t i, and calculates an element of a group G 3 is divided by E i), the pairing value e i.

この実施の形態における検索システム800は、実施の形態1と同様の効果を奏する。
更に、検索暗号化装置300が耐タンパ性のある記憶装置などを用いて秘密裡に保持すべき秘密整数の数が、索引数nにかかわらず1つなので、耐タンパ性のある記憶装置の記憶容量によって、索引数nが制限されることがない。
The search system 800 in this embodiment has the same effect as that of the first embodiment.
Further, since the number of secret integers that the search encryption apparatus 300 should keep in a secret manner using a tamper-resistant storage device or the like is one regardless of the index number n, the storage of the tamper-resistant storage device is possible. The number of indexes n is not limited by the capacity.

この実施の形態で用いる写像φ〜φは、次の式で定義される。

Figure 0005274271
Maps φ 1 to φ 5 used in this embodiment are defined by the following equations.
Figure 0005274271

すなわち、第一の写像φは、0以上p未満の整数を位数pの群Gの元へ写す写像であり、整数xを、元gのx乗へ写す。元gは群Gの単位元でない。したがって、第一の写像φは全単射であり、整数がpを法とする加法についてなす群から群Gへの同型写像である。
第二の写像φは、0以上p未満の整数を位数pの群Gの元へ写す写像であり、整数xを、関数値U(x,u)のs乗へ写す。索引整数sは0でない。したがって、関数Uがxについて全単射であれば、第二の写像φも全単射である。
第三の写像φは、位数pの群Gの元を位数pの群Gへ写す写像であり、元Xを、元e(X,g)のs乗へ写す。生成元gは群Gの単位元でなく、ペアリング写像eは双線形かつ非縮退であり、索引乱数sは0でない。したがって、第三の写像φは全単射であり、同型写像である。
第四の写像φは、0以上p未満の整数と0以上p未満の整数との組を位数pの群Gの元へ写す写像であり、整数xと整数xとの組(x,x)を、元gのx乗と関数値U(x,u)のr乗との積へ写す。生成元gは群Gの単位元でなく、検索乱数rは0でない。したがって、xを固定して考えると、xが0でなく、関数Uが全単射であれば、第四の写像φは、全単射である。また、xを固定して考えると、第四の写像φは全単射であり、整数がpを法とする加法についてなす群から群Gへの同型写像である。
第五の写像φは、位数pの群Gの元と位数pの群Gの元と0以上p未満の整数との組を位数pの群Gの元に写す写像であり、元Xと元Xと整数xとの組(X,X,x)を、元e(g ,X)を元e(g^r,X)で割った商のx乗へ写す。生成元gは群Gの単位元でなく、索引乱数s及び検索乱数rは0でなく、ペアリング写像eは双線形かつ非縮退である。したがって、X,xを固定して考えると、第五の写像φは、xが0でないとき全単射である。また、X,xを固定して考えると、第五の写像φは、xが0でないとき全単射であり、群Gから群Gへの同型写像である。更に、X,Xを固定して考えると、第五の写像φは全単射であり、整数がpを法とする加法についてなす群から群Gへの同型写像である。
That is, the first mapping φ 1 is a mapping that maps an integer of 0 or more and less than p to the element of the group G 1 of order p, and maps the integer x to the x power of the element g 1 . Element g 1 is not a unit element of group G 1 . Accordingly, the first map φ 1 is bijective, and is an isomorphism from group to group G 1 formed by addition in which an integer modulo p.
The second mapping φ 2 is a mapping that maps an integer of 0 or more and less than p to the element of the group G 2 of order p, and maps the integer x to the s-th power of the function value U (x, u i ). The index integer s is not zero. Therefore, if the function U is bijective with respect to x, the second map φ 2 is also bijective.
The third mapping φ 3 is a mapping that maps the element of the group G 1 of order p to the group G 3 of the order p, and maps the element X to the power s of the element e (X, g 2 ). The generator g 2 is not a unit element of the group G 2 , the pairing map e is bilinear and non-degenerate, and the index random number s is not zero. Therefore, the third map φ 3 is bijective and is an isomorphic map.
Fourth mapping phi 4 of a set of copy to order p group G 2 of the original mapping and 0 or p less than an integer and 0 or p less than an integer, a set of integer x 1 and integer x 2 (x 1, x 2), and copy to the product of the r i th power of the original g 2 of x 2 square and function values U (x 1, u i) . The generator g 2 is not a unit element of the group G 2 and the search random number r i is not 0. Therefore, when x 2 is fixed, if x 2 is not 0 and the function U is bijective, the fourth map φ 4 is bijective. When x 1 is fixed, the fourth map φ 4 is bijective, and is an isomorphism from the group to the group G 2 formed by addition with an integer modulo p.
A fifth mapping phi 5, copy a set of the order p integer less than the original and 0 or p group G 2 of the original and the order p of the group G 2 of the original order p group G 3 mapping , and the sets of the original X 1 original X 2 and integer x 3 (X 1, X 2 , x 3), based on e (g 1 s, X 2 ) the original e (g 1 ^ r i, X 1 ) Copy the quotient divided by x 3 to the power of x3. The generator g 1 is not a unit element of the group G 1 , the index random number s and the search random number r i are not 0, and the pairing map e is bilinear and non-degenerate. Therefore, when X 2 and x 3 are fixed, the fifth map φ 5 is bijective when x 3 is not 0. When X 1 and x 3 are fixed, the fifth map φ 5 is bijective when x 3 is not 0, and is an isomorphic map from the group G 2 to the group G 3 . Further, when X 1 and X 2 are fixed, the fifth map φ 5 is bijective, and is an isomorphism from the group formed by addition modulo p to the group G 3 .

また、この実施の形態における写像φ〜φについては、次の関係が成り立つ。

Figure 0005274271
Further, the following relations hold for the mappings φ 1 to φ 5 in this embodiment.
Figure 0005274271

この実施の形態における検索システム800において、上記設定装置100は、更に、公開乱数元算出部142を有する。
上記公開元算出部141は、上記処理装置を用いて、第一の群Gの生成元である第一生成元g(上記第一の群Gの位数はp。)と、上記秘密整数生成部131が生成した秘密整数yとに基づいて、上記秘密整数yと等しい数の上記第一生成元gを、上記第一の群Gの群演算により結合した元g を算出して、公開元g’とする。
上記公開乱数元算出部142は、上記処理装置を用いて、1以上n以下のn個の整数iそれぞれについて、第二の群Gの生成元(上記第二の群の位数はp。)をランダムに生成して、n個の公開乱数元uとする。
上記索引暗号化装置200は、更に、公開乱数元記憶部217と、乱数元算出部270とを有する。
上記公開乱数元記憶部217は、上記記憶装置を用いて、上記設定装置100が算出したn個の公開乱数元uを記憶する。
上記索引乱数生成部230は、上記処理装置を用いて、1以上p未満の整数をランダムに生成して、索引乱数sとする。
上記判定元算出部240は、上記処理装置を用いて、上記第二の群Gの生成元である第二生成元gと、上記公開元記憶部216が記憶した公開元g’とに基づいて、上記第一の群Gの元と上記第二の群Gの元との組を第三の群Gの元(上記第三の群の位数はp。)に写像する双線形ペアリング写像eにより、上記公開元g’と上記第二生成元gとの組が写像される上記第三の群Gの元e(g’,g)を算出し、算出した上記第三の群Gの元e(g’,g)と、上記索引乱数生成部230が生成した索引乱数sとに基づいて、上記索引乱数sと等しい数の上記第三の群Gの元e(g’,g)を、上記第三の群Gの群演算により結合した元e(g’,gを算出して、判定元E’とする。
上記乱数元算出部270は、上記処理装置を用いて、上記第一生成元gと、上記索引乱数生成部230が生成した索引乱数sとに基づいて、上記索引乱数sと等しい数の上記第一生成元gを、上記第一の群Gの群演算により結合した元g を算出して、乱数元E”とする。
上記索引元算出部250は、上記処理装置を用いて、1以上n以下のn個の整数iそれぞれについて、上記索引整数記憶部224が記憶した索引整数hと、上記公開乱数元記憶部217が記憶した公開乱数元uとに基づいて、0以上p未満の整数と上記第二の群Gの元との組を上記第二の群Gの元に写像する写像関数Uにより、上記索引整数hと上記公開乱数元uとの組を写像した上記第二の群Gの元を算出して、n個の索引関数値U(h,u)とし、1以上n以下のn個の整数iそれぞれについて、算出した上記索引関数値U(h,u)と、上記索引乱数生成部230が生成した索引乱数sとに基づいて、上記索引乱数sと等しい数の上記索引関数値U(h,u)を、上記第二の群Gの群演算により結合した元U(h,uを算出して、n個の索引元Eとする。
上記検索暗号化装置300は、更に、公開乱数元記憶部317と、検索乱数生成部380と、検索乱数元算出部390とを有する。
上記公開乱数元記憶部317は、上記記憶装置を用いて、上記設定装置100が算出したn個の公開乱数元uを記憶する。
上記検索乱数生成部380は、上記処理装置を用いて、1以上n以下のn個の整数iそれぞれについて、1以上p未満の整数をランダムに生成して、n個の検索乱数rとする。
上記検索元算出部360は、上記処理装置を用いて、1以上n以下のn個の整数iそれぞれについて、上記検索整数記憶部353が記憶した検索整数ηと、上記公開乱数元記憶部317が記憶した公開乱数元uとに基づいて、上記写像関数Uにより、上記検索整数ηと上記公開乱数元uとの組を写像して、上記第二の群Gの元を算出して、n個の検索関数値U(η,u)とし、1以上n以下のn個の整数iそれぞれについて、算出した上記検索関数値U(η,u)と、上記検索乱数生成部380が生成した検索乱数rとに基づいて、上記検索乱数rと等しい数の上記検索関数値U(η,u)を、上記第二の群Gの群演算により結合した元[U(η,u)^r]を算出し、上記第二生成元gと、上記多項式値算出部344が算出した多項式値f(i)とに基づいて、上記多項式値f(i)と等しい数の上記第二生成元gを、上記第二の群Gの群演算により結合した元[g^f(i)]を算出し、算出した上記第二の群の二つの元[U(η,u)^r],[g^f(i)]を上記第二の群Gの群演算により結合した元を算出して、n個の検索元Tとする。
上記検索乱数元算出部390は、上記処理装置を用いて、1以上n以下のn個の整数iそれぞれについて、上記第一生成元gと、上記検索乱数生成部380が生成した検索乱数rとに基づいて、上記検索乱数rと等しい数の上記第一生成元gを、上記第一の群Gの群演算により結合した元[g^r]を算出して、n個の検索乱数元tとする。
上記検索装置400は、更に、乱数元記憶部424と、検索乱数元記憶部433とを有する。
上記乱数元記憶部424は、上記記憶装置を用いて、上記索引暗号化装置200が算出した乱数元E”を記憶する。
上記検索乱数元記憶部433は、上記記憶装置を用いて、上記検索暗号化装置300が算出したn個の検索乱数元tを記憶する。
上記写像元算出部450は、上記処理装置を用いて、上記判定対象選択部441が選択したd個の判定対象整数それぞれについて、上記乱数元記憶部424が記憶した乱数元E”と、上記検索元記憶部432が記憶した検索元Tとに基づいて、上記双線形ペアリング写像eにより、上記乱数元E”と上記検索元Tとの組を写像した上記第三の群の元を算出して、d個の第一ペアリング値e(E”,T)とし、上記判定対象選択部441が選択したd個の判定対象整数それぞれについて、上記検索乱数元記憶部433が記憶した検索乱数元tと、上記索引元記憶部421が記憶した索引元Eとに基づいて、上記双線形ペアリング写像eにより、上記検索乱数元tと上記索引元Eとの組を写像した上記第三の群Gの元を算出して、d個の第二ペアリング値e(t,E)とし、上記判定対象選択部441が選択したd個の判定対象整数それぞれについて、算出した上記第一ペアリング値e(E”,T)と、算出した上記第二ペアリング値e(t,E)の逆元とを上記第三の群Gの群演算により結合した元[e(E”,T)/e(t,E)を算出して、d個の写像元e’とする。
上記比較元算出部460は、上記処理装置を用いて、上記写像元算出部450が算出したd個の写像元e’を、上記第三の群Gの群演算により結合した元Π[e’]を算出して、比較元Bとする。
In the search system 800 in this embodiment, the setting device 100 further includes a public random number source calculation unit 142.
The public element calculation unit 141, using the processing device, the first product based on g 1 is the first group G 1 of origin (of order of the first group G 1 is p.) And, the Based on the secret integer y generated by the secret integer generator 131, the element g 1 y obtained by combining the first generator g 1 having the same number as the secret integer y by the group operation of the first group G 1 Is calculated as the publisher g 1 ′.
The public random number element calculation unit 142 uses the processing apparatus to generate the second group G 2 for each of n integers 1 to n (the order of the second group is p. ) Are randomly generated to be n public random number elements u i .
The index encryption apparatus 200 further includes a public random number source storage unit 217 and a random number source calculation unit 270.
The public random number source storage unit 217 stores the n public random number sources u i calculated by the setting device 100 using the storage device.
The index random number generation unit 230 randomly generates an integer that is greater than or equal to 1 and less than p by using the processing device, and sets it as an index random number s.
The determination source calculation unit 240 uses the processing device, the second generation source g 2 that is the generation source of the second group G 2 , and the disclosure source g 1 ′ stored in the disclosure source storage unit 216. Based on the above, the set of the element of the first group G 1 and the element of the second group G 2 is mapped to the element of the third group G 3 (the order of the third group is p.). The element e (g 1 ′, g 2 ) of the third group G 3 to which the pair of the public element g 1 ′ and the second generator g 2 is mapped is calculated by the bilinear pairing map e Then, based on the calculated element e (g 1 ′, g 2 ) of the third group G 3 and the index random number s generated by the index random number generator 230, the number of the above-mentioned index random number s original e of the third group G 3 (g 1 ', g 2) the original e linked by a group operation of the third group G 3 (g 1', g 2) to calculate the s, determination source Let E '
The random number element calculation unit 270 uses the processing device to generate a number equal to the index random number s based on the first generator g 1 and the index random number s generated by the index random number generation unit 230. The element g 1 s obtained by combining the first generation element g 1 by the group operation of the first group G 1 is calculated as a random number element E ″.
The index source calculation unit 250 uses the processing device to store the index integer h i stored in the index integer storage unit 224 and the public random number source storage unit 217 for each of n integers 1 to n. There based on a public random number based on u i stored by the mapping function U of a set of the integer and the 0 to less than p second original group G 2 is mapped to the second original group G 2, An element of the second group G 2 that maps the set of the index integer h i and the public random number element u i is calculated to obtain n index function values U (h i , u i ), one or more For each of n integers i less than or equal to n, based on the calculated index function value U (h i , u i ) and the index random number s generated by the index random number generation unit 230, it is equal to the index random number s the number of the index function value U (h i, u i) and the second group operation of group G 2 of More bound original U (h i, u i) to calculate the s, the n number of indexes based on E i.
The search encryption apparatus 300 further includes a public random number source storage unit 317, a search random number generation unit 380, and a search random number source calculation unit 390.
The public random number source storage unit 317 stores n public random number sources u i calculated by the setting device 100 using the storage device.
The search random number generation unit 380 randomly generates an integer less than or equal to 1 and less than p for each of n integers i greater than or equal to 1 and less than or equal to n, using the processing device, to obtain n search random numbers r i . .
The search source calculation unit 360 uses the processing device to store the search integer η i stored in the search integer storage unit 353 and the public random number source storage unit 317 for each of n integers 1 to n. Based on the stored public random number element u i , the mapping function U maps the set of the search integer η i and the public random number element u i to calculate the element of the second group G 2 Then, the n search function values U (η i , u i ) are set, and the calculated search function values U (η i , u i ) and the search are calculated for each of the n integers i of 1 to n. Based on the search random number r i generated by the random number generation unit 380, the search function values U (η i , u i ) equal to the search random number r i are obtained by the group operation of the second group G 2. bound original [U (η i, u i ) ^ r i] is calculated, the second generator g If, on the basis of the above polynomial value calculation unit 344 has calculated polynomial value f (i), the number of which is equal to the above polynomial solutions f (i) said second product based on g 2, said second group G 2 The combined element [g 2 ^ f (i)] is calculated by the group operation, and the calculated two elements [U (η i , u i ) ^ r i ], [g 2 ^ f ( i)] to calculate the original bound by group operation of the second group G 2, and n number of search source T i.
The search random number source calculation unit 390 uses the processing device to calculate the first generation source g 1 and the search random number r generated by the search random number generation unit 380 for each of n integers 1 to n. based on the i, the search random number r i and the number of the first generation source g 1 equal to calculate the original [g 1 ^ r i] linked by the group calculation of the first group G 1, and n number of search random number based on t i.
The search device 400 further includes a random number source storage unit 424 and a search random number source storage unit 433.
The random number source storage unit 424 stores the random number source E ″ calculated by the index encryption device 200 using the storage device.
The search random number source storage unit 433, using the storage device, for storing the n search random number based on t i of the search encoder 300 is calculated.
The mapping source calculation unit 450 uses the processing device to calculate the random number source E ″ stored in the random number source storage unit 424 and the search for each of the d determination target integers selected by the determination target selection unit 441. Based on the search source T i stored in the original storage unit 432, the elements of the third group obtained by mapping the pair of the random number source E ″ and the search source T i are calculated by the bilinear pairing map e. The search random number source storage unit 433 stores the d first pairing values e (E ″, T i ) for each of the d determination target integers selected by the determination target selection unit 441. Based on the search random number element t i and the index element E i stored in the index element storage unit 421, the bilinear pairing map e is used to determine a set of the search random number element t i and the index element E i. calculate the mapping was the third group G 3 of the original To, d pieces of the second pairing value e (t i, E i) and, for each of the judging target selecting unit 441 d items to be determined integer selected calculated the first pairing value e (E ”, T i ) and an inverse element of the calculated second pairing value e (t i , E i ) by a group operation of the third group G 3 [e (E”, T i ) / E (t i , E i ) is calculated and d mapping sources e ′ i are obtained.
The comparison element calculation unit 460 uses the processing apparatus to combine the d mapping elements e ′ i calculated by the mapping element calculation unit 450 by the group operation of the third group G 3 [ e ′ i ] is calculated as a comparison source B.

安全性の証明については省略するが、この実施の形態における検索システム800によれば、索引整数や検索整数を解読しようとする第三者の攻撃に対して、安全性を有する。
更に、検索暗号化装置300が秘密裡に保持すべき秘密データの量が少なく、索引数nにかかわらず一定なので、耐タンパ性を有する記憶装置の記憶容量が少なくて済み、また、耐タンパ性を有する記憶装置の記憶容量により、索引数nが制限されることがない。
Although the proof of security is omitted, the search system 800 in this embodiment has security against attacks by a third party who tries to decipher the index integer and the search integer.
Furthermore, since the amount of secret data that the search encryption apparatus 300 should keep secretly is small and constant regardless of the number of indexes n, the storage capacity of the tamper-resistant storage device can be small, and tamper resistance The number of indexes n is not limited by the storage capacity of the storage device having.

なお、実施の形態1のなかで説明した各種の変形は、この実施の形態における検索システム800に対しても適用することができる。   Note that the various modifications described in the first embodiment can also be applied to the search system 800 in this embodiment.

以上説明した検索システム800を、例えば、個人の年齢・住所・職業・嗜好などの属性情報を保存したデータベースに適用すれば、ある属性に近い人物のみを抽出する秘匿データマッチングを実現できる。あるいは、画像データをピクセルごとに保存したデータベースに適用すれば、ある画像に近い画像のみを抽出する秘匿画像マッチングを実現できる。あるいは、指紋情報・光彩情報・静脈情報などの生体情報を保存したデータベースに適用すれば、個人識別時に生体情報を用いて検索を行うことにより、生体情報の安全性を保ちつつ個人識別や個人認証を行う生体認証を実現できる。   If the search system 800 described above is applied to, for example, a database that stores attribute information such as an individual's age, address, occupation, and preference, secret data matching that extracts only persons close to a certain attribute can be realized. Or if it applies to the database which saved image data for every pixel, secret image matching which extracts only an image close to a certain picture is realizable. Alternatively, if it is applied to a database that stores biometric information such as fingerprint information, glow information, and vein information, the biometric information is used during personal identification to perform a search while maintaining the safety of the biometric information. Biometric authentication can be realized.

100 設定装置、110,210,310 設定記憶部、111,211,311 第一生成元記憶部、112,212,312 第二生成元記憶部、113 第三生成元記憶部、115,215,315,415 索引数記憶部、121 ペアリング値算出部、130 秘密生成部、131 秘密整数生成部、132 秘密乱数生成部、140 公開算出部、141 公開元算出部、142 公開乱数元算出部、147 第二生成元算出部、150 公開出力部、151 公開元出力部、152 公開乱数元出力部、156 第一生成元出力部、157 第二生成元出力部、200 索引暗号化装置、216 公開元記憶部、217,317 公開乱数元記憶部、221 索引入力部、223 索引変換部、224 索引整数記憶部、230 索引乱数生成部、240 判定元算出部、241 ペアリング値算出部、242 累乗部、250 索引元算出部、251 指数算出部、252 関数値算出部、253 累乗部、260 暗号化索引出力部、261 索引元出力部、262 判定元出力部、263 判定元出力部、264 乱数元出力部、270 乱数元算出部、271 累乗部、300 検索暗号化装置、320 秘密記憶部、321 秘密整数記憶部、323 秘密乱数記憶部、330 検索条件入力部、331 閾値入力部、332 検索入力部、341 閾値記憶部、342 多項式係数生成部、343 多項式係数記憶部、344 多項式値算出部、352 検索変換部、353 検索整数記憶部、360 検索元算出部、361 指数算出部、362 関数値算出部、365,366 累乗部、367 積算出部、370 暗号化検索出力部、371 閾値出力部、372 検索元出力部、373 検索乱数元出力部、380 検索乱数生成部、390 検索乱数元算出部、391 累乗部、400 検索装置、420 暗号化索引記憶部、421 索引元記憶部、422 判定元記憶部、424 乱数元記憶部、430 暗号化検索記憶部、431 閾値記憶部、432 検索元記憶部、433 検索乱数元記憶部、441 判定対象選択部、442 補間係数値算出部、450 写像元算出部、451,453 ペアリング値算出部、454 除算部、455 累乗部、460 比較元算出部、461 総積部、470 判定部、800 検索システム、810 復号装置、820 暗号化装置、830 サーバ装置、840 データ暗号化装置、841 本体記憶部、842 暗号化鍵記憶部、843 本体暗号化部、850 暗号化データ記憶装置、851 暗号化本体記憶部、852 検索結果入力部、853 検索本体出力部、860 データ復号装置、861 復号鍵記憶部、862 本体復号部、863 復号本体出力部、901 表示装置、902 キーボード、903 マウス、904 FDD、905 CDD、906 プリンタ装置、907 スキャナ装置、910 システムユニット、911 CPU、912 バス、913 ROM、914 RAM、915 通信装置、920 磁気ディスク装置、921 OS、922 ウィンドウシステム、923 プログラム群、924 ファイル群、931 電話器、932 ファクシミリ機、940 インターネット、941 ゲートウェイ、942 LAN。   100 setting device, 110, 210, 310 setting storage unit, 111, 211, 311 first generation source storage unit, 112, 212, 312 second generation source storage unit, 113 third generation source storage unit, 115, 215, 315 , 415 Index number storage unit, 121 Pairing value calculation unit, 130 Secret generation unit, 131 Secret integer generation unit, 132 Secret random number generation unit, 140 Public calculation unit, 141 Public source calculation unit, 142 Public random number source calculation unit, 147 Second generation source calculation unit, 150 public output unit, 151 public source output unit, 152 public random number source output unit, 156 first generation source output unit, 157 second generation source output unit, 200 index encryption device, 216 public source Storage unit, 217, 317 Public random number source storage unit, 221 Index input unit, 223 Index conversion unit, 224 Index integer storage unit, 230 Index random number generation , 240 determination source calculation unit, 241 pairing value calculation unit, 242 exponentiation unit, 250 index source calculation unit, 251 exponent calculation unit, 252 function value calculation unit, 253 exponentiation unit, 260 encrypted index output unit, 261 index source Output unit, 262 Judgment source output unit, 263 Judgment source output unit, 264 Random number source output unit, 270 Random number source calculation unit, 271 Power unit, 300 Search encryption device, 320 Secret storage unit, 321 Secret integer storage unit, 323 Secret Random number storage unit, 330 Search condition input unit, 331 Threshold input unit, 332 Search input unit, 341 Threshold storage unit, 342 Polynomial coefficient generation unit, 343 Polynomial coefficient storage unit, 344 Polynomial coefficient calculation unit, 352 Search conversion unit, 353 search Integer storage unit, 360 search source calculation unit, 361 index calculation unit, 362 function value calculation unit, 365, 366 power unit, 67 product calculation unit, 370 encrypted search output unit, 371 threshold output unit, 372 search source output unit, 373 search random number source output unit, 380 search random number generation unit, 390 search random number source calculation unit, 391 power unit, 400 search device , 420 Encrypted index storage unit, 421 Index source storage unit, 422 Judgment source storage unit, 424 Random number source storage unit, 430 Encrypted search storage unit, 431 Threshold storage unit, 432 Search source storage unit, 433 Search random number source storage unit , 441 determination target selection unit, 442 interpolation coefficient value calculation unit, 450 mapping element calculation unit, 451, 453 pairing value calculation unit, 454 division unit, 455 power unit, 460 comparison source calculation unit, 461 total product unit, 470 determination , 800 search system, 810 decryption device, 820 encryption device, 830 server device, 840 data encryption device, 841 Main unit storage unit 842 Encryption key storage unit 843 Main unit encryption unit 850 Encrypted data storage unit 851 Encrypted main unit storage unit 852 Search result input unit 853 Search main unit output unit 860 Data decryption unit 861 Decryption Key storage unit, 862 body decryption unit, 863 decryption body output unit, 901 display device, 902 keyboard, 903 mouse, 904 FDD, 905 CDD, 906 printer device, 907 scanner device, 910 system unit, 911 CPU, 912 bus, 913 ROM, 914 RAM, 915 communication device, 920 magnetic disk device, 921 OS, 922 window system, 923 program group, 924 file group, 931 telephone, 932 facsimile machine, 940 Internet, 941 gateway, 9 2 LAN.

Claims (12)

索引暗号化装置と、検索暗号化装置と、検索装置とを有し、
上記索引暗号化装置は、データを記憶する記憶装置と、データを処理する処理装置と、索引記憶部と、索引暗号化部とを有し、
上記索引記憶部は、上記記憶装置を用いて、1以上n以下のn個の整数(nは1以上の整数。)に対応するn個の索引データを記憶し、
上記索引暗号化部は、上記処理装置を用いて、1以上n以下のn個の整数それぞれについて、上記索引記憶部が記憶した索引データを暗号化して、n個の暗号化索引データとし、
上記検索暗号化装置は、データを記憶する記憶装置と、データを処理する処理装置と、検索記憶部と、多項式値算出部と、検索暗号化部とを有し、
上記検索記憶部は、上記記憶装置を用いて、1以上n以下のn個の整数に対応するn個の検索データを記憶し、
上記多項式値算出部は、上記処理装置を用いて、1以上n以下のn個の整数それぞれについて、(d−1)次の一変数多項式(dは1以上n以下の整数。)に上記整数を代入した値を算出して、n個の多項式値とし、
上記検索暗号化部は、上記処理装置を用いて、1以上n以下のn個の整数それぞれについて、上記検索記憶部が記憶した検索データと、上記多項式値算出部が算出した多項式値との組を暗号化して、n個の暗号化検索データとし、
上記検索装置は、データを処理する処理装置と、データを記憶する記憶装置と、暗号化索引記憶部と、暗号化検索記憶部と、判定対象選択部と、補間係数値算出部と、写像算出部と、比較算出部と、判定部とを有し、
上記暗号化索引記憶部は、上記記憶装置を用いて、上記索引暗号化装置が暗号化したn個の暗号化索引データを記憶し、
上記暗号化検索記憶部は、上記記憶装置を用いて、上記検索暗号化装置が暗号化したn個の暗号化検索データを記憶し、
上記判定対象選択部は、上記処理装置を用いて、1以上n以下のn個の整数のなかからd個の整数を選択して、d個の判定対象整数とし、
上記補間係数値算出部は、上記処理装置を用いて、上記判定対象選択部が選択したd個の判定対象整数に基づいて、ラグランジュの補間係数の値を算出して、d個の補間係数値とし、
上記写像算出部は、上記処理装置を用いて、上記判定対象選択部が選択したd個の判定対象整数それぞれについて、上記暗号化索引記憶部が記憶した暗号化索引データと、上記暗号化検索記憶部が記憶した暗号化検索データと、上記補間係数値算出部が算出した補間係数値との組を写像して、d個の写像データとし、
上記比較算出部は、上記処理装置を用いて、上記写像算出部が写像したd個の写像データに基づいて、比較データを算出し、
上記判定部は、上記処理装置を用いて、上記比較算出部が算出した比較データに基づいて、上記判定対象選択部が選択したd個の判定対象整数について、上記索引データと、上記検索データとが一致するか否かを判定することを特徴とする検索システム。
An index encryption device, a search encryption device, and a search device;
The index encryption device includes a storage device that stores data, a processing device that processes data, an index storage unit, and an index encryption unit,
The index storage unit stores n index data corresponding to n integers of 1 to n (n is an integer of 1 or more) using the storage device,
The index encryption unit encrypts the index data stored in the index storage unit for each of n integers of 1 to n using the processing device to obtain n encrypted index data,
The search encryption device includes a storage device that stores data, a processing device that processes data, a search storage unit, a polynomial value calculation unit, and a search encryption unit,
The search storage unit stores n search data corresponding to n integers of 1 to n using the storage device,
The polynomial value calculation unit uses the processing device to convert the integer into a (d-1) -degree univariate polynomial (d is an integer of 1 to n) for each of n integers of 1 to n. Is calculated as n polynomial values,
The search encryption unit uses the processing device to set the search data stored in the search storage unit and the polynomial value calculated by the polynomial value calculation unit for each of n integers of 1 to n. Is encrypted into n pieces of encrypted search data,
The search device includes a processing device that processes data, a storage device that stores data, an encryption index storage unit, an encrypted search storage unit, a determination target selection unit, an interpolation coefficient value calculation unit, and a mapping calculation. Part, a comparison calculation part, and a determination part,
The encrypted index storage unit uses the storage device to store n encrypted index data encrypted by the index encryption device;
The encrypted search storage unit stores n encrypted search data encrypted by the search encryption device using the storage device,
The determination target selection unit uses the processing device to select d integers from n integers of 1 to n to obtain d determination target integers,
The interpolation coefficient value calculation unit calculates a Lagrange interpolation coefficient value based on the d determination target integers selected by the determination target selection unit using the processing device, and obtains d interpolation coefficient values. age,
The mapping calculation unit uses the processing device to store the encrypted index data stored in the encrypted index storage unit and the encrypted search storage for each of the d determination target integers selected by the determination target selection unit. A set of encrypted search data stored by the unit and the interpolation coefficient value calculated by the interpolation coefficient value calculation unit to obtain d mapped data;
The comparison calculation unit calculates comparison data based on the d pieces of mapping data mapped by the mapping calculation unit using the processing device,
The determination unit uses the processing device to determine the index data, the search data, and the search data for the d determination target integers selected by the determination target selection unit based on the comparison data calculated by the comparison calculation unit. A search system characterized by determining whether or not they match.
上記補間係数値算出部は、上記処理装置を用いて、上記判定対象選択部が選択したd個の判定対象整数のうちの一つを対象整数とし、上記判定対象選択部が選択したd個の判定対象整数のうち上記対象整数以外の(d−1)個の判定対象整数を(d−1)個の対象外整数とし、(d−1)個の対象外整数それぞれについて、上記対象外整数から上記対象整数を差し引いた差で、上記対象外整数を割った商を算出し、算出した(d−1)個の商の総積を算出して、上記対象整数についての補間係数値とすることを特徴とする請求項1に記載の検索システム。   The interpolation coefficient value calculation unit uses the processing device to set one of the d determination target integers selected by the determination target selection unit as a target integer, and the d number of determination target selection units selected by the determination target selection unit. Among the determination target integers, (d−1) determination target integers other than the target integer are defined as (d−1) non-target integers, and for each of the (d−1) non-target integers, the non-target integers. The quotient obtained by dividing the non-target integer by the difference obtained by subtracting the target integer from is calculated, and the total product of the calculated (d-1) quotients is calculated as the interpolation coefficient value for the target integer. The search system according to claim 1, wherein: 上記多項式値算出部は、上記処理装置を用いて、所定の秘密整数を上記一変数多項式の定数項として、上記多項式値を算出することを特徴とする請求項1または請求項2に記載の検索システム。   3. The search according to claim 1, wherein the polynomial value calculation unit calculates the polynomial value using the processing device as a predetermined secret integer as a constant term of the univariate polynomial. system. 上記検索システムは、更に、設定装置を有し、
上記設定装置は、秘密整数生成部と、公開元算出部とを有し、
上記秘密整数生成部は、上記処理装置を用いて、1以上p未満の整数(pは素数。)をランダムに生成して、秘密整数とし、
上記公開元算出部は、上記処理装置を用いて、0以上p未満の整数を位数pの群の元に単射する第一の写像により、上記秘密整数生成部が生成した秘密整数を写像した元を算出して、公開元とし、
上記索引暗号化装置は、公開元記憶部と、索引整数記憶部と、索引元算出部と、判定元算出部とを有し、
上記公開元記憶部は、上記記憶装置を用いて、上記設定装置が算出した公開元を記憶し、
上記索引整数記憶部は、上記記憶装置を用いて、n個の1以上p未満の整数を、1以上n以下のn個の整数それぞれに対応する索引整数として記憶し、
上記索引元算出部は、上記処理装置を用いて、1以上n以下のn個の整数それぞれについて、上記索引整数記憶部が記憶した索引整数に基づいて、0以上p未満の整数を位数pの群の元に単射する第二の写像により、上記索引整数を写像した元を算出して、n個の索引元とし、
上記判定元算出部は、上記処理装置を用いて、上記公開元記憶部が記憶した公開元に基づいて、位数pの群の元を位数pの群の元に単射する第三の写像により、上記公開元を写像した元を算出して、判定元とし、
上記検索暗号化装置は、秘密整数記憶部と、検索整数記憶部と、多項式係数生成部と、検索元算出部とを有し、
上記秘密整数記憶部は、上記記憶装置を用いて、上記設定装置が生成した秘密整数を記憶し、
上記検索整数記憶部は、上記記憶装置を用いて、n個の1以上p未満の整数を、1以上n以下のn個の整数それぞれに対応する検索整数として記憶し、
上記多項式係数生成部は、上記処理装置を用いて、(d−1)個の0以上p未満の整数をランダムに生成して、(d−1)個の多項式係数とし、
上記多項式値算出部は、上記処理装置を用いて、上記秘密整数記憶部が記憶した秘密整数を、上記一変数多項式の定数項とし、上記多項式係数生成部が生成した(d−1)個の多項式係数を、上記一変数多項式の1次から(d−1)次までの各項の係数として、上記多項式値を算出し、
上記検索元算出部は、上記処理装置を用いて、1以上n以下のn個の整数それぞれについて、上記検索整数記憶部が記憶した検索整数と、上記多項式値算出部が算出した多項式値とに基づいて、1以上p未満の整数と0以上p未満の整数との組を位数pの群の元に写像する第四の写像により、上記検索整数と上記多項式値との組を写像した元を算出して、n個の検索元とし、
上記検索装置は、索引元記憶部と、判定元記憶部と、検索元記憶部と、写像元算出部と、比較元算出部とを有し、
上記索引元記憶部は、上記記憶装置を用いて、上記索引暗号化装置が算出したn個の索引元を記憶し、
上記判定元記憶部は、上記記憶装置を用いて、上記索引暗号化装置が算出した判定元を記憶し、
上記検索元記憶部は、上記記憶装置を用いて、上記検索暗号化装置が算出したn個の検索元を記憶し、
上記写像元算出部は、上記処理装置を用いて、上記判定対象選択部が選択したd個の判定対象整数それぞれについて、上記索引元記憶部が記憶した索引元と、上記検索元記憶部が記憶した検索元と、上記補間係数値算出部が算出した補間係数値とに基づいて、位数pの群の元と位数pの群の元と0以上p未満の整数との組を位数pの群の元に写像する第五の写像により、上記索引元と上記検索元と上記補間係数値との組を写像した元を算出して、d個の写像元とし、
上記比較元算出部は、上記処理装置を用いて、上記写像元算出部が算出したd個の写像元を群演算により結合した元を算出して、比較元とし、
上記判定部は、上記処理装置を用いて、上記比較元算出部が算出した比較元と、上記判定元記憶部が記憶した判定元とが等しい場合に、上記判定対象選択部が選択したd個の判定対象整数について、上記索引整数と、上記検索整数とが一致すると判定することを特徴とする請求項1乃至請求項3のいずれかに記載の検索システム。
The search system further includes a setting device,
The setting device includes a secret integer generation unit and a public source calculation unit,
The secret integer generation unit randomly generates an integer less than or equal to 1 and less than p (p is a prime number) using the processing device as a secret integer,
The public source calculation unit maps the secret integer generated by the secret integer generation unit using the processing device, by a first mapping that injects an integer of 0 or more and less than p onto a group of order p. Calculate the source, and make it a publisher,
The index encryption apparatus includes a public source storage unit, an index integer storage unit, an index source calculation unit, and a determination source calculation unit,
The publisher storage unit stores the publisher calculated by the setting device using the storage device,
The index integer storage unit stores n integers of 1 or more and less than p using the storage device as index integers corresponding to n integers of 1 or more and n or less,
The index source calculation unit uses the processing device to calculate an integer of 0 or more and less than p based on the index integer stored in the index integer storage unit for each of n integers of 1 to n. By calculating the element that maps the index integer by the second mapping that is injected into the group of
The determination source calculation unit uses the processing device to perform a third injection of the element of the group of order p to the element of the group of order p based on the publication source stored by the publication source storage unit. Based on the mapping, calculate the source that maps the above publisher, and use it as the judgment source.
The search encryption device includes a secret integer storage unit, a search integer storage unit, a polynomial coefficient generation unit, and a search source calculation unit,
The secret integer storage unit stores the secret integer generated by the setting device using the storage device,
The search integer storage unit stores n integers of 1 or more and less than p using the storage device as search integers corresponding to n integers of 1 or more and n or less,
The polynomial coefficient generation unit randomly generates (d−1) integers of 0 or more and less than p using the processing device to obtain (d−1) polynomial coefficients,
The polynomial value calculation unit uses the processing device to set the secret integer stored in the secret integer storage unit as a constant term of the univariate polynomial, and generates (d−1) pieces of polynomial coefficients generated by the polynomial coefficient generation unit. The polynomial value is calculated using the polynomial coefficient as the coefficient of each term from the first order to the (d-1) th order of the univariate polynomial,
The search source calculation unit uses the processing device to calculate a search integer stored in the search integer storage unit and a polynomial value calculated by the polynomial value calculation unit for each of n integers of 1 to n. Based on a fourth mapping that maps a set of integers greater than or equal to 1 and less than p and integers greater than or equal to 0 and less than p to a group of order p, an element obtained by mapping the set of the search integer and the polynomial value To obtain n search sources,
The search device includes an index source storage unit, a determination source storage unit, a search source storage unit, a mapping source calculation unit, and a comparison source calculation unit,
The index source storage unit stores n index sources calculated by the index encryption device using the storage device,
The determination source storage unit stores the determination source calculated by the index encryption device using the storage device,
The search source storage unit stores n search sources calculated by the search encryption device using the storage device,
The mapping source calculation unit stores the index source stored in the index source storage unit and the search source storage unit for each of the d determination target integers selected by the determination target selection unit using the processing device. Based on the obtained search source and the interpolation coefficient value calculated by the interpolation coefficient value calculation unit, the order of the group of the group of order p, the element of the group of order p, and an integer between 0 and less than p a fifth mapping that maps to the group of p, calculates a mapping element of the set of the index source, the search source, and the interpolation coefficient value, and sets it as d mapping sources,
The comparison source calculation unit calculates a source obtained by combining the d mapping sources calculated by the mapping source calculation unit by group operation using the processing device, and sets the comparison source as a comparison source,
The determination unit uses the processing device, and when the comparison source calculated by the comparison source calculation unit is equal to the determination source stored in the determination source storage unit, the determination unit selection unit selects d pieces The search system according to any one of claims 1 to 3, wherein the index integer and the search integer are determined to match with respect to the determination target integer.
上記判定元算出部は、0以上p未満の任意の整数について、上記任意の整数を上記第一の写像により写像した元を、上記第三の写像により写像した元が、上記任意の整数と等しい数の所定の元を、群演算により結合した元と等しくなる写像を、上記第三の写像として用い、
上記写像元算出部は、1以上p未満の任意の第一の整数について、上記任意の第一の整数を上記第二の写像により写像した元と、上記任意の第一の整数と第二の整数との組を上記第四の写像により写像した元と、第三の整数との組を、上記第五の写像により写像した元が、上記第二の整数と上記第三の整数との積と等しい数の上記所定の元を、群演算により結合した元と等しくなる写像を、上記第五の写像として用いることを特徴とする請求項4に記載の検索システム。
The determination source calculation unit, for an arbitrary integer of 0 or more and less than p, is obtained by mapping an element obtained by mapping the arbitrary integer by the first mapping by the third mapping to the arbitrary integer. A map that is equal to the element obtained by combining the predetermined elements of the number by the group operation is used as the third map.
The mapping element calculation unit, for any first integer less than or equal to 1 and less than p, the element obtained by mapping the first arbitrary integer by the second mapping, the first arbitrary integer, and the second The element obtained by mapping the set of integers by the fourth mapping and the set of third integers by the fifth mapping is the product of the second integer and the third integer. 5. The search system according to claim 4, wherein a map that is equal to a number obtained by combining the predetermined elements equal in number to a group operation is used as the fifth map.
上記設定装置は、更に、秘密乱数生成部と、公開乱数元算出部とを有し、
上記秘密乱数生成部は、上記処理装置を用いて、1以上n以下のn個の整数それぞれについて、1以上p未満の整数をランダムに生成して、n個の秘密乱数とし、
上記公開元算出部は、上記処理装置を用いて、第一の群の元と第二の群の元との組を第三の群の元に写像する双線形ペアリング写像(上記第一の群及び上記第二の群及び上記第三の群の位数はp。)により、上記第一の群の生成元である第一生成元と、上記第二の群の生成元である第二生成元との組を写像した元である第三生成元と、上記秘密整数生成部が生成した秘密整数とに基づいて、上記秘密整数と等しい数の上記第三生成元を、上記第三の群の群演算により結合した元を算出して、公開元とし、
上記公開乱数元算出部は、上記処理装置を用いて、1以上n以下のn個の整数それぞれについて、上記第一生成元と、上記秘密乱数生成部が生成した秘密乱数とに基づいて、上記秘密乱数と等しい数の上記第一生成元を、上記第一の群の群演算により結合した元を算出して、n個の公開乱数元とし、
上記索引暗号化装置は、更に、公開乱数元記憶部と、索引乱数生成部とを有し、
上記公開乱数元記憶部は、上記記憶装置を用いて、上記設定装置が算出したn個の公開乱数元を記憶し、
上記索引乱数生成部は、上記処理装置を用いて、1以上p未満の整数をランダムに生成して、索引乱数とし、
上記判定元算出部は、上記処理装置を用いて、上記公開元記憶部が記憶した公開元と、上記索引乱数生成部が生成した索引乱数とに基づいて、上記索引乱数と等しい数の上記公開元を、上記第三の群の群演算により結合した元を算出して、判定元とし、
上記索引元算出部は、上記処理装置を用いて、1以上n以下のn個の整数それぞれについて、上記公開乱数元記憶部が記憶した公開乱数元と、上記索引整数記憶部が記憶した索引整数と、上記索引乱数生成部が生成した索引乱数とに基づいて、上記索引整数と上記索引乱数との積と等しい数の上記公開乱数元を、上記第一の群の群演算により結合した元を算出して、n個の索引元とし、
上記検索暗号化装置は、更に、秘密乱数記憶部を有し、
上記秘密乱数記憶部は、上記記憶装置を用いて、上記設定装置が生成したn個の秘密乱数を記憶し、
上記検索元算出部は、上記処理装置を用いて、1以上n以下のn個の整数それぞれについて、上記第二生成元と、上記秘密乱数記憶部が記憶した秘密乱数と、上記検索整数記憶部が記憶した検索整数と、上記多項式値算出部が算出した多項式値とに基づいて、上記秘密乱数と上記検索整数との積で上記多項式値を割った商と等しい数の上記第二生成元を、上記第二の群の群演算により結合した元を算出して、n個の検索元とし、
上記検索装置において、
上記写像元算出部は、上記処理装置を用いて、上記判定対象選択部が選択したd個の判定対象整数それぞれについて、上記索引元記憶部が記憶した索引元と、上記検索元記憶部が記憶した検索元とに基づいて、上記双線形ペアリング写像により上記索引元と上記検索元との組を写像した上記第三の群の元を算出して、d個のペアリング値とし、上記判定対象選択部が選択したd個の判定対象整数それぞれについて、算出した上記ペアリング値と、上記補間係数値算出部が算出した補間係数値とに基づいて、上記補間係数値と等しい数の上記ペアリング値を、上記第三の群の群演算により結合した元を算出して、d個の写像元とし、
上記比較元算出部は、上記処理装置を用いて、上記写像元算出部が算出したd個の写像元を、上記第三の群の群演算により結合した元を算出して、比較元とすることを特徴とする請求項4または請求項5に記載の検索システム。
The setting device further includes a secret random number generation unit and a public random number source calculation unit,
The secret random number generation unit randomly generates an integer less than or equal to 1 and less than p for each of n integers greater than or equal to 1 and less than or equal to n using the processing device, and generates n secret random numbers,
The public element calculation unit uses the processing device to map a pair of elements of the first group and elements of the second group to elements of the third group (the first linear pairing map). The order of the group and the second group and the third group is p.), So that the first generator that is the generator of the first group and the second that is the generator of the second group Based on the third generator that is a mapping element and the secret integer generated by the secret integer generator, the number of the third generators equal to the secret integer is Calculate the combined element by group operation of the group, and make it a publisher,
The public random number source calculation unit, using the processing device, for each of n integers of 1 to n, based on the first generation source and the secret random number generated by the secret random number generation unit, Calculate the number of the first generators equal to the secret random number by combining the first group by the group operation of the first group to obtain n public random number sources,
The index encryption apparatus further includes a public random number source storage unit and an index random number generation unit,
The public random number source storage unit stores the n public random number sources calculated by the setting device using the storage device,
The index random number generation unit randomly generates an integer of 1 or more and less than p using the processing device as an index random number,
The determination source calculation unit uses the processing device to calculate a number of the public number equal to the index random number based on the public source stored by the public source storage unit and the index random number generated by the index random number generation unit. The element is calculated by combining the elements by the group operation of the third group, and is used as a determination source.
The index source calculation unit uses the processing device to store a public random number source stored in the public random number source storage unit and an index integer stored in the index integer storage unit for each of n integers of 1 to n. Based on the index random number generated by the index random number generator, the number of the public random number elements equal to the product of the index integer and the index random number is combined by the group operation of the first group. To calculate n index sources,
The search encryption apparatus further includes a secret random number storage unit,
The secret random number storage unit stores n secret random numbers generated by the setting device using the storage device,
The search source calculation unit uses the processing device to store the second generator, the secret random number stored in the secret random number storage unit, and the search integer storage unit for each of n integers of 1 to n. Based on the search integer stored by and the polynomial value calculated by the polynomial value calculation unit, the number of the second generators equal to the quotient obtained by dividing the polynomial value by the product of the secret random number and the search integer. , Calculate the combined element by the group operation of the second group, and make n search sources,
In the above search device,
The mapping source calculation unit stores the index source stored in the index source storage unit and the search source storage unit for each of the d determination target integers selected by the determination target selection unit using the processing device. Based on the retrieved search source, the bilinear pairing mapping is used to calculate the elements of the third group obtained by mapping the set of the index source and the search source to obtain d pairing values. For each of the d determination target integers selected by the target selection unit, the number of pairs equal to the interpolation coefficient value is calculated based on the calculated pairing value and the interpolation coefficient value calculated by the interpolation coefficient value calculation unit. Calculate ring elements by combining the ring values by the group operation of the third group to obtain d mapping elements,
The comparison source calculation unit calculates an element obtained by combining the d mapping sources calculated by the mapping source calculation unit by the group operation of the third group using the processing device, and sets the comparison source as a comparison source 6. The search system according to claim 4 or 5, wherein:
上記設定装置は、更に、公開乱数元算出部を有し、
上記公開元算出部は、上記処理装置を用いて、第一の群の生成元である第一生成元(上記第一の群の位数はp。)と、上記秘密整数生成部が生成した秘密整数とに基づいて、上記秘密整数と等しい数の上記第一生成元を、上記第一の群の群演算により結合した元を算出して、公開元とし、
上記公開乱数元算出部は、上記処理装置を用いて、1以上n以下のn個の整数それぞれについて、第二の群の生成元(上記第二の群の位数はp。)をランダムに生成して、n個の公開乱数元とし、
上記索引暗号化装置は、更に、公開乱数元記憶部と、乱数元算出部と、索引乱数生成部とを有し、
上記公開乱数元記憶部は、上記記憶装置を用いて、上記設定装置が算出したn個の公開乱数元を記憶し、
上記索引乱数生成部は、上記処理装置を用いて、1以上p未満の整数をランダムに生成して、索引乱数とし、
上記判定元算出部は、上記処理装置を用いて、上記第二の群の生成元である第二生成元と、上記公開元記憶部が記憶した公開元とに基づいて、上記第一の群の元と上記第二の群の元との組を第三の群の元(上記第三の群の位数はp。)に写像する双線形ペアリング写像により、上記公開元と上記第二生成元との組が写像される上記第三の群の元を算出し、算出した上記第三の群の元と、上記索引乱数生成部が生成した索引乱数とに基づいて、上記索引乱数と等しい数の上記第三の群の元を、上記第三の群の群演算により結合した元を算出して、判定元とし、
上記乱数元算出部は、上記処理装置を用いて、上記第一生成元と、上記索引乱数生成部が生成した索引乱数とに基づいて、上記索引乱数と等しい数の上記第一生成元を、上記第一の群の群演算により結合した元を算出して、乱数元とし、
上記索引元算出部は、上記処理装置を用いて、1以上n以下のn個の整数それぞれについて、上記索引整数記憶部が記憶した索引整数と、上記公開乱数元記憶部が記憶した公開乱数元とに基づいて、0以上p未満の整数と上記第二の群の元との組を上記第二の群の元に写像する写像関数により、上記索引整数と上記公開乱数元との組を写像した上記第二の群の元を算出して、n個の索引関数値とし、1以上n以下のn個の整数それぞれについて、算出した上記索引関数値と、上記索引乱数生成部が生成した索引乱数とに基づいて、上記索引乱数と等しい数の上記索引関数値を、上記第二の群の群演算により結合した元を算出して、n個の索引元とし、
上記検索暗号化装置は、更に、公開乱数元記憶部と、検索乱数生成部と、検索乱数元算出部とを有し、
上記公開乱数元記憶部は、上記記憶装置を用いて、上記設定装置が算出したn個の公開乱数元を記憶し、
上記検索乱数生成部は、上記処理装置を用いて、1以上n以下のn個の整数それぞれについて、1以上p未満の整数をランダムに生成して、n個の検索乱数とし、
上記検索元算出部は、上記処理装置を用いて、1以上n以下のn個の整数それぞれについて、上記検索整数記憶部が記憶した検索整数と、上記公開乱数元記憶部が記憶した公開乱数元とに基づいて、上記写像関数により、上記検索整数と上記公開乱数元との組を写像して、上記第二の群の元を算出して、n個の検索関数値とし、1以上n以下のn個の整数それぞれについて、算出した上記検索関数値と、上記検索乱数生成部が生成した検索乱数とに基づいて、上記検索乱数と等しい数の上記検索関数値を、上記第二の群の群演算により結合した元を算出し、上記第二生成元と、上記多項式値算出部が算出した多項式値とに基づいて、上記多項式値と等しい数の上記第二生成元を、上記第二の群の群演算により結合した元を算出し、算出した上記第二の群の二つの元を上記第二の群の群演算により結合した元を算出して、n個の検索元とし、
上記検索乱数元算出部は、上記処理装置を用いて、1以上n以下のn個の整数それぞれについて、上記第一生成元と、上記検索乱数生成部が生成した検索乱数とに基づいて、上記検索乱数と等しい数の上記第一生成元を、上記第一の群の群演算により結合した元を算出して、n個の検索乱数元とし、
上記検索装置は、更に、乱数元記憶部と、検索乱数元記憶部とを有し、
上記乱数元記憶部は、上記記憶装置を用いて、上記索引暗号化装置が算出した乱数元を記憶し、
上記検索乱数元記憶部は、上記記憶装置を用いて、上記検索暗号化装置が算出したn個の検索乱数元を記憶し、
上記写像元算出部は、上記処理装置を用いて、上記判定対象選択部が選択したd個の判定対象整数それぞれについて、上記乱数元記憶部が記憶した乱数元と、上記検索元記憶部が記憶した検索元とに基づいて、上記双線形ペアリング写像により、上記乱数元と上記検索元との組を写像した上記第三の群の元を算出して、d個の第一ペアリング値とし、上記判定対象選択部が選択したd個の判定対象整数それぞれについて、上記検索乱数元記憶部が記憶した検索乱数元と、上記索引元記憶部が記憶した索引元とに基づいて、上記双線形ペアリング写像により、上記検索乱数元と上記索引元との組を写像した上記第三の群の元を算出して、d個の第二ペアリング値とし、上記判定対象選択部が選択したd個の判定対象整数それぞれについて、算出した上記第一ペアリング値と、算出した上記第二ペアリング値の逆元とを上記第三の群の群演算により結合した元を算出して、d個の写像元とし、
上記比較元算出部は、上記処理装置を用いて、上記写像元算出部が算出したd個の写像元を、上記第三の群の群演算により結合した元を算出して、比較元とすることを特徴とする請求項4または請求項5に記載の検索システム。
The setting device further includes a public random number source calculation unit,
The publisher calculation unit uses the processing device to generate a first generator that is a generator of the first group (the order of the first group is p.) And the secret integer generator. Based on the secret integer, the number of the first generators equal to the secret integer is calculated by combining the first group by the group operation of the first group, and set as a public source,
The public random number element calculation unit uses the processing device to randomly generate a second group generator (the order of the second group is p.) For each of n integers of 1 to n. Generate n public random number sources,
The index encryption apparatus further includes a public random number source storage unit, a random number source calculation unit, and an index random number generation unit ,
The public random number source storage unit stores the n public random number sources calculated by the setting device using the storage device,
The index random number generation unit randomly generates an integer of 1 or more and less than p using the processing device as an index random number,
The determination source calculation unit uses the processing device to determine the first group based on a second generation source that is a generation source of the second group and a disclosure source stored in the disclosure source storage unit. A bilinear pairing map that maps a set of elements of the second group and elements of the second group to a third group of elements (the order of the third group is p.) Is Calculate the element of the third group to which the pair with the generator is mapped, and based on the calculated element of the third group and the index random number generated by the index random number generator, the index random number and An element obtained by combining an equal number of elements of the third group by the group operation of the third group is used as a determination source,
The random number source calculation unit, using the processing device, based on the first generation source and the index random number generated by the index random number generation unit, the number of the first generation source equal to the index random number, Calculate the combined element by the group operation of the first group, and make it a random number element,
The index source calculation unit uses the processing device to calculate an index integer stored in the index integer storage unit and a public random number source stored in the public random number source storage unit for each of n integers of 1 to n. Based on the above, a set of the index integer and the public random number element is mapped by a mapping function that maps a set of integers greater than or equal to 0 and less than p and elements of the second group to elements of the second group. The element of the second group is calculated as n index function values, and the calculated index function value and the index generated by the index random number generation unit for each of n integers of 1 to n. Based on the random number, calculate an element obtained by combining the index function values equal to the index random number by the group operation of the second group to obtain n index elements,
The search encryption device further includes a public random number source storage unit, a search random number generation unit, and a search random number source calculation unit,
The public random number source storage unit stores the n public random number sources calculated by the setting device using the storage device,
The search random number generation unit randomly generates an integer of 1 or more and less than p for each of n integers of 1 or more and n or less using the processing device as n search random numbers,
The search source calculation unit uses the processing device to store a search integer stored in the search integer storage unit and a public random number source stored in the public random number source storage unit for each of n integers of 1 to n. Based on the above, the set of the search integer and the public random number element is mapped by the mapping function, and the elements of the second group are calculated to obtain n search function values. For each of the n integers, the number of the search function values equal to the search random number is calculated based on the calculated search function value and the search random number generated by the search random number generation unit. The elements combined by the group operation are calculated, and based on the second generator and the polynomial value calculated by the polynomial value calculation unit, the number of the second generators equal to the polynomial value is calculated. Calculate the combined element by group operation of the group, The second of the two original groups by calculating the original bound by group operation of the second group, and n number of the search source,
The search random number source calculation unit uses the processing device to determine the number of 1 or more and n or less integers based on the first generation source and the search random number generated by the search random number generation unit. The number of the first generators equal to the search random number is calculated by combining the first group by the group operation of the first group to obtain n search random number sources,
The search device further includes a random number source storage unit and a search random number source storage unit,
The random number source storage unit stores the random number source calculated by the index encryption device using the storage device,
The search random number source storage unit stores n search random number sources calculated by the search encryption device using the storage device,
The mapping source calculation unit stores the random number source stored by the random number source storage unit and the search source storage unit for each of the d determination target integers selected by the determination target selection unit using the processing device. Based on the obtained search source, the bilinear pairing mapping is used to calculate the element of the third group that maps the set of the random number source and the search source to obtain d first pairing values. For each of the d determination target integers selected by the determination target selection unit, the bilinearity is determined based on the search random number source stored in the search random number source storage unit and the index source stored in the index source storage unit. Based on the pairing mapping, the elements of the third group obtained by mapping the set of the search random number element and the index element are calculated to obtain d second pairing values, and d selected by the determination target selection unit Calculated for each judgment target integer And said a first pairing value, the calculated and the inverse of the second pairing value by calculating the original bound by group operation of the third group, and d pieces of mapping source,
The comparison source calculation unit calculates an element obtained by combining the d mapping sources calculated by the mapping source calculation unit by the group operation of the third group using the processing device, and sets the comparison source as a comparison source 6. The search system according to claim 4 or 5, wherein:
上記索引暗号化装置は、更に、索引変換部を有し、
上記索引変換部は、上記処理装置を用いて、1以上n以下のn個の整数に対応するn個の索引文字列を入力し、1以上n以下のn個の整数それぞれについて、任意の長さの文字列を1以上p未満の整数に変換する変換写像により、入力した索引文字列を変換して、n個の索引整数とし、
上記索引整数記憶部は、上記記憶装置を用いて、上記索引変換部が変換したn個の索引整数を記憶し、
上記検索暗号化装置は、更に、検索変換部を有し、
上記検索変換部は、上記処理装置を用いて、1以上n以下のn個の整数に対応するn個の検索文字列を入力し、1以上n以下のn個の整数それぞれについて、上記変換写像により、入力した検索文字列を変換して、n個の検索整数とし、
上記検索整数記憶部は、上記記憶装置を用いて、上記検索変換部が変換したn個の検索整数を記憶することを特徴とする請求項4乃至請求項7のいずれかに記載の検索システム。
The index encryption apparatus further includes an index conversion unit,
The index conversion unit inputs n index character strings corresponding to n integers of 1 to n using the processing device, and has an arbitrary length for each of n integers of 1 to n The input index character string is converted into n index integers by a conversion map for converting the character string into an integer less than or equal to 1 and less than p,
The index integer storage unit stores n index integers converted by the index conversion unit using the storage device,
The search encryption apparatus further includes a search conversion unit,
The search conversion unit inputs n search character strings corresponding to n integers of 1 to n using the processing device, and converts the conversion map for each of the n integers of 1 to n. To convert the input search string into n search integers,
8. The search system according to claim 4, wherein the search integer storage unit stores n search integers converted by the search conversion unit using the storage device.
データを記憶する記憶装置と、データを処理する処理装置と、検索記憶部と、多項式値算出部と、検索暗号化部とを有し、
上記検索記憶部は、上記記憶装置を用いて、1以上n以下のn個の整数(nは1以上の整数。)に対応するn個の検索データを記憶し、
上記多項式値算出部は、上記処理装置を用いて、1以上n以下のn個の整数それぞれについて、(d−1)次の一変数多項式(dは1以上n以下の整数。)に上記整数を代入した値を算出して、n個の多項式値とし、
上記検索暗号化部は、上記処理装置を用いて、1以上n以下のn個の整数それぞれについて、上記検索記憶部が記憶した検索データと、上記多項式値算出部が算出した多項式値との組を暗号化して、n個の暗号化検索データとすることを特徴とする検索暗号化装置。
A storage device for storing data, a processing device for processing data, a search storage unit, a polynomial value calculation unit, and a search encryption unit;
The search storage unit stores n search data corresponding to n integers (n is an integer of 1 or more) using the storage device.
The polynomial value calculation unit uses the processing device to convert the integer into a (d-1) -degree univariate polynomial (d is an integer of 1 to n) for each of n integers of 1 to n. Is calculated as n polynomial values,
The search encryption unit uses the processing device to set the search data stored in the search storage unit and the polynomial value calculated by the polynomial value calculation unit for each of n integers of 1 to n. Is encrypted to obtain n pieces of encrypted search data.
データを処理する処理装置と、データを記憶する記憶装置と、暗号化索引記憶部と、暗号化検索記憶部と、判定対象選択部と、補間係数値算出部と、写像算出部と、比較算出部と、判定部とを有し、
上記暗号化索引記憶部は、上記記憶装置を用いて、1以上n以下のn個の整数(nは1以上の整数。)に対応するn個の索引データをそれぞれ暗号化したn個の暗号化索引データを記憶し、
上記暗号化検索記憶部は、上記記憶装置を用いて、1以上n以下のn個の整数に対応するn個の検索データをそれぞれ暗号化したn個の暗号化検索データを記憶し、
上記判定対象選択部は、上記処理装置を用いて、1以上n以下のn個の整数のなかからd個の整数(dは1以上n以下の整数。)を選択して、d個の判定対象整数とし、
上記補間係数値算出部は、上記処理装置を用いて、上記判定対象選択部が選択したd個の判定対象整数に基づいて、ラグランジュの補間係数の値を算出して、d個の補間係数値とし、
上記写像算出部は、上記処理装置を用いて、上記判定対象選択部が選択したd個の判定対象整数それぞれについて、上記暗号化索引記憶部が記憶した暗号化索引データと、上記暗号化検索記憶部が記憶した暗号化検索データと、上記補間係数値算出部が算出した補間係数値との組を写像して、d個の写像データとし、
上記比較算出部は、上記処理装置を用いて、上記写像算出部が写像したd個の写像データに基づいて、比較データを算出し、
上記判定部は、上記処理装置を用いて、上記比較算出部が算出した比較データに基づいて、上記判定対象選択部が選択したd個の判定対象整数について、上記索引データと、上記検索データとが一致するか否かを判定することを特徴とする検索装置。
A processing device that processes data, a storage device that stores data, an encryption index storage unit, an encrypted search storage unit, a determination target selection unit, an interpolation coefficient value calculation unit, a mapping calculation unit, and a comparative calculation And a determination unit,
The encrypted index storage unit encrypts n index data corresponding to n integers of 1 to n (n is an integer of 1 or more) using the storage device. Store indexing index data,
The encrypted search storage unit stores n encrypted search data obtained by encrypting n search data corresponding to n integers of 1 to n using the storage device,
The determination target selecting unit selects d integers (d is an integer not less than 1 and not more than n) from n integers not less than 1 and not more than n using the processing device, and determines d determinations. The target integer,
The interpolation coefficient value calculation unit calculates a Lagrange interpolation coefficient value based on the d determination target integers selected by the determination target selection unit using the processing device, and obtains d interpolation coefficient values. age,
The mapping calculation unit uses the processing device to store the encrypted index data stored in the encrypted index storage unit and the encrypted search storage for each of the d determination target integers selected by the determination target selection unit. A set of encrypted search data stored by the unit and the interpolation coefficient value calculated by the interpolation coefficient value calculation unit to obtain d mapped data;
The comparison calculation unit calculates comparison data based on the d pieces of mapping data mapped by the mapping calculation unit using the processing device,
The determination unit uses the processing device to determine the index data, the search data, and the search data for the d determination target integers selected by the determination target selection unit based on the comparison data calculated by the comparison calculation unit. A search device characterized by determining whether or not they match.
データを記憶する記憶装置と、データを処理する処理装置とを有するコンピュータが実行することにより、上記コンピュータが請求項10に記載の検索暗号化装置または請求項11に記載の検索装置として機能することを特徴とするコンピュータプログラム。 A storage device for storing data, by a computer executing with a processing device for processing data, the computer functions as the search device according to the search encryption apparatus or claim 11 according to Motomeko 10 A computer program characterized by the above. 索引暗号化装置が索引データを暗号化した暗号化索引データと、検索暗号化装置が検索データを暗号化した暗号化検索データとを用いて、検索装置が上記索引データと上記検索データとが一致するか否かを判定する検索方法において、
上記索引暗号化装置が、1以上n以下のn個の整数(nは1以上の整数。)に対応するn個の索引データを記憶し、
上記索引暗号化装置が、1以上n以下のn個の整数それぞれについて、記憶した索引データを暗号化して、n個の暗号化索引データとし、
上記検索暗号化装置が、1以上n以下のn個の整数に対応するn個の検索データを記憶し、
上記検索暗号化装置が、1以上n以下のn個の整数それぞれについて、(d−1)次の一変数多項式(dは1以上n以下の整数。)に上記整数を代入した値を算出して、n個の多項式値とし、
上記検索暗号化装置が、1以上n以下のn個の整数それぞれについて、記憶した検索データと、算出した多項式値との組を暗号化して、n個の暗号化検索データとし、
上記検索装置が、上記索引暗号化装置が暗号化したn個の暗号化索引データを記憶し、
上記検索装置が、上記検索暗号化装置が暗号化したn個の暗号化検索データを記憶し、
上記検索装置が、1以上n以下のn個の整数のなかからd個の整数を選択して、d個の判定対象整数とし、
上記検索装置が、選択したd個の判定対象整数に基づいて、ラグランジュの補間係数の値を算出して、d個の補間係数値とし、
上記検索装置が、選択したd個の判定対象整数それぞれについて、記憶した暗号化索引データと、記憶した暗号化検索データと、算出した補間係数値との組を写像して、d個の写像データとし、
上記検索装置が、写像したd個の写像データに基づいて、比較データを算出し、
上記検索装置が、算出した比較データに基づいて、選択したd個の判定対象整数について、上記索引データと、上記検索データとが一致するか否かを判定することを特徴とする検索方法。
Using the encrypted index data obtained by encrypting the index data by the index encryption device and the encrypted search data obtained by encrypting the search data by the search encryption device, the search device matches the index data and the search data. In the search method for determining whether or not to
The index encryption device stores n index data corresponding to n integers of 1 to n (n is an integer of 1 or more);
The index encryption apparatus encrypts the stored index data for each of n integers of 1 to n to obtain n encrypted index data,
The search encryption device stores n search data corresponding to n integers of 1 to n,
The search encryption device calculates a value obtained by substituting the integer into a (d-1) degree univariate polynomial (d is an integer of 1 to n) for each of n integers of 1 to n. N polynomial values,
The search encryption device encrypts a set of stored search data and a calculated polynomial value for each of n integers of 1 to n to obtain n encrypted search data,
The search device stores n encrypted index data encrypted by the index encryption device,
The search device stores n encrypted search data encrypted by the search encryption device,
The search device selects d integers from n integers of 1 to n and sets them as d determination target integers,
The search device calculates Lagrange interpolation coefficient values based on the selected d determination target integers to obtain d interpolation coefficient values,
The search device maps a set of the stored encrypted index data, the stored encrypted search data, and the calculated interpolation coefficient value for each of the selected d determination target integers, and d mapped data age,
The search device calculates comparison data based on the d mapped data mapped,
The search method, wherein the search device determines, based on the calculated comparison data, whether or not the index data matches the search data for the selected d number of determination target integers.
JP2009007892A 2009-01-16 2009-01-16 SEARCH SYSTEM, INDEX ENCRYPTION DEVICE, SEARCH ENCRYPTION DEVICE, SEARCH DEVICE, COMPUTER PROGRAM, AND SEARCH METHOD Expired - Fee Related JP5274271B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2009007892A JP5274271B2 (en) 2009-01-16 2009-01-16 SEARCH SYSTEM, INDEX ENCRYPTION DEVICE, SEARCH ENCRYPTION DEVICE, SEARCH DEVICE, COMPUTER PROGRAM, AND SEARCH METHOD

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009007892A JP5274271B2 (en) 2009-01-16 2009-01-16 SEARCH SYSTEM, INDEX ENCRYPTION DEVICE, SEARCH ENCRYPTION DEVICE, SEARCH DEVICE, COMPUTER PROGRAM, AND SEARCH METHOD

Publications (2)

Publication Number Publication Date
JP2010164835A JP2010164835A (en) 2010-07-29
JP5274271B2 true JP5274271B2 (en) 2013-08-28

Family

ID=42581033

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009007892A Expired - Fee Related JP5274271B2 (en) 2009-01-16 2009-01-16 SEARCH SYSTEM, INDEX ENCRYPTION DEVICE, SEARCH ENCRYPTION DEVICE, SEARCH DEVICE, COMPUTER PROGRAM, AND SEARCH METHOD

Country Status (1)

Country Link
JP (1) JP5274271B2 (en)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5557683B2 (en) * 2010-10-07 2014-07-23 三菱電機株式会社 Information search apparatus and information search method
US9111106B2 (en) 2011-01-13 2015-08-18 Mitsubishi Electric Corporation Data processing apparatus and data storage apparatus
WO2013018683A1 (en) 2011-07-29 2013-02-07 日本電気株式会社 System for generating index resistant against divulging of information, index generation device, and method therefor
JP5975490B2 (en) * 2011-09-14 2016-08-23 国立研究開発法人産業技術総合研究所 Search system, search method, and program
WO2013084957A1 (en) * 2011-12-09 2013-06-13 日本電気株式会社 Encoded-search database device, method for adding and deleting data for encoded search, and addition/deletion program
JP5667969B2 (en) * 2011-12-22 2015-02-12 株式会社日立製作所 Search processing system and partial match search method
JP2014126865A (en) * 2012-12-27 2014-07-07 Fujitsu Ltd Device and method for encryption processing

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3907184B2 (en) * 2002-06-17 2007-04-18 インターナショナル・ビジネス・マシーンズ・コーポレーション Database search system and data sharing system
CN101593196B (en) * 2008-05-30 2013-09-25 日电(中国)有限公司 Method, device and system for rapidly searching ciphertext

Also Published As

Publication number Publication date
JP2010164835A (en) 2010-07-29

Similar Documents

Publication Publication Date Title
CN108140334B (en) Confidential search system, management device, confidential search method, and recording medium
JP6504013B2 (en) Cryptographic processing method, cryptographic processing device, and cryptographic processing program
JP6058237B1 (en) Ciphertext conversion apparatus, ciphertext conversion program, and ciphertext conversion method
JP5274271B2 (en) SEARCH SYSTEM, INDEX ENCRYPTION DEVICE, SEARCH ENCRYPTION DEVICE, SEARCH DEVICE, COMPUTER PROGRAM, AND SEARCH METHOD
Sousa et al. Efficient and secure outsourcing of genomic data storage
JP2014126865A (en) Device and method for encryption processing
JP5762232B2 (en) Method and system for selecting the order of encrypted elements while protecting privacy
Mohanty et al. $2 dcrypt $: Image scaling and cropping in encrypted domains
Merkepci et al. On Some Novel Results about Split‐Complex Numbers, the Diagonalization Problem, and Applications to Public Key Asymmetric Cryptography
JP6305638B2 (en) Cryptographic system and key generation device
JP5400740B2 (en) Searchable encryption system, searchable encryption method, storage device, search device, and registrant device
Lee et al. Selective scalable secret image sharing with verification
Preethi et al. A high secure medical image storing and sharing in cloud environment using hex code cryptography method—secure genius
Chen et al. On the security of a BTC-based-compression image authentication scheme
Kim et al. Privacy-preserving parallel kNN classification algorithm using index-based filtering in cloud computing
Mok et al. Implementing the honey encryption for securing public cloud data storage
KR20240004830A (en) Blind rotation for use in fully homomorphic encryption
Niu et al. A data-sharing scheme that supports multi-keyword search for electronic medical records
Ruzai et al. New simultaneous Diophantine attacks on generalized RSA key equations
KR101444828B1 (en) Method for storing encrypted image and searching the image
Thirumalai et al. Modelling a side channel resistant CHAN-PKC cryptomata for medical data security
Karolin et al. Visual Cryptography Secret Share Creation Techniques with Multiple Image Encryption and Decryption Using Elliptic Curve Cryptography
Liu et al. Secure medical data on cloud storage via DNA homomorphic encryption technique
Kebache et al. Reducing the Encrypted Data Size: Healthcare with IoT-Cloud Computing Applications.
Youn et al. Design of additive homomorphic encryption with multiple message spaces for secure and practical storage services over encrypted data

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20111024

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20121207

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20121214

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130108

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130204

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130226

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130327

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130514

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees