JP2013161154A - Retrieval system, retrieval method and retrieval program - Google Patents

Retrieval system, retrieval method and retrieval program Download PDF

Info

Publication number
JP2013161154A
JP2013161154A JP2012020691A JP2012020691A JP2013161154A JP 2013161154 A JP2013161154 A JP 2013161154A JP 2012020691 A JP2012020691 A JP 2012020691A JP 2012020691 A JP2012020691 A JP 2012020691A JP 2013161154 A JP2013161154 A JP 2013161154A
Authority
JP
Japan
Prior art keywords
files
keyword
verification
server
search
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2012020691A
Other languages
Japanese (ja)
Other versions
JP5970193B2 (en
Inventor
Kaoru Kurosawa
馨 黒澤
Yasuhiro Otaki
保広 大瀧
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 JP2012020691A priority Critical patent/JP5970193B2/en
Publication of JP2013161154A publication Critical patent/JP2013161154A/en
Application granted granted Critical
Publication of JP5970193B2 publication Critical patent/JP5970193B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

PROBLEM TO BE SOLVED: To detect not only deletion, addition and alteration for files but also replacement of the files as illegality in a server.SOLUTION: In a user terminal of a retrieval system which stores a plurality of files in a server and acquires a set of desired files from the server by keyword retrieval, a verification information generation unit generates verification information according to a prescribed generation algorithm for a pair for generation composed of a keyword and all files including the keyword, and stores the generated verification information in the server. The user terminal transmits a retrieval keyword to the server and acquires a set of files including the retrieval keyword and the verification information corresponding to the retrieval keyword from the server. A verification unit checks whether or not the acquired verification information is verification information for a pair for verification composed of the retrieval keyword and the acquired set of files, using a prescribed verification algorithm, approves if the check result is correct, and refuses if not.

Description

本発明は、検索システム、検索方法、および、検索プログラムに関し、特に、キーワード検索におけるサーバの不正を検出可能な検索システム、検索方法、および、検索プログラムに関する。   The present invention relates to a search system, a search method, and a search program, and more particularly, to a search system, a search method, and a search program that can detect server fraud in keyword search.

この技術分野において周知のように、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に開示された検索システムを、「先行検索システム」と呼ぶことにする。   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 “preceding search system”.

尚、一般に、検索システムの動作は、ユーザ端末がファイルをサーバに格納する「格納フェーズ」と、ユーザ端末がサーバから所望のファイルを検索する「検索フェーズ」と、に分けられる。   In general, the operation of the search system is divided into a “storage phase” in which the user terminal stores a file in the server and a “search phase” in which the user terminal searches for a desired file from the server.

以下、先行検索システムの概略の動作について説明する。   The general operation of the advance search system will be described below.

格納フェーズにおいて、ユーザ端末は、各ファイルDnの暗号文E(Dn)と当該暗号文のデジタル署名sign(E(Dn))とを一組(E(Dn), sign(E(Dn)))として、サーバに格納する。ここで、nは1以上N以下の整数であって(1≦n≦N)、Nはファイルの総数である。また、ユーザ端末は、各キーワードiを含むファイル数のデジタル署名Yiも、サーバに格納する。ここで、iはは1以上I以下の整数であって(1≦i≦I)、Iはキーワードの総数である。   In the storage phase, the user terminal sets a set (E (Dn), sign (E (Dn))) of the ciphertext E (Dn) of each file Dn and the digital signature sign (E (Dn)) of the ciphertext. Is stored in the server. Here, n is an integer of 1 to N (1 ≦ n ≦ N), and N is the total number of files. The user terminal also stores the digital signature Yi of the number of files including each keyword i in the server. Here, i is an integer between 1 and I (1 ≦ i ≦ I), and I is the total number of keywords.

検索フェーズにおいて、ユーザ端末は、キーワードiの暗号文E(キーワードi)をサーバへ送る。そのとき、サーバは、キーワードiを含む各組(E(Dn), sign(E(Dn)))とその対応するデジタル署名Yiと、をユーザ端末へ返す。ユーザ端末では、返送された各組のデジタル署名sign(E(Dn))をチェックすることにより、当該ファイルDnの改ざんを検出することができる。また、ユーザ端末は、返送されたデジタル署名Yiをチェックすることにより、キーワードiを含むファイル数の変化を検出することができる。   In the search phase, the user terminal sends the ciphertext E (keyword i) of the keyword i to the server. At that time, the server returns each set (E (Dn), sign (E (Dn))) including the keyword i and the corresponding digital signature Yi to the user terminal. The user terminal can detect falsification of the file Dn by checking each returned digital signature sign (E (Dn)). Further, the user terminal can detect a change in the number of files including the keyword i by checking the returned digital signature Yi.

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)

しかしながら、非特許文献1に開示された先行検索システムでは、サーバの不正として、ファイルのすり替えを検出することができない。その理由は、次の通りである。   However, the prior search system disclosed in Non-Patent Document 1 cannot detect file replacement as a server fraud. The reason is as follows.

例えば、ファイルDnが別のファイルDmにすり替えられたとする(n≠m)。この場合、上記キーワードiの暗号文E(キーワードi)に応答して、サーバは、ユーザ端末へ各組(E(Dn), sign(E(Dn)))のいずれか1つを別の組(E(Dm), sign(E(Dm)))にすり替えて返送することになる。ユーザ端末では、上述したように、デジタル署名sign(E(Dn))またはsign(E(Dm))をチェックするだけなので、ファイルDnが別のファイルDmにすり替えられたのを判断することができない。また、ユーザ端末には、デジタル署名Yiが返送されるが、すり替えの場合はファイル数が変化しないので、正しいと判断してしまう。よって、ファイルのすり替えを自動的に検出することができない。   For example, it is assumed that the file Dn is replaced with another file Dm (n ≠ m). In this case, in response to the ciphertext E (keyword i) of the keyword i, the server sends one of each pair (E (Dn), sign (E (Dn))) to the user terminal to another pair. It will be returned to (E (Dm), sign (E (Dm))). Since the user terminal only checks the digital signature sign (E (Dn)) or sign (E (Dm)) as described above, it cannot be determined that the file Dn has been replaced with another file Dm. . In addition, the digital signature Yi is returned to the user terminal, but in the case of replacement, the number of files does not change, so it is determined to be correct. Therefore, file replacement cannot be automatically detected.

尚、非特許文献1では、ユーザ自身が、人手により、ファイルDmがキーワードiを含むかをチェックすることにより、ファイルのすり替えをチェックできると記載(主張)している。しかしながら、ファイルDn、Dmが写真などの場合、そのようなチェックを行うことは不可能である。   In Non-Patent Document 1, it is described (asserted) that the user himself / herself can check file replacement by checking whether the file Dm includes the keyword i by hand. However, when the files Dn and Dm are photographs or the like, it is impossible to perform such a check.

したがって本発明の目的は、サーバの不正として、ファイルの削除、追加、改ざんのみならず、ファイルのすり替えをも検出できる、検索システム、検索方法、および検索プログラムを提供することにある。   Accordingly, an object of the present invention is to provide a search system, a search method, and a search program capable of detecting not only file deletion, addition, and alteration but also file replacement as a server fraud.

本発明の第1の態様に係る検索システムは、ユーザ端末がサーバに複数のファイルを保管し、ユーザ端末がキーワード検索によってサーバから所望のファイルの集合を取得する検索システムであって、ユーザ端末は、複数のファイルをサーバに保管するファイル保管手段と、キーワードと当該キーワードを含む全てのファイルの集合との生成用組に対して所定の生成アルゴリズムに従って検証情報を生成し、この生成した検証情報をサーバに保管する検証情報生成部と、検索キーワードをサーバへ送って、サーバから検索キーワードを含むファイルの集合と検索キーワードに対応する検証情報とを取得するファイル取得手段と、この取得した検証情報が、検索キーワードと取得したファイルの集合との検証用組の検証情報であるか否かを所定の検証アルゴリズムによってチェックし、チェックの結果が正しければ承認して取得したファイルの集合を所望のファイルの集合として得、そうでなければ拒否する検証部と、を備える。   A search system according to a first aspect of the present invention is 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. Generating verification information according to a predetermined generation algorithm for a file storage means for storing a plurality of files in a server and a generation set of a keyword and a set of all files including the keyword, and generating the verification information A verification information generation unit to be stored in the server, a file acquisition means for transmitting a search keyword to the server, and acquiring a set of files including the search keyword and verification information corresponding to the search keyword from the server, and the acquired verification information , Whether or not the verification information of the verification pair between the search keyword and the set of acquired files is predetermined Checked by verification algorithm, to obtain a set of files acquired approved is correct a check result as a set of desired file, and a reject verification unit otherwise.

本発明の第2の態様による検索システムは、ユーザ端末がサーバに複数の暗号ファイルを保管し、ユーザ端末がキーワード検索によってサーバから所望のファイルの集合を取得する検索システムであって、ユーザ端末は、暗号化の秘密鍵を使って複数のファイルをそれぞれ暗号化し、複数の暗号ファイルをサーバに保管する暗号ファイル保管手段と、キーワードと当該キーワードを含む全ての暗号ファイルの集合との生成用組に対して所定の生成アルゴリズムに従って検証情報を生成し、その生成した検証情報をサーバに保管する検証情報生成部と、暗号化の秘密鍵を使って検索キーワードを暗号化して得られる暗号検索キーワードをサーバへ送って、サーバから暗号検索キーワードを含む暗号ファイルの集合と検索キーワードに対応する検証情報とを取得する暗号ファイル取得手段と、その取得した検証情報が、検索キーワードと取得した暗号ファイルの集合との検証用組の検証情報であるか否かを所定の検証アルゴリズムによってチェックし、チェックの結果が正しければ承認して取得した暗号ファイルの集合を復号して所望のファイルの集合を得、そうでなければ拒否する検証部と、を備える。   A search system according to a second aspect of the present invention is 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. A cryptographic file storage means for encrypting a plurality of files using an encryption private key and storing the plurality of encrypted files on a server, and a generation set of a keyword and a set of all encrypted files including the keyword On the other hand, a verification information generation unit that generates verification information according to a predetermined generation algorithm, stores the generated verification information in the server, and an encrypted search keyword obtained by encrypting the search keyword using the encryption secret key To the set of encrypted files containing the encrypted search keyword and the search corresponding to the searched keyword. The encryption file acquisition means for acquiring information, and whether the acquired verification information is verification information of a verification pair between the search keyword and the acquired set of encrypted files is checked by a predetermined verification algorithm. A verification unit that decrypts a set of encrypted files that are approved and acquired if the result is correct, obtains a desired set of files, and rejects otherwise.

本発明では、キーワードと当該キーワードを含む全てのファイル(暗号ファイル)の集合との生成用組に対して所定のアルゴリズムに従って検証情報を生成し、その生成した検証情報をサーバに保管しているので、サーバの不正として、ファイルの削除、追加、改ざんばかりでなく、ファイルのすり替えをも検出することができる。   In the present invention, verification information is generated according to a predetermined algorithm for a generation set of a keyword and a set of all files (encrypted files) including the keyword, and the generated verification information is stored in the server. It is possible to detect not only file deletion, addition, and alteration as well as file replacement as a server fraud.

本発明の第1の実施形態に係る検索システムの格納フェーズの動作を説明するための概略ブロック図である。It is a schematic block diagram for demonstrating operation | movement of the storage phase of the search system which concerns on the 1st Embodiment of this invention. 本発明の第1の実施形態に係る検索システムの検索フェーズの動作を説明するための概略ブロック図である。It is a schematic block diagram for demonstrating operation | movement of the search phase of the search system which concerns on the 1st Embodiment of this invention. 本発明の第2の実施形態に係る検索システムの格納フェーズの動作を説明するための概略ブロック図である。It is a schematic block diagram for demonstrating operation | movement of the storage phase of the search system which concerns on the 2nd Embodiment of this invention. 本発明の第2の実施形態に係る検索システムの検索フェーズの動作を説明するための概略ブロック図である。It is a schematic block diagram for demonstrating operation | movement of the search phase of the search system which concerns on the 2nd Embodiment of this invention. 本発明の第3の実施形態に係る検索システムの格納フェーズの動作を説明するための概略ブロック図である。It is a schematic block diagram for demonstrating operation | movement of the storage phase of the search system which concerns on the 3rd Embodiment of this invention. 本発明の第3の実施形態に係る検索システムの検索フェーズの動作を説明するための概略ブロック図である。It is a schematic block diagram for demonstrating operation | movement of the search phase of the search system which concerns on the 3rd Embodiment of this invention. 本発明の第4の実施形態に係る検索システムの格納フェーズの動作を説明するための概略ブロック図である。It is a schematic block diagram for demonstrating the operation | movement of the storage phase of the search system which concerns on the 4th Embodiment of this invention. 本発明の第4の実施形態に係る検索システムの検索フェーズの動作を説明するための概略ブロック図である。It is a schematic block diagram for demonstrating operation | movement of the search phase of the search system which concerns on the 4th Embodiment of this invention. 本発明の第1の実施例に係る検索システムの構成を示すブロック図である。It is a block diagram which shows the structure of the search system which concerns on 1st Example of this invention. 図9に示した検索システムに使用される索引の一具体例を示す図である。It is a figure which shows one specific example of the index used for the search system shown in FIG. 図9に示した検索システムに使用される、クライアントの検証情報生成部の動作を説明するためのフローチャートである。It is a flowchart for demonstrating operation | movement of the verification information generation 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 verification information generation part shown in FIG. 図9に示した検索システムに使用される、クライアントの検証部の動作を説明するためのフローチャートである。It is a flowchart for demonstrating operation | movement of the verification part of a client used for the search system shown in FIG. 図13に示した検証部の動作の一具体例を示す図である。It is a figure which shows an example of operation | movement of the verification part shown in FIG. 本発明の第2の実施例に係る検索システムの構成を示すブロック図である。It is a block diagram which shows the structure of the search system which concerns on 2nd Example of this invention. 図15に示した検索システムに使用される索引の一具体例を示す図である。FIG. 16 is a diagram illustrating a specific example of an index used in the search system illustrated in FIG. 15. 図15に示した検索システムに使用される、クライアントの検証情報生成部の動作を説明するためのフローチャートである。It is a flowchart for demonstrating operation | movement of the verification information production | generation part of a client used for the search system shown in FIG. 図17に示した検証情報生成部の動作の一具体例を示す図である。It is a figure which shows an example of an operation | movement of the verification information generation part shown in FIG. 図15に示した検索システムに使用される、クライアントの検証部の動作を説明するためのフローチャートである。It is a flowchart for demonstrating operation | movement of the verification part of a client used for the search system shown in FIG. 図19に示した検証部の動作の一具体例を示す図である。It is a figure which shows an example of an operation | movement of the verification part 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 is a system that detects server fraud in keyword search. However, as server fraud, not only “deletion”, “addition”, and “tampering” of files but also “replacement” of files. It is a search system that can detect "

本実施形態に係る検索システムは、ファイルが暗号化されている場合と、ファイルが暗号化されていない場合との両者に適用できる。また、この技術分野において周知のように、メッセージの認証機能には、デジタル署名を利用する場合と、メッセージ認証コード(Message Authentication code,MAC)を利用して認証子を生成する場合とがある。なお、デジタル署名と認証子とは、総称して、検証情報と呼ばれる。従って、本実施形態に係る検索システムは、以下の第1乃至第4の実施形態に分けられる。   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. Therefore, the search system according to this embodiment is divided into the following first to fourth embodiments.

