(57)【特許請求の範囲】
【請求項１】
複数の項目を持つレコードの集合で構成され且つ前記複数の項目のうち少なくとも検索する際のキーとなるキー項目が暗号化されている暗号化ファイルの検索方法において、
（ａ）各レコードのキー項目だけを復号化し、どのレコードのキー項目であるかを示す識別子を付加して、主記憶上に展開するステップと、
（ｂ）検索条件を満たすキー項目を主記憶上に展開されたキー項目から検索するステップと、
を含む暗号化ファイル検索方法。
【請求項２】
前記ステップａは、主記憶上にワーク領域を確保するステップと、各レコードのキー項目だけを復号化し、どのレコードのキー項目であるかを示す識別子を付加して、前記確保されたワーク領域に展開するステップと、一連の検索処理の終了時に前記ワーク領域を解放するステップとを含む請求項１記載の暗号化ファイル検索方法。
【請求項３】
前記ステップｂは、検索条件を満たすキー項目に付加された前記識別子に基づいて暗号化ファイルから該当するレコードを読み出し復号化して検索結果に含める請求項１または２記載の暗号化ファイル検索方法。
【請求項４】
複数の項目を持つレコードの集合で構成され且つ前記複数の項目のうち少なくとも検索する際のキーとなるキー項目が暗号化されている暗号化ファイルの検索装置において、
各レコードのキー項目だけを復号化し、どのレコードのキー項目であるかを示す識別子を付加して、主記憶上に展開する展開手段と、
検索条件を満たすキー項目を主記憶上に展開されたキー項目から検索する検索手段とを有する暗号化ファイル検索装置。
【請求項５】
前記展開手段は、主記憶上にワーク領域を確保する手段と、各レコードのキー項目だけを復号化し、どのレコードのキー項目であるかを示す識別子を付加して、前記確保されたワーク領域に展開する手段と、一連の検索処理の終了時に前記ワーク領域を解放する手段とを含む請求項４記載の暗号化ファイル検索装置。
【請求項６】
前記検索手段は、検索条件を満たすキー項目に付加された前記識別子に基づいて暗号化ファイルから該当するレコードを読み出し復号化して検索結果に含める構成を有する請求項４または５記載の暗号化ファイル検索装置。
【請求項７】
複数の項目を持つレコードの集合で構成され且つ前記複数の項目のうち少なくとも検索する際のキーとなるキー項目が暗号化されている暗号化ファイルの検索装置を構成するコンピュータを、
各レコードのキー項目だけを復号化し、どのレコードのキー項目であるかを示す識別子を付加して、主記憶上に展開する展開手段、
検索条件を満たすキー項目を主記憶上に展開されたキー項目から検索する検索手段、
として機能させるプログラムを記録したコンピュータ可読記録媒体。
【請求項８】
前記展開手段は、主記憶上にワーク領域を確保する手段と、各レコードのキー項目だけを復号化し、どのレコードのキー項目であるかを示す識別子を付加して、前記確保されたワーク領域に展開する手段と、一連の検索処理の終了時に前記ワーク領域を解放する手段とを含む請求項７記載のコンピュータ可読記録媒体。
【請求項９】
前記検索手段は、検索条件を満たすキー項目に付加された前記識別子に基づいて暗号化ファイルから該当するレコードを読み出し復号化して検索結果に含める構成を有する請求項７または８記載のコンピュータ可読記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明はファイルの検索に関し、特にデータを暗号化して格納している暗号化ファイルの検索方法及びその装置に関する。
【０００２】
【従来の技術】
インターネットの普及に伴い、各種の情報がインターネット上で数多く提供されている。その反面、情報を提供する側としては、個人情報や企業情報等の提供すべきでない情報までもがインターネット上に漏れてしまう、或いは盗まれてしまうというセキュリティ面での危険性も有している。漏れた場合あるいは盗まれた場合に備えて、データベースのファイルを暗号化しておく技術がある。一方で、データベースのファイルの情報は、企業内の必要不可欠な人達へは提供する必要があり、暗号化ファイルに対する検索技術が必要となってくる。
【０００３】
暗号化ファイルに対する最も単純な検索手法は、暗号化ファイルの内容を全て復号化して同一構造の別のデータベースのファイルに格納し、そのファイルからデータの検索を行う手法である。以下、この手法を第１の従来技術と呼ぶ。
【０００４】
暗号化ファイルに対する別の検索手法が特開２０００−１１００１号公報に記載されている。この従来手法では、平文で入力された検索キーワードを暗号化して、暗号化ファイルを検索する。具体的には、予め暗号化された複数のファイルを復号化して、各ファイルに含まれるキーワードとそのキーワードが含まれていたファイル名との組を抽出し且つ各組中のキーワードを暗号化したインデックスを生成する。例えば「鈴木一郎」というキーワードが或るファイルＡに含まれていた場合、「鈴木一郎」を暗号化したデータとファイルＡの名前との組を生成する。暗号化されたデータは一般にランダムなデータ列となり、表記が困難なので、本明細書では便宜上、アルファベット文字列で表記する。例えば「鈴木一郎」は「ｚｄｓｉｕｋｉｉｏ」に暗号化されたとする。次に、利用者から検索キーワードとして「鈴木一郎」が入力された場合、それを暗号化して「ｚｄｓｉｕｋｉｉｏ」なる暗号化検索キーワードを生成し、インデックス中の暗号化キーワードと照合して、ファイルＡの名前を抽出する。以下、この手法を第２の従来技術と呼ぶ。
【０００５】
【発明が解決しようとする課題】
第１の従来技術では、復号化したデータがデータベースに存在することになるため、セキュリティ面からみると危険性が伴ってしまう。
【０００６】
他方、第２の従来技術では暗号化された状態で検索を行うためファイルのデータの機密性は確保されるが、データを暗号化したまま検索するため、実行可能な検索の種類が大幅に制限されてしまう。
【０００７】
例えば個人情報を検索する際に、個人を特定する氏名だけでなく、氏だけを検索キーに使う場合が考えられる。この場合、暗号化ファイルのキー項目が氏名であり、それが暗号化されていると、完全一致検索は可能であるが、氏を検索キーとする部分一致検索は行えない。その理由は、例えば氏名「鈴木一郎」全体を暗号化した「ｚｄｓｉｕｋｉｉｏ」中には、氏「鈴木」だけを暗号化したデータは含まれないからである。
【０００８】
また個人情報を検索する際に、年齢などの数値情報を検索キーに使い、或る年齢以上の個人を検索する場合等が考えられるが、年齢４０才と年齢２０才とをそれぞれ暗号化したデータの大小関係は保証されないため、そのような条件検索は行えない。
【０００９】
本発明はこのような従来の問題点を解決したもので、その目的は、暗号化ファイルに対する各種の検索をセキュリティ性を確保しながら実施し得るようにすることにある。
【００１０】
【課題を解決するための手段】
本発明の暗号化ファイル検索方法は、複数の項目を持つレコードの集合で構成され且つ前記複数の項目のうち少なくとも検索する際のキーとなるキー項目が暗号化されている暗号化ファイルの検索方法において、（ａ）各レコードのキー項目だけを復号化し、どのレコードのキー項目であるかを示す識別子を付加して、主記憶上に展開するステップと、（ｂ）検索条件を満たすキー項目を主記憶上に展開されたキー項目から検索するステップとを含んでいる。
【００１１】
また、前記ステップａは、主記憶上にワーク領域を確保するステップと、各レコードのキー項目だけを復号化し、どのレコードのキー項目であるかを示す識別子を付加して、前記確保されたワーク領域に展開するステップと、一連の検索処理の終了時に前記ワーク領域を解放するステップとを含み、前記ステップｂは、検索条件を満たすキー項目に付加された前記識別子に基づいて暗号化ファイルから該当するレコードを読み出し復号化して検索結果に含めるステップを含んでいる。
【００１２】
また、本発明の暗号化ファイル検索装置は、複数の項目を持つレコードの集合で構成され且つ前記複数の項目のうち少なくとも検索する際のキーとなるキー項目が暗号化されている暗号化ファイルの検索装置において、各レコードのキー項目だけを復号化し、どのレコードのキー項目であるかを示す識別子を付加して、主記憶上に展開する展開手段と、検索条件を満たすキー項目を主記憶上に展開されたキー項目から検索する検索手段とを有している。
【００１３】
また、前記展開手段は、主記憶上にワーク領域を確保する手段と、各レコードのキー項目だけを復号化し、どのレコードのキー項目であるかを示す識別子を付加して、前記確保されたワーク領域に展開する手段と、一連の検索処理の終了時に前記ワーク領域を解放する手段とを含み、前記検索手段は、検索条件を満たすキー項目に付加された前記識別子に基づいて暗号化ファイルから該当するレコードを読み出し復号化して検索結果に含める構成を有している。
【００１４】
【作用】
一般にコンピュータの主記憶は磁気ディスク装置などの外部記憶装置と異なり、そのコンピュータの外部から直接アクセスすることはできないため、暗号化ファイルの各レコードのキー項目を復号化して主記憶上に展開しても、セキュリティ性は確保できる。また、復号化されたキー項目を用いて、検索条件を満たすキー項目を検索するので、検索の種類が大幅に制限される問題は解消される。
【００１５】
【発明の実施の形態】
次に本発明の実施の形態の例について図面を参照して詳細に説明する。
【００１６】
図１は本発明の暗号化ファイル検索装置の一例を示すブロック図であり、検索装置１、暗号化ファイル２、表示装置３及び入力装置４で構成されている。
【００１７】
暗号化ファイル２は、図２に示すような複数の項目Ｃ０〜Ｃｍを持つレコードＲ１〜Ｒｎの集合で構成される。各レコードＲ１〜Ｒｎは、例えば特定の個人に対応しており、その個人の各種の情報を保持している。例えば項目Ｃ１は氏名、項目Ｃ２は年齢、項目Ｃｍは年収などを示す。他に、所属部署や役職など各種のデータが他の項目に格納されている。また、項目Ｃ０のレコード番号は当該レコードを一意に識別するレコード識別子である。各レコードＲ１〜Ｒｎは、少なくとも検索する際のキーとなるキー項目が暗号化されている。ここでは、説明の便宜上、項目Ｃ１と項目Ｃ２がキー項目であり、キー項目以外の項目で暗号化されている項目は項目Ｃｍだけを想定する。つまり、項目Ｃ０〜Ｃｍのうち、項目Ｃ１、Ｃ２、Ｃｍは暗号化されており、残りの項目は暗号化されていないものとする。なお、暗号化の手法は特に制限はなく、任意の暗号化手法を採用することができる。
【００１８】
表示装置３及び入力装置４は、利用者と検索装置１とのインタフェースであり、利用者は入力装置４から検索装置１を起動したり、停止させる指示を入力し、また検索条件などを入力する。表示装置３は、検索装置１で得られた検索結果を利用者に表示するため等に利用される。
【００１９】
検索装置１は、利用者から入力された検索条件に合致するレコードを暗号化ファイル２から検索して利用者に提示する装置であり、展開手段１１と検索手段１２とワーク領域１３とで構成される。検索装置１は、パーソナルコンピュータやワークステーション・サーバ等のコンピュータを構成する中央処理装置、主記憶及び制御プログラムによって構成される。この場合、制御プログラムはＣＤ−ＲＯＭ、半導体メモリ、磁気ディスク等の機械読み取り可能な記録媒体５に記憶されており、検索装置１を構成するコンピュータの立ち上げ時などにコンピュータに読み取られ、そのコンピュータの動作を制御することにより、そのコンピュータ上に展開手段１１及び検索手段１２を実現する。
【００２０】
展開手段１１は、暗号化ファイル２の各レコードＲ１〜Ｒｎのキー項目を復号化し、どのレコードのキー項目であるかを示す識別子を付加して、主記憶上に展開する手段である。本実施例では、この識別子として各レコードＲ１〜Ｒｎの項目Ｃ０のレコード番号を用いる。また、復号化に必要な復号鍵は展開手段１１に設定されているものとする。
【００２１】
展開手段１１の構成例を図３に示す。この例の展開手段１１は、検索装置１の起動時に主記憶上にワーク領域１３を確保する確保部１１１と、暗号化ファイル２の各レコードＲ１〜Ｒｎのキー項目Ｃ１、Ｃ２を復号化し、レコード番号Ｃ０を付加してワーク領域１３に格納する展開部１１２と、検索装置１の停止時にワーク領域１３を解放する解放部１１３とを含んでいる。また、展開部１１２は、暗号化ファイル２から各レコードＲ１〜Ｒｎのキー項目Ｃ１、Ｃ２を読み出す読出部１１２１と、読み出されたキー項目Ｃ１、Ｃ２を復号化する復号化部１１２２と、復号化されたキー項目Ｃ１、Ｃ２とレコード番号Ｃ０とを１レコードとしてワーク領域１３に書き込む書込部１１２３とから構成される。
【００２２】
検索手段１２は、利用者から入力された検索条件を満たすキー項目をワーク領域１３上のレコード群から検索する手段である。図４に検索手段１２の構成例を示す。この例の検索手段１２は、表示装置３及び入力装置４とデータの授受を行う入出力部１２１と、入出力部１２１を通じて入力された検索条件に従って検索処理を実行する検索部１２２と、検索部１２２からの要求に従って暗号化ファイル２からレコードを読み出し復号化するレコード復号化部１２３とを含む。また、レコード復号化部１２３は、暗号化ファイル２からレコードを読み出す読出部１２３１と、読み出されたレコード中の暗号化された項目を復号化する復号化部１２３２とで構成される。なお、復号化に必要な復号鍵は検索手段１２に設定されているものとする。
【００２３】
図５は検索装置１の処理例を示すフローチャートである。以下、各図を参照して本実施例の動作を説明する。
【００２４】
入力装置４を通じて利用者から起動されると、検索装置１は展開手段１１を起動する。展開手段１１は、まず確保部１１１により主記憶からワーク領域１３を確保する（図５のＳ１）。次に、展開部１１２の読出部１１２１により暗号化ファイル２の先頭のレコードＲ１のキー項目Ｃ１、Ｃ２とレコード番号Ｃ０とを読み出し（Ｓ２）、復号化部１１２２によりキー項目Ｃ１、Ｃ２を復号化し（Ｓ３）、復号化したキー項目Ｃ１、Ｃ２とレコード番号Ｃ０とを１レコードとしてワーク領域１３に書き込む（Ｓ４）。このステップＳ２〜Ｓ４の処理は暗号化ファイル２の残りのレコードＲ２〜Ｒｎに対して繰り返される。これにより、ワーク領域１３には、図６に示されるように、暗号化ファイル２中の各レコードＲ１〜Ｒｎと１対１に対応するレコードＦ１〜Ｆｎが格納される。ここで、レコードＦ１〜Ｆｎ中の項目Ｃ１、Ｃ２は復号化された状態になっている。
【００２５】
以上のような展開手段１１による処理が終了すると、制御が検索手段１２に渡される。検索手段１２の入出力部１２１は、利用者からの指示を待ち合わせ（Ｓ５、Ｓ６）、検索条件を含む検索実行が指示された場合には（Ｓ５でＹＥＳ）、検索条件を検索部１２２に渡し、検索処理の終了が指示された場合には（Ｓ６でＹＥＳ）、処理終了を展開手段１１に通知する。
【００２６】
検索部１２２は、検索条件が渡されると、検索条件を解析し（Ｓ７）、ワーク領域１３上で必要な検索を実行する（Ｓ８）。例えば、検索条件として、１つの検索キーが指定され、その検索キーと同じ値を所定のキー項目に有するレコードの検索が指示された場合には、ワーク領域１３上のレコードＦ１〜Ｆｎの中から検索キーと同じ値を該当するキー項目に有するレコードを検索し、そのレコード番号Ｃ０を抽出する。また、検索条件として、１つの検索キーが指定され、その検索キーの値以上の値を所定のキー項目に有するレコードの検索が指示された場合には、ワーク領域１３上のレコードＦ１〜Ｆｎの中から検索キーの値以上の値を該当するキー項目に有するレコードを検索し、そのレコード番号Ｃ０を抽出する。その他、複数の検索キーをアンド条件で指定した検索指示等に対しても同様にして検索を実行する。
【００２７】
検索部１２２は、ワーク領域１３上で少なくとも１つのレコードの検索に成功した場合は（Ｓ９でＹＥＳ）、取得したレコード番号Ｃ０をレコード復号化部１２３に渡す。レコード復号化部１２３の読出部１２３１は、渡されたレコード番号Ｃ０を持つレコードを暗号化ファイル２から読み出し（Ｓ１０）、復号化部１２３２はそのレコード中の暗号化された項目Ｃ１、Ｃ２、Ｃｍを復号化し（Ｓ１１）、検索部１２２に返却する。検索部１２２は、この復号化されたレコードを検索結果として、入出力部１２１を通じて表示装置３に出力する（Ｓ１２）。他方、レコードの検索に失敗した場合は（Ｓ９でＮＯ）、検索部１２２は該当レコード無しの検索結果を入出力部１２１を通じて表示装置３に出力する（Ｓ１２）。
【００２８】
利用者が一連の検索を終え、入力装置４から検索終了の指示を入力すると、その指示が入出力部１２１を通じて展開部１１に通知される（Ｓ６でＹＥＳ）。展開部１１は、この通知を受けると、解放部１１３によりワーク領域１３を解放する（Ｓ１３）。これにより、ワーク領域１３上に展開されていたレコードＦ１〜Ｆｎは消去される。
【００２９】
図７は検索装置１で検索処理を行っている様子を模式的に示す。主記憶上のワーク領域１３には、暗号化ファイル２の各レコードのキー項目が復号化されて展開されている。図示の例は、キー項目が個人の氏名である場合を示す。利用者は表示装置３の個人情報検索画面において、検索キーとして、氏名のうち氏「ニホン」を入力し、名は空欄にして、検索を指示している。この場合、検索装置１は、ワーク領域１３に展開された氏名のキー項目のうち、「ニホン」を含むキー項目を部分一致検索する。そして、該当するレコードが見つかった場合には前述したようにして暗号化ファイル２から元のレコードを読み出し、復号化して表示装置３に検索結果を表示する。
【００３０】
以上の実施例では、暗号化ファイル２の各レコードのキー項目だけを復号化し、復号化したキー項目だけと、どのレコードのキー項目であるかを示す識別子とを主記憶に展開した。どのレコードのキー項目であるかを示す識別子として、暗号化ファイル２の各レコードが持つレコード番号を用いたが、主記憶上に展開されたレコードと暗号化ファイル中のレコードとの対応関係が明らかになるのであれば、他の任意の方法を採用することができる。また、前記の実施例では、復号化に必要な鍵は暗号化ファイル検索装置自体に予め設定されているものとしたが、暗号化ファイル検索装置の外部で保持管理しておき、必要なときに暗号化ファイル検索装置で利用する構成としたり、レコードの検索者が装置に対して鍵を入力するように構成しても良い。
【００３１】
【発明の効果】
以上説明したように本発明によれば、暗号化ファイルの各レコードのキー項目だけを復号化し、どのレコードのキー項目であるかを示す識別子を付加して、主記憶上に展開し、検索条件を満たすキー項目を主記憶上に展開されたキー項目から検索するようにしたため、暗号化ファイルに対する各種の検索をセキュリティ性を確保しながら実施することができる効果がある。
【図面の簡単な説明】
【図１】本発明の暗号化ファイル検索装置の一例を示すブロック図である。
【図２】本発明の一実施例における暗号化ファイルの内容例を示す図である。
【図３】本発明の一実施例における展開手段の構成例を示すブロック図である。
【図４】本発明の一実施例における検索手段の構成例を示すブロック図である。
【図５】本発明の一実施例の検索装置の処理例を示すフローチャートである。
【図６】本発明の一実施例におけるワーク領域の内容例を示す図である。
【図７】本発明の一実施例における検索装置で検索処理を行っている様子を模式的に示す図である。
【符号の説明】
１…検索装置
２…暗号化ファイル
３…表示装置
４…入力装置
５…記録媒体
１１…展開手段
１２…検索手段
１３…主記憶上のワーク領域
【図１】
0003555869.tif 000002
【図２】
0003555869.tif 000003
【図３】
0003555869.tif 000004
【図４】
0003555869.tif 000005
【図５】
0003555869.tif 000006
【図６】
0003555869.tif 000007
【図７】
0003555869.tif 000008