JP6095057B2 - SEARCH SYSTEM, SEARCH METHOD, AND SEARCH PROGRAM - Google Patents

SEARCH SYSTEM, SEARCH METHOD, AND SEARCH PROGRAM Download PDF

Info

Publication number
JP6095057B2
JP6095057B2 JP2013045246A JP2013045246A JP6095057B2 JP 6095057 B2 JP6095057 B2 JP 6095057B2 JP 2013045246 A JP2013045246 A JP 2013045246A JP 2013045246 A JP2013045246 A JP 2013045246A JP 6095057 B2 JP6095057 B2 JP 6095057B2
Authority
JP
Japan
Prior art keywords
file
files
server
keyword
encrypted
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2013045246A
Other languages
Japanese (ja)
Other versions
JP2014174661A (en
Inventor
馨 黒澤
馨 黒澤
保広 大瀧
保広 大瀧
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Ibaraki University NUC
Original Assignee
Ibaraki University NUC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Ibaraki University NUC filed Critical Ibaraki University NUC
Priority to JP2013045246A priority Critical patent/JP6095057B2/en
Publication of JP2014174661A publication Critical patent/JP2014174661A/en
Application granted granted Critical
Publication of JP6095057B2 publication Critical patent/JP6095057B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明は、検索システム、検索方法、および、検索プログラムに関し、特に、キーワード検索におけるサーバの不正を検出可能なだけでなく、ファイルの更新(削除を含む)をも行える検索システム、検索方法、および、検索プログラムに関する。   The present invention relates to a search system, a search method, and a search program, and in particular, a search system, a search method, and a search system capable of not only detecting server fraud in keyword search but also updating (including deleting) files. , Related to search program.

この技術分野において周知のように、Yahoo!データボックスなどのデータストレージ(データ保管)サービスにおいては、ユーザ端末は、写真などの多くのファイルを(Yahoo!データボックスなどの)サーバに格納し、保管することができる。また、ユーザ端末は、ファイル名についてキーワード検索を行って、サーバから所望のファイルの集合を取得することもできる。尚、ユーザ端末は、クライアントとも呼ばれる。   As is well known in this technical field, in data storage (data storage) services such as Yahoo! Data Box, user terminals store and store many files such as photos on a server (such as Yahoo! Data Box). can do. The user terminal can also perform a keyword search for the file name and acquire a desired set of files from the server. The user terminal is also called a client.

これに対して、非特許文献1は、ファイルおよびキーワード検索の際、サーバに対し内容を秘匿する暗号化検索方式を開示している。この暗号化検索方式は、ファイルとキーワードとを暗号化する方式である。   On the other hand, Non-Patent Document 1 discloses an encrypted search method that conceals content from a server when searching for files and keywords. This encrypted search method is a method for encrypting files and keywords.

一方、悪意のあるサーバ、あるいはウィルスに汚染されたサーバは、キーワード検索の際、対応する全てのファイルを正しく返すのではなく、ファイルの一部を削除、追加、改ざん、あるいはすり替えてしまう、といった不正を行うことが考えられる。   On the other hand, a malicious server or a virus-contaminated server does not return all the corresponding files correctly when searching for keywords, but deletes, adds, alters, or replaces some of the files. It is possible to cheat.

この問題に対し、上記非特許文献1では、ファイルの削除、追加、改ざんをユーザ端末が検出できる検索システムを開示している。以下では、この非特許文献1に開示された検索システムを「第1の先行検索システム」と呼ぶことにする。しかしながら、非特許文献1に開示された第1の先行検索システムでは、サーバの不正として、ファイルのすり替えを検出することができない。   In response to this problem, Non-Patent Document 1 discloses a search system in which a user terminal can detect file deletion, addition, and alteration. Hereinafter, the search system disclosed in Non-Patent Document 1 will be referred to as a “first preceding search system”. However, in the first preceding search system disclosed in Non-Patent Document 1, it is not possible to detect file replacement as a server fraud.

そこで、本発明者らは、サーバの不正として、ファイルの削除、追加、改ざんのみならず、ファイルのすり替えをも検出できる、検索システムを既に提供した(非特許文献2)。以下では、この非特許文献2に開示された検索システムを「第2の先行検索システム」と呼ぶことにする。しかしながら、非特許文献2に開示された第2の先行検索システムでは、ファイルを更新(削除も含む)する場合、その更新(削除)すべきファイルに含まれる全てのキーワードについて索引中の検証情報を変更しなければならない。その結果、通信量が多く、非効率になるという問題がある。   Therefore, the present inventors have already provided a search system that can detect not only file deletion, addition, and alteration as well as file replacement as a server fraud (Non-Patent Document 2). Hereinafter, the search system disclosed in Non-Patent Document 2 will be referred to as a “second preceding search system”. However, in the second preceding search system disclosed in Non-Patent Document 2, when a file is updated (including deletion), the verification information in the index is stored for all keywords included in the file to be updated (deleted). Must be changed. As a result, there is a problem that the amount of communication is large and becomes inefficient.

一方、非特許文献3は、ファイルの更新を容易に行える検索システムを開示している。以下では、この非特許文献3に開示された検索システムを「第3の先行検索システム」と呼ぶことにする。しかしながら、非特許文献3に開示された第3の先行検索システムでは、サーバの不正を検出することができない。   On the other hand, Non-Patent Document 3 discloses a search system that can easily update a file. Hereinafter, the search system disclosed in Non-Patent Document 3 will be referred to as a “third preceding search system”. However, the third preceding search system disclosed in Non-Patent Document 3 cannot detect server fraud.

Y. Chang and M. Mitzenmacher, “Privacy Preserving Keyword Searches on Remote Encrypted Data”, ACNS 2005: pp. 442-455 (2005)Y. Chang and M. Mitzenmacher, “Privacy Preserving Keyword Searches on Remote Encrypted Data”, ACNS 2005: pp. 442-455 (2005) Kaoru Kurosawa and Yasuhiro Ohtaki, “UC-Secure Searchable Symmetric Encryption”, Financial Cryptography 2012: pp. 285-298Kaoru Kurosawa and Yasuhiro Ohtaki, “UC-Secure Searchable Symmetric Encryption”, Financial Cryptography 2012: pp. 285-298 Seny Kamara, Charalampos Papamanthou, and Tom Roeder, “Dynamic Searchable Symmetric Encryption”, ACM Conference on Computer and Communications Security 2012: pp. 965-976Seny Kamara, Charalampos Papamanthou, and Tom Roeder, “Dynamic Searchable Symmetric Encryption”, ACM Conference on Computer and Communications Security 2012: pp. 965-976

上述したように、非特許文献1に開示された第1の先行検索システムでは、サーバの不正として、ファイルのすり替えを検出することができない。   As described above, in the first preceding search system disclosed in Non-Patent Document 1, it is not possible to detect file replacement as a server fraud.

一方、非特許文献2に開示された第2の先行検索システムでは、サーバの不正(ファイルの削除、追加、改ざん、すり替え)を検出できるが、ファイルの更新(削除)を効率的に行えない。   On the other hand, the second prior search system disclosed in Non-Patent Document 2 can detect server fraud (deletion, addition, falsification, replacement), but cannot efficiently update (delete) the file.

さらに、非特許文献3に開示された第3の先行検索システムでは、ファイルの更新を容易に行えるが、ファイルの不正を検出することができない。   Furthermore, in the third preceding search system disclosed in Non-Patent Document 3, the file can be updated easily, but the file fraud cannot be detected.

したがって本発明の目的は、サーバの不正(ファイルの削除、追加、改ざん、すり替え)を検出でき、かつファイルの更新(削除)も効率的に行える、検索システム、検索方法、および検索プログラムを提供することにある。   Therefore, an object of the present invention is to provide a search system, a search method, and a search program capable of detecting server fraud (deletion, addition, falsification, replacement) of a server and efficiently updating (deleting) a file. There is.

本発明の他の目的は、リプレイ・アタックも検出できる、検索システム、検索方法、および検索プログラムを提供することにある。   Another object of the present invention is to provide a search system, a search method, and a search program capable of detecting a replay attack.

本発明の第1の態様に係る検索システムは、ユーザ端末がサーバに複数のファイルを保管し、ユーザ端末がキーワード検索によってサーバから所望のファイルの集合を取得すると共に、ファイルの更新(削除を含む)をも行う検索システムであって、ユーザ端末は、複数のファイルをそれらのファイル番号と共にサーバに保管するファイル保管手段と;キーワードとそのキーワードに対応するファイルのファイル番号との対応表である索引を、サーバに保管する索引保管手段と;キーワードと当該キーワードを含む全てのファイルのファイル番号の集合との生成用組に対して所定の生成アルゴリズムに従って索引検証情報を生成し、この生成した索引検証情報をサーバに保管する索引検証情報生成部と;検索キーワードをサーバへ送って、サーバから検索キーワードを含むファイルおよび当該ファイルのファイル番号の集合と検索キーワードに対応する索引検証情報とを取得するファイル取得手段と;この取得した索引検証情報が、検索キーワードと取得したファイルのファイル番号の集合との検証用組の索引検証情報であるか否かを所定の検証アルゴリズムによってチェックし、チェックの結果が正しければ承認し、そうでなければ拒否する索引検証部と;更新(削除)すべきファイルをそのファイル番号と共にサーバへ送って更新する更新手段と;を備える。   In the search system according to the first aspect of the present invention, the user terminal stores a plurality of files in the server, the user terminal acquires a set of desired files from the server by keyword search, and includes update (deletion of files) ), And the user terminal stores a plurality of files together with their file numbers in a server; an index that is a correspondence table between keywords and file numbers of files corresponding to the keywords Index verification information is generated according to a predetermined generation algorithm for a generation set of a keyword and a set of file numbers of all files including the keyword, and the generated index verification An index verification information generator that stores information on the server; and sends search keywords to the server to A file acquisition means for acquiring a file including a search keyword from the file and a set of file numbers of the file and index verification information corresponding to the search keyword; the acquired index verification information is a search keyword and the file number of the acquired file; An index verification unit that checks whether or not it is index verification information of a verification pair with a set of a group, and approves if the result of the check is correct, and rejects otherwise; updates (deletes) Updating means for sending the file to be updated together with the file number to the server.

本発明の第2の態様による検索システムは、ユーザ端末がサーバに複数の暗号ファイルを保管し、ユーザ端末がキーワード検索によってサーバから所望のファイルの集合を取得すると共に、暗号ファイルの更新(削除を含む)をも行う検索システムであって、ユーザ端末は、暗号化の秘密鍵を使って複数のファイルをそれぞれ暗号化し、複数の暗号ファイルをそれらの暗号ファイルのファイル番号と共にサーバに保管する暗号ファイル保管手段と;キーワードとそのキーワードに対応するファイルのファイル番号との対応表である索引を、所定の秘密鍵を使って暗号化し、キーワードの暗号文とそのキーワードを含むファイルのファイル番号の暗号文とから成る暗号化索引をサーバに保管する暗号化索引保管手段と;キーワードと当該キーワードを含む全てのファイルのファイル番号の集合との生成用組に対して所定の生成アルゴリズムに従って索引検証情報を生成し、その生成した索引検証情報をサーバに保管する索引検証情報生成部と;所定の秘密鍵を使って検索キーワードを暗号化して得られる暗号検索キーワードをサーバへ送って、サーバから暗号検索キーワードを含む暗号ファイルおよび当該暗号ファイルのファイル番号の集合と検索キーワードに対応する索引検証情報とを取得する暗号ファイル取得手段と;その取得した索引検証情報が、検索キーワードと取得した暗号ファイルのファイル番号の集合との検証用組の索引検証情報であるか否かを所定の検証アルゴリズムによってチェックし、チェックの結果が正しければ承認し、そうでなければ拒否する索引検証部と;更新(削除)すべきファイルを暗号化の秘密鍵を使って暗号化して得られる、更新(削除)すべき暗号ファイルをそのファイル番号と共にサーバに送って更新する更新手段と;を備える。   In the search system according to the second aspect of the present invention, the user terminal stores a plurality of encrypted files in the server, the user terminal acquires a set of desired files from the server by keyword search, and updates (deletes) the encrypted file. The user terminal encrypts a plurality of files using an encryption private key, and stores the plurality of encrypted files together with the file numbers of the encrypted files on the server. The index, which is a correspondence table between the storage means and the keyword and the file number of the file corresponding to the keyword, is encrypted using a predetermined secret key, and the ciphertext of the keyword and the ciphertext of the file number of the file containing the keyword An encrypted index storage means for storing an encrypted index comprising: a keyword and a keyword An index verification information generating unit that generates index verification information according to a predetermined generation algorithm for a generation set with a set of file numbers of all files including a file, and stores the generated index verification information in a server; An encryption search keyword obtained by encrypting the search keyword using the secret key of the server is sent to the server, and the server includes the encryption file including the encryption search keyword, a set of file numbers of the encryption file, and index verification information corresponding to the search keyword An encrypted file acquisition means for acquiring the index verification information, and whether or not the acquired index verification information is index verification information of a verification set of a search keyword and a set of file numbers of the acquired encrypted files by a predetermined verification algorithm An index verification unit that checks and approves if the check result is correct, and rejects otherwise. Equipped with a; update obtained by encrypted using a secret key encryption (Delete) should do file, update the (deletion) should do encryption file together with the file number and updating means for updating is sent to the server.

本発明では、キーワードと当該キーワードを含む全てのファイル(暗号ファイル)のファイル番号の集合との生成用組に対して所定のアルゴリズムに従って索引検証情報を生成し、その生成した索引検証情報をサーバに保管しているので、サーバの不正(ファイルの削除、追加、改ざん、すり替え)を検出するだけでなく、更新(削除)すべきファイル(暗号ファイル)をそのファイル番号と共にサーバに送出するだけで、ファイルの更新(削除)も効率的に行うことができる。   In the present invention, index verification information is generated according to a predetermined algorithm for a generation set of a keyword and a set of file numbers of all files (encrypted files) including the keyword, and the generated index verification information is stored in a server. Since it is stored, it not only detects server fraud (deletion, addition, falsification, replacement), but also sends the file (encrypted file) to be updated (deleted) along with its file number to the server. The file can be updated (deleted) efficiently.

本発明の第1の実施例に係る検索システムの格納フェーズと検索フェーズの構成を示すブロック図である。It is a block diagram which shows the structure of the storage phase and search phase of the search system which concerns on 1st Example of this invention. 図1に示した検索システムに使用される索引の一具体例を示す図である。It is a figure which shows one specific example of the index used for the search system shown in FIG. 図1に示した検索システムに使用される、クライアントの索引検証情報生成部の動作を説明するためのフローチャートである。It is a flowchart for demonstrating operation | movement of the index verification information generation part of a client used for the search system shown in FIG. 図3に示した索引検証情報生成部の動作の一具体例を示す図である。It is a figure which shows an example of an operation | movement of the index verification information generation part shown in FIG. 図1に示した検索システムに使用される、クライアントのファイル蓄積値計算部の動作を説明するためのフローチャートである。It is a flowchart for demonstrating operation | movement of the file accumulation value calculation part of a client used for the search system shown in FIG. 図5に示したファイル蓄積値計算部の動作の一具体例を示す図である。It is a figure which shows an example of an operation | movement of the file accumulation value calculation part shown in FIG. 図1に示した検索システムに使用される、クライアントの索引検証部の動作を説明するためのフローチャートである。It is a flowchart for demonstrating operation | movement of the index verification part of a client used for the search system shown in FIG. 図7に示した索引検証部の動作の一具体例を示す図である。It is a figure which shows an example of an operation | movement of the index verification part shown in FIG. 図1に示した検索システムに使用される、サーバのファイル検証情報生成部の動作を説明するためのフローチャートである。It is a flowchart for demonstrating operation | movement of the file verification information generation part of a server used for the search system shown in FIG. 図9に示したファイル検証情報生成部の動作の一具体例を示す図である。It is a figure which shows an example of an operation | movement of the file verification information generation part shown in FIG. 図1に示した検索システムに使用される、クライアントのファイル検証部の動作を説明するためのフローチャートである。It is a flowchart for demonstrating operation | movement of the file verification part of a client used for the search system shown in FIG. 図11に示したファイル検証部の動作の一具体例を示す図である。It is a figure which shows an example of an operation | movement of the file verification part shown in FIG. 本発明の第1の実施例に係る検索システムの更新フェーズの構成を示すブロック図である。It is a block diagram which shows the structure of the update phase of the search system which concerns on 1st Example of this invention. 図13に示した検索システムに使用される、クライアントのAcc更新部の動作を説明するためのフローチャートである。It is a flowchart for demonstrating operation | movement of the Acc update part of a client used for the search system shown in FIG. 本発明の第2の実施例に係る検索システムの格納フェーズと検索フェーズの構成を示すブロック図である。It is a block diagram which shows the structure of the storage phase and search phase of the search system which concern on 2nd Example of this invention. 図15に示した検索システムに使用される、クライアントの索引暗号部の動作を説明するためのフローチャートである。It is a flowchart for demonstrating operation | movement of the index encryption part of a client used for the search system shown in FIG. 図16に示した索引暗号部の動作の一具体例を示す図である。It is a figure which shows an example of an operation | movement of the index encryption part shown in FIG. 図15に示した検索システムに使用される、クライアントのファイル蓄積値計算部の動作を説明するためのフローチャートである。It is a flowchart for demonstrating operation | movement of the file accumulation value calculation part of a client used for the search system shown in FIG. 図18に示したファイル蓄積値計算部の動作の一具体例を示す図である。It is a figure which shows an example of an operation | movement of the file accumulation value calculation part shown in FIG. 図15に示した検索システムに使用される、クライアントのキーワード暗号部の動作を説明するためのフローチャートである。It is a flowchart for demonstrating operation | movement of the keyword encryption part of a client used for the search system shown in FIG. 図20に示したキーワード暗号部の動作の一具体例を示す図である。FIG. 21 is a diagram showing a specific example of the operation of the keyword encryption unit shown in FIG. 20. 図15に示した検索システムに使用される、サーバの暗号検索部の動作を説明するためのフローチャートである。It is a flowchart for demonstrating operation | movement of the encryption search part of a server used for the search system shown in FIG. 図22に示した暗号検索部の動作の一具体例を示す図である。FIG. 23 is a diagram illustrating a specific example of the operation of the cryptographic search unit illustrated in FIG. 22. 図15に示した検索システムに使用される、サーバのファイル検証情報生成部の動作を説明するためのフローチャートである。It is a flowchart for demonstrating operation | movement of the file verification information generation part of a server used for the search system shown in FIG. 図24に示したファイル検証情報生成部の動作の一具体例を示す図である。FIG. 25 is a diagram illustrating a specific example of the operation of the file verification information generation unit illustrated in FIG. 24. 図15に示した検索システムに使用される、クライアントのファイル検証部の動作を説明するためのフローチャートである。It is a flowchart for demonstrating operation | movement of the file verification part of a client used for the search system shown in FIG. 図26に示したファイル検証部の動作の一具体例を示す図である。FIG. 27 is a diagram illustrating a specific example of the operation of the file verification unit illustrated in FIG. 26. 本発明の第2の実施例に係る検索システムの更新フェーズの構成を示すブロック図である。It is a block diagram which shows the structure of the update phase of the search system which concerns on 2nd Example of this invention. 図28に示した検索システムに使用される、クライアントのAcc更新部の動作を説明するためのフローチャートである。It is a flowchart for demonstrating operation | movement of the Acc update part of a client used for the search system shown in FIG.

[概要]
以下、本発明の実施形態の概要について説明する。
[Overview]
Hereinafter, an outline of an embodiment of the present invention will be described.

