JP6095057B2 - SEARCH SYSTEM, SEARCH METHOD, AND SEARCH PROGRAM - Google Patents
SEARCH SYSTEM, SEARCH METHOD, AND SEARCH PROGRAM Download PDFInfo
- Publication number
- JP6095057B2 JP6095057B2 JP2013045246A JP2013045246A JP6095057B2 JP 6095057 B2 JP6095057 B2 JP 6095057B2 JP 2013045246 A JP2013045246 A JP 2013045246A JP 2013045246 A JP2013045246 A JP 2013045246A JP 6095057 B2 JP6095057 B2 JP 6095057B2
- Authority
- JP
- Japan
- Prior art keywords
- file
- files
- server
- keyword
- encrypted
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
- 238000000034 method Methods 0.000 title claims description 34
- PWPJGUXAGUPAHP-UHFFFAOYSA-N lufenuron Chemical compound C1=C(Cl)C(OC(F)(F)C(C(F)(F)F)F)=CC(Cl)=C1NC(=O)NC(=O)C1=C(F)C=CC=C1F PWPJGUXAGUPAHP-UHFFFAOYSA-N 0.000 title 1
- 238000012795 verification Methods 0.000 claims description 332
- 238000009825 accumulation Methods 0.000 claims description 39
- 238000004364 calculation method Methods 0.000 claims description 32
- 238000012545 processing Methods 0.000 claims description 4
- 238000010200 validation analysis Methods 0.000 claims description 2
- 238000012217 deletion Methods 0.000 description 31
- 230000037430 deletion Effects 0.000 description 31
- 230000005540 biological transmission Effects 0.000 description 17
- 238000010586 diagram Methods 0.000 description 14
- 230000006870 function Effects 0.000 description 5
- 230000004044 response Effects 0.000 description 3
- 230000004075 alteration Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 230000014509 gene expression Effects 0.000 description 2
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Description
本発明は、検索システム、検索方法、および、検索プログラムに関し、特に、キーワード検索におけるサーバの不正を検出可能なだけでなく、ファイルの更新(削除を含む)をも行える検索システム、検索方法、および、検索プログラムに関する。 The present invention relates to a search system, a search method, and a search program, and in particular, a search system, a search method, and a search system capable of not only detecting server fraud in keyword search but also updating (including deleting) files. , Related to search program.
この技術分野において周知のように、Yahoo!データボックスなどのデータストレージ(データ保管)サービスにおいては、ユーザ端末は、写真などの多くのファイルを(Yahoo!データボックスなどの)サーバに格納し、保管することができる。また、ユーザ端末は、ファイル名についてキーワード検索を行って、サーバから所望のファイルの集合を取得することもできる。尚、ユーザ端末は、クライアントとも呼ばれる。 As is well known in this technical field, in data storage (data storage) services such as Yahoo! Data Box, user terminals store and store many files such as photos on a server (such as Yahoo! Data Box). can do. The user terminal can also perform a keyword search for the file name and acquire a desired set of files from the server. The user terminal is also called a client.
これに対して、非特許文献1は、ファイルおよびキーワード検索の際、サーバに対し内容を秘匿する暗号化検索方式を開示している。この暗号化検索方式は、ファイルとキーワードとを暗号化する方式である。
On the other hand, Non-Patent
一方、悪意のあるサーバ、あるいはウィルスに汚染されたサーバは、キーワード検索の際、対応する全てのファイルを正しく返すのではなく、ファイルの一部を削除、追加、改ざん、あるいはすり替えてしまう、といった不正を行うことが考えられる。 On the other hand, a malicious server or a virus-contaminated server does not return all the corresponding files correctly when searching for keywords, but deletes, adds, alters, or replaces some of the files. It is possible to cheat.
この問題に対し、上記非特許文献1では、ファイルの削除、追加、改ざんをユーザ端末が検出できる検索システムを開示している。以下では、この非特許文献1に開示された検索システムを「第1の先行検索システム」と呼ぶことにする。しかしながら、非特許文献1に開示された第1の先行検索システムでは、サーバの不正として、ファイルのすり替えを検出することができない。
In response to this problem, Non-Patent
そこで、本発明者らは、サーバの不正として、ファイルの削除、追加、改ざんのみならず、ファイルのすり替えをも検出できる、検索システムを既に提供した(非特許文献2)。以下では、この非特許文献2に開示された検索システムを「第2の先行検索システム」と呼ぶことにする。しかしながら、非特許文献2に開示された第2の先行検索システムでは、ファイルを更新(削除も含む)する場合、その更新(削除)すべきファイルに含まれる全てのキーワードについて索引中の検証情報を変更しなければならない。その結果、通信量が多く、非効率になるという問題がある。
Therefore, the present inventors have already provided a search system that can detect not only file deletion, addition, and alteration as well as file replacement as a server fraud (Non-Patent Document 2). Hereinafter, the search system disclosed in Non-Patent
一方、非特許文献3は、ファイルの更新を容易に行える検索システムを開示している。以下では、この非特許文献3に開示された検索システムを「第3の先行検索システム」と呼ぶことにする。しかしながら、非特許文献3に開示された第3の先行検索システムでは、サーバの不正を検出することができない。
On the other hand, Non-Patent
上述したように、非特許文献1に開示された第1の先行検索システムでは、サーバの不正として、ファイルのすり替えを検出することができない。
As described above, in the first preceding search system disclosed in Non-Patent
一方、非特許文献2に開示された第2の先行検索システムでは、サーバの不正(ファイルの削除、追加、改ざん、すり替え)を検出できるが、ファイルの更新(削除)を効率的に行えない。
On the other hand, the second prior search system disclosed in Non-Patent
さらに、非特許文献3に開示された第3の先行検索システムでは、ファイルの更新を容易に行えるが、ファイルの不正を検出することができない。
Furthermore, in the third preceding search system disclosed in Non-Patent
したがって本発明の目的は、サーバの不正(ファイルの削除、追加、改ざん、すり替え)を検出でき、かつファイルの更新(削除)も効率的に行える、検索システム、検索方法、および検索プログラムを提供することにある。 Therefore, an object of the present invention is to provide a search system, a search method, and a search program capable of detecting server fraud (deletion, addition, falsification, replacement) of a server and efficiently updating (deleting) a file. There is.
本発明の他の目的は、リプレイ・アタックも検出できる、検索システム、検索方法、および検索プログラムを提供することにある。 Another object of the present invention is to provide a search system, a search method, and a search program capable of detecting a replay attack.
本発明の第1の態様に係る検索システムは、ユーザ端末がサーバに複数のファイルを保管し、ユーザ端末がキーワード検索によってサーバから所望のファイルの集合を取得すると共に、ファイルの更新(削除を含む)をも行う検索システムであって、ユーザ端末は、複数のファイルをそれらのファイル番号と共にサーバに保管するファイル保管手段と;キーワードとそのキーワードに対応するファイルのファイル番号との対応表である索引を、サーバに保管する索引保管手段と;キーワードと当該キーワードを含む全てのファイルのファイル番号の集合との生成用組に対して所定の生成アルゴリズムに従って索引検証情報を生成し、この生成した索引検証情報をサーバに保管する索引検証情報生成部と;検索キーワードをサーバへ送って、サーバから検索キーワードを含むファイルおよび当該ファイルのファイル番号の集合と検索キーワードに対応する索引検証情報とを取得するファイル取得手段と;この取得した索引検証情報が、検索キーワードと取得したファイルのファイル番号の集合との検証用組の索引検証情報であるか否かを所定の検証アルゴリズムによってチェックし、チェックの結果が正しければ承認し、そうでなければ拒否する索引検証部と;更新(削除)すべきファイルをそのファイル番号と共にサーバへ送って更新する更新手段と;を備える。 In the search system according to the first aspect of the present invention, the user terminal stores a plurality of files in the server, the user terminal acquires a set of desired files from the server by keyword search, and includes update (deletion of files) ), And the user terminal stores a plurality of files together with their file numbers in a server; an index that is a correspondence table between keywords and file numbers of files corresponding to the keywords Index verification information is generated according to a predetermined generation algorithm for a generation set of a keyword and a set of file numbers of all files including the keyword, and the generated index verification An index verification information generator that stores information on the server; and sends search keywords to the server to A file acquisition means for acquiring a file including a search keyword from the file and a set of file numbers of the file and index verification information corresponding to the search keyword; the acquired index verification information is a search keyword and the file number of the acquired file; An index verification unit that checks whether or not it is index verification information of a verification pair with a set of a group, and approves if the result of the check is correct, and rejects otherwise; updates (deletes) Updating means for sending the file to be updated together with the file number to the server.
本発明の第2の態様による検索システムは、ユーザ端末がサーバに複数の暗号ファイルを保管し、ユーザ端末がキーワード検索によってサーバから所望のファイルの集合を取得すると共に、暗号ファイルの更新(削除を含む)をも行う検索システムであって、ユーザ端末は、暗号化の秘密鍵を使って複数のファイルをそれぞれ暗号化し、複数の暗号ファイルをそれらの暗号ファイルのファイル番号と共にサーバに保管する暗号ファイル保管手段と;キーワードとそのキーワードに対応するファイルのファイル番号との対応表である索引を、所定の秘密鍵を使って暗号化し、キーワードの暗号文とそのキーワードを含むファイルのファイル番号の暗号文とから成る暗号化索引をサーバに保管する暗号化索引保管手段と;キーワードと当該キーワードを含む全てのファイルのファイル番号の集合との生成用組に対して所定の生成アルゴリズムに従って索引検証情報を生成し、その生成した索引検証情報をサーバに保管する索引検証情報生成部と;所定の秘密鍵を使って検索キーワードを暗号化して得られる暗号検索キーワードをサーバへ送って、サーバから暗号検索キーワードを含む暗号ファイルおよび当該暗号ファイルのファイル番号の集合と検索キーワードに対応する索引検証情報とを取得する暗号ファイル取得手段と;その取得した索引検証情報が、検索キーワードと取得した暗号ファイルのファイル番号の集合との検証用組の索引検証情報であるか否かを所定の検証アルゴリズムによってチェックし、チェックの結果が正しければ承認し、そうでなければ拒否する索引検証部と;更新(削除)すべきファイルを暗号化の秘密鍵を使って暗号化して得られる、更新(削除)すべき暗号ファイルをそのファイル番号と共にサーバに送って更新する更新手段と;を備える。 In the search system according to the second aspect of the present invention, the user terminal stores a plurality of encrypted files in the server, the user terminal acquires a set of desired files from the server by keyword search, and updates (deletes) the encrypted file. The user terminal encrypts a plurality of files using an encryption private key, and stores the plurality of encrypted files together with the file numbers of the encrypted files on the server. The index, which is a correspondence table between the storage means and the keyword and the file number of the file corresponding to the keyword, is encrypted using a predetermined secret key, and the ciphertext of the keyword and the ciphertext of the file number of the file containing the keyword An encrypted index storage means for storing an encrypted index comprising: a keyword and a keyword An index verification information generating unit that generates index verification information according to a predetermined generation algorithm for a generation set with a set of file numbers of all files including a file, and stores the generated index verification information in a server; An encryption search keyword obtained by encrypting the search keyword using the secret key of the server is sent to the server, and the server includes the encryption file including the encryption search keyword, a set of file numbers of the encryption file, and index verification information corresponding to the search keyword An encrypted file acquisition means for acquiring the index verification information, and whether or not the acquired index verification information is index verification information of a verification set of a search keyword and a set of file numbers of the acquired encrypted files by a predetermined verification algorithm An index verification unit that checks and approves if the check result is correct, and rejects otherwise. Equipped with a; update obtained by encrypted using a secret key encryption (Delete) should do file, update the (deletion) should do encryption file together with the file number and updating means for updating is sent to the server.
本発明では、キーワードと当該キーワードを含む全てのファイル(暗号ファイル)のファイル番号の集合との生成用組に対して所定のアルゴリズムに従って索引検証情報を生成し、その生成した索引検証情報をサーバに保管しているので、サーバの不正(ファイルの削除、追加、改ざん、すり替え)を検出するだけでなく、更新(削除)すべきファイル(暗号ファイル)をそのファイル番号と共にサーバに送出するだけで、ファイルの更新(削除)も効率的に行うことができる。 In the present invention, index verification information is generated according to a predetermined algorithm for a generation set of a keyword and a set of file numbers of all files (encrypted files) including the keyword, and the generated index verification information is stored in a server. Since it is stored, it not only detects server fraud (deletion, addition, falsification, replacement), but also sends the file (encrypted file) to be updated (deleted) along with its file number to the server. The file can be updated (deleted) efficiently.
[概要]
以下、本発明の実施形態の概要について説明する。
[Overview]
Hereinafter, an outline of an embodiment of the present invention will be described.
本発明の実施形態による検索システムは、キーワード検索におけるサーバの不正(ファイルの「削除」、「追加」、「改ざん」、「すり替え」)を検出するだけでなく、ファイルの更新(削除を含む)を効率的に行える検索システムである。 The search system according to the embodiment of the present invention not only detects server fraud (“deletion”, “addition”, “falsification”, “replacement” of files) in keyword search, but also updates (including deletion) files. It is a search system that can efficiently.
本実施形態に係る検索システムは、ファイルが暗号化されている場合と、ファイルが暗号化されていない場合との両者に適用できる。尚、この技術分野において周知のように、メッセージの認証機能には、デジタル署名を利用する場合と、メッセージ認証コード(Message Authentication code,MAC)を利用して認証子を生成する場合とがある。なお、デジタル署名と認証子とは、総称して、検証情報と呼ばれる。 The search system according to the present embodiment can be applied to both a case where a file is encrypted and a case where a file is not encrypted. As is well known in this technical field, the message authentication function includes a case where a digital signature is used and a case where an authenticator is generated using a message authentication code (Message Authentication Code, MAC). The digital signature and the authenticator are collectively referred to as verification information.
一般に、検証情報は、所定の生成アルゴリズムによって生成され、所定の検証アルゴリズムによって検証(チェック)される。検証情報がデジタル署名の場合、所定の生成アルゴリズムは署名生成アルゴリズムから成り、所定の検証アルゴリズムは署名検証アルゴリズムから成る。一方、検証情報が認証子の場合、所定の生成アルゴリズムはMAC生成アルゴリズムから成り、所定の検証アルゴリズムはMAC検証アルゴリズムから成る。 In general, the verification information is generated by a predetermined generation algorithm and verified (checked) by the predetermined verification algorithm. When the verification information is a digital signature, the predetermined generation algorithm is a signature generation algorithm, and the predetermined verification algorithm is a signature verification algorithm. On the other hand, when the verification information is an authenticator, the predetermined generation algorithm is a MAC generation algorithm, and the predetermined verification algorithm is a MAC verification algorithm.
本実施形態に係る検索システムは、以下の第1および第2の実施形態に分けられる。 The search system according to the present embodiment is divided into the following first and second embodiments.
本発明の第1の実施形態に係る検索システムは、ユーザ端末がファイルを暗号化せずにサーバに保管すると共に、ファイルの更新(削除を含む)をも行う検索システムである。 The search system according to the first embodiment of the present invention is a search system in which a user terminal stores a file in a server without encryption and also updates (including deletion) the file.
第1の実施形態に係る検索システムでは、ユーザ端末が、キーワードと当該キーワードを含む全てのファイルのファイル番号の集合との生成用組に対して所定のアルゴリズムに従って索引検証情報を生成し、その生成した索引検証情報をサーバに保管する。これにより、サーバの不正(ファイルの削除、追加、改ざん、すり替え)を検出するだけでなく、更新(削除)すべきファイルをそのファイル番号と共にサーバに送出するだけで、ファイルの更新(削除)も効率的に行うことができる。 In the search system according to the first embodiment, a user terminal generates index verification information according to a predetermined algorithm for a generation set of a keyword and a set of file numbers of all files including the keyword, The index verification information is stored on the server. This not only detects server fraud (deletion, addition, falsification, replacement), but also sends the file to be updated (deleted) to the server along with its file number. Can be done efficiently.
本発明の第2の実施形態に係る検索システムは、ユーザ端末がファイルおよびキーワードを暗号化してサーバに保管すると共に、暗号ファイルの更新(削除)をも行う検索システムである。 The search system according to the second embodiment of the present invention is a search system in which a user terminal encrypts a file and a keyword and stores them in a server, and also updates (deletes) the encrypted file.
第2の実施形態に係る検索システムでは、ユーザ端末が、キーワードと当該キーワードを含む全てのファイルのファイル番号の集合との生成用組に対して所定のアルゴリズムに従って索引検証情報を生成し、その生成した索引検証情報をサーバに保管する。これにより、サーバの不正(ファイルの削除、追加、改ざん、すり替え)を検出するだけでなく、更新(削除)すべき暗号ファイルをそのファイル番号と共にサーバに送出するだけで、暗号ファイルの更新(削除)も効率的に行うことができる。 In the search system according to the second embodiment, the user terminal generates index verification information according to a predetermined algorithm for a generation set of a keyword and a set of file numbers of all files including the keyword, and the generation The index verification information is stored on the server. As a result, not only the server's fraud (deletion, addition, falsification, replacement), but also the encryption file to be updated (deletion) can be updated (deletion) by sending it to the server along with its file number. ) Can also be performed efficiently.
尚、検索システムの動作は、ユーザ端末がファイル(暗号ファイル)をサーバに格納する「格納フェーズ」と、ユーザ端末がサーバから所望のファイルを検索する「検索フェーズ」と、ユーザ端末がファイル(暗号ファイル)を更新(削除を含む)する「更新フェーズ」と、に分けられる。 The operation of the search system includes a “storage phase” in which the user terminal stores the file (encrypted file) in the server, a “search phase” in which the user terminal searches for a desired file from the server, and the user terminal in the file (encrypted file). It is divided into “update phase” in which (file) is updated (including deletion).
また、ファイル更新固有の問題として、「リプレイ・アタック」が知られている。ここで、リプレイ・アタックとは、不正なサーバが、更新した新しいファイルの代わりに、古いファイルを返すことをいう。 Further, “replay attack” is known as a problem specific to file update. Here, replay attack means that an unauthorized server returns an old file instead of an updated new file.
後述する本発明の実施例においては、この「リプレイ・アタック」をRSA(Rivest-Shamir-Adleman) accumulatorを使用することによって解決している。 In the embodiments of the present invention described later, this “replay attack” is solved by using an RSA (Rivest-Shamir-Adleman) accumulator.
従って、本発明の実施例の理解を容易にするために、以下、RSA accumulatorの概要について説明する。 Therefore, in order to facilitate understanding of the embodiments of the present invention, an outline of the RSA accumulator will be described below.
p=2p’+1,q=2q’+1は素数である。ただし、p’,q’も素数で、pqは3λビットである。N=pqとおく。 p = 2p ′ + 1 and q = 2q ′ + 1 are prime numbers. However, p ′ and q ′ are also prime numbers, and pq is 3λ bits. Let N = pq.
mod Nにおいて、位数がp’q’となる要素をgとする。すなわち、
gp’q’=1mod N
である。
In mod N, let g be the element whose order is p'q '. That is,
g p'q ' = 1 mod N
It is.
3λビットの正整数aをランダムに選ぶ。
3λビットの正整数xに対し、ha(x)を、
ha(x)=a×x の下位λビットと定義する。なお、この乗算×は、有限体(あるいはガロア体)GF(23λ)上の乗算である。
A positive integer a of 3λ bits is selected at random.
For a positive integer x of 3λ bits, h a (x) is
Defined as lower λ bits of h a (x) = a × x The multiplication x is multiplication on a finite field (or Galois field) GF (2 3λ ).
このとき、λビットの任意のyに対し、
ha(x)=y
となる3λビットの素数xを効率よく求めることができる。
そのような素数xをprime(y)と書く。
At this time, for an arbitrary y of λ bits,
h a (x) = y
The prime number x of 3λ bits can be obtained efficiently.
Such a prime number x is written prime (y).
λビットのyiの集合をE={y1,・・・,yn}とする(1≦i≦n)。 A set of y i of λ bits is assumed to be E = {y 1 ,..., y n } (1 ≦ i ≦ n).
Aliceは、Eの蓄積値
Acc(E)=gprime(y1)×・・・×prime(yn)mod N
をBobに送る。
Alice is the accumulated value of E Acc (E) = g prime (y1) ×... * Prime (yn) mod N
To Bob.
yi∈Eを証明したいとき、Aliceは、prime(yj)と、
π=gΠi≠j prime(yi)mod N
と、をBobに送る。
When we want to prove y i ∈E, Alice has prime (y j ) and
π = g Πi ≠ j prime (yi) mod N
And sent to Bob.
Bobは、
Acc(E)=(π)prime(yj)mod N
が成り立つかどうかをチェックする。
Bob
Acc (E) = (π) prime (yj) mod N
Check if is true.
強RSA仮定が成り立つと仮定する。
公開情報N,g,haおよびλビットのyiの集合E={y1,・・・,yn}が与えられたとき、
Acc(E)=(π)prime(y)mod N
を満たすEに属さないyとπを見つけることは困難である。
Assume that strong RSA assumptions hold.
When public information N, g, set E = the h a and λ bits of y i {y 1, ···, y n} is given,
Acc (E) = (π) prime (y) mod N
It is difficult to find y and π that do not belong to E that satisfy.
図1を参照して、本発明の第1の実施例に係る検索システム100の格納フェーズおよび検索フェーズについて説明する。図1は、本発明の第1の実施例に係る検索システム100の格納フェーズと検索フェーズのブロック図である。図示の検索システム100は、上述した本発明の第1の実施形態に係る検索システムに相当する検証システムである。検索システム100は、クライアント200とサーバ300とから構成される。クライアント200は、ユーザ端末とも呼ばれる。
With reference to FIG. 1, a storage phase and a search phase of the
図示の検索システム100は、クライアント(ユーザ端末)200がサーバ300に複数のファイルを保管し、クライアント(ユーザ端末)200がキーワード検索によってサーバ300から所望のファイルの集合を取得するシステムである。
The illustrated
尚、クライアント(ユーザ端末)200がサーバ300に格納されたファイルを更新(削除を含む)する更新フェーズのブロック図については、後で図13を参照して説明する。
A block diagram of an update phase in which the client (user terminal) 200 updates (including deletion) a file stored in the
クライアント200は、鍵生成部202と、鍵保持部204と、索引検証情報生成部206と、索引検証部208と、第1乃至第3の信号線(伝送線)210、212、214と、ファイル蓄積値計算部216と、Acc保持部218と、ファイル検証部220と、から構成されている。
The
一方、サーバ300は、記憶領域302と、検索部304と、鍵保持部306と、ファイル検証情報生成部308と、から構成されている。
On the other hand, the
鍵生成部202は、検証用の秘密鍵Kと秘密情報p,qと公開情報N,g,haとを生成する。クライアント200の鍵保持部204は、これら生成された検証用の秘密鍵Kと秘密情報p,qと公開情報N,g,haとを保持する。また、鍵保持部204に保持された公開情報N,g,haは、サーバ300の鍵保持部306へ送られる。したがって、サーバ300の鍵保持部306は、公開情報N,g,haを保持する。
The key generation unit 202, the secret key K and secret information p for verification, q and the public information N, g, to generate a h a.
クライアント200は、複数のファイルをそれらのファイル番号と共に第1の信号線(伝送線)210を介してサーバ300へ送信する。サーバ300は、その送られてきた複数のファイルをそれらのファイル番号と共に記憶領域302に保管する。したがって、第1の信号線(伝送線)210は、サーバ300に複数のファイルをそれらのファイル番号と共に保管するファイル保管手段として働く。
The
また、クライアント200は、索引(後述する)を生成し、生成した索引を第2の信号線(伝送線)212を介してサーバ300へ送信する。サーバ300は、その送られてきた索引を記憶領域302に記憶する。したがって、第2の信号線(伝送線)212は、生成した索引をサーバ300に保管する索引保管手段として働く。
In addition, the
図2に索引の具体例を示す。索引は、キーワードと、それに対応するファイルの番号(ファイル番号)の対応表である。 FIG. 2 shows a specific example of the index. The index is a correspondence table of keywords and corresponding file numbers (file numbers).
図示の例では、索引の番号1には、キーワードとして「情報工学」が記憶され、そのキーワードに対応するファイル番号として、「1」、「6」、「8」、「11」が記憶されている。また、索引の番号2には、キーワードとして「茨城大学」が記憶され、そのキーワードに対応するファイル番号として、「3」、「6」、「10」が記憶されている。
In the illustrated example, “information engineering” is stored as a keyword in
図3を参照して、クライアント200の索引検証情報生成部206の動作について説明する。
The operation of the index verification
索引検証情報生成部206は、索引と検証用の秘密鍵Kとを読み込む(S102)。次に、索引検証情報生成部206は、各キーワードWiについて以下の処理を実行する(S104)。ここでは、キーワードWiを含むファイルの集合{Dj1,Dj2,・・・}に関し、その添字(すなわち、ファイル番号)の集合を{j1、j2、…}とする。この場合、索引検証情報生成部206は、検証用の秘密鍵Kを使い、生成用組(Wi、j1、j2、…)に対応する索引検証情報tagiを下記の数式によって計算する。
tagi=fK(Wi、j1、j2、…)
ここで、fはMAC生成アルゴリズムまたは署名生成アルゴリズムから成る所定の生成アルゴリズムである。
The index verification
tag i = f K (W i , j1, j2,...)
Here, f is a predetermined generation algorithm comprising a MAC generation algorithm or a signature generation algorithm.
所定の生成アルゴリズムがMAC生成アルゴリズムから成るとする。この場合、索引検証情報生成部206は、検証用の秘密鍵KとしてMACの秘密鍵を使って、MAC生成アルゴリズムに従って、索引検証情報tagiとして生成用組(Wi、j1、j2、…)に対する認証子を生成する。
Assume that the predetermined generation algorithm is a MAC generation algorithm. In this case, the index verification
一方、所定のアルゴリズムが署名生成アルゴリズムから成るとする。この場合、索引検証情報生成部206は、検証用の秘密鍵Kとしてデジタル署名の秘密鍵を使って、署名生成アルゴリズムに従って、索引検証情報tagiとして生成用組(Wi、j1、j2、…)に対するデジタル署名を生成する。
On the other hand, it is assumed that the predetermined algorithm is a signature generation algorithm. In this case, the index verification
索引検証情報生成部206は、計算して得られた索引検証情報(tag1、tag2、…)を出力する(ステップS106)。これら索引検証情報は、サーバ300に送られ、サーバ300は、これら索引検証情報を記憶領域302に記憶する。
The index verification
次に、図4を参照して、索引検証情報生成部206の動作について具体例を挙げて説明する。ここでは、キーワードが索引番号2の「茨城大学」である場合を例に挙げて説明する。
Next, the operation of the index verification
この場合、索引検証情報生成部206は、索引を参照して、キーワード「茨城大学」を含む、該当するファイルのファイル番号を選択する。この場合、索引番号2のファイル番号には、「3」、「6」、「10」が記憶されているので、索引検証情報生成部206は、該当ファイル番号として、「3」、「6」、「10」を選択する。
In this case, the index verification
そして、索引検証情報生成部206は、検証用の秘密鍵Kを使い、生成用組(茨城大学、3、6、10)に対する検証情報tag2を、所定の生成アルゴリズムfに従って、下記数式で示されるように生成する。
tag2=fK(茨城大学、3、6、10)
Then, the index verification
tag 2 = f K (University of Ibaraki, 3, 6, 10)
索引検証情報生成部206は、このようにして、キーワードi毎の索引検証情報tagiを生成する。生成された索引検証情報tagiは、サーバ300へ送られ、サーバ300は、送られてきた索引検証情報tagiを記憶領域302に記憶する。
In this manner, the index verification
図5を参照して、クライアント200のファイル蓄積値計算部216の動作について説明する。ここでは、ファイルの総数がnであるとする。
With reference to FIG. 5, the operation of the file accumulation
先ず、ファイル蓄積値計算部216は、全ファイルの集合{(1,D1),(2,D2),・・・}および公開情報N,g、haを読み込む(ステップS202)。次に、ファイル蓄積値計算部216は、各ファイルDi(1≦i≦n)について、素数piを下記の数式によって求める(ステップS204)。
pi=prime(H(i,Di))
ここで、Hはハッシュ関数である。
First, the file accumulation
p i = prime (H (i, D i ))
Here, H is a hash function.
そして、ファイル蓄積値計算部216は、ファイルの蓄積値Accを下記の数式によって計算する(ステップS206)。
Acc=gp1p2p3...pnmod N
Then, the file accumulation
Acc = g p1p2p3. . . pn mod N
ファイル蓄積値計算部216は、この計算して得られたファイルの蓄積値Accを出力する(ステップS208)。ファイルの蓄積値Accは、Acc保持部218で保持される。
The file accumulation
図6に、ファイル蓄積値計算部216の動作の具体例を示す。
FIG. 6 shows a specific example of the operation of the file accumulation
すなわち、ファイル蓄積値計算部216は、各ファイルD1、D2、・・・、Dnについて、それぞれ、素数p1=prime(H(1,D1))、p2=prime(H(2,D2))、・・・、pn=prime(H(n,Dn))を求め、ファイルの蓄積値Acc=gp1p2p3...pnmod Nを計算し、ファイルの蓄積値Accを出力する。
That is, the file storage
検索時、クライアント200は、検索キーワードWを第3の信号線(伝送線)214を介してサーバ300に送る。サーバ300においては、検索キーワードWに応答して、検索部304は、その検索キーワードWを含むファイルおよびファイル番号の集合(i1,Di1),(i2,Di2),・・・と、その索引検証情報tagとをクライアント200へ返す。したがって、クライアント200は、ファイルおよびファイル番号の集合(i1,Di1),(i2,Di2),・・・とその索引検証情報tagとを取得する。すなわち、第2の信号線(伝送線)214は、検索キーワードWをサーバ300へ送って、サーバ300から、検索キーワードWを含むファイルおよびファイル番号の集合(i1,Di1),(i2,Di2),・・・と、その索引検証情報tagとを取得するファイル取得手段として働く。
At the time of search, the
尚、以下の説明では、検索キーワードWを含むファイルおよびファイル番号の集合(i1,Di1),(i2,Di2),・・・を、単に、検索キーワードWを含むファイルの集合とも略称する。 In the following description, a set (i1, D i1 ), (i2, D i2 ),... Of a file including the search keyword W and file numbers are simply abbreviated as a set of files including the search keyword W. .
次に、図7を参照して、クライアント200の索引検証部208の動作について説明する。
Next, the operation of the
索引検証部208は、先ず、検索キーワードWと、鍵保持部204に保持された検証用の秘密鍵Kとを読み込む(S302)。次に、検索検証部208は、サーバ300から、検索キーワードWを含むファイルの集合(i1,Di1),(i2,Di2),・・・と、その索引検証情報tagとを受け取る(ステップS304)。
First, the
索引検証部208は、検証用の秘密鍵Kを使い、索引検証情報tagが検証用組(W、i1、i2、…)の索引検証情報であるか否かを、所定の検証アルゴリズムに従って、下記の数式に示されるように計算する(ステップS306)。
VerifyK(W、i1、i2、…、tag)=accept or reject
ここで、Verifyは、MAC検証アルゴリズムまたは署名検証アルゴリズムから成る所定の検証アルゴリズムである。
The
Verify K (W, i1, i2, ..., tag) = accept or reject
Here, Verify is a predetermined verification algorithm including a MAC verification algorithm or a signature verification algorithm.
所定の検証アルゴリズムがMAC検証アルゴリズムから成るとする。この場合、索引検証部208は、検証用の秘密鍵KとしてMACの秘密鍵を使って、MAC検証アルゴリズムに従って、取得した認証子が検証用組(W、i1、i2、…)の認証子であるか否かをチェックする。
Assume that the predetermined verification algorithm comprises a MAC verification algorithm. In this case, the
一方、所定の検証アルゴリズムが署名検証アルゴリズムから成るとする。この場合、索引検証部208は、デジタル署名の公開鍵を使って、署名検証アルゴリズムに従って、取得したデジタル署名が検証用組(W、i1、i2、…)のデジタル署名であるか否かをチェックする。
On the other hand, it is assumed that the predetermined verification algorithm is a signature verification algorithm. In this case, the
索引検証部208は、acceptなら、accept(承認)を出力し(ステップS310)、rejectなら、reject(拒否)を出力する(ステップS312)。
The
次に、図8を参照して、索引検証部208の動作について具体例を挙げて説明する。ここでは、検索キーワードWが索引番号2の「茨城大学」である場合を例に挙げて説明する。
Next, the operation of the
この場合、索引検証部208は、鍵保持部204から検証用の秘密鍵Kを読み込み、検索キーワードとして「茨城大学」を読み込み、サーバ300から送られてきた、ファイルの集合(D3、D6、D10)に対応するファイル番号の集合(3、6、10)と索引検証情報tagとを読み込む。
In this case, the
そして、索引検証部208は、検証用の秘密鍵Kを使い、索引検証情報tagが検証用組(茨城大学、3、6、10)の索引検証情報であるか否かを、所定の検証アルゴリズムに従って、下記の数式に示されるように計算する。
VerifyK(茨城大学、3、6、10、tag)=accept or reject
Then, the
Verify K (Ibaraki University, 3, 6, 10, tag) = accept or reject
索引検証部208は、acceptなら、accept(承認)を出力し、rejectなら、reject(拒否)を出力する。
The
図9を参照して、サーバ300のファイル検証情報生成部308の動作について説明する。
The operation of the file verification
先ず、ファイル検証情報生成部308は、検索部304からファイルの集合S={(j1,Dj1),(j2,Dj2),・・・}を読み込む(ステップS402)。引き続いて、ファイル検証情報生成部308は、記憶領域302から全ファイル{(1、D1),(2,D2),・・・}を読み込む(ステップS404)。そして、ファイル検証情報生成部308は、鍵保持部306から公開情報N,g,haを読み込む(ステップS406)。
First, the file verification
次に、ファイル検証情報生成部308は、ファイルの集合Sに含まれない各添字(i1,i2,・・・)について下記の数式に従って素数pi(i=i1,i2,・・・)を計算し、さらに、ファイル検証情報πを下記の数式に従って計算する(ステップS408)。
pi=prime(H(i,Di))
π=gpi1pi2・・・mod N
Next, the file verification
p i = prime (H (i, D i ))
π = g pi1pi2... mod N
そして、ファイル検証情報生成部308は、ファイル検証情報πを出力する(ステップS410)。このファイル検証情報πは、クライアント200へ送出される。
Then, the file verification
図10に、ファイル検証情報生成部308の動作の具体例を示す。この例では、検索部304からファイルの集合S={(2,D2),(4,D4)}が出力される場合を示している。
FIG. 10 shows a specific example of the operation of the file verification
この場合、ファイル検索情報生成部308は、ファイル番号が2,4以外のすべてのファイルについて、p1=prime(H(1,D1)),p3=prime(H(3,D3)),p5=prime(H(5,D5)),p6=prime(H(6,D6)),・・・を計算し、ファイル検証情報π=gp1p3p5p6・・・mod Nを計算して出力する。
In this case, the file search
図11を参照して、クライアント200のファイル検証部220の動作について説明する。
The operation of the
ファイル検証部220は、先ず、索引検証部208の結果がaccept(承認)であるか否かを判断する(ステップS502)。accept(承認)なら、ファイル検証部220はステップS504に進み、reject(拒否)なら、ファイル検証部220はreject(拒否)を出力する(ステップS514)。
The
ステップS504において、ファイル検証部220は、サーバ300からファイルの集合S={(i1,Di1),(i2,Di2),・・・}と、そのファイル検証情報πを読み込む。そして、ファイル検証部220は、鍵保持部204から公開情報N,g,haを読み込む。
In step S504, the
引き続いて、ファイル検証部220は、ファイルの集合Sに含まれる各ファイルDi(Di1,Di2,・・・)について、下記の数式に従って素数piを計算する(ステップS506)。
pi=prime(H(i,Di))
Subsequently, the
p i = prime (H (i, D i ))
次に、ファイル検証部220は、下記の数式に従ってファイルの蓄積値Aを計算する(ステップS508)。
A=πpi1pi2・・・mod N
Next, the
A = π pi1pi2... Mod N
そして、ファイル検証部220は、この計算したファイルの蓄積値Aが、Acc保持部218に保持されている全ファイルの蓄積値Accと等しいか否か判断する(ステップS510)。
Then, the
A=Accの場合(ステップS510のYes)、ファイル検証部220は、サーバ300から取得したファイルの集合S={(i1,Di1),(i2,Di2),・・・}を所望のファイルの集合として出力する(ステップS512)。A≠Accの場合(ステップS510のNo)、ファイル検証部220は、reject(拒否)を出力する(ステップS514)。
When A = Acc (Yes in step S510), the
図12に、ファイル検証部220の動作の具体例を示す。この例では、サーバ300からファイルの集合S={(2,D2),(4,D4)}を受け取った場合の例を示している。
FIG. 12 shows a specific example of the operation of the
この場合、ファイル検証部220は、素数p2=prime(H(2,D2))およびp4=prime(H(4,D4))を計算した後、ファイルの蓄積値A=πp2p4mod Nを計算し、計算したファイルの蓄積値Aが保持している全ファイルの蓄積値Accと等しいか否か判断し、等しければ、取得したファイルの集合D2、D4を所望のファイルの集合として得、等しくなければ、reject(拒否)する。
In this case, the
図13を参照して、本発明の第1の実施例に係る検索システム100の更新フェーズについて説明する。図13は、本発明の第1の実施例に係る検索システム100の更新フェーズのブロック図である。
With reference to FIG. 13, the update phase of the
図13に示されるように、クライアント(ユーザ端末)200は、第4及び第5の信号線(伝送線)222、224と、Acc更新部226と、を更に有する。
As illustrated in FIG. 13, the client (user terminal) 200 further includes fourth and fifth signal lines (transmission lines) 222 and 224 and an
本例では、ファイル番号jを持つ現ファイルDjを、新ファイルDj’に更新するか又は削除する場合の例を示している。すなわち、本例では、ファイル番号jを持つファイルが、更新(又は削除)すべきファイルであり、現ファイルDjが更新前のファイルである。 In this example, the current file D j having the file number j is updated to a new file D j ′ or deleted. That is, in this example, the file having the file number j is the file to be updated (or deleted), and the current file D j is the file before the update.
この場合、クライアント200は、新ファイルDj’又は「削除」を示すデータを第4の信号線(伝送線)222を介してサーバ300へ送信すると共に、ファイル番号jを第5の信号線(伝送線)224を介してサーバ300へ送信する。サーバ300は、その送られてきた新ファイルDj’又は「削除」を示すデータをそのファイル番号jと共に記憶領域302に保管する。
In this case, the
したがって、第4及び第5の信号線(伝送線)222、224の組み合わせは、更新(削除)すべきファイルをそのファイル番号jと共にサーバ300へ送って更新(削除)する更新手段として働く。
Therefore, the combination of the fourth and fifth signal lines (transmission lines) 222 and 224 serves as an updating unit that sends (updates) a file to be updated (deleted) to the
サーバ300において、第5の信号線(伝送線)224を介してファイル番号jが渡されると、検索部304は、記憶領域302に既に格納されている現ファイル(更新前のファイル)Djを検索して、そのファイル番号jが付加された現ファイル(j、Dj)をクライアント200へ返す。
In the
図14を参照して、クライアント200のAcc更新部226の動作について説明する。
The operation of the
先ず、Acc更新部226は、ファイル番号j、現ファイルDj、新ファイルDj’(又は「削除」を示すデータ)を読み込み、Acc保持部218から全ファイルの蓄積値Accを読み込み、鍵保持部204から秘密情報p,qと公開情報N,g,haを読み込む(ステップS602)。
First, the
引き続いて、Acc更新部226は、下記の数式に従って、x、x’、およびdを計算する(ステップS604)。
x=prime(H(j,Dj))
x’=prime(H(j,Dj’))
d=x’/x mod (p−1)(q−1)
Subsequently, the
x = prime (H (j, D j ))
x ′ = prime (H (j, D j ′))
d = x ′ / x mod (p−1) (q−1)
次に、Acc更新部226は、下記の数式に従って、新しい全ファイルの蓄積値Acc’を計算する(ステップS606)。
Acc’=Accdmod N
Next, the
Acc '= Acc d mod N
最後に、Acc更新部226は、計算した新しい全ファイルの蓄積値Acc’をAcc保持部218に保持することにより、古い全ファイルの蓄積値Accを新しい全ファイルの蓄積値Acc’に更新する(ステップS608)。
Finally, the
このように、ファイルを更新(又は削除)しようとする場合、クライアント200は、更新すべきファイル(又は「削除」を示すデータ)をそのファイル番号と共にサーバ300へ送出し、全ファイルの蓄積値を更新するだけで良いので、ファイルの更新を効率的に行なうことができる。
In this way, when updating (or deleting) a file, the
次に、本第1の実施例の効果について説明する。 Next, effects of the first embodiment will be described.
第1の実施例の検索システム100の第1の効果は、サーバ300の不正(ファイルの削除、追加、改ざん、すり替え)を検出できるだけでなく、ファイルの更新(削除を含む)を効率的に行なうことができることである。その理由は、クライアント(ユーザ端末)200が各キーワードWiと当該キーワードWiを含む全てのファイルのファイル番号の集合(j1、j2、…)とを一組(生成用組)として、それに対する索引検証情報tagiを生成し、生成した索引検証情報tagiをサーバ300に保管しているからである。
The first effect of the
第1の実施例の検索システム100の第2の効果は、リプレイ・アタックを検出できることである。その理由は、RSA accumulatorを利用してファイルの蓄積値Accをチェックしているからである。
The second effect of the
尚、リプレイ・アタックを検出しない場合には、クライアント200から、ファイル蓄積値計算部216、Acc保持部218、ファイル検証部220、およびAcc更新部226を省略し、サーバ300から鍵保持部306およびファイル検証情報生成部308を省略することができる。
If the replay attack is not detected, the file accumulated
また、上記本発明の第1の実施例に係る検索システム100は、検索方法として実現され得る。さらに、上記本発明の第1の実施例に係る検索システム100のうちのクライアント(ユーザ端末)200が実施する部分は、当該クライアント(ユーザ端末)200に含まれるメモリ(ROM等)に格納された検索プログラムによって実行されるようにしてもよい。
The
図15を参照して、本発明の第2の実施例に係る検索システム100Aの格納フェーズと検索フェーズについて説明する。図15は、本発明の第2の実施例に係る検索システム100Aの格納フェーズと検索フェーズのブロック図である。図示の検索システム100Aは、上述した本発明の第2の実施形態に係る検索システムに相当する検索システムである。検索システム100Aは、クライアント200Aとサーバ300Aとから構成される。クライアント200Aは、ユーザ端末とも呼ばれる。
With reference to FIG. 15, the storage phase and the search phase of the
検索システム100Aは、クライアント(ユーザ端末)200Aがサーバ300Aに複数の暗号ファイルを保管し、クライアント(ユーザ端末)200Aがキーワード検索によってサーバ300Aから所望のファイルの集合を取得するシステムである。
The
尚、クライアント(ユーザ端末)200Aがサーバ300Aに格納された暗号ファイルを更新する更新フェーズのブロック図については、後で図28を参照して説明する。
Note that a block diagram of an update phase in which the client (user terminal) 200A updates the encrypted file stored in the
クライアント200Aは、鍵生成部202Aと、鍵保持部204Aと、索引検証情報生成部206Aと、索引検証部208Aと、ファイル暗号化部210Aと、索引暗号化部212Aと、キーワード暗号化部214Aと、ファイル蓄積値計算部216Aと、Acc保持部218Aと、ファイル検証部220Aと、から構成されている。
The
一方、サーバ300Aは、記憶領域302Aと、暗号検索部304Aと、鍵保持部306Aと、ファイル検証情報生成部308Aと、から構成されている。
On the other hand, the
鍵生成部202Aは、暗号化の秘密鍵Keと、検証用の秘密鍵Kと、所定の秘密鍵K0、K1と、秘密情報p,qと、公開情報N,g,haとを生成する。鍵保持部204Aは、この生成された暗号化の秘密鍵Keと、検証用の秘密鍵Kと、所定の秘密鍵K0、K1と、秘密情報p,qと公開情報N,g,haとを保持する。また、鍵保持部204Aに保持された公開情報N,g,haは、サーバ300Aの鍵保持部306Aへ送られる。したがって、サーバ300Aの鍵保持部306Aは、公開情報N,g,haを保持する。
ファイル暗号化部210Aは、暗号化の秘密鍵Keを使い、複数のファイルの暗号文である暗号ファイル{E(D1)、E(D2)、…}を計算する。これら暗号ファイル{E(D1)、E(D2)、…}は、それらのファイル番号と共にサーバ300Aへ送られ、サーバ300Aは、その送られてきた暗号ファイル{E(D1)、E(D2)、…}をそれらのファイル番号と共に記憶領域302Aに記憶する。したがって、ファイル暗号化部210Aは、暗号化の秘密鍵Keを使って複数のファイルをそれぞれ暗号化し、複数の暗号ファイルをそれらのファイル番号と共にサーバ300Aに保管する暗号ファイル保管手段として働く。
The
また、クライアント200Aは、索引を生成する。索引の具体例は、前述した図2と同一である。前述したように、索引は、キーワードと、それに対応するファイルの番号(ファイル番号)の対応表である。
In addition, the
図2に示されるように、図示の例では、索引の番号1には、キーワードとして「情報工学」が記憶され、そのキーワードに対応するファイル番号として、「1」、「6」、「8」、「11」が記憶されている。また、索引の番号2には、キーワードとして「茨城大学」が記憶され、そのキーワードに対応するファイル番号として、「3」、「6」、「10」が記憶されている。
As shown in FIG. 2, in the illustrated example, “information engineering” is stored as a keyword in
索引暗号化部212Aは、所定の秘密鍵K0、K1を使い、生成した索引を暗号化して、暗号化索引をサーバ300Aへ送信する。サーバ300Aは、その送られてきた暗号化索引を記憶領域302Aに記憶する。したがって、索引暗号化部212Aは、生成した索引を暗号化して、暗号化索引をサーバ300Aへ保管する暗号化索引保管手段として働く。
The
図16を参照して、クライアント200Aの索引暗号化部212Aの動作について説明する。
The operation of the
ここでは、索引暗号化部212Aの動作について説明する前に、先ず、記法について説明する。
Here, before describing the operation of the
PRFk(・)は擬似ランダム関数を表す。ただし、kは鍵である。
[PRFk(W)]uにより、PRFk(W)の先頭のuビットを表す。
文書(ファイル)の総数をnとする。
キーワードWiがファイルDjに含まれるなら、ei,j=1と表し、そうでなければ、ei,j=0と表す。
PRF k (·) represents a pseudo-random function. However, k is a key.
[PRF k (W)] u represents the first u bits of PRF k (W).
Let n be the total number of documents (files).
If the keyword W i is included in the file D j , e i, j = 1, otherwise e i, j = 0.
先ず、索引暗号化部212Aは、索引と所定の秘密鍵K0、K1とを読み込む(ステップS702)。
First, the
引き続いて、索引暗号化部212Aは、各キーワードWiについて、下記の数式で表される、labeli、PADi、およびOTPiを計算する(ステップS704)。
labeli=[PRFK0(Wi)]128
PADi=[PRFK1(Wi)]n
OTPi=PADi+(ei,1,・・・、ei,n)mod 2
ここで、labeliは、キーワードWiの暗号文を表し、OTPiは、キーワードWiを含むファイルのファイル番号の暗号文を表す。
Subsequently, the
label i = [PRF K0 (W i )] 128
PAD i = [PRF K1 (W i )] n
OTP i = PAD i + (e i, 1 ,..., E i, n )
Here, label i represents the ciphertext of the keyword W i , and OTP i represents the ciphertext of the file number of the file including the keyword W i .
そして、索引暗号化部212Aは、暗号化索引={(label1,OTP1),(label2,OTP2),・・・}を出力する(ステップS706)。
Then, the
このように、索引暗号化部212Aは、キーワードWiとそのキーワードWiに対応するファイルのファイル番号との対応表である索引を、所定の秘密鍵K0,K1を使って暗号化し、キーワードWiの暗号文labeliとそのキーワードWiを含むファイルのファイル番号の暗号文OTPiとから成る暗号化索引をサーバ300Aに保管する暗号化索引保管手段として働く。
Thus, the
次に、図17を参照して、索引暗号化部212Aの動作について具体例を挙げて説明する。ここでは、ファイル(文書)の総数n=12で、キーワードが索引番号2の「茨城大学」である場合を例に挙げて説明する。したがって、この場合、索引番号2のファイル番号には、「3」、「6」、「10」が記憶されている。
Next, the operation of the
この場合、索引暗号化部212Aは、キーワードW2の暗号文label2と、ファイル番号の暗号文OTP2とを計算する。
In this case, the
ただし、キーワードW2の暗号文label2は、下記の数式で表される。
label2=[PRFK0(茨城大学)]128
However, the ciphertext label 2 keyword W 2 is represented by the following equation.
label 2 = [PRF K0 (Ibaraki University)] 128
また、(e2,1,・・・,e2,12)は、(001001000100)に等しい。また、PAD2は下記の数式で表され、ここで(110101011110)であったとする。
PAD2=[PRFK1(茨城大学)]12
=(110101011110)
Further, (e 2,1 ,..., E 2,12 ) is equal to (001001000100). Further, PAD 2 is represented by the following mathematical formula, and is assumed to be (110101011110) here.
PAD 2 = [PRF K1 (Ibaraki University)] 12
= (110101011110)
よって、ファイル番号の暗号文OTP2は、それらの排他的論理和(xor)であるので、本例では、下記の数式で表される。
OTP2=(111100011010)
Therefore, the ciphertext OTP 2 of the file number is the exclusive OR (xor) thereof, and is represented by the following mathematical formula in this example.
OTP 2 = (111100011010)
クライアント200Aの索引検証情報生成部206Aの動作は、図3および図4に示したものと同様であるので、重複を避けるためにその説明を省略する。
Since the operation of the index verification information generation unit 206A of the
図18を参照して、クライアント200Aのファイル蓄積値計算部216Aの動作について説明する。
With reference to FIG. 18, the operation of the file accumulation
先ず、ファイル蓄積値計算部216Aは、全暗号ファイルの集合{(1、E(D1)),(2,E(D2)),・・・}および公開情報N,g、haを読み込む(ステップS202A)。次に、ファイル蓄積値計算部216Aは、各暗号ファイルE(Di)(1≦i≦n)について、素数piを下記の数式によって求める(ステップS204A)。
pi=prime(H(i,E(Di)))
ここで、Hはハッシュ関数である。
First, the file accumulating
p i = prime (H (i, E (D i )))
Here, H is a hash function.
そして、ファイル蓄積値計算部216Aは、ファイルの蓄積値Accを下記の数式によって計算する(ステップS206A)。
Acc=gp1p2p3...pnmod N
Then, the file accumulation
Acc = g p1p2p3. . . pn mod N
ファイル蓄積値計算部216Aは、この計算して得られたファイルの蓄積値Accを出力する(ステップS208A)。ファイルの蓄積値Accは、Acc保持部218Aで保持される。
The file accumulation
図19に、ファイル蓄積値計算部216Aの動作の具体例を示す。
FIG. 19 shows a specific example of the operation of the file accumulation
すなわち、ファイル蓄積値計算部216は、各暗号ファイルE(D1)、E(D2)、・・・、E(Dn)について、それぞれ、素数p1=prime(H(1,E(D1)))、p2=prime(H(2,E(D2)))、・・・、pn=prime(H(n,E(Dn)))を求め、ファイルの蓄積値Acc=gp1p2p3...pnmod Nを計算し、ファイルの蓄積値Accを出力する。
That is, the file accumulation
検索時、クライアント200Aでは、キーワード暗号化部214Aが、所定の秘密鍵K0、K1を使って検索キーワードWを暗号化し、暗号検索キーワード(label*,PAD*)をサーバ300Aに送る。
At the time of the search, in the
図20を参照して、クライアント200Aのキーワード暗号化部214Aの動作について説明する。
The operation of the
キーワード暗号化部214Aは、先ず、検索キーワードWと所定の秘密鍵K0,K1とを読み込む(ステップS802)。引き続いて、キーワード暗号化部214Aは、下記の数式に従って、暗号検索キーワード(label*,PAD*)を計算する(ステップS804)。
label*=[PRFK0(W)]128
PAD*=[PRFK1(W)]n
The
label * = [PRF K0 (W)] 128
PAD * = [PRF K1 (W)] n
そして、キーワード暗号化部214Aは、計算により得られた暗号検索キーワード(label*,PAD*)をサーバ300Aへ送信する(ステップS806)。
Then, the
図21に、キーワード暗号化部214Aの動作の具体例を示す。本例では、検索キーワードWが「茨城大学」であって、ファイルの総数nが12に等しい場合の例を示している。
FIG. 21 shows a specific example of the operation of the
この場合、キーワード暗号化部214Aは、下記の数式に従って、暗号検索キーワード(label*,PAD*)を計算する。
label*=[PRFK0(茨城大学)]128
PAD*=[PRFK1(茨城大学)]12
(=110101011110)
In this case, the
label * = [PRF K0 (Ibaraki University)] 128
PAD * = [PRF K1 (Ibaraki University)] 12
(= 110101011110)
キーワード暗号化部214Aは、計算により得られた暗号検索キーワード(label*,PAD*)をサーバ300Aへ送信する。
The
サーバ300Aにおいては、暗号検索キーワード(label*,PAD*)に応答して、暗号検索部304Aは、その検索キーワードWを含む暗号ファイルの集合{(j1,E(Dj1)),(j2,E(Dj2)),・・・}とその索引検証情報tagjとをクライアント200Aへ返す。
In the
図22を参照して、サーバ300Aの暗号検索部304Aの動作について説明する。
With reference to FIG. 22, the operation of the
先ず、暗号検索部304Aは、クライアント200Aから送出されてきた暗号検索キーワード(label*,PAD*)を検索用データとして読み込む(ステップS902)。
First, the
引き続いて、暗号検索部304Aは、記憶領域302Aに格納されている暗号化索引の中からlabel*=labeljとなるjを見つけて、(labelj,OTPj,tagj)を見つける(ステップS904)。
Subsequently, the
次に、暗号検索部304Aは、下記の数式を計算する(ステップS906)。
(e1,・・・,en)=OTPj+PAD*mod 2
Next, the
(E 1 ,..., E n ) = OTP j + PAD * mod 2
そして、暗号検索部304Aは、ej=1となるjの集合{j1,j2,・・・}を求める(ステップS908)。
Then, the
次に、暗号検索部304Aは、検索キーワードWを含む暗号ファイルの集合{(j1,E(Dj1)),(j2,E(Dj2)),・・・}とその索引検証情報tagjとを出力する(ステップS910)。
Next, the
したがって、クライアント200Aは、暗号ファイルの集合{(j1,E(Dj1)),(j2,E(Dj2)),・・・}とその索引検証情報tagjとを取得する。
Therefore, the
図23に暗号検索部304Aの動作の具体例を示す。本例では、jが2に等しく、nが12に等しい場合の例を示している。
FIG. 23 shows a specific example of the operation of the
j=2であるので、暗号検索部304Aは、暗号化索引の中から(label2,OTP2,tag2)を見つける。そして、暗号検索部304Aは、下記の数式を計算する。
(e1,・・・,e12)=OTP2+PAD*mod 2
Since j = 2, the
(E 1 ,..., E 12 ) = OTP 2 + PAD * mod 2
本例では、PAD*およびOTP2は、それぞれ、下記の数式に等しいとする。
PAD*=(110101011110)
OTP2=(111100011010)
In this example, it is assumed that PAD * and OTP 2 are equal to the following mathematical expressions, respectively.
PAD * = (110101011110)
OTP 2 = (111100011010)
この場合、(e1,・・・,e12)は、それらの排他的論理和xorであるので、下記の数式で表される。
(e1,・・・,e12)=(001001000100)
In this case, since (e 1 ,..., E 12 ) is their exclusive OR xor, it is expressed by the following mathematical formula.
(E 1 ,..., E 12 ) = (001010100100)
よって、e3=1、e6=1、e10=1であるので、該当する文書番号(ファイル番号は、(3,6,10)となる。 Therefore, since e 3 = 1, e 6 = 1, and e 10 = 1, the corresponding document number (file number is ( 3 , 6 , 10 ).
したがって、暗号検索部304Aは、検索キーワードWを含む暗号ファイルの集合{(3,E(D3)),(6,E(D6)),(10,E(D10))}とその索引検証情報tag2とを出力する。
Therefore, the
上述したように、キーワード暗号化部214Aは、所定の秘密鍵K0、K1を使って検索キーワードWを暗号化して得られる暗号検索キーワード(label*,PAD*)をサーバ300Aへ送って、サーバ300Aから、暗号ファイルの集合{(j1,E(Dj1)),(j2,E(Dj2)),・・・}と検索キーワードWに対応する索引検証情報tagjとを取得する暗号ファイル取得手段として働く。
As described above, the
クライアント200Aの索引検証部208Aの動作は、図7および図8と実質的に同様なので、その詳細な動作説明については省略する。相違点は、図7のステップS304における「ファイルの集合」が、「暗号ファイルの集合」に変更されていることだけである。
Since the operation of the
図24を参照して、サーバ300Aのファイル検証情報生成部308Aの動作について説明する。
The operation of the file verification
先ず、ファイル検証情報生成部308Aは、暗号検索部304Aから暗号ファイルの集合S={(j1,E(Dj1)),(j2,E(Dj2)),・・・}を読み込む(ステップS402A)。引き続いて、ファイル検証情報生成部308Aは、記憶領域302Aから全暗号ファイル{(1、E(D1)),(2,E(D2)),・・・}を読み込む(ステップS404A)。そして、ファイル検証情報生成部308Aは、鍵保持部306Aから公開情報N,g,haを読み込む(ステップS406A)。
First, the file verification
次に、ファイル検証情報生成部308Aは、暗号ファイルの集合Sに含まれない各添字(すなわち、ファイル番号)(i1,i2,・・・)について下記の数式に従って素数pi(i=i1,i2,・・・)を計算し、さらに、ファイル検証情報πを下記の数式に従って計算する(ステップS408A)。
pi=prime(H(i,E(Di)))
π=gpi1pi2・・・mod N
Next, the file verification
p i = prime (H (i, E (D i )))
π = g pi1pi2... mod N
そして、ファイル検証情報生成部308Aは、ファイル検証情報πを出力する(ステップS410A)。このファイル検証情報πは、クライアント200Aへ送出される。
Then, the file verification
図25に、ファイル検証情報生成部308Aの動作の具体例を示す。この例では、暗号検索部304Aから暗号ファイルの集合S={(2,E(D2)),(4,E(D4))}が出力された場合の例を示している。
FIG. 25 shows a specific example of the operation of the file verification
この場合、ファイル検索情報生成部308Aは、ファイル番号が2,4以外のすべての暗号ファイルについて、p1=prime(H(1,E(D1))),p3=prime(H(3,E(D3))),p5=prime(H(5,E(D5))),p6=prime(H(6,E(D6))),・・・を計算し、ファイル検証情報π=gp1p3p5p6・・・mod Nを計算して出力する。
In this case, the file search
図26を参照して、クライアント200Aのファイル検証部220Aの動作について説明する。
The operation of the
ファイル検証部220Aは、先ず、索引検証部208Aの結果がaccept(承認)であるか否かを判断する(ステップS502A)。accept(承認)なら、ファイル検証部220AはステップS504Aに進み、reject(拒否)なら、ファイル検証部220Aはreject(拒否)を出力する(ステップS514A)。
First, the
ステップS504Aにおいて、ファイル検証部220Aは、サーバ300Aから暗号ファイルの集合S={(i1,E(Di1)),(i2,E(Di2)),・・・}と、そのファイル検証情報πを読み込む。そして、ファイル検証部220Aは、鍵保持部204Aから公開情報N,g,haを読み込む。
In step S504A, the
引き続いて、ファイル検証部220Aは、暗号ファイルの集合Sに含まれる各暗号ファイルE(Di)(E(Di1),E(Di2),・・・)について、下記の数式に従って素数piを計算する(ステップS506A)。
pi=prime(H(i,E(Di)))
Subsequently, the
p i = prime (H (i, E (D i )))
次に、ファイル検証部220Aは、下記の数式に従ってファイルの蓄積値Aを計算する(ステップS508A)。
A=πpi1pi2・・・mod N
Next, the
A = π pi1pi2... Mod N
そして、ファイル検証部220Aは、この計算したファイルの蓄積値Aが、Acc保持部218Aに保持されている全ファイルの蓄積値Accと等しいか否か判断する(ステップS510A)。
Then, the
A=Accの場合(ステップS510AのYes)、ファイル検証部220Aは、サーバ300Aから取得した暗号ファイルの集合S={(i1,E(Di1)),(i2,E(Di2)),・・・}を復号して、所望のファイルの集合{(i1,Di1),(i2,Di2),・・・}として出力する(ステップS512A)。A≠Accの場合(ステップS510AのNo)、ファイル検証部220Aは、reject(拒否)を出力する(ステップS514A)。
When A = Acc (Yes in step S510A), the
図27に、ファイル検証部220Aの動作の具体例を示す。この例では、サーバ300Aから暗号ファイルの集合S={(2,E(D2)),(4,E(D4))}を受け取った場合を示している。
FIG. 27 shows a specific example of the operation of the
この場合、ファイル検証部220Aは、素数p2=prime(H(2,E(D2)))およびp4=prime(H(4,E(D4)))を計算した後、ファイルの蓄積値A=πp2p4mod Nを計算し、計算したファイルの蓄積値Aが保持している全ファイルの蓄積値Accと等しいか否か判断し、等しければ、取得した暗号ファイルの集合E(D2)、E(D4)を復号して、所望のファイルの集合D2、D4を得、等しくなければ、reject(拒否)する。
In this case, the
図28を参照して、本発明の第2の実施例に係る検索システム100Aの更新フェーズについて説明する。図28は、本発明の第2の実施例に係る検索システム100Aの更新フェーズのブロック図である。
With reference to FIG. 28, the update phase of the
図28に示されるように、クライアント(ユーザ端末)200Aは、第1及び第2の信号線(伝送線)222A、224Aと、Acc更新部226Aと、を更に有する。
As illustrated in FIG. 28, the client (user terminal) 200A further includes first and second signal lines (transmission lines) 222A and 224A, and an
本例では、ファイル番号jを持つ現暗号ファイルE(Dj)を、新暗号ファイルE(Dj’)に更新するか又は削除する場合を示している。すなわち、本例では、ファイル番号jを持つ暗号ファイルが、更新(又は削除)すべき暗号ファイルであり、現暗号ファイルE(Dj)が更新前の暗号ファイルである。 In this example, the current encryption file E (D j ) having the file number j is updated to a new encryption file E (D j ′) or deleted. That is, in this example, the encryption file having the file number j is an encryption file to be updated (or deleted), and the current encryption file E (D j ) is the encryption file before being updated.
この場合、クライアント200Aは、新暗号ファイルE(Dj’)又は「削除」を示すデータを第1の信号線(伝送線)222Aを介してサーバ300Aへ送信すると共に、ファイル番号jを第2の信号線(伝送線)224Aを介してサーバ300Aへ送信する。サーバ300Aは、その送られてきた新暗号ファイルE(Dj’)又は「削除」を示すデータをそのファイル番号jと共に記憶領域302Aに保管する。
In this case, the
したがって、第1及び第2の信号線(伝送線)222A、224Aの組み合わせは、更新(削除)すべき暗号ファイルをそのファイル番号jと共にサーバ300Aへ送って更新(削除)する更新手段として働く。
Therefore, the combination of the first and second signal lines (transmission lines) 222A and 224A serves as an updating unit that sends the encrypted file to be updated (deleted) together with the file number j to the
尚、新暗号ファイルE(Dj’)は、図15に示すファイル暗号化部210Aを使用して、新ファイルDj’を暗号化することによって生成してよい。
The new encryption file E (D j ′) may be generated by encrypting the new file D j ′ using the
サーバ300Aにおいて、第2の信号線(伝送線)224Aを介してファイル番号jが渡されると、暗号検索部304Aは、記憶領域302Aに既に格納されている現暗号ファイル(更新前の暗号ファイル)E(Dj)を検索して、そのファイル番号jが付加された現暗号ファイル(j、E(Dj))をクライアント200Aへ返す。
In the
図29を参照して、クライアント200AのAcc更新部226Aの動作について説明する。
With reference to FIG. 29, the operation of the
先ず、Acc更新部226Aは、ファイル番号j、現暗号ファイルE(Dj)、新暗号ファイルE(Dj’)(又は「削除」を示すデータ)を読み込み、Acc保持部218Aから全暗号ファイルの蓄積値Accを読み込み、鍵保持部204Aから秘密情報p,qと公開情報N,g,haを読み込む(ステップS602A)。
First, the
引き続いて、Acc更新部226Aは、下記の数式に従って、x、x’、およびdを計算する(ステップS604A)。
x=prime(H(j,E(Dj)))
x’=prime(H(j,E(Dj’)))
d=x’/x mod (p−1)(q−1)
Subsequently, the
x = prime (H (j, E (D j )))
x ′ = prime (H (j, E (D j ′)))
d = x ′ / x mod (p−1) (q−1)
次に、Acc更新部226Aは、下記の数式に従って、新しい全暗号ファイルの蓄積値Acc’を計算する(ステップS606A)。
Acc’=Accdmod N
Next, the
Acc '= Acc d mod N
最後に、Acc更新部226Aは、計算した新しい全暗号ファイルの蓄積値Acc’をAcc保持部218Aに保持することにより、古い全暗号ファイルの蓄積値Accを新しい全暗号ファイルの蓄積値Acc’に更新する(ステップS608A)。
Finally, the
このように、暗号ファイルを更新(又は削除)しようとする場合、クライアント200Aは、更新すべき暗号ファイル(又は「削除」を示すデータ)をそのファイル番号と共にサーバ300Aへ送出し、全暗号ファイルの蓄積値を更新するだけで良いので、暗号ファイルの更新(削除)を効率的に行なうことができる。
In this way, when updating (or deleting) an encrypted file, the
次に、本第2の実施例の効果について説明する。 Next, the effect of the second embodiment will be described.
第2の実施例の検索システム100Aの第1の効果は、サーバの不正(ファイルの削除、追加、改ざん、すり替え)を検出ことができるだけでなく、ファイルの更新(削除を含む)を効率的に行うことができることである。その理由は、クライアント(ユーザ端末)200Aが各キーワードWiと当該キーワードWiを含む全てのファイルの集合を暗号化して得られる暗号ファイル{E(Dj1)、E(Dj2)、…}のファイル番号の集合(j1、j2、…)とを一組(生成用組)として、それに対する索引検証情報tagiを生成し、生成した索引検証情報tagiをサーバ300Aに保管しているからである。
The first effect of the
第2の実施例の検索システム100Aの第2の効果は、リプレイ・アタックを検出できることである。その理由は、RSA accumulatorを利用してファイルの蓄積値Accをチェックしているからである。
A second effect of the
尚、リプレイ・アタックを検出しない場合には、クライアント200Aから、ファイル蓄積値計算部216A、Acc保持部218A、ファイル検証部220A、およびAcc更新部226Aを省略し、サーバ300Aから鍵保持部306Aおよびファイル検証情報生成部308Aを省略することができる。
If the replay attack is not detected, the file accumulation
また、上記本発明の第2の実施例に係る検索システム100Aは、検索方法として実現され得る。さらに、上記本発明の第2の実施例に係る検索システム100Aのうちのクライアント(ユーザ端末)200Aが実施する部分は、当該クライアント(ユーザ端末)200Aに含まれるメモリ(ROM等)に格納された検索プログラムによって実行されるようにしてもよい。
The
以上、実施形態(実施例)を参照して本発明を説明したが、本発明は上記実施形態(実施例)に限定されるものではない。本発明の構成や詳細には、本発明のスコープ内で当業者が理解し得る様々な変更をすることができる。 As mentioned above, although this invention was demonstrated with reference to embodiment (Example), this invention is not limited to the said embodiment (Example). Various changes that can be understood by those skilled in the art can be made to the configuration and details of the present invention within the scope of the present invention.
上記の実施形態(実施例)の一部又は全部は、以下の付記のようにも記載されうるが、以下には限られない。 Part or all of the above-described embodiments (examples) can be described as in the following supplementary notes, but are not limited thereto.
(付記1) ユーザ端末がサーバに複数のファイルを保管し、前記ユーザ端末がキーワード検索によって前記サーバから所望のファイルの集合を取得すると共に、ファイルの更新をも行う検索システムであって、前記ユーザ端末は、
前記複数のファイルをそれらのファイル番号と共に前記サーバに保管するファイル保管手段と、
キーワードと該キーワードに対応するファイルのファイル番号との対応表である索引を、前記サーバに保管する索引保管手段と、
前記キーワードと該キーワードを含む全てのファイルのファイル番号の集合との生成用組に対して所定の生成アルゴリズムに従って索引検証情報を生成し、該生成した索引検証情報を前記サーバに保管する索引検証情報生成部と、
検索キーワードを前記サーバへ送って、前記サーバから前記検索キーワードを含むファイルおよび当該ファイルのファイル番号の集合と前記検索キーワードに対応する索引検証情報とを取得するファイル取得手段と、
該取得した索引検証情報が、前記検索キーワードと前記取得したファイルのファイル番号の集合との検証用組の索引検証情報であるか否かを所定の検証アルゴリズムによってチェックし、チェックの結果が正しければ承認し、そうでなければ拒否する索引検証部と、
更新すべきファイルをそのファイル番号と共に前記サーバへ送って更新する更新手段と、
を有する検索システム。
(Supplementary note 1) A search system in which a user terminal stores a plurality of files in a server, and the user terminal acquires a set of desired files from the server by keyword search, and also updates a file, the user terminal The terminal
File storage means for storing the plurality of files together with their file numbers in the server;
Index storage means for storing an index, which is a correspondence table of keywords and file numbers of files corresponding to the keywords, in the server;
Index verification information for generating index verification information according to a predetermined generation algorithm for a generation set of the keyword and a set of file numbers of all files including the keyword, and storing the generated index verification information in the server A generator,
A file acquisition means for sending a search keyword to the server, and acquiring a file including the search keyword and a set of file numbers of the file and index verification information corresponding to the search keyword from the server;
Whether the acquired index verification information is index verification information of a verification set of the search keyword and the set of file numbers of the acquired files is checked by a predetermined verification algorithm, and if the check result is correct An index verifier to approve or otherwise reject;
Update means for sending the file to be updated together with its file number to the server for updating;
Search system having
(付記2) 前記更新すべきファイルが削除を示すデータから成る、付記1に記載の検索システム。
(Supplementary note 2) The search system according to
(付記3) 前記ユーザ端末は、
秘密鍵と所定の公開情報とを保持するユーザ鍵保持部と、
前記所定の公開情報と前記複数のファイルとから全ファイルの蓄積値を計算するファイル蓄積値計算部と、
前記全ファイルの蓄積値を保持する蓄積値保持部と、
を更に備え、
前記サーバは、
前記所定の公開情報を保持するサーバ鍵保持部と、
前記所定の公開情報に基づいて、当該サーバに保管された全ファイルの内、前記検索キーワードを含むファイルの集合以外のファイルを使用して、ファイル検証情報を生成して前記ユーザ端末へ送出するファイル検証情報生成部と、
を備え、
前記ユーザ端末は、
前記索引検証部で承認された場合、前記所定の公開情報に基づいて、前記取得したファイルの集合と前記ファイル検証情報とを使用して、ファイルの蓄積値を計算し、該計算したファイルの蓄積値と前記保持した全ファイルの蓄積値とが等しければ、前記取得したファイルの集合を前記所望のファイルの集合として得、そうでなければ拒否するファイル検証部を更に有する、
付記1又は2に記載の検索システム。
(Supplementary Note 3) The user terminal is
A user key holding unit that holds a secret key and predetermined public information;
A file accumulation value calculation unit for calculating accumulation values of all files from the predetermined public information and the plurality of files;
An accumulated value holding unit for holding accumulated values of all the files;
Further comprising
The server
A server key holding unit for holding the predetermined public information;
A file that generates file verification information by using a file other than the set of files including the search keyword among all files stored in the server based on the predetermined public information, and sends the file verification information to the user terminal A verification information generation unit;
With
The user terminal is
When approved by the index verification unit, based on the predetermined public information, using the acquired set of files and the file verification information, calculate a storage value of the file, and store the calculated file A file verification unit that obtains the set of the obtained files as the set of the desired files if the value is equal to the accumulated value of all the held files, and rejects otherwise.
The search system according to
(付記4) 前記ユーザ端末は、
前記所定の公開情報に基づいて、前記更新すべきファイル、更新前のファイル、そのファイル番号、および前記蓄積値保持部に保持された全ファイルの蓄積値を使用して、新しい全ファイルの蓄積値を計算し、該計算した新しい全ファイルの蓄積値を前記蓄積値保持部に保持する蓄積値更新部を更に有する、
付記3に記載の検索システム。
(Supplementary Note 4) The user terminal
Based on the predetermined public information, the file to be updated, the file before update, the file number thereof, and the accumulated value of all the files held in the accumulated value holding unit, was calculated, further comprising a storage value updating unit that holds the accumulated value of the calculated new full file on the storage value holding unit,
The search system according to
(付記5) 前記所定の生成アルゴリズムが署名生成アルゴリズムから成り、
前記所定の検証アルゴリズムが署名検証アルゴリズムから成り、
前記索引検証情報生成部は、デジタル署名の秘密鍵を使って、前記署名生成アルゴリズムに従って、前記索引検証情報として前記生成用組に対するデジタル署名を生成し、
前記索引検証部は、デジタル署名の公開鍵を使って、前記署名検証アルゴリズムに従って、取得したデジタル署名が前記検証用組のデジタル署名であるか否かをチェックする、
付記1乃至4のいずれか1つに記載の検索システム。
(Supplementary Note 5) The predetermined generation algorithm includes a signature generation algorithm,
The predetermined verification algorithm comprises a signature verification algorithm;
The index verification information generation unit generates a digital signature for the generation set as the index verification information according to the signature generation algorithm using a digital signature private key,
The index verification unit checks whether the acquired digital signature is a digital signature of the verification set according to the signature verification algorithm using a public key of the digital signature.
The search system according to any one of
(付記6) 前記所定の生成アルゴリズムがMAC(Message Authentication Code)生成アルゴリズムから成り、
前記所定の検証アルゴリズムがMAC検証アルゴリズムから成り、
前記索引検証情報生成部は、MACの秘密鍵を使って、前記MAC生成アルゴリズムに従って、前記索引検証情報として前記生成用組に対する認証子を生成し、
前記索引検証部は、前記MACの秘密鍵を使って、前記MAC検証アルゴリズムに従って、取得した認証子が前記検証用組の認証子であるか否かをチェックする、
付記1乃至4のいずれか1つに記載の検索システム。
(Supplementary Note 6) The predetermined generation algorithm includes a MAC (Message Authentication Code) generation algorithm,
The predetermined verification algorithm comprises a MAC verification algorithm;
The index verification information generation unit generates an authenticator for the generation set as the index verification information according to the MAC generation algorithm using a MAC secret key,
The index verification unit checks whether the acquired authenticator is the authenticator of the verification set according to the MAC verification algorithm, using the MAC secret key.
The search system according to any one of
(付記7) ユーザ端末がサーバに複数のファイルを保管し、前記ユーザ端末がキーワード検索によって前記サーバから所望のファイルの集合を取得すると共に、ファイルの更新をも行う検索方法であって、
前記ユーザ端末が、前記複数のファイルをそれらのファイル番号と共に前記サーバに保管するステップと、
前記ユーザ端末が、キーワードと該キーワードに対応するファイルのファイル番号との対応表である索引を、前記サーバに保管するステップと、
前記ユーザ端末が、前記キーワードと該キーワードを含む全てのファイルのファイル番号の集合との生成用組に対して所定の生成アルゴリズムに従って索引検証情報を生成するステップと、
前記ユーザ端末が、前記生成した索引検証情報を前記サーバに保管するステップと、
前記ユーザ端末が、検索キーワードを前記サーバへ送って、前記サーバから前記検索キーワードを含むファイルおよび当該ファイルのファイル番号の集合と前記検索キーワードに対応する索引検証情報とを取得するステップと、
前記ユーザ端末が、前記取得した索引検証情報が、前記検索キーワードと前記取得したファイルのファイル番号の集合との検証用組の索引検証情報であるか否かを所定の検証アルゴリズムによってチェックするステップと、
前記ユーザ端末が、チェックの結果が正しければ承認し、そうでなければ拒否するステップと、
前記ユーザ端末が、更新すべきファイルをそのファイル番号と共に前記サーバへ送って更新するステップと、
を含む検索方法。
(Supplementary note 7) A search method in which a user terminal stores a plurality of files in a server, the user terminal acquires a set of desired files from the server by keyword search, and also updates the file,
The user terminal storing the plurality of files together with their file numbers in the server;
The user terminal storing an index, which is a correspondence table of keywords and file numbers of files corresponding to the keywords, in the server;
The user terminal generating index verification information according to a predetermined generation algorithm for a generation set of the keyword and a set of file numbers of all files including the keyword;
The user terminal storing the generated index verification information in the server;
The user terminal sends a search keyword to the server, and acquires from the server a file including the search keyword and a set of file numbers of the file and index verification information corresponding to the search keyword;
The user terminal checks whether or not the acquired index verification information is index verification information of a verification set of the search keyword and a set of file numbers of the acquired files by a predetermined verification algorithm; ,
The user terminal approves if the result of the check is correct, and rejects otherwise;
The user terminal sends a file to be updated to the server together with the file number for updating;
Search method including
(付記8) 前記更新すべきファイルが削除を示すデータから成る、付記7に記載の検索方法。 (Supplementary note 8) The search method according to supplementary note 7, wherein the file to be updated includes data indicating deletion.
(付記9) サーバに複数のファイルを保管し、キーワード検索によって前記サーバから所望のファイルの集合を取得すると共に、ファイルの更新をも行う処理を、コンピュータであるユーザ端末に実行させる検索プログラムであって、前記コンピュータに、
前記複数のファイルをそれらのファイル番号と共に前記サーバに保管する手順と、
キーワードと該キーワードに対応するファイルのファイル番号との対応表である索引を、前記サーバに保管する手順と、
前記キーワードと該キーワードを含む全てのファイルのファイル番号の集合との生成用組に対して所定の生成アルゴリズムに従って索引検証情報を生成する手順と、
前記生成した索引検証情報を前記サーバに保管する手順と、
検索キーワードを前記サーバへ送って、前記サーバから前記検索キーワードを含むファイルおよび当該ファイルのファイル番号の集合と前記検索キーワードに対応する索引検証情報とを取得する手順と、
前記取得した索引検証情報が、前記検索キーワードと前記取得したファイルのファイル番号の集合との検証用組の索引検証情報であるか否かを所定の検証アルゴリズムによってチェックする手順と、
チェックの結果が正しければ承認し、そうでなければ拒否する手順と、
更新すべきファイルをそのファイル番号と共に前記サーバへ送って更新する手順と、
を実行させるための検索プログラム。
(Supplementary Note 9) A search program for storing a plurality of files on a server, obtaining a desired set of files from the server by keyword search, and causing a user terminal, which is a computer, to execute processing for updating the files. And the computer
Storing the plurality of files together with their file numbers on the server;
A procedure for storing an index, which is a correspondence table of keywords and file numbers of files corresponding to the keywords, in the server;
Generating index verification information according to a predetermined generation algorithm for a generation set of the keyword and a set of file numbers of all files including the keyword;
A procedure for storing the generated index verification information in the server;
Sending a search keyword to the server, and obtaining from the server a file containing the search keyword and a set of file numbers of the file and index verification information corresponding to the search keyword;
A procedure for checking whether or not the acquired index verification information is index verification information of a verification set of the search keyword and a set of file numbers of the acquired files by a predetermined verification algorithm;
Approve if the result of the check is correct, otherwise reject it,
Sending the file to be updated together with its file number to the server for updating;
Search program to execute.
(付記10) 前記更新すべきファイルが削除を示すデータから成る、付記9に記載の検索プログラム。 (Supplementary note 10) The search program according to supplementary note 9, wherein the file to be updated includes data indicating deletion.
(付記11) ユーザ端末がサーバに複数の暗号ファイルを保管し、前記ユーザ端末がキーワード検索によって前記サーバから所望のファイルの集合を取得すると共に、暗号ファイルの更新をも行う検索システムであって、前記ユーザ端末は、
暗号化の秘密鍵を使って複数のファイルをそれぞれ暗号化し、前記複数の暗号ファイルをそれらの暗号ファイルのファイル番号と共に前記サーバに保管する暗号ファイル保管手段と、
キーワードと該キーワードに対応するファイルのファイル番号との対応表である索引を、所定の秘密鍵を使って暗号化し、前記キーワードの暗号文と該キーワードを含むファイルのファイル番号の暗号文とから成る暗号化索引を前記サーバに保管する暗号化索引保管手段と、
前記キーワードと該キーワードを含む全てのファイルのファイル番号の集合との生成用組に対して所定の生成アルゴリズムに従って索引検証情報を生成し、該生成した索引検証情報を前記サーバに保管する索引検証情報生成部と、
前記所定の秘密鍵を使って検索キーワードを暗号化して得られる暗号検索キーワードを前記サーバへ送って、前記サーバから前記暗号検索キーワードを含む暗号ファイルおよび当該暗号ファイルのファイル番号の集合と前記検索キーワードに対応する索引検証情報とを取得する暗号ファイル取得手段と、
該取得した索引検証情報が、前記検索キーワードと前記取得した暗号ファイルのファイル番号の集合との検証用組の索引検証情報であるか否かを所定の検証アルゴリズムによってチェックし、チェックの結果が正しければ承認し、そうでなければ拒否する索引検証部と、
更新すべきファイルを前記暗号化の秘密鍵を使って暗号化して得られる、更新すべき暗号ファイルをそのファイル番号と共に前記サーバに送って更新する更新手段と、
を有する検索システム。
(Supplementary note 11) A search system in which a user terminal stores a plurality of encrypted files in a server, and the user terminal acquires a set of desired files from the server by keyword search, and also updates an encrypted file, The user terminal is
Encrypted file storage means for encrypting each of a plurality of files using an encryption private key, and storing the plurality of encrypted files together with file numbers of the encrypted files on the server;
An index, which is a correspondence table between a keyword and a file number of a file corresponding to the keyword, is encrypted using a predetermined secret key, and includes a ciphertext of the keyword and a ciphertext of the file number of the file including the keyword Encrypted index storage means for storing an encrypted index in the server;
Index verification information for generating index verification information according to a predetermined generation algorithm for a generation set of the keyword and a set of file numbers of all files including the keyword, and storing the generated index verification information in the server A generator,
An encryption search keyword obtained by encrypting a search keyword using the predetermined secret key is sent to the server, and an encryption file including the encryption search keyword from the server, a set of file numbers of the encryption file, and the search keyword Encrypted file acquisition means for acquiring index verification information corresponding to
Whether or not the acquired index verification information is index verification information of a verification set of the search keyword and the set of file numbers of the acquired encrypted files is checked by a predetermined verification algorithm, and the check result is correct. An index validation unit that approves and rejects otherwise,
Updating means for encrypting a file to be updated using the encryption private key and sending the encrypted file to be updated together with the file number to the server for updating;
Search system having
(付記12) 前記更新すべき暗号ファイルが削除を示すデータから成る、付記11に記載の検索システム。
(Supplementary note 12) The search system according to
(付記13) 前記ユーザ端末は、
前記暗号化の秘密鍵と前記所定の秘密鍵と所定の公開情報とを保持するユーザ鍵保持部と、
前記所定の公開情報と前記複数の暗号ファイルとから全暗号ファイルの蓄積値を計算するファイル蓄積値計算部と、
前記全暗号ファイルの蓄積値を保持する蓄積値保持部と、
を更に備え、
前記サーバは、
前記所定の公開情報を保持するサーバ鍵保持部と、
前記所定の公開情報に基づいて、当該サーバに保管された全暗号ファイルの内、前記暗号検索キーワードを含む暗号ファイルの集合以外の暗号ファイルを使用して、ファイル検証情報を生成して前記ユーザ端末へ送出するファイル検証情報生成部と、
を備え、
前記ユーザ端末は、
前記索引検証部で承認された場合、前記所定の公開情報に基づいて、前記取得した暗号ファイルの集合と前記ファイル検証情報とを使用して、暗号ファイルの蓄積値を計算し、該計算した暗号ファイルの蓄積値と前記保持した全暗号ファイルの蓄積値とが等しければ、前記取得した暗号ファイルの集合を復号して前記所望のファイルの集合を得、そうでなければ拒否するファイル検証部を更に有する、
付記11又は12に記載の検索システム。
(Supplementary note 13) The user terminal
A user key holding unit that holds the encryption secret key, the predetermined secret key, and predetermined public information;
A file accumulation value calculation unit for calculating accumulation values of all encrypted files from the predetermined public information and the plurality of encrypted files;
An accumulated value holding unit for holding accumulated values of all the encrypted files;
Further comprising
The server
A server key holding unit for holding the predetermined public information;
Based on the predetermined public information, out of all the encrypted files stored in the server, an encrypted file other than the set of encrypted files including the encrypted search keyword is used to generate file verification information to generate the user terminal A file verification information generator to be sent to
With
The user terminal is
When approved by the index verification unit, based on the predetermined public information, using the acquired set of encrypted files and the file verification information, calculate an accumulated value of the encrypted file, and calculate the calculated encryption A file verification unit that decrypts the acquired set of encrypted files to obtain the desired set of files if the stored value of the files is equal to the stored value of all the stored encrypted files; Have
The search system according to
(付記14) 前記ユーザ端末は、
前記所定の公開情報に基づいて、前記更新すべき暗号ファイル、更新前の暗号ファイル、そのファイル番号、および前記蓄積値保持部に保持された全暗号ファイルの蓄積値を使用して、新しい全暗号ファイルの蓄積値を計算し、該計算した新しい全暗号ファイルの蓄積値を前記蓄積値保持部に保持する蓄積値更新部を更に有する、
付記13に記載の検索システム。
(Supplementary Note 14) The user terminal
Based on the predetermined public information, a new all-encryption code is obtained by using the encrypted file to be updated, the encrypted file before the update, the file number thereof, and the accumulated value of all the encrypted files held in the accumulated value holding unit. It calculates the accumulation value of the file, further comprising a storage value updating unit that holds the accumulated value of the new total cipher files the computed the accumulation value holding unit,
The search system according to attachment 13.
(付記15) 前記所定の生成アルゴリズムが署名生成アルゴリズムから成り、
前記所定の検証アルゴリズムが署名検証アルゴリズムから成り、
前記索引検証情報生成部は、デジタル署名の秘密鍵を使って、前記署名生成アルゴリズムに従って、前記索引検証情報として前記生成用組に対するデジタル署名を生成し、
前記索引検証部は、デジタル署名の公開鍵を使って、前記署名検証アルゴリズムに従って、取得したデジタル署名が前記検証用組のデジタル署名であるか否かをチェックする、
付記11乃至14のいずれか1つに記載の検索システム。
(Supplementary Note 15) The predetermined generation algorithm includes a signature generation algorithm,
The predetermined verification algorithm comprises a signature verification algorithm;
The index verification information generation unit generates a digital signature for the generation set as the index verification information according to the signature generation algorithm using a digital signature private key,
The index verification unit checks whether the acquired digital signature is a digital signature of the verification set according to the signature verification algorithm using a public key of the digital signature.
The search system according to any one of
(付記16) 前記所定の生成アルゴリズムがMAC(Message Authentication Code)生成アルゴリズムから成り、
前記所定の検証アルゴリズムがMAC検証アルゴリズムから成り、
前記索引検証情報生成部は、MACの秘密鍵を使って、前記MAC生成アルゴリズムに従って、前記索引検証情報として前記生成用組に対する認証子を生成し、
前記索引検証部は、前記MACの秘密鍵を使って、前記MAC検証アルゴリズムに従って、取得した認証子が前記検証用組の認証子であるか否かをチェックする、
付記11乃至14のいずれか1つに記載の検索システム。
(Supplementary Note 16) The predetermined generation algorithm includes a MAC (Message Authentication Code) generation algorithm,
The predetermined verification algorithm comprises a MAC verification algorithm;
The index verification information generation unit generates an authenticator for the generation set as the index verification information according to the MAC generation algorithm using a MAC secret key,
The index verification unit checks whether the acquired authenticator is the authenticator of the verification set according to the MAC verification algorithm, using the MAC secret key.
The search system according to any one of
(付記17) ユーザ端末がサーバに複数の暗号ファイルを保管し、前記ユーザ端末がキーワード検索によって前記サーバから所望のファイルの集合を取得すると共に、暗号ファイルの更新をも行う検索方法であって、
前記ユーザ端末が、暗号化の秘密鍵を使って複数のファイルをそれぞれ暗号化し、前記複数の暗号ファイルをそれらの暗号ファイルのファイル番号と共に前記サーバに保管するステップと、
前記ユーザ端末が、キーワードと該キーワードに対応するファイルのファイル番号との対応表である索引を、所定の秘密鍵を使って暗号化し、前記キーワードの暗号文と該キーワードを含むファイルのファイル番号の暗号文とから成る暗号化索引を前記サーバに保管するステップと、
前記ユーザ端末が、前記キーワードと該キーワードを含む全てのファイルのファイル番号の集合との生成用組に対して所定の生成アルゴリズムに従って索引検証情報を生成するステップと、
前記ユーザ端末が、前記生成した索引検証情報を前記サーバに保管するステップと、
前記ユーザ端末が、前記所定の秘密鍵を使って検索キーワードを暗号化して得られる暗号検索キーワードを前記サーバへ送って、前記サーバから前記暗号検索キーワードを含む暗号ファイルおよび当該暗号ファイルのファイル番号の集合と前記検索キーワードに対応する索引検証情報とを取得するステップと、
前記ユーザ端末が、前記取得した索引検証情報が、前記検索キーワードと前記取得した暗号ファイルのファイル番号の集合との検証用組の索引検証情報であるか否かを所定の検証アルゴリズムによってチェックするステップと、
前記ユーザ端末が、チェックの結果が正しければ承認し、そうでなければ拒否するステップと、
前記ユーザ端末が、更新すべきファイルを前記暗号化の秘密鍵を使って暗号化して得られる、更新すべき暗号ファイルをそのファイル番号と共に前記サーバに送って更新するステップと、
を含む検索方法。
(Supplementary note 17) A search method in which a user terminal stores a plurality of encrypted files in a server, and the user terminal acquires a set of desired files from the server by keyword search, and also updates an encrypted file,
The user terminal encrypts each of a plurality of files using an encryption private key, and stores the plurality of encrypted files together with file numbers of the encrypted files on the server;
The user terminal encrypts an index, which is a correspondence table between a keyword and a file number of a file corresponding to the keyword, using a predetermined secret key, and the ciphertext of the keyword and the file number of the file including the keyword Storing an encrypted index comprising ciphertext on the server;
The user terminal generating index verification information according to a predetermined generation algorithm for a generation set of the keyword and a set of file numbers of all files including the keyword;
The user terminal storing the generated index verification information in the server;
The user terminal sends an encrypted search keyword obtained by encrypting a search keyword using the predetermined secret key to the server, and an encrypted file including the encrypted search keyword and a file number of the encrypted file are transmitted from the server. Obtaining a set and index verification information corresponding to the search keyword;
A step in which the user terminal checks whether or not the acquired index verification information is index verification information of a verification set of the search keyword and a set of file numbers of the acquired encrypted files by a predetermined verification algorithm; When,
The user terminal approves if the result of the check is correct, and rejects otherwise;
The user terminal sends the encrypted file to be updated to the server together with the file number obtained by encrypting the file to be updated using the encryption secret key;
Search method including
(付記18) 前記更新すべき暗号ファイルが削除を示すデータから成る、付記17に記載の検索方法。 (Supplementary note 18) The search method according to supplementary note 17, wherein the encrypted file to be updated consists of data indicating deletion.
(付記19) サーバに複数の暗号ファイルを保管し、キーワード検索によって前記サーバから所望のファイルの集合を取得すると共に、暗号ファイルの更新をも行う処理を、コンピュータであるユーザ端末に実行させる検索プログラムであって、前記コンピュータに、
暗号化の秘密鍵を使って複数のファイルをそれぞれ暗号化し、前記複数の暗号ファイルをそれらの暗号ファイルのファイル番号と共に前記サーバに保管する手順と、
キーワードと該キーワードに対応するファイルのファイル番号との対応表である索引を、所定の秘密鍵を使って暗号化し、前記キーワードの暗号文と該キーワードを含むファイルのファイル番号の暗号文とから成る暗号化索引を前記サーバに保管する手順と、
前記キーワードと該キーワードを含む全てのファイルのファイル番号の集合との生成用組に対して所定の生成アルゴリズムに従って索引検証情報を生成する手順と、
前記生成した索引検証情報を前記サーバに保管する手順と、
前記所定の秘密鍵を使って検索キーワードを暗号化して得られる暗号検索キーワードを前記サーバへ送って、前記サーバから前記暗号検索キーワードを含む暗号ファイルおよび該暗号ファイルのファイル番号の集合と前記検索キーワードに対応する索引検証情報とを取得する手順と、
前記取得した索引検証情報が、前記検索キーワードと前記取得した暗号ファイルのファイル番号の集合との検証用組の索引検証情報であるか否かを所定の検証アルゴリズムによってチェックする手順と、
チェックの結果が正しければ承認し、そうでなければ拒否する手順と、
更新すべきファイルを前記暗号化の秘密鍵を使って暗号化して得られる、更新すべき暗号ファイルをそのファイル番号と共に前記サーバに送って更新する手順と、
を実行させるための検索プログラム。
(Supplementary Note 19) A search program that stores a plurality of encrypted files in a server, acquires a desired set of files from the server by keyword search, and causes a user terminal, which is a computer, to execute processing for updating the encrypted files And the computer
Encrypting each of a plurality of files using an encryption private key, and storing the plurality of encrypted files together with the file numbers of the encrypted files on the server;
An index, which is a correspondence table between a keyword and a file number of a file corresponding to the keyword, is encrypted using a predetermined secret key, and includes a ciphertext of the keyword and a ciphertext of the file number of the file including the keyword Storing an encrypted index on the server;
Generating index verification information according to a predetermined generation algorithm for a generation set of the keyword and a set of file numbers of all files including the keyword;
A procedure for storing the generated index verification information in the server;
An encrypted search keyword obtained by encrypting a search keyword using the predetermined secret key is sent to the server, and an encrypted file including the encrypted search keyword from the server, a set of file numbers of the encrypted file, and the search keyword Obtaining index verification information corresponding to
A procedure for checking whether or not the acquired index verification information is index verification information of a verification set of the search keyword and a set of file numbers of the acquired encrypted files by a predetermined verification algorithm;
Approve if the result of the check is correct, otherwise reject it,
A procedure for transmitting the encrypted file to be updated together with the file number obtained by encrypting the file to be updated using the encryption private key to the server and updating the encrypted file;
Search program to execute.
(付記20) 前記更新すべき暗号ファイルが削除を示すデータから成る、付記19に記載の検索プログラム。 (Supplementary note 20) The search program according to supplementary note 19, wherein the encrypted file to be updated comprises data indicating deletion.
本発明は、キーワード検索におけるサーバの不正を検出し、ファイルを更新(削除を含む)する方式に利用可能である。 The present invention can be used for a method of detecting a server fraud in keyword search and updating (including deleting) a file.
100、100A 検索システム
200、200A クライアント(ユーザ端末)
202、202A 鍵生成部
204、204A 鍵保持部
206、206A 索引検証情報生成部
208、208A 索引検証部
210 第1の信号線(ファイル保管手段)
210A ファイル暗号化部(暗号ファイル保管手段)
212 第2の信号線(索引保管手段)
212A 索引暗号化部(暗号索引保管手段)
214 第3の信号線(ファイル取得手段)
214A キーワード暗号化部(暗号ファイル取得手段)
216、216A ファイル蓄積値計算部
218、218A Acc保持部
220、220A ファイル検証部
222、222A 信号線
224、224A 信号線
226、226A Acc更新部
300、300A サーバ
302、302A 記憶領域
304 検索部
304A 暗号検索部
306、306A 鍵保持部
308、308A ファイル検証情報生成部
100,
202, 202A
210A File encryption unit (encrypted file storage means)
212 Second signal line (index storage means)
212A Index encryption unit (cryptographic index storage means)
214 Third signal line (file acquisition means)
214A Keyword encryption unit (encrypted file acquisition means)
216, 216A File accumulated
Claims (10)
前記複数のファイルをそれらのファイル番号と共に前記サーバに保管するファイル保管手段と、
キーワードと該キーワードに対応するファイルのファイル番号との対応表である索引を、前記サーバに保管する索引保管手段と、
前記キーワードと該キーワードを含む全てのファイルのファイル番号の集合との生成用組に対して所定の生成アルゴリズムに従って索引検証情報を生成し、該生成した索引検証情報を前記サーバに保管する索引検証情報生成部と、
検索キーワードを前記サーバへ送って、前記サーバから前記検索キーワードを含むファイルおよび当該ファイルのファイル番号の集合と前記検索キーワードに対応する索引検証情報とを取得するファイル取得手段と、
該取得した索引検証情報が、前記検索キーワードと前記取得したファイルのファイル番号の集合との検証用組の索引検証情報であるか否かを所定の検証アルゴリズムによってチェックし、チェックの結果が正しければ承認し、そうでなければ拒否する索引検証部と、
更新すべきファイルをそのファイル番号と共に前記サーバへ送って更新する更新手段と、
を有する検索システム。 A user terminal stores a plurality of files in a server, and the user terminal acquires a set of desired files from the server by keyword search, and also updates a file.
File storage means for storing the plurality of files together with their file numbers in the server;
Index storage means for storing an index, which is a correspondence table of keywords and file numbers of files corresponding to the keywords, in the server;
Index verification information for generating index verification information according to a predetermined generation algorithm for a generation set of the keyword and a set of file numbers of all files including the keyword, and storing the generated index verification information in the server A generator,
A file acquisition means for sending a search keyword to the server, and acquiring a file including the search keyword and a set of file numbers of the file and index verification information corresponding to the search keyword from the server;
Whether the acquired index verification information is index verification information of a verification set of the search keyword and the set of file numbers of the acquired files is checked by a predetermined verification algorithm, and if the check result is correct An index verifier to approve or otherwise reject;
Update means for sending the file to be updated together with its file number to the server for updating;
Search system having
秘密鍵と所定の公開情報とを保持するユーザ鍵保持部と、
前記所定の公開情報と前記複数のファイルとから全ファイルの蓄積値を計算するファイル蓄積値計算部と、
前記全ファイルの蓄積値を保持する蓄積値保持部と、
を更に備え、
前記サーバは、
前記所定の公開情報を保持するサーバ鍵保持部と、
前記所定の公開情報に基づいて、当該サーバに保管された全ファイルの内、前記検索キーワードを含むファイルの集合以外のファイルを使用して、ファイル検証情報を生成して前記ユーザ端末へ送出するファイル検証情報生成部と、
を備え、
前記ユーザ端末は、
前記索引検証部で承認された場合、前記所定の公開情報に基づいて、前記取得したファイルの集合と前記ファイル検証情報とを使用して、ファイルの蓄積値を計算し、該計算したファイルの蓄積値と前記保持した全ファイルの蓄積値とが等しければ、前記取得したファイルの集合を前記所望のファイルの集合として得、そうでなければ拒否するファイル検証部を更に有する、
請求項1に記載の検索システム。 The user terminal is
A user key holding unit that holds a secret key and predetermined public information;
A file accumulation value calculation unit for calculating accumulation values of all files from the predetermined public information and the plurality of files;
An accumulated value holding unit for holding accumulated values of all the files;
Further comprising
The server
A server key holding unit for holding the predetermined public information;
A file that generates file verification information by using a file other than the set of files including the search keyword among all files stored in the server based on the predetermined public information, and sends the file verification information to the user terminal A verification information generation unit;
With
The user terminal is
When approved by the index verification unit, based on the predetermined public information, using the acquired set of files and the file verification information, calculate a storage value of the file, and store the calculated file A file verification unit that obtains the set of the obtained files as the set of the desired files if the value is equal to the accumulated value of all the held files, and rejects otherwise.
The search system according to claim 1.
前記所定の公開情報に基づいて、前記更新すべきファイル、更新前のファイル、そのファイル番号、および前記蓄積値保持部に保持された全ファイルの蓄積値を使用して、新しい全ファイルの蓄積値を計算し、該計算した新しい全ファイルの蓄積値を前記蓄積値保持部に保持する蓄積値更新部を更に有する、
請求項2に記載の検索システム。 The user terminal is
Based on the predetermined public information, the file to be updated, the file before update, the file number thereof, and the accumulated value of all the files held in the accumulated value holding unit, was calculated, further comprising a storage value updating unit that holds the accumulated value of the calculated new full file on the storage value holding unit,
The search system according to claim 2.
前記ユーザ端末が、前記複数のファイルをそれらのファイル番号と共に前記サーバに保管するステップと、
前記ユーザ端末が、キーワードと該キーワードに対応するファイルのファイル番号との対応表である索引を、前記サーバに保管するステップと、
前記ユーザ端末が、前記キーワードと該キーワードを含む全てのファイルのファイル番号の集合との生成用組に対して所定の生成アルゴリズムに従って索引検証情報を生成するステップと、
前記ユーザ端末が、前記生成した索引検証情報を前記サーバに保管するステップと、
前記ユーザ端末が、検索キーワードを前記サーバへ送って、前記サーバから前記検索キーワードを含むファイルおよび当該ファイルのファイル番号の集合と前記検索キーワードに対応する索引検証情報とを取得するステップと、
前記ユーザ端末が、前記取得した索引検証情報が、前記検索キーワードと前記取得したファイルのファイル番号の集合との検証用組の索引検証情報であるか否かを所定の検証アルゴリズムによってチェックするステップと、
前記ユーザ端末が、チェックの結果が正しければ承認し、そうでなければ拒否するステップと、
前記ユーザ端末が、更新すべきファイルをそのファイル番号と共に前記サーバへ送って更新するステップと、
を含む検索方法。 A search method in which a user terminal stores a plurality of files in a server, and the user terminal acquires a desired set of files from the server by keyword search, and also updates a file,
The user terminal storing the plurality of files together with their file numbers in the server;
The user terminal storing an index, which is a correspondence table of keywords and file numbers of files corresponding to the keywords, in the server;
The user terminal generating index verification information according to a predetermined generation algorithm for a generation set of the keyword and a set of file numbers of all files including the keyword;
The user terminal storing the generated index verification information in the server;
The user terminal sends a search keyword to the server, and acquires from the server a file including the search keyword and a set of file numbers of the file and index verification information corresponding to the search keyword;
The user terminal checks whether or not the acquired index verification information is index verification information of a verification set of the search keyword and a set of file numbers of the acquired files by a predetermined verification algorithm; ,
The user terminal approves if the result of the check is correct, and rejects otherwise;
The user terminal sends a file to be updated to the server together with the file number for updating;
Search method including
前記複数のファイルをそれらのファイル番号と共に前記サーバに保管する手順と、
キーワードと該キーワードに対応するファイルのファイル番号との対応表である索引を、前記サーバに保管する手順と、
前記キーワードと該キーワードを含む全てのファイルのファイル番号の集合との生成用組に対して所定の生成アルゴリズムに従って索引検証情報を生成する手順と、
前記生成した索引検証情報を前記サーバに保管する手順と、
検索キーワードを前記サーバへ送って、前記サーバから前記検索キーワードを含むファイルおよび当該ファイルのファイル番号の集合と前記検索キーワードに対応する索引検証情報とを取得する手順と、
前記取得した索引検証情報が、前記検索キーワードと前記取得したファイルのファイル番号の集合との検証用組の索引検証情報であるか否かを所定の検証アルゴリズムによってチェックする手順と、
チェックの結果が正しければ承認し、そうでなければ拒否する手順と、
更新すべきファイルをそのファイル番号と共に前記サーバへ送って更新する手順と、
を実行させるための検索プログラム。 A search program for storing a plurality of files in a server, obtaining a set of desired files from the server by keyword search, and causing a user terminal, which is a computer, to execute processing for updating the files, the computer In addition,
Storing the plurality of files together with their file numbers on the server;
A procedure for storing an index, which is a correspondence table of keywords and file numbers of files corresponding to the keywords, in the server;
Generating index verification information according to a predetermined generation algorithm for a generation set of the keyword and a set of file numbers of all files including the keyword;
A procedure for storing the generated index verification information in the server;
Sending a search keyword to the server, and obtaining from the server a file containing the search keyword and a set of file numbers of the file and index verification information corresponding to the search keyword;
A procedure for checking whether or not the acquired index verification information is index verification information of a verification set of the search keyword and a set of file numbers of the acquired files by a predetermined verification algorithm;
Approve if the result of the check is correct, otherwise reject it,
Sending the file to be updated together with its file number to the server for updating;
Search program to execute.
暗号化の秘密鍵を使って複数のファイルをそれぞれ暗号化し、前記複数の暗号ファイルをそれらの暗号ファイルのファイル番号と共に前記サーバに保管する暗号ファイル保管手段と、
キーワードと該キーワードに対応するファイルのファイル番号との対応表である索引を、所定の秘密鍵を使って暗号化し、前記キーワードの暗号文と該キーワードを含むファイルのファイル番号の暗号文とから成る暗号化索引を前記サーバに保管する暗号化索引保管手段と、
前記キーワードと該キーワードを含む全てのファイルのファイル番号の集合との生成用組に対して所定の生成アルゴリズムに従って索引検証情報を生成し、該生成した索引検証情報を前記サーバに保管する索引検証情報生成部と、
前記所定の秘密鍵を使って検索キーワードを暗号化して得られる暗号検索キーワードを前記サーバへ送って、前記サーバから前記暗号検索キーワードを含む暗号ファイルおよび当該暗号ファイルのファイル番号の集合と前記検索キーワードに対応する索引検証情報とを取得する暗号ファイル取得手段と、
該取得した索引検証情報が、前記検索キーワードと前記取得した暗号ファイルのファイル番号の集合との検証用組の索引検証情報であるか否かを所定の検証アルゴリズムによってチェックし、チェックの結果が正しければ承認し、そうでなければ拒否する索引検証部と、
更新すべきファイルを前記暗号化の秘密鍵を使って暗号化して得られる、更新すべき暗号ファイルをそのファイル番号と共に前記サーバに送って更新する更新手段と、
を有する検索システム。 A search system in which a user terminal stores a plurality of encrypted files in a server, the user terminal acquires a desired set of files from the server by keyword search, and also updates an encrypted file, wherein the user terminal includes: ,
Encrypted file storage means for encrypting each of a plurality of files using an encryption private key, and storing the plurality of encrypted files together with file numbers of the encrypted files on the server;
An index, which is a correspondence table between a keyword and a file number of a file corresponding to the keyword, is encrypted using a predetermined secret key, and includes a ciphertext of the keyword and a ciphertext of the file number of the file including the keyword Encrypted index storage means for storing an encrypted index in the server;
Index verification information for generating index verification information according to a predetermined generation algorithm for a generation set of the keyword and a set of file numbers of all files including the keyword, and storing the generated index verification information in the server A generator,
An encryption search keyword obtained by encrypting a search keyword using the predetermined secret key is sent to the server, and an encryption file including the encryption search keyword from the server, a set of file numbers of the encryption file, and the search keyword Encrypted file acquisition means for acquiring index verification information corresponding to
Whether or not the acquired index verification information is index verification information of a verification set of the search keyword and the set of file numbers of the acquired encrypted files is checked by a predetermined verification algorithm, and the check result is correct. An index validation unit that approves and rejects otherwise,
Updating means for encrypting a file to be updated using the encryption private key and sending the encrypted file to be updated together with the file number to the server for updating;
Search system having
前記暗号化の秘密鍵と前記所定の秘密鍵と所定の公開情報とを保持するユーザ鍵保持部と、
前記所定の公開情報と前記複数の暗号ファイルとから全暗号ファイルの蓄積値を計算するファイル蓄積値計算部と、
前記全暗号ファイルの蓄積値を保持する蓄積値保持部と、
を更に備え、
前記サーバは、
前記所定の公開情報を保持するサーバ鍵保持部と、
前記所定の公開情報に基づいて、当該サーバに保管された全暗号ファイルの内、前記暗号検索キーワードを含む暗号ファイルの集合以外の暗号ファイルを使用して、ファイル検証情報を生成して前記ユーザ端末へ送出するファイル検証情報生成部と、
を備え、
前記ユーザ端末は、
前記索引検証部で承認された場合、前記所定の公開情報に基づいて、前記取得した暗号ファイルの集合と前記ファイル検証情報とを使用して、暗号ファイルの蓄積値を計算し、該計算した暗号ファイルの蓄積値と前記保持した全暗号ファイルの蓄積値とが等しければ、前記取得した暗号ファイルの集合を復号して前記所望のファイルの集合を得、そうでなければ拒否するファイル検証部を更に有する、
請求項6に記載の検索システム。 The user terminal is
A user key holding unit that holds the encryption secret key, the predetermined secret key, and predetermined public information;
A file accumulation value calculation unit for calculating accumulation values of all encrypted files from the predetermined public information and the plurality of encrypted files;
An accumulated value holding unit for holding accumulated values of all the encrypted files;
Further comprising
The server
A server key holding unit for holding the predetermined public information;
Based on the predetermined public information, out of all the encrypted files stored in the server, an encrypted file other than the set of encrypted files including the encrypted search keyword is used to generate file verification information to generate the user terminal A file verification information generator to be sent to
With
The user terminal is
When approved by the index verification unit, based on the predetermined public information, using the acquired set of encrypted files and the file verification information, calculate an accumulated value of the encrypted file, and calculate the calculated encryption A file verification unit that decrypts the acquired set of encrypted files to obtain the desired set of files if the stored value of the files is equal to the stored value of all the stored encrypted files; Have
The search system according to claim 6.
前記所定の公開情報に基づいて、前記更新すべき暗号ファイル、更新前の暗号ファイル、そのファイル番号、および前記蓄積値保持部に保持された全暗号ファイルの蓄積値を使用して、新しい全暗号ファイルの蓄積値を計算し、該計算した新しい全暗号ファイルの蓄積値を前記蓄積値保持部に保持する蓄積値更新部を更に有する、
請求項7に記載の検索システム。 The user terminal is
Based on the predetermined public information, a new all-encryption code is obtained by using the encrypted file to be updated, the encrypted file before the update, the file number thereof, and the accumulated value of all the encrypted files held in the accumulated value holding unit. It calculates the accumulation value of the file, further comprising a storage value updating unit that holds the accumulated value of the new total cipher files the computed the accumulation value holding unit,
The search system according to claim 7.
前記ユーザ端末が、暗号化の秘密鍵を使って複数のファイルをそれぞれ暗号化し、前記複数の暗号ファイルをそれらの暗号ファイルのファイル番号と共に前記サーバに保管するステップと、
前記ユーザ端末が、キーワードと該キーワードに対応するファイルのファイル番号との対応表である索引を、所定の秘密鍵を使って暗号化し、前記キーワードの暗号文と該キーワードを含むファイルのファイル番号の暗号文とから成る暗号化索引を前記サーバに保管するステップと、
前記ユーザ端末が、前記キーワードと該キーワードを含む全てのファイルのファイル番号の集合との生成用組に対して所定の生成アルゴリズムに従って索引検証情報を生成するステップと、
前記ユーザ端末が、前記生成した索引検証情報を前記サーバに保管するステップと、
前記ユーザ端末が、前記所定の秘密鍵を使って検索キーワードを暗号化して得られる暗号検索キーワードを前記サーバへ送って、前記サーバから前記暗号検索キーワードを含む暗号ファイルおよび当該暗号ファイルのファイル番号の集合と前記検索キーワードに対応する索引検証情報とを取得するステップと、
前記ユーザ端末が、前記取得した索引検証情報が、前記検索キーワードと前記取得した暗号ファイルのファイル番号の集合との検証用組の索引検証情報であるか否かを所定の検証アルゴリズムによってチェックするステップと、
前記ユーザ端末が、チェックの結果が正しければ承認し、そうでなければ拒否するステップと、
前記ユーザ端末が、更新すべきファイルを前記暗号化の秘密鍵を使って暗号化して得られる、更新すべき暗号ファイルをそのファイル番号と共に前記サーバに送って更新するステップと、
を含む検索方法。 A search method in which a user terminal stores a plurality of encrypted files in a server, the user terminal acquires a desired set of files from the server by keyword search, and also updates the encrypted file,
The user terminal encrypts each of a plurality of files using an encryption private key, and stores the plurality of encrypted files together with file numbers of the encrypted files on the server;
The user terminal encrypts an index, which is a correspondence table between a keyword and a file number of a file corresponding to the keyword, using a predetermined secret key, and the ciphertext of the keyword and the file number of the file including the keyword Storing an encrypted index comprising ciphertext on the server;
The user terminal generating index verification information according to a predetermined generation algorithm for a generation set of the keyword and a set of file numbers of all files including the keyword;
The user terminal storing the generated index verification information in the server;
The user terminal sends an encrypted search keyword obtained by encrypting a search keyword using the predetermined secret key to the server, and an encrypted file including the encrypted search keyword and a file number of the encrypted file are transmitted from the server. Obtaining a set and index verification information corresponding to the search keyword;
A step in which the user terminal checks whether or not the acquired index verification information is index verification information of a verification set of the search keyword and a set of file numbers of the acquired encrypted files by a predetermined verification algorithm; When,
The user terminal approves if the result of the check is correct, and rejects otherwise;
The user terminal sends the encrypted file to be updated to the server together with the file number obtained by encrypting the file to be updated using the encryption secret key;
Search method including
暗号化の秘密鍵を使って複数のファイルをそれぞれ暗号化し、前記複数の暗号ファイルをそれらの暗号ファイルのファイル番号と共に前記サーバに保管する手順と、
キーワードと該キーワードに対応するファイルのファイル番号との対応表である索引を、所定の秘密鍵を使って暗号化し、前記キーワードの暗号文と該キーワードを含むファイルのファイル番号の暗号文とから成る暗号化索引を前記サーバに保管する手順と、
前記キーワードと該キーワードを含む全てのファイルのファイル番号の集合との生成用組に対して所定の生成アルゴリズムに従って索引検証情報を生成する手順と、
前記生成した索引検証情報を前記サーバに保管する手順と、
前記所定の秘密鍵を使って検索キーワードを暗号化して得られる暗号検索キーワードを前記サーバへ送って、前記サーバから前記暗号検索キーワードを含む暗号ファイルおよび該暗号ファイルのファイル番号の集合と前記検索キーワードに対応する索引検証情報とを取得する手順と、
前記取得した索引検証情報が、前記検索キーワードと前記取得した暗号ファイルのファイル番号の集合との検証用組の索引検証情報であるか否かを所定の検証アルゴリズムによってチェックする手順と、
チェックの結果が正しければ承認し、そうでなければ拒否する手順と、
更新すべきファイルを前記暗号化の秘密鍵を使って暗号化して得られる、更新すべき暗号ファイルをそのファイル番号と共に前記サーバに送って更新する手順と、
を実行させるための検索プログラム。 A search program for storing a plurality of encrypted files in a server, obtaining a set of desired files from the server by keyword search, and causing a user terminal that is a computer to execute processing for updating the encrypted file, In the computer,
Encrypting each of a plurality of files using an encryption private key, and storing the plurality of encrypted files together with the file numbers of the encrypted files on the server;
An index, which is a correspondence table between a keyword and a file number of a file corresponding to the keyword, is encrypted using a predetermined secret key, and includes a ciphertext of the keyword and a ciphertext of the file number of the file including the keyword Storing an encrypted index on the server;
Generating index verification information according to a predetermined generation algorithm for a generation set of the keyword and a set of file numbers of all files including the keyword;
A procedure for storing the generated index verification information in the server;
An encrypted search keyword obtained by encrypting a search keyword using the predetermined secret key is sent to the server, and an encrypted file including the encrypted search keyword from the server, a set of file numbers of the encrypted file, and the search keyword Obtaining index verification information corresponding to
A procedure for checking whether or not the acquired index verification information is index verification information of a verification set of the search keyword and a set of file numbers of the acquired encrypted files by a predetermined verification algorithm;
Approve if the result of the check is correct, otherwise reject it,
A procedure for transmitting the encrypted file to be updated together with the file number obtained by encrypting the file to be updated using the encryption private key to the server and updating the encrypted file;
Search program to execute.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013045246A JP6095057B2 (en) | 2013-03-07 | 2013-03-07 | SEARCH SYSTEM, SEARCH METHOD, AND SEARCH PROGRAM |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013045246A JP6095057B2 (en) | 2013-03-07 | 2013-03-07 | SEARCH SYSTEM, SEARCH METHOD, AND SEARCH PROGRAM |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2014174661A JP2014174661A (en) | 2014-09-22 |
JP6095057B2 true JP6095057B2 (en) | 2017-03-15 |
Family
ID=51695854
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2013045246A Expired - Fee Related JP6095057B2 (en) | 2013-03-07 | 2013-03-07 | SEARCH SYSTEM, SEARCH METHOD, AND SEARCH PROGRAM |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP6095057B2 (en) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107077469B (en) * | 2014-10-21 | 2020-11-27 | 三菱电机株式会社 | Server device, search system, terminal device, and search method |
KR102055888B1 (en) | 2015-11-06 | 2019-12-16 | 주식회사 케이티 | Encryption and decryption method for protecting information |
CN110489971A (en) * | 2018-05-15 | 2019-11-22 | 微软技术许可有限责任公司 | The data set management of safety |
KR102248756B1 (en) * | 2019-07-18 | 2021-05-07 | 국방과학연구소 | Encryption system, apparatus and method for providing searchable having forward stability |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101739400B (en) * | 2008-11-11 | 2014-08-13 | 日电(中国)有限公司 | Method and device for generating indexes and retrieval method and device |
JP5332635B2 (en) * | 2009-01-19 | 2013-11-06 | 富士通株式会社 | Electronic signature method, electronic signature program, and electronic signature device |
JP5338461B2 (en) * | 2009-05-01 | 2013-11-13 | ブラザー工業株式会社 | Management device, information generation program, and information generation method |
-
2013
- 2013-03-07 JP JP2013045246A patent/JP6095057B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2014174661A (en) | 2014-09-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101190059B1 (en) | Method for data encryption and method for conjunctive keyword search of encrypted data | |
JP5062775B2 (en) | SEARCH METHOD, SEARCH DEVICE, INDEX GENERATION METHOD, INDEX GENERATION DEVICE | |
CN104978239B (en) | A kind of method, apparatus and system realizing more Backup Data dynamics and updating | |
RU2512139C2 (en) | Method and apparatus for pseudonym generation and authentication | |
US20090138698A1 (en) | Method of searching encrypted data using inner product operation and terminal and server therefor | |
JP6239213B1 (en) | Secret search system, secret search method, and secret search program | |
US9602278B2 (en) | Encryption device, cipher-text comparison system, cipher-text comparison method, and cipher-text comparison program | |
KR20060084447A (en) | Efficient management of cryptographic key generations | |
US11349668B2 (en) | Encryption device and decryption device | |
JP2006221161A (en) | Cryptographic application of cartier pairing | |
KR20200108343A (en) | Computer-implemented method and system for obtaining digitally signed data | |
KR102282788B1 (en) | Blockchain system for supporting change of plain text data included in transaction | |
CN110008755B (en) | Cloud storage revocable dynamic data integrity verification system and method | |
KR20160131798A (en) | Method and system for additive homomorphic encryption scheme with error detection functionality | |
US20180239910A1 (en) | Encrypted text verification system, method and recording medium | |
JP6095057B2 (en) | SEARCH SYSTEM, SEARCH METHOD, AND SEARCH PROGRAM | |
CN110392038A (en) | The multi-key cipher that can verify that under a kind of multi-user scene can search for encryption method | |
JPWO2014185450A1 (en) | Verification system, node, verification method and program | |
US10484182B2 (en) | Encrypted text verification system, method, and recording medium | |
CN114679340B (en) | File sharing method, system, device and readable storage medium | |
CN114417073A (en) | Neighbor node query method and device of encryption graph and electronic equipment | |
CN115473703A (en) | Identity-based ciphertext equivalence testing method, device, system and medium for authentication | |
CN114142996B (en) | Searchable encryption method based on SM9 cryptographic algorithm | |
JP5667969B2 (en) | Search processing system and partial match search method | |
JP5970193B2 (en) | SEARCH SYSTEM, SEARCH METHOD, AND SEARCH PROGRAM |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20160114 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20160204 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20161117 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20161122 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20170110 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20170125 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20170208 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6095057 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
LAPS | Cancellation because of no payment of annual fees |