(57)【要約】  管理装置（５００）は、暗号化タグ（Ｃ（Ｄ））と暗号化データとを対応付けて保管する。検索装置（４００）は、管理装置（５００）に保管されている暗号化データを検索する検索キーワード（ｓ）を取得すると、検索キーワード（ｓ）から一意に定まる確定的情報（ｔ）を算出し、検索キーワード（ｓ）に対し確定的情報（ｔ）を用いて確率暗号方式の暗号化を実行することにより検索クエリ（Ｑ（ｓ））を生成する。検索装置（４００）は、検索クエリ（Ｑ（ｓ））を管理装置（５００）に送信する。管理装置（５００）は、検索装置（４００）から検索クエリ（Ｑ（ｓ））を受信すると、検索クエリ（Ｑ（ｓ））を復号して得られる検索キーワード（ｓ）が、管理装置（５００）に保管されている暗号化タグ（ｃ）を復号して得られる関連キーワードと一致するか否かを判定する。
2017122696.tif 000002
【特許請求の範囲】
【請求項１】
記憶装置である管理記憶部を備え、保管データが暗号化された暗号化データと、前記保管データに関連付けられた関連キーワードに対し確率暗号方式の暗号化を実行することにより生成された暗号化タグとを受信し、前記暗号化タグと前記暗号化データとを対応付けて前記管理記憶部に保管する管理装置と、
前記管理記憶部に保管されている前記暗号化データを検索する検索キーワードを取得すると、前記検索キーワードから一意に定まる確定的情報を算出し、前記検索キーワードに対し前記確定的情報を用いて確率暗号方式の暗号化を実行することにより検索クエリを生成し、前記検索クエリを前記管理装置に送信する検索装置と
を備え、
前記管理装置は、
前記検索装置から前記検索クエリを受信すると、前記検索クエリを復号して得られる前記検索キーワードが、前記管理記憶部に保管されている前記暗号化タグを復号して得られる関連キーワードと一致するか否かを判定する秘匿検索システム。
【請求項２】
前記管理装置は、
前記検索クエリを復号して得られる前記検索キーワードが、前記暗号化タグを復号して得られる関連キーワードと一致した場合、前記暗号化タグに対応する前記暗号化データを含む検索結果を前記検索装置に送信し、
前記検索装置は、
記憶装置である検索記憶部を備え、前記管理装置から前記検索結果を受信すると、前記確定的情報を前記検索記憶部に蓄積する請求項１に記載の秘匿検索システム。
【請求項３】
前記管理装置は、
前記検索クエリを復号して得られる前記検索キーワードが、前記暗号化タグを復号して得られる関連キーワードと一致した場合、前記検索クエリを復号して得られる前記確定的情報と前記暗号化タグに対応する前記暗号化データとを対応付けて前記管理記憶部に記憶する請求項２に記載の秘匿検索システム。
【請求項４】
前記検索装置は、
前記確定的情報を算出すると、前記確定的情報が前記検索記憶部に蓄積されているか否かを判定し、前記確定的情報が前記検索記憶部に蓄積されていない場合に前記検索クエリを前記管理装置に送信し、前記確定的情報が前記検索記憶部に蓄積されている場合に前記確定的情報を前記管理装置に送信し、
前記管理装置は、
前記検索装置から前記確定的情報を受信すると、前記確定的情報に対応する前記暗号化データを前記管理記憶部から取得し、取得した前記暗号化データを含む前記検索結果を前記検索装置に送信する請求項３に記載の秘匿検索システム。
【請求項５】
前記検索装置は、
前記検索キーワードに対して確定暗号方式の暗号化を実行することにより前記確定的情報を算出する請求項１から４のいずれか１項に記載の秘匿検索システム。
【請求項６】
前記検索装置は、
前記検索キーワードを暗号化する際に前記確定的情報を用いるか否かを指示する確定的指示を取得し、前記確定的指示により前記確定的情報を用いると指示された場合、前記検索キーワードに対し前記確定的情報を用いて確率暗号方式の暗号化を実行し、前記確定的指示により前記確定的情報を用いないと指示された場合、前記検索キーワードに対し前記確定的情報を用いずに確率暗号方式の暗号化を実行する請求項１から５のいずれか１項に記載の秘匿検索システム。
【請求項７】
前記秘匿検索システムは、さらに、
第１乱数を生成し、前記第１乱数を用いて、前記関連キーワードに対し確率暗号方式の暗号化を実行することにより前記暗号化タグを生成し、前記暗号化タグと前記暗号化データとを前記管理装置に送信すると共に、前記第１乱数を前記検索装置に送信する登録装置を備え、
前記検索装置は、
第２乱数を生成し、前記第２乱数と、前記登録装置から受信した前記第１乱数と、前記確定的情報とを用いて、前記検索キーワードに対し確率暗号方式の暗号化を実行する請求項１から６のいずれか１項に記載の秘匿検索システム。
【請求項８】
前記管理装置は、
前記管理記憶部に保管されている前記暗号化データを削除する削除要求を受信し、前記削除要求に基づいて前記管理記憶部から前記暗号化データを削除する請求項１から７のいずれか１項に記載の秘匿検索システム。
【請求項９】
記憶装置である管理記憶部を備えた管理装置と検索装置とを有する秘匿検索システムの秘匿検索方法において、
前記管理装置が、保管データが暗号化された暗号化データと、前記保管データに関連付けられた関連キーワードに対し確率暗号方式の暗号化を実行することにより生成された暗号化タグとを受信し、前記暗号化タグと前記暗号化データとを対応付けて前記管理記憶部に保管し、
前記検索装置が、前記管理記憶部に保管されている前記暗号化データを検索する検索キーワードを取得すると、前記検索キーワードから一意に定まる確定的情報を算出し、前記検索キーワードに対し前記確定的情報を用いて確率暗号方式の暗号化を実行することにより検索クエリを生成し、前記検索クエリを前記管理装置に送信し、
前記管理装置が、前記検索装置から前記検索クエリを受信すると、前記検索クエリを復号して得られる前記検索キーワードが、前記管理記憶部に保管されている前記暗号化タグを復号して得られる関連キーワードと一致するか否かを判定する秘匿検索方法。
【請求項１０】
記憶装置である管理記憶部を備えた管理装置と検索装置とを有する秘匿検索システムの秘匿検索プログラムにおいて、
保管データが暗号化された暗号化データと、前記保管データに関連付けられた関連キーワードに対し確率暗号方式の暗号化を実行することにより生成された暗号化タグとを受信し、前記暗号化タグと前記暗号化データとを対応付けて前記管理記憶部に保管するデータ保管処理と、
前記管理記憶部に保管されている前記暗号化データを検索する検索キーワードを取得すると、前記検索キーワードから一意に定まる確定的情報を算出し、前記検索キーワードに対し前記確定的情報を用いて確率暗号方式の暗号化を実行することにより検索クエリを生成し、前記検索クエリを前記管理装置に送信する検索クエリ生成処理と、
前記検索装置から前記検索クエリを受信すると、前記検索クエリを復号して得られる前記検索キーワードが、前記管理記憶部に保管されている前記暗号化タグを復号して得られる関連キーワードと一致するか否かを判定する判定処理と
をコンピュータに実行させる秘匿検索プログラム。
【請求項１１】
記憶装置である管理記憶部を備え、保管データが暗号化された暗号化データと、前記保管データに関連付けられた関連キーワードを暗号化して生成された暗号化タグとを受信し、前記暗号化タグと前記暗号化データとを対応付けて前記管理記憶部に保管する管理装置と、
前記管理記憶部に保管されている前記暗号化データを検索する検索キーワードを取得すると、前記検索キーワードから一意に定まる確定的情報を算出し、前記検索キーワードに対し前記確定的情報を用いて確率暗号方式の暗号化を実行することにより検索クエリを生成し、前記検索クエリを前記管理装置に送信する検索装置と
を備え、
前記管理装置は、
前記検索装置から前記検索クエリを受信すると、前記検索クエリを復号して得られる前記検索キーワードが、前記管理記憶部に保管されている前記暗号化タグを復号して得られる関連キーワードと一致するか否かを判定する秘匿検索システム。
【請求項１２】
前記管理装置は、
前記検索クエリを復号して得られる前記検索キーワードが、前記暗号化タグを復号して得られる関連キーワードと一致した場合、前記暗号化タグに対応する前記暗号化データを含む検索結果を前記検索装置に送信し、
前記検索装置は、
記憶装置である検索記憶部を備え、前記管理装置から前記検索結果を受信すると、前記確定的情報を前記検索記憶部に蓄積する請求項１１に記載の秘匿検索システム。
【請求項１３】
前記管理装置は、
前記検索クエリを復号して得られる前記検索キーワードが、前記暗号化タグを復号して得られる関連キーワードと一致した場合、前記検索クエリを復号して得られる前記確定的情報と前記暗号化タグに対応する前記暗号化データとを対応付けて前記管理記憶部に記憶する請求項１２に記載の秘匿検索システム。
【請求項１４】
前記検索装置は、
前記確定的情報を算出すると、前記確定的情報が前記検索記憶部に蓄積されているか否かを判定し、前記確定的情報が前記検索記憶部に蓄積されていない場合に前記検索クエリを前記管理装置に送信し、前記確定的情報が前記検索記憶部に蓄積されている場合に前記確定的情報を前記管理装置に送信し、
前記管理装置は、
前記検索装置から前記確定的情報を受信すると、前記確定的情報に対応する前記暗号化データを前記管理記憶部から取得し、取得した前記暗号化データを含む前記検索結果を前記検索装置に送信する請求項１３に記載の秘匿検索システム。
【請求項１５】
前記検索装置は、
前記検索キーワードに対して確定暗号方式の暗号化を実行することにより前記確定的情報を算出する請求項１１から１４のいずれか１項に記載の秘匿検索システム。
【請求項１６】
前記検索装置は、
前記検索キーワードを暗号化する際に前記確定的情報を用いるか否かを指示する確定的指示を取得し、前記確定的指示により前記確定的情報を用いると指示された場合、前記検索キーワードに対し前記確定的情報を用いて確率暗号方式の暗号化を実行し、前記確定的指示により前記確定的情報を用いないと指示された場合、前記検索キーワードに対し前記確定的情報を用いずに確率暗号方式の暗号化を実行する請求項１１から１５のいずれか１項に記載の秘匿検索システム。
【請求項１７】
前記秘匿検索システムは、さらに、
カウンタ値を生成し、前記カウンタ値を用いて、前記関連キーワードに対し暗号化を実行することにより前記暗号化タグを生成し、前記暗号化タグと前記暗号化データとを前記管理装置に送信する登録装置を備え、
前記検索装置は、
乱数を生成し、前記乱数と、前記登録装置で生成した前記カウンタ値とを用いて、前記検索キーワードに対し確率暗号方式の暗号化を実行する請求項１１から１６のいずれか１項に記載の秘匿検索システム。
【請求項１８】
前記検索装置は、
前記乱数と前記カウンタ値とを用いて、前記検索キーワードに対し確率暗号方式の暗号化を実行し、前記暗号化タグと一致判定される第１暗号文と、前記第１暗号文と一致した前記暗号化タグを用いて前記確定的情報を算出するための第２暗号文とを生成する請求項１７に記載の秘匿検索システム。
【請求項１９】
記憶装置である管理記憶部を備えた管理装置と検索装置とを有する秘匿検索システムの秘匿検索方法において、
前記管理装置が、保管データが暗号化された暗号化データと、前記保管データに関連付けられた関連キーワードを暗号化して生成された暗号化タグとを受信し、前記暗号化タグと前記暗号化データとを対応付けて前記管理記憶部に保管し、
前記検索装置が、前記管理記憶部に保管されている前記暗号化データを検索する検索キーワードを取得すると、前記検索キーワードから一意に定まる確定的情報を算出し、前記検索キーワードに対し前記確定的情報を用いて確率暗号方式の暗号化を実行することにより検索クエリを生成し、前記検索クエリを前記管理装置に送信し、
前記管理装置が、前記検索装置から前記検索クエリを受信すると、前記検索クエリを復号して得られる前記検索キーワードが、前記管理記憶部に保管されている前記暗号化タグを復号して得られる関連キーワードと一致するか否かを判定する秘匿検索方法。
【請求項２０】
記憶装置である管理記憶部を備えた管理装置と検索装置とを有する秘匿検索システムの秘匿検索プログラムにおいて、
保管データが暗号化された暗号化データと、前記保管データに関連付けられた関連キーワードを暗号化して生成された暗号化タグとを受信し、前記暗号化タグと前記暗号化データとを対応付けて前記管理記憶部に保管するデータ保管処理と、
前記管理記憶部に保管されている前記暗号化データを検索する検索キーワードを取得すると、前記検索キーワードから一意に定まる確定的情報を算出し、前記検索キーワードに対し前記確定的情報を用いて確率暗号方式の暗号化を実行することにより検索クエリを生成し、前記検索クエリを前記管理装置に送信する検索クエリ生成処理と、
前記検索装置から前記検索クエリを受信すると、前記検索クエリを復号して得られる前記検索キーワードが、前記管理記憶部に保管されている前記暗号化タグを復号して得られる関連キーワードと一致するか否かを判定する判定処理と
をコンピュータに実行させる秘匿検索プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、秘匿検索システム、秘匿検索方法及び秘匿検索プログラムに関する。
【背景技術】
【０００２】
秘匿検索とは、暗号化したままファイルを検索することができる技術である。クラウドサービスが普及し始めている現在において、安価かつ手間なく利用を開始することができるクラウドストレージが一般的になりつつある。ここで、クラッキング或いはクラウドの信頼性に対する懸念から、クラウドストレージ上ではファイルを暗号化して保管することが考えられる。秘匿検索は、暗号化されているファイルに対して、復号することなく検索できるため、安全性と機能性とを両立することが可能な技術である。【０００３】
秘匿検索では、２つの暗号化されたキーワードを用いて検索を実現する。１つ目は、暗号化ファイルに関連付ける暗号化キーワードで、以降では暗号化タグという。２つ目は、検索に用いるキーワードを暗号化したキーワードで、以降では暗号化クエリ或いは検索クエリという。秘匿検索では、この暗号化タグの集合に対し、検索クエリを用いて、復号することなく一致する暗号化タグを見つけることで、保管されているファイル或いは検索キーワードの情報を露出することなく検索を実現する。【０００４】
秘匿検索には、同じ検索キーワードに対して同じ暗号文を生成する確定的暗号化を用いる方式と同じ検索キーワードでも異なる暗号文を生成する確率的暗号化を用いる方式とがある。検索クエリが確定的な確定的暗号化を用いる秘匿検索は、暗号化されたまま検索キーワードの分布を得ることが可能なため、分布の偏りからキーワードを推測されてしまう可能性がある。このため、検索クエリが確率的な確率的暗号化を用いる秘匿検索は、確定的暗号化を用いる秘匿検索と比較して安全性が高い。しかし、一方で、検索クエリが確率的な秘匿検索は、検索クエリが確定的な秘匿検索と比較して検索処理が遅いという課題がある。【０００５】
検索クエリが確率的な秘匿検索の高速化手法として、特許文献１及び特許文献２がある。また、検索クエリが確定的な秘匿検索の高速化手法であるが、検索クエリが確定的であることを利用して、再検索を高速化する手法が非特許文献１に記されている。また、非特許文献２には、検索クエリが確定的暗号化により生成されていても、頻度分析攻撃に強い暗号化タグの構成法を開示している。【０００６】
特許文献１及び特許文献２では、検索キーワードに依存する確定的な値を暗号化クエリに含め、暗号化タグの集合にも同様に確定的な値を付加することで検索対象の暗号化タグを限定し、検索処理を高速化している。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２０１２−１６４０３１号公報
【特許文献２】特開２０１３−１５２５１２号公報
【非特許文献】
【０００８】
【非特許文献１】Ｆ．Ｈａｈｎ  ａｎｄ  Ｆ．Ｋｅｒｓｃｈｂａｕｍ．“Ｓｅａｒｃｈａｂｌｅ  Ｅｎｃｒｙｐｔｉｏｎ  ｗｉｔｈ  Ｓｅｃｕｒｅ  ａｎｄ  Ｅｆｆｉｃｉｅｎｔ  Ｕｐｄａｔｅｓ”．ＡＣＭ  ＣＣＳ  ２０１４．
【非特許文献２】Ｒ．Ｃｕｒｔｍｏｌａ  ｅｔ  ａｌ．，“Ｓｅａｒｃｈａｂｌｅ  Ｓｙｍｍｅｔｒｉｃ  Ｅｎｃｒｙｐｔｉｏｎ  Ｉｍｐｒｏｖｅｄ  Ｄｅｆｉｎｉｔｉｏｎｓ  ａｎｄ  Ｅｆｆｉｃｉｅｎｔ  Ｃｏｎｓｔｒｕｃｔｉｏｎｓ”，ＡＣＭ  ＣＣＳ  ２００６．
【発明の概要】
【発明が解決しようとする課題】
【０００９】
特許文献１及び特許文献２では、検索キーワードに依存する確定的な値を検索クエリに含め、暗号化タグの集合にも同様に確定的な値を付加している。このように、検索クエリ及び暗号化タグに、検索キーワードに依存する確定的な値を含んでいる点で、検索クエリが確率的であるとはいえず、検索処理高速化の代わりに安全性が低下するという課題がある。【００１０】
本発明は、確率的な検索クエリに検索処理を高速化するための情報を埋め込むことができる秘匿検索システムを提供することを目的とする。
【課題を解決するための手段】
【００１１】
本発明に係る秘匿検索システムは、
記憶装置である管理記憶部を備え、保管データが暗号化された暗号化データと、前記保管データに関連付けられた関連キーワードに対し確率暗号方式の暗号化を実行することにより生成された暗号化タグとを受信し、前記暗号化タグと前記暗号化データとを対応付けて前記管理記憶部に保管する管理装置と、
前記管理記憶部に保管されている前記暗号化データを検索する検索キーワードを取得すると、前記検索キーワードから一意に定まる確定的情報を算出し、前記検索キーワードに対し前記確定的情報を用いて確率暗号方式の暗号化を実行することにより検索クエリを生成し、前記検索クエリを前記管理装置に送信する検索装置と
を備え、
前記管理装置は、
前記検索装置から前記検索クエリを受信すると、前記検索クエリを復号して得られる前記検索キーワードが、前記管理記憶部に保管されている前記暗号化タグを復号して得られる関連キーワードと一致するか否かを判定する。
【発明の効果】
【００１２】
本発明に係る秘匿検索システムによれば、検索装置が、検索キーワードを取得すると、検索キーワードから一意に定まる確定的情報を算出し、検索キーワードに対し確定的情報を埋め込みつつ確率暗号方式の暗号化を実行することにより検索クエリを生成するので、確率的であり、かつ、検索処理を高速化するための確定的情報が埋め込まれた検索クエリを用いて暗号化タグを検索することができるという効果を奏する。
【図面の簡単な説明】
【００１３】
【図１】実施の形態１に係る秘匿検索システム１００の構成図。
【図２】実施の形態１に係る鍵生成装置２００の構成図。
【図３】実施の形態１に係る登録装置３００の構成図。
【図４】実施の形態１に係る検索装置４００の構成図。
【図５】実施の形態１に係る管理装置５００の構成図。
【図６】実施の形態１に係る秘匿検索システム１００の鍵生成保管処理Ｓ１１０のフロー図。
【図７】実施の形態１に係る秘匿検索システム１００の登録処理Ｓ１２０のフロー図。
【図８】実施の形態１に係る秘匿検索システム１００の検索処理Ｓ１３０のフロー図。
【図９】実施の形態１に係る検索装置４００のステップＳ８０２のキーワード暗号化処理のフロー図。
【図１０】実施の形態１に係る秘匿検索システム１００の削除処理Ｓ１４０のフロー図。
【図１１】実施の形態１に係る鍵生成装置２００の変形例の構成図。
【図１２】実施の形態１に係る登録装置３００の変形例の構成図。
【図１３】実施の形態１に係る検索装置４００の変形例の構成図。
【図１４】実施の形態１に係る管理装置５００の変形例の構成図。
【図１５】実施の形態２に係る秘匿検索システム１００ａの構成図。
【図１６】実施の形態２に係る登録装置３００ａの構成図。
【図１７】実施の形態２に係る検索装置４００ａの構成図。
【図１８】実施の形態２に係る管理装置５００ａの構成図。
【図１９】実施の形態２に係る秘匿検索システム１００ａの登録処理Ｓ１２０ａのフロー図。
【図２０】実施の形態２に係る秘匿検索システム１００ａの検索処理Ｓ１３０ａのフロー図。
【図２１】実施の形態２に係る検索処理Ｓ１３０ａのキーワード暗号化処理Ｓ８０２ａのフロー図。
【図２２】実施の形態３に係る秘匿検索システム１００ｂの構成図。
【図２３】実施の形態３に係る秘匿検索システム１００ｂの検索処理Ｓ１３０ｂのフロー図。
【図２４】実施の形態３に係る検索処理Ｓ１３０ｂのキーワード暗号化処理Ｓ８０２ｂのフロー図。
【発明を実施するための形態】
【００１４】
実施の形態１．
＊＊＊構成の説明＊＊＊
図１を用いて、本実施の形態に係る秘匿検索システム１００の構成について説明する。
秘匿検索システム１００は、鍵生成装置２００と、登録装置３００と、検索装置４００と、管理装置５００とを有する。
秘匿検索システム１００では、鍵生成装置２００と、複数の登録装置３００と、複数の検索装置４００と、管理装置５００とのそれぞれがネットワーク１０１を経由して接続される。
ネットワーク１０１は、鍵生成装置２００と、複数の登録装置３００と、複数の検索装置４００と、管理装置５００とを接続する通信路である。ネットワーク１０１は、具体的には、インターネット、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）であり、他の種類のネットワークが用いられてもよい。
【００１５】
鍵生成装置２００は、具体的には、ＰＣ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ）である。鍵生成装置２００は、暗号化に利用する鍵を作成し、ネットワーク１０１を介して、登録装置３００と、検索装置４００と、管理装置５００とに鍵を送信する。なお、この鍵は、郵送のような方法で直接的に送信してもよい。
【００１６】
登録装置３００は、具体的には、ＰＣである。登録装置３００は、管理装置５００に保管する保管データ及び保管データに関連付ける関連キーワードを暗号化して、暗号化データ及び暗号化タグを生成する。ここで、保管データは保管ファイルともいう。また、暗号化データは、暗号化ファイルともいう。登録装置３００は、生成した暗号化データ及び暗号化タグを管理装置５００に登録する登録端末として動作するコンピュータである。
登録装置３００は、削除要求装置としても機能する。即ち、登録装置３００は、管理装置５００に対して、管理装置５００に保管されている暗号化データ及び暗号化タグの削除を要求する。以下において、暗号化データ及び暗号化タグを保管暗号化データともいう。
【００１７】
検索装置４００は、具体的には、ＰＣである。検索装置４００は、検索要求装置として機能する。検索装置４００は、検索に用いる検索キーワードが暗号化された検索クエリを管理装置５００に送信し、検索クエリと暗号化タグとの照合を要求する。
【００１８】
管理装置５００は、具体的には、大容量の記憶媒体を持つ計算機である。管理装置５００は、保管暗号化データの保管装置として機能する。即ち、管理装置５００は、登録装置３００から暗号化データ及び暗号化タグの保管の要求があれば、それらを保管する。
管理装置５００は、検索装置としても機能する。即ち、管理装置５００は、検索装置４００からの検索の要求があれば、暗号化タグの集合と検索クエリとを照合し、検索結果を検索装置４００に送信する。
管理装置５００は、削除装置としても機能する。即ち、管理装置５００は、登録装置３００から暗号化データ及び暗号化タグ、即ち保管暗号化データの削除の要求があれば、保管している保管暗号化データを削除する。
【００１９】
なお、同じＰＣ内に、鍵生成装置２００、登録装置３００及び検索装置４００のいずれか２つ以上が同時に含まれていてもよい。
【００２０】
次に、秘匿検索システム１００の有する各装置の構成について説明する。
【００２１】
＜鍵生成装置２００＞
まず、図２を用いて鍵生成装置２００の構成について説明する。
本実施の形態において、鍵生成装置２００は、コンピュータである。鍵生成装置２００は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）９１０、記憶装置９２０、入力インタフェース９３０、出力インタフェース９４０及び通信装置９５０といったハードウェアを備える。記憶装置９２０は、メモリ９２１と補助記憶装置９２２とを含む。
鍵生成装置２００は、機能構成として、パラメータ受信部２０１と、鍵生成部２０２と、送信部２０９と、鍵生成記憶部２５０とを備える。以下の説明では、鍵生成装置２００におけるパラメータ受信部２０１と、鍵生成部２０２と、送信部２０９との機能を、鍵生成装置２００の「部」の機能という。鍵生成装置２００の「部」の機能は、ソフトウェアで実現される。
また、鍵生成記憶部２５０は、メモリ９２１で実現される。鍵生成記憶部２５０は、鍵生成装置２００の各部で使用されるデータを記憶する。
【００２２】
パラメータ受信部２０１は、パラメータλを受信する。
鍵生成部２０２は、パラメータ受信部２０１から受け取ったパラメータλを入力として、データを暗号化又は復号するための鍵Ｋ１及び鍵Ｋ２を生成する。
送信部２０９は、鍵生成部２０２で生成された鍵Ｋ１を、登録装置３００と検索装置４００とに送信する。また、送信部２０９は、鍵Ｋ２を、検索装置４００と管理装置５００とに送信する。
【００２３】
＜登録装置３００＞
次に、図３を用いて登録装置３００の構成について説明する。
本実施の形態において、登録装置３００は、コンピュータである。登録装置３００は、ＣＰＵ９１０、記憶装置９２０、入力インタフェース９３０、出力インタフェース９４０及び通信装置９５０といったハードウェアを備える。記憶装置９２０は、メモリ９２１と補助記憶装置９２２とを含む。
登録装置３００は、機能構成として、受信部３０１と、鍵保管部３０２と、入力部３１１と、暗号化部３１２と、送信部３１９と、登録記憶部３５０とを備える。以下の説明では、登録装置３００における受信部３０１と、鍵保管部３０２と、入力部３１１と、暗号化部３１２と、送信部３１９との機能を、登録装置３００の「部」の機能という。登録装置３００の「部」の機能は、ソフトウェアで実現される。
また、登録記憶部３５０は、メモリ９２１で実現される。登録記憶部３５０は、登録装置３００の各部で使用されるデータを記憶する。
【００２４】
受信部３０１は、鍵生成装置２００から送信されてきた鍵Ｋ１を受信する。
鍵保管部３０２は、受信部３０１から受け取った鍵Ｋ１を登録記憶部３５０に保管する。
入力部３１１は、データ登録者から入力された保管データＤと保管データ名ＩＤ（Ｄ）と保管データＤに関連付ける関連キーワードｗの集合Ｗ（Ｄ）とを、入力インタフェース９３０を介して受け取る。また、入力部３１１は、保管データＤを削除する削除要求３３９を受け取る。
【００２５】
暗号化部３１２は、鍵保管部３０２から鍵Ｋ１を受け取り、入力部３１１から保管データＤと保管データ名ＩＤ（Ｄ）と関連キーワードｗの集合Ｗ（Ｄ）とを受け取り、鍵Ｋ１を用いて保管データＤと関連キーワードの集合Ｗ（Ｄ）とを暗号化する。暗号化部３１２は、暗号化に用いる第１乱数ｒの集合Ｒ（Ｄ）を生成する。
鍵Ｋ１を用いて暗号化された保管データＤを暗号化データＥ（Ｄ）とする。鍵Ｋ１と第１乱数ｒの集合Ｒ（Ｄ）とを用いて確率的に暗号化された関連キーワードｗの集合Ｗ（Ｄ）を暗号化タグｃの集合Ｃ（Ｄ）とする。
即ち、暗号化部３１２は、保管データ名ＩＤ（Ｄ）と、暗号化タグｃの集合Ｃ（Ｄ）の組（ＩＤ（Ｄ），Ｃ（Ｄ））と、第１乱数ｒの集合Ｒ（Ｄ）とを生成する。以降では、（ＩＤ（Ｄ），Ｃ（Ｄ））を保管暗号化データと書く場合がある。なお、保管データ名ＩＤ（Ｄ）には暗号化データＥ（Ｄ）が対応付けられているものとする。つまり、保管暗号化データ（ＩＤ（Ｄ），Ｃ（Ｄ））とは、保管データ名ＩＤ（Ｄ）に対応付けられた暗号化データＥ（Ｄ）と暗号化タグｃの集合Ｃ（Ｄ）との組を表すものとする。
なお、関連キーワードｗの集合を関連キーワードＷ（Ｄ）、第１乱数ｒの集合を第１乱数Ｒ（Ｄ）、暗号化タグｃの集合を暗号化タグＣ（Ｄ）と書く場合もある。
【００２６】
送信部３１９は、暗号化部３１２から受け取った保管暗号化データ（ＩＤ（Ｄ），Ｃ（Ｄ））を管理装置５００へ送信する。また、暗号化部３１２から受け取った第１乱数ｒの集合Ｒ（Ｄ）を検索装置４００へ送信する。また、送信部３１９は、入力部３１１から受け取った削除要求３３９を管理装置５００へ送信する。
【００２７】
＜検索装置４００＞
次に、図４を用いて検索装置４００の構成について説明する。
本実施の形態において、検索装置４００は、コンピュータである。検索装置４００は、ＣＰＵ９１０、記憶装置９２０、入力インタフェース９３０、出力インタフェース９４０及び通信装置９５０といったハードウェアを備える。記憶装置９２０は、メモリ９２１と補助記憶装置９２２とを含む。
検索装置４００は、機能構成として、受信部４０１と、入力部４１１と、暗号化部４１２と、送信部４１９と、鍵保管部４２１と、補助情報保管部４２２と、検索結果出力部４３９と、検索記憶部４５０とを備える。以下の説明では、検索装置４００における受信部４０１と、入力部４１１と、暗号化部４１２と、送信部４１９と、鍵保管部４２１と、補助情報保管部４２２と、検索結果出力部４３９との機能を、検索装置４００の「部」の機能という。検索装置４００の「部」の機能は、ソフトウェアで実現される。
また、検索記憶部４５０は、メモリ９２１で実現される。検索記憶部４５０は、検索装置４００の各部で使用されるデータを記憶する。
【００２８】
受信部４０１は、鍵生成装置２００から送信されてきた鍵Ｋ１及び鍵Ｋ２、又は登録装置３００から送信されてきた第１乱数ｒの集合Ｒ（Ｄ）、又は管理装置５００から送信されてきた検索結果Ｉ（ｓ）を受信する。
鍵保管部４２１は、受信部４０１から受け取った鍵Ｋ１及び鍵Ｋ２を検索記憶部４５０に保管する。
入力部４１１は、データ検索者から入力された検索キーワードｓ及び確定的指示ｆを受け取る。確定的指示ｆは、具体的にはフラグであり、高速索引作成フラグともいう。
【００２９】
補助情報保管部４２２は、受信部４０１から受け取った第１乱数ｒの集合Ｒ（Ｄ）を検索記憶部４５０に保管する。以降では、補助情報保管部４２２により検索記憶部４５０に蓄積された全ての第１乱数の集合をＲと書く。また、補助情報保管部４２２は、検索履歴情報４５１を検索記憶部４５０に保管する。即ち、補助情報保管部４２２は、暗号化部４１２から確定的指示ｆ及び検索キーワードｓの確定的情報ｔを受け取り、受信部４０１から検索キーワードｓの検索結果Ｉ（ｓ）を受け取る。そして、補助情報保管部４２２は、管理装置５００により後述する高速索引情報５５４が作成されたことが確認できた場合は確定的情報ｔを検索履歴情報４５１に蓄積する。補助情報保管部４２２は、高速索引情報５５４が作成されたことが確認できなければ何も実行しない。以降では、補助情報保管部４２２により検索記憶部４５０の検索履歴情報４５１に蓄積された全ての確定的情報ｔの集合をＴと書く。
検索キーワードｓの確定的情報ｔとは、検索キーワードｓと一対一対応する識別子である。即ち、ある検索キーワードｓとｓ’の確定的情報をそれぞれｔとｔ’とするとき、ｓとｓ’が一致することは、ｔとｔ’が一致することと同値である。確定的情報ｔは、具体的には、ハッシュ関数といった手法で計算される。確定的情報ｔは、確定値ともいう。
【００３０】
暗号化部４１２は、鍵保管部４２１から鍵Ｋ１及び鍵Ｋ２、補助情報保管部４２２から第１乱数の集合Ｒ及び確定的情報ｔの集合Ｔ、入力部４１１から検索キーワードｓ及び確定的指示ｆを受け取る。暗号化部４１２は、検索キーワードの確定的情報ｔ又は検索クエリＱ（ｓ）を送信部４１９へ出力する。
送信部４１９は、暗号化部４１２から受け取った確定的情報ｔ又は検索クエリＱ（ｓ）を管理装置５００へ通信装置９５０を介して送信する。
検索結果出力部４３９は、受信部４０１から受け取った検索結果Ｉ（ｓ）に基づき、出力インタフェース９４０を介して検索結果をデータ検索者に対して出力する。
【００３１】
＜管理装置５００＞
次に、図５を用いて管理装置５００の構成について説明する。
本実施の形態において、管理装置５００は、コンピュータである。管理装置５００は、ＣＰＵ９１０、記憶装置９２０、入力インタフェース９３０、出力インタフェース９４０及び通信装置９５０といったハードウェアを備える。記憶装置９２０は、メモリ９２１と補助記憶装置９２２とを含む。
管理装置５００は、機能構成として、受信部５０１と、鍵保管部５１１と、データ保管部５２１と、高速照合部５３１と、照合部５０２と、送信部５０９と、管理記憶部５５０とを備える。以下の説明では、管理装置５００における受信部５０１と、鍵保管部５１１と、データ保管部５２１と、高速照合部５３１と、照合部５０２と、送信部５０９との機能を、管理装置５００の「部」の機能という。管理装置５００の「部」の機能は、ソフトウェアで実現される。
また、管理記憶部５５０は、メモリ９２１で実現される。管理記憶部５５０は、管理装置５００の各部で使用されるデータを記憶する。
【００３２】
受信部５０１は、鍵生成装置２００から送信された鍵Ｋ２、登録装置３００から送信された保管暗号化データ（ＩＤ（Ｄ），Ｃ（Ｄ））或いは削除要求３３９、検索装置４００から送信された確定的情報ｔ又は検索クエリＱ（ｓ）を受信する。
鍵保管部５１１は、受信部５０１から受け取った鍵Ｋ２を管理記憶部５５０に保管する。
データ保管部５２１は、受信部５０１から受け取った保管暗号化データ（ＩＤ（Ｄ），Ｃ（Ｄ））を管理記憶部５５０に保管する。データ保管部５２１は、必要があれば、送信されてきた日時といった情報を保管暗号化データ（ＩＤ（Ｄ），Ｃ（Ｄ））と共に保管してもよい。また、データ保管部５２１は、受信部５０１から受け取った削除要求３３９に基づき、管理記憶部５５０に保管している保管暗号化データ（ＩＤ（Ｄ），Ｃ（Ｄ））を削除する。
なお、以降の説明では、保管暗号化データ（ＩＤ（Ｄ），Ｃ（Ｄ））を保管暗号化データ５５１、暗号化データＥ（Ｄ）を暗号化データ５５２、暗号化タグｃの集合Ｃ（Ｄ）を暗号化タグ５５３として説明する場合がある。
【００３３】
高速照合部５３１は、照合部５０２から受け取った確定的情報ｔとその検索結果Ｉ（ｓ）に対して、確定的情報ｔをキーとして検索結果Ｉ（ｓ）を高速に取出せるような高速索引情報５５４を生成し、高速索引情報５５４を管理記憶部５５０に保管する。また、高速照合部５３１は、受信部５０１から受け取った確定的情報ｔに対して、高速索引情報５５４を用いて対応する検索結果Ｉ（ｓ）を管理記憶部５５０から取り出し、送信部５０９へ検索結果Ｉ（ｓ）を出力する。
【００３４】
照合部５０２は、受信部５０１から受け取った検索クエリＱ（ｓ）、鍵保管部５１１から受け取った鍵Ｋ２、データ保管部５２１から受け取った全ての保管暗号化データ（ＩＤ（Ｄ），Ｃ（Ｄ））に対して、検索結果Ｉ（ｓ）を生成し、送信部５０９へ出力する。また、検索結果Ｉ（ｓ）が空集合でない場合、照合部５０２は、確定的情報ｔと検索結果Ｉ（ｓ）を高速照合部５３１へ出力する。
送信部５０９は、照合部５０２又は高速照合部５３１から受け取った検索結果Ｉ（ｓ）を検索装置４００へ送信する。
【００３５】
次に、秘匿検索システム１００が備える鍵生成装置２００と登録装置３００と検索装置４００と管理装置５００との各装置のハードウェアについて説明する。
ＣＰＵ９１０は、信号線を介して他のハードウェアと接続され、これら他のハードウェアを制御する。ＣＰＵ９１０は、プロセッシングを行うＩＣ（Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）である。ＣＰＵ９１０は、プロセッサともいう。
【００３６】
記憶装置９２０は、補助記憶装置９２２及びメモリ９２１を含む。補助記憶装置９２２は、具体的には、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、フラッシュメモリ、又は、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）である。メモリ９２１は、具体的には、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）である。秘匿検索システム１００が備える各装置の記憶部、即ち鍵生成記憶部２５０、登録記憶部３５０、検索記憶部４５０、管理記憶部５５０は、メモリ９２１により実現されるが、補助記憶装置９２２及びメモリ９２１の両方により実現されてもよい。
【００３７】
入力インタフェース９３０は、マウス、キーボード、又はタッチパネルといった入力装置に接続されたポートである。入力インタフェース９３０は、具体的には、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）端子である。なお、入力インタフェース９３０は、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）と接続されるポートであってもよい。
出力インタフェース９４０は、ディスプレイといった表示機器のケーブルが接続されるポートである。出力インタフェース９４０は、具体的には、ＵＳＢ端子又はＨＤＭＩ（登録商標）（Ｈｉｇｈ  Ｄｅｆｉｎｉｔｉｏｎ  Ｍｕｌｔｉｍｅｄｉａ  Ｉｎｔｅｒｆａｃｅ）端子である。ディスプレイは、具体的には、ＬＣＤ（Ｌｉｑｕｉｄ  Ｃｒｙｓｔａｌ  Ｄｉｓｐｌａｙ）である。
【００３８】
通信装置９５０は、データを受信するレシーバ及びデータを送信するトランスミッタを含む。通信装置９５０は、具体的には、通信チップ又はＮＩＣ（Ｎｅｔｗｏｒｋ  Ｉｎｔｅｒｆａｃｅ  Ｃａｒｄ）である。
【００３９】
補助記憶装置９２２には、秘匿検索システム１００の各装置の「部」の機能を実現するプログラムが記憶されている。このプログラムは、メモリにロードされ、ＣＰＵ９１０に読み込まれ、ＣＰＵ９１０によって実行される。補助記憶装置９２２には、ＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）も記憶されている。ＯＳの少なくとも一部がメモリにロードされ、ＣＰＵ９１０はＯＳを実行しながら、「部」の機能を実現するプログラムを実行する。
【００４０】
秘匿検索システム１００の各装置は、１つのＣＰＵ９１０のみを備えていてもよいし、複数のＣＰＵ９１０を備えていてもよい。複数のＣＰＵ９１０が「部」の機能を実現するプログラムを連携して実行してもよい。
【００４１】
「部」の処理の結果を示す情報、データ、信号値、及び、変数値は、補助記憶装置、メモリ、又は、ＣＰＵ９１０内のレジスタ又はキャッシュメモリに記憶される。
【００４２】
「部」の機能を実現するプログラムは、磁気ディスク、フレキシブルディスク、光ディスク、コンパクトディスク、ブルーレイ（登録商標）ディスク、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｃ）といった可搬記録媒体に記憶されてもよい。
なお、秘匿検索プログラム６２０は、秘匿検索システム１００の各装置の「部」として説明している機能を実現するプログラムである。また、秘匿検索プログラムプロダクトと称されるものは、「部」として説明している機能を実現するプログラムが記録された記憶媒体及び記憶装置であり、見た目の形式に関わらず、コンピュータ読み取り可能なプログラムをロードしているものである。
【００４３】
＊＊＊動作の説明＊＊＊
次に、本実施の形態に係る秘匿検索システム１００における秘匿検索方法６１０及び秘匿検索プログラム６２０による秘匿検索処理Ｓ１００について説明する。
秘匿検索処理Ｓ１００は、鍵生成保管処理Ｓ１１０と、登録処理Ｓ１２０と、検索処理Ｓ１３０と、削除処理Ｓ１４０とを有する。
【００４４】
＜鍵生成保管処理Ｓ１１０＞
図６を用いて、本実施の形態に係る秘匿検索システム１００の鍵生成保管処理Ｓ１１０について説明する。
図６のステップＳ６０１からステップＳ６０９は、鍵生成装置２００と、登録装置３００と、検索装置４００と、管理装置５００とが実行する処理である。ステップＳ６０１からステップＳ６０３は鍵生成装置２００により実行される鍵生成処理Ｓ１１２である。ステップＳ６０４からステップＳ６０５は登録装置３００により実行される鍵生成処理Ｓ１１３である。ステップＳ６０６からステップＳ６０７は検索装置４００により実行される鍵生成処理Ｓ１１４である。ステップＳ６０８からステップＳ６０９は管理装置５００により実行される鍵生成処理Ｓ１１５である。
【００４５】
ステップＳ６０１において、鍵生成装置２００のパラメータ受信部２０１は、鍵生成装置２００の通信装置９５０を介してパラメータλを受信する。
ステップＳ６０２において、鍵生成装置２００の鍵生成部２０２は、ステップＳ６０１において鍵生成装置２００のパラメータ受信部２０１が受信したパラメータλを入力として、鍵Ｋ１及び鍵Ｋ２を生成する。
ステップＳ６０３において、鍵生成装置２００の送信部２０９は、ステップＳ６０２において鍵生成装置２００の鍵生成部２０２が生成した鍵Ｋ１及び鍵Ｋ２を入力として、鍵Ｋ１を登録装置３００と検索装置４００とに送信する。また、鍵生成装置２００の送信部２０９は、鍵Ｋ２を検索装置４００と管理装置５００とに送信する。
【００４６】
ステップＳ６０４において、登録装置３００の受信部３０１は、ステップＳ６０３において鍵生成装置２００の送信部２０９が送信した鍵Ｋ１を、登録装置３００の通信装置９５０を介して受信する。
ステップＳ６０５において、登録装置３００の鍵保管部３０２は、ステップＳ６０４において登録装置３００の受信部３０１が受信した鍵Ｋ１を保管する。
【００４７】
ステップＳ６０６において、検索装置４００の受信部４０１は、ステップＳ６０３において鍵生成装置２００の送信部２０９が送信した鍵Ｋ１及び鍵Ｋ２を、検索装置４００の通信装置９５０を介して受信する。
ステップＳ６０７において、検索装置４００の鍵保管部４２１は、ステップＳ６０６において検索装置４００の受信部４０１が受信した鍵Ｋ１及び鍵Ｋ２を保管する。
【００４８】
ステップＳ６０８において、管理装置５００の受信部５０１は、ステップＳ６０３において鍵生成装置２００の送信部２０９が送信した鍵Ｋ２を、管理装置５００の通信装置９５０を介して受信する。
ステップＳ６０９において、管理装置５００の鍵保管部５１１は、ステップＳ６０８において管理装置５００の受信部５０１が受信した鍵Ｋ２を保管する。
【００４９】
以上で、秘匿検索システム１００の鍵生成保管処理Ｓ１１０は終了する。
なお、鍵Ｋ１，Ｋ２は秘密情報であるため、鍵保管部３０２と、鍵保管部４２１とは、鍵Ｋ１，Ｋ２が外部に漏れないように厳重に保管する必要がある。
【００５０】
＜登録処理Ｓ１２０＞
図７を用いて、本実施の形態に係る秘匿検索システム１００の登録処理Ｓ１２０について説明する。
図７のステップＳ７０１からステップＳ７０８は、登録装置３００と検索装置４００と管理装置５００とが実行する処理である。ステップＳ７０１からステップＳ７０４は登録装置３００により実行される暗号化処理Ｓ１２３である。ステップＳ７０５からステップＳ７０６は検索装置４００により実行される第１乱数保管処理Ｓ１２４である。ステップＳ７０７からステップＳ７０８は管理装置５００により実行されるデータ保管処理Ｓ１２５である。
【００５１】
登録装置３００の暗号化処理Ｓ１２３において、登録装置３００は、第１乱数Ｒ（Ｄ）を生成し、第１乱数Ｒ（Ｄ）を用いて、関連キーワードＷ（Ｄ）に対し確率暗号方式の暗号化を実行し、暗号化タグＣ（Ｄ）を生成する。また、登録装置３００は、暗号化タグＣ（Ｄ）と保管データＤが暗号化された暗号化データＥ（Ｄ）とを管理装置５００に送信する。また、登録装置３００は、第１乱数Ｒ（Ｄ）を検索装置４００に送信する。
以下に具体的に説明する。
【００５２】
ステップＳ７０１において、登録装置３００の入力部３１１は、データ登録者から、キーボード、マウスあるいは記憶装置から入力された保管データＤと保管データ名ＩＤ（Ｄ）と保管データＤに関連付ける関連キーワードｗの集合Ｗ（Ｄ）とを受け取る。もし、データ登録者から保管データ名ＩＤ（Ｄ）の入力がなければ、入力部３１１は、入力された保管データＤの保管データ名ＩＤ（Ｄ）を乱数と割り当ててもよいし、他の保管データの保管データ名と重複しないように０より大きい整数の値を順に割り当ててもよい。
【００５３】
ステップＳ７０２において、登録装置３００の暗号化部３１２は、ステップＳ６０５で鍵保管部３０２に保管された鍵Ｋ１を受け取る。また、暗号化部３１２は、ステップＳ７０１で入力部３１１に入力された保管データＤと保管データ名ＩＤ（Ｄ）と関連キーワードｗの集合Ｗ（Ｄ）とを受け取る。そして、暗号化部３１２は、以下の処理を行う。
暗号化部３１２は、関連キーワードｗの集合Ｗ（Ｄ）の要素の一つを関連キーワードｗとする。暗号化部３１２は、全ての関連キーワードｗに対して、乱数生成器によって第１乱数ｒを生成し、ｃ＝Ｅ（Ｋ１，Ｅ（Ｋ１，ｗ），ｒ）とする。なお、Ｅは暗号化関数とする。具体的には、ＥはＡＥＳ（Ａｄｖａｎｃｅｄ  Ｅｎｃｒｙｐｔｉｏｎ  Ｓｔａｎｄａｒｄ）のような共通鍵暗号方式、ＨＭＡＣ（Ｈａｓｈ−ｂａｓｅｄ  Ｍｅｓｓａｇｅ  Ａｕｔｈｅｎｔｉｃａｔｉｏｎ  Ｃｏｄｅ）のようなメッセージ認証符号、ＳＨＡ（Ｓｅｃｕｒｅ  Ｈａｓｈ  Ａｌｇｏｒｉｔｈｍ）−２５６のようなハッシュ関数である。ここで、全ての関連キーワードｗに対して計算した暗号文、即ち暗号化タグｃの集合をＣ（Ｄ）と書く。また、このとき生成した全ての第１乱数ｒの集合をＲ（Ｄ）と書く。
以上のように、暗号化部３１２は、保管暗号化データ（ＩＤ（Ｄ），Ｃ（Ｄ））と第１乱数ｒの集合Ｒ（Ｄ）とを生成する。
【００５４】
ステップＳ７０３において、登録装置３００の送信部３１９は、ステップＳ７０２で生成した保管暗号化データ（ＩＤ（Ｄ），Ｃ（Ｄ））を管理装置５００へ送信する。
ステップＳ７０４において、登録装置３００の送信部３１９は、ステップＳ７０２で生成した第１乱数ｒの集合Ｒ（Ｄ）を検索装置４００へ送信する。
【００５５】
検索装置４００の第１乱数保管処理Ｓ１２４のステップＳ７０５において、検索装置４００の受信部４０１は、ステップＳ７０４で登録装置３００の送信部３１９から送信された第１乱数ｒの集合Ｒ（Ｄ）を、検索装置４００の通信装置９５０を介して受信する。
ステップＳ７０６において、検索装置４００の補助情報保管部４２２は、ステップＳ７０５で受信部４０１が受信した第１乱数ｒの集合Ｒ（Ｄ）を保管する。以降では、補助情報保管部４２２に蓄積された全ての第１乱数ｒの集合をＲと書く。
【００５６】
管理装置５００のデータ保管処理Ｓ１２５において、管理装置５００は、保管データＤが暗号化された暗号化データＥ（Ｄ）と、保管データＤに関連付けられた関連キーワードＷ（Ｄ）に対し確率暗号方式の暗号化を実行することにより生成された暗号化タグＣ（Ｄ）とを受信する。そして、管理装置５００は、暗号化タグＣ（Ｄ）（暗号化タグ５５３）と暗号化データＥ（Ｄ）（暗号化データ５５２）とを対応付けて保管暗号化データ（ＩＤ（Ｄ），Ｃ（Ｄ））（保管暗号化データ５５１）として管理記憶部５５０に保管する。
以下に具体的に説明する。
【００５７】
ステップＳ７０７において、管理装置５００の受信部５０１は、ステップＳ７０３で登録装置３００の送信部３１９から送信された保管暗号化データ（ＩＤ（Ｄ），Ｃ（Ｄ））を、管理装置５００の通信装置９５０を介して受信する。
ステップＳ７０８において、管理装置５００のデータ保管部５２１は、ステップＳ７０７で受信部５０１が受信した保管暗号化データ（ＩＤ（Ｄ），Ｃ（Ｄ））を管理記憶部５５０に保管する。上述したように、保管暗号化データ（ＩＤ（Ｄ），Ｃ（Ｄ））は、保管データ名ＩＤ（Ｄ）に対応付けられた暗号化データＥ（Ｄ）と、暗号化タグＣ（Ｄ）との組である。
【００５８】
以上で、秘匿検索システム１００の登録処理Ｓ１２０は終了する。
【００５９】
＜検索処理Ｓ１３０＞
図８を用いて、本実施の形態に係る秘匿検索システム１００の検索処理Ｓ１３０について説明する。
図８のステップＳ８０１からステップＳ８１１は、検索装置４００と管理装置５００とが実行する処理である。ステップＳ８０１からステップＳ８０３は検索装置４００により実行される検索クエリ生成処理Ｓ１３４である。ステップＳ８０４からステップＳ８０８は管理装置５００によって実行される判定処理Ｓ１３５である。ステップＳ８０９からステップＳ８１１は検索装置４００により実行される結果出力処理Ｓ１３６である。
【００６０】
検索装置４００の検索クエリ生成処理Ｓ１３４において、検索装置４００は、管理記憶部５５０に保管されている暗号化データＥ（Ｄ）を検索する検索キーワードｓを取得する。検索装置４００は、検索キーワードｓから一意に定まる確定的情報ｔを算出し、検索キーワードｓに対し確定的情報ｔを用いて確率暗号方式の暗号化を実行することにより検索クエリＱ（ｓ）を生成する。そして、検索装置４００は、検索クエリＱ（ｓ）を管理装置５００に送信する。
以下に具体的に説明する。
【００６１】
ステップＳ８０１において、検索装置４００の入力部４１１は、データ検索者により、キーボード、マウスあるいは記憶装置から入力された検索キーワードｓ及び確定的指示ｆを受け取る。
ここで、確定的指示ｆは、検索キーワードｓを暗号化する際に確定的情報ｔを用いるか否かを指示するものであり、具体的にはフラグである。確定的指示ｆは、高速索引作成フラグともいう。また、検索キーワードｓを暗号化する際に確定的情報ｔを用いるとは、検索クエリＱ（ｓ）に高速検索に有効な情報である確定的情報ｔを埋め込むことを意味する。
検索装置４００は、確定的指示ｆを取得し、確定的指示ｆにより確定的情報ｔを用いると指示された場合、検索キーワードｓに対し確定的情報ｔを用いて確率暗号方式の暗号化を実行する。
また、検索装置４００は、確定的指示ｆにより確定的情報ｔを用いないと指示された場合、検索キーワードｓに対し確定的情報を用いずに確率暗号方式の暗号化を実行する。
【００６２】
ステップＳ８０２において、検索装置４００の暗号化部４１２は、ステップＳ６０７で鍵保管部４２１に保管された鍵Ｋ１及び鍵Ｋ２、ステップＳ７０６で補助情報保管部４２２により保管された第１乱数ｒの集合Ｒ、及び補助情報保管部４２２により管理される確定的情報ｔの集合Ｔ、ステップＳ８０１で入力部４１１に入力された検索キーワードｓ及び確定的指示ｆを受け取る。暗号化部４１２は、受け取ったデータを用いて以下の処理を行う。
【００６３】
図９は、本実施の形態に係る検索装置４００のステップＳ８０２のキーワード暗号化処理を示すフロー図である。
ステップＳ４０１において、検索装置４００は、検索キーワードｓに対して確定暗号方式の暗号化を実行することにより確定的情報ｔを算出する。具体的には、暗号化部４１２は、検索キーワードｓの確定的情報ｔをｔ＝Ｅ（Ｋ１，ｓ）とする。
ステップＳ４０２において、暗号化部４１２は、確定的情報ｔを算出すると、算出した確定的情報ｔが検索記憶部４５０に蓄積されているか否かを判定する。暗号化部４１２は、算出した確定的情報ｔが検索記憶部４５０に蓄積されている場合（Ｓ４０２でＹＥＳ）、この確定的情報ｔを管理装置５００に送信する。
具体的には、暗号化部４１２は、集合Ｔに、算出した確定的情報ｔが含まれているか確認する。算出した確定的情報ｔが集合Ｔに含まれている場合、暗号化部４１２は、算出した確定的情報ｔを送信部４１９へ出力する（ステップＳ４０３）。
【００６４】
ステップＳ４０４において、暗号化部４１２は、確定的情報ｔが検索記憶部４５０に蓄積されていない場合（Ｓ４０２でＮＯ）、即ち、算出した確定的情報ｔが集合Ｔに含まれていない場合、検索クエリＱ（ｓ）を管理装置５００に送信する。
暗号化部４１２は、検索クエリＱ（ｓ）を以下のように生成する。暗号化部４１２は、第２乱数を生成し、第２乱数と、登録装置３００から受信した第１乱数Ｒと、確定的情報ｔとを用いて、検索キーワードｓに対し確率暗号方式の暗号化を実行する。具体的には、暗号化部４１２は、第１乱数の集合Ｒの全ての要素ｒｉ（０＜＝ｉ＜｜Ｒ｜）に対して、暗号文ｄｉをｄｉ＝Ｅ（Ｋ１，ｔ，ｒｉ）とする。次に、それぞれの暗号文ｄｉに対して、暗号文ｋｉをｋｉ＝Ｅ（Ｋ２，ｄｉ）とする。さらに、乱数生成器によって第２乱数ｕｉを生成し、暗号文ｑｉをｑｉ＝（Ｅ（ｋｉ，ｔ｜｜ｕｉ），ｕｉ）とする。このとき、確定的指示ｆが偽の場合は、ｔの代わりに意味のない乱数を用いる。ここで、演算｜｜はビット列の連結を表す。生成した暗号文ｑｉの集合をＱ（ｓ）と書く。暗号文ｑの集合Ｑ（ｓ）を検索クエリと呼ぶ。最後に、検索クエリＱ（ｓ）を送信部４１９へ出力する（ステップＳ４０５）。また、確定的指示ｆ及び確定的情報ｔを補助情報保管部４２２に出力する。
ここで、暗号文ｑｉに第２乱数ｕｉを含めず、代わりにｑｉ＝Ｅ（ｋｉ，０λ｜｜ｔ｜｜ｕｉ）とすることもできる。検索クエリＱ（ｓ）と暗号化タグＣ（Ｄ）との一致判定の際は、暗号文ｑｉを復号した結果、平文に０λが現れるならば一致、そうでなければ不一致として判定できる。
ステップＳ４０６において、送信部４１９は、確定的情報ｔ又は検索クエリＱ（ｓ）を管理装置５００に送信する。
以上でステップＳ８０２の処理を終わり、図８のステップＳ８０３に進む。
【００６５】
ステップＳ８０３において、検索装置４００の送信部４１９は、ステップＳ８０２で暗号化部４１２が生成した、確定的情報ｔ又は検索クエリＱ（ｓ）を管理装置５００へ送信する。
以上で検索装置４００の検索クエリ生成処理Ｓ１３４の処理を終わり、ステップＳ８０４に進む。
【００６６】
管理装置５００の判定処理Ｓ１３５において、管理装置５００は、検索装置４００から検索クエリＱ（ｓ）を受信すると、検索クエリＱ（ｓ）を復号して得られる検索キーワードｓが、管理記憶部５５０に保管されている暗号化タグＣ（Ｄ）を復号して得られる関連キーワードｗと一致するか否かを判定する。管理装置５００は、検索クエリＱ（ｓ）を復号して得られる検索キーワードｓが、暗号化タグＣ（Ｄ）を復号して得られる関連キーワードｗと一致した場合、暗号化タグＣ（Ｄ）に対応する暗号化データＥ（Ｄ）を含む検索結果Ｉ（ｓ）を検索装置４００に送信すると共に、検索クエリＱ（ｓ）を復号して得られる確定的情報ｔと暗号化タグＣ（Ｄ）に対応する暗号化データＥ（Ｄ）とを対応付けて管理記憶部５５０に記憶する。
管理装置５００は、検索装置４００から確定的情報ｔを受信すると、確定的情報ｔに対応する暗号化データＥ（Ｄ）を管理記憶部５５０から取得し、取得した暗号化データＥ（Ｄ）を含む検索結果Ｉ（ｓ）を検索装置４００に送信する。
以下に具体的に説明する。
【００６７】
ステップＳ８０４において、管理装置５００の受信部５０１は、ステップＳ８０３で検索装置４００の送信部４１９から送信された、確定的情報ｔ又は検索クエリＱ（ｓ）を受信する。
ステップＳ８０４ａにおいて、受信部５０１が検索クエリＱ（ｓ）を受信した場合、処理はステップ８０５に進み、受信部５０１が確定的情報ｔを受信した場合、処理はステップ８０７に進む。
【００６８】
ステップＳ８０５において、管理装置５００の照合部５０２は、ステップＳ８０４で受信部５０１が受信した情報が検索クエリＱ（ｓ）であった場合、ステップＳ６０９で鍵保管部５１１が保管した鍵Ｋ２、ステップＳ７０８でデータ保管部５２１が保管した全ての保管暗号化データ（ＩＤ（Ｄ），Ｃ（Ｄ））に対して、以下の処理を行う。
照合部５０２は、空の検索結果Ｉ（ｓ）を用意する。照合部５０２は、全ての保管暗号化データ（ＩＤ（Ｄ），Ｃ（Ｄ））と検索クエリＱ（ｓ）に対して、以下の処理を行う。暗号化タグＣ（Ｄ）の全ての要素ｃと、検索クエリＱ（ｓ）の全ての要素ｑの、任意のペア（ｃ，ｑ）に対して、一致判定を以下のようにして行う。ｑの２つの要素をｅ１，ｅ２とする。暗号文ｋをｋ＝Ｅ（Ｋ２，ｃ）とする。復号関数であるＤｅｃを用いて、ｍ＝Ｄｅｃ（ｋ，ｅ１）とする。ｍをｍ１とｍ２に分割する。ｍ２がｅ２と一致するとき、ｃとｑは一致したと判定する。これは即ち、検索クエリＱ（ｓ）の要素と一致する要素が暗号化タグＣ（Ｄ）に含まれていることを示している。このとき、ｍ１は確定的情報ｔである。ｃとｑが一致した場合、検索結果Ｉ（ｓ）に保管データ名ＩＤ（Ｄ）を加える。ここで、検索結果Ｉ（ｓ）に保管データ名ＩＤ（Ｄ）を加えるとは、保管データ名ＩＤ（Ｄ）に対応付けられた暗号化データＥ（Ｄ）を検索結果Ｉ（ｓ）に含めることを意味する。
上記の処理は、検索クエリＱ（ｓ）を復号して得られる検索キーワードｓが、管理記憶部５５０に保管されている暗号化タグＣ（Ｄ）を復号して得られる関連キーワードｗと一致するか否かを判定する処理である。
【００６９】
照合部５０２は、検索結果Ｉ（ｓ）が空集合の場合、即ちステップＳ８０５ａでＹＥＳの場合、送信部５０９に検索結果Ｉ（ｓ）を出力する。照合部５０２は、検索結果Ｉ（ｓ）が空集合でない場合、即ちステップ８０５ａでＮＯの場合、高速照合部５３１に確定的情報ｔとしてのｍ１及び検索結果Ｉ（ｓ）を出力する。
【００７０】
ステップＳ８０６において、管理装置５００の高速照合部５３１は、検索クエリＱ（ｓ）を復号して得られる確定的情報ｔと暗号化タグＣ（Ｄ）に対応する暗号化データＥ（Ｄ）とを対応付けて管理記憶部５５０に記憶する。具体的には、高速照合部５３１は、ステップＳ８０５で照合部５０２から受け取った確定的情報ｔ及び検索結果Ｉ（ｓ）を入力とする。そして、高速照合部５３１は、確定的情報ｔをキーとして検索結果Ｉ（ｓ）を高速に取出せる高速索引情報５５４を管理記憶部５５０に保管する。高速索引情報５５４は、具体的にはハッシュテーブルを利用することにより実現される。
【００７１】
ステップＳ８０７において、管理装置５００の高速照合部５３１は、ステップＳ８０４で受信部５０１が受信した情報が確定的情報ｔであった場合、受信部５０１から確定的情報ｔを受け取る。高速照合部５３１は、受け取った確定的情報ｔに対して、高速索引情報５５４から対応する検索結果Ｉ（ｓ）を取り出し、送信部５０９へＩ（ｓ）を出力する。高速照合部５３１は、受け取った確定的情報ｔに対応する検索結果Ｉ（ｓ）がない場合、送信部５０９へＩ（ｓ）として空集合を出力する。
【００７２】
ステップＳ８０８において、管理装置５００の送信部５０９は、照合部５０２又は高速照合部５３１から受け取った検索結果Ｉ（ｓ）を検索装置４００へ送信する。
以上で管理装置５００の判定処理Ｓ１３５の処理を終わり、ステップＳ８０９に進む。
【００７３】
検索装置４００の結果出力処理Ｓ１３６において、検索装置４００は、管理装置５００から検索結果Ｉ（ｓ）を受信すると、確定的情報ｔを検索記憶部４５０に蓄積する。
以下に具体的に説明する。
【００７４】
ステップＳ８０９において、検索装置４００の受信部４０１は、ステップＳ８０８で管理装置５００の送信部５０９が送信した検索結果Ｉ（ｓ）を受信する。
ステップＳ８１０において、検索装置４００の補助情報保管部４２２は、ステップＳ８０２で暗号化部４１２が生成した検索キーワードｓの確定的情報ｔ及び確定的指示ｆを受け取る。そして、補助情報保管部４２２は、ステップＳ８０９で受信部４０１が受信した検索キーワードｓに対する検索結果Ｉ（ｓ）を受け取り、以下の処理を行う。
確定的指示ｆが真、かつ、検索結果Ｉ（ｓ）が空集合でない場合、即ち確定的情報ｔが埋め込まれた検索クエリＱ（ｓ）に対して暗号化データＥ（Ｄ）ありの場合は、補助情報保管部４２２は、確定的情報ｔを検索記憶部４５０に保管する。また、検索結果Ｉ（ｓ）が空集合、即ち検索クエリＱ（ｓ）に対して暗号化データＥ（Ｄ）なしの場合、かつ、確定的情報ｔが補助情報保管部４２２により既に検索記憶部４５０に保管されている場合、補助情報保管部４２２は、保管されている確定的情報ｔを削除する。
【００７５】
ステップＳ８１１において、検索装置４００の検索結果出力部４３９は、受信部４０１から受け取った検索結果Ｉ（ｓ）に基づいて、出力インタフェース９４０を介してディスプレイに検索結果を出力する。検索結果出力部４３９は、検索結果Ｉ（ｓ）に暗号化データＥ（Ｄ）が含まれる場合は、暗号化データＥ（Ｄ）の保管データ名ＩＤ（Ｄ）をディスプレイに出力する。また、検索結果出力部４３９は、検索結果Ｉ（ｓ）が空集合の場合は、検索キーワードｓによる検索が失敗したことを表す情報をディスプレイに出力する。
ステップＳ８１１により、秘匿検索システム１００の検索処理は終了する。
【００７６】
＜削除処理Ｓ１４０＞
図１０を用いて、本実施の形態に係る秘匿検索システム１００の削除処理Ｓ１４０について説明する。
図１０のステップＳ９０１からステップＳ９０４は、登録装置３００と管理装置５００とが実行する処理である。ステップＳ９０１からステップＳ９０２は登録装置３００により実行される。ステップＳ９０３からステップＳ９０４は管理装置５００によって実行される。
【００７７】
削除処理Ｓ１４０において、管理装置５００は、管理記憶部５５０に保管されている暗号化データ５５２を削除する削除要求３３９を受信し、削除要求３３９に基づいて管理記憶部５５０から暗号化データ５５２を含む保管暗号化データ５５１を削除する。
以下に具体的に説明する。
【００７８】
ステップＳ９０１において、登録装置３００の入力部３１１は、データ登録者から削除したい保管暗号化データについての削除データ名を含む削除要求３３９を受け取る。なお、削除要求３３９は、削除データ名そのものでもよい。また、削除要求３３９は、暗号化データ５５２に対応する保管暗号化データを特定できるものであれば何でもよい。
ステップＳ９０２において、登録装置３００の送信部３１９は、ステップＳ９０１で入力部３１１に入力された削除要求３３９を管理装置５００へ送信する。
ステップＳ９０３において、管理装置５００の受信部５０１は、ステップＳ９０２で登録装置３００の送信部３１９から送信されてきた削除要求３３９を受信する。
ステップＳ９０４において、管理装置５００のデータ保管部５２１及び高速照合部５３１は、ステップＳ９０３で受信部５０１が受信した削除要求に含まれる削除データ名に基づき、保管している保管暗号化データ５５１を削除する。
ステップＳ９０４により、秘匿検索システム１００の削除処理Ｓ１４０は終了する。
【００７９】
＊＊＊他の構成＊＊＊
本実施の形態では、秘匿検索システム１００の各装置の機能がソフトウェアで実現されるが、変形例として、秘匿検索システム１００の各装置の機能がハードウェアで実現されてもよい。
この本実施の形態の変形例について、図１１から図１４を用いて説明する。
【００８０】
図１１は、本実施の形態の変形例に係る鍵生成装置２００の構成を示す図である。
図１２は、本実施の形態の変形例に係る登録装置３００の構成を示す図である。
図１３は、本実施の形態の変形例に係る検索装置４００の構成を示す図である。
図１４は、本実施の形態の変形例に係る管理装置５００の構成を示す図である。
【００８１】
図１１から図１４に示すように、秘匿検索システム１００の各装置は、ＣＰＵ９１０及び記憶装置９２０に替えて処理回路９０９を備える。
【００８２】
処理回路９０９は、上述した各装置の「部」の機能及び各装置の記憶部を実現する専用の電子回路である。処理回路９０９は、具体的には、単一回路、複合回路、プログラム化したプロセッサ、並列プログラム化したプロセッサ、ロジックＩＣ、ＧＡ（Ｇａｔｅ  Ａｒｒａｙ）、ＡＳＩＣ（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）、又は、ＦＰＧＡ（Ｆｉｅｌｄ−Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）である。
【００８３】
秘匿検索システム１００の各装置の「部」の機能は、１つの処理回路９０９で実現されてもよいし、複数の処理回路９０９に分散して実現されてもよい。
【００８４】
別の変形例として、秘匿検索システム１００の各装置の「部」の機能及び各装置の記憶部がソフトウェアとハードウェアとの組合せで実現されてもよい。即ち、各装置の一部の機能が専用のハードウェアで実現され、残りの機能がソフトウェアで実現されてもよい。
【００８５】
ＣＰＵ９１０、記憶装置９２０、及び、処理回路９０９を、総称して「プロセッシングサーキットリ」という。つまり、秘匿検索システム１００の各装置の構成が図２から図５及び図１１から図１４のいずれに示した構成であっても、「部」の機能は、プロセッシングサーキットリにより実現される。
【００８６】
「部」を「工程」又は「手順」又は「処理」に読み替えてもよい。また、「部」の機能をファームウェアで実現してもよい。
【００８７】
＊＊＊本実施の形態の効果の説明＊＊＊
本実施の形態に係る秘匿検索システムは、検索を高速に行うために有用な情報が埋め込まれた検索クエリを生成する検索装置の暗号化部と、検索クエリを受信する管理装置の受信部と、関連キーワードが暗号化された暗号化タグを保管する管理装置のデータ保管部と、保管されている暗号化タグ集合の中から、暗号化された検索キーワードと一致するものを取り出す管理装置の照合部とを備える。よって、確率的であり、かつ、検索処理を高速化するための確定的情報が埋め込まれた検索クエリを用いて暗号化タグを検索することができる。また、本実施の形態に係る秘匿検索システムは、暗号化タグ及び検索クエリが、確率的暗号化によって生成されている。よって、暗号化タグ及び検索クエリは、保管データに関連付けられている関連キーワード及び検索キーワードの確定的情報に依らない。これにより暗号化タグ及び検索クエリは頻度分析耐性が高くなり、安全性が高い。
【００８８】
さらに、本実施の形態に係る秘匿検索システムは、一度過去に検索された検索キーワードに対する検索クエリに対しては、高速に検索結果を取り出すことができる高速照合部を備える。よって、検索クエリに対して検索結果の保管暗号化データが存在する場合のみ、検索クエリに対する確定的情報を抽出させ、次回以降の再検索の際はこの確定的情報を基に高速に検索結果を取り出すことができる。この確定的情報の抽出は検索結果の保管暗号化データが存在する場合のみ行われるという点が、安全性が高いまま検索を高速化できるとする理由である。
【００８９】
さらに、本実施の形態に係る秘匿検索システムは、検索クエリ生成時、検索を高速にする情報、すなわち確定的情報を検索クエリに埋め込むかどうかを、確定的指示によりデータ検索者に選択させることができる。よって、本実施の形態に係る秘匿検索システムよれば、事前にデータ検索者が検索クエリに確定的情報を埋め込まないという選択をすることも可能であり、機能性に優れている。
【００９０】
実施の形態２．
本実施の形態では、主に、実施の形態１と異なる点について説明する。
本実施の形態において、実施の形態１と共通する部分については、同一の符号を付し、その説明を省略する場合がある。
【００９１】
本実施の形態に係る秘匿検索システム１００ａでは、実施の形態１における第１乱数ｒの代わりに、カウンタ値を用いて秘匿検索を行う。本実施の形態では、登録装置３００ａの暗号化処理Ｓ１２３ａにおいて、第１乱数ｒの集合Ｒ（Ｄ）を生成しない。また、検索装置４００ａの検索クエリ生成処理Ｓ１３４ａにおいて、第１乱数ｒの集合Ｒ（Ｄ）を用いずに、検索クエリを生成する。
【００９２】
図１５を用いて、本実施の形態に係る秘匿検索システム１００ａの構成について説明する。
秘匿検索システム１００ａは、鍵生成装置２００と、登録装置３００ａと、検索装置４００ａと、管理装置５００ａとを有する。図１５は、実施の形態１で説明した図１に対応する。秘匿検索システム１００ａの基本的な構成及び機能については、実施の形態１で説明した図１と同様であるため、その説明を省略する。
次に、本実施の形態に係る秘匿検索システム１００ａの有する各装置の構成及び機能について説明する。
【００９３】
＜鍵生成装置２００＞
本実施の形態に係る鍵生成装置２００の構成及び機能は、実施の形態１で説明した図２と同様であるため、説明を省略する。
なお、実施の形態１で説明したように、送信部２０９は、鍵生成部２０２で生成された鍵Ｋ１を、登録装置３００ａと検索装置４００ａとに送信し、鍵Ｋ２を、検索装置４００ａと管理装置５００ａとに送信する。このとき、鍵Ｋ２は公知のパラメータとしてもよいし、鍵Ｋ２は鍵Ｋ１と同一でも構わない。また、鍵Ｋ２を用いた暗号化を鍵なしの暗号化で置き換えても構わないし、鍵Ｋ２を用いた暗号化を行わなくても構わない。
【００９４】
＜登録装置３００ａ＞
次に、図１６を用いて、本実施の形態に係る登録装置３００ａの構成及び機能について説明する。
本実施の形態に係る登録装置３００ａの構成は、実施の形態１で説明した図３と同様である。登録装置３００ａにおいて、実施の形態１と異なる機能は以下の通りである。
【００９５】
入力部３１１は、データ登録者から入力された保管データＤの集合Ｕと、Ｕのそれぞれの要素Ｄの保管データ名集合ＩＤと、Ｕのそれぞれの要素Ｄに関連付ける関連キーワードｗの集合Ｗとを受け取る。また、入力部３１１は、保管データＤを削除する削除要求３３９を受け取る。本実施の形態では、保管データＤの保管データ名をＩＤ（Ｄ）と表記し、保管データＤに関連付けられる関連キーワード集合をＷ（Ｄ）と表記する場合もある。
暗号化部３１２は、鍵保管部３０２から鍵Ｋ１を受け取り、入力部３１１から保管データＤの集合Ｕと保管データ名集合ＩＤと関連キーワードｗの集合Ｗとを受け取り、鍵Ｋ１を用いて保管データＤと、保管データＤに関連付られる関連キーワードの集合Ｗ（Ｄ）とを暗号化する。
鍵Ｋ１を用いて暗号化された保管データＤを暗号化データＥ（Ｄ）とする。鍵Ｋ１を用いて暗号化された関連キーワードｗを暗号化タグｃとする。なお、暗号化データＥ（Ｄ）の生成には鍵Ｋ１と異なる鍵を用いてもよい。
即ち、暗号化部３１２は、入力部３１１から受け取った全ての保管データＤと、このＤの保管データ名ＩＤ（Ｄ）と関連キーワード集合Ｗ（Ｄ）に対して、保管データ名ＩＤ（Ｄ）と暗号化タグｃの組（ＩＤ（Ｄ），ｃ）を生成する。以降では、（ＩＤ（Ｄ），ｃ）を保管暗号化データと書く場合がある。なお、保管データ名ＩＤ（Ｄ）には暗号化データＥ（Ｄ）が対応付けられているものとする。つまり、保管暗号化データ（ＩＤ（Ｄ），ｃ）とは、保管データ名ＩＤ（Ｄ）に対応付けられた暗号化データＥ（Ｄ）と暗号化タグｃとの組を表すものとする。なお、暗号化部３１２が生成した保管暗号化データ（ＩＤ（Ｄ），ｃ）の集合を暗号化索引Ｃと書く場合がある。
送信部３１９は、暗号化部３１２から受け取った暗号化索引Ｃを管理装置５００ａへ送信する。また、送信部３１９は、入力部３１１から受け取った削除要求３３９を管理装置５００ａへ送信する。
その他の機能については、実施の形態１で説明したものと同様である。
【００９６】
＜検索装置４００ａ＞
次に、図１７を用いて、本実施の形態に係る検索装置４００ａの構成及び機能について説明する。
図１７は、実施の形態１で説明した図４に対応する図である。図１７において図４と異なる構成は次の通りである。本実施の形態に係る検索装置４００は、検索記憶部４５０に第１乱数Ｒを記憶していない。その他の構成は、図４と同様である。
また、検索装置４００において、実施の形態１と異なる機能は以下の通りである。
【００９７】
受信部４０１は、鍵生成装置２００から送信されてきた鍵Ｋ１及び鍵Ｋ２、又は管理装置５００から送信されてきた検索結果Ｉ（ｓ）を受信する。
補助情報保管部４２２は、検索履歴情報４５１を検索記憶部４５０に保管する。即ち、補助情報保管部４２２は、暗号化部４１２から確定的指示ｆ及び検索キーワードｓの確定的情報ｔを受け取り、受信部４０１から検索キーワードｓの検索結果Ｉ（ｓ）を受け取る。そして、補助情報保管部４２２は、管理装置５００により後述する高速索引情報５５４が作成されたことが確認できた場合は確定的情報ｔを検索履歴情報４５１に蓄積する。補助情報保管部４２２は、高速索引情報５５４が作成されたことが確認できなければ何も実行しない。以降では、補助情報保管部４２２により検索記憶部４５０の検索履歴情報４５１に蓄積された全ての確定的情報ｔの集合をＴと書く。
暗号化部４１２は、鍵保管部４２１から鍵Ｋ１及び鍵Ｋ２、補助情報保管部４２２から確定的情報ｔの集合Ｔ、入力部４１１から検索キーワードｓ及び確定的指示ｆを受け取る。暗号化部４１２は、検索キーワードの確定的情報ｔ又は検索クエリＱ（ｓ）を送信部４１９へ出力する。
受信部４０１、補助情報保管部４２２及び暗号化部４１２の機能については、第１乱数Ｒを扱わないという点以外は、実施の形態１と同様である。また、その他の機能については、実施の形態１と同様である。
【００９８】
＜管理装置５００ａ＞
次に、図１８を用いて、本実施の形態に係る管理装置５００ａの構成及び機能について説明する。
本実施の形態に係る管理装置５００ａの構成は、実施の形態１で説明した図５と同様である。管理装置５００ａにおいて、実施の形態１と異なる機能は以下の通りである。
【００９９】
受信部５０１は、鍵生成装置２００から送信された鍵Ｋ２、登録装置３００から送信された暗号化索引Ｃあるいは削除要求３３９、検索装置４００から送信された確定的情報ｔ又は検索クエリＱ（ｓ）を受信する。
データ保管部５２１は、受信部５０１から受け取った暗号化索引Ｃを管理記憶部５５０に保管する。また、データ保管部５２１は、受信部５０１から受け取った削除要求３３９に基づき、管理記憶部５５０に保管している保管暗号化データ（ＩＤ（Ｄ），ｃ）を削除する。
なお、以降の説明では、保管暗号化データ（ＩＤ（Ｄ），ｃ）を保管暗号化データ５５１、暗号化データＥ（Ｄ）を暗号化データ５５２、暗号化タグｃを暗号化タグ５５３として説明する場合がある。
照合部５０２は、受信部５０１から受け取った検索クエリＱ（ｓ）、鍵保管部５１１から受け取った鍵Ｋ２、データ保管部５２１から受け取った全ての保管暗号化データ（ＩＤ（Ｄ），ｃ）に対して、検索結果Ｉ（ｓ）を生成し、送信部５０９へ出力する。また、検索結果Ｉ（ｓ）が空集合でない場合、照合部５０２は、確定的情報ｔと検索結果Ｉ（ｓ）を高速照合部５３１へ出力する。
その他の機能については、実施の形態１と同様である。
【０１００】
本実施の形態に係る秘匿検索システム１００ａが備える鍵生成装置２００と登録装置３００ａと検索装置４００ａと管理装置５００ａとの各装置のハードウェアについては、実施の形態１と同様である。
【０１０１】
＊＊＊動作の説明＊＊＊
次に、本実施の形態に係る秘匿検索システム１００ａにおける秘匿検索方法６１０及び秘匿検索プログラム６２０による秘匿検索処理Ｓ１００ａについて説明する。
実施の形態１と同様に、秘匿検索システム１００ａの秘匿検索処理Ｓ１００は、鍵生成保管処理Ｓ１１０と、登録処理Ｓ１２０ａと、検索処理Ｓ１３０ａと、削除処理Ｓ１４０とを有する。
【０１０２】
＜鍵生成保管処理Ｓ１１０＞
本実施の形態に係る秘匿検索システム１００の鍵生成保管処理Ｓ１１０は、実施の形態１で説明した図６と同様であるため説明を省略する。
【０１０３】
＜登録処理Ｓ１２０ａ＞
図１９を用いて、本実施の形態に係る秘匿検索システム１００ａの登録処理Ｓ１２０ａについて説明する。図１９は、実施の形態１で説明した図７に対応する図である。図１９において図７と同様の処理については同一の符号を付し、その説明を省略する場合がある。
図１９のステップＳ７０１、ステップＳ７０２ａ及びステップＳ７０３は登録装置３００ａにより実行される暗号化処理Ｓ１２３ａである。ステップＳ７０７からステップＳ７０８は管理装置５００ａにより実行されるデータ保管処理Ｓ１２５である。本実施の形態では、ステップＳ７０４と、ステップＳ７０５からステップＳ７０６の第１乱数保管処理Ｓ１２４とが存在しない点が実施の形態１とは異なる。
【０１０４】
登録装置３００ａの暗号化処理Ｓ１２３ａにおいて、登録装置３００ａは、保管データ集合Ｕと、Ｕのそれぞれの要素Ｄの保管データ名ＩＤ（Ｄ）と、Ｕのそれぞれの要素Ｄに関連付けられた関連キーワード集合Ｗ（Ｄ）に対し暗号化を実行し、暗号化索引Ｃを生成する。また、登録装置３００は、暗号化索引Ｃと、暗号化データＥ（Ｄ）とを管理装置５００ａに送信する。
以下に具体的に説明する。
【０１０５】
ステップＳ７０１において、登録装置３００ａの入力部３１１は、データ登録者から、キーボード、マウスあるいは記憶装置から入力された保管データＤと保管データ名ＩＤ（Ｄ）と保管データＤに関連付ける関連キーワードｗの集合Ｗ（Ｄ）とを受け取る。もし、データ登録者から保管データ名ＩＤ（Ｄ）の入力がなければ、入力部３１１は、入力された保管データＤの保管データ名ＩＤ（Ｄ）を乱数と割り当ててもよいし、他の保管データの保管データ名と重複しないように０より大きい整数の値を順に割り当ててもよい。
【０１０６】
ステップＳ７０２ａにおいて、登録装置３００ａの暗号化部３１２は、ステップＳ６０５で鍵保管部３０２に保管された鍵Ｋ１を受け取る。また、暗号化部３１２は、ステップＳ７０１で入力部３１１に入力された保管データ集合Ｕと、Ｕのそれぞれの要素Ｄの保管データ名ＩＤ（Ｄ）と、Ｕのそれぞれの要素Ｄの関連キーワードｗの集合Ｗ（Ｄ）とを受け取る。そして、暗号化部３１２は、以下の処理を行う。
保管データＤの関連キーワードの集合Ｗ（Ｄ）の要素の一つを関連キーワードｗとする。暗号化部３１２は、Ｗに含まれる全ての関連キーワードｗに対して、ｃ＝Ｅ（Ｋ１，ｗ，ｊ）とする。また、（ＩＤ（Ｄ），ｃ）として、暗号化索引Ｃの要素である保管暗号化データを生成する。ただし、ｊはｗに対して重複なく割り振られる値である。具体的には、複数の保管データに関連するキーワードｗが存在する場合、それぞれの保管データに対して暗号化タグｃ＝Ｅ（Ｋ１，ｗ，ｊ）が生成されるが、このときｊは重複することなく割り振る。すなわち、暗号化タグｃの集合を考えると、無視できる確率を除いてその集合の要素は互いに異なる。ｊは、具体的には、カウンタ値である。ｊをカウンタ値とした場合、キーワードｗ毎にカウンタ値ｊを初期値１として設定し、同じキーワードｗの暗号化タグｃを生成するたびにｊに１を加える。ｊは、具体的には、ハッシュチェインのハッシュ値である。ｊをハッシュ値とした場合、キーワードｗ毎にハッシュ値ｊを初期値１として設定し、同じキーワードｗの暗号化タグｃを生成するたびにｊをｊのハッシュ値に更新する。なお、Ｅは暗号化関数とする。具体的には、ＥはＡＥＳ（Ａｄｖａｎｃｅｄ  Ｅｎｃｒｙｐｔｉｏｎ  Ｓｔａｎｄａｒｄ）のような共通鍵暗号方式、ＨＭＡＣ（Ｈａｓｈ−ｂａｓｅｄ  Ｍｅｓｓａｇｅ  Ａｕｔｈｅｎｔｉｃａｔｉｏｎ  Ｃｏｄｅ）のようなメッセージ認証符号、ＳＨＡ（Ｓｅｃｕｒｅ  Ｈａｓｈ  Ａｌｇｏｒｉｔｈｍ）−２５６のようなハッシュ関数である。
以上のように、登録装置３００ａの暗号化部３１２は、暗号化索引Ｃを生成する。
なお、関連キーワードｗが関連付いていない保管データＤに対して、ｊ＞｜Ｕ｜であるようなｊを用いて保管暗号化データを生成し暗号化索引Ｃに追加してよい。これにより、暗号化索引Ｃにおける保管データ名の出現頻度を均一にすることもできる。また、どの保管データＤにも関連付いていない関連キーワードに対して保管暗号化データを生成し暗号化索引Ｃに追加してよい。これにより、暗号化索引Ｃのサイズを調節することもできる。
【０１０７】
ステップＳ７０３において、登録装置３００ａの送信部３１９は、ステップＳ７０２ａで生成した暗号化索引Ｃを管理装置５００ａへ送信する。
【０１０８】
管理装置５００ａのデータ保管処理Ｓ１２５において、管理装置５００ａは、保管データＤが暗号化された暗号化データＥ（Ｄ）と、保管データＤに関連付けられた関連キーワードＷ（Ｄ）に対し暗号化を実行することにより生成された暗号化索引Ｃとを受信する。そして、管理装置５００ａは、暗号化データＥ（Ｄ）と暗号化索引Ｃとを管理記憶部５５０に保管する。
以下に具体的に説明する。
【０１０９】
ステップＳ７０７において、管理装置５００ａの受信部５０１は、ステップＳ７０３で登録装置３００ａの送信部３１９から送信された暗号化索引Ｃを、管理装置５００ａの通信装置９５０を介して受信する。
ステップＳ７０８において、管理装置５００ａのデータ保管部５２１は、ステップＳ７０７で受信部５０１が受信した暗号化索引Ｃを管理記憶部５５０に保管する。上述したように、暗号化索引Ｃは、保管データ名ＩＤ（Ｄ）に対応付けられた暗号化データＥ（Ｄ）と、暗号化タグｃとの組の集合である。
【０１１０】
以上で、秘匿検索システム１００ａの登録処理Ｓ１２０ａは終了する。
【０１１１】
＜検索処理Ｓ１３０ａ＞
図２０を用いて、本実施の形態に係る秘匿検索システム１００ａの検索処理Ｓ１３０ａについて説明する。図２０は、実施の形態１で説明した図８に対応する図である。図２０において、図８と同様の処理ついては同一の符号を付し、その説明を省略する場合がある。
【０１１２】
図２０のステップＳ８０１からステップＳ８１１は、検索装置４００ａと管理装置５００ａとが実行する処理である。ステップＳ８０１からステップＳ８０３は検索装置４００ａにより実行される検索クエリ生成処理Ｓ１３４ａである。ステップＳ８０４からステップＳ８０８は管理装置５００ａによって実行される判定処理Ｓ１３５ａである。ステップＳ８０９からステップＳ８１１は検索装置４００ａにより実行される結果出力処理Ｓ１３６である。
【０１１３】
検索装置４００ａの検索クエリ生成処理Ｓ１３４ａにおいて、検索装置４００ａは、管理記憶部５５０に保管されている暗号化データＥ（Ｄ）を検索する検索キーワードｓを取得する。検索装置４００ａは、検索キーワードｓから一意に定まる確定的情報ｔを算出し、検索キーワードｓに対し確定的情報ｔを用いて確率暗号方式の暗号化を実行することにより検索クエリＱ（ｓ）を生成する。そして、検索装置４００ａは、検索クエリＱ（ｓ）を管理装置５００ａに送信する。
以下に具体的に説明する。
【０１１４】
ステップＳ８０１において、検索装置４００ａの入力部４１１は、データ検索者により、キーボード、マウスあるいは記憶装置から入力された検索キーワードｓ及び確定的指示ｆを受け取る。
ここで、確定的指示ｆは、検索キーワードｓを暗号化する際に確定的情報ｔを用いるか否かを指示するものであり、具体的にはフラグである。確定的指示ｆは、高速索引作成フラグともいう。また、検索キーワードｓを暗号化する際に確定的情報ｔを用いるとは、検索クエリＱ（ｓ）に高速検索に有効な情報である確定的情報ｔを埋め込むことを意味する。
検索装置４００ａは、確定的指示ｆを取得し、確定的指示ｆにより確定的情報ｔを用いると指示された場合、検索キーワードｓに対し確定的情報ｔを用いて確率暗号方式の暗号化を実行する。
また、検索装置４００ａは、確定的指示ｆにより確定的情報ｔを用いないと指示された場合、検索キーワードｓに対し確定的情報ｔを用いずに確率暗号方式の暗号化を実行する。ステップＳ８０１の処理は、実施の形態１と同様である。
【０１１５】
ステップＳ８０２ａにおいて、検索装置４００ａの暗号化部４１２は、ステップＳ６０７で鍵保管部４２１に保管された鍵Ｋ１及び鍵Ｋ２、及び補助情報保管部４２２により管理される確定的情報ｔの集合Ｔ、ステップＳ８０１で入力部４１１に入力された検索キーワードｓ及び確定的指示ｆを受け取る。暗号化部４１２は、受け取ったデータを用いて以下の処理を行う。
【０１１６】
図２１を用いて、本実施の形態に係る検索処理Ｓ１３０ａのキーワード暗号化処理Ｓ８０２ａについて説明する。図２１は、実施の形態１で説明した図９に対応する図である。図２１において、図９と同様の処理ついては同一の符号を付し、その説明を省略する場合がある。
ステップＳ４０１において、検索装置４００ａは、検索キーワードｓに対して確定暗号方式の暗号化を実行することにより確定的情報ｔを算出する。具体的には、暗号化部４１２は、検索キーワードｓの確定的情報ｔをｔ＝Ｅ（Ｋ１，ｓ）とする。なお、確定的情報ｔの生成に用いる鍵はＫ１と異なる鍵を用いてもよい。
ステップＳ４０２において、暗号化部４１２は、ステップＳ４０１で確定的情報ｔを算出すると、算出した確定的情報ｔが検索記憶部４５０に蓄積されているか否かを判定する。暗号化部４１２は、算出した確定的情報ｔが検索記憶部４５０に蓄積されている場合（Ｓ４０２でＹＥＳ）、この確定的情報ｔを管理装置５００ａに送信する。
具体的には、暗号化部４１２は、集合Ｔに、算出した確定的情報ｔが含まれているか確認する。算出した確定的情報ｔが集合Ｔに含まれている場合、暗号化部４１２は、算出した確定的情報ｔを送信部４１９へ出力する（ステップＳ４０３）。
【０１１７】
ステップＳ４０４ａにおいて、暗号化部４１２は、確定的情報ｔが検索記憶部４５０に蓄積されていない場合（Ｓ４０２でＮＯ）、すなわち、算出した確定的情報ｔが集合Ｔに含まれていない場合、検索クエリＱ（ｓ）を管理装置５００ａに送信する。
暗号化部４１２は、検索クエリＱ（ｓ）を以下のように生成する。暗号化部４１２は、乱数を生成し、確定的情報ｔとを用いて、検索キーワードｓに対し確率暗号方式の暗号化を実行する。具体的には、暗号化部４１２は、１から保管データ集合Ｕの要素数のカウンタ値ｊ（１＜＝ｊ＜｜Ｕ｜）に対して、暗号文ｄｉをｄｉ＝Ｅ（Ｋ１，ｗ，ｊ）とする。次に、それぞれの暗号文ｄｉに対して、暗号文ｋｉをｋｉ＝Ｅ（Ｋ２，ｄｉ）とする。さらに、乱数生成器によって乱数ｖを生成し、暗号文ｑｉをｑｉ＝（Ｅ（ｋｉ，ｔ｜｜ｖ），ｖ）とする。このとき、確定的指示ｆが偽の場合は、ｔの代わりに意味のない乱数を用いる。ここで、演算｜｜はビット列の連結を表す。生成した暗号文ｑｉの集合をＱ（ｓ）と書く。暗号文ｑｉの集合Ｑ（ｓ）を検索クエリと呼ぶ。なお、乱数ｖは、ｑｉそれぞれに含めずに、Ｑ（ｓ）にひとつだけ含めてもよい。最後に、暗号化部４１２は、検索クエリＱ（ｓ）を送信部４１９へ出力する（ステップＳ４０５）。また、暗号化部４１２は、確定的指示ｆ及び確定的情報ｔを補助情報保管部４２２に出力する。
なお、暗号文ｑｉに乱数ｖを含めず、代わりにｑｉ＝Ｅ（ｋｉ，０λ｜｜ｔ｜｜ｖｉ）とすることもできる。検索クエリＱ（ｓ）と暗号化タグｃとの一致判定の際は、暗号文ｑｉを復号した結果、平文に０λが現れるならば一致、そうでなければ不一致として判定できる。
ステップＳ４０６において、送信部４１９は、確定的情報ｔ又は検索クエリＱ（ｓ）を管理装置５００ａに送信する。
以上でステップＳ８０２ａの処理を終わり、図２０のステップＳ８０３に進む。なお、ステップＳ８０２ａにおいて、ステップＳ４０１からステップＳ４０３、及びステップＳ４０５からステップＳ４０６の処理は、実施の形態１と同様である。
【０１１８】
ステップＳ８０３において、検索装置４００ａの送信部４１９は、ステップＳ８０２ａで暗号化部４１２が生成した、確定的情報ｔ又は検索クエリＱ（ｓ）を管理装置５００ａへ送信する。
以上で検索装置４００ａの検索クエリ生成処理Ｓ１３４ａの処理を終わり、ステップＳ８０４に進む。
【０１１９】
管理装置５００ａの判定処理Ｓ１３５ａにおいて、管理装置５００ａは、検索装置４００ａから検索クエリＱ（ｓ）を受信すると、検索クエリＱ（ｓ）を復号して得られる検索キーワードｓが、管理記憶部５５０に保管されている暗号化タグｃを復号して得られる関連キーワードｗと一致するか否かを判定する。管理装置５００ａは、検索クエリＱ（ｓ）を復号して得られる検索キーワードｓが、暗号化タグｃを復号して得られる関連キーワードｗと一致した場合、暗号化タグｃに対応する暗号化データＥ（Ｄ）を含む検索結果Ｉ（ｓ）を検索装置４００ａに送信すると共に、検索クエリＱ（ｓ）を復号して得られる確定的情報ｔと暗号化タグｃに対応する暗号化データＥ（Ｄ）とを対応付けて管理記憶部５５０に記憶する。
管理装置５００ａは、検索装置４００ａから確定的情報ｔを受信すると、確定的情報ｔに対応する暗号化データＥ（Ｄ）を管理記憶部５５０から取得し、取得した暗号化データＥ（Ｄ）を含む検索結果Ｉ（ｓ）を検索装置４００ａに送信する。
以下に具体的に説明する。
【０１２０】
ステップＳ８０４において、管理装置５００ａの受信部５０１は、ステップＳ８０３で検索装置４００ａの送信部４１９から送信された、確定的情報ｔ又は検索クエリＱ（ｓ）を受信する。
ステップＳ８０４ａにおいて検索クエリか確定的情報かを判定し、受信部５０１が検索クエリＱ（ｓ）を受信した場合、処理はステップ８０５ａ１に進み、受信部５０１が確定的情報ｔを受信した場合、処理はステップ８０７に進む。
【０１２１】
ステップＳ８０５ａ１において、管理装置５００ａの照合部５０２は、ステップＳ８０４で受信部５０１が受信した情報が検索クエリＱ（ｓ）であった場合、ステップＳ６０９で鍵保管部５１１が保管した鍵Ｋ２、ステップＳ７０８でデータ保管部５２１が保管した全ての保管暗号化データ（ＩＤ（Ｄ），ｃ）に対して、以下の処理を行う。
照合部５０２は、空の検索結果Ｉ（ｓ）を用意する。照合部５０２は、全ての保管暗号化データ（ＩＤ（Ｄ），ｃ）と検索クエリＱ（ｓ）に対して、以下の処理を行う。暗号化索引Ｃに含まれる全ての暗号化タグｃと、検索クエリＱ（ｓ）の全ての要素ｑの、任意のペア（ｃ，ｑ）に対して、一致判定を以下のようにして行う。ｑの２つの要素をｅ１，ｅ２とする。暗号文ｋをｋ＝Ｅ（Ｋ２，ｃ）とする。復号関数であるＤｅｃを用いて、ｍ＝Ｄｅｃ（ｋ，ｅ１）とする。ｍをｍ１とｍ２に分割する。ｍ２がｅ２と一致するとき、ｃとｑは一致したと判定する。これは即ち、検索クエリＱ（ｓ）の要素と一致する要素が暗号化索引Ｃに含まれていることを示している。このとき、ｍ１は確定的情報ｔである。ｃとｑが一致した場合、検索結果Ｉ（ｓ）に保管データ名ＩＤ（Ｄ）を加える。ここで、検索結果Ｉ（ｓ）に保管データ名ＩＤ（Ｄ）を加えるとは、保管データ名ＩＤ（Ｄ）に対応付けられた暗号化データＥ（Ｄ）を検索結果Ｉ（ｓ）に含めることを意味する。
上記の処理は、検索クエリＱ（ｓ）を復号して得られる検索キーワードｓが、管理記憶部５５０に保管されている暗号化タグｃを復号して得られる関連キーワードｗと一致するか否かを判定する処理である。
【０１２２】
照合部５０２は、検索結果Ｉ（ｓ）が空集合の場合、即ち、ステップＳ８０５ａでＹＥＳの場合、送信部５０９に検索結果Ｉ（ｓ）を出力する。照合部５０２は、検索結果Ｉ（ｓ）が空集合でない場合、即ちステップ８０５ａでＮＯの場合、高速照合部５３１に確定的情報ｔとしてのｍ１及び検索結果Ｉ（ｓ）を出力する。
【０１２３】
ステップＳ８０６において、管理装置５００ａの高速照合部５３１は、検索クエリＱ（ｓ）を復号して得られる確定的情報ｔと検索結果Ｉ（ｓ）とを対応付けて管理記憶部５５０に記憶する。具体的には、高速照合部５３１は、ステップＳ８０５ａ１で照合部５０２から受け取った確定的情報ｔ及び検索結果Ｉ（ｓ）を入力とする。そして、高速照合部５３１は、確定的情報ｔをキーとして検索結果Ｉ（ｓ）を高速に取出せる高速索引情報５５４を管理記憶部５５０に保管する。高速索引情報５５４は、具体的にはハッシュテーブルを利用することにより実現される。
【０１２４】
ステップＳ８０７において、管理装置５００ａの高速照合部５３１は、ステップＳ８０４で受信部５０１が受信した情報が確定的情報ｔであった場合、受信部５０１から確定的情報ｔを受け取る。高速照合部５３１は、受け取った確定的情報ｔに対して、高速索引情報５５４から対応する検索結果Ｉ（ｓ）を取り出し、送信部５０９へＩ（ｓ）を出力する。高速照合部５３１は、受け取った確定的情報ｔに対応する検索結果Ｉ（ｓ）がない場合、送信部５０９へＩ（ｓ）として空集合を出力する。
【０１２５】
ステップＳ８０８において、管理装置５００ａの送信部５０９は、照合部５０２又は高速照合部５３１から受け取った検索結果Ｉ（ｓ）を検索装置４００へ送信する。
以上で管理装置５００ａの判定処理Ｓ１３５ａの処理を終わり、ステップＳ８０９に進む。なお、ステップＳ８０３、ステップＳ８０４及びステップＳ８０４ａの処理は、実施の形態１と同様である。また、ステップＳ８０５ａ、ステップＳ８０６、ステップＳ８０７及びステップＳ８０８の処理は、実施の形態１と同様である。
【０１２６】
検索装置４００ａの結果出力処理Ｓ１３６において、検索装置４００ａは、管理装置５００ａから検索結果Ｉ（ｓ）を受信すると、確定的情報ｔを検索記憶部４５０に蓄積する。ステップＳ８０９からステップＳ８１１の結果出力処理Ｓ１３６は、実施の形態１と同様である。
以上により、秘匿検索システム１００ａの検索処理Ｓ１３０ａは終了する。
なお、秘匿検索システム１００ａの削除処理Ｓ１４０については、実施の形態１で説明した図１０の処理と同様であるため、説明を省略する。
【０１２７】
＊＊＊本実施の形態の効果の説明＊＊＊
本実施の形態に係る秘匿検索システムは、検索を高速に行うために有用な情報が埋め込まれた検索クエリを生成する検索装置の暗号化部と、検索クエリを受信する管理装置の受信部とを備える。また、秘匿検索システムは、関連キーワードが暗号化された暗号化タグを保管する管理装置のデータ保管部と、保管されている暗号化タグ集合の中から、暗号化された検索キーワードと一致するものを取り出す管理装置の照合部とを備える。よって、本実施の形態に係る秘匿検索システムは、確率的であり、かつ、検索処理を高速化するための確定的情報が埋め込まれた検索クエリを用いて暗号化タグを検索することができる。また、本実施の形態に係る秘匿検索システムは、検索クエリが、確率的暗号化によって生成されている。よって、検索クエリは、検索キーワードの確定的情報に依らない。これにより検索クエリは頻度分析耐性が高くなり、安全性が高い。
【０１２８】
また、本実施の形態に係る秘匿検索システムは、暗号化タグが、確定的暗号化によって生成されているが、暗号化タグｃを生成する際、同じ関連キーワードｗに対してカウンタ値ｊを重複なく入力することで、同じ関連キーワードｗに対する暗号化タグｃも重複しない。すなわち、カウンタ値を使用することで暗号文を常に変化させ、頻度分析を回避している。これにより暗号化タグは頻度分析耐性が高くなり、安全性が高い。また、本実施の形態に係る秘匿検索システムでは、検索装置において第１乱数ｒを記憶させる必要がなくなった。
【０１２９】
実施の形態３．
本実施の形態では、主に、実施の形態２と異なる点について説明する。
本実施の形態において、実施の形態２と共通する部分については、同一の符号を付し、その説明を省略する場合がある。
【０１３０】
＊＊＊構成の説明＊＊＊
図２２を用いて、本実施の形態に係る秘匿検索システム１００ｂの構成について説明する。
秘匿検索システム１００ｂは、鍵生成装置２００と、登録装置３００ａと、検索装置４００ｂと、管理装置５００ｂとを有する。図２２は、実施の形態２で説明した図１５に対応する。秘匿検索システム１００ｂの基本的な構成及び機能については、実施の形態２で説明した図１５と同様であるため、その説明を省略する。
また、鍵生成装置２００と登録装置３００ａとの各々の構成及び機能については、実施の形態２と同様であるため、その説明を省略する。
また、検索装置４００ｂと管理装置５００ｂとの各々の構成は、実施の形態２と同様であるため、その説明を省略する。なお、検索装置４００ｂでは、暗号化部４１２の機能が実施の形態２と異なる。また、管理装置５００ｂでは、照合部５０２の機能が実施の形態２と異なる。
【０１３１】
本実施の形態に係る秘匿検索システム１００ｂでは、実施の形態２と異なり、検索クエリが２つの第１暗号文Ｑ１（ｓ）及び第２暗号文Ｑ２（ｓ）で構成される。第１暗号文Ｑ１（ｓ）は、暗号化タグと一致判定可能な暗号文である。第２暗号文Ｑ２（ｓ）は、第１暗号文Ｑ１（ｓ）と一致した暗号化タグを用いて確定的情報を計算可能な暗号文である。第１暗号文Ｑ１（ｓ）は、検索用暗号文ともいう。第２暗号文Ｑ２（ｓ）は、高速再検索用暗号文ともいう。
検索装置４００ｂは、乱数とカウンタ値とを用いて、検索キーワードに対し確率暗号方式の暗号化を実行する。検索装置４００ｂは、暗号化タグと一致判定される第１暗号文Ｑ１（ｓ）と、第１暗号文Ｑ１（ｓ）と一致した前記暗号化タグを用いて確定的情報を算出するための第２暗号文Ｑ２（ｓ）とを生成する。
【０１３２】
＊＊＊動作の説明＊＊＊
次に、本実施の形態に係る秘匿検索システム１００ｂにおける秘匿検索方法６１０及び秘匿検索プログラム６２０による秘匿検索処理Ｓ１００ｂについて説明する。
実施の形態２と同様に、秘匿検索システム１００ｂの秘匿検索処理Ｓ１００ｂは、鍵生成保管処理Ｓ１１０と、登録処理Ｓ１２０ａと、検索処理Ｓ１３０ｂと、削除処理Ｓ１４０とを有する。
鍵生成保管処理Ｓ１１０と登録処理Ｓ１２０ａと削除処理Ｓ１４０との各々については、実施の形態２と同様であるため、その説明を省略する。
【０１３３】
＜検索処理Ｓ１３０ｂ＞
図２３を用いて、本実施の形態に係る秘匿検索システム１００ｂの検索処理Ｓ１３０ｂについて説明する。図２３は、実施の形態２で説明した図２０に対応する図である。図２３において、図２０と同様の処理ついては同一の符号を付し、その説明を省略する場合がある。
【０１３４】
図２３のステップＳ８０１からステップＳ８１１は、検索装置４００ｂと管理装置５００ｂとが実行する処理である。ステップＳ８０１からステップＳ８０３は検索装置４００ｂにより実行される検索クエリ生成処理Ｓ１３４ｂである。ステップＳ８０４からステップＳ８０８は管理装置５００ｂによって実行される判定処理Ｓ１３５ｂである。ステップＳ８０９からステップＳ８１１は検索装置４００ｂにより実行される結果出力処理Ｓ１３６である。
【０１３５】
検索装置４００ｂの検索クエリ生成処理Ｓ１３４ｂにおいて、検索装置４００ｂは、管理記憶部５５０に保管されている暗号化データＥ（Ｄ）を検索する検索キーワードｓを取得する。検索装置４００ｂは、検索キーワードｓから一意に定まる確定的情報ｔを算出し、検索キーワードｓに対し確定的情報ｔを用いて確率暗号方式の暗号化を実行することにより検索クエリＱ（ｓ）を生成する。そして、検索装置４００ｂは、検索クエリＱ（ｓ）を管理装置５００ｂに送信する。
以下に具体的に説明する。
【０１３６】
ステップＳ８０１の処理は、実施の形態２と同様である。
ステップＳ８０２ｂにおいて、検索装置４００ｂの暗号化部４１２は、ステップＳ６０７で鍵保管部４２１に保管された鍵Ｋ１及び鍵Ｋ２、及び補助情報保管部４２２により管理される確定的情報ｔの集合Ｔ、ステップＳ８０１で入力部４１１に入力された検索キーワードｓ及び確定的指示ｆを受け取る。暗号化部４１２は、受け取ったデータを用いて以下の処理を行う。
【０１３７】
図２４を用いて、本実施の形態に係る検索処理Ｓ１３０ｂのキーワード暗号化処理Ｓ８０２ｂについて説明する。図２４は、実施の形態２で説明した図２１に対応する図である。図２４において、図２１と同様の処理ついては同一の符号を付し、その説明を省略する場合がある。
ステップＳ４０１において、検索装置４００ｂは、検索キーワードｓに対して確定暗号方式の暗号化を実行することにより確定的情報ｔを算出する。具体的には、暗号化部４１２は、検索キーワードｓの確定的情報ｔをｔ＝Ｅ（Ｋ１，ｓ）とする。なお、確定的情報ｔの生成に用いる鍵はＫ１と異なる鍵を用いてもよい。
ステップＳ４０２において、暗号化部４１２は、ステップＳ４０１で確定的情報ｔを算出すると、算出した確定的情報ｔが検索記憶部４５０に蓄積されているか否かを判定する。暗号化部４１２は、算出した確定的情報ｔが検索記憶部４５０に蓄積されている場合（Ｓ４０２でＹＥＳ）、この確定的情報ｔを管理装置５００ｂに送信する。
具体的には、暗号化部４１２は、集合Ｔに、算出した確定的情報ｔが含まれているか確認する。算出した確定的情報ｔが集合Ｔに含まれている場合、暗号化部４１２は、算出した確定的情報ｔを送信部４１９へ出力する（ステップＳ４０３）。
ステップＳ４０１からステップＳ４０３の処理は、実施の形態２と同様である。
【０１３８】
ステップＳ４０４ｂにおいて、暗号化部４１２は、確定的情報ｔが検索記憶部４５０に蓄積されていない場合（Ｓ４０２でＮＯ）、すなわち、算出した確定的情報ｔが集合Ｔに含まれていない場合、検索クエリＱ（ｓ）を管理装置５００ｂに送信する。
暗号化部４１２は、検索クエリＱ（ｓ）を以下のように生成する。検索クエリＱ（ｓ）は２つの要素、すなわち第１暗号文Ｑ１（ｓ）と第２暗号文Ｑ２（ｓ）で構成されている。暗号化部４１２は、乱数生成器によって乱数ｖを生成し、確定的情報ｔを用いて、検索キーワードｓに対し確率暗号方式の暗号化を実行する。具体的には、暗号化部４１２は、１から保管データ集合Ｕの要素数のカウンタ値ｊ（１＜＝ｊ＜＝｜Ｕ｜）に対して、暗号文ｄｊをｄｊ＝Ｅ（Ｋ１，ｓ，ｊ）とする。次に、それぞれの暗号文ｄｊに対して、暗号文Ｑ１ｊ（ｓ）をＱ１ｊ（ｓ）＝（Ｅ（Ｋ２，ｄｊ，ｖ），ｖ）とする。さらに、暗号文Ｑ２ｊ（ｓ）をＱ２ｊ（ｓ）＝Ｆ（ｄｊ，ｔ｜｜ｖｊ）とする。ただし、ｖｊは乱数で、Ｑ２ｊ（ｓ）毎に生成してもよいし、Ｑ（ｓ）毎に生成してもよい。また、暗号化Ｆは秘密鍵ｄｊにより復号処理が可能な暗号化アルゴリズムとする。例えば、ＡＥＳでもよい。このとき、確定的指示ｆが偽の場合は、ｔの代わりに意味のない乱数を用いる。ここで、演算｜｜はビット列の連結を表す。生成した暗号文ｑｊ＝（Ｑ１ｊ（ｓ），Ｑ２ｊ（ｓ））の集合をＱ（ｓ）と書く。暗号文ｑｊの集合Ｑ（ｓ）を検索クエリと呼ぶ。なお、乱数ｖは、Ｑ１ｊ（ｓ）及びＱ２ｊ（ｓ）のそれぞれに含めずに、Ｑ（ｓ）に１つだけ含めてもよい。最後に、暗号化部４１２は、検索クエリＱ（ｓ）を送信部４１９へ出力する（ステップＳ４０５）。また、暗号化部４１２は、確定的指示ｆ及び確定的情報ｔを補助情報保管部４２２に出力する。
ステップＳ４０６において、送信部４１９は、確定的情報ｔ又は検索クエリＱ（ｓ）を管理装置５００ｂに送信する。
以上でステップＳ８０２ｂの処理を終わり、図２３のステップＳ８０３に進む。なお、ステップＳ８０２ｂにおいて、ステップＳ４０１からステップＳ４０３、及びステップＳ４０５からステップＳ４０６の処理は、実施の形態２と同様である。
【０１３９】
ステップＳ８０３において、検索装置４００ｂの送信部４１９は、ステップＳ８０２ｂで暗号化部４１２が生成した、確定的情報ｔ又は検索クエリＱ（ｓ）を管理装置５００ｂへ送信する。
以上で検索装置４００ｂの検索クエリ生成処理Ｓ１３４ｂの処理を終わり、ステップＳ８０４に進む。
【０１４０】
管理装置５００ｂの判定処理Ｓ１３５ｂにおいて、管理装置５００ｂは、検索装置４００ｂから検索クエリＱ（ｓ）を受信すると、検索クエリＱ（ｓ）を復号して得られる検索キーワードｓが、管理記憶部５５０に保管されている暗号化タグｃを復号して得られる関連キーワードｗと一致するか否かを判定する。管理装置５００ｂは、検索クエリＱ（ｓ）を復号して得られる検索キーワードｓが、暗号化タグｃを復号して得られる関連キーワードｗと一致した場合、暗号化タグｃに対応する暗号化データＥ（Ｄ）を含む検索結果Ｉ（ｓ）を検索装置４００ｂに送信すると共に、検索クエリＱ（ｓ）を復号して得られる確定的情報ｔと暗号化タグｃに対応する暗号化データＥ（Ｄ）とを対応付けて管理記憶部５５０に記憶する。
管理装置５００ｂは、検索装置４００ｂから確定的情報ｔを受信すると、確定的情報ｔに対応する暗号化データＥ（Ｄ）を管理記憶部５５０から取得し、取得した暗号化データＥ（Ｄ）を含む検索結果Ｉ（ｓ）を検索装置４００ｂに送信する。
以下に具体的に説明する。
【０１４１】
ステップＳ８０４において、管理装置５００ｂの受信部５０１は、ステップＳ８０３で検索装置４００ｂの送信部４１９から送信された、確定的情報ｔ又は検索クエリＱ（ｓ）を受信する。
ステップＳ８０４ａにおいて検索クエリか確定的情報かを判定し、受信部５０１が検索クエリＱ（ｓ）を受信した場合、処理はステップ８０５ｂ１に進み、受信部５０１が確定的情報ｔを受信した場合、処理はステップ８０７に進む。
【０１４２】
ステップＳ８０５ｂ１において、管理装置５００ｂの照合部５０２は、ステップＳ８０４で受信部５０１が受信した情報が検索クエリＱ（ｓ）であった場合、ステップＳ６０９で鍵保管部５１１が保管した鍵Ｋ２、ステップＳ７０８でデータ保管部５２１が保管した全ての保管暗号化データ（ＩＤ（Ｄ），ｃ）に対して、以下の処理を行う。
照合部５０２は、空の検索結果Ｉ（ｓ）を用意する。照合部５０２は、全ての保管暗号化データ（ＩＤ（Ｄ），ｃ）と検索クエリＱ（ｓ）に対して、以下の処理を行う。
暗号化索引Ｃに含まれる全ての暗号化タグｃと、検索クエリＱ（ｓ）の全ての要素Ｑ１ｊ（１＜＝ｊ＜＝｜Ｕ｜）に対して、一致判定を以下のようにして行う。はじめに、Ｑ１ｊに含まれる乱数ｖを用いて、全ての暗号化タグｃに対して、ｃ’＝Ｅ（Ｋ２，ｃ，ｖ）を計算する。次に、計算した全てのｃ’に含まれるようなＱ１ｊを求める。この処理は、Ｑ１ｊとｃ’との共通部分を計算する処理であり、ソート、二分木探索あるいはハッシュマップなどにより効率的に計算される。このとき、計算されたＱ１ｊはｃに一致したと判定される。これは、検索クエリＱ（ｓ）の要素と一致する要素が暗号化索引Ｃに含まれていることを示している。すなわち、第１暗号文Ｑ１（ｓ）は、暗号化タグｃと一致判定される。
ここで、Ｑ１ｊのうち、ｃ’に含まれるようなＱ１ｊを１つ選び、これをＱ１ｊ’とする。そして、Ｑ１ｊ’と一致するｃ’に対応するｃに対して、ｍ＝Ｄｅｃ（ｃ，Ｑ２ｊ’）とする。このとき、ｍは確定的情報ｔである。すなわち、第２暗号文Ｑ２（ｓ）は、第１暗号文Ｑ１（ｓ）と一致した暗号化タグｃを用いて確定的情報ｔを算出するために用いられる。ｃとＱ１ｊが一致した場合、そのｃに対応する保管データ名ＩＤ（Ｄ）を検索結果Ｉ（ｓ）に加える。ここで、検索結果Ｉ（ｓ）に保管データ名ＩＤ（Ｄ）を加えるとは、保管データ名ＩＤ（Ｄ）に対応付けられた暗号化データＥ（Ｄ）を検索結果Ｉ（ｓ）に含めることを意味する。
上記の処理は、検索クエリＱ（ｓ）を復号して得られる検索キーワードｓが、管理記憶部５５０に保管されている暗号化タグｃを復号して得られる関連キーワードｗと一致するか否かを判定する処理である。
【０１４３】
照合部５０２は、検索結果Ｉ（ｓ）が空集合の場合、即ち、ステップＳ８０５ａでＹＥＳの場合、送信部５０９に検索結果Ｉ（ｓ）を出力する。照合部５０２は、検索結果Ｉ（ｓ）が空集合でない場合、即ちステップ８０５ａでＮＯの場合、高速照合部５３１に確定的情報ｔとしてのｍ及び検索結果Ｉ（ｓ）を出力する。
【０１４４】
ステップＳ８０６において、管理装置５００ｂの高速照合部５３１は、検索クエリＱ（ｓ）を復号して得られる確定的情報ｔと検索結果Ｉ（ｓ）とを対応付けて管理記憶部５５０に記憶する。具体的には、高速照合部５３１は、ステップＳ８０５ｂ１で照合部５０２から受け取った確定的情報ｔ及び検索結果Ｉ（ｓ）を入力とする。そして、高速照合部５３１は、確定的情報ｔをキーとして検索結果Ｉ（ｓ）を高速に取出せる高速索引情報５５４を管理記憶部５５０に保管する。高速索引情報５５４は、具体的にはハッシュテーブルを利用することにより実現される。
【０１４５】
ステップＳ８０７において、管理装置５００ｂの高速照合部５３１は、ステップＳ８０４で受信部５０１が受信した情報が確定的情報ｔであった場合、受信部５０１から確定的情報ｔを受け取る。高速照合部５３１は、受け取った確定的情報ｔに対して、高速索引情報５５４から対応する検索結果Ｉ（ｓ）を取り出し、送信部５０９へＩ（ｓ）を出力する。高速照合部５３１は、受け取った確定的情報ｔに対応する検索結果Ｉ（ｓ）がない場合、送信部５０９へＩ（ｓ）として空集合を出力する。
【０１４６】
ステップＳ８０８において、管理装置５００ｂの送信部５０９は、照合部５０２又は高速照合部５３１から受け取った検索結果Ｉ（ｓ）を検索装置４００ｂへ送信する。
以上で管理装置５００ｂの判定処理Ｓ１３５ｂの処理を終わり、ステップＳ８０９に進む。なお、ステップＳ８０３、ステップＳ８０４及びステップＳ８０４ａの処理は、実施の形態２と同様である。また、ステップＳ８０５ａ、ステップＳ８０６、ステップＳ８０７及びステップＳ８０８の処理は、実施の形態２と同様である。
【０１４７】
検索装置４００ｂの結果出力処理Ｓ１３６において、検索装置４００ｂは、管理装置５００ｂから検索結果Ｉ（ｓ）を受信すると、確定的情報ｔを検索記憶部４５０に蓄積する。ステップＳ８０９からステップＳ８１１の結果出力処理Ｓ１３６は、実施の形態２と同様である。
以上により、秘匿検索システム１００ｂの検索処理Ｓ１３０ｂは終了する。
【０１４８】
＊＊＊本実施の形態の効果の説明＊＊＊
本実施の形態に係る秘匿検索システムは、検索を高速に行うために有用な情報が埋め込まれた検索クエリを生成する検索装置の暗号化部と、検索クエリを受信する管理装置の受信部とを備える。また、秘匿検索システムは、関連キーワードが暗号化された暗号化タグを保管する管理装置のデータ保管部と、保管されている暗号化タグ集合の中から、暗号化された検索キーワードと一致するものを取り出す管理装置の照合部とを備える。よって、本実施の形態に係る秘匿検索システムは、確率的であり、かつ、検索処理を高速化するための確定的情報が埋め込まれた検索クエリを用いて暗号化タグを検索することができる。また、本実施の形態に係る秘匿検索システムは、検索クエリが、確率的暗号化によって生成されている。よって、検索クエリは、検索キーワードの確定的情報に依らない。これにより検索クエリは頻度分析耐性が高くなり、安全性が高い。
さらに、本実施の形態に係る秘匿検索システムでは、２つの集合の共通部分を求める処理を利用して検索を行うため、ソート、二分木探索あるいはハッシュマップなどにより効率的に計算される。よって、本実施の形態に係る秘匿検索システムによれば、より高速に検索を実行でき、効率的である。
【０１４９】
以上、実施の形態１から３について説明した。実施の形態１から３では、秘匿検索システムは、鍵生成装置、登録装置、検索装置、管理装置を備え、各装置が１つのコンピュータである場合について説明した。しかし、鍵生成装置と登録装置とが１つのコンピュータであってもよい。また、検索装置と管理装置とが１つのコンピュータであってもよい。また、全ての装置が１つのコンピュータで実現されていても構わない。上記の実施の形態１から３で説明した機能を実現することができれば、秘匿検索システムの各装置をどのように組み合わせて秘匿検索システムを構成しても構わない。
【０１５０】
また、秘匿検索システムの各装置において、「部」として説明するもののうち、いずれか１つのみを採用してもよいし、いくつかの任意の組合せを採用してもよい。つまり、秘匿検索システムの各装置の機能ブロックは、上記の実施の形態１及び２で説明した機能を実現することができれば、任意である。これらの機能ブロックを、どのような組合せで各装置を構成しても構わない。また、これらの機能ブロックを、任意のブロック構成で各装置を構成しても構わない。
【０１５１】
また、実施の形態１から３のうち、複数を部分的に組合せて実施しても構わない。あるいは、これらの実施の形態のうち、１つの発明を部分的に実施しても構わない。その他、これらの実施の形態を、全体としてあるいは部分的に、どのように組合せて実施しても構わない。
なお、上記の実施の形態は、本質的に好ましい例示であって、本発明、その適用物あるいは用途の範囲を制限することを意図するものではなく、必要に応じて種々の変更が可能である。
【符号の説明】
【０１５２】
１００  秘匿検索システム、１０１  ネットワーク、２００  鍵生成装置、２０１  パラメータ受信部、２０２  鍵生成部、２０９  送信部、２５０  鍵生成記憶部、３００  登録装置、３０１  受信部、３０２  鍵保管部、３１１  入力部、３１２  暗号化部、３１９  送信部、３５０  登録記憶部、３３９  削除要求、４００  検索装置、４０１  受信部、４１１  入力部、４１２  暗号化部、４１９  送信部、４２１  鍵保管部、４２２  補助情報保管部、４３９  検索結果出力部、４５０  検索記憶部、４５１  検索履歴情報、５００  管理装置、５０１  受信部、５１１  鍵保管部、５２１  データ保管部、５３１  高速照合部、５０２  照合部、５０９  送信部、５５０  管理記憶部、５５１  保管暗号化データ、５５２  暗号化データ、５５３  暗号化タグ、５５４  高速索引情報、６１０  秘匿検索方法、６２０  秘匿検索プログラム、９０９  処理回路、９１０  ＣＰＵ、９２０  記憶装置、９３０  入力インタフェース、９４０  出力インタフェース、９５０  通信装置、９２１  メモリ、９２２  補助記憶装置、Ｓ１００  秘匿検索処理、Ｓ１１０  鍵生成保管処理、Ｓ１２０  登録処理、Ｓ１３０  検索処理、Ｓ１３４  検索クエリ生成処理、Ｓ１３５  判定処理、Ｓ１３６  結果出力処理、Ｓ１４０  削除処理、Ｋ１，Ｋ２  鍵、Ｅ（Ｄ）  暗号化データ、Ｃ（Ｄ）  暗号化タグ、ｓ  検索キーワード、ｆ  確定的指示、ｔ  確定的情報、Ｑ（ｓ）  検索クエリ、ｒ  第１乱数、ｕｉ  第２乱数、λ  パラメータ、１００ａ  秘匿検索システム、３００ａ  登録装置、４００ａ  検索装置、５００ａ  管理装置、Ｓ１００ａ  秘匿検索処理、Ｓ１２０ａ  登録処理、Ｓ１３０ａ  検索処理、Ｓ１３４ａ  検索クエリ生成処理、Ｓ１３５ａ  判定処理、ｖ  乱数、１００ｂ  秘匿検索システム、４００ｂ  検索装置、５００ｂ  管理装置、Ｓ１００ｂ  秘匿検索処理、Ｓ１３０ｂ  検索処理、Ｓ１３４ｂ  検索クエリ生成処理、Ｓ１３５ｂ  判定処理、Ｑ１  第１暗号文、Ｑ２  第２暗号文。
【図１】
2017122696.tif 000003
【図２】
2017122696.tif 000004
【図３】
2017122696.tif 000005
【図４】
2017122696.tif 000006
【図５】
2017122696.tif 000007
【図６】
2017122696.tif 000008
【図７】
2017122696.tif 000009
【図８】
2017122696.tif 000010
【図９】
2017122696.tif 000011
【図１０】
2017122696.tif 000012
【図１１】
2017122696.tif 000013
【図１２】
2017122696.tif 000014
【図１３】
2017122696.tif 000015
【図１４】
2017122696.tif 000016
【図１５】
2017122696.tif 000017
【図１６】
2017122696.tif 000018
【図１７】
2017122696.tif 000019
【図１８】
2017122696.tif 000020
【図１９】
2017122696.tif 000021
【図２０】
2017122696.tif 000022
【図２１】
2017122696.tif 000023
【図２２】
2017122696.tif 000024
【図２３】
2017122696.tif 000025
【図２４】
2017122696.tif 000026
【国際調査報告】
2017122696.tif 000027
2017122696.tif 000028