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 PDFInfo
- 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
Links
Images
Landscapes
- Storage Device Security (AREA)
Abstract
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.
索引キーワードが複数種類あり、そのうちの一定数以上が、対応する検索キーワードと一致するものを抽出したい場合、索引キーワードが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.
実施の形態1について、図1〜図12を用いて説明する。
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
The
The
データ本体は、例えば、指紋・光彩・静脈などの生体情報を表わす画像データ、電子メール、その他のデータベースの各レコードなどである。
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
The
The
The
暗号化装置820は、索引暗号化装置200、データ暗号化装置840を有する。
索引暗号化装置200は、設定装置100が設定した公開パラメータを用いて、索引を暗号化する。
データ暗号化装置840は、データ本体を暗号化する。なお、データ暗号化装置840がデータ本体を暗号化し、データ復号装置860が復号する暗号方式は、既存の公開鍵暗号方式や共通鍵暗号方式などであってもよい。
暗号化された索引(以下「暗号化索引データ」と呼ぶ。)と暗号化されたデータ本体とは組として、サーバ装置830に対して通知される。
The
The
The
The encrypted index (hereinafter referred to as “encrypted index data”) and the encrypted data body are notified as a pair to the
サーバ装置830は、検索装置400、暗号化データ記憶装置850を有する。
検索装置400は、暗号化装置820から通知された暗号化索引データを蓄積し、復号装置810から通知された暗号化検索データにより、検索を実行する。
暗号化データ記憶装置850は、暗号化装置820から通知されたデータ本体を暗号化されたまま蓄積する。
The
The
The encrypted
なお、復号装置810・暗号化装置820・サーバ装置830の数は、1つに限らず、2つ以上であってもよい。復号装置810が複数ある場合、暗号化装置820は、各復号装置810について設定されたパラメータを用いて、索引データを暗号化する。したがって、1つの索引データに対して、復号装置810の数と等しい数の暗号化索引データを生成する。また、サーバ装置830は、各復号装置810について暗号化装置820が生成した暗号化索引データを蓄積し、各復号装置810からの要求にしたがって、その復号装置810について蓄積した暗号化検索データにより、検索を実行する。
The number of
図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
The
The system unit 910 is a computer, and is connected to the
図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
The
The
通信装置915は、ファクシミリ機932、電話器931、LAN942等に接続されている。通信装置915は、LAN942に限らず、インターネット940、ISDN等のWAN(ワイドエリアネットワーク)などに接続されていても構わない。インターネット940或いはISDN等のWANに接続されている場合、ゲートウェイ941は不用となる。
磁気ディスク装置920には、オペレーティングシステム921(OS)、ウィンドウシステム922、プログラム群923、ファイル群924が記憶されている。プログラム群923のプログラムは、CPU911、オペレーティングシステム921、ウィンドウシステム922により実行される。
The
The
上記プログラム群923には、以下に述べる実施の形態の説明において「〜部」として説明する機能を実行するプログラムが記憶されている。プログラムは、CPU911により読み出され実行される。
ファイル群924には、以下に述べる実施の形態の説明において、「〜の判定結果」、「〜の計算結果」、「〜の処理結果」として説明する情報やデータや信号値や変数値やパラメータが、「〜ファイル」や「〜データベース」の各項目として記憶されている。「〜ファイル」や「〜データベース」は、ディスクやメモリなどの記録媒体に記憶される。ディスクやメモリになどの記憶媒体に記憶された情報やデータや信号値や変数値やパラメータは、読み書き回路を介してCPU911によりメインメモリやキャッシュメモリに読み出され、抽出・検索・参照・比較・演算・計算・処理・出力・印刷・表示などのCPUの動作に用いられる。抽出・検索・参照・比較・演算・計算・処理・出力・印刷・表示のCPUの動作の間、情報やデータや信号値や変数値やパラメータは、メインメモリやキャッシュメモリやバッファメモリに一時的に記憶される。
また、以下に述べる実施の形態の説明において説明するフローチャートの矢印の部分は主としてデータや信号の入出力を示し、データや信号値は、RAM914のメモリ、FDD904のフレキシブルディスク、CDD905のコンパクトディスク、磁気ディスク装置920の磁気ディスク、その他光ディスク、ミニディスク、DVD(Digital・Versatile・Disk)等の記録媒体に記録される。また、データや信号は、バス912や信号線やケーブルその他の伝送媒体によりオンライン伝送される。
The
The
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
また、以下に述べる実施の形態の説明において「〜部」として説明するものは、「〜回路」、「〜装置」、「〜機器」であってもよく、また、「〜ステップ」、「〜手順」、「〜処理」であってもよい。すなわち、「〜部」として説明するものは、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
図4は、この実施の形態における設定装置100の構成の一例を示すブロック構成図である。
FIG. 4 is a block configuration diagram showing an example of the configuration of the
設定装置100は、設定記憶部110、ペアリング値算出部121、秘密生成部130、公開算出部140、公開出力部150を有する。
設定記憶部110は、磁気ディスク装置920を用いて、あらかじめ、検索システム800の基本設定を表わすパラメータを記憶している。設定記憶部110が記憶するパラメータは、あらかじめ定められているものであってもよいし、設定装置100が設定したものであってもよい。
The
The setting
検索システム800は、群を用いて、暗号演算を行う。検索システム800が暗号演算に用いる群は、CPU911を用いて、群演算を計算可能な群であり、例えば、代数曲線上の点がなす群である。以下では、群演算を乗法的に記述する。例えば、群演算による元aと元bとの結合を「積」と呼び「a・b」あるいは「ab」と記述する。また、元aの逆元を「1/a」と記述し、元aと元bの逆元1/bとの積を「商」と呼び「a/b」と記述する。また、m個の元aの積を「累乗」と呼び「am」あるいは「a^m」と記述する。すなわち、「a2=a・a」「a3=a・a・a」「am=a・a・…・a(m個)」である。
検索システム800では、三つの群G1,G2,G3を暗号演算に用いる。三つの群G1,G2,G3はいずれも、離散対数問題を解くことが困難な群である。なお、群G1と群G2とは、同一の群であってもよい。三つの群G1,G2,G3の位数は、いずれも素数pである。群G1の元と群G2の元との組を群G3の元へ写すペアリング写像e:G1×G2→G3が定義されていて、CPU911を用いて、計算可能である。群G1の元gと群G2の元hとの組をペアリング写像eで写した群G3の元を「e(g,h)」と記述する。ペアリング写像eは、双線形であり、非縮退である。すなわち、群G1の任意の元g、群G2の任意の元h、任意の整数a,bについて、次の式が成立する(双線形性)。
In the
また、以下の説明において、整数の演算は、特に断わりのない限り、pを法とする剰余類からなる有限体Zpにおける四則演算による。すなわち、加算・減算・乗算は、通常の整数の加算・減算・乗算の結果を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は、あらかじめ定められた群G1〜G3、ペアリング写像eなどを用いる構成であってもよいし、安全性の程度を定める指標であるセキュリティパラメータkを入力して、入力したセキュリティパラメータkに基づいて、暗号演算に用いる群G1〜G3、ペアリング写像eなどを定義する構成であってもよい。その場合、設定装置100は、定義した群G1〜G3、ペアリング写像eなど公開パラメータの一部として公開する。
The
設定記憶部110は、第一生成元記憶部111、第二生成元記憶部112、第三生成元記憶部113、索引数記憶部115を有する。
第一生成元記憶部111は、磁気ディスク装置920を用いて、群G1の生成元g1を記憶する。第二生成元記憶部112は、磁気ディスク装置920を用いて、群G2の生成元g2を記憶する。第三生成元記憶部113は、磁気ディスク装置920を用いて、群G3の生成元g3を記憶する。索引数記憶部115は、磁気ディスク装置920を用いて、索引数nを記憶する。なお、索引数nは、1以上の整数である。
The setting
The first generation
なお、設定装置100は、索引数入力部を有する構成であってもよい。その場合、索引数入力部は索引数を入力し、索引数記憶部115は、索引数入力部が入力した索引数を記憶する。
The
ペアリング値算出部121は、CPU911を用いて、第一生成元記憶部111が記憶した生成元g1と、第二生成元記憶部112が記憶した生成元g2とを入力する。ペアリング値算出部121は、CPU911を用いて、生成元g1と生成元g2との組をペアリング写像eにより写像した元e(g1,g2)を算出する。ペアリング値算出部121は、CPU911を用いて、算出した元を、群G3の生成元g3として出力する。第三生成元記憶部113は、CPU911を用いて、ペアリング値算出部121が出力した群G3の生成元g3を入力し、磁気ディスク装置920を用いて、記憶する。
The pairing
秘密生成部130は、CPU911を用いて、秘密パラメータを生成する。秘密生成部130は、秘密整数生成部131、秘密乱数生成部132を有する。
秘密整数生成部131は、CPU911を用いて、1以上p未満の整数をランダムに生成する。秘密整数生成部131は、CPU911を用いて、生成した整数を秘密整数yとして出力する。
秘密乱数生成部132は、CPU911を用いて、1以上n以下のn個の整数それぞれについて、1以上p未満の整数を1つずつランダムに生成する。秘密乱数生成部132は、CPU911を用いて、生成したn個の整数を秘密乱数ui(iは1以上n以下の整数。)として出力する。
The
The secret
Using the
公開算出部140は、CPU911を用いて、公開パラメータを算出する。公開算出部140は、公開元算出部141、公開乱数元算出部142を有する。
公開元算出部141は、CPU911を用いて、第三生成元記憶部113が記憶した群G3の生成元g3と、秘密整数生成部131が出力した秘密整数yとを入力する。公開元算出部141は、CPU911を用いて、入力した生成元g3と秘密整数yとに基づいて、元g3のy乗である群G3の元g3 yを算出する。公開元算出部141は、CPU911を用いて、算出した元を、公開元Yとして出力する。
公開乱数元算出部142は、CPU911を用いて、第一生成元記憶部111が記憶した群G1の生成元g1と、秘密乱数生成部132が出力したn個の秘密乱数uiとを入力する。公開乱数元算出部142は、CPU911を用いて、1以上n以下のn個の整数それぞれについて、生成元g1と、対応する秘密乱数uiとに基づいて、元g1のui乗である群G1の元[g1^ui]を算出する。公開乱数元算出部142は、CPU911を用いて、算出したn個の元を公開乱数元Ui(iは1以上n以下の整数。)として出力する。
The
Public
The public random number
公開出力部150は、公開算出部140が算出した公開パラメータを公開する。公開出力部150は、公開元出力部151、公開乱数元出力部152を有する。
公開元出力部151は、CPU911を用いて、公開元算出部141が出力した公開元Yを入力する。公開元出力部151は、CPU911を用いて、入力した公開元Yを外部に出力する。
公開乱数元出力部152は、CPU911を用いて、公開乱数元算出部142が出力したn個の公開乱数元Uiを入力する。公開乱数元出力部152は、CPU911を用いて、入力したn個の公開乱数元Uiを外部に出力する。
群G1及び群G3は、離散対数問題を解くことが困難な群であるから、公開元Y及び公開乱数元Uiを公開しても、秘密整数y及び秘密乱数uiを第三者が知ることはできない。
The
The
The public random number
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
The
設定記憶部310は、磁気ディスク装置920を用いて、検索システム800の基本設定や設定装置100が公開した公開パラメータなどを記憶する。設定記憶部310は、第二生成元記憶部312、索引数記憶部315を有する。
第二生成元記憶部312は、磁気ディスク装置920を用いて、群G2の生成元g2を記憶する。索引数記憶部315は、磁気ディスク装置920を用いて、索引数nを記憶する。
The setting
The second
秘密記憶部320は、耐タンパ性のある記憶装置を用いて、設定装置100が設定した秘密パラメータを記憶する。秘密記憶部320は、秘密整数記憶部321、秘密乱数記憶部323を有する。
秘密整数記憶部321は、耐タンパ性のある記憶装置を用いて、設定装置100が生成した秘密整数yを記憶する。秘密乱数記憶部323は、耐タンパ性のある記憶装置を用いて、設定装置100が生成したn個の秘密乱数uiを記憶する。
The
The secret
検索条件入力部330は、キーボード902などの入力装置を用いて、検索条件を入力する。検索条件入力部330は、閾値入力部331、検索入力部332を有する。
閾値入力部331は、キーボード902などの入力装置を用いて、閾値dを入力する。閾値入力部331は、CPU911を用いて、入力した閾値dを出力する。
検索入力部332は、キーボード902などの入力装置を用いて、1以上n以下のn個の整数それぞれについて、任意の長さの文字列を入力する。検索入力部332は、CPU911を用いて、入力したn個の文字列を検索文字列ωi(iは1以上n以下の整数。)として出力する。
The search
The threshold
The
検索入力部332が入力する検索文字列ωiに対応する整数iは、一致判定をする索引の番号に対応している。例えば、1番目の索引が「氏名」、2番目の索引が「性別」、3番目の索引が「年齢」を表わす場合、検索入力部332は、1番目の検索文字列ω1として利用者が検索したい「氏名」を入力し、2番目の検索文字列ω2として利用者が検索したい「性別」を入力し、3番目の検索文字列ω3として利用者が検索したい「年齢」を入力する。
なお、ある番号の索引を検索の対象としない場合には、検索入力部332は、その整数についての検索文字列ωiを入力しない。上記の例において、「性別」を不問としたい場合には、検索入力部332は、2番目の検索文字列ω2を入力しない。その場合、その番号の索引が検索文字列と一致することはないので、閾値入力部331は、閾値dとして1つ少ない閾値を入力する。
The integer i corresponding to the search character string ω i input by the
If an index with a certain number is not to be searched, the
閾値記憶部341は、CPU911を用いて、閾値入力部331が出力した閾値dを入力する。閾値記憶部341は、磁気ディスク装置920を用いて、入力した閾値dを記憶する。
Using the
多項式係数生成部342は、CPU911を用いて、閾値記憶部341が記憶した閾値dに基づいて、1以上(d−2)以下の(d−2)個の整数それぞれについて、0以上p未満の整数を1つずつランダムに生成する。多項式係数生成部342は、CPU911を用いて、整数(d−1)について、1以上p未満の整数をランダムに生成する。多項式係数生成部342は、生成した(d−1)個の整数を多項式係数aj(jは1以上(d−1)以下の整数。)として出力する。
The polynomial
多項式係数記憶部343は、CPU911を用いて、多項式係数生成部342が出力した(d−1)個の多項式係数ajを入力する。多項式係数記憶部343は、RAM914を用いて、入力した(d−1)個の多項式係数ajを記憶する。
Using the
多項式値算出部344は、CPU911を用いて、多項式係数記憶部343が記憶した(d−1)個の多項式係数ajと、秘密整数記憶部321が記憶した秘密整数yとを入力する。多項式値算出部344は、CPU911を用いて、入力した(d−1)個の多項式係数ajと、秘密整数yとに基づいて、多項式係数ajをj次の項の係数とし、秘密整数yを定数項とする多項式f(x)=Σ(aj・xj)+yについて、xに1以上n以下のn個の整数それぞれを代入した値を算出する。多項式値算出部344は、CPU911を用いて、算出したn個の値を多項式値f(i)(iは1以上n以下の整数。)として出力する。
具体的には、多項式値算出部344は、CPU911を用いて、1以上d−1以下の(d−1)個の整数jそれぞれについて、整数iのj乗を算出し、算出した整数ijと、多項式係数ajとの積(aj・ij)を算出する。多項式値算出部344は、CPU911を用いて、算出した(d−1)個の積(aj・ij)と、秘密整数yとの総和[Σ(aj・ij)+y]を算出して、多項式値f(i)とする。多項式値算出部344は、これを1以上n以下のn個の整数iについて繰り返す。
Using the
Specifically, the polynomial
検索変換部352は、CPU911を用いて、検索入力部332が出力したn個の検索文字列ωiを入力する。検索変換部352は、CPU911を用いて、入力したn個の検索文字列ωiそれぞれについて、所定の写像Hにより、検索文字列ωiを写像した整数を算出する。検索変換部352は、CPU911を用いて、算出したn個の整数を検索整数ηi(iは1以上n以下の整数。)として出力する。
写像Hは、任意の長さの文字列を1以上p未満の整数に写す写像である。写像Hは、衝突耐性を有する。すなわち、任意の二つの文字列について、写像Hにより写した整数が等しくなる確率が極めて低い。例えば、検索変換部352は、写像Hとして、ハッシュ関数を用いる。あるいは、検索変換部352は、ハッシュ関数に、検索文字列ωiの番号である整数iと検索文字列ωiとを結合した文字列[i‖ωi]を入力する構成であってもよいし、ハッシュ関数の出力の逆数や、ハッシュ関数の出力の定数倍などを、写像Hにより写した整数とする構成であってもよい。
Using the
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
なお、検索入力部332が、ある整数についての検索文字列ωiを入力しなかった場合、検索変換部352は、その整数について、1以上p未満の整数をランダムに生成して、検索整数ηiとする。
Note that if the
検索整数記憶部353(検索記憶部)は、CPU911を用いて、検索変換部352が出力したn個の検索整数ηiを入力する。検索整数記憶部353は、磁気ディスク装置920を用いて、入力したn個の検索整数ηi(検索データ)を記憶する。
The search integer storage unit 353 (search storage unit) uses the
検索元算出部360は、CPU911を用いて、n個の検索元Ti(iは1以上n以下の整数。)を算出する。検索元Tiは、検索整数ηiを暗号化したものであり、暗号化検索データの一部である。検索元算出部360は、指数算出部361、累乗部366を有する。
指数算出部361は、CPU911を用いて、秘密乱数記憶部323が記憶したn個の秘密乱数uiと、多項式値算出部344が出力したn個の多項式値f(i)と、検索整数記憶部353が記憶したn個の検索整数ηiとを入力する。指数算出部361は、CPU911を用いて、1以上n以下のn個の整数それぞれについて、対応する秘密乱数uiと、対応する多項式値f(i)と、対応する検索整数ηiとに基づいて、秘密乱数uiと検索整数ηiとの積で、多項式値f(i)を割った商f(i)/(ui・ηi)(iは1以上n以下の整数。)を算出する。指数算出部361は、CPU911を用いて、算出したn個の商を出力する。
累乗部366は、CPU911を用いて、第二生成元記憶部312が記憶した群G2の生成元g2と、指数算出部361が出力したn個の商f(i)/(ui・ηi)とを入力する。累乗部366は、CPU911を用いて、1以上n以下のn個の整数それぞれについて、生成元g2と、対応する商f(i)/(ui・ηi)とに基づいて、元g2のf(i)/(ui・ηi)乗である群G2の元を算出する。累乗部366は、CPU911を用いて、算出したn個の元を検索元Tiとして出力する。
The search
The
暗号化検索出力部370は、CPU911を用いて、暗号化検索データを外部に出力する。暗号化検索出力部370は、閾値出力部371、検索元出力部372を有する。
閾値出力部371は、CPU911を用いて、閾値記憶部341が記憶した閾値dを入力する。閾値出力部371は、CPU911を用いて、入力した閾値dを外部に出力する。
検索元出力部372は、CPU911を用いて、累乗部366が出力したn個の検索元Tiを入力する。検索元出力部372は、CPU911を用いて、入力したn個の検索元Tiを外部に出力する。
Using the
Using the
Search
なお、暗号化検索出力部370は、閾値出力部371が出力する閾値dを表わすデータと、検索元出力部372が出力するn個の検索元Tiを表わすデータとを1つに結合し、暗号化検索データ(検索文)として出力する構成であってもよい。
Incidentally, the encryption
図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
The
設定記憶部210は、検索システム800の基本設定や設定装置100が公開した公開パラメータを記憶する。設定記憶部210は、索引数記憶部215、公開元記憶部216、公開乱数元記憶部217を有する。
索引数記憶部215は、磁気ディスク装置920を用いて、索引数nを記憶する。公開元記憶部216は、磁気ディスク装置920を用いて、設定装置100が設定した公開元Yを記憶する。公開乱数元記憶部217は、磁気ディスク装置920を用いて、設定装置100が設定したn個の公開乱数元Uiを記憶する。
The setting
The index
索引入力部221は、キーボード902などの入力装置を用いて、1以上n以下のn個の整数それぞれについて、任意の長さの文字列(キーワード)を入力する。索引入力部221は、CPU911を用いて、入力したn個の文字列を索引文字列wi(iは1以上n以下の整数。)として出力する。
索引変換部223は、CPU911を用いて、索引入力部221が記憶したn個の索引文字列wiを入力する。索引変換部223は、CPU911を用いて、入力したn個の索引文字列wiそれぞれについて、写像Hにより、索引文字列wiを写像した整数を算出する。索引変換部223は、CPU911を用いて、算出したn個の整数を索引整数hi(iは1以上n以下の整数。)として出力する。
写像Hは、検索変換部352が用いる写像と同じ写像であり、衝突耐性を有する。したがって、索引文字列wiと検索文字列ωiとが一致する場合、索引整数hiと検索整数ηiとは等しく、索引文字列wiと検索文字列ωiとが一致しない場合、索引整数hiと検索整数ηiとは等しくない。
索引整数記憶部224(索引記憶部)は、CPU911を用いて、索引変換部223が出力したn個の索引整数hiを入力する。索引整数記憶部224は、磁気ディスク装置920を用いて、入力したn個の索引整数hi(索引データ)を記憶する。
The
The
The map H is the same map as the map used by the
Index integer storage unit 224 (index storage unit), using the
なお、一部あるいはすべてのデータ本体に対する索引として、n個未満の索引文字列を指定することとしてもよい。その場合、索引入力部221は、索引文字列を指定しない整数についての索引文字列wiを入力せず、索引変換部223が、0以上p未満の整数をランダムに生成して索引整数hiとし、索引整数記憶部224が記憶する。
Note that less than n index character strings may be designated as indexes for some or all data bodies. In that case, the
索引乱数生成部230は、CPU911を用いて、1以上p未満の整数をランダムに生成する。索引乱数生成部230は、CPU911を用いて、生成した整数を索引乱数sとして出力する。
The index
判定元算出部240は、CPU911を用いて、判定元E’を算出する。判定元E’は、索引乱数sを暗号化したものであり、暗号化索引データの一部である。判定元算出部240は、累乗部242を有する。
累乗部242は、CPU911を用いて、公開元記憶部216が記憶した公開元Yと、索引乱数生成部230が出力した索引乱数sとを入力する。累乗部242は、CPU911を用いて、入力した公開元Yと索引乱数sとに基づいて、元Yのs乗である群G3の元Ysを算出する。累乗部242は、CPU911を用いて、算出した元Ysを判定元E’として出力する。
ここで、公開元Yは、元g3のy乗であるから、判定元E’は、元g3の(s・y)乗である。
The determination
The
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個の索引元Ei(iは1以上n以下の整数。)を算出する。索引元Eiは、索引整数hiを暗号化したものであり、暗号化索引データの一部である。索引元算出部250は、指数算出部251、累乗部253を有する。
指数算出部251は、CPU911を用いて、索引整数記憶部224が記憶したn個の索引整数hiと、索引乱数生成部230が出力した索引乱数sとを入力する。指数算出部251は、CPU911を用いて、1以上n以下のn個の整数それぞれについて、索引乱数sと、対応する索引整数hiとに基づいて、索引乱数sと索引整数hiとの積s・hiを算出する。指数算出部251は、CPU911を用いて、算出したn個の積s・hiを出力する。
累乗部253は、CPU911を用いて、公開乱数元記憶部217が記憶したn個の公開乱数元Uiと、指数算出部251が出力したn個の積s・hiとを入力する。累乗部253は、CPU911を用いて、1以上n以下のn個の整数それぞれについて、対応する公開乱数元Uiと、対応する積s・hiとに基づいて、元Uiの(s・hi)乗である群G2の元を算出する。累乗部253は、CPU911を用いて、算出したn個の元を索引元Eiとして出力する。
ここで、公開乱数元Uiは、元g1のui乗であるから、索引元Eiは、元g1の(s・hi・ui)乗である。
The index
The
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個の索引元Eiを入力する。索引元出力部261は、CPU911を用いて、入力したn個の索引元Eiを外部に出力する。
判定元出力部262は、CPU911を用いて、累乗部242が出力した判定元E’を入力する。判定元出力部262は、CPU911を用いて、入力した判定元E’を外部に出力する。
Using the
Using the
Using the
なお、暗号化索引出力部260は、索引元出力部261が出力するn個の索引元Eiを表わすデータと、判定元出力部262が出力する判定元E’を表わすデータとを1つに結合し、暗号化索引データ(キーワード暗号文)として出力する構成であってもよい。
The encrypted
図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
The
索引数記憶部415は、磁気ディスク装置920を用いて、索引数nを記憶する。
The index
暗号化索引記憶部420は、磁気ディスク装置920を用いて、索引暗号化装置200が出力した暗号化索引データを記憶する。暗号化索引記憶部420は、1つのデータ本体に対して1つずつの暗号化索引データを記憶する。暗号化索引記憶部420は、索引元記憶部421、判定元記憶部422を有する。
索引元記憶部421は、磁気ディスク装置920を用いて、1つの暗号化索引データについてn個ずつの索引元Eiを記憶する。判定元記憶部422は、磁気ディスク装置920を用いて、1つの暗号化索引データについて1つずつの判定元E’を記憶する。
Using the
Using the
暗号化検索記憶部430は、磁気ディスク装置920を用いて、検索暗号化装置300が出力した暗号化検索データを記憶する。暗号化検索記憶部430は、閾値記憶部431、検索元記憶部432を有する。
閾値記憶部431は、磁気ディスク装置920を用いて、閾値dを記憶する。検索元記憶部432は、磁気ディスク装置920を用いて、n個の検索元Tiを記憶する。
Using the
The
判定対象選択部441は、CPU911を用いて、1以上n以下のn個の整数からなる集合の部分集合であり、d個の整数からなる集合Sを選択する。
判定対象選択部441は、CPU911を用いて、閾値記憶部431が記憶した閾値dを入力する。判定対象選択部441は、CPU911を用いて、1以上n以下のn個の整数のなかから、d個の整数を選択する。判定対象選択部441は、CPU911を用いて、選択したd個の整数(集合S)を出力する。
Using the
Using the
補間係数値算出部442は、CPU911を用いて、ラグランジュの補間係数の値を算出する。ラグランジュの補間係数は、次の式により定義される。
補間係数値算出部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
The interpolation coefficient
The interpolation coefficient
Specifically, among the d integers selected by the determination
写像元算出部450(写像算出部)は、CPU911を用いて、d個の写像元e’i(写像データ)を算出する。写像元算出部450は、ペアリング値算出部451、累乗部455を有する。
ペアリング値算出部451は、CPU911を用いて、検索条件に合うか否かを判定する対象である索引について索引元記憶部421が記憶したn個の索引元Eiと、検索元記憶部432が記憶したn個の検索元Tiとを入力する。ペアリング値算出部451は、CPU911を用いて、1以上n以下のn個の整数それぞれについて、対応する索引元Eiと、対応する検索元Tiとに基づいて、索引元Eiと検索元Tiとの組をペアリング写像eにより写像した群G3の元e(Ei,Ti)を算出する。ペアリング値算出部451は、CPU911を用いて、算出したn個の元e(Ei,Ti)をペアリング値ei(iは1以上n以下の整数。)として出力する。
ここで、索引元Eiは、元g1の(s・hi・ui)乗であり、検索元Tiは、元g2の[f(i)/(ui・ηi)]乗であるから、ペアリング値eiは、元g3の[f(i)・s・hi/ηi]乗である。
Using the
Using the
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個のペアリング値eiのうちd個の補間係数値Δi,Sに対応する(すなわち、判定対象選択部441が選択したd個の整数に対応する)d個のペアリング値eiとを入力する。累乗部455は、判定対象選択部441が選択したd個の整数それぞれについて、対応する補間係数値Δi,Sと、対応するペアリング値eiとに基づいて、ペアリング値eiのΔi,S乗である群G3の元を算出する。累乗部455は、CPU911を用いて、算出したd個の元を写像元e’iとして出力する。
Using the
比較元算出部460(比較算出部)は、CPU911を用いて、比較元B(比較データ)を算出する。比較元算出部460は、総積部461を有する。
総積部461は、CPU911を用いて、累乗部455が出力したd個の写像元e’iを入力する。総積部461は、CPU911を用いて、入力したd個の元e’iすべての総積Π[e’i]を算出する。総積部461は、CPU911を用いて、算出した総積Π[e’i]を比較元Bとして出力する。
ここで、比較元Bは、
Using the
Here, the comparison source B is
判定部470は、CPU911を用いて、検索条件に合うか否かを判定する対象である索引について判定元記憶部422が記憶した判定元E’と、総積部461が出力した比較元Bとを入力する。判定部470は、入力した判定元E’と比較元Bとを比較し、一致する場合に、その索引が検索条件に合うと判定する。判定部470は、CPU911を用いて、判定した結果を検索結果として出力する。
The
ここで、
すべてのi∈Sについて、hi=ηiである場合、比較元Bは、
一方、いずれかのi∈Sについて、hi≠ηiである場合、B=E’となる確率は、極めて低い。例えば、i∈S’(S’はSの部分集合であり空集合でない。)について、hi≠ηiであり、それ以外のi∈Sについて、hi=ηiだとすると、
図8は、この実施の形態におけるデータ暗号化装置840、暗号化データ記憶装置850、データ復号装置860の構成の一例を示すブロック構成図である。
FIG. 8 is a block configuration diagram showing an example of the configuration of the
データ暗号化装置840は、本体記憶部841、暗号化鍵記憶部842、本体暗号化部843を有する。
本体記憶部841は、磁気ディスク装置920を用いて、データ本体(平文データ)を記憶する。
暗号化鍵記憶部842は、磁気ディスク装置920を用いて、データ本体の暗号化に用いる暗号化鍵を記憶する。
本体暗号化部843は、CPU911を用いて、本体記憶部841が記憶したデータ本体と、暗号化鍵記憶部842が記憶した暗号化鍵とを入力する。本体暗号化部843は、CPU911を用いて、入力した暗号化鍵により、入力したデータ本体を暗号化する。本体暗号化部843は、CPU911を用いて、暗号化したデータ本体を暗号化データ本体として出力する。
本体暗号化部843が用いる暗号方式は、例えばRSA暗号など一般的な公開鍵暗号方式であってもよいし、例えばAES暗号など一般的な共通鍵暗号方式であってもよいし、IDベース暗号などの暗号方式であってもよい。あるいは、本体暗号化部843は、ランダムに生成した共通鍵を用いて共通鍵暗号方式でデータ本体を暗号化した上で、暗号化鍵記憶部842が記憶した暗号化鍵を用いて公開鍵暗号方式などの暗号方式で共通鍵を暗号化し、暗号化したデータ本体と暗号化した共通鍵とを結合したものを暗号化データ本体とする構成としてもよい。
The
The main
Using the
Using the
The encryption method used by the main
暗号化データ記憶装置850は、暗号化本体記憶部851、検索結果入力部852、検索本体出力部853を有する。
暗号化本体記憶部851は、磁気ディスク装置920を用いて、データ暗号化装置840が出力した暗号化データ本体を記憶する。
検索結果入力部852は、CPU911を用いて、検索装置400が出力した検索結果を入力する。
検索本体出力部853は、CPU911を用いて、検索結果入力部852が入力した検索結果に基づいて、検索条件に合う索引に対応づけられた暗号化データ本体を、暗号化本体記憶部851が記憶した暗号化データ本体のなかから取得する。検索本体出力部853は、CPU911を用いて、取得した暗号化データ本体を出力する。
The encrypted
The encrypted
Using the
Using the
なお、検索にヒットするか否かのみが問題となり、データ本体がない場合や、暗号化データ本体を暗号化索引データと結合した形式で検索装置400が記憶する構成の場合には、暗号化データ記憶装置850がない構成であってもよい。
Note that only whether or not the search hits is a problem. If there is no data body or if the
データ復号装置860は、復号鍵記憶部861、本体復号部862、復号本体出力部863を有する。
復号鍵記憶部861は、磁気ディスク装置920を用いて、データ暗号化装置840が記憶した暗号化鍵に対応する復号鍵を記憶する。
本体復号部862は、CPU911を用いて、暗号化データ記憶装置850が出力した暗号化データ本体と、復号鍵記憶部861が記憶した復号鍵とを入力する。本体復号部862は、CPU911を用いて、入力した復号鍵により、入力した暗号化データ本体を復号する。本体復号部862は、復号したデータ本体を復号データ本体として出力する。
復号本体出力部863は、CPU911を用いて、本体復号部862が出力した復号データ本体を入力する。復号本体出力部863は、CPU911を用いて、入力した復号データ本体を外部に出力する。
The
The decryption
The main
Using the
図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
第三生成元算出工程S611において、ペアリング値算出部121は、CPU911を用いて、第一生成元記憶部111が記憶した群G1の生成元g1と、第二生成元記憶部112が記憶した群G2の生成元g2とに基づいて、元g1と元g2との組をペアリング写像eにより写像した群G3の元e(g1,g2)を算出して、元g3とする。
In a third generation element calculation step S611, the pairing
秘密整数生成工程S613において、秘密整数生成部131は、CPU911を用いて、1以上p未満の整数をランダムに生成して、秘密整数yとする。
In the secret integer generation step S613, the secret
公開元算出工程S615において、公開元算出部141は、CPU911を用いて、第三生成元算出工程S611でペアリング値算出部121が算出した元g3と、秘密整数生成工程S613で秘密整数生成部131が生成した秘密整数yとに基づいて、元g3のy乗である群G3の元g3 yを算出して、公開元Yとする。
In the public element calculation step S615, the public
整数選択工程S616において、秘密乱数生成部132は、CPU911を用いて、1以上n以下のn個の整数のなかから、整数を1つずつ順に選択して、整数iとする。
In the integer selection step S616, the secret random
秘密乱数生成工程S617において、秘密乱数生成部132は、CPU911を用いて、整数選択工程S616で選択した整数iについて、1以上p未満の整数をランダムに生成して、秘密乱数uiとする。
In the secret random number generation step S617, the secret random
公開乱数元算出工程S619において、公開乱数元算出部142は、CPU911を用いて、整数選択工程S616で秘密乱数生成部132が選択した整数iについて、第一生成元記憶部111が記憶した群G1の生成元g1と、第二秘密乱数生成工程S617で秘密乱数生成部132が生成した秘密乱数uiとに基づいて、元g1のui乗である群G1の元を算出して、公開乱数元Uiとする。
In the public random number source calculation step S619, the public random number
整数繰り返し工程S620において、秘密乱数生成部132は、1以上n以下のすべての整数を、整数選択工程S616で選択したか否かを判定する。まだ選択していない整数があると判定した場合、秘密乱数生成部132は、整数選択工程S616に戻り、次の整数を選択する。すべての整数を選択したと判定した場合、設定装置100は、設定処理S610を終了する。
In the integer repetition step S620, the secret random
図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
索引乱数生成工程S631において、索引乱数生成部230は、CPU911を用いて、1以上p未満の整数をランダムに生成して、索引乱数sとする。
In the index random number generation step S631, the index random
判定元算出工程S633において、累乗部242は、CPU911を用いて、公開元記憶部216が記憶した公開元Yと、索引乱数生成工程S631で索引乱数生成部230が生成した索引乱数sとに基づいて、元Yのs乗である群G3の元Ysを算出して、判定元E’とする。
In the determination source calculation step S633, the
整数選択工程S635において、索引変換部223は、CPU911を用いて、1以上n以下のn個の整数のなかから、整数を1つずつ順に選択して、整数iとする。
In the integer selection step S635, the
索引整数算出工程S636において、索引変換部223は、CPU911を用いて、整数選択工程S635で選択した整数iについて、写像Hにより、索引入力部221が入力した索引文字列wiを写像した整数を算出して、索引整数hiとする。
In the index integer calculation step S636, the
索引元算出工程S637において、指数算出部251は、CPU911を用いて、索引乱数生成工程S631で索引乱数生成部230が生成した索引乱数sと、索引整数算出工程S636で索引変換部223が算出した索引整数hiとの積(s・hi)を算出する。
累乗部253は、CPU911を用いて、整数選択工程S635で索引変換部223が選択した整数iについて、公開乱数元記憶部217が記憶した公開乱数元Uiと、指数算出部251が算出した積(s・hi)とに基づいて、元Uiの(s・hi)乗である群G1の元を算出して、索引元Eiとする。
In the index source calculation step S637, the
The
整数繰り返し工程S638において、索引変換部223は、CPU911を用いて、1以上n以下のすべての整数を、整数選択工程S635で選択したか否かを判定する。まだ選択していない整数があると判定した場合、索引変換部223は、整数選択工程S635に戻り、次の整数を選択する。すべての整数を選択したと判定した場合、索引暗号化装置200は、索引暗号化処理S630を終了する。
In the integer repetition step S638, the
図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
次数選択工程S651において、多項式係数生成部342は、CPU911を用いて、1以上(d−2)以下の(d−2)個の整数のなかから、整数を1つずつ順に選択して、整数jとする。
In the order selection step S651, the polynomial
多項式係数生成工程S652において、多項式係数生成部342は、CPU911を用いて、次数選択工程S651で選択した整数jについて、0以上p未満の整数をランダムに選択して、多項式係数ajとする。
In the polynomial coefficient generation step S652, the polynomial
次数繰り返し工程S653において、多項式係数生成部342は、CPU911を用いて、1以上(d−2)以下のすべての整数を、次数選択工程S651で選択したか否かを判定する。まだ選択していない整数があると判定した場合、多項式係数生成部342は、次数選択工程S651に戻り、次の整数を選択する。すべての整数を選択したと判定した場合、検索暗号化装置300は、最高次係数生成工程S654へ進む。
In the order repetition step S653, the polynomial
最高次係数生成工程S654において、多項式係数生成部342は、CPU911を用いて、整数(d−1)について、1以上p未満の整数をランダムに選択し、多項式係数ad−1とする。
In the highest-order coefficient generation step S654, the polynomial
整数選択工程S655において、検索変換部352は、CPU911を用いて、1以上n以下のn個の整数のなかから、整数を1つずつ順に選択して、整数iとする。
In the integer selection step S655, the
検索整数算出工程S656において、検索変換部352は、CPU911を用いて、整数選択工程S655で選択した整数iについて、写像Hにより、検索入力部332が入力した検索文字列ωiを写像した整数を算出して、検索整数ηiとする。
In the search integer calculation step S656, the
多項式値算出工程S657において、多項式値算出部344は、CPU911を用いて、秘密整数記憶部321が記憶した秘密整数yと、多項式係数生成工程S652で多項式係数生成部342が生成した(d−2)個の多項式係数ajと、最高次係数生成工程S654で多項式係数生成部342が生成した多項式係数ad−1とに基づいて、多項式係数ajをj次の項の係数とし、秘密整数yを定数項の係数とする一変数多項式f(x)に、整数選択工程S655で検索変換部352が選択した整数iを代入した値を算出して、多項式値f(i)とする。
In the polynomial value calculation step S657, the polynomial
検索元算出工程S659において、指数算出部361は、CPU911を用いて、整数選択工程S655で検索変換部352が選択した整数iについて、秘密乱数記憶部323が記憶した秘密乱数uiと、検索整数算出工程S656で検索変換部352が算出した検索整数ηiと、多項式値算出工程S657で多項式値算出部344が算出した多項式値f(i)とに基づいて、秘密乱数uiと検索整数ηiとの積(ui・ηi)で、多項式値f(i)を割った商[f(i)/(ui・ηi)]を算出する。
累乗部366は、CPU911を用いて、整数選択工程S655で検索変換部352が選択した整数iについて、第二生成元記憶部312が記憶した群G2の生成元g2と、指数算出部361が算出した商[f(i)/(ui・ηi)]とに基づいて、元g2の[f(i)/(ui・ηi)]乗である群G2の元を算出して、検索元Tiとする。
In the search source calculation step S659, the
The
整数繰り返し工程S661において、検索変換部352は、CPU911を用いて、1以上n以下のすべての整数を、整数選択工程S655で選択したか否かを判定する。まだ選択していない整数があると判定した場合、検索変換部352は、整数選択工程S655に戻り、次の整数を選択する。すべての整数を選択したと判定した場合、検索暗号化装置300は、検索暗号化処理S650を終了する。
In the integer repetition step S661, the
図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
索引選択工程S671において、ペアリング値算出部451は、CPU911を用いて、暗号化索引記憶部420が記憶した暗号化索引データのなかから、暗号化索引データを1つずつ順に選択する。
In the index selection step S671, the pairing
整数選択工程S672において、ペアリング値算出部451は、CPU911を用いて、1以上n以下のn個の整数のなかから、整数を1つずつ順に選択して、整数iとする。
In the integer selection step S672, the pairing
ペアリング値算出工程S673において、ペアリング値算出部451は、CPU911を用いて、索引選択工程S671で選択した暗号化索引データについて索引元記憶部421が記憶した索引元Eiと、整数選択工程S672で選択した整数iについて検索元記憶部432が記憶した検索元Tiとに基づいて、ペアリング写像eにより、索引元Eiと検索元Tiとの組を写像した群G3の元を算出して、ペアリング値eiとする。
In the pairing value calculation step S673, the pairing
整数繰り返し工程S674において、ペアリング値算出部451は、CPU911を用いて、1以上n以下のすべての整数を、整数選択工程S672で選択したか否かを判定する。まだ選択していない整数があると判定した場合、ペアリング値算出部451は、整数選択工程S672に戻り、次の整数を選択する。すべての整数を選択したと判定した場合、検索装置400は、判定選択工程S675へ進む。
In the integer repetition step S674, the pairing
判定選択工程S675において、判定対象選択部441は、CPU911を用いて、閾値記憶部431が記憶した閾値dに基づいて、1以上n以下のn個の整数のなかからd個の整数を選択する組み合わせのなかから、組み合わせを1つずつ順に選択して、集合Sとする。
In the determination selection step S675, the determination
判定整数選択工程S676において、補間係数値算出部442は、CPU911を用いて、判定選択工程S675で判定対象選択部441が選択した集合Sに含まれる整数のなかから、整数を1つずつ順に選択して、整数iとする。
In the determination integer selection step S676, the interpolation coefficient
補間係数値算出工程S677において、補間係数値算出部442は、CPU911を用いて、判定整数選択工程S676で選択した整数iについて、補間係数値Δi,Sを算出する。
In the interpolation coefficient value calculation step S677, the interpolation coefficient
累乗工程S678において、累乗部455は、CPU911を用いて、判定整数選択工程S676で補間係数値算出部442が選択した整数iについて、ペアリング値算出工程S673でペアリング値算出部451が算出したペアリング値eiと、補間係数値算出工程S677で補間係数値算出部442が算出した補間係数値Δi,Sとに基づいて、ペアリング値eiのΔi,S乗である群G3の元を算出して、写像元e’iとする。
In the power step S678, the
判定整数繰り返し工程S679において、補間係数値算出部442は、CPU911を用いて、集合Sに含まれるすべての整数を、判定整数選択工程S676で選択したか否かを判定する。まだ選択していない整数があると判定した場合、補間係数値算出部442は、判定整数選択工程S676に戻り、次の整数を選択する。すべての整数を選択したと判定した場合、検索装置400は、総積工程S680へ進む。
In the determination integer repetition step S679, the interpolation coefficient
総積工程S680において、総積部461は、CPU911を用いて、累乗工程S678で算出したd個の写像元e’iの総積を算出して、比較元Bとする。
In the total product step S680, the
判定工程S681において、判定部470は、CPU911を用いて、索引選択工程S671でペアリング値算出部451が選択した索引について判定元記憶部422が記憶した判定元E’と、総積工程S680で総積部461が算出した比較元Bとを比較して、等しいか否かを判定する。等しいと判定した場合、判定部470は、CPU911を用いて、索引選択工程S671でペアリング値算出部451が選択した索引が、検索条件に合致したと判定して、索引繰り返し工程S683へ進む。等しくないと判定した場合、検索装置400は、判定繰り返し工程S682へ進む。
In the determination step S681, the
判定繰り返し工程S682において、判定対象選択部441は、CPU911を用いて、1以上n以下のn個の整数のなかからd個の整数を選択するすべての組み合わせを、判定選択工程S675で選択したか否かを判定する。まだ選択していない組み合わせがあると判定した場合、判定対象選択部441は、判定選択工程S675に戻り、次の組み合わせを選択する。すべての組み合わせを選択したと判定した場合、判定部470は、索引選択工程S671でペアリング値算出部451が選択した索引が、検索条件に合致しないと判定して、索引繰り返し工程S683へ進む。
In the determination repetition step S682, the determination
索引繰り返し工程S683において、判定部470は、CPU911を用いて、判定工程S681あるいは判定繰り返し工程S682で判定した判定結果を出力する。ペアリング値算出部451は、CPU911を用いて、暗号化索引記憶部420が記憶したすべての暗号化索引データを、索引選択工程S671で選択したか否かを判定する。まだ選択していない暗号化索引データがあると判定した場合、ペアリング値算出部451は、索引選択工程S671に戻り、次の暗号化索引データを選択する。すべての暗号化索引データを選択したと判定した場合、検索装置400は、検索実行処理S670を終了する。
In the index repetition step S683, the
上述したように、判定選択工程S675で判定対象選択部441が選択した集合Sに含まれるd個の整数すべてについて、索引整数hiと検索整数ηiとが一致する場合のみ、比較元Bと判定元E’とが等しくなるので、その索引に含まれるn個の索引文字列wiのうちd個以上の索引文字列wiが、検索暗号化装置300が指定した検索文字列ωiと一致する場合に、判定部470は、検索条件に合致したと判定する。
このとき、検索装置400は、索引文字列wiと検索文字列ωiとが一致するd個の整数iを知ることができる。上述した検索実行処理S670では、判定工程S681で比較元Bと判定元E’とが一致した場合、1以上n以下のn個の整数のなかからd個の整数を選択するすべての組み合わせについて判定することをしないので、集合Sに含まれるd個の整数i以外の(n−d)個の整数については、索引文字列wiと検索文字列ωiとが一致するか否かは明らかにならないが、判定工程S681で比較元Bと判定元E’とが一致した場合でも処理を続行し、1以上n以下のn個の整数のなかからd個の整数を選択するすべての組み合わせについて比較元Bと判定元E’とが判定するか否かを判定する構成とすれば、検索装置400は、1以上n以下のn個の整数すべてについて、索引文字列wiと検索文字列ωiとが一致するか否かを知ることができる。すなわち、索引文字列wiと検索文字列ωiとがd個以上一致する場合には、どのデータが一致するかを知ることができる。
As described above, for all the d integers included in the set S selected by the determination
At this time, the
しかし、暗号化索引記憶部420が記憶した索引元Eiや判定元E’、暗号化検索記憶部430が記憶した検索元Tiなどから、索引整数hiや検索整数ηiを知ることはできないので、たとえ写像Hの逆写像H−1を知っていたとしても、一致した索引文字列wiや検索文字列ωiを知ることはできない。
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
また、1以上n以下のn個の整数のうちd個未満の整数について、索引文字列wiと検索文字列ωiとが一致し、それ以外は一致しない場合、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.
索引元Eiには、索引文字列wiによって定まる索引整数hiの要素のほかに、索引ごとに異なるランダムな索引乱数sの要素が含まれている。したがって、ある索引の索引文字列wiと別の索引の索引文字列wiとが同じであったとしても、索引元Eiは索引ごとに異なり、索引文字列wiが同じか否かについての情報を隠蔽している。 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.
ある索引文字列wiが、ある検索条件における検索文字列ωiと一致することがわかると、ある索引における索引文字列wiと、他の索引における索引文字列wiとが同じか否かを知ることができる。これは、索引文字列wiを解読する手がかりになる可能性がある。様々な検索条件による検索を何回も繰り返すことにより手がかりが増えていくと、やがて、索引文字列wi、ひいてはデータ本体を解読される可能性がある。
このため、ある索引文字列wiが、ある検索条件における検索文字列ωiと一致するか否かに関する情報は、できる限り知られないようにしたほうがよい。
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個未満の整数について、索引文字列wiと検索文字列ωiとが一致し、それ以外は一致しない場合、どの索引文字列wiと検索文字列ωiとが一致したかについての情報を秘匿できる。このため、索引文字列wiを解読する手がかりの漏洩を最小限に抑えることができる。
In the
この実施の形態における検索システム800は、索引暗号化装置200と、検索暗号化装置300と、検索装置400とを有する。
上記索引暗号化装置200は、データを記憶する記憶装置(磁気ディスク装置920)と、データを処理する処理装置(CPU911)と、索引記憶部(索引整数記憶部224)と、索引暗号化部(索引元算出部250)とを有する。
上記索引記憶部は、上記記憶装置を用いて、1以上n以下のn個の整数(nは1以上の整数。)に対応するn個の索引データ(索引整数hi)を記憶する。
上記索引暗号化部は、上記処理装置を用いて、1以上n以下のn個の整数それぞれについて、上記索引記憶部が記憶した索引データを暗号化して、n個の暗号化索引データ(索引元Ei)とする。
上記検索暗号化装置300は、データを記憶する記憶装置(磁気ディスク装置920)と、データを処理する処理装置(CPU911)と、検索記憶部(検索整数記憶部353)と、多項式値算出部344と、検索暗号化部(検索元算出部360)とを有する。
上記検索記憶部は、上記記憶装置を用いて、1以上n以下のn個の整数に対応するn個の検索データ(検索整数ηi)を記憶する。
上記多項式値算出部344は、上記処理装置を用いて、1以上n以下のn個の整数それぞれについて、(d−1)次の一変数多項式f(x)(dは1以上n以下の整数。)に上記整数を代入した値を算出して、n個の多項式値f(i)とする。
上記検索暗号化部は、上記処理装置を用いて、1以上n以下のn個の整数それぞれについて、上記検索記憶部が記憶した検索データと、上記多項式値算出部344が算出した多項式値f(i)との組を暗号化して、n個の暗号化検索データ(検索元Ti)とする。
上記検索装置400は、データを処理する処理装置(CPU911)と、データを記憶する記憶装置(磁気ディスク装置920)と、暗号化索引記憶部420と、暗号化検索記憶部430と、判定対象選択部441と、補間係数値算出部442と、写像算出部(写像元算出部450)と、比較算出部(比較元算出部460)と、判定部470とを有する。
上記暗号化索引記憶部420は、上記記憶装置を用いて、上記索引暗号化装置200が暗号化したn個の暗号化索引データ(索引元Ei)を記憶する。
上記暗号化検索記憶部430は、上記記憶装置を用いて、上記検索暗号化装置300が暗号化したn個の暗号化検索データ(検索元Ti)を記憶する。
上記判定対象選択部441は、上記処理装置を用いて、1以上n以下のn個の整数のなかからd個の整数を選択して、d個の判定対象整数とする。
上記補間係数値算出部442は、上記処理装置を用いて、上記判定対象選択部441が選択したd個の判定対象整数に基づいて、ラグランジュの補間係数の値を算出して、d個の補間係数値Δi,Sとする。
上記写像算出部は、上記処理装置を用いて、上記判定対象選択部441が選択したd個の判定対象整数それぞれについて、上記暗号化索引記憶部420が記憶した暗号化索引データと、上記暗号化検索記憶部430が記憶した暗号化検索データと、上記補間係数値算出部442が算出した補間係数値との組を写像して、d個の写像データ(写像元e’i)とする。
上記比較算出部は、上記処理装置を用いて、上記写像算出部が写像したd個の写像データに基づいて、比較データ(比較元B)を算出する。
上記判定部470は、上記処理装置を用いて、上記比較算出部が算出した比較データに基づいて、上記判定対象選択部441が選択したd個の判定対象整数について、上記索引データと、上記検索データとが一致するか否かを判定する。
The
The
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
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
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
The encrypted
The encrypted
The determination
The interpolation coefficient
The mapping calculation unit uses the processing apparatus to store the encrypted index data stored in the encrypted
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
この実施の形態における検索システム800によれば、(d−1)次の一変数多項式f(x)の値f(i)を用いて、検索データを暗号化し、ラグランジュの補間係数の値Δi,Sを用いて、検索を実行するので、n個のデータのうちd個以上が一致する場合に、一致することを検索装置400が判定でき、d個未満しか一致しない場合には、いずれのデータが一致したかを検索装置400が知ることができない。これにより、索引データや検索データに関する情報の漏洩を防ぐことができる。
According to the
この実施の形態における検索システム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
この実施の形態における検索システム800によれば、未知の一変数関数について、判定対象選択部441が選択したd個の判定対象整数を代入したときの値が既知である場合におけるラグランジュの補間係数について、補間係数値算出部442が、ラグランジュの補間係数に0を代入したときの値を算出して補間係数値Δi,Sとするので、判定対象選択部441が選択したd個の判定対象整数について、索引データと検索データとが一致する場合に、比較元Bが、一変数多項式f(x)に0を代入したときの値f(0)に対応する値となる。検索装置400は、これを利用することにより、判定対象選択部441が選択したd個の判定対象整数について、索引データと検索データとが一致するか否かを判定する。
According to the
この実施の形態における検索システム800において、上記多項式値算出部344は、上記処理装置(CPU911)を用いて、所定の秘密整数yを上記一変数多項式f(x)の定数項として、上記多項式値f(i)を算出する。
上記索引暗号化部(判定元算出部240)は、上記秘密整数yを暗号化したデータ(公開元Y)に基づいて、上記索引データを暗号化する。
In the
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
この実施の形態における検索システム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それぞれに対応する索引整数hiとして記憶する。
上記索引元算出部250は、上記処理装置を用いて、1以上n以下のn個の整数iそれぞれについて、上記索引整数記憶部224が記憶した索引整数hiに基づいて、0以上p未満の整数を位数pの群の元に単射する第二の写像により、上記索引整数hiを写像した元を算出して、n個の索引元Eiとする。
上記判定元算出部240は、上記処理装置を用いて、上記公開元記憶部216が記憶した公開元Yに基づいて、位数pの群の元を位数pの群の元に単射する第三の写像により、上記公開元Yを写像した元を算出して、判定元E’とする。
上記検索暗号化装置300は、秘密整数記憶部321と、検索整数記憶部353と、多項式係数生成部342と、検索元算出部360とを有する。
上記秘密整数記憶部321は、上記記憶装置を用いて、上記設定装置100が生成した秘密整数yを記憶する。
上記検索整数記憶部353は、上記記憶装置を用いて、n個の1以上p未満の整数を、1以上n以下のn個の整数iそれぞれに対応する検索整数ηiとして記憶する。
上記多項式係数生成部342は、上記処理装置を用いて、(d−1)個の0以上p未満の整数をランダムに生成して、(d−1)個の多項式係数ajとする。
上記多項式値算出部344は、上記処理装置を用いて、上記秘密整数記憶部321が記憶した秘密整数yを、上記一変数多項式f(x)の定数項とし、上記多項式係数生成部342が生成した(d−1)個の多項式係数ajを、上記一変数多項式f(x)の1次から(d−1)次までの各項の係数として、上記多項式値f(i)を算出する。
上記検索元算出部360は、上記処理装置を用いて、1以上n以下のn個の整数iそれぞれについて、上記検索整数記憶部353が記憶した検索整数ηiと、上記多項式値算出部344が算出した多項式値f(i)とに基づいて、1以上p未満の整数と0以上p未満の整数との組を位数pの群の元に写像する第四の写像により、上記検索整数ηiと上記多項式値f(i)との組を写像した元を算出して、n個の検索元Tiとする。
上記検索装置400は、索引元記憶部421と、判定元記憶部422と、検索元記憶部432と、写像元算出部450と、比較元算出部460とを有する。
上記索引元記憶部421は、上記記憶装置を用いて、上記索引暗号化装置200が算出したn個の索引元Eiを記憶する。
上記判定元記憶部422は、上記記憶装置を用いて、上記索引暗号化装置200が算出した判定元E’を記憶する。
上記検索元記憶部432は、上記記憶装置を用いて、上記検索暗号化装置300が算出したn個の検索元Tiを記憶する。
上記写像元算出部450は、上記処理装置を用いて、上記判定対象選択部441が選択したd個の判定対象整数iそれぞれについて、上記索引元記憶部421が記憶した索引元Eiと、上記検索元記憶部432が記憶した検索元Tiと、上記補間係数値算出部442が算出した補間係数値Δi,Sとに基づいて、位数pの群の元と位数pの群の元と0以上p未満の整数との組を位数pの群の元に写像する第五の写像により、上記索引元Eiと上記検索元Tiと上記補間係数値Δi,Sとの組を写像した元を算出して、d個の写像元e’iとする。
上記比較元算出部460は、上記処理装置を用いて、上記写像元算出部450が算出したd個の写像元e’iを群演算により結合した元を算出して、比較元Bとする。
上記判定部470は、上記処理装置を用いて、上記比較元算出部460が算出した比較元Bと、上記判定元記憶部422が記憶した判定元E’とが等しい場合に、上記判定対象選択部441が選択したd個の判定対象整数iについて、上記索引整数hiと、上記検索整数ηiとが一致すると判定する。
The
The
The secret
The public
The
The
The index
The index
The determination
The
The secret
Using the storage device, the search
The polynomial
The polynomial
The search
The
The index
The determination
The search
The mapping
The comparison
The
この実施の形態における検索システム800によれば、位数pが素数である群を用いて、暗号化処理をするので、用いることができる群や写像の種類が多く、安全性の高いシステムを構築することができる。
According to the
ここでいうところの第一の写像をφ1、第二の写像をφ2、第三の写像をφ3、第四の写像をφ4、第五の写像をφ5とすると、この実施の形態で用いる写像φ1〜φ5は、次の式で定義される。
すなわち、第一の写像φ1は、0以上p未満の整数を位数pの群G3の元へ写す写像であり、整数xを、元e(g1,g2)のx乗へ写す。pは素数であり、元g1は群G1の単位元でなく、元g2は群G2の単位元でなく、ペアリング写像eは双線形かつ非縮退なので、元e(g1,g2)は群G3の単位元ではない。したがって、第一の写像φ1は全単射であり、整数がpを法とする加法についてなす群から群G3への同型写像である。
第二の写像φ2は、0以上p未満の整数を位数pの群G1の元へ写す写像であり、整数xを、元[g1の(ui・s)乗]のx乗へ写す。生成元g1は群G1の単位元でなく、秘密乱数ui及び索引乱数sは0でないので、元[g1の(ui・s)乗]は群G1の単位元ではない。したがって、第二の写像φ2は全単射であり、整数がpを法とする加法についてなす群から群G1への同型写像である。
第三の写像φ3は、位数pの群G3の元を位数pの群G3の元へ写す写像であり、元Xを、元Xのs乗へ写す。索引乱数sは0でない。したがって、第三の写像φ3は全単射であり、群G3の自己同型写像である。
第四の写像φ4は、1以上p未満の整数と0以上p未満の整数との組を位数pの群G2の元へ写す写像であり、整数x1と整数x2との組(x1,x2)を、元[g2の(1/ui)乗]の(x2/x1)乗へ写す。生成元g2は群G2の単位元でないので、元[g2の(1/ui)乗]は群G2の単位元ではない。したがって、整数x1を固定して考えると、第四の写像φ4は全単射であり、整数がpを法とする加法についてなす群から群G2への同型写像である。また、整数x2を固定して考えると、第四の写像φ4は単射であり、群G2から単位元を除いた集合に対する全単射である。
第五の写像φ5は、位数pの群G1の元と位数pの群G2の元と0以上p未満の整数との組を位数pの群G3の元へ写す写像であり、元X1と元X2と整数x3との組(X1,X2,x3)を、元e(X1,X2)のx3乗へ写す。ペアリング写像eは双線形かつ非縮退である。したがって、X2,x3を固定して考えると、第五の写像φ5は群G1から群G3への準同型写像であり、x3が0でないとき全単射である。また、X1,x3を固定して考えると、第五の写像φ5は群G2から群G3への準同型写像であり、x3が0でないとき全単射である。更に、X1,X2を固定して考えると、第五の写像φ5は全単射であり、整数がpを法とする加法についてなす群から群G3への同型写像である。
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を上記第一の写像φ1により写像した元φ1(x)を、上記第三の写像φ3により写像した元φ3(φ1(x))が、上記任意の整数xと等しい数の所定の元Zを、群演算により結合した元[Zx]と等しくなる写像を、上記第三の写像φ3として用いる。
上記写像元算出部450は、1以上p未満の任意の第一の整数x1について、上記任意の第一の整数x1を上記第二の写像φ2により写像した元φ2(x1)と、上記任意の第一の整数x1と第二の整数x2との組を上記第四の写像φ4により写像した元φ4(x1,x2)と、第三の整数x3との組を、上記第五の写像により写像した元φ5(φ2(x1),φ4(x1,x2),x3)が、上記第二の整数x2と上記第三の整数x3との積と等しい数の上記所定の元Zを、群演算により結合した元[Z^(x2・x3)]と等しくなる写像を、上記第五の写像φ5として用いる。
The determination
The mapping
この実施の形態における検索システム800によれば、判定対象選択部441が選択したd個の判定対象整数について、索引整数hiと検索整数ηiとが一致する場合に、比較元算出部460が算出する比較元Bと、判定元算出部240が算出する判定元E’とが一致する。検索装置400は、これを利用することにより、判定対象選択部441が選択したd個の判定対象整数について、索引整数hiと検索整数ηiとが一致するか否かを判定する。
According to the
例えば、この実施の形態における写像φ1〜φ5については、次の関係が成り立つ。
上記5つの写像φ1〜φ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
この実施の形態における検索システム800において、上記設定装置100は、更に、秘密乱数生成部132と、公開乱数元算出部142とを有する。
上記秘密乱数生成部132は、上記処理装置を用いて、1以上n以下のn個の整数iそれぞれについて、1以上p未満の整数をランダムに生成して、n個の秘密乱数uiとする。
上記公開元算出部141は、上記処理装置を用いて、第一の群G1の元と第二の群G2の元との組を第三の群G3の元に写像する双線形ペアリング写像e(上記第一の群G1及び上記第二の群G2及び上記第三の群G3の位数はp。)により、上記第一の群G1の生成元である第一生成元g1と、上記第二の群G2の生成元である第二生成元g2との組を写像した元である第三生成元g3と、上記秘密整数生成部131が生成した秘密整数yとに基づいて、上記秘密整数yと等しい数の上記第三生成元g3を、上記第三の群G3の群演算により結合した元g3 yを算出して、公開元Yとする。
上記公開乱数元算出部142は、上記処理装置を用いて、1以上n以下のn個の整数iそれぞれについて、上記第一生成元g1と、上記秘密乱数生成部132が生成した秘密乱数uiとに基づいて、上記秘密乱数uiと等しい数の上記第一生成元g1を、上記第一の群G1の群演算により結合した元[g1^ui]を算出して、n個の公開乱数元Uiとする。
上記索引暗号化装置200は、更に、公開乱数元記憶部217と、索引乱数生成部230とを有する。
上記公開乱数元記憶部217は、上記記憶装置を用いて、上記設定装置100が算出したn個の公開乱数元Uiを記憶する。
上記索引乱数生成部230は、上記処理装置を用いて、1以上p未満の整数をランダムに生成して、索引乱数sとする。
上記判定元算出部240は、上記処理装置を用いて、上記公開元記憶部216が記憶した公開元Yと、上記索引乱数生成部230が生成した索引乱数sとに基づいて、上記索引乱数sと等しい数の上記公開元Yを、上記第三の群G3の群演算により結合した元Ysを算出して、判定元E’とする。
上記索引元算出部250は、上記処理装置を用いて、1以上n以下のn個の整数iそれぞれについて、上記公開乱数元記憶部217が記憶した公開乱数元Uiと、上記索引整数記憶部224が記憶した索引整数hiと、上記索引乱数生成部230が生成した索引乱数sとに基づいて、上記索引整数hiと上記索引乱数sとの積と等しい数の上記公開乱数元Uiを、上記第一の群G1の群演算により結合した元[Ui^(s・hi)]を算出して、n個の索引元Eiとする。
上記検索暗号化装置300は、更に、秘密乱数記憶部323を有する。
上記秘密乱数記憶部323は、上記記憶装置を用いて、上記設定装置100が生成したn個の秘密乱数uiを記憶する。
上記検索元算出部360は、上記処理装置を用いて、1以上n以下のn個の整数iそれぞれについて、上記第二生成元g2と、上記秘密乱数記憶部323が記憶した秘密乱数uiと、上記検索整数記憶部353が記憶した検索整数ηiと、上記多項式値算出部344が算出した多項式値f(i)とに基づいて、上記秘密乱数uiと上記検索整数ηiとの積で上記多項式値f(i)を割った商と等しい数の上記第二生成元g2を、上記第二の群G2の群演算により結合した元[g2^{f(i)/(ui・ηi)}]を算出して、n個の検索元Tiとする。
上記検索装置400において、上記写像元算出部450は、上記処理装置を用いて、上記判定対象選択部441が選択したd個の判定対象整数iそれぞれについて、上記索引元記憶部421が記憶した索引元Eiと、上記検索元記憶部432が記憶した検索元Tiとに基づいて、上記双線形ペアリング写像eにより上記索引元Eiと上記検索元Tiとの組を写像した上記第三の群G3の元e(Ei,Ti)を算出して、d個のペアリング値eiとし、上記判定対象選択部441が選択したd個の判定対象整数iそれぞれについて、算出した上記ペアリング値eiと、上記補間係数値算出部442が算出した補間係数値Δi,Sとに基づいて、上記補間係数値Δi,Sと等しい数の上記ペアリング値eiを、上記第三の群G3の群演算により結合した元[ei^Δi,S]を算出して、d個の写像元e’iとする。
上記比較元算出部460は、上記処理装置を用いて、上記写像元算出部450が算出したd個の写像元e’iを、上記第三の群G3の群演算により結合した元Π(e’i)を算出して、比較元Bとする。
In the
The secret random
The public
The public random number
The
The public random number
The index random
The determination
The index
The
The secret random
The search
In the
The comparison
安全性の証明については省略するが、この実施の形態における検索システム800によれば、索引整数や検索整数を解読しようとする第三者の攻撃に対して、安全性を有する。
Although the proof of security is omitted, the
この実施の形態における検索システム800において、上記索引暗号化装置200は、更に、索引変換部223を有する。
上記索引変換部223は、上記処理装置を用いて、1以上n以下のn個の整数iに対応するn個の索引文字列wiを入力し、1以上n以下のn個の整数iそれぞれについて、任意の長さの文字列を1以上p未満の整数に変換する変換写像Hにより、入力した索引文字列wiを変換して、n個の索引整数hiとする。
上記索引整数記憶部224は、上記記憶装置を用いて、上記索引変換部223が変換したn個の索引整数hiを記憶する。
上記検索暗号化装置300は、更に、検索変換部352を有する。
上記検索変換部352は、上記処理装置を用いて、1以上n以下のn個の整数iに対応するn個の検索文字列ωiを入力し、1以上n以下のn個の整数iそれぞれについて、上記変換写像Hにより、入力した検索文字列ωiを変換して、n個の検索整数ηiとする。
上記検索整数記憶部353は、上記記憶装置を用いて、上記検索変換部352が変換したn個の検索整数ηiを記憶する。
In the
The
The index
The
The
The search
この実施の形態における検索システム800によれば、索引データ及び検索データとして、1以上p未満の整数に限らず、任意の長さの文字列を用いることができるので、検索システム800を応用できる範囲が広くなる。
According to the
この実施の形態における索引暗号化装置200によれば、算出した暗号化索引データを第三者に知られても、もとである索引データを知られることはなく、それでいて、暗号化索引データを用いて、n個ある索引データのうちd個以上が検索データと一致するものを検索することを可能にする。また、n個ある索引データのうち検索データと一致するものがd個未満の場合には、どの索引データが検索データと一致したかについても知られずに済むので、より高い安全性を実現できる。
According to the
この実施の形態における検索暗号化装置300によれば、算出した暗号化検索データを第三者に知られても、もとである検索データを知られることはなく、それでいて、暗号化検索データを用いて、n個ある索引データのうちd個以上が検索データと一致するものを検索することを可能にする。また、n個ある索引データのうち検索データと一致するものがd個未満の場合には、どの索引データが検索データと一致したかについても知られずに済むので、より高い安全性を実現できる。
According to the
この実施の形態における検索装置400によれば、暗号化索引データ及び暗号化検索データのいずれも復号することなく、n個ある索引データのうちd個以上が検索データと一致するものを検索することができる。
According to the
この実施の形態における索引暗号化装置200・検索暗号化装置300・検索装置400は、いずれも、コンピュータを、索引暗号化装置200または検索暗号化装置300または検索装置400として機能させるコンピュータプログラムを、コンピュータが実行することにより、実現することができる。
The
この実施の形態における検索システム800において、索引暗号化装置200が索引データを暗号化した暗号化索引データと、検索暗号化装置300が検索データを暗号化した暗号化検索データとを用いて、検索装置400が上記索引データと上記検索データとが一致するか否かを判定する検索方法は、以下の工程を有する。
上記索引暗号化装置200が、1以上n以下のn個の整数i(nは1以上の整数。)に対応するn個の索引データ(索引整数hi)を記憶する。
上記索引暗号化装置200が、1以上n以下のn個の整数iそれぞれについて、記憶した索引データを暗号化して、n個の暗号化索引データ(索引元Ei)とする。
上記検索暗号化装置300が、1以上n以下のn個の整数iに対応するn個の検索データ(検索整数ηi)を記憶する。
上記検索暗号化装置300が、1以上n以下のn個の整数iそれぞれについて、(d−1)次の一変数多項式f(x)(dは1以上n以下の整数。)に上記整数iを代入した値を算出して、n個の多項式値f(i)とする。
上記検索暗号化装置300が、1以上n以下のn個の整数iそれぞれについて、記憶した検索データと、算出した多項式値f(i)との組を暗号化して、n個の暗号化検索データ(検索元Ti)とする。
上記検索装置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’i)とする。
上記検索装置400が、写像したd個の写像データに基づいて、比較データ(比較元B)を算出する。
上記検索装置400が、算出した比較データに基づいて、選択したd個の判定対象整数iについて、上記索引データと、上記検索データとが一致するか否かを判定する。
In the
The
The
The
For each of n integers i of 1 to n, the
The
The
The
The
The
The
The
Based on the calculated comparison data, the
この実施の形態における検索方法によれば、検索暗号化装置300が、(d−1)次の一変数多項式f(x)の値f(i)を用いて、検索データを暗号化し、検索装置400が、ラグランジュの補間係数の値Δi,Sを用いて、検索を実行するので、n個のデータのうちd個以上が一致する場合に、一致することを検索装置400が判定でき、d個未満しか一致しない場合には、いずれのデータが一致したかを検索装置400が知ることができない。これにより、索引データや検索データに関する情報の漏洩を防ぐことができる。
According to the search method in this embodiment, the
以上説明した検索システム800によれば、暗号化したままの状態でのキーワード検索が可能であり、複数のキーワードのうち、ある一定個以上が一致すれば検索にヒットする。検索にヒットしない場合には、どのキーワードが一致し、どのキーワードが一致しなかったかについての情報が漏れない。
According to the
これに対し、単一のキーワードの検索方式を応用しても、複数のキーワードのうち、ある一定個以上が一致するか否かを判定することは可能である。すなわち、データ作成者(索引暗号化装置)が、キーワード数(索引数)に応じて複数の暗号化タグ(暗号化索引データ)を生成し、データ検索者(検索暗号化装置)も、検索キーワード数(索引数)に応じて複数の検索用トラップドア(検索暗号化データ)を生成して、データ保管サーバ(検索装置)が検索を実行して、それぞれのキーワードが一致するものを抽出すれば、複数のキーワードのうち一定個以上以上が一致するか否かを調べることができる。しかし、この方式の場合、データ保管サーバ(検索装置)は、キーワード自体を知ることはできないものの、どの暗号化タグとどの検索用トラップドアが何個一致したかが分かってしまう。したがって、この情報を利用して、データ保管サーバは、データ検索者がどのようなデータを検索しようとしているかについて推測をすることが可能になってしまう。 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
以上説明した検索システム800は、素数位数の群におけるペアリングを利用している。これに対し、合成数位数の群におけるペアリングを利用する方式も考えられるが、その場合、利用できるペアリングの種類が限定されてしまう。以上説明した検索システム800によれば、素数位数の群におけるペアリングを利用するので、利用できるペアリングの種類が限定されず、ペアリングの計算量を低減することができる。
The
なお、以上の説明において、検索暗号化装置300は、暗号化検索データとして閾値dを指定し、検索装置400は、d個以上の索引が一致するデータを検索する構成としているが、検索暗号化装置300が、もっと細かく条件を指定する構成としてもよい。
例えば、検索暗号化装置300は、必ず一致しなければならない索引の番号や、一致するか否かを問わない索引の番号を指定する構成としてもよい。一致するか否かを問わない索引の番号を指定する場合、その番号に対応する検索元Tiを暗号化検索データに含める必要はなく、暗号化検索データの量を少なくすることができる。
これを受けて、検索装置400では、判定対象選択部441が、1以上n以下のn個の整数のなかからd個の整数を選択する際、必ず一致しなければならない索引として指定された番号は、選択するd個の整数のなかに必ず含め、一致するか否かを問わない索引として指定された番号は、選択するd個の整数のなかに含めない。これにより、検索装置400における計算量を減らすことができる。
In the above description, the
For example, the
In response to this, in the
また、索引暗号化装置200は、索引文字列を指定していない索引がある場合、その索引の番号を、暗号化索引データに含めて、検索装置400に知らせる構成としてもよい。その場合、その番号に対応する索引元Eiを暗号化索引データに含める必要はなく、暗号化索引データの量を少なくすることができる。
これを受けて、検索装置400では、その暗号化索引データに対して検索を実行する際、判定対象選択部441が、索引文字列を指定していないとされる索引の番号を、選択するd個の整数のなかに含めない。これにより、検索装置400における計算量を減らすことができる。
Further, when there is an index for which no index character string is designated, the
In response to this, in the
実施の形態2.
実施の形態2について、図13〜図20を用いて説明する。
なお、実施の形態1と共通する部分については、同一の符号を付し、説明を省略する。
この実施の形態における検索システム800の全体構成、復号装置810、暗号化装置820、サーバ装置830の外観及びハードウェア資源は、実施の形態1と同様である。
The second embodiment will be described with reference to FIGS.
In addition, about the part which is common in
The overall configuration of the
図13は、この実施の形態における設定装置100の構成の一例を示すブロック構成図である。
設定装置100は、設定記憶部110、秘密生成部130、公開算出部140、公開出力部150を有する。
FIG. 13 is a block configuration diagram showing an example of the configuration of the
The
設定記憶部110は、第一生成元記憶部111、索引数記憶部115を有する。第一生成元記憶部111は、磁気ディスク装置920を用いて、群G1の生成元g1を記憶する。索引数記憶部115は、磁気ディスク装置920を用いて、索引数nを記憶する。
The setting
秘密生成部130は、秘密整数生成部131を有する。秘密整数生成部131は、CPU911を用いて、1以上p以下の整数をランダムに生成し、秘密整数yとして出力する。
The
公開算出部140は、公開元算出部141、公開乱数元算出部142、第二生成元算出部147を有する。
公開元算出部141は、CPU911を用いて、第一生成元記憶部111が記憶した群G1の生成元g1と、秘密整数生成部131が出力した秘密整数yとを入力する。公開元算出部141は、CPU911を用いて、入力した生成元g1と秘密整数yとに基づいて、元g1のy乗である群G1の元g1 yを算出する。公開元算出部141は、CPU911を用いて、算出した元を公開元g1’として出力する。
公開乱数元算出部142は、CPU911を用いて、索引数記憶部115が記憶した索引数nを入力する。公開乱数元算出部142は、CPU911を用いて、1以上n以下のn個の整数それぞれについて、群G2の単位元以外の元をランダムに生成する。公開乱数元算出部142は、CPU911を用いて、生成したn個の元を公開乱数元ui(iは1以上n以下の整数。)として出力する。
第二生成元算出部147は、CPU911を用いて、群G2の単位元以外の元をランダムに生成する。第二生成元算出部147は、CPU911を用いて、生成した元を生成元g2として出力する。
The
Using the
The public random number
Second generation
公開出力部150は、公開元出力部151、公開乱数元出力部152、第一生成元出力部156、第二生成元出力部157を有する。公開元出力部151は、CPU911を用いて、公開元算出部141が出力した公開元g1’を入力して、外部に出力する。公開乱数元出力部152は、CPU911を用いて、公開乱数元算出部142が出力したn個の公開乱数元uiを入力して、外部に出力する。第一生成元出力部156は、CPU911を用いて、第一生成元記憶部111が記憶した群G1の生成元g1を入力して、外部に出力する。第二生成元出力部157は、第二生成元算出部147が出力した群G2の生成元g2を入力して、外部に出力する。
The
図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
The
設定記憶部310は、第一生成元記憶部311、第二生成元記憶部312、索引数記憶部315、公開乱数元記憶部317を有する。第一生成元記憶部311は、磁気ディスク装置920を用いて、群G1の生成元g1を記憶する。第二生成元記憶部312は、磁気ディスク装置920を用いて、群G2の生成元g2を記憶する。索引数記憶部315は、磁気ディスク装置920を用いて、索引数nを記憶する。公開乱数元記憶部317は、磁気ディスク装置920を用いて、設定装置100が公開したn個の公開乱数元uiを記憶する。
The setting
検索乱数生成部380は、CPU911を用いて、1以上n以下のn個の整数それぞれについて、1以上p未満の整数をランダムに生成する。検索乱数生成部380は、CPU911を用いて、生成したn個の整数を検索乱数ri(iは1以上n以下の整数。)として出力する。
Using the
検索乱数元算出部390は、CPU911を用いて、n個の検索乱数元ti(iは1以上n以下の整数。)を算出する。検索乱数元tiは、検索乱数を暗号化したものであり、暗号化検索データの一部である。検索乱数元算出部390は、累乗部391を有する。
累乗部391は、CPU911を用いて、第一生成元記憶部311が記憶した群G1の生成元g1と、検索乱数生成部380が出力したn個の検索乱数riとを入力する。累乗部391は、CPU911を用いて、1以上n以下のn個の整数それぞれについて、生成元g1と、対応する検索乱数riとに基づいて、元g1のri乗である群G1の元[g1^ri]を算出する。累乗部391は、CPU911を用いて、算出したn個の元を検索乱数元ti(iは1以上n以下の整数。)として出力する。
Using the
The
検索元算出部360は、関数値算出部362、二つの累乗部365,366、積算出部367を有する。
関数値算出部362は、CPU911を用いて、公開乱数元記憶部317が記憶したn個の公開乱数元uiと、検索整数記憶部353が記憶したn個の検索整数ηiとを入力する。関数値算出部362は、CPU911を用いて、1以上n以下のn個の整数それぞれについて、対応する公開乱数元uiと、対応する検索整数ηiとに基づいて、検索整数ηiと公開乱数元uiとの組を関数Uに代入した値を算出する。関数値算出部362は、CPU911を用いて、算出したn個の値を関数値U(ηi,ui)(iは1以上n以下の整数。)として出力する。
関数Uは、0以上p未満の整数と群G2の元との組を引数とし、値として、群G2の元をとる。関数Uは、例えば、次の式により定義される。
Using the
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.
累乗部365は、CPU911を用いて、関数値算出部362が出力したn個の関数値U(ηi,ui)と、検索乱数生成部380が出力したn個の検索乱数riとを入力する。累乗部365は、1以上n以下のn個の整数それぞれについて、対応する関数値U(ηi,ui)と、対応する検索乱数riとに基づいて、関数値U(ηi,ui)のri乗である群G2の元[U(ηi,ui)^ri]を算出する。累乗部365は、CPU911を用いて、算出したn個の元[U(ηi,ui)^ri](iは1以上n以下の整数。)を出力する。
The
累乗部366は、CPU911を用いて、第二生成元記憶部312が記憶した群G2の生成元g2と、多項式値算出部344が出力したn個の多項式値f(i)とを入力する。累乗部366は、CPU911を用いて、1以上n以下のn個の整数それぞれについて、生成元g2と、対応する多項式値f(i)とに基づいて、元g2のf(i)乗である群G2の元[g2^f(i)]を算出する。累乗部366は、CPU911を用いて、算出したn個の元[g2^f(i)](iは1以上n以下の整数。)を出力する。
The
積算出部367は、CPU911を用いて、累乗部365が出力したn個の関数値U(ηi,ui)と、累乗部366が出力したn個の元[g2^f(i)]とを入力する。積算出部367は、CPU911を用いて、1以上n以下のn個の整数それぞれについて、対応する関数値U(ηi,ui)と、対応する元[g2^f(i)]との積を算出する。積算出部367は、CPU911を用いて、算出したn個の積を検索元Ti(iは1以上n以下の整数。)として出力する。
Using the
暗号化検索出力部370は、閾値出力部371、検索元出力部372、検索乱数元出力部373を有する。閾値出力部371は、CPU911を用いて、閾値記憶部341が記憶した閾値dを入力して、外部に出力する。検索元出力部372は、CPU911を用いて、積算出部367が出力したn個の検索元Tiを入力して、外部に出力する。検索乱数元出力部373は、CPU911を用いて、累乗部391が出力したn個の検索乱数元tiを入力して、外部に出力する。
The encrypted
図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
The
設定記憶部210は、第一生成元記憶部211、第二生成元記憶部212、索引数記憶部215、公開元記憶部216、公開乱数元記憶部217を有する。第一生成元記憶部211は、磁気ディスク装置920を用いて、群G1の生成元g1を記憶する。第二生成元記憶部212は、磁気ディスク装置920を用いて、群G2の生成元g2を記憶する。索引数記憶部215は、磁気ディスク装置920を用いて、索引数nを記憶する。公開元記憶部216は、磁気ディスク装置920を用いて、設定装置100が公開した公開元g1’を記憶する。公開乱数元記憶部217は、磁気ディスク装置920を用いて、設定装置100が公開したn個の公開乱数元uiを記憶する。
The setting
判定元算出部240は、ペアリング値算出部241、累乗部242を有する。
ペアリング値算出部241は、CPU911を用いて、公開元記憶部216が記憶した公開元g1’と、第二生成元記憶部212が記憶した群G2の生成元g2とを入力する。ペアリング値算出部241は、CPU911を用いて、ペアリング写像eにより、元g1’と元g2との組を写像した群G3の元e(g1’,g2)を算出する。ペアリング値算出部241は、CPU911を用いて、算出した元e(g1’,g2)を出力する。
累乗部242は、CPU911を用いて、ペアリング値算出部241が出力した元e(g1’,g2)と、索引乱数生成部230が出力した索引乱数sとを入力する。累乗部242は、CPU911を用いて、元e(g1’,g2)のs乗である群G3の元[e(g1’,g2)s]を算出する。累乗部242は、CPU911を用いて、算出した元を判定元E’として出力する。
ここで、公開元g1’は、群G1の生成元g1のy乗であるから、判定元E’は、
群G3の元e(g1,g2)の(s・y)乗である。
The determination
Using the
The
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が記憶した群G1の生成元g1と、索引乱数生成部230が出力した索引乱数sとを入力する。累乗部271は、CPU911を用いて、元g1のs乗である群G1の元(g1 s)を算出する。累乗部271は、CPU911を用いて、算出した元(g1 s)を乱数元E”として出力する。
The random number
The power unit 271 uses the
索引元算出部250は、関数値算出部252、累乗部253を有する。
関数値算出部252は、CPU911を用いて、公開乱数元記憶部217が記憶したn個の公開乱数元uiと、索引整数記憶部224が記憶したn個の索引整数hiとを入力する。関数値算出部252は、CPU911を用いて、1以上n以下のn個の整数それぞれについて、対応する公開乱数元uiと、対応する索引整数hiとに基づいて、索引整数hiと公開乱数元uiとの組を関数Uに代入した値を算出する。関数値算出部252は、CPU911を用いて、算出したn個の値を関数値U(hi,ui)として出力する。
関数Uは、関数値算出部362が用いる関数と同じ関数である。したがって、索引整数hiと検索整数ηiとが等しければ、関数値算出部252が算出する関数値U(hi,ui)と関数値算出部362が算出する関数値U(ηi,ui)とは等しい。
The index
Using the
The function U is the same function as the function used by the function
累乗部253は、CPU911を用いて、関数値算出部252が出力したn個の関数値U(hi,ui)と、索引乱数生成部230が出力した索引乱数sとを入力する。累乗部253は、CPU911を用いて、1以上n以下のn個の整数それぞれについて、関数値U(hi,ui)のs乗である群G2の元[U(hi,ui)s]を算出する。累乗部253は、CPU911を用いて、算出したn個の元[U(hi,ui)s]を索引元Eiとして出力する。
The
暗号化索引出力部260は、索引元出力部261、判定元出力部263、乱数元出力部264を有する。索引元出力部261は、CPU911を用いて、累乗部253が出力したn個の索引元Eiを入力して、外部に出力する。判定元出力部263は、CPU911を用いて、累乗部242が出力した判定元E’を入力して、外部に出力する。乱数元出力部264は、CPU911を用いて、累乗部271が出力した乱数元E”を入力して、外部に出力する。
The encrypted
図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
The
暗号化索引記憶部420は、索引元記憶部421、判定元記憶部422、乱数元記憶部424を有する。索引元記憶部421は、磁気ディスク装置920を用いて、1つの暗号化索引データについてn個ずつ索引元Eiを記憶する。判定元記憶部422は、磁気ディスク装置920を用いて、1つの暗号化索引データについて1つずつの判定元E’を記憶する。乱数元記憶部424は、磁気ディスク装置920を用いて、1つの暗号化索引データについて1つずつの乱数元E”を記憶する。
The encrypted
暗号化検索記憶部430は、閾値記憶部431、検索元記憶部432、検索乱数元記憶部433を有する。閾値記憶部431は、磁気ディスク装置920を用いて、閾値dを記憶する。検索元記憶部432は、磁気ディスク装置920を用いて、n個の検索元Tiを記憶する。検索乱数元記憶部433は、磁気ディスク装置920を用いて、n個の検索乱数元tiを記憶する。
The encrypted
写像元算出部450は、二つのペアリング値算出部451,453、除算部454、累乗部455を有する。
ペアリング値算出部451は、CPU911を用いて、乱数元記憶部424が記憶した乱数元E”と、検索元記憶部432が記憶したn個の検索元Tiとを入力する。ペアリング値算出部451は、CPU911を用いて、1以上n以下のn個の整数それぞれについて、乱数元E”と、対応する検索元Tiとに基づいて、ペアリング写像eにより、乱数元E”と検索元Tiとの組を写像した群G3の元e(E”,Ti)を算出する。ペアリング値算出部451は、CPU911を用いて、算出したn個の元e(E”,Ti)(iは1以上n以下の整数。)を出力する。
ペアリング値算出部453は、CPU911を用いて、索引元記憶部421が記憶したn個の索引元Eiと、検索乱数元記憶部433が記憶したn個の検索乱数元tiとを入力する。ペアリング値算出部453は、CPU911を用いて、1以上n以下のn個の整数それぞれについて、対応する索引元Eiと、対応する検索乱数元tiとに基づいて、ペアリング写像eにより、検索乱数元tiと索引元Eiとの組を写像した群G3の元e(ti,Ei)を算出する。ペアリング値算出部453は、CPU911を用いて、算出したn個の元e(ti,Ei)(iは1以上n以下の整数。)を出力する。
除算部454は、CPU911を用いて、ペアリング値算出部451が出力したn個の元e(E”,Ti)と、ペアリング値算出部453が出力したn個の元e(ti,Ei)とを入力する。除算部454は、CPU911を用いて、1以上n以下のn個の整数それぞれについて、対応する元e(E”,Ti)と、対応する元e(ti,Ei)とに基づいて、元e(E”,Ti)を元e(ti,Ei)で割った商[e(E”,Ti)/e(ti,Ei)]を算出する。除算部454は、CPU911を用いて、算出したn個の商をペアリング値ei(iは1以上n以下の整数。)として出力する。
ここで、乱数元E”は、群G1の生成元g1のs乗であり、検索元Tiは、群G2の生成元g2のf(i)乗と関数値U(ηi,ui)との積であり、検索乱数元tiは、群G1の生成元g1のti乗であり、索引元Eiは、関数値U(hi,ui)のs乗であるから、ペアリング値eiは、
Pairing
The pairing
Using the
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
である。 It is.
累乗部455は、CPU911を用いて、補間係数値算出部442が出力したd個の補間係数値Δi,Sと、ペアリング値算出部451が出力したn個のペアリング値eiのうち判定対象選択部441が選択したd個の整数に対応するd個のペアリング値eiとを入力する。累乗部455は、判定対象選択部441が選択したd個の整数それぞれについて、対応する補間係数値Δi,Sと、対応するペアリング値eiとに基づいて、ペアリング値eiのΔi,S乗である群G3の元を算出する。累乗部455は、CPU911を用いて、算出したd個の元を写像元e’iとして出力する。
Using the
比較元算出部460は、総積部461を有する。
総積部461は、CPU911を用いて、累乗部455が出力したd個の写像元e’iを入力する。総積部461は、CPU911を用いて、入力したd個の写像元e’iすべての総積Π[e’i]を算出する。総積部461は、CPU911を用いて、算出した総積Π[e’i]を比較元Bとして出力する。
ここで、比較元Bは、
Using the
Here, the comparison source B is
判定部470は、CPU911を用いて、検索条件に合うか否かを判定する対象である索引について判定元記憶部422が記憶した判定元E’と、総積部461が出力した比較元Bとを入力する。判定部470は、入力した判定元E’と比較元Bとを比較し、一致する場合に、その索引が検索条件に合うと判定する。判定部470は、CPU911を用いて、判定した結果を出力する。
The
すべてのi∈Sについて、hi=ηiである場合、U(hi,ui)=U(ηi,ui)であるから、比較元Bは、
一方、いずれかのi∈Sについて、hi≠ηiである場合、B=E’となる確率は、極めて低い。例えば、i∈S’(S’はSの部分集合であり空集合でない。)について、hi≠ηiであり、それ以外のi∈Sについて、hi=ηiだとすると、
図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を用いて、群G2の元であって単位元でない元をランダムに生成して、生成元g2とする。
秘密整数生成工程S614において、秘密整数生成部131は、CPU911を用いて、1以上p未満の整数をランダムに生成して、秘密整数yとする。
公開元算出工程S615において、公開元算出部141は、CPU911を用いて、第一生成元記憶部111が記憶した群G1の生成元g1と、秘密整数生成工程S614で秘密整数生成部131が生成した秘密整数yとに基づいて、元g1のy乗である群G1の元を算出して、公開元g1’とする。
In the second generation source generating step S612, the second generation
In the secret integer generation step S614, the secret
In the public element calculation step S615, the public
整数選択工程S616において、公開乱数元算出部142は、CPU911を用いて、1以上n以下のn個の整数のなかから、整数を1つずつ順に選択して、整数iとする。
公開乱数元生成工程S618において、公開乱数元算出部142は、CPU911を用いて、整数選択工程S616で選択した整数iについて、群G2の元であって単位元でない元をランダムに生成して、公開乱数元uiとする。
整数繰り返し工程S620において、公開乱数元算出部142は、CPU911を用いて、1以上n以下のすべての整数を、整数選択工程S616で選択したか否かを判定する。まだ選択していない整数があると判定した場合、公開乱数元算出部142は、CPU911を用いて、整数選択工程S616に戻り、次の整数を選択する。すべての整数を選択したと判定した場合、設定装置100は、設定処理S610を終了する。
In the integer selection step S616, the public random number
In public random element generation step S618, the public random
In the integer repetition step S620, the public random number
図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が記憶した公開元g1’と、第二生成元記憶部212が記憶した群G2の生成元g2との組を写像した群G3の元e(g1’,g2)を算出する。累乗部242は、CPU911を用いて、ペアリング値算出部241が算出した元e(g1’,g2)と、索引乱数生成工程S631で索引乱数生成部230が生成した索引乱数sとに基づいて、元e(g1’,g2)のs乗である群G3の元を算出して、判定元E’とする。
乱数元算出工程S634において、累乗部271は、CPU911を用いて、第一生成元記憶部211が記憶した群G1の生成元g1と、索引乱数生成工程S631で索引乱数生成部230が生成した索引乱数sとに基づいて、元g1のs乗である群G1の元を算出して、乱数元E”とする。
In the index random number generation step S631, the index random
In the determination source calculation step S632, the pairing
In random element calculation step S634, a power unit 271, by using the
整数選択工程S635において、索引変換部223は、CPU911を用いて、1以上n以下のn個の整数のなかから、整数を1つずつ順に選択して、整数iとする。
索引整数算出工程S636において、索引変換部223は、CPU911を用いて、整数選択工程S635で選択した整数iについて、写像Hにより、索引入力部221が入力した索引文字列wiを写像した整数を算出して、索引整数hiとする。
索引元算出工程S637において、関数値算出部252は、CPU911を用いて、整数選択工程S635で索引変換部223が選択した整数iについて、索引整数算出工程S636で索引変換部223が算出した索引整数hiと、公開乱数元uiとの組を、関数Uに代入した値である群G2の元を算出して、関数値U(hi,ui)とする。累乗部253は、CPU911を用いて、関数値算出部252が算出した関数値U(hi,ui)と、索引乱数生成工程S631で索引乱数生成部230が生成した索引乱数sとに基づいて、関数値U(hi,ui)のs乗である群G2の元を算出して、索引元Eiとする。
整数繰り返し工程S638において、索引変換部223は、CPU911を用いて、1以上n以下のすべての整数を、整数選択工程S635で選択したか否かを判定する。まだ選択していない整数があると判定した場合、索引変換部223は、CPU911を用いて、整数選択工程S635に戻り、次の整数を選択する。すべての整数を選択したと判定した場合、索引暗号化装置200は、索引暗号化処理S630を終了する。
In the integer selection step S635, the
In the index integer calculation step S636, the
In the index source calculation step S637, the function
In the integer repetition step S638, the
図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未満の整数をランダムに生成して、検索乱数riとする。
検索元算出工程S659において、関数値算出部362は、CPU911を用いて、整数選択工程S655で検索変換部352が選択した整数iについて、検索整数算出工程S656で検索変換部352が算出した検索整数ηiと、公開乱数元uiとの組を、関数Uに代入した値である群G2の元を算出して、関数値U(ηi,ui)とする。累乗部365は、CPU911を用いて、関数値算出部362が算出した関数値U(ηi,ui)と、検索乱数生成工程S658で検索乱数生成部380が生成した検索乱数riとに基づいて、関数値U(ηi,ui)のri乗である群G2の元[U(ηi,ui)^ri]を算出する。累乗部366は、CPU911を用いて、第二生成元記憶部312が記憶した群G2の生成元g2と、多項式値算出工程S657で多項式値算出部344が算出した多項式値f(i)とに基づいて、元g2のf(i)乗である群G2の元[g2^f(i)]を算出する。積算出部367は、CPU911を用いて、累乗部366が算出した元[g2^f(i)]と、累乗部365が算出した元[U(ηi,ui)^ri]との積である群G2の元を算出して、検索元Tiとする。
検索乱数元算出工程S660において、累乗部391は、CPU911を用いて、第一生成元記憶部311が記憶した群G1の生成元g1と、検索乱数生成工程S658で検索乱数生成部380が生成した検索乱数riとに基づいて、元g1のri乗である群G1の元を算出して、検索乱数元tiとする。
In the search random number generation step S658, the search random
In the search source calculation step S659, the function
In search random element calculation step S660, a
図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が記憶した検索元Tiとに基づいて、ペアリング写像eにより、乱数元E”と検索元Tiとの組を写像した群G3の元e(E”,Ti)を算出して、第一ペアリング値とする。ペアリング値算出部453は、CPU911を用いて、整数選択工程S672で選択した整数iについて、索引元記憶部421が記憶した索引元Eiと、検索乱数元記憶部433が記憶した検索乱数元tiとに基づいて、ペアリング写像eにより、検索乱数元tiと索引元Eiとの組を写像した群G3の元e(ti,Ei)を算出して第二ペアリング値とする。除算部454は、CPU911を用いて、ペアリング値算出部451が算出した第一ペアリング値e(E”,Ti)と、ペアリング値算出部453が算出した第二ペアリング値e(ti,Ei)とに基づいて、第一ペアリング値e(E”,Ti)を第二ペアリング値e(ti,Ei)で割った商である群G3の元を算出して、ペアリング値eiとする。
In the pairing value calculation step S673, the pairing
この実施の形態における検索システム800は、実施の形態1と同様の効果を奏する。
更に、検索暗号化装置300が耐タンパ性のある記憶装置などを用いて秘密裡に保持すべき秘密整数の数が、索引数nにかかわらず1つなので、耐タンパ性のある記憶装置の記憶容量によって、索引数nが制限されることがない。
The
Further, since the number of secret integers that the
この実施の形態で用いる写像φ1〜φ5は、次の式で定義される。
すなわち、第一の写像φ1は、0以上p未満の整数を位数pの群G1の元へ写す写像であり、整数xを、元g1のx乗へ写す。元g1は群G1の単位元でない。したがって、第一の写像φ1は全単射であり、整数がpを法とする加法についてなす群から群G1への同型写像である。
第二の写像φ2は、0以上p未満の整数を位数pの群G2の元へ写す写像であり、整数xを、関数値U(x,ui)のs乗へ写す。索引整数sは0でない。したがって、関数Uがxについて全単射であれば、第二の写像φ2も全単射である。
第三の写像φ3は、位数pの群G1の元を位数pの群G3へ写す写像であり、元Xを、元e(X,g2)のs乗へ写す。生成元g2は群G2の単位元でなく、ペアリング写像eは双線形かつ非縮退であり、索引乱数sは0でない。したがって、第三の写像φ3は全単射であり、同型写像である。
第四の写像φ4は、0以上p未満の整数と0以上p未満の整数との組を位数pの群G2の元へ写す写像であり、整数x1と整数x2との組(x1,x2)を、元g2のx2乗と関数値U(x1,ui)のri乗との積へ写す。生成元g2は群G2の単位元でなく、検索乱数riは0でない。したがって、x2を固定して考えると、x2が0でなく、関数Uが全単射であれば、第四の写像φ4は、全単射である。また、x1を固定して考えると、第四の写像φ4は全単射であり、整数がpを法とする加法についてなす群から群G2への同型写像である。
第五の写像φ5は、位数pの群G2の元と位数pの群G2の元と0以上p未満の整数との組を位数pの群G3の元に写す写像であり、元X1と元X2と整数x3との組(X1,X2,x3)を、元e(g1 s,X2)を元e(g1^ri,X1)で割った商のx3乗へ写す。生成元g1は群G1の単位元でなく、索引乱数s及び検索乱数riは0でなく、ペアリング写像eは双線形かつ非縮退である。したがって、X2,x3を固定して考えると、第五の写像φ5は、x3が0でないとき全単射である。また、X1,x3を固定して考えると、第五の写像φ5は、x3が0でないとき全単射であり、群G2から群G3への同型写像である。更に、X1,X2を固定して考えると、第五の写像φ5は全単射であり、整数がpを法とする加法についてなす群から群G3への同型写像である。
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 .
また、この実施の形態における写像φ1〜φ5については、次の関係が成り立つ。
この実施の形態における検索システム800において、上記設定装置100は、更に、公開乱数元算出部142を有する。
上記公開元算出部141は、上記処理装置を用いて、第一の群G1の生成元である第一生成元g1(上記第一の群G1の位数はp。)と、上記秘密整数生成部131が生成した秘密整数yとに基づいて、上記秘密整数yと等しい数の上記第一生成元g1を、上記第一の群G1の群演算により結合した元g1 yを算出して、公開元g1’とする。
上記公開乱数元算出部142は、上記処理装置を用いて、1以上n以下のn個の整数iそれぞれについて、第二の群G2の生成元(上記第二の群の位数はp。)をランダムに生成して、n個の公開乱数元uiとする。
上記索引暗号化装置200は、更に、公開乱数元記憶部217と、乱数元算出部270とを有する。
上記公開乱数元記憶部217は、上記記憶装置を用いて、上記設定装置100が算出したn個の公開乱数元uiを記憶する。
上記索引乱数生成部230は、上記処理装置を用いて、1以上p未満の整数をランダムに生成して、索引乱数sとする。
上記判定元算出部240は、上記処理装置を用いて、上記第二の群G2の生成元である第二生成元g2と、上記公開元記憶部216が記憶した公開元g1’とに基づいて、上記第一の群G1の元と上記第二の群G2の元との組を第三の群G3の元(上記第三の群の位数はp。)に写像する双線形ペアリング写像eにより、上記公開元g1’と上記第二生成元g2との組が写像される上記第三の群G3の元e(g1’,g2)を算出し、算出した上記第三の群G3の元e(g1’,g2)と、上記索引乱数生成部230が生成した索引乱数sとに基づいて、上記索引乱数sと等しい数の上記第三の群G3の元e(g1’,g2)を、上記第三の群G3の群演算により結合した元e(g1’,g2)sを算出して、判定元E’とする。
上記乱数元算出部270は、上記処理装置を用いて、上記第一生成元g1と、上記索引乱数生成部230が生成した索引乱数sとに基づいて、上記索引乱数sと等しい数の上記第一生成元g1を、上記第一の群G1の群演算により結合した元g1 sを算出して、乱数元E”とする。
上記索引元算出部250は、上記処理装置を用いて、1以上n以下のn個の整数iそれぞれについて、上記索引整数記憶部224が記憶した索引整数hiと、上記公開乱数元記憶部217が記憶した公開乱数元uiとに基づいて、0以上p未満の整数と上記第二の群G2の元との組を上記第二の群G2の元に写像する写像関数Uにより、上記索引整数hiと上記公開乱数元uiとの組を写像した上記第二の群G2の元を算出して、n個の索引関数値U(hi,ui)とし、1以上n以下のn個の整数iそれぞれについて、算出した上記索引関数値U(hi,ui)と、上記索引乱数生成部230が生成した索引乱数sとに基づいて、上記索引乱数sと等しい数の上記索引関数値U(hi,ui)を、上記第二の群G2の群演算により結合した元U(hi,ui)sを算出して、n個の索引元Eiとする。
上記検索暗号化装置300は、更に、公開乱数元記憶部317と、検索乱数生成部380と、検索乱数元算出部390とを有する。
上記公開乱数元記憶部317は、上記記憶装置を用いて、上記設定装置100が算出したn個の公開乱数元uiを記憶する。
上記検索乱数生成部380は、上記処理装置を用いて、1以上n以下のn個の整数iそれぞれについて、1以上p未満の整数をランダムに生成して、n個の検索乱数riとする。
上記検索元算出部360は、上記処理装置を用いて、1以上n以下のn個の整数iそれぞれについて、上記検索整数記憶部353が記憶した検索整数ηiと、上記公開乱数元記憶部317が記憶した公開乱数元uiとに基づいて、上記写像関数Uにより、上記検索整数ηiと上記公開乱数元uiとの組を写像して、上記第二の群G2の元を算出して、n個の検索関数値U(ηi,ui)とし、1以上n以下のn個の整数iそれぞれについて、算出した上記検索関数値U(ηi,ui)と、上記検索乱数生成部380が生成した検索乱数riとに基づいて、上記検索乱数riと等しい数の上記検索関数値U(ηi,ui)を、上記第二の群G2の群演算により結合した元[U(ηi,ui)^ri]を算出し、上記第二生成元g2と、上記多項式値算出部344が算出した多項式値f(i)とに基づいて、上記多項式値f(i)と等しい数の上記第二生成元g2を、上記第二の群G2の群演算により結合した元[g2^f(i)]を算出し、算出した上記第二の群の二つの元[U(ηi,ui)^ri],[g2^f(i)]を上記第二の群G2の群演算により結合した元を算出して、n個の検索元Tiとする。
上記検索乱数元算出部390は、上記処理装置を用いて、1以上n以下のn個の整数iそれぞれについて、上記第一生成元g1と、上記検索乱数生成部380が生成した検索乱数riとに基づいて、上記検索乱数riと等しい数の上記第一生成元g1を、上記第一の群G1の群演算により結合した元[g1^ri]を算出して、n個の検索乱数元tiとする。
上記検索装置400は、更に、乱数元記憶部424と、検索乱数元記憶部433とを有する。
上記乱数元記憶部424は、上記記憶装置を用いて、上記索引暗号化装置200が算出した乱数元E”を記憶する。
上記検索乱数元記憶部433は、上記記憶装置を用いて、上記検索暗号化装置300が算出したn個の検索乱数元tiを記憶する。
上記写像元算出部450は、上記処理装置を用いて、上記判定対象選択部441が選択したd個の判定対象整数それぞれについて、上記乱数元記憶部424が記憶した乱数元E”と、上記検索元記憶部432が記憶した検索元Tiとに基づいて、上記双線形ペアリング写像eにより、上記乱数元E”と上記検索元Tiとの組を写像した上記第三の群の元を算出して、d個の第一ペアリング値e(E”,Ti)とし、上記判定対象選択部441が選択したd個の判定対象整数それぞれについて、上記検索乱数元記憶部433が記憶した検索乱数元tiと、上記索引元記憶部421が記憶した索引元Eiとに基づいて、上記双線形ペアリング写像eにより、上記検索乱数元tiと上記索引元Eiとの組を写像した上記第三の群G3の元を算出して、d個の第二ペアリング値e(ti,Ei)とし、上記判定対象選択部441が選択したd個の判定対象整数それぞれについて、算出した上記第一ペアリング値e(E”,Ti)と、算出した上記第二ペアリング値e(ti,Ei)の逆元とを上記第三の群G3の群演算により結合した元[e(E”,Ti)/e(ti,Ei)を算出して、d個の写像元e’iとする。
上記比較元算出部460は、上記処理装置を用いて、上記写像元算出部450が算出したd個の写像元e’iを、上記第三の群G3の群演算により結合した元Π[e’i]を算出して、比較元Bとする。
In the
The public
The public random number
The
The public random number
The index random
The determination
The random number
The index
The
The public random number
The search random
The search
The search random number
The
The random number
The search random number
The mapping
The comparison
安全性の証明については省略するが、この実施の形態における検索システム800によれば、索引整数や検索整数を解読しようとする第三者の攻撃に対して、安全性を有する。
更に、検索暗号化装置300が秘密裡に保持すべき秘密データの量が少なく、索引数nにかかわらず一定なので、耐タンパ性を有する記憶装置の記憶容量が少なくて済み、また、耐タンパ性を有する記憶装置の記憶容量により、索引数nが制限されることがない。
Although the proof of security is omitted, the
Furthermore, since the amount of secret data that the
なお、実施の形態1のなかで説明した各種の変形は、この実施の形態における検索システム800に対しても適用することができる。
Note that the various modifications described in the first embodiment can also be applied to the
以上説明した検索システム800を、例えば、個人の年齢・住所・職業・嗜好などの属性情報を保存したデータベースに適用すれば、ある属性に近い人物のみを抽出する秘匿データマッチングを実現できる。あるいは、画像データをピクセルごとに保存したデータベースに適用すれば、ある画像に近い画像のみを抽出する秘匿画像マッチングを実現できる。あるいは、指紋情報・光彩情報・静脈情報などの生体情報を保存したデータベースに適用すれば、個人識別時に生体情報を用いて検索を行うことにより、生体情報の安全性を保ちつつ個人識別や個人認証を行う生体認証を実現できる。
If the
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.
上記設定装置は、秘密整数生成部と、公開元算出部とを有し、
上記秘密整数生成部は、上記処理装置を用いて、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.
上記写像元算出部は、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.
上記索引暗号化装置が、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.
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)
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)
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 |
-
2009
- 2009-01-16 JP JP2009007892A patent/JP5274271B2/en not_active Expired - Fee Related
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 |