(57)【要約】  演算装置とメモリとを有するコンピュータシステムにおける暗号情報検索方法であって、記憶された前記暗号化情報を暗号化された状態を保持したまま検索するための検索要求である暗号化検索要求を生成し、当該暗号化検索要求によって前記暗号化情報を検索して検索結果を取得し、前記暗号化検索要求を記憶し、前記暗号化情報の修正、新たな暗号化情報の追加を含む前記暗号化情報の変更を要求する暗号化情報変更要求を生成し、当該暗号化情報変更要求によって、記憶されている前記暗号化情報を変更し、前記暗号化情報変更要求の対象である前記暗号化情報と同じ暗号化情報を検索対象とする暗号化検索要求が、記憶した前記暗号化検索要求に含まれているか判定し、含まれていると判定した場合、検出された当該暗号化検索要求に、当該暗号化検索要求に係る検索結果が変更されたことを示す属性を付与し、前記検索結果の更新を要求する検索結果更新要求を生成し、当該検索結果の取得元となった検索対象に該当する暗号化検索要求であって、前記属性を有する暗号化検索要求を、記憶した前記暗号化検索要求において検索し、該当する暗号化検索要求があると判定した場合、当該暗号化検索要求により前記暗号化情報を検索し、更新された前記暗号化情報を取得する。
2017138122.tif 000002
【特許請求の範囲】
【請求項１】
演算装置と、当該演算装置で実行されるプログラム及び当該プログラムが使用するデータを格納するためのメモリとを有するコンピュータシステムにおける暗号情報検索方法であって、
所定の暗号化方式によって暗号化されたデータを含む暗号化情報を記憶し、
記憶された前記暗号化情報を暗号化された状態を保持したまま検索するための検索要求である暗号化検索要求を生成し、当該暗号化検索要求によって前記暗号化情報を検索して検索結果を取得し、
前記暗号化検索要求を記憶し、
前記暗号化情報の修正、新たな暗号化情報の追加を含む前記暗号化情報の変更を要求する暗号化情報変更要求を生成し、当該暗号化情報変更要求によって、記憶されている前記暗号化情報を変更し、
前記暗号化情報変更要求の対象である前記暗号化情報と同じ暗号化情報を検索対象とする暗号化検索要求が、記憶した前記暗号化検索要求に含まれているか判定し、含まれていると判定した場合、検出された当該暗号化検索要求に、当該暗号化検索要求に係る検索結果が変更されたことを示す属性を付与し、
前記検索結果の更新を要求する検索結果更新要求を生成し、当該検索結果の取得元となった検索対象に該当する暗号化検索要求であって、前記属性を有する暗号化検索要求を、記憶した前記暗号化検索要求において検索し、該当する暗号化検索要求があると判定した場合、当該暗号化検索要求により前記暗号化情報を検索し、更新された前記暗号化情報を取得する、
暗号情報検索方法。
【請求項２】
請求項１に記載の暗号情報検索方法であって、前記暗号化方式は、暗号化の対象となる平文データを二以上の異なる暗号化データに暗号化するとともに、前記異なる暗号化データが同一の平文データから得られたものであることを検出する機能を有している、暗号情報検索方法。
【請求項３】
請求項１に記載の暗号情報検索方法であって、前記所定の暗号化方式を用いることなく、平文データにより検索、及び検索結果更新が実行可能と構成されている、暗号情報検索方法。
【請求項４】
請求項１に記載の暗号情報検索方法であって、前記コンピュータシステムが、複数の前記演算装置及び前記メモリと、前記暗号化情報及び前記暗号化検索要求を記憶する複数の補助記憶装置とが通信ネットワークで相互に通信可能に接続されているクラウドコンピューティングシステムとして構成されている、暗号情報検索方法。
【請求項５】
請求項１に記載の暗号情報検索方法であって、前記暗号化検索要求は、受け付けた平文の検索要求を所定の前記暗号化方式で暗号化することにより生成される、暗号情報検索方法。
【請求項６】
請求項１に記載の暗号情報検索方法であって、前記暗号化情報変更要求は、受け付けた平文の情報変更要求を所定の前記暗号化方式で暗号化することにより生成される、暗号情報検索方法。
【請求項７】
演算装置と、当該演算装置で実行されるプログラム及び当該プログラムが使用するデータを格納するためのメモリとを有するコンピュータシステムとして構成されている暗号情報検索システムであって、
所定の暗号化方式によって暗号化されたデータを含む暗号化情報を記憶する暗号情報記憶部と、
記憶された前記暗号化情報を暗号化された状態を保持したまま検索するための検索要求である暗号化検索要求を生成し、当該暗号化検索要求によって前記暗号化情報を検索して検索結果を取得する検索要求部と、
前記暗号化検索要求を記憶する暗号化検索要求記憶部と、
前記暗号化情報の修正、新たな暗号化情報の追加を含む前記暗号化情報の変更を要求する暗号化情報変更要求を生成し、当該暗号化情報変更要求によって、記憶されている前記暗号化情報を変更する情報登録部と、
前記暗号化情報変更要求の対象である前記暗号化情報と同じ暗号化情報を検索対象とする暗号化検索要求が、記憶した前記暗号化検索要求に含まれているか判定し、含まれていると判定した場合、検出された当該暗号化検索要求に、当該暗号化検索要求に係る検索結果が変更されたことを示す属性を付与し、
前記検索結果の更新を要求する検索結果更新要求を生成し、当該検索結果の取得元となった検索対象に該当する暗号化検索要求であって、前記属性を有する暗号化検索要求を、記憶した前記暗号化検索要求において検索し、該当する暗号化検索要求があると判定した場合、当該暗号化検索要求により前記暗号化情報を検索し、更新された前記暗号化情報を取得する暗号情報処理部と、
を備えている暗号情報検索システム。
【請求項８】
請求項７に記載の暗号情報検索システムであって、前記暗号化方式は、暗号化の対象となる平文データを二以上の異なる暗号化データに暗号化するとともに、前記異なる暗号化データが同一の平文データから得られたものであることを検出する機能を有している、暗号情報検索システム。
【請求項９】
請求項７に記載の暗号情報検索システムであって、前記所定の暗号化方式を用いることなく、平文データにより検索、及び検索結果更新が実行可能と構成されている、暗号情報検索システム。
【請求項１０】
請求項７に記載の暗号情報検索システムであって、前記コンピュータシステムが、複数の前記演算装置及び前記メモリと、前記暗号化情報及び前記暗号化検索要求を記憶する複数の補助記憶装置とが通信ネットワークで相互に通信可能に接続されているクラウドコンピューティングシステムとして構成されている、暗号情報検索システム。
【請求項１１】
請求項７に記載の暗号情報検索システムであって、前記検索要求部は、受け付けた平文の検索要求を所定の前記暗号化方式で暗号化することにより前記暗号化検索要求を生成する、暗号情報検索システム。
【請求項１２】
請求項７に記載の暗号情報検索システムであって、前記情報登録部は、受け付けた平文の情報変更要求を所定の前記暗号化方式で暗号化することにより前記暗号化情報変更要求を生成する、暗号情報検索システム。
【請求項１３】
演算装置と、当該演算装置で実行されるプログラム及び当該プログラムが使用するデータを格納するためのメモリとを有するコンピュータシステムに、
所定の暗号化方式によって暗号化されたデータを含む暗号化情報を記憶する処理と、
記憶された前記暗号化情報を暗号化された状態を保持したまま検索するための検索要求である暗号化検索要求を生成し、当該暗号化検索要求によって前記暗号化情報を検索して検索結果を取得する処理と、
前記暗号化検索要求を記憶する処理と、
前記暗号化情報の修正、新たな暗号化情報の追加を含む前記暗号化情報の変更を要求する暗号化情報変更要求を生成し、当該暗号化情報変更要求によって、記憶されている前記暗号化情報を変更する処理と、
前記暗号化情報変更要求の対象である前記暗号化情報と同じ暗号化情報を検索対象とする暗号化検索要求が、記憶した前記暗号化検索要求に含まれているか判定し、含まれていると判定した場合、検出された当該暗号化検索要求に、当該暗号化検索要求に係る検索結果が変更されたことを示す属性を付与する処理と、
前記検索結果の更新を要求する検索結果更新要求を生成し、当該検索結果の取得元となった検索対象に該当する暗号化検索要求であって、前記属性を有する暗号化検索要求を、記憶した前記暗号化検索要求において検索し、該当する暗号化検索要求があると判定した場合、当該暗号化検索要求により前記暗号化情報を検索し、更新された前記暗号化情報を取得する処理と、
を実行させる暗号情報検索プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、暗号情報検索方法、暗号情報検索システム、及び暗号情報検索プログラムに関する。
【背景技術】
【０００２】
個人情報等の機密情報をクラウド上のサーバで管理している状況において、クラウドサーバからの情報漏洩を防止しつつ同時にそのような情報を活用するために、機密情報を構成しているデータを予め暗号化してからクラウドサーバに預けておき、クラウドサーバ上に格納されている暗号化データを利用する際には、暗号化状態のまま検索することを可能としている暗号技術が知られている。【０００３】
このような暗号技術として、例えば、内積述語暗号をベースにした検索可能暗号技術（特許文献１参照）、公開鍵暗号をベースにした検索可能暗号技術（非特許文献１参照）、共通鍵暗号をベースにした検索可能暗号技術（非特許文献２参照）などが提案されている。これらの技術はベースとなる暗号化方式は異なるが、共にクラウドサーバに登録する検索対象データだけでなく、検索に用いる検索クエリをも検索を実行する都度毎回異なる値になるように暗号化された状態で検索をすることができるので、たとえ同一の検索対象データを検索したり、同一の検索クエリを使用したりしても、その内容が第三者から推測されにくくなるという特徴がある。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１３−１５６６７５号公報
【非特許文献】
【０００５】
【非特許文献１】Ｄ．Ｂｏｎｅｈ、Ｇ．Ｄ．Ｃｒｅｓｃｅｎｚｏ、Ｒ．Ｏｓｔｒｏｖｓｋｙ、ａｎｄ  Ｇ．Ｐｅｒｓｉａｎｏ著、「Ｐｕｂｌｉｃ  ｋｅｙ  ｅｎｃｒｙｐｔｉｏｎ  ｗｉｔｈ  ｋｅｙｗｏｒｄ  ｓｅａｒｃｈ」、Ｉｎ  ＥＵＲＯＣＲＹＰＴ  ２００４、ＬＮＣＳ、ｖｏｌ．３０２７、ｐｐ５０６−５２２、Ｓｐｒｉｎｇｅｒ−Ｖｅｒｌａｇ、２００４
【非特許文献２】Ｄ．Ｓｏｎｇ、Ｄ．Ｗａｇｎｅｒ、ａｎｄ  Ａ．Ｐｅｒｒｉｇ著、「Ｐｒａｃｔｉｃａｌ  ｔｅｃｈｎｉｑｕｅｓ  ｆｏｒ  ｓｅａｒｃｈｅｓ  ｏｎ  ｅｎｃｒｙｐｔｅｄ  ｄａｔａ」、Ｐｒｏｃ．  ｏｆ  ｔｈｅ  ２０００  ＩＥＥＥ  Ｓｙｍｐｏｓｉｕｍ  ｏｎ  Ｓｅｃｕｒｉｔｙ  ａｎｄ  Ｐｒｉｖａｃｙ、ｐｐ４４−５５、２０００
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、これら提案されている技術においては、クラウドサーバに登録されている検索対象データも検索に用いる検索クエリも暗号化されているため、検索を実行する場合には、クラウドサーバに登録されている全て若しくは大部分の暗号化検索対象データと暗号化検索クエリとを暗号化状態で比較し、元となる平文同士が一致しているデータを、検索可能暗号手法を用いて見つける必要があった。【０００７】
具体的には、全件検索を要する場合、Ｍ個の暗号化検索対象データに対してＮ個の暗号化検索クエリにて検索を実施する際、Ｎ個の暗号化検索クエリに対する全ての検索結果を取得するまでには、Ｍ×Ｎ回の暗号化検索対象データと暗号化検索クエリとの暗号化状態での比較処理を行わなければならないことになる。ここで、Ｍ個の暗号化検索対象データに対してＮ個の暗号化検索クエリにて検索を実施した後で、クラウドサーバに登録されている暗号化検索対象データが更新された場合、若しくは新たにｍ個の暗号化検索対象データがクラウドサーバに追加登録された場合を考えると、前回得られた検索結果を最新の状態にするためには、どの暗号化検索対象データが更新若しくは追加されたのか、暗号化検索対象データ登録者以外は判断することができないので、再度、Ｍ×Ｎ回若しくは(Ｍ＋ｍ)×Ｎ回の暗号化検索対象データと暗号化検索クエリとの暗号化状態での比較処理を行う必要がある。それ故、検索者は以前検索した結果の最新状態を確認する度に、暗号化検索対象データ数×暗号化検索クエリ数分の暗号化状態での比較処理を行わなければならず、その場合、処理時間が増大するという課題があった。【０００８】
本発明は、このような事情に鑑みてなされたものであり、暗号化状態での検索処理において、クラウドサーバに登録されている暗号化検索対象データの更新・追加が行われた際、以前に検索を行った結果を最新状態にするための効率的な処理を可能とすることにある。
【課題を解決するための手段】
【０００９】
上記の、及び他の課題を解決するための、本発明の一態様は、演算装置と、当該演算装置で実行されるプログラム及び当該プログラムが使用するデータを格納するためのメモリとを有するコンピュータシステムにおける暗号情報検索方法であって、所定の暗号化方式によって暗号化されたデータを含む暗号化情報を記憶し、記憶された前記暗号化情報を暗号化された状態を保持したまま検索するための検索要求である暗号化検索要求を生成し、当該暗号化検索要求によって前記暗号化情報を検索して検索結果を取得し、前記暗号化検索要求を記憶し、前記暗号化情報の修正、新たな暗号化情報の追加を含む前記暗号化情報の変更を要求する暗号化情報変更要求を生成し、当該暗号化情報変更要求によって、記憶されている前記暗号化情報を変更し、前記暗号化情報変更要求の対象である前記暗号化情報と同じ暗号化情報を検索対象とする暗号化検索要求が、記憶した前記暗号化検索要求に含まれているか判定し、含まれていると判定した場合、検出された当該暗号化検索要求に、当該暗号化検索要求に係る検索結果が変更されたことを示す属性を付与し、前記検索結果の更新を要求する検索結果更新要求を生成し、当該検索結果の取得元となった検索対象に該当する暗号化検索要求であって、前記属性を有する暗号化検索要求を、記憶した前記暗号化検索要求において検索し、該当する暗号化検索要求があると判定した場合、当該暗号化検索要求により前記暗号化情報を検索し、更新された前記暗号化情報を取得する。【００１０】
また、本発明の他の態様は、演算装置と、当該演算装置で実行されるプログラム及び当該プログラムが使用するデータを格納するためのメモリとを有するコンピュータシステムとして構成されている暗号情報検索システムであって、所定の暗号化方式によって暗号化されたデータを含む暗号化情報を記憶する暗号情報記憶部と、記憶された前記暗号化情報を暗号化された状態を保持したまま検索するための検索要求である暗号化検索要求を生成し、当該暗号化検索要求によって前記暗号化情報を検索して検索結果を取得する検索要求部と、前記暗号化検索要求を記憶する暗号化検索要求記憶部と、前記暗号化情報の修正、新たな暗号化情報の追加を含む前記暗号化情報の変更を要求する暗号化情報変更要求を生成し、当該暗号化情報変更要求によって、記憶されている前記暗号化情報を変更する情報登録部と、前記暗号化情報変更要求の対象である前記暗号化情報と同じ暗号化情報を検索対象とする暗号化検索要求が、記憶した前記暗号化検索要求に含まれているか判定し、含まれていると判定した場合、検出された当該暗号化検索要求に、当該暗号化検索要求に係る検索結果が変更されたことを示す属性を付与し、前記検索結果の更新を要求する検索結果更新要求を生成し、当該検索結果の取得元となった検索対象に該当する暗号化検索要求であって、前記属性を有する暗号化検索要求を、記憶した前記暗号化検索要求において検索し、該当する暗号化検索要求があると判定した場合、当該暗号化検索要求により前記暗号化情報を検索し、更新された前記暗号化情報を取得する暗号情報処理部とを備えている。【００１１】
また、本発明のさらに他の態様は、演算装置と、当該演算装置で実行されるプログラム及び当該プログラムが使用するデータを格納するためのメモリとを有するコンピュータシステムに、前記暗号情報検索方法に係る処理を実行させるための暗号情報検索プログラムである。
【発明の効果】
【００１２】
本発明によれば、暗号化状態での検索処理において、暗号化検索対象データの更新・追加が行われた状況において、以前に検索を行った結果を最新の状態にする場合の検索処理を効率的に実行することが可能となる。
【図面の簡単な説明】
【００１３】
【図１】図１は本発明の一実施形態による暗号情報処理システムのシステム構成例を示す図である。
【図２】図２は暗号情報処理システム１のハードウェア構成例を示す図である。
【図３】図３は本実施形態における暗号化検索対象データの登録方法を示す模式図である。
【図４】図４は図３の模式図に対応する処理フロー例を示す図である。
【図５】図５は本実施形態における検索要求及び検索処理方法を示す模式図である。
【図６】図６は図５の模式図に対応する処理フロー例を示す図である。
【図７】図７は本実施形態における暗号化検索対象データの更新方法を示す模式図である。
【図８】図８は図７の模式図に対応する処理フロー例を示す図である。
【図９】図９は本実施形態における検索結果を最新状態にする方法を示す模式図である。
【図１０】図１０は図９の模式図に対応する処理フロー例を示す図である。
【発明を実施するための形態】
【００１４】
−−−システム構成−−−
以下に本発明の実施形態について図面を用いて詳細に説明する。図１は、本発明の暗号情報検索システムの一実施形態としての暗号文検索システム１の全体構成例を示す図である。この図では、全体構成と共に、暗号文検索システム１を構成する各コンピュータの機能構成例についても示している。
【００１５】
図１に示す暗号文検索システム１は、情報登録部である情報登録装置１０より暗号情報保存装置３０に登録された暗号化検索対象データを、検索要求部である検索要求装置２０から受け付ける暗号化検索クエリ（暗号化検索要求）に従って、暗号情報保存装置３０が暗号化状態のまま検索処理を行い、ヒットした場合該当する暗号化検索対象データを検索要求装置２０に返信するシステムである。
【００１６】
本実施形態に係る暗号文検索システム１は、情報登録装置１０と、検索要求装置２０と、暗号情報保存装置３０とが、インターネットなどの適宜な通信ネットワーク４０を介して通信可能に接続されて構成されたコンピュータネットワークシステムである。検索要求装置２０は、必要に応じて光ディスク、可搬型メモリ等の任意の記憶媒体５０との間でデータを入出力することができる。
【００１７】
図１に示すように、情報登録装置１０は、情報生成部１０１、暗号処理部１０２、鍵記憶部１０３、一時記憶部１０４、データ送受信部１０５、命令文生成部１０６、情報表示部１０７、及び情報入力部１０８を備えて構成することができる。
【００１８】
情報生成部１０１は、情報登録装置１０で暗号情報保存装置３０に登録する内容の情報を生成する機能を有し、例えば情報入力部１０８から入力された信号を基に情報を生成する。暗号処理部１０２は、情報生成部１０１で生成された情報を鍵記憶部１０３で管理されている暗号化用鍵を用いて暗号化処理を行う機能を有する。鍵記憶部１０３は、情報生成部１０１で生成された情報を暗号化するための鍵を公知の手法によって安全に格納し管理する機能を有する。一時記憶部１０４は、各種データを一時的に格納しておくための一時記憶領域である。データ送受信部１０５は、通信ネットワーク４０との間で暗号化データを送受信する機能を有する。命令文生成部１０６は、暗号情報保存装置３０に対して情報の登録、あるいは登録済み情報の変更等の処理実行を指示するための命令文を生成する機能を有し、例えば命令文としてのＳＱＬ文を生成する。情報表示部１０７は、情報生成部１０１で生成された情報を適宜の出力デバイスに表示する機能を有する。情報入力部１０８は、情報生成部１０１で生成する情報の入力にあたる信号を適宜の入力デバイスを通じて受け付ける機能を有する。
【００１９】
このような機能を有する情報登録装置１０は、図２の符号１０に例示するように、一般的なコンピュータにより実現することができる。例えば、情報生成部１０１、暗号処理部１０２、データ送受信部１０５、命令文生成部１０６、情報表示部１０７、及び情報入力部１０８は、ＣＰＵ（Central Processing Unit）等の演算装置１３により実行されるコンピュータプログラム１２として実現することができる。こうしたコンピュータプログラム１２は、例えば、ハードディスク、フラッシュメモリデバイス等の補助記憶装置１１に予め格納、保持するか、或いは通信ネットワーク４０から配布を受けて利用することとできる。
【００２０】
鍵記憶部１０３もまた、上述の補助記憶装置１１として実現することができる。また、一時記憶部１０４は、ＲＡＭ等のメモリ１４により実現することができる。また、情報表示部１０７は、例えば液晶表示装置、有機ＥＬ（ElectroLuminescence）ディスプレイ、プリンタなど適宜の出力装置１６を制御することにより情報表示出力処理を実現することができる。情報入力部１０８は、利用者からの指示、入力を受け付けるためのキーボードやマウス等の入力装置１７を通じて情報入力処理を実現することができる。この他、情報登録装置１０は、通信ネットワーク４０を介して他装置と通信するＮＩＣ（Network Interface Card）等を有する通信装置１５を備え、通信装置１５はデータ送受信部１０５により制御される。
【００２１】
次に、検索要求装置２０について説明する。図１に示すように、検索要求装置２０は、情報生成部２０１、暗号処理部２０２、鍵記憶部２０３、一時記憶部２０４、データ送受信部２０５、命令文生成部２０６、情報表示部２０７、情報入力部２０８、データ記憶部２０９、及び外部入出力部２００を備えて構成することができる。
【００２２】
情報生成部２０１は、検索要求装置２０において後述する暗号情報保存装置３０に記憶されている暗号情報の検索に必要な情報を生成する機能を有し、例えば情報入力部２０８から入力された信号を基に検索条件などの情報を生成する。暗号処理部２０２は、情報生成部２０１で生成された検索条件情報を鍵記憶部２０３で管理されている暗号化用鍵を用いて暗号化処理を行う機能を有する。鍵記憶部２０３は、情報生成部２０１で生成された検索条件情報を暗号化するための鍵を公知の手法によって安全に格納し管理する機能を有する。一時記憶部２０４は、各種データを一時的に格納しておくための一時記憶領域である。データ送受信部２０５は、通信ネットワーク４０との間で暗号化データを送受信する機能を有する。命令文生成部２０６は、暗号情報保存装置３０に検索実行等の所定の処理を実行させるための命令文を生成する機能を有し、例えば命令文としてのＳＱＬ文を生成する。情報表示部２０７は、情報生成部２０１で生成された検索条件情報や暗号情報保存装置３０からの検索結果を適宜の出力デバイスに表示する機能を有する。情報入力部２０８は、情報生成部２０１で生成する検索条件情報の入力にあたる信号を適宜の入力デバイスを通じて受け付ける。データ記憶部２０９は暗号情報保存装置３０から受信する検索結果のデータを記憶する機能を有する。外部入出力部２００は、暗号情報保存装置３０から受信する検索結果のデータを外部の記憶媒体５０との間で入出力する機能を有する。
【００２３】
このような機能を有する検索要求装置２０は、図２の符号２０に例示するように、一般的なコンピュータにより実現することができる。例えば、情報生成部２０１、暗号処理部２０２、データ送受信部２０５、命令文生成部２０６、情報表示部２０７、情報入力部２０８、及び外部入出力部２００は、ＣＰＵ等の演算装置２３により実行されるコンピュータプログラム２２として実現することができる。こうしたコンピュータプログラム２２は、例えば、情報登録装置１０と同様に、各種の補助記憶装置２１に予め格納、保持するか、或いは通信ネットワーク４０から配布を受けて利用することとできる。
【００２４】
また、鍵記憶部２０３、データ記憶部２０９もまた、上述の補助記憶装置２１として実現することができる。また、一時記憶部２０４は、ＲＡＭ等のメモリ２４により実現することができる。また、情報表示部２０７は、例えば液晶表示装置や有機ＥＬディスプレイ、プリンタなど適宜の出力装置２６を制御することにより情報表示出力処理を実現することができる。情報入力部２０８は、利用者からの指示、入力を受け付けるためのキーボードやマウス等の入力装置２７を通じて情報入力処理を実現することができる。また、外部入出力部２００は、ＤＶＤ（Digital Versatile Disc）ドライブやＵＳＢ（Universal Serial Bus）フラッシュドライブなどの記憶ドライブとの間でのデータ入出力処理を実現することができる。この他、検索要求装置２０は、通信ネットワーク４０を介して他装置と通信するＮＩＣ等を有する通信装置２５を備え、通信装置２５はデータ送受信部２０５により制御される。
【００２５】
次に、暗号情報保存装置３０について説明する。図１に示すように、暗号情報保存装置３０は、暗号情報記憶部３０１、命令文処理部３０２、検索クエリ記憶部３０３（暗号化検索要求記憶部）、一時記憶部３０４、データ送受信部３０５、及び命令文生成部３０６を備えて構成することができる。命令文処理部３０２、データ送受信部３０５、及び命令文生成部３０６は、暗号情報保存装置３０における暗号情報処理を実行する暗号情報処理部を構成する。
【００２６】
暗号情報記憶部３０１は、情報登録装置１０において入力され暗号化されたデータであり、検索要求装置２０による検索処理の対象となるデータである暗号化検索対象データを記憶する機能を有する。命令文処理部３０２は、情報登録装置１０又は検索要求装置２０から受け付ける命令文に従いデータ処理を行う。このデータ処理については具体的に後述する。検索クエリ記憶部３０３は、検索要求装置２０において入力され暗号化された命令文の検索クエリを記憶する。一時記憶部３０４は、各種データを一時的に格納しておくための一時記憶領域である。データ送受信部３０５は、情報登録装置１０、検索要求装置２０との間で暗号化データを送受信する機能を有する。命令文生成部３０６は、命令文処理部３０２へ入力される命令文を生成する機能を有し、例えばＳＱＬ文を生成する。
【００２７】
このような機能を有する暗号情報保存装置３０は、情報登録装置１０、検索要求装置２０と同様に、図２の符号３０に例示するように、一般的なコンピュータにより実現することができる。例えば、命令文処理部３０１、データ送受信部３０５、及び命令文生成部３０６は、ＣＰＵ等の演算装置３３により実行されるコンピュータプログラム３２として実現することができる。こうしたコンピュータプログラム３２は、情報登録装置１０、検索要求装置２０と同様に、各種の補助記憶装置３１に予め格納、保持するか、或いは通信ネットワーク４０を通じて他装置から配布を受けて利用することとできる。暗号情報記憶部３０１、検索クエリ記憶部３０３は、上述の補助記憶装置３１に設定される記憶領域として実現することができる。また、一時記憶部３０４は、ＲＡＭ等の適宜のメモリ３４により実現される。この他、暗号情報保存装置３０は、通信ネットワーク４０を介して他装置と通信する、ＮＩＣ等を有する通信装置３５を備え、通信装置３５はデータ送受信部３０５により制御される。なお、図２の暗号情報保存装置３０は、利用者との入出力インタフェースとして情報登録装置１０あるいは検索要求装置２０の入力装置１７，２７、出力装置１６，２６を利用するように構成することができるため、必ずしもそれ自体に入力装置、出力装置を備える必要はないが、情報登録装置１０、検索要求装置２０と同様に入力装置、出力装置を設けるようにしてもよい。
【００２８】
−−−処理手順例−−−
次に、以上の構成を有する、情報登録装置１０、検索要求装置２０、暗号情報保存装置３０を備える暗号文検索システム１によって実行されるデータ処理について、図面を参照して説明する。以下で説明する暗号化状態での検索処理方法に対応する各種データ処理は、暗号文検索システム１を構成する情報登録装置１０、検索要求装置２０、及び暗号情報保存装置３０が、それぞれメモリ等に読み出して実行される、図１に関して説明したプログラムによって実現される。このプログラムは、以下に説明される各種のデータ処理を行うためのコードによって構成されている。
【００２９】
ここでは、暗号化検索対象データの登録手順、暗号化検索クエリによる検索要求手順及び暗号化状態での検索処理手順、暗号化検索対象データの更新手順、並びに実施した検索結果を最新状態にするための手順について説明する。
【００３０】
まず、本実施形態の暗号文検索システム１における暗号化検索対象データの登録手順について説明する。図３は、情報登録装置１０が暗号化検索対象データを暗号情報保存装置３０に登録する手順及び各データの状態を示す模式図であり、図４は図３に示す手順を表す処理フロー例である。なお、図３の模式図において、装置間におけるデータの流れを太い矢印で示している。以下図５，７，９についても同様である。
【００３１】
まず、情報登録装置１０は、入力装置１７、あるいは通信装置１５を通じて登録すべきデータの入力を受け付ける（Ｓ１０）。そして、情報登録装置１０は、入力されたデータに基づいて、情報生成部１０１において暗号情報保存装置３０に登録する平文データを作成する（Ｓ１１）。本実施例では、作成された平文データは、図３に示すように、名前、年齢、性別、住所のデータ項目１１１＿１を備えた平文データテーブル１１１として構成されるものとして説明する。ただし、平文データのデータ形式はこれに制約されるものではない。
【００３２】
次に、情報登録装置１０は、情報生成部１０１で生成した平文データテーブル１１１のデータを暗号処理部１０２に渡し、暗号処理部１０２は平文データテーブル１１１に格納されているデータの各値を、鍵記憶部１０３で管理されている鍵を用いて暗号化処理を行う（Ｓ１２）。この時の暗号化処理は、例えば特許文献１、非特許文献１、非特許文献２等に開示されているような、暗号化状態で検索可能な暗号方式であればどのような方式でもよい。ここでは平文データテーブル１１１に格納されているデータを暗号化して得られる暗号化データを、暗号化データテーブル１１２として説明する。なお、本実施例では、平文データテーブル１１１の内、データ項目を示す列１１１＿１は、暗号化せずに平文のままで暗号化データ１１２を作成した状態を説明している。しかし、必要に応じて平文データテーブル１１１の項目を示す行１１１＿１を含め、全平文データテーブル１１１を暗号化してもよい。
【００３３】
なお、本実施例では、図３に示すように、平文データテーブル１１１の行１１１＿２、１１１＿３、及び１１１＿４を暗号化したものを、それぞれ暗号化データ１１２の行１１２＿２、１１２＿３、及び１１２＿４としている。また、平文データテーブル１１１の行１１１＿１の一列目の“名前”の項目は、当該テーブル１１１の主キーを兼ねているとして説明する。
【００３４】
図３，４に戻ると、次に情報登録装置１０は、暗号処理部１０２で処理して得られた暗号化データテーブル１１２の格納データを命令文生成部１０６に渡し、命令文生成部１０６では暗号化データを暗号情報保存装置３０に登録するための命令文１１６を作成する（Ｓ１３）。本実施例では、命令文はＳＱＬ文の形式で生成されるものと想定して説明するが、情報登録装置１０、暗号情報保存装置３０の間で送受信可能な形式の命令文であれば特に制約はなく、ＳＱＬ文の形式に限定する必要はない。図３の例での命令文１１６“INSERT INTO 311 (名前, 年齢, 性別, 住所) VALUES (45de, 2a3f, fde4, 4d3d)”は、情報登録装置１０の暗号処理部１０２によって暗号化された暗号化データテーブル１１２の暗号化データについて、項目名１１２＿１の値１１２＿２を暗号情報保存装置３０内の暗号情報記憶部３０１にあらかじめ設定されている暗号化情報テーブル３１１に挿入することを意味している。
【００３５】
次に情報登録装置１０は、命令文生成部１０６で生成した命令文１１６を、通信ネットワーク４０を介して暗号情報保存装置３０に送信する（Ｓ１４）。命令文１１６を受信した暗号情報保存装置３０では、命令文処理部３０２にて命令文１１６を解析してその内容を実行する（Ｓ１５）。本実施例では、命令文１１６は、情報登録装置１０の暗号処理部１０２において生成された暗号化データテーブル１１２の項目名１１２＿１の値１１２＿２を、暗号情報保存装置３０内の暗号情報記憶部３０１に設定されている暗号化情報テーブル３１１に挿入するという内容を有する。暗号情報保存装置３０の命令文処理部３０２は、暗号情報記憶部３０１にある暗号化情報テーブル３１１の二行目に、命令文１１６に含まれている暗号化された値（ＶＡＬＵＥＳ）である“４５ｄｅ，２ａ３ｆ，ｆｄｅ４，４ｄ３ｄ”を登録する。この暗号化データの挿入作業は、必要に応じて情報登録装置１０の平文データテーブル１１１の残りの行１１１＿３、１１１＿４についても同様な処理を行い、暗号情報保存装置３０の暗号化情報テーブル３１１の夫々の行に対応する暗号化された値を登録する。以上の図３、図４に例示したデータ処理により、暗号情報保存装置３０に、暗号化された状態で検索可能とされているデータが、セキュアな状態で保持されることとなる。暗号情報保存装置３０は、要求されたデータの登録が終了したことを、情報登録装置１０に返すように構成してもよい。
【００３６】
次に、本実施例の暗号文検索システム１によって実行される検索処理について説明する。図５は、暗号文検索システム１の検索要求装置２０が暗号化検索クエリを生成して暗号情報保存装置３０に送信し、暗号情報保存装置３０では暗号化状態での検索処理を行い、検索結果を検索要求装置２０に返送する手順及び各データの状態を示す模式図である。また図６は、図５で例示される手順を示す処理フロー例である。
【００３７】
この場合まず、検索要求装置２０は、入力装置２７等から検索要求を受け付け、情報生成部２０１により、検索要求範囲を示す情報２１１を生成する（Ｓ２０）。ここでは項目名が“名前”で、その値が“山田”、“鈴木”、“・・・”である行の値を全て取得することを検索要求とする。なお、記号“・・・”は、その他にも複数の値が存在することを示している（以下同じ）。
【００３８】
次に検索要求装置２０は、情報生成部２０１で生成した検索要求範囲を示す情報２１１を暗号処理部２０２に渡し、暗号処理部２０２は、平文データ２１１の各値を鍵記憶部２０３で管理されている暗号化鍵を用いて暗号化処理を行う（Ｓ２１）。この時の暗号化処理は、情報登録装置１０で採用されている暗号化方式と同一の暗号化方式によって行われる。ここでは、平文データ２１１を暗号化したものを暗号化データ２１２として説明する。なお、本実施例では、平文データ２１１の内、項目を示す“名前”という情報は暗号化せずに平文のままで暗号化データ２１２を作成した状態を説明するが、必要に応じて項目名を含め、全平文データ２１１を暗号化してもよい。このように、検索要求装置２０が検索要求対象の平文データを暗号化するので、検索要求に基づいて検索要求対象のデータを知られることを防止することができる。
【００３９】
次に検索要求装置２０は、暗号処理部２０２で処理した暗号化データ２１２を命令文生成部２０６に渡し、命令文生成部２０６では暗号情報保存装置３０に検索依頼するための命令文２１６を作成する（Ｓ２２）。情報登録装置１０に関してと同様に、命令文２１６はＳＱＬ文の形式で生成されるものとして説明するが、これに限定されるものではない。
【００４０】
本実施例での命令文２１６“SELECT * FROM 311 WHERE 名前=3aa3 AND 名前=6362 AND 名前=・・・”は、暗号情報保存装置３０内の暗号情報記憶部３０１に格納されている暗号化情報テーブル３１１から、項目名が“名前”で、その項目の値の暗号値が“３ａａ３”、“６３６２”である行の全ての値を取得するという内容を示す。
【００４１】
また、命令文生成部２０６は、前記命令文２１６とは別に、検索要求装置２０の暗号処理部２０２で生成した暗号化データ２１２の各暗号値“３ａａ３”、“６３６２”を、暗号情報保存装置３０内の検索クエリ記憶部３０３の検索クエリテーブル３１３に、項目名を“名前”として、夫々挿入するという内容の命令文２２６“INSERT INTO 313 (名前) VALUES (3aa3) INSERT INTO 313 (名前) VALUES (6362) INSERT INTO 313 (名前) VALUES (・・・)”を作成する（Ｓ２３）。命令文２２６の生成処理は、Ｓ２１の検索要求暗号化処理を受けて実行すればよいが、他のタイミングで実行することもできる。
【００４２】
次に検索要求装置２０は、命令文生成部２０６で生成した命令文２１６及び命令文２２６を、通信ネットワーク４０を介して暗号情報保存装置３０に送信する（Ｓ２４，Ｓ２５）。命令文２１６を受信した暗号情報保存装置３０では、命令文処理部３０２にて命令文２１６を解析して実行する（Ｓ２６）。本実施例では、命令文２１６は暗号情報保存装置３０内の暗号情報記憶部３０１にある暗号化情報テーブル３１１から、項目名が“名前”で、その項目の値の暗号値が“３ａａ３”、“６３６２”等である行の全ての値を取得するという内容である。命令文処理部３０２は、暗号情報記憶部３０１の暗号化情報テーブル３１１から、前記したような暗号化状態で検索可能な暗号方式を用いて、項目名が“名前”で、その項目の値の暗号値が“３ａａ３”、“６３６２”等である行が検索でヒットした場合（Ｓ２７，Ｙｅｓ）、その全ての値を取得する。検索でヒットしなかった場合は（Ｓ２７，Ｎｏ）、そのまま処理を終了する。なおこの場合に検索にヒットするデータがなかったことを検索要求装置２０に返してもよい。
【００４３】
このとき、暗号化状態で検索可能な暗号化方式の公知の性質により、項目名“名前”に対して、暗号値同士は異なっていても、元となる平文が同じ値である暗号化データを、暗号化情報テーブル３１１の行から取得することができる。図５の例では、平文で“山田”なるデータに対して、暗号化状態で検索可能な暗号方式により、“４５ｄｅ”、“３ａａ３”の異なる暗号化データが生成されている。そのため、命令文処理部３０２では、暗号化情報テーブル３１１の項目を示す１行目を含み、該当する２行目及び３行目を備える検索結果データ３１２を作成することができる。そして暗号情報保存装置３０は、検索結果データ３１２を、ネットワーク４０を介して検索要求装置２０に返信する（Ｓ２８）。このように、同一の平文データを二以上の異なる暗号化データに変換するとともに、それら異なる暗号化データから同一の平文データを検索することができるので、同内容の暗号化検索クエリにより検索を繰り返すといった処理を実行した場合でも、暗号化データに基づいて平文データを推測されるおそれを可及的に低減することができ、暗号文検索システム１としてのセキュリティが向上する。
【００４４】
検索結果データ３１２を受信した検索要求装置２０では、暗号処理部２０２にて鍵記憶部２０３で管理されている復号鍵を用いて復号処理を行い（Ｓ２９）、その復号結果を検索結果２１７として情報表示部２０７に表示する（Ｓ３０）。必要に応じて検索結果２１７を、データ入出力部２００によりデータ記憶部２０９又は記憶媒体５０に保存することもできる。
【００４５】
一方、暗号情報保存装置３０では、命令文処理部３０２にて命令文２２６の解析、実行も行う（Ｓ３１）。本実施例では、命令文２２６は情報登録装置２０の暗号処理部２０２にある暗号化データ２１２の各暗号値“３ａａ３”、“６３６２”を、暗号情報保存装置３０内の検索クエリ記憶部３０３に設定されている検索クエリテーブル３１３に、項目名を“名前”として、夫々挿入するという内容である。そのため、命令文処理部３０２は、検索クエリ記憶部３０３の検索クエリテーブル３１３の項目名“名前”の列に、命令文２２６の暗号化された値（ＶＡＬＵＥＳ）である“３ａａ３、６３６２”を登録する。この時、検索クエリテーブル３１３には、項目名“更新フラグ”の列が用意されている。命令文処理部３０２は、検索クエリテーブル３１１の“更新フラグ”列の値を全て“ｆａｌｓｅ”とする。この更新フラグの機能については後述する。以上のデータ処理により、検索要求装置２０から暗号情報保存装置３０に格納されている暗号化データをその暗号化状態のまま検索することができるとともに、検索要求装置２０から暗号情報保存装置３０に与えられた、暗号化データを含む検索クエリが暗号情報保存装置３０に格納される。
【００４６】
次に、暗号文検索システム１において実行されるデータ更新処理（暗号化情報変更要求）について説明する。図７は、情報登録装置１０により暗号情報保存装置３０に登録してある暗号化検索対象データを更新する手順及び各データの状態を示す模式図、図８はそれに対応する処理フロー例を示す図である。
【００４７】
この場合まず、情報登録装置１０は、入力装置１７等を通じて更新要求を受け付けると（Ｓ４０）、暗号情報保存装置３０に対して更新対象となる暗号化情報テーブル３１１のデータを送信するように要求する（Ｓ４１）。送信要求を受けた暗号情報保存装置３０は、データ送受信部３０５等により暗号情報記憶部３０１に登録してある暗号化情報テーブル３１１のデータを暗号化状態のまま情報登録装置１０に通信ネットワーク４０を介して送信する（Ｓ４２）。暗号化情報テーブル３１１のデータを受信した情報登録装置１０は、暗号処理部１０２にて鍵記憶部１０３で管理されている復号鍵を用いて受信した暗号化データの復号処理を行い、情報生成部１０１にて平文データテーブル１１１を復元する（Ｓ４３）。情報生成部１０１は、受け付けた更新要求に基づいて、該当箇所を更新する（Ｓ４４）。ここでは、平文データテーブル１１１の１１１＿２行目の４列目の“住所”の欄を“東京”から“埼玉”に更新した例を示している。
【００４８】
次に情報登録装置１０は、情報生成部１０１で更新した平文データテーブル１１１のデータを暗号処理部１０２に渡し、暗号処理部１０２は平文データの各値を鍵記憶部１０３で管理されている暗号化鍵を用いて暗号化処理を行う（Ｓ４５）。この時の暗号化処理は、情報登録処理において述べたように、適宜の暗号化状態で検索可能な暗号方式により実現することができる。ここでの更新された暗号化データは、暗号化データテーブル１１２として構成されている。なお、図７の例では、平文データテーブル１１１のデータの内、暗号化検索対象データの更新に必要な行１１２＿２の“名前”の列と“住所”の列の値のみ暗号化した状態を図示している。また、暗号化データテーブル１１２において、前記した暗号化状態で検索可能な暗号方式の公知の性質により、平文の“山田”なるデータには、図３、図５の例とは異なる、“ｑ２４ｇ”という暗号値が得られているものとしている。このように、更新対象の平文データを暗号化するので、暗号情報保存装置３０に送信する際の安全性を確保することができる。
【００４９】
次に、情報登録装置１０は暗号処理部１０２で更新した暗号化データ１１２を命令文生成部１０６に渡し、命令文生成部１０６では暗号情報保存装置３０の暗号情報記憶部３０１にある暗号情報テーブル３１１に格納されているデータを更新するための命令文１２６を作成する（Ｓ４６）。この例での命令文１２６“UPDATE 311 SET 住所=5555 WHERE 名前=q24g”は、暗号情報保存装置３０内の暗号情報記憶部３０１にある暗号化情報テーブル３１１のデータに対し、項目名が“名前”で、その値が“ｑ２４ｇ”の行において、項目名が“住所”で特定される欄を“５５５５”に更新するという内容である。
【００５０】
また、情報登録装置１０の命令文生成部１０６は、前記命令文１２６とは別に、暗号情報保存装置３０の検索クエリ記憶部３０３に格納されている検索クエリテーブル３１３を更新するための命令文１３６も作成する（Ｓ４７）。この例での命令文１３６“UPDATE 313 SET 更新フラグ=true WHERE 名前=q24g”は、暗号情報保存装置３０内の検索クエリ記憶部３０３にある検索クエリテーブル３１３のデータに対し、項目名が“名前”で、その値が“ｑ２４ｇ”で特定される行の、項目名が“更新フラグ”の欄を、“ｆａｌｓｅ”から“ｔｒｕｅ”に更新するという内容である。
【００５１】
次に情報登録装置１０は、命令文生成部１０６で生成した命令文１２６及び命令文１３６を、通信ネットワーク４０を介して暗号情報保存装置３０に送信する（Ｓ４６，Ｓ４７）。命令文１２６を受信した暗号情報保存装置３０では、命令文処理部３０２にて命令文１２６を解析して実行する（Ｓ４８）。本実施例では、前記した命令文１２６の内容にしたがって、暗号情報記憶部３０１の暗号情報テーブル３１１のデータに対し、項目名が“名前”で、その値が“ｑ２４ｇ”の行の、項目名が“住所”の欄を“５５５５”に更新するという処理を実行する。前記したように、命令文処理部３０２は、暗号情報記憶部３０１の暗号情報テーブル３１１を、所定の暗号化状態で検索可能な暗号方式を用いて検索し更新を行う。このとき、前記した暗号化状態で検索可能な暗号化方式の公知の性質より、項目名“名前”について暗号値“４５ｄｅ”が格納されている行を取得することができる。
【００５２】
一方、暗号情報保存装置３０では、受信した命令文１３６についても命令文処理部３０２にて解析を行い実行する（Ｓ４９）。本実施例では、命令文１３６“UPDATE 313SET 更新フラグ=true WHERE 名前=q24g”は、暗号情報保存装置３０内の検索クエリ記憶部３０３に設定されている検索クエリテーブル３１３のデータに対し、項目名が“名前”で、その値が“ｑ２４ｇ”の行の、項目名が“更新フラグ”の欄を“ｔｒｕｅ”に更新するという内容である。前記したように、暗号化状態で検索可能な暗号化方式の公知の性質により、項目名が“名前”でその値の暗号値同士は異なっていても、元となる平文が同じ値である暗号化データは検索することができる。命令文処理部３０２が検索クエリテーブル３１３を検索した結果ヒットした場合（Ｓ５０，Ｙｅｓ）、暗号情報保存装置３０の命令文処理部３０２は、検索クエリ記憶部３０３の検索クエリテーブル３１３から、所定の暗号化状態で検索可能な暗号方式を用いて、項目名が“名前”で、その項目の値の暗号値が“３ａａ３”（平文データの“山田”に対応）である行の、項目名が“更新フラグ”で特定される欄を“ｔｒｕｅ”に更新する（Ｓ５１）。Ｓ５０で検索がヒットしなかった場合、処理を終了する。以上のデータ処理により、検索クエリ記憶部３０３に格納されている検索クエリの内で、それらの検索クエリに対応する暗号化データについて更新が行われたデータを識別可能とすることができる。
【００５３】
次に、本実施例の暗号文検索システム１において、すでに実行した検索結果を更新するためのデータ処理について説明する。図９は、検索要求装置２０がデータ記憶部２０９又は記憶媒体５０で保存してある検索結果２１７を更新する手順及び各データの状態を示す模式図、図１０はそれに対応する処理フロー例を示す図である。
【００５４】
この場合まず、検索要求装置２０は、命令文生成部２０６にて、暗号情報保存装置３０に対して検索結果の最新状態の確認を実行させるための最新状態確認依頼命令文２４６（検索結果更新要求）を生成する（Ｓ６０）。この命令文２４６は、検索要求装置２０、暗号情報保存装置３０の間で送受信可能な形態のであればどのようなものであってもよい。最新状態確認依頼命令文２４６の生成は、例えば検索要求装置２０の入力装置２７を通じた実行命令に応じて実行するように構成することができる他、適宜の時間経過といったイベントによりトリガーされるように構成してもよい。
【００５５】
次に検索要求装置２０は、命令文生成部２０６で生成した命令文２４６を、通信ネットワーク４０を介して暗号情報保存装置３０に送信する（Ｓ６１）。命令文２４６を受信した暗号情報保存装置３０では、命令文処理部３０２にて命令文２４６を解析して実行する（Ｓ６２）。命令文処理部３０２が検索クエリ記憶部３０３の検索クエリテーブル３１３において、項目名が“更新フラグ”でその値が当該検索クエリの結果が変更されたことを示すフラグである変更フラグ“ｔｒｕｅ”である行を検出した場合（Ｓ６３，Ｙｅｓ）、命令文処理部３０２は、検索クエリテーブル３１３から、項目名が“更新フラグ”でその値が“ｔｒｕｅ”である行の、項目名が“名前”の欄の値を全て取得して命令文生成部３０６に渡しつつ、該当した更新フラグ欄の値を“ｔｒｕｅ”から“ｆａｌｓｅ”に変更する（Ｓ６４）。なお、図９の例では、該当する値は“３ａａ３”のみとして説明する。変更フラグが検出されなかった場合（Ｓ６３，Ｎｏ）、命令文処理部３０２は処理を終了する。なおこの場合、命令文処理部３０２が検索要求装置２０に、更新された検索結果がないことを通知してもよい。
【００５６】
命令文生成部３０６では、暗号情報保存装置３０の暗号情報記憶部３０１に格納されている暗号情報テーブル３１１のデータを検索するための命令文３１６を作成する（Ｓ６５）。本実施例では命令文３１６はＳＱＬ文の形式であるとしているが、これに制約されるものではない。図９の例での命令文３１６“SELECT *FROM 311 WHERE 名前=3aa3”は、暗号情報保存装置３０内の暗号情報記憶部３０１にある暗号情報テーブル３１１から、項目名が“名前”で、その項目の値の暗号値が“３ａａ３”である行の全ての値を取得するという内容である。命令文生成部３０６は、その命令文３１６を命令文処理部３０２に渡し、命令文処理部３０２では命令文３１６を解析して実行する（Ｓ６６）。すなわち、暗号文処理部３０２は、暗号情報記憶部３０１の暗号情報テーブル３１１から、所定の暗号化状態で検索可能な暗号方式を用いて、項目名が“名前”で、その項目の値の暗号値が“３ａａ３”である行の全ての値を取得する。このとき暗号化状態で検索可能な暗号化方式の公知の性質により、項目名が“名前”でその値の暗号値同士は異なっていても元となる平文が同じ値のデータの行を取得することができる。本実施例では、平文データ“山田”に対応する暗号値“３ａａ３”に対応して、異なる暗号値“４５ｄｅ”を含む行も検索することができる。
【００５７】
暗号情報保存装置３０は、Ｓ６６で取得した検索結果データ３２２を、通信ネットワーク４０を介して検索要求装置２０に送信する（Ｓ６７）。検索結果データ３２２を受信した検索要求装置２０では、暗号処理部２０２にて鍵記憶部２０３で管理されている復号鍵を用いて復号処理を行う（Ｓ６８）。検索要求装置２０では、その復号結果をデータ記憶部２０９又は記憶媒体５０で保存してある検索結果２１７に適用して差分を上書きしデータを更新する。そして前記更新された検索結果２１７を情報表示部２０７に表示し、必要に応じて検索結果２１７を、データ記憶部２０９又は記憶媒体５０に保存する（Ｓ６９）。
【００５８】
以上のデータ処理によれば、実施済みの検索結果について、更新が行われたデータのみについて暗号化状態で検索を実行して検索結果を最新状態にすることができる。すなわち、暗号化状態での検索処理において、例えばシステムとしてのロバスト性を高めるべくクラウドサーバ等として構成することができる暗号情報保存装置３０に登録されている暗号化検索対象データの更新が行われた際に、検索要求装置２０が以前に検索を行った結果２１７を最新の状態にする場合、暗号情報保存装置３０の検索クエリ記憶部３０３に設定されている検索クエリテーブル３２３に格納されているデータの更新フラグ欄にて“ｔｒｕｅ”の識別子が示されているレコードのみを検索すればよいことになる。つまり、暗号化検索対象データ数×暗号化検索クエリ数分の暗号化状態での比較処理は行う必要がなく、暗号化検索対象データ数×ｔｒｕｅ識別子が付けられた暗号化検索クエリ数分の暗号化状態での比較処理のみを実施すればすみ、「暗号化検索クエリ数＞＞ｔｒｅｕ識別子数」の場合、効率的に検索結果を最新状態にすることが可能となる。
【００５９】
以上、本実施形態に係る暗号文検索システム１における暗号化検索対象データの登録手順、暗号化検索クエリによる検索要求手順及び暗号化状態での検索処理手順、暗号化検索対象データの更新手順、並びにすでに実施済みの検索結果を最新状態に更新する手順を説明した。
【００６０】
本発明はこれらの実施形態に限定されるものでなく、その趣旨を逸脱しない範囲において種々変更可能である。例えば、上記実施形態では、情報登録装置１０、検索要求装置２０、暗号情報保存装置３０は別々の装置で通信ネットワーク４０を介して接続されているが、情報登録装置１０、検索要求装置２０、暗号情報保存装置３０の内、２つ、又は全部が一つの筐体として構築されていてもよい。また、上記実施形態では、暗号化状態での検索が可能な暗号化方式を用いているが、本発明は、検索対象データ及び検索クエリを暗号化せずに、平文のままで実行する検索処理に適用してもよい。その場合でも、上記実施形態で説明した検索結果を最新状態に更新する処理の効率化という効果を達成することができる。
【符号の説明】
【００６１】
１  暗号文検索システム    １０  情報登録装置
１１，２１，３１  補助記憶装置    １２，２２，３２  プログラム
１３，２３，３３  演算装置    １４，２４，３４  メモリ
１５，２５，３５  通信装置    １６，２６  出力装置
１７，２７  入力装置
２０  検索要求装置    ２８  外部入出力装置
３０  暗号情報保存装置    ４０  通信ネットワーク
１０１，２０１  情報生成部    １０２，２０２  暗号処理部
１０３，２０３  鍵記憶部    １０４，２０４，３０４  一時記憶部
１０５，２０５，３０５  データ送受信部    １０６，２０６、３０６  命令文生成部
１０７，２０７  情報表示部    １０８，２０８  情報入力部
２００  外部入出力部    ２０９  データ記憶部
３０１  暗号情報記憶部    ３０２  命令文処理部    ３０３  検索クエリ記憶部
【図１】
2017138122.tif 000003
【図２】
2017138122.tif 000004
【図３】
2017138122.tif 000005
【図４】
2017138122.tif 000006
【図５】
2017138122.tif 000007
【図６】
2017138122.tif 000008
【図７】
2017138122.tif 000009
【図８】
2017138122.tif 000010
【図９】
2017138122.tif 000011
【図１０】
2017138122.tif 000012
【国際調査報告】
2017138122.tif 000013
2017138122.tif 000014