(57)【特許請求の範囲】
【請求項１】
暗号化されているコラムを有するテーブルを格納するデータベースにおいて、前記暗号化されたコラムに対してインデックスを構築する方法において、
（ａ）前記テーブルから暗号化されたコラムデータを読み出す段階と、
（ｂ）前記読み出した暗号化されたコラムデータを復号化する段階と、
（ｃ）前記復号化されたコラムデータから平文を基準として整列手順が維持されるように前記復号化されたコラムデータを再暗号化する段階と、
（ｄ）前記再暗号化されたコラムデータをドメインインデックスとして用いるインデックス用テーブルに格納する段階と、
（ｅ）前記格納されたインデックス用テーブルにインデックスを生成する段階と、
（ｆ）前記生成されたインデックス用テーブルとインデックス用テーブルに生成されたインデックスでドメインインデックスを構築する段階と、を含むことを特徴とする暗号化されたコラムのインデックス構築方法。
【請求項２】
（ｄ）前記再暗号化されたコラムデータをドメインインデックスとして用いるインデックス用テーブルに格納する段階は、
（ｄ１）前記再暗号化されたコラムデータを利用して一般テーブルあるいはインデックス構造テーブルの形態でインデックス用テーブルを生成する段階と、
（ｄ２）前記再暗号化されたコラムデータをインデックス用テーブルに格納する段階と、を含むことを特徴とする請求項１に記載の暗号化されたコラムのインデックス構築方法。
【請求項３】
（ｅ）前記格納されたインデックス用テーブルにインデックスを生成する段階は、
（ｅ１）前記インデックス用テーブルの再暗号化されたコラムデータを有するコラムに対するＢ−Ｔｒｅｅインデックスを生成する段階と、
（ｅ２）前記再暗号化されたコラムデータが格納されたコラムに対して再暗号化された形態のインデックスを関数基盤インデックスの形態で生成する段階とを含むことを特徴とする請求項１に記載の暗号化されたコラムのインデックス構築方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は暗号化されたコラムに対するインデックス（索引）を生成し、生成されたインデックスを用いてインデックス検索を円滑にする方法に関するものである。
【背景技術】
【０００２】
データベースを構築する目的は、多量のデータを格納し、所望する検索条件で速く、かつ容易に探すのにある。速い検索は格納されたデータを利用するアプリケーションの性能に絶対的な影響を与えるためにデータベースという概念が作られた以後、検索性能を向上するためにたくさんの努力が行われてきた。最初のデータベースというＩＳＡＭファイルの場合も検索を速くするためにインデックスを用い、最近の常用ＲＤＢＭＳでも検索性能を高めるために努力を尽くしており、この努力の中心にはインデックスがある。
【０００３】
インデックスの生成とは、コラムデータを手順に再配置することを意味する。図１は、インデックスを利用して検索性能を高める方法を示す。すなわち社員情報を有するテーブル１０１で社員番号に対してインデックスを生成することによって、社員番号として検索を実行する際、速い検索が可能とすることである。インデックス（索引）−社番１０３は社員番号を整列して格納し、各社員番号に該当するもとのテーブル１０１の列番号を格納する。特定社員番号‘１９８７０１０１３’１０５を検索しようとすれば、Ｂ−Ｔｒｅｅインデックス検索などを通じて該当の情報を速く探し出すことができ、探し出した社員番号に該当する列番号１０７がすぐ分かるようになる。この列番号１０７と同一の列番号を有する行をもとのテーブル１０１と比較する１０９ことによって、所望するすべての情報を速く探し出すことができる。このような方法を適用することによって検索性能を向上することができる。図２に示すように、社員番号にインデックス（索引）が生成された以後、インデックス（索引）番号を条件として検索を実行すれば２０１、生成されたインデックスとしてインデックス検索を実行すること２０３が分かる実行計画を見ることができる。
【０００４】
データの分布図（ｃａｒｄｉｎａｌｉｔｙ）によって多様なインデックス技法が用いられており、現在のＢ−Ｔｒｅｅが最も速いインデックス技法と知られており、その以外に分布図が少ない場合にはＢｉｔｍａｐインデックス技法が用いられており、加工されたデータを利用するＦＢＩ（Ｆｕｎｃｔｉｏｎ  Ｂａｓｅｄ  Ｉｎｄｅｘ）技法がたびたび用いられている。
【０００５】
暗号化されたコラムに対して一般的なインデックスを生成する技法は不可能であると知られている。インデックスを生成するための基本前提はデータの整列である。データを暗号化すると、平文（暗号化される前のもとのデータ:Ｐｌａｉｎ  Ｔｅｘｔ）とは整列手順（Ｓｏｒｔ  ｏｒｄｅｒｉｎｇ）が変わるようになるので、暗号化されたデータでインデックスを生成しても検索結果値が変わって意味がなくなる。また暗号化されたデータに対する類推可能性をなくすためのＩＶ（Ｉｎｉｔｉａｌ  Ｖｅｃｔｏｒ）を適用した場合には、平文と暗号文との間の１:１関係が成り立たなくて、暗号文データに対してインデックスを生成することは意味がなくなる。図３に示すように、暗号化されたテーブル３０１でのデータを見ることができるのに、暗号化されたデータ３０３は意味だけでなく、整列順序も全然分からない。図４は暗号化されたテーブルの社員番号コラムを一般インデックスで構築した以後の検索結果を示す。すなわちインデックスが構築されているにもかかわらず、暗号化されたテーブル‘社員_ＣＵＢ’を活用するためのＶＩＥＷ‘社員’を通じて検索（４０１）した結果、インデックス検索が行われず、フルテーブルスキャン（Ｆｕｌｌ  Ｔａｂｌｅ  Ｓｃａｎ）４０３が実行されることが分かる。
【０００６】
このような限界のため、一部では暗号文データを平文に復号化してインデックスを生成する場合があるが、これは平文が格納される状況になってしまうので、保安性の側面において暗号化しないことと同一の結果をもたらす。
【発明の概要】
【発明が解決しようとする課題】
【０００７】
上述の問題点を解決するため、本発明の目的は保安性を害せず、暗号化されたコラムに対するインデックスを生成して検索性能を向上することができる方法を提供するのにある。
【０００８】
本発明のまた他の目的は、暗号化コラムに対するインデックス検索が支援される場合にも、暗号化以前に用いた質疑文を変形せず、使用可能な方法を提供するのにある。
【課題を解決するための手段】
【０００９】
上述の目的を解決するための本発明の一特徴は、暗号化されているコラムを有するテーブルを格納するデータベースにおいて、前記暗号化されたコラムに対してインデックスを構築する方法において、（ａ）前記テーブルから暗号化されたコラムデータを読み出す段階と、（ｂ）前記読み出した暗号化されたコラムデータを復号化する段階と、（ｃ）前記復号化されたコラムデータから平文を基準として整列手順が維持されるように前記復号化されたコラムデータを再暗号化する段階と、（ｄ）前記再暗号化されたコラムデータをドメインインデックスとして用いるインデックス用テーブルに格納する段階と、（ｅ）前記格納されたインデックス用テーブルにインデックスを生成する段階と、（ｆ）前記生成されたインデックス用テーブルとインデックス用テーブルに生成されたインデックスでドメインインデックスを構築する段階と、を含む暗号化されたコラムのインデックス構築方法である。
【００１０】
前記本発明の一特徴による暗号化されたコラムのインデックス構築方法において、（ｄ）前記再暗号化されたコラムデータをドメインインデックスとして用いるインデックス用テーブルに格納する段階は、（ｄ１）前記再暗号化されたコラムデータを利用して一般テーブルあるいはインデックス構造テーブル（Ｉｎｄｅｘ  Ｏｒｇａｎｉｚｅｄ  Ｔａｂｌｅ）の形態にインデックス用テーブルを生成する段階と、（ｄ２）前記再暗号化されたコラムデータをインデックス用テーブルに格納する段階と、を含むことができ、（ｅ）前記格納されたインデックス用テーブルにインデックスを生成する段階は、（ｅ１）前記インデックス用テーブルで、再暗号化されたコラムデータを有するコラムに対するＢ−Ｔｒｅｅインデックスを生成する段階と、（ｅ２）前記再暗号化されたコラムデータが格納されたコラムに対して再暗号化された形態のインデックスを関数基盤インデックス（Ｆｕｎｃｔｉｏｎ  Ｂａｓｅｄ  Ｉｎｄｅｘ）の形態に生成する段階とを含むことができる。
【発明の効果】
【００１１】
本発明によれば、暗号化されているコラムに対するインデックスを生成することができ、かつインデックス検索を行って暗号化されたコラムに対する検索性能を画期的に向上することができる方法を提供することができる。
また本発明によれば、暗号化されたコラムを有しているテーブルに対して暗号化されたコラムに対する条件検索時、一致検索、前方一致検索、範囲検索等を問わず、アプリケーションとの独立性を維持しながら、インデックス検索を実行することができる方法を提供する。
【図面の簡単な説明】
【００１２】
【図１】従来のインデックス検索起動構造に対する例示図である。
【図２】従来のインデックス検索による実行計画に対する例示図である。
【図３】暗号化されたデータの特徴を説明する例示図である。
【図４】暗号化されたデータに対してインデックスが支援されない場合の例示図である。
【図５】本発明の一実施形態において暗号化されたコラムに対するインデックス構築とインデックス検索が可能とする順序図である。
【図６】本発明の他の実施形態において暗号化されたコラムに対するインデックス構築とインデックス検索が可能とする順序図である。
【図７】図５の方法によるインデックス構築後の結果及びインデックス検索手続き例示図である。
【図８】図６の方法によるインデックス構築後の結果及びインデックス検索手続き例示図である。
【図９】インデックス検索が支援されない場合の実行計画に対する例示図である。
【図１０】インデックス検索が支援される場合の実行計画に対する例示図である。
【発明を実施するための形態】
【００１３】
前記本発明による暗号化されたコラムのインデックス構築方法は、望ましくは、図５と図６に示したような二つの手続きのうちのいずれか一つに従う。
【００１４】
図５に示すように、暗号化されたコラムの暗号化されたデータを読み出し（５０１）、読み出したデータを復号化（５０３）する。これは、平文を基準として再暗号化を実行（５０５）するためである。復号化した平文を再暗号化するのには二つの理由がある。一つは平文を基準として整列手順を得るためである。暗号化したデータは整列手順が意味なくなるので、復号化した平文を基準として整列手順を得る。二つは平文を格納しないようにするための再暗号化である。再暗号化されたデータを基準としてインデックスのためのテーブルを生成することによって、平文が格納されて保安性が弱化される恐れをなくすためである。インデックスのために格納されているデータは一般質疑文では内容を見ることができないが、格納装置のブロックを直接読み出すことによって、いつでも内容を見ることができるので、復号化されたあるいはもとの平文をインデックスの基準としてはいけない。したがって、再暗号化過程５０５は必須の段階である。再暗号化過程５０５で確保した整列手順と保安性の確保を根拠として再暗号化されたデータとを利用してインデックス用テーブルを構築する（５０７）。再暗号化されたデータを一つのコラムに、暗号化されたもとのテーブルの列番号をまた一つのコラムにする二つのコラムで構成される一般テーブル、あるいはインデックス構造テーブル（ＩＯＴ:Ｉｎｄｅｘ  Ｏｒｇａｎｉｚｅｄ  Ｔａｂｌｅ）の形態で構築する。望ましい実施形態において、インデックス用テーブルは、再暗号化データともとの暗号化テーブルの列番号とを有する一般テーブルの形態を有することを特徴とする。望ましい実施形態において、インデックス用テーブルは、再暗号化データともとの暗号化テーブルの列番号とを有するＩＯＴ形態で構築されたりするが、検索性能面において一般テーブルの形態を有することが効果があることを確認した。したがって、以後の説明は一般テーブルの形態で再暗号化データともとの暗号化テーブルの列番号とを格納したテーブルを基準とする。
【００１５】
質疑文の実行時、暗号化されたコラムを基準とするインデックス検索を支援するために再暗号化データともとの暗号化テーブルの列番号とを有するテーブルに対して再暗号化データを有するコラムを基準としてインデックスを生成する（５０９）。これは、図２に示すように、質疑文の実行時、インデックス検索（Ｉｎｄｅｘ  Ｒａｎｇｅ  Ｓｃａｎ）２０３が実行されるようにするためである。
【００１６】
望ましい実施形態において、暗号化されたコラム読み出しから再暗号化されたデータを利用したインデックス用テーブル構築（５０１、５０３、５０５、５０７）までを一つの手続きで実行するようになる。この際に用いる技法は外部手続き呼び出しを利用する。図７はインデックス用テーブルの暗号化データでインデックスを構築した結果を示す。
【００１７】
図７に示すように、暗号化されたデータに対するインデックス検索がどのように行われるかは次のとおりである。暗号化されたデータを有するテーブル７０１には暗号化されたデータと列番号がある。再暗号化されたデータを有するテーブル７０３には再暗号化されたデータと暗号化されたテーブル７０１の列番号及び再暗号化されたデータを有するテーブルの列番号が存在する。再暗号化されたテーブル７０３の再暗号化されたコラムに対するインデックス（索引）７０５は再暗号化されたデータと再暗号化されたテーブル７０３の列番号とを有する。
【００１８】
社員番号として検索を実行する場合、再暗号テーブルのインデックスから該当する社員番号を探すようになり、インデックスが構築されているので、インデックス検索を実行することができる。これによって、該当のデータを速く探し出すことができるようになる７０７。再暗号化されたテーブルに対する索引で所望するデータを探せば、該当する再暗号化されたテーブルの列番号をすぐ探すようになる。探された再暗号化されたテーブルの列番号を利用して再暗号化されたテーブルの該当の行をすぐ探すようになれば７０９、１次的なインデックス検索が完了する。再暗号化テーブルで探された行には暗号化されたテーブル７０１の列番号が存在し、この列番号を利用して暗号化されたテーブルの該当の行を探す７１１。暗号化テーブルで探された行には暗号化された社員番号が存在し、暗号化された社員番号を復号化７１３すれば、最終的に所望する結果を得ることができる。
【００１９】
本発明の暗号化されたコラムに対するインデキシングの方法を実現することができるまた他の手続きは図６に示し、これに対する説明は次のとおりである。
【００２０】
図６に示すように、暗号化されたコラムの暗号化されたデータを読み出し（６０１）、読み出したデータを復号化（６０３）する。これは、平文を基準として再暗号化を実行（６０５）するためである。復号化した平文を再暗号化するのに二つの理由がある。一つは平文を基準として整列手順を得るためである。暗号化したデータは整列手順の意味がなくなるので、復号化した平文を基準として整列手順を得る。二つは平文を格納しないようにするための再暗号化である。再暗号化されたデータを基準としてインデックスのためのテーブルを生成することによって、平文が格納されて保安性が弱化される恐れをなくすためである。インデックスのために格納されているデータは一般質疑文では内容を見ることができないが、格納装置のブロックを直接読み出すことによって、いつでも内容を見ることができるので、復号化されたあるいはもとの平文をインデックスの基準としてはいけない。したがって、再暗号化過程（６０５）は必須の段階である。再暗号化過程（６０５）で確保した整列手順と保安性の確保を根拠として再暗号化されたデータを利用して暗号化テーブルに対する関数基盤インデックス（Ｆｕｎｃｔｉｏｎ  Ｂａｓｅｄ  Ｉｎｄｅｘ）を構築する（６０７）。再暗号化されたデータを利用して構築されたＦＢIは再暗号化されたデータがコラムで構成される。データベース内部的に見れば、整列された再暗号化データコラムと暗号化テーブルの列番号からなるインデックスが構築されるのである。質疑文の実行時、暗号化されたコラムを基準とするインデックス検索を支援するために、望ましい実施形態では、再暗号化データともとの暗号化テーブルの列番号とを有するＦＢIに対してインデックス検索が実行され、図２に示すように、質疑文の実行時、インデックス検索２０３が実行される。
【００２１】
望ましい実施形態では、暗号化されたコラム読み出しで再暗号化されたデータを利用したＦＢI構築（６０１、６０３、６０５、６０７）を一つの手続きで実行するようになる。この際に用いる技法は外部手続き呼び出しを利用する。図８はインデックス用テーブルの暗号化データでインデックスを構築した結果を示す。
【００２２】
図８に示すように、暗号化されたデータに対するインデックス検索がどのように行われるかは次のとおりである。暗号化されたデータを有するテーブル８０１には暗号化されたデータと列番号がある。再暗号化されたデータを有するＦＢI８０３は再暗号化されたデータと暗号化されたテーブル８０１の列番号とを有する。
【００２３】
社員番号として検索を行う場合、暗号テーブルのＦＢIから該当する社員番号を探すようになり、インデックスが構築されているので、インデックス検索を実行することができる。これによって、該当のデータを速く探し出すことができるようになる８０５。暗号化されたテーブルに対するＦＢIで所望するデータを探せば、該当する暗号化されたテーブルの列番号をすぐ探すようになる８０７。暗号化テーブルで探された行には暗号化された社員番号が存在し、暗号化された社員番号を復号化８０９すれば、最終的に所望する結果を得ることができる。
【００２４】
本発明のまた他の側面によれば、ドメインインデックスを用いて、データベースオブティマイザがこのような暗号化されたコラムに対するインデックス検索手続きを質疑語の変更せずに実行することができる。暗号化されたテーブルは質疑語上にそのまま現われず、ＶＩＥＷを通じて接近するようになる。これは暗号化されたデータに対する復号化過程が外部手続き呼び出しを利用することができるようにするためである。しかし、質疑語に条件文が含まれる場合、そして条件文内に暗号化されたコラムに対する検索条件が存在する場合には、既存に用いた文章をそのまま使用するようになれば、ＶＩＥＷでの定義のとおりに暗号化されたすべてのコラムを復号化した後に、条件文に定義された検索条件と比較するようになる。したがって、索引検索が可能となるように設定されていても、無条件すべてのコラムを復号化しなければならない。したがって、上述のような状況の場合、すなわち質疑語に条件文が含まれており、条件文内に暗号化されたコラムに対する検索条件が明記されている場合には条件文を自動に再構成して、用意したインデックスを使用することができるようにしなければならない。本発明ではドメインインデックス技法を用いて質疑語を自動変更して構築されたインデックスを用いることができるようにする。
【００２５】
図９は暗号化コラムに対するインデックスが構築されているにもかかわらず、質疑文変更が自動に行われなくて、すべてのデータに対するスキャンが発生することを示す。本発明の望ましい実施形態によって図１０は暗号化されたコラムに対するインデックスが構築されており、質疑文自動変更を適用した以後、ＶＩＥＷを通じる検索がドメインインデキシングを実行していることを示す。したがって、暗号化されたコラムに対するインデックス構築と条件文の自動変更によってアプリケーションとの独立性を保障するとともにインデックス検索を実行することができるので、暗号化する前の検索性能を発揮することができるようになる。
【図１】
0004827969.tif 000002
【図２】
0004827969.tif 000003
【図３】
0004827969.tif 000004
【図４】
0004827969.tif 000005
【図５】
0004827969.tif 000006
【図６】
0004827969.tif 000007
【図７】
0004827969.tif 000008
【図８】
0004827969.tif 000009
【図９】
0004827969.tif 000010
【図１０】
0004827969.tif 000011