本発明の実施形態による検索システムは、キーワード検索におけるサーバの不正(ファイルの「削除」、「追加」、「改ざん」、「すり替え」)を検出するだけでなく、ファイルの更新(削除を含む)を効率的に行える検索システムである。   The search system according to the embodiment of the present invention not only detects server fraud (“deletion”, “addition”, “falsification”, “replacement” of files) in keyword search, but also updates (including deletion) files. It is a search system that can efficiently.

本実施形態に係る検索システムは、ファイルが暗号化されている場合と、ファイルが暗号化されていない場合との両者に適用できる。尚、この技術分野において周知のように、メッセージの認証機能には、デジタル署名を利用する場合と、メッセージ認証コード(Message Authentication code,MAC)を利用して認証子を生成する場合とがある。なお、デジタル署名と認証子とは、総称して、検証情報と呼ばれる。   The search system according to the present embodiment can be applied to both a case where a file is encrypted and a case where a file is not encrypted. As is well known in this technical field, the message authentication function includes a case where a digital signature is used and a case where an authenticator is generated using a message authentication code (Message Authentication Code, MAC). The digital signature and the authenticator are collectively referred to as verification information.

一般に、検証情報は、所定の生成アルゴリズムによって生成され、所定の検証アルゴリズムによって検証(チェック)される。検証情報がデジタル署名の場合、所定の生成アルゴリズムは署名生成アルゴリズムから成り、所定の検証アルゴリズムは署名検証アルゴリズムから成る。一方、検証情報が認証子の場合、所定の生成アルゴリズムはMAC生成アルゴリズムから成り、所定の検証アルゴリズムはMAC検証アルゴリズムから成る。   In general, the verification information is generated by a predetermined generation algorithm and verified (checked) by the predetermined verification algorithm. When the verification information is a digital signature, the predetermined generation algorithm is a signature generation algorithm, and the predetermined verification algorithm is a signature verification algorithm. On the other hand, when the verification information is an authenticator, the predetermined generation algorithm is a MAC generation algorithm, and the predetermined verification algorithm is a MAC verification algorithm.

本実施形態に係る検索システムは、以下の第1および第2の実施形態に分けられる。   The search system according to the present embodiment is divided into the following first and second embodiments.

本発明の第1の実施形態に係る検索システムは、ユーザ端末がファイルを暗号化せずにサーバに保管すると共に、ファイルの更新(削除を含む)をも行う検索システムである。   The search system according to the first embodiment of the present invention is a search system in which a user terminal stores a file in a server without encryption and also updates (including deletion) the file.

第1の実施形態に係る検索システムでは、ユーザ端末が、キーワードと当該キーワードを含む全てのファイルのファイル番号の集合との生成用組に対して所定のアルゴリズムに従って索引検証情報を生成し、その生成した索引検証情報をサーバに保管する。これにより、サーバの不正(ファイルの削除、追加、改ざん、すり替え)を検出するだけでなく、更新(削除)すべきファイルをそのファイル番号と共にサーバに送出するだけで、ファイルの更新(削除)も効率的に行うことができる。   In the search system according to the first embodiment, a user terminal generates index verification information according to a predetermined algorithm for a generation set of a keyword and a set of file numbers of all files including the keyword, The index verification information is stored on the server. This not only detects server fraud (deletion, addition, falsification, replacement), but also sends the file to be updated (deleted) to the server along with its file number. Can be done efficiently.

本発明の第2の実施形態に係る検索システムは、ユーザ端末がファイルおよびキーワードを暗号化してサーバに保管すると共に、暗号ファイルの更新(削除)をも行う検索システムである。   The search system according to the second embodiment of the present invention is a search system in which a user terminal encrypts a file and a keyword and stores them in a server, and also updates (deletes) the encrypted file.

第2の実施形態に係る検索システムでは、ユーザ端末が、キーワードと当該キーワードを含む全てのファイルのファイル番号の集合との生成用組に対して所定のアルゴリズムに従って索引検証情報を生成し、その生成した索引検証情報をサーバに保管する。これにより、サーバの不正(ファイルの削除、追加、改ざん、すり替え)を検出するだけでなく、更新(削除)すべき暗号ファイルをそのファイル番号と共にサーバに送出するだけで、暗号ファイルの更新(削除)も効率的に行うことができる。   In the search system according to the second embodiment, the user terminal generates index verification information according to a predetermined algorithm for a generation set of a keyword and a set of file numbers of all files including the keyword, and the generation The index verification information is stored on the server. As a result, not only the server's fraud (deletion, addition, falsification, replacement), but also the encryption file to be updated (deletion) can be updated (deletion) by sending it to the server along with its file number. ) Can also be performed efficiently.

尚、検索システムの動作は、ユーザ端末がファイル(暗号ファイル)をサーバに格納する「格納フェーズ」と、ユーザ端末がサーバから所望のファイルを検索する「検索フェーズ」と、ユーザ端末がファイル(暗号ファイル)を更新(削除を含む)する「更新フェーズ」と、に分けられる。   The operation of the search system includes a “storage phase” in which the user terminal stores the file (encrypted file) in the server, a “search phase” in which the user terminal searches for a desired file from the server, and the user terminal in the file (encrypted file). It is divided into “update phase” in which (file) is updated (including deletion).

また、ファイル更新固有の問題として、「リプレイ・アタック」が知られている。ここで、リプレイ・アタックとは、不正なサーバが、更新した新しいファイルの代わりに、古いファイルを返すことをいう。   Further, “replay attack” is known as a problem specific to file update. Here, replay attack means that an unauthorized server returns an old file instead of an updated new file.

後述する本発明の実施例においては、この「リプレイ・アタック」をRSA(Rivest-Shamir-Adleman) accumulatorを使用することによって解決している。   In the embodiments of the present invention described later, this “replay attack” is solved by using an RSA (Rivest-Shamir-Adleman) accumulator.

従って、本発明の実施例の理解を容易にするために、以下、RSA accumulatorの概要について説明する。   Therefore, in order to facilitate understanding of the embodiments of the present invention, an outline of the RSA accumulator will be described below.

p=2p’+1,q=2q’+1は素数である。ただし、p’,q’も素数で、pqは3λビットである。N=pqとおく。   p = 2p ′ + 1 and q = 2q ′ + 1 are prime numbers. However, p ′ and q ′ are also prime numbers, and pq is 3λ bits. Let N = pq.

mod Nにおいて、位数がp’q’となる要素をgとする。すなわち、
p’q’=1mod N
である。
In mod N, let g be the element whose order is p'q '. That is,
g p'q ' = 1 mod N
It is.

3λビットの正整数aをランダムに選ぶ。
3λビットの正整数xに対し、h(x)を、
(x)=a×x の下位λビットと定義する。なお、この乗算×は、有限体(あるいはガロア体)GF(23λ)上の乗算である。
A positive integer a of 3λ bits is selected at random.
For a positive integer x of 3λ bits, h a (x) is
Defined as lower λ bits of h a (x) = a × x The multiplication x is multiplication on a finite field (or Galois field) GF (2 ).

このとき、λビットの任意のyに対し、
(x)=y
となる3λビットの素数xを効率よく求めることができる。
そのような素数xをprime(y)と書く。
At this time, for an arbitrary y of λ bits,
h a (x) = y
The prime number x of 3λ bits can be obtained efficiently.
Such a prime number x is written prime (y).

λビットのyの集合をE={y,・・・,y}とする(1≦i≦n)。 A set of y i of λ bits is assumed to be E = {y 1 ,..., y n } (1 ≦ i ≦ n).

Aliceは、Eの蓄積値
Acc(E)=gprime(y1)×・・・×prime(yn)mod N
をBobに送る。
Alice is the accumulated value of E Acc (E) = g prime (y1) ×... * Prime (yn) mod N
To Bob.

∈Eを証明したいとき、Aliceは、prime(y)と、
π=gΠi≠j prime(yi)mod N
と、をBobに送る。
When we want to prove y i ∈E, Alice has prime (y j ) and
π = g Πi ≠ j prime (yi) mod N
And sent to Bob.

Bobは、
Acc(E)=(π)prime(yj)mod N
が成り立つかどうかをチェックする。
Bob
Acc (E) = (π) prime (yj) mod N
Check if is true.

強RSA仮定が成り立つと仮定する。
公開情報N,g,hおよびλビットのyの集合E={y,・・・,y}が与えられたとき、
Acc(E)=(π)prime(y)mod N
を満たすEに属さないyとπを見つけることは困難である。
Assume that strong RSA assumptions hold.
When public information N, g, set E = the h a and λ bits of y i {y 1, ···, y n} is given,
Acc (E) = (π) prime (y) mod N
It is difficult to find y and π that do not belong to E that satisfy.

図1を参照して、本発明の第1の実施例に係る検索システム100の格納フェーズおよび検索フェーズについて説明する。図1は、本発明の第1の実施例に係る検索システム100の格納フェーズと検索フェーズのブロック図である。図示の検索システム100は、上述した本発明の第1の実施形態に係る検索システムに相当する検証システムである。検索システム100は、クライアント200とサーバ300とから構成される。クライアント200は、ユーザ端末とも呼ばれる。   With reference to FIG. 1, a storage phase and a search phase of the search system 100 according to the first embodiment of the present invention will be described. FIG. 1 is a block diagram of a storage phase and a search phase of the search system 100 according to the first embodiment of the present invention. The illustrated search system 100 is a verification system corresponding to the above-described search system according to the first embodiment of the present invention. The search system 100 includes a client 200 and a server 300. The client 200 is also called a user terminal.

図示の検索システム100は、クライアント(ユーザ端末)200がサーバ300に複数のファイルを保管し、クライアント(ユーザ端末)200がキーワード検索によってサーバ300から所望のファイルの集合を取得するシステムである。   The illustrated search system 100 is a system in which a client (user terminal) 200 stores a plurality of files in a server 300, and the client (user terminal) 200 acquires a set of desired files from the server 300 by keyword search.

尚、クライアント(ユーザ端末)200がサーバ300に格納されたファイルを更新(削除を含む)する更新フェーズのブロック図については、後で図13を参照して説明する。   A block diagram of an update phase in which the client (user terminal) 200 updates (including deletion) a file stored in the server 300 will be described later with reference to FIG.

クライアント200は、鍵生成部202と、鍵保持部204と、索引検証情報生成部206と、索引検証部208と、第1乃至第3の信号線(伝送線)210、212、214と、ファイル蓄積値計算部216と、Acc保持部218と、ファイル検証部220と、から構成されている。   The client 200 includes a key generation unit 202, a key holding unit 204, an index verification information generation unit 206, an index verification unit 208, first to third signal lines (transmission lines) 210, 212, and 214, a file The accumulated value calculation unit 216, the Acc holding unit 218, and the file verification unit 220 are configured.

一方、サーバ300は、記憶領域302と、検索部304と、鍵保持部306と、ファイル検証情報生成部308と、から構成されている。   On the other hand, the server 300 includes a storage area 302, a search unit 304, a key holding unit 306, and a file verification information generation unit 308.

鍵生成部202は、検証用の秘密鍵Kと秘密情報p,qと公開情報N,g,hとを生成する。クライアント200の鍵保持部204は、これら生成された検証用の秘密鍵Kと秘密情報p,qと公開情報N,g,hとを保持する。また、鍵保持部204に保持された公開情報N,g,hは、サーバ300の鍵保持部306へ送られる。したがって、サーバ300の鍵保持部306は、公開情報N,g,hを保持する。 The key generation unit 202, the secret key K and secret information p for verification, q and the public information N, g, to generate a h a. Key holding unit 204 of the client 200 stores the secret key K and secret information p for verification which are those generated, q and public information N, g, and h a. Also, public information N, which is held in the key holding unit 204, g, h a is sent to the key holding part 306 of the server 300. Therefore, the key holding unit 306 of the server 300 stores the public information N, g, and h a.

クライアント200は、複数のファイルをそれらのファイル番号と共に第1の信号線(伝送線)210を介してサーバ300へ送信する。サーバ300は、その送られてきた複数のファイルをそれらのファイル番号と共に記憶領域302に保管する。したがって、第1の信号線(伝送線)210は、サーバ300に複数のファイルをそれらのファイル番号と共に保管するファイル保管手段として働く。   The client 200 transmits a plurality of files together with their file numbers to the server 300 via a first signal line (transmission line) 210. The server 300 stores the plurality of sent files in the storage area 302 together with their file numbers. Therefore, the first signal line (transmission line) 210 serves as a file storage unit that stores a plurality of files together with their file numbers in the server 300.

また、クライアント200は、索引(後述する)を生成し、生成した索引を第2の信号線(伝送線)212を介してサーバ300へ送信する。サーバ300は、その送られてきた索引を記憶領域302に記憶する。したがって、第2の信号線(伝送線)212は、生成した索引をサーバ300に保管する索引保管手段として働く。   In addition, the client 200 generates an index (described later), and transmits the generated index to the server 300 via the second signal line (transmission line) 212. The server 300 stores the sent index in the storage area 302. Therefore, the second signal line (transmission line) 212 serves as an index storage unit that stores the generated index in the server 300.

図2に索引の具体例を示す。索引は、キーワードと、それに対応するファイルの番号(ファイル番号)の対応表である。   FIG. 2 shows a specific example of the index. The index is a correspondence table of keywords and corresponding file numbers (file numbers).

図示の例では、索引の番号1には、キーワードとして「情報工学」が記憶され、そのキーワードに対応するファイル番号として、「1」、「6」、「8」、「11」が記憶されている。また、索引の番号2には、キーワードとして「茨城大学」が記憶され、そのキーワードに対応するファイル番号として、「3」、「6」、「10」が記憶されている。   In the illustrated example, “information engineering” is stored as a keyword in index number 1 and “1”, “6”, “8”, and “11” are stored as file numbers corresponding to the keyword. Yes. In index number 2, “Ibaraki University” is stored as a keyword, and “3”, “6”, and “10” are stored as file numbers corresponding to the keyword.

図3を参照して、クライアント200の索引検証情報生成部206の動作について説明する。   The operation of the index verification information generation unit 206 of the client 200 will be described with reference to FIG.

索引検証情報生成部206は、索引と検証用の秘密鍵Kとを読み込む(S102)。次に、索引検証情報生成部206は、各キーワードWについて以下の処理を実行する(S104)。ここでは、キーワードWを含むファイルの集合{Dj1,Dj2,・・・}に関し、その添字(すなわち、ファイル番号)の集合を{j1、j2、…}とする。この場合、索引検証情報生成部206は、検証用の秘密鍵Kを使い、生成用組(W、j1、j2、…)に対応する索引検証情報tagを下記の数式によって計算する。
tag=f(W、j1、j2、…)
ここで、fはMAC生成アルゴリズムまたは署名生成アルゴリズムから成る所定の生成アルゴリズムである。
The index verification information generation unit 206 reads the index and the verification secret key K (S102). Next, the index verification information generation unit 206 executes the following process for each keyword W i (S104). Here, regarding the set of files {D j1 , D j2 ,...} Including the keyword W i , the set of subscripts (that is, file numbers) is { j 1 , j 2 ,. In this case, the index verification information generation unit 206 uses the verification secret key K to calculate the index verification information tag i corresponding to the generation set (W i , j1, j2,.
tag i = f K (W i , j1, j2,...)
Here, f is a predetermined generation algorithm comprising a MAC generation algorithm or a signature generation algorithm.

所定の生成アルゴリズムがMAC生成アルゴリズムから成るとする。この場合、索引検証情報生成部206は、検証用の秘密鍵KとしてMACの秘密鍵を使って、MAC生成アルゴリズムに従って、索引検証情報tagとして生成用組(W、j1、j2、…)に対する認証子を生成する。 Assume that the predetermined generation algorithm is a MAC generation algorithm. In this case, the index verification information generation unit 206 uses the MAC secret key as the verification secret key K, and generates the generation group (W i , j1, j2,...) As the index verification information tag i according to the MAC generation algorithm. Generate an authenticator for.

一方、所定のアルゴリズムが署名生成アルゴリズムから成るとする。この場合、索引検証情報生成部206は、検証用の秘密鍵Kとしてデジタル署名の秘密鍵を使って、署名生成アルゴリズムに従って、索引検証情報tagとして生成用組(W、j1、j2、…)に対するデジタル署名を生成する。 On the other hand, it is assumed that the predetermined algorithm is a signature generation algorithm. In this case, the index verification information generation unit 206 uses the digital signature private key as the verification private key K, and generates the generation group (W i , j1, j2,...) As the index verification information tag i according to the signature generation algorithm. ).

索引検証情報生成部206は、計算して得られた索引検証情報(tag、tag、…)を出力する(ステップS106)。これら索引検証情報は、サーバ300に送られ、サーバ300は、これら索引検証情報を記憶領域302に記憶する。 The index verification information generation unit 206 outputs the index verification information (tag 1 , tag 2 ,...) Obtained by calculation (step S106). The index verification information is sent to the server 300, and the server 300 stores the index verification information in the storage area 302.

次に、図4を参照して、索引検証情報生成部206の動作について具体例を挙げて説明する。ここでは、キーワードが索引番号2の「茨城大学」である場合を例に挙げて説明する。   Next, the operation of the index verification information generation unit 206 will be described with a specific example with reference to FIG. Here, a case where the keyword is “Ibaraki University” with index number 2 will be described as an example.

この場合、索引検証情報生成部206は、索引を参照して、キーワード「茨城大学」を含む、該当するファイルのファイル番号を選択する。この場合、索引番号2のファイル番号には、「3」、「6」、「10」が記憶されているので、索引検証情報生成部206は、該当ファイル番号として、「3」、「6」、「10」を選択する。   In this case, the index verification information generation unit 206 refers to the index and selects the file number of the corresponding file including the keyword “Ibaraki University”. In this case, since “3”, “6”, and “10” are stored in the file number of index number 2, the index verification information generation unit 206 sets “3” and “6” as the corresponding file numbers. , “10” is selected.

そして、索引検証情報生成部206は、検証用の秘密鍵Kを使い、生成用組(茨城大学、3、6、10)に対する検証情報tagを、所定の生成アルゴリズムfに従って、下記数式で示されるように生成する。
tag=f(茨城大学、3、6、10)
Then, the index verification information generation unit 206 uses the verification secret key K to indicate the verification information tag 2 for the generation set (Ibaraki University, 3, 6, 10) according to the following expression according to a predetermined generation algorithm f. To be generated.
tag 2 = f K (University of Ibaraki, 3, 6, 10)

索引検証情報生成部206は、このようにして、キーワードi毎の索引検証情報tagを生成する。生成された索引検証情報tagは、サーバ300へ送られ、サーバ300は、送られてきた索引検証情報tagを記憶領域302に記憶する。 In this manner, the index verification information generation unit 206 generates the index verification information tag i for each keyword i. The generated index verification information tag i is sent to the server 300, and the server 300 stores the sent index verification information tag i in the storage area 302.

図5を参照して、クライアント200のファイル蓄積値計算部216の動作について説明する。ここでは、ファイルの総数がnであるとする。   With reference to FIG. 5, the operation of the file accumulation value calculation unit 216 of the client 200 will be described. Here, it is assumed that the total number of files is n.

先ず、ファイル蓄積値計算部216は、全ファイルの集合{(1,D),(2,D),・・・}および公開情報N,g、hを読み込む(ステップS202)。次に、ファイル蓄積値計算部216は、各ファイルD(1≦i≦n)について、素数pを下記の数式によって求める(ステップS204)。
=prime(H(i,D))
ここで、Hはハッシュ関数である。
First, the file accumulation value calculation unit 216 reads a set of all files {(1, D 1 ), (2, D 2 ),...} And public information N, g, ha (Step S202). Next, the file accumulation value calculation unit 216 obtains a prime number p i for each file D i (1 ≦ i ≦ n) by the following mathematical formula (step S204).
p i = prime (H (i, D i ))
Here, H is a hash function.

そして、ファイル蓄積値計算部216は、ファイルの蓄積値Accを下記の数式によって計算する(ステップS206)。
Acc=gp1p2p3...pnmod N
Then, the file accumulation value calculation unit 216 calculates the file accumulation value Acc according to the following mathematical formula (step S206).
Acc = g p1p2p3. . . pn mod N

ファイル蓄積値計算部216は、この計算して得られたファイルの蓄積値Accを出力する(ステップS208)。ファイルの蓄積値Accは、Acc保持部218で保持される。   The file accumulation value calculation unit 216 outputs the accumulation value Acc of the file obtained by this calculation (step S208). The accumulated value Acc of the file is held in the Acc holding unit 218.

図6に、ファイル蓄積値計算部216の動作の具体例を示す。   FIG. 6 shows a specific example of the operation of the file accumulation value calculation unit 216.

すなわち、ファイル蓄積値計算部216は、各ファイルD、D、・・・、Dについて、それぞれ、素数p=prime(H(1,D))、p=prime(H(2,D))、・・・、p=prime(H(n,D))を求め、ファイルの蓄積値Acc=gp1p2p3...pnmod Nを計算し、ファイルの蓄積値Accを出力する。 That is, the file storage value calculating unit 216, each file D 1, D 2, · · ·, for D n, respectively, a prime number p 1 = prime (H (1 , D 1)), p 2 = prime (H ( 2, D 2 )),..., P n = prime (H (n, D n )), and the accumulated value of the file Acc = g p1p2p3. . . pn mod N is calculated and the accumulated value Acc of the file is output.

検索時、クライアント200は、検索キーワードWを第3の信号線(伝送線)214を介してサーバ300に送る。サーバ300においては、検索キーワードWに応答して、検索部304は、その検索キーワードWを含むファイルおよびファイル番号の集合(i1,Di1),(i2,Di2),・・・と、その索引検証情報tagとをクライアント200へ返す。したがって、クライアント200は、ファイルおよびファイル番号の集合(i1,Di1),(i2,Di2),・・・とその索引検証情報tagとを取得する。すなわち、第2の信号線(伝送線)214は、検索キーワードWをサーバ300へ送って、サーバ300から、検索キーワードWを含むファイルおよびファイル番号の集合(i1,Di1),(i2,Di2),・・・と、その索引検証情報tagとを取得するファイル取得手段として働く。 At the time of search, the client 200 sends the search keyword W to the server 300 via the third signal line (transmission line) 214. In the server 300, in response to the search keyword W, the search unit 304 includes a set (i1, D i1 ), (i2, D i2 ),... The index verification information tag is returned to the client 200. Therefore, the client 200 acquires a set of files and file numbers (i1, D i1 ), (i2, D i2 ),... And their index verification information tag. That is, the second signal line (transmission line) 214 sends the search keyword W to the server 300, and the server 300 includes a set of files and file numbers including the search keyword W (i1, D i1 ), (i2, D i2 ),... and the index verification information tag.

尚、以下の説明では、検索キーワードWを含むファイルおよびファイル番号の集合(i1,Di1),(i2,Di2),・・・を、単に、検索キーワードWを含むファイルの集合とも略称する。 In the following description, a set (i1, D i1 ), (i2, D i2 ),... Of a file including the search keyword W and file numbers are simply abbreviated as a set of files including the search keyword W. .

次に、図7を参照して、クライアント200の索引検証部208の動作について説明する。   Next, the operation of the index verification unit 208 of the client 200 will be described with reference to FIG.

索引検証部208は、先ず、検索キーワードWと、鍵保持部204に保持された検証用の秘密鍵Kとを読み込む(S302)。次に、検索検証部208は、サーバ300から、検索キーワードWを含むファイルの集合(i1,Di1),(i2,Di2),・・・と、その索引検証情報tagとを受け取る(ステップS304)。 First, the index verification unit 208 reads the search keyword W and the verification secret key K held in the key holding unit 204 (S302). Next, the search verification unit 208 receives from the server 300 a set of files (i1, D i1 ), (i2, D i2 ),... Including the search keyword W, and the index verification information tag (step) S304).

