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

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

Info

Publication number
JP6137173B2
JP6137173B2 JP2014512466A JP2014512466A JP6137173B2 JP 6137173 B2 JP6137173 B2 JP 6137173B2 JP 2014512466 A JP2014512466 A JP 2014512466A JP 2014512466 A JP2014512466 A JP 2014512466A JP 6137173 B2 JP6137173 B2 JP 6137173B2
Authority
JP
Japan
Prior art keywords
column
encrypted
data
range
key
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
JP2014512466A
Other languages
English (en)
Other versions
JPWO2013161586A1 (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 JP2014512466A priority Critical patent/JP6137173B2/ja
Publication of JPWO2013161586A1 publication Critical patent/JPWO2013161586A1/ja
Application granted granted Critical
Publication of JP6137173B2 publication Critical patent/JP6137173B2/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
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/284Relational databases
    • 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/602Providing cryptographic facilities or services
    • 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
    • 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/6245Protecting personal data, e.g. for financial or medical purposes
    • G06F21/6254Protecting personal data, e.g. for financial or medical purposes by anonymising data, e.g. decorrelating personal data from the owner's identification
    • 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
    • H04L9/0869Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2107File encryption

Description

本発明は暗号化データベースシステム、クライアント端末およびデータベースサーバ、結合方法およびプログラムに関し、特に、必要外のデータが漏洩する危険性を防止することを可能とする暗号化データベースシステム等に関する。
企業などにおける業務の根幹がコンピュータ化されることによって、ほとんどの企業が業務で使用する大量のデータを収容する大規模データベースを持つようになっている。これらのデータは、業務上重要なデータであり、また個人情報保護という観点からも、外部に対して漏洩することは絶対にあってはならない。このため、そのような大規模データベースでは、収容されるデータが暗号化されていることが多い。
データベースは、多くの表(テーブル)の集合体として捉えることができる。以下、非特許文献1に記載されている、収容されているデータが暗号化されたデータベース(以後暗号化データベースという)で、各要素を復号化することなく2つの表を結合するために行われている、検索可能暗号と呼ばれる暗号方式について説明する。
この方式では、暗号学的ハッシュ関数Hashと共通鍵暗号(Enc,Dec)を使用する。暗号化関数Encは、平文をm、暗号鍵をkとすると、c=Enc(k,m)で暗号文cを生成し、復号化関数Decは、暗号文をc、暗号鍵をkとすると、m=Dec(c,k)で暗号文cを復号化する。
検索可能暗号では、秘密鍵の組(K,k)を使用して、平文mを以下の数1に示すように暗号化する。復号化は以下の数2に示す形で処理可能である。
Figure 0006137173
Figure 0006137173
この方式では、平文mが同一であれば、それらの暗号文の第一の要素C[1]は同一となる。即ち、暗号文を復号しなくても平文の同一性を判定することが可能であり、同一の要素について表を自然結合することが可能となる。
図9および10は、既存技術である検索可能暗号で、結合される前の表データについて示す説明図である。図9は表「I」901を、図10は表「II」902を各々示す。表「I」901には列「IA」901aおよび列「IB」901bがあり、表「II」902には列「IIB」902aおよび列「IIC」902bがある。
図11は、図9および10に示した表「I」901および表「II」902を結合して得られる表「III」903について示す説明図である。表「I」901の列「IB」901b、および表「II」902の列「IIB」902aは、いずれも「カード番号」についてのものであるので、列「IB」=列「IIB」の条件で結合する(列「IB」および列「IIB」で、要素の値が等しいもの同士を結合する)ことが可能であり、これによって表「III」903を得ることが可能である。
図12は、図11に示した表「III」903から、列「IA(名前)」が「上田」である行を抽出した表「III’」904について示す説明図である。以上で示した処理では、表「I」901および表「II」902の各要素は暗号化されていない。
しかしながら、実際にはこれらが暗号化された状態で、各要素を復号化することなく、以上に示した処理を行う必要がある。そのためには、列「IB」および列「IIB」で要素の値が等しいか否かを判断可能である必要がある。そこで、前述の検索可能暗号という暗号方式を利用する。
図13および14は、図9および10に示した表「I」901および表「II」902を、各々検索可能暗号によって暗号化した暗号化表「I」911および暗号化表「II」912について示す説明図である。暗号化表「I」911および暗号化表「II」912では、各要素が前述の数1に示した方式で、秘密鍵の組(K,k)を利用して暗号化されている。
図15は、図13および14に示した暗号化表「I」911および暗号化表「II」912を結合して得られる暗号化表「III」913について示す説明図である。暗号化表「I」911および暗号化表「II」912を結合するには、暗号化される前の列「IB」901bと列「IIB」902aの要素の値が等しいか否かを判断する必要がある。
検索可能暗号によれば、暗号化された要素のHash(K,m)とHash(k,m’)とが等しいか否かを判断することによって、暗号化される前のmとm’とが等しいか否かを判断することができるので、これによって暗号化表「III」913を得ることができる。
図16は、図15に示した暗号化表「III」913から、列「IA(名前)」が「Hash(K,上田)」である行を抽出した暗号化表「III’」914について示す説明図である。以上で説明したように、ここまでで各要素を復号化することなく、暗号化表「III’」914を得ることができる。秘密鍵の組(K,k)を持つ正当なユーザであれば、これに対応する列「IIC」902bの要素、この場合は「上田」さんのクレジットカードの「有効期限」について、その要素を復号化して知ることが可能である。
これに関連する他の技術文献として、次の各々がある。特許文献1には、各項目の順位を生成して暗号化したインデックステーブルを使用して、その項目を暗号化したままで範囲検索を行うことができるというリレーショナルデータベースについて記載されている。特許文献2には、キーワードが暗号化されたままの状態でマッチング処理を行うという暗号化データベース検索装置について記載されている。
特許文献3には、暗号化されたキーワードによってインデックスファイルを生成して、これによって暗号化された状態のファイルの検索を可能とするという技術が記載されている。特許文献4および5には、分散データベースシステムで表結合にかかる時間を低減するという技術が記載されている。
特開2003−186725号公報 特開2005−134990号公報 特開2010−061103号公報 特開2010−272030号公報 特開平04−213765号公報
G.Amanatidis,A.Boldyreva, and A.O'Neill. Provably-secure schemes for basic query support inoutsourced databases. In S.~Barker and G.-J. Ahn, editors, DBSec, volume 4602of Lecture Notes in Computer Science, pages 14--30. Springer, 2007.
以上で説明したように、非特許文献1に記載された検索可能暗号による方式を利用すれば、暗号化したまま表を結合し、条件に一致する(特定の列の要素が指定された値と一致する)行を取り出すことが可能である。
しかしながら、この方式では、最終的に得られる行以外の行に関しても表が結合されることになる。前述の例でいえば、ユーザは「上田」さんのクレジットカードの有効期限について知ることができればそれでよいのであって、他のメンバの有効期限について知る必要は無い。それにもかかわらず、この方式では、「上田」さん以外のメンバの有効期限についても結合された、図11や図15に示したような表が作成される。
通常、このようなデータベースシステムはクライアント−サーバ方式で運用されるので、この処理を行っている間は図11や図15に示したような「上田」さん以外のメンバの有効期限についても結合された表のデータがサーバ側の装置に記憶されることになるので、その間にそのデータが漏洩する危険性を否定することはできない。
図15に示したように各データが暗号化されている場合、秘密鍵の組(K,k)を持っていないユーザは具体的な名前や有効期限を知ることはできないが、結合関係からその暗号文同士の対応を推測することはできる。即ち、最終的に得られる行以外の行に関しても表が結合されるということは、データの関連性に関して必要外の情報が漏洩する危険性があるということを意味する。
この問題を解決することが可能な技術は、前述の特許文献1〜5にも記載されていない。そもそもこれらの文献の中で、以上で説明した問題点について言及したものは無いので、当然ながらこれらの文献に記載された技術でこの問題を解決することはできない。
本発明の目的は、データベースの暗号化された複数の表を復号化する事なく結合し、さらに必要外のデータが漏洩する危険性を防止することを可能とする暗号化データベースシステム、クライアント端末およびデータベースサーバ、結合方法およびプログラムを提供することにある。
上記目的を達成するため、本発明に係る暗号化データベースシステムは、外部から入力されたa列目およびb列目の各複数のデータを有する第1の表およびc列目の複数のデータを有する第2の表に係るデータ全体を予め記憶された秘密鍵によってそれぞれ暗号化して外部に出力し、これらの表をa列目のデータの予め備える値が指定されたp以上q未満の範囲にある行についてb列目およびc列目のデータの予め備える値が一致する行を結合させる部分結合命令を秘密鍵から生成された範囲検索鍵と共に外部に送信するクライアント端末と、暗号化された第1および第2の表を受信して記憶し、部分結合命令に応じて暗号化された第1および第2の表をa列目のデータの予め備える値が指定されたp以上q未満の範囲にある行についてb列目およびc列目のデータの予め備える値が一致する行を結合してこれをクライアント端末に返送する部分結合機能を有する暗号化データベースサーバとが相互に接続されて成り、暗号化データベースサーバの部分結合機能が、範囲検索鍵を利用して暗号化された第1の表からa列目のデータの予め備える値が指定されたp以上q未満の範囲にある行を抽出し、この抽出された行に対して暗号化された第1および第2の表のb列目およびc列目のデータの予め備える値が一致する行を結合するものであることを特徴とする。
上記目的を達成するため、本発明に係るクライアント端末は、外部から入力されたa列目およびb列目の各複数のデータを有する第1の表およびc列目の複数のデータを有する第2の表に係るデータ全体を予め記憶された秘密鍵によって暗号化して外部に出力する暗号化部と、秘密鍵を利用して範囲検索鍵を生成する範囲検索鍵生成部とを有すると共に、この範囲検索鍵生成部が、秘密鍵を利用して第1および第2の表をa列目のデータの予め備える値が指定されたp以上q未満の範囲にある行についてb列目およびc列目のデータの予め備える値が一致する行を結合させる部分結合命令を範囲検索鍵と共に外部に送信する機能を有することを特徴とする。
上記目的を達成するため、本発明に係る暗号化データベースサーバは、全体が暗号化されたa列目およびb列目の各複数のデータを有する第1の表およびc列目の複数のデータを有する第2の表をクライアント端末から受信して記憶し、クライアント端末から受信した範囲検索鍵を含む部分結合命令に応じて暗号化された第1および第2の表をa列目のデータの予め備える値が指定されたp以上q未満の範囲にある行についてb列目およびc列目のデータの予め備える値が一致する行を結合してこれをクライアント端末に返送する部分結合機能を有する暗号化データベースサーバ暗号化データベースサーバであって、範囲検索鍵を利用して暗号化された第1の表からa列目のデータの予め備える値が指定されたp以上q未満の範囲にある行を抽出し、この抽出された行に対して暗号化された第1および第2の表のb列目およびc列目のデータの予め備える値が一致する行を結合する検索部によって部分結合機能を実行することを特徴とする。
上記目的を達成するため、本発明に係る暗号化データ結合方法は、クライアント端末と、暗号化データベースサーバとが相互に接続されて構成される暗号化データベースシステムにあって、クライアント端末が、外部から入力されたa列目およびb列目の各複数のデータを有する第1の表およびc列目の複数のデータを有する第2の表に係るデータ全体を予め記憶された秘密鍵によってそれぞれ暗号化して暗号化データベースサーバに出力し、暗号化データベースサーバが、暗号化された第1および第2の表を受信して記憶し、クライアント端末が、暗号化された第1の表のa列目のデータの予め備える値が指定されたp以上q未満の範囲にある行について暗号化された第1および第2の表をb列目およびc列目のデータの予め備える値が一致する行を結合させる部分結合命令を秘密鍵から生成された範囲検索鍵と共に暗号化データベースサーバに送信し、暗号化データベースサーバが、範囲検索鍵を利用して暗号化された第1の表からa列目のデータの予め備える値が指定されたp以上q未満の範囲にある行を抽出し、この抽出された行に対して暗号化された第1および第2の表のb列目およびc列目のデータの予め備える値が一致する行を結合してクライアント端末に返送することを特徴とする。
上記目的を達成するため、本発明に係る暗号化データ結合プログラムは、クライアント端末と、暗号化データベースサーバとが相互に接続されて構成される暗号化データベースシステムにあって、クライアント端末が備えるコンピュータに、外部から入力されたa列目およびb列目の各複数のデータを有する第1の表およびc列目の複数のデータを有する第2の表に係るデータ全体を予め記憶された秘密鍵によってそれぞれ暗号化して暗号化データベースサーバに出力する手順、および暗号化された第1の表のa列目のデータの予め備える値が指定されたp以上q未満の範囲にある行について暗号化された第1および第2の表をb列目およびc列目のデータの予め備える値が一致する行を結合させる部分結合命令を秘密鍵から生成された範囲検索鍵と共に暗号化データベースサーバに送信する手順を実行させることを特徴とする。
上記目的を達成するため、本発明に係る別の暗号化データ結合プログラムは、クライアント端末と、暗号化データベースサーバとが相互に接続されて構成される暗号化データベースシステムにあって、暗号化データベースサーバが備えるコンピュータに、クライアント端末から全体が暗号化されたa列目およびb列目の各複数のデータを有する第1の表およびc列目の複数のデータを有する第2の表を受信して記憶する手順、およびクライアント端末から受信した範囲検索鍵を含む部分結合命令に応じて、範囲検索鍵を利用して暗号化された第1の表からa列目のデータの予め備える値が指定されたp以上q未満の範囲にある行を抽出し、この抽出された行に対して暗号化された第1および第2の表のb列目およびc列目のデータの予め備える値が一致する行を結合してクライアント端末に返送する手順を実行させることを特徴とする。
本発明は、上述したように、クライアント端末で秘密鍵から生成された範囲検索鍵を利用して、データベースサーバが第1および第2の表で要素の値がp以上q未満であるものを判定して抽出し、それらの列についてのみ第1および第2の表を結合してクライアント端末に返送するように構成したので、各々の表が復号化されることはなく、かつ必要外のデータについて結合が行われることもない。
これによって、データベースの暗号化された複数の表を復号化する事なく結合し、さらにユーザにとって必要外のデータが漏洩する危険性を防止することが可能であるという、優れた特徴を持つ暗号化データベースシステム、クライアント端末およびデータベースサーバ、結合方法およびプログラムを提供することができる。
本発明の実施形態に係る暗号化データベースシステムの構成を示す説明図である。 図1に示したクライアント端末が表「X」および表「Y」を暗号化して暗号化データベースサーバに送付するという動作について説明する説明図である。 図2に示した暗号化される前の表「X」について示す説明図である。 図2に示した暗号化される前の表「Y」について示す説明図である。 図3に示した表「X」が、図2に示した処理によって暗号化された暗号化表「X」について示す説明図である。 図4に示した表「Y」が、図2に示した処理によって暗号化された暗号化表「Y」について示す説明図である。 図1で示した暗号化データベースサーバが行う、図5〜6で示した暗号化表「X」および暗号化表「Y」を結合して列「A」の値がp以上q未満である行を抽出する処理について示す説明図である。 図1に示したクライアント端末および暗号化データベースサーバが行う処理について示すフローチャートである。 既存技術である検索可能暗号で、結合される前の表「I」について示す説明図である。 既存技術である検索可能暗号で、結合される前の表「II」について示す説明図である。 図9および10に示した表「I」および表「II」を結合して得られる表「III」について示す説明図である。 図11に示した表「III」から、列「IA(名前)」が「上田」である行を抽出した表「III’」について示す説明図である。 図9に示した表「I」を、検索可能暗号によって暗号化した暗号化表「I」について示す説明図である。 図10に示した表「II」を、検索可能暗号によって暗号化した暗号化表「II」について示す説明図である。 図13および14に示した暗号化表「I」911および暗号化表「II」912を結合して得られる暗号化表「III」について示す説明図である。 図15に示した暗号化表「III」から、列「IA(名前)」が「Hash(K,上田)」である行を抽出した暗号化表「III’」について示す説明図である。
(実施形態)
以下、本発明の実施形態の構成について添付図1、2、7に基づいて説明する。
最初に、本実施形態の基本的な内容について説明し、その後でより具体的な内容について説明する。
本実施形態に係る暗号化データベースシステム1は、外部から入力されたa列目およびb列目の各複数のデータを有する第1の表およびc列目の複数のデータを有する第2の表に係るデータ全体を予め記憶された秘密鍵によってそれぞれ暗号化して外部に出力し、これらの表をa列目のデータの予め備える値が指定されたp以上q未満の範囲にある行についてb列目およびc列目のデータの予め備える値が一致する行を結合させる部分結合命令を秘密鍵から生成された範囲検索鍵と共に外部に送信するクライアント端末10と、暗号化された第1および第2の表を受信して記憶し、部分結合命令に応じて暗号化された第1および第2の表をa列目のデータの予め備える値が指定されたp以上q未満の範囲にある行についてb列目およびc列目のデータの予め備える値が一致する行を結合してこれをクライアント端末に返送する部分結合機能を有する暗号化データベースサーバ暗号化データベースサーバ50とが相互に接続されて成り、暗号化データベースサーバ50の部分結合機能が、範囲検索鍵を利用して暗号化された第1の表からa列目のデータの予め備える値が指定されたp以上q未満の範囲にある行を抽出し、この抽出された行に対して暗号化された第1および第2の表のb列目およびc列目のデータの予め備える値が一致する行を結合するものである。
また、クライアント端末10は、秘密鍵を利用して、第1の表のb列目の要素を検索するための鍵である検索鍵を生成する検索鍵生成部21と、秘密鍵を利用して、第2の表のc列目の要素が特定の値で検索されるための鍵である被検索鍵を生成する被検索鍵生成部23と、秘密鍵を利用して、第1の表のa列目の要素がp以上q未満である特定の値で検索されるための鍵である被範囲検索鍵を生成する被範囲検索鍵生成部24と、秘密鍵を利用して、第1および第2の表の各要素を暗号化する暗号化部(暗号化/復号化部26)と、秘密鍵および検索鍵を利用して、第1の表のa列目の要素を検索鍵に対応させるための情報である範囲検索暗号文を生成する範囲検索暗号文生成部25とを有し、を有し、これらによって第1および第2の表を暗号化する。さらに、暗号化部26が、第1の表のa列目の要素を被範囲検索鍵と暗号化されたa列目の要素、b列目の要素を範囲検索暗号文と暗号化されたb列目の要素とでそれぞれ置換し、第2の表のc列目の要素を被検索鍵と暗号化されたc列目の要素で置換して、これを暗号化された第1および第2の表として暗号化データベースサーバに送信する機能を有し、かつ、秘密鍵を利用して、第1の表のa列目の要素がp以上q未満の特定の値であるものを検索するための鍵である被範囲検索鍵を生成してこれを部分結合命令として暗号化データベースサーバに送信する範囲検索鍵生成部22を備える。
一方の暗号化データベースサーバ50は、暗号化された第1の表で範囲検索鍵と被範囲検索鍵とが一致する行を抽出する範囲検索部62と、抽出された行について範囲検索鍵と範囲検索暗号文とから対象検索鍵を生成する範囲内導出部63と、対象検索鍵および被検索鍵を用いて暗号化された第1の表の抽出された行に対応する暗号化された第2の表の行を発見し、これらの行について結合を行う検索部61とを有し、これらによって部分結合機能を実行する。
この構成を備えることにより、暗号化データベースシステム1はデータベースの暗号化された複数の表を復号化する事なく結合し、さらにユーザにとって必要外のデータが漏洩する危険性を防止することが可能となる。
以下、これをより詳細に説明する。
図1は、本発明の実施形態に係る暗号化データベースシステム1の構成を示す説明図である。暗号化データベースシステム1は、クライアント端末10と暗号化データベースサーバ50とが、LAN(Local Area Network)などを介して相互に接続されて構成される。
クライアント端末10は、一般的なコンピュータ装置としての構成を備える。即ち、クライアント端末10は、コンピュータプログラムを実行する主体となるプロセッサ11と、データを記憶する記憶手段12と、ユーザからの操作を受け付ける入力手段13と、ユーザに処理結果を提示する出力手段14と、他のコンピュータとのデータ通信を行う通信手段15とを備える。
プロセッサ11では、ユーザからの操作命令に応じて、初期設定部20、検索鍵生成部21、範囲検索鍵生成部22、被検索鍵生成部23、被範囲検索鍵生成部24、範囲検索暗号文生成部25、および暗号化/復号化部26が、各々コンピュータプログラムとして後述するそれぞれの機能を実行されるように構成されている。また、記憶手段12には以後に説明する処理で使用する秘密鍵33が記憶されている。
そして入力手段13には、名称が各々「X」および「Y」である表「X」31および表「Y」32が入力される。以後、本明細書では、名称「X」である表の名称「A」である列の、値が「a」である要素を、表「X」の列「A」の要素「a」というように呼ぶ。
暗号化データベースサーバ50もまた、一般的なコンピュータ装置としての構成を備える。即ち、暗号化データベースサーバ50は、コンピュータプログラムを実行する主体となるプロセッサ51と、データを記憶する記憶手段52と、他のコンピュータとのデータ通信を行う通信手段53とを備える。
プロセッサ51では、クライアント端末10からの操作命令に応じて、検索部61、範囲検索部62、および範囲内導出部63が、コンピュータプログラムとして後述するそれぞれの機能を実行されるように構成されている。また、記憶手段52には表「X」31および表「Y」32を各々暗号化してクライアント端末10から送付された暗号化表「X」41および暗号化表「Y」42が記憶される。
上述した各手段の、基本的な動作について説明する。クライアント端末10と暗号化データベースサーバ50には、各種のシステム変数が入力されるか、もしくは予め記憶されている。以下の説明では、それらのシステム変数については当業者にとって公知の事項であるので、必要なもの以外は特に説明しない。
まずクライアント端末10の側で、初期設定部20は、各部の動作に必要な初期値を設定する。この詳細については後述する。
検索鍵生成部21は、要素が暗号化されている任意の表「X」、表「X」の任意の列「A」、列「A」の任意の要素「a」に対して、表「X」の列「A」の要素「a」を検索する鍵「検索鍵(X、A、a)」を秘密鍵33を用いて生成する。この検索鍵生成部21を関数と考えると、以下の数3のように表現される。
Figure 0006137173
範囲検索鍵生成部22は、各要素が暗号化されている任意の表「X」、表「X」の任意の列「A」、列「A」の任意の要素「a」に対して、表「X」の列「A」の要素でその値が、最小値「a」から最大値「b」までの間にあるものを検索する鍵「範囲検索鍵(X、A、a、b)」を秘密鍵33を用いて生成する。この範囲検索鍵生成部22を関数と考えると、以下の数4のように表現される。
Figure 0006137173
被検索鍵生成部23は、各要素が暗号化されている任意の表「X」、表「X」の任意の列「A」、列「A」の任意の要素「a」に対して、表「X」の列「A」の要素「a」として検索される鍵「被検索鍵(X、A、a)」を秘密鍵33を用いて生成する。この被検索鍵生成部23を関数と考えると、以下の数5のように表現される。
Figure 0006137173
被範囲検索鍵生成部24は、各要素が暗号化されている任意の表「X」、表「X」の任意の列「A」、列「A」の任意の要素「a」に対して、表「X」の列「A」のb≦aなるいかなる要素bとa≦cなるいかなる要素cに関して、b≦a≦cである要素「a」として検索される鍵「被範囲検索鍵(X、A、a)」を秘密鍵33を用いて生成する。この被範囲検索鍵生成部24を関数と考えると、以下の数6のように表現される。
Figure 0006137173
範囲検索暗号文生成部25は、任意の表「X」、表「X」の任意の列「A」、列「A」の任意の要素「a」と検索鍵「K」、に対して、要素「a」を検索鍵「K」に対応させる為の情報「範囲検索暗号文(X、A、a、K)」を秘密鍵を用いて生成する。この範囲検索暗号文生成部25を関数と考えると、以下の数7のように表現される。
Figure 0006137173
暗号化データベースサーバ50の側で、検索部61は、ある表「X」、表「X」のある列「A」、列「A」のある要素「a」に関して生成された被検索鍵(X、A、a)と、表「X」の列「A」のある要素「a’」に関して生成された「検索鍵(X、A、a’)」とに対して、a=a’であるか否かを「検索鍵(X、A、a’)」と「被検索鍵(X、A、a)」から判定する。この検索部61を関数と考えると、以下の数8のように表現される。ここで、0を一致、1を不一致と解釈する。
Figure 0006137173
範囲検索部62は、ある表「X」、表「X」のある列「A」、列「A」のある要素「c」に関して生成された被範囲検索鍵(X、A、c)と、表「X」の列「A」の最小値「a」から最大値「b」に対して生成された「範囲検索鍵(X、A、a、b)」とに対して、a≦c≦bであるか否かを、「範囲検索鍵(X、A、a、b)」と「被範囲検索鍵(X、A、a)」から判定する。この範囲検索部62を関数と考えると、以下の数9のように表現される。ここで、0を一致、1を不一致と解釈する。
Figure 0006137173
範囲内導出部63は、ある表「X」のある列「A」の最小値aから最大値bに対して生成された「範囲検索鍵(X、A、a、b)」と、表「X」の列「A」のa≦d≦bなるある要素「d」と検索鍵「K」に対して生成された「範囲検索暗号文(X、A、d、K)」とから、検索鍵「K」を導出する。この範囲内導出部63を関数と考えると、以下の数10のように表現される。
Figure 0006137173
クライアント端末10側に戻って、暗号化/復号化部26は、暗号文cを秘密鍵によって復号する。また逆に、要素mを秘密鍵によって暗号化することもできる。この暗号化/復号化部26を関数と考えると、以下の数11〜12のように表現される。
Figure 0006137173
Figure 0006137173
(暗号化表の作成および送付) 図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]」という。
被範囲検索鍵生成部24は、iの取りうる1〜nの全ての値に対して、表「X」31、列「A」31a、要素「a[i]」、および秘密鍵33から、数6で示した「被範囲検索鍵(X,A,a[i])」を生成する。これを図2では被範囲検索鍵34aという。
検索鍵生成部21は、iの取りうる1〜nの全ての値に対して、表「Y」32、列「C」32c、列Bの要素「b[i]」、および秘密鍵33から、数3で示した「検索鍵(Y,C,b[i])」を生成する。これを図2では検索鍵34bという。
範囲検索暗号文生成部25は、iの取りうる1〜nの全ての値に対して、表「X」31、列「A」31a、要素「a[i]」、検索鍵34b、および秘密鍵33から、数7で示した「範囲検索暗号文(X,A,a[i],検索鍵(Y,C,b[i]))を生成する。これを図2では範囲検索暗号文34dという。
暗号化/復号化部26は、iの取りうる1〜nの全ての値に対して、要素「a[i]」、および秘密鍵33から、数11に示した各要素の暗号文「enc(a[i])」を生成し、また同様に、要素「b[i]」、および秘密鍵33から、数11に示した各要素の暗号文「enc(b[i])」を生成する。
また、この暗号化/復号化部26は、iの取りうる1〜nの全ての値に対して、表「X」31で、列「A」31aの要素「a[i]」を(被範囲検索鍵(X,A,a[i]),enc(a[i]))に置換し、同様に列「B」31bの要素「b[i]」を(範囲検索暗号文(X,A,a[i],検索鍵(Y,C,b[i])),enc(b[i]))に置換する。この置換された表「X」31を、暗号化表「X」41という。
一方で、被検索鍵生成部23は、iの取りうる1〜mの全ての値に対して、表「Y」32、列「C」32c、列Cの要素「c[i]」、および秘密鍵33から、数5で示した「被検索鍵(Y,C,c[i])」を生成する。これを図2では被検索鍵34cという。
暗号化/復号化部26は、iの取りうる1〜mの全ての値に対して、要素「c[i]」、および秘密鍵33から、数11に示した各要素の暗号文「enc(c[i])」を生成する。また、iの取りうる1〜mの全ての値に対して、表「Y」32で、列「C」32cの要素「c[i]」を(被検索鍵(Y,C,c[i]),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の値がp以上q未満である行を暗号化表「X」41と暗号化表「Y」42とを結合した暗号化表から抽出する処理を、実際には暗号化表「X」41および暗号化表「Y」42の全体に対しての結合をせずに行うということについて本実施形態では説明する。
一般的に、暗号化表「X」41と暗号化表「Y」42とを結合した暗号化表から、「p以上q未満」などのように値の範囲を指定することによって列「A」31aの値を限定した表を生成することが可能となる。このような結合処理を、本明細書では「部分結合」という。
クライアント端末10は、暗号化表「X」41および暗号化表「Y」42を暗号化する際に使用された秘密鍵33を保持しているが、暗号化データベースサーバ50はこれを保持していない。
図7は、図1で示した暗号化データベースサーバ50が行う、図5〜6で示した暗号化表「X」41および暗号化表「Y」42を結合して列「A」の値がp以上q未満である行を抽出する処理について示す説明図である。まずクライアント端末10の範囲検索鍵生成部22が、表「X」31、列「A」31a、最小値p、最大値q、および秘密鍵33から、数4で示した「範囲検索鍵(X,A,p,q)」を生成する。
クライアント端末10から、以上の「範囲検索鍵(X,A,p,q)」が、部分結合コマンドと共に暗号化データベースサーバ50に送信される。図7では、これを範囲検索鍵35aとして示している。
これを受けた暗号化データベースサーバ50では、範囲検索部62が、暗号化表「X」41の列「A」31aの要素である被範囲検索鍵34a=(X,A,a[i])と範囲検索鍵35aとが一致するiを全て発見する。このようなiの集合を範囲集合Sという。ここでi∈Sならa[i]=qである。
範囲内導出部63は、範囲集合Sに属する全てのiに対して、範囲検索鍵35a=(X,A,p,q)、範囲検索暗号文34d=(X,A,a[i],検索鍵(Y,C,b[i]))から、対象検索鍵43a=検索鍵(Y,C,b[i])を得る。
検索部61は、範囲集合Sに属する全てのiに対して、対象検索鍵43aと、暗号化表「Y」42の列「C」32cの要素である被検索鍵34c=(Y,C,c[j])とが一致するjを発見する。これを満たすjをj[i]という。
そして検索部61は、暗号化表「X」41のi行目と暗号化表「Y」42のj[i]行目を結合して、新たな行R[i]を作成し、全てのi∈SについてR[i]をクライアント端末10に返送する。
クライアント端末10は、暗号化/復号化部26によって、R[i]の要素であるenc(a[i]),enc(b[i]),enc(c[i])を復号化して、各列要素の原文a[i],b[i],c[i]を得ることができる。また、適切な範囲検索暗号文34dが予め作成されていれば、対象検索鍵43a=検索鍵(Y,C,b[i])を利用して、列「C」とさらに他の列との間で結合を取ることもできる。
(より詳細な実施形態の説明) 以上で説明した各手段の動作について、それらの動作をより詳細に説明する。なお、これより以後では、要素Valをt∈{0,1}であるt[i]によって、以下の数13に示すように桁数n桁のビット列で表す。
Figure 0006137173
図8は、図1に示したクライアント端末10および暗号化データベースサーバ50が行う処理について示すフローチャートである。クライアント端末10の側で、初期設定部20は、入力手段13を介して入力された安全変数κから、以下の数14で示される秘密鍵MKをランダムに選択する(ステップS101)。
Figure 0006137173
そして初期設定部20はさらに、システム変数PMを、以下の数15で示されるハッシュ関数、表の名前の空間、列の名前の空間、列の要素の空間の表現方法の記述として定義し、これらのシステム変数PMおよび秘密鍵MKを出力する(ステップS102)
Figure 0006137173
被範囲検索鍵生成部24は、システム変数PM、秘密鍵MK、表の名前TN(図3〜4でいう「X」「Y」)、列の名前CN(図3〜4でいう「A」「B」「C」)、および要素の値EV(図3〜4でいう「a[i]」「b[i]」「c[i]」)=(c[0]、…、c[n−1])を入力として、まずランダムにI∈{0、1}^κを選び、続いてd[n]=0として、i=0、…、n−1に対して以下の数16で示される各々の値を生成し、最後に被範囲検索鍵RSKDを出力する(ステップS103)。
Figure 0006137173
検索鍵生成部21は、システム変数PM、秘密鍵MK、表の名前TN、列の名前CN、および要素の値EVを入力として、以下の数17で示される検索鍵SKを生成して出力する(ステップS104)。
Figure 0006137173
被検索鍵生成部23は、システム変数PM、秘密鍵MK、表の名前TN、列の名前CN、および要素の値EVを入力として、以下の数18で示される被検索鍵SKDを生成して出力する(ステップS105)。
Figure 0006137173
範囲検索暗号文生成部25は、システム変数PM、秘密鍵MK、表の名前TN、列の名前CN、要素EV=(c[0]、…、c[n−1])、検索鍵SK、許可鍵GTを入力として、まずランダムにI∈{0、1}^κを選び、続いてi=0、…、n−1に対して以下の数19で示される各々の値を生成し、最後に範囲検索暗号文RCPを出力する(ステップS106)。なお、数19でd[i]は被範囲検索鍵生成部24で生成されたものと同一である。
Figure 0006137173
暗号化/復号化部25は、前述した(図5〜6に示した)ように表「X」31および表「Y」32の各要素を置換して暗号化表「X」41および暗号化表「Y」42を作成する(ステップS107)。そしてこれらの暗号化表「X」41および暗号化表「Y」42を暗号化データベースサーバ50に送付する。暗号化データベースサーバ50では、これらを受信して記憶手段52に記憶する(ステップS151)。
クライアント端末10では、その後で、範囲検索鍵生成部22が、システム変数PM、秘密鍵MK、表の名前TN、列の名前CN、要素の最小値Min=(a[0]、…、a[n−1])、要素の最大値Max=(b[0]、…、b[n−1])を入力として、まずランダムにI∈{0、1}^κを選び、(a[L]、…、a[n−1])=(b[L]、…、b[n−1])となる最小のLを探し、d[n]=0として、i=L、…、n−1に対して以下の数20で示される処理を行って各々の値を生成し、最後に範囲検索鍵RSKを出力して、部分結合コマンドと共に暗号化データベースサーバ50に送信する(ステップS108)。
Figure 0006137173
暗号化データベースサーバ50で、範囲検索部62は、システム変数PM、範囲検索鍵35a,RSK=(TN、CN、I’、L、d[L]、…、d[n]、d[0、0]、…、d[0、L−1]、d[1、0]、…、d[1、L−1]、f[0、0]、…、f[0、L−1]、f[1、0]、…、f[1、L−1]、g[L])、被範囲検索鍵RSKD=(I、(h[0]、…、h[n−1])、(f[0]、…、f[n]))を入力として、以下に示される処理を行って。0(一致)または1(不一致)である結果(Res)を次のように出力する(ステップS152)。
まずh[L]=Hash(d[L]、(6、TN、CN、I))であるか否かを判断し、これが成立しなければRes=1を出力して終了する。成立していれば、h[θ、i]=Hash(d[y、i]、(6、TN、CN、I))が成り立つ全ての対(θ、i)∈{0、1}×{0、…、L}の組み合わせで、最小のiを取る対(θ、i)を(Θ、H)として、以下の数21の計算を行う。
Figure 0006137173
そして、Θ=0の場合、(e[H]−e[0、H]=1 mod 3であればRes=0、(e[H]−e[0、H]=2 mod 3であればRes=1とする。Θ=1の場合、(e[H]−e[0、H]=2 mod 3であればRes=0、(e[H]−e[0、H]=1 mod 3であればRes=1とする。以上のResを出力して、範囲検索部62による処理は終了する。
範囲内導出部63は、システム変数PM、範囲検索鍵RSK=(TN、CN、I’、L、d[L]、…、d[n]、d[0、0]、…、d[0、L−1]、d[1、0]、…、d[1、L−1]、f[0、0]…、f[0、L−1]、f[1、0]、…、f[1、L−1]、g[L])、と範囲検索暗号文RCP=(I、m[0]、…、m[n−1])を入力として、以下の数22で示される処理を行って、対象検索鍵SK’を生成して出力する(ステップS153)。
Figure 0006137173
そして検索部61は、ここで算出された対象検索鍵SK’を利用して、全てのi∈Sに対して、この対象検索鍵SK’とシステム変数PM、被検索鍵SKD=(Y,C,c[j])を入力として、SK’=SKDとなるjを発見して、暗号化表「X」41のi行目と暗号化表「Y」42のj[i]行目を結合して、新たな行R[i]を作成して、全てのi∈SについてR[i]をクライアント端末10に返送する(ステップS154)。
クライアント端末10では、このR[i]を暗号化/復号化部26が秘密鍵33によって復号化することによって、「X」31と表「Y」32とを結合し、かつ列「A」の値がp以上q未満である行を得る(ステップS109)。
(第1の実施形態の全体的な動作)
次に、上記の実施形態の全体的な動作について説明する。本実施形態に係る暗号化データ結合方法は、クライアント端末10と、暗号化データベースサーバ50とが相互に接続されて構成される暗号化データベースシステム1にあって、クライアント端末が、外部から入力されたa列目およびb列目の各複数のデータを有する第1の表およびc列目の複数のデータを有する第2の表に係るデータ全体を予め記憶された秘密鍵によってそれぞれ暗号化して暗号化データベースサーバに出力し(図8・ステップS101〜107)、暗号化データベースサーバが、暗号化された第1および第2の表を受信して記憶し(図8・ステップS151)、クライアント端末が、暗号化された第1の表のa列目のデータの予め備える値が指定されたp以上q未満の範囲にある行について暗号化された第1および第2の表をb列目およびc列目のデータの予め備える値が一致する行を結合させる部分結合命令を秘密鍵から生成された範囲検索鍵と共に暗号化データベースサーバに送信し(図8・ステップS108)、暗号化データベースサーバが、範囲検索鍵を利用して暗号化された第1の表からa列目のデータの予め備える値が指定されたp以上q未満の範囲にある行を抽出し、この抽出された行に対して暗号化された第1および第2の表のb列目およびc列目のデータの予め備える値が一致する行を結合してクライアント端末に返送する(図8・ステップS152〜154)。
ここで、上記各動作ステップについては、これをコンピュータで実行可能にプログラム化し、これらを前記各ステップを直接実行するコンピュータであるクライアント端末10および暗号化データベースサーバ50に実行させるようにしてもよい。本プログラムは、非一時的な記録媒体、例えば、DVD、CD、フラッシュメモリ等に記録されてもよい。その場合、本プログラムは、記録媒体からコンピュータによって読み出され、実行される。
この動作により、本実施形態は以下のような効果を奏する。
本実施形態において、範囲検索暗号文RCPは、範囲検索鍵RSKが与えられることをきっかけとして、検索鍵SKを導出することができる。ここで範囲検索暗号文RCPは、無条件に範囲検索鍵RSKによってきっかけを与える事が出来るわけではないが、RSKの指定する範囲の中の要素を用いてRCPが生成されている場合にはそのきっかけを与えることができる。
即ち、前述の結合の例にあるように、片方の表のある列の要素の値が特定の範囲に属するか否かによって、その部分を抜き出して二つの表を結合する事が可能となる。この時、検索鍵SKの導出には範囲検索暗号文RSKが必要とされる事ので、必要とされない行は結合されず、必要外の情報の漏洩を防止することが可能となる。
ここで、生成される被範囲検索鍵や範囲検索暗号文の値が列の名前に依存することから帰結される事であるが、同じ値でも異なる表や列にある場合はこれらの同一性が判断できないので、範囲検索鍵RSKが無ければ結合対象の行が特定されることはない。
これまで本発明について図面に示した特定の実施形態をもって説明してきたが、本発明は図面に示した実施形態に限定されるものではなく、本発明の効果を奏する限り、これまで知られたいかなる構成であっても採用することができる。
上述した各々の実施形態について、その新規な技術内容の要点をまとめると、以下のようになる。なお、上記実施形態の一部または全部は、新規な技術として以下のようにまとめられるが、本発明は必ずしもこれに限定されるものではない。
(付記1) 外部から入力されたa列目およびb列目の各複数のデータを有する第1の表およびc列目の複数のデータを有する第2の表に係るデータ全体を予め記憶された秘密鍵によってそれぞれ暗号化して外部に出力し、これらの表を前記a列目のデータの予め備える値が指定されたp以上q未満の範囲にある行について前記b列目およびc列目のデータの予め備える値が一致する行を結合させる部分結合命令を前記秘密鍵から生成された範囲検索鍵と共に外部に送信するクライアント端末と、
前記暗号化された第1および第2の表を受信して記憶し、前記部分結合命令に応じて前記暗号化された第1および第2の表を前記a列目のデータの予め備える値が指定されたp以上q未満の範囲にある行について前記b列目およびc列目のデータの予め備える値が一致する行を結合してこれを前記クライアント端末に返送する部分結合機能を有する暗号化データベースサーバとが相互に接続されて成り、
前記暗号化データベースサーバの部分結合機能が、
前記範囲検索鍵を利用して前記暗号化された第1の表から前記a列目のデータの予め備える値が指定されたp以上q未満の範囲にある行を抽出し、この抽出された行に対して前記暗号化された第1および第2の表の前記b列目およびc列目のデータの予め備える値が一致する行を結合するものであることを特徴とする暗号化データベースシステム。
(付記2) 前記クライアント端末が、
前記秘密鍵を利用して、前記第1の表の前記b列目の要素を検索するための鍵である検索鍵を生成する検索鍵生成部と、
前記秘密鍵を利用して、前記第2の表の前記c列目の要素が特定の値で検索されるための鍵である被検索鍵を生成する被検索鍵生成部と、
前記秘密鍵を利用して、前記第1の表の前記a列目の要素が前記p以上q未満である特定の値で検索されるための鍵である被範囲検索鍵を生成する被範囲検索鍵生成部と、
前記秘密鍵を利用して、前記第1および第2の表の各要素を暗号化する暗号化部と、
前記秘密鍵および前記検索鍵を利用して、前記第1の表の前記a列目の要素を前記検索鍵に対応させるための情報である範囲検索暗号文を生成する範囲検索暗号文生成部と
を有し、これらによって前記第1および第2の表を暗号化することを特徴とする、付記1に記載の暗号化データベースシステム。
(付記3) 前記クライアント端末の前記暗号化部が、前記第1の表の前記a列目の要素を前記被範囲検索鍵と暗号化された前記a列目の要素、前記b列目の要素を前記範囲検索暗号文と暗号化された前記b列目の要素とでそれぞれ置換し、前記第2の表の前記c列目の要素を前記被検索鍵と暗号化された前記c列目の要素で置換して、これを暗号化された前記第1および第2の表として前記暗号化データベースサーバに送信する機能を有し、
かつ、前記クライアント端末が、前記秘密鍵を利用して前記第1の表の前記a列目の要素が前記p以上q未満の特定の値であるものを検索するための鍵である範囲検索鍵を生成してこれを前記部分結合命令と共に前記暗号化データベースサーバに送信する範囲検索鍵生成部を備えることを特徴とする、付記2に記載の暗号化データベースシステム。
(付記4) 前記暗号化データベースサーバが、
暗号化された前記第1の表で前記範囲検索鍵と前記被範囲検索鍵とが一致する行を抽出する範囲検索部と、
前記抽出された行について前記範囲検索鍵と前記範囲検索暗号文とから対象検索鍵を生成する範囲内導出部と、
前記対象検索鍵および前記被検索鍵を用いて暗号化された前記第1の表の前記抽出された行に対応する暗号化された前記第2の表の行を発見し、これらの行について前記結合を行う検索部と
を有し、これらによって前記部分結合機能を実行することを特徴とする、付記3に記載の暗号化データベースシステム。
(付記5) 外部から入力されたa列目およびb列目の各複数のデータを有する第1の表およびc列目の複数のデータを有する第2の表に係るデータ全体を予め記憶された秘密鍵によって暗号化して外部に出力する暗号化部と、
前記秘密鍵を利用して範囲検索鍵を生成する範囲検索鍵生成部とを有すると共に、
この範囲検索鍵生成部が、前記秘密鍵を利用して前記第1および第2の表を前記a列目のデータの予め備える値が指定されたp以上q未満の範囲にある行について前記b列目およびc列目のデータの予め備える値が一致する行を結合させる部分結合命令を前記範囲検索鍵と共に外部に送信する機能を有することを特徴とするクライアント端末。
(付記6) 前記秘密鍵を利用して、前記第1の表の前記b列目の要素を検索するための鍵である検索鍵を生成する検索鍵生成部と、
前記秘密鍵を利用して、前記第2の表の前記c列目の要素が特定の値で検索されるための鍵である被検索鍵を生成する被検索鍵生成部と、
前記秘密鍵を利用して、前記第1の表の前記a列目の要素が前記p以上q未満である特定の値で検索されるための鍵である被範囲検索鍵を生成する被範囲検索鍵生成部と、
前記秘密鍵を利用して、前記第1および第2の表の各要素を暗号化する暗号化部と、
前記秘密鍵および前記検索鍵を利用して、前記第1の表の前記a列目の要素を前記検索鍵に対応させるための情報である範囲検索暗号文を生成する範囲検索暗号文生成部と
を有することを特徴とする、付記5に記載のクライアント端末。
(付記7) 前記暗号化部が、前記第1の表の前記a列目の要素を前記被範囲検索鍵と暗号化された前記a列目の要素、前記b列目の要素を前記範囲検索暗号文と暗号化された前記b列目の要素とでそれぞれ置換し、前記第2の表の前記c列目の要素を前記被検索鍵と暗号化された前記c列目の要素で置換して、これを暗号化された前記第1および第2の表として前記暗号化データベースサーバに送信する機能を有し、
かつ、前記秘密鍵を利用して、前記第1の表の前記a列目の要素が前記p以上q未満の特定の値であるものを検索するための鍵である被範囲検索鍵を生成してこれを前記部分結合命令として前記暗号化データベースサーバに送信する範囲検索鍵生成部を備えることを特徴とする、付記6に記載のクライアント端末。
(付記8) 暗号化された第1および第2の表をクライアント端末から受信して記憶し、前記クライアント端末から受信した範囲検索鍵を含む部分結合命令に応じて前記暗号化された第1および第2の表を前記a列目の値がp以上q未満であるデータについて前記b列目およびc列目をキーとして結合してこれを前記クライアント端末に出力する暗号化データベースサーバであって、
前記範囲検索鍵を利用して前記暗号化された第1および第2の表から前記a列目の値がp以上q未満であるデータを各々抽出し、この抽出されたデータに対して前記b列目およびc列目をキーとして結合する検索部
を有することを特徴とする暗号化データベースサーバ。
(付記9) 暗号化された前記第1の表で前記範囲検索鍵と前記被範囲検索鍵とが一致する行を抽出する範囲検索部と、
前記抽出された行について前記範囲検索鍵と前記範囲検索暗号文とから対象検索鍵を生成する範囲内導出部と、
前記対象検索鍵および前記被検索鍵を用いて暗号化された前記第1の表の前記抽出された行に対応する暗号化された前記第2の表の行を発見し、これらの行について前記結合を行う検索部と
を有することを特徴とする、付記8に記載の暗号化データベースサーバ。
(付記10) クライアント端末と、暗号化データベースサーバとが相互に接続されて構成される暗号化データベースシステムにあって、
前記クライアント端末が、外部から入力されたa列目およびb列目の各複数のデータを有する第1の表およびc列目の複数のデータを有する第2の表に係るデータ全体を予め記憶された秘密鍵によってそれぞれ暗号化して前記暗号化データベースサーバに出力し、
前記暗号化データベースサーバが、前記暗号化された第1および第2の表を受信して記憶し、
前記クライアント端末が、前記暗号化された第1の表の前記a列目のデータの予め備える値が指定されたp以上q未満の範囲にある行について前記暗号化された第1および第2の表を前記b列目およびc列目のデータの予め備える値が一致する行を結合させる部分結合命令を前記秘密鍵から生成された範囲検索鍵と共に前記暗号化データベースサーバに送信し、
前記暗号化データベースサーバが、前記範囲検索鍵を利用して前記暗号化された第1の表から前記a列目のデータの予め備える値が指定されたp以上q未満の範囲にある行を抽出し、この抽出された行に対して前記暗号化された第1および第2の表の前記b列目およびc列目のデータの予め備える値が一致する行を結合して前記クライアント端末に返送する
ことを特徴とする暗号化データ結合方法。
(付記11) 前記秘密鍵を利用して、前記第1の表の前記b列目の要素を検索するための鍵である検索鍵を前記クライアント端末の検索鍵生成部が生成し、
前記秘密鍵を利用して、前記第2の表の前記c列目の要素が特定の値で検索されるための鍵である被検索鍵を前記クライアント端末の被検索鍵生成部が生成し、
前記秘密鍵を利用して、前記第1の表の前記a列目の要素が前記p以上q未満である特定の値で検索されるための鍵である被範囲検索鍵を前記クライアント端末の被範囲検索鍵生成部が生成し、
前記秘密鍵を利用して、前記第1および第2の表の各要素を前記クライアント端末の暗号化部が暗号化し、
前記秘密鍵および前記検索鍵を利用して、前記第1の表の前記a列目の要素を前記検索鍵に対応させるための情報である範囲検索暗号文を前記クライアント端末の範囲検索暗号文生成部が生成し、
前記第1の表の前記a列目の要素を前記被範囲検索鍵と暗号化された前記a列目の要素、前記b列目の要素を前記範囲検索暗号文と暗号化された前記b列目の要素とで前記クライアント端末の前記暗号化部がそれぞれ置換してこれを前記暗号化された第1の表とし、
前記第2の表の前記c列目の要素を前記被検索鍵と暗号化された前記c列目の要素で前記クライアント端末の前記暗号化部が置換してこれを前記暗号化された第2の表とし、
前記暗号化された第1および第2の表を前記クライアント端末の前記暗号化部が前記暗号化データベースサーバに送信し、
前記秘密鍵を利用して、前記第1の表の前記a列目の要素が前記p以上q未満の特定の値であるものを検索するための鍵である被範囲検索鍵を前記クライアント端末の範囲検索鍵生成部が生成し、
前記被範囲検索鍵を前記部分結合命令として前記クライアント端末の前記範囲検索鍵生成部が前記暗号化データベースサーバに送信することを特徴とする、付記10に記載の暗号化データ結合方法。
(付記12) 暗号化された前記第1の表で前記範囲検索鍵と前記被範囲検索鍵とが一致する行を前記暗号化データベースサーバの範囲検索部が抽出し、
前記抽出された行について前記範囲検索鍵と前記範囲検索暗号文とから前記暗号化データベースサーバの範囲内導出部が対象検索鍵を生成し、
前記対象検索鍵および前記被検索鍵を用いて暗号化された前記第1の表の前記抽出された行に対応する暗号化された前記第2の表の行を前記暗号化データベースサーバの検索部が発見してこれらの行について前記結合を行うことを特徴とする、付記11に記載の暗号化データ結合方法。
(付記13) クライアント端末と、暗号化データベースサーバとが相互に接続されて構成される暗号化データベースシステムにあって、
前記クライアント端末が備えるコンピュータに、
外部から入力されたa列目およびb列目の各複数のデータを有する第1の表およびc列目の複数のデータを有する第2の表に係るデータ全体を予め記憶された秘密鍵によってそれぞれ暗号化して前記暗号化データベースサーバに出力する手順、
および前記暗号化された第1の表の前記a列目のデータの予め備える値が指定されたp以上q未満の範囲にある行について前記暗号化された第1および第2の表を前記b列目およびc列目のデータの予め備える値が一致する行を結合させる部分結合命令を前記秘密鍵から生成された範囲検索鍵と共に前記暗号化データベースサーバに送信する手順
を実行させることを特徴とする暗号化データ結合プログラム。
(付記14) 前記秘密鍵を利用して、前記第1の表の前記b列目の要素を検索するための鍵である検索鍵を生成する手順、
前記秘密鍵を利用して、前記第2の表の前記c列目の要素が特定の値で検索されるための鍵である被検索鍵を生成する手順、
前記秘密鍵を利用して、前記第1の表の前記a列目の要素が前記p以上q未満である特定の値で検索されるための鍵である被範囲検索鍵を生成する手順、
前記秘密鍵を利用して、前記第1および第2の表の各要素を暗号化する手順、
前記秘密鍵および前記検索鍵を利用して、前記第1の表の前記a列目の要素を前記検索鍵に対応させるための情報である範囲検索暗号文を生成する手順、
前記第1の表の前記a列目の要素を前記被範囲検索鍵と暗号化された前記a列目の要素、前記b列目の要素を前記範囲検索暗号文と暗号化された前記b列目の要素とでそれぞれ置換してこれを前記暗号化された第1の表とする手順、
前記第2の表の前記c列目の要素を前記被検索鍵と暗号化された前記c列目の要素で置換してこれを前記暗号化された第2の表とする手順、
前記暗号化された第1および第2の表を前記暗号化データベースサーバに送信する手順、
前記秘密鍵を利用して、前記第1の表の前記a列目の要素が前記p以上q未満の特定の値であるものを検索するための鍵である被範囲検索鍵を生成する手順、
および前記被範囲検索鍵を前記部分結合命令として前記暗号化データベースサーバに送信する手順
を実行させることを特徴とする、付記13に記載の暗号化データ結合プログラム。
(付記15) クライアント端末と、暗号化データベースサーバとが相互に接続されて構成される暗号化データベースシステムにあって、
前記暗号化データベースサーバが備えるコンピュータに、
前記クライアント端末から全体が暗号化されたa列目およびb列目の各複数のデータを有する第1の表およびc列目の複数のデータを有する第2の表を受信して記憶する手順、
および前記クライアント端末から受信した範囲検索鍵を含む部分結合命令に応じて、前記範囲検索鍵を利用して前記暗号化された第1の表から前記a列目のデータの予め備える値が指定されたp以上q未満の範囲にある行を抽出し、この抽出された行に対して前記暗号化された第1および第2の表の前記b列目およびc列目のデータの予め備える値が一致する行を結合して前記クライアント端末に返送する手順
を実行させることを特徴とする暗号化データ結合プログラム。
(付記16) 暗号化された前記第1の表で前記範囲検索鍵と前記被範囲検索鍵とが一致する行を抽出する手順、
前記抽出された行について前記範囲検索鍵と前記範囲検索暗号文とから対象検索鍵を生成する手順、
前記対象検索鍵および前記被検索鍵を用いて暗号化された前記第1の表の前記抽出された行に対応する暗号化された前記第2の表の行を発見してこれらの行について前記結合を行う手順
を実行させることを特徴とする、付記15に記載の暗号化データ結合プログラム。
この出願は2012年4月24日に出願された日本出願特願2012−098404を基礎とする優先権を主張し、その開示の全てをここに取り込む。
本発明は、暗号化データベースシステムにおいて利用可能である。特に、大量の機密データを収容する暗号化データベースシステムにおいて、顕著な効果を発揮する。
1 暗号化データベースシステム
10 クライアント端末
11、51 プロセッサ
12、52 記憶手段
13、53 入力手段
14 出力手段
15 通信手段
20 初期設定部
21 検索鍵生成部
22 範囲検索鍵生成部
23 被検索鍵生成部
24 被範囲検索鍵生成部
25 検索暗号文生成部
26 暗号化/復号化部
31 表「X」
31a 列「A」
31b 列「B」
32 表「Y」
32c 列「C」
33 秘密鍵
34a 被範囲検索鍵
34b 検索鍵
34c 被検索鍵
34d 範囲検索暗号文
35a 範囲検索鍵
41 暗号化表「X」
42 暗号化表「Y」
43a 対象検索鍵
50 暗号化データベースサーバ
61 検索部
62 範囲内導出部
63 範囲検索部

Claims (9)

  1. 外部から入力されたa列目およびb列目の各複数のデータを有する第1の表およびc列目の複数のデータを有する第2の表に係るデータ全体を予め記憶された秘密鍵によってそれぞれ暗号化して外部に出力し、これらの表を前記a列目のデータの予め備える値が指定されたp以上q未満の範囲にある行について前記b列目およびc列目のデータの予め備える値が一致する行を結合させる部分結合命令を前記秘密鍵から生成された範囲検索鍵と共に外部に送信するクライアント端末と、
    前記暗号化された第1および第2の表を受信して記憶し、前記部分結合命令に応じて前記暗号化された第1および第2の表を前記a列目のデータの予め備える値が指定されたp以上q未満の範囲にある行について前記b列目およびc列目のデータの予め備える値が一致する行を結合してこれを前記クライアント端末に返送する部分結合機能を有する暗号化データベースサーバとが相互に接続されて成り、
    前記暗号化データベースサーバの部分結合機能が、
    前記範囲検索鍵を利用して前記暗号化された第1の表から前記a列目のデータの予め備える値が指定されたp以上q未満の範囲にある行を抽出し、この抽出された行に対して前記暗号化された第1および第2の表の前記b列目およびc列目のデータの予め備える値が一致する行を結合するものであることを特徴とする暗号化データベースシステム。
  2. 前記クライアント端末が、
    前記秘密鍵を利用して、前記第1の表の前記b列目の要素を検索するための鍵である検索鍵を生成する検索鍵生成部と、
    前記秘密鍵を利用して、前記第2の表の前記c列目の要素が特定の値で検索されるための鍵である被検索鍵を生成する被検索鍵生成部と、
    前記秘密鍵を利用して、前記第1の表の前記a列目の要素が前記p以上q未満である特定の値で検索されるための鍵である被範囲検索鍵を生成する被範囲検索鍵生成部と、
    前記秘密鍵を利用して、前記第1および第2の表の各要素を暗号化する暗号化部と、
    前記秘密鍵および前記検索鍵を利用して、前記第1の表の前記a列目の要素を前記検索鍵に対応させるための情報である範囲検索暗号文を生成する範囲検索暗号文生成部と
    を有し、これらによって前記第1および第2の表を暗号化することを特徴とする、請求項1に記載の暗号化データベースシステム。
  3. 前記クライアント端末の前記暗号化部が、前記第1の表の前記a列目の要素を前記被範囲検索鍵と暗号化された前記a列目の要素、前記b列目の要素を前記範囲検索暗号文と暗号化された前記b列目の要素とでそれぞれ置換し、前記第2の表の前記c列目の要素を前記被検索鍵と暗号化された前記c列目の要素で置換して、これを暗号化された前記第1および第2の表として前記暗号化データベースサーバに送信する機能を有し、
    かつ、前記クライアント端末が、前記秘密鍵を利用して前記第1の表の前記a列目の要素が前記p以上q未満の特定の値であるものを検索するための鍵である範囲検索鍵を生成してこれを前記部分結合命令と共に前記暗号化データベースサーバに送信する範囲検索鍵生成部を備えることを特徴とする、請求項2に記載の暗号化データベースシステム。
  4. 前記暗号化データベースサーバが、
    暗号化された前記第1の表で前記範囲検索鍵と前記被範囲検索鍵とが一致する行を抽出する範囲検索部と、
    前記抽出された行について前記範囲検索鍵と前記範囲検索暗号文とから対象検索鍵を生成する範囲内導出部と、
    前記対象検索鍵および前記被検索鍵を用いて暗号化された前記第1の表の前記抽出された行に対応する暗号化された前記第2の表の行を発見し、これらの行について前記結合を行う検索部と
    を有し、これらによって前記部分結合機能を実行することを特徴とする、請求項3に記載の暗号化データベースシステム。
  5. 外部から入力されたa列目およびb列目の各複数のデータを有する第1の表およびc列目の複数のデータを有する第2の表に係るデータ全体を予め記憶された秘密鍵によって暗号化して外部に出力する暗号化部と、
    前記秘密鍵を利用して範囲検索鍵を生成する範囲検索鍵生成部とを有すると共に、
    この範囲検索鍵生成部が、前記秘密鍵を利用して前記第1および第2の表を前記a列目のデータの予め備える値が指定されたp以上q未満の範囲にある行について前記b列目およびc列目のデータの予め備える値が一致する行を結合させる部分結合命令を前記範囲検索鍵と共に外部に送信する機能を有することを特徴とするクライアント端末。
  6. 全体が暗号化されたa列目およびb列目の各複数のデータを有する第1の表およびc列目の複数のデータを有する第2の表をクライアント端末から受信して記憶し、前記クライアント端末から受信した範囲検索鍵を含む部分結合命令に応じて前記暗号化された第1および第2の表を前記a列目のデータの予め備える値が指定されたp以上q未満の範囲にある行について前記b列目およびc列目のデータの予め備える値が一致する行を結合してこれを前記クライアント端末に返送する部分結合機能を有する暗号化データベースサーバ暗号化データベースサーバであって、
    前記範囲検索鍵を利用して前記暗号化された第1の表から前記a列目のデータの予め備える値が指定されたp以上q未満の範囲にある行を抽出し、この抽出された行に対して前記暗号化された第1および第2の表の前記b列目およびc列目のデータの予め備える値が一致する行を結合する検索部によって前記部分結合機能を実行する
    ことを特徴とする暗号化データベースサーバ。
  7. クライアント端末と、暗号化データベースサーバとが相互に接続されて構成される暗号化データベースシステムにあって、
    前記クライアント端末が、外部から入力されたa列目およびb列目の各複数のデータを有する第1の表およびc列目の複数のデータを有する第2の表に係るデータ全体を予め記憶された秘密鍵によってそれぞれ暗号化して前記暗号化データベースサーバに出力し、
    前記暗号化データベースサーバが、前記暗号化された第1および第2の表を受信して記憶し、
    前記クライアント端末が、前記暗号化された第1の表の前記a列目のデータの予め備える値が指定されたp以上q未満の範囲にある行について前記暗号化された第1および第2の表を前記b列目およびc列目のデータの予め備える値が一致する行を結合させる部分結合命令を前記秘密鍵から生成された範囲検索鍵と共に前記暗号化データベースサーバに送信し、
    前記暗号化データベースサーバが、前記範囲検索鍵を利用して前記暗号化された第1の表から前記a列目のデータの予め備える値が指定されたp以上q未満の範囲にある行を抽出し、この抽出された行に対して前記暗号化された第1および第2の表の前記b列目およびc列目のデータの予め備える値が一致する行を結合して前記クライアント端末に返送する
    ことを特徴とする暗号化データ結合方法。
  8. クライアント端末と、暗号化データベースサーバとが相互に接続されて構成される暗号化データベースシステムにあって、
    前記クライアント端末が備えるコンピュータに、
    外部から入力されたa列目およびb列目の各複数のデータを有する第1の表およびc列目の複数のデータを有する第2の表に係るデータ全体を予め記憶された秘密鍵によってそれぞれ暗号化して前記暗号化データベースサーバに出力する手順、
    および前記暗号化された第1の表の前記a列目のデータの予め備える値が指定されたp以上q未満の範囲にある行について前記暗号化された第1および第2の表を前記b列目およびc列目のデータの予め備える値が一致する行を結合させる部分結合命令を前記秘密鍵から生成された範囲検索鍵と共に前記暗号化データベースサーバに送信する手順
    を実行させることを特徴とする暗号化データ結合プログラム。
  9. クライアント端末と、暗号化データベースサーバとが相互に接続されて構成される暗号化データベースシステムにあって、
    前記暗号化データベースサーバが備えるコンピュータに、
    前記クライアント端末から全体が暗号化されたa列目およびb列目の各複数のデータを有する第1の表およびc列目の複数のデータを有する第2の表を受信して記憶する手順、
    および前記クライアント端末から受信した範囲検索鍵を含む部分結合命令に応じて、前記範囲検索鍵を利用して前記暗号化された第1の表から前記a列目のデータの予め備える値が指定されたp以上q未満の範囲にある行を抽出し、この抽出された行に対して前記暗号化された第1および第2の表の前記b列目およびc列目のデータの予め備える値が一致する行を結合して前記クライアント端末に返送する手順
    を実行させることを特徴とする暗号化データ結合プログラム。
JP2014512466A 2012-04-24 2013-04-12 暗号化データベースシステム、クライアント端末およびデータベースサーバ、結合方法およびプログラム Active JP6137173B2 (ja)

Priority Applications (1)

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

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP2012098404 2012-04-24
JP2012098404 2012-04-24
PCT/JP2013/061050 WO2013161586A1 (ja) 2012-04-24 2013-04-12 暗号化データベースシステム、クライアント端末およびデータベースサーバ、結合方法およびプログラム
JP2014512466A JP6137173B2 (ja) 2012-04-24 2013-04-12 暗号化データベースシステム、クライアント端末およびデータベースサーバ、結合方法およびプログラム

Publications (2)

Publication Number Publication Date
JPWO2013161586A1 JPWO2013161586A1 (ja) 2015-12-24
JP6137173B2 true JP6137173B2 (ja) 2017-05-31

Family

ID=49482913

Family Applications (1)

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

Country Status (3)

Country Link
US (1) US9189647B2 (ja)
JP (1) JP6137173B2 (ja)
WO (1) WO2013161586A1 (ja)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9654472B2 (en) * 2013-06-18 2017-05-16 Hitachi, Ltd. Storage count verification system
US9576116B2 (en) * 2013-12-26 2017-02-21 Nxp B.V. Secure software components anti-reverse-engineering by table interleaving
KR20150108516A (ko) * 2014-03-18 2015-09-30 한국전자통신연구원 범위 검색을 위한 복호화가능 인덱스 생성 방법, 검색 방법, 및 복호화 방법
EP3032453B1 (en) * 2014-12-08 2019-11-13 eperi GmbH Storing data in a server computer with deployable encryption/decryption infrastructure
US10075301B2 (en) * 2015-07-13 2018-09-11 Fujitsu Limited Relational encryption for password verification
US10129028B2 (en) * 2015-07-13 2018-11-13 Fujitsu Limited Relational encryption for password verification
JP2018010505A (ja) * 2016-07-14 2018-01-18 ルネサスエレクトロニクス株式会社 検索装置および半導体装置
US10546032B2 (en) 2017-11-21 2020-01-28 International Business Machines Corporation System and method for association rule mining from encrypted databases
US10528556B1 (en) 2017-12-31 2020-01-07 Allscripts Software, Llc Database methodology for searching encrypted data records
US10528557B1 (en) * 2017-12-31 2020-01-07 Allscripts Software, Llc Database methodology for searching encrypted data records
CN113704303B (zh) * 2021-08-03 2023-09-29 浙江大学 一种支持可组合sql查询的加密数据库方法

Family Cites Families (14)

* 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
US7093137B1 (en) * 1999-09-30 2006-08-15 Casio Computer Co., Ltd. Database management apparatus and encrypting/decrypting system
AU777912B2 (en) * 2000-02-29 2004-11-04 International Business Machines Corporation System and method of associating devices to secure commercial transactions performed over the internet
JP4050050B2 (ja) 2001-12-17 2008-02-20 株式会社アクアキャスト リレーショナルデータベース及びそのリレーショナルデータベースにおけるインデックステーブルの作成方法並びに該リレーショナルデータベースにおける範囲検索の方法およびその範囲検索のための順位検索方法
US7082455B2 (en) * 2002-04-23 2006-07-25 International Business Machines Corporation Method and apparatus of parameter passing of structured data for stored procedures in a content management system
JP4395611B2 (ja) 2003-10-28 2010-01-13 独立行政法人情報通信研究機構 暗号化データベース検索装置および方法ならびに暗号化データベース検索プログラム
JP5117748B2 (ja) * 2007-03-29 2013-01-16 株式会社日立製作所 暗号化機能を備えたストレージ仮想化装置
CN101593196B (zh) 2008-05-30 2013-09-25 日电(中国)有限公司 用于快速密文检索的方法、装置和系统
JP5199949B2 (ja) 2009-05-22 2013-05-15 日本電信電話株式会社 データベース管理方法、分散データベースシステム、およびプログラム
WO2011024298A1 (ja) * 2009-08-28 2011-03-03 リプレックス株式会社 サービスシステム
WO2012043012A1 (ja) 2010-09-28 2012-04-05 日本電気株式会社 暗号化データベースシステム、クライアント端末、暗号化データベースサーバ、自然結合方法およびプログラム
EP2624500A4 (en) 2010-09-28 2017-04-05 Nec Corporation Encrypted database system, client terminal, encrypted database server, natural joining method, and program
JP5816299B2 (ja) * 2011-12-01 2015-11-18 株式会社日立製作所 秘匿検索方法および秘匿検索装置
US9087212B2 (en) * 2012-01-25 2015-07-21 Massachusetts Institute Of Technology Methods and apparatus for securing a database

Also Published As

Publication number Publication date
US20150095664A1 (en) 2015-04-02
US9189647B2 (en) 2015-11-17
WO2013161586A1 (ja) 2013-10-31
JPWO2013161586A1 (ja) 2015-12-24

Similar Documents

Publication Publication Date Title
JP6137173B2 (ja) 暗号化データベースシステム、クライアント端末およびデータベースサーバ、結合方法およびプログラム
JP6056850B2 (ja) 暗号化データベースシステム、クライアント端末、データベースサーバ、データ結合方法、および、プログラム
JP5742849B2 (ja) 暗号化データベースシステム、クライアント端末、暗号化データベースサーバ、自然結合方法およびプログラム
Cui et al. Efficient and expressive keyword search over encrypted data in cloud
JP6180177B2 (ja) プライバシーを保護することができる暗号化データの問い合わせ方法及びシステム
JP5776696B2 (ja) 暗号化データベースシステム、クライアント端末、暗号化データベースサーバ、自然結合方法およびプログラム
CN109784931B (zh) 一种基于区块链的数据查询平台的查询方法
Brakerski et al. Multi-input functional encryption in the private-key setting: Stronger security from weaker assumptions
CN105915520A (zh) 基于公钥可搜索加密的文件存储、搜索方法及存储系统
JP5348337B2 (ja) 暗号化データベース管理システム、クライアントおよびサーバ、自然結合方法およびプログラム
CN105933281B (zh) 一种量子同态对称可搜索加密的方法及系统
JP2014126865A (ja) 暗号処理装置および方法
US20090138698A1 (en) Method of searching encrypted data using inner product operation and terminal and server therefor
US9641328B1 (en) Generation of public-private key pairs
JPWO2013005505A1 (ja) 暗号化装置、暗号文比較システム、暗号文比較方法、および暗号文比較プログラム
CN110505054B (zh) 一种基于动态白盒的数据处理方法、装置及设备
Dayıoğlu Secure database in cloud computing-cryptdb revisited
CN108920968B (zh) 一种基于连接关键词的文件可搜索加密方法
CN109672525B (zh) 一种具有前向索引的可搜索公钥加密方法及系统
Kapse et al. Secure and Efficient Search Technique in Cloud Computing
CN114567436B (zh) 一种生物特征数据安全访问控制方法
JPWO2017170780A1 (ja) 暗号文照合システム、ノード装置、暗号文照合方法、およびプログラム
Yakoob et al. Multi User Authentication in Reliable Data Storage in Cloud
Xu et al. Attribute-based Searchable Proxy Re-encryption Blockchain Data Sharing Scheme
Malviya et al. A tool for protecting electronic data in centralized database using improved advance encryption standard (AES) and secure hash algorithm (SHA)

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20160316

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170417

R150 Certificate of patent or registration of utility model

Ref document number: 6137173

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150