(57)【要約】【課題】秘密情報が推測されることなく、必要な情報を効率的に取得することができる、公開された検索エンジンを用いた検索装置、検索方法及び検索プログラムを提供する。【解決手段】３以上の文字からなる所望の検索語３０の入力を受け付け、検索語３０から連続する２以上の任意の文字を抽出し、各々が抽出した文字からなる複数の正当文字列３４を生成する。一方、用いる検索エンジンに適合した辞書３２から任意の単語をノイズ語３６として選択し、ノイズ語３６から連続する２以上の任意の文字を抽出し、抽出した文字からなるノイズ文字列３８を生成する。正当文字列３４とノイズ文字列３８とを組み合わせてクエリを生成し、検索エンジンに送信する。クエリに応答して検索エンジンから返信されて来た検索結果４０を検索語３０で再検索し、その最終検索結果４４を表示する。
2010024116.tif 000002
【特許請求の範囲】
【請求項１】
公開された検索エンジンを用いた検索装置であって、
３以上の文字からなる所望の検索語の入力を受け付ける検索語入力手段と、
前記検索語入力手段で入力された検索語から連続する２以上の任意の文字を抽出し、各々が該抽出された文字からなる複数の正当文字列を生成する正当文字列生成手段と、
任意の単語をノイズ語として選択するノイズ語選択手段と、
前記ノイズ語選択手段で選択されたノイズ語から連続する２以上の任意の文字を抽出し、該抽出された文字からなるノイズ文字列を生成するノイズ文字列生成手段と、
前記正当文字列生成手段で生成された正当文字列と前記ノイズ文字列生成手段で生成されたノイズ文字列とを組み合わせてクエリを生成するクエリ生成手段と、
前記クエリ生成手段で生成されたクエリを前記検索エンジンに送信する外部検索手段と、
前記外部検索手段からのクエリに応答して前記検索エンジンから返信されて来た検索結果を前記検索語入力手段で入力された検索語で再検索する内部検索手段と、
前記内部検索手段による検索結果を表示する検索結果表示手段とを備える、ことを特徴とする検索装置。
【請求項２】
請求項１に記載の検索装置であってさらに、
一般的な単語をクエリとして前記検索エンジンに送信する一般語検索手段と、
前記一般語検索手段からのクエリに応答して前記検索エンジンから返信されて来た検索結果から単語を抽出して辞書を生成する辞書生成手段とを備え、
前記ノイズ語選択手段は、前記辞書生成手段で生成された辞書から任意の単語を前記ノイズ語として選択する、ことを特徴とする検索装置。
【請求項３】
請求項１に記載の検索装置であって、
前記正当文字列生成手段は、前記検索語入力手段で入力された検索語の文字数が多いほど生成すべき正当文字列の数を増やす、ことを特徴とする検索装置。
【請求項４】
請求項１に記載の検索装置であって、
前記ノイズ文字列生成手段は、前記ノイズ文字列をその数が所定のしきい値を超えるまで生成する、ことを特徴とする検索装置。
【請求項５】
請求項１に記載の検索装置であって、
前記ノイズ語選択手段は、前記ノイズ語をその数が所定のしきい値を超えるまで選択する、ことを特徴とする検索装置。
【請求項６】
公開された検索エンジンを用いた検索方法であって、
３以上の文字からなる所望の検索語の入力を受け付けるステップと、
前記入力された検索語から連続する２以上の任意の文字を抽出し、各々が該抽出された文字からなる複数の正当文字列を生成するステップと、
任意の単語をノイズ語として選択するステップと、
前記選択されたノイズ語から連続する２以上の任意の文字を抽出し、該抽出された文字からなるノイズ文字列を生成するステップと、
前記生成された正当文字列と前記生成されたノイズ文字列とを組み合わせてクエリを生成するステップと、
前記生成されたクエリを前記検索エンジンに送信するステップと、
前記クエリに応答して前記検索エンジンから返信されて来た検索結果を前記入力された検索語で再検索するステップと、
前記再検索による検索結果を表示するステップとを含む、ことを特徴とする検索方法。
【請求項７】
請求項６に記載の各ステップをコンピュータに実行させるための検索プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、検索技術に関し、さらに詳しくは、公開された検索エンジンを用いた検索装置、検索方法及び検索プログラムに関する。
【背景技術】
【０００２】
現在、インターネット上には、ウェブページを検索するための各種検索エンジンが公開され、誰でも利用可能である。しかしながら、公開された検索エンジンを用いて秘密情報（特許情報、新製品の開発情報、ノウハウ、個人情報など）を検索すると、その検索クエリに含まれるキーワードから秘密情報を推測されるおそれがある。【０００３】
このような問題を解決するために、特開平１１−２５９５１２号公報（特許文献１）は、データ検索装置に入力される検索条件の全て又は一部を機密情報としてデータ検索装置に隠蔽又は不鮮明にして検索を行い、その検索結果をデータ検索装置で絞り込むデータ検索システムを開示する。検索条件を隠蔽又は不鮮明にするために、このシステムは、入力された全ての検索条件から予め登録された隠蔽すべき検索条件を削除し、入力された検索条件を類似語若しくは上位概念語に置き換え、入力された検索条件に余分な検索条件を付加し、又は入力された検索条件を複数の検索言語に分割する。【０００４】
しかしながら、このシステムは検索条件を上記のように改変しているため、必要な情報をわずかしか取得できなかったり、不必要な情報を多数取得してしまったりするという問題がある。【０００５】
特開２００２−２９７６０６号公報（特許文献２）は、ユーザが機密にしたい検索条件を隠蔽したまま、情報提供サービスを利用できるデータベースアクセスシステムを開示する。クライアント計算機は、検索条件に含まれる秘匿すべきデータ項目を暗号化した暗号化問合せをサーバ計算機に送信し、サーバ計算機は、暗号化された検索条件を復号化することなく、検索対象となるデータを上記秘匿データ項目と同様に暗号化しながら、暗号化データマッチングによってデータ検索する。【０００６】
しかしながら、このシステムは暗号化により検索条件の組合せ方法（ＡＮＤ、ＯＲ、ＮＯＴなど）を秘密にしているに過ぎない。また、暗号化及びそのデータマッチングにかかる処理負荷が大きくなるという問題がある。【０００７】
上記のほか、次のような検索方法が提案されている。【０００８】
「Private Information Retrieval (PIR)」
サーバがＮビットのデータを所有し、クライアントがＮビットの内の１ビットをサーバに知らせることなく取得する問題があるが、この問題の単純な解決方法はサーバが全Ｎビットをクライアントに送ることである。しかし、複数のサーバの存在や計算複雑性の仮定の下で全ビットを送ることなく解決できるという研究結果は９０年代からすでにある。これらは数学的な基礎理論であり、実用にはいたっていない（http://www.cs.umd.edu/~gasarch/papers/pirsurvey.pdf（非特許文献１）参照）。【０００９】
「Oblivious Transfer (OT)」
ＰＩＲの場合、クライアントは自分が欲しがる情報以外の情報を得られるかもしれないが、ＯＴの設定ではＰＩＲを満たすほかに、クライアントは自分の欲しがるデータ以外の情報が得られないようなプロトコルを設計する。また、ＯＴの場合、通信量の制限がない。ＯＴは非特許文献１に登場するSymmetric ＰＩＲと同じである。これらも理論であり、実装例はほとんどない。【００１０】
「New techniques for private stream searching」
この手法では、ユーザの公開鍵でクエリをサーバ側で暗号化し、同時にインデックスも暗号化することで、サーバ側に情報を公開せずに、検索結果を得ることができる。しかし、この手法では、サーバ側の実装が必要になるため、通常利用されている検索サーバを活用することができない（http://acsc.csl.sri.com/privss/（非特許文献２））参照）。
【先行技術文献】
【特許文献】
【００１１】
【特許文献１】特開平１１−２５９５１２号公報
【特許文献２】特開２００２−２９７６０６号公報
【非特許文献】
【００１２】
【非特許文献１】http://www.cs.umd.edu/~gasarch/papers/pirsurvey.pdf
【非特許文献２】http://acsc.csl.sri.com/privss/
【発明の概要】
【発明が解決しようとする課題】
【００１３】
本発明の目的は、秘密情報が推測されることなく、必要な情報を効率的に取得することができる、公開された検索エンジンを用いた検索装置、検索方法及び検索プログラムを提供することである。
【課題を解決するための手段】
【００１４】
本発明による検索装置は、３以上の文字からなる所望の検索語の入力を受け付ける検索語入力手段と、検索語入力手段で入力された検索語から連続する２以上の任意の文字を抽出し、各々が該抽出された文字からなる複数の正当文字列を生成する正当文字列生成手段と、任意の単語をノイズ語として選択するノイズ語選択手段と、ノイズ語選択手段で選択されたノイズ語から連続する２以上の任意の文字を抽出し、該抽出された文字からなるノイズ文字列を生成するノイズ文字列生成手段と、正当文字列生成手段で生成された正当文字列とノイズ文字列生成手段で生成されたノイズ文字列とを組み合わせてクエリを生成するクエリ生成手段と、クエリ生成手段で生成されたクエリを検索エンジンに送信する外部検索手段と、外部検索手段からのクエリに応答して検索エンジンから返信されて来た検索結果を検索語入力手段で入力された検索語で再検索する内部検索手段と、内部検索手段による検索結果を表示する検索結果表示手段とを備える。
【発明の効果】
【００１５】
本発明によれば、検索語から抽出した正当文字列と、ノイズ語から抽出したノイズ文字列とを組み合わせてクエリを生成し、検索エンジンに送信しているため、検索語から秘密情報が推測されることなく、必要な情報を効率的に取得することができる。【００１６】
好ましくは、検索装置はさらに、一般的な単語をクエリとして検索エンジンに送信する一般語検索手段と、一般語検索手段からのクエリに応答して前記検索エンジンから返信されて来た検索結果から単語を抽出して辞書を生成する辞書生成手段とを備える。ノイズ語選択手段は、辞書生成手段で生成された辞書から任意の単語をノイズ語として選択する。【００１７】
この場合、検索エンジンに適合した辞書を生成しているため、ノイズ語による検索のヒット件数が増え、検索語の秘匿度は高くなる。【００１８】
好ましくは、正当文字列生成手段は、検索語入力手段で入力された検索語の文字数が多いほど生成すべき正当文字列の数を増やす。【００１９】
この場合、検索語の秘匿度は低くなるが、検索精度は高くなる。【００２０】
好ましくは、ノイズ文字列生成手段は、ノイズ文字列をその数が所定のしきい値を超えるまで生成する。【００２１】
この場合、検索精度は低くなるが、検索語の秘匿度は高くなる。【００２２】
好ましくは、ノイズ語選択手段は、ノイズ語をその数が所定のしきい値を超えるまで選択する。【００２３】
この場合、検索精度は低くなるが、検索語の秘匿度は高くなる。【００２４】
本発明は、上述のような検索装置で実行される検索方法及び検索プログラムも提供する。
【図面の簡単な説明】
【００２５】
【図１】本発明の実施の形態による検索装置の構成を示す機能ブロック図である。
【図２】図１に示した検索装置内の検索プログラムを示すフロー図である。
【図３】図１に示した検索装置の動作を説明するための図である。
【図４】図２中のクエリ生成のサブルーチンを示すフロー図である。
【発明を実施するための形態】
【００２６】
以下、図面を参照し、本発明の実施の形態を詳しく説明する。図中同一又は相当部分には同一符号を付してその説明は繰り返さない。
【００２７】
図１を参照して、本発明の実施の形態による検索装置１０は、ＣＰＵ（中央演算処理装置）１１と、メモリ１２と、ハードディスク１３と、通信装置１４と、入力装置１５と、ディスプレイ１６とを備える。通信装置１４は、検索装置１０をインターネット２０に接続し、各種要求を検索エンジン２１〜２３に送信し、かつ、検索エンジン２１〜２３からの各種応答を受信する。入力装置１５は、キーボード、マウスなどである。検索装置１０は、後述する検索プログラムをパーソナルコンピュータ（ＰＣ）にインストールすることにより構築される。検索プログラムは、ＣＤ−ＲＯＭ等の記憶媒体に固定されて提供されるか、又はサーバからインターネット２０経由でダウンロードされる。
【００２８】
各種事業者は、インターネット２０に接続されたＷＷＷ(World Wide Web)サーバ上に検索エンジン２１〜２３を構築し、ウェブサイトの検索サービスを無料又は有料で公衆に提供している。検索エンジン２１〜２３は、インターネット２０に接続された不特定多数のクライアントからの検索要求（クエリ）に応答して検索結果を返信する。検索装置１０もクライアントの１つとして、このような公開された検索エンジン２１〜２３を用いて検索を行う。ここで用いる検索エンジン２１〜２３は全てＮグラム(N-gram)法を採用している。
【００２９】
以下、検索装置１０の動作を説明する。ＣＰＵ１１は、図２に示した検索プログラムを実行する。
【００３０】
図２及び図３を参照して、検索装置１０は、所望の検索語の入力を受け付ける（Ｓ１）。具体的には、ディスプレイ１６に表示された画面上において、ユーザは入力装置１５を操作し、検索しようとする情報に関連する１又は２以上の検索語３０を入力する。各検索語３０は３以上の文字からなる。図３に示した例では、検索語３０として「gene」が入力される。
【００３１】
ユーザが検索エンジン２１〜２３の中から検索に用いる所望の検索エンジン（以下、検索エンジン２１が選択された場合を例に説明する。）を選択すると、検索装置１０は、選択された検索エンジン２１専用の辞書３２が既に生成されているか否かを判断する（Ｓ２）。
【００３２】
辞書３２がまだ生成されていない場合（Ｓ２でＮＯ）、検索装置１０は、一般的な単語をクエリとして検索エンジン２１に送信する（Ｓ３）。一般的な単語としては、「have」、「get」などの単語を１０個程度あらかじめ用意する。これらの単語は１つずつクエリ
として検索エンジン２１に送信される。
【００３３】
続いて、検索装置１０は、クエリに応答して検索エンジン２１から返信されて来た検索結果から単語を抽出して検索エンジン２１専用の辞書３２を生成する（Ｓ４）。１０個の単語を１つずつクエリとした場合、検索エンジン２１から１０個の検索結果が返信される。検索結果の各々は、ヒットした１又は２以上のウェブページを特定するために必要なデータ（たとえばウェブページのＵＲＬ(Uniform Resource Locator)、タイトル、抽出された本文の一部）を含む。クエリとして送信された単語は一般的であるので、検索結果は、検索エンジン２１にインデクスとして蓄積されているほとんど全てのウェブページを含む。したがって、辞書３２は、検索エンジン２１で検索可能なウェブページの単語集のようなものである。なお、同じ検索エンジン２１から別の検索結果を得たとき、その中に含まれる新しい単語を追加すれば、辞書３２を更新することができる。
【００３４】
続いて、検索装置１０は、ステップＳ１で入力された検索語３０及びステップＳ４で生成された辞書３２中の単語に基づいて、検索エンジン２１に送信すべき１又は２以上のクエリを生成する（Ｓ５）。
【００３５】
具体的には図４を参照して、ステップＳ１で入力された検索語３０から連続する２以上の任意の文字を抽出し、複数の正当文字列３４を生成する（Ｓ５１）。各正当文字列３４は、抽出された２以上の文字からなる。検索語３０の文字数が１２未満の場合（Ｓ５２でＹＥＳ）、２つの正当文字列３４を生成するまでステップＳ５１〜Ｓ５２を繰り返す（Ｓ５３でＮＯ）。一方、検索語３０の文字数が１２以上の場合（Ｓ５２でＮＯ）、３つの正当文字列３４を生成するステップＳ５１〜Ｓ５２を繰り返す（Ｓ５４でＮＯ）。
【００３６】
図３に示した例では、検索語「gene」から正当文字列「gen」及び「ene」が抽出される。各正当文字列３４は３文字からなる。各正当文字列３４の文字数を多くすると、検索精度が高くなるが、検索語３０の秘匿度が低くなる。また、正当文字列３４の数を多くすると、検索精度が高くなるが、検索語３０の秘匿度が低くなる。
【００３７】
なお、複数の検索語３０が入力された場合、なるべく全ての検索語３０の文字を含むように複数の正当文字列３４を生成する。検索語３０の数が多い場合、生成する正当文字列３４の最大数をあらかじめ決めておき、この数を超えないように正当文字列３４を生成する。
【００３８】
また、辞書３２の中から１以上の任意の単語をノイズ語３６として選択する（Ｓ５５）。続いて、ノイズ語３６から連続する２以上の任意の文字を抽出し、１以上のノイズ文字列３８を生成する（Ｓ５６）。各ノイズ文字列３８は、抽出された２以上の文字からなる。生成されたノイズ文字列３８の数が所定のしきい値（たとえば正当文字列３４の数の２倍）を超えるまでステップＳ５６を繰り返す（Ｓ５７でＮＯ）。また、ノイズ語３６として選択された単語の数が所定のしきい値（たとえば検索語３０の語数の３倍）を超えるまでステップＳ５５〜Ｓ５７を繰り返す（Ｓ５８でＮＯ）。
【００３９】
図３に示した例では、ノイズ語「algorithm」からノイズ文字列「ori」、「rit」及び「thm」が抽出され、ノイズ語「hello」からノイズ文字列「hel」及び「llo」が抽出される。各ノイズ文字列３８は正当文字列３４と同様に３文字からなる。
【００４０】
なお、検索語３０と異なるノイズ語３６が選択されるのが好ましいが、検索語３０と同じノイズ語３６が選択されてもよい。
【００４１】
生成されたノイズ文字列３８の数が所定のしきい値を超え、かつ、選択された単語の数が所定のしきい値を超えた場合（Ｓ５７でＹＥＳかつＳ５８でＹＥＳ）、ステップＳ５１で生成された正当文字列３４とステップＳ５６で生成されたノイズ文字列３８とを組み合わせて１以上のクエリを生成する（Ｓ５９）。各クエリは、正当文字列３４及びノイズ文字列３８の論理積（ＡＮＤ）で構成されるのが好ましいが、論理和（ＯＲ）、否定（ＮＯＴ）又はこれらの組合せで構成されてもよい。
【００４２】
再び図２を参照して、検索装置１０は、ステップＳ５で生成された各クエリを検索エンジン２１に送信する（Ｓ６）。検索エンジン２１は、各クエリに応答して検索結果４０を検索装置１０に返信する。検索エンジン２１は、あらかじめＮグラム法でインターネット２０上の多数のウェブ４２をインデクシングし、インデックス（図示せず）を生成している。検索結果４０はこのインデックスに基づいて生成される。
【００４３】
続いて、検索装置１０は、各クエリに応答して検索エンジン２１から返信されて来た検索結果４０をステップＳ１で入力された検索語３０で再検索し、最終検索結果４４を生成する（Ｓ７）。検索エンジン２１から返信されて来た検索結果４０は全て検索装置１０内のハードディスク１３に一時的に保存されるので、再検索は完全にローカルで実行される。具体的には、各検索結果４０を検索語３０でフィルタリングし、メインクエリをそのまま検索エンジン２１に送信していたならヒットしないであろう無関係なウェブページを検索結果から除外する。そして、無関係なウェブページが除外された複数の検索結果を統合する。
【００４４】
最後に、検索装置１０は、ステップＳ７で生成された最終検索結果４４をディスプレイ１６に表示する。ユーザが最終検索結果４４を見て不十分と判断した場合、ステップ５９から正当文字列３４及びノイズ文字列３８の組合せを変えて再実行してもよい。
【００４５】
以上のように、本発明の実施の形態によれば、検索語３０から抽出した正当文字列３４と、ノイズ語３６から抽出したノイズ文字列３８とを組み合わせてクエリを生成し、検索エンジン２１に送信しているため、検索語３０から秘密情報が推測されることなく、必要な情報を効率的に取得することができる。すなわち、多数の正当文字列３４及び多数のノイズ文字列３８がクエリに含まれるため、検索エンジン２１側で正当文字列３４及びノイズ文字列３８を組み合わせて検索語３０を復元しようとしても、組合せ爆発を起こして検索語３０を推測することはほぼ不可能である。
【００４６】
また、検索エンジン２１に適合した辞書３２を生成しているため、ノイズ語３６による検索のヒット件数が増え、検索語３０の秘匿度は高くなる。また、検索語３０の文字数が１２未満の場合は２つの正当文字列３４を生成し、検索語３０の文字数が１２以上の場合は３つの正当文字列３４を生成するというように、検索語３０の文字数が多いほど生成すべき正当文字列３４の数を増やしているため、検索語３０の秘匿度は低くなるが、検索精度は高くなる。また、ノイズ文字列３８をその数が所定のしきい値を超えるまで生成しているため、検索精度は低くなるが、検索語３０の秘匿度は高くなる。また、ノイズ語３６をその数が所定のしきい値を超えるまで選択しているため、検索精度は低くなるが、検索語の秘匿度は高くなる。
【００４７】
上記実施の形態は、検索語３０の文字数が１２未満の場合は２つの正当文字列３４を生成し、検索語３０の文字数が１２以上の場合は３つの正当文字列３４を生成しているが、しきい値として設定される検索語３０の文字数は特に限定されず、また、生成される正当文字列３４の数も特に限定されない。また、生成される正当文字列３４の数を１段階で変えることに限定されず、多段階で変えてもよい。要するに、検索語３０の文字数が多いほど生成すべき正当文字列３４の数を増やすのが好ましい。
【００４８】
また、上記実施の形態は、検索エンジン２１に適合した辞書３２を用いているが、あらかじめ用意された一般的な辞書を代わりに用いてもよい。この場合、検索語３０の秘匿度は低くなるが、辞書３２の生成処理が不要になる。
【００４９】
以上、本発明の実施の形態を説明したが、上述した実施の形態は本発明を実施するための例示に過ぎない。よって、本発明は上述した実施の形態に限定されることなく、その趣旨を逸脱しない範囲内で上述した実施の形態を適宜変形して実施することが可能である。
【符号の説明】
【００５０】
１０  検索装置
１５  入力装置
１６  ディスプレイ
２０  インターネット
２１〜２３  検索エンジン
３０  検索語
３２  辞書
３４  正当文字列
３６  ノイズ語
３８  ノイズ文字列
４０  検索結果
４４  最終検索結果
【図１】
2010024116.tif 000003
【図２】
2010024116.tif 000004
【図３】
2010024116.tif 000005
【図４】
2010024116.tif 000006
【国際調査報告】
2010024116.tif 000007
2010024116.tif 000008
2010024116.tif 000009
2010024116.tif 000010