索引検証部208は、検証用の秘密鍵Kを使い、索引検証情報tagが検証用組(W、i1、i2、…)の索引検証情報であるか否かを、所定の検証アルゴリズムに従って、下記の数式に示されるように計算する(ステップS306)。
Verify(W、i1、i2、…、tag)=accept or reject
ここで、Verifyは、MAC検証アルゴリズムまたは署名検証アルゴリズムから成る所定の検証アルゴリズムである。
The index verification unit 208 uses the verification secret key K to determine whether the index verification information tag is the index verification information of the verification pair (W, i1, i2,...) According to a predetermined verification algorithm. Calculation is performed as shown in the equation (step S306).
Verify K (W, i1, i2, ..., tag) = accept or reject
Here, Verify is a predetermined verification algorithm including a MAC verification algorithm or a signature verification algorithm.

所定の検証アルゴリズムがMAC検証アルゴリズムから成るとする。この場合、索引検証部208は、検証用の秘密鍵KとしてMACの秘密鍵を使って、MAC検証アルゴリズムに従って、取得した認証子が検証用組(W、i1、i2、…)の認証子であるか否かをチェックする。   Assume that the predetermined verification algorithm comprises a MAC verification algorithm. In this case, the index verification unit 208 uses the MAC secret key as the verification secret key K, and the acquired authenticator is the authenticator of the verification pair (W, i1, i2,...) According to the MAC verification algorithm. Check if it exists.

一方、所定の検証アルゴリズムが署名検証アルゴリズムから成るとする。この場合、索引検証部208は、デジタル署名の公開鍵を使って、署名検証アルゴリズムに従って、取得したデジタル署名が検証用組(W、i1、i2、…)のデジタル署名であるか否かをチェックする。   On the other hand, it is assumed that the predetermined verification algorithm is a signature verification algorithm. In this case, the index verification unit 208 checks whether or not the acquired digital signature is a digital signature of the verification pair (W, i1, i2,...) Using the public key of the digital signature according to the signature verification algorithm. To do.

索引検証部208は、acceptなら、accept(承認)を出力し(ステップS310)、rejectなら、reject(拒否)を出力する(ステップS312)。   The index verification unit 208 outputs accept (approval) if accept (step S310), and outputs reject (reject) if reject (step S312).

次に、図8を参照して、索引検証部208の動作について具体例を挙げて説明する。ここでは、検索キーワードWが索引番号2の「茨城大学」である場合を例に挙げて説明する。   Next, the operation of the index verification unit 208 will be described with a specific example with reference to FIG. Here, a case where the search keyword W is “Ibaraki University” with index number 2 will be described as an example.

この場合、索引検証部208は、鍵保持部204から検証用の秘密鍵Kを読み込み、検索キーワードとして「茨城大学」を読み込み、サーバ300から送られてきた、ファイルの集合(D、D、D10)に対応するファイル番号の集合(3、6、10)と索引検証情報tagとを読み込む。 In this case, the index verification unit 208 reads the verification secret key K from the key holding unit 204, reads “Ibaraki University” as a search keyword, and sends a set of files (D 3 , D 6) sent from the server 300. , D 10 ), a set of file numbers (3, 6, 10 ) corresponding to D 10 ) and index verification information tag are read.

そして、索引検証部208は、検証用の秘密鍵Kを使い、索引検証情報tagが検証用組(茨城大学、3、6、10)の索引検証情報であるか否かを、所定の検証アルゴリズムに従って、下記の数式に示されるように計算する。
Verify(茨城大学、3、6、10、tag)=accept or reject
Then, the index verification unit 208 uses the verification secret key K and determines whether the index verification information tag is index verification information of the verification group (Ibaraki University 3, 6, 10). According to the following formula.
Verify K (Ibaraki University, 3, 6, 10, tag) = accept or reject

索引検証部208は、acceptなら、accept(承認)を出力し、rejectなら、reject(拒否)を出力する。   The index verification unit 208 outputs accept (approval) if accept, and outputs reject (reject) if reject.

図9を参照して、サーバ300のファイル検証情報生成部308の動作について説明する。   The operation of the file verification information generation unit 308 of the server 300 will be described with reference to FIG.

先ず、ファイル検証情報生成部308は、検索部304からファイルの集合S={(j1,Dj1),(j2,Dj2),・・・}を読み込む(ステップS402)。引き続いて、ファイル検証情報生成部308は、記憶領域302から全ファイル{(1、D),(2,D),・・・}を読み込む(ステップS404)。そして、ファイル検証情報生成部308は、鍵保持部306から公開情報N,g,hを読み込む(ステップS406)。 First, the file verification information generation unit 308 reads a set of files S = {(j1, D j1 ), (j2, D j2 ),...} From the search unit 304 (step S402). Subsequently, the file verification information generation unit 308 reads all files {(1, D 1 ), (2, D 2 ),...} From the storage area 302 (step S404). The file verification information generating unit 308 reads the public information N, g, the h a from the key storage unit 306 (step S406).

次に、ファイル検証情報生成部308は、ファイルの集合Sに含まれない各添字(i1,i2,・・・)について下記の数式に従って素数p(i=i1,i2,・・・)を計算し、さらに、ファイル検証情報πを下記の数式に従って計算する(ステップS408)。
=prime(H(i,D))
π=gpi1pi2・・・mod N
Next, the file verification information generation unit 308 calculates a prime number p i (i = i1, i2,...) According to the following formula for each subscript (i1, i2,...) Not included in the file set S. Further, the file verification information π is calculated according to the following formula (step S408).
p i = prime (H (i, D i ))
π = g pi1pi2... mod N

そして、ファイル検証情報生成部308は、ファイル検証情報πを出力する(ステップS410)。このファイル検証情報πは、クライアント200へ送出される。   Then, the file verification information generation unit 308 outputs file verification information π (step S410). This file verification information π is sent to the client 200.

図10に、ファイル検証情報生成部308の動作の具体例を示す。この例では、検索部304からファイルの集合S={(2,D),(4,D)}が出力される場合を示している。 FIG. 10 shows a specific example of the operation of the file verification information generation unit 308. In this example, a case where a set of files S = {(2, D 2 ), (4, D 4 )} is output from the search unit 304 is shown.

この場合、ファイル検索情報生成部308は、ファイル番号が2,4以外のすべてのファイルについて、p=prime(H(1,D)),p=prime(H(3,D)),p=prime(H(5,D)),p=prime(H(6,D)),・・・を計算し、ファイル検証情報π=gp1p3p5p6・・・mod Nを計算して出力する。 In this case, the file search information generation unit 308 performs p 1 = prime (H (1, D 1 )) and p 3 = prime (H (3, D 3 ) for all files other than the file numbers 2 and 4. ), P 5 = prime (H (5, D 5 )), p 6 = prime (H (6, D 6 )),..., And file verification information π = g p1p3p5p6. Calculate and output.

図11を参照して、クライアント200のファイル検証部220の動作について説明する。   The operation of the file verification unit 220 of the client 200 will be described with reference to FIG.

ファイル検証部220は、先ず、索引検証部208の結果がaccept(承認)であるか否かを判断する(ステップS502)。accept(承認)なら、ファイル検証部220はステップS504に進み、reject(拒否)なら、ファイル検証部220はreject(拒否)を出力する(ステップS514)。   The file verification unit 220 first determines whether or not the result of the index verification unit 208 is accept (approval) (step S502). If accept (approval), the file verification unit 220 proceeds to step S504. If reject (rejection), the file verification unit 220 outputs reject (rejection) (step S514).

