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

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

Info

Publication number
JP6056850B2
JP6056850B2 JP2014507395A JP2014507395A JP6056850B2 JP 6056850 B2 JP6056850 B2 JP 6056850B2 JP 2014507395 A JP2014507395 A JP 2014507395A JP 2014507395 A JP2014507395 A JP 2014507395A JP 6056850 B2 JP6056850 B2 JP 6056850B2
Authority
JP
Japan
Prior art keywords
column
encrypted
key
search
row
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
JP2014507395A
Other languages
English (en)
Other versions
JPWO2013145627A1 (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
Publication of JPWO2013145627A1 publication Critical patent/JPWO2013145627A1/ja
Application granted granted Critical
Publication of JP6056850B2 publication Critical patent/JP6056850B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • 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

Description

本発明は暗号化データベースシステム、クライアント端末、データベースサーバ、データ結合方法、および、プログラムに関し、特に、データの関連性が漏洩する危険性を軽減することを可能とする暗号化データベースシステム等に関する。
企業などにおける業務の根幹がコンピュータ化されることによって、ほとんどの企業が業務で使用する大量のデータを収容する大規模データベースを持つようになっている。これらのデータは、業務上重要なデータであり、また個人情報保護の観点からも、外部に対して漏洩することは絶対にあってはならない。このため、そのような大規模データベースでは、収容されるデータが暗号化されていることが多い。
データベースは、多くの表(テーブル)の集合体として捉えることができる。以下、非特許文献1に記載されている、収容されているデータが暗号化されたデータベース(以後暗号化データベースと記載する)で、各要素を復号化することなく2つの表を結合するために行われている、検索可能暗号と呼ばれる暗号方式について説明する。
この方式では、暗号学的ハッシュ関数Hashと共通鍵暗号(Enc,Dec)を使用する。暗号化関数Encは、平文をm、暗号鍵をkとすると、c=Enc(k,m)で暗号文cを生成し、復号化関数Decは、暗号文をc、暗号鍵をkとすると、m=Dec(k,c)で暗号文cを復号化する。
検索可能暗号では、秘密鍵の組(K,k)を使用して、平文mを以下の数1に示すように暗号化する。復号化は以下の数2に示す形で処理可能である。
Figure 0006056850
Figure 0006056850
この方式では、平文mが同一であれば、それらの暗号文の第一の要素C[1]は同一となる。即ち、暗号文を復号しなくても平文の同一性を判定することが可能であり、同一の要素について表を自然結合することが可能となる。
図14および15は、検索可能暗号で、結合される前の表データについて示す説明図である。図14は表「I」901を、図15は表「II」902を各々示す。表「I」901には列「IA」901aおよび列「IB」901bがあり、表「II」902には列「IIB」902aおよび列「IIC」902bがある。
図16は、図14および15に示した表「I」901および表「II」902を結合して得られる表「III」903について示す説明図である。表「I」901の列「IB」901b、および表「II」902の列「IIB」902aは、いずれも「カード番号」についての列であるので、列「IB」=列「IIB」の条件で結合する(列「IB」および列「IIB」で、要素の値が等しいデータ同士を結合する)ことが可能であり、これによって表「III」903を得ることが可能である。
図17は、図16に示した表「III」903から、列「IA(名前)」が「上田」である行を抽出した表「III’」904について示す説明図である。以上で示した処理では、表「I」901および表「II」902の各要素は暗号化されていない。
しかしながら、実際にはこれらが暗号化された状態で、各要素を復号化することなく、以上に示した処理を行う必要がある。そのためには、列「IB」および列「IIB」で要素の値が等しいか否かを判断可能である必要がある。そこで、前述の検索可能暗号という暗号方式を利用する。
図18および19は、図14および15に示した表「I」901および表「II」902を、各々検索可能暗号によって暗号化した暗号化表「I」911および暗号化表「II」912について示す説明図である。暗号化表「I」911および暗号化表「II」912では、各要素が前述の数1に示した方式で、秘密鍵の組(K,k)を利用して暗号化されている。
図20は、図18および19に示した暗号化表「I」911および暗号化表「II」912を結合して得られる暗号化表「III」913について示す説明図である。暗号化表「I」911および暗号化表「II」912を結合するには、暗号化される前の列「IB」901bと列「IIB」902aの要素の値が等しいか否かを判断する必要がある。
検索可能暗号によれば、暗号化された要素のHash(K,m)とHash(K,m’)とが等しいか否かを判断することによって、暗号化される前のmとm’とが等しいか否かを判断することができるので、これによって暗号化表「III」913を得ることができる。
図21は、図20に示した暗号化表「III」913から、列「IA(名前)」が「Hash(K,上田)」である行を抽出した暗号化表「III’」914について示す説明図である。以上で説明したように、ここまでで各要素を復号化することなく、暗号化表「III’」914を得ることができる。秘密鍵の組(K,k)を持つ正当なユーザであれば、これに対応する列「IIC」902bの要素、この場合は「上田」さんのクレジットカードの「有効期限」について、その要素を復号化して知ることが可能である。
これに関連する他の技術文献として、次の各々がある。特許文献1には、キーワードが暗号化されたままの状態でマッチング処理を行う暗号化データベース検索装置について記載されている。特許文献2には、暗号化されたキーワードによってインデックスファイルを生成して、これによって暗号化された状態のファイルの検索を可能とする技術が記載されている。
特許文献3および4には、分散データベースシステムで表結合にかかる時間を低減する技術が記載されている。特許文献5には、検索が当たりか否かを識別可能な情報と、その情報を暗号化して得られる検索情報によって、部分一致検索が可能なキーワード検索システムについて記載されている。
特開2005−134990号公報 特開2010−061103号公報 特開2010−272030号公報 特開平04−213765号公報 特開2011−147074号公報
G.Amanatidis, A.Boldyreva, and A.O'Neill. Provably-secure schemes for basic query support in outsourced databases. In S.~Barker and G.-J. Ahn, editors, DBSec, volume 4602 of Lecture Notes in Computer Science, pages 14--30. Springer, 2007.
以上で説明したように、非特許文献1に記載された検索可能暗号による方式を利用すれば、暗号化したまま表を結合し、条件に一致する(特定の列の要素が指定された値と一致する)行を取り出すことが可能である。
しかしながら、この方式では、最終的に得られる行以外の行に関しても表が結合される。前述の例でいえば、ユーザは「上田」さんのクレジットカードの有効期限について知ることができればよく、他のメンバの有効期限について知る必要は無い。それにもかかわらず、この方式では、「上田」さん以外のメンバの有効期限についても結合された、図16や図20に示したような表が作成される。
通常、このようなデータベースシステムはクライアント−サーバ方式で運用されるので、この処理を行っている間は図16や図20に示したような「上田」さん以外のメンバの有効期限についても結合された表のデータがサーバ側の装置に記憶される。このため、その間にそのデータが漏洩する危険性を否定できない。
図20に示したように各データが暗号化されている場合、秘密鍵の組(K,k)を持っていないユーザは具体的な名前や有効期限を知ることはできないが、結合関係からその暗号文同士の対応を推測することはできる。即ち、最終的に得られる行以外の行に関しても表が結合されるということは、データの関連性に関して必要以上に情報が漏洩する危険性があることを意味する。
この問題を解決することが可能な技術は、前述の特許文献1〜5にも記載されていない。そもそもこれらの文献の中で、以上で説明した問題点について言及したものは無いので、当然ながらこれらの文献に記載された技術でこの問題を解決することはできない。
本発明の目的は、データベースの暗号化された複数の表を復号化する事なく結合し、さらにデータの関連性が漏洩する危険性を軽減することを可能とする暗号化データベースシステム、クライアント端末、データベースサーバ、データ結合方法、および、プログラムを提供することにある。
本発明の一態様における暗号化データベースシステムは、入力されたa列目およびb列目のデータを有する第1の表とc列目のデータを有する第2の表とを予め記憶された秘密鍵によって暗号化して暗号化データベースサーバに出力し、前記暗号化された第1の表と第2の表を前記a列目の値がqであるデータについて前記b列目およびc列目をキーとして結合させる部分結合命令を前記秘密鍵から生成された検索鍵と共に前記暗号化データベースサーバに送信するクライアント端末と、前記暗号化された第1および第2の表を受信して記憶し、前記部分結合命令に応じて前記暗号化された第1および第2の表を前記a列目の値がqであるデータについて前記b列目およびc列目をキーとして結合し、前記クライアント端末に返送する前記暗号化データベースサーバとを備えた暗号化データベースシステムであって、前記暗号化データベースサーバが、前記検索鍵を利用して前記暗号化された第1および第2の表から前記a列目の値がqであるデータを各々抽出し、当該抽出されたデータに対して前記b列目およびc列目をキーとして結合する。
本発明の一態様におけるクライアント端末は、入力されたa列目およびb列目のデータを有する第1の表とc列目のデータを有する第2の表とを予め記憶された秘密鍵によって暗号化して暗号化データベースサーバに出力する暗号化手段と、前記秘密鍵を利用して検索鍵を生成する検索鍵生成手段とを備え、前記検索鍵生成手段が、前記秘密鍵を利用して前記暗号化された第1および第2の表を前記a列目の値がqであるデータについて前記b列目およびc列目をキーとして結合させる部分結合命令を前記検索鍵と共に前記暗号化データベースサーバに送信する。
本発明の一態様における暗号化データベースサーバは、暗号化されたa列目およびb列目のデータを有する第1の表およびc列目のデータを有する第2の表をクライアント端末から受信して記憶し、前記クライアント端末から受信した検索鍵を含む部分結合命令に応じて前記暗号化された第1および第2の表を前記a列目の値がqであるデータについて前記b列目およびc列目をキーとして結合して、前記クライアント端末に出力する暗号化データベースサーバであって、前記検索鍵を利用して前記暗号化された第1および第2の表から前記a列目の値がqであるデータを各々抽出し、当該抽出されたデータに対して前記b列目およびc列目をキーとして結合する検索手段を備える。
本発明の一態様における暗号化データ結合方法は、クライアント端末と、暗号化データベースサーバとを含む暗号化データベースシステムにあって、前記クライアント端末が、入力されたa列目およびb列目のデータを有する第1の表とc列目のデータを有する第2の表とを予め記憶された秘密鍵によって暗号化して前記暗号化データベースサーバに出力し、前記暗号化データベースサーバが、前記暗号化された第1および第2の表を受信して記憶し、前記クライアント端末が、前記暗号化された第1の表の前記a列目の値がqであるデータについて前記暗号化された第1および第2の表を前記b列目およびc列目をキーとして結合させる部分結合命令を前記秘密鍵から生成された検索鍵と共に前記暗号化データベースサーバに送信し、前記暗号化データベースシステムが、前記検索鍵を利用して前記暗号化された第1および第2の表から前記a列目の値がqであるデータを各々抽出し、当該抽出されたデータに対して前記b列目およびc列目をキーとして結合し、前記クライアント端末に返送する。
本発明の一態様における第1のコンピュータが読み取り可能な記録媒体は、クライアント端末と、暗号化データベースサーバとを含む暗号化データベースシステムにあって、前記クライアント端末が備えるコンピュータに、入力されたa列目およびb列目のデータを有する第1の表とc列目のデータを有する第2の表とを予め記憶された秘密鍵によって暗号化して前記暗号化データベースサーバに出力する手順と、前記暗号化された第1の表の前記a列目の値がqであるデータについて前記暗号化された第1および第2の表を前記b列目およびc列目をキーとして結合させる部分結合命令を前記秘密鍵から生成された検索鍵と共に前記暗号化データベースサーバに送信する手順と、を実行させる暗号化データ結合プログラムを格納する。
本発明の一態様における第2のコンピュータが読み取り可能な記録媒体は、クライアント端末と、暗号化データベースサーバとを含む暗号化データベースシステムにあって、前記暗号化データベースサーバが備えるコンピュータに、前記クライアント端末から暗号化されたa列目およびb列目のデータを有する第1の表およびc列目のデータを有する第2の表を受信して記憶する手順と、前記クライアント端末から受信した検索鍵を含む部分結合命令に応じて、前記検索鍵を利用して前記暗号化された第1および第2の表から前記a列目の値がqであるデータを各々抽出し、当該抽出されたデータに対して前記b列目およびc列目をキーとして結合し、前記クライアント端末に返送する手順と、を実行させる。
本発明の効果は、データベースの暗号化された複数の表を復号化する事なく結合し、さらにデータの関連性が漏洩する危険性を軽減できることである。
本発明の第1の実施形態に係る暗号化データベースシステムの構成を示す説明図である。 図1に示したクライアント端末が表「X」および表「Y」を暗号化して暗号化データベースサーバに送付する動作について説明する説明図である。 図2に示した暗号化される前の表「X」について示す説明図である。 図2に示した暗号化される前の表「Y」について示す説明図である。 図3に示した表「X」が、図2に示した処理によって暗号化された暗号化表「X」について示す説明図である。 図4に示した表「Y」が、図2に示した処理によって暗号化された暗号化表「Y」について示す説明図である。 図1で示した暗号化データベースサーバが行う、図5〜6で示した暗号化表「X」および暗号化表「Y」を結合して列「A」の値がqである行を抽出する処理について示す説明図である。 図1に示したクライアント端末および暗号化データベースサーバが行う処理について示すフローチャートである。 本発明の第2の実施形態に係る暗号化データベースシステムの構成を示す説明図である。 図9に示したクライアント端末が図3〜4に示した表「X」および表「Y」を暗号化して暗号化データベースサーバに送付する動作について説明する説明図である。 図10に示した暗号化/復号化部によって置換された暗号化表「X」について示す説明図である。 図9で示した暗号化データベースサーバが行う、図6および図11で示した暗号化表「X」および暗号化表「Y」を結合して列「A」の値がqである行を抽出する処理について示す説明図である。 図9に示したクライアント端末および暗号化データベースサーバが行う処理について示すフローチャートである。 検索可能暗号で、結合される前の表「I」について示す説明図である。 検索可能暗号で、結合される前の表「II」について示す説明図である。 図14および15に示した表「I」および表「II」を結合して得られる表「III」について示す説明図である。 図16に示した表「III」から、列「IA(名前)」が「上田」である行を抽出した表「III’」について示す説明図である。 図14に示した表「I」を、検索可能暗号によって暗号化した暗号化表「I」について示す説明図である。 図15に示した表「II」を、検索可能暗号によって暗号化した暗号化表「II」について示す説明図である。 図18および19に示した暗号化表「I」911および暗号化表「II」912を結合して得られる暗号化表「III」について示す説明図である。 図20に示した暗号化表「III」から、列「IA(名前)」が「Hash(K,上田)」である行を抽出した暗号化表「III’」について示す説明図である。 本発明の第1の実施形態に係る暗号化データベースシステムの基本的な構成を示す説明図である。
(第1の実施形態)
以下、本発明の第1の実施形態の構成について、図1、2、7、22に基づいて説明する。
最初に、本実施形態の基本的な内容について説明し、その後でより具体的な内容について説明する。
図22は、本発明の第1の実施形態に係る暗号化データベースシステム1の基本的な構成を示す説明図である。
本実施形態に係る暗号化データベースシステム1は、クライアント端末10と暗号化データベースサーバ50とを備える。クライアント端末10は、入力されたa列目およびb列目のデータを有する第1の表(表「A」31)とc列目のデータを有する第2の表(表「B」32)とを予め記憶された秘密鍵33によって暗号化して暗号化データベースサーバ50に出力し、暗号化された第1の表と第2の表をa列目の値がqであるデータについてb列目およびc列目をキーとして結合させる部分結合命令を秘密鍵から生成された検索鍵と共に暗号化データベースサーバ50に送信する。暗号化データベースサーバ50は、暗号化された第1および第2の表を受信して記憶し、部分結合命令に応じて暗号化された第1および第2の表をa列目の値がqであるデータについてb列目およびc列目をキーとして結合し、クライアント端末に返送する。ここで、暗号化データベースサーバ50は、検索鍵を利用して暗号化された第1および第2の表からa列目の値がqであるデータを各々抽出し、当該抽出されたデータに対してb列目およびc列目をキーとして結合する。
ここでクライアント端末10は、検索鍵生成部21と、被検索鍵生成部22と、暗号化部25と、検索暗号文生成部24と、を備える。検索鍵生成部21は、秘密鍵33を利用して、第1の表のa列目の要素を検索するための鍵である第1の検索鍵と、第1の表のb列目の要素を検索するための鍵である第2の検索鍵とを生成する。被検索鍵生成部22は、秘密鍵33を利用して、第1の表のa列目の要素が特定の値で検索されるための鍵である第1の被検索鍵と、第2の表のc列目の要素が特定の値で検索されるための鍵である第2の被検索鍵とを生成する。暗号化部25は、秘密鍵を利用して、第1および第2の表の各要素を暗号化する。検索暗号文生成部24は、第1の表のa列目の要素を第1の被検索鍵と暗号化されたa列目の要素、b列目の要素を第1および第2の検索鍵から生成した検索暗号文と暗号化されたb列目の要素とでそれぞれ置換し、第2の表のc列目の要素を第2の被検索鍵と暗号化されたc列目の要素で置換して、暗号化された第1および第2の表として暗号化データベースサーバ50に送信する。そして、検索鍵生成部21は、秘密鍵33を利用して第1の表のa列目の値がqである要素を検索するための鍵である第3の検索鍵を生成し、部分結合命令と共に暗号化データベースサーバ50に送信する。
これに対する暗号化データベースサーバ50は、検索部61と、導出部62と、を備える。検索部61は、暗号化された第1の表で第3の検索鍵と第1の被検索鍵が一致する行を抽出する。導出部62は、第1の検索鍵と検索暗号文とから対象検索鍵を生成する。そして、検索部61は、この対象検索鍵を用いて暗号化された第1および第2の表の抽出された行についてb列目およびc列目が等しいか否かを判断して結合を行う。
この構成を備えることにより、暗号化データベースシステム1はデータベースの暗号化された複数の表を復号化する事なく結合し、さらにデータの関連性が漏洩する危険性を軽減することが可能となる。
以下、これをより詳細に説明する。
図1は、本発明の第1の実施形態に係る暗号化データベースシステム1の構成を示す説明図である。暗号化データベースシステム1は、クライアント端末10と暗号化データベースサーバ50とが、LAN(Local Area Network)などを介して相互に接続されて構成される。
クライアント端末10は、一般的なコンピュータ装置としての構成を備える。即ち、クライアント端末10は、コンピュータプログラムを実行する主体となるプロセッサ11と、データを記憶する記憶手段12と、ユーザからの操作を受け付ける入力手段13と、ユーザに処理結果を提示する出力手段14と、他のコンピュータとのデータ通信を行う通信手段15とを備える。
プロセッサ11では、ユーザからの操作命令に応じて、初期設定部20、検索鍵生成部21、被検索鍵生成部22、検索暗号文生成部24、および暗号化/復号化部25が、各々コンピュータプログラムとして後述するそれぞれの機能を実行するように構成されている。また、記憶手段12には以後に説明する処理で使用する秘密鍵33が記憶されている。
そして入力手段13には、名称が各々「X」および「Y」である表「X」31および表「Y」32が入力される。以後、本明細書では、名称「X」である表の名称「A」である列の、値が「a」である要素を、表「X」の列「A」の要素「a」と記載する。
暗号化データベースサーバ50もまた、一般的なコンピュータ装置としての構成を備える。即ち、暗号化データベースサーバ50は、コンピュータプログラムを実行する主体となるプロセッサ51と、データを記憶する記憶手段52と、他のコンピュータとのデータ通信を行う通信手段53とを備える。
プロセッサ51では、クライアント端末10からの操作命令に応じて、検索部61、および導出部62が、コンピュータプログラムとして後述するそれぞれの機能を実行するように構成されている。また、記憶手段52には表「X」31および表「Y」32を各々暗号化してクライアント端末10から送付された暗号化表「X」41および暗号化表「Y」42が記憶される。
上述した各手段の、基本的な動作について説明する。クライアント端末10と暗号化データベースサーバ50には、各種のシステム変数が入力されるか、もしくは予め記憶されている。以下の説明では、それらのシステム変数については当業者にとって公知の事項であるので、必要なシステム変数以外は特に説明しない。
まずクライアント端末10の側で、初期設定部20は、各部の動作に必要な初期値を設定する。この詳細については後述する。
検索鍵生成部21は、表「X」31の列「A」、列「A」の要素「a」に対して、表「X」31の列「A」の要素「a」を検索するための鍵である「検索鍵(X,A,a)」を、秘密鍵33を利用して生成する。この検索鍵生成部21を関数と考えると、以下の数3のように表現される。
Figure 0006056850
被検索鍵生成部22は、表「X」31の列「A」、列「A」の要素「a」に対して、表「X」31の列「A」の要素「a」として検索される鍵である「被検索鍵(X,A,a)」を、秘密鍵33を利用して生成する。この被検索鍵生成部22を関数と考えると、以下の数4のように表現される。
Figure 0006056850
検索暗号文生成部24は、2つの検索鍵「K1」および「K2」に対して、検索鍵「K1」を検索鍵「K2」に対応させるための情報である「検索暗号文(K1,K2)」を、秘密鍵を用いて生成する。この検索暗号文生成部24を関数と考えると、以下の数5のように表現される。
Figure 0006056850
暗号化データベースサーバ50の側で、検索部61は、表「X」31の列「A」の要素「a」に対して生成された「被検索鍵(X,A,a)」と、表「X」31の列「A」の要素「a’」に対して生成された「検索鍵(X,A,a’)」との間で、a=a’であるか否かを「被検索鍵(X,A,a)」と「検索鍵(X,A,a’)」から判定する。この検索部61を関数と考えると、以下の数6のように表現される。ここで、0を一致、1を不一致と解釈する。
Figure 0006056850
導出部62は、表「X」31の列「A」、列「A」の要素「a」、表「Y」32の列「B」、および列「B」の存在を仮定する要素「b」に関する検索鍵を各々「K1=検索鍵(X,A,a)」および「K2=検索鍵(Y,B,b)」として、このK2を対象検索鍵として、検索鍵「K1」と「検索暗号文(K1,K2)」とから対象検索鍵「K2」を導出する。この導出部62を関数と考えると、以下の数7のように表現される。
Figure 0006056850
クライアント端末10側に戻って、暗号化/復号化部25は、暗号文cを秘密鍵によって復号する。また、暗号化/復号化部25は、逆に、要素mを秘密鍵によって暗号化することもできる。この暗号化/復号化部25を関数と考えると、以下の数8〜9のように表現される。
Figure 0006056850
Figure 0006056850
(暗号化表の作成および送付)
図2は、図1に示したクライアント端末10が表「X」31および表「Y」32を暗号化して暗号化データベースサーバ50に送付する動作について説明する説明図である。図3〜4は、図2に示した暗号化される前の表「X」31および表「Y」32について示す説明図である。図3は表「X」31、図4は表「Y」32について各々示している。
クライアント端末10に入力手段13を介して入力される表「X」31および表「Y」32は、表「X」31には列「A」31aと列「B」31b、表「Y」32には列「C」32cが存在する。列「B」31bと列「C」32cが値を取る領域は同一である。
表「X」31の行数は自然数nであり、表「X」31の列「A」31aおよび列「B」31bのi番目の要素(1≦i≦n)を各々「a[i]」,「b[i]」と記載する。表「Y」32の行数は自然数mであり、表「Y」32の列「C」32cのi番目の要素(1≦i≦n)を「c[i]」と記載する。
被検索鍵生成部22は、iの取りうる1〜nの全ての値に対して、表「X」31、列「A」31a、要素「a[i]」、および秘密鍵33から、数4で示した「被検索鍵(X,A,a[i])」を生成する。これを図2では第1の被検索鍵34aで示す。
検索鍵生成部21は、iの取りうる1〜nの全ての値に対して、表「X」31、列「A」31a、要素「a[i]」、および秘密鍵33から、数3で示した「検索鍵(X,A,a[i])」を生成する。これを図2では第1の検索鍵34bで示す。
また、検索鍵生成部21は、iの取りうる1〜nの全ての値に対して、表「Y」32、列「C」32c、列Bの要素「b[i]」、および秘密鍵33から、数3で示した「検索鍵(Y,C,b[i])」を生成する。これを図2では第2の検索鍵34cで示す。
なお、図面の錯綜を回避するため、図2では検索鍵生成部21および被検索鍵生成部22をそれぞれ2カ所ずつ表出している。これらはそれぞれ、同一の構成要素を示している。
検索暗号文生成部24は、iの取りうる1〜nの全ての値に対して、第1の検索鍵34b、第2の検索鍵34c、および秘密鍵33から、数5で示した「検索暗号文(第1の検索鍵,第2の検索鍵)」を生成する。これを図2では検索暗号文34fで示す。
暗号化/復号化部25は、iの取りうる1〜nの全ての値に対して、要素「a[i]」、および秘密鍵33から、数8に示した各要素の暗号文「enc(a[i])」を生成し、また同様に、要素「b[i]」、および秘密鍵33から、数8に示した各要素の暗号文「enc(b[i])」を生成する。
また、暗号化/復号化部25は、iの取りうる1〜nの全ての値に対して、表「X」31で、列「A」31aの要素「a[i]」を(第1の被検索鍵,enc(a[i]))に置換し、同様に列「B」31bの要素「b[i]」を(検索暗号文(第1の検索鍵,第2の検索鍵),enc(b[i]))に置換する。この置換された表「X」31を、暗号化表「X」41で示す。
一方で、被検索鍵生成部22は、iの取りうる1〜mの全ての値に対して、表「Y」32、列「C」32c、列Cの要素「c[i]」、および秘密鍵33から、数4で示した「被検索鍵(Y,C,c[i])」を生成する。これを図2では第2の被検索鍵34dで示す。
暗号化/復号化部25は、iの取りうる1〜mの全ての値に対して、要素「c[i]」、および秘密鍵33から、数8に示した各要素の暗号文「enc(c[i])」を生成する。また、iの取りうる1〜mの全ての値に対して、表「Y」32で、列「C」32cの要素「c[i]」を(第2の被検索鍵,enc(c[i]))に置換する。この置換された表「Y」32を、暗号化表「Y」42で示す。
暗号化/復号化部25は、以上で作成された暗号化表「X」41および暗号化表「Y」42を、暗号化データベースサーバ50に送付する。図5〜6は、図3〜4に示した表「X」31および表「Y」32が、図2に示した処理によって暗号化された暗号化表「X」41および暗号化表「Y」42について示す説明図である。図5は暗号化表「X」41、図6は暗号化表「Y」42について各々示している。
暗号化データベースサーバ50は、クライアント端末10から受信した暗号化表「X」41および暗号化表「Y」42を、記憶手段52に保存する。そして、クライアント端末10からのコマンドによって、暗号化表「X」41および暗号化表「Y」42に対して結合処理を行い、この結果を依頼元のクライアント端末10に返す。以下、その処理について説明する。
(暗号化表に対する結合処理)
ここでは、暗号化表「X」41および暗号化表「Y」42の、列「B」の要素「b[i]」と列「C」の要素「c[i]」とが等しくなるデータに対して結合を行うことを考える。より具体的には、暗号化表「X」41の列「A」31aの値がqである行を暗号化表「Z」43から抽出する処理について本実施形態では説明する。
一般的に、暗号化表「Z」43から、qの他に複数の値を指定することによって、列「A」31aの値を限定した表を生成することが可能となる。このような結合処理を、本明細書では「部分結合」と記載する。
クライアント端末10は、暗号化表「X」41および暗号化表「Y」42を暗号化する際に使用された秘密鍵33を保持しているが、暗号化データベースサーバ50はこれを保持していない。
図7は、図1で示した暗号化データベースサーバ50が行う、図5〜6で示した暗号化表「X」41および暗号化表「Y」42を結合して列「A」の値がqである行を抽出する処理について示す説明図である。まずクライアント端末10の検索鍵生成部21が、表「X」31、列「A」31a、要素「a[i]」、および秘密鍵33から、数3で示した「検索鍵(X,A,q)」を生成する。
クライアント端末10から、以上の「検索鍵(X,A,q)」が、部分結合コマンドと共に暗号化データベースサーバ50に送信される。図8では、これを第3の検索鍵35aとして示している。
これを受けた暗号化データベースサーバ50では、検索部61が、第3の検索鍵35a=検索鍵(X,A,q)および被検索鍵34a=被検索鍵(X,A,a[i])を入力として、これが暗号化表「X」41の列「A」31aの要素である第1の被検索鍵34a=被検索鍵(X,A,a[i])と一致するiを、iの取りうる1〜nの全ての値に対して検索し、判定結果=0(一致)が出力されるiを全て発見する。このようなiの集合をSと記載する。ここでi∈Sならa[i]=qである。
引き続いて導出部62が、集合Sの全ての要素iに関して、第3の検索鍵35a=(X,A,q)、検索暗号文34f=(検索鍵(X,A,a[i]),検索鍵(Y,C,b[i]))から、数7に示された対象検索鍵44a=検索鍵(Y,C,b[i])を生成する。
そして検索部61が、集合Sの全ての要素iに対して、対象検索鍵44a=検索鍵(Y,C,b[i])と、暗号化表「Y」42の列Cの要素である第2の被検索鍵34d=被検索鍵(Y,C,c[j])で、一致するか否かの判定結果=0(一致する)である行番号jを対応づける。このようなjをj[i]と表記する。検索部61は、一致すると判定した暗号化表「X」41のi行目と暗号化表「Y」42のj行目とを結合して、新たな行R[i]を作成する。検索部61は、全てのi∈SについてR[i]をクライアント端末10に返送する。
なお、図面の錯綜を回避するため、図2と同様に図7でも検索部61を2カ所に表出している。図2と同様に、これらも同一の構成要素を示している。後述する図10および図12においても同様である。
クライアント端末10は、暗号化/復号化部25によって、R[i]の要素であるenc(a[i]),enc(b[i]),enc(c[i])を復号化して、各列要素の原文a[i],b[i],c[i]を得ることができる。また、適切な検索暗号文34fが予め作成されていれば、対象検索鍵44a=検索鍵(Y,C,b[i])を利用して、列「C」とさらに他の列との間で結合を取ることもできる。
(より詳細な実施形態の説明)
以上で説明した各手段の動作について、それらの動作をより詳細に説明する。
図8は、図1に示したクライアント端末10および暗号化データベースサーバ50が行う処理について示すフローチャートである。クライアント端末10の側で、初期設定部20は、入力手段13を介して入力された安全変数κから、以下の数10で示される秘密鍵MKをランダムに選択する(ステップS101)。
Figure 0006056850
そして初期設定部20はさらに、システム変数PMを、以下の数11で示されるハッシュ関数、表の名前の空間、列の名前の空間、列の要素の空間の表現方法の記述として定義し、これらのシステム変数PMおよび秘密鍵MKを出力する(ステップS102)。
Figure 0006056850
検索鍵生成部21は、システム変数PM、秘密鍵MK、表の名前TN(図3〜4でいう「X」「Y」)、列の名前CN(図3〜4でいう「A」「B」「C」)、および要素の値EV(図3〜4でいう「a[i]」「b[i]」「c[i]」)を入力として、以下の数12で示される検索鍵SKを生成して出力する(ステップS103)。
Figure 0006056850
被検索鍵生成部22は、システム変数PM、秘密鍵MK、表の名前TN(同上)、列の名前CN(同上)、および要素の値EV(同上)を入力として、以下の数13で示される被検索鍵SKDを生成して出力する(ステップS104)。
Figure 0006056850

検索暗号文生成部24は、システム変数PM、第1の検索鍵SK、および第2の検索鍵SK’を入力として、以下の数14で示される検索暗号文CPを生成して出力する(ステップS105)。
Figure 0006056850
暗号化/復号化部25は、前述した(図5〜6に示した)ように表「X」31および表「Y」32の各要素を置換して暗号化表「X」41および暗号化表「Y」42を作成する(ステップS106)。そして、暗号化/復号化部25は、これらの暗号化表「X」41および暗号化表「Y」42を暗号化データベースサーバ50に送付する。暗号化データベースサーバ50では、これらを受信して記憶手段52に記憶する(ステップS151)。
クライアント端末10では、その後で、検索鍵生成部21が数12で示される検索鍵SK=第3の検索鍵35aを生成して、部分結合コマンドと共に暗号化データベースサーバ50に送信する(ステップS107)。
暗号化データベースサーバ50で、検索部61は、システム変数PM、検索鍵SK、および被検索鍵SKDを入力として、以下の数15で示されるように検索鍵SKと被検索鍵SKDとを比較し、一致すれば0、一致しなければ1を出力する処理を、全ての行に対して行う。検索部61は、0が出力される、即ち第3の検索鍵SK=検索鍵(X,A,q)と第1の被検索鍵SKD=被検索鍵(X,A,a[i])とが一致する行番号iの集合Sを求める(ステップS152)。
Figure 0006056850
導出部62は、全てのi∈Sに対して、システム変数PM、検索鍵SK、および検索暗号文CPを入力として、以下の数16で示される対象検索鍵SK’=検索鍵(Y,C,b[i])を生成して出力する(ステップS153)。
Figure 0006056850
そして検索部61は、ここで算出された対象検索鍵SK’を利用して、全てのi∈Sに対して、この対象検索鍵SK’と第2の被検索鍵34d=被検索鍵(Y,C,c[j])が一致するか否かを判定する。検索部61は、一致すると判定した暗号化表「X」41のi行目と暗号化表「Y」42のj行目とを結合して、新たな行R[i]を作成する。検索部61は、全てのi∈SについてR[i]をクライアント端末10に返送する(ステップS154)。
クライアント端末10では、このR[i]を暗号化/復号化部25が秘密鍵33によって復号化することによって、表「X」31と表「Y」32とが結合され、かつ列「A」の値がqである行を得る(ステップS108)。
(第1の実施形態の全体的な動作)
次に、上記の実施形態の全体的な動作について説明する。
クライアント端末10は、入力されたa列目およびb列目のデータを有する第1の表とc列目のデータを有する第2の表とを予め記憶された秘密鍵によって暗号化して暗号化データベースサーバ50に出力する(図8・ステップS101〜106)。暗号化データベースサーバ50は、暗号化された第1および第2の表を受信して記憶する(図8・ステップS151)。クライアント端末10は、暗号化された第1の表のa列目の値がqであるデータについて暗号化された第1および第2の表をb列目およびc列目をキーとして結合させる部分結合命令を秘密鍵から生成された検索鍵と共に暗号化データベースサーバ50に送信する(図8・ステップS107)。暗号化データベースサーバ50は、検索鍵を利用して暗号化された第1および第2の表からa列目の値がqであるデータを各々抽出し、当該抽出されたデータに対してb列目およびc列目をキーとして結合して、クライアント端末10に返送する(図8・ステップS152〜154)。
ここで、上記各動作ステップについては、これをコンピュータで実行可能にプログラム化し、これらを前記各ステップを直接実行するコンピュータであるクライアント端末10および暗号化データベースサーバ50に実行させてもよい。本プログラムは、非一時的な記録媒体、例えば、DVD、CD、フラッシュメモリ等に記録されてもよい。その場合、本プログラムは、記録媒体からコンピュータによって読み出され、実行される。
この動作により、本実施形態は以下のような効果を奏する。
本実施形態において、検索暗号文CPは、検索鍵SKから対象検索鍵SK’を導出することができる。即ち、前述した結合の例にあるように、ある表の検索暗号文CPを含む行は、他の表の結合されるべき行を検索するための対象検索鍵SK’を導出するために使用することが可能である。
同時に、この導出は検索鍵SKを必要とする。即ち、生成される被検索鍵の値が列の名前に依存することから帰結される事であるが、同じ値でも異なる列にある場合は対応する被検索鍵からその同一性が判断できない。したがって、検索鍵SKが与えられなければどの表のどの列と結合するかを知ることは不可能となる。
従って、本実施形態に示した方法を利用すれば、表を復号化することなく、必要な行だけについて部分結合した表を得ることができる。必要の無い行については結合が行われることはないので、対応関係が類推される危険性が生じることもない。これによって、前述したような「データの関連性に関する情報が漏洩する危険性」を軽減することが可能となる。
本発明は、上述したように、クライアント端末で秘密鍵から生成された検索鍵を利用して、データベースサーバが第1および第2の表で要素の値がqであるデータを判定して抽出し、それらのデータについてのみ第1および第2の表を結合してクライアント端末に返送するように構成したので、各々の表が復号化されることはなく、かつ必要以上にデータの結合が行われることもない。
(第2の実施形態)
本発明の第2の実施形態は、第1の実施形態の構成に加えて、クライアント端末210が、さらに、秘密鍵を利用して、第1の表のb列目と第2の表のc列目とを対応づけるための鍵である許可鍵を生成する許可鍵生成部223を備えると共に、検索暗号文生成部224が検索暗号文を第1および第2の検索鍵と許可鍵とから生成する。そして、暗号化データベースサーバ250の導出部262が第1の検索鍵と検索暗号文と許可鍵とから対象検索鍵を生成する。
この構成によっても、第1の実施形態と同一の効果が得られるのに加えて、3つ以上の表においてデータ間の対応関係が芋蔓式に発見されることを防止して、管理者がデータの結合が可能な範囲を適切に設定することが可能となる。
以下、これをより詳細に説明する。
図9は、本発明の第2の実施形態に係る暗号化データベースシステム201の構成を示す説明図である。暗号化データベースシステム201は、前述した第1の実施形態の暗号化データベースシステム1の、クライアント端末10および暗号化データベースサーバ50が、各々別のクライアント端末210および暗号化データベースサーバ250に置換されている。
クライアント端末210は、ハードウェア的には第1の実施形態のクライアント端末10と同一の構成を備える。そしてソフトウェア的にも、プロセッサ11で動作する各機能部に許可鍵生成部223が追加され、かつ検索暗号文生成部24が別の検索暗号文生成部224に置換されている点以外は、第1の実施形態と同一の構成である。
一方の暗号化データベースサーバ250も、ハードウェア的には第1の実施形態の暗号化データベースサーバ50と同一の構成を備える。そしてソフトウェア的にも、プロセッサ51で動作する導出部62が別の導出部262に置換されている点以外は、第1の実施形態と同一の構成である。従って、第1の実施形態と同一の構成については同一の呼称と参照番号を用い、相違点のみをここでは説明する。
クライアント端末210の側で、許可鍵生成部223は、表「X」31の列「A」、表「Y」32の列「B」に対して、表「X」31の列「A」の特定の要素から、これに対応する表「Y」32の列「B」の特定の要素を導くことを許可する情報「許可鍵((X,A)→(Y,B))」を、秘密鍵を用いて生成する。この許可鍵生成部223を関数と考えると、以下の数17のように表現される。
Figure 0006056850
検索暗号文生成部224は、2つの検索鍵「K1」および「K2」に加えて許可鍵「P」を必要とする場合の「検索暗号文(K1,K2,P)」を、秘密鍵を用いて生成する。この検索暗号文生成部224を関数と考えると、以下の数18のように表現される。
Figure 0006056850
暗号化データベースサーバ250の側で、導出部262は、表「X」31の列「A」、列「A」の要素「a」、表「Y」32の列「B」、および列「B」の存在を仮定する要素「b」に関する検索鍵「K1=検索鍵(X,A,a)」、「K2=検索鍵(Y,B,b)」および許可鍵「P」に対して、検索鍵「K1」と「検索暗号文(K1,K2,P)」とから対象検索鍵「K2」を導出する。この導出部262を関数と考えると、以下の数19のように表現される。
Figure 0006056850
(暗号化表の作成および送付)
図10は、図9に示したクライアント端末210が図3〜4に示した表「X」31および表「Y」32を暗号化して暗号化データベースサーバ250に送付する動作について説明する説明図である。
なお、図面の錯綜を回避するため、図2と同様に図10でも検索鍵生成部21および被検索鍵生成部22をそれぞれ2カ所ずつ表出している。図2と同様に、これらもそれぞれ、同一の構成要素を示している。
許可鍵生成部223は、表「X」31、列「B」31b、表「Y」32、列「C」32c、および秘密鍵33から、数17で示した「許可鍵((X,B)→(Y,C))」を生成する。これを図10では許可鍵234eで示す。
検索暗号文生成部224は、iの取りうる1〜nの全ての値に対して、第1の検索鍵34b、第2の検索鍵34c、許可鍵234e、および秘密鍵33から、数18で示した「検索暗号文(第1の検索鍵,第2の検索鍵,許可鍵)」を生成する。これを図10では検索暗号文234fで示す。ここで、許可鍵を検索暗号文234fに含めるか否か、即ち許可鍵の要否は、クライアント端末10側でユーザが任意に指定できる。
図11は、図10に示した暗号化/復号化部25によって置換された暗号化表「X」241について示す説明図である。暗号化/復号化部25は、第1の実施形態と同じ処理で、表「X」31で、列「A」31aの要素「a[i]」を(第1の被検索鍵,enc(a[i]))に置換し、同様に列「B」31bの要素「b[i]」を(検索暗号文(第1の検索鍵,第2の検索鍵,許可鍵),enc(b[i]))に置換して、暗号化表「X」241を作成する。暗号化/復号化部25が表「Y」32の要素を置換して暗号化表「Y」42を作成する処理については、第1の実施形態と全く同一である。
暗号化データベースサーバ250は、クライアント端末210から受信した暗号化表「X」241および暗号化表「Y」42を、記憶手段52に保存する。そして、クライアント端末210からのコマンドによって、暗号化表「X」241および暗号化表「Y」42に対して結合処理を行い、この結果を依頼元のクライアント端末210に返す。以下、その処理について説明する。
(暗号化表に対する結合処理)
ここでは、第1の実施形態と同様に、暗号化表「X」241および暗号化表「Y」42の、列「B」の要素「b[i]」と列「C」の要素「c[i]」とが等しくなるデータに対して結合を行うことを考える。
クライアント端末10は、暗号化表「X」241および暗号化表「Y」42を暗号化する際に使用された秘密鍵33を保持しているが、暗号化データベースサーバ250はこれを保持していない。そして暗号化データベースサーバ250は、これらの暗号化表を結合して列「A」31aの値がqである行を抽出する処理を、これらの表を復号化せずに行う。
図12は、図9で示した暗号化データベースサーバ250が行う、図6および図11で示した暗号化表「X」241および暗号化表「Y」42を結合して列「A」の値がqである行を抽出する処理について示す説明図である。まずクライアント端末210の検索鍵生成部21が、第1の実施形態と同様に、数3で示した「検索鍵(X,A,a[i])」を生成する。
そして、許可鍵生成部223は、表「X」31、列「B」31b、表「Y」32、列「C」32c、および秘密鍵33から、数17で示した「許可鍵((X,B)→(Y,C))」を生成する。
クライアント端末210から、以上の「検索鍵(X,A,a[i])」と「許可鍵((X,B)→(Y,C))」が、部分結合コマンドと共に暗号化データベースサーバ250に送信される。図12では、これらを各々検索鍵35a、許可鍵235bとして示している。
これを受けた暗号化データベースサーバ250では、検索部61が、第1の実施形態と同様に、検索鍵35a=検索鍵(X,A,a[i])および被検索鍵34a=被検索鍵(X,A,a[i])を入力として、これが暗号化表「X」41の列「A」31aの要素である第1の被検索鍵34a=被検索鍵(X,A,a[i])と一致するiを、iの取りうる1〜nの全ての値に対して検索し、判定結果=0(一致)が出力されるiを全て発見する。このようなiの集合をSと記載する。ここでi∈Sならa[i]=qである。
引き続いて導出部262が、集合Sの全ての要素iに関して、検索鍵35a=(X,A,q)、検索暗号文34f=(検索鍵(X,A,a[i]),検索鍵(Y,C,b[i]),許可鍵((X,B)→(Y,C)))、および許可鍵35b=許可鍵((X,B)→(Y,C))から、数7に示された第3の検索鍵44a=検索鍵(Y,C,b[i])を生成する。
そして検索部61が、集合Sの全ての要素iに対して、第3の検索鍵44a=検索鍵(Y,C,b[i])と、暗号化表「Y」42の列Cの要素である第2の被検索鍵34d=被検索鍵(Y,C,c[j])で、一致するか否かの判定結果=0(一致する)である行番号jを対応づける。このようなjをj[i]と表記する。検索部61は、一致すると判定した暗号化表「X」41のi行目と暗号化表「Y」42のj行目とを結合して、新たな行R[i]を作成する。検索部61は、全てのi∈SについてR[i]をクライアント端末10に返送する。
なお、図面の錯綜を回避するため、図7と同様に図12でも検索部61を2カ所に表出している。図7と同様に、これらも同一の構成要素を示している。
クライアント端末10は、暗号化/復号化部25によって、R[i]の要素であるenc(a[i]),enc(b[i]),enc(c[i])を復号化して、各列要素の原文a[i],b[i],c[i]を得ることができる。また、適切な検索暗号文34fが予め作成されていれば、第3の検索鍵44a=検索鍵(Y,C,b[i])を利用して、列「C」とさらに他の列との間で結合を取ることもできる。
(より詳細な実施形態の説明)
以上で説明した各手段の動作について、それらの動作をより詳細に説明する。
図13は、図9に示したクライアント端末210および暗号化データベースサーバ250が行う処理について示すフローチャートである。ステップS101〜104については、図8に示した第1の実施形態の場合の動作と同一である。
ステップS101〜104の動作に続いて、許可鍵生成部223は、システム変数PM、秘密鍵MK、第1の表の名前TNとその列の名前CN、および第2の表の名前TN’とその列の名前CN’を入力として、以下の数20で示される許可鍵GTを生成して出力する(ステップS305)。
Figure 0006056850
検索暗号文生成部224は、システム変数PM、第1の検索鍵SK、第2の検索鍵SK’、および許可鍵GTを入力として、以下の数21で示される検索暗号文CPを生成して出力する(ステップS306)。
Figure 0006056850
暗号化/復号化部25は、前述した(図6および図11に示した)ように表「X」31および表「Y」32の各要素を置換して暗号化表「X」241および暗号化表「Y」42を作成する(ステップS106)。そして、暗号化/復号化部25は、これらの暗号化表「X」241および暗号化表「Y」42を暗号化データベースサーバ250に送付する。
暗号化データベースサーバ250の側の処理も、ステップS151〜153について、図8に示した第1の実施形態の場合の動作と同一である。そして、クライアント端末210からは、ステップS107と同様に、検索鍵生成部21が数12で示される検索鍵SK=第3の検索鍵35aを生成し、さらに許可鍵生成部223が新たに許可鍵を生成して、それらと部分結合コマンドとを共に暗号化データベースサーバ250に送信する(ステップS307)。
これを受けた暗号化データベースサーバ250で、検索部61はステップS152と同一の動作で第3の検索鍵SK=検索鍵(X,A,q)と第1の被検索鍵SKD=被検索鍵(X,A,a[i])とが一致する行番号iの集合Sを求める。そして、導出部262は、全てのi∈Sに対して、システム変数PM、検索鍵SK、検索暗号文CP、および許可鍵GTを入力として、以下の数22で示される対象検索鍵SK’を生成して出力する(ステップS353)。
Figure 0006056850
以後の動作は、ステップS154およびS108と同一である。
(許可鍵GTの具体的な意味)
以上で示した許可鍵GTのより具体的な意味合いについて説明する。
表「I」「II」「III」の3つの表があり、それらの各々に行「A」「B」「C」が存在する例について考える。表「I」の行「A」と表「II」の行「B」との間で結合相手を定める検索暗号文CPが存在する。そして表「II」の行「B」と表「III」の行「C」との間で結合相手を定める検索暗号文CP’が存在する。検索暗号文CPは行「A」から「B」への許可鍵を必要とはせず、同様に検索暗号文CP’も行「B」から「C」への許可鍵を必要とはしない。
ここで表「I」の行「A」の要素を検索する検索鍵SKが与えられた。すると、この検索鍵SKによって、この表「I」の行「A」から表「II」の行「B」への対応関係が発見され、この時にこの対応する行の検索鍵SK’が導出される。この検索鍵SK’と検索暗号文CP’を組み合わせると、今度は表「II」の行「B」から表「III」の行「C」への対応関係も発見されることになる。
このように、許可鍵が設定されていない場合、データ間の対応関係が芋蔓式に発見される危険性がある。当該データの作成者もしくは管理者が、表「I」と表「II」とは結合したいが表「II」と表「III」とは結合したくないと考えている場合には、その意図に反する結果となる。
そのようなことを防止するには、検索暗号文CP’で行「B」から「C」への許可鍵を設定しておくとよい。即ち、許可鍵を利用することによって、データの結合を許可したい(もしくはしたくない)範囲を当該データの作成者もしくは管理者が適切に設定することが可能となる。
以上、実施形態を参照して本願発明を説明したが、本願発明は上記実施形態に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
上記の実施形態の一部又は全部は、以下の付記のようにも記載されうるが、以下には限られない。
(付記1)
入力されたa列目およびb列目のデータを有する第1の表とc列目のデータを有する第2の表とを予め記憶された秘密鍵によって暗号化して暗号化データベースサーバに出力し、前記暗号化された第1の表と第2の表を前記a列目の値がqであるデータについて前記b列目およびc列目をキーとして結合させる部分結合命令を前記秘密鍵から生成された検索鍵と共に前記暗号化データベースサーバに送信するクライアント端末と、
前記暗号化された第1および第2の表を受信して記憶し、前記部分結合命令に応じて前記暗号化された第1および第2の表を前記a列目の値がqであるデータについて前記b列目およびc列目をキーとして結合し、前記クライアント端末に返送する前記暗号化データベースサーバとを備え、
前記暗号化データベースサーバが、
前記検索鍵を利用して前記暗号化された第1および第2の表から前記a列目の値がqであるデータを各々抽出し、当該抽出されたデータに対して前記b列目およびc列目をキーとして結合する、
暗号化データベースシステム。
(付記2)
前記クライアント端末が、
前記秘密鍵を利用して、前記第1の表の前記a列目の要素を検索するための鍵である第1の検索鍵と、前記第1の表の前記b列目の要素を検索するための鍵である第2の検索鍵とを生成する検索鍵生成手段と、
前記秘密鍵を利用して、前記第1の表の前記a列目の要素が特定の値で検索されるための鍵である第1の被検索鍵と、前記第2の表の前記c列目の要素が特定の値で検索されるための鍵である第2の被検索鍵とを生成する被検索鍵生成手段と、
前記秘密鍵を利用して、前記第1および第2の表の各要素を暗号化する暗号化手段と、
前記第1の表の前記a列目の要素を前記第1の被検索鍵と暗号化された前記a列目の要素、前記b列目の要素を前記第1および第2の検索鍵から生成した検索暗号文と暗号化された前記b列目の要素とでそれぞれ置換し、前記第2の表の前記c列目の要素を前記第2の被検索鍵と暗号化された前記c列目の要素で置換して、前記暗号化された第1および第2の表として前記暗号化データベースサーバに送信する検索暗号文生成手段と
を有し、
前記検索鍵生成手段が、前記秘密鍵を利用して前記第1の表の前記a列目の値がqである要素を検索するための鍵である第3の検索鍵を生成し、前記部分結合命令と共に前記暗号化データベースサーバに送信する、
付記1に記載の暗号化データベースシステム。
(付記3)
前記暗号化データベースサーバが、
前記暗号化された第1の表で前記第3の検索鍵と前記第1の被検索鍵が一致する行を抽出する検索手段と、
前記第1の検索鍵と前記検索暗号文とから対象検索鍵を生成する導出手段と
を有し、
前記検索手段が、当該生成した対象検索鍵を用いて前記暗号化された第1および第2の表の前記抽出された行について前記b列目およびc列目が等しいか否かを判断して前記結合を行う、
付記2に記載の暗号化データベースシステム。
(付記4)
前記クライアント端末が、
さらに、前記秘密鍵を利用して、前記第1の表のb列目と前記第2の表のc列目とを対応づけるための鍵である許可鍵を生成する許可鍵生成手段を有し、
前記検索暗号文生成手段が前記検索暗号文を前記第1および第2の検索鍵と前記許可鍵とから生成し、
前記暗号化データベースサーバの前記導出手段が前記第1の検索鍵と前記検索暗号文と前記許可鍵とから前記対象検索鍵を生成する、
付記3に記載の暗号化データベースシステム。
(付記5)
入力されたa列目およびb列目のデータを有する第1の表とc列目のデータを有する第2の表とを予め記憶された秘密鍵によって暗号化して暗号化データベースサーバに出力する暗号化手段と、
前記秘密鍵を利用して検索鍵を生成する検索鍵生成手段と
を備え、
前記検索鍵生成手段が、前記秘密鍵を利用して前記暗号化された第1および第2の表を前記a列目の値がqであるデータについて前記b列目およびc列目をキーとして結合させる部分結合命令を前記検索鍵と共に前記暗号化データベースサーバに送信する、
クライアント端末。
(付記6)
前記検索鍵生成手段が、前記秘密鍵を利用して、前記第1の表の前記a列目の要素を検索するための鍵である第1の検索鍵と、前記第1の表の前記b列目の要素を検索するための鍵である第2の検索鍵とを生成し、
さらに、
前記秘密鍵を利用して、前記第1の表の前記a列目の要素が特定の値で検索されるための鍵である第1の被検索鍵と、前記第2の表の前記c列目の要素が特定の値で検索されるための鍵である第2の被検索鍵とを生成する被検索鍵生成手段と、
前記第1の表の前記a列目の要素を前記第1の被検索鍵と暗号化された前記a列目の要素、前記b列目の要素を前記第1および第2の検索鍵から生成した検索暗号文と暗号化された前記b列目の要素とでそれぞれ置換し、前記第2の表の前記c列目の要素を前記第2の被検索鍵と暗号化された前記c列目の要素で置換して、前記暗号化された第1および第2の表として前記暗号化データベースサーバに送信する検索暗号文生成手段と
を備える、
付記5に記載のクライアント端末。
(付記7)
暗号化されたa列目およびb列目のデータを有する第1の表およびc列目のデータを有する第2の表をクライアント端末から受信して記憶し、前記クライアント端末から受信した検索鍵を含む部分結合命令に応じて前記暗号化された第1および第2の表を前記a列目の値がqであるデータについて前記b列目およびc列目をキーとして結合して、前記クライアント端末に出力する検索手段を備え、
前記検索手段は、前記検索鍵を利用して前記暗号化された第1および第2の表から前記a列目の値がqであるデータを各々抽出し、当該抽出されたデータに対して前記b列目およびc列目をキーとして結合する、
暗号化データベースサーバ。
(付記8)
さらに、前記検索鍵と前記暗号化された第1の表に含まれる検索暗号文とから対象検索鍵を生成する導出手段を備え、
前記検索手段が、前記検索鍵と前記暗号化された第1の表に含まれる第1の被検索鍵が一致する行を抽出し、前記対象検索鍵を用いて前記暗号化された第1および第2の表の前記抽出された行について前記b列目およびc列目が等しいか否かを判断して前記結合を行う、
付記7に記載の暗号化データベースサーバ。
(付記9)
クライアント端末と、暗号化データベースサーバとを含む暗号化データベースシステムにあって、
前記クライアント端末が、入力されたa列目およびb列目のデータを有する第1の表とc列目のデータを有する第2の表とを予め記憶された秘密鍵によって暗号化して前記暗号化データベースサーバに出力し、
前記暗号化データベースサーバが、前記暗号化された第1および第2の表を受信して記憶し、
前記クライアント端末が、前記暗号化された第1の表の前記a列目の値がqであるデータについて前記暗号化された第1および第2の表を前記b列目およびc列目をキーとして結合させる部分結合命令を前記秘密鍵から生成された検索鍵と共に前記暗号化データベースサーバに送信し、
前記暗号化データベースサーバが、前記検索鍵を利用して前記暗号化された第1および第2の表から前記a列目の値がqであるデータを各々抽出し、当該抽出されたデータに対して前記b列目およびc列目をキーとして結合し、前記クライアント端末に返送する、
暗号化データ結合方法。
(付記10)
前記秘密鍵を利用して、前記第1の表の前記a列目の要素を検索するための鍵である第1の検索鍵と、前記第1の表の前記b列目の要素を検索するための鍵である第2の検索鍵とを前記クライアント端末の検索鍵生成手段が生成し、
前記秘密鍵を利用して、前記第1の表の前記a列目の要素が特定の値で検索されるための鍵である第1の被検索鍵と、前記第2の表の前記c列目の要素が特定の値で検索されるための鍵である第2の被検索鍵とを前記クライアント端末の被検索鍵生成手段が生成し、
前記秘密鍵を利用して、前記第1および第2の表の各要素を前記クライアント端末の暗号化手段が暗号化し、
前記第1の表の前記a列目の要素を前記第1の被検索鍵と暗号化された前記a列目の要素、前記b列目の要素を前記第1および第2の検索鍵から生成した検索暗号文と暗号化された前記b列目の要素とで前記クライアント端末の検索暗号文生成手段がそれぞれ置換して、前記暗号化された第1の表とし、
前記第2の表の前記c列目の要素を前記第2の被検索鍵と暗号化された前記c列目の要素で前記クライアント端末の前記検索暗号文生成手段が置換して、前記暗号化された第2の表とし、
前記暗号化された第1および第2の表を前記クライアント端末の前記検索暗号文生成手段が前記暗号化データベースサーバに送信し、
前記秘密鍵を利用して、前記第1の表の前記a列目の値がqである要素を検索するための鍵である第3の検索鍵を前記クライアント端末の前記検索鍵生成手段が生成し、
前記第3の検索鍵を前記部分結合命令と共に前記クライアント端末の前記検索鍵生成手段が前記暗号化データベースサーバに送信する、
付記9に記載の暗号化データ結合方法。
(付記11)
前記暗号化された第1の表で前記第3の検索鍵と前記第1の被検索鍵が一致する行を前記暗号化データベースサーバの検索手段が抽出し、
前記第1の検索鍵と前記検索暗号文とから前記暗号化データベースサーバの導出手段が対象検索鍵を生成し、
当該生成した対象検索鍵を用いて、前記暗号化された第1および第2の表の前記抽出された行について前記b列目およびc列目が等しいか否かを前記暗号化データベースサーバの前記検索手段が判断して前記結合を行う、
付記10に記載の暗号化データ結合方法。
(付記12)
クライアント端末と、暗号化データベースサーバとを含む暗号化データベースシステムにあって、
前記クライアント端末が備えるコンピュータに、
入力されたa列目およびb列目のデータを有する第1の表とc列目のデータを有する第2の表とを予め記憶された秘密鍵によって暗号化して前記暗号化データベースサーバに出力する手順と、
前記暗号化された第1の表の前記a列目の値がqであるデータについて前記暗号化された第1および第2の表を前記b列目およびc列目をキーとして結合させる部分結合命令を前記秘密鍵から生成された検索鍵と共に前記暗号化データベースサーバに送信する手順と、
を実行させる暗号化データ結合プログラム。
(付記13)
前記秘密鍵を利用して、前記第1の表の前記a列目の要素を検索するための鍵である第1の検索鍵と、前記第1の表の前記b列目の要素を検索するための鍵である第2の検索鍵とを生成する手順と、
前記秘密鍵を利用して、前記第1の表の前記a列目の要素が特定の値で検索されるための鍵である第1の被検索鍵と、前記第2の表の前記c列目の要素が特定の値で検索されるための鍵である第2の被検索鍵とを生成する手順と、
前記秘密鍵を利用して、前記第1および第2の表の各要素を暗号化する手順と、
前記第1の表の前記a列目の要素を前記第1の被検索鍵と暗号化された前記a列目の要素、前記b列目の要素を前記第1および第2の検索鍵から生成した検索暗号文と暗号化された前記b列目の要素とでそれぞれ置換して、前記暗号化された第1の表とする手順と、
前記第2の表の前記c列目の要素を前記第2の被検索鍵と暗号化された前記c列目の要素で置換して、前記暗号化された第2の表とする手順と、
前記暗号化された第1および第2の表を前記暗号化データベースサーバに送信する手順と、
前記秘密鍵を利用して、前記第1の表の前記a列目の値がqである要素を検索するための鍵である第3の検索鍵を生成する手順と、
前記第3の検索鍵を前記部分結合命令と共に前記暗号化データベースサーバに送信する手順と、
を実行させる、付記12に記載の暗号化データ結合プログラム。
(付記14)
クライアント端末と、暗号化データベースサーバとを含む暗号化データベースシステムにあって、
前記暗号化データベースサーバが備えるコンピュータに、
前記クライアント端末から暗号化されたa列目およびb列目のデータを有する第1の表およびc列目のデータを有する第2の表を受信して記憶する手順と、
前記クライアント端末から受信した検索鍵を含む部分結合命令に応じて、前記検索鍵を利用して前記暗号化された第1および第2の表から前記a列目の値がqであるデータを各々抽出し、当該抽出されたデータに対して前記b列目およびc列目をキーとして結合し、前記クライアント端末に返送する手順と、
を実行させる暗号化データ結合プログラム。
(付記15)
前記検索鍵と前記暗号化された第1の表に含まれる第1の被検索鍵が一致する行を抽出する手順と、
前記検索鍵と前記暗号化された第1の表に含まれる検索暗号文とから対象検索鍵を生成する手順と、
当該生成した対象検索鍵を用いて、前記暗号化された第1および第2の表の前記抽出された行について前記b列目およびc列目が等しいか否かを判断して前記結合を行う手順と、
を実行させる、付記14に記載の暗号化データ結合プログラム。
この出願は、2012年3月29日に出願された日本出願特願2012−078222を基礎とする優先権を主張し、その開示の全てをここに取り込む。
本発明は、暗号化データベースシステムにおいて利用可能である。特に、大量の機密データを収容する暗号化データベースシステムにおいて、顕著な効果を発揮する。
1、201 暗号化データベースシステム
10、210 クライアント端末
11、51 プロセッサ
12、52 記憶手段
13 入力手段
14 出力手段
15、53 通信手段
20 初期設定部
21 検索鍵生成部
22 被検索鍵生成部
24、224 検索暗号文生成部
25 暗号化/復号化部
33 秘密鍵
34a 第1の被検索鍵
34b 第1の検索鍵
34c 第2の検索鍵
34d 第2の被検索鍵
34f 検索暗号文
35a 第3の検索鍵
44a 対象検索鍵
50、250 暗号化データベースサーバ
61 検索部
62、262 導出部
223 許可鍵生成部
234e、235b 許可鍵

Claims (9)

  1. 入力されたa列目およびb列目のデータを有する第1の表とc列目のデータを有する第2の表とを予め記憶された秘密鍵によって暗号化して暗号化データベースサーバに出力し、前記暗号化された第1の表と第2の表、前記暗号化された第1の表の前記a列目の値がqであるについて前記b列目およびc列目をキーとして結合させる部分結合命令を前記秘密鍵から生成された検索鍵と共に前記暗号化データベースサーバに送信するクライアント端末と、
    前記暗号化された第1および第2の表を受信して記憶し、前記部分結合命令に応じて前記暗号化された第1および第2の表を、前記暗号化された第1の表の前記a列目の値がqであるについて前記b列目およびc列目をキーとして結合し、前記クライアント端末に返送する前記暗号化データベースサーバとを備え、
    前記クライアント端末は、前記暗号化された第1の表において、各行の前記a列目の値の検索鍵と、当該行の前記b列目の値と同じである前記第2の表の前記c列目の値の検索鍵と、から生成した検索暗号文を、当該行に関連付け、
    前記暗号化データベースサーバは、前記部分結合命令と共に送信された検索鍵を用いて、前記暗号化された第1の表から、前記a列目の値がqである行を抽出し、当該部分結合命令と共に送信された検索鍵と当該抽出された行に関連付けられた前記検索暗号文とから生成された対象検索鍵を用いて、前記暗号化された第2の表から、当該抽出された行の前記b列目の値と同じ値を前記c列目に有する行を抽出し、結合する、
    暗号化データベースシステム。
  2. 前記クライアント端末が、
    前記秘密鍵を利用して、前記第1の表の前記a列目の要素を検索するための鍵である第1の検索鍵と、前記第1の表の前記b列目の要素と同じ値を有する前記第2の表の前記c列目の要素を検索するための鍵である第2の検索鍵とを生成する検索鍵生成手段と、
    前記秘密鍵を利用して、前記第1の表の前記a列目の要素が特定の値で検索されるための鍵である第1の被検索鍵と、前記第2の表の前記c列目の要素が特定の値で検索されるための鍵である第2の被検索鍵とを生成する被検索鍵生成手段と、
    前記秘密鍵を利用して、前記第1および第2の表の各要素を暗号化する暗号化手段と、
    前記第1の表の前記a列目の要素を前記第1の被検索鍵と暗号化された前記a列目の要素とで、前記b列目の要素を前記第1および第2の検索鍵から生成した前記検索暗号文と暗号化された前記b列目の要素とでそれぞれ置換し、前記第2の表の前記c列目の要素を前記第2の被検索鍵と暗号化された前記c列目の要素で置換して、前記暗号化された第1および第2の表として前記暗号化データベースサーバに送信する検索暗号文生成手段と
    を有し、
    前記検索鍵生成手段が、前記秘密鍵を利用して前記第1の表の前記a列目の値がqである要素を検索するための鍵である第3の検索鍵を生成し、前記部分結合命令と共に前記暗号化データベースサーバに送信する、
    請求項1に記載の暗号化データベースシステム。
  3. 前記暗号化データベースサーバが、
    前記暗号化された第1の表で前記第3の検索鍵と前記第1の被検索鍵が一致する行を抽出する検索手段と、
    前記第の検索鍵と前記検索暗号文とから前記対象検索鍵を生成する導出手段と
    を有し、
    前記検索手段が、前記暗号化された第1の表から抽出された行と、前記暗号化された第2の表から、前記生成された前記対象検索鍵を用いて抽出された行と、を結合する、
    請求項2に記載の暗号化データベースシステム。
  4. 前記クライアント端末が、
    さらに、前記秘密鍵を利用して、前記第1の表の前記b列目と前記第2の表の前記c列目とを対応づけるための鍵である許可鍵を生成する許可鍵生成手段を有し、
    前記検索暗号文生成手段が前記検索暗号文を前記第1および第2の検索鍵と前記許可鍵とから生成し、
    前記暗号化データベースサーバの前記導出手段が前記第の検索鍵と前記検索暗号文と前記許可鍵とから前記対象検索鍵を生成する、
    請求項3に記載の暗号化データベースシステム。
  5. 入力されたa列目およびb列目のデータを有する第1の表とc列目のデータを有する第2の表とを予め記憶された秘密鍵によって暗号化して暗号化データベースサーバに出力する暗号化手段と、
    前記暗号化された第1の表と第2の表とを、前記暗号化された第1の表の前記a列目の値がqである行について、前記b列目およびc列目をキーとして結合させる部分結合命令を前記秘密鍵から生成された検索鍵と共に前記暗号化データベースサーバに送信する検索鍵生成手段と、
    を備え、
    前記暗号化手段は、前記暗号化された第1の表において、各行の前記a列目の値の検索鍵と、当該行の前記b列目の値と同じである前記第2の表の前記c列目の値の検索鍵と、から生成した検索暗号文を、当該行に関連付け、
    前記暗号化データベースサーバは、前記暗号化された第1および第2の表を受信して記憶し、前記部分結合命令に応じて、前記暗号化された第1および第2の表を、前記暗号化された第1の表の前記a列目の値がqである行について、前記b列目およびc列目をキーとして結合し、クライアント端末に返送し、
    前記暗号化データベースサーバは、前記暗号化された第1および第2の表を結合する場合、前記部分結合命令と共に送信された検索鍵を用いて、前記暗号化された第1の表から、前記a列目の値がqである行を抽出し、当該部分結合命令と共に送信された検索鍵と当該抽出された行に関連付けられた前記検索暗号文とから生成された対象検索鍵を用いて、前記暗号化された第2の表から、当該抽出された行の前記b列目の値と同じ値を前記c列目に有する行を抽出し、結合する、
    クライアント端末。
  6. a列目およびb列目のデータを有する第1の表とc列目のデータを有する第2の表とが秘密鍵によって暗号化された、暗号化された第1の表および第2の表をクライアント端末から受信して記憶する記憶手段と、
    前記クライアント端末から受信した部分結合命令に応じて、前記暗号化された第1および第2の表を、前記暗号化された第1の表の前記a列目の値がqである行について、前記b列目およびc列目をキーとして結合し、前記クライアント端末に返送する検索手段と、
    を備え、
    前記クライアント端末は、前記第1の表と第2の表とを前記秘密鍵によって暗号化して暗号化データベースサーバに出力し、前記部分結合命令を前記秘密鍵から生成された検索鍵と共に前記暗号化データベースサーバに送信し、
    前記クライアント端末は、前記第1の表を暗号化する場合、前記暗号化された第1の表において、各行の前記a列目の値の検索鍵と、当該行の前記b列目の値と同じである前記第2の表の前記c列目の値の検索鍵と、から生成した検索暗号文を、当該行に関連付け、
    前記検索手段は、前記部分結合命令と共に送信された検索鍵を用いて、前記暗号化された第1の表から、前記a列目の値がqである行を抽出し、当該部分結合命令と共に送信された検索鍵と当該抽出された行に関連付けられた前記検索暗号文とから生成された対象検索鍵を用いて、前記暗号化された第2の表から、当該抽出された行の前記b列目の値と同じ値を前記c列目に有する行を抽出し、結合する、
    暗号化データベースサーバ。
  7. クライアント端末と、暗号化データベースサーバとを含む暗号化データベースシステムにあって、
    前記クライアント端末が、入力されたa列目およびb列目のデータを有する第1の表とc列目のデータを有する第2の表とを予め記憶された秘密鍵によって暗号化して前記暗号化データベースサーバに出力し、
    前記暗号化データベースサーバが、前記暗号化された第1および第2の表を受信して記憶し、
    前記クライアント端末が、前記暗号化された第1の表の前記a列目の値がqであるについて前記暗号化された第1および第2の表を前記b列目およびc列目をキーとして結合させる部分結合命令を前記秘密鍵から生成された検索鍵と共に前記暗号化データベースサーバに送信し、
    前記暗号化データベースサーバが、前記部分結合命令に応じて、前記暗号化された第1および第2の表を、前記暗号化された第1の表の前記a列目の値がqである行について、前記b列目およびc列目をキーとして結合し、前記クライアント端末に返送し、
    前記クライアント端末は、前記第1の表を暗号化する場合、前記暗号化された第1の表において、各行の前記a列目の値の検索鍵と、当該行の前記b列目の値と同じである前記第2の表の前記c列目の値の検索鍵と、から生成した検索暗号文を、当該行に関連付け、
    前記暗号化データベースサーバは、前記暗号化された第1および第2の表を結合する場合、前記部分結合命令と共に送信された検索鍵を用いて、前記暗号化された第1の表から、前記a列目の値がqである行を抽出し、当該部分結合命令と共に送信された検索鍵と当該抽出された行に関連付けられた前記検索暗号文とから生成された対象検索鍵を用いて、前記暗号化された第2の表から、当該抽出された行の前記b列目の値と同じ値を前記c列目に有する行を抽出し、結合する、
    暗号化データ結合方法。
  8. クライアント端末と、暗号化データベースサーバとを含む暗号化データベースシステムにあって、
    前記クライアント端末が備えるコンピュータに、
    入力されたa列目およびb列目のデータを有する第1の表とc列目のデータを有する第2の表とを予め記憶された秘密鍵によって暗号化して前記暗号化データベースサーバに出力する手順と、
    前記暗号化された第1の表と第2の表とを、前記暗号化された第1の表の前記a列目の値がqである行について、前記b列目およびc列目をキーとして結合させる部分結合命令を前記秘密鍵から生成された検索鍵と共に前記暗号化データベースサーバに送信する手順と、
    を実行させ
    前記第1の表を暗号化する場合、前記暗号化された第1の表において、各行の前記a列目の値の検索鍵と、当該行の前記b列目の値と同じである前記第2の表の前記c列目の値の検索鍵と、から生成した検索暗号文を、当該行に関連付け、
    前記暗号化データベースサーバは、前記暗号化された第1および第2の表を受信して記憶し、前記部分結合命令に応じて、前記暗号化された第1および第2の表を、前記暗号化された第1の表の前記a列目の値がqである行について、前記b列目およびc列目をキーとして結合し、前記クライアント端末に返送し、
    前記暗号化データベースサーバは、前記暗号化された第1および第2の表を結合する場合、前記部分結合命令と共に送信された検索鍵を用いて、前記暗号化された第1の表から、前記a列目の値がqである行を抽出し、当該部分結合命令と共に送信された検索鍵と当該抽出された行に関連付けられた前記検索暗号文とから生成された対象検索鍵を用いて、前記暗号化された第2の表から、当該抽出された行の前記b列目の値と同じ値を前記c列目に有する行を抽出し、結合する、
    暗号化データ結合プログラム。
  9. クライアント端末と、暗号化データベースサーバとを含む暗号化データベースシステムにあって、
    前記暗号化データベースサーバが備えるコンピュータに、
    a列目およびb列目のデータを有する第1の表とc列目のデータを有する第2の表とが秘密鍵によって暗号化された、暗号化された第1および第2の表を前記クライアント端末から受信して記憶する手順と、
    前記クライアント端末から受信した部分結合命令に応じて、前記暗号化された第1および第2の表を、前記暗号化された第1の表の前記a列目の値がqである行について、前記b列目およびc列目をキーとして結合し、前記クライアント端末に返送する手順と、
    を実行させ
    前記クライアント端末は、前記第1の表と第2の表とを前記秘密鍵によって暗号化して前記暗号化データベースサーバに出力し、前記部分結合命令を前記秘密鍵から生成された検索鍵と共に前記暗号化データベースサーバに送信し、
    前記クライアント端末は、前記第1の表を暗号化する場合、前記暗号化された第1の表において、各行の前記a列目の値の検索鍵と、当該行の前記b列目の値と同じである前記第2の表の前記c列目の値の検索鍵と、から生成した検索暗号文を、当該行に関連付け、
    前記暗号化された第1および第2の表を結合する場合、前記部分結合命令と共に送信された検索鍵を用いて、前記暗号化された第1の表から、前記a列目の値がqである行を抽出し、当該部分結合命令と共に送信された検索鍵と当該抽出された行に関連付けられた前記検索暗号文とから生成された対象検索鍵を用いて、前記暗号化された第2の表から、当該抽出された行の前記b列目の値と同じ値を前記c列目に有する行を抽出し、結合する、
    暗号化データ結合プログラム。
JP2014507395A 2012-03-29 2013-03-18 暗号化データベースシステム、クライアント端末、データベースサーバ、データ結合方法、および、プログラム Active JP6056850B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2012078222 2012-03-29
JP2012078222 2012-03-29
PCT/JP2013/001825 WO2013145627A1 (ja) 2012-03-29 2013-03-18 暗号化データベースシステム、クライアント端末、データベースサーバ、データ結合方法、および、プログラム

Publications (2)

Publication Number Publication Date
JPWO2013145627A1 JPWO2013145627A1 (ja) 2015-12-10
JP6056850B2 true JP6056850B2 (ja) 2017-01-11

Family

ID=49258941

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014507395A Active JP6056850B2 (ja) 2012-03-29 2013-03-18 暗号化データベースシステム、クライアント端末、データベースサーバ、データ結合方法、および、プログラム

Country Status (4)

Country Link
US (1) US20150033032A1 (ja)
EP (1) EP2833274A4 (ja)
JP (1) JP6056850B2 (ja)
WO (1) WO2013145627A1 (ja)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6225918B2 (ja) * 2012-12-12 2017-11-08 日本電気株式会社 データベース検索装置、データベース検索方法及びプログラム
US9852306B2 (en) 2013-08-05 2017-12-26 International Business Machines Corporation Conjunctive search in encrypted data
US9646166B2 (en) * 2013-08-05 2017-05-09 International Business Machines Corporation Masking query data access pattern in encrypted data
JP6250497B2 (ja) * 2014-03-13 2017-12-20 株式会社日立製作所 情報管理システム
EP3032453B1 (en) * 2014-12-08 2019-11-13 eperi GmbH Storing data in a server computer with deployable encryption/decryption infrastructure
US9727742B2 (en) 2015-03-30 2017-08-08 Airbnb, Inc. Database encryption to provide write protection
CN107579987A (zh) * 2017-09-22 2018-01-12 郑州云海信息技术有限公司 一种服务器云端诊断系统规则库二级加密、访问方法及系统
US10540356B2 (en) * 2017-10-25 2020-01-21 International Business Machines Corporation Transparent analytical query accelerator over encrypted data
US10698883B2 (en) 2017-10-25 2020-06-30 International Business Machines Corporation Data coherency between trusted DBMS and untrusted DBMS
US11074364B2 (en) * 2018-12-20 2021-07-27 Microsoft Technology Licensing, Llc Confidential data security
US11188670B2 (en) * 2019-03-28 2021-11-30 Snowflake Inc. Secure data joins in a multiple tenant database system
CN113742340A (zh) * 2021-08-17 2021-12-03 深圳Tcl新技术有限公司 一种数据库表处理方法及相关设备

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5241648A (en) 1990-02-13 1993-08-31 International Business Machines Corporation Hybrid technique for joining tables
JPH0581343A (ja) * 1991-09-21 1993-04-02 Toshiba Corp データ処理装置
US5987453A (en) * 1997-04-07 1999-11-16 Informix Software, Inc. Method and apparatus for performing a join query in a database system
US7685437B2 (en) * 2003-05-30 2010-03-23 International Business Machines Corporation Query optimization in encrypted database systems
JP4129819B2 (ja) * 2003-10-06 2008-08-06 インターナショナル・ビジネス・マシーンズ・コーポレーション データベース検索システム及びその検索方法並びにプログラム
JP4395611B2 (ja) 2003-10-28 2010-01-13 独立行政法人情報通信研究機構 暗号化データベース検索装置および方法ならびに暗号化データベース検索プログラム
CN101593196B (zh) 2008-05-30 2013-09-25 日电(中国)有限公司 用于快速密文检索的方法、装置和系统
JP5199949B2 (ja) 2009-05-22 2013-05-15 日本電信電話株式会社 データベース管理方法、分散データベースシステム、およびプログラム
KR101302137B1 (ko) * 2009-12-16 2013-09-16 한국전자통신연구원 대칭 키 기반 검색 가능 암호 방법
JP5432736B2 (ja) 2010-01-18 2014-03-05 日本電信電話株式会社 暗号化された情報のためのキーワード検索システム、キーワード検索方法、検索要求装置、検索代行装置、プログラム、記録媒体
US8769302B2 (en) * 2011-10-14 2014-07-01 International Business Machines Corporation Encrypting data and characterization data that describes valid contents of a column

Also Published As

Publication number Publication date
EP2833274A4 (en) 2015-12-23
JPWO2013145627A1 (ja) 2015-12-10
US20150033032A1 (en) 2015-01-29
WO2013145627A1 (ja) 2013-10-03
EP2833274A1 (en) 2015-02-04

Similar Documents

Publication Publication Date Title
JP6056850B2 (ja) 暗号化データベースシステム、クライアント端末、データベースサーバ、データ結合方法、および、プログラム
JP6137173B2 (ja) 暗号化データベースシステム、クライアント端末およびデータベースサーバ、結合方法およびプログラム
JP5742849B2 (ja) 暗号化データベースシステム、クライアント端末、暗号化データベースサーバ、自然結合方法およびプログラム
JP5776696B2 (ja) 暗号化データベースシステム、クライアント端末、暗号化データベースサーバ、自然結合方法およびプログラム
US10650164B2 (en) System and method for obfuscating an identifier to protect the identifier from impermissible appropriation
JP5679018B2 (ja) データベース暗号化システムと方法及びプログラム
JP6048414B2 (ja) データベース装置と方法及びプログラム
JP5593458B2 (ja) 文字列がオートマトンに受理されるか否かを認証するシステム
JP5348337B2 (ja) 暗号化データベース管理システム、クライアントおよびサーバ、自然結合方法およびプログラム
US7930560B2 (en) Personal information management system, personal information management program, and personal information protecting method
US20220014367A1 (en) Decentralized computing systems and methods for performing actions using stored private data
Ribeiro et al. XDS-I outsourcing proxy: ensuring confidentiality while preserving interoperability
US9641328B1 (en) Generation of public-private key pairs
JP6599066B1 (ja) 登録装置、サーバ装置、秘匿検索システム、秘匿検索方法、登録プログラムおよびサーバプログラム
JP2021039143A (ja) 秘匿情報処理システム及び秘匿情報処理方法
CN113468545A (zh) 文件加解密方法、装置及系统
CN108920968B (zh) 一种基于连接关键词的文件可搜索加密方法
JP2009187140A (ja) アクセス制御装置、アクセス制御方法およびプログラム
WO2022137668A1 (ja) データファイル暗号化送受信システム及びデータファイル暗号化送受信方法
Yakoob et al. Multi User Authentication in Reliable Data Storage in Cloud
TWI640187B (zh) 榫接加密方法
Kumar et al. Multiple Precision Arithmetic with Blowfish Crypto Method for Medical Data Storage Using Blockchain Technology
TW201605218A (zh) 金鑰更換方法、加密方法、解密方法及電腦程式產品
TW202105220A (zh) 私鑰管理系統
Rashmi et al. PRIVACY PREAERVING ATTRIBUTE BASED KEYWORD SEARCH OVER ENCRYPTED DATA ON e-HEALTH CLOUD

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20160217

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160816

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20161013

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: 20161108

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20161121

R150 Certificate of patent or registration of utility model

Ref document number: 6056850

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150