JP5348337B2 - 暗号化データベース管理システム、クライアントおよびサーバ、自然結合方法およびプログラム - Google Patents

暗号化データベース管理システム、クライアントおよびサーバ、自然結合方法およびプログラム Download PDF

Info

Publication number
JP5348337B2
JP5348337B2 JP2012548744A JP2012548744A JP5348337B2 JP 5348337 B2 JP5348337 B2 JP 5348337B2 JP 2012548744 A JP2012548744 A JP 2012548744A JP 2012548744 A JP2012548744 A JP 2012548744A JP 5348337 B2 JP5348337 B2 JP 5348337B2
Authority
JP
Japan
Prior art keywords
label
key
encrypted
intra
inter
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2012548744A
Other languages
English (en)
Other versions
JPWO2012081450A1 (ja
Inventor
潤 古川
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Priority to JP2012548744A priority Critical patent/JP5348337B2/ja
Application granted granted Critical
Publication of JP5348337B2 publication Critical patent/JP5348337B2/ja
Publication of JPWO2012081450A1 publication Critical patent/JPWO2012081450A1/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6227Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database where protection concerns the structure of data, e.g. records, types, queries
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0894Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3066Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Bioethics (AREA)
  • Databases & Information Systems (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Analysis (AREA)
  • Algebra (AREA)
  • Storage Device Security (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本発明は暗号化データベース管理システム、クライアントおよびサーバ、自然結合方法およびプログラムに関し、特に、暗号化されたデータベースの複数の表を、データの各要素を完全に復号化することなしに自然結合することを可能とする暗号化データベース管理システム等に関する。
企業などにおける業務の根幹がコンピュータ化されることによって、ほとんどの企業が業務で使用する大量のデータを収容する大規模データベースを持つようになっている。これらのデータは、業務上重要なデータであり、また個人情報保護の観点からも、外部に対して漏洩することは絶対にあってはならない。このため、そのような大規模データベースでは、収容されるデータが暗号化されていることが多い。
データベースは多くの表(テーブル)の集合体として捉えることができる。ここでいう「自然結合」とは、2つの表で同一のデータを示す列がある場合に、それらの列を統一することによって、これら2つの表を1つに結合することをいう。以下、非特許文献1などに記載されている、収容されているデータが暗号化されたデータベース(以後暗号化データベースという)で2つの表を自然結合するために行われている一般的な手法について説明する。
図18は、暗号化データベースについての一般的な技術に係る暗号化データベース管理システム901の構成について示す説明図である。暗号化データベース管理システム901は、暗号化データベースクライアント910と暗号化データベースサーバ950とが、LAN(Local Area Network)などを介して相互に接続されて構成される。
暗号化データベースクライアント910は、一般的なコンピュータ装置としての構成を備える。即ち、暗号化データベースクライアント910は、コンピュータプログラムを実行する主体となる主演算制御手段(CPU: Central Processing Unit)911と、データを記憶する記憶手段912と、ユーザからの操作を受け付ける入力手段913と、ユーザに処理結果を提示する出力手段914と、他のコンピュータとのデータ通信を行う通信手段915とを備える。
主演算制御手段911では、ユーザからの操作命令に応じて、列暗号化部921、および暗号化表自然結合要求部922が、各々コンピュータプログラムとして後述するそれぞれの機能を実行されるように構成されている。また、記憶手段912には以後に説明する処理で使用する各々別個の秘密鍵key931a、秘密鍵key’931bが記憶されている。そして入力手段913には、暗号化および自然結合の対象となる表A932および表B933が入力される。
暗号化データベースサーバ950もまた、一般的なコンピュータ装置としての構成を備える。即ち、暗号化データベースサーバ950は、コンピュータプログラムを実行する主体となる主演算制御手段971と、データを記憶する記憶手段952と、他のコンピュータとのデータ通信を行う通信手段953とを備える。
主演算制御手段971では、暗号化データベースクライアント910からの操作命令に応じて、暗号化表自然結合部963と、データ受信部964とがコンピュータプログラムとして後述するそれぞれの機能を実行されるように構成されている。
また、記憶手段952にはデータ受信部964が暗号化データベースクライアント910から受信した、各々表A933および表B934を暗号化した暗号化表A941および暗号化表B942、および暗号化データベースクライアント910の秘密鍵key931aおよび秘密鍵key’931bに各々対応する公開鍵pkey972aおよび公開鍵pkey’972bが記憶される。
図19は、図18に示した列暗号化部921の機能についてより詳しく説明する説明図である。列暗号化部921は、暗号化機能921aと表更新機能921bとを備える。暗号化機能921aは、表A932の特定の列(この列を列aという)を、秘密鍵key931aを利用して暗号化して暗号文943を出力する。表更新機能921bは、この暗号文943で列aの各データを置き換えたものを暗号化表A941として出力して暗号化データベースサーバ950に送信する。暗号化データベースサーバ950では、データ受信部964がこれらを記憶手段953に記憶する。
列暗号化部921は同様に、秘密鍵key’931bを利用して、表B933の特定の列(この列を列bという)を暗号文で置き換えた暗号化表B942も出力して記憶手段912に記憶する。なお、暗号化表A941の表識別子932a=「A」、列aの列識別子932c=「a」、暗号化表B942の表識別子933a=「B」、および列bの列識別子933c=「b」は、各々暗号化の対象ではないので、暗号化表A941および暗号化表B942に付随して記憶手段953に記憶されると同時に、暗号化データベースクライアント910の記憶手段912にも記憶される。
図20は、図18に示した暗号化表自然結合要求部922の機能についてより詳しく説明する説明図である。暗号化表自然結合要求部922は、暗号化表A941の表識別子932a=「A」、列aの列識別子932c=「a」、暗号化表B942の表識別子933a=「B」、および列bの列識別子933c=「b」から、列aと列bをキーとして暗号化表A941および暗号化表B942を自然結合することを命令する自然結合要求文971を発行して暗号化データベースサーバ950に送信する。暗号化データベースサーバ950では、これを受けたデータ受信部964が暗号化表自然結合部963を自然結合要求文971に従って動作させる。
図21は、図18に示した暗号化表自然結合部963の機能についてより詳しく説明する説明図である。暗号化表自然結合部963は、復号化機能963a、自然結合機能963b、および再暗号化機能963cを備える。復号化機能963aは、暗号化表A941および暗号化表B942で暗号化された列aおよび列bのデータを、秘密鍵key931aおよび秘密鍵key’931bに各々対応する公開鍵pkey972aおよび公開鍵pkey’972bを利用して復号化して、暗号化される前の表A932および表B933に戻す。
自然結合機能963bは、自然結合要求文971で命令された通りに、表A932の列aと表B933の列bとをキーとして表A932および表B933を自然結合する。再暗号化機能963cは、結合された表A932および表B933のキーとなった列a(列b)を再暗号化して、得られた暗号化表A×B981を暗号化データベースクライアント910に返送する。再暗号化には、ここでは公開鍵pkey972aを利用しているが、もちろん他の暗号鍵でもよい。
図22は、図18に示した暗号化データベース管理装置910で、暗号化される前の表A932の一例を示す説明図である。図22で示されている例では、表932の第1列932aを「ユーザ名」、第2列932bを「クレジットカード番号」として、各ユーザ名に対応するカード番号の対応関係を示している。
暗号化データベース管理装置910は、秘匿すべきデータに対して秘密鍵keyを利用し、ハッシュ関数などのような暗号化関数encによって対象データを暗号化する。図23は、図18に示した列暗号化部921が、図22に示した表A932を暗号化した状態の暗号化表A941を示す説明図である。ここでは、第2列932b「クレジットカード番号」を秘匿すべき対象とし、平文mを暗号鍵で暗号化したデータをenc(key、m)と表している。
秘密鍵keyは各々の表に対して固有に与えられる。暗号化は確定的なものであるので、平文mと秘密鍵keyが決定されれば、enc(key、m)の値も一意に決定される。ただし、暗号化関数encはハッシュ関数などのような不可逆関数である方が望ましい。
このようにすれば、図22に示した暗号化表A941が外部に漏洩したとしても、秘密鍵keyが漏洩しなければ、クレジットカード番号が漏洩することはない。また、秘密鍵keyを持つ正当なユーザであれば、クレジットカード番号によってこの表を検索することができる。たとえば、クレジットカード番号「12334」を持つユーザを検索する場合には、enc(key、12334)で検索すればよい。
これに関連する技術文献として、次の各々がある。特許文献1には、暗号化データの送受信で、ユーザが復号鍵を紛失してもその復号鍵を回復できる鍵回復情報を持った暗号化情報を送受信できる暗号化復号化装置について記載されている。特許文献2には、2つのテーブルを結合したテーブルを高速に検索することを可能とするという自然結合高速演算方法について記載されている。
特許文献3には、データベースの等結合にかかる計算コストを下げることが可能であるという結合サイズ評価方法について記載されている。特許文献4には、ユーザが正しいSQL文を生成できるようユーザをガイドするというデータベース問い合わせシステムについて記載されている。特許文献5には、複数の暗号文に対して証明のための情報系列を作成することによって、秘密情報を開示せずに複数の暗号文の平文同一性を証明するという暗号システムについて記載されている。特許文献6には、作成した暗号鍵を別の鍵でさらに暗号化することによって、稼動中に暗号鍵や暗号化アルゴリズムの変更を可能とするデータベースシステムについて記載されている。
非特許文献1には、前述した暗号化データベースについての既存の技術が記載されている。非特許文献2には、表の自然結合を含めたデータベースについての一般的な内容について記載されている。
特開2000−267565号公報 特開平02−132559号公報 特開平10−124533号公報 特表平09−510565号公報 特開平11−065441号公報 特開平11−143780号公報
PaulNeedham他、「OracleAdvanced Securityテクニカル・ホワイト・ペーパー」、日本オラクル株式会社、2007年6月、[平成22年9月3日検索]、インターネット<URL:http://otndnld.oracle.co.jp/products/database/oracle11g/pdf/twp_security_db_advancedsecurity_11gR1.pdf> 北川博之、「データベースシステム」、昭晃堂、1996年7月
データベースは、大量のデータの中から単に必要なデータを抽出するだけではなく、SQL(Structured Query Language)コマンドなどによって複数の表を結合することが頻繁に行われる。暗号化されたデータに対しても、この表を自然結合する演算を、セキュリティを損なうことなく容易に行えることが当然望まれる。
しかしながら、前述のように暗号鍵keyは各々の表に対して固有に与えられるものであるので、異なる表には異なる暗号鍵が与えられることになる。従って、異なる表にある同一の値を持つデータは、異なる暗号鍵によって暗号化されると異なるデータとなる。このため、図18で示した暗号化データベース管理システム901で、列暗号化部921によって暗号化されたデータをキーとして異なる表を結合する演算を行うためには、前述したように該データを一度復号化してから結合する必要がある。
このことをより具体的に説明する。図24は、図18で示した暗号化データベース管理装置901で、複数の暗号化表A941および暗号化表B942に対して自然結合の演算を行う場合の例についての説明図である。図24(a)は暗号化表A941を、図24(b)は暗号化表B942を、図24(c)は表A×B981について各々示す。暗号化表A941は、第1列932aを「ユーザ名」、第2列932bを「クレジットカード番号」として、各ユーザ名に対応するカード番号の対応関係を示す。そして第2列941bは、秘密鍵key931aによって暗号化されている。暗号化表B942は、第1列933aを「クレジットカード番号」、第2列933bを「クレジットカード有効期限」として、各カードの有効期限について示している。そして第1列942aは、秘密鍵key’931bによって暗号化されている。
ここで、該データベースの管理者が「ユーザ名」と「クレジットカード有効期限」との対応について知りたい場合には、暗号化表自然結合要求部922によって、暗号化表A941および暗号化表B942を列941bおよび942aの「クレジットカード番号」をキーとして自然結合するよう自然結合命令文971を発行する。この処理によって、第1列981a「ユーザ名」、第2列981b「クレジットカード番号」、第3列981c「クレジットカード有効期限」という3列を持つ暗号化表A×B981が得られることが期待される。
しかしながら、暗号化表A941および暗号化表B942は、各々異なる暗号鍵によって暗号化されているので、平文の段階では同一のデータであっても、異なる暗号鍵によって異なるデータとなる。従って、暗号化表自然結合部963は、暗号化されたデータをそのまま自然結合のキーとすることはできない。この処理を行うためには、図21に示した復号化機能963aによって列941bおよび942aを復号化する処理が必要となる。
この処理には、暗号化表A941および暗号化表B942に対する秘密鍵key931aおよび秘密鍵key’931bに各々対応する公開鍵pkey972aおよび公開鍵pkey’972bが必要である。これらの公開鍵を利用すれば、この処理を行うために列941bおよび942aを復号化することは可能ではある。しかしながら、この処理を行っている間は復号化された平文のデータが装置に記憶されることになるので、その間にその平文のデータが漏洩する危険性を否定することはできない。
図25は、上述の問題を解決するため、key=key’、即ち同一の暗号鍵keyを利用して暗号化された暗号化表C1001および暗号化表D1002に対して自然結合の演算を行う例についての説明図である。図25(a)は暗号化表C1001を、図25(b)は暗号化表D1002を、図25(c)は暗号化表C×D1003について各々示す。この暗号鍵keyは、公開鍵方式のものであっても、共通鍵方式のものであってもよい。
暗号化表C1001は、第1列1001aを「ユーザ名」、第2列1001bを「クレジットカード番号」として、各ユーザ名に対応するカード番号の対応関係を示す。そして第2列1001bは、暗号鍵keyによって暗号化されている。暗号化表D1002は、第1列1002aを「クレジットカード番号」、第2列1002bを「ブラックリスト登録日」として、各カードの有効期限について示している。そして第1列1002aは、表C1001と同一の暗号鍵keyによって暗号化されている。
暗号鍵keyが同一であれば、暗号化表C1001の第2列1001bと暗号化表D1002の第1列1002aとで、暗号化前のデータが同一であれば、暗号化された後も同一データとなるので、復号化機能963aを利用しなくて暗号化表C1001および暗号化表D1002をそのまま自然結合して暗号化表C×D1003を得ることが可能である。しかしながら、このことは同時に、暗号鍵keyを持たない不当なユーザであっても、暗号化されたデータをキーとして暗号化表C1001および暗号化表D1002を自然結合して暗号化表C×D1003を得る処理ができてしまうことを意味する。このようなことは、暗号化データベースの管理において、望ましいことではない。
即ち、正当な暗号鍵を持つユーザであれば、暗号化されたデータを復号化する処理を行わなくとも、暗号化されたデータをキーとして複数の表を自然結合することが可能で、かつ正当な暗号鍵を持たない不当なユーザには暗号化されたデータをキーとする自然結合ができない、そのような特徴を持つ暗号化データベース管理装置が求められている。かつ、データベースは膨大な量のデータを扱うものであるので、この処理を行うことによる計算量の大幅な増大も抑制されなければならない。
前述の各特許文献および非特許文献は、いずれもこの問題を解決することを目的とはしていないので、当然ながらこの問題を解決しうる技術は記載されていない。
本発明の目的は、暗号化されたデータベースの複数の表を、データの各要素を復号化する処理を行わず、かつ計算量を大幅に増大させることもなく、暗号化されたデータをキーとして自然結合することを可能とする暗号化データベース管理システム、クライアントおよびサーバ、自然結合方法およびプログラムを提供することにある。
上記目的を達成するため、本発明に係る暗号化データベース管理システムは、クライアント端末と暗号化データベースサーバとが相互に接続されて構成される暗号化データベースシステムであって、クライアント端末が、暗号鍵および当該暗号鍵の要部をなす第1および第2の群の生成子を予め記憶する記憶手段と、外部から入力される第1の表の第1のラベルによって示される列のデータを暗号鍵および第1の群の生成子とによって暗号化すると共に、同じく外部から入力される第2の表の第2のラベルによって示される列のデータを暗号鍵および第2の群の生成子によって暗号化し、これら暗号化された第1および第2の表を外部に出力する列暗号化部と、暗号鍵と第1のラベルとから第1のラベル内鍵を生成すると共に、暗号鍵と第2のラベルとから第2のラベル内鍵を生成し、これら第1および第2のラベル内鍵を外部に出力するラベル内射影要求部と、暗号鍵と第1の群の生成子と第1および第2のラベル内鍵とから第1のラベル間射影鍵を生成すると共に、暗号鍵と第2の群の生成子と第1および第2のラベル内鍵とから第2のラベル間射影鍵を生成し、これら第1および第2のラベル間射影鍵を外部に出力するラベル間射影要求部とを備え、
暗号化データベースサーバが、暗号化された第1および第2の表を受信して記憶すると共に、第1および第2のラベル内鍵と第1および第2のラベル間射影鍵とを受信するデータ受信部と、暗号化された第1の表の第1のラベルによって示される列のデータに第1のラベルと第1のラベル内鍵とを作用させて第1のラベル内比較値を生成すると共に、暗号化された第2の表の第2のラベルによって示される列のデータに第2のラベルと第2のラベル内鍵とを作用させて第2のラベル内比較値を生成するラベル内射影部と、第1のラベル内比較値に第1のラベル間射影鍵を作用させて第1のラベル間比較値を生成すると共に、第2のラベル内比較値に第2のラベル間射影鍵を作用させて第2のラベル間比較値を生成するラベル間射影部と、出力された第1および第2のラベル間比較値を利用して、暗号化された第1および第2の表に対する自然結合を実行する暗号化表自然結合部とを備えることを特徴とする。
上記目的を達成するため、本発明に係るクライアント端末は、暗号化データベースサーバと相互に接続されて暗号化データベースシステムを構成されるクライアント端末であって、暗号鍵および当該暗号鍵の要部をなす第1および第2の群の生成子を予め記憶する記憶手段と、外部から入力される第1の表の第1のラベルによって示される列のデータを暗号鍵および第1の群の生成子とによって暗号化すると共に、同じく外部から入力される第2の表の第2のラベルによって示される列のデータを暗号鍵および第2の群の生成子によって暗号化し、これら暗号化された第1および第2の表を外部に出力する列暗号化部と、暗号鍵と第1のラベルとから第1のラベル内鍵を生成すると共に、暗号鍵と第2のラベルとから第2のラベル内鍵を生成し、これら第1および第2のラベル内鍵を外部に出力するラベル内射影要求部と、暗号鍵と第1の群の生成子と第1および第2のラベル内鍵とから第1のラベル間射影鍵を生成すると共に、暗号鍵と第2の群の生成子と第1および第2のラベル内鍵とから第2のラベル間射影鍵を生成し、これら第1および第2のラベル間射影鍵を外部に出力するラベル間射影要求部とを備えることを特徴とする。
上記目的を達成するため、本発明に係る暗号化データベースサーバは、クライアント端末と相互に接続されて暗号化データベースシステムを構成される暗号化データベースサーバであって、クライアント端末から送信される第1のラベルによって示される列が暗号化された第1の表および第2のラベルによって示される列が暗号化された第2の表を受信して記憶すると共に、クライアント端末から送信される第1および第2のラベル内鍵と第1および第2のラベル間射影鍵とを受信するデータ受信部と、暗号化された第1の表の第1のラベルによって示される列のデータに第1のラベルと第1のラベル内鍵とを作用させて第1のラベル内比較値を生成すると共に、暗号化された第2の表の第2のラベルによって示される列のデータに第2のラベルと第2のラベル内鍵とを作用させて第2のラベル内比較値を生成するラベル内射影部と、第1のラベル内比較値に第1のラベル間射影鍵を作用させて第1のラベル間比較値を生成すると共に、第2のラベル内比較値に第2のラベル間射影鍵を作用させて第2のラベル間比較値を生成するラベル間射影部と、出力された第1および第2のラベル間比較値を利用して、暗号化された第1および第2の表に対する自然結合を実行する暗号化表自然結合部とを備えることを特徴とする。
上記目的を達成するため、本発明に係る自然結合方法は、クライアント端末と暗号化データベースサーバとが相互に接続されて構成される暗号化データベースシステムにあって、外部から入力される第1の表の第1のラベルによって示される列のデータをクライアント端末の列暗号化部があらかじめ記憶された暗号鍵および当該暗号鍵の要部をなす第1の群の生成子とによって暗号化して外部に出力し、外部から入力される第2の表の第2のラベルによって示される列のデータをクライアント端末の列暗号化部が暗号鍵および暗号鍵の要部をなすあらかじめ記憶された第2の群の生成子とによって暗号化して外部に出力し、暗号鍵と第1のラベルとからクライアント端末のラベル内射影要求部が第1のラベル内鍵を生成して外部に出力し、暗号鍵と第2のラベルとからクライアント端末のラベル内射影要求部が第2のラベル内鍵を生成して外部に出力し、暗号鍵と第1の群の生成子と、第1および第2のラベル内鍵からクライアント端末のラベル間射影要求部が第1のラベル間射影鍵を生成して外部に出力し、暗号鍵と第2の群の生成子と、第1および第2のラベル内鍵からクライアント端末のラベル間射影要求部が第2のラベル間射影鍵を生成して外部に出力し、暗号化された第1および第2の表、第1および第2のラベル内鍵と第1および第2のラベル間射影鍵を暗号化データベースサーバのデータ受信部が受信し、暗号化された第1の表の第1のラベルによって示される列のデータに暗号化データベースサーバのラベル内射影部が第1のラベルと第1のラベル内鍵とを作用させて第1のラベル内比較値を生成し、暗号化された第2の表の第2のラベルによって示される列のデータに暗号化データベースサーバのラベル内射影部が第2のラベルと第2のラベル内鍵とを作用させて第2のラベル内比較値を生成し、第1のラベル内比較値に暗号化データベースサーバのラベル間射影部が第1のラベル間射影鍵を作用させて第1のラベル間比較値を生成し、第2のラベル内比較値に暗号化データベースサーバのラベル間射影部が第2のラベル間射影鍵を作用させて第2のラベル間比較値を生成し、第1および第2のラベル間比較値を利用して、暗号化データベースサーバの暗号化表自然結合部が暗号化された第1および第2の表に対する自然結合を実行することを特徴とする。
上記目的を達成するため、本発明に係る自然結合プログラムは、クライアント端末と暗号化データベースサーバとが相互に接続されて構成される暗号化データベースシステムにあって、クライアント端末が備えているコンピュータに、外部から入力される第1の表の第1のラベルによって示される列のデータをあらかじめ記憶された暗号鍵および当該暗号鍵の要部をなす第1の群の生成子とによって暗号化して外部に出力する手順、外部から入力される第2の表の第2のラベルによって示される列のデータを暗号鍵およびあらかじめ記憶された暗号鍵の要部をなす第2の群の生成子とによって暗号化して外部に出力する手順、暗号鍵と第1のラベルとから第1のラベル内鍵を生成して外部に出力する手順、暗号鍵と第2のラベルとから第2のラベル内鍵を生成して外部に出力する手順、暗号鍵と第1の群の生成子と、第1および第2のラベル内鍵から第1のラベル間射影鍵を生成して外部に出力する手順、および暗号鍵と第2の群の生成子と、第1および第2のラベル内鍵から第2のラベル間射影鍵を生成して外部に出力する手順を実行させることを特徴とする。
上記目的を達成するため、本発明に係る他の自然結合プログラムは、クライアント端末と暗号化データベースサーバとが相互に接続されて構成される暗号化データベースシステムにあって、暗号化データベースサーバが備えているコンピュータに、暗号化された第1および第2の表、第1および第2のラベル内鍵と第1および第2のラベル間射影鍵を受信する手順、暗号化された第1の表の第1のラベルによって示される列のデータに第1のラベルと第1のラベル内鍵とを作用させて第1のラベル内比較値を生成する手順、暗号化された第2の表の第2のラベルによって示される列のデータに第2のラベルと第2のラベル内鍵とを作用させて第2のラベル内比較値を生成する手順、第1のラベル内比較値に第1のラベル間射影鍵を作用させて第1のラベル間比較値を生成する手順、第2のラベル内比較値に第2のラベル間射影鍵を作用させて第2のラベル間比較値を生成する手順、および第1および第2のラベル間比較値を利用して、暗号化された第1および第2の表に対する自然結合を実行する手順を実行させることを特徴とする。
本発明は、上述したようにクライアント端末の側で暗号鍵と結合対象となる列を示すラベルからラベル内鍵とラベル間鍵とを生成して暗号化データベースサーバに送信するように構成したので、このラベル内鍵とラベル間鍵とを受信した暗号化データベースサーバのみが、第1の表および第2の表において指定された列のデータが等しいか否かを判断可能となる。
これによって、暗号化されたデータベースの複数の表を、データの各要素を復号化する処理を行わず、かつ計算量を大幅に増大させることもなく、暗号化されたデータをキーとして自然結合することが可能であるという優れた特徴を持つ暗号化データベース管理システム、クライアントおよびサーバ、自然結合方法およびプログラムを提供することができる。
本発明に係る暗号化データベース管理システムの構成を示す説明図である。 図1に示した表Aおよび表Bについて詳しく説明する説明図である。図2(a)は表Aを、図2(b)は表Bについて各々示す。 図1に示した暗号化データベースクライアントの、暗号化装置としてのより詳しい構成を示す説明図である。 図3に示した暗号化部の処理について示すフローチャートである。 図4に示した処理によって暗号化が完了した暗号化表Aおよび暗号化表Bについて示す説明図である。図5(a)は暗号化表Aを、図5(b)は暗号化表Bについて各々示す。 暗号化データベースサーバのデータ受信部が暗号化表Aを記憶する動作について示すフローチャートである。 図1に示した別のクライアントの、復号化装置としてのより詳しい構成を示す説明図である。 図7に示した復号化部の処理について示すフローチャートである。 図1に示した暗号化データベースクライアントの、ラベル内射影要求装置としてのより詳しい構成を示す説明図である。 図9に示したラベル内射影要求部の処理について示すフローチャートである。 図1に示した暗号化データベースクライアントの、ラベル間射影要求装置としてのより詳しい構成を示す説明図である。 図11に示したラベル間射影要求部の処理について示すフローチャートである。 図1に示した暗号化データベースサーバの、ラベル内射影装置としてのより詳しい構成を示す説明図である。 図13に示したラベル内射影部の処理について示すフローチャートである。 図1に示した暗号化データベースサーバの、ラベル間射影装置としてのより詳しい構成を示す説明図である。 図15に示したラベル間射影部の処理について示すフローチャートである。 暗号化表自然結合部が、暗号化表Aおよび暗号化表Bを自然結合する処理について示すフローチャートである。 暗号化データベースについての一般的な技術に係る暗号化データベース管理システムの構成について示す説明図である。 図18に示した列暗号化部の機能についてより詳しく説明する説明図である。 図18に示した暗号化表自然結合要求部の機能についてより詳しく説明する説明図である。 図18に示した暗号化表自然結合部の機能についてより詳しく説明する説明図である。 図18に示した暗号化データベース管理装置で、暗号化される前の表Aの一例を示す説明図である。 図18に示した列暗号化部が、図22に示した表Aを暗号化した状態の暗号化表Aを示す説明図である。 図18で示した暗号化データベース管理装置で、複数の暗号化表Aおよび暗号化表Bに対して自然結合の演算を行う場合の例についての説明図である。図24(a)は暗号化表Aを、図24(b)は暗号化表Bを、図24(c)は表A×Bについて各々示す。 上述の問題を解決するため、key=key’、即ち同一の暗号鍵keyを利用して暗号化された暗号化表Cおよび暗号化表Dに対して自然結合の演算を行う例についての説明図である。図25(a)は暗号化表Cを、図25(b)は暗号化表Dを、図25(c)は暗号化表C×Dについて各々示す。
(第1の実施形態)
以下、本発明の第1の実施形態の構成について添付図1、4、7、9、11、13、15に基づいて説明する。
最初に、本実施形態の基本的な内容について説明し、その後でより具体的な内容について説明する。
本実施形態に係る暗号化データベースシステム(暗号化データベース管理システム1)は、クライアント端末(暗号化データベースクライアント10)と暗号化データベースサーバ50とが相互に接続されて構成される暗号化データベースシステムである。クライアント端末(暗号化データベースクライアント10)は、暗号鍵(秘密鍵31)および第1および第2の群の生成子32a〜bを予め記憶する記憶手段12と、外部から入力される第1の表(表A35)の第1のラベル(ラベル33a)によって示される列のデータを暗号鍵および第1の群の生成子とによって暗号化し、同じく外部から入力される第2の表(表B36)の第2のラベル(ラベル33b)によって示される列のデータを暗号鍵および第2の群の生成子によって暗号化してこれら暗号化された第1および第2の表を外部に出力する列暗号化部21と、暗号鍵と第1のラベルとから第1のラベル内鍵を生成し、暗号鍵と第2のラベルとから第2のラベル内鍵を生成してこれら第1および第2のラベル内鍵を外部に出力するラベル内射影要求部22と、暗号鍵と第1の群の生成子と、第1および第2のラベル内鍵から第1のラベル間射影鍵を生成し、暗号鍵と第2の群の生成子と、第1および第2のラベル内鍵から第2のラベル間射影鍵を生成してこれら第1および第2のラベル間射影鍵を外部に出力するラベル間射影要求部23とを備え、暗号化データベースサーバ50が、暗号化された第1および第2の表を受信して記憶し、第1および第2のラベル内鍵と第1および第2のラベル間射影鍵とを受信するデータ受信部64と、暗号化された第1の表の第1のラベルによって示される列のデータに第1のラベルと第1のラベル内鍵とを作用させて第1のラベル内比較値を生成し、暗号化された第2の表の第2のラベルによって示される列のデータに第2のラベルと第2のラベル内鍵とを作用させて第2のラベル内比較値を生成するラベル内射影部61と、第1のラベル内比較値に第1のラベル間射影鍵を作用させて第1のラベル間比較値を生成し、第2のラベル内比較値に第2のラベル間射影鍵を作用させて第2のラベル間比較値を生成するラベル間射影部62と、出力された第1および第2のラベル間比較値を利用して、暗号化された第1および第2の表に対する自然結合を実行する暗号化表自然結合部63とを備える。
ここで列暗号化部21は、秘密鍵とラベルとからラベル間鍵を生成するラベル間鍵生成機能21bと、群の生成子とラベル間射影鍵とから第一ラベル公開鍵を生成する第一ラベル公開鍵生成機能21cと、秘密鍵と列のデータとから単純比較値を生成する比較値生成機能21dと、第一ラベル公開鍵と単純比較値とラベル間鍵とからラベル内比較値を生成する隠蔽比較値生成機能21eと、秘密鍵とラベルとからラベル内鍵を生成するラベル内鍵生成機能21aと、ラベル内鍵によってラベル内比較値を暗号化すると同時に秘密鍵によって列のデータを暗号化する暗号化機能21fとを備える。
また、ラベル内射影要求部22が、秘密鍵と第1のラベルとからラベル内鍵を生成するラベル内鍵生成機能を備えると共に、ラベル間射影要求部23が、秘密鍵と第2のラベルとからラベル間鍵を生成するラベル間射影鍵生成機能23aと、群の生成子とラベル間鍵とから第二ラベル公開鍵を生成する第二ラベル公開鍵生成機能23bと、第1および第2のラベルと秘密鍵とから補間値を生成する補間値生成機能23cと、第二ラベル公開鍵と補間値とからラベル間射影鍵を生成する射影鍵生成機能23dとを備える。
そしてラベル内射影部61が、ラベル内鍵と暗号化された第1および第2の表の暗号化された列データから第1および第2のラベル内比較値を生成するラベル内比較値生成機能61aを備えると共に、ラベル間射影部62が、ラベル間射影鍵と第1および第2のラベル内比較値とを双線形写像の入力として、その出力を各々第1および第2のラベル間比較値として出力するラベル間比較値生成機能62aを備える。
この構成を備えることにより、暗号化データベース管理システム1はデータの各要素を復号化する処理を行わず、かつ計算量を大幅に増大させることもなく、暗号化されたデータをキーとして自然結合することが可能となる。
以下、これをより詳細に説明する。
(記号などの定義)
まず、本明細書で使用する記号および用語、そしてそれらの定義について説明する。本明細書の数式以外の行では「Aに上付き添字B(AのB乗など)」を「A^B」、「Aに下付き添字B」を「A_B」と表すことにする。
pは素数である。G_1、G_2、G_Tは各々、位数がpの巡回群である。pairは、G_1×G_2からG_Tへの双線形写像である。σはG_2からG_1への準同型写像である。G_1としては、その上でのディフィ・ヘルマン(Diffie-Hellman)判別問題を解くことが困難である群が想定される。例えば、超特異でない楕円曲線で双線形写像を持つものが、このような群に該当する。g_1はG_1の、g_2はG_2の各々生成元であり、かつσ(g_2)=g_1である。
Hashは、任意長の文字列からencの鍵空間への写像であり、暗号学的ハッシュ関数等などが想定される。HashZは、任意長の文字列からZ/pZへの写像であり、暗号学的ハッシュ関数等などが想定される。HashGは、任意長の文字列からG_1への写像であり、暗号学的ハッシュ関数等などが想定される。
encは、鍵とイニシャルベクター(初期ベクトル)と平文とを入力として暗号文を出力とする暗号化関数である。decは、鍵とイニシャルベクターと暗号文とを入力として平文を出力とする復号化関数である。即ち、秘密鍵とこれに対応する公開鍵、イニシャルベクター、平文、暗号文を各々key、pkey、iv、m、eとすると、以下の数1に示す関係で表される。
ここで、秘密鍵keyとこれに対応する公開鍵pkeyは、公開鍵暗号方式の公開鍵と秘密鍵の対である。公開鍵暗号方式で、秘密鍵keyを使用して暗号化された暗号文は、この秘密鍵に対応する公開鍵pkey以外で復号化して平文を得ることはできない。また、公開鍵pkeyを使用して暗号化された暗号文は、秘密鍵key以外で復号化して平文を得ることはできない。
Figure 0005348337
データベースの各表は、各列ごとにその属する表の中で自らを一意的に識別するラベルを持つ。データベースの各表の各列を取り出したものを列ベクトルという。データベースの表Aと表Bとを、「表Aの列aの要素と表Bの列bの要素が等しい」という条件によって等結合することを、「表Aと表Bを表Aの列aと表Bの列bに関して自然結合する」という。ただし、この等結合を行う際、重複する列は削除される。
(機器の構成)
図1は、本発明に係る暗号化データベース管理システム1の構成を示す説明図である。暗号化データベース管理システム1は、暗号化データベースクライアント10と、暗号化データベースサーバ50と、別のクライアント100とが、LAN(Local Area Network)などを介して相互に接続されて構成される。
暗号化データベースクライアント10は、一般的なコンピュータ装置としての構成を備える。即ち、暗号化データベースクライアント10は、コンピュータプログラムを実行する主体となる主演算制御手段(CPU: Central Processing Unit)11と、データを記憶する記憶手段12と、ユーザからの操作を受け付ける入力手段13と、ユーザに処理結果を提示する出力手段14と、他のコンピュータとのデータ通信を行う通信手段15とを備える。
主演算制御手段11では、ユーザからの操作命令に応じて、暗号化部21、ラベル内射影要求部22、およびラベル間射影要求部23が、各々コンピュータプログラムとして後述するそれぞれの機能を実行されるように構成されている。また、記憶手段12には以後に説明する処理で使用する秘密鍵(key)31と、群の生成子32a〜bとが記憶されている。そして入力手段13には、自然結合の対象となる表A35および表B36と、自然結合の対象となる表および列を識別するラベル33a〜bが入力される。
ここで、群の生成子32a〜b、ラベル33a〜bの各々で、表A35に対応するものを群の生成子32a、ラベル33aといい、表B36に対応するものを群の生成子32b、ラベル33bという。
暗号化データベースサーバ50もまた、一般的なコンピュータ装置としての構成を備える。即ち、暗号化データベースサーバ50は、コンピュータプログラムを実行する主体となる主演算制御手段(CPU: Central Processing Unit)51と、データを記憶する記憶手段52と、他のコンピュータとのデータ通信を行う通信手段53とを備える。
主演算制御手段51では、暗号化データベースクライアント10からの操作命令に応じて、ラベル内射影部61、ラベル間射影部62、暗号化表自然結合部63と、データ受信部64とがコンピュータプログラムとして後述するそれぞれの機能を実行されるように構成されている。また、記憶手段52にはデータ受信部64が暗号化データベースクライアント10から受信した、各々表A35および表B36を暗号化した暗号化表A37および暗号化表B38が記憶される。
ここで、暗号化データベースクライアント10で使用される暗号鍵としては、暗号化と復号化で共通の鍵を使用する共通鍵を使用することもできるが、セキュリティ上の観点から公開鍵暗号方式の秘密鍵を使用することがより望ましいので、本実施形態では秘密鍵(key)31を使用する。この秘密鍵(key)31は、暗号化データベースクライアント10から他の装置に向けて送信されることはない。秘密鍵(key)31に対応する公開鍵(pkey)131は、暗号化データベースクライアント10から別のクライアント100に向けてのみ送付され、暗号化データベースサーバ50には送付されない。
別のクライアント100は、ハードウェア的には暗号化データベースクライアント10と同様に一般的なコンピュータ装置としての構成、即ち主演算制御手段101と、記憶手段102と、通信手段103とを備えるが、主演算制御手段101で復号化部121が動作する。復号化部121は、後述するように暗号化データベースクライアント10の列暗号化部21で暗号化されたデータを、秘密鍵(key)31に対応する公開鍵(pkey)131を用いて復号化する。公開鍵(pkey)131は、暗号化データベースクライアント10から予め送付され、記憶手段102に記憶される。
なお、物理的なコンピュータ装置の区分については、この例の通りに従う必要は特にない。たとえば、列暗号化部21、ラベル内射影要求部22、およびラベル内射影要求部23を、各々異なるコンピュータで動作させてもよい。また、列暗号化部21、ラベル内射影要求部22、ラベル内射影要求部23と、ラベル内射影部61、ラベル間射影部62、暗号化表自然結合部63、データ受信部64とを全て同一のコンピュータで動作させてもよい。
図2は、図1に示した表A35および表B36について詳しく説明する説明図である。図2(a)は表A35を、図2(b)は表B36について各々示す。表A35で、自然結合の対象とされる列にはラベル33a=L[1]が与えられている。同様に、表B36で、自然結合の対象とされる列には、ラベル33b=L[2]が与えられている。ここでいうラベルとは、「特定の表の特定の列」を一意的に識別しうるデータである。
ここでは、表A35で暗号化の対象かつラベル33aで示される列の列データ34a=ma[i](iは1≦i≦Nの自然数)とする。また、表B36で暗号化の対象かつラベル33bで示される列の列データ34b=mb[j](jは1≦j≦Mの自然数)とする。
(暗号化部)
図3は、図1に示した暗号化データベースクライアント10の、暗号化装置としてのより詳しい構成を示す説明図である。暗号化データベースクライアント10は、主演算制御手段11で暗号化部21が動作することによって、表Aの列aを暗号化する暗号化装置として機能する。暗号化部21は、ラベル内鍵生成機能21a、ラベル間鍵生成機能21b、第一ラベル公開鍵生成機能21c、比較値生成機能21d、隠蔽比較値生成機能21e、暗号化機能21f、乱数生成機能21gとを備える。これら各機能の詳細については後述する。
暗号化部21への入力データとして、記憶手段12には秘密鍵(key)31および群の生成子(g_1)32aが記憶され、図2に示した表A35およびラベル33a=L[1]は入力手段13から入力される。ただし、図3では表A35に対する処理だけを説明するので、表B36およびこれに関連する要素については図示しない。このため、ラベル33a=L[1]については、表B36の自然結合の対象とされる列に対して与えられたラベル33b=L[2]について言及する必要がある場合を除いて、単にラベル33a=Lという。以後の図においても同様である。
図4は、図3に示した暗号化部21の処理について示すフローチャートである。ラベル間鍵生成機能21bは、秘密鍵31=keyおよびラベル33a=Lから、以下に示す数2の処理でラベル間鍵41a=x[L]を算出する(ステップS101)。ここでHashZ関数の第一要素“secret”は、処理の種類を識別するための任意の文字列である。以後の数式で使用されるHashZ関数においても同様である。
Figure 0005348337
これに引き続いて、第一ラベル公開鍵生成機能21cは、秘密鍵31=key、群の生成子32a=g_1、およびラベル33a=Lから、以下に示す数3の処理で第一ラベル公開鍵41b=g[L]を算出する(ステップS102)。
Figure 0005348337
i=1に初期設定して(ステップS103)、乱数生成機能21gは、Z/qZからランダムに乱数(イニシャルベクター)41g=iv[1]およびiv[2]を生成する(ステップS104)。そして、比較値生成機能21dが、秘密鍵31=keyおよび列データ34a=mから、以下に示す数4の処理で単純比較値41c=f[m]を算出する(ステップS105)。以後図4のフローチャートでは、i行目の列データ34a=ma[i]を、単に列データ34a=mと表記する。
Figure 0005348337
これに引き続いて、隠蔽比較値生成機能21eが、ラベル間鍵41a、第一ラベル公開鍵41b、および単純比較値41cから、以下に示す数5の処理でラベル内比較値41d=dを算出する(ステップS106)。
Figure 0005348337
以上の処理と並行して、ラベル内鍵生成機能21aが、秘密鍵31=keyおよびラベル33a=Lから、以下に示す数6の処理でラベル内鍵41e=key[L]を算出する(ステップS107)。
Figure 0005348337
そして最後に、暗号化機能21fが、秘密鍵31=key、列データ34a=m、ラベル内比較値41d、および前述の乱数41g=iv[1]およびiv[2]から、以下に示す数7の処理で暗号文41f=e[i]:=(e[1],e[2],e[3],e[4])を算出する(ステップS108)。
Figure 0005348337
暗号化部21は、iの値が表A35の全行数Nに到達したか否かを判断し(ステップS109)、到達したら処理の完了した暗号化表A37を出力し、通信手段15を介して暗号化データベースサーバ50に送信して(ステップS111)処理を終了する。iの値がNに到達していなければ、iの値を+1して(ステップS110)ステップS103〜108の処理を繰り返す。そして、暗号化部21が暗号化表A37を出力すると同時に、暗号化機能21fがラベル33a=Lを記憶手段12に記憶する。
図5は、図4に示した処理によって暗号化が完了した暗号化表A37および暗号化表B38について示す説明図である。図5(a)は暗号化表A37を、図5(b)は暗号化表B38について各々示す。暗号化表A37は、列データ34a=ma[i]の各々が、数7で示す各々の要素を持つ暗号文41f(39a)=ea[i]に置換されている。暗号化表B38も同様に、列データ39b=mb[j]の各々が、数7で示す各々の要素を持つ暗号文41f(39b)=eb[j]に置換されている。
図6は、暗号化データベースサーバ50のデータ受信部64が暗号化表A37を記憶する動作について示すフローチャートである。データ受信部64は、通信手段53を介して受信したこの暗号化表A37を(ステップS141)、記憶手段52に記憶する(ステップS142)。同様に、暗号化表B38についても受信して記憶手段52に記憶する。
(復号化部)
図7は、図1に示した別のクライアント100の、復号化装置としてのより詳しい構成を示す説明図である。別のクライアント100は、主演算制御手段11で復号化部121が動作することによって、暗号化表A37の暗号文43a=ea[i]を復号化する復号化装置として機能する。
図8は、図7に示した復号化部121の処理について示すフローチャートである。復号化部121への入力データとして、記憶手段102には秘密鍵31=key[L]に対応する公開鍵131=pkey[L]が記憶され、数7に示した暗号文41f(39a)の後半部=(e[3],e[4])は通信手段103を経由して入力される。復号化部121は、i=1と初期設定した後(ステップS151)、これらの入力データから、以下に示す数8の処理で平文の列データ34a=mを算出する処理を(ステップS152)i=Nとなるまで全ての行に対してくり返し(ステップS153〜4)、これを出力する(ステップS155)。
Figure 0005348337
(ラベル内射影要求部)
図9は、図1に示した暗号化データベースクライアント10の、ラベル内射影要求装置としてのより詳しい構成を示す説明図である。暗号化データベースクライアント10は、主演算制御手段11でラベル内射影要求部22が動作することによって、同一のラベルの元に暗号化された平文の同一性を比較することを要求する要求文を生成して暗号化データベースサーバ50に送信するためのラベル内射影要求装置として機能する。
図10は、図9に示したラベル内射影要求部22の処理について示すフローチャートである。ラベル内射影要求部22への入力データとして、記憶手段12には秘密鍵(key)31およびラベル33a=L(L[1])が記憶されている。なお、ラベル内射影要求部22は、図3で示した暗号化部21のラベル内鍵生成機能21aと同一の機能を有するので、プログラム内の同一モジュールを共用することができる。
ラベル内射影要求部22は、これらの入力データから、以下に示す数9の処理で、第1のラベル内鍵41e=key[L]を算出し(ステップS201)、これを暗号化データベースサーバ50に向けて出力する(ステップS202)。ここで数9のHash関数の第一要素“label key”は、処理の種類を識別するための任意の文字列である。
Figure 0005348337
ラベル内射影要求部22はこれと同様に、秘密鍵(key)31、ラベル33b=L(L[2])から、第2のラベル内鍵を算出し、これも暗号化データベースサーバ50に向けて出力する。
(ラベル間射影要求部)
図11は、図1に示した暗号化データベースクライアント10の、ラベル間射影要求装置としてのより詳しい構成を示す説明図である。暗号化データベースクライアント10は、主演算制御手段11でラベル間射影要求部23が動作することによって、異なるラベルの元に暗号化された平文の同一性を比較することを要求する要求文を生成して暗号化データベースサーバ50に送信するためのラベル間射影要求装置として機能する。
ラベル間射影要求部23は、ラベル間射影鍵生成機能23a、第二ラベル公開鍵生成機能23b、補間値生成機能23c、射影鍵生成機能23dを備える。これら各機能の詳細については後述する。ラベル間射影要求部23への入力データとして、記憶手段12には秘密鍵(key)31、群の生成子(g_1)32a、ラベル33a=L[1]およびラベル33b=L[2]が記憶されている。
図12は、図11に示したラベル間射影要求部23の処理について示すフローチャートである。ラベル間射影鍵生成機能23aは、秘密鍵31=keyおよびラベル33a=L[1]から、以下に示す数10の処理でラベル間鍵41a=x[L[2]]を算出する(ステップS251)。なお、ラベル間射影鍵生成機能23aは、図3で示した暗号化部21のラベル間鍵生成機能21bと同一の機能を有するので、プログラム内の同一モジュールを共用することができる。
Figure 0005348337
これに続いて、第二ラベル公開鍵生成機能23bは、秘密鍵31=key、群の生成子32a=g_1、およびラベル33a=L[1]から、以下に示す数11の処理で第二ラベル公開鍵42a=q[L[2]]を算出する(ステップS252)。
Figure 0005348337
これに続いて、補間値生成機能23cは、秘密鍵31=key、ラベル33a=L[1]およびラベル33b=L[2]から、以下に示す数12の処理で補間値42b=p{L[1],L[2]}を算出する(ステップS253)。ここで、{L[1],L[2]}は、L[1]とL[2]とを辞書順序で並べ替えた文字列であり、{L[1],L[2]}={L[2],L[1]}である。
Figure 0005348337
これに続いて、射影鍵生成機能23dは、第二ラベル公開鍵42a=q[L[2]]、ラベル間鍵41a=x[L[1]]および補間値42b=p{L[1],L[2]}から、以下に示す数13の処理でラベル間射影鍵42c=P(第1のラベル間射影鍵P[1])を算出し(ステップS254)、これを暗号化データベースサーバ50に向けて出力する(ステップS255)。
Figure 0005348337
ラベル間射影要求部23はこれと同様に、秘密鍵(key)31、群の生成子(g_2)32b、ラベル33b=L[2]およびラベル33a=L[1]から、第2のラベル間射影鍵P[2]を算出し、これも暗号化データベースサーバ50に向けて出力する。
(ラベル内射影部)
図13は、図1に示した暗号化データベースサーバ50の、ラベル内射影装置としてのより詳しい構成を示す説明図である。暗号化データベースサーバ50は、主演算制御手段51でラベル内射影部61が動作することによって、暗号化データベースクライアント10で生成されたラベル内鍵41eを受けて異なるラベルの元に暗号化された平文の同一性を比較するためのラベル内比較値43を出力するラベル内射影装置として機能する。ラベル内射影部61は、ラベル内比較値生成機能61aを備える。
図14は、図13に示したラベル内射影部61の処理について示すフローチャートである。ラベル内比較値生成機能61aへの入力データとして、暗号文41fの後半部=(e[1],e[2])、ラベル33a=L(=L[1])、および第1のラベル内鍵41eが暗号化データベースクライアント10から入力される。
ラベル内射影部61のラベル内比較値生成機能61aは、i=1と初期設定した後(ステップS301)、これらの入力データから、以下に示す数14の処理でラベル内比較値43=dを算出し(ステップS302)、この処理をi=Nとなるまで全ての行に対してくり返した後(ステップS303〜304)、図5の暗号化表A37のラベル33a(=L[1])に該当する列の値をこのラベル内比較値43=dで置換した行列を出力して(ステップS305)後述のラベル間射影部62に渡す。
Figure 0005348337
ラベル内射影部61はこれと同様に、暗号文41fの後半部=(e[1],e[2])、ラベル33b(=L[2])、および第2のラベル内鍵から、図5の暗号化表B38のラベル33b(=L[2])に該当する列の値を算出したラベル内比較値で置換した行列を出力して、ラベル間射影部62に渡す。
(ラベル間射影部)
図15は、図1に示した暗号化データベースサーバ50の、ラベル間射影装置としてのより詳しい構成を示す説明図である。暗号化データベースサーバ50は、主演算制御手段51でラベル間射影部62が動作することによって、暗号化データベースクライアント10で生成されたラベル間鍵41a=x[L[1]]を受けて異なるラベルの元に暗号化された平文の同一性を比較するためのラベル間比較値44を出力するラベル間射影装置として機能する。ラベル間射影部62は、ラベル間比較値生成機能62aを備える。
図16は、図15に示したラベル間射影部62の処理について示すフローチャートである。ラベル間比較値生成機能62aへの入力データとして、ラベル間射影鍵42c=P(=P[1])が暗号化データベースクライアント10から入力され、また図5の暗号化表A37のラベル33a(=L[1])に該当する列の値をラベル内比較値43=dで置換した行列もラベル内射影部61から入力される。
ラベル間射影部62のラベル間比較値生成機能62aは、i=1と初期設定した後(ステップS351)、これらの入力データから、以下に示す数15の処理でラベル間比較値44=hを算出し(ステップS352)、この処理をi=Nとなるまで全ての行に対してくり返した後(ステップS353〜354)、図5の暗号化表A37のラベル33a(=L[1])に該当する列の値をこのラベル間比較値44=hで置換した行列を出力して(ステップS355)暗号化表自然結合部63に渡す。
Figure 0005348337
ラベル内射影部62はこれと同様に、暗号化データベースクライアント10から入力されたラベル間射影鍵(=P[2])と、図5の暗号化表B38のラベル33b(=L[2])に該当する列の値をラベル内比較値で置換した行列を入力として、このラベル内比較値をラベル間比較値に置換する。暗号化表自然結合部63は、この値によって表A35および表B36の自然結合を行う。
(本実施形態の処理による効果)
以上で示した処理による効果について説明する。
暗号化装置がラベルLに関連づけられた平文データmを秘密鍵keyを用いて暗号化すると、前述の数7で示した暗号文eが得られる。この暗号文eの後半部(e[3],e[4])は平文データmの確率的な暗号文であるので、これからmの情報が漏洩することはない。また、暗号文eの前半部(e[3],e[4])も平文データmの確率的な暗号文であるので、これからmの情報が漏洩することはない。
もちろん、数7で使用された鍵key[L]は、元々の暗号化に使用された秘密鍵keyがなければ得ることはできない。また、図1で示した別のクライアント100は、主演算制御手段11で復号化部121が動作することによって、単純に暗号文eを復号化して平文データmを得ることができる。
ラベル内射影要求部22は、秘密鍵31=keyおよびラベル33a=Lから、数9に示したラベル内鍵41e=key[L]を算出し、これをラベル内射影部61に対して出力する。これを受けたラベル内射影部61は、数14に示したラベル内比較値43=dを算出し、このラベル内比較値43=dについては以下の数16に示す関係が成立する。
Figure 0005348337
このラベル内比較値43=dは、ラベルLが同一であれば、同じ平文mから必ず同一のラベル内比較値43=dが得られる。このため、同一のラベルLの暗号文同士で平文が一致するか否かを判定することができる(なお、自然結合では「同一のラベルLの暗号文同士」での比較を行うことはない)。
続いて、表A35にラベルL[1]が、表B36にラベルL[2]が各々与えられているものとする。表A35のラベルL[1]で示される列の平文データm[1]がこのラベルL[1]に関して暗号化され、表B36のラベルL[2]で示される列の平文データm[2]がこのラベルL[2]に関して暗号化されているものとする。そして、これら各々に対応するラベル内鍵41e=key[L[1]]およびkey[L[2]]がラベル内射影要求部22で算出され、ラベル内射影部61に対して出力されているものとする。
ラベル内射影要求部22およびラベル内射影部61にこれらのデータを通して以下の数17に示す各々のラベル内比較値d[1]およびd[2]を得たとしても、このままではg[L[1]]^(x[L[1]])およびg[L[2]]^(x[L[2]])の離散対数が不明であるので、平文データm[1]とm[2]が等しいか否かをこれらのラベル内比較値d[1]およびd[2]から判断することはできない。
Figure 0005348337
そこで、これらに加えてラベル間射影要求部23がラベルL[1]およびL[2]と秘密鍵=keyから、数13によって示した処理によって、以下の数18〜19に示すラベル間射影鍵P[1]およびP[2]を生成する。
Figure 0005348337
Figure 0005348337
これらのラベル内比較値d[1]およびd[2]と、ラベル間射影鍵P[1]およびP[2]とがラベル間射影部62に入力されると、前述の数15(ステップS351)で示した処理で、以下の数20〜21に示されるような双線形写像の演算で、ラベル間比較値pair(d[1],P[1])およびpair(d[2],P[2])が算出される。
Figure 0005348337
Figure 0005348337
ここで、以下の数22に示す関係が成立するので、ラベル間比較値pair(d[1],P[1])およびpair(d[2],P[2])が等しければ元の平文データm[1]とm[2]が等しく、またpair(d[1],P[1])およびpair(d[2],P[2])が等しくなければ元の平文データm[1]とm[2]が等しくないと判断できる。
Figure 0005348337
図17は、暗号化表自然結合部63が、暗号化表A37および暗号化表B38を自然結合する処理について示すフローチャートである。暗号化表自然結合部63は、ラベル間射影部62に対して暗号化表A37のラベル間比較値を算出する処理を行わせ(ステップS401)、続いて暗号化表B38のラベル間比較値を算出する処理を行わせる(ステップS402)。ステップS401および402で行われる具体的な処理は、図14および図16に示された通りである。
そして暗号化表自然結合部63は、算出されたラベル間比較値h[1]およびh[2]をキーとして暗号化表A37および暗号化表B38の自然結合処理を行い(ステップS403)、自然結合されて作成された暗号化表A×B81を暗号化データベースクライアント10に返す(ステップS404)。
(第1の実施形態の全体的な動作)
次に、上記の実施形態の全体的な動作について説明する。本実施形態に係る自然結合方法は、クライアント端末と暗号化データベースサーバとが相互に接続されて構成される暗号化データベースシステム1にあって、外部から入力される第1の表の第1のラベルによって示される列のデータをクライアント端末の列暗号化部があらかじめ記憶された暗号鍵および第1の群の生成子とによって暗号化して外部に出力し(図4・ステップS101〜110)、外部から入力される第2の表の第2のラベルによって示される列のデータをクライアント端末の列暗号化部が暗号鍵およびあらかじめ記憶された第2の群の生成子とによって暗号化して外部に出力し(図4・ステップS101〜110)、暗号鍵と第1のラベルとからクライアント端末のラベル内射影要求部が第1のラベル内鍵を生成して外部に出力し(図10・ステップS201〜202)、暗号鍵と第2のラベルとからクライアント端末のラベル内射影要求部が第2のラベル内鍵を生成して外部に出力し(図10・ステップS201〜202)、暗号鍵と第1の群の生成子と、第1および第2のラベル内鍵からクライアント端末のラベル間射影要求部が第1のラベル間射影鍵を生成して外部に出力し(図11・ステップS251〜255)、暗号鍵と第2の群の生成子と、第1および第2のラベル内鍵からクライアント端末のラベル間射影要求部が第2のラベル間射影鍵を生成して外部に出力し(図11・ステップS251〜255)、暗号化された第1および第2の表、第1および第2のラベル内鍵と第1および第2のラベル間射影鍵を暗号化データベースサーバのデータ受信部が受信し(図6・ステップS141〜142)、暗号化された第1の表の第1のラベルによって示される列のデータに暗号化データベースサーバのラベル内射影部が第1のラベルと第1のラベル内鍵とを作用させて第1のラベル内比較値を生成し(図14・ステップS301〜305)、暗号化された第2の表の第2のラベルによって示される列のデータに暗号化データベースサーバのラベル内射影部が第2のラベルと第2のラベル内鍵とを作用させて第2のラベル内比較値を生成し(図14・ステップS301〜305)、第1のラベル内比較値に暗号化データベースサーバのラベル間射影部が第1のラベル間射影鍵を作用させて第1のラベル間比較値を生成し(図16・ステップS351〜355)、第2のラベル内比較値に暗号化データベースサーバのラベル間射影部が第2のラベル間射影鍵を作用させて第2のラベル間比較値を生成し(図16・ステップS351〜355)、第1および第2のラベル間比較値を利用して、暗号化データベースサーバの暗号化表自然結合部が暗号化された第1および第2の表に対する自然結合を実行する(図17・ステップS403)。
ここで、上記各動作ステップについては、これをコンピュータで実行可能にプログラム化し、これらを前記各ステップを直接実行するコンピュータである暗号化データベースクライアント10および暗号化データベースサーバ50に実行させるようにしてもよい。本プログラムは、非一時的な記録媒体、例えば、DVD、CD、フラッシュメモリ等に記録されてもよい。その場合、本プログラムは、記録媒体からコンピュータによって読み出され、実行される。
この動作により、本実施形態は以下のような効果を奏する。
本実施形態によれば、そのままでは他と比較することは不可能である暗号化されたデータを、ラベル間射影鍵P[1]およびP[2]を利用してそのデータを復号化せずに2つの平文データが等しいか否かを判断することができ、それによってデータの自然結合を行うことが可能となる暗号化データベースシステムを実現することが可能となる。自然結合はデータベースにおいて頻繁に行われる処理である。従って、この自然結合をデータを復号化せずに実行できるということは、データベースから機密情報が漏洩する機会を少なくすることが可能であることを意味する。
その際、必要となるデータの処理量は、比較する対象となる二つの列のデータ量に単純に比例する。即ち、「データ量の2乗に比例する」などのような大幅な処理量の増大を招くものではない。
また、ここで自然結合の対象となる列を示す「ラベル」は、「特定の表の特定の列」を一意的に識別しうるデータである。従って、「表」と「列」の各々に識別子を与えてこの識別子によって自然結合の処理を行う必要はないので、より処理を簡略化でき、より汎用的に適用できるものとなる。
これまで本発明について図面に示した特定の実施形態をもって説明してきたが、本発明は図面に示した実施形態に限定されるものではなく、本発明の効果を奏する限り、これまで知られたいかなる構成であっても採用することができる。
上述した各々の実施形態について、その新規な技術内容の要点をまとめると、以下のようになる。なお、上記実施形態の一部または全部は、新規な技術として以下のようにまとめられるが、本発明は必ずしもこれに限定されるものではない。
(付記1) クライアント端末と暗号化データベースサーバとが相互に接続されて構成される暗号化データベースシステムであって、
前記クライアント端末が、
暗号鍵および当該暗号鍵の要部をなす第1および第2の群の生成子を予め記憶する記憶手段と、
外部から入力される第1の表の第1のラベルによって示される列のデータを前記暗号鍵および前記第1の群の生成子とによって暗号化すると共に、同じく外部から入力される第2の表の第2のラベルによって示される列のデータを前記暗号鍵および前記第2の群の生成子によって暗号化し、これら暗号化された第1および第2の表を外部に出力する列暗号化部と、
前記暗号鍵と前記第1のラベルとから第1のラベル内鍵を生成すると共に、前記暗号鍵と前記第2のラベルとから第2のラベル内鍵を生成し、これら第1および第2のラベル内鍵を外部に出力するラベル内射影要求部と、
前記暗号鍵と前記第1の群の生成子と前記第1および第2のラベル内鍵とから第1のラベル間射影鍵を生成すると共に、前記暗号鍵と前記第2の群の生成子と前記第1および第2のラベル内鍵とから第2のラベル間射影鍵を生成し、これら第1および第2のラベル間射影鍵を外部に出力するラベル間射影要求部とを備え、
前記暗号化データベースサーバが、
前記暗号化された第1および第2の表を受信して記憶すると共に、前記第1および第2のラベル内鍵と前記第1および第2のラベル間射影鍵とを受信するデータ受信部と、
前記暗号化された第1の表の第1のラベルによって示される列のデータに前記第1のラベルと前記第1のラベル内鍵とを作用させて第1のラベル内比較値を生成すると共に、前記暗号化された第2の表の第2のラベルによって示される列のデータに前記第2のラベルと前記第2のラベル内鍵とを作用させて第2のラベル内比較値を生成するラベル内射影部と、
前記第1のラベル内比較値に前記第1のラベル間射影鍵を作用させて第1のラベル間比較値を生成すると共に、前記第2のラベル内比較値に前記第2のラベル間射影鍵を作用させて第2のラベル間比較値を生成するラベル間射影部と、
前記出力された第1および第2のラベル間比較値を利用して、前記暗号化された第1および第2の表に対する自然結合を実行する暗号化表自然結合部とを備えることを特徴とする暗号化データベースシステム。
(付記2) 前記列暗号化部が、
前記秘密鍵と前記ラベルとからラベル間鍵を生成するラベル間鍵生成機能と、
前記群の生成子と前記ラベル間射影鍵とから第一ラベル公開鍵を生成する第一ラベル公開鍵生成機能と、
前記秘密鍵と前記列のデータとから単純比較値を生成する比較値生成機能と、
前記第一ラベル公開鍵と前記単純比較値と前記ラベル間鍵とからラベル内比較値を生成する隠蔽比較値生成機能と、
前記秘密鍵と前記ラベルとから前記ラベル内鍵を生成するラベル内鍵生成機能と、
前記ラベル内鍵によって前記ラベル内比較値を暗号化すると同時に前記秘密鍵によって前記列のデータを暗号化する暗号化機能とを備えることを特徴とする、付記1に記載の暗号化データベースシステム。
(付記3) 前記ラベル内射影要求部が、前記秘密鍵と前記第1のラベルとから前記ラベル内鍵を生成するラベル内鍵生成機能を備えると共に、
前記ラベル間射影要求部が、
前記秘密鍵と前記第2のラベルとから前記ラベル間鍵を生成するラベル間射影鍵生成機能と、
前記群の生成子と前記ラベル間鍵とから第二ラベル公開鍵を生成する第二ラベル公開鍵生成機能と、
前記第1および第2のラベルと前記秘密鍵とから補間値を生成する補間値生成機能と、
前記第二ラベル公開鍵と前記補間値とからラベル間射影鍵を生成する射影鍵生成機能とを備えることを特徴とする、付記1に記載の暗号化データベースシステム。
(付記4) 前記ラベル内射影部が、
前記ラベル内鍵と前記暗号化された第1および第2の表の暗号化された列データから第1および第2のラベル内比較値を生成するラベル内比較値生成機能を備えると共に、
前記ラベル間射影部が、
前記ラベル間射影鍵と前記第1および第2のラベル内比較値とを双線形写像の入力として、その出力を各々前記第1および第2のラベル間比較値として出力するラベル間比較値生成機能を備えることを特徴とする、付記1に記載の暗号化データベースシステム。
(付記5) 暗号化データベースサーバと相互に接続されて暗号化データベースシステムを構成されるクライアント端末であって、
暗号鍵および当該暗号鍵の要部をなす第1および第2の群の生成子を予め記憶する記憶手段と、
外部から入力される第1の表の第1のラベルによって示される列のデータを前記暗号鍵および前記第1の群の生成子とによって暗号化すると共に、同じく外部から入力される第2の表の第2のラベルによって示される列のデータを前記暗号鍵および前記第2の群の生成子によって暗号化し、これら暗号化された第1および第2の表を外部に出力する列暗号化部と、
前記暗号鍵と前記第1のラベルとから第1のラベル内鍵を生成すると共に、前記暗号鍵と前記第2のラベルとから第2のラベル内鍵を生成し、これら第1および第2のラベル内鍵を外部に出力するラベル内射影要求部と、
前記暗号鍵と前記第1の群の生成子と前記第1および第2のラベル内鍵とから第1のラベル間射影鍵を生成すると共に、前記暗号鍵と前記第2の群の生成子と前記第1および第2のラベル内鍵とから第2のラベル間射影鍵を生成し、これら第1および第2のラベル間射影鍵を外部に出力するラベル間射影要求部とを備えることを特徴とするクライアント端末。
(付記6) クライアント端末と相互に接続されて暗号化データベースシステムを構成される暗号化データベースサーバであって、
前記クライアント端末から送信される第1のラベルによって示される列が暗号化された第1の表および第2のラベルによって示される列が暗号化された第2の表を受信して記憶すると共に、前記クライアント端末から送信される第1および第2のラベル内鍵と前記第1および第2のラベル間射影鍵とを受信するデータ受信部と、
前記暗号化された第1の表の第1のラベルによって示される列のデータに前記第1のラベルと前記第1のラベル内鍵とを作用させて第1のラベル内比較値を生成すると共に、前記暗号化された第2の表の第2のラベルによって示される列のデータに前記第2のラベルと前記第2のラベル内鍵とを作用させて第2のラベル内比較値を生成するラベル内射影部と、
前記第1のラベル内比較値に前記第1のラベル間射影鍵を作用させて第1のラベル間比較値を生成すると共に、前記第2のラベル内比較値に前記第2のラベル間射影鍵を作用させて第2のラベル間比較値を生成するラベル間射影部と、
前記出力された第1および第2のラベル間比較値を利用して、前記暗号化された第1および第2の表に対する自然結合を実行する暗号化表自然結合部とを備えることを特徴とする暗号化データベースサーバ。
(付記7) クライアント端末と暗号化データベースサーバとが相互に接続されて構成される暗号化データベースシステムにあって、
外部から入力される第1の表の第1のラベルによって示される列のデータを前記クライアント端末の列暗号化部があらかじめ記憶された暗号鍵および当該暗号鍵の要部をなす第1の群の生成子とによって暗号化して外部に出力し、
外部から入力される第2の表の第2のラベルによって示される列のデータを前記クライアント端末の列暗号化部が前記暗号鍵およびあらかじめ記憶された前記暗号鍵の要部をなす第2の群の生成子とによって暗号化して外部に出力し、
前記暗号鍵と前記第1のラベルとから前記クライアント端末のラベル内射影要求部が第1のラベル内鍵を生成して外部に出力し、
前記暗号鍵と前記第2のラベルとから前記クライアント端末のラベル内射影要求部が第2のラベル内鍵を生成して外部に出力し、
前記暗号鍵と前記第1の群の生成子と、前記第1および第2のラベル内鍵から前記クライアント端末のラベル間射影要求部が第1のラベル間射影鍵を生成して外部に出力し、
前記暗号鍵と前記第2の群の生成子と、前記第1および第2のラベル内鍵から前記クライアント端末のラベル間射影要求部が第2のラベル間射影鍵を生成して外部に出力し、
前記暗号化された第1および第2の表、前記第1および第2のラベル内鍵と前記第1および第2のラベル間射影鍵を前記暗号化データベースサーバのデータ受信部が受信し、
前記暗号化された第1の表の第1のラベルによって示される列のデータに前記暗号化データベースサーバのラベル内射影部が前記第1のラベルと前記第1のラベル内鍵とを作用させて第1のラベル内比較値を生成し、
前記暗号化された第2の表の第2のラベルによって示される列のデータに前記暗号化データベースサーバのラベル内射影部が前記第2のラベルと前記第2のラベル内鍵とを作用させて第2のラベル内比較値を生成し、
前記第1のラベル内比較値に前記暗号化データベースサーバのラベル間射影部が前記第1のラベル間射影鍵を作用させて第1のラベル間比較値を生成し、
前記第2のラベル内比較値に前記暗号化データベースサーバのラベル間射影部が前記第2のラベル間射影鍵を作用させて第2のラベル間比較値を生成し、
前記第1および第2のラベル間比較値を利用して、前記暗号化データベースサーバの暗号化表自然結合部が前記暗号化された第1および第2の表に対する自然結合を実行することを特徴とする暗号化表の自然結合方法。
(付記8) クライアント端末と暗号化データベースサーバとが相互に接続されて構成される暗号化データベースシステムにあって、
前記クライアント端末が備えているコンピュータに、
外部から入力される第1の表の第1のラベルによって示される列のデータをあらかじめ記憶された暗号鍵および当該暗号鍵の要部をなす第1の群の生成子とによって暗号化して外部に出力する手順、
外部から入力される第2の表の第2のラベルによって示される列のデータを前記暗号鍵およびあらかじめ記憶された前記暗号鍵の要部をなす第2の群の生成子とによって暗号化して外部に出力する手順、
前記暗号鍵と前記第1のラベルとから第1のラベル内鍵を生成して外部に出力する手順、
前記暗号鍵と前記第2のラベルとから第2のラベル内鍵を生成して外部に出力する手順、
前記暗号鍵と前記第1の群の生成子と、前記第1および第2のラベル内鍵から第1のラベル間射影鍵を生成して外部に出力する手順、
および前記暗号鍵と前記第2の群の生成子と、前記第1および第2のラベル内鍵から第2のラベル間射影鍵を生成して外部に出力する手順
を実行させることを特徴とする暗号化表の自然結合プログラム。
(付記9) クライアント端末と暗号化データベースサーバとが相互に接続されて構成される暗号化データベースシステムにあって、
暗号化データベースサーバが備えているコンピュータに、
前記暗号化された第1および第2の表、前記第1および第2のラベル内鍵と前記第1および第2のラベル間射影鍵を受信する手順、
前記暗号化された第1の表の第1のラベルによって示される列のデータに前記第1のラベルと前記第1のラベル内鍵とを作用させて第1のラベル内比較値を生成する手順、
前記暗号化された第2の表の第2のラベルによって示される列のデータに前記第2のラベルと前記第2のラベル内鍵とを作用させて第2のラベル内比較値を生成する手順、
前記第1のラベル内比較値に前記第1のラベル間射影鍵を作用させて第1のラベル間比較値を生成する手順、
前記第2のラベル内比較値に前記第2のラベル間射影鍵を作用させて第2のラベル間比較値を生成する手順、
および前記第1および第2のラベル間比較値を利用して、前記暗号化された第1および第2の表に対する自然結合を実行する手順
を実行させることを特徴とする暗号化表の自然結合プログラム。
この出願は2010年12月13日に出願された日本出願特願2010−277070を基礎とする優先権を主張し、その開示の全てをここに取り込む。
本発明は暗号化データベースシステムにおいて一般的に適用可能である。特に、頻繁に自然結合処理を行う必要のあるデータベースシステムで機密情報の漏洩を防止するという点において、優れた効果を発揮する。
1 暗号化データベース管理システム
10 暗号化データベースクライアント
11、51 主演算制御手段
12、52 記憶手段
13 入力手段
14 出力手段
15、53 通信手段
21 列暗号化部
21a ラベル内鍵生成機能
21b ラベル間鍵生成機能
21c 第一ラベル公開鍵生成機能
21d 比較値生成機能
21e 隠蔽比較値生成機能
21f 暗号化機能
21g 乱数生成機能
22 ラベル内射影要求部
23 ラベル間射影要求部
23a ラベル間射影鍵生成機能
23b 第二ラベル公開鍵生成機能
23c 補間値生成機能
23d 射影鍵生成機能
31 秘密鍵
32a、32b 群の生成子
33a、33b ラベル
34a、34b 列データ
35 表A
36 表B
37 暗号化表A
38 暗号化表B
39a、39b 暗号化列データ
41a ラベル間鍵
41b 第一ラベル公開鍵
41c 単純比較値
41d ラベル内比較値
41e ラベル内鍵
41f、43a 暗号文
41g 乱数
42a 第二ラベル公開鍵
42b 補間値
42c ラベル間射影鍵
43 ラベル内比較値
50 暗号化データベースサーバ
61 ラベル内射影部
61a ラベル内比較値生成機能
62 ラベル間射影部
62a ラベル間比較値生成機能
63 暗号化表自然結合部
64 データ受信部
81 暗号化表A×B
100 別のクライアント
121 復号化部
131 公開鍵

Claims (9)

  1. クライアント端末と暗号化データベースサーバとが相互に接続されて構成される暗号化データベースシステムであって、
    前記クライアント端末が、
    暗号鍵および当該暗号鍵の要部をなす第1および第2の群の生成子を予め記憶する記憶手段と、
    外部から入力される第1の表の第1のラベルによって示される列のデータを前記暗号鍵および前記第1の群の生成子とによって暗号化すると共に、同じく外部から入力される第2の表の第2のラベルによって示される列のデータを前記暗号鍵および前記第2の群の生成子によって暗号化し、これら暗号化された第1および第2の表を外部に出力する列暗号化部と、
    前記暗号鍵と前記第1のラベルとから第1のラベル内鍵を生成すると共に、前記暗号鍵と前記第2のラベルとから第2のラベル内鍵を生成し、これら第1および第2のラベル内鍵を外部に出力するラベル内射影要求部と、
    前記暗号鍵と前記第1の群の生成子と前記第1および第2のラベル内鍵とから第1のラベル間射影鍵を生成すると共に、前記暗号鍵と前記第2の群の生成子と前記第1および第2のラベル内鍵とから第2のラベル間射影鍵を生成し、これら第1および第2のラベル間射影鍵を外部に出力するラベル間射影要求部とを備え、
    前記暗号化データベースサーバが、
    前記暗号化された第1および第2の表を受信して記憶すると共に、前記第1および第2のラベル内鍵と前記第1および第2のラベル間射影鍵とを受信するデータ受信部と、
    前記暗号化された第1の表の第1のラベルによって示される列のデータに前記第1のラベルと前記第1のラベル内鍵とを作用させて第1のラベル内比較値を生成すると共に、前記暗号化された第2の表の第2のラベルによって示される列のデータに前記第2のラベルと前記第2のラベル内鍵とを作用させて第2のラベル内比較値を生成するラベル内射影部と、
    前記第1のラベル内比較値に前記第1のラベル間射影鍵を作用させて第1のラベル間比較値を生成すると共に、前記第2のラベル内比較値に前記第2のラベル間射影鍵を作用させて第2のラベル間比較値を生成するラベル間射影部と、
    前記出力された第1および第2のラベル間比較値を利用して、前記暗号化された第1および第2の表に対する自然結合を実行する暗号化表自然結合部とを備えることを特徴とする暗号化データベースシステム。
  2. 前記列暗号化部が、
    前記秘密鍵と前記ラベルとからラベル間鍵を生成するラベル間鍵生成機能と、
    前記群の生成子と前記ラベル間射影鍵とから第一ラベル公開鍵を生成する第一ラベル公開鍵生成機能と、
    前記秘密鍵と前記列のデータとから単純比較値を生成する比較値生成機能と、
    前記第一ラベル公開鍵と前記単純比較値と前記ラベル間鍵とからラベル内比較値を生成する隠蔽比較値生成機能と、
    前記秘密鍵と前記ラベルとから前記ラベル内鍵を生成するラベル内鍵生成機能と、
    前記ラベル内鍵によって前記ラベル内比較値を暗号化すると同時に前記秘密鍵によって前記列のデータを暗号化する暗号化機能とを備えることを特徴とする、請求項1に記載の暗号化データベースシステム。
  3. 前記ラベル内射影要求部が、前記秘密鍵と前記第1のラベルとから前記ラベル内鍵を生成するラベル内鍵生成機能を備えると共に、
    前記ラベル間射影要求部が、
    前記秘密鍵と前記第2のラベルとから前記ラベル間鍵を生成するラベル間射影鍵生成機能と、
    前記群の生成子と前記ラベル間鍵とから第二ラベル公開鍵を生成する第二ラベル公開鍵生成機能と、
    前記第1および第2のラベルと前記秘密鍵とから補間値を生成する補間値生成機能と、
    前記第二ラベル公開鍵と前記補間値とからラベル間射影鍵を生成する射影鍵生成機能とを備えることを特徴とする、請求項1に記載の暗号化データベースシステム。
  4. 前記ラベル内射影部が、
    前記ラベル内鍵と前記暗号化された第1および第2の表の暗号化された列データから第1および第2のラベル内比較値を生成するラベル内比較値生成機能を備えると共に、
    前記ラベル間射影部が、
    前記ラベル間射影鍵と前記第1および第2のラベル内比較値とを双線形写像の入力として、その出力を各々前記第1および第2のラベル間比較値として出力するラベル間比較値生成機能を備えることを特徴とする、請求項1に記載の暗号化データベースシステム。
  5. 暗号化データベースサーバと相互に接続されて暗号化データベースシステムを構成されるクライアント端末であって、
    暗号鍵および当該暗号鍵の要部をなす第1および第2の群の生成子を予め記憶する記憶手段と、
    外部から入力される第1の表の第1のラベルによって示される列のデータを前記暗号鍵および前記第1の群の生成子とによって暗号化すると共に、同じく外部から入力される第2の表の第2のラベルによって示される列のデータを前記暗号鍵および前記第2の群の生成子によって暗号化し、これら暗号化された第1および第2の表を外部に出力する列暗号化部と、
    前記暗号鍵と前記第1のラベルとから第1のラベル内鍵を生成すると共に、前記暗号鍵と前記第2のラベルとから第2のラベル内鍵を生成し、これら第1および第2のラベル内鍵を外部に出力するラベル内射影要求部と、
    前記暗号鍵と前記第1の群の生成子と前記第1および第2のラベル内鍵とから第1のラベル間射影鍵を生成すると共に、前記暗号鍵と前記第2の群の生成子と前記第1および第2のラベル内鍵とから第2のラベル間射影鍵を生成し、これら第1および第2のラベル間射影鍵を外部に出力するラベル間射影要求部とを備えることを特徴とするクライアント端末。
  6. クライアント端末と相互に接続されて暗号化データベースシステムを構成される暗号化データベースサーバであって、
    前記クライアント端末から送信される第1のラベルによって示される列が暗号化された第1の表および第2のラベルによって示される列が暗号化された第2の表を受信して記憶すると共に、前記クライアント端末から送信される第1および第2のラベル内鍵と前記第1および第2のラベル間射影鍵とを受信するデータ受信部と、
    前記暗号化された第1の表の第1のラベルによって示される列のデータに前記第1のラベルと前記第1のラベル内鍵とを作用させて第1のラベル内比較値を生成すると共に、前記暗号化された第2の表の第2のラベルによって示される列のデータに前記第2のラベルと前記第2のラベル内鍵とを作用させて第2のラベル内比較値を生成するラベル内射影部と、
    前記第1のラベル内比較値に前記第1のラベル間射影鍵を作用させて第1のラベル間比較値を生成すると共に、前記第2のラベル内比較値に前記第2のラベル間射影鍵を作用させて第2のラベル間比較値を生成するラベル間射影部と、
    前記出力された第1および第2のラベル間比較値を利用して、前記暗号化された第1および第2の表に対する自然結合を実行する暗号化表自然結合部とを備えることを特徴とする暗号化データベースサーバ。
  7. クライアント端末と暗号化データベースサーバとが相互に接続されて構成される暗号化データベースシステムにあって、
    外部から入力される第1の表の第1のラベルによって示される列のデータを前記クライアント端末の列暗号化部があらかじめ記憶された暗号鍵および当該暗号鍵の要部をなす第1の群の生成子とによって暗号化して外部に出力し、
    外部から入力される第2の表の第2のラベルによって示される列のデータを前記クライアント端末の列暗号化部が前記暗号鍵およびあらかじめ記憶された前記暗号鍵の要部をなす第2の群の生成子とによって暗号化して外部に出力し、
    前記暗号鍵と前記第1のラベルとから前記クライアント端末のラベル内射影要求部が第1のラベル内鍵を生成して外部に出力し、
    前記暗号鍵と前記第2のラベルとから前記クライアント端末のラベル内射影要求部が第2のラベル内鍵を生成して外部に出力し、
    前記暗号鍵と前記第1の群の生成子と、前記第1および第2のラベル内鍵から前記クライアント端末のラベル間射影要求部が第1のラベル間射影鍵を生成して外部に出力し、
    前記暗号鍵と前記第2の群の生成子と、前記第1および第2のラベル内鍵から前記クライアント端末のラベル間射影要求部が第2のラベル間射影鍵を生成して外部に出力し、
    前記暗号化された第1および第2の表、前記第1および第2のラベル内鍵と前記第1および第2のラベル間射影鍵を前記暗号化データベースサーバのデータ受信部が受信し、
    前記暗号化された第1の表の第1のラベルによって示される列のデータに前記暗号化データベースサーバのラベル内射影部が前記第1のラベルと前記第1のラベル内鍵とを作用させて第1のラベル内比較値を生成し、
    前記暗号化された第2の表の第2のラベルによって示される列のデータに前記暗号化データベースサーバのラベル内射影部が前記第2のラベルと前記第2のラベル内鍵とを作用させて第2のラベル内比較値を生成し、
    前記第1のラベル内比較値に前記暗号化データベースサーバのラベル間射影部が前記第1のラベル間射影鍵を作用させて第1のラベル間比較値を生成し、
    前記第2のラベル内比較値に前記暗号化データベースサーバのラベル間射影部が前記第2のラベル間射影鍵を作用させて第2のラベル間比較値を生成し、
    前記第1および第2のラベル間比較値を利用して、前記暗号化データベースサーバの暗号化表自然結合部が前記暗号化された第1および第2の表に対する自然結合を実行することを特徴とする暗号化表の自然結合方法。
  8. クライアント端末と暗号化データベースサーバとが相互に接続されて構成される暗号化データベースシステムにあって、
    前記クライアント端末が備えているコンピュータに、
    外部から入力される第1の表の第1のラベルによって示される列のデータをあらかじめ記憶された暗号鍵および当該暗号鍵の要部をなす第1の群の生成子とによって暗号化して外部に出力する手順、
    外部から入力される第2の表の第2のラベルによって示される列のデータを前記暗号鍵およびあらかじめ記憶された前記暗号鍵の要部をなす第2の群の生成子とによって暗号化して外部に出力する手順、
    前記暗号鍵と前記第1のラベルとから第1のラベル内鍵を生成して外部に出力する手順、
    前記暗号鍵と前記第2のラベルとから第2のラベル内鍵を生成して外部に出力する手順、
    前記暗号鍵と前記第1の群の生成子と、前記第1および第2のラベル内鍵から第1のラベル間射影鍵を生成して外部に出力する手順、
    および前記暗号鍵と前記第2の群の生成子と、前記第1および第2のラベル内鍵から第2のラベル間射影鍵を生成して外部に出力する手順
    を実行させることを特徴とする暗号化表の自然結合プログラム。
  9. クライアント端末と暗号化データベースサーバとが相互に接続されて構成される暗号化データベースシステムにあって、
    暗号化データベースサーバが備えているコンピュータに、
    前記暗号化された第1および第2の表、前記第1および第2のラベル内鍵と前記第1および第2のラベル間射影鍵を受信する手順、
    前記暗号化された第1の表の第1のラベルによって示される列のデータに前記第1のラベルと前記第1のラベル内鍵とを作用させて第1のラベル内比較値を生成する手順、
    前記暗号化された第2の表の第2のラベルによって示される列のデータに前記第2のラベルと前記第2のラベル内鍵とを作用させて第2のラベル内比較値を生成する手順、
    前記第1のラベル内比較値に前記第1のラベル間射影鍵を作用させて第1のラベル間比較値を生成する手順、
    前記第2のラベル内比較値に前記第2のラベル間射影鍵を作用させて第2のラベル間比較値を生成する手順、
    および前記第1および第2のラベル間比較値を利用して、前記暗号化された第1および第2の表に対する自然結合を実行する手順
    を実行させることを特徴とする暗号化表の自然結合プログラム。
JP2012548744A 2010-12-13 2011-12-06 暗号化データベース管理システム、クライアントおよびサーバ、自然結合方法およびプログラム Active JP5348337B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2012548744A JP5348337B2 (ja) 2010-12-13 2011-12-06 暗号化データベース管理システム、クライアントおよびサーバ、自然結合方法およびプログラム

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP2010277070 2010-12-13
JP2010277070 2010-12-13
PCT/JP2011/078185 WO2012081450A1 (ja) 2010-12-13 2011-12-06 暗号化データベース管理システム、クライアントおよびサーバ、自然結合方法およびプログラム
JP2012548744A JP5348337B2 (ja) 2010-12-13 2011-12-06 暗号化データベース管理システム、クライアントおよびサーバ、自然結合方法およびプログラム

Publications (2)

Publication Number Publication Date
JP5348337B2 true JP5348337B2 (ja) 2013-11-20
JPWO2012081450A1 JPWO2012081450A1 (ja) 2014-05-22

Family

ID=46244558

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012548744A Active JP5348337B2 (ja) 2010-12-13 2011-12-06 暗号化データベース管理システム、クライアントおよびサーバ、自然結合方法およびプログラム

Country Status (3)

Country Link
US (1) US9037846B2 (ja)
JP (1) JP5348337B2 (ja)
WO (1) WO2012081450A1 (ja)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9147079B2 (en) * 2010-09-28 2015-09-29 Nec Corporation Encrypted database system, client terminal, encrypted database server, natural joining method, and program
US9087209B2 (en) * 2012-09-26 2015-07-21 Protegrity Corporation Database access control
US10129028B2 (en) * 2015-07-13 2018-11-13 Fujitsu Limited Relational encryption for password verification
US10075301B2 (en) * 2015-07-13 2018-09-11 Fujitsu Limited Relational encryption for password verification
US10614236B2 (en) * 2017-03-01 2020-04-07 International Business Machines Corporation Self-contained consistent data masking
US10515077B2 (en) * 2017-06-14 2019-12-24 Microsoft Technology Licensing, Llc Execution optimization of database statements involving encrypted data
US20220150068A1 (en) * 2018-03-07 2022-05-12 Private Identity Llc System and methods for implementing private identity
US20220147607A1 (en) * 2018-03-07 2022-05-12 Private Identity Llc System and methods for implementing private identity
US11074364B2 (en) * 2018-12-20 2021-07-27 Microsoft Technology Licensing, Llc Confidential data security
JP6803598B1 (ja) * 2020-08-04 2020-12-23 Eaglys株式会社 データ共有システム、データ共有方法、およびデータ共有プログラム

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001101055A (ja) * 1999-09-30 2001-04-13 Casio Comput Co Ltd データベース管理装置、データベースシステム、暗号化装置及び記録媒体
JP2007114494A (ja) * 2005-10-20 2007-05-10 Nippon Telegr & Teleph Corp <Ntt> 秘匿計算方法及び装置
JP2010503118A (ja) * 2006-09-06 2010-01-28 マイクロソフト コーポレーション 暗号化されたデータの検索

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0658644B2 (ja) 1988-11-12 1994-08-03 工業技術院長 自然結合演算処理装置
US5584024A (en) 1994-03-24 1996-12-10 Software Ag Interactive database query system and method for prohibiting the selection of semantically incorrect query parameters
US5721896A (en) 1996-05-13 1998-02-24 Lucent Technologies Inc. Method for skew resistant join size estimation
JPH1165441A (ja) 1997-08-26 1999-03-05 Hitachi Ltd 複数暗号文の平文同一性証明方法および装置
JPH11143780A (ja) 1997-11-05 1999-05-28 Hitachi Ltd データベースにおける秘密情報管理方法およびデータベースの秘密情報管理装置
JP2000267565A (ja) 1999-03-12 2000-09-29 Mitsubishi Electric Corp 暗号化復号化装置及びプログラムを記録したコンピュータ読み取り可能な記録媒体
US7093137B1 (en) 1999-09-30 2006-08-15 Casio Computer Co., Ltd. Database management apparatus and encrypting/decrypting system
US7797342B2 (en) * 2004-09-03 2010-09-14 Sybase, Inc. Database system providing encrypted column support for applications
US20090313212A1 (en) * 2008-06-17 2009-12-17 Microsoft Corporation Relational database with compound identifier

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001101055A (ja) * 1999-09-30 2001-04-13 Casio Comput Co Ltd データベース管理装置、データベースシステム、暗号化装置及び記録媒体
JP2007114494A (ja) * 2005-10-20 2007-05-10 Nippon Telegr & Teleph Corp <Ntt> 秘匿計算方法及び装置
JP2010503118A (ja) * 2006-09-06 2010-01-28 マイクロソフト コーポレーション 暗号化されたデータの検索

Also Published As

Publication number Publication date
JPWO2012081450A1 (ja) 2014-05-22
US20130268750A1 (en) 2013-10-10
WO2012081450A1 (ja) 2012-06-21
US9037846B2 (en) 2015-05-19

Similar Documents

Publication Publication Date Title
JP5348337B2 (ja) 暗号化データベース管理システム、クライアントおよびサーバ、自然結合方法およびプログラム
JP5742849B2 (ja) 暗号化データベースシステム、クライアント端末、暗号化データベースサーバ、自然結合方法およびプログラム
JP6180177B2 (ja) プライバシーを保護することができる暗号化データの問い合わせ方法及びシステム
Ferreira et al. Practical privacy-preserving content-based retrieval in cloud image repositories
Cui et al. Efficient and expressive keyword search over encrypted data in cloud
JP5776696B2 (ja) 暗号化データベースシステム、クライアント端末、暗号化データベースサーバ、自然結合方法およびプログラム
US9977918B2 (en) Method and system for verifiable searchable symmetric encryption
CN110337649B (zh) 用于搜索模式未察觉的动态对称可搜索加密的方法和系统
JP6137173B2 (ja) 暗号化データベースシステム、クライアント端末およびデータベースサーバ、結合方法およびプログラム
US10341086B2 (en) Method and system for providing encrypted data for searching of information therein and a method and system for searching of information on encrypted data
JP6056850B2 (ja) 暗号化データベースシステム、クライアント端末、データベースサーバ、データ結合方法、および、プログラム
JP2014126865A (ja) 暗号処理装置および方法
US20090138698A1 (en) Method of searching encrypted data using inner product operation and terminal and server therefor
WO2014007296A1 (ja) 順序保存暗号化システム、暗号化装置、復号化装置、暗号化方法、復号化方法およびこれらのプログラム
EP2951945A1 (en) Method and system for providing encrypted data for searching of information therein and a method and system for searching of information on encrypted data
EP4020265A1 (en) Method and device for storing encrypted data
CN115795514A (zh) 一种隐私信息检索方法、装置及系统
CN115694921B (zh) 一种数据存储方法、设备及介质
Liu et al. Efficient dynamic multi-client searchable encryption supporting fuzzy search
Tong et al. Owner-free Distributed Symmetric Searchable Encryption Supporting Conjunctive Queries
Duan et al. A searchable encryption scheme with hidden search pattern and access pattern on distributed cloud system
WO2016002198A1 (ja) 検索補助データ格納装置、検索装置、追加装置、削除装置、検索依頼装置、追加依頼装置、削除依頼装置、データ検索システム、データ検索方法、および、記憶媒体
Alyousif et al. Improving Performance of Searchable Symmetric Encryption Through New Information Retrieval Scheme
Rezapour et al. Efficient common prefix search on encrypted data as an additional service on the top of the storage providers
CN117336010A (zh) 基于可信执行环境的轻量级布尔查询可搜索对称加密方法

Legal Events

Date Code Title Description
TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20130723

R150 Certificate of patent or registration of utility model

Ref document number: 5348337

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150