一般に、検証情報は、所定の生成アルゴリズムによって生成され、所定の検証アルゴリズムによって検証(チェック)される。検証情報がデジタル署名の場合、所定の生成アルゴリズムは署名生成アルゴリズムから成り、所定の検証アルゴリズムは署名検証アルゴリズムから成る。一方、検証情報が認証子の場合、所定の生成アルゴリズムは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の実施形態に係る検索システムは、ユーザ端末がファイルを暗号化せずにサーバに保管する場合であって、メッセージの認証機能(検証情報)としてデジタル署名を利用する検索システムである。   The search system according to the first embodiment of the present invention is a search system that uses a digital signature as a message authentication function (verification information) when a user terminal stores a file in a server without encryption. is there.

このようなユーザ端末がファイルを暗号化せずにサーバに保管する場合、従来においては、サーバの不正を検出する方法は知られていない。本第1の実施形態に係る検索システムでは、このような場合においても、後述するように、サーバの不正を検出することができる。   When such a user terminal stores a file in the server without encrypting it, conventionally, a method for detecting fraud of the server is not known. In such a case, the search system according to the first embodiment can detect server fraud as described later.

本発明の第2の実施形態に係る検索システムは、ユーザ端末がファイルを暗号化せずにサーバに保管する場合であって、メッセージの認証機能(検証情報)としてMAC(認証子)を利用する検索システムである。   The search system according to the second embodiment of the present invention is a case where a user terminal stores a file in a server without encrypting the file, and uses a MAC (authenticator) as a message authentication function (verification information). Search system.

この技術分野において周知のように、デジタル署名とは異なり、MACは裁判での証拠能力がない。その代わりに、デジタル署名と比較して、MACは高速であるという利点がある。   As is well known in the art, unlike digital signatures, MACs are not capable of trial evidence. Instead, MAC has the advantage of being faster than digital signatures.

本発明の第3の実施形態に係る検索システムは、ユーザ端末がファイルおよびキーワードを暗号化してサーバに保管する場合であって、メッセージの認証機能(検証情報)としてデジタル署名を利用する検索システムである。   The search system according to the third 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 uses a digital signature as a message authentication function (verification information). is there.

前述したように、先行検索システムでは、ユーザ端末は、サーバの不正として、ファイルの削除、追加、改ざんのみを検出できる。これに対して、本第3の実施形態に係る検索システムでは、それらに加え、ファイルのすり替えをも検出できる。また、先行検索システムに比べ、本第3の実施形態に係る検索システムは通信量も少ない。   As described above, in the preceding search system, the user terminal can detect only the deletion, addition, and alteration of the file as the server fraud. In contrast, in the search system according to the third embodiment, in addition to them, file replacement can also be detected. Further, the search system according to the third embodiment has a smaller communication volume than the preceding search system.

本発明の第4の実施形態に係る検索システムは、ユーザ端末がファイルおよびキーワードを暗号化してサーバに保管する場合であって、メッセージの認証機能(検証情報)としてMAC(認証子)を利用する検索システムである。   The search system according to the fourth embodiment of the present invention is a case where a user terminal encrypts a file and a keyword and stores them in a server, and uses a MAC (authenticator) as a message authentication function (verification information). Search system.

尚、前述したように、検索システムの動作は、ユーザ端末がファイル(暗号ファイル)をサーバに格納する「格納フェーズ」と、ユーザ端末がサーバから所望のファイルを検索する「検索フェーズ」と、に分けられる。   As described above, the search system operates in a “storage phase” in which the user terminal stores a file (encrypted file) in the server and a “search phase” in which the user terminal searches for a desired file from the server. Divided.

以下、図面を参照して、本発明の第1乃至第4の実施形態に係る検索システムについて説明する。   Hereinafter, a search system according to first to fourth embodiments of the present invention will be described with reference to the drawings.

[第1の実施形態]
図1および図2を参照して、本発明の第1の実施形態に係る検索システム100について説明する。図示の第1の実施形態に係る検索システム100は、ユーザ端末200と、サーバ300とから構成される。
[First Embodiment]
A search system 100 according to the first embodiment of the present invention will be described with reference to FIGS. 1 and 2. The search system 100 according to the illustrated first embodiment includes a user terminal 200 and a server 300.

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

先ず、図1を参照して、本発明の第1の実施形態に係る検索システム100における格納フェーズについて説明する。   First, the storage phase in the search system 100 according to the first embodiment of the present invention will be described with reference to FIG.

格納フェーズにおいては、ユーザ端末200は、以下の動作を行う。   In the storage phase, the user terminal 200 performs the following operation.

先ず、ユーザ端末200は、N(Nは1以上の整数)個のファイルである、ファイル1、・・・、ファイルNをサーバ300に保管する。また、必要に応じ、ユーザ端末200は、索引を生成し、その生成した索引をサーバ300に保管する。ここで、索引とは、キーワードとファイルとの対応表のことをいう。   First, the user terminal 200 stores files 1,..., File N, which are N (N is an integer equal to or greater than 1) files, in the server 300. Further, as necessary, the user terminal 200 generates an index and stores the generated index in the server 300. Here, the index refers to a correspondence table between keywords and files.

ユーザ端末200は、鍵生成アルゴリズムに従って、デジタル署名の公開鍵vkと秘密鍵skとを生成する。ここで、ユーザ端末200は、公開鍵vkを公開し、秘密鍵skを秘密に保持する。尚、公開鍵vkは検証鍵又は検査鍵とも呼ばれ、秘密鍵skは署名鍵又は生成鍵とも呼ばれる。   The user terminal 200 generates a digital signature public key vk and a secret key sk according to a key generation algorithm. Here, the user terminal 200 publishes the public key vk and holds the secret key sk secretly. The public key vk is also called a verification key or a check key, and the secret key sk is also called a signature key or a generation key.

次に、ユーザ端末200は、各キーワードについて、以下の動作を行う。ここで、キーワードの総数がI(Iは1以上の整数)個であるとし、キーワード1、・・・、キーワードIから成るとする。キーワードi(1≦i≦I)を含むファイルの集合Pを下記の数式のようにおく。
={ファイルj|ファイルjはキーワードiを含む}
Next, the user terminal 200 performs the following operation for each keyword. Here, it is assumed that the total number of keywords is I (I is an integer equal to or greater than 1), and that the keywords 1,. A set P i of files including the keyword i (1 ≦ i ≦ I) is set as follows.
P i = {file j | file j contains keyword i}