ステップS504において、ファイル検証部220は、サーバ300からファイルの集合S={(i1,Di1),(i2,Di2),・・・}と、そのファイル検証情報πを読み込む。そして、ファイル検証部220は、鍵保持部204から公開情報N,g,hを読み込む。 In step S504, the file verification unit 220 reads the set of files S = {(i1, D i1 ), (i2, D i2 ),... Then, the file verification unit 220 reads the public information N, g, and h a from the key storage unit 204.

引き続いて、ファイル検証部220は、ファイルの集合Sに含まれる各ファイルD(Di1,Di2,・・・)について、下記の数式に従って素数pを計算する(ステップS506)。
=prime(H(i,D))
Subsequently, the file verification unit 220 calculates a prime p i for each file D i (D i1 , D i2 ,...) Included in the file set S according to the following mathematical formula (step S506).
p i = prime (H (i, D i ))

次に、ファイル検証部220は、下記の数式に従ってファイルの蓄積値Aを計算する(ステップS508)。
A=πpi1pi2・・・mod N
Next, the file verification unit 220 calculates the accumulated value A of the file according to the following mathematical formula (step S508).
A = π pi1pi2... Mod N

そして、ファイル検証部220は、この計算したファイルの蓄積値Aが、Acc保持部218に保持されている全ファイルの蓄積値Accと等しいか否か判断する(ステップS510)。   Then, the file verification unit 220 determines whether or not the calculated file accumulation value A is equal to the accumulation value Acc of all files held in the Acc holding unit 218 (step S510).

A=Accの場合(ステップS510のYes)、ファイル検証部220は、サーバ300から取得したファイルの集合S={(i1,Di1),(i2,Di2),・・・}を所望のファイルの集合として出力する(ステップS512)。A≠Accの場合(ステップS510のNo)、ファイル検証部220は、reject(拒否)を出力する(ステップS514)。 When A = Acc (Yes in step S510), the file verification unit 220 selects a set of files S = {(i1, D i1 ), (i2, D i2 ) ,. Output as a set of files (step S512). If A ≠ Acc (No in step S510), the file verification unit 220 outputs reject (rejection) (step S514).

図12に、ファイル検証部220の動作の具体例を示す。この例では、サーバ300からファイルの集合S={(2,D),(4,D)}を受け取った場合の例を示している。 FIG. 12 shows a specific example of the operation of the file verification unit 220. In this example, an example in which a set of files S = {(2, D 2 ), (4, D 4 )} is received from the server 300 is shown.

この場合、ファイル検証部220は、素数p=prime(H(2,D))およびp=prime(H(4,D))を計算した後、ファイルの蓄積値A=πp2p4mod Nを計算し、計算したファイルの蓄積値Aが保持している全ファイルの蓄積値Accと等しいか否か判断し、等しければ、取得したファイルの集合D、Dを所望のファイルの集合として得、等しくなければ、reject(拒否)する。 In this case, the file verification unit 220 calculates the prime numbers p 2 = prime (H (2, D 2 )) and p 4 = prime (H (4, D 4 )), and then the accumulated value A of the file A = π p2p4 mod N is calculated, and it is determined whether or not the calculated accumulated value A of the file is equal to the accumulated value Acc of all the stored files. If they are equal, the acquired file sets D 2 and D 4 are obtained from the desired file. Get as a set, reject if not equal.

図13を参照して、本発明の第1の実施例に係る検索システム100の更新フェーズについて説明する。図13は、本発明の第1の実施例に係る検索システム100の更新フェーズのブロック図である。   With reference to FIG. 13, the update phase of the search system 100 according to the first embodiment of the present invention will be described. FIG. 13 is a block diagram of the update phase of the search system 100 according to the first embodiment of the present invention.

図13に示されるように、クライアント(ユーザ端末)200は、第4及び第5の信号線(伝送線)222、224と、Acc更新部226と、を更に有する。   As illustrated in FIG. 13, the client (user terminal) 200 further includes fourth and fifth signal lines (transmission lines) 222 and 224 and an Acc update unit 226.

本例では、ファイル番号jを持つ現ファイルDを、新ファイルD’に更新するか又は削除する場合の例を示している。すなわち、本例では、ファイル番号jを持つファイルが、更新(又は削除)すべきファイルであり、現ファイルDが更新前のファイルである。 In this example, the current file D j having the file number j is updated to a new file D j ′ or deleted. That is, in this example, the file having the file number j is the file to be updated (or deleted), and the current file D j is the file before the update.

この場合、クライアント200は、新ファイルD’又は「削除」を示すデータを第4の信号線(伝送線)222を介してサーバ300へ送信すると共に、ファイル番号jを第5の信号線(伝送線)224を介してサーバ300へ送信する。サーバ300は、その送られてきた新ファイルD’又は「削除」を示すデータをそのファイル番号jと共に記憶領域302に保管する。 In this case, the client 200 transmits data indicating the new file D j ′ or “deletion” to the server 300 via the fourth signal line (transmission line) 222 and transmits the file number j to the fifth signal line ( Transmission line) 224 to server 300. The server 300 stores the received new file D j ′ or data indicating “delete” in the storage area 302 together with the file number j.

したがって、第4及び第5の信号線(伝送線)222、224の組み合わせは、更新(削除)すべきファイルをそのファイル番号jと共にサーバ300へ送って更新(削除)する更新手段として働く。   Therefore, the combination of the fourth and fifth signal lines (transmission lines) 222 and 224 serves as an updating unit that sends (updates) a file to be updated (deleted) to the server 300 together with the file number j.

サーバ300において、第5の信号線(伝送線)224を介してファイル番号jが渡されると、検索部304は、記憶領域302に既に格納されている現ファイル(更新前のファイル)Dを検索して、そのファイル番号jが付加された現ファイル(j、D)をクライアント200へ返す。 In the server 300, when the file number j is passed through the fifth signal line (transmission line) 224, the search unit 304 uses the current file (file before update) D j already stored in the storage area 302. The current file (j, D j ) with the file number j added thereto is returned to the client 200.

図14を参照して、クライアント200のAcc更新部226の動作について説明する。   The operation of the Acc update unit 226 of the client 200 will be described with reference to FIG.

先ず、Acc更新部226は、ファイル番号j、現ファイルD、新ファイルD’(又は「削除」を示すデータ)を読み込み、Acc保持部218から全ファイルの蓄積値Accを読み込み、鍵保持部204から秘密情報p,qと公開情報N,g,hを読み込む(ステップS602)。 First, the Acc update unit 226 reads the file number j, the current file D j , and the new file D j ′ (or data indicating “delete”), reads the accumulated value Acc of all files from the Acc holding unit 218, and holds the key. secret information p from the section 204, q and the public information N, g, reads h a (step S602).

引き続いて、Acc更新部226は、下記の数式に従って、x、x’、およびdを計算する(ステップS604)。
x=prime(H(j,D))
x’=prime(H(j,D’))
d=x’/x mod (p−1)(q−1)
Subsequently, the Acc updating unit 226 calculates x, x ′, and d according to the following mathematical formula (step S604).
x = prime (H (j, D j ))
x ′ = prime (H (j, D j ′))
d = x ′ / x mod (p−1) (q−1)

次に、Acc更新部226は、下記の数式に従って、新しい全ファイルの蓄積値Acc’を計算する(ステップS606)。
Acc’=Accmod N
Next, the Acc update unit 226 calculates an accumulation value Acc ′ of all new files according to the following mathematical formula (step S606).
Acc '= Acc d mod N

最後に、Acc更新部226は、計算した新しい全ファイルの蓄積値Acc’をAcc保持部218に保持することにより、古い全ファイルの蓄積値Accを新しい全ファイルの蓄積値Acc’に更新する(ステップS608)。   Finally, the Acc updating unit 226 updates the accumulated value Acc ′ of all new files in the Acc holding unit 218 to update the accumulated value Acc of all old files to the accumulated value Acc ′ of all new files ( Step S608).

このように、ファイルを更新(又は削除)しようとする場合、クライアント200は、更新すべきファイル(又は「削除」を示すデータ)をそのファイル番号と共にサーバ300へ送出し、全ファイルの蓄積値を更新するだけで良いので、ファイルの更新を効率的に行なうことができる。   In this way, when updating (or deleting) a file, the client 200 sends the file to be updated (or data indicating “deletion”) to the server 300 together with the file number, and stores the accumulated values of all the files. Since it is only necessary to update, the file can be updated efficiently.

次に、本第1の実施例の効果について説明する。   Next, effects of the first embodiment will be described.

第1の実施例の検索システム100の第1の効果は、サーバ300の不正(ファイルの削除、追加、改ざん、すり替え)を検出できるだけでなく、ファイルの更新(削除を含む)を効率的に行なうことができることである。その理由は、クライアント(ユーザ端末)200が各キーワードWと当該キーワードWを含む全てのファイルのファイル番号の集合(j1、j2、…)とを一組(生成用組)として、それに対する索引検証情報tagを生成し、生成した索引検証情報tagをサーバ300に保管しているからである。 The first effect of the search system 100 according to the first embodiment is not only capable of detecting fraud (deletion, addition, falsification, replacement) of the server 300, but also efficiently updates (including deletion) files. Be able to. This is because, as a client a set of file numbers for all files (user terminal) 200 containing each keyword W i and the keyword W i (j1, j2, ...) and a set (generating sets), thereto This is because the index verification information tag i is generated and the generated index verification information tag i is stored in the server 300.

第1の実施例の検索システム100の第2の効果は、リプレイ・アタックを検出できることである。その理由は、RSA accumulatorを利用してファイルの蓄積値Accをチェックしているからである。   The second effect of the search system 100 according to the first embodiment is that a replay attack can be detected. This is because the accumulated value Acc of the file is checked using the RSA accumulator.

尚、リプレイ・アタックを検出しない場合には、クライアント200から、ファイル蓄積値計算部216、Acc保持部218、ファイル検証部220、およびAcc更新部226を省略し、サーバ300から鍵保持部306およびファイル検証情報生成部308を省略することができる。   If the replay attack is not detected, the file accumulated value calculation unit 216, the Acc holding unit 218, the file verification unit 220, and the Acc updating unit 226 are omitted from the client 200, and the key holding unit 306 and the server 300 are omitted. The file verification information generation unit 308 can be omitted.

また、上記本発明の第1の実施例に係る検索システム100は、検索方法として実現され得る。さらに、上記本発明の第1の実施例に係る検索システム100のうちのクライアント(ユーザ端末)200が実施する部分は、当該クライアント(ユーザ端末)200に含まれるメモリ(ROM等)に格納された検索プログラムによって実行されるようにしてもよい。   The search system 100 according to the first embodiment of the present invention can be realized as a search method. Furthermore, the part implemented by the client (user terminal) 200 in the search system 100 according to the first embodiment of the present invention is stored in a memory (ROM or the like) included in the client (user terminal) 200. It may be executed by a search program.

図15を参照して、本発明の第2の実施例に係る検索システム100Aの格納フェーズと検索フェーズについて説明する。図15は、本発明の第2の実施例に係る検索システム100Aの格納フェーズと検索フェーズのブロック図である。図示の検索システム100Aは、上述した本発明の第2の実施形態に係る検索システムに相当する検索システムである。検索システム100Aは、クライアント200Aとサーバ300Aとから構成される。クライアント200Aは、ユーザ端末とも呼ばれる。   With reference to FIG. 15, the storage phase and the search phase of the search system 100A according to the second embodiment of the present invention will be described. FIG. 15 is a block diagram of the storage phase and the search phase of the search system 100A according to the second embodiment of the present invention. The illustrated search system 100A is a search system corresponding to the above-described search system according to the second embodiment of the present invention. The search system 100A includes a client 200A and a server 300A. The client 200A is also called a user terminal.

検索システム100Aは、クライアント(ユーザ端末)200Aがサーバ300Aに複数の暗号ファイルを保管し、クライアント(ユーザ端末)200Aがキーワード検索によってサーバ300Aから所望のファイルの集合を取得するシステムである。   The search system 100A is a system in which a client (user terminal) 200A stores a plurality of encrypted files in the server 300A, and the client (user terminal) 200A acquires a desired set of files from the server 300A by keyword search.

尚、クライアント(ユーザ端末)200Aがサーバ300Aに格納された暗号ファイルを更新する更新フェーズのブロック図については、後で図28を参照して説明する。   Note that a block diagram of an update phase in which the client (user terminal) 200A updates the encrypted file stored in the server 300A will be described later with reference to FIG.

クライアント200Aは、鍵生成部202Aと、鍵保持部204Aと、索引検証情報生成部206Aと、索引検証部208Aと、ファイル暗号化部210Aと、索引暗号化部212Aと、キーワード暗号化部214Aと、ファイル蓄積値計算部216Aと、Acc保持部218Aと、ファイル検証部220Aと、から構成されている。   The client 200A includes a key generation unit 202A, a key holding unit 204A, an index verification information generation unit 206A, an index verification unit 208A, a file encryption unit 210A, an index encryption unit 212A, and a keyword encryption unit 214A. , A file accumulation value calculation unit 216A, an Acc holding unit 218A, and a file verification unit 220A.

一方、サーバ300Aは、記憶領域302Aと、暗号検索部304Aと、鍵保持部306Aと、ファイル検証情報生成部308Aと、から構成されている。   On the other hand, the server 300A includes a storage area 302A, an encryption search unit 304A, a key holding unit 306A, and a file verification information generation unit 308A.

鍵生成部202Aは、暗号化の秘密鍵Kと、検証用の秘密鍵Kと、所定の秘密鍵K0、K1と、秘密情報p,qと、公開情報N,g,hとを生成する。鍵保持部204Aは、この生成された暗号化の秘密鍵Kと、検証用の秘密鍵Kと、所定の秘密鍵K0、K1と、秘密情報p,qと公開情報N,g,hとを保持する。また、鍵保持部204Aに保持された公開情報N,g,hは、サーバ300Aの鍵保持部306Aへ送られる。したがって、サーバ300Aの鍵保持部306Aは、公開情報N,g,hを保持する。 Key generating unit 202A the generated secret key K e encryption, and a secret key K for verification, and a predetermined secret key K0, K1, secret information p, and q, public information N, g, and h a To do. Key storage unit 204A includes a secret key K e of the generated encrypted, and a private key K for verification, and a predetermined secret key K0, K1, secret information p, q and the public information N, g, h a And hold. Also, the public information stored in the key storage unit 204A N, g, h a is sent to the key holding part 306A of the server 300A. Therefore, the key holding portion 306A of the server 300A stores public information N, g, and h a.

ファイル暗号化部210Aは、暗号化の秘密鍵Kを使い、複数のファイルの暗号文である暗号ファイル{E(D)、E(D)、…}を計算する。これら暗号ファイル{E(D)、E(D)、…}は、それらのファイル番号と共にサーバ300Aへ送られ、サーバ300Aは、その送られてきた暗号ファイル{E(D)、E(D)、…}をそれらのファイル番号と共に記憶領域302Aに記憶する。したがって、ファイル暗号化部210Aは、暗号化の秘密鍵Kを使って複数のファイルをそれぞれ暗号化し、複数の暗号ファイルをそれらのファイル番号と共にサーバ300Aに保管する暗号ファイル保管手段として働く。 The file encryption unit 210A, using the secret key K e of encryption, the file is a ciphertext of a plurality of files {E (D 1), E (D 2), ...} is calculated. These encrypted files {E (D 1 ), E (D 2 ),...} Are sent to the server 300A together with their file numbers, and the server 300A sends the encrypted files {E (D 1 ), E (D 2 ),...} Are stored in the storage area 302 A together with their file numbers. Thus, the file encryption unit 210A uses the secret key K e encryption respectively encrypt multiple files, work plurality of cryptographic file as encrypted file storage means for storing the server 300A along with their file numbers.

また、クライアント200Aは、索引を生成する。索引の具体例は、前述した図2と同一である。前述したように、索引は、キーワードと、それに対応するファイルの番号(ファイル番号)の対応表である。   In addition, the client 200A generates an index. A specific example of the index is the same as in FIG. As described above, the index is a correspondence table of keywords and file numbers (file numbers) corresponding to the keywords.

図2に示されるように、図示の例では、索引の番号1には、キーワードとして「情報工学」が記憶され、そのキーワードに対応するファイル番号として、「1」、「6」、「8」、「11」が記憶されている。また、索引の番号2には、キーワードとして「茨城大学」が記憶され、そのキーワードに対応するファイル番号として、「3」、「6」、「10」が記憶されている。   As shown in FIG. 2, in the illustrated example, “information engineering” is stored as a keyword in index number 1, and “1”, “6”, “8” are stored as file numbers corresponding to the keyword. , “11” is stored. In index number 2, “Ibaraki University” is stored as a keyword, and “3”, “6”, and “10” are stored as file numbers corresponding to the keyword.

索引暗号化部212Aは、所定の秘密鍵K0、K1を使い、生成した索引を暗号化して、暗号化索引をサーバ300Aへ送信する。サーバ300Aは、その送られてきた暗号化索引を記憶領域302Aに記憶する。したがって、索引暗号化部212Aは、生成した索引を暗号化して、暗号化索引をサーバ300Aへ保管する暗号化索引保管手段として働く。   The index encryption unit 212A encrypts the generated index using predetermined secret keys K0 and K1, and transmits the encrypted index to the server 300A. The server 300A stores the sent encrypted index in the storage area 302A. Therefore, the index encryption unit 212A functions as an encrypted index storage unit that encrypts the generated index and stores the encrypted index in the server 300A.

図16を参照して、クライアント200Aの索引暗号化部212Aの動作について説明する。   The operation of the index encryption unit 212A of the client 200A will be described with reference to FIG.

ここでは、索引暗号化部212Aの動作について説明する前に、先ず、記法について説明する。   Here, before describing the operation of the index encryption unit 212A, the notation will be described first.

PRF(・)は擬似ランダム関数を表す。ただし、kは鍵である。
[PRF(W)]により、PRF(W)の先頭のuビットを表す。
文書(ファイル)の総数をnとする。
キーワードWがファイルDに含まれるなら、ei,j=1と表し、そうでなければ、ei,j=0と表す。
PRF k (·) represents a pseudo-random function. However, k is a key.
[PRF k (W)] u represents the first u bits of PRF k (W).
Let n be the total number of documents (files).
If the keyword W i is included in the file D j , e i, j = 1, otherwise e i, j = 0.

先ず、索引暗号化部212Aは、索引と所定の秘密鍵K0、K1とを読み込む(ステップS702)。   First, the index encryption unit 212A reads an index and predetermined secret keys K0 and K1 (step S702).

引き続いて、索引暗号化部212Aは、各キーワードWiについて、下記の数式で表される、label、PAD、およびOTPを計算する(ステップS704)。
label=[PRFK0(W)]128
PAD=[PRFK1(W)]
OTP=PAD+(ei,1,・・・、ei,n)mod 2
ここで、labelは、キーワードWの暗号文を表し、OTPは、キーワードWを含むファイルのファイル番号の暗号文を表す。
Subsequently, the index encryption unit 212A calculates label i , PAD i , and OTP i represented by the following formula for each keyword Wi (step S704).
label i = [PRF K0 (W i )] 128
PAD i = [PRF K1 (W i )] n
OTP i = PAD i + (e i, 1 ,..., E i, n ) mod 2
Here, label i represents the ciphertext of the keyword W i , and OTP i represents the ciphertext of the file number of the file including the keyword W i .

そして、索引暗号化部212Aは、暗号化索引={(label,OTP),(label,OTP),・・・}を出力する(ステップS706)。 Then, the index encryption unit 212A outputs the encryption index = {(label 1 , OTP 1 ), (label 2 , OTP 2 ),...} (Step S706).

このように、索引暗号化部212Aは、キーワードWとそのキーワードWに対応するファイルのファイル番号との対応表である索引を、所定の秘密鍵K0,K1を使って暗号化し、キーワードWの暗号文labelとそのキーワードWを含むファイルのファイル番号の暗号文OTPとから成る暗号化索引をサーバ300Aに保管する暗号化索引保管手段として働く。 Thus, the index encryption unit 212A, an index is a correspondence table between the file number of the file that corresponds to the keyword W i and the keyword W i, and encrypted using a predetermined secret key K0, K1, keyword W i cipher text label i of the work the encrypted index consisting of a cipher text OTP i of the file number of the file that contains the keyword W i as encrypted index storage means for storing the server 300A.

次に、図17を参照して、索引暗号化部212Aの動作について具体例を挙げて説明する。ここでは、ファイル(文書)の総数n=12で、キーワードが索引番号2の「茨城大学」である場合を例に挙げて説明する。したがって、この場合、索引番号2のファイル番号には、「3」、「6」、「10」が記憶されている。   Next, the operation of the index encryption unit 212A will be described with a specific example with reference to FIG. Here, a case where the total number of files (documents) n = 12, and the keyword is “Ibaraki University” with index number 2 will be described as an example. Therefore, in this case, “3”, “6”, and “10” are stored in the file number of index number 2.

この場合、索引暗号化部212Aは、キーワードWの暗号文labelと、ファイル番号の暗号文OTPとを計算する。 In this case, the index encryption unit 212A, to calculate the cipher text label 2 of the keyword W 2, the file number and the ciphertext OTP 2.

ただし、キーワードWの暗号文labelは、下記の数式で表される。
label=[PRFK0(茨城大学)]128
However, the ciphertext label 2 keyword W 2 is represented by the following equation.
label 2 = [PRF K0 (Ibaraki University)] 128

また、(e2,1,・・・,e2,12)は、(001001000100)に等しい。また、PADは下記の数式で表され、ここで(110101011110)であったとする。
PAD=[PRFK1(茨城大学)]12
=(110101011110)
Further, (e 2,1 ,..., E 2,12 ) is equal to (001001000100). Further, PAD 2 is represented by the following mathematical formula, and is assumed to be (110101011110) here.
PAD 2 = [PRF K1 (Ibaraki University)] 12
= (110101011110)

よって、ファイル番号の暗号文OTPは、それらの排他的論理和(xor)であるので、本例では、下記の数式で表される。
OTP=(111100011010)
Therefore, the ciphertext OTP 2 of the file number is the exclusive OR (xor) thereof, and is represented by the following mathematical formula in this example.
OTP 2 = (111100011010)

クライアント200Aの索引検証情報生成部206Aの動作は、図3および図4に示したものと同様であるので、重複を避けるためにその説明を省略する。   Since the operation of the index verification information generation unit 206A of the client 200A is the same as that shown in FIGS. 3 and 4, the description thereof is omitted to avoid duplication.

図18を参照して、クライアント200Aのファイル蓄積値計算部216Aの動作について説明する。   With reference to FIG. 18, the operation of the file accumulation value calculation unit 216A of the client 200A will be described.

先ず、ファイル蓄積値計算部216Aは、全暗号ファイルの集合{(1、E(D)),(2,E(D)),・・・}および公開情報N,g、hを読み込む(ステップS202A)。次に、ファイル蓄積値計算部216Aは、各暗号ファイルE(D)(1≦i≦n)について、素数pを下記の数式によって求める(ステップS204A)。
=prime(H(i,E(D)))
ここで、Hはハッシュ関数である。
First, the file accumulating value calculation unit 216A, the set of all encrypted files {(1, E (D 1 )), (2, E (D 2)), ···} and public information N, g, and h a Read (step S202A). Next, the file accumulation value calculation unit 216A calculates a prime number p i for each encrypted file E (D i ) (1 ≦ i ≦ n) by the following mathematical formula (step S204A).
p i = prime (H (i, E (D i )))
Here, H is a hash function.

そして、ファイル蓄積値計算部216Aは、ファイルの蓄積値Accを下記の数式によって計算する(ステップS206A)。
Acc=gp1p2p3...pnmod N
Then, the file accumulation value calculation unit 216A calculates the accumulation value Acc of the file by the following mathematical formula (step S206A).
Acc = g p1p2p3. . . pn mod N

ファイル蓄積値計算部216Aは、この計算して得られたファイルの蓄積値Accを出力する(ステップS208A)。ファイルの蓄積値Accは、Acc保持部218Aで保持される。   The file accumulation value calculation unit 216A outputs the accumulation value Acc of the file obtained by this calculation (step S208A). The accumulated value Acc of the file is held by the Acc holding unit 218A.

図19に、ファイル蓄積値計算部216Aの動作の具体例を示す。   FIG. 19 shows a specific example of the operation of the file accumulation value calculation unit 216A.

すなわち、ファイル蓄積値計算部216は、各暗号ファイルE(D)、E(D)、・・・、E(D)について、それぞれ、素数p=prime(H(1,E(D)))、p=prime(H(2,E(D)))、・・・、p=prime(H(n,E(D)))を求め、ファイルの蓄積値Acc=gp1p2p3...pnmod Nを計算し、ファイルの蓄積値Accを出力する。 That is, the file accumulation value calculation unit 216 has prime numbers p 1 = prime (H (1, E () for each encrypted file E (D 1 ), E (D 2 ),..., E (D n ). D 1 ))), p 2 = prime (H (2, E (D 2 ))),..., Pn = prime (H (n, E (D n )))) Acc = g p1p2p3. . . pn mod N is calculated and the accumulated value Acc of the file is output.

検索時、クライアント200Aでは、キーワード暗号化部214Aが、所定の秘密鍵K0、K1を使って検索キーワードWを暗号化し、暗号検索キーワード(label,PAD)をサーバ300Aに送る。 At the time of the search, in the client 200A, the keyword encryption unit 214A encrypts the search keyword W using predetermined secret keys K0 and K1, and sends the encrypted search keyword (label * , PAD * ) to the server 300A.

図20を参照して、クライアント200Aのキーワード暗号化部214Aの動作について説明する。   The operation of the keyword encryption unit 214A of the client 200A will be described with reference to FIG.

キーワード暗号化部214Aは、先ず、検索キーワードWと所定の秘密鍵K0,K1とを読み込む(ステップS802)。引き続いて、キーワード暗号化部214Aは、下記の数式に従って、暗号検索キーワード(label,PAD)を計算する(ステップS804)。
label=[PRFK0(W)]128
PAD=[PRFK1(W)]
The keyword encryption unit 214A first reads the search keyword W and predetermined secret keys K0 and K1 (step S802). Subsequently, the keyword encryption unit 214A calculates an encryption search keyword (label * , PAD * ) according to the following mathematical formula (step S804).
label * = [PRF K0 (W)] 128
PAD * = [PRF K1 (W)] n

そして、キーワード暗号化部214Aは、計算により得られた暗号検索キーワード(label,PAD)をサーバ300Aへ送信する(ステップS806)。 Then, the keyword encryption unit 214A transmits the encryption search keyword (label * , PAD * ) obtained by the calculation to the server 300A (step S806).

図21に、キーワード暗号化部214Aの動作の具体例を示す。本例では、検索キーワードWが「茨城大学」であって、ファイルの総数nが12に等しい場合の例を示している。   FIG. 21 shows a specific example of the operation of the keyword encryption unit 214A. In this example, the search keyword W is “Ibaraki University” and the total number n of files is equal to 12.

この場合、キーワード暗号化部214Aは、下記の数式に従って、暗号検索キーワード(label,PAD)を計算する。
label=[PRFK0(茨城大学)]128
PAD=[PRFK1(茨城大学)]12
(=110101011110)
In this case, the keyword encryption unit 214A calculates the encryption search keyword (label * , PAD * ) according to the following mathematical formula.
label * = [PRF K0 (Ibaraki University)] 128
PAD * = [PRF K1 (Ibaraki University)] 12
(= 110101011110)

キーワード暗号化部214Aは、計算により得られた暗号検索キーワード(label,PAD)をサーバ300Aへ送信する。 The keyword encryption unit 214A transmits the encryption search keyword (label * , PAD * ) obtained by the calculation to the server 300A.

