(57)【要約】【課題】  暗号化ＤＢに蓄積された文書を暗号化したままで検索する検索システムにおい、当該暗号化ＤＢ検索処理の高速化をはかる。【解決手段】  キーワードと、キーワードを含む暗号化された文書名、およびキーワードが検索された日付が格納されるインデックス記憶部と、暗号化されたキーワードを含む検索要求を受信し、当該キーワードがインデックス記憶部に存在する場合に文書名を送信する検索処理部と、検索処理が実行される毎、その検索の頻度、もしくはキーワードの重要度からスコアを生成して逐次更新するスコア演算部と、スコア演算部によって更新されたスコアに基づき、インデックス記憶部に格納される内容を更新するインデックス更新管理部とを備える。【選択図】      図２
2005134990.tif 000002
【特許請求の範囲】
【請求項１】
文書が暗号化され蓄積された暗号化データベースを備え、当該暗号化データベースを暗号化されたままで検索する暗号化データベース検索装置であって、
キーワードと、当該キーワードを含む暗号化された文書名、および前記キーワードが検索された日付が格納されるインデックス記憶部と、
暗号化されたキーワードを含む検索要求を受信し、前記キーワードが前記インデックス記憶部に存在する場合に前記文書名を送信し、存在しない場合に前記暗号化データベースを全文検索して前記文書名を送信する検索処理部と、
前記検索処理が実行される毎、その検索の頻度、もしくはキーワードの重要度からスコアを生成して逐次更新するスコア演算部と、
前記スコア演算部によって更新されたスコアに基づき、前記インデックス記憶部に格納される内容を更新するインデックス更新管理部と、
を備えたことを特徴とする暗号化データベース検索装置。
【請求項２】
前記スコア演算部は、
前記検索頻度につき、検索された日付の新しいキーワード順にスコアボイントを高く設定することを特徴とする請求項１に記載の暗号化データベース検索装置。
【請求項３】
前記スコア演算部は、
前記キーワードの重要度につき、前記キーワードが前記蓄積された文書に占める割合と、特定の文書に出現する割合を計測し、当該割合が高い順にスコアを高く設定することを特徴とする請求項１に記載の暗号化データベース検索装置。
【請求項４】
文書が暗号化され蓄積された暗号化データベースを備え、当該暗号化データベースを暗号化されたままで検索する暗号化データベース検索方法であって、
暗号化されたキーワードを含む検索要求を受信するステップと、
前記キーワードが、キーワードと、当該キーワードを含む暗号化された文書名、および前記キーワードが検索された日付が格納されるインデックスに存在する場合に前記文書名を送信し、存在しない場合に前記暗号化データベースを全文検索して前記文書名を送信するステップと、
前記検索処理が実行される毎、その検索の頻度、もしくはキーワードの重要度からスコアを生成して逐次更新するステップと、
前記更新されたスコアに基づき、前記インデックスに格納される内容を更新するステップと、
を有することを特徴とする暗号化データベース検索方法。
【請求項５】
文書が暗号化され蓄積された暗号化データベースを備え、当該暗号化データベースを暗号化されたままで検索する暗号化データベース検索装置に用いられるプログラムであって、
暗号化されたキーワードを含む検索要求を受信する処理と、
前記キーワードが、キーワードと、当該キーワードを含む暗号化された文書名、および前記キーワードが検索された日付が格納されるインデックスに存在する場合に前記文書名を送信し、存在しない場合に前記暗号化データベースを全文検索して前記文書名を送信する処理と、
前記検索処理が実行される毎、その検索の頻度もしくはキーワードの重要度からスコアを生成して逐次更新する処理と、
前記更新されたスコアに基づき、前記インデックスに格納される内容を更新する処理と、
をコンピュータに実行させる暗号化データベース検索プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、文書が暗号化され蓄積された暗号化データベースを備え、当該暗号化データベースを暗号化されたままで検索する、暗号化データベース検索装置および方法ならびに暗号化データベース検索プログラムに関する。
【背景技術】
【０００２】
近年、様々なデータを電子データに変換し、オンラインで保管および管理することによって作業を効率化する試みが多くの企業でなされている。
それに伴い、「データセンター」事業と称される、データベースに必要な資材および環境を提供するサービスも出現している。このような形態において、データベース環境を管理する管理者と実際にデータベースを利用する利用者とが異なることから、管理者によって利用者の機密情報が盗聴されることを防ぐために、利用者が保存するデータを暗号化することが考えられる。
【０００３】
ところで、上記した利用形態において、「頻度分析」と称される古典的な攻撃が脅威となる。「頻度分析」とは、データベース等から多数の暗号文を収集し、暗号化された各単語の出現頻度を集計して一般的な出現頻度との比較を行うことによりって平文を推定する分析方法である。
上記した古典的な頻度分析に対し、平文には存在しないダミーデータを挿入することにより、その頻度を攪乱するデータ暗号化方法およびシステムが存在する（例えば、特許文献１参照）。
【特許文献１】特開２００１−３５６９５２号公報（段落０００７〜００１０、図２）
【発明の開示】
【発明が解決しようとする課題】
【０００４】
上記した特許文献１に開示された技術によれば、コンピュータに格納されたデータが理解され盗用されることはなくなるが、頻度攪乱のためにダミーデータを多数挿入することからデータベースのデータサイズが増加する欠点がある。
一方、上記した攻撃に対処するために暗号化されたままの状態で文書を検索する方法も存在するが、必要な文書を探すときには全文検索が必須とされるため、処理速度の面で問題があった。これに対し、使用頻度の高いキーワードをキャッシュするインデックス作成処理によって検索処理を高速化する手法も存在するが、文書が暗号化されたままの状態で検索を行うことのできる検索システムにはそのまま適用できないといった不都合を有していた。
【０００５】
本発明は上記事情に鑑みてなされたものであり、暗号化データベースに蓄積された文書を暗号化したままで検索する検索システムに適用可能なインデックス作成処理を行い、当該暗号化データベースの検索処理の高速化をはかった、暗号化データベース検索装置および方法ならびに暗号化データベース検索プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００６】
上記した課題を解決するために本発明は、文書が暗号化され蓄積された暗号化データベースを備え、当該暗号化データベースを暗号化されたままで検索する暗号化データベース検索装置であって、キーワードと、当該キーワードを含む暗号化された文書名、および前記キーワードが検索された日付が格納されるインデックス記憶部と、暗号化されたキーワードを含む検索要求を受信し、前記キーワードが前記インデックス記憶部に存在する場合に前記文書名を送信し、存在しない場合に前記暗号化データベースを全文検索して前記文書名を送信する検索処理部と、前記検索処理が実行される毎、その検索の頻度、もしくはキーワードの重要度からスコアを生成して逐次更新するスコア演算部と、前記スコア演算部によって更新されたスコアに基づき、前記インデックス記憶部に格納される内容を更新するインデックス更新管理部と、を備えたことを特徴とする。
【０００７】
また本発明において、前記スコア演算部は、前記検索頻度につき、検索された日付の新しいキーワード順にスコアボイントを高く設定することを特徴とする。
【０００８】
また本発明において、前記スコア演算部は、前記キーワードの重要度につき、前記キーワードが前記蓄積された文書に占める割合と、特定の文書に出現する割合を計測し、当該割合が高い順にスコアを高く設定することを特徴とする。
【０００９】
上記した課題を解決するために本発明は、文書が暗号化され蓄積された暗号化データベースを備え、当該暗号化データベースを暗号化されたままで検索する暗号化データベース検索方法であって、暗号化されたキーワードを含む検索要求を受信するステップと、前記キーワードが、キーワードと、当該キーワードを含む暗号化された文書名、および前記キーワードが検索された日付が格納されるインデックスに存在する場合に前記文書名を送信し、存在しない場合に前記暗号化データベースを全文検索して前記文書名を送信するステップと、前記検索処理が実行される毎、その検索の頻度、もしくはキーワードの重要度からスコアを生成して逐次更新するステップと、前記更新されたスコアに基づき、前記インデックスに格納される内容を更新するステップと、を有することを特徴とする。
【００１０】
上記した課題を解決するために本発明は、文書が暗号化され蓄積された暗号化データベースを備え、当該暗号化データベースを暗号化されたままで検索する暗号化データベース検索装置に用いられるプログラムであって、暗号化されたキーワードを含む検索要求を受信する処理と、前記キーワードが、キーワードと、当該キーワードを含む暗号化された文書名、および前記キーワードが検索された日付が格納されるインデックスに存在する場合に前記文書名を送信し、存在しない場合に前記暗号化データベースを全文検索して前記文書名を送信する処理と、前記検索処理が実行される毎、その検索の頻度もしくはキーワードの重要度からスコアを生成して逐次更新する処理と、前記更新されたスコアに基づき、前記インデックスに格納される内容を更新する処理と、をコンピュータに実行させることを特徴とする。
【発明の効果】
【００１１】
本発明によれば、キーワードと、そのキーワードを含む暗号化された文書名、およびそのキーワードを検索された日付順にソートしてインデックス記憶部に格納し、検索要求されたキーワードがインデックス記憶部に存在する場合、直ちに回答することで検索処理の高速化をはかることができる。
また、インデックス記憶部には、なるべく検索される可能性が高いキーワードを格納する必要があるため、検索処理が行われる毎に、検索頻度とキーワードの重要度の観点からインデックスおよび新たに検索されたキーワードについて採点（スコア演算）を行い、当該スコアが最も低いものをインデックス記憶部から除去し、新たに検索されたキーワードをインデックス記憶部に配置し、インデックス記憶部を更新する処理を実行することで、検索頻度とキーワードの重要度の観点からインデックス記憶部をベストの状態で維持管理できる。このことにより、安全で検索処理の高速化をはかった暗号化ＤＢ検索システムを構築できる。
【発明を実施するための最良の形態】
【００１２】
図１は、本発明の暗号化データベース検索装置（以下、暗号化ＤＢ検索装置２１ａという）の適用システム（暗号化ＤＢ検索システム）を説明するために引用した図である。ここでは、ある会社が社内の重要文書のデータベース管理をデータセンターに委託する場合を想定している。
利用者端末１２には暗号化データ作成のためのプログラム（ここでは暗号化モジュール１２４）がインストールされており、ＬＡＮ（Local Area Network）１３経由で社内の管理サーバ１１に接続されている。また、管理サーバ１１は、インターネット３０等の公衆回線を経由してデータセンター２０の暗号化ＤＢ２２に接続されている。
【００１３】
利用者が、利用者Ｉ／Ｆ１２２を用いてデータを作成し保存したい場合、暗号化モジュール１２４を起動してそのデータを暗号化し、通信モジュール１２３、そしてインターネット３０を経由してデータセンター２０をアクセスし、暗号化ＤＢ検索登録モジュール２１を介して暗号化ＤＢ２２にアップロードする。
一方、検索を行う場合、利用者は、検索したいキーワードを暗号化してインターネット３０経由でデータセンター２０へ送信する。データセンター２ではＤＢ検索登録モモジュール２１を起動し、このＤＢ検索登録モモジュール２１は、暗号化ＤＢ２２を検索して暗号化された状態でマッチング処理を行い、一致したデータを抽出して返信する。利用者端末１２は、返信されてきたデータを復号化モジュール１２５により復号化して利用者へ提供する。
【００１４】
図２は、本発明の暗号化ＤＢ検索装置の内部構成を機能展開して示したブロック図であり、図１に示すＤＢ検索登録モジュール２１の一部として構築される。
本発明の暗号化ＤＢ検索装置２１ａは、検索要求受信部２１１と、検索処理部２１２と、インデックス記憶部２１３と、スコア演算部２１４と、インデックス更新管理部２１５と、検索要求回答部２１６で構成される。
【００１５】
検索要求受信部２１１はキーワードを含む検索要求を受信して検索処理部３１２へ転送する。検索処理部２１２は、検索要求受信部２１１からキーワードを含む検索要求を受信し、受信したキーワードがインデックス記憶部２１３に存在する場合に文書名を送信し、存在しない場合に暗号化ＤＢ２２を全文検索し、検索要求回答部１２６を介して文書名を送信する機能を持つ。
なお、インデックス記憶部２１には、キーワードと、当該キーワードを含む暗号化された文書名、およびキーワードが検索された日付が、その日付順ニソートされ格納されている。
【００１６】
一方、スコア演算部２１４は、検索処理部２１２で検索処理が実行される毎、その検索の頻度、もしくはキーワードの重要度からスコアを生成して逐次更新する機能を持つ。スコア演算部２１４は、検索頻度につき、後述するように、検索された日付の新しいキーワード順にスコアボイントを高く設定し、また、キーワードの重要度につき、キーワードが蓄積された文書に占める割合と、特定の文書に出現する割合を計測し、当該割合が高い順にスコアを高く設定する。
インデックス更新管理部２１５は、スコア演算部２１４によって更新されたスコアに基づき、インデックス記憶部２１４に格納される内容を更新する機能を持ち、詳しくは、検索処理が実行される毎、最もスコアの低いキーワードをインデックス記憶部２１３から削除し、新たに検索されたキーワードをインデックス記憶部２１３に追加する、いわゆるロールイン・アウトの処理を実行する。新たに検索されたキーワードのスコアが最も低かった場合にはインデックス記憶部２１３を更新しない。
【００１７】
図３は、本発明実施形態の動作を説明するために引用したフローチャートであり、本発明の暗号化ＤＢ検索プログラムの処理手順も示している。
以下、図３に示すフローチャートを参照しながら、図１、図２に示す本発明の暗号化ＤＢ検索装置の動作について詳細に説明する。
【００１８】
まず、暗号化ＤＢ検索装置２１ａは、利用者端末１２からインターネット３０を経由して送信される暗号化されたキーワードを検索要求受信部２１１で受信する（Ｓ３１）。検索要求受信部２１１からそのキーワードが供給された検索処理部３１２は、インデックス記憶部２１３を参照し（Ｓ３２）、受信したキーワードがインデックス記憶部２１３に存在することが確認されたら（HIT）、インデックス記憶部２１３から該当する文書名を読み出し、検索要求回答部２１６を介して要求のあった利用者端末１２へ回答する（Ｓ３４）。一方、存在しなかった場合は（MISS HIT）、従来通り暗号化ＤＢ２２からキーワードに該当する文書名を読み出し、検索要求回答部２１６を介して要求のあった利用者端末１２へ回答する（Ｓ３５）。いずれも更なる文書取得要求があった場合には暗号化ＤＢ２１２を参照して該当文書を取得し送信する。
なお、検索処理部２１２で上記した処理を実行するのとほぼ並行してスコア演算部２１４では、HITしたキーワードに基づくスコアの計算が行われる（Ｓ３６）。
【００１９】
すなわち、スコア演算部２１４では、検索頻度を推定するために検索日付を利用し、最も新しい日付が着いたキーワードに高い点数を与える。また、キーワードが、暗号化ＤＢ２２に蓄積されている文書全体に占める割合や、特定の文書において複数回出現する割合を計測することにより、キーワードとしての重要度を決定し、その割合が高いキーワードに高い点数を与える処理を実行する。
具体的に、Ｓ３６で以下の演算式（１）を実行することによりある単語（ｗ）に対するスコアｓ（ｗ）を計算することとする。
【００２０】
ｓ（ｗ）＝Ｐｒｗ（ｋ≧ｍ｜ｋ≧ｎ）〜ｄｆｍ（ｗ）／ｄｆｎ（ｗ）  …（１）
ここで、Ｐｒｗ（ｋ≧ｍ｜ｋ≧ｎ）は、ある文書に単語ｗがｎ回以上含まれているときに、ある文書に単語ｗがｍ回以上含まれる条件確率であり、ｍ＞ｎである。ｄｆｍ（ｗ）は、単語ｗをｍ回以上含む文書の数を、ｄｆｎ（ｗ）は、単語ｗをｎ回以上含む文書の数を表す。ここで、ｍ、ｎは任意に設定可能とする。ここで近似され、計算されたスコアと、検索日時で昇順に並べた場合（古いものから順に）の順位Ｑｔ（ｗ）から、以下の（２）式を演算することで総合スコアＳ（ｗ）を計算する。ここで、Ｎは、インデックス記憶部２１３に登録されている単語の総数である。また、α、βに関しては、ＤＢ検索システムを適用する環境を考慮して設定することとする。
【００２１】
Ｓ（ｗ）＝αｑｔ（ｗ）／Ｎ＋βｓ（ｗ）    …（２）
動的インデックスには、暗号化された状態の単語とその単語が含まれる文書名、そして、その単語が検索された日付情報が一定数登録され、全文検索に優先して検索対象となる。初期状態では、インダックス記憶部２１３に何も登録されていないため、全文検索においてHITした単語を順次登録して蓄積することとする。
また、インデックス内の検索において、HITした単語については日時情報のみ更新する。そして、一定数に達してはじめて上記した総合スコアＳ（ｗ）を計算し、インデックス更新管理部２１５は、最もスコアの低いキーワード（検索文字列）をインデックス記憶部２１３から削除する（Ｓ３７）。
【００２２】
以上説明のように本発明は、暗号化されたキーワードと、そのキーワードを含む暗号化された文書名、およびそのキーワードを検索された日付順にソートしてインデックス記憶部２１３に格納し、検索要求されたキーワードがインデックス記憶部２１３に存在する場合、直ちに回答することで検索処理の高速化をはかるものである。
このとき、インデックス記憶部２１３には、なるべく検索される可能性が高いキーワードを格納する必要があるため、検索処理が行われる毎に、検索頻度とキーワードの重要度の観点からインデックスおよび新たに検索されたキーワードについて採点（スコア演算）を行い、当該スコアが最も低いものをインデックス記憶部２１３から除去し、新たに検索されたキーワードをインデックス記憶部２１３に配置し、インデックス記憶部２１３を更新する処理を実行する。このことにより、検索頻度とキーワードの重要度の観点からインデックス記憶部２１３をベストの状態で維持管理する。従って、安全で検索処理の高速化をはかった暗号化ＤＢ検索システムを構築できる。
【００２３】
なお、図２に示す検索要求受信部２１１と、検索処理部２１２と、スコア演算部２１４と、インデックス更新管理部２１５と、検索要求回答部２１６のそれぞれで実行される手順をコンピュータ読み取り可能な記録媒体に記録し、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することによっても本発明の暗号化ＤＢ検索装置を実現することができる。ここでいうコンピュータシステムとは、ＯＳや周辺機器等のハードウェアを含む。
【００２４】
また、「コンピュータシステム」は、ＷＷＷシステムを利用している場合であれば、ホームページ提供環境（あるいは表示環境）も含むものとする。
また、上記プログラムは、このプログラムを記憶装置等に格納したコンピュータシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピュータシステムに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク（通信網）や電話回線等の通信回線（通信線）のように情報を伝送する機能を有する媒体のことをいう。
また、上記プログラムは、前述した機能の一部を実現するためのものであっても良い。さらに、前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル（差分プログラム）であっても良い。
【００２５】
以上、この発明の実施形態につき、図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。
【図面の簡単な説明】
【００２６】
【図１】本発明の暗号化データベース検索装置の適用システム（を説明するために引用した図である。
【図２】本発明の暗号化ＤＢ検索装置の内部構成を機能展開して示したブロック図である。
【図３】本発明実施形態の動作を説明するために引用したフローチャートである。
【符号の説明】
【００２７】
１２…利用者端末、２０…データセンター、２１…ＤＢ検索登録モジュール、２１ａ…暗号化ＤＢ検索装置、２２…暗号化ＤＢ、２１１…検索要求受信部、２１２…検索処理部、２１３…インデックス記憶部、２１４…スコア演算部、２１５…インデックス更新管理部、２１６…検索要求回答部
【図１】
2005134990.tif 000003
【図２】
2005134990.tif 000004
【図３】
2005134990.tif 000005