ユーザ端末200は、秘密鍵skを使い、キーワードiと当該キーワードiを含む全てのファイルの集合Pとの生成用組(キーワードi、P)に対するデジタル署名σを、署名生成アルゴリズムに従って下記の数式のように生成する。
σ=sign{キーワードi、P
The user terminal 200 uses the secret key sk to set the digital signature σ i for the generation set (keyword i, P i ) of the keyword i and the set P i of all files including the keyword i according to the signature generation algorithm: Generate as in the formula.
σ i = sign {keyword i, P i }

そして、ユーザ端末200は、この生成したデジタル署名σをサーバ300に保管する。 Then, the user terminal 200 stores the generated digital signature σ i in the server 300.

次に、図2を参照して、本発明の第1の実施形態に係る検索システム100における検索フェーズについて説明する。   Next, a search phase in the search system 100 according to the first embodiment of the present invention will be described with reference to FIG.

検索フェーズにおいて、ユーザ端末200のユーザがキーワードiについて検索したいと仮定する。したがって、キーワードiが検索キーワードiである。   Assume that the user of the user terminal 200 wants to search for the keyword i in the search phase. Therefore, the keyword i is the search keyword i.

この場合、ユーザ端末200は、検索キーワードiをサーバ300に送る。図2では、検索キーワードとしてキーワード1をサーバ300に送る場合の例を示している。この例では、キーワード1を含むファイルの集合Pが、以下の数式であるとしている。
={ファイル2、ファイル5}
In this case, the user terminal 200 sends the search keyword i to the server 300. FIG. 2 shows an example in which the keyword 1 is sent to the server 300 as a search keyword. In this example, a set P 1 of files including the keyword 1 is assumed to be the following mathematical formula.
P 1 = {file 2, file 5}

したがって、そのデジタル署名σは、以下の数式で表わされる。
σ=sign(キーワード1、ファイル2、ファイル5)
Therefore, the digital signature σ 1 is expressed by the following mathematical formula.
σ 1 = sign (keyword 1, file 2, file 5)

サーバ300は、検索キーワードiを含むファイルの集合Pと当該検索キーワードiに対応するデジタル署名σとをユーザ端末200へ返す。したがって、ユーザ端末200は、ファイルの集合Pとデジタル署名σとを取得する。 The server 300 returns a set P i of files including the search keyword i and a digital signature σ i corresponding to the search keyword i to the user terminal 200. Therefore, the user terminal 200 acquires a set of files P i and a digital signature σ i .

次に、ユーザ端末200は、公開鍵vkを使い、取得したデジタル署名σが検索キーワードiと取得したファイルの集合Pとの検証用組(キーワードi、P)のデジタル署名であるか否かを、署名生成アルゴリズムに従ってチェックする。ユーザ端末200は、チェックの結果が正しければ、承認して(accept)、取得したファイルの集合Pを所望のファイルの集合として得、そうでなければ拒否する(reject)。 Next, the user terminal 200 uses the public key vk, and whether the acquired digital signature σ i is a digital signature of a verification set (keyword i, P i ) between the search keyword i and the acquired set of files P i . Whether or not is checked according to the signature generation algorithm. The user terminal 200, is correct a check result obtained by approved (the accept), the set P i of the acquired file as a set of desired file, refuse otherwise (reject).

このように、本発明の第1の実施形態では、ユーザ端末200が各キーワードiと当該キーワードiを含む全てのファイルの集合Pとを一組(生成用組)として、それに対するデジタル署名σを生成し、生成したデジタル署名σをサーバ300に保管しているので、検索時に、サーバ300の不正として、ファイルの削除、追加、改ざんばかりでなく、ファイルのすり替えも検出することができる。 As described above, in the first embodiment of the present invention, the user terminal 200 sets each keyword i and the set P i of all files including the keyword i as one set (generation set), and the digital signature σ corresponding thereto. Since i is generated and the generated digital signature σ i is stored in the server 300, it is possible to detect not only the deletion, addition, and alteration of the file but also the replacement of the file as a fraud of the server 300 during the search. .

[第2の実施形態]
図3および図4を参照して、本発明の第2の実施形態に係る検索システム100Aについて説明する。図示の第2の実施形態に係る検索システム100Aは、ユーザ端末200Aと、サーバ300Aとから構成される。
[Second Embodiment]
With reference to FIG. 3 and FIG. 4, a search system 100A according to a second embodiment of the present invention will be described. A search system 100A according to the illustrated second embodiment includes a user terminal 200A and a server 300A.

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

先ず、図3を参照して、本発明の第2の実施形態に係る検索システム100Aにおける格納フェーズについて説明する。   First, the storage phase in the search system 100A according to the second embodiment of the present invention will be described with reference to FIG.

格納フェーズにおいては、ユーザ端末200Aは、以下の動作を行う。   In the storage phase, the user terminal 200A performs the following operation.

先ず、ユーザ端末200Aは、N(Nは1以上の整数)個のファイルである、ファイル1、・・・、ファイルNをサーバ300Aに保管する。また、必要に応じ、ユーザ端末200Aは、索引を生成し、その生成した索引をサーバ300Aに保管する。ここで、索引とは、キーワードとファイルの対応表のことをいう。   First, the user terminal 200A stores files 1,..., File N, which are N (N is an integer of 1 or more) files, in the server 300A. Further, as necessary, the user terminal 200A generates an index and stores the generated index in the server 300A. Here, the index refers to a correspondence table between keywords and files.

ユーザ端末200Aは、MACの秘密鍵Kを生成し、秘密鍵Kを秘密に保持する。   The user terminal 200A generates a MAC secret key K and keeps the secret key K secret.

次に、ユーザ端末200Aは、各キーワードについて、以下の動作を行う。ここで、キーワードの総数がI(Iは1以上の整数)個であるとし、キーワード1、・・・、キーワードIから成るとする。キーワードi(1≦i≦I)を含むファイルの集合Pを下記の数式のようにおく。
={ファイルj|ファイルjはキーワードiを含む}
Next, the user terminal 200A performs the following operation for each keyword. Here, it is assumed that the total number of keywords is I (I is an integer equal to or greater than 1), and that the keywords 1,. A set P i of files including the keyword i (1 ≦ i ≦ I) is set as follows.
P i = {file j | file j contains keyword i}

ユーザ端末200Aは、MACの秘密鍵Kを使い、キーワードiと当該キーワードiを含む全てのファイルの集合Pとの生成用組(キーワードi、P)に対する認証子Tagを、MAC生成アルゴリズムに従って、下記の数式によって生成する。
Tag=sign{キーワードi、P
The user terminal 200A uses the MAC secret key K to generate an authenticator Tag i for the generation set (keywords i, P i ) of the keyword i and a set P i of all files including the keyword i, using the MAC generation algorithm According to the following formula.
Tag i = sign {keyword i, P i }

そして、ユーザ端末200Aは、この生成した認証子Tagをサーバ300Aに保管する。 Then, the user terminal 200A stores the generated authenticator Tag i in the server 300A.

次に、図4を参照して、本発明の第2の実施形態に係る検索システム100Aにおける検索フェーズについて説明する。   Next, with reference to FIG. 4, the search phase in the search system 100A according to the second embodiment of the present invention will be described.

検索フェーズにおいて、ユーザ端末200Aのユーザがキーワードiについて検索したいと仮定する。したがって、キーワードiが検索キーワードiである。   Assume that the user of the user terminal 200A wants to search for the keyword i in the search phase. Therefore, the keyword i is the search keyword i.

この場合、ユーザ端末200Aは、検索キーワードiをサーバ300に送る。図4では、ユーザ端末200Aが検索キーワードとしてキーワード1をサーバ300Aに送る場合の例を示している。この例では、キーワード1を含むファイルの集合Pが、下記の数式であるとしている。
={ファイル2、ファイル5}
In this case, the user terminal 200A sends the search keyword i to the server 300. FIG. 4 shows an example in which the user terminal 200A sends the keyword 1 as a search keyword to the server 300A. In this example, it is assumed that a set P 1 of files including the keyword 1 is the following mathematical formula.
P 1 = {file 2, file 5}

したがって、その認証子Tagは、下記の数式で表わされる。
Tag=sign(キーワード1、ファイル2、ファイル5)
Therefore, the authenticator Tag 1 is expressed by the following mathematical formula.
Tag 1 = sign (keyword 1, file 2, file 5)

サーバ300Aは、検索キーワードiを含むファイルの集合Pと、当該検索キーワードiに対応する認証子Tagとをユーザ端末200Aへ返す。したがって、ユーザ端末200Aは、ファイルの集合Pと認証子Tagと取得する。 The server 300A returns a set P i of files including the search keyword i and an authenticator Tag i corresponding to the search keyword i to the user terminal 200A. Therefore, the user terminal 200A obtains a set of files P i and an authenticator Tag i .

ユーザ端末200Aは、MACの秘密鍵Kを使い、取得した認証子Tagが、検索キーワードiと取得したファイルの集合Pとの検証用組(キーワードi、P)の認証子であるか否かを、MAC検証アルゴリズムに従ってチェックする。ユーザ端末200Aは、チェックの結果が正しければ、承認して(accept)、取得したファイルの集合Pを所望のファイルの集合として得、そうでなければ拒否する(reject)。 Whether the user terminal 200A uses the MAC secret key K and the acquired authenticator Tag i is an authenticator of a verification pair (keywords i and P i ) between the search keyword i and the acquired set of files P i Whether or not is checked according to the MAC verification algorithm. If the check result is correct, the user terminal 200A accepts (accept), obtains the acquired file set Pi as a desired file set, and otherwise rejects (reject).

このように、本発明の第2の実施形態では、ユーザ端末200Aが各キーワードiと当該キーワードiを含む全てのファイルの集合Pとを一組(生成用組)として、それに対する認証子Tagを生成して、生成した認証子Tagをサーバ300Aに保管しているので、検索時に、サーバ300Aの不正として、ファイルの削除、追加、改ざんばかりでなく、ファイルのすり替えも検出することができる。 Thus, in the second embodiment of the present invention, the user terminal 200A sets each keyword i and a set P i of all files including the keyword i as one set (generation set), and an authenticator Tag for the set. Since i is generated and the generated authenticator Tag i is stored in the server 300A, not only the deletion, addition, and alteration of the file but also the replacement of the file can be detected as a fraud of the server 300A. it can.

[第3の実施形態]
図5および図6を参照して、本発明の第3の実施形態に係る検索システム100Bについて説明する。図示の第3の実施形態に係る検索システム100Bは、ユーザ端末200Bと、サーバ300Bとから構成される。
[Third Embodiment]
With reference to FIGS. 5 and 6, a search system 100B according to a third embodiment of the present invention will be described. A search system 100B according to the illustrated third embodiment includes a user terminal 200B and a server 300B.

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

先ず、図5を参照して、本発明の第3の実施形態に係る検索システム100Bにおける格納フェーズについて説明する。   First, the storage phase in the search system 100B according to the third embodiment of the present invention will be described with reference to FIG.

格納フェーズにおいては、ユーザ端末200Bは、以下の動作を行う。   In the storage phase, the user terminal 200B performs the following operation.

先ず、ユーザ端末200Bは、暗号化の秘密鍵Kを生成し、その秘密鍵Kを秘密に保持する。   First, the user terminal 200B generates an encryption secret key K, and keeps the secret key K secret.

次に、ユーザ端末200Bは、暗号化の秘密鍵Kを使い、N(Nは1以上の整数)個のファイルである、ファイル1、・・・、ファイルNの暗号文E(ファイル1)、・・・、E(ファイルN)を計算し、それら暗号文(暗号ファイル)をサーバ300Bに保管する。また、必要に応じ、ユーザ端末200Bは、索引を生成し、その生成した索引を、暗号化して、サーバ300Bに保管する。ここで、索引とは、キーワードとファイルの対応表のことをいう。   Next, the user terminal 200B uses the encryption secret key K, and N (N is an integer of 1 or more) files, file 1,..., Ciphertext E of file N (file 1), ..., E (file N) is calculated, and the ciphertext (encrypted file) is stored in the server 300B. Further, as necessary, the user terminal 200B generates an index, encrypts the generated index, and stores it in the server 300B. Here, the index refers to a correspondence table between keywords and files.

また、ユーザ端末200Bは、デジタル署名の公開鍵(検証鍵)vkと秘密鍵(署名鍵)skとを鍵生成アルゴリズムに従って生成する。ここで、ユーザ端末200Bは、公開鍵(検証鍵)vkを公開し、秘密鍵(署名鍵)skを秘密に保持する。   Also, the user terminal 200B generates a digital signature public key (verification key) vk and a secret key (signature key) sk according to a key generation algorithm. Here, the user terminal 200B publishes the public key (verification key) vk and holds the secret key (signature key) sk secretly.

次に、ユーザ端末200Bは、各キーワードについて、以下の動作を行う。ここで、キーワードの総数がI(Iは2以上の整数)個であるとし、キーワード1、・・・、キーワードIから成るとする。キーワードi(1≦i≦I)を含むファイルの暗号文(暗号ファイル)の集合Qを、下記の数式のようにおく。
={E(ファイルj)|ファイルjはキーワードiを含む}
Next, the user terminal 200B performs the following operation for each keyword. Here, it is assumed that the total number of keywords is I (I is an integer equal to or greater than 2), and that the keywords 1,. A set Q i of ciphertexts (encrypted files) of files including the keyword i (1 ≦ i ≦ I) is set as in the following equation.
Q i = {E (file j) | file j contains keyword i}

ユーザ端末200Bは、デジタル署名の秘密鍵skを使い、キーワードiと当該キーワードiを含む全ての暗号ファイルの集合Qとの生成用組(キーワードi、Q)に対するデジタル署名σを、署名生成アルゴリズムに従って、下記の数式のように生成する。
σ=sign{キーワードi、Q
The user terminal 200B uses the digital signature private key sk to sign the digital signature σ i for the generation set (keyword i, Q i ) of the keyword i and the set Q i of all encrypted files including the keyword i. According to the generation algorithm, it is generated as in the following formula.
σ i = sign {keyword i, Q i }

そして、ユーザ端末200Bは、この生成したデジタル署名σをサーバ300Bに保管する。 Then, the user terminal 200B stores the generated digital signature σ i in the server 300B.

その代わりに、ユーザ端末200Bは、デジタル署名の秘密鍵skを使い、暗号化の秘密鍵Kを使ってキーワードiを暗号化して得られる暗号キーワードE’(キーワードi)と当該暗号キーワードE’(キーワードi)を含む全ての暗号ファイルの集合Qとの生成用組(E’(キーワードi)、Q)に対するデジタル署名σを、署名生成アルゴリズムに従って、下記の数式のように生成し、
σ=sign{E’(キーワードi)、Q
この生成したデジタル署名σをサーバ300Bに保管してもよい。
Instead, the user terminal 200B uses the secret key sk of the digital signature and encrypts the keyword i using the encryption secret key K, and the encryption keyword E ′ (keyword i) and the encryption keyword E ′ ( A digital signature σ i for a generation set (E ′ (keyword i), Q i ) with a set Q i of all encrypted files including the keyword i) is generated according to the signature generation algorithm as follows:
σ i = sign {E ′ (keyword i), Q i }
The generated digital signature σ i may be stored in the server 300B.

次に、図6を参照して、本発明の第3の実施形態に係る検索システム100Bにおける検索フェーズについて説明する。   Next, with reference to FIG. 6, the search phase in the search system 100B according to the third embodiment of the present invention will be described.

検索フェーズにおいて、ユーザ端末200Bのユーザがキーワードiについて検索したいと仮定する。したがって、キーワードiが検索キーワードiである。   Assume that the user of the user terminal 200B wants to search for the keyword i in the search phase. Therefore, the keyword i is the search keyword i.

この場合、ユーザ端末200Bは、暗号化の秘密鍵Kを使って検索キーワードiを暗号化して得られる暗号検索キーワードE’(キーワードi)をサーバ300Bに送る。図6では、検索キーワードとしてキーワード1の暗号文である暗号検索キーワードE’(キーワード1)をサーバ300Bに送る場合の例を示している。この例では、キーワード1を含むファイルの暗号文(暗号ファイル)の集合Qが、下記の数式であるとしている。
={E(ファイル2)、E(ファイル5)}
In this case, the user terminal 200B sends an encrypted search keyword E ′ (keyword i) obtained by encrypting the search keyword i using the encryption secret key K to the server 300B. FIG. 6 shows an example in which an encrypted search keyword E ′ (keyword 1), which is a ciphertext of keyword 1, is sent to the server 300B as a search keyword. In this example, it is assumed that a set Q 1 of ciphertexts (encrypted files) of files including the keyword 1 is the following mathematical formula.
Q 1 = {E (file 2), E (file 5)}

したがって、そのデジタル署名σは、下記の数式で表わされる。
σ=sign(キーワード1、E(ファイル2)、E(ファイル5))
Therefore, the digital signature σ 1 is expressed by the following mathematical formula.
σ 1 = sign (keyword 1, E (file 2), E (file 5))

または、そのデジタル署名σは、下記の数式で表わされる。
σ=sign(E’(キーワード1)、E(ファイル2)、E(ファイル5))
Alternatively, the digital signature σ 1 is expressed by the following mathematical formula.
σ 1 = sign (E ′ (keyword 1), E (file 2), E (file 5))

サーバ300Bは、キーワードiを含むファイルの暗号文(暗号ファイル)の集合Qとそのデジタル署名σとをユーザ端末200Bへ返す。したがって、ユーザ端末200Bは、暗号ファイルの集合Qとそのデジタル署名σとを取得する。 The server 300B returns a ciphertext (encrypted file) set Q i of files including the keyword i and its digital signature σ i to the user terminal 200B. Therefore, the user terminal 200B acquires the set Q i of encrypted files and the digital signature σ i thereof.

ユーザ端末200Bは、デジタル署名の公開鍵vkを使い、取得したデジタル署名σが、検索キーワードiと取得した暗号ファイルの集合Qとの検証用組(キーワードi、Q)のデジタル署名であるか否かを、署名検証アルゴリズムに従ってチェックする。 The user terminal 200B uses the public key vk of the digital signature, and the acquired digital signature σ i is a digital signature of a verification pair (keyword i, Q i ) between the search keyword i and the acquired set of encrypted files Q i. Check if it exists, according to the signature verification algorithm.

或いは、ユーザ端末200Bは、デジタル署名の公開鍵vkを使い、取得したデジタル署名σが、暗号検索キーワード(E’(キーワードi)と取得した暗号ファイルの集合Qとの検証用組(E’(キーワードi)、Q)のデジタル署名であるか否かを、署名検証アルゴリズムに従ってチェックする。 Alternatively, the user terminal 200B uses the public key vk of the digital signature, and the acquired digital signature σ i is a verification pair (E for the encryption search keyword (E ′ (keyword i)) and the acquired set of encrypted files Q i (E It is checked according to the signature verification algorithm whether or not it is a digital signature of '(keyword i), Q i ).

ユーザ端末200Bは、チェックした結果が正しければ、承認して(accept)、取得した暗号ファイルの集合Qを復号して所望のファイルの集合Pを得、そうでなければ拒否する(reject)。 If the check result is correct, the user terminal 200B accepts (accept), decrypts the acquired set Q i of encrypted files to obtain a desired set of files P i , otherwise rejects (reject) .

このように、本発明の第3の実施形態では、ユーザ端末200Bが各キーワードi(又は暗号キーワード)と当該キーワードi(又は暗号キーワード)を含む全てのファイルの暗号文(暗号ファイル)の集合Qとを一組(生成用組)として、それに対するデジタル署名σを生成し、生成したデジタル署名σをサーバ300Bに保管しているので、検索時に、サーバ300Bの不正として、ファイルの削除、追加、改ざんばかりでなく、ファイルのすり替えも検出することができる。 Thus, in the third embodiment of the present invention, the user terminal 200B sets each keyword i (or encryption keyword) and a set Q of ciphertexts (encryption files) of all files including the keyword i (or encryption keyword). i is set as a set (generation set), and a digital signature σ i is generated for the set and the generated digital signature σ i is stored in the server 300B. It can detect not only additions and alterations, but also file replacements.

[第4の実施形態]
図7および図8を参照して、本発明の第4の実施形態に係る検索システム100Cについて説明する。図示の第4の実施形態に係る検索システム100Cは、ユーザ端末200Cと、サーバ300Cとから構成される。
[Fourth Embodiment]
With reference to FIG. 7 and FIG. 8, a search system 100C according to a fourth embodiment of the present invention will be described. The search system 100C according to the fourth embodiment shown in the figure is configured by a user terminal 200C and a server 300C.

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

先ず、図7を参照して、本発明の第4の実施形態に係る検索システム100Cにおける格納フェーズについて説明する。   First, the storage phase in the search system 100C according to the fourth embodiment of the present invention will be described with reference to FIG.

格納フェーズにおいては、ユーザ端末200Cは、以下の動作を行う。   In the storage phase, the user terminal 200C performs the following operation.

先ず、ユーザ端末200Cは、暗号化の秘密鍵K0およびMACの秘密鍵K1を生成し、両者を秘密に保持する。   First, the user terminal 200C generates an encryption secret key K0 and a MAC secret key K1, and keeps both secret.

次に、ユーザ端末200Cは、暗号化の暗号鍵K0を使い、N(Nは1以上の整数)個のファイルである、ファイル1、・・・、ファイルNの暗号文(暗号ファイル)E(ファイル1)、・・・、E(ファイルN)をサーバ300Cに保管する。また、必要に応じ、ユーザ端末200Cは、索引を生成し、その生成した索引を暗号化して、サーバ300Cに保管する。ここで、索引とは、キーワードとファイルの対応表のことをいう。   Next, the user terminal 200C uses the encryption key K0 for encryption, and the encrypted text (encrypted file) E (file 1) of the files 1,... Files 1),..., E (file N) are stored in the server 300C. Further, as necessary, the user terminal 200C generates an index, encrypts the generated index, and stores it in the server 300C. Here, the index refers to a correspondence table between keywords and files.

次に、ユーザ端末200Cは、各キーワードについて、以下の動作を行う。ここで、キーワードの総数がI(Iは1以上の整数)個であるとし、キーワード1、・・・、キーワードIから成るとする。キーワードi(1≦i≦I)を含むファイルの暗号文(暗号ファイル)の集合Qを下記の数式のようにおく。
={E(ファイルj)|ファイルjはキーワードiを含む}
Next, the user terminal 200C performs the following operation for each keyword. Here, it is assumed that the total number of keywords is I (I is an integer equal to or greater than 1), and that the keywords 1,. A set Q i of ciphertexts (encrypted files) of a file including the keyword i (1 ≦ i ≦ I) is set as in the following equation.
Q i = {E (file j) | file j contains keyword i}

ユーザ端末200Cは、MACの秘密鍵K1を使い、キーワードiと当該キーワードiを含む全ての暗号ファイルの集合Qとの生成用組(キーワードi、Q)に対する認証子Tagを、MAC生成アルゴリズムに従って、下記の数式のように生成する。
Tag=sign{キーワードi、Q
The user terminal 200C uses the MAC secret key K1 to generate an authenticator Tag i for the generation set (keyword i, Q i ) of the keyword i and a set Q i of all the encrypted files including the keyword i by MAC generation. According to the algorithm, the following formula is generated.
Tag i = sign {keyword i, Q i }

そして、ユーザ端末200Cは、この生成した認証子Tagをサーバ300Cに保管する。 Then, the user terminal 200C stores the generated authenticator Tag i in the server 300C.

その代わりに、ユーザ端末200Cは、MACの秘密鍵K1を使い、暗号化の暗号鍵K0を使ってキーワードiを暗号化して得られる暗号キーワードE’(キーワードi)と当該暗号キーワードE’(キーワードi)を含む全ての暗号ファイルの集合Qとの生成用組(E’(キーワードi)、Q)に対する認証子Tagを、MAC生成アルゴリズムに従って、下記の数式のように生成し、
Tag=sign{E’(キーワードi)、Q
この生成した認証子Tagをサーバ300Cに保管してもよい。
Instead, the user terminal 200C uses the MAC secret key K1 and the encryption keyword E ′ (keyword i) obtained by encrypting the keyword i using the encryption key K0 and the encryption keyword E ′ (keyword). i) An authenticator Tag i for a generation set (E ′ (keyword i), Q i ) with a set Q i of all encrypted files including i) is generated according to the MAC generation algorithm as shown in the following equation:
Tag i = sign {E ′ (keyword i), Q i }
The generated authenticator Tag i may be stored in the server 300C.

次に、図8を参照して、本発明の第4の実施形態に係る検索システム100Cにおける検索フェーズについて説明する。   Next, a search phase in the search system 100C according to the fourth embodiment of the present invention will be described with reference to FIG.

検索フェーズにおいて、ユーザ端末200Cのユーザがキーワードiについて検索したいと仮定する。したがって、キーワードiが検索キーワードiである。   Assume that the user of the user terminal 200C wants to search for the keyword i in the search phase. Therefore, the keyword i is the search keyword i.

この場合、ユーザ端末200Cは、暗号化の秘密鍵K0を使って検索キーワードiを暗号して得られる暗号検索キーワードE’(キーワードi)をサーバ300Cに送る。図8では、検索キーワードとしてキーワード1の暗号文である暗号検索キーワードE’(キーワード1)をサーバ300Aに送る場合の例を示している。この例では、キーワード1を含むファイルの暗号文(暗号ファイル)の集合Qが、下記の数式であるとしている。
={E(ファイル2)、E(ファイル5)}
In this case, the user terminal 200C sends an encrypted search keyword E ′ (keyword i) obtained by encrypting the search keyword i using the encryption secret key K0 to the server 300C. FIG. 8 shows an example in which an encryption search keyword E ′ (keyword 1), which is a ciphertext of keyword 1, is sent to the server 300A as a search keyword. In this example, it is assumed that a set Q 1 of ciphertexts (encrypted files) of files including the keyword 1 is the following mathematical formula.
Q 1 = {E (file 2), E (file 5)}

したがって、その認証子Tagは、下記の数式で表わされる。
Tag
sign(キーワード1、E(ファイル2)、E(ファイル5))
Therefore, the authenticator Tag 1 is expressed by the following mathematical formula.
Tag 1 =
sign (keyword 1, E (file 2), E (file 5))

または、その認証子Tagは、下記の数式で表わされる。
Tag
sign(E’(キーワード1)、E(ファイル2)、E(ファイル5))
Alternatively, the authenticator Tag 1 is represented by the following mathematical formula.
Tag 1 =
sign (E '(keyword 1), E (file 2), E (file 5))

サーバ300Cは、検索キーワードiを含むファイルの暗号文(暗号ファイル)の集合Qとその認証子Tagとをユーザ端末200Cへ返す。したがって、ユーザ端末200Cは、暗号ファイルの集合Qとその認証子Tagとを取得する。 The server 300C returns a ciphertext (encrypted file) set Q i of files including the search keyword i and its authenticator Tag i to the user terminal 200C. Therefore, the user terminal 200C acquires the set Q i of encrypted files and the authenticator Tag i .

ユーザ端末200Cは、MACの秘密鍵K1を使い、取得した認証子Tagが、検索キーワードiと取得した暗号ファイルの集合Qとの検証用組(キーワードi、Q)の認証子であるか否かを、MAC検証アルゴリズムに従ってチェックする。 The user terminal 200C uses the MAC secret key K1, and the acquired authenticator Tag i is an authenticator of a verification set (keyword i, Q i ) between the search keyword i and the acquired set of encrypted files Q i. Is checked according to the MAC verification algorithm.

或いは、ユーザ端末200Cは、MACの秘密鍵K1を使い、取得した認証子Tagが、暗号検索キーワードE’(キーワードi)と取得した暗号ファイルの集合Qとの検証用組(E’(キーワードi)、Q)の認証子であるか否かを、MAC検証アルゴリズムに従ってチェックする。 Alternatively, the user terminal 200C uses the MAC secret key K1, and the acquired authenticator Tag i is a verification set (E ′ () between the encrypted search keyword E ′ (keyword i) and the acquired set Q i of encrypted files. It is checked according to the MAC verification algorithm whether it is an authenticator of the keywords i) and Q i ).

ユーザ端末200Cは、チェックした結果が正しければ、承認して(accept)、取得した暗号ファイルの集合Qを復号して所望のファイルの集合Pを得、そうでなければ拒否する(reject)。 If the check result is correct, the user terminal 200C accepts (accept), decrypts the acquired encrypted file set Q i to obtain a desired file set P i , otherwise rejects (reject). .

このように、本発明の第4の実施形態では、ユーザ端末200Cが各キーワードi(又は暗号キーワード)と当該キーワードi(又は暗号キーワード)を含む全てのファイルの暗号文(暗号ファイル)の集合Qとを一組(生成用組)として、それに対する認証子Tagを生成し、生成した認証子Tagをサーバ300Cに保管しているので、検索時に、サーバ300Cの不正として、ファイルの削除、追加、改ざんばかりでなく、ファイルのすり替えも検出することができる。 As described above, in the fourth embodiment of the present invention, the user terminal 200C has a set Q of ciphertexts (encrypted files) of all files including each keyword i (or encrypted keyword) and the keyword i (or encrypted keyword). Since i is set as a set (generation set), an authenticator Tag i is generated for the set, and the generated authenticator Tag i is stored in the server 300C. It can detect not only additions and alterations, but also file replacements.

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

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

クライアント200Dは、秘密鍵生成部210と、秘密鍵保持部220と、検証情報生成部230と、検証部240と、第1乃至第3の信号線(伝送線)260、270、280と、から構成されている。一方、サーバ300Dは、記憶領域310と、検索部320とから構成されている。   The client 200D includes a secret key generation unit 210, a secret key holding unit 220, a verification information generation unit 230, a verification unit 240, and first to third signal lines (transmission lines) 260, 270, and 280. It is configured. On the other hand, the server 300D includes a storage area 310 and a search unit 320.

秘密鍵生成部210は、MACの秘密鍵Kを生成する。秘密鍵保持部220は、この生成されたMACの秘密鍵Kを保持する。   The secret key generation unit 210 generates a MAC secret key K. The secret key holding unit 220 holds the generated MAC secret key K.

クライアント200Dは、N個のファイルを第1の信号線(伝送線)260を介してサーバ300Dへ送信する。サーバ300Dは、その送られてきたN個のファイルを記憶領域310に保管する。したがって、第1の信号線(伝送線)260は、サーバ300DにN個のファイルを保管するファイル保管手段として働く。   The client 200D transmits N files to the server 300D via the first signal line (transmission line) 260. The server 300D stores the sent N files in the storage area 310. Accordingly, the first signal line (transmission line) 260 functions as a file storage unit that stores N files in the server 300D.

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

図10に索引の具体例を示す。前述したように、索引は、キーワードと、それに対応するファイルの番号(ファイル番号)の対応表である。   FIG. 10 shows a specific example of the index. As described above, the index is a correspondence table of keywords and file numbers (file numbers) corresponding to the keywords.

図示の例では、索引の番号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.

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

検証情報生成部230は、MACの秘密鍵K、索引、ファイルの集合{D1、D2、…}を読み込む(ステップS110)。次に、検証情報生成部230は、各キーワードWについて以下の処理を実行する(ステップS120)。ここでは、キーワードWに対応するファイル番号を(i1、i2、…)とする。この場合、検索情報生成部230は、MACの秘密鍵Kを使い、生成用組(W、Di1、Di2、…)に対応する認証子Tagを下記の数式によって計算する。
Tag=f(W、Di1、Di2、…)
ここで、fはMAC生成アルゴリズムである。
The verification information generation unit 230 reads the MAC secret key K, the index, and the set of files {D1, D2,...} (Step S110). Then, verification information generating section 230 executes the following process for each keyword W i (step S120). In this case, the file number that corresponds to the keyword W i (i1, i2, ... ) to be. In this case, the search information generation unit 230 uses the MAC secret key K to calculate the authenticator Tag i corresponding to the generation set (W i , D i1 , D i2 ,...) According to the following equation.
Tag i = f K (W i , D i1 , D i2 ,...)
Here, f is a MAC generation algorithm.

尚、検証情報として、認証子Tagの代わりにデジタル署名σを使用する場合、fは署名生成アルゴリズムであって、検索情報生成部230は、MACの秘密鍵Kの代わりにデジタル署名の秘密鍵skを使用し、生成用組(W、Di1、Di2、…)に対応するデジタル署名σを下記の数式によって計算する。
σ=fsk(W、Di1、Di2、…)
When the digital signature σ i is used instead of the authenticator Tag i as verification information, f is a signature generation algorithm, and the search information generation unit 230 uses the secret of the digital signature instead of the MAC secret key K. Using the key sk, the digital signature σ i corresponding to the generation set (W i , D i1 , D i2 ,...) Is calculated by the following formula.
σ i = f sk (W i , D i1 , D i2 ,...)

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

次に、図12を参照して、検証情報生成部230の動作について具体例を挙げて説明する。ここでは、キーワードが索引番号2の「茨城大学」である場合を例に挙げて説明する。   Next, the operation of the verification information generation unit 230 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.

この場合、検証情報生成部230は、索引を参照して、キーワード「茨城大学」を含む、該当するファイルの集合を選択する。この場合、索引番号2のファイル番号には、「3」、「6」、「10」が記憶されているので、検索情報生成部230は、該当ファイルの集合Pとして、ファイルD3、D6、およびD10を選択する。 In this case, the verification information generation unit 230 refers to the index and selects a set of corresponding files including the keyword “Ibaraki University”. In this case, the file number of the index number 2, "3", "6", since "10" is stored, the search information generating unit 230, as a set P 2 of the file, the file D3, D6, And D10.

そして、検証情報生成部230は、MACの秘密鍵Kを使い、生成用組(茨城大学、D3、D6、D10)に対する検証情報(認証子)Tagを、MAC生成アルゴリズムに従って、下記数式で示されるように生成する。
Tag=f(茨城大学、D3、D6、D10)
Then, the verification information generation unit 230 uses the MAC secret key K to indicate the verification information (authenticator) Tag 2 for the generation set (Ibaraki University, D3, D6, D10) according to the MAC generation algorithm using the following formula. To be generated.
Tag 2 = f K (Ibaraki University, D3, D6, D10)

検証情報生成部230は、このようにして、キーワードi毎の検証情報(認証子)Tagを生成する。生成された検証情報(認証子)Tagは、サーバ300Dへ送られ、サーバ300Dは、送られてきた検証情報(認証子)Tagを記憶領域310に記憶する。 In this way, the verification information generating unit 230 generates verification information (authenticator) Tag i for each keyword i. The generated verification information (authenticator) Tag i is sent to the server 300D, and the server 300D stores the sent verification information (authenticator) Tag i in the storage area 310.

尚、検証情報がデジタル署名σの場合、サーバ300Dはデジタル署名σを記憶領域310に記憶する。 When the verification information is the digital signature σ i , the server 300D stores the digital signature σ i in the storage area 310.

検索時、クライアント200Dは、検索キーワードWを第3の信号線(伝送線)280を介してサーバ300Dに送る。サーバ300Dにおいては、検索キーワードWに応答して、検索部320は、その検索キーワードWを含むファイルの集合P=(Di1、Di2、…)とその検証情報(認証子)Tagとをクライアント200Dへ返す。したがって、クライアント200Dは、ファイルの集合P=(Di1、Di2、…)とその検証情報(認証子)Tagとを取得する。すなわち、第2の信号線(伝送線)280は、検索キーワードWをサーバ300Dへ送って、サーバ300Dから、検索キーワードWを含むファイルの集合P=(Di1、Di2、…)とその検証情報(認証子)Tagとを取得するファイル取得手段として働く。 During the search, the client 200D sends the search keyword W to the server 300D via the third signal line (transmission line) 280. In the server 300D, in response to the search keyword W, the search unit 320 obtains a set P i = (D i1 , D i2 ,...) Including the search keyword W and verification information (authenticator) Tag. Return to client 200D. Therefore, the client 200D acquires a set of files P i = (D i1 , D i2 ,...) And verification information (authenticator) Tag. That is, the second signal line (transmission line) 280 sends the search keyword W to the server 300D, and from the server 300D, a set of files P i = (D i1 , D i2 ,...) Including the search keyword W and its It functions as a file acquisition means for acquiring verification information (authenticator) Tag.

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

検証部240は、秘密鍵保持部220に保持されたMACの秘密鍵Kと、検索キーワードWとを読み込む(ステップS210)。次に、検証部240は、サーバ300Dから送られてきたファイルの集合P=(Di1、Di2、…)とその検証情報(認証子)Tagとを読み込む(ステップS220)。 The verification unit 240 reads the MAC secret key K held in the secret key holding unit 220 and the search keyword W (step S210). Next, the verification unit 240 reads the set of files P i = (D i1 , D i2 ,...) And the verification information (authenticator) Tag sent from the server 300D (step S220).

検証部240は、MACの秘密鍵Kを使い、検証情報(認証子)Tagが検証用組(W、Di1、Di2、…)の認証子であるか否かを、MAC検証アルゴリズムに従って、下記の数式に示されるように計算する(ステップS230)。
Verify(W、Di1、Di2、…、Tag)=accept or reject
The verification unit 240 uses the MAC secret key K to determine whether the verification information (authenticator) Tag is an authenticator of the verification pair (W, D i1 , D i2 ,...) According to the MAC verification algorithm. Calculation is performed as shown in the following equation (step S230).
Verify K (W, D i1 , D i2 ,..., Tag) = accept or reject

検証部240は、acceptなら(ステップS240のYes)、取得したファイルの集合P=(Di1、Di2、…)を所望のファイルの集合として出力し(ステップS250)、rejectなら(ステップS240のNo)、rejectを出力する(ステップS260)。 The verification unit 240 outputs the acquired set of files P i = (D i1 , D i2 ,...) As a desired set of files if accept (Yes in step S240) (step S250), and if reject (step S240). No) and reject are output (step S260).

尚、検証情報がデジタル署名σである場合、検証部240は、デジタル署名の公開鍵(検証鍵)vkを使い、デジタル署名σが、検証用組(W、Di1、Di2、…)の認証子であるか否かを、署名検証アルゴリズムに従って、下記の数式に示されるように計算する。
Verifyvk(W、Di1、Di2、…、σ)=accept or reject
If the verification information is a digital signature σ, the verification unit 240 uses the public key (verification key) vk of the digital signature, and the digital signature σ is a verification pair (W, D i1 , D i2 ,...). Whether or not it is an authenticator is calculated according to the signature verification algorithm as shown in the following equation.
Verify vk (W, D i1 , D i2 ,..., Σ) = accept or reject

次に、図14を参照して、検証部240の動作について具体例を挙げて説明する。ここでは、検索キーワードWが索引番号2の「茨城大学」である場合を例に挙げて説明する。   Next, the operation of the verification unit 240 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.

この場合、検証部240は、秘密鍵保持部220からMACの秘密鍵Kを読み込み、検索キーワードとして「茨城大学」を読み込み、サーバ300Dから送られてきた、ファイルの集合P=(D3、D6、D10)と検証情報(認証子)Tagとを読み込む。 In this case, the verification unit 240 reads the MAC secret key K from the secret key holding unit 220, reads “Ibaraki University” as a search keyword, and sends a set of files P 2 = (D3, D6) sent from the server 300D. D10) and verification information (authenticator) Tag 2 are read.

そして、検証部240は、MACの秘密鍵Kを使い、検証情報(認証子)Tagが検証用組(茨城大学、D3、D6、D10)の認証子であるか否かを、MAC検証アルゴリズムに従って、下記の数式に示されるように計算する。
Verify(茨城大学、D3、D6、D10、Tag)=accept or reject
Then, the verification unit 240 uses the MAC secret key K to determine whether the verification information (authenticator) Tag 2 is an authenticator of the verification group (Ibaraki University, D3, D6, D10). According to the following formula.
Verify K (Ibaraki University, D3, D6, D10, Tag 2 ) = accept or reject

検証部240は、acceptなら、取得したファイルの集合P=(D3、D6、D10)を所望のファイルの集合として出力し、rejectなら、rejectを出力する。 The verification unit 240 outputs the acquired file set P 2 = (D3, D6, D10) as a set of desired files if accept, and outputs reject if reject.

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

本第1の実施例の検索システム100Dは、サーバ300Dの不正として、ファイルの削除、追加、改ざんのみならず、ファイルのすり替えをも検出できる。その理由は、クライアント(ユーザ端末)200Dが各キーワードWと当該キーワードWを含む全てのファイルの集合P=(Di1、Di2、…)とを一組(生成用組)として、それに対する検証情報Tag(又はσ)を生成し、生成した検証情報Tag(又はσ)をサーバ300Dに保管しているからである。 The search system 100D of the first embodiment can detect not only file deletion, addition, and alteration but also file replacement as fraudulent server 300D. The reason is that the client (user terminal) 200D sets each keyword W i and a set P i = (D i1 , D i2 ,...) Including all the keywords W i as one set (generation set). This is because the verification information Tag i (or σ i ) corresponding thereto is generated, and the generated verification information Tag i (or σ i ) is stored in the server 300D.

図15を参照して、本発明の第2の実施例に係る検索システム100Eについて説明する。図示の検索システム100Eは、上述した本発明の第4の実施形態(又は、第3の実施形態)に係る検索システムに相当する検証システムである。検索システム100Eは、クライアント200Eとサーバ300Eとから構成される。クライアント200Eは、ユーザ端末とも呼ばれる。   A search system 100E according to a second example of the present invention will be described with reference to FIG. The illustrated search system 100E is a verification system corresponding to the above-described search system according to the fourth embodiment (or the third embodiment) of the present invention. The search system 100E includes a client 200E and a server 300E. The client 200E is also called a user terminal.

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

クライアント200Eは、秘密鍵生成部210Aと、秘密鍵保持部220Aと、検証情報生成部230Aと、検証部240Aと、第1乃至第3の暗号化部260A、270A、および280Aと、から構成されている。一方、サーバ300Eは、記憶領域310と、検索部320とから構成されている。   The client 200E includes a secret key generation unit 210A, a secret key holding unit 220A, a verification information generation unit 230A, a verification unit 240A, and first to third encryption units 260A, 270A, and 280A. ing. On the other hand, the server 300E includes a storage area 310 and a search unit 320.

秘密鍵生成部210Aは、暗号化の秘密鍵K0とMACの秘密鍵K1とを生成する。秘密鍵保持部220は、この生成された暗号化の秘密鍵K0とMACの秘密鍵K1とを保持する。   The secret key generation unit 210A generates an encryption secret key K0 and a MAC secret key K1. The secret key holding unit 220 holds the generated encryption secret key K0 and MAC secret key K1.

尚、検証情報がデジタル署名である場合、秘密鍵生成部210Aは、暗号化の秘密鍵Kとデジタル署名の公開鍵vkと秘密鍵skとを生成する。   When the verification information is a digital signature, the secret key generation unit 210A generates an encryption secret key K, a digital signature public key vk, and a secret key sk.

第1の暗号化部260Aは、暗号化の秘密鍵K0を使い、N個のファイルの暗号文である暗号ファイル{E(D1)、E(D2)、…}を計算する。これら暗号ファイル{E(D1)、E(D2)、…}は、サーバ300Eへ送られ、サーバ300Eは、その送られてきた暗号ファイル{E(D1)、E(D2)、…}を記憶領域310に記憶する。したがって、第1の暗号化部260Aは、暗号化の秘密鍵K0を使って複数のファイルをそれぞれ暗号化し、複数の暗号ファイルをサーバ300Eに保管する暗号ファイル保管手段として働く。   The first encryption unit 260A calculates an encrypted file {E (D1), E (D2),...} That is a ciphertext of N files using the encryption secret key K0. These encrypted files {E (D1), E (D2),...} Are sent to the server 300E, and the server 300E stores the sent encrypted files {E (D1), E (D2),. Store in area 310. Accordingly, the first encryption unit 260A functions as an encrypted file storage unit that encrypts a plurality of files using the encryption secret key K0 and stores the plurality of encrypted files in the server 300E.

尚、検証情報がデジタル署名である場合、第1の暗号化部260Aは、暗号化の秘密鍵Kを使い、N個のファイルの暗号文(暗号ファイル)を計算する。   When the verification information is a digital signature, the first encryption unit 260A calculates ciphertexts (encrypted files) of N files using the encryption secret key K.

また、クライアント200Eは、索引を生成する。   In addition, the client 200E generates an index.

図16に索引の具体例を示す。前述したように、索引は、キーワードと、それに対応するファイルの番号(ファイル番号)の対応表である。   FIG. 16 shows a specific example of the index. As described above, the index is a correspondence table of keywords and file numbers (file numbers) corresponding to the keywords.

図示の例では、索引の番号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.

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

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

検証情報生成部230Aは、MACの秘密鍵K1、索引、暗号ファイルの集合{E(D1)、E(D2)、…}を読み込む(ステップS110A)。次に、検証情報生成部230Aは、各キーワードWについて以下の処理を実行する(ステップS120A)。ここでは、キーワードWに対応するファイル番号を(i1、i2、…)とする。この場合、検索情報生成部230は、MACの秘密鍵K1を使い、生成用組(W、E(Di1)、E(Di2)、…)に対応する検証情報(認証子)Tagを下記の数式のように計算する。
Tag=fK1(W、E(Di1)、E(Di2)、…)
ここで、fはMAC生成アルゴリズムである。
The verification information generation unit 230A reads the MAC secret key K1, the index, and the set of encrypted files {E (D1), E (D2),...}} (Step S110A). Then, verification information generating section 230A performs the following process for each keyword W i (step S120A). In this case, the file number that corresponds to the keyword W i (i1, i2, ... ) to be. In this case, the search information generation unit 230 uses the MAC secret key K1 and uses the verification information (authenticator) Tag i corresponding to the generation set (W i , E (D i1 ), E (D i2 ),...). Is calculated as in the following formula.
Tag i = f K1 (W i , E (D i1 ), E (D i2 ),...)
Here, f is a MAC generation algorithm.

尚、検証情報として、認証子Tagの代わりにデジタル署名σを使用する場合、fは署名生成アルゴリズムであって、検証情報生成部230Aは、MACの暗号鍵K1の代わりにデジタル署名の秘密鍵skを使用して、生成用組(W、E(Di1)、E(Di2)、…)に対応するデジタル署名σを下記の数式のように計算する。
σ=fsk(W、E(Di1)、E(Di2)、…)
When the digital signature σ i is used instead of the authenticator Tag i as the verification information, f is a signature generation algorithm, and the verification information generation unit 230A uses the secret of the digital signature instead of the MAC encryption key K1. Using the key sk, the digital signature σ i corresponding to the generation set (W i , E (D i1 ), E (D i2 ),...) Is calculated as in the following equation.
σ i = f sk (W i , E (D i1 ), E (D i2 ),...)

検索情報生成部230Aは、計算して得られた検証情報(Tag、Tag、…)を出力する(ステップS130A)。これら検証情報(認証子)は、サーバ300Eに送られ、サーバ300Eは、これら検証情報(認証子)を記憶領域310に記憶する。 The search information generation unit 230A outputs verification information (Tag 1 , Tag 2 ,...) Obtained by calculation (step S130A). The verification information (authentication code) is sent to the server 300E, and the server 300E stores the verification information (authentication code) in the storage area 310.

次に、図18を参照して、検証情報生成部230Aの動作について具体例を挙げて説明する。ここでは、キーワードが索引番号2の「茨城大学」である場合を例に挙げて説明する。   Next, the operation of the verification information generation unit 230A 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.

この場合、検証情報生成部230Aは、索引を参照して、キーワード「茨城大学」を含む、該当する暗号化されたファイル(暗号ファイル)の集合Qを選択する。この場合、索引番号2のファイル番号には、「3」、「6」、「10」が記憶されているので、検索情報生成部230Aは、該当暗号ファイルの集合Qとして、暗号ファイルE(D3)、E(D6)、およびE(D10)を選択する。 In this case, the verification information generation unit 230A refers to the index, including the keyword "Ibaraki", selects a set Q 2 of the corresponding encrypted file (encryption file). In this case, the file number of the index number 2, "3", "6", since "10" is stored, the search information generating unit 230A as a set Q 2 of the corresponding ciphertext file, encrypted file E ( D3), E (D6), and E (D10) are selected.

そして、検証情報生成部230Aは、MACの秘密鍵K1を使い、生成用組(茨城大学、E(D3)、E(D6)、E(D10))に対する検証情報(認証子)Tagを、MAC生成アルゴリズムに従って、下記数式で示されるように生成する。
Tag=fK1(茨城大学、E(D3)、E(D6)、E(D10))
Then, the verification information generation unit 230A uses the MAC secret key K1, and generates verification information (authenticator) Tag 2 for the generation set (Ibaraki University, E (D3), E (D6), E (D10)), According to the MAC generation algorithm, it is generated as shown in the following formula.
Tag 2 = f K1 (Ibaraki University, E (D3), E (D6), E (D10))

検証情報生成部230Aは、このようにして、キーワードi毎の検証情報(認証子)Tagを生成する。生成された検証情報(認証子)Tagは、サーバ300Eへ送られ、サーバ300Eは、送られてきた検証情報(認証子)Tagを記憶領域310に記憶する。 In this way, the verification information generation unit 230A generates verification information (authenticator) Tag i for each keyword i. The generated verification information (authenticator) Tag i is sent to the server 300E, and the server 300E stores the sent verification information (authenticator) Tag i in the storage area 310.

尚、検証情報がデジタル署名σの場合、サーバ300Eは、デジタル署名σを記憶領域310に記憶する。 When the verification information is the digital signature σ i , the server 300E stores the digital signature σ i in the storage area 310.

検索時、クライアント200Eでは、第3の暗号化部280Aが、暗号化の秘密鍵K0を使って検索キーワードWを暗号化し、暗号検索キーワードE’(W)をサーバ300Eに送る。サーバ300Eにおいては、暗号検索キーワードE’(W)に応答して、検索部320は、その検索キーワードWを含む暗号ファイルの集合Q=(E(Di1)、E(Di2)、…)とその検証情報(認証子)Tagとをクライアント200Eへ返す。したがって、クライアント200Eは、暗号ファイルの集合Q=(E(Di1)、E(Di2)、…)とその検証情報(認証子)Tagとを取得する。すなわち、第3の暗号化部280Aは、暗号化の秘密鍵K0を使って検索キーワードWを暗号化して得られる暗号検索キーワードE’(W)をサーバ300Eへ送って、サーバ300Eから、暗号ファイルの集合Q=(E(Di1)、E(Di2)、…)と検索キーワードWに対応する検証情報(認証子)Tagとを取得する暗号ファイル取得手段として働く。 At the time of the search, in the client 200E, the third encryption unit 280A encrypts the search keyword W using the encryption secret key K0 and sends the encrypted search keyword E ′ (W) to the server 300E. In the server 300E, in response to the encryption search keyword E ′ (W), the search unit 320 sets a set of encryption files Q i = (E (D i1 ), E (D i2 ) ,. ) And its verification information (authenticator) Tag are returned to the client 200E. Therefore, the client 200E acquires the set of encrypted files Q i = (E (D i1 ), E (D i2 ),...) And the verification information (authenticator) Tag. That is, the third encryption unit 280A sends the encrypted search keyword E ′ (W) obtained by encrypting the search keyword W using the encryption secret key K0 to the server 300E, and the server 300E sends the encrypted file of the set Q i = (E (D i1 ), E (D i2), ...) to work as a search corresponding to the keyword W verification information (authenticator) encrypted file acquisition means for acquiring and Tag.

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

検証部240Aは、秘密鍵保持部220Aに保持されたMACの秘密鍵K1と、検索キーワードWとを読み込む(ステップS210A)。次に、検証部240Aは、サーバ300Eから送られてきた暗号ファイルの集合Qである暗号ファイル(E(Di1)、E(Di2)、…)とその検証情報(認証子)Tagとを読み込む(ステップS220A)。 The verification unit 240A reads the MAC secret key K1 held in the secret key holding unit 220A and the search keyword W (step S210A). Next, the verification unit 240A includes an encryption file (E (D i1 ), E (D i2 ),...) That is a set Q i of encryption files sent from the server 300E, and its verification information (authenticator) Tag. Is read (step S220A).

検証部240Aは、MACの秘密鍵K1を使い、検証情報(認証子)Tagが検証用組(W、E(Di1)、E(Di2)、…)の認証子であるか否かを、MAC検証アルゴリズムに従って、下記の数式に示されるように計算する(S230A)。
VerifyK1(W、E(Di1)、E(Di2)、…、Tag)=accept or reject
The verification unit 240A uses the MAC secret key K1 and determines whether the verification information (authenticator) Tag is an authenticator of the verification pair (W, E (D i1 ), E (D i2 ),...). According to the MAC verification algorithm, calculation is performed as shown in the following equation (S230A).
Verify K1 (W, E (D i1 ), E (D i2 ),..., Tag) = accept or reject

検証部240Aは、計算結果がacceptなら(ステップS240AのYes)、取得した暗号ファイルの集合Q=(E(Di1)、E(Di2)、…)を復号して、所望のファイルの集合P=(Di1、Di2、…)を出力し(ステップS250A)、rejectなら(ステップS240AのNo)、rejectを出力する(ステップS260A)。 If the calculation result is accept (Yes in step S240A), the verification unit 240A decrypts the acquired encrypted file set Q i = (E (D i1 ), E (D i2 ),...) The set P i = (D i1 , D i2 ,...) Is output (step S250A). If reject (No in step S240A), reject is output (step S260A).

尚、検証情報がデジタル署名σである場合、検証部240Aは、デジタル署名の公開鍵vkを使い、デジタル署名σが検証用組(W、E(Di1)、E(Di2)、…)のデジタル署名であるか否かを、署名検証アルゴリズムに従って、下記の数式に示されるように計算する。
Verifyvk(W、E(Di1)、E(Di2)、…、σ)=accept or reject
If the verification information is a digital signature σ, the verification unit 240A uses the public key vk of the digital signature, and the digital signature σ is a verification pair (W, E (D i1 ), E (D i2 ),...) Is calculated as shown in the following equation according to the signature verification algorithm.
Verify vk (W, E (D i1 ), E (D i2 ),..., Σ) = accept or reject

次に、図20を参照して、検証部240Aの動作について具体例を挙げて説明する。ここでは、検索キーワードWが索引番号2の「茨城大学」である場合を例に挙げて説明する。   Next, the operation of the verification unit 240A 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.

この場合、検証部240Aは、秘密鍵保持部220AからMACの秘密鍵K1を読み込み、検索キーワードとして「茨城大学」を読み込み、サーバ300Eから送られてきた、暗号ファイルの集合Qである暗号ファイル(E(D3)、E(D6)、E(D10))と検証情報(認証子)Tagとを読み込む。 In this case, the verification unit 240A, from the secret key storage unit 220A reads the secret key K1 of the MAC, read the "Ibaraki" as a search keyword, sent from the server 300E, encrypted file is a set Q 2 of the encrypted file (E (D3), E (D6), E (D10)) and verification information (authenticator) Tag 2 are read.

そして、検証部240Aは、MACの秘密鍵K1を使い、検証情報(認証子)Tagが検証用組(茨城大学、E(D3)、E(D6)、E(D10))の認証子であるか否かを、MAC検証アルゴリズムに従って下記の数式のように計算する。
VerifyK1(茨城大学、E(D3)、E(D6)、E(D10)、Tag
=accept or reject
Then, the verification unit 240A uses the MAC secret key K1, and the verification information (authenticator) Tag 2 is an authenticator of the verification group (Ibaraki University, E (D3), E (D6), E (D10)). Whether or not there is is calculated according to the MAC verification algorithm as shown in the following equation.
Verify K1 (Ibaraki University, E (D3), E (D6), E (D10), Tag 2 )
= Accept or reject

検証部240Aは、計算結果がacceptなら、暗号ファイルの集合Q=(E(D3)、E(D6)、E(D10))を復号して、所望のファイルの集合P=(D3、D6、D10)を出力し、rejectなら、rejectを出力する。 If the calculation result is accept, the verification unit 240A decrypts the encrypted file set Q 2 = (E (D3), E (D6), E (D10)), and the desired file set P 2 = (D3, D6 and D10) are output. If reject, reject is output.

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

本第2の実施例の検索システム100Eは、サーバの不正として、ファイルの削除、追加、改ざんばかりでなく、ファイルのすり替えも検出することができる。その理由は、クライアント(ユーザ端末)200Eが各キーワードWと当該キーワードWを含む全てのファイルを暗号化して得られる暗号ファイルの集合Q={E(Di1、E(Di2)、…}とを一組(生成用組)として、それに対する検証情報Tag(又はσ)を生成し、生成した検証情報Tag(又はσ)をサーバ300Eに保管しているからである。 The search system 100E according to the second embodiment can detect not only file deletion, addition, and alteration but also file replacement as a server fraud. The reason is that the client (user terminal) 200E encrypts all the files including each keyword W i and the keyword W i Q i = {E (D i1 , E (D i2 ), This is because the verification information Tag i (or σ i ) is generated as a set (generation set), and the generated verification information Tag i (or σ i ) is stored in the server 300E. .

以上、実施形態(実施例)を参照して本発明を説明したが、本発明は上記実施形態(実施例)に限定されるものではない。本発明の構成や詳細には、本発明のスコープ内で当業者が理解し得る様々な変更をすることができる。   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, wherein the user terminal includes:
File storage means for storing the plurality of files in the server;
A verification information generating unit that generates verification information according to a predetermined generation algorithm for a generation set of a keyword and a set of all files including the keyword, and stores the generated verification information in the server;
A file acquisition means for sending a search keyword to the server and acquiring a set of files including the search keyword and verification information corresponding to the search keyword from the server;
Whether the acquired verification information is verification information of a verification set of the search keyword and the acquired set of files is checked by a predetermined verification algorithm, and if the check result is correct, it is approved and acquired. A verification unit that obtains the set of files obtained as the set of desired files, and rejects otherwise.
Search system having

(付記2) 前記所定の生成アルゴリズムが署名生成アルゴリズムから成り、
前記所定の検証アルゴリズムが署名検証アルゴリズムから成り、
前記検証情報生成部は、デジタル署名の秘密鍵を使って、前記署名生成アルゴリズムに従って、前記検証情報として前記生成用組に対するデジタル署名を生成し、
前記検証部は、デジタル署名の公開鍵を使って、前記署名検証アルゴリズムに従って、取得したデジタル署名が前記検証用組のデジタル署名であるか否かをチェックする、
付記1に記載の検索システム。
(Supplementary note 2) The predetermined generation algorithm comprises a signature generation algorithm,
The predetermined verification algorithm comprises a signature verification algorithm;
The verification information generation unit generates a digital signature for the generation set as the verification information according to the signature generation algorithm using a digital signature private key,
The 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 attachment 1.

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

(付記4) ユーザ端末がサーバに複数のファイルを保管し、前記ユーザ端末がキーワード検索によって前記サーバから所望のファイルの集合を取得する検索方法であって、
前記ユーザ端末が、前記複数のファイルを前記サーバに保管するステップと、
前記ユーザ端末が、キーワードと該キーワードを含む全てのファイルの集合との生成用組に対して所定の生成アルゴリズムに従って検証情報を生成するステップと、
前記ユーザ端末が、前記生成した検証情報を前記サーバに保管するステップと、
前記ユーザ端末が、検索キーワードを前記サーバへ送って、前記サーバから前記検索キーワードを含むファイルの集合と前記検索キーワードに対応する検証情報とを取得するステップと、
前記ユーザ端末が、前記取得した検証情報が、前記検索キーワードと前記取得したファイルの集合との検証用組の検証情報であるか否かを所定の検証アルゴリズムによってチェックするステップと、
前記ユーザ端末が、チェックの結果が正しければ承認して前記取得したファイルの集合を前記所望のファイルの集合として得、そうでなければ拒否するステップと、
を含む検索方法。
(Supplementary Note 4) 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,
The user terminal storing the plurality of files in the server;
The user terminal generating verification information according to a predetermined generation algorithm for a generation set of a keyword and a set of all files including the keyword;
The user terminal storing the generated verification information in the server;
The user terminal sends a search keyword to the server, and acquires a set of files including the search keyword and verification information corresponding to the search keyword from the server;
The user terminal checking whether the acquired verification information is verification information of a verification set of the search keyword and the acquired set of files by a predetermined verification algorithm;
The user terminal approves if the check result is correct, obtains the acquired set of files as the desired set of files, and rejects otherwise;
Search method including

(付記5) 前記所定の生成アルゴリズムが署名生成アルゴリズムから成り、
前記所定の検証アルゴリズムが署名検証アルゴリズムから成り、
前記生成するステップは、デジタル署名の秘密鍵を使って、前記署名生成アルゴリズムに従って、前記検証情報として前記生成用組に対するデジタル署名を生成し、
前記チェックするステップは、デジタル署名の公開鍵を使って、前記署名検証アルゴリズムに従って、取得したデジタル署名が前記検証用組のデジタル署名であるか否かをチェックする、
付記4に記載の検索方法。
(Supplementary Note 5) The predetermined generation algorithm includes a signature generation algorithm,
The predetermined verification algorithm comprises a signature verification algorithm;
The generating step generates a digital signature for the generation set as the verification information according to the signature generation algorithm using a digital signature private key,
The checking step checks whether the obtained 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 method according to attachment 4.

(付記6) 前記所定の生成アルゴリズムがMAC(Message Authentication Code)生成アルゴリズムから成り、
前記所定の検証アルゴリズムがMAC検証アルゴリズムから成り、
前記生成するステップは、MACの秘密鍵を使って、前記MAC生成アルゴリズムに従って、前記検証情報として前記生成用組に対する認証子を生成し、
前記チェックするステップは、前記MACの秘密鍵を使って、前記MAC検証アルゴリズムに従って、取得した認証子が前記検証用組の認証子であるか否かをチェックする、
付記4に記載の検索方法。
(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 generating step generates an authenticator for the generation set as the verification information according to the MAC generation algorithm using a MAC secret key,
The checking step checks whether the acquired authenticator is the authenticator of the verification set according to the MAC verification algorithm using the secret key of the MAC.
The search method according to attachment 4.

(付記7) サーバに複数のファイルを保管し、キーワード検索によって前記サーバから所望のファイルの集合を取得する処理を、コンピュータであるユーザ端末に実行させる検索プログラムであって、前記コンピュータに、
前記複数のファイルを前記サーバに保管する手順と、
キーワードと該キーワードを含む全てのファイルの集合との生成用組に対して所定の生成アルゴリズムに従って検証情報を生成する手順と、
前記生成した検証情報を前記サーバに保管する手順と、
検索キーワードを前記サーバへ送って、前記サーバから前記検索キーワードを含むファイルの集合と前記検索キーワードに対応する検証情報とを取得する手順と、
前記取得した検証情報が、前記検索キーワードと前記取得したファイルの集合との検証用組の検証情報であるか否かを所定の検証アルゴリズムによってチェックする手順と、
チェックの結果が正しければ承認して前記取得したファイルの集合を前記所望のファイルの集合として得、そうでなければ拒否する手順と、
を実行させるための検索プログラム。
(Supplementary note 7) A search program for storing a plurality of files in a server and causing a user terminal, which is a computer, to execute a process of acquiring a desired set of files from the server by keyword search.
Storing the plurality of files on the server;
A procedure for generating verification information in accordance with a predetermined generation algorithm for a generation set of a keyword and a set of all files including the keyword;
A procedure for storing the generated verification information in the server;
Sending a search keyword to the server, and obtaining a set of files containing the search keyword and verification information corresponding to the search keyword from the server;
A procedure for checking whether or not the acquired verification information is verification information of a verification set of the search keyword and the acquired set of files by a predetermined verification algorithm;
If the check result is correct, approve and obtain the acquired set of files as the desired set of files, otherwise reject,
Search program to execute.

(付記8) 前記所定の生成アルゴリズムが署名生成アルゴリズムから成り、
前記所定の検証アルゴリズムが署名検証アルゴリズムから成り、
前記生成する手順は、前記コンピュータに、デジタル署名の秘密鍵を使って、前記署名生成アルゴリズムに従って、前記検証情報として前記生成用組に対するデジタル署名を生成させ、
前記チェックする手順は、前記コンピュータに、デジタル署名の公開鍵を使って、前記署名検証アルゴリズムに従って、取得したデジタル署名が前記検証用組のデジタル署名であるか否かをチェックさせる、
付記7に記載の検索プログラム。
(Supplementary Note 8) The predetermined generation algorithm includes a signature generation algorithm,
The predetermined verification algorithm comprises a signature verification algorithm;
The generating step causes the computer to generate a digital signature for the generation set as the verification information according to the signature generation algorithm using a digital signature private key,
The checking step causes the computer to check whether the obtained digital signature is a digital signature of the verification set according to the signature verification algorithm using a digital signature public key.
The search program according to appendix 7.

(付記9) 前記所定の生成アルゴリズムがMAC(Message Authentication Code)生成アルゴリズムから成り、
前記所定の検証アルゴリズムがMAC検証アルゴリズムから成り、
前記生成する手順は、前記コンピュータに、MACの秘密鍵を使って、前記MAC生成アルゴリズムに従って、前記検証情報として前記生成用組に対する認証子を生成させ、
前記チェックする手順は、前記コンピュータに、前記MACの秘密鍵を使って、前記MAC検証アルゴリズムに従って、取得した認証子が前記検証用組の認証子であるか否かをチェックさせる、
付記7に記載の検索プログラム。
(Supplementary Note 9) The predetermined generation algorithm includes a MAC (Message Authentication Code) generation algorithm,
The predetermined verification algorithm comprises a MAC verification algorithm;
The generating step causes the computer to generate an authenticator for the generation set as the verification information according to the MAC generation algorithm using a MAC secret key,
The checking step causes the computer to check whether the acquired authenticator is the authenticator of the verification set according to the MAC verification algorithm using the MAC secret key.
The search program according to appendix 7.

(付記10) ユーザ端末がサーバに複数の暗号ファイルを保管し、前記ユーザ端末がキーワード検索によって前記サーバから所望のファイルの集合を取得する検索システムであって、前記ユーザ端末は、
暗号化の秘密鍵を使って複数のファイルをそれぞれ暗号化し、前記複数の暗号ファイルを前記サーバに保管する暗号ファイル保管手段と、
キーワードと該キーワードを含む全ての暗号ファイルの集合との生成用組に対して所定の生成アルゴリズムに従って検証情報を生成し、該生成した検証情報を前記サーバに保管する検証情報生成部と、
前記暗号化の秘密鍵を使って検索キーワードを暗号化して得られる暗号検索キーワードを前記サーバへ送って、前記サーバから前記暗号検索キーワードを含む暗号ファイルの集合と前記検索キーワードに対応する検証情報とを取得する暗号ファイル取得手段と、
該取得した検証情報が、前記検索キーワードと前記取得した暗号ファイルの集合との検証用組の検証情報であるか否かを所定の検証アルゴリズムによってチェックし、チェックの結果が正しければ承認して前記取得した暗号ファイルの集合を復号して前記所望のファイルの集合を得、そうでなければ拒否する検証部と、
を有する検索システム。
(Supplementary Note 10) 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, 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 in the server;
A verification information generating unit for generating verification information according to a predetermined generation algorithm for a generation set of a keyword and a set of all encrypted files including the keyword, and storing the generated verification information in the server;
Sending an encrypted search keyword obtained by encrypting a search keyword using the encryption private key to the server, a set of encrypted files including the encrypted search keyword from the server, and verification information corresponding to the search keyword; Encrypted file acquisition means for acquiring
Whether the acquired verification information is verification information of a verification set of the search keyword and the acquired set of encrypted files is checked by a predetermined verification algorithm, and if the check result is correct, it is approved and A verification unit that decrypts the obtained set of encrypted files to obtain the desired set of files, and rejects otherwise;
Search system having

(付記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, 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 in the server;
Generating verification information according to a predetermined generation algorithm for a generation set of an encryption keyword obtained by encrypting a keyword using the encryption private key and a set of all encryption files including the encryption keyword, A verification information generation unit for storing the generated verification information in the server;
A cryptographic search keyword obtained by encrypting a search keyword using the encryption private key is sent to the server, and a set of cryptographic files including the cryptographic search keyword from the server and verification information corresponding to the cryptographic search keyword Encrypted file acquisition means for acquiring
Whether the acquired verification information is verification information of a verification set of the cryptographic search keyword and the acquired set of encrypted files is checked by a predetermined verification algorithm, and if the check result is correct, it is approved. A verification unit that decrypts the obtained set of encrypted files to obtain the desired set of files, and rejects otherwise;
Search system having

(付記12) 前記所定の生成アルゴリズムが署名生成アルゴリズムから成り、
前記所定の検証アルゴリズムが署名検証アルゴリズムから成り、
前記検証情報生成部は、デジタル署名の秘密鍵を使って、前記署名生成アルゴリズムに従って、前記検証情報として前記生成用組に対するデジタル署名を生成し、
前記検証部は、デジタル署名の公開鍵を使って、前記署名検証アルゴリズムに従って、取得したデジタル署名が前記検証用組のデジタル署名であるか否かをチェックする、
付記10又は11に記載の検索システム。
(Supplementary Note 12) The predetermined generation algorithm includes a signature generation algorithm,
The predetermined verification algorithm comprises a signature verification algorithm;
The verification information generation unit generates a digital signature for the generation set as the verification information according to the signature generation algorithm using a digital signature private key,
The 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 appendix 10 or 11.

(付記13) 前記所定の生成アルゴリズムがMAC(Message Authentication Code)生成アルゴリズムから成り、
前記所定の検証アルゴリズムがMAC検証アルゴリズムから成り、
前記検証情報生成部は、MACの秘密鍵を使って、前記MAC生成アルゴリズムに従って、前記検証情報として前記生成用組に対する認証子を生成し、
前記検証部は、前記MACの秘密鍵を使って、前記MAC検証アルゴリズムに従って、取得した認証子が前記検証用組の認証子であるか否かをチェックする、
付記10又は11に記載の検索システム。
(Supplementary note 13) The predetermined generation algorithm comprises a MAC (Message Authentication Code) generation algorithm,
The predetermined verification algorithm comprises a MAC verification algorithm;
The verification information generation unit generates an authenticator for the generation set as the verification information according to the MAC generation algorithm using a MAC secret key,
The verification unit uses the MAC secret key to check whether the acquired authenticator is an authenticator of the verification set according to the MAC verification algorithm.
The search system according to appendix 10 or 11.

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

(付記15) ユーザ端末がサーバに複数の暗号ファイルを保管し、前記ユーザ端末がキーワード検索によって前記サーバから所望のファイルの集合を取得する検索方法であって、
前記ユーザ端末が、暗号化の秘密鍵を使って複数のファイルをそれぞれ暗号化し、前記複数の暗号ファイルを前記サーバに保管するステップと、
前記ユーザ端末が、前記暗号化の秘密鍵を使って暗号化して得られる暗号キーワードと該暗号キーワードを含む全ての暗号ファイルの集合との生成用組に対して所定の生成アルゴリズムに従って検証情報を生成するステップと、
前記ユーザ端末が、前記生成した検証情報を前記サーバに保管するステップと、
前記ユーザ端末が、前記暗号化の秘密鍵を使って検索キーワードを暗号化して得られる暗号検索キーワードを前記サーバへ送って、前記サーバから前記暗号検索キーワードを含む暗号ファイルの集合と前記暗号検索キーワードに対応する検証情報とを取得するステップと、
前記ユーザ端末が、前記取得した検証情報が、前記暗号検索キーワードと前記取得した暗号ファイルの集合との検証用組の検証情報であるか否かを所定の検証アルゴリズムによってチェックするステップと、
前記ユーザ端末が、チェックの結果が正しければ承認して前記取得した暗号ファイルの集合を復号して前記所望のファイルの集合を得、そうでなければ拒否するステップと、
を含む検索方法。
(Supplementary note 15) 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,
The user terminal encrypts each of a plurality of files using an encryption private key, and stores the plurality of encrypted files in the server;
The user terminal generates verification information according to a predetermined generation algorithm for a generation set of an encryption keyword obtained by encryption using the encryption private key and a set of all encryption files including the encryption keyword And steps to
The user terminal storing the generated verification information in the server;
The user terminal sends an encryption search keyword obtained by encrypting a search keyword using the encryption private key to the server, and a set of encrypted files including the encryption search keyword from the server and the encryption search keyword Obtaining verification information corresponding to
The user terminal checks whether or not the acquired verification information is verification information of a verification set of the cryptographic search keyword and the acquired set of encrypted files by a predetermined verification algorithm;
The user terminal approves if the check result is correct and decrypts the acquired set of encrypted files to obtain the desired set of files, otherwise rejects;
Search method including

(付記16) 前記所定の生成アルゴリズムが署名生成アルゴリズムから成り、
前記所定の検証アルゴリズムが署名検証アルゴリズムから成り、
前記生成するステップは、デジタル署名の秘密鍵を使って、前記署名生成アルゴリズムに従って、前記検証情報として前記生成用組に対するデジタル署名を生成し、
前記チェックするステップは、デジタル署名の公開鍵を使って、前記署名検証アルゴリズムに従って、取得したデジタル署名が前記検証用組のデジタル署名であるか否かをチェックする、
付記14又は15に記載の検索方法。
(Supplementary Note 16) The predetermined generation algorithm includes a signature generation algorithm,
The predetermined verification algorithm comprises a signature verification algorithm;
The generating step generates a digital signature for the generation set as the verification information according to the signature generation algorithm using a digital signature private key,
The checking step checks whether the obtained 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 method according to appendix 14 or 15.

(付記17) 前記所定の生成アルゴリズムがMAC(Message Authentication Code)生成アルゴリズムから成り、
前記所定の検証アルゴリズムがMAC検証アルゴリズムから成り、
前記生成するステップは、MACの秘密鍵を使って、前記MAC生成アルゴリズムに従って、前記検証情報として前記生成用組に対する認証子を生成し、
前記チェックするステップは、前記MACの秘密鍵を使って、前記MAC検証アルゴリズムに従って、取得した認証子が前記検証用組の認証子であるか否かをチェックする、
付記14又は15に記載の検索方法。
(Supplementary Note 17) The predetermined generation algorithm includes a MAC (Message Authentication Code) generation algorithm,
The predetermined verification algorithm comprises a MAC verification algorithm;
The generating step generates an authenticator for the generation set as the verification information according to the MAC generation algorithm using a MAC secret key,
The checking step checks whether the acquired authenticator is the authenticator of the verification set according to the MAC verification algorithm using the secret key of the MAC.
The search method according to appendix 14 or 15.

(付記18) サーバに複数の暗号ファイルを保管し、キーワード検索によって前記サーバから所望のファイルの集合を取得する処理を、コンピュータであるユーザ端末に実行させる検索プログラムであって、前記コンピュータに、
暗号化の秘密鍵を使って複数のファイルをそれぞれ暗号化し、前記複数の暗号ファイルを前記サーバに保管する手順と、
キーワードと該キーワードを含む全ての暗号ファイルの集合との生成用組に対して所定の生成アルゴリズムに従って検証情報を生成する手順と、
前記生成した検証情報を前記サーバに保管する手順と、
前記暗号化の秘密鍵を使って検索キーワードを暗号化して得られる暗号検索キーワードを前記サーバへ送って、前記サーバから前記暗号検索キーワードを含む暗号ファイルの集合と前記検索キーワードに対応する検証情報とを取得する手順と、
前記取得した検証情報が、前記検索キーワードと前記取得した暗号ファイルの集合との検証用組の検証情報であるか否かを所定の検証アルゴリズムによってチェックする手順と、
チェックの結果が正しければ承認して前記取得した暗号ファイルの集合を復号して前記所望のファイルの集合を得、そうでなければ拒否する手順と、
を実行させるための検索プログラム。
(Supplementary Note 18) A search program for storing a plurality of encrypted files in a server and causing a user terminal, which is a computer, to execute a process of acquiring a desired set of files from the server by keyword search,
Encrypting each of a plurality of files using an encryption private key, and storing the plurality of encrypted files in the server;
Generating verification information according to a predetermined generation algorithm for a generation set of a keyword and a set of all encrypted files including the keyword;
A procedure for storing the generated verification information in the server;
Sending an encrypted search keyword obtained by encrypting a search keyword using the encryption private key to the server, a set of encrypted files including the encrypted search keyword from the server, and verification information corresponding to the search keyword; With the steps to get
A procedure for checking whether or not the acquired verification information is verification information of a verification set of the search keyword and the acquired set of encrypted files by a predetermined verification algorithm;
Approve if the check result is correct, decrypt the acquired set of encrypted files to obtain the desired set of files, otherwise reject,
Search program to execute.

(付記19) サーバに複数の暗号ファイルを保管し、キーワード検索によって前記サーバから所望のファイルの集合を取得する処理を、コンピュータであるユーザ端末に実行させる検索プログラムであって、前記コンピュータに、
暗号化の秘密鍵を使って複数のファイルをそれぞれ暗号化し、前記複数の暗号ファイルを前記サーバに保管する手順と、
前記暗号化の秘密鍵を使ってキーワードを暗号化して得られる暗号キーワードと該暗号キーワードを含む全ての暗号ファイルの集合との生成用組に対して所定の生成アルゴリズムに従って検証情報を生成する手順と、
前記生成した検証情報を前記サーバに保管する手順と、
前記暗号化の秘密鍵を使って検索キーワードを暗号化して得られる暗号検索キーワードを前記サーバへ送って、前記サーバから前記暗号検索キーワードを含む暗号ファイルの集合と前記暗号検索キーワードに対応する検証情報とを取得する手順と、
前記取得した検証情報が、前記暗号検索キーワードと前記取得した暗号ファイルの集合との検証用組の検証情報であるか否かを所定の検証アルゴリズムによってチェックする手順と、
チェックの結果が正しければ承認して前記取得した暗号ファイルの集合を復号して前記所望のファイルの集合を得、そうでなければ拒否する手順と、
を実行させるための検索プログラム。
(Supplementary Note 19) A search program for storing a plurality of encrypted files in a server and causing a user terminal, which is a computer, to execute a process of acquiring a desired set of files from the server by keyword search,
Encrypting each of a plurality of files using an encryption private key, and storing the plurality of encrypted files in the server;
A procedure for generating verification information according to a predetermined generation algorithm for a generation set of an encryption keyword obtained by encrypting a keyword using the encryption secret key and a set of all encryption files including the encryption keyword; ,
A procedure for storing the generated verification information in the server;
A cryptographic search keyword obtained by encrypting a search keyword using the encryption private key is sent to the server, and a set of cryptographic files including the cryptographic search keyword from the server and verification information corresponding to the cryptographic search keyword And steps to get and
A procedure for checking whether or not the acquired verification information is verification information of a verification set of the cryptographic search keyword and the acquired set of encrypted files by a predetermined verification algorithm;
Approve if the check result is correct, decrypt the acquired set of encrypted files to obtain the desired set of files, otherwise reject,
Search program to execute.

(付記20) 前記所定の生成アルゴリズムが署名生成アルゴリズムから成り、
前記所定の検証アルゴリズムが署名検証アルゴリズムから成り、
前記生成する手順は、前記コンピュータに、デジタル署名の秘密鍵を使って、前記署名生成アルゴリズムに従って、前記検証情報として前記生成用組に対するデジタル署名を生成させ、
前記チェックする手順は、前記コンピュータに、デジタル署名の公開鍵を使って、前記署名検証アルゴリズムに従って、取得したデジタル署名が前記検証用組のデジタル署名であるか否かをチェックせる、
付記18又は19に記載の検索プログラム。
(Supplementary note 20) The predetermined generation algorithm includes a signature generation algorithm,
The predetermined verification algorithm comprises a signature verification algorithm;
The generating step causes the computer to generate a digital signature for the generation set as the verification information according to the signature generation algorithm using a digital signature private key,
The checking step causes the computer to check 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 program according to appendix 18 or 19.

(付記21) 前記所定の生成アルゴリズムがMAC(Message Authentication Code)生成アルゴリズムから成り、
前記所定の検証アルゴリズムがMAC検証アルゴリズムから成り、
前記生成する手順は、前記コンピュータに、MACの秘密鍵を使って、前記MAC生成アルゴリズムに従って、前記検証情報として前記生成用組に対する認証子を生成させ、
前記チェックする手順は、前記コンピュータに、前記MACの秘密鍵を使って、前記MAC検証アルゴリズムに従って、取得した認証子が前記検証用組の認証子であるか否かをチェックさせる、
付記18又は19に記載の検索プログラム。
(Supplementary note 21) The predetermined generation algorithm includes a MAC (Message Authentication Code) generation algorithm,
The predetermined verification algorithm comprises a MAC verification algorithm;
The generating step causes the computer to generate an authenticator for the generation set as the verification information according to the MAC generation algorithm using a MAC secret key,
The checking step causes the computer to check whether the acquired authenticator is the authenticator of the verification set according to the MAC verification algorithm using the MAC secret key.
The search program according to appendix 18 or 19.

本発明は、キーワード検索におけるサーバの不正を検出する方式に利用可能である。   The present invention can be used for a method for detecting fraud of a server in keyword search.

100、100A、100B、100C、100D、100E 検索システム
200、200A、200B、200C ユーザ端末
200D、200E クライアント
210、210A 秘密鍵生成部
220、220A 秘密鍵保持部
230、230A 検証情報生成部
240、240A 検証部
260 第1の信号線(ファイル保管手段)
260A 第1の暗号化部(暗号ファイル保管手段)
270 第2の信号線(索引保管手段)
270A 第2の暗号化部(暗号索引保管手段)
280 第3の信号線(ファイル取得手段)
280A 第3の暗号化部(暗号ファイル取得手段)
300、300A、300B、300C、300D、300E サーバ
310 記憶領域
320 検索部
100, 100A, 100B, 100C, 100D, 100E Search system 200, 200A, 200B, 200C User terminal 200D, 200E Client 210, 210A Private key generation unit 220, 220A Private key holding unit 230, 230A Verification information generation unit 240, 240A Verification unit 260 First signal line (file storage means)
260A First encryption unit (encrypted file storage means)
270 Second signal line (index storage means)
270A Second encryption unit (cryptographic index storage means)
280 Third signal line (file acquisition means)
280A Third encryption unit (encrypted file acquisition means)
300, 300A, 300B, 300C, 300D, 300E Server 310 Storage area 320 Search unit

Claims (10)

ユーザ端末がサーバに複数のファイルを保管し、前記ユーザ端末がキーワード検索によって前記サーバから所望のファイルの集合を取得する検索システムであって、前記ユーザ端末は、
前記複数のファイルを前記サーバに保管するファイル保管手段と、
キーワードと該キーワードを含む全てのファイルの集合との生成用組に対して所定の生成アルゴリズムに従って検証情報を生成し、該生成した検証情報を前記サーバに保管する検証情報生成部と、
検索キーワードを前記サーバへ送って、前記サーバから前記検索キーワードを含むファイルの集合と前記検索キーワードに対応する検証情報とを取得するファイル取得手段と、
該取得した検証情報が、前記検索キーワードと前記取得したファイルの集合との検証用組の検証情報であるか否かを所定の検証アルゴリズムによってチェックし、チェックの結果が正しければ承認して前記取得したファイルの集合を前記所望のファイルの集合として得、そうでなければ拒否する検証部と、
を有する検索システム。
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, wherein the user terminal includes:
File storage means for storing the plurality of files in the server;
A verification information generating unit that generates verification information according to a predetermined generation algorithm for a generation set of a keyword and a set of all files including the keyword, and stores the generated verification information in the server;
A file acquisition means for sending a search keyword to the server and acquiring a set of files including the search keyword and verification information corresponding to the search keyword from the server;
Whether the acquired verification information is verification information of a verification set of the search keyword and the acquired set of files is checked by a predetermined verification algorithm, and if the check result is correct, it is approved and acquired. A verification unit that obtains the set of files obtained as the set of desired files, and rejects otherwise.
Search system having
前記所定の生成アルゴリズムが署名生成アルゴリズムから成り、
前記所定の検証アルゴリズムが署名検証アルゴリズムから成り、
前記検証情報生成部は、デジタル署名の秘密鍵を使って、前記署名生成アルゴリズムに従って、前記検証情報として前記生成用組に対するデジタル署名を生成し、
前記検証部は、デジタル署名の公開鍵を使って、前記署名検証アルゴリズムに従って、取得したデジタル署名が前記検証用組のデジタル署名であるか否かをチェックする、
請求項1に記載の検索システム。
The predetermined generation algorithm comprises a signature generation algorithm;
The predetermined verification algorithm comprises a signature verification algorithm;
The verification information generation unit generates a digital signature for the generation set as the verification information according to the signature generation algorithm using a digital signature private key,
The 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 claim 1.
前記所定の生成アルゴリズムがMAC(Message Authentication Code)生成アルゴリズムから成り、
前記所定の検証アルゴリズムがMAC検証アルゴリズムから成り、
前記検証情報生成部は、MACの秘密鍵を使って、前記MAC生成アルゴリズムに従って、前記検証情報として前記生成用組に対する認証子を生成し、
前記検証部は、前記MACの秘密鍵を使って、前記MAC検証アルゴリズムに従って、取得した認証子が前記検証用組の認証子であるか否かをチェックする、
請求項1に記載の検索システム。
The predetermined generation algorithm comprises a MAC (Message Authentication Code) generation algorithm,
The predetermined verification algorithm comprises a MAC verification algorithm;
The verification information generation unit generates an authenticator for the generation set as the verification information according to the MAC generation algorithm using a MAC secret key,
The verification unit uses the MAC secret key to check whether the acquired authenticator is an authenticator of the verification set according to the MAC verification algorithm.
The search system according to claim 1.
ユーザ端末がサーバに複数のファイルを保管し、前記ユーザ端末がキーワード検索によって前記サーバから所望のファイルの集合を取得する検索方法であって、
前記ユーザ端末が、前記複数のファイルを前記サーバに保管するステップと、
前記ユーザ端末が、キーワードと該キーワードを含む全てのファイルの集合との生成用組に対して所定の生成アルゴリズムに従って検証情報を生成するステップと、
前記ユーザ端末が、前記生成した検証情報を前記サーバに保管するステップと、
前記ユーザ端末が、検索キーワードを前記サーバへ送って、前記サーバから前記検索キーワードを含むファイルの集合と前記検索キーワードに対応する検証情報とを取得するステップと、
前記ユーザ端末が、前記取得した検証情報が、前記検索キーワードと前記取得したファイルの集合との検証用組の検証情報であるか否かを所定の検証アルゴリズムによってチェックするステップと、
前記ユーザ端末が、チェックの結果が正しければ承認して前記取得したファイルの集合を前記所望のファイルの集合として得、そうでなければ拒否するステップと、
を含む検索方法。
A search method 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,
The user terminal storing the plurality of files in the server;
The user terminal generating verification information according to a predetermined generation algorithm for a generation set of a keyword and a set of all files including the keyword;
The user terminal storing the generated verification information in the server;
The user terminal sends a search keyword to the server, and acquires a set of files including the search keyword and verification information corresponding to the search keyword from the server;
The user terminal checking whether the acquired verification information is verification information of a verification set of the search keyword and the acquired set of files by a predetermined verification algorithm;
The user terminal approves if the check result is correct, obtains the acquired set of files as the desired set of files, and rejects otherwise;
Search method including
サーバに複数のファイルを保管し、キーワード検索によって前記サーバから所望のファイルの集合を取得する処理を、コンピュータであるユーザ端末に実行させる検索プログラムであって、前記コンピュータに、
前記複数のファイルを前記サーバに保管する手順と、
キーワードと該キーワードを含む全てのファイルの集合との生成用組に対して所定の生成アルゴリズムに従って検証情報を生成する手順と、
前記生成した検証情報を前記サーバに保管する手順と、
検索キーワードを前記サーバへ送って、前記サーバから前記検索キーワードを含むファイルの集合と前記検索キーワードに対応する検証情報とを取得する手順と、
前記取得した検証情報が、前記検索キーワードと前記取得したファイルの集合との検証用組の検証情報であるか否かを所定の検証アルゴリズムによってチェックする手順と、
チェックの結果が正しければ承認して前記取得したファイルの集合を前記所望のファイルの集合として得、そうでなければ拒否する手順と、
を実行させるための検索プログラム。
A search program for storing a plurality of files in a server and causing a user terminal, which is a computer, to execute processing for acquiring a set of desired files from the server by keyword search,
Storing the plurality of files on the server;
A procedure for generating verification information in accordance with a predetermined generation algorithm for a generation set of a keyword and a set of all files including the keyword;
A procedure for storing the generated verification information in the server;
Sending a search keyword to the server, and obtaining a set of files containing the search keyword and verification information corresponding to the search keyword from the server;
A procedure for checking whether or not the acquired verification information is verification information of a verification set of the search keyword and the acquired set of files by a predetermined verification algorithm;
If the check result is correct, approve and obtain the acquired set of files as the desired set of files, otherwise reject,
Search program to execute.
ユーザ端末がサーバに複数の暗号ファイルを保管し、前記ユーザ端末がキーワード検索によって前記サーバから所望のファイルの集合を取得する検索システムであって、前記ユーザ端末は、
暗号化の秘密鍵を使って複数のファイルをそれぞれ暗号化し、前記複数の暗号ファイルを前記サーバに保管する暗号ファイル保管手段と、
キーワードと該キーワードを含む全ての暗号ファイルの集合との生成用組に対して所定の生成アルゴリズムに従って検証情報を生成し、該生成した検証情報を前記サーバに保管する検証情報生成部と、
前記暗号化の秘密鍵を使って検索キーワードを暗号化して得られる暗号検索キーワードを前記サーバへ送って、前記サーバから前記暗号検索キーワードを含む暗号ファイルの集合と前記検索キーワードに対応する検証情報とを取得する暗号ファイル取得手段と、
該取得した検証情報が、前記検索キーワードと前記取得した暗号ファイルの集合との検証用組の検証情報であるか否かを所定の検証アルゴリズムによってチェックし、チェックの結果が正しければ承認して前記取得した暗号ファイルの集合を復号して前記所望のファイルの集合を得、そうでなければ拒否する検証部と、
を有する検索システム。
A user terminal stores a plurality of encrypted files in a server, and the user terminal acquires a desired set of files from the server by keyword search, 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 in the server;
A verification information generating unit for generating verification information according to a predetermined generation algorithm for a generation set of a keyword and a set of all encrypted files including the keyword, and storing the generated verification information in the server;
Sending an encrypted search keyword obtained by encrypting a search keyword using the encryption private key to the server, a set of encrypted files including the encrypted search keyword from the server, and verification information corresponding to the search keyword; Encrypted file acquisition means for acquiring
Whether the acquired verification information is verification information of a verification set of the search keyword and the acquired set of encrypted files is checked by a predetermined verification algorithm, and if the check result is correct, it is approved and A verification unit that decrypts the obtained set of encrypted files to obtain the desired set of files, and rejects otherwise;
Search system having
前記所定の生成アルゴリズムが署名生成アルゴリズムから成り、
前記所定の検証アルゴリズムが署名検証アルゴリズムから成り、
前記検証情報生成部は、デジタル署名の秘密鍵を使って、前記署名生成アルゴリズムに従って、前記検証情報として前記生成用組に対するデジタル署名を生成し、
前記検証部は、デジタル署名の公開鍵を使って、前記署名検証アルゴリズムに従って、取得したデジタル署名が前記検証用組のデジタル署名であるか否かをチェックする、
請求項6に記載の検索システム。
The predetermined generation algorithm comprises a signature generation algorithm;
The predetermined verification algorithm comprises a signature verification algorithm;
The verification information generation unit generates a digital signature for the generation set as the verification information according to the signature generation algorithm using a digital signature private key,
The 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 claim 6.
前記所定の生成アルゴリズムがMAC(Message Authentication Code)生成アルゴリズムから成り、
前記所定の検証アルゴリズムがMAC検証アルゴリズムから成り、
前記検証情報生成部は、MACの秘密鍵を使って、前記MAC生成アルゴリズムに従って、前記検証情報として前記生成用組に対する認証子を生成し、
前記検証部は、前記MACの秘密鍵を使って、前記MAC検証アルゴリズムに従って、取得した認証子が前記検証用組の認証子であるか否かをチェックする、
請求項6に記載の検索システム。
The predetermined generation algorithm comprises a MAC (Message Authentication Code) generation algorithm,
The predetermined verification algorithm comprises a MAC verification algorithm;
The verification information generation unit generates an authenticator for the generation set as the verification information according to the MAC generation algorithm using a MAC secret key,
The verification unit uses the MAC secret key to check whether the acquired authenticator is an authenticator of the verification set according to the MAC verification algorithm.
The search system according to claim 6.
ユーザ端末がサーバに複数の暗号ファイルを保管し、前記ユーザ端末がキーワード検索によって前記サーバから所望のファイルの集合を取得する検索方法であって、
前記ユーザ端末が、暗号化の秘密鍵を使って複数のファイルをそれぞれ暗号化し、前記複数の暗号ファイルを前記サーバに保管するステップと、
前記ユーザ端末が、キーワードと該キーワードを含む全ての暗号ファイルの集合との生成用組に対して所定の生成アルゴリズムに従って検証情報を生成するステップと、
前記ユーザ端末が、前記生成した検証情報を前記サーバに保管するステップと、
前記ユーザ端末が、前記暗号化の秘密鍵を使って検索キーワードを暗号化して得られる暗号検索キーワードを前記サーバへ送って、前記サーバから前記暗号検索キーワードを含む暗号ファイルの集合と前記検索キーワードに対応する検証情報とを取得するステップと、
前記ユーザ端末が、前記取得した検証情報が、前記検索キーワードと前記取得した暗号ファイルの集合との検証用組の検証情報であるか否かを所定の検証アルゴリズムによってチェックするステップと、
前記ユーザ端末が、チェックの結果が正しければ承認して前記取得した暗号ファイルの集合を復号して前記所望のファイルの集合を得、そうでなければ拒否するステップと、
を含む検索方法。
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,
The user terminal encrypts each of a plurality of files using an encryption private key, and stores the plurality of encrypted files in the server;
The user terminal generating verification information according to a predetermined generation algorithm for a generation set of a keyword and a set of all encrypted files including the keyword;
The user terminal storing the generated verification information in the server;
The user terminal sends an encrypted search keyword obtained by encrypting a search keyword using the encrypted secret key to the server, and a set of encrypted files including the encrypted search keyword and the search keyword are sent from the server. Obtaining corresponding verification information;
The user terminal checks whether the acquired verification information is verification information of a verification set of the search keyword and the acquired set of encrypted files by a predetermined verification algorithm;
The user terminal approves if the check result is correct and decrypts the acquired set of encrypted files to obtain the desired set of files, otherwise rejects;
Search method including
サーバに複数の暗号ファイルを保管し、キーワード検索によって前記サーバから所望のファイルの集合を取得する処理を、コンピュータであるユーザ端末に実行させる検索プログラムであって、前記コンピュータに、
暗号化の秘密鍵を使って複数のファイルをそれぞれ暗号化し、前記複数の暗号ファイルを前記サーバに保管する手順と、
キーワードと該キーワードを含む全ての暗号ファイルの集合との生成用組に対して所定の生成アルゴリズムに従って検証情報を生成する手順と、
前記生成した検証情報を前記サーバに保管する手順と、
前記暗号化の秘密鍵を使って検索キーワードを暗号化して得られる暗号検索キーワードを前記サーバへ送って、前記サーバから前記暗号検索キーワードを含む暗号ファイルの集合と前記検索キーワードに対応する検証情報とを取得する手順と、
前記取得した検証情報が、前記検索キーワードと前記取得した暗号ファイルの集合との検証用組の検証情報であるか否かを所定の検証アルゴリズムによってチェックする手順と、
チェックの結果が正しければ承認して前記取得した暗号ファイルの集合を復号して前記所望のファイルの集合を得、そうでなければ拒否する手順と、
を実行させるための検索プログラム。
A search program for storing a plurality of encrypted files in a server and causing a user terminal, which is a computer, to execute a process of acquiring a desired set of files from the server by keyword search.
Encrypting each of a plurality of files using an encryption private key, and storing the plurality of encrypted files in the server;
Generating verification information according to a predetermined generation algorithm for a generation set of a keyword and a set of all encrypted files including the keyword;
A procedure for storing the generated verification information in the server;
Sending an encrypted search keyword obtained by encrypting a search keyword using the encryption private key to the server, a set of encrypted files including the encrypted search keyword from the server, and verification information corresponding to the search keyword; With the steps to get
A procedure for checking whether or not the acquired verification information is verification information of a verification set of the search keyword and the acquired set of encrypted files by a predetermined verification algorithm;
Approve if the check result is correct, decrypt the acquired set of encrypted files to obtain the desired set of files, otherwise reject,
Search program to execute.
JP2012020691A 2012-02-02 2012-02-02 SEARCH SYSTEM, SEARCH METHOD, AND SEARCH PROGRAM Expired - Fee Related JP5970193B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2012020691A JP5970193B2 (en) 2012-02-02 2012-02-02 SEARCH SYSTEM, SEARCH METHOD, AND SEARCH PROGRAM

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012020691A JP5970193B2 (en) 2012-02-02 2012-02-02 SEARCH SYSTEM, SEARCH METHOD, AND SEARCH PROGRAM

Publications (2)

Publication Number Publication Date
JP2013161154A true JP2013161154A (en) 2013-08-19
JP5970193B2 JP5970193B2 (en) 2016-08-17

Family

ID=49173372

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012020691A Expired - Fee Related JP5970193B2 (en) 2012-02-02 2012-02-02 SEARCH SYSTEM, SEARCH METHOD, AND SEARCH PROGRAM

Country Status (1)

Country Link
JP (1) JP5970193B2 (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015107561A1 (en) * 2014-01-14 2015-07-23 三菱電機株式会社 Search system, search method, and search program
US10361840B2 (en) 2014-10-21 2019-07-23 Mitsubishi Electric Corporation Server apparatus, search system, terminal apparatus, search method, non-transitory computer readable medium storing server program, and non-transitory computer readable medium storing terminal program
JP2021090151A (en) * 2019-12-04 2021-06-10 株式会社日立製作所 Storage system and data protection method thereof

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001147898A (en) * 1999-11-18 2001-05-29 Ricoh Co Ltd Electronic preserving method and device for guaranteeing originality and computer readable recording medium
JP2002229835A (en) * 2001-01-31 2002-08-16 Olympus Optical Co Ltd File management system by computer and its program and program recording medium
JP2010205258A (en) * 2008-11-11 2010-09-16 Nec (China) Co Ltd Search method, search apparatus, index generation method, and index generation apparatus

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001147898A (en) * 1999-11-18 2001-05-29 Ricoh Co Ltd Electronic preserving method and device for guaranteeing originality and computer readable recording medium
JP2002229835A (en) * 2001-01-31 2002-08-16 Olympus Optical Co Ltd File management system by computer and its program and program recording medium
JP2010205258A (en) * 2008-11-11 2010-09-16 Nec (China) Co Ltd Search method, search apparatus, index generation method, and index generation apparatus

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015107561A1 (en) * 2014-01-14 2015-07-23 三菱電機株式会社 Search system, search method, and search program
US10361840B2 (en) 2014-10-21 2019-07-23 Mitsubishi Electric Corporation Server apparatus, search system, terminal apparatus, search method, non-transitory computer readable medium storing server program, and non-transitory computer readable medium storing terminal program
JP2021090151A (en) * 2019-12-04 2021-06-10 株式会社日立製作所 Storage system and data protection method thereof

Also Published As

Publication number Publication date
JP5970193B2 (en) 2016-08-17

Similar Documents

Publication Publication Date Title
US20220407720A1 (en) Electronic identification verification methods and systems with storage of certification records to a side chain
CN111566649B (en) Verifying integrity of data stored in a federated blockchain using public side chains
KR102051288B1 (en) Methods and systems for verifying the integrity of digital assets using distributed hash tables and peer-to-peer distributed ledgers
US8392709B1 (en) System and method for a single request—single response protocol with mutual replay attack protection
CN111047324B (en) Method and apparatus for updating a set of public keys at a blockchain node
CN110998556A (en) Data isolation in blockchain networks
JP5957095B2 (en) Tamper detection device, tamper detection method, and program
JP2019511151A (en) Cryptographic method and system for secure extraction of data from blockchain
CN111130757A (en) Multi-cloud CP-ABE access control method based on block chain
CN110009349B (en) Method and device for generating and verifying linkable ring signature in block chain
US10917249B2 (en) Processing data elements stored in blockchain networks
JP2023501152A (en) Random node selection for permissioned blockchains
CN110597836B (en) Information inquiry request response method and device based on block chain network
US20210203511A1 (en) Blockchain-based transaction verification
US11943339B2 (en) Information processing apparatus, information processing method, and program
JP2018112827A (en) Information processing system
US20220337392A1 (en) Automatic digital media authenticator
JP2024507908A (en) Blockchain network identity management using SSI
JP5970193B2 (en) SEARCH SYSTEM, SEARCH METHOD, AND SEARCH PROGRAM
JP2023530594A (en) Permitted Event Processing in Distributed Databases
CN111770081B (en) Role authentication-based big data confidential file access method
JP6095057B2 (en) SEARCH SYSTEM, SEARCH METHOD, AND SEARCH PROGRAM
JP2014137474A (en) Tamper detection device, tamper detection method, and program
CN110827034A (en) Method and apparatus for initiating a blockchain transaction
CN110457954B (en) Contract management device and method

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20150120

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20151009

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20151216

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20160204

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160711

R150 Certificate of patent or registration of utility model

Ref document number: 5970193

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