サーバ300Aにおいては、暗号検索キーワード(label,PAD)に応答して、暗号検索部304Aは、その検索キーワードWを含む暗号ファイルの集合{(j1,E(Dj1)),(j2,E(Dj2)),・・・}とその索引検証情報tagとをクライアント200Aへ返す。 In the server 300A, in response to the encryption search keyword (label * , PAD * ), the encryption search unit 304A sends a set of encryption files {(j1, E (D j1 )), (j2, E (D j2 )),...} And its index verification information tag j are returned to the client 200A.

図22を参照して、サーバ300Aの暗号検索部304Aの動作について説明する。   With reference to FIG. 22, the operation of the cryptographic search unit 304A of the server 300A will be described.

先ず、暗号検索部304Aは、クライアント200Aから送出されてきた暗号検索キーワード(label,PAD)を検索用データとして読み込む(ステップS902)。 First, the cryptographic search unit 304A reads the cryptographic search keyword (label * , PAD * ) transmitted from the client 200A as search data (step S902).

引き続いて、暗号検索部304Aは、記憶領域302Aに格納されている暗号化索引の中からlabel=labelとなるjを見つけて、(label,OTP,tag)を見つける(ステップS904)。 Subsequently, the cipher search unit 304A finds j satisfying label * = label j from the encrypted index stored in the storage area 302A, and finds (label j , OTP j , tag j ) (step S904). ).

次に、暗号検索部304Aは、下記の数式を計算する(ステップS906)。
(e,・・・,e)=OTP+PADmod 2
Next, the cryptographic search unit 304A calculates the following mathematical formula (step S906).
(E 1 ,..., E n ) = OTP j + PAD * mod 2

そして、暗号検索部304Aは、e=1となるjの集合{j1,j2,・・・}を求める(ステップS908)。 Then, the cipher search unit 304A obtains a set {j1, j2,...} Of j for which e j = 1 (step S908).

