JP5392439B2 - 暗号化検索データベース装置、暗号化検索用データの追加削除方法および追加削除プログラム - Google Patents

暗号化検索データベース装置、暗号化検索用データの追加削除方法および追加削除プログラム Download PDF

Info

Publication number
JP5392439B2
JP5392439B2 JP2013529458A JP2013529458A JP5392439B2 JP 5392439 B2 JP5392439 B2 JP 5392439B2 JP 2013529458 A JP2013529458 A JP 2013529458A JP 2013529458 A JP2013529458 A JP 2013529458A JP 5392439 B2 JP5392439 B2 JP 5392439B2
Authority
JP
Japan
Prior art keywords
encrypted
search result
keyword
unit
array
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
JP2013529458A
Other languages
English (en)
Other versions
JPWO2013084957A1 (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 JP2013529458A priority Critical patent/JP5392439B2/ja
Application granted granted Critical
Publication of JP5392439B2 publication Critical patent/JP5392439B2/ja
Publication of JPWO2013084957A1 publication Critical patent/JPWO2013084957A1/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/602Providing cryptographic facilities or services
    • 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/23Updating
    • G06F16/235Update request formulation
    • 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
    • G06F16/24553Query execution of query operations
    • 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/25Integrating or interfacing systems involving database management systems
    • 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
    • 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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/0822Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using key encryption key

Landscapes

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

Description

本発明は、暗号化検索データベース装置、暗号化検索用データの追加削除方法および追加削除プログラムに関し、特に文書の追加・削除・更新の際の情報漏洩のリスクを軽減しうる暗号化検索データベース装置等に関する。
コンピュータによるデータベースが企業や公的機関などのような組織の運営に深くかかわるようになって久しい。データベースの基本的な機能の一つに、キーワードによるデータ検索がある。この機能は、データベースに登録されている複数の文書から特定のキーワードを含む文書を抽出するというものである。データベースには膨大な数の文書が登録されているので、ユーザから検索の要求があるたびに、それらの文書内に含まれる全ての文章を解析して当該キーワードが含まれているか否かを判定することは非能率的である。
そのため、ほとんどのデータベースでは検索用のインデックスファイルを作成し、これを検索の際に利用することが可能である。インデックスファイルは、特定のキーワードに対して、検索結果として該当する文書の一覧を保存するものである。インデックスファイルは、文書データの追加・削除・更新に応じて、定期的に(例えば毎日所定の時刻に)更新される。このインデックスファイルを利用することによって、検索に係る処理を高速化することが可能である。
一方、企業などのような組織内部のデータベースには、該組織の外部に漏洩することの許されない企業秘密や個人秘密に係る情報も多数登録されている。これらのような情報に対しても、キーワードによる検索は当然必要である。しかしながら、文書ファイル本体が暗号化されていても、保存されているインデックスファイルから、どの文書がどのキーワードを含むのかといった情報が漏洩する危険性がある。単純にインデックスファイルを暗号化するだけでは、これを復号化しない限り検索処理に利用することはできない。
非特許文献1および2には、インデックスファイルからの情報の漏洩を防ぎつつキーワード検索を効率化するためのSearchable Symmetric Encryption(以後SSEという)と呼ばれる技術について、具体的な方法が記載されている。非特許文献1には、2つのSSEの方式が記載されているが、ここではこの文献の15〜20ページにかけて記載されている方式(以後、SSE1という)について説明する。
(SSE1の構成)
非特許文献1に記載のSSE方式(SSE1)の構成について説明する。この方式では、文書をキーワード検索するために線形リストを暗号化した構造のデータを用いている。説明のため、文書とキーワードに関する前提を説明する。文書群はD={D_1,…,D_n}と表現し、各文書D_j(j=1,…,n)は、区別に利用できる識別子を有するものとする。識別子としてはファイル名や通し番号などを用いることができる。
図10は、非特許文献1に記載のSSE方式でいうキーワード辞書810(インデックスファイル)Δの構成について示す説明図である。キーワード辞書810Δは、検索可能なキーワードの集合をΔ={w_1,…,w_d}とし、キーワード810a(w_i)に対する検索結果D(w_i)として、D中のw_iを含む文書の識別情報810bの集合である。id(D,w_i,j)は、D(w_i)に含まれるj番目の該当文書の識別子を表す。
図10は、文書群Dに対して辞書Δに含まれているキーワード810a(w_i)に基づく検索結果である文書の識別情報810b(id(D(w_i)))の表を示している。このような表をデータとして保管する具体的な方法の1つに、線形リストと呼ばれるデータ構造を用いるものがある。線形リストには、片方向リストと双方向リストがある。ここで、片方向リストを用いた線形リストに関して説明を行う。
図11は、図10に示した非特許文献1に記載のSSE方式の例に用いられる、3つの整数値を格納した片方向リスト820a〜bの例について示す説明図である。2つの並んだ四角形はリストを構成する1要素を表している。この1要素が、ここでいうノードである。左側の四角形には整数値が記載されている。これはノードが持つデータである。右側の四角形には矢印が記載されており、矢印はリスト上の次のノードを指している。これは、各ノードが記憶されているメモリ上のアドレスや記憶装置上の位置(以後、これを単にアドレスという)を表す。
i番目のノードのアドレスおよび値をそれぞれad_i,val_iとすれば、i番目のノードは、ノードが記憶されているアドレスと、記憶している値と、次のノードの記憶されているアドレスとを一組のデータとして(ad_i,val_i,ad_{i+1})と表すことができる。以降、この表記を用いる。リストの終端は次アドレスを特別な記号であるNullとするか、値をNullとすることで表すことができる。図11で示す片方向リスト820aでは前者(空ノードでリスト終端を示す)、820bでは後者(Null値でリスト終端を示す)の例を示している。説明のため、線形リストの先頭のノードを始点と呼び、終端のノードを終点と呼ぶ。
線形リストを用いて検索結果を記録するため、検索結果配列と始点配列を用いて検索結果を記録するという方法をここでは用いる。検索結果配列には、各キーワードについての検索結果の線形リストをノード毎に記録する。この配列はすべてのキーワードに対する線形リストを記憶するが、各キーワードに関する線形リストの始点がどのアドレスであるかについての情報は配列内には記憶されない。始点に関する情報は、もう一つの配列である始点配列に記憶される。
図12は、図10に示した非特許文献1に記載のSSE方式の例で、キーワードw_iに関する検索結果であるid_{i,1},id_{i,2},id_{i,3}を線形リスト化して記憶した検索結果配列830および始点配列840について示す説明図である。キーワードw_iに関する検索結果の始点として、始点配列840のi番目の要素にad_{i,1}が記録されている。
i番目がw_iに関する始点を記録しているといった対応関係は、キーワードがアルファベット順で辞書内の何番目にあるかといった情報を用いて定めればよく、一意に対応がとれさえすればどのような方法でもよい。ここでは、説明を簡潔なものとするために、i番目にw_iに対する始点情報が記録されている場合を例として用いたものである。
この図12に示した線形リストを用いて、検索結果を得る方法について説明する。図12では、キーワードw_iに関する検索結果がid_{i,1},id_{i,2},id_{i,3}である場合の例を表している。以下に、これらの配列からw_iに関する検索結果を読み出す処理を記載する。
1.まず、始点配列840のi番目のアドレス840b=ad_{i,1}を読み出す。
2.次に、検索結果配列830のアドレス830a=ad_{i,1}番目の要素を参照し、1つ目の検索結果830b=id_{i,1}と次の検索結果が記憶されている配列である次アドレス830c=ad_{i,2}を得る。
3.次に、検索結果配列830のアドレス830a=ad_{i,2}番目の要素を参照し、2つ目の検索結果830b=id_{i,2}と次の検索結果が記憶されている配列である次アドレス830c=ad_{i,3}を得る。
4.次に、検索結果配列830のアドレス830aのad_{i,3}番目の要素を参照し、3つ目の検索結果830b=id_{i,3}と次の検索結果が記録されている配列である次アドレス830c=「Null値」を得る。従って、id_{i,1},id_{i,2},id_{i,3}を、キーワードw_iに関する検索結果として出力する。
以上のような方法は、文書が新しく追加された場合であっても、配列に空きアドレスがある限りはいくらでも情報を追加することができ、データベースのような次々に文書が追加されるような用途では有用である。一方で、これらの配列が登録文書に関する情報を含んでいることも明白である。
得られる情報には、ある文書がどのようなキーワードを含んでいるかという情報や異なる2つの文書の類似性がある。従って、暗号化されたデータベースにおいて始点配列と検索結果配列からなる補助データを用いることは、登録された文書に関する情報漏洩を引き起こしうる。
このような情報漏洩を防ぎながら、暗号化されたデータベースにおいてキーワード検索を効率化するために、線形リストを暗号化したデータを検索の補助のために用いるというSSE方式が、非特許文献1(SSE1)で提案された。
本明細書での説明において、出力が入力と鍵情報によって定まる関数(以後、鍵付という)と、出力が入力と鍵情報によって定まる置換(以後、鍵付き置換という)を用いる。鍵付き関数Fにおいて、鍵がk、入力がxであるときの出力をF(k;x)と表記する。入力がx_1,…,x_nというn個の数値である場合の出力は、F(k;x_1,…,x_n)と書く。鍵付き置換についても同じように表記する。即ち、括弧内の第1要素が鍵であり、セミコロンで区切った右側の第2要素が入力である。
値の暗号化には、暗号化処理と復号処理が共通の秘密鍵で行われる共通鍵暗号方式を用い、共通鍵暗号の暗号化関数をEnc(),復号関数をDec()という。鍵kでデータdを暗号化した結果はEnc(k;d)と書き、鍵kで暗号文cを復号した結果はDec(k;c)という。
SSE1は、前述した始点配列および検索結果配列を暗号化処理と組み合わせて、検索用の補助データとして用いる方式である。以降、始点配列840および検索結果配列830を暗号化したものを、それぞれ暗号化始点配列860と暗号化検索結果配列850という。暗号化検索結果配列では、線形リストを変更したリスト状のデータ構造(以後、暗号化線形リストという)が用いられている。この暗号化線形リストについて説明する。
(暗号化線形リストの説明)
線形リストのi番目のノードは、(ad_i,val_i,ad_{i+1})の3つ組みによって構成されていた。暗号化線形リストでは、線形リストの各ノードについて共通鍵暗号の鍵k_iを用意し、(ad_i,Enc(k_i;val_i),Enc(k_i;k_{i+1}),Enc(k_i;ad_{i+1}))という4つ組みデータを一組とする。
これを、ad_iアドレスに残りの3データを記憶する。記憶されている3つ組みの値とk_iを組み合わせれば、復号処理によってval_i,k_{i+1},ad_{i+1}が得られるので、線形リストのi番目以降を得ることができる。したがってad_1とk_1を用いれば、暗号化線形リストに記憶されているすべての値を得ることができる。以降、これらの値を暗号化線形リストにおける始点情報とする。
リストの終端は、線形リストと同様に次アドレスを特別な記号であるNullとするか、何も記憶されていないノード(以降、空ノードという)のアドレスを次アドレスとすることで表すことができる。本明細書では、以降、リストの終端に記憶される次アドレスを空ノードとする型の暗号化線形リストを用いる。以降、終端のノードに記憶されている次アドレスと、次アドレスを暗号化している鍵の組を終点情報とする。
なお、値、次アドレスの暗号化鍵、次アドレスはいずれも同一の鍵で暗号化されているが、k_iを鍵とした鍵付き関数を用いて異なる鍵を計算して、それぞれ異なる鍵で暗号化してもよい。その場合には、鍵付き関数Kを用い、K(k_i;1),K(k_i;2),K(k_i;3)を計算して、それぞれを暗号化鍵とする。1と2と3は例であり、他の予め定められた値でもよい。以後ここでは、概念を平易に説明するため、単一の鍵を用いた例について説明する。
(暗号化検索結果配列の説明)
続いて、暗号化線形リストを用いた暗号化検索結果配列について説明する。図13は、図10に示した非特許文献1に記載のSSE方式(SSE1)の例で、暗号化線形リストを用いた暗号化始点配列860および暗号化検索結果配列850について示す説明図である。暗号化検索結果配列850は、暗号化線形リストによって複数のキーワードについての検索結果を記憶した配列である。ここで、各キーワードw_iに対する暗号化線形リストの始点情報のアドレスをad_{w_i}、鍵をk_{w_i}と記載すると、暗号化検索結果配列850はアドレス850aに対応する暗号化された検索結果、暗号鍵および次アドレス850bを記憶した表となる。
暗号化始点配列は、各キーワードに対する始点情報を暗号化して記憶している配列である。これを用いれば、暗号化検索結果配列から対応するキーワード検索結果を抽出することができる。次に暗号化始点配列について説明する。
暗号化始点配列は、各キーワードw_iに関する暗号化線形リストの始点情報であるad_{w_i}とk_{w_i}の組を暗号を暗号化鍵k_eと置換鍵k_pを用いて加工してから記憶したものである。Pを鍵付き置換、Fを鍵付き関数とすると、暗号化始点配列はアドレス860a=P(k_p;w_i)に、暗号化されたアドレスと暗号鍵860b、即ちEnc(F(k_e;w_i);ad_{w_i})とEnc(F(k_e;w_i);k_{w_i})を記憶した表となる。この処理を暗号化鍵k_e、置換鍵k_pを用いた始点情報の暗号化処理という。
即ち、P(k_p;w_i)とF(k_e;w_i)を用いて、P(k_p;w_i)アドレスを参照し、F(k_e;w_i)を用いて暗号文を復号すれば、ad_{w_i}とk_{w_i}とを得ることができる。先に説明したように、ad_{w_i}とk_{w_i}を用いれば、暗号化検索結果配列よりw_iに関する検索結果を得ることができる。
始点配列と検索結果配列を用いていた場合、キーワード以外の特別な情報を用いることなく検索結果を得ることができた。これに対して、暗号化始点配列と暗号化検索結果配列を用いる場合、始点情報を得るためには暗号化鍵k_eと置換鍵k_pを要するため、暗号化始点配列と暗号化検索結果配列を記憶していても、これらの鍵がなければどのキーワードに関する検索結果も参照できない。あるキーワードw_iについてP(k_p;w_i)とF(k_e;w_i)が判明していれば、対応する検索結果を参照することができる。
なお、k_pとk_eは一つの鍵kと鍵付き関数Kを用いて、K(k;1)=k_p,K(k;2)=k_eとして、生成してもよい。各々のカッコ内の1と2の値は例であり、他の予め与えられた値でもよい。以降、k_pとk_eは一組で用いることを前提とする場合、鍵kのように一つの値だけを書く。このような方法によれば、記憶する鍵の数や記憶容量を削減することができる。
(暗号化始点配列および暗号化検索結果配列の生成)
暗号化始点配列と暗号化検索結果配列を生成する処理は、以下の4段階の処理に分けることができる。
1.検索結果を生成する処理
2.共通利用データを生成する処理
3.暗号化検索結果配列を生成する処理
4.暗号化始点配列を生成する処理
以下、上記の各段階について説明する。
「1.検索結果を生成する処理」とは、入力された文書と辞書に対するキーワード検索結果を生成する処理である。
「2.共通利用データを生成する処理」とは、各キーワード毎に生成された暗号化線形リストの始点情報を暗号化始点配列に記録し、各キーワード毎に生成された暗号化線形リストを暗号化検索結果配列に記憶する処理である。これらの処理では共通して暗号化線形リストの始点情報を用いる。
「3.暗号化検索結果配列を生成する処理」とは、各キーワード毎に始点情報を生成する処理である。この処理では、各キーワード毎に生成された検索結果と、始点情報を元に暗号化線形リストを生成し、暗号化検索結果配列に記憶させる。始点以降の鍵はランダムに生成し、アドレスについて重複が起きないように生成する。カウンタを用いる方法や空いているアドレスを記憶する方法を用いることができる。カウンタを用いる方法で、鍵付きの置換を用いれば、暗号化検索結果配列の中でどのアドレスとどのアドレスがリストとして繋がっているのかを判明しにくくすることができる。
「4.暗号化始点配列を生成する処理」とは、各キーワード毎に生成された始点情報を暗号化鍵を用いて暗号化し、置換鍵とキーワードによって定まる暗号化始点配列に記憶させる処理である。
(暗号化データベース装置の構成)
図14は、図10に示した非特許文献1に記載のSSE方式(SSE1)を実行する暗号化データベース装置900の構成について示す説明図である。暗号化データベース装置900は、コンピュータプログラムを実行する主体であるプロセッサ901と、データを記憶する記憶手段902と、外部からのデータ入出力を行う入出力手段903とで構成される。
プロセッサ901は、暗号化データベースプログラムが動作することにより、暗号化検索結果生成手段910と、後述のトラップドア生成手段930と、暗号化データベース検索手段940として動作する。また、記憶手段902は、暗号化データベースの検索に係るデータである暗号化始点配列および暗号化検索結果配列を記憶する暗号化検索結果記憶手段920として動作する。
図15は、図14に示した暗号化検索結果生成手段910の構成について示す説明図である。暗号化検索結果生成手段910は、生成処理制御部911と、検索結果生成部912と、始点情報生成部913と、暗号化線形リスト生成部914と、始点情報暗号化部915を備える。また、暗号化検索結果記憶手段920は、暗号化検索結果配列記憶部921と、暗号化始点配列記憶部922とを備える。
暗号化検索結果生成手段910は、鍵、登録する文書、および辞書の各々を入出力手段903を介しての外部からの入力情報とし、暗号化検索結果記憶手段920の備える暗号化検索結果配列記憶部921と暗号化始点配列記憶部922の各々に値を記憶する。
生成処理制御部911は、鍵、登録する文書、および辞書を入力情報として、暗号化検索結果生成手段910の備える各機能部を制御する。検索結果生成部912は、文書および辞書を入力情報として、キーワード毎の検索結果を出力する。始点情報生成部913は、暗号化線形リストの始点情報を入出力手段903を介して外部に出力する。
暗号化線形リスト生成部914は、キーワード毎の検索結果と始点情報を入力情報として、それらの暗号化線形リストを生成してこれを暗号化検索結果配列記憶部921に記憶する。始点情報暗号化部915は、入力された鍵を用いて暗号化線形リストの始点情報を暗号化し、またその鍵を入力情報として暗号化始点配列記憶部922の記憶する値を更新する。
暗号化検索結果配列記憶部921は暗号化検索結果を記憶する。暗号化始点配列記憶部922は暗号化始点配列を記憶する。
図16は、図15に示した暗号化検索結果生成手段910の動作を示すフローチャートである。まず、鍵、文書群D={D_1,…,D_n},辞書Δ={w_1,…,w_d}が入出力手段903を介して生成処理制御部911に入力される(ステップS951)。生成処理制御部911は、文書群Dと、辞書Δとを検索結果生成部912に入力し、その出力である文書群Dの辞書Δについての検索結果を得る(ステップS952)。
生成処理制御部911は、各キーワードw_iの検索結果D(w_i)について、以下の処理(ステップS953〜ステップS955)を実行する。まず、生成処理制御部911は始点情報生成部913を動作させ、その出力である始点情報Xを得る(ステップS953)。続いて、生成処理制御部911はその始点情報Xと鍵とw_iとを始点情報暗号化部915に入力し、始点情報暗号化部915は鍵を用いて始点情報Xを暗号化し、これを暗号化始点配列記憶部922の鍵とキーワードによって定まるアドレスに記憶させる(ステップS954)。
このステップS954と並行して、生成処理制御部911は始点情報XとD(w_i)とを暗号化線形リスト生成部914に入力する。暗号化線形リスト生成部914は、始点情報XとD(w_i)についての暗号化線形リストを生成し、これを暗号化検索結果配列記憶部921に記憶する(ステップS955)。
次に、この暗号化始点配列と暗号化検索結果配列によって行われるデータ検索の処理について説明する。前述した通り、暗号化検索結果配列はk_eおよびk_pを用いて生成される。
図13にあるように、暗号化始点配列より、キーワードw_iについての暗号化線形リストの始点情報を抽出するためには、P(k_p;w_i)とF(k_e;w_i)を用いることができる。このP(k_p;w_i)とF(k_e;w_i)の組を、キーワードw_iに対するトラップドアという。これを使えば、キーワードw_iについての暗号化検索結果配列より、検索結果を抽出することができる。
図17は、図14に示したトラップドア生成手段930および暗号化データベース検索手段940の構成について示す説明図である。暗号化データベース検索手段940は、始点情報抽出部941と、検索結果抽出部942とを備える。
トラップドア生成手段930は、入出力手段903を介して外部から入力された鍵k=(k_e,k_p)とキーワードw_iとを入力として、w_iに対するトラップドアを算出する。始点情報抽出部941は、このトラップドアを入力として、暗号化始点配列記憶部922のアドレスγに記憶されている値ηを復号化し、暗号化線形リストの始点情報を検索結果として出力する。
検索結果抽出部942は、この始点情報を入力として、暗号化検索結果配列記憶部921を、入力された始点情報を用いて検索結果を抽出して入出力手段903を介して外部に出力する。
図18は、図14および図17に示したトラップドア生成手段930の動作について示すフローチャートである。鍵k=(k_e,k_p)とキーワードw_iとが、入出力手段903を介して外部からトラップドア生成手段930に入力される(ステップS961)と、トラップドア生成手段930は、γ=P(k_p;w_i)とη=F(k_e;w_i)とを算出し、これらのγとηの値を暗号化データベース検索手段940に出力する(ステップS962)。
図19は、図14および図17に示した暗号化データベース検索手段940の動作について示すフローチャートである。図18のステップS962で出力されたトラップドアγとηとが暗号化データベース検索手段940に入力される(ステップS971)と、始点情報抽出部941がこれらγとηの入力を受けて、始点情報を検索結果抽出部942に出力する(ステップS972)。そして、この入力を受けた検索結果抽出部942は、検索結果を入出力手段903を介して外部に出力する(ステップS973)。
以上で説明したSSE1によって、ユーザの所有する文書群D={D_1,…,D_n}の辞書Δに対するインデックスをデータベースに登録する処理の例と、このインデックスによる検索処理の動作例は、以下のようになる。
(検索用データ登録の処理)
1.ユーザが鍵kを生成する。
2.次に、ユーザは、鍵kと、文書群Dと、辞書Δを入力として暗号化検索結果を生成する。
3.次に、ユーザは、暗号化用の鍵を生成し、生成した鍵を用いてDを暗号化する。
4.次に、暗号化検索結果と暗号文を暗号化データベース装置900に送付して記憶させる。
(検索の処理)
以下はキーワードw_iに関する検索の処理の動作例である。ここでいうユーザとは、暗号鍵kを正当に保有し、前述のデータ登録の処理を実行したユーザである。
1.ユーザはkとw_iを入力としてトラップドアを生成し、暗号化データベース装置900に送付する。
2.暗号化データベース装置900は、トラップドアと暗号化検索結果を入力として、検索処理を実行し、検索結果を得る。検索結果は文書識別子の集合である。
3.暗号化データベース装置900は、検索処理の結果である識別子の集合に対応する暗号化された文書をユーザに送付する。
4.ユーザは受け取った文書を復号し、検索結果を得る。
以上で説明したSSE1による検索方法には、以下の特徴がある。
・まず、検索の依頼にキーワード自体が用いられない。各トラップドアは、ユーザの持つ鍵によってキーワードから変換されている。鍵はランダムに選ばれており、トラップドアとキーワードの対応関係は暗号化データベース装置900の側では不明となる。
・さらに、各キーワードに対する検索結果が入れ替えられ、且つ暗号化されている。暗号化はトラップドアによって対応するキーワードに関する箇所のみ復号される。従って、正当な鍵を持たない者にとっては、検索結果の全てがキーワードw_iのうちのいずれかに対応することはわかるが、どのキーワードに対応するものであるかが不明である。
以上の情報は、図10のような表や線形リストを用いる場合にはデータベースが得ることができる情報である。即ち、SSE1を用いることによって、これらの情報の漏洩を防ぐことが可能である。
これに関連して、次の各々の特許文献がある。その中でも特許文献1には、ビデオ録画装置でユーザの嗜好を記録して的確に自動録画を行うための個人データベースの生成方法について記載されている。特許文献2には、端末ごと・ユーザごとのセキュリティポリシーを検索するためのデータベースについて記載されている。特許文献3には、暗号化されたデータを高速に検索できるデータベースについて記載されている。
特開2002−300614号公報 特開2008−053818号公報 特表2008−517354号公報
Reza Curtmola, Juan A. Garay, Seny Kamara, RafailOstrovsky: Searchable symmetric encryption: improved definitions and efficientconstructions. ACM Conference on Computer and Communications Security 2006:79-88 Wakaha Ogata, Akira Kanaoka, Shin'ichiro Matsuo:What should be hidden in searchable symmetric encryption? SCIS2011
しかしながら、SSE1は、文書の追加・削除・更新を行う際に登録された文書に関する情報が漏洩する危険性がある。以下、その点について説明する。
SSE1には、文書の追加・削除・更新を実行するための機能がない。より具体的には、特定の文書を追加する機能、特定の文書を削除する機能、および特定の文書を更新する機能がない。文書の登録に関する処理は、複数の文書に対する暗号化検索結果を新規に生成するための処理があるのみである。膨大な数および分量の文書に対して、暗号化検索結果を全部削除して新規に生成する処理を頻繁に繰り返すことは、現実的に可能な処理ではない。
データベースは、次々と新しい文書が追加されていくものである。さらに登録された各々の文書も、次々と更新や削除を繰り返されるものである。従って、文書の追加・削除・更新のための機能は必要不可欠である。SSE1を構成するアルゴリズムを利用してこれらの機能を実現することは、可能ではあるが、情報漏洩のリスクが生じる。以下、それぞれの処理で生じるリスクついて説明する。
(文書追加時のリスク)
文書識別子がid_aであり、キーワードw_iを含む文書を追加する場合を考える。暗号化検索結果配列に記憶されているキーワードw_iに関する暗号化線形リストの終端のノードには、検索結果の最後の識別子idと次アドレスを暗号化する鍵k_nextとad_nextを暗号化した値が記憶されている。
このアドレスを暗号化している鍵をk_endとすると、このノードには、Enc(k_end;id)、Enc(k_end;k_next)、Enc(k_end;ad_next)といった各々の値が記憶されている。従って、ad_next、k_nextを始点情報とした暗号化線形リストを暗号化検索結果に追記すれば、従来の検索結果の後に追加の検索結果が記憶された暗号化線形リストが暗号化検索結果配列に記憶される。
即ち、既に登録されている暗号化線形リストの終端情報を始点情報として、追加検索結果の暗号化線形リストを生成し、生成した暗号化線形リストを暗号化検索結果配列に追記することによって、文書の追加処理を実行することができる。この追加処理を実行するためには、追加される文書群が含むすべてのキーワード集合Wについての終端情報があればよい。
しかしながら、このデータは、それぞれのWに対するトラップドアと暗号化検索結果配列を用いて検索処理を実行すれば得ることができる。先に挙げた登録処理を行った後のユーザとデータベースにトラップドアを送付するならば、データベース装置はWに含まれるキーワードに関して、暗号化されていないすべての検索結果を得てしまう。即ち、一度の検索処理をデータベース装置に依頼する場合に比べても非常に多くの情報がデータベースに対して漏洩することになる。
(文書削除時のリスク)
文書識別子がid_dである文書D_dを削除する場合を考える。その文書が含んでいたキーワードそれぞれの暗号化線形リスト上のどこかに、id_dは記載されている。これらを消去することでインデックスから対象の文書に関する情報を除去することができる。従って、id_dがそれぞれのキーワードに関する暗号化線形リストのどこに記載されているかがわかればよい。
これらの情報は、文書D_dが含むすべてのキーワードに対するトラップドアを用いた検索処理を実行すれば得ることができる。追加処理の場合と同様に、先に挙げた登録処理を行った後のユーザとデータベースにおいて同様の手順を実行した場合、データベース装置はD_dが含んでいたすべてのキーワードに対する暗号化されていない検索結果を得ることになる。このような方法で文書を削除する場合も、一度の検索処理をデータベースに依頼する場合に比べても非常に多くの情報がデータベース装置に対して漏洩することになる。
(文書更新時のリスク)
文書の更新は、更新前の文書を削除し、更新後の文書を追加することで実行できる。従って、文書追加時および削除時のリスクとして説明した各々のリスクが、両方とも発生することになる。
以上で説明したSSE1、即ち非特許文献1に記載の技術で文書の追加・削除・更新を行う際に発生する情報漏洩のリスクは、非特許文献1に記載のもう1つの技術や非特許文献2に記載の技術にも同様に発生する。さらに、特許文献1〜3にも、このリスクについての言及はない。即ち、このリスクを軽減もしくは解消しうる公知技術は、現状存在しない。
本発明の目的は、文書の追加・削除・更新を行う際にも情報漏洩のリスクが生じえない暗号化検索データベース装置、暗号化検索用データの追加削除方法および追加削除プログラムを提供することにある。
上記目的を達成するため、本発明に係る暗号化検索データベース装置は、暗号化されて登録された複数の文書データの中からキーワードによる検索を行う暗号化検索データベース装置であって、各キーワードごとに当該キーワードに対応する文書データの一覧である検索結果配列およびこの検索結果配列で当該キーワードに対応する最初のデータのアドレスの一覧である始点配列を作成すると共にこれらを与えられた暗号鍵によって各々暗号化した暗号化検索結果配列および暗号化始点配列を作成する暗号化検索結果生成手段と、作成された暗号化検索結果配列および暗号化始点配列を記憶する暗号化検索結果記憶手段と、キーワードと暗号鍵を利用して暗号化検索結果配列および暗号化始点配列からキーワードによる検索を行う暗号化データベース検索手段と、新規登録された文書データに係る内容を暗号化検索結果配列および暗号化始点配列に追加する暗号化検索結果追加手段とを有し、暗号化検索結果追加手段が、新規登録された文書データに対して特定のキーワードを含む検索結果の一覧である線形リストを作成する検索結果生成部と、線形リストで当該キーワードに対応する最初のデータのアドレスである始点情報を作成する始点情報生成部と、作成された始点情報を暗号鍵で暗号化して暗号化始点配列に追加記憶させる始点情報暗号化部と、線形リストを暗号鍵で暗号化した暗号化線形リストを作成して暗号化検索結果配列に追加記憶させる暗号化線形リスト追加部とを有すると共に、この暗号化線形リスト追加部が、各キーワードと当該キーワードについての暗号化線形リストの最後のデータのアドレスである終点情報を追加用情報として予め備えられた追加用情報記憶手段に記憶させる機能を有することを特徴とする。
上記目的を達成するため、本発明に係る暗号化検索用データの追加削除方法は、暗号化されて登録された複数の文書データの中からキーワードによる検索を行う暗号化検索データベース装置にあって、各キーワードごとに当該キーワードに対応する文書データの一覧である検索結果配列およびこの検索結果配列で当該キーワードに対応する最初のデータのアドレスの一覧である始点配列を暗号化検索結果生成手段が作成し、検索結果配列および始点配列を暗号化検索結果生成手段が与えられた暗号鍵によって各々暗号化して暗号化検索結果記憶手段に記憶させ、新規登録された文書データに対して特定のキーワードを含む検索結果の一覧である線形リストを暗号化検索結果追加手段の検索結果生成部が作成し、線形リストで当該キーワードに対応する最初のデータのアドレスである始点情報を暗号化検索結果追加手段の始点情報生成部が作成し、始点情報を暗号化検索結果追加手段の始点情報暗号化部が暗号鍵で暗号化して暗号化始点配列に追加記憶させ、線形リストを暗号鍵で暗号化した暗号化線形リストを暗号化検索結果追加手段の暗号化線形リスト追加部が作成して暗号化検索結果配列に追加記憶させ、各キーワードと当該キーワードについての暗号化線形リストの最後のデータのアドレスである終点情報を追加用情報として暗号化検索結果追加手段の暗号化線形リスト追加部が予め備えられた追加用情報記憶手段に記憶させることを特徴とする。
上記目的を達成するため、本発明に係る暗号化検索用データの追加削除プログラムは、暗号化されて登録された複数の文書データの中からキーワードによる検索を行う暗号化検索データベース装置にあって、この暗号化検索データベース装置が備えるコンピュータに、各キーワードごとに当該キーワードに対応する文書データの一覧である検索結果配列およびこの検索結果配列で当該キーワードに対応する最初のデータのアドレスの一覧である始点配列を作成する手順、検索結果配列および始点配列を与えられた暗号鍵によって各々暗号化して暗号化検索結果記憶手段に記憶させる手順、新規登録された文書データに対して特定のキーワードを含む検索結果の一覧である線形リストを作成する手順、線形リストで当該キーワードに対応する最初のデータのアドレスである始点情報を作成する手順、始点情報を暗号鍵で暗号化して暗号化始点配列に追加記憶させる手順、線形リストを暗号鍵で暗号化した暗号化線形リストを作成して暗号化検索結果配列に追加記憶させる手順、および各キーワードと当該キーワードについての暗号化線形リストの最後のデータのアドレスである終点情報を追加用情報として予め備えられた追加用情報記憶手段に記憶させる手順を実行させることを特徴とする。
本発明は、上記したように、新規登録された文書データに対して線形リストと始点情報とを作成してそれら各々を暗号化して暗号化検索結果記憶手段に追加記憶させると同時に、その最後のデータのアドレスを終点情報として追加用情報記憶手段に記憶させるように構成したので、全てのキーワードを含むトラップドアを用いなくてもデータを追加することができる。
これによって、文書の追加・削除・更新を行う際にも情報漏洩のリスクが生じえないという優れた特徴を持つ暗号化検索データベース装置、暗号化検索用データの追加削除方法および追加削除プログラムを提供することができる。
図2に示したプロセッサおよびデータ蓄積装置によって実現される各機能についてより詳しく説明する説明図である。 本発明の第1の実施形態に係る暗号化検索データベース装置のハードウェアとしての構成について示す説明図である。 図1に示した暗号化検索結果追加手段の、より詳細な構成について示す説明図である。 図3に示した暗号化検索結果追加手段の動作について示すフローチャートである。 図1に示した暗号化検索結果削除手段の、より詳細な構成について示す説明図である。 図5に示した暗号化検索結果削除手段の動作について示すフローチャートである。 本発明の第2の実施形態に係る暗号化検索データベース装置の構成について示す説明図である。 図7に示した暗号化検索結果追加手段の、より詳細な構成について示す説明図である。 図7に示した暗号化検索結果追加手段の動作について示すフローチャートである。 非特許文献1に記載のSSE方式でいうキーワード辞書(インデックスファイル)Δの構成について示す説明図である。 図10に示した非特許文献1に記載のSSE方式の例に用いられる、3つの整数値を格納した片方向リストの例について示す説明図である。 図10に示した非特許文献1に記載のSSE方式の例で、キーワードに関する検索結果を線形リスト化して記憶した検索結果配列および始点配列について示す説明図である。 図13は、図10に示した非特許文献1に記載のSSE方式(SSE1)の例で、暗号化線形リストを用いた暗号化始点配列および暗号化検索結果配列について示す説明図である。 図10に示した非特許文献1に記載のSSE方式(SSE1)を実行する暗号化データベース装置の構成について示す説明図である。 図14に示した暗号化検索結果生成手段の構成について示す説明図である。 図15に示した暗号化検索結果生成手段の動作を示すフローチャートである。 図14に示したトラップドア生成手段および暗号化データベース検索手段の構成について示す説明図である。 図14および図17に示したトラップドア生成手段の動作について示すフローチャートである。 図14および図17に示した暗号化データベース検索手段の動作について示すフローチャートである。
(第1の実施形態)
以下、本発明の実施形態の構成について添付図1〜3に基づいて説明する。
最初に、本実施形態の基本的な内容について説明し、その後でより具体的な内容について説明する。
本実施形態に係る暗号化検索データベース装置10は、暗号化されて登録された複数の文書データの中からキーワードによる検索を行う暗号化検索データベース装置であり、各キーワードごとに当該キーワードに対応する文書データの一覧である検索結果配列およびこの検索結果配列で当該キーワードに対応する最初のデータのアドレスの一覧である始点配列を作成すると共にこれらを与えられた暗号鍵によって各々暗号化した暗号化検索結果配列および暗号化始点配列を作成する暗号化検索結果生成手段110と、作成された暗号化検索結果配列および暗号化始点配列を記憶する暗号化検索結果記憶手段200と、キーワードと暗号鍵を利用して暗号化検索結果配列および暗号化始点配列からキーワードによる検索を行う暗号化データベース検索手段130と、新規登録された文書データに係る内容を暗号化検索結果配列および暗号化始点配列に追加する暗号化検索結果追加手段140とを有する。そして、暗号化検索結果追加手段140が、新規登録された文書データに対して特定のキーワードを含む検索結果の一覧である線形リストを作成する検索結果生成部142と、線形リストで当該キーワードに対応する最初のデータのアドレスである始点情報を作成する始点情報生成部144と、作成された始点情報を暗号鍵で暗号化して暗号化始点配列に追加記憶させる始点情報暗号化部146と、線形リストを暗号鍵で暗号化した暗号化線形リストを作成して暗号化検索結果配列に追加記憶させる暗号化線形リスト追加部145とを有すると共に、この暗号化線形リスト追加部145が、各キーワードと当該キーワードについての暗号化線形リストの最後のデータのアドレスである終点情報を追加用情報として予め備えられた追加用情報記憶手段210に記憶させる機能を有する。
ここで、暗号化検索結果追加手段140は、追加用情報が追加用情報記憶手段に記憶されている場合に当該追加用情報を読み出す追加用情報参照部143を備え、暗号化線形リスト追加部145が、追加用情報参照部によって読み出された追加用情報を始点情報として暗号化線形リストを作成する機能を有する。また、暗号化線形リスト追加部145は、始点情報と特定のキーワードを含む検索結果とを対応させたデータを暗号化線形リストに記憶させる機能を有する。
さらに、暗号化検索結果追加手段140の暗号化線形リスト追加部145が、各検索結果の文書識別子が記憶されている暗号化検索結果記憶手段200上のアドレスを予め備えられた削除用情報記憶手段220に記憶する機能を有し、それと共に、ユーザから特定の文書識別子に係る文書の削除司令があった時に、この削除用情報記憶手段に記憶された当該文書識別子に対応する暗号化検索結果記憶手段上のアドレスを初期化する暗号化検索結果削除手段150を有する。
以上の構成を備えることによって、本実施形態に係る暗号化検索データベース装置10は、文書の追加、削除、更新を行う際にも情報漏洩のリスクが生じえないものとなる。
以下、これをより詳細に説明する。
図2は、本発明の第1の実施形態に係る暗号化検索データベース装置10のハードウェアとしての構成について示す説明図である。暗号化検索データベース装置10は、コンピュータとしての基本的な構成を備えたものであって、コンピュータプログラムを実行する主体であるプロセッサ11と、作業中のデータおよびプログラムを記憶する揮発性メモリである主記憶装置12と、光学ディスク、磁気ディスク、フラッシュメモリなどのような可搬式記憶媒体にデータを読み書きする記憶媒体ドライブ13と、ハードディスクなどのような不揮発性記憶装置であるデータ蓄積装置14とをまず備える。
そして、暗号化検索データベース装置10は、ユーザからのデータ入力を受け付ける(キーボードやマウスなどのような)入力装置15と、処理結果をユーザに提示する(ディスプレイやプリンタなどのような)出力装置16とをさらに備える。主記憶装置12、記憶媒体ドライブ13、データ蓄積装置14の各々について、プロセッサ11との間のデータ交換を媒介するメモリ制御インタフェース12a、13a、14aが各々備えられており、入力装置15と出力装置16との各々についても、プロセッサ11との間のデータ交換を媒介するI/Oインタフェース15a、16aが各々備えられている。これらの各装置は、バス17を介して装置内部でのデータ交換を行う。
もちろん、暗号化検索データベース装置10は1台のコンピュータのみでなく、ネットワークによって相互に接続された複数台のコンピュータによって構成されるものであってもよい。特に、サーバ−クライアント構成により、入力装置15および出力装置16をユーザが操作するクライアント装置とし、実際の検索に係る処理をサーバ装置で行うようにする構成が、一般的に考えられるものである。さらに、そのサーバ装置を、複数台のコンピュータによって負荷を分散するように構成することもできる。
図1は、図2に示したプロセッサ11およびデータ蓄積装置14によって実現される各機能についてより詳しく説明する説明図である。プロセッサ11は、暗号化検索データベース管理プログラムが動作することにより、暗号化検索結果生成手段110、トラップドア生成手段120、暗号化データベース検索手段130、暗号化検索結果追加手段140、および暗号化検索結果削除手段150の各々として動作する。
また、データ蓄積装置14は、暗号化検索結果記憶手段200、追加用情報記憶手段210、および削除用情報記憶手段220の各々として動作する。暗号化検索結果記憶手段200は、暗号化検索結果配列記憶部201と、暗号化始点配列記憶部202とをさらに備える。
このうち、暗号化検索結果生成手段110、トラップドア生成手段120、暗号化データベース検索手段130、暗号化検索結果配列記憶部201、および暗号化始点配列記憶部202は、背景技術として説明したSSE1、即ち暗号化検索結果生成手段910、トラップドア生成手段930、暗号化データベース検索手段940、暗号化検索結果配列記憶部921、および暗号化始点配列記憶部922と各々同等である。
本実施形態として、暗号化検索結果追加手段140、暗号化検索結果削除手段150、追加用情報記憶手段210、および削除用情報記憶手段220の各々について、詳細な内容を説明する。
(暗号化検索結果追加手段)
図3は、図1に示した暗号化検索結果追加手段140の、より詳細な構成について示す説明図である。暗号化検索結果追加手段140は、追加処理制御部141、検索結果生成部142、追加用情報参照部143、始点情報生成部144、暗号化線形リスト追加部145、および始点情報暗号化部146といった各機能部を備える。
これらの各機能部によって、暗号化検索結果追加手段140は、鍵および追加登録の対象である文書を入力として、暗号化検索結果記憶手段200、追加用情報記憶手段210、および削除用情報記憶手段220の記憶データを各々更新する。ここで、追加対象となる検索結果を、追加検索結果ということにする。
検索結果生成部142、始点情報生成部144、および始点情報暗号化部146は、背景技術として説明した暗号化検索結果生成手段910(110)の検索結果生成部912、始点情報生成部913、および始点情報暗号化部915と各々同等であるので、プログラムにおいて同一のモジュールを使用することができる。
追加処理制御部141は、文書、辞書、鍵を入力として、暗号化検索結果追加手段140の備える各機能部を制御する。追加用情報参照部143は、キーワードを入力として、追加用情報記憶手段210を参照し、対応する追加用情報が記憶されている場合は、その追加用情報を読み出して、出力する。それ以外の場合、対応する追加用情報が記憶されていなかった旨を出力する。
暗号化線形リスト追加部145は、始点情報と検索結果との組を入力として、それらを暗号化した暗号化線形リストを生成して、これを暗号化検索結果記憶手段200に記憶する。また、暗号化線形リストの終端情報をキーワードと対応付けて、追加用情報記憶手段210に記憶する。さらに、各文書識別子の暗号文が記憶されているアドレスを文書識別子と対応付けて、削除用情報記憶手段220に記憶する。
暗号化検索結果記憶手段200に記憶されている、特定のキーワードに関する暗号化線形リストの終端のアドレスad_endに記憶されている値は、Enc(k_end;id),Enc(k_end;k_next),Enc(k_end;ad_next)と表される。
暗号化線形リスト追加部145は、このad_nextおよびk_nextを始点情報とする追加検索結果の暗号化線形リストを生成し、これを暗号化検索結果記憶手段200に記憶されている暗号化検索結果配列に追記する。同時に、ad_nextおよびk_nextをキーワードと対応付けて追加用情報記憶手段210に記憶する。
図4は、図3に示した暗号化検索結果追加手段140の動作について示すフローチャートである。まず、鍵K、文書群D、および辞書Δが、入力装置15を介して暗号化検索結果追加手段140の追加処理制御部141に入力される(ステップS301)。これを受けた追加処理制御部141は、文書群Dおよび辞書Δを検索結果生成部142に入力して、文書群Dの辞書Δについての検索結果を得る(ステップS302)。
以後、文書群Dに含まれていた各キーワードw_iについて、ステップS303〜306の処理の繰り返しになる。追加処理制御部141は追加用情報参照部143にキーワードw_iを入力して(ステップS303)追加用情報が出力された場合(ステップS303がイエス)にはこれを始点情報Xとして(ステップS304)、ステップS306の処理に進む。
追加用情報参照部143から追加用情報が出力されない場合(ステップS303がノー)、追加処理制御部141は始点情報生成部144を起動してその出力を始点情報Xとして始点情報暗号化部146に渡す。始点情報暗号化部146は、鍵Kを用いてこのXを暗号化し、鍵Kとキーワードw_iによって定まる暗号化始点配列記憶部202のアドレスに、この暗号化された始点情報Xを記憶させる(ステップS305)。
そして追加処理制御部141は、始点情報XとD(w_i)を暗号化線形リスト追加部145に入力する。暗号化線形リスト追加部145は、始点情報XとD(w_i)についての暗号化線形リストを生成して、これを暗号化検索結果配列記憶部921に記憶する。同時に、暗号化線形リストの終端情報を、キーワードw_iと対応付けて、追加用情報記憶手段210に記憶する。さらに、各文書識別子の暗号文が記憶されているアドレスを、文書識別子に対応付けて削除用情報記憶手段220に記憶する(以上ステップS306)。以上のステップS303〜306の処理を、文書群Dに含まれていた全てのキーワードw_iに対して繰り返す。
(暗号化検索結果削除手段)
図5は、図1に示した暗号化検索結果削除手段150の、より詳細な構成について示す説明図である。暗号化検索結果削除手段150は、削除用情報参照部151と、文書識別子初期化部152とを備える。暗号化検索結果削除手段150は、これらの機能部によって、文書識別子を入力として、暗号化検索結果記憶手段200および削除用情報記憶手段220に記憶されたデータを更新する。
削除用情報参照部151は、文書識別子を入力とし、削除用情報記憶手段220に記憶されている、入力された文書識別子に対応する暗号化検索結果配列記憶部201の複数のアドレスからなる削除用情報を読み出して、これを削除し、文書識別子初期化部152に入力する。
文書識別子初期化部152は、複数の暗号化検索結果配列記憶部201のアドレスを入力とし、入力された暗号化検索結果配列記憶部201のアドレスの文書識別子の暗号文を初期化する。
図6は、図5に示した暗号化検索結果削除手段150の動作について示すフローチャートである。文書識別子id_dが削除用情報参照部151に入力されると(ステップS311)、削除用情報参照部151はこのid_dに対応する削除用情報を削除用情報記憶手段220から読み出して削除し、文書識別子初期化部152に入力する(ステップS312)。ここでいう削除用情報は、暗号化検索結果配列記憶部201内の複数のアドレスからなる。
文書識別子初期化部152は、入力された暗号化検索結果配列記憶部201の削除用情報に含まれるアドレスが記憶する識別子の暗号文を初期化する。(ステップS313)。文書の更新を行う場合は、暗号化検索結果削除手段150で旧データを削除し、かつ暗号化検索結果追加手段140で新データを追加するとよい。
(第1の実施形態の全体的な動作)
次に、上記の実施形態の全体的な動作について説明する。
本実施形態に係る暗号化検索用データの追加削除方法は、暗号化されて登録された複数の文書データの中からキーワードによる検索を行う暗号化検索データベース装置にあって、各キーワードごとに当該キーワードに対応する文書データの一覧である検索結果配列およびこの検索結果配列で当該キーワードに対応する最初のデータのアドレスの一覧である始点配列を暗号化検索結果生成手段が作成し、検索結果配列および始点配列を暗号化検索結果生成手段が与えられた暗号鍵によって各々暗号化して暗号化検索結果記憶手段に記憶させ、新規登録された文書データに対して特定のキーワードを含む検索結果の一覧である線形リストを暗号化検索結果追加手段の検索結果生成部が作成し、線形リストで当該キーワードに対応する最初のデータのアドレスである始点情報を暗号化検索結果追加手段の始点情報生成部が作成し、始点情報を暗号化検索結果追加手段の始点情報暗号化部が暗号鍵で暗号化して暗号化始点配列に追加記憶させ、線形リストを暗号鍵で暗号化した暗号化線形リストを暗号化検索結果追加手段の暗号化線形リスト追加部が作成して暗号化検索結果配列に追加記憶させ、各キーワードと当該キーワードについての暗号化線形リストの最後のデータのアドレスである終点情報を追加用情報として暗号化検索結果追加手段の暗号化線形リスト追加部が予め備えられた追加用情報記憶手段に記憶させる。
また、暗号化検索結果追加手段の暗号化線形リスト追加部が、終点情報を追加用情報記憶手段に記憶させる処理と並行して、各検索結果の文書識別子が記憶されている暗号化検索結果記憶手段上のアドレスを予め備えられた削除用情報記憶手段に記憶し、ユーザから特定の文書識別子に係る文書の削除司令があった時に、この削除用情報記憶手段に記憶された当該文書識別子に対応する暗号化検索結果記憶手段上のアドレスを暗号化検索結果削除手段が初期化する。
ここで、上記各動作ステップについては、これをコンピュータで実行可能にプログラム化し、これらを前記各ステップを直接実行する情報拡散規模予測装置10のプロセッサ11に実行させるようにしてもよい。本プログラムは、非一時的な記録媒体、例えば、DVD、CD、フラッシュメモリ等に記録されてもよい。その場合、本プログラムは、記録媒体からコンピュータによって読み出され、実行される。
この動作により、本実施形態は以下のような効果を奏する。
本実施形態は、以上で説明した構成を備えることによって、暗号化検索用データを追加する際に、暗号化線形リストの終端に関する情報を追加用情報として記憶し、これを用いて暗号化検索結果の更新を実行することが可能になる。即ち、背景技術として説明したような、各キーワードに対するトラップドアを用いた処理を行う必要が無い。従って、その過程で生じうる情報漏洩のリスクを抑えることができる。
また、暗号化検索用データを削除する際にも、ある文書に関する情報がどのアドレスに記憶されているかを削除用情報として記憶しているので、そのアドレスを初期化しさえすればよい。即ち、暗号化検索結果配列のどこに該当する識別子が存在するのかを検索処理を用いて調べる必要がない。従って、その検索処理の過程で生じうる情報漏洩のリスクを抑えることができる。
(第2の実施形態)
本発明の第2の実施形態は、第1の実施形態の構成で、暗号化線形リスト追加部145が、始点情報と特定のキーワードを含む検索結果とを対応させたデータを暗号化線形リストに記憶させるかわりに、始点情報および終点情報と特定のキーワードを含む検索結果とを対応させたデータを暗号化線形リストに記憶させる機能を有するものとした。
この構成によっても、第1の実施形態で説明した効果と同一の効果を得ることができる。
以下、これをより詳細に説明する。
図7は、本発明の第2の実施形態に係る暗号化検索データベース装置410の構成について示す説明図である。暗号化検索データベース装置410は、ハードウェアとしての構成は図1〜2に示した第1の実施形態に係る暗号化検索データベース装置10と全く同一であるので、同一の要素については同一の呼称および参照番号でいう。
暗号化検索データベース装置410のプロセッサ11は、暗号化検索データベース管理プログラムが動作することにより、暗号化検索結果生成手段110、トラップドア生成手段120、暗号化データベース検索手段130、暗号化検索結果追加手段440、および暗号化検索結果削除手段150の各々として動作する。また、データ蓄積装置14は、暗号化検索結果記憶手段200、追加用情報記憶手段210、および削除用情報記憶手段220の各々として動作する。
即ち、第1および第2の実施形態の間では、暗号化検索結果追加手段140が別の暗号化検索結果追加手段440に置換されているのみで、これ以外のハードウェアおよびデータの構成は全く同一であるので、やはり同一の要素については同一の呼称および参照番号でいう。暗号化検索結果追加手段440は、暗号化検索結果追加手段140とは別の方法で、暗号化検索結果記憶手段200、追加用情報記憶手段210、および削除用情報記憶手段220の記憶データを各々更新する。
(暗号化検索結果追加手段)
図8は、図7に示した暗号化検索結果追加手段440の、より詳細な構成について示す説明図である。暗号化検索結果追加手段440は、追加処理制御部441、検索結果生成部142、追加用情報参照部443、始点情報生成部144、暗号化線形リスト追加部445、および始点情報暗号化部146といった各機能部を備える。
このうち、検索結果生成部142、始点情報生成部144、および始点情報暗号化部146は、いずれも第1の実施形態と共通であり、また背景技術として説明した暗号化検索結果生成手段910の検索結果生成部912、始点情報生成部913、および始点情報暗号化部915と各々同様である。
追加処理制御部441は、文書、辞書、鍵を入力として、暗号化検索結果追加手段140の備える各機能部を制御する。追加用情報参照部443は、キーワードを入力として、追加用情報記憶手段210を参照し、対応する追加用情報が記憶されている場合は、その追加用情報を読み出して、出力する。それ以外の場合、対応する追加用情報が記憶されていなかった旨を出力する。
暗号化線形リスト追加部445は、始点情報と検索結果との組を入力として、それらを暗号化した暗号化線形リストを生成して、これを暗号化検索結果記憶手段200に記憶する。また、暗号化線形リストの終端情報をキーワードと対応付けて、追加用情報記憶手段210に記憶する。さらに、各文書識別子の暗号文が記憶されているアドレスを文書識別子と対応付けて、削除用情報記憶手段220に記憶する。
以上の追加処理制御部441、追加用情報参照部443、および暗号化線形リスト追加部445の機能についての説明も、第1の実施形態と同一であるが、それら各々の具体的な方法が第1の実施形態と異なっている。以下、この点について説明する。
キーワードw_iを含み、文書識別子がid_1,…,id_xである各文書を追加する場合を例として示す。この場合、暗号化検索結果配列記憶部201に記憶されているキーワードw_iに関する暗号化線形リストの始点情報のアドレスad_{w_i}と鍵k_{w_i}は、暗号化始点配列記憶部202に暗号化されて記憶されている。
このとき、アドレスad_{w_i}’と鍵k_{w_i}’とを新たに始点情報として生成し、これを暗号化した値をw_iに対応する暗号化始点情報として暗号化始点配列記憶部202に記憶する。そして、ad_{w_i}’とk_{w_i}’とを始点情報としたid_1,…,id_xの暗号化線形リストを生成する。この暗号化線形リストの終端ノードでは、ad_{w_i}を次アドレス、k_{w_i}を次アドレス暗号化鍵として用いる。
この処理で、新たにw_iに関する暗号化線形リストが暗号化検索結果配列記憶部201に記憶され、対応する始点情報が暗号化始点配列記憶部202に記憶される。以上の処理の実行に必要となるのは、暗号化検索結果を生成するために用いられている鍵と各キーワードに対する始点情報である。始点情報は各キーワードに対応付けて記憶されており、また各キーワードに対する始点情報が暗号化始点情報配列より得られることから、暗号化始点情報配列をそのまま追加用情報として用いることができる。
図9は、図7に示した暗号化検索結果追加手段440の動作について示すフローチャートである。まず、鍵K、文書群D、および辞書Δが、入力装置15を介して暗号化検索結果追加手段440の追加処理制御部441に入力される(ステップS501)。これを受けた追加処理制御部441は、文書群Dおよび辞書Δを検索結果生成部142に入力して、文書群Dの辞書Δについての検索結果を得る(ステップS502)。
以後、文書群Dに含まれていた全てのキーワードw_iに対して、ステップS503〜505の処理の繰り返しになる。追加処理制御部441は始点情報生成部144を起動してその出力を始点情報Xとし、始点情報暗号化部146によってXをKによって暗号化して暗号化して始点配列記憶部202に記憶させる(ステップS503)。
続いて追加処理制御部441は、追加用情報参照部143にキーワードw_iを入力し、追加用情報が出力された場合にそれをYとして(ステップS504)、XとYとD(w_i)を暗号化線形リスト追加部145に入力する。暗号化線形リスト追加部145は、始点情報Xと終点情報Yと検索結果D(w_i)についての暗号化線形リストを生成し、暗号化検索結果配列記憶部201に記憶する(ステップS505)。ステップS504〜505で、終点情報が入力されなかった場合は、すでに値が記憶されているアドレス以外の値を終点情報のアドレスとし、ランダムな値を終点情報の鍵として用いる。
これと同時に、暗号化線形リストの終端情報を、キーワードと対応付けて追加用情報記憶手段210に記憶させる。そして、各文書識別子の暗号文が記憶されているアドレスを、文書識別子に対応付けて削除用情報記憶装置に記憶する(ステップS505)。以上のステップS503〜505の処理を、文書群Dに含まれていた全てのキーワードw_iに対して繰り返す。
(実施形態の拡張)
以上で説明した第1および第2の実施形態は、その趣旨を改変しない範囲で、種々の拡張が可能である。以下、その拡張の例について説明する。
前述のように、暗号化検索データベース装置は1台のコンピュータのみでなく、ネットワークによって相互に接続された複数台のコンピュータによって構成されるものであってもよい。特に、サーバ−クライアント構成により、入力装置および出力装置をユーザが操作するクライアント装置とし、実際の検索に係る処理をサーバ装置で行うようにする構成が、一般的に考えられるものである。さらに、そのサーバ装置を、複数台のコンピュータによって負荷を分散するように構成することもできる。
その場合、サーバおよびクライアントを構成する各コンピュータは、当該組織内の同一のローカルネットワーク内部に接続され、その組織内で認証を受けた者だけがこの暗号化検索データベースを利用可能にすることが望ましい。さらに、当該ネットワークはファイヤウォールやアンチウィルスなどのようなセキュリティに係るハードウェアやソフトウェアを完備し、一定のセキュリティポリシーに則って運用されるものであることが望ましい。これらについては、本発明の範囲では無いので、詳しくは説明しない。
これまで本発明について図面に示した特定の実施形態をもって説明してきたが、本発明は図面に示した実施形態に限定されるものではなく、本発明の効果を奏する限り、これまで知られたいかなる構成であっても採用することができる。
上述した実施形態について、その新規な技術内容の要点をまとめると、以下のようになる。なお、上記実施形態の一部または全部は、新規な技術として以下のようにまとめられるが、本発明は必ずしもこれに限定されるものではない。
(付記1) 暗号化されて登録された複数の文書データの中からキーワードによる検索を行う暗号化検索データベース装置であって、
前記各キーワードごとに当該キーワードに対応する前記文書データの一覧である検索結果配列およびこの検索結果配列で当該キーワードに対応する最初のデータのアドレスの一覧である始点配列を作成すると共にこれらを与えられた暗号鍵によって各々暗号化した暗号化検索結果配列および暗号化始点配列を作成する暗号化検索結果生成手段と、作成された前記暗号化検索結果配列および前記暗号化始点配列を記憶する暗号化検索結果記憶手段と、前記キーワードと前記暗号鍵を利用して前記暗号化検索結果配列および前記暗号化始点配列から前記キーワードによる検索を行う暗号化データベース検索手段と、新規登録された前記文書データに係る内容を前記暗号化検索結果配列および前記暗号化始点配列に追加する暗号化検索結果追加手段とを有し、
前記暗号化検索結果追加手段が、
前記新規登録された文書データに対して特定の前記キーワードを含む検索結果の一覧である線形リストを作成する検索結果生成部と、
前記線形リストで当該キーワードに対応する最初のデータのアドレスである始点情報を作成する始点情報生成部と、
作成された前記始点情報を前記暗号鍵で暗号化して前記暗号化始点配列に追加記憶させる始点情報暗号化部と、
前記線形リストを前記暗号鍵で暗号化した暗号化線形リストを作成して前記暗号化検索結果配列に追加記憶させる暗号化線形リスト追加部とを有すると共に、
この暗号化線形リスト追加部が、前記各キーワードと当該キーワードについての前記暗号化線形リストの最後のデータのアドレスである終点情報を追加用情報として予め備えられた追加用情報記憶手段に記憶させる機能を有する
ことを特徴とする暗号化検索データベース装置。
(付記2) 前記暗号化検索結果追加手段が、
前記追加用情報が前記追加用情報記憶手段に記憶されている場合に当該追加用情報を読み出す追加用情報参照部を備え、
前記暗号化線形リスト追加部が、前記追加用情報参照部によって読み出された前記追加用情報を前記始点情報として前記暗号化線形リストを作成する機能を有することを特徴とする、付記1に記載の暗号化検索データベース装置。
(付記3) 前記暗号化線形リスト追加部が、前記始点情報と前記特定のキーワードを含む検索結果とを対応させたデータを前記暗号化線形リストに記憶させる機能を有することを特徴とする、付記1に記載の暗号化検索データベース装置。
(付記4) 前記暗号化線形リスト追加部が、前記始点情報および前記終点情報と前記特定のキーワードを含む検索結果とを対応させたデータを前記暗号化線形リストに記憶させる機能を有することを特徴とする、付記1に記載の暗号化検索データベース装置。
(付記5) 前記暗号化検索結果追加手段の前記暗号化線形リスト追加部が、前記各検索結果の文書識別子が記憶されている前記暗号化検索結果記憶手段上のアドレスを予め備えられた削除用情報記憶手段に記憶する機能を有すると共に、
ユーザから特定の文書識別子に係る文書の削除司令があった時に、この削除用情報記憶手段に記憶された当該文書識別子に対応する前記暗号化検索結果記憶手段上のアドレスを初期化する暗号化検索結果削除手段を有することを特徴とする、付記1に記載の暗号化検索データベース装置。
(付記6) 暗号化されて登録された複数の文書データの中からキーワードによる検索を行う暗号化検索データベース装置にあって、
前記各キーワードごとに当該キーワードに対応する前記文書データの一覧である検索結果配列およびこの検索結果配列で当該キーワードに対応する最初のデータのアドレスの一覧である始点配列を暗号化検索結果生成手段が作成し、
前記検索結果配列および前記始点配列を前記暗号化検索結果生成手段が与えられた暗号鍵によって各々暗号化して暗号化検索結果記憶手段に記憶させ、
新規登録された文書データに対して特定の前記キーワードを含む検索結果の一覧である線形リストを暗号化検索結果追加手段の検索結果生成部が作成し、
前記線形リストで当該キーワードに対応する最初のデータのアドレスである始点情報を前記暗号化検索結果追加手段の始点情報生成部が作成し、
前記始点情報を前記暗号化検索結果追加手段の始点情報暗号化部が前記暗号鍵で暗号化して前記暗号化始点配列に追加記憶させ、
前記線形リストを前記暗号鍵で暗号化した暗号化線形リストを前記暗号化検索結果追加手段の暗号化線形リスト追加部が作成して前記暗号化検索結果配列に追加記憶させ、
前記各キーワードと当該キーワードについての前記暗号化線形リストの最後のデータのアドレスである終点情報を追加用情報として前記暗号化検索結果追加手段の前記暗号化線形リスト追加部が予め備えられた追加用情報記憶手段に記憶させる
ことを特徴とする暗号化検索用データの追加削除方法。
(付記7) 前記暗号化検索結果追加手段の前記暗号化線形リスト追加部が、前記終点情報を前記追加用情報記憶手段に記憶させる処理と並行して、前記各検索結果の文書識別子が記憶されている前記暗号化検索結果記憶手段上のアドレスを予め備えられた削除用情報記憶手段に記憶し、
ユーザから特定の文書識別子に係る文書の削除司令があった時に、この削除用情報記憶手段に記憶された当該文書識別子に対応する前記暗号化検索結果記憶手段上のアドレスを暗号化検索結果削除手段が初期化する
ことを特徴とする、付記6に記載の暗号化検索用データの追加削除方法。
(付記8) 暗号化されて登録された複数の文書データの中からキーワードによる検索を行う暗号化検索データベース装置にあって、
この暗号化検索データベース装置が備えるコンピュータに、
前記各キーワードごとに当該キーワードに対応する前記文書データの一覧である検索結果配列およびこの検索結果配列で当該キーワードに対応する最初のデータのアドレスの一覧である始点配列を作成する手順、
前記検索結果配列および前記始点配列を与えられた暗号鍵によって各々暗号化して暗号化検索結果記憶手段に記憶させる手順、
新規登録された文書データに対して特定の前記キーワードを含む検索結果の一覧である線形リストを作成する手順、
前記線形リストで当該キーワードに対応する最初のデータのアドレスである始点情報を作成する手順、
前記始点情報を前記暗号鍵で暗号化して前記暗号化始点配列に追加記憶させる手順、
前記線形リストを前記暗号鍵で暗号化した暗号化線形リストを作成して前記暗号化検索結果配列に追加記憶させる手順、
および前記各キーワードと当該キーワードについての前記暗号化線形リストの最後のデータのアドレスである終点情報を追加用情報として予め備えられた追加用情報記憶手段に記憶させる手順
を実行させることを特徴とする暗号化検索用データの追加削除プログラム。
(付記9) 前記暗号化検索データベース装置が備えるコンピュータに、
前記終点情報を前記追加用情報記憶手段に記憶させる手順と並行して、前記各検索結果の文書識別子が記憶されている前記暗号化検索結果記憶手段上のアドレスを予め備えられた削除用情報記憶手段に記憶する手順、
およびユーザから特定の文書識別子に係る文書の削除司令があった時に、この削除用情報記憶手段に記憶された当該文書識別子に対応する暗号化検索結果記憶手段上のアドレスを初期化する
手順をさらに実行させることを特徴とする、付記8に記載の暗号化検索用データの追加削除プログラム。
この出願は2011年12月9日に出願された日本出願特願2011−269740を基礎とする優先権を主張し、その開示の全てをここに取り込む。
本発明は、データベースを備えた情報システムにおいて利用可能であり、特に企業などの組織内部の情報システムにおける、機密情報を大量に保有するデータベースでの利用に好適である。
10、410 暗号化検索データベース装置
11 プロセッサ
12 主記憶装置
12a、13a、14a メモリ制御インタフェース
13 記憶媒体ドライブ
14 データ蓄積装置
15 入力装置
15a、16a I/Oインタフェース
16 出力装置
17 バス
110 暗号化検索結果生成手段
120 トラップドア生成手段
130 暗号化データベース検索手段
140、440 暗号化検索結果追加手段
141、441 追加処理制御部
142 検索結果生成部
143、443 追加用情報参照部
144 始点情報生成部
145、445 暗号化線形リスト追加部
146 始点情報暗号化部
150 暗号化検索結果削除手段
151 削除用情報参照部
152 文書識別子初期化部
200 暗号化検索結果記憶手段
201 暗号化検索結果配列記憶部
202 暗号化始点配列記憶部
210 追加用情報記憶手段
220 削除用情報記憶手段

Claims (9)

  1. 暗号化されて登録された複数の文書データの中からキーワードによる検索を行う暗号化検索データベース装置であって、
    前記各キーワードごとに当該キーワードに対応する前記文書データの一覧である検索結果配列およびこの検索結果配列で当該キーワードに対応する最初のデータのアドレスの一覧である始点配列を作成すると共にこれらを与えられた暗号鍵によって各々暗号化した暗号化検索結果配列および暗号化始点配列を作成する暗号化検索結果生成手段と、作成された前記暗号化検索結果配列および前記暗号化始点配列を記憶する暗号化検索結果記憶手段と、前記キーワードと前記暗号鍵を利用して前記暗号化検索結果配列および前記暗号化始点配列から前記キーワードによる検索を行う暗号化データベース検索手段と、新規登録された前記文書データに係る内容を前記暗号化検索結果配列および前記暗号化始点配列に追加する暗号化検索結果追加手段とを有し、
    前記暗号化検索結果追加手段が、
    前記新規登録された文書データに対して特定の前記キーワードを含む検索結果の一覧である線形リストを作成する検索結果生成部と、
    前記線形リストで当該キーワードに対応する最初のデータのアドレスである始点情報を作成する始点情報生成部と、
    作成された前記始点情報を前記暗号鍵で暗号化して前記暗号化始点配列に追加記憶させる始点情報暗号化部と、
    前記線形リストを前記暗号鍵で暗号化した暗号化線形リストを作成して前記暗号化検索結果配列に追加記憶させる暗号化線形リスト追加部とを有すると共に、
    この暗号化線形リスト追加部が、前記各キーワードと当該キーワードについての前記暗号化線形リストの最後のデータのアドレスである終点情報を追加用情報として予め備えられた追加用情報記憶手段に記憶させる機能を有する
    ことを特徴とする暗号化検索データベース装置。
  2. 前記暗号化検索結果追加手段が、
    前記追加用情報が前記追加用情報記憶手段に記憶されている場合に当該追加用情報を読み出す追加用情報参照部を備え、
    前記暗号化線形リスト追加部が、前記追加用情報参照部によって読み出された前記追加用情報を前記始点情報として前記暗号化線形リストを作成する機能を有することを特徴とする、請求項1に記載の暗号化検索データベース装置。
  3. 前記暗号化線形リスト追加部が、前記始点情報と前記特定のキーワードを含む検索結果とを対応させたデータを前記暗号化線形リストに記憶させる機能を有することを特徴とする、請求項1に記載の暗号化検索データベース装置。
  4. 前記暗号化線形リスト追加部が、前記始点情報および前記終点情報と前記特定のキーワードを含む検索結果とを対応させたデータを前記暗号化線形リストに記憶させる機能を有することを特徴とする、請求項1に記載の暗号化検索データベース装置。
  5. 前記暗号化検索結果追加手段の前記暗号化線形リスト追加部が、前記各検索結果の文書識別子が記憶されている前記暗号化検索結果記憶手段上のアドレスを予め備えられた削除用情報記憶手段に記憶する機能を有すると共に、
    ユーザから特定の文書識別子に係る文書の削除司令があった時に、この削除用情報記憶手段に記憶された当該文書識別子に対応する前記暗号化検索結果記憶手段上のアドレスを初期化する暗号化検索結果削除手段を有することを特徴とする、請求項1に記載の暗号化検索データベース装置。
  6. 暗号化されて登録された複数の文書データの中からキーワードによる検索を行う暗号化検索データベース装置にあって、
    前記各キーワードごとに当該キーワードに対応する前記文書データの一覧である検索結果配列およびこの検索結果配列で当該キーワードに対応する最初のデータのアドレスの一覧である始点配列を暗号化検索結果生成手段が作成し、
    前記検索結果配列および前記始点配列を前記暗号化検索結果生成手段が与えられた暗号鍵によって各々暗号化して暗号化検索結果記憶手段に記憶させ、
    新規登録された文書データに対して特定の前記キーワードを含む検索結果の一覧である線形リストを暗号化検索結果追加手段の検索結果生成部が作成し、
    前記線形リストで当該キーワードに対応する最初のデータのアドレスである始点情報を前記暗号化検索結果追加手段の始点情報生成部が作成し、
    前記始点情報を前記暗号化検索結果追加手段の始点情報暗号化部が前記暗号鍵で暗号化して前記暗号化始点配列に追加記憶させ、
    前記線形リストを前記暗号鍵で暗号化した暗号化線形リストを前記暗号化検索結果追加手段の暗号化線形リスト追加部が作成して前記暗号化検索結果配列に追加記憶させ、
    前記各キーワードと当該キーワードについての前記暗号化線形リストの最後のデータのアドレスである終点情報を追加用情報として前記暗号化検索結果追加手段の前記暗号化線形リスト追加部が予め備えられた追加用情報記憶手段に記憶させる
    ことを特徴とする暗号化検索用データの追加削除方法。
  7. 前記暗号化検索結果追加手段の前記暗号化線形リスト追加部が、前記終点情報を前記追加用情報記憶手段に記憶させる処理と並行して、前記各検索結果の文書識別子が記憶されている前記暗号化検索結果記憶手段上のアドレスを予め備えられた削除用情報記憶手段に記憶し、
    ユーザから特定の文書識別子に係る文書の削除司令があった時に、この削除用情報記憶手段に記憶された当該文書識別子に対応する前記暗号化検索結果記憶手段上のアドレスを暗号化検索結果削除手段が初期化する
    ことを特徴とする、請求項6に記載の暗号化検索用データの追加削除方法。
  8. 暗号化されて登録された複数の文書データの中からキーワードによる検索を行う暗号化検索データベース装置にあって、
    この暗号化検索データベース装置が備えるコンピュータに、
    前記各キーワードごとに当該キーワードに対応する前記文書データの一覧である検索結果配列およびこの検索結果配列で当該キーワードに対応する最初のデータのアドレスの一覧である始点配列を作成する手順、
    前記検索結果配列および前記始点配列を与えられた暗号鍵によって各々暗号化して暗号化検索結果記憶手段に記憶させる手順、
    新規登録された文書データに対して特定の前記キーワードを含む検索結果の一覧である線形リストを作成する手順、
    前記線形リストで当該キーワードに対応する最初のデータのアドレスである始点情報を作成する手順、
    前記始点情報を前記暗号鍵で暗号化して前記暗号化始点配列に追加記憶させる手順、
    前記線形リストを前記暗号鍵で暗号化した暗号化線形リストを作成して前記暗号化検索結果配列に追加記憶させる手順、
    および前記各キーワードと当該キーワードについての前記暗号化線形リストの最後のデータのアドレスである終点情報を追加用情報として予め備えられた追加用情報記憶手段に記憶させる手順
    を実行させることを特徴とする暗号化検索用データの追加削除プログラム。
  9. 前記暗号化検索データベース装置が備えるコンピュータに、
    前記終点情報を前記追加用情報記憶手段に記憶させる手順と並行して、前記各検索結果の文書識別子が記憶されている前記暗号化検索結果記憶手段上のアドレスを予め備えられた削除用情報記憶手段に記憶する手順、
    およびユーザから特定の文書識別子に係る文書の削除司令があった時に、この削除用情報記憶手段に記憶された当該文書識別子に対応する暗号化検索結果記憶手段上のアドレスを初期化する手順
    をさらに実行させることを特徴とする、請求項8に記載の暗号化検索用データの追加削除プログラム。
JP2013529458A 2011-12-09 2012-12-05 暗号化検索データベース装置、暗号化検索用データの追加削除方法および追加削除プログラム Active JP5392439B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2013529458A JP5392439B2 (ja) 2011-12-09 2012-12-05 暗号化検索データベース装置、暗号化検索用データの追加削除方法および追加削除プログラム

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP2011269740 2011-12-09
JP2011269740 2011-12-09
PCT/JP2012/081555 WO2013084957A1 (ja) 2011-12-09 2012-12-05 暗号化検索データベース装置、暗号化検索用データの追加削除方法および追加削除プログラム
JP2013529458A JP5392439B2 (ja) 2011-12-09 2012-12-05 暗号化検索データベース装置、暗号化検索用データの追加削除方法および追加削除プログラム

Publications (2)

Publication Number Publication Date
JP5392439B2 true JP5392439B2 (ja) 2014-01-22
JPWO2013084957A1 JPWO2013084957A1 (ja) 2015-04-27

Family

ID=48574315

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013529458A Active JP5392439B2 (ja) 2011-12-09 2012-12-05 暗号化検索データベース装置、暗号化検索用データの追加削除方法および追加削除プログラム

Country Status (4)

Country Link
US (1) US8799677B2 (ja)
EP (1) EP2778953A4 (ja)
JP (1) JP5392439B2 (ja)
WO (1) WO2013084957A1 (ja)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6493402B2 (ja) * 2014-07-02 2019-04-03 日本電気株式会社 追加装置、削除装置、追加依頼装置、データ検索システム、データ検索方法、および、コンピュータプログラム
US10404669B2 (en) 2015-06-09 2019-09-03 Skyhigh Networks, Llc Wildcard search in encrypted text
US10176207B1 (en) 2015-06-09 2019-01-08 Skyhigh Networks, Llc Wildcard search in encrypted text
US9894042B2 (en) * 2015-07-24 2018-02-13 Skyhigh Networks, Inc. Searchable encryption enabling encrypted search based on document type
CN107248984B (zh) * 2017-06-06 2020-06-05 北京京东尚科信息技术有限公司 数据交换系统、方法和装置
SG10201706106QA (en) * 2017-07-26 2019-02-27 Huawei Int Pte Ltd Searchable Encryption with Hybrid Index
EP3675086B1 (en) 2017-09-12 2021-10-27 Mitsubishi Electric Corporation Registration terminal, search terminal, search server, search system, registration program, and search program
US11113409B2 (en) * 2018-10-26 2021-09-07 Pure Storage, Inc. Efficient rekey in a transparent decrypting storage array
US20210157682A1 (en) * 2019-11-22 2021-05-27 Microsoft Technology Licensing, Llc System and method for database recovery for encrypted indexes

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002278970A (ja) 2001-03-16 2002-09-27 Ricoh Co Ltd 文書管理システム
JP2002300614A (ja) 2001-03-29 2002-10-11 Victor Co Of Japan Ltd 個人データベースの生成方法、及び個人データベースの表示方法
US7519835B2 (en) 2004-05-20 2009-04-14 Safenet, Inc. Encrypted table indexes and searching encrypted tables
JP4634349B2 (ja) 2006-08-22 2011-02-16 株式会社日立製作所 IPSec処理装置、ネットワークシステム、及びIPSec処理プログラム
CN101593196B (zh) * 2008-05-30 2013-09-25 日电(中国)有限公司 用于快速密文检索的方法、装置和系统
CN101739400B (zh) 2008-11-11 2014-08-13 日电(中国)有限公司 生成索引的方法和装置以及检索方法和装置
KR101190059B1 (ko) * 2008-12-12 2012-10-16 한국전자통신연구원 데이터 암호화 방법 및 암호화된 데이터의 결합 키워드 검색방법
JP5274271B2 (ja) 2009-01-16 2013-08-28 三菱電機株式会社 検索システム及び索引暗号化装置及び検索暗号化装置及び検索装置及びコンピュータプログラム及び検索方法
US9684710B2 (en) * 2009-05-28 2017-06-20 Microsoft Technology Licensing, Llc Extending random number summation as an order-preserving encryption scheme
US8533489B2 (en) * 2010-09-29 2013-09-10 Microsoft Corporation Searchable symmetric encryption with dynamic updating
US8930691B2 (en) * 2011-08-16 2015-01-06 Microsoft Corporation Dynamic symmetric searchable encryption

Also Published As

Publication number Publication date
US8799677B2 (en) 2014-08-05
EP2778953A4 (en) 2015-09-09
WO2013084957A1 (ja) 2013-06-13
JPWO2013084957A1 (ja) 2015-04-27
US20140095889A1 (en) 2014-04-03
EP2778953A1 (en) 2014-09-17

Similar Documents

Publication Publication Date Title
JP5392439B2 (ja) 暗号化検索データベース装置、暗号化検索用データの追加削除方法および追加削除プログラム
US10275611B1 (en) Methods and apparatus for sharing and searching encrypted data
CN107209787B (zh) 提高专用加密数据的搜索能力
US8533489B2 (en) Searchable symmetric encryption with dynamic updating
US11558360B2 (en) Selective encryption of profile fields for multiple consumers
CN105678189B (zh) 加密数据文件存储和检索系统及方法
CN110689349B (zh) 一种区块链中的交易哈希值存储和搜索方法及装置
JP5344109B1 (ja) データベース暗号化システムと方法及びプログラム
JP2008517354A (ja) データベーステーブル探索用の暗号化されたデータベースインデックスを構築する方法を導入されたコンピュータ
US20150026462A1 (en) Method and system for access-controlled decryption in big data stores
WO2016171271A1 (ja) 秘匿化データベースシステム及び秘匿化データ管理方法
US8769302B2 (en) Encrypting data and characterization data that describes valid contents of a column
CN111767364B (zh) 数据处理方法、装置和设备
US20100070518A1 (en) Method for protecting private information and computer-readable recording medium storing program for executing the same
WO2014141802A1 (ja) 情報処理装置、情報処理システム、および情報処理方法、並びにプログラム
US20200042497A1 (en) Distributed ledger system
CN109802832A (zh) 一种数据文件的处理方法、系统、大数据处理服务器和计算机存储介质
JPWO2017122352A1 (ja) 暗号化装置、暗号化方法、暗号化プログラム及び保管装置
JP2019207281A (ja) 大小判定サーバ、大小判定暗号化システム、及び大小判定方法
US9626410B2 (en) Vertically partitioned databases
JP6289768B2 (ja) 暗号化装置、暗号化プログラム及び暗号化方法
JP2022103117A (ja) 暗号化データを保存するための方法及び設備
CN108763401A (zh) 一种文件的读写方法及设备
CN113839773B (zh) 一种luks密钥离线提取方法、终端设备及存储介质
CN115455463A (zh) 一种基于同态加密的隐匿sql查询方法

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130930

R150 Certificate of patent or registration of utility model

Ref document number: 5392439

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150