特許第5970193号(P5970193)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 国立大学法人茨城大学の特許一覧

特許5970193検索システム、検索方法および検索プログラム
<>
  • 特許5970193-検索システム、検索方法および検索プログラム 図000002
  • 特許5970193-検索システム、検索方法および検索プログラム 図000003
  • 特許5970193-検索システム、検索方法および検索プログラム 図000004
  • 特許5970193-検索システム、検索方法および検索プログラム 図000005
  • 特許5970193-検索システム、検索方法および検索プログラム 図000006
  • 特許5970193-検索システム、検索方法および検索プログラム 図000007
  • 特許5970193-検索システム、検索方法および検索プログラム 図000008
  • 特許5970193-検索システム、検索方法および検索プログラム 図000009
  • 特許5970193-検索システム、検索方法および検索プログラム 図000010
  • 特許5970193-検索システム、検索方法および検索プログラム 図000011
  • 特許5970193-検索システム、検索方法および検索プログラム 図000012
  • 特許5970193-検索システム、検索方法および検索プログラム 図000013
  • 特許5970193-検索システム、検索方法および検索プログラム 図000014
  • 特許5970193-検索システム、検索方法および検索プログラム 図000015
  • 特許5970193-検索システム、検索方法および検索プログラム 図000016
  • 特許5970193-検索システム、検索方法および検索プログラム 図000017
  • 特許5970193-検索システム、検索方法および検索プログラム 図000018
  • 特許5970193-検索システム、検索方法および検索プログラム 図000019
  • 特許5970193-検索システム、検索方法および検索プログラム 図000020
  • 特許5970193-検索システム、検索方法および検索プログラム 図000021
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】5970193
(24)【登録日】2016年7月15日
(45)【発行日】2016年8月17日
(54)【発明の名称】検索システム、検索方法および検索プログラム
(51)【国際特許分類】
   G06F 17/30 20060101AFI20160804BHJP
   G06F 12/00 20060101ALI20160804BHJP
   G06F 21/64 20130101ALI20160804BHJP
【FI】
   G06F17/30 120Z
   G06F12/00 537H
   G06F21/64
