(58)【調査した分野】(Int.Cl.,DB名)
ユーザ端末がサーバに複数のファイルを保管し、前記ユーザ端末がキーワード検索によって前記サーバから所望のファイルの集合を取得する検索システムであって、前記ユーザ端末は、
前記複数のファイルを前記サーバに保管するファイル保管手段と、
キーワードと該キーワードを含む全てのファイルの集合との生成用組に対して所定の生成アルゴリズムに従って検証情報を生成し、該生成した検証情報を前記サーバに保管する検証情報生成部と、
検索キーワードを前記サーバへ送って、前記サーバから前記検索キーワードを含むファイルの集合と前記検索キーワードに対応する検証情報とを取得するファイル取得手段と、
該取得した検証情報が、前記検索キーワードと前記取得したファイルの集合との検証用組の検証情報であるか否かを所定の検証アルゴリズムによってチェックし、チェックの結果が正しければ承認して前記取得したファイルの集合を前記所望のファイルの集合として得、そうでなければ拒否する検証部と、
を有する検索システム。
サーバに複数のファイルを保管し、キーワード検索によって前記サーバから所望のファイルの集合を取得する処理を、コンピュータであるユーザ端末に実行させる検索プログラムであって、前記コンピュータに、
前記複数のファイルを前記サーバに保管する手順と、
キーワードと該キーワードを含む全てのファイルの集合との生成用組に対して所定の生成アルゴリズムに従って検証情報を生成する手順と、
前記生成した検証情報を前記サーバに保管する手順と、
検索キーワードを前記サーバへ送って、前記サーバから前記検索キーワードを含むファイルの集合と前記検索キーワードに対応する検証情報とを取得する手順と、
前記取得した検証情報が、前記検索キーワードと前記取得したファイルの集合との検証用組の検証情報であるか否かを所定の検証アルゴリズムによってチェックする手順と、
チェックの結果が正しければ承認して前記取得したファイルの集合を前記所望のファイルの集合として得、そうでなければ拒否する手順と、
を実行させるための検索プログラム。
ユーザ端末がサーバに複数の暗号ファイルを保管し、前記ユーザ端末がキーワード検索によって前記サーバから所望のファイルの集合を取得する検索システムであって、前記ユーザ端末は、
暗号化の秘密鍵を使って複数のファイルをそれぞれ暗号化し、前記複数の暗号ファイルを前記サーバに保管する暗号ファイル保管手段と、
キーワードと該キーワードを含む全ての暗号ファイルの集合との生成用組に対して所定の生成アルゴリズムに従って検証情報を生成し、該生成した検証情報を前記サーバに保管する検証情報生成部と、
前記暗号化の秘密鍵を使って検索キーワードを暗号化して得られる暗号検索キーワードを前記サーバへ送って、前記サーバから前記暗号検索キーワードを含む暗号ファイルの集合と前記検索キーワードに対応する検証情報とを取得する暗号ファイル取得手段と、
該取得した検証情報が、前記検索キーワードと前記取得した暗号ファイルの集合との検証用組の検証情報であるか否かを所定の検証アルゴリズムによってチェックし、チェックの結果が正しければ承認して前記取得した暗号ファイルの集合を復号して前記所望のファイルの集合を得、そうでなければ拒否する検証部と、
を有する検索システム。
サーバに複数の暗号ファイルを保管し、キーワード検索によって前記サーバから所望のファイルの集合を取得する処理を、コンピュータであるユーザ端末に実行させる検索プログラムであって、前記コンピュータに、
暗号化の秘密鍵を使って複数のファイルをそれぞれ暗号化し、前記複数の暗号ファイルを前記サーバに保管する手順と、
キーワードと該キーワードを含む全ての暗号ファイルの集合との生成用組に対して所定の生成アルゴリズムに従って検証情報を生成する手順と、
前記生成した検証情報を前記サーバに保管する手順と、
前記暗号化の秘密鍵を使って検索キーワードを暗号化して得られる暗号検索キーワードを前記サーバへ送って、前記サーバから前記暗号検索キーワードを含む暗号ファイルの集合と前記検索キーワードに対応する検証情報とを取得する手順と、
前記取得した検証情報が、前記検索キーワードと前記取得した暗号ファイルの集合との検証用組の検証情報であるか否かを所定の検証アルゴリズムによってチェックする手順と、
チェックの結果が正しければ承認して前記取得した暗号ファイルの集合を復号して前記所望のファイルの集合を得、そうでなければ拒否する手順と、
を実行させるための検索プログラム。
【発明を実施するための形態】
【0019】
[概要]
以下、本発明の実施形態の概要について説明する。
【0020】
本発明の実施形態による検索システムは、キーワード検索におけるサーバの不正を検出するシステムであるが、サーバの不正として、ファイルの「削除」、「追加」、「改ざん」のみならず、ファイルの「すり替え」をも検出できる検索システムである。
【0021】
本実施形態に係る検索システムは、ファイルが暗号化されている場合と、ファイルが暗号化されていない場合との両者に適用できる。また、この技術分野において周知のように、メッセージの認証機能には、デジタル署名を利用する場合と、メッセージ認証コード(Message Authentication code,MAC)を利用して認証子を生成する場合とがある。なお、デジタル署名と認証子とは、総称して、検証情報と呼ばれる。従って、本実施形態に係る検索システムは、以下の第1乃至第4の実施形態に分けられる。
【0022】
一般に、検証情報は、所定の生成アルゴリズムによって生成され、所定の検証アルゴリズムによって検証(チェック)される。検証情報がデジタル署名の場合、所定の生成アルゴリズムは署名生成アルゴリズムから成り、所定の検証アルゴリズムは署名検証アルゴリズムから成る。一方、検証情報が認証子の場合、所定の生成アルゴリズムはMAC生成アルゴリズムから成り、所定の検証アルゴリズムはMAC検証アルゴリズムから成る。
【0023】
本発明の第1の実施形態に係る検索システムは、ユーザ端末がファイルを暗号化せずにサーバに保管する場合であって、メッセージの認証機能(検証情報)としてデジタル署名を利用する検索システムである。
【0024】
このようなユーザ端末がファイルを暗号化せずにサーバに保管する場合、従来においては、サーバの不正を検出する方法は知られていない。本第1の実施形態に係る検索システムでは、このような場合においても、後述するように、サーバの不正を検出することができる。
【0025】
本発明の第2の実施形態に係る検索システムは、ユーザ端末がファイルを暗号化せずにサーバに保管する場合であって、メッセージの認証機能(検証情報)としてMAC(認証子)を利用する検索システムである。
【0026】
この技術分野において周知のように、デジタル署名とは異なり、MACは裁判での証拠能力がない。その代わりに、デジタル署名と比較して、MACは高速であるという利点がある。
【0027】
本発明の第3の実施形態に係る検索システムは、ユーザ端末がファイルおよびキーワードを暗号化してサーバに保管する場合であって、メッセージの認証機能(検証情報)としてデジタル署名を利用する検索システムである。
【0028】
前述したように、先行検索システムでは、ユーザ端末は、サーバの不正として、ファイルの削除、追加、改ざんのみを検出できる。これに対して、本第3の実施形態に係る検索システムでは、それらに加え、ファイルのすり替えをも検出できる。また、先行検索システムに比べ、本第3の実施形態に係る検索システムは通信量も少ない。
【0029】
本発明の第4の実施形態に係る検索システムは、ユーザ端末がファイルおよびキーワードを暗号化してサーバに保管する場合であって、メッセージの認証機能(検証情報)としてMAC(認証子)を利用する検索システムである。
【0030】
尚、前述したように、検索システムの動作は、ユーザ端末がファイル(暗号ファイル)をサーバに格納する「格納フェーズ」と、ユーザ端末がサーバから所望のファイルを検索する「検索フェーズ」と、に分けられる。
【0031】
以下、図面を参照して、本発明の第1乃至第4の実施形態に係る検索システムについて説明する。
【0032】
[第1の実施形態]
図1および
図2を参照して、本発明の第1の実施形態に係る検索システム100について説明する。図示の第1の実施形態に係る検索システム100は、ユーザ端末200と、サーバ300とから構成される。
【0033】
検索システム100は、ユーザ端末200が複数のファイルをサーバ300に保管し、ユーザ端末200がキーワード検索によってサーバ300から所望のファイルの集合を取得するシステムである。
【0034】
先ず、
図1を参照して、本発明の第1の実施形態に係る検索システム100における格納フェーズについて説明する。
【0035】
格納フェーズにおいては、ユーザ端末200は、以下の動作を行う。
【0036】
先ず、ユーザ端末200は、N(Nは1以上の整数)個のファイルである、ファイル1、・・・、ファイルNをサーバ300に保管する。また、必要に応じ、ユーザ端末200は、索引を生成し、その生成した索引をサーバ300に保管する。ここで、索引とは、キーワードとファイルとの対応表のことをいう。
【0037】
ユーザ端末200は、鍵生成アルゴリズムに従って、デジタル署名の公開鍵vkと秘密鍵skとを生成する。ここで、ユーザ端末200は、公開鍵vkを公開し、秘密鍵skを秘密に保持する。尚、公開鍵vkは検証鍵又は検査鍵とも呼ばれ、秘密鍵skは署名鍵又は生成鍵とも呼ばれる。
【0038】
次に、ユーザ端末200は、各キーワードについて、以下の動作を行う。ここで、キーワードの総数がI(Iは1以上の整数)個であるとし、キーワード1、・・・、キーワードIから成るとする。キーワードi(1≦i≦I)を含むファイルの集合P
iを下記の数式のようにおく。
P
i={ファイルj|ファイルjはキーワードiを含む}
【0039】
ユーザ端末200は、秘密鍵skを使い、キーワードiと当該キーワードiを含む全てのファイルの集合P
iとの生成用組(キーワードi、P
i)に対するデジタル署名σ
iを、署名生成アルゴリズムに従って下記の数式のように生成する。
σ
i=sign{キーワードi、P
i}
【0040】
そして、ユーザ端末200は、この生成したデジタル署名σ
iをサーバ300に保管する。
【0041】
次に、
図2を参照して、本発明の第1の実施形態に係る検索システム100における検索フェーズについて説明する。
【0042】
検索フェーズにおいて、ユーザ端末200のユーザがキーワードiについて検索したいと仮定する。したがって、キーワードiが検索キーワードiである。
【0043】
この場合、ユーザ端末200は、検索キーワードiをサーバ300に送る。
図2では、検索キーワードとしてキーワード1をサーバ300に送る場合の例を示している。この例では、キーワード1を含むファイルの集合P
1が、以下の数式であるとしている。
P
1={ファイル2、ファイル5}
【0044】
したがって、そのデジタル署名σ
1は、以下の数式で表わされる。
σ
1=sign(キーワード1、ファイル2、ファイル5)
【0045】
サーバ300は、検索キーワードiを含むファイルの集合P
iと当該検索キーワードiに対応するデジタル署名σ
iとをユーザ端末200へ返す。したがって、ユーザ端末200は、ファイルの集合P
iとデジタル署名σ
iとを取得する。
【0046】
次に、ユーザ端末200は、公開鍵vkを使い、取得したデジタル署名σ
iが検索キーワードiと取得したファイルの集合P
iとの検証用組(キーワードi、P
i)のデジタル署名であるか否かを、署名生成アルゴリズムに従ってチェックする。ユーザ端末200は、チェックの結果が正しければ、承認して(accept)、取得したファイルの集合P
iを所望のファイルの集合として得、そうでなければ拒否する(reject)。
【0047】
このように、本発明の第1の実施形態では、ユーザ端末200が各キーワードiと当該キーワードiを含む全てのファイルの集合P
iとを一組(生成用組)として、それに対するデジタル署名σ
iを生成し、生成したデジタル署名σ
iをサーバ300に保管しているので、検索時に、サーバ300の不正として、ファイルの削除、追加、改ざんばかりでなく、ファイルのすり替えも検出することができる。
【0048】
[第2の実施形態]
図3および
図4を参照して、本発明の第2の実施形態に係る検索システム100Aについて説明する。図示の第2の実施形態に係る検索システム100Aは、ユーザ端末200Aと、サーバ300Aとから構成される。
【0049】
検索システム100Aは、ユーザ端末200Aが複数のファイルをサーバ300Aに保管し、ユーザ端末200Aがキーワード検索によってサーバ300Aから所望のファイルの集合を取得するシステムである。
【0050】
先ず、
図3を参照して、本発明の第2の実施形態に係る検索システム100Aにおける格納フェーズについて説明する。
【0051】
格納フェーズにおいては、ユーザ端末200Aは、以下の動作を行う。
【0052】
先ず、ユーザ端末200Aは、N(Nは1以上の整数)個のファイルである、ファイル1、・・・、ファイルNをサーバ300Aに保管する。また、必要に応じ、ユーザ端末200Aは、索引を生成し、その生成した索引をサーバ300Aに保管する。ここで、索引とは、キーワードとファイルの対応表のことをいう。
【0053】
ユーザ端末200Aは、MACの秘密鍵Kを生成し、秘密鍵Kを秘密に保持する。
【0054】
次に、ユーザ端末200Aは、各キーワードについて、以下の動作を行う。ここで、キーワードの総数がI(Iは1以上の整数)個であるとし、キーワード1、・・・、キーワードIから成るとする。キーワードi(1≦i≦I)を含むファイルの集合P
iを下記の数式のようにおく。
P
i={ファイルj|ファイルjはキーワードiを含む}
【0055】
ユーザ端末200Aは、MACの秘密鍵Kを使い、キーワードiと当該キーワードiを含む全てのファイルの集合P
iとの生成用組(キーワードi、P
i)に対する認証子Tag
iを、MAC生成アルゴリズムに従って、下記の数式によって生成する。
Tag
i=sign{キーワードi、P
i}
【0056】
そして、ユーザ端末200Aは、この生成した認証子Tag
iをサーバ300Aに保管する。
【0057】
次に、
図4を参照して、本発明の第2の実施形態に係る検索システム100Aにおける検索フェーズについて説明する。
【0058】
検索フェーズにおいて、ユーザ端末200Aのユーザがキーワードiについて検索したいと仮定する。したがって、キーワードiが検索キーワードiである。
【0059】
この場合、ユーザ端末200Aは、検索キーワードiをサーバ300に送る。
図4では、ユーザ端末200Aが検索キーワードとしてキーワード1をサーバ300Aに送る場合の例を示している。この例では、キーワード1を含むファイルの集合P
1が、下記の数式であるとしている。
P
1={ファイル2、ファイル5}
【0060】
したがって、その認証子Tag
1は、下記の数式で表わされる。
Tag
1=sign(キーワード1、ファイル2、ファイル5)
【0061】
サーバ300Aは、検索キーワードiを含むファイルの集合P
iと、当該検索キーワードiに対応する認証子Tag
iとをユーザ端末200Aへ返す。したがって、ユーザ端末200Aは、ファイルの集合P
iと認証子Tag
iと取得する。
【0062】
ユーザ端末200Aは、MACの秘密鍵Kを使い、取得した認証子Tag
iが、検索キーワードiと取得したファイルの集合P
iとの検証用組(キーワードi、P
i)の認証子であるか否かを、MAC検証アルゴリズムに従ってチェックする。ユーザ端末200Aは、チェックの結果が正しければ、承認して(accept)、取得したファイルの集合P
iを所望のファイルの集合として得、そうでなければ拒否する(reject)。
【0063】
このように、本発明の第2の実施形態では、ユーザ端末200Aが各キーワードiと当該キーワードiを含む全てのファイルの集合P
iとを一組(生成用組)として、それに対する認証子Tag
iを生成して、生成した認証子Tag
iをサーバ300Aに保管しているので、検索時に、サーバ300Aの不正として、ファイルの削除、追加、改ざんばかりでなく、ファイルのすり替えも検出することができる。
【0064】
[第3の実施形態]
図5および
図6を参照して、本発明の第3の実施形態に係る検索システム100Bについて説明する。図示の第3の実施形態に係る検索システム100Bは、ユーザ端末200Bと、サーバ300Bとから構成される。
【0065】
検索システム100Bは、ユーザ端末200Bがサーバ300Bに複数の暗号ファイルを保管し、ユーザ端末200Bがキーワード検索によってサーバ300Bから所望のファイルの集合を取得するシステムである。
【0066】
先ず、
図5を参照して、本発明の第3の実施形態に係る検索システム100Bにおける格納フェーズについて説明する。
【0067】
格納フェーズにおいては、ユーザ端末200Bは、以下の動作を行う。
【0068】
先ず、ユーザ端末200Bは、暗号化の秘密鍵Kを生成し、その秘密鍵Kを秘密に保持する。
【0069】
次に、ユーザ端末200Bは、暗号化の秘密鍵Kを使い、N(Nは1以上の整数)個のファイルである、ファイル1、・・・、ファイルNの暗号文E(ファイル1)、・・・、E(ファイルN)を計算し、それら暗号文(暗号ファイル)をサーバ300Bに保管する。また、必要に応じ、ユーザ端末200Bは、索引を生成し、その生成した索引を、暗号化して、サーバ300Bに保管する。ここで、索引とは、キーワードとファイルの対応表のことをいう。
【0070】
また、ユーザ端末200Bは、デジタル署名の公開鍵(検証鍵)vkと秘密鍵(署名鍵)skとを鍵生成アルゴリズムに従って生成する。ここで、ユーザ端末200Bは、公開鍵(検証鍵)vkを公開し、秘密鍵(署名鍵)skを秘密に保持する。
【0071】
次に、ユーザ端末200Bは、各キーワードについて、以下の動作を行う。ここで、キーワードの総数がI(Iは2以上の整数)個であるとし、キーワード1、・・・、キーワードIから成るとする。キーワードi(1≦i≦I)を含むファイルの暗号文(暗号ファイル)の集合Q
iを、下記の数式のようにおく。
Q
i={E(ファイルj)|ファイルjはキーワードiを含む}
【0072】
ユーザ端末200Bは、デジタル署名の秘密鍵skを使い、キーワードiと当該キーワードiを含む全ての暗号ファイルの集合Q
iとの生成用組(キーワードi、Q
i)に対するデジタル署名σ
iを、署名生成アルゴリズムに従って、下記の数式のように生成する。
σ
i=sign{キーワードi、Q
i}
【0073】
そして、ユーザ端末200Bは、この生成したデジタル署名σ
iをサーバ300Bに保管する。
【0074】
その代わりに、ユーザ端末200Bは、デジタル署名の秘密鍵skを使い、暗号化の秘密鍵Kを使ってキーワードiを暗号化して得られる暗号キーワードE’(キーワードi)と当該暗号キーワードE’(キーワードi)を含む全ての暗号ファイルの集合Q
iとの生成用組(E’(キーワードi)、Q
i)に対するデジタル署名σ
iを、署名生成アルゴリズムに従って、下記の数式のように生成し、
σ
i=sign{E’(キーワードi)、Q
i}
この生成したデジタル署名σ
iをサーバ300Bに保管してもよい。
【0075】
次に、
図6を参照して、本発明の第3の実施形態に係る検索システム100Bにおける検索フェーズについて説明する。
【0076】
検索フェーズにおいて、ユーザ端末200Bのユーザがキーワードiについて検索したいと仮定する。したがって、キーワードiが検索キーワードiである。
【0077】
この場合、ユーザ端末200Bは、暗号化の秘密鍵Kを使って検索キーワードiを暗号化して得られる暗号検索キーワードE’(キーワードi)をサーバ300Bに送る。
図6では、検索キーワードとしてキーワード1の暗号文である暗号検索キーワードE’(キーワード1)をサーバ300Bに送る場合の例を示している。この例では、キーワード1を含むファイルの暗号文(暗号ファイル)の集合Q
1が、下記の数式であるとしている。
Q
1={E(ファイル2)、E(ファイル5)}
【0078】
したがって、そのデジタル署名σ
1は、下記の数式で表わされる。
σ
1=sign(キーワード1、E(ファイル2)、E(ファイル5))
【0079】
または、そのデジタル署名σ
1は、下記の数式で表わされる。
σ
1=sign(E’(キーワード1)、E(ファイル2)、E(ファイル5))
【0080】
サーバ300Bは、キーワードiを含むファイルの暗号文(暗号ファイル)の集合Q
iとそのデジタル署名σ
iとをユーザ端末200Bへ返す。したがって、ユーザ端末200Bは、暗号ファイルの集合Q
iとそのデジタル署名σ
iとを取得する。
【0081】
ユーザ端末200Bは、デジタル署名の公開鍵vkを使い、取得したデジタル署名σ
iが、検索キーワードiと取得した暗号ファイルの集合Q
iとの検証用組(キーワードi、Q
i)のデジタル署名であるか否かを、署名検証アルゴリズムに従ってチェックする。
【0082】
或いは、ユーザ端末200Bは、デジタル署名の公開鍵vkを使い、取得したデジタル署名σ
iが、暗号検索キーワード(E’(キーワードi)と取得した暗号ファイルの集合Q
iとの検証用組(E’(キーワードi)、Q
i)のデジタル署名であるか否かを、署名検証アルゴリズムに従ってチェックする。
【0083】
ユーザ端末200Bは、チェックした結果が正しければ、承認して(accept)、取得した暗号ファイルの集合Q
iを復号して所望のファイルの集合P
iを得、そうでなければ拒否する(reject)。
【0084】
このように、本発明の第3の実施形態では、ユーザ端末200Bが各キーワードi(又は暗号キーワード)と当該キーワードi(又は暗号キーワード)を含む全てのファイルの暗号文(暗号ファイル)の集合Q
iとを一組(生成用組)として、それに対するデジタル署名σ
iを生成し、生成したデジタル署名σ
iをサーバ300Bに保管しているので、検索時に、サーバ300Bの不正として、ファイルの削除、追加、改ざんばかりでなく、ファイルのすり替えも検出することができる。
【0085】
[第4の実施形態]
図7および
図8を参照して、本発明の第4の実施形態に係る検索システム100Cについて説明する。図示の第4の実施形態に係る検索システム100Cは、ユーザ端末200Cと、サーバ300Cとから構成される。
【0086】
検索システム100Cは、ユーザ端末200Cがサーバ300Cに複数の暗号ファイルを保管し、ユーザ端末200Cがキーワード検索によってサーバ300Cから所望のファイルの集合を取得するシステムである。
【0087】
先ず、
図7を参照して、本発明の第4の実施形態に係る検索システム100Cにおける格納フェーズについて説明する。
【0088】
格納フェーズにおいては、ユーザ端末200Cは、以下の動作を行う。
【0089】
先ず、ユーザ端末200Cは、暗号化の秘密鍵K0およびMACの秘密鍵K1を生成し、両者を秘密に保持する。
【0090】
次に、ユーザ端末200Cは、暗号化の暗号鍵K0を使い、N(Nは1以上の整数)個のファイルである、ファイル1、・・・、ファイルNの暗号文(暗号ファイル)E(ファイル1)、・・・、E(ファイルN)をサーバ300Cに保管する。また、必要に応じ、ユーザ端末200Cは、索引を生成し、その生成した索引を暗号化して、サーバ300Cに保管する。ここで、索引とは、キーワードとファイルの対応表のことをいう。
【0091】
次に、ユーザ端末200Cは、各キーワードについて、以下の動作を行う。ここで、キーワードの総数がI(Iは1以上の整数)個であるとし、キーワード1、・・・、キーワードIから成るとする。キーワードi(1≦i≦I)を含むファイルの暗号文(暗号ファイル)の集合Q
iを下記の数式のようにおく。
Q
i={E(ファイルj)|ファイルjはキーワードiを含む}
【0092】
ユーザ端末200Cは、MACの秘密鍵K1を使い、キーワードiと当該キーワードiを含む全ての暗号ファイルの集合Q
iとの生成用組(キーワードi、Q
i)に対する認証子Tag
iを、MAC生成アルゴリズムに従って、下記の数式のように生成する。
Tag
i=sign{キーワードi、Q
i}
【0093】
そして、ユーザ端末200Cは、この生成した認証子Tag
iをサーバ300Cに保管する。
【0094】
その代わりに、ユーザ端末200Cは、MACの秘密鍵K1を使い、暗号化の暗号鍵K0を使ってキーワードiを暗号化して得られる暗号キーワードE’(キーワードi)と当該暗号キーワードE’(キーワードi)を含む全ての暗号ファイルの集合Q
iとの生成用組(E’(キーワードi)、Q
i)に対する認証子Tag
iを、MAC生成アルゴリズムに従って、下記の数式のように生成し、
Tag
i=sign{E’(キーワードi)、Q
i}
この生成した認証子Tag
iをサーバ300Cに保管してもよい。
【0095】
次に、
図8を参照して、本発明の第4の実施形態に係る検索システム100Cにおける検索フェーズについて説明する。
【0096】
検索フェーズにおいて、ユーザ端末200Cのユーザがキーワードiについて検索したいと仮定する。したがって、キーワードiが検索キーワードiである。
【0097】
この場合、ユーザ端末200Cは、暗号化の秘密鍵K0を使って検索キーワードiを暗号して得られる暗号検索キーワードE’(キーワードi)をサーバ300Cに送る。
図8では、検索キーワードとしてキーワード1の暗号文である暗号検索キーワードE’(キーワード1)をサーバ300Aに送る場合の例を示している。この例では、キーワード1を含むファイルの暗号文(暗号ファイル)の集合Q
1が、下記の数式であるとしている。
Q
1={E(ファイル2)、E(ファイル5)}
【0098】
したがって、その認証子Tag
1は、下記の数式で表わされる。
Tag
1=
sign(キーワード1、E(ファイル2)、E(ファイル5))
【0099】
または、その認証子Tag
1は、下記の数式で表わされる。
Tag
1=
sign(E’(キーワード1)、E(ファイル2)、E(ファイル5))
【0100】
サーバ300Cは、検索キーワードiを含むファイルの暗号文(暗号ファイル)の集合Q
iとその認証子Tag
iとをユーザ端末200Cへ返す。したがって、ユーザ端末200Cは、暗号ファイルの集合Q
iとその認証子Tag
iとを取得する。
【0101】
ユーザ端末200Cは、MACの秘密鍵K1を使い、取得した認証子Tag
iが、検索キーワードiと取得した暗号ファイルの集合Q
iとの検証用組(キーワードi、Q
i)の認証子であるか否かを、MAC検証アルゴリズムに従ってチェックする。
【0102】
或いは、ユーザ端末200Cは、MACの秘密鍵K1を使い、取得した認証子Tag
iが、暗号検索キーワードE’(キーワードi)と取得した暗号ファイルの集合Q
iとの検証用組(E’(キーワードi)、Q
i)の認証子であるか否かを、MAC検証アルゴリズムに従ってチェックする。
【0103】
ユーザ端末200Cは、チェックした結果が正しければ、承認して(accept)、取得した暗号ファイルの集合Q
iを復号して所望のファイルの集合P
iを得、そうでなければ拒否する(reject)。
【0104】
このように、本発明の第4の実施形態では、ユーザ端末200Cが各キーワードi(又は暗号キーワード)と当該キーワードi(又は暗号キーワード)を含む全てのファイルの暗号文(暗号ファイル)の集合Q
iとを一組(生成用組)として、それに対する認証子Tag
iを生成し、生成した認証子Tag
iをサーバ300Cに保管しているので、検索時に、サーバ300Cの不正として、ファイルの削除、追加、改ざんばかりでなく、ファイルのすり替えも検出することができる。
【実施例1】
【0105】
図9を参照して、本発明の第1の実施例に係る検索システム100Dについて説明する。図示の検索システム100Dは、上述した本発明の第2の実施形態(又は、第1の実施形態)に係る検索システムに相当する検証システムである。検索システム100Dは、クライアント200Dとサーバ300Dとから構成される。クライアント200Dは、ユーザ端末とも呼ばれる。
【0106】
図示の検索システム100Dは、クライアント(ユーザ端末)200Dがサーバ300Dに複数のファイルを保管し、クライアント(ユーザ端末)200Dがキーワード検索によってサーバ300Dから所望のファイルの集合を取得するシステムである。
【0107】
クライアント200Dは、秘密鍵生成部210と、秘密鍵保持部220と、検証情報生成部230と、検証部240と、第1乃至第3の信号線(伝送線)260、270、280と、から構成されている。一方、サーバ300Dは、記憶領域310と、検索部320とから構成されている。
【0108】
秘密鍵生成部210は、MACの秘密鍵Kを生成する。秘密鍵保持部220は、この生成されたMACの秘密鍵Kを保持する。
【0109】
クライアント200Dは、N個のファイルを第1の信号線(伝送線)260を介してサーバ300Dへ送信する。サーバ300Dは、その送られてきたN個のファイルを記憶領域310に保管する。したがって、第1の信号線(伝送線)260は、サーバ300DにN個のファイルを保管するファイル保管手段として働く。
【0110】
また、クライアント200Dは、索引を生成し、生成した索引を第2の信号線(伝送線)270を介してサーバ300Dへ送信する。サーバ300Dは、その送られてきた索引を記憶領域310に記憶する。したがって、第2の信号線(伝送線)270は、生成した索引をサーバ300Dに保管する索引保管手段として働く。
【0111】
図10に索引の具体例を示す。前述したように、索引は、キーワードと、それに対応するファイルの番号(ファイル番号)の対応表である。
【0112】
図示の例では、索引の番号1には、キーワードとして「情報工学」が記憶され、そのキーワードに対応するファイル番号として、「1」、「6」、「8」、「11」が記憶されている。また、索引の番号2には、キーワードとして「茨城大学」が記憶され、そのキーワードに対応するファイル番号として、「3」、「6」、「10」が記憶されている。
【0113】
図11を参照して、クライアント200Dの検索情報生成部230の動作について説明する。
【0114】
検証情報生成部230は、MACの秘密鍵K、索引、ファイルの集合{D1、D2、…}を読み込む(ステップS110)。次に、検証情報生成部230は、各キーワードW
iについて以下の処理を実行する(ステップS120)。ここでは、キーワードW
iに対応するファイル番号を(i1、i2、…)とする。この場合、検索情報生成部230は、MACの秘密鍵Kを使い、生成用組(W
i、D
i1、D
i2、…)に対応する認証子Tag
iを下記の数式によって計算する。
Tag
i=f
K(W
i、D
i1、D
i2、…)
ここで、fはMAC生成アルゴリズムである。
【0115】
尚、検証情報として、認証子Tag
iの代わりにデジタル署名σ
iを使用する場合、fは署名生成アルゴリズムであって、検索情報生成部230は、MACの秘密鍵Kの代わりにデジタル署名の秘密鍵skを使用し、生成用組(W
i、D
i1、D
i2、…)に対応するデジタル署名σ
iを下記の数式によって計算する。
σ
i=f
sk(W
i、D
i1、D
i2、…)
【0116】
検索情報生成部230は、計算して得られた検証情報(Tag
1、Tag
2、…)を出力する(ステップS130)。これら検証情報(認証子)は、サーバ300Dに送られ、サーバ300Dは、これら検証情報(認証子)を記憶領域310に記憶する。
【0117】
次に、
図12を参照して、検証情報生成部230の動作について具体例を挙げて説明する。ここでは、キーワードが索引番号2の「茨城大学」である場合を例に挙げて説明する。
【0118】
この場合、検証情報生成部230は、索引を参照して、キーワード「茨城大学」を含む、該当するファイルの集合を選択する。この場合、索引番号2のファイル番号には、「3」、「6」、「10」が記憶されているので、検索情報生成部230は、該当ファイルの集合P
2として、ファイルD3、D6、およびD10を選択する。
【0119】
そして、検証情報生成部230は、MACの秘密鍵Kを使い、生成用組(茨城大学、D3、D6、D10)に対する検証情報(認証子)Tag
2を、MAC生成アルゴリズムに従って、下記数式で示されるように生成する。
Tag
2=f
K(茨城大学、D3、D6、D10)
【0120】
検証情報生成部230は、このようにして、キーワードi毎の検証情報(認証子)Tag
iを生成する。生成された検証情報(認証子)Tag
iは、サーバ300Dへ送られ、サーバ300Dは、送られてきた検証情報(認証子)Tag
iを記憶領域310に記憶する。
【0121】
尚、検証情報がデジタル署名σ
iの場合、サーバ300Dはデジタル署名σ
iを記憶領域310に記憶する。
【0122】
検索時、クライアント200Dは、検索キーワードWを第3の信号線(伝送線)280を介してサーバ300Dに送る。サーバ300Dにおいては、検索キーワードWに応答して、検索部320は、その検索キーワードWを含むファイルの集合P
i=(D
i1、D
i2、…)とその検証情報(認証子)Tagとをクライアント200Dへ返す。したがって、クライアント200Dは、ファイルの集合P
i=(D
i1、D
i2、…)とその検証情報(認証子)Tagとを取得する。すなわち、第2の信号線(伝送線)280は、検索キーワードWをサーバ300Dへ送って、サーバ300Dから、検索キーワードWを含むファイルの集合P
i=(D
i1、D
i2、…)とその検証情報(認証子)Tagとを取得するファイル取得手段として働く。
【0123】
次に、
図13を参照して、クライアント200Dの検証部240の動作について説明する。
【0124】
検証部240は、秘密鍵保持部220に保持されたMACの秘密鍵Kと、検索キーワードWとを読み込む(ステップS210)。次に、検証部240は、サーバ300Dから送られてきたファイルの集合P
i=(D
i1、D
i2、…)とその検証情報(認証子)Tagとを読み込む(ステップS220)。
【0125】
検証部240は、MACの秘密鍵Kを使い、検証情報(認証子)Tagが検証用組(W、D
i1、D
i2、…)の認証子であるか否かを、MAC検証アルゴリズムに従って、下記の数式に示されるように計算する(ステップS230)。
Verify
K(W、D
i1、D
i2、…、Tag)=accept or reject
【0126】
検証部240は、acceptなら(ステップS240のYes)、取得したファイルの集合P
i=(D
i1、D
i2、…)を所望のファイルの集合として出力し(ステップS250)、rejectなら(ステップS240のNo)、rejectを出力する(ステップS260)。
【0127】
尚、検証情報がデジタル署名σである場合、検証部240は、デジタル署名の公開鍵(検証鍵)vkを使い、デジタル署名σが、検証用組(W、D
i1、D
i2、…)の認証子であるか否かを、署名検証アルゴリズムに従って、下記の数式に示されるように計算する。
Verify
vk(W、D
i1、D
i2、…、σ)=accept or reject
【0128】
次に、
図14を参照して、検証部240の動作について具体例を挙げて説明する。ここでは、検索キーワードWが索引番号2の「茨城大学」である場合を例に挙げて説明する。
【0129】
この場合、検証部240は、秘密鍵保持部220からMACの秘密鍵Kを読み込み、検索キーワードとして「茨城大学」を読み込み、サーバ300Dから送られてきた、ファイルの集合P
2=(D3、D6、D10)と検証情報(認証子)Tag
2とを読み込む。
【0130】
そして、検証部240は、MACの秘密鍵Kを使い、検証情報(認証子)Tag
2が検証用組(茨城大学、D3、D6、D10)の認証子であるか否かを、MAC検証アルゴリズムに従って、下記の数式に示されるように計算する。
Verify
K(茨城大学、D3、D6、D10、Tag
2)=accept or reject
【0131】
検証部240は、acceptなら、取得したファイルの集合P
2=(D3、D6、D10)を所望のファイルの集合として出力し、rejectなら、rejectを出力する。
【0132】
次に、本第1の実施例の効果について説明する。
【0133】
本第1の実施例の検索システム100Dは、サーバ300Dの不正として、ファイルの削除、追加、改ざんのみならず、ファイルのすり替えをも検出できる。その理由は、クライアント(ユーザ端末)200Dが各キーワードW
iと当該キーワードW
iを含む全てのファイルの集合P
i=(D
i1、D
i2、…)とを一組(生成用組)として、それに対する検証情報Tag
i(又はσ
i)を生成し、生成した検証情報Tag
i(又はσ
i)をサーバ300Dに保管しているからである。
【実施例2】
【0134】
図15を参照して、本発明の第2の実施例に係る検索システム100Eについて説明する。図示の検索システム100Eは、上述した本発明の第4の実施形態(又は、第3の実施形態)に係る検索システムに相当する検証システムである。検索システム100Eは、クライアント200Eとサーバ300Eとから構成される。クライアント200Eは、ユーザ端末とも呼ばれる。
【0135】
検索システム100Eは、クライアント(ユーザ端末)200Eがサーバ300Eに複数の暗号ファイルを保管し、クライアント(ユーザ端末)200Eがキーワード検索によってサーバ300Eから所望のファイルの集合を取得するシステムである。
【0136】
クライアント200Eは、秘密鍵生成部210Aと、秘密鍵保持部220Aと、検証情報生成部230Aと、検証部240Aと、第1乃至第3の暗号化部260A、270A、および280Aと、から構成されている。一方、サーバ300Eは、記憶領域310と、検索部320とから構成されている。
【0137】
秘密鍵生成部210Aは、暗号化の秘密鍵K0とMACの秘密鍵K1とを生成する。秘密鍵保持部220は、この生成された暗号化の秘密鍵K0とMACの秘密鍵K1とを保持する。
【0138】
尚、検証情報がデジタル署名である場合、秘密鍵生成部210Aは、暗号化の秘密鍵Kとデジタル署名の公開鍵vkと秘密鍵skとを生成する。
【0139】
第1の暗号化部260Aは、暗号化の秘密鍵K0を使い、N個のファイルの暗号文である暗号ファイル{E(D1)、E(D2)、…}を計算する。これら暗号ファイル{E(D1)、E(D2)、…}は、サーバ300Eへ送られ、サーバ300Eは、その送られてきた暗号ファイル{E(D1)、E(D2)、…}を記憶領域310に記憶する。したがって、第1の暗号化部260Aは、暗号化の秘密鍵K0を使って複数のファイルをそれぞれ暗号化し、複数の暗号ファイルをサーバ300Eに保管する暗号ファイル保管手段として働く。
【0140】
尚、検証情報がデジタル署名である場合、第1の暗号化部260Aは、暗号化の秘密鍵Kを使い、N個のファイルの暗号文(暗号ファイル)を計算する。
【0141】
また、クライアント200Eは、索引を生成する。
【0142】
図16に索引の具体例を示す。前述したように、索引は、キーワードと、それに対応するファイルの番号(ファイル番号)の対応表である。
【0143】
図示の例では、索引の番号1には、キーワードとして「情報工学」が記憶され、そのキーワードに対応するファイル番号として、「1」、「6」、「8」、「11」が記憶されている。また、索引の番号2には、キーワードとして「茨城大学」が記憶され、そのキーワードに対応するファイル番号として、「3」、「6」、「10」が記憶されている。
【0144】
第2の暗号化部270Aは、暗号化の秘密鍵K0を使い、生成した索引を暗号化して、暗号索引をサーバ300Eへ送信する。サーバ300Eは、その送られてきた暗号索引を記憶領域310に記憶する。したがって、第2の暗号化部270Aは、生成した索引を暗号化して、暗号索引をサーバ300Eへ保管する暗号索引保管手段として働く。
【0145】
図17を参照して、クライアント200Eの検証情報生成部230Aの動作について説明する。
【0146】
検証情報生成部230Aは、MACの秘密鍵K1、索引、暗号ファイルの集合{E(D1)、E(D2)、…}を読み込む(ステップS110A)。次に、検証情報生成部230Aは、各キーワードW
iについて以下の処理を実行する(ステップS120A)。ここでは、キーワードW
iに対応するファイル番号を(i1、i2、…)とする。この場合、検索情報生成部230は、MACの秘密鍵K1を使い、生成用組(W
i、E(D
i1)、E(D
i2)、…)に対応する検証情報(認証子)Tag
iを下記の数式のように計算する。
Tag
i=f
K1(W
i、E(D
i1)、E(D
i2)、…)
ここで、fはMAC生成アルゴリズムである。
【0147】
尚、検証情報として、認証子Tag
iの代わりにデジタル署名σ
iを使用する場合、fは署名生成アルゴリズムであって、検証情報生成部230Aは、MACの暗号鍵K1の代わりにデジタル署名の秘密鍵skを使用して、生成用組(W
i、E(D
i1)、E(D
i2)、…)に対応するデジタル署名σ
iを下記の数式のように計算する。
σ
i=f
sk(W
i、E(D
i1)、E(D
i2)、…)
【0148】
検索情報生成部230Aは、計算して得られた検証情報(Tag
1、Tag
2、…)を出力する(ステップS130A)。これら検証情報(認証子)は、サーバ300Eに送られ、サーバ300Eは、これら検証情報(認証子)を記憶領域310に記憶する。
【0149】
次に、
図18を参照して、検証情報生成部230Aの動作について具体例を挙げて説明する。ここでは、キーワードが索引番号2の「茨城大学」である場合を例に挙げて説明する。
【0150】
この場合、検証情報生成部230Aは、索引を参照して、キーワード「茨城大学」を含む、該当する暗号化されたファイル(暗号ファイル)の集合Q
2を選択する。この場合、索引番号2のファイル番号には、「3」、「6」、「10」が記憶されているので、検索情報生成部230Aは、該当暗号ファイルの集合Q
2として、暗号ファイルE(D3)、E(D6)、およびE(D10)を選択する。
【0151】
そして、検証情報生成部230Aは、MACの秘密鍵K1を使い、生成用組(茨城大学、E(D3)、E(D6)、E(D10))に対する検証情報(認証子)Tag
2を、MAC生成アルゴリズムに従って、下記数式で示されるように生成する。
Tag
2=f
K1(茨城大学、E(D3)、E(D6)、E(D10))
【0152】
検証情報生成部230Aは、このようにして、キーワードi毎の検証情報(認証子)Tag
iを生成する。生成された検証情報(認証子)Tag
iは、サーバ300Eへ送られ、サーバ300Eは、送られてきた検証情報(認証子)Tag
iを記憶領域310に記憶する。
【0153】
尚、検証情報がデジタル署名σ
iの場合、サーバ300Eは、デジタル署名σ
iを記憶領域310に記憶する。
【0154】
検索時、クライアント200Eでは、第3の暗号化部280Aが、暗号化の秘密鍵K0を使って検索キーワードWを暗号化し、暗号検索キーワードE’(W)をサーバ300Eに送る。サーバ300Eにおいては、暗号検索キーワードE’(W)に応答して、検索部320は、その検索キーワードWを含む暗号ファイルの集合Q
i=(E(D
i1)、E(D
i2)、…)とその検証情報(認証子)Tagとをクライアント200Eへ返す。したがって、クライアント200Eは、暗号ファイルの集合Q
i=(E(D
i1)、E(D
i2)、…)とその検証情報(認証子)Tagとを取得する。すなわち、第3の暗号化部280Aは、暗号化の秘密鍵K0を使って検索キーワードWを暗号化して得られる暗号検索キーワードE’(W)をサーバ300Eへ送って、サーバ300Eから、暗号ファイルの集合Q
i=(E(D
i1)、E(D
i2)、…)と検索キーワードWに対応する検証情報(認証子)Tagとを取得する暗号ファイル取得手段として働く。
【0155】
次に、
図19を参照して、クライアント200Eの検証部240Aの動作について説明する。
【0156】
検証部240Aは、秘密鍵保持部220Aに保持されたMACの秘密鍵K1と、検索キーワードWとを読み込む(ステップS210A)。次に、検証部240Aは、サーバ300Eから送られてきた暗号ファイルの集合Q
iである暗号ファイル(E(D
i1)、E(D
i2)、…)とその検証情報(認証子)Tagとを読み込む(ステップS220A)。
【0157】
検証部240Aは、MACの秘密鍵K1を使い、検証情報(認証子)Tagが検証用組(W、E(D
i1)、E(D
i2)、…)の認証子であるか否かを、MAC検証アルゴリズムに従って、下記の数式に示されるように計算する(S230A)。
Verify
K1(W、E(D
i1)、E(D
i2)、…、Tag)=accept or reject
【0158】
検証部240Aは、計算結果がacceptなら(ステップS240AのYes)、取得した暗号ファイルの集合Q
i=(E(D
i1)、E(D
i2)、…)を復号して、所望のファイルの集合P
i=(D
i1、D
i2、…)を出力し(ステップS250A)、rejectなら(ステップS240AのNo)、rejectを出力する(ステップS260A)。
【0159】
尚、検証情報がデジタル署名σである場合、検証部240Aは、デジタル署名の公開鍵vkを使い、デジタル署名σが検証用組(W、E(D
i1)、E(D
i2)、…)のデジタル署名であるか否かを、署名検証アルゴリズムに従って、下記の数式に示されるように計算する。
Verify
vk(W、E(D
i1)、E(D
i2)、…、σ)=accept or reject
【0160】
次に、
図20を参照して、検証部240Aの動作について具体例を挙げて説明する。ここでは、検索キーワードWが索引番号2の「茨城大学」である場合を例に挙げて説明する。
【0161】
この場合、検証部240Aは、秘密鍵保持部220AからMACの秘密鍵K1を読み込み、検索キーワードとして「茨城大学」を読み込み、サーバ300Eから送られてきた、暗号ファイルの集合Q
2である暗号ファイル(E(D3)、E(D6)、E(D10))と検証情報(認証子)Tag
2とを読み込む。
【0162】
そして、検証部240Aは、MACの秘密鍵K1を使い、検証情報(認証子)Tag
2が検証用組(茨城大学、E(D3)、E(D6)、E(D10))の認証子であるか否かを、MAC検証アルゴリズムに従って下記の数式のように計算する。
Verify
K1(茨城大学、E(D3)、E(D6)、E(D10)、Tag
2)
=accept or reject
【0163】
検証部240Aは、計算結果がacceptなら、暗号ファイルの集合Q
2=(E(D3)、E(D6)、E(D10))を復号して、所望のファイルの集合P
2=(D3、D6、D10)を出力し、rejectなら、rejectを出力する。
【0164】
次に、本第2の実施例の効果について説明する。
【0165】
本第2の実施例の検索システム100Eは、サーバの不正として、ファイルの削除、追加、改ざんばかりでなく、ファイルのすり替えも検出することができる。その理由は、クライアント(ユーザ端末)200Eが各キーワードW
iと当該キーワードW
iを含む全てのファイルを暗号化して得られる暗号ファイルの集合Q
i={E(D
i1、E(D
i2)、…}とを一組(生成用組)として、それに対する検証情報Tag
i(又はσ
i)を生成し、生成した検証情報Tag
i(又はσ
i)をサーバ300Eに保管しているからである。
【0166】
以上、実施形態(実施例)を参照して本発明を説明したが、本発明は上記実施形態(実施例)に限定されるものではない。本発明の構成や詳細には、本発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
【0167】
上記の実施形態(実施例)の一部又は全部は、以下の付記のようにも記載されうるが、以下には限られない。
【0168】
(付記1) ユーザ端末がサーバに複数のファイルを保管し、前記ユーザ端末がキーワード検索によって前記サーバから所望のファイルの集合を取得する検索システムであって、前記ユーザ端末は、
前記複数のファイルを前記サーバに保管するファイル保管手段と、
キーワードと該キーワードを含む全てのファイルの集合との生成用組に対して所定の生成アルゴリズムに従って検証情報を生成し、該生成した検証情報を前記サーバに保管する検証情報生成部と、
検索キーワードを前記サーバへ送って、前記サーバから前記検索キーワードを含むファイルの集合と前記検索キーワードに対応する検証情報とを取得するファイル取得手段と、
該取得した検証情報が、前記検索キーワードと前記取得したファイルの集合との検証用組の検証情報であるか否かを所定の検証アルゴリズムによってチェックし、チェックの結果が正しければ承認して前記取得したファイルの集合を前記所望のファイルの集合として得、そうでなければ拒否する検証部と、
を有する検索システム。
【0169】
(付記2) 前記所定の生成アルゴリズムが署名生成アルゴリズムから成り、
前記所定の検証アルゴリズムが署名検証アルゴリズムから成り、
前記検証情報生成部は、デジタル署名の秘密鍵を使って、前記署名生成アルゴリズムに従って、前記検証情報として前記生成用組に対するデジタル署名を生成し、
前記検証部は、デジタル署名の公開鍵を使って、前記署名検証アルゴリズムに従って、取得したデジタル署名が前記検証用組のデジタル署名であるか否かをチェックする、
付記1に記載の検索システム。
【0170】
(付記3) 前記所定の生成アルゴリズムがMAC(Message Authentication Code)生成アルゴリズムから成り、
前記所定の検証アルゴリズムがMAC検証アルゴリズムから成り、
前記検証情報生成部は、MACの秘密鍵を使って、前記MAC生成アルゴリズムに従って、前記検証情報として前記生成用組に対する認証子を生成し、
前記検証部は、前記MACの秘密鍵を使って、前記MAC検証アルゴリズムに従って、取得した認証子が前記検証用組の認証子であるか否かをチェックする、
付記1に記載の検索システム。
【0171】
(付記4) ユーザ端末がサーバに複数のファイルを保管し、前記ユーザ端末がキーワード検索によって前記サーバから所望のファイルの集合を取得する検索方法であって、
前記ユーザ端末が、前記複数のファイルを前記サーバに保管するステップと、
前記ユーザ端末が、キーワードと該キーワードを含む全てのファイルの集合との生成用組に対して所定の生成アルゴリズムに従って検証情報を生成するステップと、
前記ユーザ端末が、前記生成した検証情報を前記サーバに保管するステップと、
前記ユーザ端末が、検索キーワードを前記サーバへ送って、前記サーバから前記検索キーワードを含むファイルの集合と前記検索キーワードに対応する検証情報とを取得するステップと、
前記ユーザ端末が、前記取得した検証情報が、前記検索キーワードと前記取得したファイルの集合との検証用組の検証情報であるか否かを所定の検証アルゴリズムによってチェックするステップと、
前記ユーザ端末が、チェックの結果が正しければ承認して前記取得したファイルの集合を前記所望のファイルの集合として得、そうでなければ拒否するステップと、
を含む検索方法。
【0172】
(付記5) 前記所定の生成アルゴリズムが署名生成アルゴリズムから成り、
前記所定の検証アルゴリズムが署名検証アルゴリズムから成り、
前記生成するステップは、デジタル署名の秘密鍵を使って、前記署名生成アルゴリズムに従って、前記検証情報として前記生成用組に対するデジタル署名を生成し、
前記チェックするステップは、デジタル署名の公開鍵を使って、前記署名検証アルゴリズムに従って、取得したデジタル署名が前記検証用組のデジタル署名であるか否かをチェックする、
付記4に記載の検索方法。
【0173】
(付記6) 前記所定の生成アルゴリズムがMAC(Message Authentication Code)生成アルゴリズムから成り、
前記所定の検証アルゴリズムがMAC検証アルゴリズムから成り、
前記生成するステップは、MACの秘密鍵を使って、前記MAC生成アルゴリズムに従って、前記検証情報として前記生成用組に対する認証子を生成し、
前記チェックするステップは、前記MACの秘密鍵を使って、前記MAC検証アルゴリズムに従って、取得した認証子が前記検証用組の認証子であるか否かをチェックする、
付記4に記載の検索方法。
【0174】
(付記7) サーバに複数のファイルを保管し、キーワード検索によって前記サーバから所望のファイルの集合を取得する処理を、コンピュータであるユーザ端末に実行させる検索プログラムであって、前記コンピュータに、
前記複数のファイルを前記サーバに保管する手順と、
キーワードと該キーワードを含む全てのファイルの集合との生成用組に対して所定の生成アルゴリズムに従って検証情報を生成する手順と、
前記生成した検証情報を前記サーバに保管する手順と、
検索キーワードを前記サーバへ送って、前記サーバから前記検索キーワードを含むファイルの集合と前記検索キーワードに対応する検証情報とを取得する手順と、
前記取得した検証情報が、前記検索キーワードと前記取得したファイルの集合との検証用組の検証情報であるか否かを所定の検証アルゴリズムによってチェックする手順と、
チェックの結果が正しければ承認して前記取得したファイルの集合を前記所望のファイルの集合として得、そうでなければ拒否する手順と、
を実行させるための検索プログラム。
【0175】
(付記8) 前記所定の生成アルゴリズムが署名生成アルゴリズムから成り、
前記所定の検証アルゴリズムが署名検証アルゴリズムから成り、
前記生成する手順は、前記コンピュータに、デジタル署名の秘密鍵を使って、前記署名生成アルゴリズムに従って、前記検証情報として前記生成用組に対するデジタル署名を生成させ、
前記チェックする手順は、前記コンピュータに、デジタル署名の公開鍵を使って、前記署名検証アルゴリズムに従って、取得したデジタル署名が前記検証用組のデジタル署名であるか否かをチェックさせる、
付記7に記載の検索プログラム。
【0176】
(付記9) 前記所定の生成アルゴリズムがMAC(Message Authentication Code)生成アルゴリズムから成り、
前記所定の検証アルゴリズムがMAC検証アルゴリズムから成り、
前記生成する手順は、前記コンピュータに、MACの秘密鍵を使って、前記MAC生成アルゴリズムに従って、前記検証情報として前記生成用組に対する認証子を生成させ、
前記チェックする手順は、前記コンピュータに、前記MACの秘密鍵を使って、前記MAC検証アルゴリズムに従って、取得した認証子が前記検証用組の認証子であるか否かをチェックさせる、
付記7に記載の検索プログラム。
【0177】
(付記10) ユーザ端末がサーバに複数の暗号ファイルを保管し、前記ユーザ端末がキーワード検索によって前記サーバから所望のファイルの集合を取得する検索システムであって、前記ユーザ端末は、
暗号化の秘密鍵を使って複数のファイルをそれぞれ暗号化し、前記複数の暗号ファイルを前記サーバに保管する暗号ファイル保管手段と、
キーワードと該キーワードを含む全ての暗号ファイルの集合との生成用組に対して所定の生成アルゴリズムに従って検証情報を生成し、該生成した検証情報を前記サーバに保管する検証情報生成部と、
前記暗号化の秘密鍵を使って検索キーワードを暗号化して得られる暗号検索キーワードを前記サーバへ送って、前記サーバから前記暗号検索キーワードを含む暗号ファイルの集合と前記検索キーワードに対応する検証情報とを取得する暗号ファイル取得手段と、
該取得した検証情報が、前記検索キーワードと前記取得した暗号ファイルの集合との検証用組の検証情報であるか否かを所定の検証アルゴリズムによってチェックし、チェックの結果が正しければ承認して前記取得した暗号ファイルの集合を復号して前記所望のファイルの集合を得、そうでなければ拒否する検証部と、
を有する検索システム。
【0178】
(付記11) ユーザ端末がサーバに複数の暗号ファイルを保管し、前記ユーザ端末がキーワード検索によって前記サーバから所望のファイルの集合を取得する検索システムであって、前記ユーザ端末は、
暗号化の秘密鍵を使って複数のファイルをそれぞれ暗号化し、前記複数の暗号ファイルを前記サーバに保管する暗号ファイル保管手段と、
前記暗号化の秘密鍵を使ってキーワードを暗号化して得られる暗号キーワードと該暗号キーワードを含む全ての暗号ファイルの集合との生成用組に対して所定の生成アルゴリズムに従って検証情報を生成し、該生成した検証情報を前記サーバに保管する検証情報生成部と、
前記暗号化の秘密鍵を使って検索キーワードを暗号化して得られる暗号検索キーワードを前記サーバへ送って、前記サーバから前記暗号検索キーワードを含む暗号ファイルの集合と前記暗号検索キーワードに対応する検証情報とを取得する暗号ファイル取得手段と、
該取得した検証情報が、前記暗号検索キーワードと前記取得した暗号ファイルの集合との検証用組の検証情報であるか否かを所定の検証アルゴリズムによってチェックし、チェックの結果が正しければ承認して前記取得した暗号ファイルの集合を復号して前記所望のファイルの集合を得、そうでなければ拒否する検証部と、
を有する検索システム。
【0179】
(付記12) 前記所定の生成アルゴリズムが署名生成アルゴリズムから成り、
前記所定の検証アルゴリズムが署名検証アルゴリズムから成り、
前記検証情報生成部は、デジタル署名の秘密鍵を使って、前記署名生成アルゴリズムに従って、前記検証情報として前記生成用組に対するデジタル署名を生成し、
前記検証部は、デジタル署名の公開鍵を使って、前記署名検証アルゴリズムに従って、取得したデジタル署名が前記検証用組のデジタル署名であるか否かをチェックする、
付記10又は11に記載の検索システム。
【0180】
(付記13) 前記所定の生成アルゴリズムがMAC(Message Authentication Code)生成アルゴリズムから成り、
前記所定の検証アルゴリズムがMAC検証アルゴリズムから成り、
前記検証情報生成部は、MACの秘密鍵を使って、前記MAC生成アルゴリズムに従って、前記検証情報として前記生成用組に対する認証子を生成し、
前記検証部は、前記MACの秘密鍵を使って、前記MAC検証アルゴリズムに従って、取得した認証子が前記検証用組の認証子であるか否かをチェックする、
付記10又は11に記載の検索システム。
【0181】
(付記14) ユーザ端末がサーバに複数の暗号ファイルを保管し、前記ユーザ端末がキーワード検索によって前記サーバから所望のファイルの集合を取得する検索方法であって、
前記ユーザ端末が、暗号化の秘密鍵を使って複数のファイルをそれぞれ暗号化し、前記複数の暗号ファイルを前記サーバに保管するステップと、
前記ユーザ端末が、キーワードと該キーワードを含む全ての暗号ファイルの集合との生成用組に対して所定の生成アルゴリズムに従って検証情報を生成するステップと、
前記ユーザ端末が、前記生成した検証情報を前記サーバに保管するステップと、
前記ユーザ端末が、前記暗号化の秘密鍵を使って検索キーワードを暗号化して得られる暗号検索キーワードを前記サーバへ送って、前記サーバから前記暗号検索キーワードを含む暗号ファイルの集合と前記検索キーワードに対応する検証情報とを取得するステップと、
前記ユーザ端末が、前記取得した検証情報が、前記検索キーワードと前記取得した暗号ファイルの集合との検証用組の検証情報であるか否かを所定の検証アルゴリズムによってチェックするステップと、
前記ユーザ端末が、チェックの結果が正しければ承認して前記取得した暗号ファイルの集合を復号して前記所望のファイルの集合を得、そうでなければ拒否するステップと、
を含む検索方法。
【0182】
(付記15) ユーザ端末がサーバに複数の暗号ファイルを保管し、前記ユーザ端末がキーワード検索によって前記サーバから所望のファイルの集合を取得する検索方法であって、
前記ユーザ端末が、暗号化の秘密鍵を使って複数のファイルをそれぞれ暗号化し、前記複数の暗号ファイルを前記サーバに保管するステップと、
前記ユーザ端末が、前記暗号化の秘密鍵を使って暗号化して得られる暗号キーワードと該暗号キーワードを含む全ての暗号ファイルの集合との生成用組に対して所定の生成アルゴリズムに従って検証情報を生成するステップと、
前記ユーザ端末が、前記生成した検証情報を前記サーバに保管するステップと、
前記ユーザ端末が、前記暗号化の秘密鍵を使って検索キーワードを暗号化して得られる暗号検索キーワードを前記サーバへ送って、前記サーバから前記暗号検索キーワードを含む暗号ファイルの集合と前記暗号検索キーワードに対応する検証情報とを取得するステップと、
前記ユーザ端末が、前記取得した検証情報が、前記暗号検索キーワードと前記取得した暗号ファイルの集合との検証用組の検証情報であるか否かを所定の検証アルゴリズムによってチェックするステップと、
前記ユーザ端末が、チェックの結果が正しければ承認して前記取得した暗号ファイルの集合を復号して前記所望のファイルの集合を得、そうでなければ拒否するステップと、
を含む検索方法。
【0183】
(付記16) 前記所定の生成アルゴリズムが署名生成アルゴリズムから成り、
前記所定の検証アルゴリズムが署名検証アルゴリズムから成り、
前記生成するステップは、デジタル署名の秘密鍵を使って、前記署名生成アルゴリズムに従って、前記検証情報として前記生成用組に対するデジタル署名を生成し、
前記チェックするステップは、デジタル署名の公開鍵を使って、前記署名検証アルゴリズムに従って、取得したデジタル署名が前記検証用組のデジタル署名であるか否かをチェックする、
付記14又は15に記載の検索方法。
【0184】
(付記17) 前記所定の生成アルゴリズムがMAC(Message Authentication Code)生成アルゴリズムから成り、
前記所定の検証アルゴリズムがMAC検証アルゴリズムから成り、
前記生成するステップは、MACの秘密鍵を使って、前記MAC生成アルゴリズムに従って、前記検証情報として前記生成用組に対する認証子を生成し、
前記チェックするステップは、前記MACの秘密鍵を使って、前記MAC検証アルゴリズムに従って、取得した認証子が前記検証用組の認証子であるか否かをチェックする、
付記14又は15に記載の検索方法。
【0185】
(付記18) サーバに複数の暗号ファイルを保管し、キーワード検索によって前記サーバから所望のファイルの集合を取得する処理を、コンピュータであるユーザ端末に実行させる検索プログラムであって、前記コンピュータに、
暗号化の秘密鍵を使って複数のファイルをそれぞれ暗号化し、前記複数の暗号ファイルを前記サーバに保管する手順と、
キーワードと該キーワードを含む全ての暗号ファイルの集合との生成用組に対して所定の生成アルゴリズムに従って検証情報を生成する手順と、
前記生成した検証情報を前記サーバに保管する手順と、
前記暗号化の秘密鍵を使って検索キーワードを暗号化して得られる暗号検索キーワードを前記サーバへ送って、前記サーバから前記暗号検索キーワードを含む暗号ファイルの集合と前記検索キーワードに対応する検証情報とを取得する手順と、
前記取得した検証情報が、前記検索キーワードと前記取得した暗号ファイルの集合との検証用組の検証情報であるか否かを所定の検証アルゴリズムによってチェックする手順と、
チェックの結果が正しければ承認して前記取得した暗号ファイルの集合を復号して前記所望のファイルの集合を得、そうでなければ拒否する手順と、
を実行させるための検索プログラム。
【0186】
(付記19) サーバに複数の暗号ファイルを保管し、キーワード検索によって前記サーバから所望のファイルの集合を取得する処理を、コンピュータであるユーザ端末に実行させる検索プログラムであって、前記コンピュータに、
暗号化の秘密鍵を使って複数のファイルをそれぞれ暗号化し、前記複数の暗号ファイルを前記サーバに保管する手順と、
前記暗号化の秘密鍵を使ってキーワードを暗号化して得られる暗号キーワードと該暗号キーワードを含む全ての暗号ファイルの集合との生成用組に対して所定の生成アルゴリズムに従って検証情報を生成する手順と、
前記生成した検証情報を前記サーバに保管する手順と、
前記暗号化の秘密鍵を使って検索キーワードを暗号化して得られる暗号検索キーワードを前記サーバへ送って、前記サーバから前記暗号検索キーワードを含む暗号ファイルの集合と前記暗号検索キーワードに対応する検証情報とを取得する手順と、
前記取得した検証情報が、前記暗号検索キーワードと前記取得した暗号ファイルの集合との検証用組の検証情報であるか否かを所定の検証アルゴリズムによってチェックする手順と、
チェックの結果が正しければ承認して前記取得した暗号ファイルの集合を復号して前記所望のファイルの集合を得、そうでなければ拒否する手順と、
を実行させるための検索プログラム。
【0187】
(付記20) 前記所定の生成アルゴリズムが署名生成アルゴリズムから成り、
前記所定の検証アルゴリズムが署名検証アルゴリズムから成り、
前記生成する手順は、前記コンピュータに、デジタル署名の秘密鍵を使って、前記署名生成アルゴリズムに従って、前記検証情報として前記生成用組に対するデジタル署名を生成させ、
前記チェックする手順は、前記コンピュータに、デジタル署名の公開鍵を使って、前記署名検証アルゴリズムに従って、取得したデジタル署名が前記検証用組のデジタル署名であるか否かをチェックせる、
付記18又は19に記載の検索プログラム。
【0188】
(付記21) 前記所定の生成アルゴリズムがMAC(Message Authentication Code)生成アルゴリズムから成り、
前記所定の検証アルゴリズムがMAC検証アルゴリズムから成り、
前記生成する手順は、前記コンピュータに、MACの秘密鍵を使って、前記MAC生成アルゴリズムに従って、前記検証情報として前記生成用組に対する認証子を生成させ、
前記チェックする手順は、前記コンピュータに、前記MACの秘密鍵を使って、前記MAC検証アルゴリズムに従って、取得した認証子が前記検証用組の認証子であるか否かをチェックさせる、
付記18又は19に記載の検索プログラム。