(57)【要約】【課題】各要素を完全に復号することなく、暗号化された複数の表を自然結合することを可能とする暗号化データベース管理システム等を提供する。【解決手段】外部から入力される表の特定のラベルによって示される列のデータを暗号鍵および群の生成子とによって暗号化して出力する列暗号化部２１と、暗号鍵とラベルとからラベル内鍵を生成して出力するラベル内射影要求部２２と、暗号鍵とラベルとラベル内鍵からラベル間射影鍵を生成するラベル間射影要求部２３とを備えるクライアント端末１０と、暗号化された表の特定のラベルの列のデータにラベルとラベル内鍵とを作用させてラベル内比較値を生成するラベル内射影部６１と、ラベル内比較値にラベル間射影鍵を作用させてラベル間比較値を生成するラベル間射影部６２と、ラベル間比較値で自然結合を実行する暗号化表自然結合部６３とを備える暗号化データベースサーバ５０とが相互に接続されて構成される。【選択図】図１
2012081450.tif 000002
【特許請求の範囲】
【請求項１】
クライアント端末と暗号化データベースサーバとが相互に接続されて構成される暗号化データベースシステムであって、
前記クライアント端末が、
暗号鍵および当該暗号鍵の要部をなす第１および第２の群の生成子を予め記憶する記憶手段と、
外部から入力される第１の表の第１のラベルによって示される列のデータを前記暗号鍵および前記第１の群の生成子とによって暗号化すると共に、同じく外部から入力される第２の表の第２のラベルによって示される列のデータを前記暗号鍵および前記第２の群の生成子によって暗号化し、これら暗号化された第１および第２の表を外部に出力する列暗号化部と、
前記暗号鍵と前記第１のラベルとから第１のラベル内鍵を生成すると共に、前記暗号鍵と前記第２のラベルとから第２のラベル内鍵を生成し、これら第１および第２のラベル内鍵を外部に出力するラベル内射影要求部と、
前記暗号鍵と前記第１の群の生成子と前記第１および第２のラベル内鍵とから第１のラベル間射影鍵を生成すると共に、前記暗号鍵と前記第２の群の生成子と前記第１および第２のラベル内鍵とから第２のラベル間射影鍵を生成し、これら第１および第２のラベル間射影鍵を外部に出力するラベル間射影要求部とを備え、
前記暗号化データベースサーバが、
前記暗号化された第１および第２の表を受信して記憶すると共に、前記第１および第２のラベル内鍵と前記第１および第２のラベル間射影鍵とを受信するデータ受信部と、
前記暗号化された第１の表の第１のラベルによって示される列のデータに前記第１のラベルと前記第１のラベル内鍵とを作用させて第１のラベル内比較値を生成すると共に、前記暗号化された第２の表の第２のラベルによって示される列のデータに前記第２のラベルと前記第２のラベル内鍵とを作用させて第２のラベル内比較値を生成するラベル内射影部と、
前記第１のラベル内比較値に前記第１のラベル間射影鍵を作用させて第１のラベル間比較値を生成すると共に、前記第２のラベル内比較値に前記第２のラベル間射影鍵を作用させて第２のラベル間比較値を生成するラベル間射影部と、
前記出力された第１および第２のラベル間比較値を利用して、前記暗号化された第１および第２の表に対する自然結合を実行する暗号化表自然結合部とを備えることを特徴とする暗号化データベースシステム。
【請求項２】
前記列暗号化部が、
前記秘密鍵と前記ラベルとからラベル間鍵を生成するラベル間鍵生成機能と、
前記群の生成子と前記ラベル間射影鍵とから第一ラベル公開鍵を生成する第一ラベル公開鍵生成機能と、
前記秘密鍵と前記列のデータとから単純比較値を生成する比較値生成機能と、
前記第一ラベル公開鍵と前記単純比較値と前記ラベル間鍵とからラベル内比較値を生成する隠蔽比較値生成機能と、
前記秘密鍵と前記ラベルとから前記ラベル内鍵を生成するラベル内鍵生成機能と、
前記ラベル内鍵によって前記ラベル内比較値を暗号化すると同時に前記秘密鍵によって前記列のデータを暗号化する暗号化機能とを備えることを特徴とする、請求項１に記載の暗号化データベースシステム。
【請求項３】
前記ラベル内射影要求部が、前記秘密鍵と前記第１のラベルとから前記ラベル内鍵を生成するラベル内鍵生成機能を備えると共に、
前記ラベル間射影要求部が、
前記秘密鍵と前記第２のラベルとから前記ラベル間鍵を生成するラベル間射影鍵生成機能と、
前記群の生成子と前記ラベル間鍵とから第二ラベル公開鍵を生成する第二ラベル公開鍵生成機能と、
前記第１および第２のラベルと前記秘密鍵とから補間値を生成する補間値生成機能と、
前記第二ラベル公開鍵と前記補間値とからラベル間射影鍵を生成する射影鍵生成機能とを備えることを特徴とする、請求項１に記載の暗号化データベースシステム。
【請求項４】
前記ラベル内射影部が、
前記ラベル内鍵と前記暗号化された第１および第２の表の暗号化された列データから第１および第２のラベル内比較値を生成するラベル内比較値生成機能を備えると共に、
前記ラベル間射影部が、
前記ラベル間射影鍵と前記第１および第２のラベル内比較値とを双線形写像の入力として、その出力を各々前記第１および第２のラベル間比較値として出力するラベル間比較値生成機能を備えることを特徴とする、請求項１に記載の暗号化データベースシステム。
【請求項５】
暗号化データベースサーバと相互に接続されて暗号化データベースシステムを構成されるクライアント端末であって、
暗号鍵および当該暗号鍵の要部をなす第１および第２の群の生成子を予め記憶する記憶手段と、
外部から入力される第１の表の第１のラベルによって示される列のデータを前記暗号鍵および前記第１の群の生成子とによって暗号化すると共に、同じく外部から入力される第２の表の第２のラベルによって示される列のデータを前記暗号鍵および前記第２の群の生成子によって暗号化し、これら暗号化された第１および第２の表を外部に出力する列暗号化部と、
前記暗号鍵と前記第１のラベルとから第１のラベル内鍵を生成すると共に、前記暗号鍵と前記第２のラベルとから第２のラベル内鍵を生成し、これら第１および第２のラベル内鍵を外部に出力するラベル内射影要求部と、
前記暗号鍵と前記第１の群の生成子と前記第１および第２のラベル内鍵とから第１のラベル間射影鍵を生成すると共に、前記暗号鍵と前記第２の群の生成子と前記第１および第２のラベル内鍵とから第２のラベル間射影鍵を生成し、これら第１および第２のラベル間射影鍵を外部に出力するラベル間射影要求部とを備えることを特徴とするクライアント端末。
【請求項６】
クライアント端末と相互に接続されて暗号化データベースシステムを構成される暗号化データベースサーバであって、
前記クライアント端末から送信される第１のラベルによって示される列が暗号化された第１の表および第２のラベルによって示される列が暗号化された第２の表を受信して記憶すると共に、前記クライアント端末から送信される第１および第２のラベル内鍵と前記第１および第２のラベル間射影鍵とを受信するデータ受信部と、
前記暗号化された第１の表の第１のラベルによって示される列のデータに前記第１のラベルと前記第１のラベル内鍵とを作用させて第１のラベル内比較値を生成すると共に、前記暗号化された第２の表の第２のラベルによって示される列のデータに前記第２のラベルと前記第２のラベル内鍵とを作用させて第２のラベル内比較値を生成するラベル内射影部と、
前記第１のラベル内比較値に前記第１のラベル間射影鍵を作用させて第１のラベル間比較値を生成すると共に、前記第２のラベル内比較値に前記第２のラベル間射影鍵を作用させて第２のラベル間比較値を生成するラベル間射影部と、
前記出力された第１および第２のラベル間比較値を利用して、前記暗号化された第１および第２の表に対する自然結合を実行する暗号化表自然結合部とを備えることを特徴とする暗号化データベースサーバ。
【請求項７】
クライアント端末と暗号化データベースサーバとが相互に接続されて構成される暗号化データベースシステムにあって、
外部から入力される第１の表の第１のラベルによって示される列のデータを前記クライアント端末の列暗号化部があらかじめ記憶された暗号鍵および当該暗号鍵の要部をなす第１の群の生成子とによって暗号化して外部に出力し、
外部から入力される第２の表の第２のラベルによって示される列のデータを前記クライアント端末の列暗号化部が前記暗号鍵およびあらかじめ記憶された前記暗号鍵の要部をなす第２の群の生成子とによって暗号化して外部に出力し、
前記暗号鍵と前記第１のラベルとから前記クライアント端末のラベル内射影要求部が第１のラベル内鍵を生成して外部に出力し、
前記暗号鍵と前記第２のラベルとから前記クライアント端末のラベル内射影要求部が第２のラベル内鍵を生成して外部に出力し、
前記暗号鍵と前記第１の群の生成子と、前記第１および第２のラベル内鍵から前記クライアント端末のラベル間射影要求部が第１のラベル間射影鍵を生成して外部に出力し、
前記暗号鍵と前記第２の群の生成子と、前記第１および第２のラベル内鍵から前記クライアント端末のラベル間射影要求部が第２のラベル間射影鍵を生成して外部に出力し、
前記暗号化された第１および第２の表、前記第１および第２のラベル内鍵と前記第１および第２のラベル間射影鍵を前記暗号化データベースサーバのデータ受信部が受信し、
前記暗号化された第１の表の第１のラベルによって示される列のデータに前記暗号化データベースサーバのラベル内射影部が前記第１のラベルと前記第１のラベル内鍵とを作用させて第１のラベル内比較値を生成し、
前記暗号化された第２の表の第２のラベルによって示される列のデータに前記暗号化データベースサーバのラベル内射影部が前記第２のラベルと前記第２のラベル内鍵とを作用させて第２のラベル内比較値を生成し、
前記第１のラベル内比較値に前記暗号化データベースサーバのラベル間射影部が前記第１のラベル間射影鍵を作用させて第１のラベル間比較値を生成し、
前記第２のラベル内比較値に前記暗号化データベースサーバのラベル間射影部が前記第２のラベル間射影鍵を作用させて第２のラベル間比較値を生成し、
前記第１および第２のラベル間比較値を利用して、前記暗号化データベースサーバの暗号化表自然結合部が前記暗号化された第１および第２の表に対する自然結合を実行することを特徴とする暗号化表の自然結合方法。
【請求項８】
クライアント端末と暗号化データベースサーバとが相互に接続されて構成される暗号化データベースシステムにあって、
前記クライアント端末が備えているコンピュータに、
外部から入力される第１の表の第１のラベルによって示される列のデータをあらかじめ記憶された暗号鍵および当該暗号鍵の要部をなす第１の群の生成子とによって暗号化して外部に出力する手順、
外部から入力される第２の表の第２のラベルによって示される列のデータを前記暗号鍵およびあらかじめ記憶された前記暗号鍵の要部をなす第２の群の生成子とによって暗号化して外部に出力する手順、
前記暗号鍵と前記第１のラベルとから第１のラベル内鍵を生成して外部に出力する手順、
前記暗号鍵と前記第２のラベルとから第２のラベル内鍵を生成して外部に出力する手順、
前記暗号鍵と前記第１の群の生成子と、前記第１および第２のラベル内鍵から第１のラベル間射影鍵を生成して外部に出力する手順、
および前記暗号鍵と前記第２の群の生成子と、前記第１および第２のラベル内鍵から第２のラベル間射影鍵を生成して外部に出力する手順
を実行させることを特徴とする暗号化表の自然結合プログラム。
【請求項９】
クライアント端末と暗号化データベースサーバとが相互に接続されて構成される暗号化データベースシステムにあって、
暗号化データベースサーバが備えているコンピュータに、
前記暗号化された第１および第２の表、前記第１および第２のラベル内鍵と前記第１および第２のラベル間射影鍵を受信する手順、
前記暗号化された第１の表の第１のラベルによって示される列のデータに前記第１のラベルと前記第１のラベル内鍵とを作用させて第１のラベル内比較値を生成する手順、
前記暗号化された第２の表の第２のラベルによって示される列のデータに前記第２のラベルと前記第２のラベル内鍵とを作用させて第２のラベル内比較値を生成する手順、
前記第１のラベル内比較値に前記第１のラベル間射影鍵を作用させて第１のラベル間比較値を生成する手順、
前記第２のラベル内比較値に前記第２のラベル間射影鍵を作用させて第２のラベル間比較値を生成する手順、
および前記第１および第２のラベル間比較値を利用して、前記暗号化された第１および第２の表に対する自然結合を実行する手順
を実行させることを特徴とする暗号化表の自然結合プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は暗号化データベース管理システム、クライアントおよびサーバ、自然結合方法およびプログラムに関し、特に、暗号化されたデータベースの複数の表を、データの各要素を完全に復号化することなしに自然結合することを可能とする暗号化データベース管理システム等に関する。
【背景技術】
【０００２】
企業などにおける業務の根幹がコンピュータ化されることによって、ほとんどの企業が業務で使用する大量のデータを収容する大規模データベースを持つようになっている。これらのデータは、業務上重要なデータであり、また個人情報保護の観点からも、外部に対して漏洩することは絶対にあってはならない。このため、そのような大規模データベースでは、収容されるデータが暗号化されていることが多い。【０００３】
データベースは多くの表（テーブル）の集合体として捉えることができる。ここでいう「自然結合」とは、２つの表で同一のデータを示す列がある場合に、それらの列を統一することによって、これら２つの表を１つに結合することをいう。以下、非特許文献１などに記載されている、収容されているデータが暗号化されたデータベース（以後暗号化データベースという）で２つの表を自然結合するために行われている一般的な手法について説明する。【０００４】
図１８は、暗号化データベースについての一般的な技術に係る暗号化データベース管理システム９０１の構成について示す説明図である。暗号化データベース管理システム９０１は、暗号化データベースクライアント９１０と暗号化データベースサーバ９５０とが、ＬＡＮ（Local Area Network）などを介して相互に接続されて構成される。【０００５】
暗号化データベースクライアント９１０は、一般的なコンピュータ装置としての構成を備える。即ち、暗号化データベースクライアント９１０は、コンピュータプログラムを実行する主体となる主演算制御手段（ＣＰＵ: Central Processing Unit）９１１と、データを記憶する記憶手段９１２と、ユーザからの操作を受け付ける入力手段９１３と、ユーザに処理結果を提示する出力手段９１４と、他のコンピュータとのデータ通信を行う通信手段９１５とを備える。【０００６】
主演算制御手段９１１では、ユーザからの操作命令に応じて、列暗号化部９２１、および暗号化表自然結合要求部９２２が、各々コンピュータプログラムとして後述するそれぞれの機能を実行されるように構成されている。また、記憶手段９１２には以後に説明する処理で使用する各々別個の秘密鍵ｋｅｙ９３１ａ、秘密鍵ｋｅｙ’９３１ｂが記憶されている。そして入力手段９１３には、暗号化および自然結合の対象となる表Ａ９３２および表Ｂ９３３が入力される。【０００７】
暗号化データベースサーバ９５０もまた、一般的なコンピュータ装置としての構成を備える。即ち、暗号化データベースサーバ９５０は、コンピュータプログラムを実行する主体となる主演算制御手段９７１と、データを記憶する記憶手段９５２と、他のコンピュータとのデータ通信を行う通信手段９５３とを備える。【０００８】
主演算制御手段９７１では、暗号化データベースクライアント９１０からの操作命令に応じて、暗号化表自然結合部９６３と、データ受信部９６４とがコンピュータプログラムとして後述するそれぞれの機能を実行されるように構成されている。【０００９】
また、記憶手段９５２にはデータ受信部９６４が暗号化データベースクライアント９１０から受信した、各々表Ａ９３３および表Ｂ９３４を暗号化した暗号化表Ａ９４１および暗号化表Ｂ９４２、および暗号化データベースクライアント９１０の秘密鍵ｋｅｙ９３１ａおよび秘密鍵ｋｅｙ’９３１ｂに各々対応する公開鍵ｐｋｅｙ９７２ａおよび公開鍵ｐｋｅｙ’９７２ｂが記憶される。【００１０】
図１９は、図１８に示した列暗号化部９２１の機能についてより詳しく説明する説明図である。列暗号化部９２１は、暗号化機能９２１ａと表更新機能９２１ｂとを備える。暗号化機能９２１ａは、表Ａ９３２の特定の列（この列を列ａという）を、秘密鍵ｋｅｙ９３１ａを利用して暗号化して暗号文９４３を出力する。表更新機能９２１ｂは、この暗号文９４３で列ａの各データを置き換えたものを暗号化表Ａ９４１として出力して暗号化データベースサーバ９５０に送信する。暗号化データベースサーバ９５０では、データ受信部９６４がこれらを記憶手段９５３に記憶する。【００１１】
列暗号化部９２１は同様に、秘密鍵ｋｅｙ’９３１ｂを利用して、表Ｂ９３３の特定の列（この列を列ｂという）を暗号文で置き換えた暗号化表Ｂ９４２も出力して記憶手段９１２に記憶する。なお、暗号化表Ａ９４１の表識別子９３２ａ＝「Ａ」、列ａの列識別子９３２ｃ＝「ａ」、暗号化表Ｂ９４２の表識別子９３３ａ＝「Ｂ」、および列ｂの列識別子９３３ｃ＝「ｂ」は、各々暗号化の対象ではないので、暗号化表Ａ９４１および暗号化表Ｂ９４２に付随して記憶手段９５３に記憶されると同時に、暗号化データベースクライアント９１０の記憶手段９１２にも記憶される。【００１２】
図２０は、図１８に示した暗号化表自然結合要求部９２２の機能についてより詳しく説明する説明図である。暗号化表自然結合要求部９２２は、暗号化表Ａ９４１の表識別子９３２ａ＝「Ａ」、列ａの列識別子９３２ｃ＝「ａ」、暗号化表Ｂ９４２の表識別子９３３ａ＝「Ｂ」、および列ｂの列識別子９３３ｃ＝「ｂ」から、列ａと列ｂをキーとして暗号化表Ａ９４１および暗号化表Ｂ９４２を自然結合することを命令する自然結合要求文９７１を発行して暗号化データベースサーバ９５０に送信する。暗号化データベースサーバ９５０では、これを受けたデータ受信部９６４が暗号化表自然結合部９６３を自然結合要求文９７１に従って動作させる。【００１３】
図２１は、図１８に示した暗号化表自然結合部９６３の機能についてより詳しく説明する説明図である。暗号化表自然結合部９６３は、復号化機能９６３ａ、自然結合機能９６３ｂ、および再暗号化機能９６３ｃを備える。復号化機能９６３ａは、暗号化表Ａ９４１および暗号化表Ｂ９４２で暗号化された列ａおよび列ｂのデータを、秘密鍵ｋｅｙ９３１ａおよび秘密鍵ｋｅｙ’９３１ｂに各々対応する公開鍵ｐｋｅｙ９７２ａおよび公開鍵ｐｋｅｙ’９７２ｂを利用して復号化して、暗号化される前の表Ａ９３２および表Ｂ９３３に戻す。【００１４】
自然結合機能９６３ｂは、自然結合要求文９７１で命令された通りに、表Ａ９３２の列ａと表Ｂ９３３の列ｂとをキーとして表Ａ９３２および表Ｂ９３３を自然結合する。再暗号化機能９６３ｃは、結合された表Ａ９３２および表Ｂ９３３のキーとなった列ａ（列ｂ）を再暗号化して、得られた暗号化表Ａ×Ｂ９８１を暗号化データベースクライアント９１０に返送する。再暗号化には、ここでは公開鍵ｐｋｅｙ９７２ａを利用しているが、もちろん他の暗号鍵でもよい。【００１５】
図２２は、図１８に示した暗号化データベース管理装置９１０で、暗号化される前の表Ａ９３２の一例を示す説明図である。図２２で示されている例では、表９３２の第１列９３２ａを「ユーザ名」、第２列９３２ｂを「クレジットカード番号」として、各ユーザ名に対応するカード番号の対応関係を示している。【００１６】
暗号化データベース管理装置９１０は、秘匿すべきデータに対して秘密鍵ｋｅｙを利用し、ハッシュ関数などのような暗号化関数ｅｎｃによって対象データを暗号化する。図２３は、図１８に示した列暗号化部９２１が、図２２に示した表Ａ９３２を暗号化した状態の暗号化表Ａ９４１を示す説明図である。ここでは、第２列９３２ｂ「クレジットカード番号」を秘匿すべき対象とし、平文ｍを暗号鍵で暗号化したデータをｅｎｃ（ｋｅｙ、ｍ）と表している。【００１７】
秘密鍵ｋｅｙは各々の表に対して固有に与えられる。暗号化は確定的なものであるので、平文ｍと秘密鍵ｋｅｙが決定されれば、ｅｎｃ（ｋｅｙ、ｍ）の値も一意に決定される。ただし、暗号化関数ｅｎｃはハッシュ関数などのような不可逆関数である方が望ましい。【００１８】
このようにすれば、図２２に示した暗号化表Ａ９４１が外部に漏洩したとしても、秘密鍵ｋｅｙが漏洩しなければ、クレジットカード番号が漏洩することはない。また、秘密鍵ｋｅｙを持つ正当なユーザであれば、クレジットカード番号によってこの表を検索することができる。たとえば、クレジットカード番号「１２３３４」を持つユーザを検索する場合には、ｅｎｃ（ｋｅｙ、１２３３４）で検索すればよい。【００１９】
これに関連する技術文献として、次の各々がある。特許文献１には、暗号化データの送受信で、ユーザが復号鍵を紛失してもその復号鍵を回復できる鍵回復情報を持った暗号化情報を送受信できる暗号化復号化装置について記載されている。特許文献２には、２つのテーブルを結合したテーブルを高速に検索することを可能とするという自然結合高速演算方法について記載されている。【００２０】
特許文献３には、データベースの等結合にかかる計算コストを下げることが可能であるという結合サイズ評価方法について記載されている。特許文献４には、ユーザが正しいＳＱＬ文を生成できるようユーザをガイドするというデータベース問い合わせシステムについて記載されている。特許文献５には、複数の暗号文に対して証明のための情報系列を作成することによって、秘密情報を開示せずに複数の暗号文の平文同一性を証明するという暗号システムについて記載されている。特許文献６には、作成した暗号鍵を別の鍵でさらに暗号化することによって、稼動中に暗号鍵や暗号化アルゴリズムの変更を可能とするデータベースシステムについて記載されている。【００２１】
非特許文献１には、前述した暗号化データベースについての既存の技術が記載されている。非特許文献２には、表の自然結合を含めたデータベースについての一般的な内容について記載されている。
【先行技術文献】
【特許文献】
【００２２】
【特許文献１】特開２０００−２６７５６５号公報
【特許文献２】特開平０２−１３２５５９号公報
【特許文献３】特開平１０−１２４５３３号公報
【特許文献４】特表平０９−５１０５６５号公報
【特許文献５】特開平１１−０６５４４１号公報
【特許文献６】特開平１１−１４３７８０号公報
【非特許文献】
【００２３】
【非特許文献１】PaulNeedham他、「OracleAdvanced Securityテクニカル・ホワイト・ペーパー」、日本オラクル株式会社、２００７年６月、［平成２２年９月３日検索］、インターネット＜URL：http://otndnld.oracle.co.jp/products/database/oracle11g/pdf/twp_security_db_advancedsecurity_11gR1.pdf＞
【非特許文献２】北川博之、「データベースシステム」、昭晃堂、１９９６年７月
【発明の概要】
【発明が解決しようとする課題】
【００２４】
データベースは、大量のデータの中から単に必要なデータを抽出するだけではなく、ＳＱＬ（Structured Query Language）コマンドなどによって複数の表を結合することが頻繁に行われる。暗号化されたデータに対しても、この表を自然結合する演算を、セキュリティを損なうことなく容易に行えることが当然望まれる。【００２５】
しかしながら、前述のように暗号鍵ｋｅｙは各々の表に対して固有に与えられるものであるので、異なる表には異なる暗号鍵が与えられることになる。従って、異なる表にある同一の値を持つデータは、異なる暗号鍵によって暗号化されると異なるデータとなる。このため、図１８で示した暗号化データベース管理システム９０１で、列暗号化部９２１によって暗号化されたデータをキーとして異なる表を結合する演算を行うためには、前述したように該データを一度復号化してから結合する必要がある。【００２６】
このことをより具体的に説明する。図２４は、図１８で示した暗号化データベース管理装置９０１で、複数の暗号化表Ａ９４１および暗号化表Ｂ９４２に対して自然結合の演算を行う場合の例についての説明図である。図２４（ａ）は暗号化表Ａ９４１を、図２４（ｂ）は暗号化表Ｂ９４２を、図２４（ｃ）は表Ａ×Ｂ９８１について各々示す。暗号化表Ａ９４１は、第１列９３２ａを「ユーザ名」、第２列９３２ｂを「クレジットカード番号」として、各ユーザ名に対応するカード番号の対応関係を示す。そして第２列９４１ｂは、秘密鍵ｋｅｙ９３１ａによって暗号化されている。暗号化表Ｂ９４２は、第１列９３３ａを「クレジットカード番号」、第２列９３３ｂを「クレジットカード有効期限」として、各カードの有効期限について示している。そして第１列９４２ａは、秘密鍵ｋｅｙ’９３１ｂによって暗号化されている。【００２７】
ここで、該データベースの管理者が「ユーザ名」と「クレジットカード有効期限」との対応について知りたい場合には、暗号化表自然結合要求部９２２によって、暗号化表Ａ９４１および暗号化表Ｂ９４２を列９４１ｂおよび９４２ａの「クレジットカード番号」をキーとして自然結合するよう自然結合命令文９７１を発行する。この処理によって、第１列９８１ａ「ユーザ名」、第２列９８１ｂ「クレジットカード番号」、第３列９８１ｃ「クレジットカード有効期限」という３列を持つ暗号化表Ａ×Ｂ９８１が得られることが期待される。【００２８】
しかしながら、暗号化表Ａ９４１および暗号化表Ｂ９４２は、各々異なる暗号鍵によって暗号化されているので、平文の段階では同一のデータであっても、異なる暗号鍵によって異なるデータとなる。従って、暗号化表自然結合部９６３は、暗号化されたデータをそのまま自然結合のキーとすることはできない。この処理を行うためには、図２１に示した復号化機能９６３ａによって列９４１ｂおよび９４２ａを復号化する処理が必要となる。【００２９】
この処理には、暗号化表Ａ９４１および暗号化表Ｂ９４２に対する秘密鍵ｋｅｙ９３１ａおよび秘密鍵ｋｅｙ’９３１ｂに各々対応する公開鍵ｐｋｅｙ９７２ａおよび公開鍵ｐｋｅｙ’９７２ｂが必要である。これらの公開鍵を利用すれば、この処理を行うために列９４１ｂおよび９４２ａを復号化することは可能ではある。しかしながら、この処理を行っている間は復号化された平文のデータが装置に記憶されることになるので、その間にその平文のデータが漏洩する危険性を否定することはできない。【００３０】
図２５は、上述の問題を解決するため、ｋｅｙ＝ｋｅｙ’、即ち同一の暗号鍵ｋｅｙを利用して暗号化された暗号化表Ｃ１００１および暗号化表Ｄ１００２に対して自然結合の演算を行う例についての説明図である。図２５（ａ）は暗号化表Ｃ１００１を、図２５（ｂ）は暗号化表Ｄ１００２を、図２５（ｃ）は暗号化表Ｃ×Ｄ１００３について各々示す。この暗号鍵ｋｅｙは、公開鍵方式のものであっても、共通鍵方式のものであってもよい。【００３１】
暗号化表Ｃ１００１は、第１列１００１ａを「ユーザ名」、第２列１００１ｂを「クレジットカード番号」として、各ユーザ名に対応するカード番号の対応関係を示す。そして第２列１００１ｂは、暗号鍵ｋｅｙによって暗号化されている。暗号化表Ｄ１００２は、第１列１００２ａを「クレジットカード番号」、第２列１００２ｂを「ブラックリスト登録日」として、各カードの有効期限について示している。そして第１列１００２ａは、表Ｃ１００１と同一の暗号鍵ｋｅｙによって暗号化されている。【００３２】
暗号鍵ｋｅｙが同一であれば、暗号化表Ｃ１００１の第２列１００１ｂと暗号化表Ｄ１００２の第１列１００２ａとで、暗号化前のデータが同一であれば、暗号化された後も同一データとなるので、復号化機能９６３ａを利用しなくて暗号化表Ｃ１００１および暗号化表Ｄ１００２をそのまま自然結合して暗号化表Ｃ×Ｄ１００３を得ることが可能である。しかしながら、このことは同時に、暗号鍵ｋｅｙを持たない不当なユーザであっても、暗号化されたデータをキーとして暗号化表Ｃ１００１および暗号化表Ｄ１００２を自然結合して暗号化表Ｃ×Ｄ１００３を得る処理ができてしまうことを意味する。このようなことは、暗号化データベースの管理において、望ましいことではない。【００３３】
即ち、正当な暗号鍵を持つユーザであれば、暗号化されたデータを復号化する処理を行わなくとも、暗号化されたデータをキーとして複数の表を自然結合することが可能で、かつ正当な暗号鍵を持たない不当なユーザには暗号化されたデータをキーとする自然結合ができない、そのような特徴を持つ暗号化データベース管理装置が求められている。かつ、データベースは膨大な量のデータを扱うものであるので、この処理を行うことによる計算量の大幅な増大も抑制されなければならない。【００３４】
前述の各特許文献および非特許文献は、いずれもこの問題を解決することを目的とはしていないので、当然ながらこの問題を解決しうる技術は記載されていない。【００３５】
本発明の目的は、暗号化されたデータベースの複数の表を、データの各要素を復号化する処理を行わず、かつ計算量を大幅に増大させることもなく、暗号化されたデータをキーとして自然結合することを可能とする暗号化データベース管理システム、クライアントおよびサーバ、自然結合方法およびプログラムを提供することにある。
【課題を解決するための手段】
【００３６】
上記目的を達成するため、本発明に係る暗号化データベース管理システムは、クライアント端末と暗号化データベースサーバとが相互に接続されて構成される暗号化データベースシステムであって、クライアント端末が、暗号鍵および当該暗号鍵の要部をなす第１および第２の群の生成子を予め記憶する記憶手段と、外部から入力される第１の表の第１のラベルによって示される列のデータを暗号鍵および第１の群の生成子とによって暗号化すると共に、同じく外部から入力される第２の表の第２のラベルによって示される列のデータを暗号鍵および第２の群の生成子によって暗号化し、これら暗号化された第１および第２の表を外部に出力する列暗号化部と、暗号鍵と第１のラベルとから第１のラベル内鍵を生成すると共に、暗号鍵と第２のラベルとから第２のラベル内鍵を生成し、これら第１および第２のラベル内鍵を外部に出力するラベル内射影要求部と、暗号鍵と第１の群の生成子と第１および第２のラベル内鍵とから第１のラベル間射影鍵を生成すると共に、暗号鍵と第２の群の生成子と第１および第２のラベル内鍵とから第２のラベル間射影鍵を生成し、これら第１および第２のラベル間射影鍵を外部に出力するラベル間射影要求部とを備え、
暗号化データベースサーバが、暗号化された第１および第２の表を受信して記憶すると共に、第１および第２のラベル内鍵と第１および第２のラベル間射影鍵とを受信するデータ受信部と、暗号化された第１の表の第１のラベルによって示される列のデータに第１のラベルと第１のラベル内鍵とを作用させて第１のラベル内比較値を生成すると共に、暗号化された第２の表の第２のラベルによって示される列のデータに第２のラベルと第２のラベル内鍵とを作用させて第２のラベル内比較値を生成するラベル内射影部と、第１のラベル内比較値に第１のラベル間射影鍵を作用させて第１のラベル間比較値を生成すると共に、第２のラベル内比較値に第２のラベル間射影鍵を作用させて第２のラベル間比較値を生成するラベル間射影部と、出力された第１および第２のラベル間比較値を利用して、暗号化された第１および第２の表に対する自然結合を実行する暗号化表自然結合部とを備えることを特徴とする。【００３７】
上記目的を達成するため、本発明に係るクライアント端末は、暗号化データベースサーバと相互に接続されて暗号化データベースシステムを構成されるクライアント端末であって、暗号鍵および当該暗号鍵の要部をなす第１および第２の群の生成子を予め記憶する記憶手段と、外部から入力される第１の表の第１のラベルによって示される列のデータを暗号鍵および第１の群の生成子とによって暗号化すると共に、同じく外部から入力される第２の表の第２のラベルによって示される列のデータを暗号鍵および第２の群の生成子によって暗号化し、これら暗号化された第１および第２の表を外部に出力する列暗号化部と、暗号鍵と第１のラベルとから第１のラベル内鍵を生成すると共に、暗号鍵と第２のラベルとから第２のラベル内鍵を生成し、これら第１および第２のラベル内鍵を外部に出力するラベル内射影要求部と、暗号鍵と第１の群の生成子と第１および第２のラベル内鍵とから第１のラベル間射影鍵を生成すると共に、暗号鍵と第２の群の生成子と第１および第２のラベル内鍵とから第２のラベル間射影鍵を生成し、これら第１および第２のラベル間射影鍵を外部に出力するラベル間射影要求部とを備えることを特徴とする。【００３８】
上記目的を達成するため、本発明に係る暗号化データベースサーバは、クライアント端末と相互に接続されて暗号化データベースシステムを構成される暗号化データベースサーバであって、クライアント端末から送信される第１のラベルによって示される列が暗号化された第１の表および第２のラベルによって示される列が暗号化された第２の表を受信して記憶すると共に、クライアント端末から送信される第１および第２のラベル内鍵と第１および第２のラベル間射影鍵とを受信するデータ受信部と、暗号化された第１の表の第１のラベルによって示される列のデータに第１のラベルと第１のラベル内鍵とを作用させて第１のラベル内比較値を生成すると共に、暗号化された第２の表の第２のラベルによって示される列のデータに第２のラベルと第２のラベル内鍵とを作用させて第２のラベル内比較値を生成するラベル内射影部と、第１のラベル内比較値に第１のラベル間射影鍵を作用させて第１のラベル間比較値を生成すると共に、第２のラベル内比較値に第２のラベル間射影鍵を作用させて第２のラベル間比較値を生成するラベル間射影部と、出力された第１および第２のラベル間比較値を利用して、暗号化された第１および第２の表に対する自然結合を実行する暗号化表自然結合部とを備えることを特徴とする。【００３９】
上記目的を達成するため、本発明に係る自然結合方法は、クライアント端末と暗号化データベースサーバとが相互に接続されて構成される暗号化データベースシステムにあって、外部から入力される第１の表の第１のラベルによって示される列のデータをクライアント端末の列暗号化部があらかじめ記憶された暗号鍵および当該暗号鍵の要部をなす第１の群の生成子とによって暗号化して外部に出力し、外部から入力される第２の表の第２のラベルによって示される列のデータをクライアント端末の列暗号化部が暗号鍵および暗号鍵の要部をなすあらかじめ記憶された第２の群の生成子とによって暗号化して外部に出力し、暗号鍵と第１のラベルとからクライアント端末のラベル内射影要求部が第１のラベル内鍵を生成して外部に出力し、暗号鍵と第２のラベルとからクライアント端末のラベル内射影要求部が第２のラベル内鍵を生成して外部に出力し、暗号鍵と第１の群の生成子と、第１および第２のラベル内鍵からクライアント端末のラベル間射影要求部が第１のラベル間射影鍵を生成して外部に出力し、暗号鍵と第２の群の生成子と、第１および第２のラベル内鍵からクライアント端末のラベル間射影要求部が第２のラベル間射影鍵を生成して外部に出力し、暗号化された第１および第２の表、第１および第２のラベル内鍵と第１および第２のラベル間射影鍵を暗号化データベースサーバのデータ受信部が受信し、暗号化された第１の表の第１のラベルによって示される列のデータに暗号化データベースサーバのラベル内射影部が第１のラベルと第１のラベル内鍵とを作用させて第１のラベル内比較値を生成し、暗号化された第２の表の第２のラベルによって示される列のデータに暗号化データベースサーバのラベル内射影部が第２のラベルと第２のラベル内鍵とを作用させて第２のラベル内比較値を生成し、第１のラベル内比較値に暗号化データベースサーバのラベル間射影部が第１のラベル間射影鍵を作用させて第１のラベル間比較値を生成し、第２のラベル内比較値に暗号化データベースサーバのラベル間射影部が第２のラベル間射影鍵を作用させて第２のラベル間比較値を生成し、第１および第２のラベル間比較値を利用して、暗号化データベースサーバの暗号化表自然結合部が暗号化された第１および第２の表に対する自然結合を実行することを特徴とする。【００４０】
上記目的を達成するため、本発明に係る自然結合プログラムは、クライアント端末と暗号化データベースサーバとが相互に接続されて構成される暗号化データベースシステムにあって、クライアント端末が備えているコンピュータに、外部から入力される第１の表の第１のラベルによって示される列のデータをあらかじめ記憶された暗号鍵および当該暗号鍵の要部をなす第１の群の生成子とによって暗号化して外部に出力する手順、外部から入力される第２の表の第２のラベルによって示される列のデータを暗号鍵およびあらかじめ記憶された暗号鍵の要部をなす第２の群の生成子とによって暗号化して外部に出力する手順、暗号鍵と第１のラベルとから第１のラベル内鍵を生成して外部に出力する手順、暗号鍵と第２のラベルとから第２のラベル内鍵を生成して外部に出力する手順、暗号鍵と第１の群の生成子と、第１および第２のラベル内鍵から第１のラベル間射影鍵を生成して外部に出力する手順、および暗号鍵と第２の群の生成子と、第１および第２のラベル内鍵から第２のラベル間射影鍵を生成して外部に出力する手順を実行させることを特徴とする。【００４１】
上記目的を達成するため、本発明に係る他の自然結合プログラムは、クライアント端末と暗号化データベースサーバとが相互に接続されて構成される暗号化データベースシステムにあって、暗号化データベースサーバが備えているコンピュータに、暗号化された第１および第２の表、第１および第２のラベル内鍵と第１および第２のラベル間射影鍵を受信する手順、暗号化された第１の表の第１のラベルによって示される列のデータに第１のラベルと第１のラベル内鍵とを作用させて第１のラベル内比較値を生成する手順、暗号化された第２の表の第２のラベルによって示される列のデータに第２のラベルと第２のラベル内鍵とを作用させて第２のラベル内比較値を生成する手順、第１のラベル内比較値に第１のラベル間射影鍵を作用させて第１のラベル間比較値を生成する手順、第２のラベル内比較値に第２のラベル間射影鍵を作用させて第２のラベル間比較値を生成する手順、および第１および第２のラベル間比較値を利用して、暗号化された第１および第２の表に対する自然結合を実行する手順を実行させることを特徴とする。
【発明の効果】
【００４２】
本発明は、上述したようにクライアント端末の側で暗号鍵と結合対象となる列を示すラベルからラベル内鍵とラベル間鍵とを生成して暗号化データベースサーバに送信するように構成したので、このラベル内鍵とラベル間鍵とを受信した暗号化データベースサーバのみが、第１の表および第２の表において指定された列のデータが等しいか否かを判断可能となる。【００４３】
これによって、暗号化されたデータベースの複数の表を、データの各要素を復号化する処理を行わず、かつ計算量を大幅に増大させることもなく、暗号化されたデータをキーとして自然結合することが可能であるという優れた特徴を持つ暗号化データベース管理システム、クライアントおよびサーバ、自然結合方法およびプログラムを提供することができる。
【図面の簡単な説明】
【００４４】
【図１】本発明に係る暗号化データベース管理システムの構成を示す説明図である。
【図２】図１に示した表Ａおよび表Ｂについて詳しく説明する説明図である。図２（ａ）は表Ａを、図２（ｂ）は表Ｂについて各々示す。
【図３】図１に示した暗号化データベースクライアントの、暗号化装置としてのより詳しい構成を示す説明図である。
【図４】図３に示した暗号化部の処理について示すフローチャートである。
【図５】図４に示した処理によって暗号化が完了した暗号化表Ａおよび暗号化表Ｂについて示す説明図である。図５（ａ）は暗号化表Ａを、図５（ｂ）は暗号化表Ｂについて各々示す。
【図６】暗号化データベースサーバのデータ受信部が暗号化表Ａを記憶する動作について示すフローチャートである。
【図７】図１に示した別のクライアントの、復号化装置としてのより詳しい構成を示す説明図である。
【図８】図７に示した復号化部の処理について示すフローチャートである。
【図９】図１に示した暗号化データベースクライアントの、ラベル内射影要求装置としてのより詳しい構成を示す説明図である。
【図１０】図９に示したラベル内射影要求部の処理について示すフローチャートである。
【図１１】図１に示した暗号化データベースクライアントの、ラベル間射影要求装置としてのより詳しい構成を示す説明図である。
【図１２】図１１に示したラベル間射影要求部の処理について示すフローチャートである。
【図１３】図１に示した暗号化データベースサーバの、ラベル内射影装置としてのより詳しい構成を示す説明図である。
【図１４】図１３に示したラベル内射影部の処理について示すフローチャートである。
【図１５】図１に示した暗号化データベースサーバの、ラベル間射影装置としてのより詳しい構成を示す説明図である。
【図１６】図１５に示したラベル間射影部の処理について示すフローチャートである。
【図１７】暗号化表自然結合部が、暗号化表Ａおよび暗号化表Ｂを自然結合する処理について示すフローチャートである。
【図１８】暗号化データベースについての一般的な技術に係る暗号化データベース管理システムの構成について示す説明図である。
【図１９】図１８に示した列暗号化部の機能についてより詳しく説明する説明図である。
【図２０】図１８に示した暗号化表自然結合要求部の機能についてより詳しく説明する説明図である。
【図２１】図１８に示した暗号化表自然結合部の機能についてより詳しく説明する説明図である。
【図２２】図１８に示した暗号化データベース管理装置で、暗号化される前の表Ａの一例を示す説明図である。
【図２３】図１８に示した列暗号化部が、図２２に示した表Ａを暗号化した状態の暗号化表Ａを示す説明図である。
【図２４】図１８で示した暗号化データベース管理装置で、複数の暗号化表Ａおよび暗号化表Ｂに対して自然結合の演算を行う場合の例についての説明図である。図２４（ａ）は暗号化表Ａを、図２４（ｂ）は暗号化表Ｂを、図２４（ｃ）は表Ａ×Ｂについて各々示す。
【図２５】上述の問題を解決するため、ｋｅｙ＝ｋｅｙ’、即ち同一の暗号鍵ｋｅｙを利用して暗号化された暗号化表Ｃおよび暗号化表Ｄに対して自然結合の演算を行う例についての説明図である。図２５（ａ）は暗号化表Ｃを、図２５（ｂ）は暗号化表Ｄを、図２５（ｃ）は暗号化表Ｃ×Ｄについて各々示す。
【発明を実施するための形態】
【００４５】
（第１の実施形態）
以下、本発明の第１の実施形態の構成について添付図１、４、７、９、１１、１３、１５に基づいて説明する。
最初に、本実施形態の基本的な内容について説明し、その後でより具体的な内容について説明する。
本実施形態に係る暗号化データベースシステム（暗号化データベース管理システム１）は、クライアント端末（暗号化データベースクライアント１０）と暗号化データベースサーバ５０とが相互に接続されて構成される暗号化データベースシステムである。クライアント端末（暗号化データベースクライアント１０）は、暗号鍵（秘密鍵３１）および第１および第２の群の生成子３２ａ〜ｂを予め記憶する記憶手段１２と、外部から入力される第１の表（表Ａ３５）の第１のラベル（ラベル３３ａ）によって示される列のデータを暗号鍵および第１の群の生成子とによって暗号化し、同じく外部から入力される第２の表（表Ｂ３６）の第２のラベル（ラベル３３ｂ）によって示される列のデータを暗号鍵および第２の群の生成子によって暗号化してこれら暗号化された第１および第２の表を外部に出力する列暗号化部２１と、暗号鍵と第１のラベルとから第１のラベル内鍵を生成し、暗号鍵と第２のラベルとから第２のラベル内鍵を生成してこれら第１および第２のラベル内鍵を外部に出力するラベル内射影要求部２２と、暗号鍵と第１の群の生成子と、第１および第２のラベル内鍵から第１のラベル間射影鍵を生成し、暗号鍵と第２の群の生成子と、第１および第２のラベル内鍵から第２のラベル間射影鍵を生成してこれら第１および第２のラベル間射影鍵を外部に出力するラベル間射影要求部２３とを備え、暗号化データベースサーバ５０が、暗号化された第１および第２の表を受信して記憶し、第１および第２のラベル内鍵と第１および第２のラベル間射影鍵とを受信するデータ受信部６４と、暗号化された第１の表の第１のラベルによって示される列のデータに第１のラベルと第１のラベル内鍵とを作用させて第１のラベル内比較値を生成し、暗号化された第２の表の第２のラベルによって示される列のデータに第２のラベルと第２のラベル内鍵とを作用させて第２のラベル内比較値を生成するラベル内射影部６１と、第１のラベル内比較値に第１のラベル間射影鍵を作用させて第１のラベル間比較値を生成し、第２のラベル内比較値に第２のラベル間射影鍵を作用させて第２のラベル間比較値を生成するラベル間射影部６２と、出力された第１および第２のラベル間比較値を利用して、暗号化された第１および第２の表に対する自然結合を実行する暗号化表自然結合部６３とを備える。
【００４６】
ここで列暗号化部２１は、秘密鍵とラベルとからラベル間鍵を生成するラベル間鍵生成機能２１ｂと、群の生成子とラベル間射影鍵とから第一ラベル公開鍵を生成する第一ラベル公開鍵生成機能２１ｃと、秘密鍵と列のデータとから単純比較値を生成する比較値生成機能２１ｄと、第一ラベル公開鍵と単純比較値とラベル間鍵とからラベル内比較値を生成する隠蔽比較値生成機能２１ｅと、秘密鍵とラベルとからラベル内鍵を生成するラベル内鍵生成機能２１ａと、ラベル内鍵によってラベル内比較値を暗号化すると同時に秘密鍵によって列のデータを暗号化する暗号化機能２１ｆとを備える。
【００４７】
また、ラベル内射影要求部２２が、秘密鍵と第１のラベルとからラベル内鍵を生成するラベル内鍵生成機能を備えると共に、ラベル間射影要求部２３が、秘密鍵と第２のラベルとからラベル間鍵を生成するラベル間射影鍵生成機能２３ａと、群の生成子とラベル間鍵とから第二ラベル公開鍵を生成する第二ラベル公開鍵生成機能２３ｂと、第１および第２のラベルと秘密鍵とから補間値を生成する補間値生成機能２３ｃと、第二ラベル公開鍵と補間値とからラベル間射影鍵を生成する射影鍵生成機能２３ｄとを備える。
【００４８】
そしてラベル内射影部６１が、ラベル内鍵と暗号化された第１および第２の表の暗号化された列データから第１および第２のラベル内比較値を生成するラベル内比較値生成機能６１ａを備えると共に、ラベル間射影部６２が、ラベル間射影鍵と第１および第２のラベル内比較値とを双線形写像の入力として、その出力を各々第１および第２のラベル間比較値として出力するラベル間比較値生成機能６２ａを備える。
【００４９】
この構成を備えることにより、暗号化データベース管理システム１はデータの各要素を復号化する処理を行わず、かつ計算量を大幅に増大させることもなく、暗号化されたデータをキーとして自然結合することが可能となる。
以下、これをより詳細に説明する。
【００５０】
（記号などの定義）
まず、本明細書で使用する記号および用語、そしてそれらの定義について説明する。本明細書の数式以外の行では「Ａに上付き添字Ｂ（ＡのＢ乗など）」を「Ａ＾Ｂ」、「Ａに下付き添字Ｂ」を「Ａ＿Ｂ」と表すことにする。
【００５１】
ｐは素数である。Ｇ＿１、Ｇ＿２、Ｇ＿Ｔは各々、位数がｐの巡回群である。ｐａｉｒは、Ｇ＿１×Ｇ＿２からＧ＿Ｔへの双線形写像である。σはＧ＿２からＧ＿１への準同型写像である。Ｇ＿１としては、その上でのディフィ・ヘルマン（Diffie-Hellman）判別問題を解くことが困難である群が想定される。例えば、超特異でない楕円曲線で双線形写像を持つものが、このような群に該当する。ｇ＿１はＧ＿１の、ｇ＿２はＧ＿２の各々生成元であり、かつσ（ｇ＿２）＝ｇ＿１である。
【００５２】
Ｈａｓｈは、任意長の文字列からｅｎｃの鍵空間への写像であり、暗号学的ハッシュ関数等などが想定される。ＨａｓｈＺは、任意長の文字列からＺ／ｐＺへの写像であり、暗号学的ハッシュ関数等などが想定される。ＨａｓｈＧは、任意長の文字列からＧ＿１への写像であり、暗号学的ハッシュ関数等などが想定される。
【００５３】
ｅｎｃは、鍵とイニシャルベクター（初期ベクトル）と平文とを入力として暗号文を出力とする暗号化関数である。ｄｅｃは、鍵とイニシャルベクターと暗号文とを入力として平文を出力とする復号化関数である。即ち、秘密鍵とこれに対応する公開鍵、イニシャルベクター、平文、暗号文を各々ｋｅｙ、ｐｋｅｙ、ｉｖ、ｍ、ｅとすると、以下の数１に示す関係で表される。
【００５４】
ここで、秘密鍵ｋｅｙとこれに対応する公開鍵ｐｋｅｙは、公開鍵暗号方式の公開鍵と秘密鍵の対である。公開鍵暗号方式で、秘密鍵ｋｅｙを使用して暗号化された暗号文は、この秘密鍵に対応する公開鍵ｐｋｅｙ以外で復号化して平文を得ることはできない。また、公開鍵ｐｋｅｙを使用して暗号化された暗号文は、秘密鍵ｋｅｙ以外で復号化して平文を得ることはできない。
【数１】
2012081450.tif 000003
【００５５】
データベースの各表は、各列ごとにその属する表の中で自らを一意的に識別するラベルを持つ。データベースの各表の各列を取り出したものを列ベクトルという。データベースの表Ａと表Ｂとを、「表Ａの列ａの要素と表Ｂの列ｂの要素が等しい」という条件によって等結合することを、「表Ａと表Ｂを表Ａの列ａと表Ｂの列ｂに関して自然結合する」という。ただし、この等結合を行う際、重複する列は削除される。
【００５６】
（機器の構成）
図１は、本発明に係る暗号化データベース管理システム１の構成を示す説明図である。暗号化データベース管理システム１は、暗号化データベースクライアント１０と、暗号化データベースサーバ５０と、別のクライアント１００とが、ＬＡＮ（Local Area Network）などを介して相互に接続されて構成される。
【００５７】
暗号化データベースクライアント１０は、一般的なコンピュータ装置としての構成を備える。即ち、暗号化データベースクライアント１０は、コンピュータプログラムを実行する主体となる主演算制御手段（ＣＰＵ: Central Processing Unit）１１と、データを記憶する記憶手段１２と、ユーザからの操作を受け付ける入力手段１３と、ユーザに処理結果を提示する出力手段１４と、他のコンピュータとのデータ通信を行う通信手段１５とを備える。
【００５８】
主演算制御手段１１では、ユーザからの操作命令に応じて、暗号化部２１、ラベル内射影要求部２２、およびラベル間射影要求部２３が、各々コンピュータプログラムとして後述するそれぞれの機能を実行されるように構成されている。また、記憶手段１２には以後に説明する処理で使用する秘密鍵（ｋｅｙ）３１と、群の生成子３２ａ〜ｂとが記憶されている。そして入力手段１３には、自然結合の対象となる表Ａ３５および表Ｂ３６と、自然結合の対象となる表および列を識別するラベル３３ａ〜ｂが入力される。
【００５９】
ここで、群の生成子３２ａ〜ｂ、ラベル３３ａ〜ｂの各々で、表Ａ３５に対応するものを群の生成子３２ａ、ラベル３３ａといい、表Ｂ３６に対応するものを群の生成子３２ｂ、ラベル３３ｂという。
【００６０】
暗号化データベースサーバ５０もまた、一般的なコンピュータ装置としての構成を備える。即ち、暗号化データベースサーバ５０は、コンピュータプログラムを実行する主体となる主演算制御手段（ＣＰＵ: Central Processing Unit）５１と、データを記憶する記憶手段５２と、他のコンピュータとのデータ通信を行う通信手段５３とを備える。
【００６１】
主演算制御手段５１では、暗号化データベースクライアント１０からの操作命令に応じて、ラベル内射影部６１、ラベル間射影部６２、暗号化表自然結合部６３と、データ受信部６４とがコンピュータプログラムとして後述するそれぞれの機能を実行されるように構成されている。また、記憶手段５２にはデータ受信部６４が暗号化データベースクライアント１０から受信した、各々表Ａ３５および表Ｂ３６を暗号化した暗号化表Ａ３７および暗号化表Ｂ３８が記憶される。
【００６２】
ここで、暗号化データベースクライアント１０で使用される暗号鍵としては、暗号化と復号化で共通の鍵を使用する共通鍵を使用することもできるが、セキュリティ上の観点から公開鍵暗号方式の秘密鍵を使用することがより望ましいので、本実施形態では秘密鍵（ｋｅｙ）３１を使用する。この秘密鍵（ｋｅｙ）３１は、暗号化データベースクライアント１０から他の装置に向けて送信されることはない。秘密鍵（ｋｅｙ）３１に対応する公開鍵（ｐｋｅｙ）１３１は、暗号化データベースクライアント１０から別のクライアント１００に向けてのみ送付され、暗号化データベースサーバ５０には送付されない。
【００６３】
別のクライアント１００は、ハードウェア的には暗号化データベースクライアント１０と同様に一般的なコンピュータ装置としての構成、即ち主演算制御手段１０１と、記憶手段１０２と、通信手段１０３とを備えるが、主演算制御手段１０１で復号化部１２１が動作する。復号化部１２１は、後述するように暗号化データベースクライアント１０の列暗号化部２１で暗号化されたデータを、秘密鍵（ｋｅｙ）３１に対応する公開鍵（ｐｋｅｙ）１３１を用いて復号化する。公開鍵（ｐｋｅｙ）１３１は、暗号化データベースクライアント１０から予め送付され、記憶手段１０２に記憶される。
【００６４】
なお、物理的なコンピュータ装置の区分については、この例の通りに従う必要は特にない。たとえば、列暗号化部２１、ラベル内射影要求部２２、およびラベル内射影要求部２３を、各々異なるコンピュータで動作させてもよい。また、列暗号化部２１、ラベル内射影要求部２２、ラベル内射影要求部２３と、ラベル内射影部６１、ラベル間射影部６２、暗号化表自然結合部６３、データ受信部６４とを全て同一のコンピュータで動作させてもよい。
【００６５】
図２は、図１に示した表Ａ３５および表Ｂ３６について詳しく説明する説明図である。図２（ａ）は表Ａ３５を、図２（ｂ）は表Ｂ３６について各々示す。表Ａ３５で、自然結合の対象とされる列にはラベル３３ａ＝Ｌ［１］が与えられている。同様に、表Ｂ３６で、自然結合の対象とされる列には、ラベル３３ｂ＝Ｌ［２］が与えられている。ここでいうラベルとは、「特定の表の特定の列」を一意的に識別しうるデータである。
【００６６】
ここでは、表Ａ３５で暗号化の対象かつラベル３３ａで示される列の列データ３４ａ＝ｍａ［ｉ］（ｉは１≦ｉ≦Ｎの自然数）とする。また、表Ｂ３６で暗号化の対象かつラベル３３ｂで示される列の列データ３４ｂ＝ｍｂ［ｊ］（ｊは１≦ｊ≦Ｍの自然数）とする。
【００６７】
（暗号化部）
図３は、図１に示した暗号化データベースクライアント１０の、暗号化装置としてのより詳しい構成を示す説明図である。暗号化データベースクライアント１０は、主演算制御手段１１で暗号化部２１が動作することによって、表Ａの列ａを暗号化する暗号化装置として機能する。暗号化部２１は、ラベル内鍵生成機能２１ａ、ラベル間鍵生成機能２１ｂ、第一ラベル公開鍵生成機能２１ｃ、比較値生成機能２１ｄ、隠蔽比較値生成機能２１ｅ、暗号化機能２１ｆ、乱数生成機能２１ｇとを備える。これら各機能の詳細については後述する。
【００６８】
暗号化部２１への入力データとして、記憶手段１２には秘密鍵（ｋｅｙ）３１および群の生成子（ｇ＿１）３２ａが記憶され、図２に示した表Ａ３５およびラベル３３ａ＝Ｌ［１］は入力手段１３から入力される。ただし、図３では表Ａ３５に対する処理だけを説明するので、表Ｂ３６およびこれに関連する要素については図示しない。このため、ラベル３３ａ＝Ｌ［１］については、表Ｂ３６の自然結合の対象とされる列に対して与えられたラベル３３ｂ＝Ｌ［２］について言及する必要がある場合を除いて、単にラベル３３ａ＝Ｌという。以後の図においても同様である。
【００６９】
図４は、図３に示した暗号化部２１の処理について示すフローチャートである。ラベル間鍵生成機能２１ｂは、秘密鍵３１＝ｋｅｙおよびラベル３３ａ＝Ｌから、以下に示す数２の処理でラベル間鍵４１ａ＝ｘ［Ｌ］を算出する（ステップＳ１０１）。ここでＨａｓｈＺ関数の第一要素“ｓｅｃｒｅｔ”は、処理の種類を識別するための任意の文字列である。以後の数式で使用されるＨａｓｈＺ関数においても同様である。
【数２】
2012081450.tif 000004
【００７０】
これに引き続いて、第一ラベル公開鍵生成機能２１ｃは、秘密鍵３１＝ｋｅｙ、群の生成子３２ａ＝ｇ＿１、およびラベル３３ａ＝Ｌから、以下に示す数３の処理で第一ラベル公開鍵４１ｂ＝ｇ［Ｌ］を算出する（ステップＳ１０２）。
【数３】
2012081450.tif 000005
【００７１】
ｉ＝１に初期設定して（ステップＳ１０３）、乱数生成機能２１ｇは、Ｚ／ｑＺからランダムに乱数（イニシャルベクター）４１ｇ＝ｉｖ［１］およびｉｖ［２］を生成する（ステップＳ１０４）。そして、比較値生成機能２１ｄが、秘密鍵３１＝ｋｅｙおよび列データ３４ａ＝ｍから、以下に示す数４の処理で単純比較値４１ｃ＝ｆ［ｍ］を算出する（ステップＳ１０５）。以後図４のフローチャートでは、ｉ行目の列データ３４ａ＝ｍａ［ｉ］を、単に列データ３４ａ＝ｍと表記する。
【数４】
2012081450.tif 000006
【００７２】
これに引き続いて、隠蔽比較値生成機能２１ｅが、ラベル間鍵４１ａ、第一ラベル公開鍵４１ｂ、および単純比較値４１ｃから、以下に示す数５の処理でラベル内比較値４１ｄ＝ｄを算出する（ステップＳ１０６）。
【数５】
2012081450.tif 000007
【００７３】
以上の処理と並行して、ラベル内鍵生成機能２１ａが、秘密鍵３１＝ｋｅｙおよびラベル３３ａ＝Ｌから、以下に示す数６の処理でラベル内鍵４１ｅ＝ｋｅｙ［Ｌ］を算出する（ステップＳ１０７）。
【数６】
2012081450.tif 000008
【００７４】
そして最後に、暗号化機能２１ｆが、秘密鍵３１＝ｋｅｙ、列データ３４ａ＝ｍ、ラベル内比較値４１ｄ、および前述の乱数４１ｇ＝ｉｖ［１］およびｉｖ［２］から、以下に示す数７の処理で暗号文４１ｆ＝ｅ［ｉ］：＝（ｅ［１］，ｅ［２］，ｅ［３］，ｅ［４］）を算出する（ステップＳ１０８）。
【数７】
2012081450.tif 000009
【００７５】
暗号化部２１は、ｉの値が表Ａ３５の全行数Ｎに到達したか否かを判断し（ステップＳ１０９）、到達したら処理の完了した暗号化表Ａ３７を出力し、通信手段１５を介して暗号化データベースサーバ５０に送信して（ステップＳ１１１）処理を終了する。ｉの値がＮに到達していなければ、ｉの値を＋１して（ステップＳ１１０）ステップＳ１０３〜１０８の処理を繰り返す。そして、暗号化部２１が暗号化表Ａ３７を出力すると同時に、暗号化機能２１ｆがラベル３３ａ＝Ｌを記憶手段１２に記憶する。
【００７６】
図５は、図４に示した処理によって暗号化が完了した暗号化表Ａ３７および暗号化表Ｂ３８について示す説明図である。図５（ａ）は暗号化表Ａ３７を、図５（ｂ）は暗号化表Ｂ３８について各々示す。暗号化表Ａ３７は、列データ３４ａ＝ｍａ［ｉ］の各々が、数７で示す各々の要素を持つ暗号文４１ｆ（３９ａ）＝ｅａ［ｉ］に置換されている。暗号化表Ｂ３８も同様に、列データ３９ｂ＝ｍｂ［ｊ］の各々が、数７で示す各々の要素を持つ暗号文４１ｆ（３９ｂ）＝ｅｂ［ｊ］に置換されている。
【００７７】
図６は、暗号化データベースサーバ５０のデータ受信部６４が暗号化表Ａ３７を記憶する動作について示すフローチャートである。データ受信部６４は、通信手段５３を介して受信したこの暗号化表Ａ３７を（ステップＳ１４１）、記憶手段５２に記憶する（ステップＳ１４２）。同様に、暗号化表Ｂ３８についても受信して記憶手段５２に記憶する。
【００７８】
（復号化部）
図７は、図１に示した別のクライアント１００の、復号化装置としてのより詳しい構成を示す説明図である。別のクライアント１００は、主演算制御手段１１で復号化部１２１が動作することによって、暗号化表Ａ３７の暗号文４３ａ＝ｅａ［ｉ］を復号化する復号化装置として機能する。
【００７９】
図８は、図７に示した復号化部１２１の処理について示すフローチャートである。復号化部１２１への入力データとして、記憶手段１０２には秘密鍵３１＝ｋｅｙ［Ｌ］に対応する公開鍵１３１＝ｐｋｅｙ［Ｌ］が記憶され、数７に示した暗号文４１ｆ（３９ａ）の後半部＝（ｅ［３］，ｅ［４］）は通信手段１０３を経由して入力される。復号化部１２１は、ｉ＝１と初期設定した後（ステップＳ１５１）、これらの入力データから、以下に示す数８の処理で平文の列データ３４ａ＝ｍを算出する処理を（ステップＳ１５２）ｉ＝Ｎとなるまで全ての行に対してくり返し（ステップＳ１５３〜４）、これを出力する（ステップＳ１５５）。
【数８】
2012081450.tif 000010
【００８０】
（ラベル内射影要求部）
図９は、図１に示した暗号化データベースクライアント１０の、ラベル内射影要求装置としてのより詳しい構成を示す説明図である。暗号化データベースクライアント１０は、主演算制御手段１１でラベル内射影要求部２２が動作することによって、同一のラベルの元に暗号化された平文の同一性を比較することを要求する要求文を生成して暗号化データベースサーバ５０に送信するためのラベル内射影要求装置として機能する。
【００８１】
図１０は、図９に示したラベル内射影要求部２２の処理について示すフローチャートである。ラベル内射影要求部２２への入力データとして、記憶手段１２には秘密鍵（ｋｅｙ）３１およびラベル３３ａ＝Ｌ（Ｌ［１］）が記憶されている。なお、ラベル内射影要求部２２は、図３で示した暗号化部２１のラベル内鍵生成機能２１ａと同一の機能を有するので、プログラム内の同一モジュールを共用することができる。
【００８２】
ラベル内射影要求部２２は、これらの入力データから、以下に示す数９の処理で、第１のラベル内鍵４１ｅ＝ｋｅｙ［Ｌ］を算出し（ステップＳ２０１）、これを暗号化データベースサーバ５０に向けて出力する（ステップＳ２０２）。ここで数９のＨａｓｈ関数の第一要素“ｌａｂｅｌ  ｋｅｙ”は、処理の種類を識別するための任意の文字列である。
【数９】
2012081450.tif 000011
【００８３】
ラベル内射影要求部２２はこれと同様に、秘密鍵（ｋｅｙ）３１、ラベル３３ｂ＝Ｌ（Ｌ［２］）から、第２のラベル内鍵を算出し、これも暗号化データベースサーバ５０に向けて出力する。
【００８４】
（ラベル間射影要求部）
図１１は、図１に示した暗号化データベースクライアント１０の、ラベル間射影要求装置としてのより詳しい構成を示す説明図である。暗号化データベースクライアント１０は、主演算制御手段１１でラベル間射影要求部２３が動作することによって、異なるラベルの元に暗号化された平文の同一性を比較することを要求する要求文を生成して暗号化データベースサーバ５０に送信するためのラベル間射影要求装置として機能する。
【００８５】
ラベル間射影要求部２３は、ラベル間射影鍵生成機能２３ａ、第二ラベル公開鍵生成機能２３ｂ、補間値生成機能２３ｃ、射影鍵生成機能２３ｄを備える。これら各機能の詳細については後述する。ラベル間射影要求部２３への入力データとして、記憶手段１２には秘密鍵（ｋｅｙ）３１、群の生成子（ｇ＿１）３２ａ、ラベル３３ａ＝Ｌ［１］およびラベル３３ｂ＝Ｌ［２］が記憶されている。
【００８６】
図１２は、図１１に示したラベル間射影要求部２３の処理について示すフローチャートである。ラベル間射影鍵生成機能２３ａは、秘密鍵３１＝ｋｅｙおよびラベル３３ａ＝Ｌ［１］から、以下に示す数１０の処理でラベル間鍵４１ａ＝ｘ［Ｌ［２］］を算出する（ステップＳ２５１）。なお、ラベル間射影鍵生成機能２３ａは、図３で示した暗号化部２１のラベル間鍵生成機能２１ｂと同一の機能を有するので、プログラム内の同一モジュールを共用することができる。
【数１０】
2012081450.tif 000012
【００８７】
これに続いて、第二ラベル公開鍵生成機能２３ｂは、秘密鍵３１＝ｋｅｙ、群の生成子３２ａ＝ｇ＿１、およびラベル３３ａ＝Ｌ［１］から、以下に示す数１１の処理で第二ラベル公開鍵４２ａ＝ｑ［Ｌ［２］］を算出する（ステップＳ２５２）。
【数１１】
2012081450.tif 000013
【００８８】
これに続いて、補間値生成機能２３ｃは、秘密鍵３１＝ｋｅｙ、ラベル３３ａ＝Ｌ［１］およびラベル３３ｂ＝Ｌ［２］から、以下に示す数１２の処理で補間値４２ｂ＝ｐ｛Ｌ［１］，Ｌ［２］｝を算出する（ステップＳ２５３）。ここで、｛Ｌ［１］，Ｌ［２］｝は、Ｌ［１］とＬ［２］とを辞書順序で並べ替えた文字列であり、｛Ｌ［１］，Ｌ［２］｝＝｛Ｌ［２］，Ｌ［１］｝である。
【数１２】
2012081450.tif 000014
【００８９】
これに続いて、射影鍵生成機能２３ｄは、第二ラベル公開鍵４２ａ＝ｑ［Ｌ［２］］、ラベル間鍵４１ａ＝ｘ［Ｌ［１］］および補間値４２ｂ＝ｐ｛Ｌ［１］，Ｌ［２］｝から、以下に示す数１３の処理でラベル間射影鍵４２ｃ＝Ｐ（第１のラベル間射影鍵Ｐ［１］）を算出し（ステップＳ２５４）、これを暗号化データベースサーバ５０に向けて出力する（ステップＳ２５５）。
【数１３】
2012081450.tif 000015
【００９０】
ラベル間射影要求部２３はこれと同様に、秘密鍵（ｋｅｙ）３１、群の生成子（ｇ＿２）３２ｂ、ラベル３３ｂ＝Ｌ［２］およびラベル３３ａ＝Ｌ［１］から、第２のラベル間射影鍵Ｐ［２］を算出し、これも暗号化データベースサーバ５０に向けて出力する。
【００９１】
（ラベル内射影部）
図１３は、図１に示した暗号化データベースサーバ５０の、ラベル内射影装置としてのより詳しい構成を示す説明図である。暗号化データベースサーバ５０は、主演算制御手段５１でラベル内射影部６１が動作することによって、暗号化データベースクライアント１０で生成されたラベル内鍵４１ｅを受けて異なるラベルの元に暗号化された平文の同一性を比較するためのラベル内比較値４３を出力するラベル内射影装置として機能する。ラベル内射影部６１は、ラベル内比較値生成機能６１ａを備える。
【００９２】
図１４は、図１３に示したラベル内射影部６１の処理について示すフローチャートである。ラベル内比較値生成機能６１ａへの入力データとして、暗号文４１ｆの後半部＝（ｅ［１］，ｅ［２］）、ラベル３３ａ＝Ｌ（＝Ｌ［１］）、および第１のラベル内鍵４１ｅが暗号化データベースクライアント１０から入力される。
【００９３】
ラベル内射影部６１のラベル内比較値生成機能６１ａは、ｉ＝１と初期設定した後（ステップＳ３０１）、これらの入力データから、以下に示す数１４の処理でラベル内比較値４３＝ｄを算出し（ステップＳ３０２）、この処理をｉ＝Ｎとなるまで全ての行に対してくり返した後（ステップＳ３０３〜３０４）、図５の暗号化表Ａ３７のラベル３３ａ（＝Ｌ［１］）に該当する列の値をこのラベル内比較値４３＝ｄで置換した行列を出力して（ステップＳ３０５）後述のラベル間射影部６２に渡す。
【数１４】
2012081450.tif 000016
【００９４】
ラベル内射影部６１はこれと同様に、暗号文４１ｆの後半部＝（ｅ［１］，ｅ［２］）、ラベル３３ｂ（＝Ｌ［２］）、および第２のラベル内鍵から、図５の暗号化表Ｂ３８のラベル３３ｂ（＝Ｌ［２］）に該当する列の値を算出したラベル内比較値で置換した行列を出力して、ラベル間射影部６２に渡す。
【００９５】
（ラベル間射影部）
図１５は、図１に示した暗号化データベースサーバ５０の、ラベル間射影装置としてのより詳しい構成を示す説明図である。暗号化データベースサーバ５０は、主演算制御手段５１でラベル間射影部６２が動作することによって、暗号化データベースクライアント１０で生成されたラベル間鍵４１ａ＝ｘ［Ｌ［１］］を受けて異なるラベルの元に暗号化された平文の同一性を比較するためのラベル間比較値４４を出力するラベル間射影装置として機能する。ラベル間射影部６２は、ラベル間比較値生成機能６２ａを備える。
【００９６】
図１６は、図１５に示したラベル間射影部６２の処理について示すフローチャートである。ラベル間比較値生成機能６２ａへの入力データとして、ラベル間射影鍵４２ｃ＝Ｐ（＝Ｐ［１］）が暗号化データベースクライアント１０から入力され、また図５の暗号化表Ａ３７のラベル３３ａ（＝Ｌ［１］）に該当する列の値をラベル内比較値４３＝ｄで置換した行列もラベル内射影部６１から入力される。
【００９７】
ラベル間射影部６２のラベル間比較値生成機能６２ａは、ｉ＝１と初期設定した後（ステップＳ３５１）、これらの入力データから、以下に示す数１５の処理でラベル間比較値４４＝ｈを算出し（ステップＳ３５２）、この処理をｉ＝Ｎとなるまで全ての行に対してくり返した後（ステップＳ３５３〜３５４）、図５の暗号化表Ａ３７のラベル３３ａ（＝Ｌ［１］）に該当する列の値をこのラベル間比較値４４＝ｈで置換した行列を出力して（ステップＳ３５５）暗号化表自然結合部６３に渡す。
【数１５】
2012081450.tif 000017
【００９８】
ラベル内射影部６２はこれと同様に、暗号化データベースクライアント１０から入力されたラベル間射影鍵（＝Ｐ［２］）と、図５の暗号化表Ｂ３８のラベル３３ｂ（＝Ｌ［２］）に該当する列の値をラベル内比較値で置換した行列を入力として、このラベル内比較値をラベル間比較値に置換する。暗号化表自然結合部６３は、この値によって表Ａ３５および表Ｂ３６の自然結合を行う。
【００９９】
（本実施形態の処理による効果）
以上で示した処理による効果について説明する。
暗号化装置がラベルＬに関連づけられた平文データｍを秘密鍵ｋｅｙを用いて暗号化すると、前述の数７で示した暗号文ｅが得られる。この暗号文ｅの後半部（ｅ［３］，ｅ［４］）は平文データｍの確率的な暗号文であるので、これからｍの情報が漏洩することはない。また、暗号文ｅの前半部（ｅ［３］，ｅ［４］）も平文データｍの確率的な暗号文であるので、これからｍの情報が漏洩することはない。
【０１００】
もちろん、数７で使用された鍵ｋｅｙ［Ｌ］は、元々の暗号化に使用された秘密鍵ｋｅｙがなければ得ることはできない。また、図１で示した別のクライアント１００は、主演算制御手段１１で復号化部１２１が動作することによって、単純に暗号文ｅを復号化して平文データｍを得ることができる。
【０１０１】
ラベル内射影要求部２２は、秘密鍵３１＝ｋｅｙおよびラベル３３ａ＝Ｌから、数９に示したラベル内鍵４１ｅ＝ｋｅｙ［Ｌ］を算出し、これをラベル内射影部６１に対して出力する。これを受けたラベル内射影部６１は、数１４に示したラベル内比較値４３＝ｄを算出し、このラベル内比較値４３＝ｄについては以下の数１６に示す関係が成立する。
【数１６】
2012081450.tif 000018
【０１０２】
このラベル内比較値４３＝ｄは、ラベルＬが同一であれば、同じ平文ｍから必ず同一のラベル内比較値４３＝ｄが得られる。このため、同一のラベルＬの暗号文同士で平文が一致するか否かを判定することができる（なお、自然結合では「同一のラベルＬの暗号文同士」での比較を行うことはない）。
【０１０３】
続いて、表Ａ３５にラベルＬ［１］が、表Ｂ３６にラベルＬ［２］が各々与えられているものとする。表Ａ３５のラベルＬ［１］で示される列の平文データｍ［１］がこのラベルＬ［１］に関して暗号化され、表Ｂ３６のラベルＬ［２］で示される列の平文データｍ［２］がこのラベルＬ［２］に関して暗号化されているものとする。そして、これら各々に対応するラベル内鍵４１ｅ＝ｋｅｙ［Ｌ［１］］およびｋｅｙ［Ｌ［２］］がラベル内射影要求部２２で算出され、ラベル内射影部６１に対して出力されているものとする。
【０１０４】
ラベル内射影要求部２２およびラベル内射影部６１にこれらのデータを通して以下の数１７に示す各々のラベル内比較値ｄ［１］およびｄ［２］を得たとしても、このままではｇ［Ｌ［１］］＾（ｘ［Ｌ［１］］）およびｇ［Ｌ［２］］＾（ｘ［Ｌ［２］］）の離散対数が不明であるので、平文データｍ［１］とｍ［２］が等しいか否かをこれらのラベル内比較値ｄ［１］およびｄ［２］から判断することはできない。
【数１７】
2012081450.tif 000019
【０１０５】
そこで、これらに加えてラベル間射影要求部２３がラベルＬ［１］およびＬ［２］と秘密鍵＝ｋｅｙから、数１３によって示した処理によって、以下の数１８〜１９に示すラベル間射影鍵Ｐ［１］およびＰ［２］を生成する。
【数１８】
2012081450.tif 000020
【数１９】
2012081450.tif 000021
【０１０６】
これらのラベル内比較値ｄ［１］およびｄ［２］と、ラベル間射影鍵Ｐ［１］およびＰ［２］とがラベル間射影部６２に入力されると、前述の数１５（ステップＳ３５１）で示した処理で、以下の数２０〜２１に示されるような双線形写像の演算で、ラベル間比較値ｐａｉｒ（ｄ［１］，Ｐ［１］）およびｐａｉｒ（ｄ［２］，Ｐ［２］）が算出される。
【数２０】
2012081450.tif 000022
【数２１】
2012081450.tif 000023
【０１０７】
ここで、以下の数２２に示す関係が成立するので、ラベル間比較値ｐａｉｒ（ｄ［１］，Ｐ［１］）およびｐａｉｒ（ｄ［２］，Ｐ［２］）が等しければ元の平文データｍ［１］とｍ［２］が等しく、またｐａｉｒ（ｄ［１］，Ｐ［１］）およびｐａｉｒ（ｄ［２］，Ｐ［２］）が等しくなければ元の平文データｍ［１］とｍ［２］が等しくないと判断できる。
【数２２】
2012081450.tif 000024
【０１０８】
図１７は、暗号化表自然結合部６３が、暗号化表Ａ３７および暗号化表Ｂ３８を自然結合する処理について示すフローチャートである。暗号化表自然結合部６３は、ラベル間射影部６２に対して暗号化表Ａ３７のラベル間比較値を算出する処理を行わせ（ステップＳ４０１）、続いて暗号化表Ｂ３８のラベル間比較値を算出する処理を行わせる（ステップＳ４０２）。ステップＳ４０１および４０２で行われる具体的な処理は、図１４および図１６に示された通りである。
【０１０９】
そして暗号化表自然結合部６３は、算出されたラベル間比較値ｈ［１］およびｈ［２］をキーとして暗号化表Ａ３７および暗号化表Ｂ３８の自然結合処理を行い（ステップＳ４０３）、自然結合されて作成された暗号化表Ａ×Ｂ８１を暗号化データベースクライアント１０に返す（ステップＳ４０４）。
【０１１０】
（第１の実施形態の全体的な動作）
次に、上記の実施形態の全体的な動作について説明する。本実施形態に係る自然結合方法は、クライアント端末と暗号化データベースサーバとが相互に接続されて構成される暗号化データベースシステム１にあって、外部から入力される第１の表の第１のラベルによって示される列のデータをクライアント端末の列暗号化部があらかじめ記憶された暗号鍵および第１の群の生成子とによって暗号化して外部に出力し（図４・ステップＳ１０１〜１１０）、外部から入力される第２の表の第２のラベルによって示される列のデータをクライアント端末の列暗号化部が暗号鍵およびあらかじめ記憶された第２の群の生成子とによって暗号化して外部に出力し（図４・ステップＳ１０１〜１１０）、暗号鍵と第１のラベルとからクライアント端末のラベル内射影要求部が第１のラベル内鍵を生成して外部に出力し（図１０・ステップＳ２０１〜２０２）、暗号鍵と第２のラベルとからクライアント端末のラベル内射影要求部が第２のラベル内鍵を生成して外部に出力し（図１０・ステップＳ２０１〜２０２）、暗号鍵と第１の群の生成子と、第１および第２のラベル内鍵からクライアント端末のラベル間射影要求部が第１のラベル間射影鍵を生成して外部に出力し（図１１・ステップＳ２５１〜２５５）、暗号鍵と第２の群の生成子と、第１および第２のラベル内鍵からクライアント端末のラベル間射影要求部が第２のラベル間射影鍵を生成して外部に出力し（図１１・ステップＳ２５１〜２５５）、暗号化された第１および第２の表、第１および第２のラベル内鍵と第１および第２のラベル間射影鍵を暗号化データベースサーバのデータ受信部が受信し（図６・ステップＳ１４１〜１４２）、暗号化された第１の表の第１のラベルによって示される列のデータに暗号化データベースサーバのラベル内射影部が第１のラベルと第１のラベル内鍵とを作用させて第１のラベル内比較値を生成し（図１４・ステップＳ３０１〜３０５）、暗号化された第２の表の第２のラベルによって示される列のデータに暗号化データベースサーバのラベル内射影部が第２のラベルと第２のラベル内鍵とを作用させて第２のラベル内比較値を生成し（図１４・ステップＳ３０１〜３０５）、第１のラベル内比較値に暗号化データベースサーバのラベル間射影部が第１のラベル間射影鍵を作用させて第１のラベル間比較値を生成し（図１６・ステップＳ３５１〜３５５）、第２のラベル内比較値に暗号化データベースサーバのラベル間射影部が第２のラベル間射影鍵を作用させて第２のラベル間比較値を生成し（図１６・ステップＳ３５１〜３５５）、第１および第２のラベル間比較値を利用して、暗号化データベースサーバの暗号化表自然結合部が暗号化された第１および第２の表に対する自然結合を実行する（図１７・ステップＳ４０３）。
【０１１１】
ここで、上記各動作ステップについては、これをコンピュータで実行可能にプログラム化し、これらを前記各ステップを直接実行するコンピュータである暗号化データベースクライアント１０および暗号化データベースサーバ５０に実行させるようにしてもよい。本プログラムは、非一時的な記録媒体、例えば、ＤＶＤ、ＣＤ、フラッシュメモリ等に記録されてもよい。その場合、本プログラムは、記録媒体からコンピュータによって読み出され、実行される。
この動作により、本実施形態は以下のような効果を奏する。
【０１１２】
本実施形態によれば、そのままでは他と比較することは不可能である暗号化されたデータを、ラベル間射影鍵Ｐ［１］およびＰ［２］を利用してそのデータを復号化せずに２つの平文データが等しいか否かを判断することができ、それによってデータの自然結合を行うことが可能となる暗号化データベースシステムを実現することが可能となる。自然結合はデータベースにおいて頻繁に行われる処理である。従って、この自然結合をデータを復号化せずに実行できるということは、データベースから機密情報が漏洩する機会を少なくすることが可能であることを意味する。
【０１１３】
その際、必要となるデータの処理量は、比較する対象となる二つの列のデータ量に単純に比例する。即ち、「データ量の２乗に比例する」などのような大幅な処理量の増大を招くものではない。
【０１１４】
また、ここで自然結合の対象となる列を示す「ラベル」は、「特定の表の特定の列」を一意的に識別しうるデータである。従って、「表」と「列」の各々に識別子を与えてこの識別子によって自然結合の処理を行う必要はないので、より処理を簡略化でき、より汎用的に適用できるものとなる。
【０１１５】
これまで本発明について図面に示した特定の実施形態をもって説明してきたが、本発明は図面に示した実施形態に限定されるものではなく、本発明の効果を奏する限り、これまで知られたいかなる構成であっても採用することができる。
【０１１６】
上述した各々の実施形態について、その新規な技術内容の要点をまとめると、以下のようになる。なお、上記実施形態の一部または全部は、新規な技術として以下のようにまとめられるが、本発明は必ずしもこれに限定されるものではない。
【０１１７】
（付記１）  クライアント端末と暗号化データベースサーバとが相互に接続されて構成される暗号化データベースシステムであって、
前記クライアント端末が、
暗号鍵および当該暗号鍵の要部をなす第１および第２の群の生成子を予め記憶する記憶手段と、
外部から入力される第１の表の第１のラベルによって示される列のデータを前記暗号鍵および前記第１の群の生成子とによって暗号化すると共に、同じく外部から入力される第２の表の第２のラベルによって示される列のデータを前記暗号鍵および前記第２の群の生成子によって暗号化し、これら暗号化された第１および第２の表を外部に出力する列暗号化部と、
前記暗号鍵と前記第１のラベルとから第１のラベル内鍵を生成すると共に、前記暗号鍵と前記第２のラベルとから第２のラベル内鍵を生成し、これら第１および第２のラベル内鍵を外部に出力するラベル内射影要求部と、
前記暗号鍵と前記第１の群の生成子と前記第１および第２のラベル内鍵とから第１のラベル間射影鍵を生成すると共に、前記暗号鍵と前記第２の群の生成子と前記第１および第２のラベル内鍵とから第２のラベル間射影鍵を生成し、これら第１および第２のラベル間射影鍵を外部に出力するラベル間射影要求部とを備え、
前記暗号化データベースサーバが、
前記暗号化された第１および第２の表を受信して記憶すると共に、前記第１および第２のラベル内鍵と前記第１および第２のラベル間射影鍵とを受信するデータ受信部と、
前記暗号化された第１の表の第１のラベルによって示される列のデータに前記第１のラベルと前記第１のラベル内鍵とを作用させて第１のラベル内比較値を生成すると共に、前記暗号化された第２の表の第２のラベルによって示される列のデータに前記第２のラベルと前記第２のラベル内鍵とを作用させて第２のラベル内比較値を生成するラベル内射影部と、
前記第１のラベル内比較値に前記第１のラベル間射影鍵を作用させて第１のラベル間比較値を生成すると共に、前記第２のラベル内比較値に前記第２のラベル間射影鍵を作用させて第２のラベル間比較値を生成するラベル間射影部と、
前記出力された第１および第２のラベル間比較値を利用して、前記暗号化された第１および第２の表に対する自然結合を実行する暗号化表自然結合部とを備えることを特徴とする暗号化データベースシステム。
【０１１８】
（付記２）  前記列暗号化部が、
前記秘密鍵と前記ラベルとからラベル間鍵を生成するラベル間鍵生成機能と、
前記群の生成子と前記ラベル間射影鍵とから第一ラベル公開鍵を生成する第一ラベル公開鍵生成機能と、
前記秘密鍵と前記列のデータとから単純比較値を生成する比較値生成機能と、
前記第一ラベル公開鍵と前記単純比較値と前記ラベル間鍵とからラベル内比較値を生成する隠蔽比較値生成機能と、
前記秘密鍵と前記ラベルとから前記ラベル内鍵を生成するラベル内鍵生成機能と、
前記ラベル内鍵によって前記ラベル内比較値を暗号化すると同時に前記秘密鍵によって前記列のデータを暗号化する暗号化機能とを備えることを特徴とする、付記１に記載の暗号化データベースシステム。
【０１１９】
（付記３）  前記ラベル内射影要求部が、前記秘密鍵と前記第１のラベルとから前記ラベル内鍵を生成するラベル内鍵生成機能を備えると共に、
前記ラベル間射影要求部が、
前記秘密鍵と前記第２のラベルとから前記ラベル間鍵を生成するラベル間射影鍵生成機能と、
前記群の生成子と前記ラベル間鍵とから第二ラベル公開鍵を生成する第二ラベル公開鍵生成機能と、
前記第１および第２のラベルと前記秘密鍵とから補間値を生成する補間値生成機能と、
前記第二ラベル公開鍵と前記補間値とからラベル間射影鍵を生成する射影鍵生成機能とを備えることを特徴とする、付記１に記載の暗号化データベースシステム。
【０１２０】
（付記４）  前記ラベル内射影部が、
前記ラベル内鍵と前記暗号化された第１および第２の表の暗号化された列データから第１および第２のラベル内比較値を生成するラベル内比較値生成機能を備えると共に、
前記ラベル間射影部が、
前記ラベル間射影鍵と前記第１および第２のラベル内比較値とを双線形写像の入力として、その出力を各々前記第１および第２のラベル間比較値として出力するラベル間比較値生成機能を備えることを特徴とする、付記１に記載の暗号化データベースシステム。
【０１２１】
（付記５）  暗号化データベースサーバと相互に接続されて暗号化データベースシステムを構成されるクライアント端末であって、
暗号鍵および当該暗号鍵の要部をなす第１および第２の群の生成子を予め記憶する記憶手段と、
外部から入力される第１の表の第１のラベルによって示される列のデータを前記暗号鍵および前記第１の群の生成子とによって暗号化すると共に、同じく外部から入力される第２の表の第２のラベルによって示される列のデータを前記暗号鍵および前記第２の群の生成子によって暗号化し、これら暗号化された第１および第２の表を外部に出力する列暗号化部と、
前記暗号鍵と前記第１のラベルとから第１のラベル内鍵を生成すると共に、前記暗号鍵と前記第２のラベルとから第２のラベル内鍵を生成し、これら第１および第２のラベル内鍵を外部に出力するラベル内射影要求部と、
前記暗号鍵と前記第１の群の生成子と前記第１および第２のラベル内鍵とから第１のラベル間射影鍵を生成すると共に、前記暗号鍵と前記第２の群の生成子と前記第１および第２のラベル内鍵とから第２のラベル間射影鍵を生成し、これら第１および第２のラベル間射影鍵を外部に出力するラベル間射影要求部とを備えることを特徴とするクライアント端末。
【０１２２】
（付記６）  クライアント端末と相互に接続されて暗号化データベースシステムを構成される暗号化データベースサーバであって、
前記クライアント端末から送信される第１のラベルによって示される列が暗号化された第１の表および第２のラベルによって示される列が暗号化された第２の表を受信して記憶すると共に、前記クライアント端末から送信される第１および第２のラベル内鍵と前記第１および第２のラベル間射影鍵とを受信するデータ受信部と、
前記暗号化された第１の表の第１のラベルによって示される列のデータに前記第１のラベルと前記第１のラベル内鍵とを作用させて第１のラベル内比較値を生成すると共に、前記暗号化された第２の表の第２のラベルによって示される列のデータに前記第２のラベルと前記第２のラベル内鍵とを作用させて第２のラベル内比較値を生成するラベル内射影部と、
前記第１のラベル内比較値に前記第１のラベル間射影鍵を作用させて第１のラベル間比較値を生成すると共に、前記第２のラベル内比較値に前記第２のラベル間射影鍵を作用させて第２のラベル間比較値を生成するラベル間射影部と、
前記出力された第１および第２のラベル間比較値を利用して、前記暗号化された第１および第２の表に対する自然結合を実行する暗号化表自然結合部とを備えることを特徴とする暗号化データベースサーバ。
【０１２３】
（付記７）  クライアント端末と暗号化データベースサーバとが相互に接続されて構成される暗号化データベースシステムにあって、
外部から入力される第１の表の第１のラベルによって示される列のデータを前記クライアント端末の列暗号化部があらかじめ記憶された暗号鍵および当該暗号鍵の要部をなす第１の群の生成子とによって暗号化して外部に出力し、
外部から入力される第２の表の第２のラベルによって示される列のデータを前記クライアント端末の列暗号化部が前記暗号鍵およびあらかじめ記憶された前記暗号鍵の要部をなす第２の群の生成子とによって暗号化して外部に出力し、
前記暗号鍵と前記第１のラベルとから前記クライアント端末のラベル内射影要求部が第１のラベル内鍵を生成して外部に出力し、
前記暗号鍵と前記第２のラベルとから前記クライアント端末のラベル内射影要求部が第２のラベル内鍵を生成して外部に出力し、
前記暗号鍵と前記第１の群の生成子と、前記第１および第２のラベル内鍵から前記クライアント端末のラベル間射影要求部が第１のラベル間射影鍵を生成して外部に出力し、
前記暗号鍵と前記第２の群の生成子と、前記第１および第２のラベル内鍵から前記クライアント端末のラベル間射影要求部が第２のラベル間射影鍵を生成して外部に出力し、
前記暗号化された第１および第２の表、前記第１および第２のラベル内鍵と前記第１および第２のラベル間射影鍵を前記暗号化データベースサーバのデータ受信部が受信し、
前記暗号化された第１の表の第１のラベルによって示される列のデータに前記暗号化データベースサーバのラベル内射影部が前記第１のラベルと前記第１のラベル内鍵とを作用させて第１のラベル内比較値を生成し、
前記暗号化された第２の表の第２のラベルによって示される列のデータに前記暗号化データベースサーバのラベル内射影部が前記第２のラベルと前記第２のラベル内鍵とを作用させて第２のラベル内比較値を生成し、
前記第１のラベル内比較値に前記暗号化データベースサーバのラベル間射影部が前記第１のラベル間射影鍵を作用させて第１のラベル間比較値を生成し、
前記第２のラベル内比較値に前記暗号化データベースサーバのラベル間射影部が前記第２のラベル間射影鍵を作用させて第２のラベル間比較値を生成し、
前記第１および第２のラベル間比較値を利用して、前記暗号化データベースサーバの暗号化表自然結合部が前記暗号化された第１および第２の表に対する自然結合を実行することを特徴とする暗号化表の自然結合方法。
【０１２４】
（付記８）  クライアント端末と暗号化データベースサーバとが相互に接続されて構成される暗号化データベースシステムにあって、
前記クライアント端末が備えているコンピュータに、
外部から入力される第１の表の第１のラベルによって示される列のデータをあらかじめ記憶された暗号鍵および当該暗号鍵の要部をなす第１の群の生成子とによって暗号化して外部に出力する手順、
外部から入力される第２の表の第２のラベルによって示される列のデータを前記暗号鍵およびあらかじめ記憶された前記暗号鍵の要部をなす第２の群の生成子とによって暗号化して外部に出力する手順、
前記暗号鍵と前記第１のラベルとから第１のラベル内鍵を生成して外部に出力する手順、
前記暗号鍵と前記第２のラベルとから第２のラベル内鍵を生成して外部に出力する手順、
前記暗号鍵と前記第１の群の生成子と、前記第１および第２のラベル内鍵から第１のラベル間射影鍵を生成して外部に出力する手順、
および前記暗号鍵と前記第２の群の生成子と、前記第１および第２のラベル内鍵から第２のラベル間射影鍵を生成して外部に出力する手順
を実行させることを特徴とする暗号化表の自然結合プログラム。
【０１２５】
（付記９）  クライアント端末と暗号化データベースサーバとが相互に接続されて構成される暗号化データベースシステムにあって、
暗号化データベースサーバが備えているコンピュータに、
前記暗号化された第１および第２の表、前記第１および第２のラベル内鍵と前記第１および第２のラベル間射影鍵を受信する手順、
前記暗号化された第１の表の第１のラベルによって示される列のデータに前記第１のラベルと前記第１のラベル内鍵とを作用させて第１のラベル内比較値を生成する手順、
前記暗号化された第２の表の第２のラベルによって示される列のデータに前記第２のラベルと前記第２のラベル内鍵とを作用させて第２のラベル内比較値を生成する手順、
前記第１のラベル内比較値に前記第１のラベル間射影鍵を作用させて第１のラベル間比較値を生成する手順、
前記第２のラベル内比較値に前記第２のラベル間射影鍵を作用させて第２のラベル間比較値を生成する手順、
および前記第１および第２のラベル間比較値を利用して、前記暗号化された第１および第２の表に対する自然結合を実行する手順
を実行させることを特徴とする暗号化表の自然結合プログラム。
【０１２６】
この出願は２０１０年１２月１３日に出願された日本出願特願２０１０−２７７０７０を基礎とする優先権を主張し、その開示の全てをここに取り込む。
【産業上の利用可能性】
【０１２７】
本発明は暗号化データベースシステムにおいて一般的に適用可能である。特に、頻繁に自然結合処理を行う必要のあるデータベースシステムで機密情報の漏洩を防止するという点において、優れた効果を発揮する。
【符号の説明】
【０１２８】
１  暗号化データベース管理システム
１０  暗号化データベースクライアント
１１、５１  主演算制御手段
１２、５２  記憶手段
１３  入力手段
１４  出力手段
１５、５３  通信手段
２１  列暗号化部
２１ａ  ラベル内鍵生成機能
２１ｂ  ラベル間鍵生成機能
２１ｃ  第一ラベル公開鍵生成機能
２１ｄ  比較値生成機能
２１ｅ  隠蔽比較値生成機能
２１ｆ  暗号化機能
２１ｇ  乱数生成機能
２２  ラベル内射影要求部
２３  ラベル間射影要求部
２３ａ  ラベル間射影鍵生成機能
２３ｂ  第二ラベル公開鍵生成機能
２３ｃ  補間値生成機能
２３ｄ  射影鍵生成機能
３１  秘密鍵
３２ａ、３２ｂ  群の生成子
３３ａ、３３ｂ  ラベル
３４ａ、３４ｂ  列データ
３５  表Ａ
３６  表Ｂ
３７  暗号化表Ａ
３８  暗号化表Ｂ
３９ａ、３９ｂ  暗号化列データ
４１ａ  ラベル間鍵
４１ｂ  第一ラベル公開鍵
４１ｃ  単純比較値
４１ｄ  ラベル内比較値
４１ｅ  ラベル内鍵
４１ｆ、４３ａ  暗号文
４１ｇ  乱数
４２ａ  第二ラベル公開鍵
４２ｂ  補間値
４２ｃ  ラベル間射影鍵
４３  ラベル内比較値
５０  暗号化データベースサーバ
６１  ラベル内射影部
６１ａ  ラベル内比較値生成機能
６２  ラベル間射影部
６２ａ  ラベル間比較値生成機能
６３  暗号化表自然結合部
６４  データ受信部
８１  暗号化表Ａ×Ｂ
１００  別のクライアント
１２１  復号化部
１３１  公開鍵
【図１】
2012081450.tif 000025
【図２】
2012081450.tif 000026
【図３】
2012081450.tif 000027
【図４】
2012081450.tif 000028
【図５】
2012081450.tif 000029
【図６】
2012081450.tif 000030
【図７】
2012081450.tif 000031
【図８】
2012081450.tif 000032
【図９】
2012081450.tif 000033
【図１０】
2012081450.tif 000034
【図１１】
2012081450.tif 000035
【図１２】
2012081450.tif 000036
【図１３】
2012081450.tif 000037
【図１４】
2012081450.tif 000038
【図１５】
2012081450.tif 000039
【図１６】
2012081450.tif 000040
【図１７】
2012081450.tif 000041
【図１８】
2012081450.tif 000042
【図１９】
2012081450.tif 000043
【図２０】
2012081450.tif 000044
【図２１】
2012081450.tif 000045
【図２２】
2012081450.tif 000046
【図２３】
2012081450.tif 000047
【図２４】
2012081450.tif 000048
【図２５】
2012081450.tif 000049
【国際調査報告】
2012081450.tif 000050
2012081450.tif 000051
2012081450.tif 000052
2012081450.tif 000053