【請求項の数】10
【全頁数】30
(21)【出願番号】特願2012-20691(P2012-20691)
(22)【出願日】2012年2月2日
(65)【公開番号】特開2013-161154(P2013-161154A)
(43)【公開日】2013年8月19日
【審査請求日】2015年1月20日
(73)【特許権者】
【識別番号】504203572
【氏名又は名称】国立大学法人茨城大学
(74)【代理人】
【識別番号】100077838
【弁理士】
【氏名又は名称】池田 憲保
(74)【代理人】
【識別番号】100129023
【弁理士】
【氏名又は名称】佐々木 敬
(72)【発明者】
【氏名】黒澤 馨
(72)【発明者】
【氏名】大瀧 保広
【審査官】 樋口 龍弥
(56)【参考文献】
【文献】 特開2010−205258(JP,A)
【文献】 特開2002−229835(JP,A)
【文献】 特開2001−147898(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 17/30
G06F 12/00
G06F 21/64
(57)【特許請求の範囲】
【請求項1】
ユーザ端末がサーバに複数のファイルを保管し、前記ユーザ端末がキーワード検索によって前記サーバから所望のファイルの集合を取得する検索システムであって、前記ユーザ端末は、
前記複数のファイルを前記サーバに保管するファイル保管手段と、
キーワードと該キーワードを含む全てのファイルの集合との生成用組に対して所定の生成アルゴリズムに従って検証情報を生成し、該生成した検証情報を前記サーバに保管する検証情報生成部と、
検索キーワードを前記サーバへ送って、前記サーバから前記検索キーワードを含むファイルの集合と前記検索キーワードに対応する検証情報とを取得するファイル取得手段と、
該取得した検証情報が、前記検索キーワードと前記取得したファイルの集合との検証用組の検証情報であるか否かを所定の検証アルゴリズムによってチェックし、チェックの結果が正しければ承認して前記取得したファイルの集合を前記所望のファイルの集合として得、そうでなければ拒否する検証部と、
を有する検索システム。
【請求項2】
前記所定の生成アルゴリズムが署名生成アルゴリズムから成り、
前記所定の検証アルゴリズムが署名検証アルゴリズムから成り、
前記検証情報生成部は、デジタル署名の秘密鍵を使って、前記署名生成アルゴリズムに従って、前記検証情報として前記生成用組に対するデジタル署名を生成し、
前記検証部は、デジタル署名の公開鍵を使って、前記署名検証アルゴリズムに従って、取得したデジタル署名が前記検証用組のデジタル署名であるか否かをチェックする、
請求項1に記載の検索システム。
【請求項3】
前記所定の生成アルゴリズムがMAC(Message Authentication Code)生成アルゴリズムから成り、
前記所定の検証アルゴリズムがMAC検証アルゴリズムから成り、
前記検証情報生成部は、MACの秘密鍵を使って、前記MAC生成アルゴリズムに従って、前記検証情報として前記生成用組に対する認証子を生成し、
前記検証部は、前記MACの秘密鍵を使って、前記MAC検証アルゴリズムに従って、取得した認証子が前記検証用組の認証子であるか否かをチェックする、
請求項1に記載の検索システム。
【請求項4】
ユーザ端末がサーバに複数のファイルを保管し、前記ユーザ端末がキーワード検索によって前記サーバから所望のファイルの集合を取得する検索方法であって、
前記ユーザ端末が、前記複数のファイルを前記サーバに保管するステップと、
前記ユーザ端末が、キーワードと該キーワードを含む全てのファイルの集合との生成用組に対して所定の生成アルゴリズムに従って検証情報を生成するステップと、
前記ユーザ端末が、前記生成した検証情報を前記サーバに保管するステップと、
前記ユーザ端末が、検索キーワードを前記サーバへ送って、前記サーバから前記検索キーワードを含むファイルの集合と前記検索キーワードに対応する検証情報とを取得するステップと、
前記ユーザ端末が、前記取得した検証情報が、前記検索キーワードと前記取得したファイルの集合との検証用組の検証情報であるか否かを所定の検証アルゴリズムによってチェックするステップと、
前記ユーザ端末が、チェックの結果が正しければ承認して前記取得したファイルの集合を前記所望のファイルの集合として得、そうでなければ拒否するステップと、
を含む検索方法。
【請求項5】
サーバに複数のファイルを保管し、キーワード検索によって前記サーバから所望のファイルの集合を取得する処理を、コンピュータであるユーザ端末に実行させる検索プログラムであって、前記コンピュータに、
前記複数のファイルを前記サーバに保管する手順と、
キーワードと該キーワードを含む全てのファイルの集合との生成用組に対して所定の生成アルゴリズムに従って検証情報を生成する手順と、
前記生成した検証情報を前記サーバに保管する手順と、
検索キーワードを前記サーバへ送って、前記サーバから前記検索キーワードを含むファイルの集合と前記検索キーワードに対応する検証情報とを取得する手順と、
前記取得した検証情報が、前記検索キーワードと前記取得したファイルの集合との検証用組の検証情報であるか否かを所定の検証アルゴリズムによってチェックする手順と、
チェックの結果が正しければ承認して前記取得したファイルの集合を前記所望のファイルの集合として得、そうでなければ拒否する手順と、
を実行させるための検索プログラム。
【請求項6】
ユーザ端末がサーバに複数の暗号ファイルを保管し、前記ユーザ端末がキーワード検索によって前記サーバから所望のファイルの集合を取得する検索システムであって、前記ユーザ端末は、
暗号化の秘密鍵を使って複数のファイルをそれぞれ暗号化し、前記複数の暗号ファイルを前記サーバに保管する暗号ファイル保管手段と、
キーワードと該キーワードを含む全ての暗号ファイルの集合との生成用組に対して所定の生成アルゴリズムに従って検証情報を生成し、該生成した検証情報を前記サーバに保管する検証情報生成部と、
前記暗号化の秘密鍵を使って検索キーワードを暗号化して得られる暗号検索キーワードを前記サーバへ送って、前記サーバから前記暗号検索キーワードを含む暗号ファイルの集合と前記検索キーワードに対応する検証情報とを取得する暗号ファイル取得手段と、
該取得した検証情報が、前記検索キーワードと前記取得した暗号ファイルの集合との検証用組の検証情報であるか否かを所定の検証アルゴリズムによってチェックし、チェックの結果が正しければ承認して前記取得した暗号ファイルの集合を復号して前記所望のファイルの集合を得、そうでなければ拒否する検証部と、
を有する検索システム。
【請求項7】
前記所定の生成アルゴリズムが署名生成アルゴリズムから成り、
前記所定の検証アルゴリズムが署名検証アルゴリズムから成り、
前記検証情報生成部は、デジタル署名の秘密鍵を使って、前記署名生成アルゴリズムに従って、前記検証情報として前記生成用組に対するデジタル署名を生成し、
前記検証部は、デジタル署名の公開鍵を使って、前記署名検証アルゴリズムに従って、取得したデジタル署名が前記検証用組のデジタル署名であるか否かをチェックする、
請求項6に記載の検索システム。
【請求項8】
前記所定の生成アルゴリズムがMAC(Message Authentication Code)生成アルゴリズムから成り、
前記所定の検証アルゴリズムがMAC検証アルゴリズムから成り、
前記検証情報生成部は、MACの秘密鍵を使って、前記MAC生成アルゴリズムに従って、前記検証情報として前記生成用組に対する認証子を生成し、
前記検証部は、前記MACの秘密鍵を使って、前記MAC検証アルゴリズムに従って、取得した認証子が前記検証用組の認証子であるか否かをチェックする、
請求項6に記載の検索システム。
【請求項9】
ユーザ端末がサーバに複数の暗号ファイルを保管し、前記ユーザ端末がキーワード検索によって前記サーバから所望のファイルの集合を取得する検索方法であって、
前記ユーザ端末が、暗号化の秘密鍵を使って複数のファイルをそれぞれ暗号化し、前記複数の暗号ファイルを前記サーバに保管するステップと、
前記ユーザ端末が、キーワードと該キーワードを含む全ての暗号ファイルの集合との生成用組に対して所定の生成アルゴリズムに従って検証情報を生成するステップと、
前記ユーザ端末が、前記生成した検証情報を前記サーバに保管するステップと、
前記ユーザ端末が、前記暗号化の秘密鍵を使って検索キーワードを暗号化して得られる暗号検索キーワードを前記サーバへ送って、前記サーバから前記暗号検索キーワードを含む暗号ファイルの集合と前記検索キーワードに対応する検証情報とを取得するステップと、
前記ユーザ端末が、前記取得した検証情報が、前記検索キーワードと前記取得した暗号ファイルの集合との検証用組の検証情報であるか否かを所定の検証アルゴリズムによってチェックするステップと、
前記ユーザ端末が、チェックの結果が正しければ承認して前記取得した暗号ファイルの集合を復号して前記所望のファイルの集合を得、そうでなければ拒否するステップと、
を含む検索方法。
【請求項10】
サーバに複数の暗号ファイルを保管し、キーワード検索によって前記サーバから所望のファイルの集合を取得する処理を、コンピュータであるユーザ端末に実行させる検索プログラムであって、前記コンピュータに、
暗号化の秘密鍵を使って複数のファイルをそれぞれ暗号化し、前記複数の暗号ファイルを前記サーバに保管する手順と、
キーワードと該キーワードを含む全ての暗号ファイルの集合との生成用組に対して所定の生成アルゴリズムに従って検証情報を生成する手順と、
前記生成した検証情報を前記サーバに保管する手順と、
前記暗号化の秘密鍵を使って検索キーワードを暗号化して得られる暗号検索キーワードを前記サーバへ送って、前記サーバから前記暗号検索キーワードを含む暗号ファイルの集合と前記検索キーワードに対応する検証情報とを取得する手順と、
前記取得した検証情報が、前記検索キーワードと前記取得した暗号ファイルの集合との検証用組の検証情報であるか否かを所定の検証アルゴリズムによってチェックする手順と、
チェックの結果が正しければ承認して前記取得した暗号ファイルの集合を復号して前記所望のファイルの集合を得、そうでなければ拒否する手順と、
を実行させるための検索プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、検索システム、検索方法、および、検索プログラムに関し、特に、キーワード検索におけるサーバの不正を検出可能な検索システム、検索方法、および、検索プログラムに関する。
【背景技術】
【0002】
この技術分野において周知のように、Yahoo!データボックスなどのデータストレージ(データ保管)サービスにおいては、ユーザ端末は、写真などの多くのファイルを(Yahoo!データボックスなどの)サーバに格納し、保管することができる。また、ユーザ端末は、ファイル名についてキーワード検索を行って、サーバから所望のファイルの集合を取得することもできる。尚、ユーザ端末は、クライアントとも呼ばれる。
【0003】
これに対して、非特許文献1は、ファイルおよびキーワード検索の際、サーバに対し内容を秘匿する暗号化検索方式を開示している。この暗号化検索方式は、ファイルとキーワードとを暗号化する方式である。
【0004】
一方、悪意のあるサーバ、あるいはウィルスに汚染されたサーバは、キーワード検索の際、対応する全てのファイルを正しく返すのではなく、ファイルの一部を削除、追加、改ざん、あるいはすり替えてしまう、といった不正を行うことが考えられる。
【0005】
この問題に対し、上記非特許文献1では、ファイルの削除、追加、改ざんをユーザ端末が検出できる検索システムを開示している。以下では、この非特許文献1に開示された検索システムを、「先行検索システム」と呼ぶことにする。
【0006】
尚、一般に、検索システムの動作は、ユーザ端末がファイルをサーバに格納する「格納フェーズ」と、ユーザ端末がサーバから所望のファイルを検索する「検索フェーズ」と、に分けられる。
【0007】
以下、先行検索システムの概略の動作について説明する。
【0008】
格納フェーズにおいて、ユーザ端末は、各ファイルDnの暗号文E(Dn)と当該暗号文のデジタル署名sign(E(Dn))とを一組(E(Dn), sign(E(Dn)))として、サーバに格納する。ここで、nは1以上N以下の整数であって(1≦n≦N)、Nはファイルの総数である。また、ユーザ端末は、各キーワードiを含むファイル数のデジタル署名Yiも、サーバに格納する。ここで、iはは1以上I以下の整数であって(1≦i≦I)、Iはキーワードの総数である。
【0009】
検索フェーズにおいて、ユーザ端末は、キーワードiの暗号文E(キーワードi)をサーバへ送る。そのとき、サーバは、キーワードiを含む各組(E(Dn), sign(E(Dn)))とその対応するデジタル署名Yiと、をユーザ端末へ返す。ユーザ端末では、返送された各組のデジタル署名sign(E(Dn))をチェックすることにより、当該ファイルDnの改ざんを検出することができる。また、ユーザ端末は、返送されたデジタル署名Yiをチェックすることにより、キーワードiを含むファイル数の変化を検出することができる。
【先行技術文献】
【非特許文献】
【0010】
【非特許文献1】Y.Chang and M. Mitzenmacher, “Privacy Preserving Keyword Searches on Remote Encrypted Data”, ACNS 2005: pp. 442-455 (2005)
【発明の概要】
【発明が解決しようとする課題】
【0011】
しかしながら、非特許文献1に開示された先行検索システムでは、サーバの不正として、ファイルのすり替えを検出することができない。その理由は、次の通りである。
【0012】
例えば、ファイルDnが別のファイルDmにすり替えられたとする(n≠m)。この場合、上記キーワードiの暗号文E(キーワードi)に応答して、サーバは、ユーザ端末へ各組(E(Dn), sign(E(Dn)))のいずれか1つを別の組(E(Dm), sign(E(Dm)))にすり替えて返送することになる。ユーザ端末では、上述したように、デジタル署名sign(E(Dn))またはsign(E(Dm))をチェックするだけなので、ファイルDnが別のファイルDmにすり替えられたのを判断することができない。また、ユーザ端末には、デジタル署名Yiが返送されるが、すり替えの場合はファイル数が変化しないので、正しいと判断してしまう。よって、ファイルのすり替えを自動的に検出することができない。
【0013】
尚、非特許文献1では、ユーザ自身が、人手により、ファイルDmがキーワードiを含むかをチェックすることにより、ファイルのすり替えをチェックできると記載(主張)している。しかしながら、ファイルDn、Dmが写真などの場合、そのようなチェックを行うことは不可能である。
【0014】
したがって本発明の目的は、サーバの不正として、ファイルの削除、追加、改ざんのみならず、ファイルのすり替えをも検出できる、検索システム、検索方法、および検索プログラムを提供することにある。
【課題を解決するための手段】
【0015】
本発明の第1の態様に係る検索システムは、ユーザ端末がサーバに複数のファイルを保管し、ユーザ端末がキーワード検索によってサーバから所望のファイルの集合を取得する検索システムであって、ユーザ端末は、複数のファイルをサーバに保管するファイル保管手段と、キーワードと当該キーワードを含む全てのファイルの集合との生成用組に対して所定の生成アルゴリズムに従って検証情報を生成し、この生成した検証情報をサーバに保管する検証情報生成部と、検索キーワードをサーバへ送って、サーバから検索キーワードを含むファイルの集合と検索キーワードに対応する検証情報とを取得するファイル取得手段と、この取得した検証情報が、検索キーワードと取得したファイルの集合との検証用組の検証情報であるか否かを所定の検証アルゴリズムによってチェックし、チェックの結果が正しければ承認して取得したファイルの集合を所望のファイルの集合として得、そうでなければ拒否する検証部と、を備える。
【0016】
本発明の第2の態様による検索システムは、ユーザ端末がサーバに複数の暗号ファイルを保管し、ユーザ端末がキーワード検索によってサーバから所望のファイルの集合を取得する検索システムであって、ユーザ端末は、暗号化の秘密鍵を使って複数のファイルをそれぞれ暗号化し、複数の暗号ファイルをサーバに保管する暗号ファイル保管手段と、キーワードと当該キーワードを含む全ての暗号ファイルの集合との生成用組に対して所定の生成アルゴリズムに従って検証情報を生成し、その生成した検証情報をサーバに保管する検証情報生成部と、暗号化の秘密鍵を使って検索キーワードを暗号化して得られる暗号検索キーワードをサーバへ送って、サーバから暗号検索キーワードを含む暗号ファイルの集合と検索キーワードに対応する検証情報とを取得する暗号ファイル取得手段と、その取得した検証情報が、検索キーワードと取得した暗号ファイルの集合との検証用組の検証情報であるか否かを所定の検証アルゴリズムによってチェックし、チェックの結果が正しければ承認して取得した暗号ファイルの集合を復号して所望のファイルの集合を得、そうでなければ拒否する検証部と、を備える。
【発明の効果】
【0017】
本発明では、キーワードと当該キーワードを含む全てのファイル(暗号ファイル)の集合との生成用組に対して所定のアルゴリズムに従って検証情報を生成し、その生成した検証情報をサーバに保管しているので、サーバの不正として、ファイルの削除、追加、改ざんばかりでなく、ファイルのすり替えをも検出することができる。
【図面の簡単な説明】
【0018】
図1】本発明の第1の実施形態に係る検索システムの格納フェーズの動作を説明するための概略ブロック図である。
図2】本発明の第1の実施形態に係る検索システムの検索フェーズの動作を説明するための概略ブロック図である。
図3】本発明の第2の実施形態に係る検索システムの格納フェーズの動作を説明するための概略ブロック図である。
図4】本発明の第2の実施形態に係る検索システムの検索フェーズの動作を説明するための概略ブロック図である。
図5】本発明の第3の実施形態に係る検索システムの格納フェーズの動作を説明するための概略ブロック図である。
図6】本発明の第3の実施形態に係る検索システムの検索フェーズの動作を説明するための概略ブロック図である。
図7】本発明の第4の実施形態に係る検索システムの格納フェーズの動作を説明するための概略ブロック図である。
図8】本発明の第4の実施形態に係る検索システムの検索フェーズの動作を説明するための概略ブロック図である。
図9】本発明の第1の実施例に係る検索システムの構成を示すブロック図である。
図10図9に示した検索システムに使用される索引の一具体例を示す図である。
図11図9に示した検索システムに使用される、クライアントの検証情報生成部の動作を説明するためのフローチャートである。
図12図11に示した検証情報生成部の動作の一具体例を示す図である。
図13図9に示した検索システムに使用される、クライアントの検証部の動作を説明するためのフローチャートである。
図14図13に示した検証部の動作の一具体例を示す図である。
図15】本発明の第2の実施例に係る検索システムの構成を示すブロック図である。
図16図15に示した検索システムに使用される索引の一具体例を示す図である。
図17図15に示した検索システムに使用される、クライアントの検証情報生成部の動作を説明するためのフローチャートである。
図18図17に示した検証情報生成部の動作の一具体例を示す図である。
図19図15に示した検索システムに使用される、クライアントの検証部の動作を説明するためのフローチャートである。
図20図19に示した検証部の動作の一具体例を示す図である。
【発明を実施するための形態】
【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を下記の数式のようにおく。
={ファイルj|ファイルjはキーワードiを含む}
【0039】
ユーザ端末200は、秘密鍵skを使い、キーワードiと当該キーワードiを含む全てのファイルの集合Pとの生成用組(キーワードi、P)に対するデジタル署名σを、署名生成アルゴリズムに従って下記の数式のように生成する。
σ=sign{キーワードi、P
【0040】
そして、ユーザ端末200は、この生成したデジタル署名σをサーバ300に保管する。
【0041】
次に、図2を参照して、本発明の第1の実施形態に係る検索システム100における検索フェーズについて説明する。
【0042】
検索フェーズにおいて、ユーザ端末200のユーザがキーワードiについて検索したいと仮定する。したがって、キーワードiが検索キーワードiである。
【0043】
この場合、ユーザ端末200は、検索キーワードiをサーバ300に送る。図2では、検索キーワードとしてキーワード1をサーバ300に送る場合の例を示している。この例では、キーワード1を含むファイルの集合Pが、以下の数式であるとしている。
={ファイル2、ファイル5}
【0044】
したがって、そのデジタル署名σは、以下の数式で表わされる。
σ=sign(キーワード1、ファイル2、ファイル5)
【0045】
サーバ300は、検索キーワードiを含むファイルの集合Pと当該検索キーワードiに対応するデジタル署名σとをユーザ端末200へ返す。したがって、ユーザ端末200は、ファイルの集合Pとデジタル署名σとを取得する。
【0046】
次に、ユーザ端末200は、公開鍵vkを使い、取得したデジタル署名σが検索キーワードiと取得したファイルの集合Pとの検証用組(キーワードi、P)のデジタル署名であるか否かを、署名生成アルゴリズムに従ってチェックする。ユーザ端末200は、チェックの結果が正しければ、承認して(accept)、取得したファイルの集合Pを所望のファイルの集合として得、そうでなければ拒否する(reject)。
【0047】
このように、本発明の第1の実施形態では、ユーザ端末200が各キーワードiと当該キーワードiを含む全てのファイルの集合Pとを一組(生成用組)として、それに対するデジタル署名σを生成し、生成したデジタル署名σをサーバ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を下記の数式のようにおく。
={ファイルj|ファイルjはキーワードiを含む}
【0055】
ユーザ端末200Aは、MACの秘密鍵Kを使い、キーワードiと当該キーワードiを含む全てのファイルの集合Pとの生成用組(キーワードi、P)に対する認証子Tagを、MAC生成アルゴリズムに従って、下記の数式によって生成する。
Tag=sign{キーワードi、P
【0056】
そして、ユーザ端末200Aは、この生成した認証子Tagをサーバ300Aに保管する。
【0057】
次に、図4を参照して、本発明の第2の実施形態に係る検索システム100Aにおける検索フェーズについて説明する。
【0058】
検索フェーズにおいて、ユーザ端末200Aのユーザがキーワードiについて検索したいと仮定する。したがって、キーワードiが検索キーワードiである。
【0059】
この場合、ユーザ端末200Aは、検索キーワードiをサーバ300に送る。図4では、ユーザ端末200Aが検索キーワードとしてキーワード1をサーバ300Aに送る場合の例を示している。この例では、キーワード1を含むファイルの集合Pが、下記の数式であるとしている。
={ファイル2、ファイル5}
【0060】
したがって、その認証子Tagは、下記の数式で表わされる。
Tag=sign(キーワード1、ファイル2、ファイル5)
【0061】
サーバ300Aは、検索キーワードiを含むファイルの集合Pと、当該検索キーワードiに対応する認証子Tagとをユーザ端末200Aへ返す。したがって、ユーザ端末200Aは、ファイルの集合Pと認証子Tagと取得する。
【0062】
ユーザ端末200Aは、MACの秘密鍵Kを使い、取得した認証子Tagが、検索キーワードiと取得したファイルの集合Pとの検証用組(キーワードi、P)の認証子であるか否かを、MAC検証アルゴリズムに従ってチェックする。ユーザ端末200Aは、チェックの結果が正しければ、承認して(accept)、取得したファイルの集合Pを所望のファイルの集合として得、そうでなければ拒否する(reject)。
【0063】
このように、本発明の第2の実施形態では、ユーザ端末200Aが各キーワードiと当該キーワードiを含む全てのファイルの集合Pとを一組(生成用組)として、それに対する認証子Tagを生成して、生成した認証子Tagをサーバ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を、下記の数式のようにおく。
={E(ファイルj)|ファイルjはキーワードiを含む}
【0072】
ユーザ端末200Bは、デジタル署名の秘密鍵skを使い、キーワードiと当該キーワードiを含む全ての暗号ファイルの集合Qとの生成用組(キーワードi、Q)に対するデジタル署名σを、署名生成アルゴリズムに従って、下記の数式のように生成する。
σ=sign{キーワードi、Q
【0073】
そして、ユーザ端末200Bは、この生成したデジタル署名σをサーバ300Bに保管する。
【0074】
その代わりに、ユーザ端末200Bは、デジタル署名の秘密鍵skを使い、暗号化の秘密鍵Kを使ってキーワードiを暗号化して得られる暗号キーワードE’(キーワードi)と当該暗号キーワードE’(キーワードi)を含む全ての暗号ファイルの集合Qとの生成用組(E’(キーワードi)、Q)に対するデジタル署名σを、署名生成アルゴリズムに従って、下記の数式のように生成し、
σ=sign{E’(キーワードi)、Q
この生成したデジタル署名σをサーバ300Bに保管してもよい。
【0075】
次に、図6を参照して、本発明の第3の実施形態に係る検索システム100Bにおける検索フェーズについて説明する。
【0076】
検索フェーズにおいて、ユーザ端末200Bのユーザがキーワードiについて検索したいと仮定する。したがって、キーワードiが検索キーワードiである。
【0077】
この場合、ユーザ端末200Bは、暗号化の秘密鍵Kを使って検索キーワードiを暗号化して得られる暗号検索キーワードE’(キーワードi)をサーバ300Bに送る。図6では、検索キーワードとしてキーワード1の暗号文である暗号検索キーワードE’(キーワード1)をサーバ300Bに送る場合の例を示している。この例では、キーワード1を含むファイルの暗号文(暗号ファイル)の集合Qが、下記の数式であるとしている。
={E(ファイル2)、E(ファイル5)}
【0078】
したがって、そのデジタル署名σは、下記の数式で表わされる。
σ=sign(キーワード1、E(ファイル2)、E(ファイル5))
【0079】
または、そのデジタル署名σは、下記の数式で表わされる。
σ=sign(E’(キーワード1)、E(ファイル2)、E(ファイル5))
【0080】
サーバ300Bは、キーワードiを含むファイルの暗号文(暗号ファイル)の集合Qとそのデジタル署名σとをユーザ端末200Bへ返す。したがって、ユーザ端末200Bは、暗号ファイルの集合Qとそのデジタル署名σとを取得する。
【0081】
ユーザ端末200Bは、デジタル署名の公開鍵vkを使い、取得したデジタル署名σが、検索キーワードiと取得した暗号ファイルの集合Qとの検証用組(キーワードi、Q)のデジタル署名であるか否かを、署名検証アルゴリズムに従ってチェックする。
【0082】
或いは、ユーザ端末200Bは、デジタル署名の公開鍵vkを使い、取得したデジタル署名σが、暗号検索キーワード(E’(キーワードi)と取得した暗号ファイルの集合Qとの検証用組(E’(キーワードi)、Q)のデジタル署名であるか否かを、署名検証アルゴリズムに従ってチェックする。
【0083】
ユーザ端末200Bは、チェックした結果が正しければ、承認して(accept)、取得した暗号ファイルの集合Qを復号して所望のファイルの集合Pを得、そうでなければ拒否する(reject)。
【0084】
このように、本発明の第3の実施形態では、ユーザ端末200Bが各キーワードi(又は暗号キーワード)と当該キーワードi(又は暗号キーワード)を含む全てのファイルの暗号文(暗号ファイル)の集合Qとを一組(生成用組)として、それに対するデジタル署名σを生成し、生成したデジタル署名σをサーバ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を下記の数式のようにおく。
={E(ファイルj)|ファイルjはキーワードiを含む}
【0092】
ユーザ端末200Cは、MACの秘密鍵K1を使い、キーワードiと当該キーワードiを含む全ての暗号ファイルの集合Qとの生成用組(キーワードi、Q)に対する認証子Tagを、MAC生成アルゴリズムに従って、下記の数式のように生成する。
Tag=sign{キーワードi、Q
【0093】
そして、ユーザ端末200Cは、この生成した認証子Tagをサーバ300Cに保管する。
【0094】
その代わりに、ユーザ端末200Cは、MACの秘密鍵K1を使い、暗号化の暗号鍵K0を使ってキーワードiを暗号化して得られる暗号キーワードE’(キーワードi)と当該暗号キーワードE’(キーワードi)を含む全ての暗号ファイルの集合Qとの生成用組(E’(キーワードi)、Q)に対する認証子Tagを、MAC生成アルゴリズムに従って、下記の数式のように生成し、
Tag=sign{E’(キーワードi)、Q
この生成した認証子Tagをサーバ300Cに保管してもよい。
【0095】
次に、図8を参照して、本発明の第4の実施形態に係る検索システム100Cにおける検索フェーズについて説明する。
【0096】
検索フェーズにおいて、ユーザ端末200Cのユーザがキーワードiについて検索したいと仮定する。したがって、キーワードiが検索キーワードiである。
【0097】
この場合、ユーザ端末200Cは、暗号化の秘密鍵K0を使って検索キーワードiを暗号して得られる暗号検索キーワードE’(キーワードi)をサーバ300Cに送る。図8では、検索キーワードとしてキーワード1の暗号文である暗号検索キーワードE’(キーワード1)をサーバ300Aに送る場合の例を示している。この例では、キーワード1を含むファイルの暗号文(暗号ファイル)の集合Qが、下記の数式であるとしている。
={E(ファイル2)、E(ファイル5)}
【0098】
したがって、その認証子Tagは、下記の数式で表わされる。
Tag
sign(キーワード1、E(ファイル2)、E(ファイル5))
【0099】
または、その認証子Tagは、下記の数式で表わされる。
Tag
sign(E’(キーワード1)、E(ファイル2)、E(ファイル5))
【0100】
サーバ300Cは、検索キーワードiを含むファイルの暗号文(暗号ファイル)の集合Qとその認証子Tagとをユーザ端末200Cへ返す。したがって、ユーザ端末200Cは、暗号ファイルの集合Qとその認証子Tagとを取得する。
【0101】
ユーザ端末200Cは、MACの秘密鍵K1を使い、取得した認証子Tagが、検索キーワードiと取得した暗号ファイルの集合Qとの検証用組(キーワードi、Q)の認証子であるか否かを、MAC検証アルゴリズムに従ってチェックする。
【0102】
或いは、ユーザ端末200Cは、MACの秘密鍵K1を使い、取得した認証子Tagが、暗号検索キーワードE’(キーワードi)と取得した暗号ファイルの集合Qとの検証用組(E’(キーワードi)、Q)の認証子であるか否かを、MAC検証アルゴリズムに従ってチェックする。
【0103】
ユーザ端末200Cは、チェックした結果が正しければ、承認して(accept)、取得した暗号ファイルの集合Qを復号して所望のファイルの集合Pを得、そうでなければ拒否する(reject)。
【0104】
このように、本発明の第4の実施形態では、ユーザ端末200Cが各キーワードi(又は暗号キーワード)と当該キーワードi(又は暗号キーワード)を含む全てのファイルの暗号文(暗号ファイル)の集合Qとを一組(生成用組)として、それに対する認証子Tagを生成し、生成した認証子Tagをサーバ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について以下の処理を実行する(ステップS120)。ここでは、キーワードWに対応するファイル番号を(i1、i2、…)とする。この場合、検索情報生成部230は、MACの秘密鍵Kを使い、生成用組(W、Di1、Di2、…)に対応する認証子Tagを下記の数式によって計算する。
Tag=f(W、Di1、Di2、…)
ここで、fはMAC生成アルゴリズムである。
【0115】
尚、検証情報として、認証子Tagの代わりにデジタル署名σを使用する場合、fは署名生成アルゴリズムであって、検索情報生成部230は、MACの秘密鍵Kの代わりにデジタル署名の秘密鍵skを使用し、生成用組(W、Di1、Di2、…)に対応するデジタル署名σを下記の数式によって計算する。
σ=fsk(W、Di1、Di2、…)
【0116】
検索情報生成部230は、計算して得られた検証情報(Tag、Tag、…)を出力する(ステップS130)。これら検証情報(認証子)は、サーバ300Dに送られ、サーバ300Dは、これら検証情報(認証子)を記憶領域310に記憶する。
【0117】
次に、図12を参照して、検証情報生成部230の動作について具体例を挙げて説明する。ここでは、キーワードが索引番号2の「茨城大学」である場合を例に挙げて説明する。
【0118】
この場合、検証情報生成部230は、索引を参照して、キーワード「茨城大学」を含む、該当するファイルの集合を選択する。この場合、索引番号2のファイル番号には、「3」、「6」、「10」が記憶されているので、検索情報生成部230は、該当ファイルの集合Pとして、ファイルD3、D6、およびD10を選択する。
【0119】
そして、検証情報生成部230は、MACの秘密鍵Kを使い、生成用組(茨城大学、D3、D6、D10)に対する検証情報(認証子)Tagを、MAC生成アルゴリズムに従って、下記数式で示されるように生成する。
Tag=f(茨城大学、D3、D6、D10)
【0120】
検証情報生成部230は、このようにして、キーワードi毎の検証情報(認証子)Tagを生成する。生成された検証情報(認証子)Tagは、サーバ300Dへ送られ、サーバ300Dは、送られてきた検証情報(認証子)Tagを記憶領域310に記憶する。
【0121】
尚、検証情報がデジタル署名σの場合、サーバ300Dはデジタル署名σを記憶領域310に記憶する。
【0122】
検索時、クライアント200Dは、検索キーワードWを第3の信号線(伝送線)280を介してサーバ300Dに送る。サーバ300Dにおいては、検索キーワードWに応答して、検索部320は、その検索キーワードWを含むファイルの集合P=(Di1、Di2、…)とその検証情報(認証子)Tagとをクライアント200Dへ返す。したがって、クライアント200Dは、ファイルの集合P=(Di1、Di2、…)とその検証情報(認証子)Tagとを取得する。すなわち、第2の信号線(伝送線)280は、検索キーワードWをサーバ300Dへ送って、サーバ300Dから、検索キーワードWを含むファイルの集合P=(Di1、Di2、…)とその検証情報(認証子)Tagとを取得するファイル取得手段として働く。
【0123】
次に、図13を参照して、クライアント200Dの検証部240の動作について説明する。
【0124】
検証部240は、秘密鍵保持部220に保持されたMACの秘密鍵Kと、検索キーワードWとを読み込む(ステップS210)。次に、検証部240は、サーバ300Dから送られてきたファイルの集合P=(Di1、Di2、…)とその検証情報(認証子)Tagとを読み込む(ステップS220)。
【0125】
検証部240は、MACの秘密鍵Kを使い、検証情報(認証子)Tagが検証用組(W、Di1、Di2、…)の認証子であるか否かを、MAC検証アルゴリズムに従って、下記の数式に示されるように計算する(ステップS230)。
Verify(W、Di1、Di2、…、Tag)=accept or reject
【0126】
検証部240は、acceptなら(ステップS240のYes)、取得したファイルの集合P=(Di1、Di2、…)を所望のファイルの集合として出力し(ステップS250)、rejectなら(ステップS240のNo)、rejectを出力する(ステップS260)。
【0127】
尚、検証情報がデジタル署名σである場合、検証部240は、デジタル署名の公開鍵(検証鍵)vkを使い、デジタル署名σが、検証用組(W、Di1、Di2、…)の認証子であるか否かを、署名検証アルゴリズムに従って、下記の数式に示されるように計算する。
Verifyvk(W、Di1、Di2、…、σ)=accept or reject
【0128】
次に、図14を参照して、検証部240の動作について具体例を挙げて説明する。ここでは、検索キーワードWが索引番号2の「茨城大学」である場合を例に挙げて説明する。
【0129】
この場合、検証部240は、秘密鍵保持部220からMACの秘密鍵Kを読み込み、検索キーワードとして「茨城大学」を読み込み、サーバ300Dから送られてきた、ファイルの集合P=(D3、D6、D10)と検証情報(認証子)Tagとを読み込む。
【0130】
そして、検証部240は、MACの秘密鍵Kを使い、検証情報(認証子)Tagが検証用組(茨城大学、D3、D6、D10)の認証子であるか否かを、MAC検証アルゴリズムに従って、下記の数式に示されるように計算する。
Verify(茨城大学、D3、D6、D10、Tag)=accept or reject
【0131】
検証部240は、acceptなら、取得したファイルの集合P=(D3、D6、D10)を所望のファイルの集合として出力し、rejectなら、rejectを出力する。
【0132】
次に、本第1の実施例の効果について説明する。
【0133】
本第1の実施例の検索システム100Dは、サーバ300Dの不正として、ファイルの削除、追加、改ざんのみならず、ファイルのすり替えをも検出できる。その理由は、クライアント(ユーザ端末)200Dが各キーワードWと当該キーワードWを含む全てのファイルの集合P=(Di1、Di2、…)とを一組(生成用組)として、それに対する検証情報Tag(又はσ)を生成し、生成した検証情報Tag(又はσ)をサーバ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について以下の処理を実行する(ステップS120A)。ここでは、キーワードWに対応するファイル番号を(i1、i2、…)とする。この場合、検索情報生成部230は、MACの秘密鍵K1を使い、生成用組(W、E(Di1)、E(Di2)、…)に対応する検証情報(認証子)Tagを下記の数式のように計算する。
Tag=fK1(W、E(Di1)、E(Di2)、…)
ここで、fはMAC生成アルゴリズムである。
【0147】
尚、検証情報として、認証子Tagの代わりにデジタル署名σを使用する場合、fは署名生成アルゴリズムであって、検証情報生成部230Aは、MACの暗号鍵K1の代わりにデジタル署名の秘密鍵skを使用して、生成用組(W、E(Di1)、E(Di2)、…)に対応するデジタル署名σを下記の数式のように計算する。
σ=fsk(W、E(Di1)、E(Di2)、…)
【0148】
検索情報生成部230Aは、計算して得られた検証情報(Tag、Tag、…)を出力する(ステップS130A)。これら検証情報(認証子)は、サーバ300Eに送られ、サーバ300Eは、これら検証情報(認証子)を記憶領域310に記憶する。
【0149】
次に、図18を参照して、検証情報生成部230Aの動作について具体例を挙げて説明する。ここでは、キーワードが索引番号2の「茨城大学」である場合を例に挙げて説明する。
【0150】
この場合、検証情報生成部230Aは、索引を参照して、キーワード「茨城大学」を含む、該当する暗号化されたファイル(暗号ファイル)の集合Qを選択する。この場合、索引番号2のファイル番号には、「3」、「6」、「10」が記憶されているので、検索情報生成部230Aは、該当暗号ファイルの集合Qとして、暗号ファイルE(D3)、E(D6)、およびE(D10)を選択する。
【0151】
そして、検証情報生成部230Aは、MACの秘密鍵K1を使い、生成用組(茨城大学、E(D3)、E(D6)、E(D10))に対する検証情報(認証子)Tagを、MAC生成アルゴリズムに従って、下記数式で示されるように生成する。
Tag=fK1(茨城大学、E(D3)、E(D6)、E(D10))
【0152】
検証情報生成部230Aは、このようにして、キーワードi毎の検証情報(認証子)Tagを生成する。生成された検証情報(認証子)Tagは、サーバ300Eへ送られ、サーバ300Eは、送られてきた検証情報(認証子)Tagを記憶領域310に記憶する。
【0153】
尚、検証情報がデジタル署名σの場合、サーバ300Eは、デジタル署名σを記憶領域310に記憶する。
【0154】
検索時、クライアント200Eでは、第3の暗号化部280Aが、暗号化の秘密鍵K0を使って検索キーワードWを暗号化し、暗号検索キーワードE’(W)をサーバ300Eに送る。サーバ300Eにおいては、暗号検索キーワードE’(W)に応答して、検索部320は、その検索キーワードWを含む暗号ファイルの集合Q=(E(Di1)、E(Di2)、…)とその検証情報(認証子)Tagとをクライアント200Eへ返す。したがって、クライアント200Eは、暗号ファイルの集合Q=(E(Di1)、E(Di2)、…)とその検証情報(認証子)Tagとを取得する。すなわち、第3の暗号化部280Aは、暗号化の秘密鍵K0を使って検索キーワードWを暗号化して得られる暗号検索キーワードE’(W)をサーバ300Eへ送って、サーバ300Eから、暗号ファイルの集合Q=(E(Di1)、E(Di2)、…)と検索キーワードWに対応する検証情報(認証子)Tagとを取得する暗号ファイル取得手段として働く。
【0155】
次に、図19を参照して、クライアント200Eの検証部240Aの動作について説明する。
【0156】
検証部240Aは、秘密鍵保持部220Aに保持されたMACの秘密鍵K1と、検索キーワードWとを読み込む(ステップS210A)。次に、検証部240Aは、サーバ300Eから送られてきた暗号ファイルの集合Qである暗号ファイル(E(Di1)、E(Di2)、…)とその検証情報(認証子)Tagとを読み込む(ステップS220A)。
【0157】
検証部240Aは、MACの秘密鍵K1を使い、検証情報(認証子)Tagが検証用組(W、E(Di1)、E(Di2)、…)の認証子であるか否かを、MAC検証アルゴリズムに従って、下記の数式に示されるように計算する(S230A)。
VerifyK1(W、E(Di1)、E(Di2)、…、Tag)=accept or reject
【0158】
検証部240Aは、計算結果がacceptなら(ステップS240AのYes)、取得した暗号ファイルの集合Q=(E(Di1)、E(Di2)、…)を復号して、所望のファイルの集合P=(Di1、Di2、…)を出力し(ステップS250A)、rejectなら(ステップS240AのNo)、rejectを出力する(ステップS260A)。
【0159】
尚、検証情報がデジタル署名σである場合、検証部240Aは、デジタル署名の公開鍵vkを使い、デジタル署名σが検証用組(W、E(Di1)、E(Di2)、…)のデジタル署名であるか否かを、署名検証アルゴリズムに従って、下記の数式に示されるように計算する。
Verifyvk(W、E(Di1)、E(Di2)、…、σ)=accept or reject
【0160】
次に、図20を参照して、検証部240Aの動作について具体例を挙げて説明する。ここでは、検索キーワードWが索引番号2の「茨城大学」である場合を例に挙げて説明する。
【0161】
この場合、検証部240Aは、秘密鍵保持部220AからMACの秘密鍵K1を読み込み、検索キーワードとして「茨城大学」を読み込み、サーバ300Eから送られてきた、暗号ファイルの集合Qである暗号ファイル(E(D3)、E(D6)、E(D10))と検証情報(認証子)Tagとを読み込む。
【0162】
そして、検証部240Aは、MACの秘密鍵K1を使い、検証情報(認証子)Tagが検証用組(茨城大学、E(D3)、E(D6)、E(D10))の認証子であるか否かを、MAC検証アルゴリズムに従って下記の数式のように計算する。
VerifyK1(茨城大学、E(D3)、E(D6)、E(D10)、Tag
=accept or reject
【0163】
検証部240Aは、計算結果がacceptなら、暗号ファイルの集合Q=(E(D3)、E(D6)、E(D10))を復号して、所望のファイルの集合P=(D3、D6、D10)を出力し、rejectなら、rejectを出力する。
【0164】
次に、本第2の実施例の効果について説明する。
【0165】
本第2の実施例の検索システム100Eは、サーバの不正として、ファイルの削除、追加、改ざんばかりでなく、ファイルのすり替えも検出することができる。その理由は、クライアント(ユーザ端末)200Eが各キーワードWと当該キーワードWを含む全てのファイルを暗号化して得られる暗号ファイルの集合Q={E(Di1、E(Di2)、…}とを一組(生成用組)として、それに対する検証情報Tag(又はσ)を生成し、生成した検証情報Tag(又はσ)をサーバ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に記載の検索プログラム。
【産業上の利用可能性】
【0189】
本発明は、キーワード検索におけるサーバの不正を検出する方式に利用可能である。
【符号の説明】
【0190】
100、100A、100B、100C、100D、100E 検索システム
200、200A、200B、200C ユーザ端末
200D、200E クライアント
210、210A 秘密鍵生成部
220、220A 秘密鍵保持部
230、230A 検証情報生成部
240、240A 検証部
260 第1の信号線(ファイル保管手段)
260A 第1の暗号化部(暗号ファイル保管手段)
270 第2の信号線(索引保管手段)
270A 第2の暗号化部(暗号索引保管手段)
280 第3の信号線(ファイル取得手段)
280A 第3の暗号化部(暗号ファイル取得手段)
300、300A、300B、300C、300D、300E サーバ
310 記憶領域
320 検索部
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17
図18
図19
図20