(57)【要約】【課題】検索対象のデータの秘匿性を高めつつ、高速な検索を行うこと。【解決手段】情報検索プログラムは、携帯端末１を、検索データを取得する検索データ取得部１１と、検索データに対して、ハッシュ関数を適用して検索データハッシュ値を算出する検索データハッシュ値算出部１２と、複数のフィールドデータを含むレコードデータの一つのフィールドデータに対して、暗号化情報ＤＢ２０から、検索データハッシュ値と一致するフィールドデータハッシュ値に対応付けられている暗号化データを検索する暗号化データ検索部１３と、暗号化データに対して、共通鍵を適用して復号されたレコードデータを生成する暗号化データ復号部１４と、レコードデータに含まれるフィールドデータを出力するフィールドデータ出力部１５、として機能させる。【選択図】図１
2015018430.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータを、
ハッシュ関数と共通鍵暗号方式における共通鍵とを記憶するツール記憶手段と、
検索データを取得する検索データ取得手段と、
前記検索データ取得手段によって取得された検索データに対して、前記ツール記憶手段によって記憶されたハッシュ関数を適用して検索データハッシュ値を算出する検索データハッシュ値算出手段と、
複数のフィールドデータを含むレコードデータの一つのフィールドデータに対して前記ツール記憶手段によって記憶されたハッシュ関数を適用して算出されたフィールドデータハッシュ値と、当該レコードデータに対して前記ツール記憶手段によって記憶された共通鍵を適用して暗号化された暗号化データとを対応付けて記憶する暗号化情報データベースから、前記検索データハッシュ値算出手段によって算出された検索データハッシュ値と一致するフィールドデータハッシュ値に対応付けられている暗号化データを検索する暗号化データ検索手段と、
前記暗号化データ検索手段によって検索された暗号化データに対して、前記ツール記憶手段によって記憶された共通鍵を適用して復号されたレコードデータを生成する暗号化データ復号手段と、
前記暗号化データ復号手段によって生成されたレコードデータに含まれるフィールドデータを出力するフィールドデータ出力手段、
として機能させる情報検索プログラム。
【請求項２】
前記暗号化情報データベースは、アカウント情報をさらに対応付けて記憶し、
前記検索データ取得手段は、アカウント情報をさらに取得し、
前記暗号化データ検索手段は、前記暗号化情報データベースから、前記検索データハッシュ値算出手段によって算出された検索データハッシュ値と、前記検索データ取得手段によって取得されたアカウント情報とに基づいて暗号化データを検索する、
ことを特徴とする請求項１に記載の情報検索プログラム。
【請求項３】
前記暗号化情報データベースは、当該情報検索プログラムを識別するプログラム識別情報をさらに対応付けて記憶し、
前記検索データ取得手段は、プログラム識別情報をさらに取得し、
前記暗号化データ検索手段は、前記暗号化情報データベースから、前記検索データハッシュ値算出手段によって算出された検索データハッシュ値と、前記検索データ取得手段によって取得されたアカウント情報と、前記検索データ取得手段によって取得されたプログラム識別情報とに基づいて暗号化データを検索する、
ことを特徴とする請求項２に記載の情報検索プログラム。
【請求項４】
コンピュータを、
複数のフィールドデータを含むレコードデータを取得するレコードデータ取得手段と、
前記レコードデータ取得手段によって取得されたレコードデータの一つのフィールドデータに対して、前記ツール記憶手段によって記憶されたハッシュ関数を適用してフィールドデータハッシュ値を算出するフィールドデータハッシュ値算出手段と、
前記レコードデータ取得手段によって取得されたレコードデータに対して、前記ツール記憶手段によって記憶された共通鍵を適用して暗号化された暗号化データを生成するレコードデータ暗号化手段と、
前記フィールドデータハッシュ値算出手段によって算出されたフィールドデータハッシュ値と、前記レコードデータ暗号化手段によって生成された暗号化データとを対応付けて暗号化情報データベースに記憶する暗号化情報登録手段、
としてさらに機能させることを特徴とする請求項１に記載の情報検索プログラム。
【請求項５】
コンピュータを、
複数のフィールドデータを含むレコードデータとアカウント情報とを取得するレコードデータ取得手段と、
前記レコードデータ取得手段によって取得されたレコードデータの一つのフィールドデータに対して、前記ツール記憶手段によって記憶されたハッシュ関数を適用してフィールドデータハッシュ値を算出するフィールドデータハッシュ値算出手段と、
前記レコードデータ取得手段によって取得されたレコードデータに対して、前記ツール記憶手段によって記憶された共通鍵を適用して暗号化された暗号化データを生成するレコードデータ暗号化手段と、
前記フィールドデータハッシュ値算出手段によって算出されたフィールドデータハッシュ値と、前記レコードデータ暗号化手段によって生成された暗号化データと、前記レコードデータ取得手段によって取得されたアカウント情報とを対応付けて暗号化情報データベースに記憶する暗号化情報登録手段、
としてさらに機能させることを特徴とする請求項２に記載の情報検索プログラム。
【請求項６】
コンピュータを、
複数のフィールドデータを含むレコードデータとアカウント情報とプログラム識別情報とを取得するレコードデータ取得手段と、
前記レコードデータ取得手段によって取得されたレコードデータの一つのフィールドデータに対して、前記ツール記憶手段によって記憶されたハッシュ関数を適用してフィールドデータハッシュ値を算出するフィールドデータハッシュ値算出手段と、
前記レコードデータ取得手段によって取得されたレコードデータに対して、前記ツール記憶手段によって記憶された共通鍵を適用して暗号化された暗号化データを生成するレコードデータ暗号化手段と、
前記フィールドデータハッシュ値算出手段によって算出されたフィールドデータハッシュ値と、前記レコードデータ暗号化手段によって生成された暗号化データと、前記レコードデータ取得手段によって取得されたアカウント情報と、前記レコードデータ取得手段によって取得されたプログラム識別情報とを対応付けて暗号化情報データベースに記憶する暗号化情報登録手段、
としてさらに機能させることを特徴とする請求項３に記載の情報検索プログラム。
【請求項７】
前記コンピュータは、電話機であり、
前記検索データは、電話番号であり、
前記レコードデータは、一つのフィールドデータとして電話番号を含み、別のフィールドデータとして当該電話番号に関連する関連情報を含み、
前記検索データ取得手段は、当該電話機への電話の着信時に着信元の電話番号を取得し、
前記フィールドデータ出力手段は、前記暗号化データ復号手段によって生成されたレコードデータに含まれるフィールドデータのうち、前記検索データ取得手段によって取得された着信元の電話番号に関連する関連情報を出力する、
ことを特徴とする請求項１〜６の何れか一項に記載の情報検索プログラム。
【請求項８】
ハッシュ関数と共通鍵暗号方式における共通鍵とを記憶するツール記憶手段を備えるコンピュータにより実行される情報検索方法であって、
検索データを取得する検索データ取得ステップと、
前記検索データ取得ステップにおいて取得された検索データに対して、前記ツール記憶手段によって記憶されたハッシュ関数を適用して検索データハッシュ値を算出する検索データハッシュ値算出ステップと、
複数のフィールドデータを含むレコードデータの一つのフィールドデータに対して前記ツール記憶手段によって記憶されたハッシュ関数を適用して算出されたフィールドデータハッシュ値と、当該レコードデータに対して前記ツール記憶手段によって記憶された共通鍵を適用して暗号化された暗号化データとを対応付けて記憶する暗号化情報データベースから、前記検索データハッシュ値算出ステップにおいて算出された検索データハッシュ値と一致するフィールドデータハッシュ値に対応付けられている暗号化データを検索する暗号化データ検索ステップと、
前記暗号化データ検索ステップにおいて検索された暗号化データに対して、前記ツール記憶手段によって記憶された共通鍵を適用して復号されたレコードデータを生成する暗号化データ復号ステップと、
前記暗号化データ復号ステップにおいて生成されたレコードデータに含まれるフィールドデータを出力するフィールドデータ出力ステップと、
を含む情報検索方法。
【請求項９】
ハッシュ関数と共通鍵暗号方式における共通鍵とを記憶するツール記憶手段と、
検索データを取得する検索データ取得手段と、
前記検索データ取得手段によって取得された検索データに対して、前記ツール記憶手段によって記憶されたハッシュ関数を適用して検索データハッシュ値を算出する検索データハッシュ値算出手段と、
複数のフィールドデータを含むレコードデータの一つのフィールドデータに対して前記ツール記憶手段によって記憶されたハッシュ関数を適用して算出されたフィールドデータハッシュ値と、当該レコードデータに対して前記ツール記憶手段によって記憶された共通鍵を適用して暗号化された暗号化データとを対応付けて記憶する暗号化情報データベースから、前記検索データハッシュ値算出手段によって算出された検索データハッシュ値と一致するフィールドデータハッシュ値に対応付けられている暗号化データを検索する暗号化データ検索手段と、
前記暗号化データ検索手段によって検索された暗号化データに対して、前記ツール記憶手段によって記憶された共通鍵を適用して復号されたレコードデータを生成する暗号化データ復号手段と、
前記暗号化データ復号手段によって生成されたレコードデータに含まれるフィールドデータを出力するフィールドデータ出力手段と、
を備える情報検索装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報検索プログラム、情報検索方法及び情報検索装置に関する。
【背景技術】
【０００２】
一般的に、個人情報など重要なデータが含まれるデータベースを備える装置では、第三者へのデータ漏洩を防ぐために、高い秘匿性が求められている。例えば、下記特許文献１では、装置内のデータの盗み見や改変を防止することができ、コンピュータ自身が盗難されたとしても記憶装置内のデータを盗聴から防止可能にすることを目的としたデータ保存処理用記録媒体が開示されている。
【０００３】
特許文献１に記載の技術は、アプリケーションプログラムからのデータの書き込み要求をファイルフック手段によって横取りし、書き込み対象となるデータを暗号化して記憶装置に書き込む。また、アプリケーションプログラムからの読み出し要求をファイルフック手段によって横取りし、記憶装置から暗号化されたデータを読み出させた後に、暗号鍵で復号し、復号されたデータをアプリケーションプログラムに転送する。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００１−２７９６４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、特許文献１に記載の技術では上記の通り、記憶装置に書き込まれたデータを検索する場合には、記憶装置に書き込まれているデータを復号する必要があり、復号処理に時間がかかり、高速な検索処理が行えないという問題がある。
【０００６】
そこで、本発明は、かかる課題に鑑みて為されたものであり、検索対象のデータの秘匿性を高めつつ、高速な検索を行うことができる情報検索プログラム、情報検索方法及び情報検索装置を提供することを目的とする。
【課題を解決するための手段】
【０００７】
上記課題を解決するため、本発明の情報検索プログラムは、コンピュータを、ハッシュ関数と共通鍵暗号方式における共通鍵とを記憶するツール記憶手段と、検索データを取得する検索データ取得手段と、検索データ取得手段によって取得された検索データに対して、ツール記憶手段によって記憶されたハッシュ関数を適用して検索データハッシュ値を算出する検索データハッシュ値算出手段と、複数のフィールドデータを含むレコードデータの一つのフィールドデータに対してツール記憶手段によって記憶されたハッシュ関数を適用して算出されたフィールドデータハッシュ値と、当該レコードデータに対してツール記憶手段によって記憶された共通鍵を適用して暗号化された暗号化データとを対応付けて記憶する暗号化情報データベースから、検索データハッシュ値算出手段によって算出された検索データハッシュ値と一致するフィールドデータハッシュ値に対応付けられている暗号化データを検索する暗号化データ検索手段と、暗号化データ検索手段によって検索された暗号化データに対して、ツール記憶手段によって記憶された共通鍵を適用して復号されたレコードデータを生成する暗号化データ復号手段と、暗号化データ復号手段によって生成されたレコードデータに含まれるフィールドデータを出力するフィールドデータ出力手段、として機能させる。
【０００８】
このような情報検索プログラムによれば、暗号化情報データベースでは、ハッシュ値であるフィールドデータハッシュ値と、暗号化された暗号化データとが対応付けて記憶されている。よって、例えば第三者に暗号化情報データベースの内容が漏洩したとしても、元のデータの解読は難しく、秘匿性は高い。また、検索データに対応するレコードデータを検索する際に、検索データのハッシュ値である検索データハッシュ値と、暗号化情報データベースに記憶されているフィールドデータハッシュ値との一致性に基づいて検索される。よって、暗号化情報データベースの内容を復号することなく検索を行うことができ、秘匿性を維持しつつ高速な検索を行うことができる。以上のように、このような情報検索プログラムによれば、検索対象のデータの秘匿性を高めつつ、高速な検索を行うことができる。
【０００９】
また、本発明の情報検索プログラムにおいて、暗号化情報データベースは、アカウント情報をさらに対応付けて記憶し、検索データ取得手段は、アカウント情報をさらに取得し、暗号化データ検索手段は、暗号化情報データベースから、検索データハッシュ値算出手段によって算出された検索データハッシュ値と、検索データ取得手段によって取得されたアカウント情報とに基づいて暗号化データを検索することが好ましい。かかる構成を採れば、検索時に、アカウント情報に対応付けられたレコードデータのみを検索することができ、ユーザの利便性が向上する。例えば、異なるユーザが同一の検索データ及び同一のアカウント情報に基づいて検索したり、同一のユーザが異なるコンピュータから同一の検索データ及び同一のアカウント情報に基づいて検索したりする場合においても、同一のレコードデータを検索することができる。
【００１０】
また、本発明の情報検索プログラムにおいて、暗号化情報データベースは、当該情報検索プログラムを識別するプログラム識別情報をさらに対応付けて記憶し、検索データ取得手段は、プログラム識別情報をさらに取得し、暗号化データ検索手段は、暗号化情報データベースから、検索データハッシュ値算出手段によって算出された検索データハッシュ値と、検索データ取得手段によって取得されたアカウント情報と、検索データ取得手段によって取得されたプログラム識別情報とに基づいて暗号化データを検索することが好ましい。かかる構成を採れば、検索時に、当該情報検索プログラムに対応付けられたレコードデータのみを検索することができ、ユーザの利便性が向上する。例えば、同一のユーザが異なる情報検索プログラムが実行されている異なるコンピュータから同一のアカウント情報を用いて検索する場合においては、コンピュータごとのレコードデータを検索することができる。
【００１１】
また、本発明の情報検索プログラムにおいて、コンピュータを、複数のフィールドデータを含むレコードデータを取得するレコードデータ取得手段と、レコードデータ取得手段によって取得されたレコードデータの一つのフィールドデータに対して、ツール記憶手段によって記憶されたハッシュ関数を適用してフィールドデータハッシュ値を算出するフィールドデータハッシュ値算出手段と、レコードデータ取得手段によって取得されたレコードデータに対して、ツール記憶手段によって記憶された共通鍵を適用して暗号化された暗号化データを生成するレコードデータ暗号化手段と、フィールドデータハッシュ値算出手段によって算出されたフィールドデータハッシュ値と、レコードデータ暗号化手段によって生成された暗号化データとを対応付けて暗号化情報データベースに記憶する暗号化情報登録手段、としてさらに機能させることが好ましい。かかる構成を採れば、暗号化情報データベースに対して、フィールドデータハッシュ値と暗号化データとが対応付いた暗号化情報を登録及び更新することができ、それゆえに当該暗号化情報を検索することができる。
【００１２】
また、本発明の情報検索プログラムにおいて、コンピュータを、複数のフィールドデータを含むレコードデータとアカウント情報とを取得するレコードデータ取得手段と、レコードデータ取得手段によって取得されたレコードデータの一つのフィールドデータに対して、ツール記憶手段によって記憶されたハッシュ関数を適用してフィールドデータハッシュ値を算出するフィールドデータハッシュ値算出手段と、レコードデータ取得手段によって取得されたレコードデータに対して、ツール記憶手段によって記憶された共通鍵を適用して暗号化された暗号化データを生成するレコードデータ暗号化手段と、フィールドデータハッシュ値算出手段によって算出されたフィールドデータハッシュ値と、レコードデータ暗号化手段によって生成された暗号化データと、レコードデータ取得手段によって取得されたアカウント情報とを対応付けて暗号化情報データベースに記憶する暗号化情報登録手段、としてさらに機能させることが好ましい。かかる構成を採れば、暗号化情報データベースに対して、フィールドデータハッシュ値と暗号化データとアカウント情報とが対応付いた暗号化情報を登録及び更新することができ、それゆえに当該暗号化情報を検索することができる。
【００１３】
また、本発明の情報検索プログラムにおいて、コンピュータを、複数のフィールドデータを含むレコードデータとアカウント情報とプログラム識別情報とを取得するレコードデータ取得手段と、レコードデータ取得手段によって取得されたレコードデータの一つのフィールドデータに対して、ツール記憶手段によって記憶されたハッシュ関数を適用してフィールドデータハッシュ値を算出するフィールドデータハッシュ値算出手段と、レコードデータ取得手段によって取得されたレコードデータに対して、ツール記憶手段によって記憶された共通鍵を適用して暗号化された暗号化データを生成するレコードデータ暗号化手段と、フィールドデータハッシュ値算出手段によって算出されたフィールドデータハッシュ値と、レコードデータ暗号化手段によって生成された暗号化データと、レコードデータ取得手段によって取得されたアカウント情報と、レコードデータ取得手段によって取得されたプログラム識別情報とを対応付けて暗号化情報データベースに記憶する暗号化情報登録手段、としてさらに機能させることが好ましい。かかる構成を採れば、暗号化情報データベースに対して、フィールドデータハッシュ値と暗号化データとアカウント情報とプログラム識別情報とが対応付いた暗号化情報を登録及び更新することができ、それゆえに当該暗号化情報を検索することができる。
【００１４】
また、本発明の情報検索プログラムにおいて、コンピュータは、電話機であり、検索データは、電話番号であり、レコードデータは、一つのフィールドデータとして電話番号を含み、別のフィールドデータとして当該電話番号に関連する関連情報を含み、検索データ取得手段は、当該電話機への電話の着信時に着信元の電話番号を取得し、フィールドデータ出力手段は、暗号化データ復号手段によって生成されたレコードデータに含まれるフィールドデータのうち、検索データ取得手段によって取得された着信元の電話番号に関連する関連情報を出力することが好ましい。かかる構成を採れば、例えば、通常は、着信元の電話番号及び関連情報をそれぞれハッシュ化及び暗号化して秘匿性が高いまま暗号化情報データベースに記憶しておき、電話の着信時に、着信元の電話番号に基づく関連情報を検索して出力することができる。それにより、着信元の個人情報等のデータの秘匿性を高めつつ、当該データが必要になった際に高速に検索を行い、利用することができる。
【００１５】
ところで、本発明は、上記のようにプログラムの発明として記述できる他に、以下のようにそれぞれ方法及び装置の発明としても記述することができる。これはカテゴリが異なるだけで、実質的に同一の発明であり、同様の作用及び効果を奏する。
【００１６】
即ち、本発明に係る情報検索方法は、ハッシュ関数と共通鍵暗号方式における共通鍵とを記憶するツール記憶手段を備えるコンピュータにより実行される情報検索方法であって、検索データを取得する検索データ取得ステップと、検索データ取得ステップにおいて取得された検索データに対して、ツール記憶手段によって記憶されたハッシュ関数を適用して検索データハッシュ値を算出する検索データハッシュ値算出ステップと、複数のフィールドデータを含むレコードデータの一つのフィールドデータに対してツール記憶手段によって記憶されたハッシュ関数を適用して算出されたフィールドデータハッシュ値と、当該レコードデータに対してツール記憶手段によって記憶された共通鍵を適用して暗号化された暗号化データとを対応付けて記憶する暗号化情報データベースから、検索データハッシュ値算出ステップにおいて算出された検索データハッシュ値と一致するフィールドデータハッシュ値に対応付けられている暗号化データを検索する暗号化データ検索ステップと、暗号化データ検索ステップにおいて検索された暗号化データに対して、ツール記憶手段によって記憶された共通鍵を適用して復号されたレコードデータを生成する暗号化データ復号ステップと、暗号化データ復号ステップにおいて生成されたレコードデータに含まれるフィールドデータを出力するフィールドデータ出力ステップと、を含む。
【００１７】
また、本発明に係る情報検索装置は、ハッシュ関数と共通鍵暗号方式における共通鍵とを記憶するツール記憶手段と、検索データを取得する検索データ取得手段と、検索データ取得手段によって取得された検索データに対して、ツール記憶手段によって記憶されたハッシュ関数を適用して検索データハッシュ値を算出する検索データハッシュ値算出手段と、複数のフィールドデータを含むレコードデータの一つのフィールドデータに対してツール記憶手段によって記憶されたハッシュ関数を適用して算出されたフィールドデータハッシュ値と、当該レコードデータに対してツール記憶手段によって記憶された共通鍵を適用して暗号化された暗号化データとを対応付けて記憶する暗号化情報データベースから、検索データハッシュ値算出手段によって算出された検索データハッシュ値と一致するフィールドデータハッシュ値に対応付けられている暗号化データを検索する暗号化データ検索手段と、暗号化データ検索手段によって検索された暗号化データに対して、ツール記憶手段によって記憶された共通鍵を適用して復号されたレコードデータを生成する暗号化データ復号手段と、暗号化データ復号手段によって生成されたレコードデータに含まれるフィールドデータを出力するフィールドデータ出力手段と、を備える。
【発明の効果】
【００１８】
本発明によれば、検索対象のデータの秘匿性を高めつつ、高速な検索を行うことができる。
【図面の簡単な説明】
【００１９】
【図１】本発明の実施形態に係る情報検索システムのシステム構成図である。
【図２】平文の電話帳データのテーブル例を示す図である。
【図３】本発明の実施形態に係る情報検索装置及び外部サーバの機能ブロック図である。
【図４】本発明の実施形態に係る情報検索装置及び外部サーバのハードウェア構成を示す図である。
【図５】本発明の実施形態に係る情報検索プログラムの構成を、記憶媒体と共に示す図である。
【図６】暗号化情報データベースによって記憶されるレコードデータの一例を示す図である。
【図７】本発明の実施形態に係る情報検索システムで実行される処理（情報検索方法）を示すシーケンス図である。
【図８】情報検索処理時における携帯端末の画面の出力例を示す図である。
【図９】本発明の実施形態に係る情報検索システムで実行される処理（情報登録方法）を示すシーケンス図である。
【図１０】暗号化情報データベースによって記憶されるレコードデータの別の一例を示す図である。
【発明を実施するための形態】
【００２０】
以下、図面とともに本発明による情報検索プログラム、情報検索方法、及び情報検索装置の好適な実施形態について詳細に説明する。なお、図面の説明においては同一要素には同一符号を付し、重複する説明を省略する。
【００２１】
図１は、本発明の実施形態に係る情報検索システム４の概要図である。情報検索システム４は、携帯端末１（情報検索装置）と、外部サーバ２と、発信端末３とを含んで構成される。携帯端末１及び外部サーバ２、携帯端末１及び発信端末３は、電話回線網やインターネットなどのネットワークによって互いに接続されている。
【００２２】
携帯端末１は、スマートフォンや携帯電話（電話機）などのコンピュータである。携帯端末１は、通常は、個人情報である電話帳データを格納せず、電話帳データが必要になった際に外部サーバ２に対して検索を行い、外部サーバ２から電話帳データを取得する。そして携帯端末１は、電話帳データを取得後に、当該電話帳データが必要なくなった時点で削除する。それにより、例えば携帯端末１のユーザによって携帯端末１を紛失した際などにおいても、電話帳データ、すなわち個人情報が漏洩する可能性を最小限に抑えることができる。
【００２３】
外部サーバ２は、サーバ装置などのコンピュータである。外部サーバ２は、携帯端末１のユーザが所有する電話帳データを暗号化して格納している。外部サーバ２は、携帯端末１からの電話帳データの検索要求に対して、対応する電話帳データを暗号化したまま携帯端末１に返信する。
【００２４】
図２は、暗号化されていない、平文の電話帳データのテーブル例を示す図である。図２に示す通り、電話帳データには、人ごとのデータがレコードデータ（テーブルの行に対応）として複数登録されており、レコードデータには複数のフィールドデータ（テーブルの列に対応）が含まれる。フィールドデータの具体例としては、図２に示す通り、氏名、氏名カナ、会社名、電話番号（複数登録可能）、メール（複数登録可能）、住所、メモなどが挙げられる。なお、図２に示すフィールドデータのうち、電話番号以外を、当該電話番号に関連する関連情報と呼ぶ。
【００２５】
発信端末３は、一般的な電話機や携帯電話やスマートフォンなどである。発信端末３は、携帯端末１に対して電話をかけることができる。
【００２６】
続いて、携帯端末１及び外部サーバ２の機能ブロックについて説明する。図３は、携帯端末１及び外部サーバ２の機能ブロック図である。図３に示す通り、携帯端末１は、ツール記憶部１０（ツール記憶手段）、検索データ取得部１１（検索データ取得手段）、検索データハッシュ値算出部１２（検索データハッシュ値算出手段）、暗号化データ検索部１３（暗号化データ検索手段）、暗号化データ復号部１４（暗号化データ復号手段）、フィールドデータ出力部１５（フィールドデータ出力手段）、レコードデータ取得部１６（レコードデータ取得手段）、フィールドデータハッシュ値算出部１７（フィールドデータハッシュ値算出手段）、レコードデータ暗号化部１８（レコードデータ暗号化手段）、及び暗号化情報登録部１９（暗号化情報登録手段）を含んで構成される。また、図３に示す通り、外部サーバ２は、暗号化情報ＤＢ２０（暗号化情報データベース）を含んで構成される。
【００２７】
携帯端末１及び外部サーバ２は、ＣＰＵ等のハードウェアから構成されているものである。図４は、携帯端末１及び外部サーバ２のハードウェア構成の一例を示す図である。図３に示される携帯端末１及び外部サーバ２は、物理的には、図４に示すように、ＣＰＵ１００、主記憶装置であるＲＡＭ１０１及びＲＯＭ１０２、ディスプレイ等の入出力装置１０３、通信モジュール１０４、及び補助記憶装置１０５などを含むコンピュータシステムとして構成されている。
【００２８】
図３に示す携帯端末１及び外部サーバ２の各機能ブロックの機能は、図４に示すＣＰＵ１００、ＲＡＭ１０１等のハードウェア上に所定のコンピュータソフトウェアを読み込ませることにより、ＣＰＵ１００の制御のもとで入出力装置１０３、通信モジュール１０４、及び補助記憶装置１０５を動作させるとともに、ＲＡＭ１０１におけるデータの読み出し及び書き込みを行うことで実現される。
【００２９】
続いて、上述した携帯端末１の機能ブロックによる処理をコンピュータに実行させるための情報検索プログラム５を説明する。図５に示すように、情報検索プログラム５は、コンピュータに挿入されてアクセスされる、あるいはコンピュータが備える記録媒体６０に形成されたプログラム格納領域６１内に格納される。より具体的には、情報検索プログラム５は、携帯端末１が備える記録媒体６０に形成されたプログラム格納領域６１内に格納される。
【００３０】
情報検索プログラム５は、ツール記憶モジュール５０、検索データ取得モジュール５１、検索データハッシュ値算出モジュール５２、暗号化データ検索モジュール５３、暗号化データ復号モジュール５４、フィールドデータ出力モジュール５５、レコードデータ取得モジュール５６、フィールドデータハッシュ値算出モジュール５７、レコードデータ暗号化モジュール５８、及び暗号化情報登録モジュール５９を含んで構成される。ツール記憶モジュール５０、検索データ取得モジュール５１、検索データハッシュ値算出モジュール５２、暗号化データ検索モジュール５３、暗号化データ復号モジュール５４、フィールドデータ出力モジュール５５、レコードデータ取得モジュール５６、フィールドデータハッシュ値算出モジュール５７、レコードデータ暗号化モジュール５８、及び暗号化情報登録モジュール５９を実行させることにより実現される機能は、上述した携帯端末１のツール記憶部１０、検索データ取得部１１、検索データハッシュ値算出部１２、暗号化データ検索部１３、暗号化データ復号部１４、フィールドデータ出力部１５、レコードデータ取得部１６、フィールドデータハッシュ値算出部１７、レコードデータ暗号化部１８、及び暗号化情報登録部１９の機能とそれぞれ同様である。
【００３１】
なお、情報検索プログラム５は、その一部若しくは全部が、通信回線等の伝送媒体を介して伝送され、他の機器により受信されて記録（インストールを含む）される構成としてもよい。また、情報検索プログラム５の各モジュールは、１つのコンピュータでなく、複数のコンピュータのいずれかにインストールされてもよい。その場合、当該複数のコンピュータによるコンピュータシステムよって一連の情報検索プログラム５の処理が行われる。
【００３２】
以下、図３に示す携帯端末１及び外部サーバ２の各機能ブロックについて説明する。
【００３３】
ツール記憶部１０は、ハッシュ関数（あるいはハッシュ関数を実現する関数モジュール）と共通鍵暗号方式における共通鍵とを記憶する。ツール記憶部１０は、携帯端末１内に設けられた内部アプリケーション領域にハッシュ関数と共通鍵とを記憶してもよい。内部アプリケーション領域に記憶されたデータは、他のアプリケーションや他の装置からアクセスすることはできない。
【００３４】
ここで、ハッシュ関数とは、テキストの羅列などのデータを、一定長のデータに要約するための関数である。元のデータに対してハッシュ関数を適用することをハッシュ化と呼び、ハッシュ化により出力されたデータをハッシュ値と呼ぶ。ハッシュ関数は、同じ元のデータを入力する限り、必ず同じハッシュ値が出力される。また、ハッシュ関数では、異なる元のデータから同じハッシュ値が得られることはほとんどなく、出力されたハッシュ値から元のデータを算出することは難しい。よって、ハッシュ化は一種の暗号化でもある。
【００３５】
また、共通鍵暗号方式とは、暗号化と復号に同一の鍵である共通鍵を用いる暗号方式である。携帯端末１は、共通鍵を生成する共通鍵生成手段（不図示）を備えてもよい。共通鍵生成手段は、例えば、ユーザやアプリケーションによって共通鍵発行指示を受けると、共通鍵生成アルゴリズム（例：ＡＥＳ（Advanced  Encryption  Standard））をセットし、乱数ジェネレータ（例：ＳＨＡ１ＰＲＮＧ）を指定し、キージェネレータを初期化し（例：１２８ｂｉｔｓ）、ランダムキーを生成し、キーのバイト列を取得することで共通鍵を生成し、生成された共通鍵はツール記憶部１０によって記憶される。
【００３６】
（外部サーバ２の）暗号化情報ＤＢ２０は、複数のフィールドデータを含むレコードデータの一つのフィールドデータに対して、ツール記憶部１０によって記憶されたハッシュ関数を適用して算出されたフィールドデータハッシュ値と、当該レコードデータに対してツール記憶部１０によって記憶された共通鍵を適用して暗号化された暗号化データとを対応付けて記憶する。
【００３７】
図６は、暗号化情報ＤＢ２０によって記憶される、図２に示す電話帳データのテーブル例のうち「氏名」が「山田太郎」のレコードデータに基づいて生成されたレコードデータの一例を示す図である。図６（ａ）は、「電話番号１」のフィールドデータである「０９０−ＸＸＸＸ−ＹＹＹＹ」に対してツール記憶部１０によって記憶されたハッシュ関数を適用して算出されたフィールドデータハッシュ値（「電話番号１ハッシュ値」）と、「氏名」が「山田太郎」のレコードデータに対してツール記憶部１０によって記憶された共通鍵を適用して暗号化された暗号化データ（「暗号化電話帳データ」）とが対応付けられたレコードデータの一例を示す図である。なお、図６（ｂ）に示すレコードデータの一例のように、暗号化情報ＤＢ２０は、複数のフィールドデータハッシュ値と、暗号化データとを対応付けて記憶してもよい。
【００３８】
検索データ取得部１１は、検索データを取得する。検索データの例としては、電話番号や文字列などのテキストデータが挙げられる。検索データ取得部１１は、取得した検索データを検索データハッシュ値算出部１２に出力する。
【００３９】
検索データハッシュ値算出部１２は、検索データ取得部１１によって取得された検索データに対して、ツール記憶部１０によって記憶されたハッシュ関数を適用して検索データハッシュ値を算出する。検索データハッシュ値算出部１２は、算出した検索データハッシュ値を暗号化データ検索部１３に出力する。
【００４０】
暗号化データ検索部１３は、外部サーバ２の暗号化情報ＤＢ２０から、ネットワークを介して、検索データハッシュ値算出部１２によって算出された検索データハッシュ値と一致するフィールドデータハッシュ値に対応付けられている暗号化データを検索する（取得する）。暗号化データ検索部１３は、検索した暗号化データを暗号化データ復号部１４に出力する。
【００４１】
例えば、暗号化情報ＤＢ２０によって図６（ａ）に示すレコードデータが記憶されており、暗号化データ検索部１３が、検索データハッシュ値として「電話番号１」のハッシュ値である「３ｆｄ０ｃ６６３０８２ｂｂ６６ａ」に基づいて検索が行う場合について説明する。まず、携帯端末１の暗号化データ検索部１３は、ネットワークを介して、外部サーバ２の暗号化情報ＤＢ２０に対して検索データハッシュ値「３ｆｄ０ｃ６６３０８２ｂｂ６６ａ」を送信し、暗号化情報ＤＢ２０は当該検索データハッシュ値を受信する。
【００４２】
次に、暗号化情報ＤＢ２０は、記憶されたレコードデータのうち、フィールドデータハッシュ値が受信された検索データハッシュ値と一致するレコードデータを検索し、対応付けられている暗号化データ「ＪＡ８ｚｆＮｂ＋ＹＸｌ６／ＵａＫ＋ｋｊ１ＮＸ６…」を抽出する。次に、外部サーバ２の暗号化情報ＤＢ２０は、ネットワークを介して、携帯端末１の暗号化データ検索部１３に対して抽出した暗号化データを送信し、暗号化データ検索部１３は、当該暗号化データを受信する。
【００４３】
ここで、図６（ｂ）に示すレコードデータの一例のように、暗号化情報ＤＢ２０が、複数のフィールドデータハッシュ値と、暗号化データとを対応付けて記憶している場合、暗号化データ検索部１３は、検索データハッシュ値が、複数のフィールドデータハッシュ値のうちいずれか一つのフィールドデータハッシュ値と一致するフィールドデータハッシュ値に対応付けられている暗号化データを検索する。
【００４４】
なお、暗号化データ検索部１３が行う検索処理の一部は、外部サーバ２が備える暗号化情報ＤＢ２０が行ってもよい。また、暗号化データ検索部１３が行う検索処理の一部は、外部サーバ２が備える、検索データハッシュ値を携帯端末１から受信する検索データハッシュ値受信部（不図示）、検索データハッシュ値受信部によって受信された検索データハッシュ値に基づいて暗号化情報ＤＢ２０から対応する暗号化データを検索する暗号化データ検索部（不図示）、暗号化データ検索部によって検索された暗号化データを携帯端末１に送信する暗号化データ送信部（不図示）などが行ってもよい。
【００４５】
暗号化データ復号部１４は、暗号化データ検索部１３によって検索された暗号化データに対して、ツール記憶部１０によって記憶された共通鍵を適用して復号されたレコードデータを生成する。なお、暗号化データ検索部１３によって検索された暗号化データは、暗号化情報ＤＢ２０によって記憶されていたものであり、上述の通り、暗号化情報ＤＢ２０に記憶されている暗号化データは、ツール記憶部１０によって記憶された共通鍵を適用して暗号化されたものであるため、当該共通鍵で復号することができる。暗号化データ復号部１４は、生成したレコードデータをフィールドデータ出力部１５に出力する。
【００４６】
ここで、暗号化データ復号部１４による復号について具体例を用いて説明する。例えば、暗号化データ復号部１４は、ブロック暗号方式における初期化ベクトルを取得し、携帯端末１のプログラム実行環境にて提供されている復号ライブラリに対して、暗号アルゴリズム（例：ＡＥＳ）、モード（例：ＣＢＣ（Cipher  Block  Chaining））、パディング（例：ＰＫＣＳ５）、ツール記憶部１０によって記憶された共通鍵などを設定し、当該復号ライブラリの機能を利用して復号を行う。
【００４７】
フィールドデータ出力部１５は、暗号化データ復号部１４によって生成されたレコードデータに含まれるフィールドデータを出力する。フィールドデータ出力部１５は、レコードデータに含まれるフィールドデータ全てを出力してもよいし、レコードデータに含まれる一部フィールドデータのみを出力してもよい。フィールドデータ出力部１５は、具体的に、携帯端末１の画面や他のサーバ装置にフィールドデータを出力する。
【００４８】
レコードデータ取得部１６は、複数のフィールドデータを含むレコードデータを取得する。レコードデータ取得部１６によって取得されるレコードデータは、暗号化情報ＤＢ２０に新たに登録するためのデータ、あるいは、暗号化情報ＤＢ２０に登録済みのデータの内容を更新するためのデータである。レコードデータ取得部１６は、取得したレコードデータをフィールドデータハッシュ値算出部１７及びレコードデータ暗号化部１８に出力する。
【００４９】
フィールドデータハッシュ値算出部１７は、レコードデータ取得部１６によって取得されたレコードデータの一つのフィールドデータに対して、ツール記憶部１０によって記憶されたハッシュ関数を適用してフィールドデータハッシュ値を算出する。フィールドデータハッシュ値算出部１７は、算出したフィールドデータハッシュ値を暗号化情報登録部１９に出力する。
【００５０】
レコードデータ暗号化部１８は、レコードデータ取得部１６によって取得されたレコードデータに対して、ツール記憶部１０によって記憶された共通鍵を適用して暗号化された暗号化データを生成する。レコードデータ暗号化部１８は、生成した暗号化データを暗号化情報登録部１９に出力する。
【００５１】
ここで、レコードデータ暗号化部１８による暗号化について具体例を用いて説明する。例えば、レコードデータ暗号化部１８は、ブロック暗号方式における初期化ベクトルを取得し、携帯端末１のプログラム実行環境にて提供されている暗号化ライブラリに対して、暗号アルゴリズム（例：ＡＥＳ）、モード（例：ＣＢＣ（Cipher  Block  Chaining））、パディング（例：ＰＫＣＳ５）、ツール記憶部１０によって記憶された共通鍵などを設定し、当該暗号化ライブラリの機能を利用して暗号化を行う。
【００５２】
暗号化情報登録部１９は、フィールドデータハッシュ値算出部１７によって算出されたフィールドデータハッシュ値と、レコードデータ暗号化部１８によって生成された暗号化データとを対応付けて暗号化情報ＤＢ２０に記憶する。具体的に、暗号化情報登録部１９は、フィールドデータハッシュ値算出部１７によって算出されたフィールドデータハッシュ値と、レコードデータ暗号化部１８によって生成された暗号化データとを暗号化情報ＤＢ２０に送信し、それらを対応付けて記憶するように暗号化情報ＤＢ２０に指示し、暗号化情報ＤＢ２０は当該指示に基づいて記憶する。暗号化情報登録部１９は、暗号化情報ＤＢ２０の記憶処理に基づき、記憶が成功したか否かなどの登録結果情報を暗号化情報ＤＢ２０から受信し、携帯端末１の画面や他のサーバ装置などに出力してもよい。
【００５３】
なお、暗号化情報登録部１９が行う登録処理の一部は、外部サーバ２が備える暗号化情報ＤＢ２０が行ってもよい。また、暗号化情報登録部１９が行う登録処理の一部は、外部サーバ２が備える、フィールドデータハッシュ値と暗号化データとを携帯端末１から受信する暗号化情報受信部（不図示）、暗号化情報受信部によって受信されたフィールドデータハッシュ値と暗号化データとを対応付けて記憶する暗号化情報ＤＢ２０、暗号化情報ＤＢ２０の記憶処理に基づく登録結果情報を携帯端末１に送信する結果情報送信部（不図示）などが行ってもよい。
【００５４】
次に、図７に示すシーケンス図を用いて、本実施形態に係る情報検索システム４における情報検索処理（情報検索方法）について説明する。なお、外部サーバ２の暗号化情報ＤＢ２０には、図６に示すような暗号化電話帳データが記憶されているものとする。
【００５５】
まず、発信端末３により、携帯端末１に対して電話が発信される（ステップＳ１）。次に、携帯端末１により、発信端末３からの電話の発信が着信される（ステップＳ２）。次に、携帯端末１の検索データ取得部１１により、Ｓ２の着信に基づき着信元である発信端末３の電話番号が取得される（ステップＳ３、検索データ取得ステップ）。次に、携帯端末１により、Ｓ３にて取得された電話番号が出力される（ステップＳ４）。図８（ａ）は、Ｓ４にて電話番号が携帯端末１の画面上に出力（表示）されている例を示す図である。携帯端末１のユーザは、図８（ａ）に示す画面を見ることで、出力された電話番号から電話がかかってきていることを知ることができる。
【００５６】
次に、携帯端末１の検索データハッシュ値算出部１２により、Ｓ３にて取得された電話番号に対して、ツール記憶部１０によって記憶されたハッシュ関数を適用して電話番号のハッシュ値が算出される（ステップＳ５、検索データハッシュ値算出ステップ）。次に、暗号化データ検索部１３により、Ｓ５にて算出された電話番号のハッシュ値が外部サーバ２に送信される（ステップＳ６、暗号化データ検索ステップ）。
【００５７】
次に、外部サーバ２により、Ｓ６にて送信された電話番号のハッシュ値が受信される（ステップＳ７、暗号化データ検索ステップ）。次に、外部サーバ２により、Ｓ７にて受信された電話番号のハッシュ値と一致するフィールドデータハッシュ値に対応付けられている暗号化電話帳データが検索される（ステップＳ８、暗号化データ検索ステップ）。次に、外部サーバ２により、Ｓ８にて検索された暗号化電話帳データが携帯端末１に送信される（ステップＳ９、暗号化データ検索ステップ）。
【００５８】
次に、携帯端末１の暗号化レコードデータ検索部１３により、Ｓ９にて送信された暗号化電話帳データが受信される（ステップＳ１０、暗号化データ検索ステップ）。次に、携帯端末１の暗号化データ復号部１４により、Ｓ１０にて受信された暗号化電話帳データに対して、ツール記憶部１０によって記憶された共通鍵を適用して復号された電話帳データが生成される（ステップＳ１１、暗号化データ復号ステップ）。次に、携帯端末１のフィールドデータ出力部１５により、Ｓ１１にて生成された電話帳データが出力される（ステップＳ１２、フィールドデータ出力ステップ）。図８（ｂ）は、Ｓ１２にて電話帳データの一部（会社名及び氏名）が携帯端末１の画面上に追加で出力（表示）されている例を示す図である。携帯端末１のユーザは、図８（ｂ）に示す画面を見ることで、着信元の詳細な情報を知ることができ、着信に対してどのような対応を行うかの判断が行えるなど、ユーザの利便性が向上する。
【００５９】
なお、携帯端末１の暗号化データ検索部１３は、Ｓ６〜Ｓ１０にて、外部サーバ２の暗号化情報ＤＢ２０に対して暗号化電話帳データの検索を行っているが、この検索処理の前に、携帯端末１の内部アプリケーション領域に記憶されている暗号化電話帳データを検索してもよい。例えば、携帯端末１の内部アプリケーション領域には、暗号化情報ＤＢ２０と同様のデータ構成の暗号化電話帳データが記憶されており、暗号化データ検索部１３は、Ｓ５の直後に当該暗号化電話帳データに対してＳ８と同様の検索を行う。検索により所望の暗号化電話帳データが取得できた場合、Ｓ１２に進み、取得できなかった場合はＳ６に進む。例えば、携帯端末１は、Ｓ５にて算出された電話番号のハッシュ値と、Ｓ１０にて受信された暗号化電話帳データとを対応付けて、携帯端末１の内部アプリケーション領域に一定期間記憶し、上述のように後続の処理においてまずは当該内部アプリケーション領域に記憶された暗号化電話帳データを検索することで、検索をさらに高速化することができる。
【００６０】
また、上記情報検索処理は、電話の着信時の検索処理として説明したが、これに限るものではない。例えば、暗号化情報ＤＢ２０によって記憶されたデータを更新する際に、更新対象のデータを取得する際にも同様の処理で取得することができる。
【００６１】
続いて、図９に示すシーケンス図を用いて、本実施形態に係る情報検索システム４における情報登録処理（情報登録方法）について説明する。
【００６２】
まず、携帯端末１のユーザにより、登録したい電話帳データが作成又は更新され、当該電話帳データが携帯端末１のレコードデータ取得部１６により取得される（ステップＳ２０）。次に、携帯端末１のフィールドデータハッシュ値算出部１７により、Ｓ２０にて取得された電話帳データに含まれる電話番号に対して、ツール記憶部１０によって記憶されたハッシュ関数を適用して電話番号のハッシュ値が算出される（ステップＳ２１）。次に、携帯端末１のレコードデータ暗号化部１８により、Ｓ２０にて取得された電話帳データに対して、ツール記憶部１０によって記憶された共通鍵を適用して暗号化された暗号化電話帳データが生成される（ステップＳ２２）。次に、携帯端末１の暗号化情報登録部１９により、Ｓ２１にて算出された電話番号のハッシュ値と、Ｓ２２にて生成された暗号化電話帳データとを含む暗号化情報が外部サーバ２に送信される（ステップＳ２３）。
【００６３】
次に、外部サーバ２により、Ｓ２３にて送信された暗号化情報が受信される（ステップＳ２４）。次に、外部サーバ２の暗号化情報ＤＢ２０により、Ｓ２４にて受信された暗号化情報が記憶される（ステップＳ２５）。次に、外部サーバ２により、Ｓ２５の記憶処理に基づく登録結果情報が携帯端末１に送信される（ステップＳ２６）。
【００６４】
次に、携帯端末１の暗号化情報登録部１９により、Ｓ２６にて送信された登録結果情報が受信される（ステップＳ２７）。次に、携帯端末１により、Ｓ２７にて受信された登録結果情報が出力される（ステップＳ２８）。例えば、携帯端末１のユーザは、Ｓ２８にて出力された登録結果情報を見ることで、登録処理又は更新処理が正常に行われたか否かを知ることができる。
【００６５】
［変形例１］
続いて、上述の実施形態に係る情報検索システム４の変形例１について説明する。以下の説明では、上述の実施形態との差分のみを説明する。
【００６６】
暗号化情報ＤＢ２０は、アカウント情報をさらに対応付けて記憶する。すなわち、暗号化情報ＤＢ２０は、フィールドデータハッシュ値と暗号化データとアカウント情報とを対応付けて記憶する。
【００６７】
ここでアカウント情報とは、ユーザが特定の領域、例えばコンピュータやネットワーク上のサービスなどにログインするための権利を示す情報である。アカウント情報は、具体的には、ＩＤ、又はＩＤとパスワードの組み合わせ、又は特定のネットワーク上のサービスに対してログインした後に当該サービスから発行される認証用トークン情報などが挙げられる。図１０（ａ）は、暗号化情報ＤＢ２０によって記憶される、アカウント情報がさらに対応付けられたレコードデータの一例を示す図である。
【００６８】
ツール記憶部１０は、アカウント情報ごとに対応する共通鍵を記憶してもよい。
【００６９】
検索データ取得部１１は、アカウント情報をさらに取得する。すなわち、検索データ取得部１１は、検索データとアカウント情報とを取得する。検索データ取得部１１は、取得したアカウント情報を暗号化データ検索部１３に出力する。
【００７０】
暗号化データ検索部１３は、暗号化情報ＤＢ２０から、検索データハッシュ値算出部１２によって算出された検索データハッシュ値と、検索データ取得部１１によって取得されたアカウント情報とに基づいて暗号化データを検索する。
【００７１】
レコードデータ取得部１６は、複数のフィールドデータを含むレコードデータとアカウント情報とを取得する。レコードデータ取得部１６は、取得したアカウント情報を暗号化情報登録部１９に出力する。
【００７２】
暗号化情報登録部１９は、フィールドデータハッシュ値算出部１７によって算出されたフィールドデータハッシュ値と、レコードデータ暗号化部１８によって生成された暗号化データと、レコードデータ取得部１６によって取得されたアカウント情報とを対応付けて暗号化情報ＤＢ２０に記憶する。
【００７３】
［変形例２］
続いて、上述の実施形態に係る情報検索システム４の変形例２について説明する。以下の説明では、上述の実施形態との差分のみを説明する。
【００７４】
暗号化情報ＤＢ２０は、当該情報検索プログラムを識別するプログラム識別情報をさらに対応付けて記憶する。すなわち、暗号化情報ＤＢ２０は、フィールドデータハッシュ値と暗号化データとアカウント情報とプログラム識別情報とを対応付けて記憶する。
【００７５】
ここで、プログラム識別情報とは、携帯端末１で実行されている情報検索プログラム５の識別情報であり、例えばユニークな値である。図１０（ｂ）は、暗号化情報ＤＢ２０によって記憶される、プログラム識別情報がさらに対応付けられたレコードデータの一例を示す図である。
【００７６】
検索データ取得部１１は、プログラム識別情報をさらに取得する。すなわち、検索データ取得部１１は、検索データとアカウント情報とプログラム識別情報とを取得する。検索データ取得部１１は、取得したプログラム識別情報を暗号化データ検索部１３に出力する。
【００７７】
暗号化データ検索部１３は、暗号化情報ＤＢ２０から、検索データハッシュ値算出部１２によって算出された検索データハッシュ値と一致するフィールドデータハッシュ値と、検索データ取得部１１によって取得されたアカウント情報と、検索データ取得部１１によって取得されたプログラム識別情報とに基づいて暗号化データを検索する。
【００７８】
レコードデータ取得部１６は、複数のフィールドデータを含むレコードデータとアカウント情報とプログラム識別情報とを取得する。レコードデータ取得部１６は、取得したプログラム識別情報を暗号化情報登録部１９に出力する。
【００７９】
暗号化情報登録部１９は、フィールドデータハッシュ値算出部１７によって算出されたフィールドデータハッシュ値と、レコードデータ暗号化部１８によって生成された暗号化データと、レコードデータ取得部１６によって取得されたアカウント情報と、レコードデータ取得部１６によって取得されたプログラム識別情報とを対応付けて暗号化情報ＤＢ２０に記憶する。
【００８０】
次に、本実施形態のように構成された情報検索システム４の作用効果について説明する。
【００８１】
本実施形態の情報検索プログラム５によれば、暗号化情報ＤＢ２０では、ハッシュ値であるフィールドデータハッシュ値と、暗号化された暗号化データとが対応付けて記憶されている。よって、例えば第三者に暗号化情報ＤＢ２０の内容が漏洩したとしても、元のデータの解読は難しく、秘匿性は高い。また、検索データに対応するレコードデータを検索する際に、検索データのハッシュ値である検索データハッシュ値と、暗号化情報ＤＢ２０に記憶されているフィールドデータハッシュ値との一致性に基づいて検索される。よって、暗号化情報ＤＢ２０の内容を復号することなく検索を行うことができ、秘匿性を維持しつつ高速な検索を行うことができる。以上のように、このような情報検索プログラム５によれば、検索対象のデータの秘匿性を高めつつ、高速な検索を行うことができる。
【００８２】
また、本実施形態の情報検索プログラム５において、検索時に、アカウント情報に対応付けられたレコードデータのみを検索することができ、ユーザの利便性が向上する。例えば、異なるユーザが同一の検索データ及び同一のアカウント情報に基づいて検索したり、同一のユーザが異なるコンピュータから同一の検索データ及び同一のアカウント情報に基づいて検索したりする場合においても、同一のレコードデータを検索することができる。
【００８３】
また、本実施形態の情報検索プログラム５において、検索時に、当該情報検索プログラム５に対応付けられたレコードデータのみを検索することができ、ユーザの利便性が向上する。例えば、同一のユーザが異なる情報検索プログラム５が実行されている異なるコンピュータから同一のアカウント情報を用いて検索する場合においては、コンピュータごとのレコードデータを検索することができる。
【００８４】
また、本実施形態の情報検索プログラム５において、暗号化情報ＤＢ２０に対して、フィールドデータハッシュ値と暗号化データとが対応付いた暗号化情報を登録及び更新することができ、それゆえに当該暗号化情報を検索することができる。
【００８５】
また、本実施形態の情報検索プログラム５において、暗号化情報ＤＢ２０に対して、フィールドデータハッシュ値と暗号化データとアカウント情報とが対応付いた暗号化情報を登録及び更新することができ、それゆえに当該暗号化情報を検索することができる。
【００８６】
また、本実施形態の情報検索プログラム５において、暗号化情報ＤＢ２０に対して、フィールドデータハッシュ値と暗号化データとアカウント情報とプログラム識別情報とが対応付いた暗号化情報を登録及び更新することができ、それゆえに当該暗号化情報を検索することができる。
【００８７】
また、本実施形態の情報検索プログラム５において、例えば、通常は、着信元の電話番号及び関連情報をそれぞれハッシュ化及び暗号化して秘匿性が高いまま暗号化情報ＤＢ２０に記憶しておき、電話の着信時に、着信元の電話番号に基づく関連情報を検索して出力することができる。それにより、着信元の個人情報等のデータの秘匿性を高めつつ、当該データが必要になった際に高速に検索を行い、利用することができる。
【００８８】
なお、本実施形態では、暗号化情報ＤＢ２０は外部サーバ２が備えるものとして説明したが、携帯端末１が備えていてもよい。その場合の検索処理は、ネットワークを介して外部サーバ２にアクセスする以外は同様である。
【符号の説明】
【００８９】
１…携帯端末、２…外部サーバ、３…発信端末、４…情報検索システム、５…情報検索プログラム、１０…ツール記憶部、１１…検索データ取得部、１２…検索データハッシュ値算出部、１３…暗号化データ検索部、１４…暗号化データ復号部、１５…フィールドデータ出力部、１６…レコードデータ取得部、１７…フィールドデータハッシュ値算出部、１８…レコードデータ暗号化部、１９…暗号化情報登録部、２０…暗号化情報ＤＢ、５０…ツール記憶モジュール、５１…検索データ取得モジュール、５２…検索データハッシュ値算出モジュール、５３…暗号化データ検索モジュール、５４…暗号化データ復号モジュール、５５…フィールドデータ出力モジュール、５６…レコードデータ取得モジュール、５７…フィールドデータハッシュ値算出モジュール、５８…レコードデータ暗号化モジュール、５９…暗号化情報登録モジュール、６０…記憶媒体、６１…プログラム格納領域。
【図１】
2015018430.tif 000003
【図２】
2015018430.tif 000004
【図３】
2015018430.tif 000005
【図４】
2015018430.tif 000006
【図５】
2015018430.tif 000007
【図６】
2015018430.tif 000008
【図７】
2015018430.tif 000009
【図８】
2015018430.tif 000010
【図９】
2015018430.tif 000011
【図１０】
2015018430.tif 000012