(57)【特許請求の範囲】
【請求項１】
複数の値と、該複数の値を識別するための第１の識別情報と、鍵とを入力として受け付け、該入力に基づいてセキュアインデックスを生成すると共に、該生成したセキュアインデックスに対して判定処理を実行する検索システムであって、
前記値の取りうる最小値を値最小値とした場合に、該値最小値から前記値までの１つ以上の値の集合である第１の値集合を生成すると共に、前記値の取りうる最大値を値最大値とした場合に、該値最大値から前記値までの１つ以上の値の集合である第２の値集合を生成する生成する値集合生成部と、
前記第１の値集合を第１の単語集合として扱い、該第１の単語集合、前記第１の識別情報及び前記鍵に基づいて第１のセキュアインデックスを生成すると共に、前記第２の値集合を第２の単語集合として扱い、該第２の単語集合、前記第１の識別情報及び前記鍵に基づいて第２のセキュアインデックスを生成し、前記第１のセキュアインデックス及び前記第２のセキュアインデックスを組とするセキュアインデックス生成部と、
ａ＜ｂを満たす値ａと値ｂを入力として、該入力及び前記鍵に基づいてそれぞれについてのトラップドアｔ＿ａ及びｔ＿ｂを生成するトラップドア生成部と、
前記トラップドアｔ＿ａを前記第１のセキュアインデックスに対する検索処理に用いるトラップドアとして、前記トラップドアｔ＿ｂを前記第２のセキュアインデックスに対する検索処理に用いるトラップドアとして、セキュアインデックス判定処理を実行し、それぞれの判定処理の結果の積集合を出力するセキュアインデックス検索部と、
を備えることを特徴とする検索システム。
【請求項２】
複数の値と、該複数の値を識別するための第１の識別情報と、鍵とを入力として受け付け、該入力に基づいてセキュアインデックスを生成すると共に、該生成したセキュアインデックスに対して判定処理を実行する検索システムであって、
前記値の取りうる範囲内で、前記値を含む区間全てを含む集合である値集合を生成する生成する値集合生成部と、
前記値集合を単語集合として扱い、該単語集合、前記第１の識別情報及び前記鍵に基づいてセキュアインデックスを生成するセキュアインデックス生成部と、
前記鍵及び検索する値を含む区間に基づいて、該検索する値についてのトラップドア情報を生成するトラップドア生成部と、
前記トラップドア情報を用いて前記生成されたセキュアインデックスに対してセキュアインデックス判定処理を実行し、該判定処理の結果前記検索する値を含む区間が前記セキュアインデックスに含まれていると判定できた場合は該セキュアインデックスを識別するための第２の識別情報を出力するセキュアインデックス検索部と、
を備えることを特徴とする検索システム。
【請求項３】
請求項１又は２に記載の検索システムにおいて、
値を何れかの区間に割当て、
前記値集合に代えて前記値が割り当てられている区間の集合を単語集合として扱い、該単語集合、前記第１の識別情報及び前記鍵に基づいてセキュアインデックスを生成し、
検索する値に割り当てられている区間及び鍵に基づいて、該検索する値についてのトラップドア情報を生成し、
前記トラップドア情報を用いて前記生成されたセキュアインデックスに対してセキュアインデックス判定処理を実行し、該判定処理の結果前記検索する値に割り当てられている区間が前記セキュアインデックスに含まれていると判定できた場合は該セキュアインデックスを識別するための第２の識別情報を出力する、
ことを特徴とする検索システム。
【請求項４】
複数の値と、該複数の値を識別するための第１の識別情報と、鍵とを入力として受け付け、該入力に基づいてセキュアインデックスを生成すると共に、該生成したセキュアインデックスに対して判定処理を実行するコンピュータが行う検索方法であって、
前記コンピュータが、前記値の取りうる最小値を値最小値とした場合に、該値最小値から前記値までの１つ以上の値の集合である第１の値集合を生成すると共に、前記値の取りうる最大値を値最大値とした場合に、該値最大値から前記値までの１つ以上の値の集合である第２の値集合を生成し、
前記コンピュータが、前記第１の値集合を第１の単語集合として扱い、該第１の単語集合、前記第１の識別情報及び前記鍵に基づいて第１のセキュアインデックスを生成すると共に、前記第２の値集合を第２の単語集合として扱い、該第２の単語集合、前記第１の識別情報及び前記鍵に基づいて第２のセキュアインデックスを生成し、前記第１のセキュアインデックス及び前記第２のセキュアインデックスを組とし、
前記コンピュータが、ａ＜ｂを満たす値ａと値ｂを入力として、該入力及び前記鍵に基づいてそれぞれについてのトラップドアｔ＿ａ及びｔ＿ｂを生成し、
前記コンピュータが、前記トラップドアｔ＿ａを前記第１のセキュアインデックスに対する検索処理に用いるトラップドアとして、前記トラップドアｔ＿ｂを前記第２のセキュアインデックスに対する検索処理に用いるトラップドアとして、セキュアインデックス判定処理を実行し、それぞれの判定処理の結果の積集合を出力する、
ことを特徴とする検索方法。
【請求項５】
複数の値と、該複数の値を識別するための第１の識別情報と、鍵とを入力として受け付け、該入力に基づいてセキュアインデックスを生成すると共に、該生成したセキュアインデックスに対して判定処理を実行するコンピュータが行う検索方法であって、
前記コンピュータが、前記値の取りうる範囲内で、前記値を含む区間全てを含む集合である値集合を生成する生成し、
前記コンピュータが、前記値集合を単語集合として扱い、該単語集合、前記第１の識別情報及び前記鍵に基づいてセキュアインデックスを生成し、
前記コンピュータが、前記鍵及び検索する値を含む区間に基づいて、該検索する値についてのトラップドア情報を生成し、
前記コンピュータが、前記トラップドア情報を用いて前記生成されたセキュアインデックスに対してセキュアインデックス判定処理を実行し、該判定処理の結果前記検索する値を含む区間が前記セキュアインデックスに含まれていると判定できた場合は該セキュアインデックスを識別するための第２の識別情報を出力する、
ことを特徴とする検索方法。
【請求項６】
請求項４又は５に記載の検索方法において、
前記コンピュータが、値を何れかの区間に割当て、
前記コンピュータが、前記値集合に代えて前記値が割り当てられている区間の集合を単語集合として扱い、該単語集合、前記第１の識別情報及び前記鍵に基づいてセキュアインデックスを生成し、
前記コンピュータが、検索する値に割り当てられている区間及び鍵に基づいて、該検索する値についてのトラップドア情報を生成し、
前記コンピュータが、前記トラップドア情報を用いて前記生成されたセキュアインデックスに対してセキュアインデックス判定処理を実行し、該判定処理の結果前記検索する値に割り当てられている区間が前記セキュアインデックスに含まれていると判定できた場合は該セキュアインデックスを識別するための第２の識別情報を出力する、
ことを特徴とする検索方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報漏えいに耐性を持つインデックス生成システム及びインデックス生成装置並びにその方法に関する。
【背景技術】
【０００２】
データの集合に対して生成されるデータである「インデックス」を用いた技術が知られている。インデックスを用いると、生成元のデータ集合から、所望の特徴を含むデータを検索することが容易化される。【０００３】
インデックスを用いた検索方法としては、キーワード検索や範囲検索が代表的である。ここで、特に範囲検索について考える。暗号化されていない通常のデータに対して範囲検索を行う場合は、単純に値の大小を比較することで実行でき、特別な手法は必要ない。【０００４】
しかし、情報漏えい対策などでデータを暗号化する場合は、一般的な暗号化方式の暗号文の値から元のデータの大小比較はできない。例えば、特許文献１乃至５には、情報の漏洩を防止すべく、データを暗号化してデータベース化したり、検索のキーとするキーワードを暗号化するといった技術が記載されている。このように暗号化することにより暗号文からの情報漏えいを防止することができる。もっともこれらの技術により暗号化したデータを対象として範囲検索を行うことはできない。【０００５】
すなわち、暗号化されたデータを対象として範囲検索を行うためには何らかの技術が必要となる。【０００６】
以下の説明では、データを暗号化しながらデータの検索処理を行う技術について更に説明する。【０００７】
非特許文献１には平文の数字的な大小を保ちながら暗号化することができる暗号方式を用いる方法が記載されている。もっとも、非特許文献１に記載の方法は、暗号文から順序情報自体が漏えいするという問題がある。【０００８】
一方、非特許文献２や非特許文献３に記載のインデックスを用いる技術では、暗号文からの情報漏えいの両方を防ぐとともに、インデックスからの情報漏えいまでも防ぐことが可能である。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特開２００５−１３４９９０号公報
【特許文献２】特開２０１０−１６４８３５号公報
【特許文献３】特開平１１−３２８２２５号公報
【特許文献４】特表２０１０−５０３１１８号公報
【特許文献５】特表２０１０−５０６２８９号公報
【非特許文献】
【００１０】
【非特許文献１】Alexandra Boldyreva, Nathan Chenette, Younho Lee and Adam O'Neill. Order-Preserving Symmetric Encryption. Advances in Cryptology - Eurocrypt 2009 Proceedings, Lecture Notes in Computer Science Vol. 5479, pp. 224-241, A. Joux ed., 2009.
【非特許文献２】Eu-Jin Goh:Secure Indexes.［online］,［平成２３年７月１５日検索］インターネット＜http://crypto.stanford.edu/~eujin/papers/secureindex/secureindex.pdf＞
【非特許文献３】Y.-C. Chang and M. Mitzenmacher. Privacy preserving keyword searches on remote encrypted data. Cryptology ePrint Archive, Report 2004/051, Feb 2004 ［online］,［平成２３年７月１５日検索］インターネット＜http://eprint.iacr.org/2004/051/＞
【発明の概要】
【発明が解決しようとする課題】
【００１１】
上述した各技術を用いて、データを暗号化することにより、情報漏えい対策を行うことが可能となる。また、暗号化したデータを対象としたキーワード検索を実施することも可能となる。【００１２】
しかしながら上述した各技術は、キーワード検索向けに構成されており、範囲検索を実行するには適さない。情報漏えい対策などでデータを暗号化すると、暗号化された値の比較を単純に実行することができないためである。【００１３】
そこで、本発明は、登録情報が暗号化されているデータベースにおいて範囲検索を効率的に実行することが可能な、情報漏えいに耐性を持つインデックス生成システム及びインデックス生成装置並びにその方法を提供することを目的とする。
【課題を解決するための手段】
【００１５】
本発明の第２の観点によれば、複数の値と、該複数の値を識別するための第１の識別情報と、鍵とを入力として受け付け、該入力に基づいてセキュアインデックスを生成すると共に、該生成したセキュアインデックスに対して判定処理を実行する検索システムであって、前記値の取りうる最小値を値最小値とした場合に、該値最小値から前記値までの１つ以上の値の集合である第１の値集合を生成すると共に、前記値の取りうる最大値を値最大値とした場合に、該値最大値から前記値までの１つ以上の値の集合である第２の値集合を生成する生成する値集合生成部と、前記第１の値集合を第１の単語集合として扱い、該第１の単語集合、前記第１の識別情報及び前記鍵に基づいて第１のセキュアインデックスを生成すると共に、前記第２の値集合を第２の単語集合として扱い、該第２の単語集合、前記第１の識別情報及び前記鍵に基づいて第２のセキュアインデックスを生成し、前記第１のセキュアインデックス及び前記第２のセキュアインデックスを組とするセキュアインデックス生成部と、ａ＜ｂを満たす値ａと値ｂを入力として、該入力及び前記鍵に基づいてそれぞれについてのトラップドアｔ＿ａ及びｔ＿ｂを生成するトラップドア生成部と、前記トラップドアｔ＿ａを前記第１のセキュアインデックスに対する検索処理に用いるトラップドアとして、前記トラップドアｔ＿ｂを前記第２のセキュアインデックスに対する検索処理に用いるトラップドアとして、セキュアインデックス判定処理を実行し、それぞれの判定処理の結果の積集合を出力するセキュアインデックス検索部と、を備えることを特徴とする検索システムが提供される。
本発明の第３の観点によれば、複数の値と、該複数の値を識別するための第１の識別情報と、鍵とを入力として受け付け、該入力に基づいてセキュアインデックスを生成すると共に、該生成したセキュアインデックスに対して判定処理を実行する検索システムであって、前記値の取りうる範囲内で、前記値を含む区間全てを含む集合である値集合を生成する生成する値集合生成部と、前記値集合を単語集合として扱い、該単語集合、前記第１の識別情報及び前記鍵に基づいてセキュアインデックスを生成するセキュアインデックス生成部と、前記鍵及び検索する値を含む区間に基づいて、該検索する値についてのトラップドア情報を生成するトラップドア生成部と、前記トラップドア情報を用いて前記生成されたセキュアインデックスに対してセキュアインデックス判定処理を実行し、該判定処理の結果前記検索する値を含む区間が前記セキュアインデックスに含まれていると判定できた場合は該セキュアインデックスを識別するための第２の識別情報を出力するセキュアインデックス検索部と、を備えることを特徴とする検索システムが提供される。
【００１６】
本発明の第４の観点によれば、複数の値と、該複数の値を識別するための第１の識別情報と、鍵とを入力として受け付け、該入力に基づいてセキュアインデックスを生成すると共に、該生成したセキュアインデックスに対して判定処理を実行するコンピュータが行う検索方法であって、前記コンピュータが、前記値の取りうる最小値を値最小値とした場合に、該値最小値から前記値までの１つ以上の値の集合である第１の値集合を生成すると共に、前記値の取りうる最大値を値最大値とした場合に、該値最大値から前記値までの１つ以上の値の集合である第２の値集合を生成し、前記コンピュータが、前記第１の値集合を第１の単語集合として扱い、該第１の単語集合、前記第１の識別情報及び前記鍵に基づいて第１のセキュアインデックスを生成すると共に、前記第２の値集合を第２の単語集合として扱い、該第２の単語集合、前記第１の識別情報及び前記鍵に基づいて第２のセキュアインデックスを生成し、前記第１のセキュアインデックス及び前記第２のセキュアインデックスを組とし、前記コンピュータが、ａ＜ｂを満たす値ａと値ｂを入力として、該入力及び前記鍵に基づいてそれぞれについてのトラップドアｔ＿ａ及びｔ＿ｂを生成し、前記コンピュータが、前記トラップドアｔ＿ａを前記第１のセキュアインデックスに対する検索処理に用いるトラップドアとして、前記トラップドアｔ＿ｂを前記第２のセキュアインデックスに対する検索処理に用いるトラップドアとして、セキュアインデックス判定処理を実行し、それぞれの判定処理の結果の積集合を出力する、ことを特徴とする検索方法が提供される。
本発明の第５の観点によれば、複数の値と、該複数の値を識別するための第１の識別情報と、鍵とを入力として受け付け、該入力に基づいてセキュアインデックスを生成すると共に、該生成したセキュアインデックスに対して判定処理を実行するコンピュータが行う検索方法であって、前記コンピュータが、前記値の取りうる範囲内で、前記値を含む区間全てを含む集合である値集合を生成する生成し、前記コンピュータが、前記値集合を単語集合として扱い、該単語集合、前記第１の識別情報及び前記鍵に基づいてセキュアインデックスを生成し、前記コンピュータが、前記鍵及び検索する値を含む区間に基づいて、該検索する値についてのトラップドア情報を生成し、前記コンピュータが、前記トラップドア情報を用いて前記生成されたセキュアインデックスに対してセキュアインデックス判定処理を実行し、該判定処理の結果前記検索する値を含む区間が前記セキュアインデックスに含まれていると判定できた場合は該セキュアインデックスを識別するための第２の識別情報を出力する、ことを特徴とする検索方法が提供される。
【発明の効果】
【００１７】
本発明によれば、値を複数の値の集合に変換し、その値の集合を単語集合としたセキュアインデックスを生成することから、情報漏えいを防止し、且つ、登録情報が暗号化されているデータベースにおいて範囲検索を効率的に実行することが可能となる。
【図面の簡単な説明】
【００１８】
【図１】本発明の実施形態の基本的構成を表すブロック図である。
【図２】セキュアインデックスの生成方法について説明するための図である。
【図３】セキュアインデックスの判定方法について説明するための図である。
【図４】本発明の実施形態におけるインデックス生成装置の基本的構成を表すブロック図である。
【図５】本発明の実施形態におけるインデックス生成装置の基本的動作を表すブロック図である。
【図６】本発明の実施形態における検索依頼装置と検索装置の基本的構成を表すブロック図である。
【図７】本発明の実施形態における検索依頼装置と検索装置の基本的動作を表すブロック図である。
【図８】本発明の実施形態を実現するための装置の一例である処理装置の基本的構成を表すブロック図である。
【符号の説明】
【００１９】
１０  処理装置
１１  ＣＰＵ
１２  主記憶装置
１３  記録媒体
１４  データ蓄積装置
１５  メモリ制御インターフェイス部
１６  Ｉ／Ｏインターフェイス部
１７  バス
２０  入力装置
３０  出力装置
１００  インデックス生成装置
１０１  登録処理制御部
１０２  値集合生成部
１０３  セキュアインデックス生成部
２００  検索依頼装置
２０１  トラップドア生成部
３００  検索装置
３０１  検索処理制御部
３０２  セキュアインデックス判定部
【発明を実施するための形態】
【００２０】
次に、本発明の実施形態について図面を参照して詳細に説明する。
【００２１】
図１は、本実施形態の基本的構成を表すブロック図である。
【００２２】
図１を参照すると、本実施形態は、インデックス生成装置１００、検索依頼装置２００、検索装置３００及びインデックス記憶装置４００を含む。ここで、インデックス記憶装置４００は、一台であっても良いが、複数台であってもよい。本実施形態では、インデックス記憶装置４００−１、インデックス記憶装置４００−２及びインデックス記憶装置４００−ｎの３台を図示する。なお、便宜上図示する台数を３台としたが、これは本実施形態で利用可能なインデックス記憶装置４００の台数を限定する趣旨ではない。本実施形態では任意の台数のインデックス記憶装置４００を利用することが可能である。
【００２３】
インデックス生成装置１００は、セキュアインデックスを生成する装置である。検索依頼装置２００は、検索装置３００が検索を実行するための情報を生成する装置である。検索装置３００は、検索依頼装置２００からの依頼に応じて検索を実行する装置である。インデックス記憶装置４００は、識別情報と、インデックス生成装置１００が生成したインデックスを記憶する装置である。
【００２４】
続いて、本実施形態に含まれる各装置の構成について説明するに先立ち、本実施形態におけるインデックスの生成方法及び判定方法について詳細に説明する。
【００２５】
本実施形態では、非特許文献２に記載のキーワード検索向けに構成されているインデックス生成方法を応用して、範囲検索向けのインデックス等を生成する。以下で、本実施形態で応用する非特許文献２に記載のインデックス生成方法を説明する。
【００２６】
このインデックス生成方法では、単語の集合と識別情報の組を文書として扱う。ここで、識別情報は、ファイル名や通し番号など、各識別情報を区別できる情報であれば任意のものを用いてよい。
【００２７】
識別情報がｚであり、単語としてｗ＿１，．．．，ｗ＿ｎを持つ文書Ｄを（｛ｗ＿１，．．．，ｗ＿ｎ｝，ｚ）とする。
【００２８】
また、インデックスを生成する主体者のみが所有する秘密の情報を鍵として用いる。この鍵を、以下の説明では「鍵Ｋ」とする。
【００２９】
鍵Ｋは、文書Ｄに含まれている各単語ｗをトラップドアと呼ばれる値に変換するために用いられる。この変換処理は鍵と単語を入力とした関数として実現される。この関数をトラップドア生成関数Ｔｒとし、鍵Ｋと単語ｗを入力したときの出力を単語ｗのトラップドアとする。また、このトラップドア生成関数Ｔｒを用いてトラップドアを生成する処理を以下の説明では、「トラップドア生成処理」という。
【００３０】
また、このインデックス生成方法では、単語ごとに異なるフィルタ関数を用いる。このフィルタ関数は、ビット列を出力する関数であって、識別情報ｚと、単語ｗのトラップドアを入力としてとることができる関数を用いて実現される。このような関数を「識別情報依存フィルタ関数Ｆ」とする。
【００３１】
ここで、インデックスを生成する関数を、「インデックス生成関数Ｇｅｎ」とすると、インデックス生成関数Ｇｅｎは以下の通りに表すことができる。
【００３２】
インデックス生成関数Ｇｅｎ：
１．文書（｛ｗ＿１，．．．，ｗ＿ｎ｝，ｚ）と鍵Ｋが入力される。
２．ｘ＿１＝Ｔｒ（ｋ，ｗ＿１）を計算する。同様に、ｘ＿２＝Ｔｒ（ｋ，ｗ＿２），．．．，ｘ＿ｎ＝Ｔｒ（ｋ，ｗ＿ｎ）を計算する。
３．ｙ＿１＝Ｆ（ｚ，ｘ＿１）を計算する。同様に、ｙ＿２＝Ｆ（ｚ，ｘ＿２），．．．，ｙ＿ｎ＝Ｆ（ｚ，ｘ＿ｎ）を計算する。
４．ｙ＿１の論理和からｙ＿ｎの論理和までのそれぞれを求め、それぞれを出力する。
【００３３】
以上の処理によって生成されるフィルタはセキュアインデックスと呼ばれている。本実施形態では、この処理を「セキュアインデックス生成処理」という。
【００３４】
図２は、インデックス生成関数Ｇｅｎに文書（｛ｗ＿１，ｗ＿２，ｓ＿３｝，ｚ）と、鍵Ｋが入力された場合の処理を図示している。
【００３５】
次に、ある識別情報ｚについてのセキュアインデックスｆが単語ｗを含んでいるか否かを判定する処理について説明する。この判定処理を実現するための判定関数Ｃｈｅｃｋは、トラップドアとフィルタと識別情報を入力とし、以下の通りに表すことができる。
【００３６】
判定関数Ｃｈｅｃｋ：
１．インデックスｆと識別情報ｚとトラップドアｘが入力される。
２．ｙ＝Ｆ’（ｚ，ｘ）を計算する。
３．ｙにおいて１である箇所のすべてがインデックスｆにおいても１であるかを調べ、すべてが１であるときには１を出力し、それ以外の場合０を出力する。
【００３７】
本実施形態では、以上の処理は「セキュアインデックス判定処理」という。
【００３８】
図３は、判定関数Ｃｈｅｃｋの動作の一例を示している。
【００３９】
トラップドアは単語と鍵を用いて計算されている。そのため、或る単語に関する検索を実行しようとしても、鍵を持っていなければその或る単語に対応するトラップドアが計算できず、判定関数Ｃｈｅｃｋを使用することができない。
【００４０】
鍵を持っている主体のみが、その或る単語に対応するトラップドアを計算し、文書とフィルタを保管しているデータベースなどに検索処理を依頼できることになる。
【００４１】
つまり、セキュアインデックスに対しては、鍵を知っており、その鍵によりトラップドアを計算できる単語に関する検索しか行うことができない。
【００４２】
以上のような理由から、セキュアインデックスは、そのデータ自体からの情報漏えいに強い。また、セキュアインデックスは、更に特有の特徴を持っている。
【００４３】
その特徴とは、判定関数Ｃｈｅｃｋは入力された要素ｗ＿ｉが含まれていない集合に対して計算されたセキュアインデックスに対しても１を出力する場合がある一方で、要素ｗ＿ｉが集合に含まれている場合は必ず１を出力する、というものである。
【００４４】
この特徴を利用すると、文書を単語の集合とみなし、単語の集合を入力としたセキュアインデックスを作成し、各文書の暗号文とセキュアインデックスを対応させて保管することで、暗号化された文書のキーワード検索を効率化することができる。
【００４５】
各文書に対応するセキュアインデックスがキーワードを含んでいるかを判定関数Ｃｈｅｃｋによって判定し、１が出力されたセキュアインデックスに対応する文書を抽出すれば、各文書がキーワードを含んでいるかどうかを直接調べる必要がないためである。
【００４６】
この点について、詳細に説明する。本実施形態ではデータが持つ特徴を複数の単語の集合に変換し、その単語の集合を文章としたセキュアインデックスを生成することで課題を解決する。
【００４７】
具体的な例として、ある閾値ｋ以上であることを検索可能とする場合、値ｘを｛１，．．．，ｘ｝に変換し、｛１，．．．，ｘ｝を単語の集合としてセキュアインデックスを生成する。
【００４８】
このようにして生成したセキュアインデックスに対して、キーワードをｋとしたセキュアインデックス判定処理を実行することを考えると、もし、ｘがｋ以上であれば、１が出力される。セキュアインデックスの誤りがおきなければ、ｘがｋ未満であるならば０が出力される。
【００４９】
このように１つの値ｘを｛１，．．．，ｘ｝に変換することで、「以上」に関する検索を実行するインデックスを生成することができる。同様に、「以下」に関するインデックスを生成できる。
【００５０】
具体的には、ある閾値ｋ以下であることを検索可能とする場合、値ｘを｛ｘ，．．．，ｘが取りうる最大の値であってｋ以上の値｝に変換し、｛ｘ，．．．，ｘが取りうる最大の値であってｋ以上の値｝を単語の集合としてセキュアインデックスを生成する。
【００５１】
このようにして生成したセキュアインデックスに対して、キーワードをｋとしたセキュアインデックス判定処理を実行することを考えると、もし、ｘがｋ以下であれば、１が出力される。セキュアインデックスの誤りがおきなければ、ｘがｋを超える値であるならば０が出力される。
【００５２】
このようにして値について「以上」のインデックスと、「以下」のインデックスを生成すれば、Ａ以上Ｂ以下といった範囲検索を実行するためのインデックスも生成できる。
【００５３】
この方法では、Ａ以上の値を検索する際に、Ａ以上でないと判定された値はＡ未満であり、Ｂ以下でないと判定された値はＢより大きい値であることがわかる。
【００５４】
つまり、Ａ未満の値とＢより大きい値の区別が付く。真にＡ以上Ｂ以下の要素のみを検索したいならば、これらの区別がつかない方法が望ましく、以下のような方法がある。
【００５５】
この場合、ある値についてのＡ以上、Ｂ未満といった検索を実行するためのセキュアインデックスを生成する場合、その値を含む範囲すべてをキーワードとしてセキュアインデックスを生成すればよい。
【００５６】
例えば、値がとる範囲が｛１，２，３，４｝であるならば、３を含む区間は３，｛２，３｝，｛３，４｝｛１，２，３｝｛２，３，４｝｛１，２，３，４｝である。これらの集合のそれぞれを単語としてセキュアインデックスを生成する。
【００５７】
このようにして生成されたセキュアインデックスに対する検索処理は、例えば区間｛２，３｝に対するトラップドアを用いてすればよい。この場合、セキュアインデックスを生成した単語として、１，｛１，４｝，４のみが含まれている場合はセキュアインデックスの誤りがおきなければ、０が出力される。一方、それ以外の場合は１が出力される。これにより真にＡ以上Ｂ以下の要素のみを検索することが可能となる。
【００５８】
すなわち、本実施形態では、値を複数の値の集合に変換し、その値の集合を単語集合としたセキュアインデックスを生成することで課題を解決する。
【００５９】
なお、上述の説明では非特許文献２に記載の方法を応用するものとして説明したが、これはあくまで一例にしか過ぎず、同様の性質を持つインデックス生成方法であれば、どのような方法を用いてもよい。
【００６０】
続いて、本実施形態に含まれる各装置の詳細な構成及び動作について説明する。
【００６１】
図４は、本実施形態のインデックス生成装置１００の基本的構成を表すブロック図である。
【００６２】
図４を参照すると、インデックス生成装置１００は、インデックス生成制御部１０１、
値集合生成部１０２及びセキュアインデックス生成部１０３を含む。
【００６３】
インデックス生成制御部１０１は、値Ｄ＿ｖａｌｕｅと識別情報Ｄ＿ｉｄと鍵Ｋを入力として受け付ける。そして、インデックス生成制御部１０１は、値集合生成部１０２及びセキュアインデックス生成部１０３を制御することにより、これら入力された情報からインデックス記憶装置４００に記憶させる情報を生成する。生成した情報をインデックス記憶装置４００に記憶させることによりインデックス記憶装置４００の情報は更新される。なお、値Ｄ＿ｖａｌｕｅは識別情報Ｄ＿ｉｄと組とする。識別情報Ｄ＿ｉｄは、重複さえないのであれば如何なる情報を用いても良い。例えば識別情報Ｄ＿ｉｄは、各値Ｄ＿ｖａｌｕｅに対して振られた通し番号のような情報でよい。
【００６４】
値集合生成部１０２は、インデックス生成制御部１０１が出力した値Ｄ＿ｖａｌｕｅを入力として、値Ｄ＿ｖａｌｕｅの集合Ｓを生成する。そして、値集合生成部１０２は、生成した集合Ｓをインデックス生成制御部１０１に対して出力する。
【００６５】
セキュアインデックス生成部１０３は、インデックス生成制御部１０１が出力した鍵Ｋと、識別情報Ｄ＿ｉｄと、値Ｄ＿ｖａｌｕｅの集合Ｓを入力とし、その入力に応じて、セキュアインデックス生成処理を実行する。そして、セキュアインデックス生成部１０３は、セキュアインデックス生成処理により生成されたインデックスＩ＿ｖａｌｕｅを出力する。
【００６６】
図５は、本実施形態のインデックス生成装置１００の基本的動作を表すフローチャートである。
【００６７】
図５を参照すると、まず、識別情報Ｄ＿ｉｄと、値Ｄ＿ｖａｌｕｅと、鍵Ｋがインデックス生成制御部１０１に入力される（ステップＡ−１）。
【００６８】
インデックス生成制御部１０１は、Ｄ＿ｖａｌｕｅを値集合生成部１０２に入力し、その出力である単語集合Ｓを得る（ステップＡ−２）。
【００６９】
インデックス生成制御部１０１は鍵をＫ，識別情報をＤ＿ｉｄ，単語集合をＳとしてセキュアインデックス生成部１０３を入力し、その出力であるインデックスＩ＿ｖａｌｕｅと識別情報Ｉ＿ｉｄを組にしてインデックス記憶装置４０２に記憶させる（ステップＡ−３）。なお、識別情報Ｄ＿ｉｄと同様に識別情報Ｉ＿ｉｄは、重複しないのであれば如何なる情報を用いても良い。例えば、Ｉ＿ｉｄは、各値Ｉ＿ｖａｌｕｅに対して振られた通し番号のような情報でよい。
【００７０】
図６は、本実施形態の検索依頼装置２００と検索装置３００の基本的構成を表すブロック図である。
【００７１】
検索依頼装置２００は、トラップドア生成部２０１を含む。
【００７２】
検索依頼装置２００は、鍵Ｋと、単語ｗを入力される。そして、トラップドア生成部２０１は入力された鍵Ｋと、単語ｗに基づいて、単語ｗに対するトラップドアｔを出力する。
【００７３】
検索装置３００は、検索処理制御部３０１と、セキュアインデックス判定部３０２を含む。
【００７４】
検索処理制御部３０１は、トラップドアｔを入力される。また、検索処理制御部３０１は、インデックス記憶装置４００−１、インデックス記憶装置４００−２及びインデックス記憶装置４００−ｎの何れかから、識別情報Ｉ＿ｉｄと、インデックスＩ＿ｖａｌｕｅを読み出す。そして、検索処理制御部３０１は、トラップドアｔと、識別情報Ｉ＿ｉｄと、インデックスＩ＿ｖａｌｕｅをセキュアインデックス判定部３０２に対して出力する。
【００７５】
セキュアインデックス判定部３０２は、トラップドアｔと、識別情報Ｉ＿ｉｄと、インデックスＩ＿ｖａｌｕｅを入力され、その入力に応じて、セキュアインデックス判定処理を実行する。そして、セキュアインデックス判定部３０２は、セキュアインデックス判定処理の結果を出力する。
【００７６】
図７は、本実施形態の検索依頼装置２００と検索装置３００の基本的動作を表すフローチャートである。
【００７７】
まず、単語ｗと鍵Ｋが検索依頼装置２００に入力される（ステップＢ−１）。
【００７８】
トラップドア生成部２０１は、単語ｗに対するトラップドアｔを、単語ｗ及び鍵Ｋを入力として生成する（ステップＢ−２）。
【００７９】
ステップＢ−２において生成されたトラップドアｔが検索装置３００に入力される（ステップＢ−３）。
【００８０】
検索処理制御部３０１は、未判定のインデックス情報記憶装置４００がないか調べる（ステップＢ−４）。
【００８１】
未判定のインデックス情報記憶装置４００がある場合（ステップＢ−４においてＮｏ）、検索処理制御部３０１は、未判定のインデックス情報記憶装置４００を選び、これから識別情報Ｉ＿ｉｄとインデックスＩ＿ｖａｌｕｅを読み出し、Ｉ＿ｉｄを識別情報とし、ｔをトラップドア情報とし、インデックスＩ＿ｖａｌｕｅをセキュアインデックスとしてセキュアインデックス判定部３０２に対して出力し、セキュアインデックス判定部３０２がセキュアインデックス判定処理を実行する（ステップＢ−５）。
【００８２】
ステップＢ−５における判定処理結果が０の場合（ステップＢ−６において０）、ステップＢ−４に戻り、処理を継続する。一方、判定処理結果が１の場合（ステップＢ−６において１）、今回判定処理の対象としたインデックスＩ＿ｖａｌｕｅに対応する識別情報Ｉ＿ｉｄを保管する（ステップＢ−７）。その後、ステップＢ−４に戻り、処理を継続する。
【００８３】
ステップＢ−４ですべてのインデックス情報記憶装置４００の記憶する全てのインデックスが判定済みだった場合（ステップＢ−４においてＹｅｓ）、ステップＢ−７で記憶した識別情報Ｉ＿ｉｄをすべて出力する。
【００８４】
本実施形態では、以上説明した動作により、情報漏えいを防止し、且つ、登録情報が暗号化されているデータベースにおいて範囲検索を効率的に実行することが可能となる。
【００８５】
なお、以上説明した、インデックス生成装置１００、検索依頼装置２００、検索装置３００及びインデックス記憶装置４００は、任意の方法により実現することが可能である。
【００８６】
例えばハードウェアとしてインデックス生成装置１００、検索依頼装置２００及び検索装置３００を実現するのであれば、論理回路等から構成されるＬＳＩ（Large Scale Integration）やＤＳＰ（Digital Signal Processor）等の半導体集積回路によって実現できる。
【００８７】
また、インデックス記憶装置４００は、ハードウェアとして任意のコンピュータ読み取り可能な記憶媒体を含む装置により実現することができる。
【００８８】
また、インデックス生成装置１００、検索依頼装置２００、検索装置３００及びインデックス記憶装置４００は、ハードウェア及びソフトウェアの組合せとしても実現可能である。例えば、図８に表される処理装置１０と、入力部２０と、出力部３０とを含んだコンピュータによってインデックス生成装置１００、検索依頼装置２００、検索装置３００及びインデックス記憶装置４００を実現してもよい。
【００８９】
ここで、処理装置１０は、プログラムに従って所定の処理を実行する装置であり、例えば、汎用のパーソナルコンピュータである。
【００９０】
また、入力部２０は、処理装置１０に対してコマンドや情報等を入力するための機器であり、例えば、キーボードやマウスである。
【００９１】
出力部３０は、処理装置１０の処理結果をモニタするための装置であり、例えばディスプレイや、プリンターである。
【００９２】
また、処理装置１０について、以下詳細に説明する。
【００９３】
図４を参照すると処理装置１０は、ＣＰＵ１１と、主記憶部１２と、記録媒体１３と、データ蓄積部１４と、メモリ制御インターフェイス部１５と、Ｉ／Ｏインターフェイス部１６とを有する。これら各構成要素は、バス１７を介して相互に接続されている。
【００９４】
ＣＰＵ１１はプログラムに基づいて演算を行う演算処理装置である。主記憶部１２は、ＣＰＵ１１の演算処理に必要な情報を一時的に記憶する主記憶部である。
【００９５】
記録媒体１３は、ＣＰＵ１１にインデックス生成装置１００、検索依頼装置２００及び検索装置３００としての処理を実行させるためのプログラムが記録された記録媒体である。処理装置１０は、記録媒体１３に記録されたプログラムに従ってインデックス生成装置１００、検索依頼装置２００及び検索装置３００としての機能を実現する。
【００９６】
データ蓄積部１４は、処理に伴うデータが蓄積される補助記憶装置である。
【００９７】
なお、記録媒体１３及びデータ蓄積部１４は、任意の装置により実現可能である。記録媒体１３及びデータ蓄積部１４は、例えば、ＨＤＤ（Hard disk drive）やＦｌａｓｈ  ＳＳＤ（Solid State Drive）により実現される。また、この記憶装置は処理装置１０内にある必要はなく、外部の記憶装置（図示を省略する）を利用するようにしてもよい。この場合記憶装置を別のコンピュータとして実現し、バスやＵＳＢ（Universal Serial Bus）規格に準拠したケーブルや、インターネット等の手段を用いて接続するようにしてもよい。更に、単一の記憶装置により実現されてもよいが、複数の記憶装置の組合せにより実現されていてもよい。加えて、記録媒体１３は、磁気ディスク、半導体メモリ、光ディスクあるいはその他の記録媒体であってもよい。例えば、フレキシブルディスク、ＣＤ−ＲＯＭ（Compact Disc Read-Only Memory）、ＤＶＤ（Digital Versatile Disc)、ＭＯ（Magneto Optical Disk(Disc)）ＢＤ（Blu-ray Disc：登録商標）等であってもよい。加えて、データ蓄積部１４は、インデックス記憶装置４００として用いてもよい。すなわち、インデックス生成装置１００、検索依頼装置２００、検索装置３００及びインデックス記憶装置４００、複数のコンピュータで実現してもよく、単一のコンピュータで実現してもよい。
【００９８】
メモリ制御インターフェイス部１５は、主記憶部１２、記録媒体１３及びデータ蓄積部１４とＣＰＵ１１等とのデータ転送を制御する。
【実施例】
【００９９】
次に、本発明の実施例を説明する。かかる実施例は上述した本発明の実施形態に対応するものである。【０１００】
各実施例では、値Ｄ＿ｖａｌｕｅは識別情報Ｄ＿ｉｄと組であるものとする。【０１０１】
［第１の実施例］
第１の実施例は値が一定の値以上であることを判定するインデックスを生成する場合の実施例である。【０１０２】
値Ｄ＿ｖａｌｕｅを入力とした場合について考える。この場合に値Ｄ＿ｖａｌｕｅのとりうる最小値をＤ＿ｍｉｎとすると、値集合生成部１０２は、｛Ｄ＿ｍｉｎ，．．．，Ｄ＿ｖａｌｕｅ｝を値集合Ｓとしてインデックスを生成する。【０１０３】
ｘ以上の検索を実行する場合、ｘを単語とし、鍵Ｋを用いてｘのトラップドアｔを生成する。そして、このｘのトラップドアｔを用いてセキュアインデックスの判定処理を実行する。【０１０４】
以上のように実施すれば、Ｄ＿ｖａｌｕｅがｘ以上である値に対して生成されたセキュアインデックスのすべてが１を出力し、それ以外はエラーが起きない限り０が出力されるので、「以上」の判定を実行することができる。【０１０５】
［第２の実施例］
第２の実施例は値が一定の値未満であることを判定するインデックスを生成する場合の実施例である。【０１０６】
値Ｄ＿ｖａｌｕｅを入力とした場合について考える。この場合に値Ｄ＿ｖａｌｕｅのとりうる最大値がＤ＿ｍａｘとすると、値集合生成部１０２は、｛Ｄ＿ｖａｌｕｅ，．．．，Ｄ＿ｍａｘ｝を値集合Ｓとしてインデックスを生成する。【０１０７】
ｘ以下の検索を実行する場合、ｘを単語とし、鍵Ｋを用いてｘのトラップドアｔを生成する。そして、このｘのトラップドアｔを用いてセキュアインデックスの判定処理を実行する。【０１０８】
以上のように実施すれば、Ｄ＿ｖａｌｕｅがｘ以下である値に対して生成されたセキュアインデックスのすべてが１を出力し、それ以外はエラーが起きない限り０が出力されるので、以上の判定を実行することができる。【０１０９】
［第３の実施例］
第３の実施例は、第１の実施例と第２の実施例に従って、２つのインデックスを生成し、一定の値以上、一定の値以下であることを判定するためのインデックスを生成する方法である。【０１１０】
Ａ以上、Ｂ以下である値の検索を実行する場合には、以上のインデックスに対しては、第１の実施例と同様にして、｛Ｄ＿ｍｉｎ，．．．，Ｄ＿ｖａｌｕｅ｝を値集合Ｓとしてインデックスを生成する。そして、Ａを単語としたインデックス判定処理を実行する。【０１１１】
一方、以下のインデックスに対しては、第１の実施例と同様にして、｛Ｄ＿ｖａｌｕｅ，．．．，Ｄ＿ｍａｘ｝を値集合Ｓとしてインデックスを生成する。そして、Ｂを単語としたインデックス判定処理を実行し、その両方の判定処理で１が出力されたものを１と判定することで、Ａ以上、Ｂ以下の判定が実行できる。【０１１２】
［第４の実施例］
第３の実施例を用いると、［課題を解決するための手段］に記載したように、多少の情報が漏えいする場合がある。【０１１３】
本実施例は、そのような情報の漏えいをも防ぎたい場合に用いる。【０１１４】
値Ｄ＿ｖａｌｕｅを入力とした場合について考える。値集合生成部１０２は、値Ｄ＿ｖａｌｕｅの取りうる範囲内で、Ｄ＿ｖａｌｕｅを含む範囲すべてからなる集合を値集合Ｓとしてインデックスを生成する。【０１１５】
ある区間に含まれる値の検索を実行する場合、区間そのものを単語としてセキュアインデックスの判定処理を実行する。【０１１６】
その区間に含まれている値はその区間を単語としたセキュアインデックスが対応しているので、所望の判定を実行することができる。【０１１７】
［第５の実施例］
本実施例は、値の取りうる数が多い場合の例である。第１から第４の実施例を、値が１００万通りである場合に適用すると、値集合生成部１０２は非常に要素数の多い集合を出力することになり非効率的である。これを防ぐために利用する実施例である。【０１１８】
値そのものを値集合生成部１０２に入力するのではなく、値を適切な数の区間に分けた場合に、どの区間に含まれるのかを出力するような区分けを導入する。【０１１９】
例えば、１００００通りの値を１００の区間にわける場合、１〜１００番目の値を区間１といったように割りあてる方法である。【０１２０】
各区間に均等に割り振る必要はなく、目的に応じて適切に設定する。例えば１〜１００番目の値を区間１といったように割りあて、１０１〜１１０番目の値を区間２といったように不均等に割りあててもよい。【０１２１】
但し、この区分けは、インデックス生成装置１００及び検索装置３００の両方で共通の規則に則って行う必要がある。そのため、インデックス生成装置１００及び検索装置３００のそれぞれが、各装置に入力される値を共通の方法で区分けする。【０１２２】
以上説明した本発明の実施形態及び実施例は、以下に示すような多くの効果を奏する。【０１２３】
第１の効果は、情報漏えいを防止し、且つ、登録情報が暗号化されているデータベースにおいて範囲検索を効率的に実行することが可能なことである。【０１２４】
その理由は、値を複数の値の集合に変換し、その値の集合を単語集合としたセキュアインデックスを生成するからである。【０１２５】
第２の効果は値が一定の値以上であることを判定するインデックスを生成できることである。【０１２６】
その理由は、値Ｄ＿ｖａｌｕｅのとりうる最小値をＤ＿ｍｉｎとすると、｛Ｄ＿ｍｉｎ，．．．，Ｄ＿ｖａｌｕｅ｝を値集合Ｓとしてインデックスを生成するからである。【０１２７】
第３の効果は値が一定の値未満であることを判定するインデックスを生成できることである。【０１２８】
その理由は、値Ｄ＿ｖａｌｕｅのとりうる最大値がＤ＿ｍａｘとすると、｛Ｄ＿ｖａｌｕｅ，．．．，Ｄ＿ｍａｘ｝を値集合Ｓとしてインデックスを生成するからである。【０１２９】
第４の効果は、Ａ以上、Ｂ以下である値の検索を実行できることである。【０１３０】
その理由は、｛Ｄ＿ｍｉｎ，．．．，Ｄ＿ｖａｌｕｅ｝を値集合Ｓとしてインデックスを生成し、更に｛Ｄ＿ｍｉｎ，．．．，Ｄ＿ｖａｌｕｅ｝を値集合Ｓとしてインデックスを生成するからである。【０１３１】
第５の効果は、情報漏えいを防止し、且つ、Ａ以上Ｂ以下の要素のみを検索できることである。【０１３２】
その理由は、値Ｄ＿ｖａｌｕｅの取りうる範囲内で、Ｄ＿ｖａｌｕｅを含む範囲すべてからなる集合を値集合Ｓとしてインデックスを生成するからである。また、ある区間に含まれる値の検索を実行する場合、区間そのものを単語としてセキュアインデックスの判定処理を実行するからである。【０１３３】
第６の効果は、効率的に判定を実行できることである。【０１３４】
その理由は、値を適切な数の区間に分けた場合に、どの区間に含まれるのかを出力するような区分けを導入するからである。【０１３５】
また、上述した実施形態は、本発明の好適な実施形態ではあるが、上記実施形態のみに本発明の範囲を限定するものではなく、本発明の要旨を逸脱しない範囲において種々の変更を施した形態での実施が可能である。【０１３６】
なお、上記のインデックス生成装置、検索依頼装置、検索装置及びインデックス記憶装置のそれぞれは、ハードウェア、ソフトウェア又はこれらの組合わせにより実現することができる。また、上記のインデックス生成装置、検索依頼装置、検索装置及びインデックス記憶装置により行なわれるインデックス生成方法も、ハードウェア、ソフトウェア又はこれらの組合わせにより実現することができる。ここで、ソフトウェアによって実現されるとは、コンピュータがプログラムを読み込んで実行することにより実現されることを意味する。【０１３７】
プログラムは、様々なタイプの非一時的なコンピュータ可読媒体(non-transitory computer readable medium)を用いて格納され、コンピュータに供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体(tangible storage medium)を含む。非一時的なコンピュータ可読媒体の例は、磁気記録媒体（例えば、フレキシブルディスク、磁気テープ、ハードディスクドライブ）、光磁気記録媒体（例えば、光磁気ディスク）、ＣＤ−ＲＯＭ(Read Only Memory)、ＣＤ−Ｒ、ＣＤ−Ｒ／Ｗ、半導体メモリ（例えば、マスクＲＯＭ、ＰＲＯＭ(Programmable ROM)、ＥＰＲＯＭ(Erasable PROM)、フラッシュＲＯＭ、ＲＡＭ(random access memory)）を含む。また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体(transitory computer readable medium)によってコンピュータに供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、プログラムをコンピュータに供給できる。【０１３８】
本願は、日本の特願２０１１−１６６７４９（２０１１年７月２９日に出願）に基づいたものであり、又、特願２０１１−１６６７４９に基づくパリ条約の優先権を主張するものである。特願２０１１−１６６７４９の開示内容は、特願２０１１−１６６７４９を参照することにより本明細書に援用される。【０１３９】
本発明の代表的な実施の形態が詳細に述べられたが、様々な変更(changes)、置き換え(substitutions)及び選択(alternatives)が請求項で定義された発明の精神と範囲から逸脱することなくなされることが理解されるべきである。また、仮にクレームが出願手続きにおいて補正されたとしても、クレームされた発明の均等の範囲は維持されるものと発明者は意図する。【０１４０】
上記の実施形態の一部又は全部は、以下の付記のようにも記載されうるが、以下には限られない。【０１４１】
（付記１）  複数の値と、該複数の値を識別するための第１の識別情報と、鍵とを入力として受け付け、該入力に基づいてセキュアインデックスを生成するインデックス生成装置であって、
複数の前記値に基づいて値集合を生成する値集合生成部と、
前記値集合を単語集合として扱い、該単語集合、前記第１の識別情報及び前記鍵に基づいてセキュアインデックスを生成するセキュアインデックス生成部と、
を備えることを特徴とするインデックス生成装置。【０１４２】
（付記２）  付記１に記載のインデックス生成装置であって、
前記値の取りうる最小値を値最小値とした場合に、該値最小値から前記値までの１つ以上の値の集合を単語集合として扱い、該単語集合、前記第１の識別情報及び前記鍵に基づいてセキュアインデックスを生成することを特徴とするインデックス生成装置。【０１４３】
（付記３）  付記１に記載のインデックス生成装置であって、
前記値の取りうる最大値を値最大値とした場合に、該値最大値から前記値までの１つ以上の値の集合を単語集合として扱い、該単語集合、前記第１の識別情報及び前記鍵に基づいてセキュアインデックスを生成することを特徴とするインデックス生成装置。【０１４４】
（付記４）  セキュアインデックスを生成し、該生成したセキュアインデックスに対して判定処理を実行する検索システムであって、
付記１乃至３の何れか１に記載のインデックス生成装置がセキュアインデックスを生成する部と、
前記鍵及び検索する値に基づいて、該検索する値についてのトラップドア情報を生成するトラップドア生成部と、
前記トラップドア情報を用いて前記生成されたセキュアインデックスに対してセキュアインデックス判定処理を実行し、該判定処理の結果前記検索する値が前記セキュアインデックスに含まれていると判定できた場合は該セキュアインデックスを識別するための第２の識別情報を出力するセキュアインデックス検索部と、
を備えることを特徴とする検索システム。【０１４５】
（付記５）  付記１に記載のインデックス生成装置であって、
前記値の取りうる最小値を値最小値とした場合に、該値最小値から前記値までの１つ以上の値の集合を単語集合として扱い、該単語集合、前記第１の識別情報及び前記鍵に基づいて第１のセキュアインデックスを生成し、
前記値の取りうる最大値を値最大値とした場合に、該値最大値から前記値までの１つ以上の値の集合を単語集合として扱い、該単語集合、前記第１の識別情報及び前記鍵に基づいて第２のセキュアインデックスを生成し、前記第１のセキュアインデックス及び前記第２のセキュアインデックスを組とすることを特徴とするインデックス生成装置。【０１４６】
（付記６）  セキュアインデックスを生成し、該生成したセキュアインデックスに対して判定処理を実行する検索システムであって、
付記５に記載のインデックス生成装置を前記第１のセキュアインデックス及び前記第２のセキュアインデックスを生成する部として備え、
ａ＜ｂを満たす値ａと値ｂを入力として、それぞれについてのトラップドアｔ＿ａ及びｔ＿ｂを生成するトラップドア生成部と、
前記トラップドアｔ＿ａを前記第１のセキュアインデックスに対する検索処理に用いるトラップドアとして、前記トラップドアｔ＿ｂを前記第２のセキュアインデックスに対する検索処理に用いるトラップドアとして、セキュアインデックス判定処理を実行し、それぞれの判定処理の結果の積集合を出力するセキュアインデックス検索部と、
を更に備えることを特徴とする検索システム。【０１４７】
（付記７）  付記１に記載のインデックス生成装置であって、
前記値の取りうる範囲内で、前記値を含む区間全てを含む集合を単語集合として扱い、該単語集合、前記第１の識別情報及び前記鍵に基づいてセキュアインデックスを生成することを特徴とするインデックス生成装置。【０１４８】
（付記８）  セキュアインデックスを生成し、該生成したセキュアインデックスに対して判定処理を実行する検索システムであって、
付記７に記載のインデックス生成装置をセキュアインデックスを生成する部として備え、
鍵及び検索する値を含む区間に基づいて、該検索する値についてのトラップドア情報を生成するトラップドア生成部と、
前記トラップドア情報を用いて前記生成されたセキュアインデックスに対してセキュアインデックス判定処理を実行し、該判定処理の結果前記検索する値を含む区間が前記セキュアインデックスに含まれていると判定できた場合は該セキュアインデックスを識別するための第２の識別情報を出力するセキュアインデックス検索部と、
を更に備えることを特徴とする検索システム。【０１４９】
（付記９）  付記４、６及び８の何れか１に記載の検索システムにおいて、
値を何れかの区間に割当て、
前記値集合に代えて前記値が割り当てられている区間の集合を単語集合として扱い、該単語集合、前記第１の識別情報及び前記鍵に基づいてセキュアインデックスを生成し、
検索する値に割り当てられている区間及び鍵に基づいて、該検索する値についてのトラップドア情報を生成し、
前記トラップドア情報を用いて前記生成されたセキュアインデックスに対してセキュアインデックス判定処理を実行し、該判定処理の結果前記検索する値に割り当てられている区間が前記セキュアインデックスに含まれていると判定できた場合は該セキュアインデックスを識別するための第２の識別情報を出力する、
ことを特徴とする検索システム。【０１５０】
（付記１０）  複数の値と、該複数の値を識別するための第１の識別情報と、鍵とを入力として受け付け、該入力に基づいてセキュアインデックスを生成し、該生成したセキュアインデックスに対して判定処理を実行する検索方法であって、
複数の前記値に基づいて値集合を生成し、
前記値集合を単語集合として扱い、該単語集合、前記第１の識別情報及び前記鍵に基づいてセキュアインデックスを生成し、
前記鍵及び検索する値に基づいて、該検索する値についてのトラップドア情報を生成し、
前記トラップドア情報を用いて前記生成されたセキュアインデックスに対してセキュアインデックス判定処理を実行し、該判定処理の結果前記検索する値が前記セキュアインデックスに含まれていると判定できた場合は該セキュアインデックスを識別するための第２の識別情報を出力する、ことを特徴とする検索方法。【０１５１】
（付記１１）  付記１０に記載の検索方法であって、
前記値の取りうる最小値を値最小値とした場合に、該値最小値から前記値までの１つ以上の値の集合を単語集合として扱い、該単語集合、前記第１の識別情報及び前記鍵に基づいてセキュアインデックスを生成することを特徴とするインデックス検索方法。【０１５２】
（付記１２）  付記１０に記載の検索方法であって、
前記値の取りうる最大値を値最大値とした場合に、該値最大値から前記値までの１つ以上の値の集合を単語集合として扱い、該単語集合、前記第１の識別情報及び前記鍵に基づいてセキュアインデックスを生成することを特徴とするインデックス検索方法。【０１５３】
（付記１３）  複数の値と、該複数の値を識別するための第１の識別情報と、鍵とを入力として受け付け、該入力に基づいてセキュアインデックスを生成するインデックス生成装置に組み込まれるインデックス生成プログラムであって、
複数の前記値に基づいて値集合を生成する値集合生成部と、
前記値集合を単語集合として扱い、該単語集合、前記第１の識別情報及び前記鍵に基づいてセキュアインデックスを生成するセキュアインデックス生成部と、
を備えるインデックス生成装置としてコンピュータを機能させることを特徴とするインデックス生成プログラム。【０１５４】
（付記１４）  付記１３に記載のインデックス生成プログラムであって、
前記値の取りうる最小値を値最小値とした場合に、該値最小値から前記値までの１つ以上の値の集合を単語集合として扱い、該単語集合、前記第１の識別情報及び前記鍵に基づいてセキュアインデックスを生成することを特徴とするインデックス生成プログラム。【０１５５】
（付記１５）  付記１３に記載のインデックス生成プログラムであって、
前記値の取りうる最大値を値最大値とした場合に、該値最大値から前記値までの１つ以上の値の集合を単語集合として扱い、該単語集合、前記第１の識別情報及び前記鍵に基づいてセキュアインデックスを生成することを特徴とするインデックス生成プログラム。
【図１】
0005942991.tif 000002
【図２】
0005942991.tif 000003
【図３】
0005942991.tif 000004
【図４】
0005942991.tif 000005
【図５】
0005942991.tif 000006
【図６】
0005942991.tif 000007
【図７】
0005942991.tif 000008
【図８】
0005942991.tif 000009