(57)【特許請求の範囲】
【請求項１】
ストリーム暗号方式により暗号化済みの被検索データから、暗号化前のデータがキーワードデータを含むか否かを判定するデータ検索システムにおけるデータ検索方法であって、前記データ検索システムは検索キーワード生成処理部と暗号化処理部と検索処理部を有しており、
前記検索キーワード生成処理部が、入力されたキーワードデータを前記被検索データのデータ長以上の長さになるまで繰り返し配列してキーワード配列データを作成する過程と、
前記検索キーワード生成処理部が、前記キーワード配列データを一文字分ずつシフトさせたデータを、前記キーワード配列データを含めて前記入力キーワードデータの文字数分になるまで作成する過程と、
前記暗号化処理部が、前記被検索データの暗号化に使用されたのと同じ乱数列データを用いて、ストリーム暗号方式により、前記キーワード配列データと、前記キーワード配列データを一文字分ずつシフトさせたデータとをそれぞれ暗号化し、前記入力キーワードデータの文字数分の検索キーワードデータを生成する過程と、
前記検索処理部が、前記検索キーワードデータを使用して前記被検索データを照合する過程と、
を含むことを特徴とするデータ検索方法。
【請求項２】
ストリーム暗号方式により暗号化済みの被検索データから、暗号化前のデータがキーワードデータを含むか否かを判定するデータ検索システムであって、
前記被検索データの暗号化に使用されたのと同じ乱数列データを用いてストリーム暗号方式によりデータを暗号化する暗号化手段と、
入力されたキーワードデータを前記被検索データのデータ長以上の長さになるまで繰り返し配列してキーワード配列データを作成し、前記キーワード配列データと、前記キーワード配列データを一文字分ずつシフトさせたデータとをそれぞれ前記暗号化手段により暗号化して、前記入力キーワードデータの文字数分の検索キーワードデータを生成する検索キーワード生成手段と、
前記検索キーワードデータを使用して前記被検索データを照合する検索手段と、
を備えたことを特徴とするデータ検索システム。
【請求項３】
ストリーム暗号方式により暗号化済みの被検索データから、暗号化前のデータがキーワードデータを含むか否かを判定するために用いられる検索キーワードデータを生成する検索キーワード生成装置であって、
前記被検索データの暗号化に使用されたのと同じ乱数列データを用いてストリーム暗号方式によりデータを暗号化する暗号化手段と、
入力されたキーワードデータを前記被検索データのデータ長以上の長さになるまで繰り返し配列してキーワード配列データを作成し、前記キーワード配列データと、前記キーワード配列データを一文字分ずつシフトさせたデータとをそれぞれ前記暗号化手段により暗号化して、前記入力キーワードデータの文字数分の検索キーワードデータを生成する検索キーワード生成手段と、
を備えたことを特徴とする検索キーワード生成装置。
【請求項４】
ストリーム暗号方式により暗号化済みの被検索データから、暗号化前のデータがキーワードデータを含むか否かを判定するために用いられる検索キーワードデータを生成する検索キーワード生成処理を行うためのコンピュータプログラムであって、
前記被検索データの暗号化に使用されたのと同じ乱数列データを用いてストリーム暗号方式によりデータを暗号化する暗号化処理と、
入力されたキーワードデータを前記被検索データのデータ長以上の長さになるまで繰り返し配列してキーワード配列データを作成し、前記キーワード配列データと、前記キーワード配列データを一文字分ずつシフトさせたデータとをそれぞれ前記暗号化手段により暗号化して、前記入力キーワードデータの文字数分の検索キーワードデータを生成する検索キーワード生成処理と、
をコンピュータに実行させることを特徴とするコンピュータプログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、複数の被検索データの中から特定のキーワードデータを含む被検索データを調べるデータ検索方法およびデータ検索システムと、そのデータ検索システムに用いられる検索キーワード生成装置、並びにその検索キーワード生成装置をコンピュータを利用して実現するためのコンピュータプログラムに関する。
【０００２】
【従来の技術】
近年、各種情報を電子データとしてデータベース化し、オンラインで所望のデータを検索可能なデータ検索システムが実現されており、企業等において利用されている。このデータ検索システムによれば、情報の管理や調査などの作業を効率よく行うことができる。また、「データセンター」と呼ばれるデータの蓄積および管理を行うサービスが、サービス事業者によって提供されている。このデータセンターサービスでは、データベース用の記憶装置や、データベース管理（データベースの登録や検索等）用のサーバ等のデータベース環境が提供される。これにより、企業等の利用者は自らそれら設備を準備することなく、データ検索システムを構築することができる。
【０００３】
このようなデータセンターサービスを利用する場合、データベース環境を管理する機関と、実際にデータベースを利用する機関とが異なることから、データベースからデータが不正に読み出されて利用者の機密情報などが漏洩する虞がある。このために利用者は、データを暗号化し、この暗号データをデータベースへ登録するよう依頼し、暗号化した状態でデータをデータベースに蓄積しておくようにする。例えば、従来から利用されているストリーム暗号方式により暗号化する。これにより、たとえデータがデータベースから不正に取得されたとしても、有効な情報が漏洩することを防止している。
【０００４】
そして、従来のデータ検索システムにおいて、上記データベース内のデータの中から所望のデータを探し出す際には、利用者は、暗号化した状態ではデータの内容を判別不可能なので、データベースから一旦全てのデータを読み出して復号化し、この復号データに対してキーワードによる検索を行う。あるいは、データベースに蓄積しているデータの内容を示すインデックスのテーブルを作成しておき、このテーブルをキーワード検索して所望のデータを探し出す。
【０００５】
【発明が解決しようとする課題】
しかし、上述した従来のデータ検索システムでは、データベースから一旦全てのデータを読み出して復号化する必要があり、検索に時間がかかるという問題がある。
【０００６】
また、インデックスのテーブルを用いる場合には、インデックスに含まれているキーワードのみでしか検索することができず、検索効率が悪いという問題がある。
【０００７】
このような理由から、データベースの暗号データに対して、暗号化した状態のままキーワード検索を行いたいという要望がある。
【０００８】
本発明は、このような事情を考慮してなされたもので、その目的は、暗号データに対してキーワードによる検索を行うことができるデータ検索方法、及びデータ検索システムを提供することにある。
【０００９】
また、本発明は、そのデータ検索に用いられる検索キーワードを生成することができる検索キーワード生成装置を提供することも目的とする。
【００１０】
また、本発明は、その検索キーワード生成装置をコンピュータを利用して実現するためのコンピュータプログラムを提供することも目的とする。
【００１１】
【課題を解決するための手段】
上記の課題を解決するために、本発明に係るデータ検索方法は、ストリーム暗号方式により暗号化済みの被検索データから、暗号化前のデータがキーワードデータを含むか否かを判定するデータ検索システムにおけるデータ検索方法であって、前記データ検索システムは検索キーワード生成処理部と暗号化処理部と検索処理部を有しており、前記検索キーワード生成処理部が、入力されたキーワードデータを前記被検索データのデータ長以上の長さになるまで繰り返し配列してキーワード配列データを作成する過程と、前記検索キーワード生成処理部が、前記キーワード配列データを一文字分ずつシフトさせたデータを、前記キーワード配列データを含めて前記入力キーワードデータの文字数分になるまで作成する過程と、前記暗号化処理部が、前記被検索データの暗号化に使用されたのと同じ乱数列データを用いて、ストリーム暗号方式により、前記キーワード配列データと、前記キーワード配列データを一文字分ずつシフトさせたデータとをそれぞれ暗号化し、前記入力キーワードデータの文字数分の検索キーワードデータを生成する過程と、前記検索処理部が、前記検索キーワードデータを使用して前記被検索データを照合する過程と、を含むことを特徴とする。
【００１５】
本発明に係るデータ検索システムは、ストリーム暗号方式により暗号化済みの被検索データから、暗号化前のデータがキーワードデータを含むか否かを判定するデータ検索システムであって、前記被検索データの暗号化に使用されたのと同じ乱数列データを用いてストリーム暗号方式によりデータを暗号化する暗号化手段と、入力されたキーワードデータを前記被検索データのデータ長以上の長さになるまで繰り返し配列してキーワード配列データを作成し、前記キーワード配列データと、前記キーワード配列データを一文字分ずつシフトさせたデータとをそれぞれ前記暗号化手段により暗号化して、前記入力キーワードデータの文字数分の検索キーワードデータを生成する検索キーワード生成手段と、前記検索キーワードデータを使用して前記被検索データを照合する検索手段と、を備えたことを特徴とする。
【００１６】
本発明に係る検索キーワード生成装置は、ストリーム暗号方式により暗号化済みの被検索データから、暗号化前のデータがキーワードデータを含むか否かを判定するために用いられる検索キーワードデータを生成する検索キーワード生成装置であって、前記被検索データの暗号化に使用されたのと同じ乱数列データを用いてストリーム暗号方式によりデータを暗号化する暗号化手段と、入力されたキーワードデータを前記被検索データのデータ長以上の長さになるまで繰り返し配列してキーワード配列データを作成し、前記キーワード配列データと、前記キーワード配列データを一文字分ずつシフトさせたデータとをそれぞれ前記暗号化手段により暗号化して、前記入力キーワードデータの文字数分の検索キーワードデータを生成する検索キーワード生成手段と、を備えたことを特徴とする。
【００１７】
本発明に係るコンピュータプログラムは、ストリーム暗号方式により暗号化済みの被検索データから、暗号化前のデータがキーワードデータを含むか否かを判定するために用いられる検索キーワードデータを生成する検索キーワード生成処理を行うためのコンピュータプログラムであって、前記被検索データの暗号化に使用されたのと同じ乱数列データを用いてストリーム暗号方式によりデータを暗号化する暗号化処理と、入力されたキーワードデータを前記被検索データのデータ長以上の長さになるまで繰り返し配列してキーワード配列データを作成し、前記キーワード配列データと、前記キーワード配列データを一文字分ずつシフトさせたデータとをそれぞれ前記暗号化手段により暗号化して、前記入力キーワードデータの文字数分の検索キーワードデータを生成する検索キーワード生成処理と、をコンピュータに実行させることを特徴とする。
これにより、前述の検索キーワード生成装置がコンピュータを利用して実現できるようになる。
【００１８】
【発明の実施の形態】
以下、図面を参照し、本発明の一実施形態について説明する。
図１は、本発明の一実施形態によるデータ検索システムの構成を示すブロック図である。この図１のシステムは、ある企業がデータセンターサービスを利用してデータ検索システムを構築する場合の一例である。図１において、企業内システム１はデータベースアクセス装置１１と端末１２を備える。データベースアクセス装置１１は、各種情報を電子データとしてデータベース化し、オンラインで所望のデータを検索するための各種処理を行う。端末１２はＬＡＮ（ローカルエリアネットワーク）１３を介してデータベースアクセス装置１１にアクセスすることが可能である。利用者は、端末１２により、データベースアクセス装置１１へ、データベースへ登録したいデータを送信したり、あるいはデータベースのデータを検索するためにキーワードを送信することができる。
【００１９】
データセンターシステム２は、データベース２１とＤＢ（データベース）検索登録装置２２を備える。データベース２１は、暗号データ３１を記憶している。この暗号データ３１は、利用者によって暗号化され、データベースへ登録するよう依頼されたものである。ＤＢ検索登録装置２２は、利用者からの要求により、データベースへのデータの登録、データベース内の暗号データ３１のキーワード検索などのデータベース管理を行う。
【００２０】
データベースアクセス装置１１およびＤＢ検索登録装置２２は、それぞれに通信回線を介してインターネット３へ接続し、このインターネット３を介して相互にデータを送受することが可能である。
【００２１】
図２は、図１に示すデータベースアクセス装置１１の構成を示すブロック図である。図２において、データベースアクセス装置１１は処理部４０と記憶部５０と端末インタフェース６１と通信部６２とから構成される。
処理部４０は、管理処理部４１と暗号化処理部４２と復号処理部４３と検索キーワード生成処理部４４とを備える。
【００２２】
管理処理部４１はデータベース２１へのアクセスを管理する。暗号化処理部４２は、ストリーム暗号方式によりデータを暗号化する。復号化処理部４３は、ストリーム暗号方式により暗号化されたデータを復号化する。検索キーワード生成処理部４４は、データベース２１の検索に用いられる検索キーワードデータを生成するものであって、端末１２から受信したキーワードを暗号化処理部４２により暗号化し、この暗号データを検索キーワードデータとして出力する。
【００２３】
記憶部５０は、鍵情報５１と被検索データ長情報５２を記憶する。鍵情報５１は、暗号化処理部４２および復号化処理部４３で共通的に使用される秘密鍵のデータである。被検索データ長情報５２は、データベース２１へ登録する暗号データ３１のデータ長ｍを示すデータである。この被検索データ長情報５２は、検索キーワード生成処理部４４によって使用される。
【００２４】
端末インタフェース６１は、ＬＡＮ１３に接続され、このＬＡＮ１３を介して端末１２との間でデータを送受する。通信部６２は、通信回線を介してインターネット３へ接続し、このインターネット３を介してＤＢ検索登録装置２２との間でデータを送受する。
【００２５】
なお、このデータベースアクセス装置１１には、周辺機器として入力装置、表示装置等（いずれも図示せず）が接続されるものとする。ここで、入力装置とはキーボード、マウス等の入力デバイスのことをいう。表示装置とはＣＲＴ（Cathode Ray Tube）や液晶表示装置等のことをいう。また、上記周辺機器については、データベースアクセス装置１１に直接接続するものであってもよく、あるいはＬＡＮ１３を介して接続するようにしてもよい。
【００２６】
次に、上記図１のデータ検索システムにおける動作を説明する。初めに、図３を参照して、データベース２１へ暗号データ３１を登録する際の動作を説明する。図３は、図２に示すデータベースアクセス装置１１が暗号データ３１を生成する動作を説明するための概念図である。データベースアクセス装置１１の管理処理部４１は、端末１２からデータベース登録用のデータ１０１を受信すると、該データ１０１を暗号化処理部４２により暗号化する。
【００２７】
暗号化処理部４２は、ストリーム暗号方式によりデータ１０１を暗号化する。具体的には、図３に示すように、秘密鍵Ａを使用して乱数を発生し、乱数列データ１１０を生成する。この乱数列データ１１０のデータ長はデータ１０１のデータ長ｍと同じとする。次いで、乱数列データ１１０とデータ１０１との逐次排他的論理和演算により暗号データを生成する。なお、秘密鍵Ａのデータは、鍵情報５１として予め設定され記憶部５０に記憶されている。
【００２８】
次いで、管理処理部４１は、暗号化処理部４２により生成された暗号データ３１をＤＢ検索登録装置２２へ送信する。ＤＢ検索登録装置２２は、受信した暗号データ３１をデータベース２１へ登録する。
【００２９】
次に、図４〜図７を参照して、データベース２１の暗号データ３１をキーワード検索する際の動作を説明する。図４は、図２に示す検索キーワード生成処理部４４が行う検索キーワード生成処理の流れを示すフローチャートである。図５、図６は、検索キーワードデータを生成する動作を説明するための概念図である。図７は、検索キーワードデータを用いてデータ検索する動作を説明するための概念図である。
【００３０】
データベースアクセス装置１１の管理処理部４１は、端末１２からキーワードデータ１２０を受信すると、該キーワードデータ１２０を検索キーワード生成処理部４４へ供給する。このキーワードデータ１２０を受け取ると、検索キーワード生成処理部４４は、図４の処理を開始する。
【００３１】
図４において、検索キーワード生成処理部４４は、先ず、キーワードデータ１２０によりキーワードの文字数をカウントする（ステップＳ１）。次いで、図５に示すように、キーワードデータ１２０を繰り返し配列してキーワード配列データ１２１を作成する（ステップＳ２）。ここで、キーワード配列データ１２１のデータ長が、被検索データ長情報５２のデータ長ｍ以上となるまで、キーワードデータ１２０を繰り返し配列する。
【００３２】
次いで、検索キーワード生成処理部４４は、暗号化処理部４２によりキーワード配列データ１２１を暗号化し、この暗号データを検索キーワードデータ１３０とする。ここで、検索キーワードデータ１３０のデータ長がデータ長ｍよりも長い場合には、データ長ｍに一致するように、最後尾の方から余剰部分のデータを削除する（ステップＳ３）。このステップＳ３における暗号化は、上記図３に示すデータ１０１の暗号化と同様にして、同じ秘密鍵Ａを使用して行われる。これにより、検索キーワードデータ１３０は、暗号データ３１を生成する場合と同じ乱数列によって暗号化されたものとなる。これは、検索キーワードデータ１３０が、暗号化済みの被検索データ（暗号データ３１）のうち検索照合するデータ位置に応じて暗号化されたことを意味する。
【００３３】
次いで、検索キーワード生成処理部４４は、上記ステップＳ１でカウントした文字数分の検索キーワードデータを生成したか否かを判定し（ステップＳ４）、否の場合にはステップＳ５へ処理を移行する。ステップＳ５において、検索キーワード生成処理部４４は、図６に示すように、キーワード配列データ１２１の先頭にダミーデータを付加してキーワード配列データ１２１を一文字分シフトする（ステップＳ５）。このダミーデータは文字データとは異なるものであり、上記図３で暗号化される元のデータ１０１には含まれることのないデータである。
【００３４】
次いで、上記ステップＳ３へ戻り、該シフト後のデータを暗号化処理部４２により暗号化し、この暗号データを検索キーワードデータ１３１とする。このステップＳ４、Ｓ５、及びＳ３の一連の処理を、上記ステップＳ１でカウントした文字数分の検索キーワードデータを生成完了するまで繰り返す。次いで、その文字数分の検索キーワードデータを生成完了すると、検索キーワード生成処理部４４は、その処理を終了する。
【００３５】
次いで、管理処理部４１は、検索キーワード生成処理部４４により生成された検索キーワードデータを全てＤＢ検索登録装置２２へ送信する。ＤＢ検索登録装置２２は、受信した検索キーワードデータ毎に、データベース２１の全ての暗号データ３１と照合する。
【００３６】
この照合動作を図７を参照して説明する。図７には、「さくら」がキーワードであった場合の例を示している。図７に示すように、上記図４の検索キーワード生成処理によって、「さくら」の文字数分、すなわち３つの検索キーワードデータ１３０〜１３２が生成されている。検索キーワードデータ１３０は、上記図５に示すように、キーワード配列データ１２１をそのまま暗号化したものである。検索キーワードデータ１３１は、上記図６に示すように、キーワード配列データ１２１を一文字分シフトしたデータを暗号化したもの、また検索キーワードデータ１３２は、キーワード配列データ１２１を二文字分シフトしたデータを暗号化したものである。このように、検索キーワードデータ１３０〜１３２は、元のキーワードデータ１２０（「さくら」の文字データ）の配列を循環的に変えてなるデータを暗号化したものである。
【００３７】
図７において、検索キーワードデータ１３０〜１３２と暗号データ３１とをそれぞれ照合すると、検索キーワードデータ１３１で照合した場合に、２番目の検索キーワード部分の全てが、暗号データ３１のうち検索照合するデータ位置の部分の全てと一致する。このように、少なくとも一つの検索キーワード部分の全てが、暗号データ３１のうち検索照合するデータ位置の部分の全てと一致した場合に、ＤＢ検索登録装置２２は、当該暗号データ３１が、検索キーワードデータに対応する特定のキーワードデータ（「さくら」の文字データ）を含んでいると判定する。
【００３８】
上述した実施形態によれば、ストリーム暗号方式により暗号化済みの被検索データ（暗号データ３１）が特定のキーワードデータを含むか否かを判定する際に、キーワードデータをストリーム暗号方式により暗号化して検索キーワードデータを生成し、この検索キーワードデータを使用して暗号化済みの被検索データを照合する。これにより、暗号データに対してキーワードによる検索を行うことが可能となり、検索時間を短縮することができるという効果が得られる。また、任意のキーワードを使用して検索することが可能となるので、検索効率が向上するという効果も得られる。
【００３９】
なお、上述した実施形態では、上記図５に示すように、元のキーワードデータ１２０を繰り返し配列したデータ（キーワード配列データ１２１）を暗号化して検索キーワードデータ１３０を生成するようにしたが、他の方法により、検索キーワードデータが被検索データのうち検索照合するデータ位置に応じて暗号化されるようにしてもよい。
【００４０】
例えば、一つのキーワードデータ１２０のみを検索照合するデータ位置に配置し、このデータを暗号化して一つの検索キーワードデータを生成する。そして、このような検索キーワードデータを、検索照合する全データ位置分生成して合成することにより、検索キーワードデータ１３０を構成してもよい。
但し、検索キーワードデータ１３０を効率よく生成するという観点から、図５に示すように、元のキーワードデータを繰り返し配列したデータを暗号化して検索キーワードデータを生成することが好ましい。
【００４１】
また、図４に示す各ステップを実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することにより検索キーワード生成処理を行ってもよい。なお、ここでいう「コンピュータシステム」とは、ＯＳや周辺機器等のハードウェアを含むものであってもよい。
また、「コンピュータシステム」は、ＷＷＷシステムを利用している場合であれば、ホームページ提供環境（あるいは表示環境）も含むものとする。
また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ＲＯＭ、ＣＤ−ＲＯＭ等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。
【００４２】
さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムが送信された場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリ（ＲＡＭ）のように、一定時間プログラムを保持しているものも含むものとする。
また、上記プログラムは、このプログラムを記憶装置等に格納したコンピュータシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピュータシステムに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク（通信網）や電話回線等の通信回線（通信線）のように情報を伝送する機能を有する媒体のことをいう。
また、上記プログラムは、前述した機能の一部を実現するためのものであっても良い。さらに、前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル（差分プログラム）であっても良い。
【００４３】
以上、本発明の実施形態を図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、本発明の要旨を逸脱しない範囲の設計変更等も含まれる。
【００４４】
【発明の効果】
以上説明したように、本発明によれば、暗号データに対してキーワードによる検索を行うことができるという効果が得られる。これにより、データベースから一旦全てのデータを読み出して復号化することなく、データベースの暗号データに対して暗号化した状態のままキーワード検索を行うことが可能となるので、検索時間を短縮することができる。また、検索の際にインデックスのテーブルを用いる必要もないので、インデックスに含まれているキーワードに限定されることなく、任意のキーワードにより検索可能となるので、検索効率が向上する。
【図面の簡単な説明】
【図１】  本発明の一実施形態によるデータ検索システムの構成を示すブロック図である。
【図２】  図１に示すデータベースアクセス装置１１の構成を示すブロック図である。
【図３】  図２に示すデータベースアクセス装置１１が暗号データ３１を生成する動作を説明するための概念図である。
【図４】  図２に示す検索キーワード生成処理部４４が行う検索キーワード生成処理の流れを示すフローチャートである。
【図５】  検索キーワードデータを生成する動作を説明するための第１の概念図である。
【図６】  検索キーワードデータを生成する動作を説明するための第２の概念図である。
【図７】  検索キーワードデータを用いてデータ検索する動作を説明するための概念図である。
【符号の説明】
１…企業内システム、２…データセンターシステム、３…インターネット、１１・・・データベースアクセス装置、１２…端末、１３…ＬＡＮ（ローカルエリアネットワーク）、２１…データベース、２２…ＤＢ検索登録装置、３１…暗号データ、４０…処理部、４１…管理処理部、４２…暗号化処理部、４３…復号処理部、４４…検索キーワード生成処理部、５０…記憶部、５１…鍵情報、５２…被検索データ長情報、６１…端末インタフェース、６２…通信部、１１０…乱数列データ、１２０…キーワードデータ、１３０，１３１，１３２…検索キーワードデータ
【図１】
0004011383.tif 000002
【図２】
0004011383.tif 000003
【図３】
0004011383.tif 000004
【図４】
0004011383.tif 000005
【図５】
0004011383.tif 000006
【図６】
0004011383.tif 000007
【図７】
0004011383.tif 000008