次に、暗号検索部304Aは、検索キーワードWを含む暗号ファイルの集合{(j1,E(Dj1)),(j2,E(Dj2)),・・・}とその索引検証情報tagとを出力する(ステップS910)。 Next, the cipher search unit 304A sets a set of cipher files {(j1, E (D j1 )), (j2, E (D j2 )),... Including the search keyword W and its index verification information tag j. Are output (step S910).

したがって、クライアント200Aは、暗号ファイルの集合{(j1,E(Dj1)),(j2,E(Dj2)),・・・}とその索引検証情報tagとを取得する。 Therefore, the client 200A obtains a set of encrypted files {(j1, E (D j1 )), (j2, E (D j2 )),...} And its index verification information tag j .

図23に暗号検索部304Aの動作の具体例を示す。本例では、jが2に等しく、nが12に等しい場合の例を示している。   FIG. 23 shows a specific example of the operation of the cryptographic search unit 304A. In this example, j is equal to 2 and n is equal to 12.

j=2であるので、暗号検索部304Aは、暗号化索引の中から(label,OTP,tag)を見つける。そして、暗号検索部304Aは、下記の数式を計算する。
(e,・・・,e12)=OTP+PADmod 2
Since j = 2, the cryptographic search unit 304A finds (label 2 , OTP 2 , tag 2 ) from the encrypted index. Then, the cryptographic search unit 304A calculates the following mathematical formula.
(E 1 ,..., E 12 ) = OTP 2 + PAD * mod 2

本例では、PADおよびOTPは、それぞれ、下記の数式に等しいとする。
PAD=(110101011110)
OTP=(111100011010)
In this example, it is assumed that PAD * and OTP 2 are equal to the following mathematical expressions, respectively.
PAD * = (110101011110)
OTP 2 = (111100011010)

この場合、(e,・・・,e12)は、それらの排他的論理和xorであるので、下記の数式で表される。
(e,・・・,e12)=(001001000100)
In this case, since (e 1 ,..., E 12 ) is their exclusive OR xor, it is expressed by the following mathematical formula.
(E 1 ,..., E 12 ) = (001010100100)

よって、e=1、e=1、e10=1であるので、該当する文書番号(ファイル番号は、(3,6,10)となる。 Therefore, since e 3 = 1, e 6 = 1, and e 10 = 1, the corresponding document number (file number is ( 3 , 6 , 10 ).

したがって、暗号検索部304Aは、検索キーワードWを含む暗号ファイルの集合{(3,E(D)),(6,E(D)),(10,E(D10))}とその索引検証情報tagとを出力する。 Therefore, the cryptographic search unit 304A includes a set of cryptographic files {(3, E (D 3 )), (6, E (D 6 )), (10, E (D 10 ))} including the search keyword W and The index verification information tag 2 is output.

上述したように、キーワード暗号化部214Aは、所定の秘密鍵K0、K1を使って検索キーワードWを暗号化して得られる暗号検索キーワード(label,PAD)をサーバ300Aへ送って、サーバ300Aから、暗号ファイルの集合{(j1,E(Dj1)),(j2,E(Dj2)),・・・}と検索キーワードWに対応する索引検証情報tagとを取得する暗号ファイル取得手段として働く。 As described above, the keyword encryption unit 214A sends the encrypted search keywords (label * , PAD * ) obtained by encrypting the search keyword W using the predetermined secret keys K0 and K1 to the server 300A. To obtain a set of encrypted files {(j1, E (D j1 )), (j2, E (D j2 )),...} And index verification information tag j corresponding to the search keyword W Work as a means.

クライアント200Aの索引検証部208Aの動作は、図7および図8と実質的に同様なので、その詳細な動作説明については省略する。相違点は、図7のステップS304における「ファイルの集合」が、「暗号ファイルの集合」に変更されていることだけである。   Since the operation of the index verification unit 208A of the client 200A is substantially the same as that of FIGS. 7 and 8, detailed description of the operation will be omitted. The only difference is that the “file set” in step S304 in FIG. 7 is changed to “encrypted file set”.

図24を参照して、サーバ300Aのファイル検証情報生成部308Aの動作について説明する。   The operation of the file verification information generation unit 308A of the server 300A will be described with reference to FIG.

先ず、ファイル検証情報生成部308Aは、暗号検索部304Aから暗号ファイルの集合S={(j1,E(Dj1)),(j2,E(Dj2)),・・・}を読み込む(ステップS402A)。引き続いて、ファイル検証情報生成部308Aは、記憶領域302Aから全暗号ファイル{(1、E(D)),(2,E(D)),・・・}を読み込む(ステップS404A)。そして、ファイル検証情報生成部308Aは、鍵保持部306Aから公開情報N,g,hを読み込む(ステップS406A)。 First, the file verification information generation unit 308A reads the set S = {(j1, E (D j1 )), (j2, E (D j2 )) ,. S402A). Subsequently, the file verification information generation unit 308A reads all encrypted files {(1, E (D 1 )), (2, E (D 2 )),...} From the storage area 302A (step S404A). Then, the file verification information generating section 308A reads public information N, g, and h a from the key storage unit 306A (step S406A).

次に、ファイル検証情報生成部308Aは、暗号ファイルの集合Sに含まれない各添字(すなわち、ファイル番号)(i1,i2,・・・)について下記の数式に従って素数p(i=i1,i2,・・・)を計算し、さらに、ファイル検証情報πを下記の数式に従って計算する(ステップS408A)。
=prime(H(i,E(D)))
π=gpi1pi2・・・mod N
Next, the file verification information generation unit 308A uses the prime number p i (i = i1, i1, i2,...) For each subscript (ie, file number) (i1, i2,. i2,...) and file verification information π is calculated according to the following formula (step S408A).
p i = prime (H (i, E (D i )))
π = g pi1pi2... mod N

そして、ファイル検証情報生成部308Aは、ファイル検証情報πを出力する(ステップS410A)。このファイル検証情報πは、クライアント200Aへ送出される。   Then, the file verification information generation unit 308A outputs file verification information π (step S410A). This file verification information π is sent to the client 200A.

図25に、ファイル検証情報生成部308Aの動作の具体例を示す。この例では、暗号検索部304Aから暗号ファイルの集合S={(2,E(D)),(4,E(D))}が出力された場合の例を示している。 FIG. 25 shows a specific example of the operation of the file verification information generation unit 308A. In this example, an example in which a set of encrypted files S = {(2, E (D 2 )), (4, E (D 4 ))} is output from the encryption search unit 304A.

この場合、ファイル検索情報生成部308Aは、ファイル番号が2,4以外のすべての暗号ファイルについて、p=prime(H(1,E(D))),p=prime(H(3,E(D))),p=prime(H(5,E(D))),p=prime(H(6,E(D))),・・・を計算し、ファイル検証情報π=gp1p3p5p6・・・mod Nを計算して出力する。 In this case, the file search information generation unit 308A determines that p 1 = prime (H (1, E (D 1 ))) and p 3 = prime (H (3) for all encrypted files with file numbers other than 2 and 4. , E (D 3 ))), p 5 = prime (H (5, E (D 5 ))), p 6 = prime (H (6, E (D 6 ))),. File verification information π = g p1p3p5p6... Mod N is calculated and output.

図26を参照して、クライアント200Aのファイル検証部220Aの動作について説明する。   The operation of the file verification unit 220A of the client 200A will be described with reference to FIG.

ファイル検証部220Aは、先ず、索引検証部208Aの結果がaccept(承認)であるか否かを判断する(ステップS502A)。accept(承認)なら、ファイル検証部220AはステップS504Aに進み、reject(拒否)なら、ファイル検証部220Aはreject(拒否)を出力する(ステップS514A)。   First, the file verification unit 220A determines whether or not the result of the index verification unit 208A is accept (approval) (step S502A). If accept (approval), the file verification unit 220A proceeds to step S504A. If reject (rejection), the file verification unit 220A outputs reject (rejection) (step S514A).

ステップS504Aにおいて、ファイル検証部220Aは、サーバ300Aから暗号ファイルの集合S={(i1,E(Di1)),(i2,E(Di2)),・・・}と、そのファイル検証情報πを読み込む。そして、ファイル検証部220Aは、鍵保持部204Aから公開情報N,g,hを読み込む。 In step S504A, the file verification unit 220A sends a set of encrypted files S = {(i1, E (D i1 )), (i2, E (D i2 )),... Read π. Then, the file verification unit 220A reads public information N, g, and h a from the key holding portion 204A.

引き続いて、ファイル検証部220Aは、暗号ファイルの集合Sに含まれる各暗号ファイルE(D)(E(Di1),E(Di2),・・・)について、下記の数式に従って素数pを計算する(ステップS506A)。
=prime(H(i,E(D)))
Subsequently, the file verification unit 220A applies the prime p according to the following formula for each encrypted file E (D i ) (E (D i1 ), E (D i2 ),...) Included in the set S of encrypted files. i is calculated (step S506A).
p i = prime (H (i, E (D i )))

次に、ファイル検証部220Aは、下記の数式に従ってファイルの蓄積値Aを計算する(ステップS508A)。
A=πpi1pi2・・・mod N
Next, the file verification unit 220A calculates the accumulated value A of the file according to the following mathematical formula (step S508A).
A = π pi1pi2... Mod N

そして、ファイル検証部220Aは、この計算したファイルの蓄積値Aが、Acc保持部218Aに保持されている全ファイルの蓄積値Accと等しいか否か判断する(ステップS510A)。   Then, the file verification unit 220A determines whether or not the calculated file accumulation value A is equal to the accumulation value Acc of all the files held in the Acc holding unit 218A (step S510A).

A=Accの場合(ステップS510AのYes)、ファイル検証部220Aは、サーバ300Aから取得した暗号ファイルの集合S={(i1,E(Di1)),(i2,E(Di2)),・・・}を復号して、所望のファイルの集合{(i1,Di1),(i2,Di2),・・・}として出力する(ステップS512A)。A≠Accの場合(ステップS510AのNo)、ファイル検証部220Aは、reject(拒否)を出力する(ステップS514A)。 When A = Acc (Yes in step S510A), the file verification unit 220A determines that the set of encrypted files S = {(i1, E (D i1 )), (i2, E (D i2 )) acquired from the server 300A. ... Are decoded and output as a set of desired files {(i1, D i1 ), (i2, D i2 ),...} (Step S512A). When A ≠ Acc (No in step S510A), the file verification unit 220A outputs reject (rejection) (step S514A).

図27に、ファイル検証部220Aの動作の具体例を示す。この例では、サーバ300Aから暗号ファイルの集合S={(2,E(D)),(4,E(D))}を受け取った場合を示している。 FIG. 27 shows a specific example of the operation of the file verification unit 220A. In this example, a case where a set of encrypted files S = {(2, E (D 2 )), (4, E (D 4 ))} is received from the server 300A is shown.

この場合、ファイル検証部220Aは、素数p=prime(H(2,E(D)))およびp=prime(H(4,E(D)))を計算した後、ファイルの蓄積値A=πp2p4mod Nを計算し、計算したファイルの蓄積値Aが保持している全ファイルの蓄積値Accと等しいか否か判断し、等しければ、取得した暗号ファイルの集合E(D)、E(D)を復号して、所望のファイルの集合D、Dを得、等しくなければ、reject(拒否)する。 In this case, the file verification unit 220A calculates the prime numbers p 2 = prime (H (2, E (D 2 ))) and p 4 = prime (H (4, E (D 4 ))), and then The accumulated value A = π p2p4 mod N is calculated, and it is determined whether or not the calculated accumulated value A of the file is equal to the accumulated value Acc of all the held files. If they are equal, the set E (D 2 ), E (D 4 ) is decrypted to obtain a desired set of files D 2 , D 4 , and if they are not equal, reject (reject).

図28を参照して、本発明の第2の実施例に係る検索システム100Aの更新フェーズについて説明する。図28は、本発明の第2の実施例に係る検索システム100Aの更新フェーズのブロック図である。   With reference to FIG. 28, the update phase of the search system 100A according to the second embodiment of the present invention will be described. FIG. 28 is a block diagram of the update phase of the search system 100A according to the second embodiment of the present invention.

図28に示されるように、クライアント(ユーザ端末)200Aは、第1及び第2の信号線(伝送線)222A、224Aと、Acc更新部226Aと、を更に有する。   As illustrated in FIG. 28, the client (user terminal) 200A further includes first and second signal lines (transmission lines) 222A and 224A, and an Acc updating unit 226A.

本例では、ファイル番号jを持つ現暗号ファイルE(D)を、新暗号ファイルE(D’)に更新するか又は削除する場合を示している。すなわち、本例では、ファイル番号jを持つ暗号ファイルが、更新(又は削除)すべき暗号ファイルであり、現暗号ファイルE(D)が更新前の暗号ファイルである。 In this example, the current encryption file E (D j ) having the file number j is updated to a new encryption file E (D j ′) or deleted. That is, in this example, the encryption file having the file number j is an encryption file to be updated (or deleted), and the current encryption file E (D j ) is the encryption file before being updated.

この場合、クライアント200Aは、新暗号ファイルE(D’)又は「削除」を示すデータを第1の信号線(伝送線)222Aを介してサーバ300Aへ送信すると共に、ファイル番号jを第2の信号線(伝送線)224Aを介してサーバ300Aへ送信する。サーバ300Aは、その送られてきた新暗号ファイルE(D’)又は「削除」を示すデータをそのファイル番号jと共に記憶領域302Aに保管する。 In this case, the client 200A transmits the new encrypted file E (D j ′) or data indicating “deletion” to the server 300A via the first signal line (transmission line) 222A, and sets the file number j to the second Is transmitted to the server 300A via the signal line (transmission line) 224A. The server 300A stores the sent new encrypted file E (D j ′) or data indicating “deletion” together with the file number j in the storage area 302A.

したがって、第1及び第2の信号線(伝送線)222A、224Aの組み合わせは、更新(削除)すべき暗号ファイルをそのファイル番号jと共にサーバ300Aへ送って更新(削除)する更新手段として働く。   Therefore, the combination of the first and second signal lines (transmission lines) 222A and 224A serves as an updating unit that sends the encrypted file to be updated (deleted) together with the file number j to the server 300A and updates (deletes) it.

尚、新暗号ファイルE(D’)は、図15に示すファイル暗号化部210Aを使用して、新ファイルD’を暗号化することによって生成してよい。 The new encryption file E (D j ′) may be generated by encrypting the new file D j ′ using the file encryption unit 210A shown in FIG.

サーバ300Aにおいて、第2の信号線(伝送線)224Aを介してファイル番号jが渡されると、暗号検索部304Aは、記憶領域302Aに既に格納されている現暗号ファイル(更新前の暗号ファイル)E(D)を検索して、そのファイル番号jが付加された現暗号ファイル(j、E(D))をクライアント200Aへ返す。 In the server 300A, when the file number j is passed through the second signal line (transmission line) 224A, the cipher search unit 304A causes the current cipher file (the cipher file before update) already stored in the storage area 302A. E (D j ) is searched, and the current encrypted file (j, E (D j )) to which the file number j is added is returned to the client 200A.

図29を参照して、クライアント200AのAcc更新部226Aの動作について説明する。   With reference to FIG. 29, the operation of the Acc updating unit 226A of the client 200A will be described.

先ず、Acc更新部226Aは、ファイル番号j、現暗号ファイルE(D)、新暗号ファイルE(D’)(又は「削除」を示すデータ)を読み込み、Acc保持部218Aから全暗号ファイルの蓄積値Accを読み込み、鍵保持部204Aから秘密情報p,qと公開情報N,g,hを読み込む(ステップS602A)。 First, the Acc updating unit 226A reads the file number j, the current encrypted file E (D j ), the new encrypted file E (D j ′) (or data indicating “deleted”), and all the encrypted files from the Acc holding unit 218A. It reads the accumulated values Acc, reads secret information p from the key storage unit 204A, q and public information N, g, and h a (step S602a).

引き続いて、Acc更新部226Aは、下記の数式に従って、x、x’、およびdを計算する(ステップS604A)。
x=prime(H(j,E(D)))
x’=prime(H(j,E(D’)))
d=x’/x mod (p−1)(q−1)
Subsequently, the Acc updating unit 226A calculates x, x ′, and d according to the following mathematical formula (step S604A).
x = prime (H (j, E (D j )))
x ′ = prime (H (j, E (D j ′)))
d = x ′ / x mod (p−1) (q−1)

次に、Acc更新部226Aは、下記の数式に従って、新しい全暗号ファイルの蓄積値Acc’を計算する(ステップS606A)。
Acc’=Accmod N
Next, the Acc updating unit 226A calculates the accumulated value Acc ′ of all new encrypted files according to the following mathematical formula (step S606A).
Acc '= Acc d mod N

最後に、Acc更新部226Aは、計算した新しい全暗号ファイルの蓄積値Acc’をAcc保持部218Aに保持することにより、古い全暗号ファイルの蓄積値Accを新しい全暗号ファイルの蓄積値Acc’に更新する(ステップS608A)。   Finally, the Acc update unit 226A holds the calculated accumulated value Acc ′ of all new encrypted files in the Acc holding unit 218A, thereby changing the accumulated value Acc of all old encrypted files to the accumulated value Acc ′ of all new encrypted files. Update (step S608A).

このように、暗号ファイルを更新(又は削除)しようとする場合、クライアント200Aは、更新すべき暗号ファイル(又は「削除」を示すデータ)をそのファイル番号と共にサーバ300Aへ送出し、全暗号ファイルの蓄積値を更新するだけで良いので、暗号ファイルの更新(削除)を効率的に行なうことができる。   In this way, when updating (or deleting) an encrypted file, the client 200A sends the encrypted file to be updated (or data indicating “deleted”) to the server 300A together with the file number, and all of the encrypted files are transmitted. Since it is only necessary to update the accumulated value, the encryption file can be efficiently updated (deleted).

次に、本第2の実施例の効果について説明する。   Next, the effect of the second embodiment will be described.

第2の実施例の検索システム100Aの第1の効果は、サーバの不正(ファイルの削除、追加、改ざん、すり替え)を検出ことができるだけでなく、ファイルの更新(削除を含む)を効率的に行うことができることである。その理由は、クライアント(ユーザ端末)200Aが各キーワードWと当該キーワードWを含む全てのファイルの集合を暗号化して得られる暗号ファイル{E(Dj1)、E(Dj2)、…}のファイル番号の集合(j1、j2、…)とを一組(生成用組)として、それに対する索引検証情報tagを生成し、生成した索引検証情報tagをサーバ300Aに保管しているからである。 The first effect of the search system 100A of the second embodiment is not only capable of detecting server fraud (deletion, addition, falsification, replacement) of files, but also efficiently updating files (including deletion). Is that it can be done. The reason is that the encrypted file {E (D j1 ), E (D j2 ),...} Obtained by the client (user terminal) 200A encrypting each keyword W i and a set of all files including the keyword W i . The set of file numbers (j1, j2,...) As a set (set for generation), index verification information tag i for the set is generated, and the generated index verification information tag i is stored in the server 300A. It is.

第2の実施例の検索システム100Aの第2の効果は、リプレイ・アタックを検出できることである。その理由は、RSA accumulatorを利用してファイルの蓄積値Accをチェックしているからである。   A second effect of the search system 100A of the second embodiment is that a replay attack can be detected. This is because the accumulated value Acc of the file is checked using the RSA accumulator.

尚、リプレイ・アタックを検出しない場合には、クライアント200Aから、ファイル蓄積値計算部216A、Acc保持部218A、ファイル検証部220A、およびAcc更新部226Aを省略し、サーバ300Aから鍵保持部306Aおよびファイル検証情報生成部308Aを省略することができる。   If the replay attack is not detected, the file accumulation value calculation unit 216A, the Acc holding unit 218A, the file verification unit 220A, and the Acc updating unit 226A are omitted from the client 200A, and the key holding unit 306A and the server 300A are omitted. The file verification information generation unit 308A can be omitted.

また、上記本発明の第2の実施例に係る検索システム100Aは、検索方法として実現され得る。さらに、上記本発明の第2の実施例に係る検索システム100Aのうちのクライアント(ユーザ端末)200Aが実施する部分は、当該クライアント(ユーザ端末)200Aに含まれるメモリ(ROM等)に格納された検索プログラムによって実行されるようにしてもよい。   The search system 100A according to the second embodiment of the present invention can be realized as a search method. Further, the part implemented by the client (user terminal) 200A in the search system 100A according to the second embodiment of the present invention is stored in a memory (ROM or the like) included in the client (user terminal) 200A. It may be executed by a search program.

以上、実施形態(実施例)を参照して本発明を説明したが、本発明は上記実施形態(実施例)に限定されるものではない。本発明の構成や詳細には、本発明のスコープ内で当業者が理解し得る様々な変更をすることができる。   As mentioned above, although this invention was demonstrated with reference to embodiment (Example), this invention is not limited to the said embodiment (Example). Various changes that can be understood by those skilled in the art can be made to the configuration and details of the present invention within the scope of the present invention.

上記の実施形態(実施例)の一部又は全部は、以下の付記のようにも記載されうるが、以下には限られない。   Part or all of the above-described embodiments (examples) can be described as in the following supplementary notes, but are not limited thereto.

(付記1) ユーザ端末がサーバに複数のファイルを保管し、前記ユーザ端末がキーワード検索によって前記サーバから所望のファイルの集合を取得すると共に、ファイルの更新をも行う検索システムであって、前記ユーザ端末は、
前記複数のファイルをそれらのファイル番号と共に前記サーバに保管するファイル保管手段と、
キーワードと該キーワードに対応するファイルのファイル番号との対応表である索引を、前記サーバに保管する索引保管手段と、
前記キーワードと該キーワードを含む全てのファイルのファイル番号の集合との生成用組に対して所定の生成アルゴリズムに従って索引検証情報を生成し、該生成した索引検証情報を前記サーバに保管する索引検証情報生成部と、
検索キーワードを前記サーバへ送って、前記サーバから前記検索キーワードを含むファイルおよび当該ファイルのファイル番号の集合と前記検索キーワードに対応する索引検証情報とを取得するファイル取得手段と、
該取得した索引検証情報が、前記検索キーワードと前記取得したファイルのファイル番号の集合との検証用組の索引検証情報であるか否かを所定の検証アルゴリズムによってチェックし、チェックの結果が正しければ承認し、そうでなければ拒否する索引検証部と、
更新すべきファイルをそのファイル番号と共に前記サーバへ送って更新する更新手段と、
を有する検索システム。
(Supplementary note 1) A search system in which a user terminal stores a plurality of files in a server, and the user terminal acquires a set of desired files from the server by keyword search, and also updates a file, the user terminal The terminal
File storage means for storing the plurality of files together with their file numbers in the server;
Index storage means for storing an index, which is a correspondence table of keywords and file numbers of files corresponding to the keywords, in the server;
Index verification information for generating index verification information according to a predetermined generation algorithm for a generation set of the keyword and a set of file numbers of all files including the keyword, and storing the generated index verification information in the server A generator,
A file acquisition means for sending a search keyword to the server, and acquiring a file including the search keyword and a set of file numbers of the file and index verification information corresponding to the search keyword from the server;
Whether the acquired index verification information is index verification information of a verification set of the search keyword and the set of file numbers of the acquired files is checked by a predetermined verification algorithm, and if the check result is correct An index verifier to approve or otherwise reject;
Update means for sending the file to be updated together with its file number to the server for updating;
Search system having

(付記2) 前記更新すべきファイルが削除を示すデータから成る、付記1に記載の検索システム。 (Supplementary note 2) The search system according to supplementary note 1, wherein the file to be updated includes data indicating deletion.

(付記3) 前記ユーザ端末は、
秘密鍵と所定の公開情報とを保持するユーザ鍵保持部と、
前記所定の公開情報と前記複数のファイルとから全ファイルの蓄積値を計算するファイル蓄積値計算部と、
前記全ファイルの蓄積値を保持する蓄積値保持部と、
を更に備え、
前記サーバは、
前記所定の公開情報を保持するサーバ鍵保持部と、
前記所定の公開情報に基づいて、当該サーバに保管された全ファイルの内、前記検索キーワードを含むファイルの集合以外のファイルを使用して、ファイル検証情報を生成して前記ユーザ端末へ送出するファイル検証情報生成部と、
を備え、
前記ユーザ端末は、
前記索引検証部で承認された場合、前記所定の公開情報に基づいて、前記取得したファイルの集合と前記ファイル検証情報とを使用して、ファイルの蓄積値を計算し、該計算したファイルの蓄積値と前記保持した全ファイルの蓄積値とが等しければ、前記取得したファイルの集合を前記所望のファイルの集合として得、そうでなければ拒否するファイル検証部を更に有する、
付記1又は2に記載の検索システム。
(Supplementary Note 3) The user terminal is
A user key holding unit that holds a secret key and predetermined public information;
A file accumulation value calculation unit for calculating accumulation values of all files from the predetermined public information and the plurality of files;
An accumulated value holding unit for holding accumulated values of all the files;
Further comprising
The server
A server key holding unit for holding the predetermined public information;
A file that generates file verification information by using a file other than the set of files including the search keyword among all files stored in the server based on the predetermined public information, and sends the file verification information to the user terminal A verification information generation unit;
With
The user terminal is
When approved by the index verification unit, based on the predetermined public information, using the acquired set of files and the file verification information, calculate a storage value of the file, and store the calculated file A file verification unit that obtains the set of the obtained files as the set of the desired files if the value is equal to the accumulated value of all the held files, and rejects otherwise.
The search system according to appendix 1 or 2.

(付記4) 前記ユーザ端末は、
前記所定の公開情報に基づいて、前記更新すべきファイル、更新前のファイル、そのファイル番号、および前記蓄積値保持部に保持された全ファイルの蓄積値を使用して、新しい全ファイルの蓄積値を計算し、該計算した新しい全ファイルの蓄積値を前記蓄積保持部に保持する蓄積値更新部を更に有する、
付記3に記載の検索システム。
(Supplementary Note 4) The user terminal
Based on the predetermined public information, the file to be updated, the file before update, the file number thereof, and the accumulated value of all the files held in the accumulated value holding unit, was calculated, further comprising a storage value updating unit that holds the accumulated value of the calculated new full file on the storage value holding unit,
The search system according to attachment 3.

(付記5) 前記所定の生成アルゴリズムが署名生成アルゴリズムから成り、
前記所定の検証アルゴリズムが署名検証アルゴリズムから成り、
前記索引検証情報生成部は、デジタル署名の秘密鍵を使って、前記署名生成アルゴリズムに従って、前記索引検証情報として前記生成用組に対するデジタル署名を生成し、
前記索引検証部は、デジタル署名の公開鍵を使って、前記署名検証アルゴリズムに従って、取得したデジタル署名が前記検証用組のデジタル署名であるか否かをチェックする、
付記1乃至4のいずれか1つに記載の検索システム。
(Supplementary Note 5) The predetermined generation algorithm includes a signature generation algorithm,
The predetermined verification algorithm comprises a signature verification algorithm;
The index verification information generation unit generates a digital signature for the generation set as the index verification information according to the signature generation algorithm using a digital signature private key,
The index verification unit checks whether the acquired digital signature is a digital signature of the verification set according to the signature verification algorithm using a public key of the digital signature.
The search system according to any one of supplementary notes 1 to 4.

(付記6) 前記所定の生成アルゴリズムがMAC(Message Authentication Code)生成アルゴリズムから成り、
前記所定の検証アルゴリズムがMAC検証アルゴリズムから成り、
前記索引検証情報生成部は、MACの秘密鍵を使って、前記MAC生成アルゴリズムに従って、前記索引検証情報として前記生成用組に対する認証子を生成し、
前記索引検証部は、前記MACの秘密鍵を使って、前記MAC検証アルゴリズムに従って、取得した認証子が前記検証用組の認証子であるか否かをチェックする、
付記1乃至4のいずれか1つに記載の検索システム。
(Supplementary Note 6) The predetermined generation algorithm includes a MAC (Message Authentication Code) generation algorithm,
The predetermined verification algorithm comprises a MAC verification algorithm;
The index verification information generation unit generates an authenticator for the generation set as the index verification information according to the MAC generation algorithm using a MAC secret key,
The index verification unit checks whether the acquired authenticator is the authenticator of the verification set according to the MAC verification algorithm, using the MAC secret key.
The search system according to any one of supplementary notes 1 to 4.

(付記7) ユーザ端末がサーバに複数のファイルを保管し、前記ユーザ端末がキーワード検索によって前記サーバから所望のファイルの集合を取得すると共に、ファイルの更新をも行う検索方法であって、
前記ユーザ端末が、前記複数のファイルをそれらのファイル番号と共に前記サーバに保管するステップと、
前記ユーザ端末が、キーワードと該キーワードに対応するファイルのファイル番号との対応表である索引を、前記サーバに保管するステップと、
前記ユーザ端末が、前記キーワードと該キーワードを含む全てのファイルのファイル番号の集合との生成用組に対して所定の生成アルゴリズムに従って索引検証情報を生成するステップと、
前記ユーザ端末が、前記生成した索引検証情報を前記サーバに保管するステップと、
前記ユーザ端末が、検索キーワードを前記サーバへ送って、前記サーバから前記検索キーワードを含むファイルおよび当該ファイルのファイル番号の集合と前記検索キーワードに対応する索引検証情報とを取得するステップと、
前記ユーザ端末が、前記取得した索引検証情報が、前記検索キーワードと前記取得したファイルのファイル番号の集合との検証用組の索引検証情報であるか否かを所定の検証アルゴリズムによってチェックするステップと、
前記ユーザ端末が、チェックの結果が正しければ承認し、そうでなければ拒否するステップと、
前記ユーザ端末が、更新すべきファイルをそのファイル番号と共に前記サーバへ送って更新するステップと、
を含む検索方法。
(Supplementary note 7) A search method in which a user terminal stores a plurality of files in a server, the user terminal acquires a set of desired files from the server by keyword search, and also updates the file,
The user terminal storing the plurality of files together with their file numbers in the server;
The user terminal storing an index, which is a correspondence table of keywords and file numbers of files corresponding to the keywords, in the server;
The user terminal generating index verification information according to a predetermined generation algorithm for a generation set of the keyword and a set of file numbers of all files including the keyword;
The user terminal storing the generated index verification information in the server;
The user terminal sends a search keyword to the server, and acquires from the server a file including the search keyword and a set of file numbers of the file and index verification information corresponding to the search keyword;
The user terminal checks whether or not the acquired index verification information is index verification information of a verification set of the search keyword and a set of file numbers of the acquired files by a predetermined verification algorithm; ,
The user terminal approves if the result of the check is correct, and rejects otherwise;
The user terminal sends a file to be updated to the server together with the file number for updating;
Search method including

(付記8) 前記更新すべきファイルが削除を示すデータから成る、付記7に記載の検索方法。 (Supplementary note 8) The search method according to supplementary note 7, wherein the file to be updated includes data indicating deletion.

(付記9) サーバに複数のファイルを保管し、キーワード検索によって前記サーバから所望のファイルの集合を取得すると共に、ファイルの更新をも行う処理を、コンピュータであるユーザ端末に実行させる検索プログラムであって、前記コンピュータに、
前記複数のファイルをそれらのファイル番号と共に前記サーバに保管する手順と、
キーワードと該キーワードに対応するファイルのファイル番号との対応表である索引を、前記サーバに保管する手順と、
前記キーワードと該キーワードを含む全てのファイルのファイル番号の集合との生成用組に対して所定の生成アルゴリズムに従って索引検証情報を生成する手順と、
前記生成した索引検証情報を前記サーバに保管する手順と、
検索キーワードを前記サーバへ送って、前記サーバから前記検索キーワードを含むファイルおよび当該ファイルのファイル番号の集合と前記検索キーワードに対応する索引検証情報とを取得する手順と、
前記取得した索引検証情報が、前記検索キーワードと前記取得したファイルのファイル番号の集合との検証用組の索引検証情報であるか否かを所定の検証アルゴリズムによってチェックする手順と、
チェックの結果が正しければ承認し、そうでなければ拒否する手順と、
更新すべきファイルをそのファイル番号と共に前記サーバへ送って更新する手順と、
を実行させるための検索プログラム。
(Supplementary Note 9) A search program for storing a plurality of files on a server, obtaining a desired set of files from the server by keyword search, and causing a user terminal, which is a computer, to execute processing for updating the files. And the computer
Storing the plurality of files together with their file numbers on the server;
A procedure for storing an index, which is a correspondence table of keywords and file numbers of files corresponding to the keywords, in the server;
Generating index verification information according to a predetermined generation algorithm for a generation set of the keyword and a set of file numbers of all files including the keyword;
A procedure for storing the generated index verification information in the server;
Sending a search keyword to the server, and obtaining from the server a file containing the search keyword and a set of file numbers of the file and index verification information corresponding to the search keyword;
A procedure for checking whether or not the acquired index verification information is index verification information of a verification set of the search keyword and a set of file numbers of the acquired files by a predetermined verification algorithm;
Approve if the result of the check is correct, otherwise reject it,
Sending the file to be updated together with its file number to the server for updating;
Search program to execute.

(付記10) 前記更新すべきファイルが削除を示すデータから成る、付記9に記載の検索プログラム。 (Supplementary note 10) The search program according to supplementary note 9, wherein the file to be updated includes data indicating deletion.

(付記11) ユーザ端末がサーバに複数の暗号ファイルを保管し、前記ユーザ端末がキーワード検索によって前記サーバから所望のファイルの集合を取得すると共に、暗号ファイルの更新をも行う検索システムであって、前記ユーザ端末は、
暗号化の秘密鍵を使って複数のファイルをそれぞれ暗号化し、前記複数の暗号ファイルをそれらの暗号ファイルのファイル番号と共に前記サーバに保管する暗号ファイル保管手段と、
キーワードと該キーワードに対応するファイルのファイル番号との対応表である索引を、所定の秘密鍵を使って暗号化し、前記キーワードの暗号文と該キーワードを含むファイルのファイル番号の暗号文とから成る暗号化索引を前記サーバに保管する暗号化索引保管手段と、
前記キーワードと該キーワードを含む全てのファイルのファイル番号の集合との生成用組に対して所定の生成アルゴリズムに従って索引検証情報を生成し、該生成した索引検証情報を前記サーバに保管する索引検証情報生成部と、
前記所定の秘密鍵を使って検索キーワードを暗号化して得られる暗号検索キーワードを前記サーバへ送って、前記サーバから前記暗号検索キーワードを含む暗号ファイルおよび当該暗号ファイルのファイル番号の集合と前記検索キーワードに対応する索引検証情報とを取得する暗号ファイル取得手段と、
該取得した索引検証情報が、前記検索キーワードと前記取得した暗号ファイルのファイル番号の集合との検証用組の索引検証情報であるか否かを所定の検証アルゴリズムによってチェックし、チェックの結果が正しければ承認し、そうでなければ拒否する索引検証部と、
更新すべきファイルを前記暗号化の秘密鍵を使って暗号化して得られる、更新すべき暗号ファイルをそのファイル番号と共に前記サーバに送って更新する更新手段と、
を有する検索システム。
(Supplementary note 11) A search system in which a user terminal stores a plurality of encrypted files in a server, and the user terminal acquires a set of desired files from the server by keyword search, and also updates an encrypted file, The user terminal is
Encrypted file storage means for encrypting each of a plurality of files using an encryption private key, and storing the plurality of encrypted files together with file numbers of the encrypted files on the server;
An index, which is a correspondence table between a keyword and a file number of a file corresponding to the keyword, is encrypted using a predetermined secret key, and includes a ciphertext of the keyword and a ciphertext of the file number of the file including the keyword Encrypted index storage means for storing an encrypted index in the server;
Index verification information for generating index verification information according to a predetermined generation algorithm for a generation set of the keyword and a set of file numbers of all files including the keyword, and storing the generated index verification information in the server A generator,
An encryption search keyword obtained by encrypting a search keyword using the predetermined secret key is sent to the server, and an encryption file including the encryption search keyword from the server, a set of file numbers of the encryption file, and the search keyword Encrypted file acquisition means for acquiring index verification information corresponding to
Whether or not the acquired index verification information is index verification information of a verification set of the search keyword and the set of file numbers of the acquired encrypted files is checked by a predetermined verification algorithm, and the check result is correct. An index validation unit that approves and rejects otherwise,
Updating means for encrypting a file to be updated using the encryption private key and sending the encrypted file to be updated together with the file number to the server for updating;
Search system having

(付記12) 前記更新すべき暗号ファイルが削除を示すデータから成る、付記11に記載の検索システム。 (Supplementary note 12) The search system according to supplementary note 11, wherein the encrypted file to be updated is composed of data indicating deletion.

(付記13) 前記ユーザ端末は、
前記暗号化の秘密鍵と前記所定の秘密鍵と所定の公開情報とを保持するユーザ鍵保持部と、
前記所定の公開情報と前記複数の暗号ファイルとから全暗号ファイルの蓄積値を計算するファイル蓄積値計算部と、
前記全暗号ファイルの蓄積値を保持する蓄積値保持部と、
を更に備え、
前記サーバは、
前記所定の公開情報を保持するサーバ鍵保持部と、
前記所定の公開情報に基づいて、当該サーバに保管された全暗号ファイルの内、前記暗号検索キーワードを含む暗号ファイルの集合以外の暗号ファイルを使用して、ファイル検証情報を生成して前記ユーザ端末へ送出するファイル検証情報生成部と、
を備え、
前記ユーザ端末は、
前記索引検証部で承認された場合、前記所定の公開情報に基づいて、前記取得した暗号ファイルの集合と前記ファイル検証情報とを使用して、暗号ファイルの蓄積値を計算し、該計算した暗号ファイルの蓄積値と前記保持した全暗号ファイルの蓄積値とが等しければ、前記取得した暗号ファイルの集合を復号して前記所望のファイルの集合を得、そうでなければ拒否するファイル検証部を更に有する、
付記11又は12に記載の検索システム。
(Supplementary note 13) The user terminal
A user key holding unit that holds the encryption secret key, the predetermined secret key, and predetermined public information;
A file accumulation value calculation unit for calculating accumulation values of all encrypted files from the predetermined public information and the plurality of encrypted files;
An accumulated value holding unit for holding accumulated values of all the encrypted files;
Further comprising
The server
A server key holding unit for holding the predetermined public information;
Based on the predetermined public information, out of all the encrypted files stored in the server, an encrypted file other than the set of encrypted files including the encrypted search keyword is used to generate file verification information to generate the user terminal A file verification information generator to be sent to
With
The user terminal is
When approved by the index verification unit, based on the predetermined public information, using the acquired set of encrypted files and the file verification information, calculate an accumulated value of the encrypted file, and calculate the calculated encryption A file verification unit that decrypts the acquired set of encrypted files to obtain the desired set of files if the stored value of the files is equal to the stored value of all the stored encrypted files; Have
The search system according to appendix 11 or 12.

(付記14) 前記ユーザ端末は、
前記所定の公開情報に基づいて、前記更新すべき暗号ファイル、更新前の暗号ファイル、そのファイル番号、および前記蓄積値保持部に保持された全暗号ファイルの蓄積値を使用して、新しい全暗号ファイルの蓄積値を計算し、該計算した新しい全暗号ファイルの蓄積値を前記蓄積保持部に保持する蓄積値更新部を更に有する、
付記13に記載の検索システム。
(Supplementary Note 14) The user terminal
Based on the predetermined public information, a new all-encryption code is obtained by using the encrypted file to be updated, the encrypted file before the update, the file number thereof, and the accumulated value of all the encrypted files held in the accumulated value holding unit. It calculates the accumulation value of the file, further comprising a storage value updating unit that holds the accumulated value of the new total cipher files the computed the accumulation value holding unit,
The search system according to attachment 13.

(付記15) 前記所定の生成アルゴリズムが署名生成アルゴリズムから成り、
前記所定の検証アルゴリズムが署名検証アルゴリズムから成り、
前記索引検証情報生成部は、デジタル署名の秘密鍵を使って、前記署名生成アルゴリズムに従って、前記索引検証情報として前記生成用組に対するデジタル署名を生成し、
前記索引検証部は、デジタル署名の公開鍵を使って、前記署名検証アルゴリズムに従って、取得したデジタル署名が前記検証用組のデジタル署名であるか否かをチェックする、
付記11乃至14のいずれか1つに記載の検索システム。
(Supplementary Note 15) The predetermined generation algorithm includes a signature generation algorithm,
The predetermined verification algorithm comprises a signature verification algorithm;
The index verification information generation unit generates a digital signature for the generation set as the index verification information according to the signature generation algorithm using a digital signature private key,
The index verification unit checks whether the acquired digital signature is a digital signature of the verification set according to the signature verification algorithm using a public key of the digital signature.
The search system according to any one of appendices 11 to 14.

(付記16) 前記所定の生成アルゴリズムがMAC(Message Authentication Code)生成アルゴリズムから成り、
前記所定の検証アルゴリズムがMAC検証アルゴリズムから成り、
前記索引検証情報生成部は、MACの秘密鍵を使って、前記MAC生成アルゴリズムに従って、前記索引検証情報として前記生成用組に対する認証子を生成し、
前記索引検証部は、前記MACの秘密鍵を使って、前記MAC検証アルゴリズムに従って、取得した認証子が前記検証用組の認証子であるか否かをチェックする、
付記11乃至14のいずれか1つに記載の検索システム。
(Supplementary Note 16) The predetermined generation algorithm includes a MAC (Message Authentication Code) generation algorithm,
The predetermined verification algorithm comprises a MAC verification algorithm;
The index verification information generation unit generates an authenticator for the generation set as the index verification information according to the MAC generation algorithm using a MAC secret key,
The index verification unit checks whether the acquired authenticator is the authenticator of the verification set according to the MAC verification algorithm, using the MAC secret key.
The search system according to any one of appendices 11 to 14.

(付記17) ユーザ端末がサーバに複数の暗号ファイルを保管し、前記ユーザ端末がキーワード検索によって前記サーバから所望のファイルの集合を取得すると共に、暗号ファイルの更新をも行う検索方法であって、
前記ユーザ端末が、暗号化の秘密鍵を使って複数のファイルをそれぞれ暗号化し、前記複数の暗号ファイルをそれらの暗号ファイルのファイル番号と共に前記サーバに保管するステップと、
前記ユーザ端末が、キーワードと該キーワードに対応するファイルのファイル番号との対応表である索引を、所定の秘密鍵を使って暗号化し、前記キーワードの暗号文と該キーワードを含むファイルのファイル番号の暗号文とから成る暗号化索引を前記サーバに保管するステップと、
前記ユーザ端末が、前記キーワードと該キーワードを含む全てのファイルのファイル番号の集合との生成用組に対して所定の生成アルゴリズムに従って索引検証情報を生成するステップと、
前記ユーザ端末が、前記生成した索引検証情報を前記サーバに保管するステップと、
前記ユーザ端末が、前記所定の秘密鍵を使って検索キーワードを暗号化して得られる暗号検索キーワードを前記サーバへ送って、前記サーバから前記暗号検索キーワードを含む暗号ファイルおよび当該暗号ファイルのファイル番号の集合と前記検索キーワードに対応する索引検証情報とを取得するステップと、
前記ユーザ端末が、前記取得した索引検証情報が、前記検索キーワードと前記取得した暗号ファイルのファイル番号の集合との検証用組の索引検証情報であるか否かを所定の検証アルゴリズムによってチェックするステップと、
前記ユーザ端末が、チェックの結果が正しければ承認し、そうでなければ拒否するステップと、
前記ユーザ端末が、更新すべきファイルを前記暗号化の秘密鍵を使って暗号化して得られる、更新すべき暗号ファイルをそのファイル番号と共に前記サーバに送って更新するステップと、
を含む検索方法。
(Supplementary note 17) A search method in which a user terminal stores a plurality of encrypted files in a server, and the user terminal acquires a set of desired files from the server by keyword search, and also updates an encrypted file,
The user terminal encrypts each of a plurality of files using an encryption private key, and stores the plurality of encrypted files together with file numbers of the encrypted files on the server;
The user terminal encrypts an index, which is a correspondence table between a keyword and a file number of a file corresponding to the keyword, using a predetermined secret key, and the ciphertext of the keyword and the file number of the file including the keyword Storing an encrypted index comprising ciphertext on the server;
The user terminal generating index verification information according to a predetermined generation algorithm for a generation set of the keyword and a set of file numbers of all files including the keyword;
The user terminal storing the generated index verification information in the server;
The user terminal sends an encrypted search keyword obtained by encrypting a search keyword using the predetermined secret key to the server, and an encrypted file including the encrypted search keyword and a file number of the encrypted file are transmitted from the server. Obtaining a set and index verification information corresponding to the search keyword;
A step in which the user terminal checks whether or not the acquired index verification information is index verification information of a verification set of the search keyword and a set of file numbers of the acquired encrypted files by a predetermined verification algorithm; When,
The user terminal approves if the result of the check is correct, and rejects otherwise;
The user terminal sends the encrypted file to be updated to the server together with the file number obtained by encrypting the file to be updated using the encryption secret key;
Search method including

(付記18) 前記更新すべき暗号ファイルが削除を示すデータから成る、付記17に記載の検索方法。 (Supplementary note 18) The search method according to supplementary note 17, wherein the encrypted file to be updated consists of data indicating deletion.

(付記19) サーバに複数の暗号ファイルを保管し、キーワード検索によって前記サーバから所望のファイルの集合を取得すると共に、暗号ファイルの更新をも行う処理を、コンピュータであるユーザ端末に実行させる検索プログラムであって、前記コンピュータに、
暗号化の秘密鍵を使って複数のファイルをそれぞれ暗号化し、前記複数の暗号ファイルをそれらの暗号ファイルのファイル番号と共に前記サーバに保管する手順と、
キーワードと該キーワードに対応するファイルのファイル番号との対応表である索引を、所定の秘密鍵を使って暗号化し、前記キーワードの暗号文と該キーワードを含むファイルのファイル番号の暗号文とから成る暗号化索引を前記サーバに保管する手順と、
前記キーワードと該キーワードを含む全てのファイルのファイル番号の集合との生成用組に対して所定の生成アルゴリズムに従って索引検証情報を生成する手順と、
前記生成した索引検証情報を前記サーバに保管する手順と、
前記所定の秘密鍵を使って検索キーワードを暗号化して得られる暗号検索キーワードを前記サーバへ送って、前記サーバから前記暗号検索キーワードを含む暗号ファイルおよび該暗号ファイルのファイル番号の集合と前記検索キーワードに対応する索引検証情報とを取得する手順と、
前記取得した索引検証情報が、前記検索キーワードと前記取得した暗号ファイルのファイル番号の集合との検証用組の索引検証情報であるか否かを所定の検証アルゴリズムによってチェックする手順と、
チェックの結果が正しければ承認し、そうでなければ拒否する手順と、
更新すべきファイルを前記暗号化の秘密鍵を使って暗号化して得られる、更新すべき暗号ファイルをそのファイル番号と共に前記サーバに送って更新する手順と、
を実行させるための検索プログラム。
(Supplementary Note 19) A search program that stores a plurality of encrypted files in a server, acquires a desired set of files from the server by keyword search, and causes a user terminal, which is a computer, to execute processing for updating the encrypted files And the computer
Encrypting each of a plurality of files using an encryption private key, and storing the plurality of encrypted files together with the file numbers of the encrypted files on the server;
An index, which is a correspondence table between a keyword and a file number of a file corresponding to the keyword, is encrypted using a predetermined secret key, and includes a ciphertext of the keyword and a ciphertext of the file number of the file including the keyword Storing an encrypted index on the server;
Generating index verification information according to a predetermined generation algorithm for a generation set of the keyword and a set of file numbers of all files including the keyword;
A procedure for storing the generated index verification information in the server;
An encrypted search keyword obtained by encrypting a search keyword using the predetermined secret key is sent to the server, and an encrypted file including the encrypted search keyword from the server, a set of file numbers of the encrypted file, and the search keyword Obtaining index verification information corresponding to
A procedure for checking whether or not the acquired index verification information is index verification information of a verification set of the search keyword and a set of file numbers of the acquired encrypted files by a predetermined verification algorithm;
Approve if the result of the check is correct, otherwise reject it,
A procedure for transmitting the encrypted file to be updated together with the file number obtained by encrypting the file to be updated using the encryption private key to the server and updating the encrypted file;
Search program to execute.

(付記20) 前記更新すべき暗号ファイルが削除を示すデータから成る、付記19に記載の検索プログラム。 (Supplementary note 20) The search program according to supplementary note 19, wherein the encrypted file to be updated comprises data indicating deletion.

本発明は、キーワード検索におけるサーバの不正を検出し、ファイルを更新(削除を含む)する方式に利用可能である。   The present invention can be used for a method of detecting a server fraud in keyword search and updating (including deleting) a file.

100、100A 検索システム
200、200A クライアント(ユーザ端末)
202、202A 鍵生成部
204、204A 鍵保持部
206、206A 索引検証情報生成部
208、208A 索引検証部
210 第1の信号線(ファイル保管手段)
210A ファイル暗号化部(暗号ファイル保管手段)
212 第2の信号線(索引保管手段)
212A 索引暗号化部(暗号索引保管手段)
214 第3の信号線(ファイル取得手段)
214A キーワード暗号化部(暗号ファイル取得手段)
216、216A ファイル蓄積値計算部
218、218A Acc保持部
220、220A ファイル検証部
222、222A 信号線
224、224A 信号線
226、226A Acc更新部
300、300A サーバ
302、302A 記憶領域
304 検索部
304A 暗号検索部
306、306A 鍵保持部
308、308A ファイル検証情報生成部
100, 100A Search system 200, 200A Client (user terminal)
202, 202A Key generation unit 204, 204A Key holding unit 206, 206A Index verification information generation unit 208, 208A Index verification unit 210 First signal line (file storage means)
210A File encryption unit (encrypted file storage means)
212 Second signal line (index storage means)
212A Index encryption unit (cryptographic index storage means)
214 Third signal line (file acquisition means)
214A Keyword encryption unit (encrypted file acquisition means)
216, 216A File accumulated value calculation unit 218, 218A Acc holding unit 220, 220A File verification unit 222, 222A Signal line 224, 224A Signal line 226, 226A Acc update unit 300, 300A Server 302, 302A Storage area 304 Search unit 304A Encryption Search unit 306, 306A Key holding unit 308, 308A File verification information generation unit

Claims (10)

ユーザ端末がサーバに複数のファイルを保管し、前記ユーザ端末がキーワード検索によって前記サーバから所望のファイルの集合を取得すると共に、ファイルの更新をも行う検索システムであって、前記ユーザ端末は、
前記複数のファイルをそれらのファイル番号と共に前記サーバに保管するファイル保管手段と、
キーワードと該キーワードに対応するファイルのファイル番号との対応表である索引を、前記サーバに保管する索引保管手段と、
前記キーワードと該キーワードを含む全てのファイルのファイル番号の集合との生成用組に対して所定の生成アルゴリズムに従って索引検証情報を生成し、該生成した索引検証情報を前記サーバに保管する索引検証情報生成部と、
検索キーワードを前記サーバへ送って、前記サーバから前記検索キーワードを含むファイルおよび当該ファイルのファイル番号の集合と前記検索キーワードに対応する索引検証情報とを取得するファイル取得手段と、
該取得した索引検証情報が、前記検索キーワードと前記取得したファイルのファイル番号の集合との検証用組の索引検証情報であるか否かを所定の検証アルゴリズムによってチェックし、チェックの結果が正しければ承認し、そうでなければ拒否する索引検証部と、
更新すべきファイルをそのファイル番号と共に前記サーバへ送って更新する更新手段と、
を有する検索システム。
A user terminal stores a plurality of files in a server, and the user terminal acquires a set of desired files from the server by keyword search, and also updates a file.
File storage means for storing the plurality of files together with their file numbers in the server;
Index storage means for storing an index, which is a correspondence table of keywords and file numbers of files corresponding to the keywords, in the server;
Index verification information for generating index verification information according to a predetermined generation algorithm for a generation set of the keyword and a set of file numbers of all files including the keyword, and storing the generated index verification information in the server A generator,
A file acquisition means for sending a search keyword to the server, and acquiring a file including the search keyword and a set of file numbers of the file and index verification information corresponding to the search keyword from the server;
Whether the acquired index verification information is index verification information of a verification set of the search keyword and the set of file numbers of the acquired files is checked by a predetermined verification algorithm, and if the check result is correct An index verifier to approve or otherwise reject;
Update means for sending the file to be updated together with its file number to the server for updating;
Search system having
前記ユーザ端末は、
秘密鍵と所定の公開情報とを保持するユーザ鍵保持部と、
前記所定の公開情報と前記複数のファイルとから全ファイルの蓄積値を計算するファイル蓄積値計算部と、
前記全ファイルの蓄積値を保持する蓄積値保持部と、
を更に備え、
前記サーバは、
前記所定の公開情報を保持するサーバ鍵保持部と、
前記所定の公開情報に基づいて、当該サーバに保管された全ファイルの内、前記検索キーワードを含むファイルの集合以外のファイルを使用して、ファイル検証情報を生成して前記ユーザ端末へ送出するファイル検証情報生成部と、
を備え、
前記ユーザ端末は、
前記索引検証部で承認された場合、前記所定の公開情報に基づいて、前記取得したファイルの集合と前記ファイル検証情報とを使用して、ファイルの蓄積値を計算し、該計算したファイルの蓄積値と前記保持した全ファイルの蓄積値とが等しければ、前記取得したファイルの集合を前記所望のファイルの集合として得、そうでなければ拒否するファイル検証部を更に有する、
請求項1に記載の検索システム。
The user terminal is
A user key holding unit that holds a secret key and predetermined public information;
A file accumulation value calculation unit for calculating accumulation values of all files from the predetermined public information and the plurality of files;
An accumulated value holding unit for holding accumulated values of all the files;
Further comprising
The server
A server key holding unit for holding the predetermined public information;
A file that generates file verification information by using a file other than the set of files including the search keyword among all files stored in the server based on the predetermined public information, and sends the file verification information to the user terminal A verification information generation unit;
With
The user terminal is
When approved by the index verification unit, based on the predetermined public information, using the acquired set of files and the file verification information, calculate a storage value of the file, and store the calculated file A file verification unit that obtains the set of the obtained files as the set of the desired files if the value is equal to the accumulated value of all the held files, and rejects otherwise.
The search system according to claim 1.
前記ユーザ端末は、
前記所定の公開情報に基づいて、前記更新すべきファイル、更新前のファイル、そのファイル番号、および前記蓄積値保持部に保持された全ファイルの蓄積値を使用して、新しい全ファイルの蓄積値を計算し、該計算した新しい全ファイルの蓄積値を前記蓄積保持部に保持する蓄積値更新部を更に有する、
請求項2に記載の検索システム。
The user terminal is
Based on the predetermined public information, the file to be updated, the file before update, the file number thereof, and the accumulated value of all the files held in the accumulated value holding unit, was calculated, further comprising a storage value updating unit that holds the accumulated value of the calculated new full file on the storage value holding unit,
The search system according to claim 2.
ユーザ端末がサーバに複数のファイルを保管し、前記ユーザ端末がキーワード検索によって前記サーバから所望のファイルの集合を取得すると共に、ファイルの更新をも行う検索方法であって、
前記ユーザ端末が、前記複数のファイルをそれらのファイル番号と共に前記サーバに保管するステップと、
前記ユーザ端末が、キーワードと該キーワードに対応するファイルのファイル番号との対応表である索引を、前記サーバに保管するステップと、
前記ユーザ端末が、前記キーワードと該キーワードを含む全てのファイルのファイル番号の集合との生成用組に対して所定の生成アルゴリズムに従って索引検証情報を生成するステップと、
前記ユーザ端末が、前記生成した索引検証情報を前記サーバに保管するステップと、
前記ユーザ端末が、検索キーワードを前記サーバへ送って、前記サーバから前記検索キーワードを含むファイルおよび当該ファイルのファイル番号の集合と前記検索キーワードに対応する索引検証情報とを取得するステップと、
前記ユーザ端末が、前記取得した索引検証情報が、前記検索キーワードと前記取得したファイルのファイル番号の集合との検証用組の索引検証情報であるか否かを所定の検証アルゴリズムによってチェックするステップと、
前記ユーザ端末が、チェックの結果が正しければ承認し、そうでなければ拒否するステップと、
前記ユーザ端末が、更新すべきファイルをそのファイル番号と共に前記サーバへ送って更新するステップと、
を含む検索方法。
A search method in which a user terminal stores a plurality of files in a server, and the user terminal acquires a desired set of files from the server by keyword search, and also updates a file,
The user terminal storing the plurality of files together with their file numbers in the server;
The user terminal storing an index, which is a correspondence table of keywords and file numbers of files corresponding to the keywords, in the server;
The user terminal generating index verification information according to a predetermined generation algorithm for a generation set of the keyword and a set of file numbers of all files including the keyword;
The user terminal storing the generated index verification information in the server;
The user terminal sends a search keyword to the server, and acquires from the server a file including the search keyword and a set of file numbers of the file and index verification information corresponding to the search keyword;
The user terminal checks whether or not the acquired index verification information is index verification information of a verification set of the search keyword and a set of file numbers of the acquired files by a predetermined verification algorithm; ,
The user terminal approves if the result of the check is correct, and rejects otherwise;
The user terminal sends a file to be updated to the server together with the file number for updating;
Search method including
サーバに複数のファイルを保管し、キーワード検索によって前記サーバから所望のファイルの集合を取得すると共に、ファイルの更新をも行う処理を、コンピュータであるユーザ端末に実行させる検索プログラムであって、前記コンピュータに、
前記複数のファイルをそれらのファイル番号と共に前記サーバに保管する手順と、
キーワードと該キーワードに対応するファイルのファイル番号との対応表である索引を、前記サーバに保管する手順と、
前記キーワードと該キーワードを含む全てのファイルのファイル番号の集合との生成用組に対して所定の生成アルゴリズムに従って索引検証情報を生成する手順と、
前記生成した索引検証情報を前記サーバに保管する手順と、
検索キーワードを前記サーバへ送って、前記サーバから前記検索キーワードを含むファイルおよび当該ファイルのファイル番号の集合と前記検索キーワードに対応する索引検証情報とを取得する手順と、
前記取得した索引検証情報が、前記検索キーワードと前記取得したファイルのファイル番号の集合との検証用組の索引検証情報であるか否かを所定の検証アルゴリズムによってチェックする手順と、
チェックの結果が正しければ承認し、そうでなければ拒否する手順と、
更新すべきファイルをそのファイル番号と共に前記サーバへ送って更新する手順と、
を実行させるための検索プログラム。
A search program for storing a plurality of files in a server, obtaining a set of desired files from the server by keyword search, and causing a user terminal, which is a computer, to execute processing for updating the files, the computer In addition,
Storing the plurality of files together with their file numbers on the server;
A procedure for storing an index, which is a correspondence table of keywords and file numbers of files corresponding to the keywords, in the server;
Generating index verification information according to a predetermined generation algorithm for a generation set of the keyword and a set of file numbers of all files including the keyword;
A procedure for storing the generated index verification information in the server;
Sending a search keyword to the server, and obtaining from the server a file containing the search keyword and a set of file numbers of the file and index verification information corresponding to the search keyword;
A procedure for checking whether or not the acquired index verification information is index verification information of a verification set of the search keyword and a set of file numbers of the acquired files by a predetermined verification algorithm;
Approve if the result of the check is correct, otherwise reject it,
Sending the file to be updated together with its file number to the server for updating;
Search program to execute.
ユーザ端末がサーバに複数の暗号ファイルを保管し、前記ユーザ端末がキーワード検索によって前記サーバから所望のファイルの集合を取得すると共に、暗号ファイルの更新をも行う検索システムであって、前記ユーザ端末は、
暗号化の秘密鍵を使って複数のファイルをそれぞれ暗号化し、前記複数の暗号ファイルをそれらの暗号ファイルのファイル番号と共に前記サーバに保管する暗号ファイル保管手段と、
キーワードと該キーワードに対応するファイルのファイル番号との対応表である索引を、所定の秘密鍵を使って暗号化し、前記キーワードの暗号文と該キーワードを含むファイルのファイル番号の暗号文とから成る暗号化索引を前記サーバに保管する暗号化索引保管手段と、
前記キーワードと該キーワードを含む全てのファイルのファイル番号の集合との生成用組に対して所定の生成アルゴリズムに従って索引検証情報を生成し、該生成した索引検証情報を前記サーバに保管する索引検証情報生成部と、
前記所定の秘密鍵を使って検索キーワードを暗号化して得られる暗号検索キーワードを前記サーバへ送って、前記サーバから前記暗号検索キーワードを含む暗号ファイルおよび当該暗号ファイルのファイル番号の集合と前記検索キーワードに対応する索引検証情報とを取得する暗号ファイル取得手段と、
該取得した索引検証情報が、前記検索キーワードと前記取得した暗号ファイルのファイル番号の集合との検証用組の索引検証情報であるか否かを所定の検証アルゴリズムによってチェックし、チェックの結果が正しければ承認し、そうでなければ拒否する索引検証部と、
更新すべきファイルを前記暗号化の秘密鍵を使って暗号化して得られる、更新すべき暗号ファイルをそのファイル番号と共に前記サーバに送って更新する更新手段と、
を有する検索システム。
A search system in which a user terminal stores a plurality of encrypted files in a server, the user terminal acquires a desired set of files from the server by keyword search, and also updates an encrypted file, wherein the user terminal includes: ,
Encrypted file storage means for encrypting each of a plurality of files using an encryption private key, and storing the plurality of encrypted files together with file numbers of the encrypted files on the server;
An index, which is a correspondence table between a keyword and a file number of a file corresponding to the keyword, is encrypted using a predetermined secret key, and includes a ciphertext of the keyword and a ciphertext of the file number of the file including the keyword Encrypted index storage means for storing an encrypted index in the server;
Index verification information for generating index verification information according to a predetermined generation algorithm for a generation set of the keyword and a set of file numbers of all files including the keyword, and storing the generated index verification information in the server A generator,
An encryption search keyword obtained by encrypting a search keyword using the predetermined secret key is sent to the server, and an encryption file including the encryption search keyword from the server, a set of file numbers of the encryption file, and the search keyword Encrypted file acquisition means for acquiring index verification information corresponding to
Whether or not the acquired index verification information is index verification information of a verification set of the search keyword and the set of file numbers of the acquired encrypted files is checked by a predetermined verification algorithm, and the check result is correct. An index validation unit that approves and rejects otherwise,
Updating means for encrypting a file to be updated using the encryption private key and sending the encrypted file to be updated together with the file number to the server for updating;
Search system having
前記ユーザ端末は、
前記暗号化の秘密鍵と前記所定の秘密鍵と所定の公開情報とを保持するユーザ鍵保持部と、
前記所定の公開情報と前記複数の暗号ファイルとから全暗号ファイルの蓄積値を計算するファイル蓄積値計算部と、
前記全暗号ファイルの蓄積値を保持する蓄積値保持部と、
を更に備え、
前記サーバは、
前記所定の公開情報を保持するサーバ鍵保持部と、
前記所定の公開情報に基づいて、当該サーバに保管された全暗号ファイルの内、前記暗号検索キーワードを含む暗号ファイルの集合以外の暗号ファイルを使用して、ファイル検証情報を生成して前記ユーザ端末へ送出するファイル検証情報生成部と、
を備え、
前記ユーザ端末は、
前記索引検証部で承認された場合、前記所定の公開情報に基づいて、前記取得した暗号ファイルの集合と前記ファイル検証情報とを使用して、暗号ファイルの蓄積値を計算し、該計算した暗号ファイルの蓄積値と前記保持した全暗号ファイルの蓄積値とが等しければ、前記取得した暗号ファイルの集合を復号して前記所望のファイルの集合を得、そうでなければ拒否するファイル検証部を更に有する、
請求項6に記載の検索システム。
The user terminal is
A user key holding unit that holds the encryption secret key, the predetermined secret key, and predetermined public information;
A file accumulation value calculation unit for calculating accumulation values of all encrypted files from the predetermined public information and the plurality of encrypted files;
An accumulated value holding unit for holding accumulated values of all the encrypted files;
Further comprising
The server
A server key holding unit for holding the predetermined public information;
Based on the predetermined public information, out of all the encrypted files stored in the server, an encrypted file other than the set of encrypted files including the encrypted search keyword is used to generate file verification information to generate the user terminal A file verification information generator to be sent to
With
The user terminal is
When approved by the index verification unit, based on the predetermined public information, using the acquired set of encrypted files and the file verification information, calculate an accumulated value of the encrypted file, and calculate the calculated encryption A file verification unit that decrypts the acquired set of encrypted files to obtain the desired set of files if the stored value of the files is equal to the stored value of all the stored encrypted files; Have
The search system according to claim 6.
前記ユーザ端末は、
前記所定の公開情報に基づいて、前記更新すべき暗号ファイル、更新前の暗号ファイル、そのファイル番号、および前記蓄積値保持部に保持された全暗号ファイルの蓄積値を使用して、新しい全暗号ファイルの蓄積値を計算し、該計算した新しい全暗号ファイルの蓄積値を前記蓄積保持部に保持する蓄積値更新部を更に有する、
請求項7に記載の検索システム。
The user terminal is
Based on the predetermined public information, a new all-encryption code is obtained by using the encrypted file to be updated, the encrypted file before the update, the file number thereof, and the accumulated value of all the encrypted files held in the accumulated value holding unit. It calculates the accumulation value of the file, further comprising a storage value updating unit that holds the accumulated value of the new total cipher files the computed the accumulation value holding unit,
The search system according to claim 7.
ユーザ端末がサーバに複数の暗号ファイルを保管し、前記ユーザ端末がキーワード検索によって前記サーバから所望のファイルの集合を取得すると共に、暗号ファイルの更新をも行う検索方法であって、
前記ユーザ端末が、暗号化の秘密鍵を使って複数のファイルをそれぞれ暗号化し、前記複数の暗号ファイルをそれらの暗号ファイルのファイル番号と共に前記サーバに保管するステップと、
前記ユーザ端末が、キーワードと該キーワードに対応するファイルのファイル番号との対応表である索引を、所定の秘密鍵を使って暗号化し、前記キーワードの暗号文と該キーワードを含むファイルのファイル番号の暗号文とから成る暗号化索引を前記サーバに保管するステップと、
前記ユーザ端末が、前記キーワードと該キーワードを含む全てのファイルのファイル番号の集合との生成用組に対して所定の生成アルゴリズムに従って索引検証情報を生成するステップと、
前記ユーザ端末が、前記生成した索引検証情報を前記サーバに保管するステップと、
前記ユーザ端末が、前記所定の秘密鍵を使って検索キーワードを暗号化して得られる暗号検索キーワードを前記サーバへ送って、前記サーバから前記暗号検索キーワードを含む暗号ファイルおよび当該暗号ファイルのファイル番号の集合と前記検索キーワードに対応する索引検証情報とを取得するステップと、
前記ユーザ端末が、前記取得した索引検証情報が、前記検索キーワードと前記取得した暗号ファイルのファイル番号の集合との検証用組の索引検証情報であるか否かを所定の検証アルゴリズムによってチェックするステップと、
前記ユーザ端末が、チェックの結果が正しければ承認し、そうでなければ拒否するステップと、
前記ユーザ端末が、更新すべきファイルを前記暗号化の秘密鍵を使って暗号化して得られる、更新すべき暗号ファイルをそのファイル番号と共に前記サーバに送って更新するステップと、
を含む検索方法。
A search method in which a user terminal stores a plurality of encrypted files in a server, the user terminal acquires a desired set of files from the server by keyword search, and also updates the encrypted file,
The user terminal encrypts each of a plurality of files using an encryption private key, and stores the plurality of encrypted files together with file numbers of the encrypted files on the server;
The user terminal encrypts an index, which is a correspondence table between a keyword and a file number of a file corresponding to the keyword, using a predetermined secret key, and the ciphertext of the keyword and the file number of the file including the keyword Storing an encrypted index comprising ciphertext on the server;
The user terminal generating index verification information according to a predetermined generation algorithm for a generation set of the keyword and a set of file numbers of all files including the keyword;
The user terminal storing the generated index verification information in the server;
The user terminal sends an encrypted search keyword obtained by encrypting a search keyword using the predetermined secret key to the server, and an encrypted file including the encrypted search keyword and a file number of the encrypted file are transmitted from the server. Obtaining a set and index verification information corresponding to the search keyword;
A step in which the user terminal checks whether or not the acquired index verification information is index verification information of a verification set of the search keyword and a set of file numbers of the acquired encrypted files by a predetermined verification algorithm; When,
The user terminal approves if the result of the check is correct, and rejects otherwise;
The user terminal sends the encrypted file to be updated to the server together with the file number obtained by encrypting the file to be updated using the encryption secret key;
Search method including
サーバに複数の暗号ファイルを保管し、キーワード検索によって前記サーバから所望のファイルの集合を取得すると共に、暗号ファイルの更新をも行う処理を、コンピュータであるユーザ端末に実行させる検索プログラムであって、前記コンピュータに、
暗号化の秘密鍵を使って複数のファイルをそれぞれ暗号化し、前記複数の暗号ファイルをそれらの暗号ファイルのファイル番号と共に前記サーバに保管する手順と、
キーワードと該キーワードに対応するファイルのファイル番号との対応表である索引を、所定の秘密鍵を使って暗号化し、前記キーワードの暗号文と該キーワードを含むファイルのファイル番号の暗号文とから成る暗号化索引を前記サーバに保管する手順と、
前記キーワードと該キーワードを含む全てのファイルのファイル番号の集合との生成用組に対して所定の生成アルゴリズムに従って索引検証情報を生成する手順と、
前記生成した索引検証情報を前記サーバに保管する手順と、
前記所定の秘密鍵を使って検索キーワードを暗号化して得られる暗号検索キーワードを前記サーバへ送って、前記サーバから前記暗号検索キーワードを含む暗号ファイルおよび該暗号ファイルのファイル番号の集合と前記検索キーワードに対応する索引検証情報とを取得する手順と、
前記取得した索引検証情報が、前記検索キーワードと前記取得した暗号ファイルのファイル番号の集合との検証用組の索引検証情報であるか否かを所定の検証アルゴリズムによってチェックする手順と、
チェックの結果が正しければ承認し、そうでなければ拒否する手順と、
更新すべきファイルを前記暗号化の秘密鍵を使って暗号化して得られる、更新すべき暗号ファイルをそのファイル番号と共に前記サーバに送って更新する手順と、
を実行させるための検索プログラム。
A search program for storing a plurality of encrypted files in a server, obtaining a set of desired files from the server by keyword search, and causing a user terminal that is a computer to execute processing for updating the encrypted file, In the computer,
Encrypting each of a plurality of files using an encryption private key, and storing the plurality of encrypted files together with the file numbers of the encrypted files on the server;
An index, which is a correspondence table between a keyword and a file number of a file corresponding to the keyword, is encrypted using a predetermined secret key, and includes a ciphertext of the keyword and a ciphertext of the file number of the file including the keyword Storing an encrypted index on the server;
Generating index verification information according to a predetermined generation algorithm for a generation set of the keyword and a set of file numbers of all files including the keyword;
A procedure for storing the generated index verification information in the server;
An encrypted search keyword obtained by encrypting a search keyword using the predetermined secret key is sent to the server, and an encrypted file including the encrypted search keyword from the server, a set of file numbers of the encrypted file, and the search keyword Obtaining index verification information corresponding to
A procedure for checking whether or not the acquired index verification information is index verification information of a verification set of the search keyword and a set of file numbers of the acquired encrypted files by a predetermined verification algorithm;
Approve if the result of the check is correct, otherwise reject it,
A procedure for transmitting the encrypted file to be updated together with the file number obtained by encrypting the file to be updated using the encryption private key to the server and updating the encrypted file;
Search program to execute.
JP2013045246A 2013-03-07 2013-03-07 SEARCH SYSTEM, SEARCH METHOD, AND SEARCH PROGRAM Expired - Fee Related JP6095057B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2013045246A JP6095057B2 (en) 2013-03-07 2013-03-07 SEARCH SYSTEM, SEARCH METHOD, AND SEARCH PROGRAM

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013045246A JP6095057B2 (en) 2013-03-07 2013-03-07 SEARCH SYSTEM, SEARCH METHOD, AND SEARCH PROGRAM

Publications (2)

Publication Number Publication Date
JP2014174661A JP2014174661A (en) 2014-09-22
JP6095057B2 true JP6095057B2 (en) 2017-03-15

Family

ID=51695854

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013045246A Expired - Fee Related JP6095057B2 (en) 2013-03-07 2013-03-07 SEARCH SYSTEM, SEARCH METHOD, AND SEARCH PROGRAM

Country Status (1)

Country Link
JP (1) JP6095057B2 (en)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE112014007083T5 (en) * 2014-10-21 2017-07-13 Mitsubishi Electric Corporation Server device, search system, terminal device, search method, server program and terminal program
KR102055888B1 (en) 2015-11-06 2019-12-16 주식회사 케이티 Encryption and decryption method for protecting information
CN110489971A (en) * 2018-05-15 2019-11-22 微软技术许可有限责任公司 The data set management of safety
KR102248756B1 (en) * 2019-07-18 2021-05-07 국방과학연구소 Encryption system, apparatus and method for providing searchable having forward stability

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101739400B (en) * 2008-11-11 2014-08-13 日电(中国)有限公司 Method and device for generating indexes and retrieval method and device
JP5332635B2 (en) * 2009-01-19 2013-11-06 富士通株式会社 Electronic signature method, electronic signature program, and electronic signature device
JP5338461B2 (en) * 2009-05-01 2013-11-13 ブラザー工業株式会社 Management device, information generation program, and information generation method

Also Published As

Publication number Publication date
JP2014174661A (en) 2014-09-22

Similar Documents

Publication Publication Date Title
KR101190059B1 (en) Method for data encryption and method for conjunctive keyword search of encrypted data
JP5062775B2 (en) SEARCH METHOD, SEARCH DEVICE, INDEX GENERATION METHOD, INDEX GENERATION DEVICE
CN104978239B (en) A kind of method, apparatus and system realizing more Backup Data dynamics and updating
RU2512139C2 (en) Method and apparatus for pseudonym generation and authentication
US20090138698A1 (en) Method of searching encrypted data using inner product operation and terminal and server therefor
US9602278B2 (en) Encryption device, cipher-text comparison system, cipher-text comparison method, and cipher-text comparison program
JP6239213B1 (en) Secret search system, secret search method, and secret search program
KR20060084447A (en) Efficient management of cryptographic key generations
US11349668B2 (en) Encryption device and decryption device
JP2006221161A (en) Cryptographic application of cartier pairing
CN110008755B (en) Cloud storage revocable dynamic data integrity verification system and method
KR20160131798A (en) Method and system for additive homomorphic encryption scheme with error detection functionality
JPWO2014112550A1 (en) Tamper detection device, tamper detection method, and program
JP6095057B2 (en) SEARCH SYSTEM, SEARCH METHOD, AND SEARCH PROGRAM
KR20200108343A (en) Computer-implemented method and system for obtaining digitally signed data
CN110392038A (en) The multi-key cipher that can verify that under a kind of multi-user scene can search for encryption method
US20180239910A1 (en) Encrypted text verification system, method and recording medium
JPWO2014185450A1 (en) Verification system, node, verification method and program
US10484182B2 (en) Encrypted text verification system, method, and recording medium
CN115473703A (en) Identity-based ciphertext equivalence testing method, device, system and medium for authentication
CN114142996B (en) Searchable encryption method based on SM9 cryptographic algorithm
JP5970193B2 (en) SEARCH SYSTEM, SEARCH METHOD, AND SEARCH PROGRAM
CN114679340B (en) File sharing method, system, device and readable storage medium
Gohel et al. A new data integrity checking protocol with public verifiability in cloud storage
JP2013130825A (en) Partial match search processing system and method

Legal Events

Date Code Title Description
RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20160114

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20160204

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20161117

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20161122

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170110

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170208

R150 Certificate of patent or registration of utility model

Ref document number: 6095057

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees