(57)【特許請求の範囲】
【請求項１】
暗号化されて登録された複数の文書データの中からキーワードによる検索を行う暗号化検索データベース装置であって、
前記各キーワードごとに当該キーワードに対応する前記文書データの一覧である検索結果配列およびこの検索結果配列で当該キーワードに対応する最初のデータのアドレスの一覧である始点配列を作成すると共にこれらを与えられた暗号鍵によって各々暗号化した暗号化検索結果配列および暗号化始点配列を作成する暗号化検索結果生成手段と、作成された前記暗号化検索結果配列および前記暗号化始点配列を記憶する暗号化検索結果記憶手段と、前記キーワードと前記暗号鍵を利用して前記暗号化検索結果配列および前記暗号化始点配列から前記キーワードによる検索を行う暗号化データベース検索手段と、新規登録された前記文書データに係る内容を前記暗号化検索結果配列および前記暗号化始点配列に追加する暗号化検索結果追加手段とを有し、
前記暗号化検索結果追加手段が、
前記新規登録された文書データに対して特定の前記キーワードを含む検索結果の一覧である線形リストを作成する検索結果生成部と、
前記線形リストで当該キーワードに対応する最初のデータのアドレスである始点情報を作成する始点情報生成部と、
作成された前記始点情報を前記暗号鍵で暗号化して前記暗号化始点配列に追加記憶させる始点情報暗号化部と、
前記線形リストを前記暗号鍵で暗号化した暗号化線形リストを作成して前記暗号化検索結果配列に追加記憶させる暗号化線形リスト追加部とを有すると共に、
この暗号化線形リスト追加部が、前記各キーワードと当該キーワードについての前記暗号化線形リストの最後のデータのアドレスである終点情報を追加用情報として予め備えられた追加用情報記憶手段に記憶させる機能を有する
ことを特徴とする暗号化検索データベース装置。
【請求項２】
前記暗号化検索結果追加手段が、
前記追加用情報が前記追加用情報記憶手段に記憶されている場合に当該追加用情報を読み出す追加用情報参照部を備え、
前記暗号化線形リスト追加部が、前記追加用情報参照部によって読み出された前記追加用情報を前記始点情報として前記暗号化線形リストを作成する機能を有することを特徴とする、請求項１に記載の暗号化検索データベース装置。
【請求項３】
前記暗号化線形リスト追加部が、前記始点情報と前記特定のキーワードを含む検索結果とを対応させたデータを前記暗号化線形リストに記憶させる機能を有することを特徴とする、請求項１に記載の暗号化検索データベース装置。
【請求項４】
前記暗号化線形リスト追加部が、前記始点情報および前記終点情報と前記特定のキーワードを含む検索結果とを対応させたデータを前記暗号化線形リストに記憶させる機能を有することを特徴とする、請求項１に記載の暗号化検索データベース装置。
【請求項５】
前記暗号化検索結果追加手段の前記暗号化線形リスト追加部が、前記各検索結果の文書識別子が記憶されている前記暗号化検索結果記憶手段上のアドレスを予め備えられた削除用情報記憶手段に記憶する機能を有すると共に、
ユーザから特定の文書識別子に係る文書の削除司令があった時に、この削除用情報記憶手段に記憶された当該文書識別子に対応する前記暗号化検索結果記憶手段上のアドレスを初期化する暗号化検索結果削除手段を有することを特徴とする、請求項１に記載の暗号化検索データベース装置。
【請求項６】
暗号化されて登録された複数の文書データの中からキーワードによる検索を行う暗号化検索データベース装置にあって、
前記各キーワードごとに当該キーワードに対応する前記文書データの一覧である検索結果配列およびこの検索結果配列で当該キーワードに対応する最初のデータのアドレスの一覧である始点配列を暗号化検索結果生成手段が作成し、
前記検索結果配列および前記始点配列を前記暗号化検索結果生成手段が与えられた暗号鍵によって各々暗号化して暗号化検索結果記憶手段に記憶させ、
新規登録された文書データに対して特定の前記キーワードを含む検索結果の一覧である線形リストを暗号化検索結果追加手段の検索結果生成部が作成し、
前記線形リストで当該キーワードに対応する最初のデータのアドレスである始点情報を前記暗号化検索結果追加手段の始点情報生成部が作成し、
前記始点情報を前記暗号化検索結果追加手段の始点情報暗号化部が前記暗号鍵で暗号化して前記暗号化始点配列に追加記憶させ、
前記線形リストを前記暗号鍵で暗号化した暗号化線形リストを前記暗号化検索結果追加手段の暗号化線形リスト追加部が作成して前記暗号化検索結果配列に追加記憶させ、
前記各キーワードと当該キーワードについての前記暗号化線形リストの最後のデータのアドレスである終点情報を追加用情報として前記暗号化検索結果追加手段の前記暗号化線形リスト追加部が予め備えられた追加用情報記憶手段に記憶させる
ことを特徴とする暗号化検索用データの追加削除方法。
【請求項７】
前記暗号化検索結果追加手段の前記暗号化線形リスト追加部が、前記終点情報を前記追加用情報記憶手段に記憶させる処理と並行して、前記各検索結果の文書識別子が記憶されている前記暗号化検索結果記憶手段上のアドレスを予め備えられた削除用情報記憶手段に記憶し、
ユーザから特定の文書識別子に係る文書の削除司令があった時に、この削除用情報記憶手段に記憶された当該文書識別子に対応する前記暗号化検索結果記憶手段上のアドレスを暗号化検索結果削除手段が初期化する
ことを特徴とする、請求項６に記載の暗号化検索用データの追加削除方法。
【請求項８】
暗号化されて登録された複数の文書データの中からキーワードによる検索を行う暗号化検索データベース装置にあって、
この暗号化検索データベース装置が備えるコンピュータに、
前記各キーワードごとに当該キーワードに対応する前記文書データの一覧である検索結果配列およびこの検索結果配列で当該キーワードに対応する最初のデータのアドレスの一覧である始点配列を作成する手順、
前記検索結果配列および前記始点配列を与えられた暗号鍵によって各々暗号化して暗号化検索結果記憶手段に記憶させる手順、
新規登録された文書データに対して特定の前記キーワードを含む検索結果の一覧である線形リストを作成する手順、
前記線形リストで当該キーワードに対応する最初のデータのアドレスである始点情報を作成する手順、
前記始点情報を前記暗号鍵で暗号化して前記暗号化始点配列に追加記憶させる手順、
前記線形リストを前記暗号鍵で暗号化した暗号化線形リストを作成して前記暗号化検索結果配列に追加記憶させる手順、
および前記各キーワードと当該キーワードについての前記暗号化線形リストの最後のデータのアドレスである終点情報を追加用情報として予め備えられた追加用情報記憶手段に記憶させる手順
を実行させることを特徴とする暗号化検索用データの追加削除プログラム。
【請求項９】
前記暗号化検索データベース装置が備えるコンピュータに、
前記終点情報を前記追加用情報記憶手段に記憶させる手順と並行して、前記各検索結果の文書識別子が記憶されている前記暗号化検索結果記憶手段上のアドレスを予め備えられた削除用情報記憶手段に記憶する手順、
およびユーザから特定の文書識別子に係る文書の削除司令があった時に、この削除用情報記憶手段に記憶された当該文書識別子に対応する暗号化検索結果記憶手段上のアドレスを初期化する手順
をさらに実行させることを特徴とする、請求項８に記載の暗号化検索用データの追加削除プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、暗号化検索データベース装置、暗号化検索用データの追加削除方法および追加削除プログラムに関し、特に文書の追加・削除・更新の際の情報漏洩のリスクを軽減しうる暗号化検索データベース装置等に関する。
【背景技術】
【０００２】
コンピュータによるデータベースが企業や公的機関などのような組織の運営に深くかかわるようになって久しい。データベースの基本的な機能の一つに、キーワードによるデータ検索がある。この機能は、データベースに登録されている複数の文書から特定のキーワードを含む文書を抽出するというものである。データベースには膨大な数の文書が登録されているので、ユーザから検索の要求があるたびに、それらの文書内に含まれる全ての文章を解析して当該キーワードが含まれているか否かを判定することは非能率的である。【０００３】
そのため、ほとんどのデータベースでは検索用のインデックスファイルを作成し、これを検索の際に利用することが可能である。インデックスファイルは、特定のキーワードに対して、検索結果として該当する文書の一覧を保存するものである。インデックスファイルは、文書データの追加・削除・更新に応じて、定期的に（例えば毎日所定の時刻に）更新される。このインデックスファイルを利用することによって、検索に係る処理を高速化することが可能である。【０００４】
一方、企業などのような組織内部のデータベースには、該組織の外部に漏洩することの許されない企業秘密や個人秘密に係る情報も多数登録されている。これらのような情報に対しても、キーワードによる検索は当然必要である。しかしながら、文書ファイル本体が暗号化されていても、保存されているインデックスファイルから、どの文書がどのキーワードを含むのかといった情報が漏洩する危険性がある。単純にインデックスファイルを暗号化するだけでは、これを復号化しない限り検索処理に利用することはできない。【０００５】
非特許文献１および２には、インデックスファイルからの情報の漏洩を防ぎつつキーワード検索を効率化するためのSearchable Symmetric Encryption（以後ＳＳＥという）と呼ばれる技術について、具体的な方法が記載されている。非特許文献１には、２つのＳＳＥの方式が記載されているが、ここではこの文献の１５〜２０ページにかけて記載されている方式（以後、ＳＳＥ１という）について説明する。【０００６】
（ＳＳＥ１の構成）
非特許文献１に記載のＳＳＥ方式（ＳＳＥ１）の構成について説明する。この方式では、文書をキーワード検索するために線形リストを暗号化した構造のデータを用いている。説明のため、文書とキーワードに関する前提を説明する。文書群はＤ＝｛Ｄ＿１，…，Ｄ＿ｎ｝と表現し、各文書Ｄ＿ｊ（ｊ＝１，…，ｎ）は、区別に利用できる識別子を有するものとする。識別子としてはファイル名や通し番号などを用いることができる。【０００７】
図１０は、非特許文献１に記載のＳＳＥ方式でいうキーワード辞書８１０（インデックスファイル）Δの構成について示す説明図である。キーワード辞書８１０Δは、検索可能なキーワードの集合をΔ＝｛ｗ＿１，…，ｗ＿ｄ｝とし、キーワード８１０ａ（ｗ＿ｉ）に対する検索結果Ｄ（ｗ＿ｉ）として、Ｄ中のｗ＿ｉを含む文書の識別情報８１０ｂの集合である。ｉｄ（Ｄ，ｗ＿ｉ，ｊ）は、Ｄ（ｗ＿ｉ）に含まれるｊ番目の該当文書の識別子を表す。【０００８】
図１０は、文書群Ｄに対して辞書Δに含まれているキーワード８１０ａ（ｗ＿ｉ）に基づく検索結果である文書の識別情報８１０ｂ（ｉｄ（Ｄ（ｗ＿ｉ）））の表を示している。このような表をデータとして保管する具体的な方法の１つに、線形リストと呼ばれるデータ構造を用いるものがある。線形リストには、片方向リストと双方向リストがある。ここで、片方向リストを用いた線形リストに関して説明を行う。【０００９】
図１１は、図１０に示した非特許文献１に記載のＳＳＥ方式の例に用いられる、３つの整数値を格納した片方向リスト８２０ａ〜ｂの例について示す説明図である。２つの並んだ四角形はリストを構成する１要素を表している。この１要素が、ここでいうノードである。左側の四角形には整数値が記載されている。これはノードが持つデータである。右側の四角形には矢印が記載されており、矢印はリスト上の次のノードを指している。これは、各ノードが記憶されているメモリ上のアドレスや記憶装置上の位置（以後、これを単にアドレスという）を表す。【００１０】
ｉ番目のノードのアドレスおよび値をそれぞれａｄ＿ｉ，ｖａｌ＿ｉとすれば、ｉ番目のノードは、ノードが記憶されているアドレスと、記憶している値と、次のノードの記憶されているアドレスとを一組のデータとして（ａｄ＿ｉ，ｖａｌ＿ｉ，ａｄ＿｛ｉ＋１｝）と表すことができる。以降、この表記を用いる。リストの終端は次アドレスを特別な記号であるＮｕｌｌとするか、値をＮｕｌｌとすることで表すことができる。図１１で示す片方向リスト８２０ａでは前者（空ノードでリスト終端を示す）、８２０ｂでは後者（Ｎｕｌｌ値でリスト終端を示す）の例を示している。説明のため、線形リストの先頭のノードを始点と呼び、終端のノードを終点と呼ぶ。【００１１】
線形リストを用いて検索結果を記録するため、検索結果配列と始点配列を用いて検索結果を記録するという方法をここでは用いる。検索結果配列には、各キーワードについての検索結果の線形リストをノード毎に記録する。この配列はすべてのキーワードに対する線形リストを記憶するが、各キーワードに関する線形リストの始点がどのアドレスであるかについての情報は配列内には記憶されない。始点に関する情報は、もう一つの配列である始点配列に記憶される。【００１２】
図１２は、図１０に示した非特許文献１に記載のＳＳＥ方式の例で、キーワードｗ＿ｉに関する検索結果であるｉｄ＿｛ｉ，１｝，ｉｄ＿｛ｉ，２｝，ｉｄ＿｛ｉ，３｝を線形リスト化して記憶した検索結果配列８３０および始点配列８４０について示す説明図である。キーワードｗ＿ｉに関する検索結果の始点として、始点配列８４０のｉ番目の要素にａｄ＿｛ｉ，１｝が記録されている。【００１３】
ｉ番目がｗ＿ｉに関する始点を記録しているといった対応関係は、キーワードがアルファベット順で辞書内の何番目にあるかといった情報を用いて定めればよく、一意に対応がとれさえすればどのような方法でもよい。ここでは、説明を簡潔なものとするために、ｉ番目にｗ＿ｉに対する始点情報が記録されている場合を例として用いたものである。【００１４】
この図１２に示した線形リストを用いて、検索結果を得る方法について説明する。図１２では、キーワードｗ＿ｉに関する検索結果がｉｄ＿｛ｉ，１｝，ｉｄ＿｛ｉ，２｝，ｉｄ＿｛ｉ，３｝である場合の例を表している。以下に、これらの配列からｗ＿ｉに関する検索結果を読み出す処理を記載する。【００１５】
１．まず、始点配列８４０のｉ番目のアドレス８４０ｂ＝ａｄ＿｛ｉ，１｝を読み出す。
２．次に、検索結果配列８３０のアドレス８３０ａ＝ａｄ＿｛ｉ，１｝番目の要素を参照し、１つ目の検索結果８３０ｂ＝ｉｄ＿｛ｉ，１｝と次の検索結果が記憶されている配列である次アドレス８３０ｃ＝ａｄ＿｛ｉ，２｝を得る。
３．次に、検索結果配列８３０のアドレス８３０ａ＝ａｄ＿｛ｉ，２｝番目の要素を参照し、２つ目の検索結果８３０ｂ＝ｉｄ＿｛ｉ，２｝と次の検索結果が記憶されている配列である次アドレス８３０ｃ＝ａｄ＿｛ｉ，３｝を得る。
４．次に、検索結果配列８３０のアドレス８３０ａのａｄ＿｛ｉ，３｝番目の要素を参照し、３つ目の検索結果８３０ｂ＝ｉｄ＿｛ｉ，３｝と次の検索結果が記録されている配列である次アドレス８３０ｃ＝「Ｎｕｌｌ値」を得る。従って、ｉｄ＿｛ｉ，１｝，ｉｄ＿｛ｉ，２｝，ｉｄ＿｛ｉ，３｝を、キーワードｗ＿ｉに関する検索結果として出力する。【００１６】
以上のような方法は、文書が新しく追加された場合であっても、配列に空きアドレスがある限りはいくらでも情報を追加することができ、データベースのような次々に文書が追加されるような用途では有用である。一方で、これらの配列が登録文書に関する情報を含んでいることも明白である。【００１７】
得られる情報には、ある文書がどのようなキーワードを含んでいるかという情報や異なる２つの文書の類似性がある。従って、暗号化されたデータベースにおいて始点配列と検索結果配列からなる補助データを用いることは、登録された文書に関する情報漏洩を引き起こしうる。【００１８】
このような情報漏洩を防ぎながら、暗号化されたデータベースにおいてキーワード検索を効率化するために、線形リストを暗号化したデータを検索の補助のために用いるというＳＳＥ方式が、非特許文献１（ＳＳＥ１）で提案された。【００１９】
本明細書での説明において、出力が入力と鍵情報によって定まる関数（以後、鍵付という）と、出力が入力と鍵情報によって定まる置換（以後、鍵付き置換という）を用いる。鍵付き関数Ｆにおいて、鍵がｋ、入力がｘであるときの出力をＦ（ｋ；ｘ）と表記する。入力がｘ＿１，…，ｘ＿ｎというｎ個の数値である場合の出力は、Ｆ（ｋ；ｘ＿１，…，ｘ＿ｎ）と書く。鍵付き置換についても同じように表記する。即ち、括弧内の第１要素が鍵であり、セミコロンで区切った右側の第２要素が入力である。【００２０】
値の暗号化には、暗号化処理と復号処理が共通の秘密鍵で行われる共通鍵暗号方式を用い、共通鍵暗号の暗号化関数をＥｎｃ（），復号関数をＤｅｃ（）という。鍵ｋでデータｄを暗号化した結果はＥｎｃ（ｋ；ｄ）と書き、鍵ｋで暗号文ｃを復号した結果はＤｅｃ（ｋ；ｃ）という。【００２１】
ＳＳＥ１は、前述した始点配列および検索結果配列を暗号化処理と組み合わせて、検索用の補助データとして用いる方式である。以降、始点配列８４０および検索結果配列８３０を暗号化したものを、それぞれ暗号化始点配列８６０と暗号化検索結果配列８５０という。暗号化検索結果配列では、線形リストを変更したリスト状のデータ構造（以後、暗号化線形リストという）が用いられている。この暗号化線形リストについて説明する。【００２２】
（暗号化線形リストの説明）
線形リストのｉ番目のノードは、（ａｄ＿ｉ，ｖａｌ＿ｉ，ａｄ＿｛ｉ＋１｝）の３つ組みによって構成されていた。暗号化線形リストでは、線形リストの各ノードについて共通鍵暗号の鍵ｋ＿ｉを用意し、（ａｄ＿ｉ，Ｅｎｃ（ｋ＿ｉ；ｖａｌ＿ｉ），Ｅｎｃ（ｋ＿ｉ；ｋ＿｛ｉ＋１｝），Ｅｎｃ（ｋ＿ｉ；ａｄ＿｛ｉ＋１｝））という４つ組みデータを一組とする。【００２３】
これを、ａｄ＿ｉアドレスに残りの３データを記憶する。記憶されている３つ組みの値とｋ＿ｉを組み合わせれば、復号処理によってｖａｌ＿ｉ，ｋ＿｛ｉ＋１｝，ａｄ＿｛ｉ＋１｝が得られるので、線形リストのｉ番目以降を得ることができる。したがってａｄ＿１とｋ＿１を用いれば、暗号化線形リストに記憶されているすべての値を得ることができる。以降、これらの値を暗号化線形リストにおける始点情報とする。【００２４】
リストの終端は、線形リストと同様に次アドレスを特別な記号であるＮｕｌｌとするか、何も記憶されていないノード（以降、空ノードという）のアドレスを次アドレスとすることで表すことができる。本明細書では、以降、リストの終端に記憶される次アドレスを空ノードとする型の暗号化線形リストを用いる。以降、終端のノードに記憶されている次アドレスと、次アドレスを暗号化している鍵の組を終点情報とする。【００２５】
なお、値、次アドレスの暗号化鍵、次アドレスはいずれも同一の鍵で暗号化されているが、ｋ＿ｉを鍵とした鍵付き関数を用いて異なる鍵を計算して、それぞれ異なる鍵で暗号化してもよい。その場合には、鍵付き関数Ｋを用い、Ｋ（ｋ＿ｉ；１），Ｋ（ｋ＿ｉ；２），Ｋ（ｋ＿ｉ；３）を計算して、それぞれを暗号化鍵とする。１と２と３は例であり、他の予め定められた値でもよい。以後ここでは、概念を平易に説明するため、単一の鍵を用いた例について説明する。【００２６】
（暗号化検索結果配列の説明）
続いて、暗号化線形リストを用いた暗号化検索結果配列について説明する。図１３は、図１０に示した非特許文献１に記載のＳＳＥ方式（ＳＳＥ１）の例で、暗号化線形リストを用いた暗号化始点配列８６０および暗号化検索結果配列８５０について示す説明図である。暗号化検索結果配列８５０は、暗号化線形リストによって複数のキーワードについての検索結果を記憶した配列である。ここで、各キーワードｗ＿ｉに対する暗号化線形リストの始点情報のアドレスをａｄ＿｛ｗ＿ｉ｝、鍵をｋ＿｛ｗ＿ｉ｝と記載すると、暗号化検索結果配列８５０はアドレス８５０ａに対応する暗号化された検索結果、暗号鍵および次アドレス８５０ｂを記憶した表となる。【００２７】
暗号化始点配列は、各キーワードに対する始点情報を暗号化して記憶している配列である。これを用いれば、暗号化検索結果配列から対応するキーワード検索結果を抽出することができる。次に暗号化始点配列について説明する。【００２８】
暗号化始点配列は、各キーワードｗ＿ｉに関する暗号化線形リストの始点情報であるａｄ＿｛ｗ＿ｉ｝とｋ＿｛ｗ＿ｉ｝の組を暗号を暗号化鍵ｋ＿ｅと置換鍵ｋ＿ｐを用いて加工してから記憶したものである。Ｐを鍵付き置換、Ｆを鍵付き関数とすると、暗号化始点配列はアドレス８６０ａ＝Ｐ（ｋ＿ｐ；ｗ＿ｉ）に、暗号化されたアドレスと暗号鍵８６０ｂ、即ちＥｎｃ（Ｆ（ｋ＿ｅ；ｗ＿ｉ）；ａｄ＿｛ｗ＿ｉ｝）とＥｎｃ（Ｆ（ｋ＿ｅ；ｗ＿ｉ）；ｋ＿｛ｗ＿ｉ｝）を記憶した表となる。この処理を暗号化鍵ｋ＿ｅ、置換鍵ｋ＿ｐを用いた始点情報の暗号化処理という。【００２９】
即ち、Ｐ（ｋ＿ｐ；ｗ＿ｉ）とＦ（ｋ＿ｅ；ｗ＿ｉ）を用いて、Ｐ（ｋ＿ｐ；ｗ＿ｉ）アドレスを参照し、Ｆ（ｋ＿ｅ；ｗ＿ｉ）を用いて暗号文を復号すれば、ａｄ＿｛ｗ＿ｉ｝とｋ＿｛ｗ＿ｉ｝とを得ることができる。先に説明したように、ａｄ＿｛ｗ＿ｉ｝とｋ＿｛ｗ＿ｉ｝を用いれば、暗号化検索結果配列よりｗ＿ｉに関する検索結果を得ることができる。【００３０】
始点配列と検索結果配列を用いていた場合、キーワード以外の特別な情報を用いることなく検索結果を得ることができた。これに対して、暗号化始点配列と暗号化検索結果配列を用いる場合、始点情報を得るためには暗号化鍵ｋ＿ｅと置換鍵ｋ＿ｐを要するため、暗号化始点配列と暗号化検索結果配列を記憶していても、これらの鍵がなければどのキーワードに関する検索結果も参照できない。あるキーワードｗ＿ｉについてＰ（ｋ＿ｐ；ｗ＿ｉ）とＦ（ｋ＿ｅ；ｗ＿ｉ）が判明していれば、対応する検索結果を参照することができる。【００３１】
なお、ｋ＿ｐとｋ＿ｅは一つの鍵ｋと鍵付き関数Ｋを用いて、Ｋ（ｋ；１）＝ｋ＿ｐ，Ｋ（ｋ；２）＝ｋ＿ｅとして、生成してもよい。各々のカッコ内の１と２の値は例であり、他の予め与えられた値でもよい。以降、ｋ＿ｐとｋ＿ｅは一組で用いることを前提とする場合、鍵ｋのように一つの値だけを書く。このような方法によれば、記憶する鍵の数や記憶容量を削減することができる。【００３２】
（暗号化始点配列および暗号化検索結果配列の生成）
暗号化始点配列と暗号化検索結果配列を生成する処理は、以下の４段階の処理に分けることができる。
１．検索結果を生成する処理
２．共通利用データを生成する処理
３．暗号化検索結果配列を生成する処理
４．暗号化始点配列を生成する処理
以下、上記の各段階について説明する。【００３３】
「１．検索結果を生成する処理」とは、入力された文書と辞書に対するキーワード検索結果を生成する処理である。【００３４】
「２．共通利用データを生成する処理」とは、各キーワード毎に生成された暗号化線形リストの始点情報を暗号化始点配列に記録し、各キーワード毎に生成された暗号化線形リストを暗号化検索結果配列に記憶する処理である。これらの処理では共通して暗号化線形リストの始点情報を用いる。【００３５】
「３．暗号化検索結果配列を生成する処理」とは、各キーワード毎に始点情報を生成する処理である。この処理では、各キーワード毎に生成された検索結果と、始点情報を元に暗号化線形リストを生成し、暗号化検索結果配列に記憶させる。始点以降の鍵はランダムに生成し、アドレスについて重複が起きないように生成する。カウンタを用いる方法や空いているアドレスを記憶する方法を用いることができる。カウンタを用いる方法で、鍵付きの置換を用いれば、暗号化検索結果配列の中でどのアドレスとどのアドレスがリストとして繋がっているのかを判明しにくくすることができる。【００３６】
「４．暗号化始点配列を生成する処理」とは、各キーワード毎に生成された始点情報を暗号化鍵を用いて暗号化し、置換鍵とキーワードによって定まる暗号化始点配列に記憶させる処理である。【００３７】
（暗号化データベース装置の構成）
図１４は、図１０に示した非特許文献１に記載のＳＳＥ方式（ＳＳＥ１）を実行する暗号化データベース装置９００の構成について示す説明図である。暗号化データベース装置９００は、コンピュータプログラムを実行する主体であるプロセッサ９０１と、データを記憶する記憶手段９０２と、外部からのデータ入出力を行う入出力手段９０３とで構成される。【００３８】
プロセッサ９０１は、暗号化データベースプログラムが動作することにより、暗号化検索結果生成手段９１０と、後述のトラップドア生成手段９３０と、暗号化データベース検索手段９４０として動作する。また、記憶手段９０２は、暗号化データベースの検索に係るデータである暗号化始点配列および暗号化検索結果配列を記憶する暗号化検索結果記憶手段９２０として動作する。【００３９】
図１５は、図１４に示した暗号化検索結果生成手段９１０の構成について示す説明図である。暗号化検索結果生成手段９１０は、生成処理制御部９１１と、検索結果生成部９１２と、始点情報生成部９１３と、暗号化線形リスト生成部９１４と、始点情報暗号化部９１５を備える。また、暗号化検索結果記憶手段９２０は、暗号化検索結果配列記憶部９２１と、暗号化始点配列記憶部９２２とを備える。【００４０】
暗号化検索結果生成手段９１０は、鍵、登録する文書、および辞書の各々を入出力手段９０３を介しての外部からの入力情報とし、暗号化検索結果記憶手段９２０の備える暗号化検索結果配列記憶部９２１と暗号化始点配列記憶部９２２の各々に値を記憶する。【００４１】
生成処理制御部９１１は、鍵、登録する文書、および辞書を入力情報として、暗号化検索結果生成手段９１０の備える各機能部を制御する。検索結果生成部９１２は、文書および辞書を入力情報として、キーワード毎の検索結果を出力する。始点情報生成部９１３は、暗号化線形リストの始点情報を入出力手段９０３を介して外部に出力する。【００４２】
暗号化線形リスト生成部９１４は、キーワード毎の検索結果と始点情報を入力情報として、それらの暗号化線形リストを生成してこれを暗号化検索結果配列記憶部９２１に記憶する。始点情報暗号化部９１５は、入力された鍵を用いて暗号化線形リストの始点情報を暗号化し、またその鍵を入力情報として暗号化始点配列記憶部９２２の記憶する値を更新する。【００４３】
暗号化検索結果配列記憶部９２１は暗号化検索結果を記憶する。暗号化始点配列記憶部９２２は暗号化始点配列を記憶する。【００４４】
図１６は、図１５に示した暗号化検索結果生成手段９１０の動作を示すフローチャートである。まず、鍵、文書群Ｄ＝｛Ｄ＿１，…，Ｄ＿ｎ｝，辞書Δ＝｛ｗ＿１，…，ｗ＿ｄ｝が入出力手段９０３を介して生成処理制御部９１１に入力される（ステップＳ９５１）。生成処理制御部９１１は、文書群Ｄと、辞書Δとを検索結果生成部９１２に入力し、その出力である文書群Ｄの辞書Δについての検索結果を得る（ステップＳ９５２）。【００４５】
生成処理制御部９１１は、各キーワードｗ＿ｉの検索結果Ｄ（ｗ＿ｉ）について、以下の処理（ステップＳ９５３〜ステップＳ９５５）を実行する。まず、生成処理制御部９１１は始点情報生成部９１３を動作させ、その出力である始点情報Ｘを得る（ステップＳ９５３）。続いて、生成処理制御部９１１はその始点情報Ｘと鍵とｗ＿ｉとを始点情報暗号化部９１５に入力し、始点情報暗号化部９１５は鍵を用いて始点情報Ｘを暗号化し、これを暗号化始点配列記憶部９２２の鍵とキーワードによって定まるアドレスに記憶させる（ステップＳ９５４）。【００４６】
このステップＳ９５４と並行して、生成処理制御部９１１は始点情報ＸとＤ（ｗ＿ｉ）とを暗号化線形リスト生成部９１４に入力する。暗号化線形リスト生成部９１４は、始点情報ＸとＤ（ｗ＿ｉ）についての暗号化線形リストを生成し、これを暗号化検索結果配列記憶部９２１に記憶する（ステップＳ９５５）。【００４７】
次に、この暗号化始点配列と暗号化検索結果配列によって行われるデータ検索の処理について説明する。前述した通り、暗号化検索結果配列はｋ＿ｅおよびｋ＿ｐを用いて生成される。【００４８】
図１３にあるように、暗号化始点配列より、キーワードｗ＿ｉについての暗号化線形リストの始点情報を抽出するためには、Ｐ（ｋ＿ｐ；ｗ＿ｉ）とＦ（ｋ＿ｅ；ｗ＿ｉ）を用いることができる。このＰ（ｋ＿ｐ；ｗ＿ｉ）とＦ（ｋ＿ｅ；ｗ＿ｉ）の組を、キーワードｗ＿ｉに対するトラップドアという。これを使えば、キーワードｗ＿ｉについての暗号化検索結果配列より、検索結果を抽出することができる。【００４９】
図１７は、図１４に示したトラップドア生成手段９３０および暗号化データベース検索手段９４０の構成について示す説明図である。暗号化データベース検索手段９４０は、始点情報抽出部９４１と、検索結果抽出部９４２とを備える。【００５０】
トラップドア生成手段９３０は、入出力手段９０３を介して外部から入力された鍵ｋ＝（ｋ＿ｅ，ｋ＿ｐ）とキーワードｗ＿ｉとを入力として、ｗ＿ｉに対するトラップドアを算出する。始点情報抽出部９４１は、このトラップドアを入力として、暗号化始点配列記憶部９２２のアドレスγに記憶されている値ηを復号化し、暗号化線形リストの始点情報を検索結果として出力する。【００５１】
検索結果抽出部９４２は、この始点情報を入力として、暗号化検索結果配列記憶部９２１を、入力された始点情報を用いて検索結果を抽出して入出力手段９０３を介して外部に出力する。【００５２】
図１８は、図１４および図１７に示したトラップドア生成手段９３０の動作について示すフローチャートである。鍵ｋ＝（ｋ＿ｅ，ｋ＿ｐ）とキーワードｗ＿ｉとが、入出力手段９０３を介して外部からトラップドア生成手段９３０に入力される（ステップＳ９６１）と、トラップドア生成手段９３０は、γ＝Ｐ（ｋ＿ｐ；ｗ＿ｉ）とη＝Ｆ（ｋ＿ｅ；ｗ＿ｉ）とを算出し、これらのγとηの値を暗号化データベース検索手段９４０に出力する（ステップＳ９６２）。【００５３】
図１９は、図１４および図１７に示した暗号化データベース検索手段９４０の動作について示すフローチャートである。図１８のステップＳ９６２で出力されたトラップドアγとηとが暗号化データベース検索手段９４０に入力される（ステップＳ９７１）と、始点情報抽出部９４１がこれらγとηの入力を受けて、始点情報を検索結果抽出部９４２に出力する（ステップＳ９７２）。そして、この入力を受けた検索結果抽出部９４２は、検索結果を入出力手段９０３を介して外部に出力する（ステップＳ９７３）。【００５４】
以上で説明したＳＳＥ１によって、ユーザの所有する文書群Ｄ＝｛Ｄ＿１，…，Ｄ＿ｎ｝の辞書Δに対するインデックスをデータベースに登録する処理の例と、このインデックスによる検索処理の動作例は、以下のようになる。【００５５】
（検索用データ登録の処理）
１．ユーザが鍵ｋを生成する。
２．次に、ユーザは、鍵ｋと、文書群Ｄと、辞書Δを入力として暗号化検索結果を生成する。
３．次に、ユーザは、暗号化用の鍵を生成し、生成した鍵を用いてＤを暗号化する。
４．次に、暗号化検索結果と暗号文を暗号化データベース装置９００に送付して記憶させる。【００５６】
（検索の処理）
以下はキーワードｗ＿ｉに関する検索の処理の動作例である。ここでいうユーザとは、暗号鍵ｋを正当に保有し、前述のデータ登録の処理を実行したユーザである。
１．ユーザはｋとｗ＿ｉを入力としてトラップドアを生成し、暗号化データベース装置９００に送付する。
２．暗号化データベース装置９００は、トラップドアと暗号化検索結果を入力として、検索処理を実行し、検索結果を得る。検索結果は文書識別子の集合である。
３．暗号化データベース装置９００は、検索処理の結果である識別子の集合に対応する暗号化された文書をユーザに送付する。
４．ユーザは受け取った文書を復号し、検索結果を得る。【００５７】
以上で説明したＳＳＥ１による検索方法には、以下の特徴がある。
・まず、検索の依頼にキーワード自体が用いられない。各トラップドアは、ユーザの持つ鍵によってキーワードから変換されている。鍵はランダムに選ばれており、トラップドアとキーワードの対応関係は暗号化データベース装置９００の側では不明となる。
・さらに、各キーワードに対する検索結果が入れ替えられ、且つ暗号化されている。暗号化はトラップドアによって対応するキーワードに関する箇所のみ復号される。従って、正当な鍵を持たない者にとっては、検索結果の全てがキーワードｗ＿ｉのうちのいずれかに対応することはわかるが、どのキーワードに対応するものであるかが不明である。【００５８】
以上の情報は、図１０のような表や線形リストを用いる場合にはデータベースが得ることができる情報である。即ち、ＳＳＥ１を用いることによって、これらの情報の漏洩を防ぐことが可能である。【００５９】
これに関連して、次の各々の特許文献がある。その中でも特許文献１には、ビデオ録画装置でユーザの嗜好を記録して的確に自動録画を行うための個人データベースの生成方法について記載されている。特許文献２には、端末ごと・ユーザごとのセキュリティポリシーを検索するためのデータベースについて記載されている。特許文献３には、暗号化されたデータを高速に検索できるデータベースについて記載されている。
【先行技術文献】
【特許文献】
【００６０】
【特許文献１】特開２００２−３００６１４号公報
【特許文献２】特開２００８−０５３８１８号公報
【特許文献３】特表２００８−５１７３５４号公報
【非特許文献】
【００６１】
【非特許文献１】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
【発明の概要】
【発明が解決しようとする課題】
【００６２】
しかしながら、ＳＳＥ１は、文書の追加・削除・更新を行う際に登録された文書に関する情報が漏洩する危険性がある。以下、その点について説明する。【００６３】
ＳＳＥ１には、文書の追加・削除・更新を実行するための機能がない。より具体的には、特定の文書を追加する機能、特定の文書を削除する機能、および特定の文書を更新する機能がない。文書の登録に関する処理は、複数の文書に対する暗号化検索結果を新規に生成するための処理があるのみである。膨大な数および分量の文書に対して、暗号化検索結果を全部削除して新規に生成する処理を頻繁に繰り返すことは、現実的に可能な処理ではない。【００６４】
データベースは、次々と新しい文書が追加されていくものである。さらに登録された各々の文書も、次々と更新や削除を繰り返されるものである。従って、文書の追加・削除・更新のための機能は必要不可欠である。ＳＳＥ１を構成するアルゴリズムを利用してこれらの機能を実現することは、可能ではあるが、情報漏洩のリスクが生じる。以下、それぞれの処理で生じるリスクついて説明する。【００６５】
（文書追加時のリスク）
文書識別子がｉｄ＿ａであり、キーワードｗ＿ｉを含む文書を追加する場合を考える。暗号化検索結果配列に記憶されているキーワードｗ＿ｉに関する暗号化線形リストの終端のノードには、検索結果の最後の識別子ｉｄと次アドレスを暗号化する鍵ｋ＿ｎｅｘｔとａｄ＿ｎｅｘｔを暗号化した値が記憶されている。【００６６】
このアドレスを暗号化している鍵をｋ＿ｅｎｄとすると、このノードには、Ｅｎｃ（ｋ＿ｅｎｄ；ｉｄ）、Ｅｎｃ（ｋ＿ｅｎｄ；ｋ＿ｎｅｘｔ）、Ｅｎｃ（ｋ＿ｅｎｄ；ａｄ＿ｎｅｘｔ）といった各々の値が記憶されている。従って、ａｄ＿ｎｅｘｔ、ｋ＿ｎｅｘｔを始点情報とした暗号化線形リストを暗号化検索結果に追記すれば、従来の検索結果の後に追加の検索結果が記憶された暗号化線形リストが暗号化検索結果配列に記憶される。【００６７】
即ち、既に登録されている暗号化線形リストの終端情報を始点情報として、追加検索結果の暗号化線形リストを生成し、生成した暗号化線形リストを暗号化検索結果配列に追記することによって、文書の追加処理を実行することができる。この追加処理を実行するためには、追加される文書群が含むすべてのキーワード集合Ｗについての終端情報があればよい。【００６８】
しかしながら、このデータは、それぞれのＷに対するトラップドアと暗号化検索結果配列を用いて検索処理を実行すれば得ることができる。先に挙げた登録処理を行った後のユーザとデータベースにトラップドアを送付するならば、データベース装置はＷに含まれるキーワードに関して、暗号化されていないすべての検索結果を得てしまう。即ち、一度の検索処理をデータベース装置に依頼する場合に比べても非常に多くの情報がデータベースに対して漏洩することになる。【００６９】
（文書削除時のリスク）
文書識別子がｉｄ＿ｄである文書Ｄ＿ｄを削除する場合を考える。その文書が含んでいたキーワードそれぞれの暗号化線形リスト上のどこかに、ｉｄ＿ｄは記載されている。これらを消去することでインデックスから対象の文書に関する情報を除去することができる。従って、ｉｄ＿ｄがそれぞれのキーワードに関する暗号化線形リストのどこに記載されているかがわかればよい。【００７０】
これらの情報は、文書Ｄ＿ｄが含むすべてのキーワードに対するトラップドアを用いた検索処理を実行すれば得ることができる。追加処理の場合と同様に、先に挙げた登録処理を行った後のユーザとデータベースにおいて同様の手順を実行した場合、データベース装置はＤ＿ｄが含んでいたすべてのキーワードに対する暗号化されていない検索結果を得ることになる。このような方法で文書を削除する場合も、一度の検索処理をデータベースに依頼する場合に比べても非常に多くの情報がデータベース装置に対して漏洩することになる。【００７１】
（文書更新時のリスク）
文書の更新は、更新前の文書を削除し、更新後の文書を追加することで実行できる。従って、文書追加時および削除時のリスクとして説明した各々のリスクが、両方とも発生することになる。【００７２】
以上で説明したＳＳＥ１、即ち非特許文献１に記載の技術で文書の追加・削除・更新を行う際に発生する情報漏洩のリスクは、非特許文献１に記載のもう１つの技術や非特許文献２に記載の技術にも同様に発生する。さらに、特許文献１〜３にも、このリスクについての言及はない。即ち、このリスクを軽減もしくは解消しうる公知技術は、現状存在しない。【００７３】
本発明の目的は、文書の追加・削除・更新を行う際にも情報漏洩のリスクが生じえない暗号化検索データベース装置、暗号化検索用データの追加削除方法および追加削除プログラムを提供することにある。
【課題を解決するための手段】
【００７４】
上記目的を達成するため、本発明に係る暗号化検索データベース装置は、暗号化されて登録された複数の文書データの中からキーワードによる検索を行う暗号化検索データベース装置であって、各キーワードごとに当該キーワードに対応する文書データの一覧である検索結果配列およびこの検索結果配列で当該キーワードに対応する最初のデータのアドレスの一覧である始点配列を作成すると共にこれらを与えられた暗号鍵によって各々暗号化した暗号化検索結果配列および暗号化始点配列を作成する暗号化検索結果生成手段と、作成された暗号化検索結果配列および暗号化始点配列を記憶する暗号化検索結果記憶手段と、キーワードと暗号鍵を利用して暗号化検索結果配列および暗号化始点配列からキーワードによる検索を行う暗号化データベース検索手段と、新規登録された文書データに係る内容を暗号化検索結果配列および暗号化始点配列に追加する暗号化検索結果追加手段とを有し、暗号化検索結果追加手段が、新規登録された文書データに対して特定のキーワードを含む検索結果の一覧である線形リストを作成する検索結果生成部と、線形リストで当該キーワードに対応する最初のデータのアドレスである始点情報を作成する始点情報生成部と、作成された始点情報を暗号鍵で暗号化して暗号化始点配列に追加記憶させる始点情報暗号化部と、線形リストを暗号鍵で暗号化した暗号化線形リストを作成して暗号化検索結果配列に追加記憶させる暗号化線形リスト追加部とを有すると共に、この暗号化線形リスト追加部が、各キーワードと当該キーワードについての暗号化線形リストの最後のデータのアドレスである終点情報を追加用情報として予め備えられた追加用情報記憶手段に記憶させる機能を有することを特徴とする。【００７５】
上記目的を達成するため、本発明に係る暗号化検索用データの追加削除方法は、暗号化されて登録された複数の文書データの中からキーワードによる検索を行う暗号化検索データベース装置にあって、各キーワードごとに当該キーワードに対応する文書データの一覧である検索結果配列およびこの検索結果配列で当該キーワードに対応する最初のデータのアドレスの一覧である始点配列を暗号化検索結果生成手段が作成し、検索結果配列および始点配列を暗号化検索結果生成手段が与えられた暗号鍵によって各々暗号化して暗号化検索結果記憶手段に記憶させ、新規登録された文書データに対して特定のキーワードを含む検索結果の一覧である線形リストを暗号化検索結果追加手段の検索結果生成部が作成し、線形リストで当該キーワードに対応する最初のデータのアドレスである始点情報を暗号化検索結果追加手段の始点情報生成部が作成し、始点情報を暗号化検索結果追加手段の始点情報暗号化部が暗号鍵で暗号化して暗号化始点配列に追加記憶させ、線形リストを暗号鍵で暗号化した暗号化線形リストを暗号化検索結果追加手段の暗号化線形リスト追加部が作成して暗号化検索結果配列に追加記憶させ、各キーワードと当該キーワードについての暗号化線形リストの最後のデータのアドレスである終点情報を追加用情報として暗号化検索結果追加手段の暗号化線形リスト追加部が予め備えられた追加用情報記憶手段に記憶させることを特徴とする。【００７６】
上記目的を達成するため、本発明に係る暗号化検索用データの追加削除プログラムは、暗号化されて登録された複数の文書データの中からキーワードによる検索を行う暗号化検索データベース装置にあって、この暗号化検索データベース装置が備えるコンピュータに、各キーワードごとに当該キーワードに対応する文書データの一覧である検索結果配列およびこの検索結果配列で当該キーワードに対応する最初のデータのアドレスの一覧である始点配列を作成する手順、検索結果配列および始点配列を与えられた暗号鍵によって各々暗号化して暗号化検索結果記憶手段に記憶させる手順、新規登録された文書データに対して特定のキーワードを含む検索結果の一覧である線形リストを作成する手順、線形リストで当該キーワードに対応する最初のデータのアドレスである始点情報を作成する手順、始点情報を暗号鍵で暗号化して暗号化始点配列に追加記憶させる手順、線形リストを暗号鍵で暗号化した暗号化線形リストを作成して暗号化検索結果配列に追加記憶させる手順、および各キーワードと当該キーワードについての暗号化線形リストの最後のデータのアドレスである終点情報を追加用情報として予め備えられた追加用情報記憶手段に記憶させる手順を実行させることを特徴とする。
【発明の効果】
【００７７】
本発明は、上記したように、新規登録された文書データに対して線形リストと始点情報とを作成してそれら各々を暗号化して暗号化検索結果記憶手段に追加記憶させると同時に、その最後のデータのアドレスを終点情報として追加用情報記憶手段に記憶させるように構成したので、全てのキーワードを含むトラップドアを用いなくてもデータを追加することができる。【００７８】
これによって、文書の追加・削除・更新を行う際にも情報漏洩のリスクが生じえないという優れた特徴を持つ暗号化検索データベース装置、暗号化検索用データの追加削除方法および追加削除プログラムを提供することができる。
【図面の簡単な説明】
【００７９】
【図１】図２に示したプロセッサおよびデータ蓄積装置によって実現される各機能についてより詳しく説明する説明図である。
【図２】本発明の第１の実施形態に係る暗号化検索データベース装置のハードウェアとしての構成について示す説明図である。
【図３】図１に示した暗号化検索結果追加手段の、より詳細な構成について示す説明図である。
【図４】図３に示した暗号化検索結果追加手段の動作について示すフローチャートである。
【図５】図１に示した暗号化検索結果削除手段の、より詳細な構成について示す説明図である。
【図６】図５に示した暗号化検索結果削除手段の動作について示すフローチャートである。
【図７】本発明の第２の実施形態に係る暗号化検索データベース装置の構成について示す説明図である。
【図８】図７に示した暗号化検索結果追加手段の、より詳細な構成について示す説明図である。
【図９】図７に示した暗号化検索結果追加手段の動作について示すフローチャートである。
【図１０】非特許文献１に記載のＳＳＥ方式でいうキーワード辞書（インデックスファイル）Δの構成について示す説明図である。
【図１１】図１０に示した非特許文献１に記載のＳＳＥ方式の例に用いられる、３つの整数値を格納した片方向リストの例について示す説明図である。
【図１２】図１０に示した非特許文献１に記載のＳＳＥ方式の例で、キーワードに関する検索結果を線形リスト化して記憶した検索結果配列および始点配列について示す説明図である。
【図１３】図１３は、図１０に示した非特許文献１に記載のＳＳＥ方式（ＳＳＥ１）の例で、暗号化線形リストを用いた暗号化始点配列および暗号化検索結果配列について示す説明図である。
【図１４】図１０に示した非特許文献１に記載のＳＳＥ方式（ＳＳＥ１）を実行する暗号化データベース装置の構成について示す説明図である。
【図１５】図１４に示した暗号化検索結果生成手段の構成について示す説明図である。
【図１６】図１５に示した暗号化検索結果生成手段の動作を示すフローチャートである。
【図１７】図１４に示したトラップドア生成手段および暗号化データベース検索手段の構成について示す説明図である。
【図１８】図１４および図１７に示したトラップドア生成手段の動作について示すフローチャートである。
【図１９】図１４および図１７に示した暗号化データベース検索手段の動作について示すフローチャートである。
【発明を実施するための形態】
【００８０】
（第１の実施形態）
以下、本発明の実施形態の構成について添付図１〜３に基づいて説明する。
最初に、本実施形態の基本的な内容について説明し、その後でより具体的な内容について説明する。
本実施形態に係る暗号化検索データベース装置１０は、暗号化されて登録された複数の文書データの中からキーワードによる検索を行う暗号化検索データベース装置であり、各キーワードごとに当該キーワードに対応する文書データの一覧である検索結果配列およびこの検索結果配列で当該キーワードに対応する最初のデータのアドレスの一覧である始点配列を作成すると共にこれらを与えられた暗号鍵によって各々暗号化した暗号化検索結果配列および暗号化始点配列を作成する暗号化検索結果生成手段１１０と、作成された暗号化検索結果配列および暗号化始点配列を記憶する暗号化検索結果記憶手段２００と、キーワードと暗号鍵を利用して暗号化検索結果配列および暗号化始点配列からキーワードによる検索を行う暗号化データベース検索手段１３０と、新規登録された文書データに係る内容を暗号化検索結果配列および暗号化始点配列に追加する暗号化検索結果追加手段１４０とを有する。そして、暗号化検索結果追加手段１４０が、新規登録された文書データに対して特定のキーワードを含む検索結果の一覧である線形リストを作成する検索結果生成部１４２と、線形リストで当該キーワードに対応する最初のデータのアドレスである始点情報を作成する始点情報生成部１４４と、作成された始点情報を暗号鍵で暗号化して暗号化始点配列に追加記憶させる始点情報暗号化部１４６と、線形リストを暗号鍵で暗号化した暗号化線形リストを作成して暗号化検索結果配列に追加記憶させる暗号化線形リスト追加部１４５とを有すると共に、この暗号化線形リスト追加部１４５が、各キーワードと当該キーワードについての暗号化線形リストの最後のデータのアドレスである終点情報を追加用情報として予め備えられた追加用情報記憶手段２１０に記憶させる機能を有する。
【００８１】
ここで、暗号化検索結果追加手段１４０は、追加用情報が追加用情報記憶手段に記憶されている場合に当該追加用情報を読み出す追加用情報参照部１４３を備え、暗号化線形リスト追加部１４５が、追加用情報参照部によって読み出された追加用情報を始点情報として暗号化線形リストを作成する機能を有する。また、暗号化線形リスト追加部１４５は、始点情報と特定のキーワードを含む検索結果とを対応させたデータを暗号化線形リストに記憶させる機能を有する。
【００８２】
さらに、暗号化検索結果追加手段１４０の暗号化線形リスト追加部１４５が、各検索結果の文書識別子が記憶されている暗号化検索結果記憶手段２００上のアドレスを予め備えられた削除用情報記憶手段２２０に記憶する機能を有し、それと共に、ユーザから特定の文書識別子に係る文書の削除司令があった時に、この削除用情報記憶手段に記憶された当該文書識別子に対応する暗号化検索結果記憶手段上のアドレスを初期化する暗号化検索結果削除手段１５０を有する。
【００８３】
以上の構成を備えることによって、本実施形態に係る暗号化検索データベース装置１０は、文書の追加、削除、更新を行う際にも情報漏洩のリスクが生じえないものとなる。
以下、これをより詳細に説明する。
【００８４】
図２は、本発明の第１の実施形態に係る暗号化検索データベース装置１０のハードウェアとしての構成について示す説明図である。暗号化検索データベース装置１０は、コンピュータとしての基本的な構成を備えたものであって、コンピュータプログラムを実行する主体であるプロセッサ１１と、作業中のデータおよびプログラムを記憶する揮発性メモリである主記憶装置１２と、光学ディスク、磁気ディスク、フラッシュメモリなどのような可搬式記憶媒体にデータを読み書きする記憶媒体ドライブ１３と、ハードディスクなどのような不揮発性記憶装置であるデータ蓄積装置１４とをまず備える。
【００８５】
そして、暗号化検索データベース装置１０は、ユーザからのデータ入力を受け付ける（キーボードやマウスなどのような）入力装置１５と、処理結果をユーザに提示する（ディスプレイやプリンタなどのような）出力装置１６とをさらに備える。主記憶装置１２、記憶媒体ドライブ１３、データ蓄積装置１４の各々について、プロセッサ１１との間のデータ交換を媒介するメモリ制御インタフェース１２ａ、１３ａ、１４ａが各々備えられており、入力装置１５と出力装置１６との各々についても、プロセッサ１１との間のデータ交換を媒介するＩ／Ｏインタフェース１５ａ、１６ａが各々備えられている。これらの各装置は、バス１７を介して装置内部でのデータ交換を行う。
【００８６】
もちろん、暗号化検索データベース装置１０は１台のコンピュータのみでなく、ネットワークによって相互に接続された複数台のコンピュータによって構成されるものであってもよい。特に、サーバ−クライアント構成により、入力装置１５および出力装置１６をユーザが操作するクライアント装置とし、実際の検索に係る処理をサーバ装置で行うようにする構成が、一般的に考えられるものである。さらに、そのサーバ装置を、複数台のコンピュータによって負荷を分散するように構成することもできる。
【００８７】
図１は、図２に示したプロセッサ１１およびデータ蓄積装置１４によって実現される各機能についてより詳しく説明する説明図である。プロセッサ１１は、暗号化検索データベース管理プログラムが動作することにより、暗号化検索結果生成手段１１０、トラップドア生成手段１２０、暗号化データベース検索手段１３０、暗号化検索結果追加手段１４０、および暗号化検索結果削除手段１５０の各々として動作する。
【００８８】
また、データ蓄積装置１４は、暗号化検索結果記憶手段２００、追加用情報記憶手段２１０、および削除用情報記憶手段２２０の各々として動作する。暗号化検索結果記憶手段２００は、暗号化検索結果配列記憶部２０１と、暗号化始点配列記憶部２０２とをさらに備える。
【００８９】
このうち、暗号化検索結果生成手段１１０、トラップドア生成手段１２０、暗号化データベース検索手段１３０、暗号化検索結果配列記憶部２０１、および暗号化始点配列記憶部２０２は、背景技術として説明したＳＳＥ１、即ち暗号化検索結果生成手段９１０、トラップドア生成手段９３０、暗号化データベース検索手段９４０、暗号化検索結果配列記憶部９２１、および暗号化始点配列記憶部９２２と各々同等である。
【００９０】
本実施形態として、暗号化検索結果追加手段１４０、暗号化検索結果削除手段１５０、追加用情報記憶手段２１０、および削除用情報記憶手段２２０の各々について、詳細な内容を説明する。
【００９１】
（暗号化検索結果追加手段）
図３は、図１に示した暗号化検索結果追加手段１４０の、より詳細な構成について示す説明図である。暗号化検索結果追加手段１４０は、追加処理制御部１４１、検索結果生成部１４２、追加用情報参照部１４３、始点情報生成部１４４、暗号化線形リスト追加部１４５、および始点情報暗号化部１４６といった各機能部を備える。
【００９２】
これらの各機能部によって、暗号化検索結果追加手段１４０は、鍵および追加登録の対象である文書を入力として、暗号化検索結果記憶手段２００、追加用情報記憶手段２１０、および削除用情報記憶手段２２０の記憶データを各々更新する。ここで、追加対象となる検索結果を、追加検索結果ということにする。
【００９３】
検索結果生成部１４２、始点情報生成部１４４、および始点情報暗号化部１４６は、背景技術として説明した暗号化検索結果生成手段９１０（１１０）の検索結果生成部９１２、始点情報生成部９１３、および始点情報暗号化部９１５と各々同等であるので、プログラムにおいて同一のモジュールを使用することができる。
【００９４】
追加処理制御部１４１は、文書、辞書、鍵を入力として、暗号化検索結果追加手段１４０の備える各機能部を制御する。追加用情報参照部１４３は、キーワードを入力として、追加用情報記憶手段２１０を参照し、対応する追加用情報が記憶されている場合は、その追加用情報を読み出して、出力する。それ以外の場合、対応する追加用情報が記憶されていなかった旨を出力する。
【００９５】
暗号化線形リスト追加部１４５は、始点情報と検索結果との組を入力として、それらを暗号化した暗号化線形リストを生成して、これを暗号化検索結果記憶手段２００に記憶する。また、暗号化線形リストの終端情報をキーワードと対応付けて、追加用情報記憶手段２１０に記憶する。さらに、各文書識別子の暗号文が記憶されているアドレスを文書識別子と対応付けて、削除用情報記憶手段２２０に記憶する。
【００９６】
暗号化検索結果記憶手段２００に記憶されている、特定のキーワードに関する暗号化線形リストの終端のアドレスａｄ＿ｅｎｄに記憶されている値は、Ｅｎｃ（ｋ＿ｅｎｄ；ｉｄ），Ｅｎｃ（ｋ＿ｅｎｄ；ｋ＿ｎｅｘｔ），Ｅｎｃ（ｋ＿ｅｎｄ；ａｄ＿ｎｅｘｔ）と表される。
【００９７】
暗号化線形リスト追加部１４５は、このａｄ＿ｎｅｘｔおよびｋ＿ｎｅｘｔを始点情報とする追加検索結果の暗号化線形リストを生成し、これを暗号化検索結果記憶手段２００に記憶されている暗号化検索結果配列に追記する。同時に、ａｄ＿ｎｅｘｔおよびｋ＿ｎｅｘｔをキーワードと対応付けて追加用情報記憶手段２１０に記憶する。
【００９８】
図４は、図３に示した暗号化検索結果追加手段１４０の動作について示すフローチャートである。まず、鍵Ｋ、文書群Ｄ、および辞書Δが、入力装置１５を介して暗号化検索結果追加手段１４０の追加処理制御部１４１に入力される（ステップＳ３０１）。これを受けた追加処理制御部１４１は、文書群Ｄおよび辞書Δを検索結果生成部１４２に入力して、文書群Ｄの辞書Δについての検索結果を得る（ステップＳ３０２）。
【００９９】
以後、文書群Ｄに含まれていた各キーワードｗ＿ｉについて、ステップＳ３０３〜３０６の処理の繰り返しになる。追加処理制御部１４１は追加用情報参照部１４３にキーワードｗ＿ｉを入力して（ステップＳ３０３）追加用情報が出力された場合（ステップＳ３０３がイエス）にはこれを始点情報Ｘとして（ステップＳ３０４）、ステップＳ３０６の処理に進む。
【０１００】
追加用情報参照部１４３から追加用情報が出力されない場合（ステップＳ３０３がノー）、追加処理制御部１４１は始点情報生成部１４４を起動してその出力を始点情報Ｘとして始点情報暗号化部１４６に渡す。始点情報暗号化部１４６は、鍵Ｋを用いてこのＸを暗号化し、鍵Ｋとキーワードｗ＿ｉによって定まる暗号化始点配列記憶部２０２のアドレスに、この暗号化された始点情報Ｘを記憶させる（ステップＳ３０５）。
【０１０１】
そして追加処理制御部１４１は、始点情報ＸとＤ（ｗ＿ｉ）を暗号化線形リスト追加部１４５に入力する。暗号化線形リスト追加部１４５は、始点情報ＸとＤ（ｗ＿ｉ）についての暗号化線形リストを生成して、これを暗号化検索結果配列記憶部９２１に記憶する。同時に、暗号化線形リストの終端情報を、キーワードｗ＿ｉと対応付けて、追加用情報記憶手段２１０に記憶する。さらに、各文書識別子の暗号文が記憶されているアドレスを、文書識別子に対応付けて削除用情報記憶手段２２０に記憶する（以上ステップＳ３０６）。以上のステップＳ３０３〜３０６の処理を、文書群Ｄに含まれていた全てのキーワードｗ＿ｉに対して繰り返す。
【０１０２】
（暗号化検索結果削除手段）
図５は、図１に示した暗号化検索結果削除手段１５０の、より詳細な構成について示す説明図である。暗号化検索結果削除手段１５０は、削除用情報参照部１５１と、文書識別子初期化部１５２とを備える。暗号化検索結果削除手段１５０は、これらの機能部によって、文書識別子を入力として、暗号化検索結果記憶手段２００および削除用情報記憶手段２２０に記憶されたデータを更新する。
【０１０３】
削除用情報参照部１５１は、文書識別子を入力とし、削除用情報記憶手段２２０に記憶されている、入力された文書識別子に対応する暗号化検索結果配列記憶部２０１の複数のアドレスからなる削除用情報を読み出して、これを削除し、文書識別子初期化部１５２に入力する。
【０１０４】
文書識別子初期化部１５２は、複数の暗号化検索結果配列記憶部２０１のアドレスを入力とし、入力された暗号化検索結果配列記憶部２０１のアドレスの文書識別子の暗号文を初期化する。
【０１０５】
図６は、図５に示した暗号化検索結果削除手段１５０の動作について示すフローチャートである。文書識別子ｉｄ＿ｄが削除用情報参照部１５１に入力されると（ステップＳ３１１）、削除用情報参照部１５１はこのｉｄ＿ｄに対応する削除用情報を削除用情報記憶手段２２０から読み出して削除し、文書識別子初期化部１５２に入力する（ステップＳ３１２）。ここでいう削除用情報は、暗号化検索結果配列記憶部２０１内の複数のアドレスからなる。
【０１０６】
文書識別子初期化部１５２は、入力された暗号化検索結果配列記憶部２０１の削除用情報に含まれるアドレスが記憶する識別子の暗号文を初期化する。（ステップＳ３１３）。文書の更新を行う場合は、暗号化検索結果削除手段１５０で旧データを削除し、かつ暗号化検索結果追加手段１４０で新データを追加するとよい。
【０１０７】
（第１の実施形態の全体的な動作）
次に、上記の実施形態の全体的な動作について説明する。
本実施形態に係る暗号化検索用データの追加削除方法は、暗号化されて登録された複数の文書データの中からキーワードによる検索を行う暗号化検索データベース装置にあって、各キーワードごとに当該キーワードに対応する文書データの一覧である検索結果配列およびこの検索結果配列で当該キーワードに対応する最初のデータのアドレスの一覧である始点配列を暗号化検索結果生成手段が作成し、検索結果配列および始点配列を暗号化検索結果生成手段が与えられた暗号鍵によって各々暗号化して暗号化検索結果記憶手段に記憶させ、新規登録された文書データに対して特定のキーワードを含む検索結果の一覧である線形リストを暗号化検索結果追加手段の検索結果生成部が作成し、線形リストで当該キーワードに対応する最初のデータのアドレスである始点情報を暗号化検索結果追加手段の始点情報生成部が作成し、始点情報を暗号化検索結果追加手段の始点情報暗号化部が暗号鍵で暗号化して暗号化始点配列に追加記憶させ、線形リストを暗号鍵で暗号化した暗号化線形リストを暗号化検索結果追加手段の暗号化線形リスト追加部が作成して暗号化検索結果配列に追加記憶させ、各キーワードと当該キーワードについての暗号化線形リストの最後のデータのアドレスである終点情報を追加用情報として暗号化検索結果追加手段の暗号化線形リスト追加部が予め備えられた追加用情報記憶手段に記憶させる。
【０１０８】
また、暗号化検索結果追加手段の暗号化線形リスト追加部が、終点情報を追加用情報記憶手段に記憶させる処理と並行して、各検索結果の文書識別子が記憶されている暗号化検索結果記憶手段上のアドレスを予め備えられた削除用情報記憶手段に記憶し、ユーザから特定の文書識別子に係る文書の削除司令があった時に、この削除用情報記憶手段に記憶された当該文書識別子に対応する暗号化検索結果記憶手段上のアドレスを暗号化検索結果削除手段が初期化する。
【０１０９】
ここで、上記各動作ステップについては、これをコンピュータで実行可能にプログラム化し、これらを前記各ステップを直接実行する情報拡散規模予測装置１０のプロセッサ１１に実行させるようにしてもよい。本プログラムは、非一時的な記録媒体、例えば、ＤＶＤ、ＣＤ、フラッシュメモリ等に記録されてもよい。その場合、本プログラムは、記録媒体からコンピュータによって読み出され、実行される。
この動作により、本実施形態は以下のような効果を奏する。
【０１１０】
本実施形態は、以上で説明した構成を備えることによって、暗号化検索用データを追加する際に、暗号化線形リストの終端に関する情報を追加用情報として記憶し、これを用いて暗号化検索結果の更新を実行することが可能になる。即ち、背景技術として説明したような、各キーワードに対するトラップドアを用いた処理を行う必要が無い。従って、その過程で生じうる情報漏洩のリスクを抑えることができる。
【０１１１】
また、暗号化検索用データを削除する際にも、ある文書に関する情報がどのアドレスに記憶されているかを削除用情報として記憶しているので、そのアドレスを初期化しさえすればよい。即ち、暗号化検索結果配列のどこに該当する識別子が存在するのかを検索処理を用いて調べる必要がない。従って、その検索処理の過程で生じうる情報漏洩のリスクを抑えることができる。
【０１１２】
（第２の実施形態）
本発明の第２の実施形態は、第１の実施形態の構成で、暗号化線形リスト追加部１４５が、始点情報と特定のキーワードを含む検索結果とを対応させたデータを暗号化線形リストに記憶させるかわりに、始点情報および終点情報と特定のキーワードを含む検索結果とを対応させたデータを暗号化線形リストに記憶させる機能を有するものとした。
【０１１３】
この構成によっても、第１の実施形態で説明した効果と同一の効果を得ることができる。
以下、これをより詳細に説明する。
【０１１４】
図７は、本発明の第２の実施形態に係る暗号化検索データベース装置４１０の構成について示す説明図である。暗号化検索データベース装置４１０は、ハードウェアとしての構成は図１〜２に示した第１の実施形態に係る暗号化検索データベース装置１０と全く同一であるので、同一の要素については同一の呼称および参照番号でいう。
【０１１５】
暗号化検索データベース装置４１０のプロセッサ１１は、暗号化検索データベース管理プログラムが動作することにより、暗号化検索結果生成手段１１０、トラップドア生成手段１２０、暗号化データベース検索手段１３０、暗号化検索結果追加手段４４０、および暗号化検索結果削除手段１５０の各々として動作する。また、データ蓄積装置１４は、暗号化検索結果記憶手段２００、追加用情報記憶手段２１０、および削除用情報記憶手段２２０の各々として動作する。
【０１１６】
即ち、第１および第２の実施形態の間では、暗号化検索結果追加手段１４０が別の暗号化検索結果追加手段４４０に置換されているのみで、これ以外のハードウェアおよびデータの構成は全く同一であるので、やはり同一の要素については同一の呼称および参照番号でいう。暗号化検索結果追加手段４４０は、暗号化検索結果追加手段１４０とは別の方法で、暗号化検索結果記憶手段２００、追加用情報記憶手段２１０、および削除用情報記憶手段２２０の記憶データを各々更新する。
【０１１７】
（暗号化検索結果追加手段）
図８は、図７に示した暗号化検索結果追加手段４４０の、より詳細な構成について示す説明図である。暗号化検索結果追加手段４４０は、追加処理制御部４４１、検索結果生成部１４２、追加用情報参照部４４３、始点情報生成部１４４、暗号化線形リスト追加部４４５、および始点情報暗号化部１４６といった各機能部を備える。
【０１１８】
このうち、検索結果生成部１４２、始点情報生成部１４４、および始点情報暗号化部１４６は、いずれも第１の実施形態と共通であり、また背景技術として説明した暗号化検索結果生成手段９１０の検索結果生成部９１２、始点情報生成部９１３、および始点情報暗号化部９１５と各々同様である。
【０１１９】
追加処理制御部４４１は、文書、辞書、鍵を入力として、暗号化検索結果追加手段１４０の備える各機能部を制御する。追加用情報参照部４４３は、キーワードを入力として、追加用情報記憶手段２１０を参照し、対応する追加用情報が記憶されている場合は、その追加用情報を読み出して、出力する。それ以外の場合、対応する追加用情報が記憶されていなかった旨を出力する。
【０１２０】
暗号化線形リスト追加部４４５は、始点情報と検索結果との組を入力として、それらを暗号化した暗号化線形リストを生成して、これを暗号化検索結果記憶手段２００に記憶する。また、暗号化線形リストの終端情報をキーワードと対応付けて、追加用情報記憶手段２１０に記憶する。さらに、各文書識別子の暗号文が記憶されているアドレスを文書識別子と対応付けて、削除用情報記憶手段２２０に記憶する。
【０１２１】
以上の追加処理制御部４４１、追加用情報参照部４４３、および暗号化線形リスト追加部４４５の機能についての説明も、第１の実施形態と同一であるが、それら各々の具体的な方法が第１の実施形態と異なっている。以下、この点について説明する。
【０１２２】
キーワードｗ＿ｉを含み、文書識別子がｉｄ＿１，…，ｉｄ＿ｘである各文書を追加する場合を例として示す。この場合、暗号化検索結果配列記憶部２０１に記憶されているキーワードｗ＿ｉに関する暗号化線形リストの始点情報のアドレスａｄ＿｛ｗ＿ｉ｝と鍵ｋ＿｛ｗ＿ｉ｝は、暗号化始点配列記憶部２０２に暗号化されて記憶されている。
【０１２３】
このとき、アドレスａｄ＿｛ｗ＿ｉ｝’と鍵ｋ＿｛ｗ＿ｉ｝’とを新たに始点情報として生成し、これを暗号化した値をｗ＿ｉに対応する暗号化始点情報として暗号化始点配列記憶部２０２に記憶する。そして、ａｄ＿｛ｗ＿ｉ｝’とｋ＿｛ｗ＿ｉ｝’とを始点情報としたｉｄ＿１，…，ｉｄ＿ｘの暗号化線形リストを生成する。この暗号化線形リストの終端ノードでは、ａｄ＿｛ｗ＿ｉ｝を次アドレス、ｋ＿｛ｗ＿ｉ｝を次アドレス暗号化鍵として用いる。
【０１２４】
この処理で、新たにｗ＿ｉに関する暗号化線形リストが暗号化検索結果配列記憶部２０１に記憶され、対応する始点情報が暗号化始点配列記憶部２０２に記憶される。以上の処理の実行に必要となるのは、暗号化検索結果を生成するために用いられている鍵と各キーワードに対する始点情報である。始点情報は各キーワードに対応付けて記憶されており、また各キーワードに対する始点情報が暗号化始点情報配列より得られることから、暗号化始点情報配列をそのまま追加用情報として用いることができる。
【０１２５】
図９は、図７に示した暗号化検索結果追加手段４４０の動作について示すフローチャートである。まず、鍵Ｋ、文書群Ｄ、および辞書Δが、入力装置１５を介して暗号化検索結果追加手段４４０の追加処理制御部４４１に入力される（ステップＳ５０１）。これを受けた追加処理制御部４４１は、文書群Ｄおよび辞書Δを検索結果生成部１４２に入力して、文書群Ｄの辞書Δについての検索結果を得る（ステップＳ５０２）。
【０１２６】
以後、文書群Ｄに含まれていた全てのキーワードｗ＿ｉに対して、ステップＳ５０３〜５０５の処理の繰り返しになる。追加処理制御部４４１は始点情報生成部１４４を起動してその出力を始点情報Ｘとし、始点情報暗号化部１４６によってＸをＫによって暗号化して暗号化して始点配列記憶部２０２に記憶させる（ステップＳ５０３）。
【０１２７】
続いて追加処理制御部４４１は、追加用情報参照部１４３にキーワードｗ＿ｉを入力し、追加用情報が出力された場合にそれをＹとして（ステップＳ５０４）、ＸとＹとＤ（ｗ＿ｉ）を暗号化線形リスト追加部１４５に入力する。暗号化線形リスト追加部１４５は、始点情報Ｘと終点情報Ｙと検索結果Ｄ（ｗ＿ｉ）についての暗号化線形リストを生成し、暗号化検索結果配列記憶部２０１に記憶する（ステップＳ５０５）。ステップＳ５０４〜５０５で、終点情報が入力されなかった場合は、すでに値が記憶されているアドレス以外の値を終点情報のアドレスとし、ランダムな値を終点情報の鍵として用いる。
【０１２８】
これと同時に、暗号化線形リストの終端情報を、キーワードと対応付けて追加用情報記憶手段２１０に記憶させる。そして、各文書識別子の暗号文が記憶されているアドレスを、文書識別子に対応付けて削除用情報記憶装置に記憶する（ステップＳ５０５）。以上のステップＳ５０３〜５０５の処理を、文書群Ｄに含まれていた全てのキーワードｗ＿ｉに対して繰り返す。
【０１２９】
（実施形態の拡張）
以上で説明した第１および第２の実施形態は、その趣旨を改変しない範囲で、種々の拡張が可能である。以下、その拡張の例について説明する。
【０１３０】
前述のように、暗号化検索データベース装置は１台のコンピュータのみでなく、ネットワークによって相互に接続された複数台のコンピュータによって構成されるものであってもよい。特に、サーバ−クライアント構成により、入力装置および出力装置をユーザが操作するクライアント装置とし、実際の検索に係る処理をサーバ装置で行うようにする構成が、一般的に考えられるものである。さらに、そのサーバ装置を、複数台のコンピュータによって負荷を分散するように構成することもできる。
【０１３１】
その場合、サーバおよびクライアントを構成する各コンピュータは、当該組織内の同一のローカルネットワーク内部に接続され、その組織内で認証を受けた者だけがこの暗号化検索データベースを利用可能にすることが望ましい。さらに、当該ネットワークはファイヤウォールやアンチウィルスなどのようなセキュリティに係るハードウェアやソフトウェアを完備し、一定のセキュリティポリシーに則って運用されるものであることが望ましい。これらについては、本発明の範囲では無いので、詳しくは説明しない。
【０１３２】
これまで本発明について図面に示した特定の実施形態をもって説明してきたが、本発明は図面に示した実施形態に限定されるものではなく、本発明の効果を奏する限り、これまで知られたいかなる構成であっても採用することができる。
【０１３３】
上述した実施形態について、その新規な技術内容の要点をまとめると、以下のようになる。なお、上記実施形態の一部または全部は、新規な技術として以下のようにまとめられるが、本発明は必ずしもこれに限定されるものではない。
【０１３４】
（付記１）  暗号化されて登録された複数の文書データの中からキーワードによる検索を行う暗号化検索データベース装置であって、
前記各キーワードごとに当該キーワードに対応する前記文書データの一覧である検索結果配列およびこの検索結果配列で当該キーワードに対応する最初のデータのアドレスの一覧である始点配列を作成すると共にこれらを与えられた暗号鍵によって各々暗号化した暗号化検索結果配列および暗号化始点配列を作成する暗号化検索結果生成手段と、作成された前記暗号化検索結果配列および前記暗号化始点配列を記憶する暗号化検索結果記憶手段と、前記キーワードと前記暗号鍵を利用して前記暗号化検索結果配列および前記暗号化始点配列から前記キーワードによる検索を行う暗号化データベース検索手段と、新規登録された前記文書データに係る内容を前記暗号化検索結果配列および前記暗号化始点配列に追加する暗号化検索結果追加手段とを有し、
前記暗号化検索結果追加手段が、
前記新規登録された文書データに対して特定の前記キーワードを含む検索結果の一覧である線形リストを作成する検索結果生成部と、
前記線形リストで当該キーワードに対応する最初のデータのアドレスである始点情報を作成する始点情報生成部と、
作成された前記始点情報を前記暗号鍵で暗号化して前記暗号化始点配列に追加記憶させる始点情報暗号化部と、
前記線形リストを前記暗号鍵で暗号化した暗号化線形リストを作成して前記暗号化検索結果配列に追加記憶させる暗号化線形リスト追加部とを有すると共に、
この暗号化線形リスト追加部が、前記各キーワードと当該キーワードについての前記暗号化線形リストの最後のデータのアドレスである終点情報を追加用情報として予め備えられた追加用情報記憶手段に記憶させる機能を有する
ことを特徴とする暗号化検索データベース装置。
【０１３５】
（付記２）  前記暗号化検索結果追加手段が、
前記追加用情報が前記追加用情報記憶手段に記憶されている場合に当該追加用情報を読み出す追加用情報参照部を備え、
前記暗号化線形リスト追加部が、前記追加用情報参照部によって読み出された前記追加用情報を前記始点情報として前記暗号化線形リストを作成する機能を有することを特徴とする、付記１に記載の暗号化検索データベース装置。
【０１３６】
（付記３）  前記暗号化線形リスト追加部が、前記始点情報と前記特定のキーワードを含む検索結果とを対応させたデータを前記暗号化線形リストに記憶させる機能を有することを特徴とする、付記１に記載の暗号化検索データベース装置。
【０１３７】
（付記４）  前記暗号化線形リスト追加部が、前記始点情報および前記終点情報と前記特定のキーワードを含む検索結果とを対応させたデータを前記暗号化線形リストに記憶させる機能を有することを特徴とする、付記１に記載の暗号化検索データベース装置。
【０１３８】
（付記５）  前記暗号化検索結果追加手段の前記暗号化線形リスト追加部が、前記各検索結果の文書識別子が記憶されている前記暗号化検索結果記憶手段上のアドレスを予め備えられた削除用情報記憶手段に記憶する機能を有すると共に、
ユーザから特定の文書識別子に係る文書の削除司令があった時に、この削除用情報記憶手段に記憶された当該文書識別子に対応する前記暗号化検索結果記憶手段上のアドレスを初期化する暗号化検索結果削除手段を有することを特徴とする、付記１に記載の暗号化検索データベース装置。
【０１３９】
（付記６）  暗号化されて登録された複数の文書データの中からキーワードによる検索を行う暗号化検索データベース装置にあって、
前記各キーワードごとに当該キーワードに対応する前記文書データの一覧である検索結果配列およびこの検索結果配列で当該キーワードに対応する最初のデータのアドレスの一覧である始点配列を暗号化検索結果生成手段が作成し、
前記検索結果配列および前記始点配列を前記暗号化検索結果生成手段が与えられた暗号鍵によって各々暗号化して暗号化検索結果記憶手段に記憶させ、
新規登録された文書データに対して特定の前記キーワードを含む検索結果の一覧である線形リストを暗号化検索結果追加手段の検索結果生成部が作成し、
前記線形リストで当該キーワードに対応する最初のデータのアドレスである始点情報を前記暗号化検索結果追加手段の始点情報生成部が作成し、
前記始点情報を前記暗号化検索結果追加手段の始点情報暗号化部が前記暗号鍵で暗号化して前記暗号化始点配列に追加記憶させ、
前記線形リストを前記暗号鍵で暗号化した暗号化線形リストを前記暗号化検索結果追加手段の暗号化線形リスト追加部が作成して前記暗号化検索結果配列に追加記憶させ、
前記各キーワードと当該キーワードについての前記暗号化線形リストの最後のデータのアドレスである終点情報を追加用情報として前記暗号化検索結果追加手段の前記暗号化線形リスト追加部が予め備えられた追加用情報記憶手段に記憶させる
ことを特徴とする暗号化検索用データの追加削除方法。
【０１４０】
（付記７）  前記暗号化検索結果追加手段の前記暗号化線形リスト追加部が、前記終点情報を前記追加用情報記憶手段に記憶させる処理と並行して、前記各検索結果の文書識別子が記憶されている前記暗号化検索結果記憶手段上のアドレスを予め備えられた削除用情報記憶手段に記憶し、
ユーザから特定の文書識別子に係る文書の削除司令があった時に、この削除用情報記憶手段に記憶された当該文書識別子に対応する前記暗号化検索結果記憶手段上のアドレスを暗号化検索結果削除手段が初期化する
ことを特徴とする、付記６に記載の暗号化検索用データの追加削除方法。
【０１４１】
（付記８）  暗号化されて登録された複数の文書データの中からキーワードによる検索を行う暗号化検索データベース装置にあって、
この暗号化検索データベース装置が備えるコンピュータに、
前記各キーワードごとに当該キーワードに対応する前記文書データの一覧である検索結果配列およびこの検索結果配列で当該キーワードに対応する最初のデータのアドレスの一覧である始点配列を作成する手順、
前記検索結果配列および前記始点配列を与えられた暗号鍵によって各々暗号化して暗号化検索結果記憶手段に記憶させる手順、
新規登録された文書データに対して特定の前記キーワードを含む検索結果の一覧である線形リストを作成する手順、
前記線形リストで当該キーワードに対応する最初のデータのアドレスである始点情報を作成する手順、
前記始点情報を前記暗号鍵で暗号化して前記暗号化始点配列に追加記憶させる手順、
前記線形リストを前記暗号鍵で暗号化した暗号化線形リストを作成して前記暗号化検索結果配列に追加記憶させる手順、
および前記各キーワードと当該キーワードについての前記暗号化線形リストの最後のデータのアドレスである終点情報を追加用情報として予め備えられた追加用情報記憶手段に記憶させる手順
を実行させることを特徴とする暗号化検索用データの追加削除プログラム。
【０１４２】
（付記９）  前記暗号化検索データベース装置が備えるコンピュータに、
前記終点情報を前記追加用情報記憶手段に記憶させる手順と並行して、前記各検索結果の文書識別子が記憶されている前記暗号化検索結果記憶手段上のアドレスを予め備えられた削除用情報記憶手段に記憶する手順、
およびユーザから特定の文書識別子に係る文書の削除司令があった時に、この削除用情報記憶手段に記憶された当該文書識別子に対応する暗号化検索結果記憶手段上のアドレスを初期化する
手順をさらに実行させることを特徴とする、付記８に記載の暗号化検索用データの追加削除プログラム。
【０１４３】
この出願は２０１１年１２月９日に出願された日本出願特願２０１１−２６９７４０を基礎とする優先権を主張し、その開示の全てをここに取り込む。
【産業上の利用可能性】
【０１４４】
本発明は、データベースを備えた情報システムにおいて利用可能であり、特に企業などの組織内部の情報システムにおける、機密情報を大量に保有するデータベースでの利用に好適である。
【符号の説明】
【０１４５】
１０、４１０  暗号化検索データベース装置
１１  プロセッサ
１２  主記憶装置
１２ａ、１３ａ、１４ａ  メモリ制御インタフェース
１３  記憶媒体ドライブ
１４  データ蓄積装置
１５  入力装置
１５ａ、１６ａ  Ｉ／Ｏインタフェース
１６  出力装置
１７  バス
１１０  暗号化検索結果生成手段
１２０  トラップドア生成手段
１３０  暗号化データベース検索手段
１４０、４４０  暗号化検索結果追加手段
１４１、４４１  追加処理制御部
１４２  検索結果生成部
１４３、４４３  追加用情報参照部
１４４  始点情報生成部
１４５、４４５  暗号化線形リスト追加部
１４６  始点情報暗号化部
１５０  暗号化検索結果削除手段
１５１  削除用情報参照部
１５２  文書識別子初期化部
２００  暗号化検索結果記憶手段
２０１  暗号化検索結果配列記憶部
２０２  暗号化始点配列記憶部
２１０  追加用情報記憶手段
２２０  削除用情報記憶手段
【図１】
0005392439.tif 000002
【図２】
0005392439.tif 000003
【図３】
0005392439.tif 000004
【図４】
0005392439.tif 000005
【図５】
0005392439.tif 000006
【図６】
0005392439.tif 000007
【図７】
0005392439.tif 000008
【図８】
0005392439.tif 000009
【図９】
0005392439.tif 000010
【図１０】
0005392439.tif 000011
【図１１】
0005392439.tif 000012
【図１２】
0005392439.tif 000013
【図１３】
0005392439.tif 000014
【図１４】
0005392439.tif 000015
【図１５】
0005392439.tif 000016
【図１６】
0005392439.tif 000017
【図１７】
0005392439.tif 000018
【図１８】
0005392439.tif 000019
【図１９】
0005392439.tif 000020