JP5963936B2 - サーバ装置、秘匿検索プログラム,記録媒体及び秘匿検索システム - Google Patents

サーバ装置、秘匿検索プログラム,記録媒体及び秘匿検索システム Download PDF

Info

Publication number
JP5963936B2
JP5963936B2 JP2015501221A JP2015501221A JP5963936B2 JP 5963936 B2 JP5963936 B2 JP 5963936B2 JP 2015501221 A JP2015501221 A JP 2015501221A JP 2015501221 A JP2015501221 A JP 2015501221A JP 5963936 B2 JP5963936 B2 JP 5963936B2
Authority
JP
Japan
Prior art keywords
keyword
search
encryption
storage unit
deterministic
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
JP2015501221A
Other languages
English (en)
Other versions
JPWO2014128958A1 (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.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric 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 Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Application granted granted Critical
Publication of JP5963936B2 publication Critical patent/JP5963936B2/ja
Publication of JPWO2014128958A1 publication Critical patent/JPWO2014128958A1/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/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/72Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in cryptographic circuits
    • 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
    • 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
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09CCIPHERING OR DECIPHERING APPARATUS FOR CRYPTOGRAPHIC OR OTHER PURPOSES INVOLVING THE NEED FOR SECRECY
    • G09C1/00Apparatus or methods whereby a given sequence of signs, e.g. an intelligible text, is transformed into an unintelligible sequence of signs by transposing the signs or groups of signs or by replacing them by others according to a predetermined system
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy

Landscapes

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

Description

この発明は、秘匿検索を行うサーバ装置、秘匿検索プログラム、記録媒体及び秘匿検索システムに関する。
秘匿検索システムは、サーバに保存されたデータを、検索者がキーワードを指定して検索でき、かつその際にデータ、キーワードをサーバに対して秘匿する。秘匿検索システムは、機密データ管理のアウトソーシングや、メールサーバにおける暗号化メールのフィルタリングへの応用が期待されている。秘匿検索システムには、種々の安全性要件を達成するための技術や、サーバや検索者のストレージ、通信オーバーヘッド、演算オーバーヘッドを削減するための様々な技術が提案されている。
秘匿検索は、確定的暗号をベースとしたもの、確率的暗号をベースとしたものに大別できる。確定的暗号をベースとした秘匿検索では、同じキーワードが同じ暗号化キーワードに対応するため、サーバは指定された暗号化キーワードに基づくバイナリ一致判定を行うだけで良く、既存の検索技術を用いた高速化が可能というメリットを持つ。しかし、キーワードの頻度情報がそのまま暗号化キーワードの頻度情報として現れるため、サーバが暗号化キーワードの頻度を調べることによって対応するキーワードを推測する「頻度分析」と呼ばれる攻撃が可能となるデメリットもある。
一方で、確率的暗号をベースとした秘匿検索では、同じキーワードから異なる暗号化キーワードが生成されるため、キーワードの頻度情報が保存されず、上記の頻度分析攻撃を受けることがない。かわりに、暗号化キーワードと検索要求(トラップドア)の照合に、バイナリ一致判定ではない特別な演算を必要とし、さらに通常の検索で用いられる高速化技術も適用できないため、検索完了までに非常に多くの時間を要するという課題がある。この課題への対策として、確率的暗号と確定的暗号とを併用することで、確率的暗号の安全性と、確定的暗号の高速性との両面を活かす方法がある。
特許文献1では、確率的暗号の値を格納するテーブル、確定的暗号の値を格納するテーブルを用意し、さらに両テーブル間の関係を暗号化して保持するテーブルを利用することで、確率的暗号の値を高速に検索する方式が開示されている。
特開2011−198079号公報
特許文献1の方式では、データ登録処理において、確率的暗号の値と、確定的暗号の値との両方をサーバに送信する。これらの対応に関する情報は、その後の処理で暗号化されるため、データが外部の攻撃者に漏えいした場合には、攻撃者は確率的暗号の値と確定的暗号の値を紐付けすることができず、データの安全性は確率的暗号と同程度に保たれることになる。一方、サーバ自身は、データ登録処理の時点で確率的暗号の値と確定的暗号の値とを紐付けできており、悪意を持ったサーバであればこの情報を用いた頻度分析攻撃が可能である。このため、サーバに対する安全性は確定的暗号と同程度まで低下してしまうという課題があった。
本発明は上記の課題を解決するためになされたもので、サーバに対する安全性を確率的暗号ベースの秘匿検索から低下させることなく、確定的暗号の要素を取り入れることで、秘匿検索システム全体の検索速度を向上することを目的とする。
この発明のサーバ装置は、
秘匿検索を実行するサーバ装置において、
検索装置から秘匿検索要求として、キーワードから確率的暗号化方式によって生成されるトラップドアであって、前記秘匿検索における検索対象データのキーワードが確率的暗号化方式によって暗号化された暗号化キーワードとの一致判定に使用されるトラップドアと、前記トラップドアの生成の元となる前記キーワードから確定的暗号化方式によって生成される確定的暗号化キーワードとの組を受信するサーバ側通信部と、
過去の秘匿検索要求の履歴として、前記サーバ側通信部によって受信された前記トラップドアと前記確定的暗号化キーワードとの組を格納する検索履歴記憶部と、
検索対象データと、この検索対象データの暗号化キーワードとが関連付けられると共に、判明している場合には、前記暗号化キーワードに対応する前記確定的暗号化キーワードがさらに関連付けられたキーワード情報を格納するデータ記憶部と、
前記サーバ側通信部が受信した前記確定的暗号化キーワードと一致する前記確定的暗号化キーワードが、前記検索履歴記憶部に存在するかどうかを判定し、存在すると判定した場合には、前記データ記憶部を対象として、前記検索履歴記憶部に存在する前記確定的暗号化キーワードを用いて、確定的暗号化方式に基づく検索対象データの秘匿検索を実行し、存在しないと判定した場合には、前記データ記憶部を対象として、受信した前記トラップドアと、前記データ記憶部に格納されている前記キーワード情報の前記暗号化キーワードとを用いて、確率的暗号化方式に基づく検索対象データの秘匿検索を実行する判定部と
を備えたことを特徴とする。
本発明によれば、サーバに対する安全性を確率的暗号ベースの秘匿検索から低下させることなく、秘匿検索システム全体の検索速度を向上することができる。
実施の形態1の秘匿検索システム100の構成を示す図。 実施の形態1のサーバ装置201のブロック図。 実施の形態1の登録装置301のブロック図。 実施の形態1の検索装置401のブロック図。 実施の形態1の暗号化キーワード記憶領域211を示す図。 実施の形態1のデータ記憶領域212を示す図。 実施の形態1の検索履歴記憶領域213を示す図。 実施の形態1の暗号化キーワード記憶領域211を示す図。 実施の形態1のデータ記憶領域212を示す図。 実施の形態1の暗号化キーワード記憶領域211を示す図。 実施の形態1のデータ記憶領域212を示す図。 実施の形態1の検索履歴記憶領域213を示す図。 実施の形態1の暗号化キーワード記憶領域211を示す図。 実施の形態1の暗号化キーワード記憶領域211を示す図。 実施の形態1の検索履歴記憶領域213を示す図。 実施の形態1の暗号化キーワード記憶領域211を示す図。 実施の形態1の検索履歴記憶領域213を示す図。 実施の形態1の暗号化キーワード記憶領域211とデータ記憶領域212とを併せた内容の記憶領域を示す図。 実施の形態1の暗号化キーワード記憶領域211を示す図。 実施の形態1の暗号化キーワード記憶領域211を示す図。 実施の形態1のサーバ装置201、登録装置301、検索装置401の初期設定を示すフロー。 実施の形態1の登録装置301の送信処理のフローを示す図。。 実施の形態1のサーバ装置201の登録処理のフローを示す図。。 実施の形態1の検索装置401の検索要求の送信処理のフローを示す図。。 実施の形態1の検索装置401の秘匿検索のフローを示す図。 実施の形態2のサーバ装置201等の外観の一例を示す図。 実施の形態2のサーバ装置201等のハードウェア構成を示す図。
実施の形態1.
図1〜図25を参照して実施の形態1を説明する。
図1〜図4は秘匿検索システム100及び各装置の構成を示す図である。
図5〜図20は、各記憶領域の状態を示す図である。
図21〜図25は、各装置の動作を示すフローである。なお、各フローに()で構成要素が示されている場合は、その構成要素が処理の主体であることを示す。
図1は、秘匿検索システム100の構成例である。秘匿検索システム100は、サーバ装置201に保存されたデータ(検索対象データ)を、ユーザがキーワードを指定して検索できる。かつその際に、秘匿検索システム100は、データ、キーワードをサーバ装置201に対して秘匿する。秘匿検索システム100は、サーバ装置201、情報登録装置301、情報検索装置401を備える。サーバ装置201、情報登録装置301、情報検索装置401はネットワーク101に接続しており、これらは、ネットワーク101を介して通信する。以下、情報登録装置301、情報検索装置401は、登録装置301、検索装置401と呼ぶ。
図2は、秘匿検索システム100において、データ、キーワードを保持し、検索を行うサーバ装置201の構成例を表すブロック図である。図2に示す各装置の構成要素を以下に説明する。
(1)暗号化キーワード記憶領域211は、確率的暗号によって暗号化されたキーワード(以降、暗号化キーワード)と、確定的暗号によって暗号化されたキーワード(以降、確定的暗号化キーワード)を、対応するデータIDと関連付けて記憶する。
図5は、暗号化キーワード記憶領域211が記憶するデータの一例を表す。
(2)データ記憶領域212は、データを、対応するデータIDと関連付けて記憶する。
図6は、データ記憶領域212が記憶するデータの一例を表す。なお、データの例としては年齢などの数値、性別などの属性、氏名などの文字列、文書などのファイルなどが挙げられる。また、一つのデータIDに対して複数種類のデータを保持しても良い。暗号化キーワード記憶領域211とデータ記憶領域212とは、データ記憶部210を構成する。なお、後述の図23のS201で述べるように、暗号化キーワード記憶領域211とデータ記憶領域212において、データIDを介して暗号化キーワードとデータとは関連付けられている。例えば図5、図6において、データID(id)を介して暗号化キーワード(c)とデータ(d)とが関連付けられている。また関連する確定的暗号化キーワード(det)が判明している場合には、図13の説明で後述するように、暗号化キーワード(c)とデータ(d)とに対して、判明している確定的暗号化キーワード(det)が関連づけられる。この関係を有する情報をキーワード情報という。キーワード情報は暗号化キーワード記憶領域211とデータ記憶領域212とで実現してもよいし、図18で後述する内容で実現してもよい。
(3)検索履歴記憶領域213(検索履歴記憶部)は、検索装置401から送られてきた過去の検索要求を、検索履歴として記憶する。
図7は、検索履歴記憶領域213が記憶するデータの一例を表す。
(4)キャッシュポリシー記憶領域214(ポリシー記憶部)は、検索装置401から送られてきた検索要求や、検索処理の結果を、検索履歴記憶領域213や暗号化キーワード記憶領域211に記憶するか否かのポリシーを記憶する。
ポリシーの例としては、
「全ての検索要求と検索結果をキャッシュする」、
「検索者から指定があった場合に限り、検索要求と検索結果をキャッシュする」、
「全ての検索要求をキャッシュするとともに、n回以上実行された検索要求に対する検索結果もキャッシュする」、
「検索要求のうち確定的暗号化キーワード、および全ての検索結果をキャッシュする」、
などの例が挙げられる。
(5)確率的暗号照合部221は、検索装置401から送られてきた検索要求に含まれるトラップドアと、暗号化キーワード記憶領域211が記憶する、(確率的暗号による)暗号化キーワードについて、キーワードが一致するかどうかを判定する。また、検索履歴記憶領域213が記憶するトラップドアと、登録装置301から送られてきた暗号化キーワードについての、キーワード一致判定も行う。これらの処理は、既存の暗号技術(確率的暗号ベースの秘匿検索技術)を用いて実現できる。
(6)確定的暗号照合部222は、検索装置401が送信した検索要求に含まれる確定的暗号化キーワードと、暗号化キーワード記憶領域211が記憶する、確定的暗号化キーワードについて、キーワードが一致するかどうかを判定する。この処理は、バイナリ一致判定を用いて実現できる。確率的暗号照合部221と確定的暗号照合部222とは、判定部220を構成する。
(7)キャッシュ処理部223は、キャッシュポリシー記憶領域214の内容に基づき、検索装置401から送られてきた検索要求や、検索処理の結果を、検索履歴記憶領域213や暗号化キーワード記憶領域211に記憶する。
(8)登録部224は登録装置301から受信した暗号化キーワード、暗号化データ等を暗号化キーワード記憶領域211、データ記憶領域212に格納する。
(9)通信部231(サーバ側通信部)は、登録装置301や検索装置401と通信を行う。
図3は、本秘匿検索システム100において、サーバ装置201への暗号化データ(検索対象データ)の登録を行う登録装置301の構成例を表すブロック図である。
(1)図3において、登録用暗号鍵記憶領域311は、データ登録の際のデータ暗号化、暗号化キーワード生成に用いる暗号鍵を記憶する。
(2)データ暗号処理部321は、登録用暗号鍵記憶領域311が記憶するデータ暗号化鍵を用い、データを暗号化する。この処理は、既存の暗号技術(例えばRSA(登録商標)などの公開鍵暗号技術)を用いて実現できる。
(3)暗号化キーワード生成部322は、登録用暗号鍵記憶領域311が記憶する暗号化キーワード生成鍵を用い、キーワードから、秘匿検索用の暗号化キーワードを生成する。この処理は、既存の暗号技術(確率的暗号ベースの秘匿検索技術)を用いて実現できる。
(4)通信部331は、サーバ装置201と通信を行う。
図4は、本秘匿検索システム100において、サーバ装置201に暗号化データの検索を依頼する検索装置401の構成例を表すブロック図である。
(1)図4において、検索用暗号鍵記憶領域411は、データ検索の際のトラップドア生成、確定的暗号化キーワード生成、およびデータ復号に用いる秘密情報を記憶する。
(2)データ復号処理部421は、検索用暗号鍵記憶領域411が記憶するデータ復号鍵を用い、データを復号する。この処理は、既存の暗号技術(例えばRSA(登録商標)などの公開鍵暗号技術)を用いて実現できる。
(3)トラップドア生成部422は、検索用暗号鍵記憶領域411が記憶するトラップドア生成鍵を用い、キーワードから、秘匿検索用の検索要求(トラップドア)を生成する。この処理は、既存の暗号技術(確率的暗号ベースの秘匿検索技術)を用いて実現できる。
(4)確定的暗号化キーワード生成部423は、検索用暗号鍵記憶領域411が記憶する確定的暗号化キーワード生成鍵を用い、キーワードから、確定的暗号化キーワードを生成する。この処理は、既存の暗号技術(例えばAESなどの共通鍵暗号技術)を用いて実現できる。
(5)通信部431(検索側送信部)は、サーバ装置201と通信を行う。
秘匿検索システム100における手続きは、
(A)各装置の初期設定を行う部分、
(B)登録装置301が検索対象データをサーバ装置201に送信、格納する部分、
(C)検索装置401がサーバ装置201上にあるデータを検索、取得する部分、
に大別される。以下、それぞれの手続きについて説明する。
(A.各装置の初期設定)
図21は、サーバ装置201等の初期設定を示す。図21に示すように、サーバ装置201は、キャッシュポリシーをキャッシュポリシー記憶領域214に格納する。キャッシュポリシーは、例えば、「検索装置401から送られてきた検索要求や、検索処理の結果を、検索履歴記憶領域213や暗号化キーワード記憶領域211に記憶するか否か」のポリシーである。キャッシュポリシーは、検索装置401や、秘匿検索システム100を利用する企業などの管理者が決定してサーバ装置201に送付しても良い。あるいは、サーバ装置201自身が決定しても良い。なお、以降の説明では、キャッシュポリシーが「全ての検索要求と検索結果をキャッシュする」であるとして説明を行う。
図21に示すように、検索装置401は、データ復号、トラップドア生成、および確定的暗号化キーワード生成に用いる秘密情報を、検索用暗号鍵記憶領域411に格納する。これはデータ復号処理部421、トラップドア生成部422、確定的暗号化キーワード生成部423が自ら生成しても良い。あるいは、外部で適切に生成された秘密情報を取得しても良い。データ復号、トラップドア生成用の秘密情報を自ら生成する場合は、対応するデータ暗号化、暗号化キーワード生成用の暗号鍵を公開、もしくは登録装置301に送付する。
図21に示すように、登録装置301は、データ暗号化、および暗号化キーワード生成に用いる暗号鍵を、登録用暗号鍵記憶領域311に格納する。通常は、正当な検索装置401が検索・復号処理を正しく行えるよう、登録装置301は、検索装置401の検索用暗号鍵記憶領域411が記憶する秘密情報に対応する暗号鍵を取得し、格納する。以上で本手続きは完了である。
(B.検索対象データの送信、格納)
登録装置301がデータをサーバ装置201に送信する場合、登録装置301は、後に検索装置401による秘匿検索が行えるよう、キーワードとデータを別々に暗号化したものを送信する。これらを受信したサーバ装置201は、必要に応じて検索履歴記憶領域213を参照しながら、暗号化キーワード記憶領域211、データ記憶領域212への格納を行う。以下、本手続きの手順を具体例とともに説明する。
図22は、登録装置301による送信処理のフローである。図22を参照して、登録装置301によるサーバ装置201へのデータの送信処理を説明する。
(1)まず、S101において、登録装置301のデータ暗号処理部321が、データに対し、ユニークなデータID(idとする)を割り当てる。
(2)次にS102において、データ暗号処理部321が、登録用暗号鍵記憶領域311が記憶するデータ暗号化鍵を用いて、データの暗号化を行う。ここでは、正当な検索装置401だけが復号できるような、既存の暗号技術を利用する(暗号化データをdとする)。
(3)その後、S103において、暗号化キーワード生成部322が、データに関連付けられたキーワードを、登録用暗号鍵記憶領域311が記憶する暗号化キーワード生成鍵を用いて暗号化する。ここでは、正当な検索装置401だけが検索できるような、既存の暗号技術(確率的暗号ベースの秘匿検索技術)を利用する(暗号化キーワードをcとする)。
(4)そしてS104において、通信部331が、データID、暗号化キーワード、暗号化データの組(id,c,d)をサーバ装置201に送信する。
(サーバ装置201)
図23は、サーバ装置201によるデータの登録処理のフローである。図23を参照して、サーバ装置201のデータ登録処理を説明する。
(1)通信部231が登録装置301から(id,c,d)を受信すると、登録部224は、暗号化キーワード(c)をデータID(id)と関連付けて暗号化キーワード記憶領域211に格納し、暗号化データ(d)をデータID(id)と関連付けてデータ記憶領域212に格納する(S201)。つまり登録部224は、(c、id)、(d、id)の様に対応付けて格納する。例えば、本手続き前の暗号化キーワード記憶領域211、データ記憶領域212の内容がそれぞれ図8、図9のとおりであったとする。この場合、サーバ装置201が(id,c,d)を受信して処理を行うと、暗号化キーワード記憶領域211、データ記憶領域212の内容はそれぞれ図10、図11のように更新される。
(2)S202において、確率的暗号照合部221は、検索履歴記憶領域213にトラップドアが存在するかどうかを判定する。「トラップドア」とは、検索装置401からサーバ装置201に、秘匿検索要求として送信される情報である。トラップドアについては、図24のS301で後述する。トラップドアが存在する場合(S202でYES)、確率的暗号照合部221がトラップドアを用いた照合処理を行う(トラップドアが存在しない場合は本処理をスキップする)。
(3)トラップドアが存在する場合、S203において、確率的暗号照合部221が、検索履歴記憶領域213が記憶する各トラップドア(td)と、受信した暗号化キーワード(c)とについて、キーワードが一致するかどうかの一致判定を実行(照合処理を実行)する。
(4)確率的暗号照合部221は、S204において、検索履歴記憶領域213のトラップドア(td)の中に一致するものがあるかどうか判定する。一致するものがあれば(tdとする)、確率的暗号照合部221は、検索履歴記憶領域213でトラップドア(td)と関連付けて格納されている、確定的暗号化キーワード(det)を特定する。確率的暗号照合部221は、特定した(det)を、暗号化キーワード記憶領域211内の確定的暗号化キーワードとして、受信した暗号化キーワード(c)と関連付けて格納する(S205)。
例えば上述の例の続きとして、検索履歴記憶領域213の内容が図12のとおりであった場合、確率的暗号照合部221は、トラップドア(td)〜(td)と暗号化キーワード(c)のキーワード一致判定を行う。ここで(td)と(c)のキーワード一致が確認されれば、暗号化キーワード(c)に対応する確定的暗号化キーワードが(det)であることが分かる。このため、暗号化キーワード記憶領域211に(c)と(det)を関連付けて格納する。結果、暗号化キーワード記憶領域211は図13のように更新される。なお、キーワード一致が見つからなかった場合は、特に処理を行わない。以上で本手続きは完了である。
(C.データの検索、取得)
正当な検索装置401は、サーバ装置201に格納されたデータに対し、キーワードを指定して秘匿検索を行うことができる。以下、本手続きの手順を具体例とともに説明する。
(検索装置401による検索要求)
図24は、検索装置401による検索要求の処理のフローである。図24を参照して、検索装置401による検索要求の送信処理を説明する。
(1)まず、S301において、検索装置401のトラップドア生成部422が、検索用暗号鍵記憶領域411が記憶するトラップドア生成鍵を用いて、検索したいキーワードからトラップドアを生成する。ここでは、既存の暗号技術(確率的暗号ベースの秘匿検索技術)を利用する(トラップドアをtdとする)。トラップドアとは、検索したいキーワードから確率的暗号化方式によって生成される情報である。トラップドアは、秘匿検索における検索対象データのキーワードが確率的暗号化方式によって暗号化された暗号化キーワードとの一致判定に使用される。同時に、S302において、確定的暗号化キーワード生成部423が、検索用暗号鍵記憶領域411が記憶する確定的暗号化キーワード生成鍵を用いて、検索したいキーワードから確定的暗号化キーワードを生成する。ここでは、確定的暗号化方式として既存の暗号技術(例えばAESなどの共通鍵暗号技術)を利用する(確定的暗号化キーワードをdetとする)。つまり確定的暗号化キーワード生成部423は、トラップドアdの生成の元となるキーワードtdから、確定的暗号化方式によって確定的暗号化キーワード(det)を生成する。
そして、
(2)通信部431が、トラップドア(td)、確定的暗号化キーワード(det)の組(td,det)を、秘匿検索要求としてサーバ装置201に送信する(S303)。
なお、(det)は確定的暗号によって生成されるため、検索したいキーワードが同一であれば、常に同一の値が得られることになる。
(3)検索装置401は、サーバ装置201から検索結果を受信する(S401)。
(サーバ装置201)
図25は、サーバ装置201による秘匿検索の処理フローである。図25を参照して、サーバ装置201による秘匿検索処理を説明する。
(1)通信部231は検索装置401から検索要求(td,det)を受信する。
(2)この検索要求を受信したサーバ装置201は、まず、検索しようとするキーワードが、これまでの検索履歴に含まれているか否かを判定する。具体的には、確定的暗号照合部222が、検索履歴記憶領域213が記憶する各確定的暗号化キーワード(det)と、検索要求(td,det)に含まれる確定的暗号化キーワード(det)について、キーワードが一致するかどうかを判定する(S304、S305)。この判定(検索)はバイナリ一致判定で良いため、既存の(暗号化を考えない場合の)検索技術が利用できる。既存の検索技術の例としては、データをあらかじめソートしておくことによる高速化や、ハッシュテーブルの利用による高速化などが挙げられる。
(3)ここでバイナリ一致が見つかった場合(S305でYES)は、以前の検索結果が利用できることが分かる。以前の検索結果が利用できることが分かるのは、後述するキャッシュ処理部によるキャッシュ処理(S312)に基づく。確定的暗号照合部222が、暗号化キーワード記憶領域211から、確定的暗号化キーワードが検索要求に含まれる確定的暗号化キーワード(det)と一致するレコードを抽出する。この抽出処理は上記(S304)と同様、バイナリ一致判定で良いため、既存の検索技術が利用できる。そして、確定的暗号照合部222は、一致したレコードからデータID(id)を取得し(S306)、データ記憶領域212から、取得したデータIDに対応する暗号化データ(d)を取得する(S307)。
(4)その後、通信部231が検索装置401に、S307で取得された暗号化データを送信する(S308)。なお。複数取得された場合は全て送信するようにしても、一部を送信するようにしても良い。
(5)一方、バイナリ一致が見つからなかった場合は(S305でNO)、既存の秘匿検索技術を利用して、暗号化キーワード記憶領域211のレコードを1件ずつ検索する。具体的には、確率的暗号照合部221が、暗号化キーワード記憶領域211に含まれる全ての暗号化キーワード(c)を対象として、検索要求(td,det)に含まれるトラップドア(td)とのキーワード一致判定を行う(S309)。そして、受信したトラップドア(td)と一致する暗号化キーワード(c)がヒットした場合(S310でYES)、確率的暗号照合部221は、暗号化キーワード記憶領域211から、一致したレコードからデータID(id)を取得し、データ記憶領域212からデータID(id)に対応する暗号化データを取得する(S311)。その後、通信部231が検索装置401に、上記で取得された暗号化データを送信する(S308)
(6)なお、検索要求に対応する暗号化キーワードが存在しなかった場合は(S310でNO)、その旨を送信する。
(7)<キャッシュ処理>
確定的暗号化キーワードのバイナリ一致が見つからなかった場合(S305でNO)では、さらに、「検索要求および検索結果」のキャッシュ処理を実施する(S312)。具体的には、キャッシュ処理部223が、キャッシュポリシー記憶領域214に格納されたキャッシュポリシー(履歴ポリシー)の内容に従って、検索要求を検索履歴記憶領域213に格納する。また、キャッシュ処理部223は、暗号化キーワード記憶領域211のレコードのうち、キーワードが一致したレコードについて、確定的暗号化キーワード(det)として、検索要求に含まれる確定的暗号化キーワード(det)を格納する(S311,S312)。この場合、S310の判定で暗号化キーワード記憶領域211に検索要求(td、det)の(td)に対応する暗号化キーワード(c)がヒットした場合には(ヒットしたcをcとする)、キャッシュ処理部223は、キャッシュポリシー記憶領域214に格納されたキャッシュポリシー(関連付けポリシー)の内容に従って、検索要求(td、det)に含まれるdetを格納するかどうかを決定する。キャッシュポリシーが格納を指示する場合は、キャッシュ処理部223は検索要求のdetを、暗号化キーワード記憶領域211の(c)に対応付けて格納する。S312のキャッシュ処理によって、次回以降、同じキーワードで検索が行われる際に、確定的暗号化キーワード(det)を利用した高速な検索(バイナリ一致検索)が可能となる(S306,S307)。また、登録装置301からの送信により、データ(id,c,d)が追加で登録された際にも、検索履歴記憶領域213のトラップドアを利用して、過去の検索キーワード(td)と一致する暗号化キーワード(c)をあらかじめ洗い出すことができるので、検索処理に要する時間を短縮できる(図23のS202〜S205)。
(検索装置401)
最後に、図24のS401に示すように、検索結果である暗号化データを受信した検索装置401のデータ復号処理部421が、検索用暗号鍵記憶領域411が記憶するデータ復号鍵を用いて、暗号化データを復号する。ここでは、正当な検索装置401だけが復号できるような、既存の暗号技術を利用する。以上で本手続きは完了である。
ここで、本手続きについて、例を使って補足説明を行う。あらかじめ、サーバ装置201の暗号化キーワード記憶領域211、データ記憶領域212、検索履歴記憶領域213の内容がそれぞれ図10、図11、図12のとおりであるとする。また、キャッシュポリシー記憶領域214には、手続き(A.各装置の初期設定)で述べたように「全ての検索要求と検索結果をキャッシュする」というポリシーが記憶されているものとする。検索装置401が、初めて検索されるキーワードから検索要求(td,det)を生成し、これをサーバ装置201に送信したときを考える。すなわち、(det)は、(det)〜(det)とは異なる値である。このとき、サーバ装置201の確定的暗号照合部222が検索履歴記憶領域213(図12)から確定的暗号化キーワード(det)を検索しても見つからない。したがって、確率的暗号照合部221が、暗号化キーワード記憶領域211(図10)からトラップドア(td)とマッチする暗号化キーワードを検索する。この結果、例えば(c)と(c)がマッチしたとすると、サーバ装置201はこれらに対応する暗号化データ(d)と(d)を、検索結果として検索装置401に送信する。また、サーバ装置201のキャッシュ処理部223は、キャッシュポリシーに基づき、暗号化キーワード記憶領域211(図10)のマッチしたレコードに確定的暗号化キーワード(det)を格納し、検索履歴記憶領域213(図12)に検索要求(td,det)を格納する。その結果、暗号化キーワード記憶領域211および検索履歴記憶領域213はそれぞれ図14、図15のように更新される。
この状況で、さらに検索装置401が、同じキーワードから生成された検索要求(td,det)をサーバ装置201に送信したとする(確定的暗号化キーワードは同一の値となるが、トラップドアは異なる値となることに注意)。サーバ装置201の確定的暗号照合部222が検索履歴記憶領域213(図15)から確定的暗号化キーワード(det)を検索すると、上で格納したものが見つかる。したがって、確定的暗号照合部222が、暗号化キーワード記憶領域211(図14)から確定的暗号化キーワード(det)を含むレコードを検索する。結果、(c)と(c)を含むレコードがマッチするため、サーバ装置201はこれらに対応する暗号化データ(d)と(d)を、検索結果として検索装置401に送信する。今回は検索履歴記憶領域213(図15)のバイナリ一致判定で確定的暗号化キーワードが見つかったため、検索要求・検索結果に関するキャッシュ処理は行わない。
以上、上記(A.各装置の初期設定)〜(C.データの検索、取得)の手続きによって、検索装置401がデータ・キーワードをサーバ装置201に対して秘匿したまま検索できる秘匿検索システムが実現できる。(C.データの検索、取得)で説明した例からも分かるように、同じキーワードの2回目以降の検索では確率的暗号照合部221による処理(確率的暗号ベースの秘匿検索)が一切行われず、キーワード一致判定は全て確定的暗号照合部222によるバイナリ一致判定のみである。このため、検索処理に要する時間を大幅に短縮することが可能である。同時に、安全性について考えると、本実施の形態で示した方式が、従来の(確率的暗号だけを用いる)秘匿検索と比べて余分にサーバ装置201に開示する情報は、検索要求に含まれる確定的暗号化キーワード(det)のみである。したがって、確定的暗号化キーワードとして安全なものを利用すれば、サーバ装置201に対する安全性は全く低下しないことになる。なお、システム運用の途中で、例えば図14のように、暗号化キーワード記憶領域211が記憶する一部の暗号化キーワード(図14では(c)と(c))について、キーワードの同一性が漏れた状態になることがある。しかし、これは従来の(確率的暗号だけを用いる)秘匿検索であってもサーバ装置201が取得可能な情報であるため、サーバ装置201に対する安全性が低下しているわけではない。
一方で、サーバ装置201が確定的暗号化キーワードを記憶することによって、データが外部の攻撃者に漏えいした場合、攻撃者に余分な情報が漏れることになる。すなわち、従来の(確率的暗号だけを用いる)秘匿検索ではデータ漏えい時に外部の攻撃者が頻度分析攻撃をすることはできないが、本実施の形態で示した方式では、検索済みキーワードに関して頻度分析攻撃が可能となる。ここには「検索の高速性」「外部攻撃者に対する安全性」のトレードオフがあるが、これをコントロールするのがキャッシュポリシー記憶領域214、キャッシュ処理部223の一つの役割である。すなわち、秘匿検索システム100を利用する側で、検索の高速性を最優先したいのであれば、本実施の形態のように全ての検索履歴、検索結果をキャッシュすれば良い。あるいは、頻繁に使われる検索キーワードだけの高速化で十分ならば、そのようなキャッシュポリシーを設定すれば良い。
キャッシュポリシーのもう一つの意義は、検索履歴記憶領域213に記憶するトラップドアの数をコントロールすることである。本実施の形態1のように、全ての検索履歴(に含まれるトラップドア)をキャッシュすると、トラップドアの数が増えた際、手続き(B.検索対象データの送信、格納)のデータ登録で、暗号化キーワードと各トラップドアとの照合処理(S203)に時間を要してしまう。そこで、データ登録に時間をかけすぎないよう、検索履歴記憶領域213に記憶するトラップドアの数を制限するようなキャッシュポリシーを設定することが考えられる。
この場合、暗号化キーワード記憶領域211の中に、あるトラップドア(td)に対して照合済み(S309の照合)の暗号化キーワード(c)と、未照合の暗号化キーワード(c)が混在することがある。このため、これらを区別するための情報が必要となる。例えば、暗号化キーワード記憶領域211が図16のような内容を記憶し、検索履歴記憶領域213が図17のような内容を記憶するとする。この図16、図17により、次の内容が表現できる。図17から次のことがいえる。暗号化キーワード記憶領域211(図16)のレコードID1〜5(c〜c)については(det)〜(det)に対応するトラップドア、すなわち(td)〜(td)を用いた照合(検索照合)が行われたが、その後(td)と(td)が削除され、図16のレコードID6については(td)〜(td)での照合だけが行われたという状況を表現できる。この場合、例えば検索要求として検索装置401から(td,det)を受信したサーバ装置201は、図16のレコードID1〜5については(トラップドア(td)を用いることなく)検索にマッチしないことが分かる。これは、図17から、(det)に対応するトラップドアは、図16のレコードID1〜5(c〜c)と検索照合処理(S309)されていることがわかる。また、図16から、暗号化キーワード(c〜c)は、いずれも(det)と対応付けられていないので、暗号化キーワード(c〜c)は、(det)に対応する(td)にマッチしない。よって、暗号化キーワード(c)とトラップドア(td)の照合処理(検索時の照合)だけを実行すれば良いことになる。なお、トラップドアの数が上限に達した際の、トラップドアの取捨選択については、既存のキャッシュ技術が利用できる。
なお、本実施の形態では、登録装置301は、検索に用いないデータ(暗号化データの暗号化前のデータ)も暗号化してサーバ装置201に送信している。しかし、データの秘匿が不要であれば暗号化せずにサーバ装置201にデータを送信しても良い。また、検索に用いないデータの中に秘匿が必要なものと不要なものとが混在している場合、秘匿が必要なものだけを暗号化してサーバ装置201に送信するようにしても良い。
また、本実施の形態では、確定的暗号化キーワードを生成する手段として、同一キーワ―ドが常に同一の値に変換される暗号化(例えばAESなどの共通鍵暗号化)を用いている。しかし、同一キーワードが同一の値に変換され、かつ元のキーワードが秘匿されるのであれば、必ずしも暗号化でなくても良い。すなわち、確定的暗号化キーワードから元のキーワードを復元する必要がないため、HMACなどの鍵付きハッシュ関数を利用しても良い。
また、本実施の形態では、検索要求として、キーワードから確率的に生成されるトラップドアと、確定的暗号化キーワードを併用している。しかし、(確率的に生成される)暗号化キーワードと照合できるトラップドアをキーワードから確定的に生成できれば、確定的トラップドア一つに、トラップドア・確定的暗号化キーワード両方の役割を持たせることも可能である。これは、例えば確率的トラップドア生成に用いる乱数を、(キーワードにハッシュ関数を適用するなどして)確定的に生成するなどして実現できる。ただし、この場合、乱数を確定的に生成することによって、方式の安全性が低下する可能性があるため注意が必要である。
また、本実施の形態では、手続き(A.各装置の初期設定)で決定したキャッシュポリシーはシステム全体で不変としている。しかし、システム運用の途中で、例えばシステム利用企業の管理者によって変更が行われても良い。
また、本実施の形態では、手続き(B.検索対象データの送信、格納)でサーバ装置201が暗号化キーワードを受け取るたびに、検索履歴記憶領域213が記憶する各トラップドアとの照合処理を行っている。しかし、この照合処理を例えば(サーバ装置201の処理能力に余裕があると思われる)夜中に一括で行うようにしても良い。この場合、暗号化キーワード記憶領域211の中に、検索履歴記憶領域213中のトラップドアに対して照合済みの暗号化キーワードと、未照合の暗号化キーワードが混在することになるため、これらを区別するための情報が必要となる。
また、本実施の形態では、登録装置301がデータごとにデータIDを割り当て、暗号化キーワードと暗号化データの対応付けを行っている。しかし、これをサーバ装置201が行っても良い。具体的には、登録装置301が暗号化キーワード、暗号化データの組(c,d)をサーバ装置201に送信し、サーバ装置201がこれにユニークなデータID(id)を割り当てたうえで、(c,id)を暗号化キーワード記憶領域211に、(id,d)をデータ記憶領域212に格納する。
また、本実施の形態では、サーバ装置201において、暗号化キーワードと暗号化データを、暗号化キーワード記憶領域211とデータ記憶領域212に分けて格納している。しかし、これを一元的に管理することも可能である。この場合、格納されるデータは例えば図18のようになる。
また、本実施の形態では、一つのデータに対して一つのキーワードが対応する例を示した。しかし、一つのデータに複数のキーワードを対応させても良い。この場合、例えば図19のデータを暗号化キーワード記憶領域211に格納する。図19の例では、(id)に対応付けられたデータに、暗号化キーワード(c)、(c)が対応することになる。また、図20のように、キーワードの種類が複数あっても良い。
また、本実施の形態では、検索結果として暗号化データを返すためにデータ記憶領域212を利用している。しかし、暗号化データを返す必要がない場合、サーバ装置201がデータ記憶領域212を持たなくても良い。例えば、暗号化データは別の装置が保持し、そこへのアクセスを可能とするためにデータIDだけを返すようにしても良い。
また、本実施の形態では、登録装置301と検索装置401を別々の装置としている。しかし、情報検索者のみが情報登録可能である場合など、これらを一つの装置にまとめても良い。この場合、暗号化キーワード生成鍵などを外部に公開する必要がなくなるため、攻撃者に余分な情報を与えることなく秘匿検索システム100を運用することができる。
また、本実施の形態では、登録装置301の登録用暗号鍵記憶領域311や、検索装置401の検索用暗号鍵記憶領域411に暗号鍵や秘密情報を記憶している。しかし、これらを記憶せずに、必要時に外部から取得するようにしても良い。例えば、ICカードからの取得や、パスワード・生体情報からの自動生成などを実行しても良い。
また、本実施の形態では、登録装置301や検索装置401を1個だけ利用している。しかし、複数の登録装置301や検索装置401を利用して、データの登録や検索をそれぞれが実行できるようにしても良い。この場合、複数の検索装置401間でトラップドア生成鍵や確定的暗号化キーワード生成鍵を共有することで、異なる装置からでも同じ検索結果を得ることが可能となる。一方で、同じ検索キーワードでも、装置ごとに検索結果を変えたい場合は、トラップドア生成鍵を装置ごとに変えるのに加えて、確定的暗号化キーワード生成鍵も変える必要がある。
実施の形態2.
図26、図27を参照して実施の形態2を説明する。実施の形態2は、コンピュータであるサーバ装置201,登録装置301,検索装置401のハードウェア構成を説明する。サーバ装置201,登録装置301,検索装置401はいずれもコンピュータであるので、以下ではサーバ装置201を想定して説明する。以下のサーバ装置201の説明は登録装置301,検索装置401にも当てはまる。
図26は、コンピュータであるサーバ装置201の外観の一例を示す図である。
図27は、サーバ装置201のハードウェア資源の一例を示す図である。
外観を示す図26において、サーバ装置201は、システムユニット830、CRT(Cathode・Ray・Tube)やLCD(液晶)の表示画面を有する表示装置813、キーボード814(KeyBoard:K/B)、マウス815、コンパクトディスク装置818(CDD:Compact Disk Drive)などのハードウェア資源を備え、これらはケーブルや信号線で接続されている。システムユニット830はネットワークに接続している。
またハードウェア資源を示す図27において、サーバ装置201は、プログラムを実行するCPU810(Central Processing Unit)を備えている。CPU810は、バス825を介してROM(Read Only Memory)811、RAM(Random Access Memory)812、表示装置813、キーボード814、マウス815、通信ボード816、CDD818、磁気ディスク装置820と接続され、これらのハードウェアデバイスを制御する。磁気ディスク装置820の代わりに、光ディスク装置、フラッシュメモリなどの記憶装置でもよい。
RAM812は、揮発性メモリの一例である。ROM811、CDD818、磁気ディスク装置820等の記憶媒体は、不揮発性メモリの一例である。これらは、記憶装置あるいは記憶部、格納部、バッファ、記憶領域の一例である。通信ボード816、キーボード814などは、入力部、入力装置の一例である。また、通信ボード816、表示装置813などは、出力部、出力装置の一例である。通信ボード816(通信部)は、ネットワークに接続されている。
磁気ディスク装置820には、オペレーティングシステム821(OS)、ウィンドウシステム822、プログラム群823、ファイル群824が記憶されている。プログラム群823のプログラムは、CPU810、オペレーティングシステム821、ウィンドウシステム822により実行される。
上記プログラム群823には、以上の実施の形態の説明において「〜部」として説明した機能を実行するプログラムが記憶されている。プログラムは、CPU810により読み出され実行される。
ファイル群824には、以上の実施の形態の説明において、「〜の判定結果」、「〜の算出結果」、「〜の抽出結果」、「〜の生成結果」、「〜の処理結果」として説明した情報や、データや信号値や変数値やパラメータなどが、「〜ファイル」や「〜データベース」の各項目として記憶されている。「〜ファイル」や「〜データベース」は、ディスクやメモリなどの記録媒体に記憶される。また、ディスクやメモリなどの記憶媒体に記憶された情報やデータや信号値や変数値やパラメータは、読み書き回路を介してCPU810によりメインメモリやキャッシュメモリに読み出され、抽出・検索・参照・比較・演算・計算・処理・出力・印刷・表示などのCPUの動作に用いられる。抽出・検索・参照・比較・演算・計算・処理・出力・印刷・表示のCPUの動作の間、情報やデータや信号値や変数値やパラメータは、メインメモリやキャッシュメモリやバッファメモリに一時的に記憶される。
また、以上に述べた実施の形態の説明において、データや信号値は、RAM812のメモリ、CDD818のコンパクトディスク、磁気ディスク装置820の磁気ディスク、その他光ディスク、ミニディスク、DVD(Digital・Versatile・Disk)等の記録媒体に記録される。また、データや信号は、バス825や信号線やケーブルその他の伝送媒体によりオンライン伝送される。
また、以上の実施の形態の説明において、「〜部」として説明したものは、「〜手段」、であってもよく、また、「〜ステップ」、「〜手順」、「〜処理」であってもよい。すなわち、「〜部」として説明したものは、ソフトウェアのみ、或いは、ソフトウェアとハードウェアとの組み合わせ、さらには、ファームウェアとの組み合わせで実施されても構わない。ファームウェアとソフトウェアは、プログラムとして、磁気ディスク、フレキシブルディスク、光ディスク、コンパクトディスク、ミニディスク、DVD等の記録媒体に記憶される。プログラムはCPU810により読み出され、CPU810により実行される。すなわち、プログラムは、以上に述べた「〜部」としてコンピュータを機能させるものである。あるいは、以上に述べた「〜部」の手順や方法をコンピュータに実行させるものである。
以上の実施の形態では、例えばサーバ装置201を説明したが、サーバ装置201は、サーバ装置201として機能させるための秘匿検索プログラムとしても把握できることは以上の説明から当然である。また、サーバ装置201の各「〜部」の動作は、秘匿検索方法としても把握できることは以上の説明により明らかである。
100 秘匿検索システム、201 サーバ装置、210 データ記憶部、211 暗号化キーワード記憶領域、212 データ記憶領域、213 検索履歴記憶領域、214 キャッシュポリシー記憶領域、220 判定部、221 確率的暗号照合部、222 確定的暗号照合部、223 キャッシュ処理部、224 登録部、231 通信部、301 情報登録装置、311 登録用暗号鍵記憶領域、321 データ暗号処理部、322 暗号化キーワード生成部、331 通信部、401 情報検索装置、411 検索用暗号鍵記憶領域、421 データ復号処理部、422 トラップドア生成部、423 確定的暗号化キーワード生成部、431 通信部。

Claims (7)

  1. 秘匿検索を実行するサーバ装置において、
    検索装置から秘匿検索要求として、キーワードから確率的暗号化方式によって生成されるトラップドアであって、前記秘匿検索における検索対象データのキーワードが確率的暗号化方式によって暗号化された暗号化キーワードとの一致判定に使用されるトラップドアと、前記トラップドアの生成の元となる前記キーワードから確定的暗号化方式によって生成される確定的暗号化キーワードとの組を受信するサーバ側通信部と、
    過去の秘匿検索要求の履歴として、前記サーバ側通信部によって受信された前記トラップドアと前記確定的暗号化キーワードとの組を格納する検索履歴記憶部と、
    検索対象データと、この検索対象データの暗号化キーワードとが関連付けられると共に、判明している場合には、前記暗号化キーワードに対応する前記確定的暗号化キーワードがさらに関連付けられたキーワード情報を格納するデータ記憶部と、
    前記サーバ側通信部が受信した前記確定的暗号化キーワードと一致する前記確定的暗号化キーワードが、前記検索履歴記憶部に存在するかどうかを判定し、存在すると判定した場合には、前記データ記憶部を対象として、前記検索履歴記憶部に存在する前記確定的暗号化キーワードを用いて、確定的暗号化方式に基づく検索対象データの秘匿検索を実行し、存在しないと判定した場合には、前記データ記憶部を対象として、受信した前記トラップドアと、前記データ記憶部に格納されている前記キーワード情報の前記暗号化キーワードとを用いて、確率的暗号化方式に基づく検索対象データの秘匿検索を実行する判定部と
    を備えたことを特徴とするサーバ装置。
  2. 前記サーバ装置は、さらに、
    前記サーバ側通信部によって受信された前記トラップドアと前記確定的暗号化キーワードとの組を前記検索履歴記憶部に格納するかどうかの履歴ポリシーを格納するポリシー記憶部と、
    前記判定部が、前記サーバ側通信部が受信した前記確定的暗号化キーワードと一致する前記確定的暗号化キーワードが前記検索履歴記憶部に存在しないと判定した場合には、受信した前記トラップドアと前記確定的暗号化キーワードとの組を前記検索履歴記憶部に格納するかどうかを前記ポリシー記憶部の前記履歴ポリシーに従って決定するキャッシュ処理部と
    を備えたことを特徴とする請求項1記載のサーバ装置。
  3. 前記判定部は、
    前記サーバ側通信部が受信した前記確定的暗号化キーワードと一致する前記確定的暗号化キーワードが前記検索履歴記憶部に存在しないと判定した場合には、前記データ記憶部を対象として、受信した前記トラップドアと、前記データ記憶部に格納されている前記キーワード情報の前記暗号化キーワードとの一致判定を実行し、
    前記ポリシー記憶部は、
    前記判定部が前記一致判定によって、受信した前記トラップドアと一致する前記暗号化キーワードを前記データ記憶部から検出した場合には、検出された前記暗号化キーワードに、受信した前記トラップドアの組の前記確定的暗号化キーワードを関連付けるかどうかの関連付けポリシーを含み、
    前記キャッシュ処理部は、
    前記判定部が前記一致判定によって、受信した前記トラップドアと一致する前記暗号化キーワードを前記データ記憶部から検出した場合には、検出された前記暗号化キーワードの前記キーワード情報に、受信した前記トラップドアの組の前記確定的暗号化キーワードを関連付けるかどうかを前記関連付けポリシーに従って決定することを特徴とする請求項2記載のサーバ装置。
  4. 前記サーバ側通信部は、
    検索対象データの登録を要求する登録装置から、検索対象データと、この検索対象データの暗号化キーワードとを受信し、
    前記サーバ装置は、さらに、
    前記サーバ側通信部が受信した前記検索対象データと前記暗号化キーワードとを関連付けて前記データ記憶部に格納する登録部を
    備え、
    前記判定部は、
    前記サーバ側通信部が受信した前記暗号化キーワードと、前記検索履歴記憶部に格納された前記トラップドアとの一致判定を実行し、前記一致判定によって前記サーバ側通信部が受信した前記暗号化キーワードと一致する前記トラップドアを検出した場合には、検出された前記トラップドアと組をなす前記確定的暗号化キーワードを、前記登録部によって前記データ記憶部に格納された前記暗号化キーワードに関連付けることを特徴とする請求項1〜3のいずれか1項に記載のサーバ装置。
  5. コンピュータ
    検索装置から秘匿検索要求として、キーワードから確率的暗号化方式によって生成されるトラップドアであって、秘匿検索における検索対象データのキーワードが確率的暗号化方式によって暗号化された暗号化キーワードとの一致判定に使用されるトラップドアと、前記トラップドアの生成の元となる前記キーワードから確定的暗号化方式によって生成される確定的暗号化キーワードとの組を受信する処理
    過去の秘匿検索要求の履歴として、受信された前記トラップドアと前記確定的暗号化キーワードとの組を検索履歴記憶部に格納する処理
    検索対象データと、この検索対象データの暗号化キーワードとが関連付けられると共に、判明している場合には、前記暗号化キーワードに対応する前記確定的暗号化キーワードがさらに関連付けられたキーワード情報をデータ記憶部に格納する処理
    受信された前記確定的暗号化キーワードと一致する前記確定的暗号化キーワードが、前記検索履歴記憶部に存在するかどうかを判定し、存在すると判定した場合には、前記データ記憶部を対象として、前記検索履歴記憶部に存在する前記確定的暗号化キーワードを用いて、確定的暗号化方式に基づく検索対象データの秘匿検索を実行し、存在しないと判定した場合には、前記データ記憶部を対象として、受信した前記トラップドアと、前記データ記憶部に格納されている前記キーワード情報の前記暗号化キーワードとを用いて、確率的暗号化方式に基づく検索対象データの秘匿検索を実行する処理
    を実行させるための秘匿検索プログラム。
  6. 請求項5記載の秘匿検索プログラムを記録したコンピュータ読み取り可能な記録媒体。
  7. 秘匿検索要求をサーバ装置に送信する検索装置と、前記秘匿検索要求に応じて秘匿検索を実行するサーバ装置とを備えた秘匿検索システムにおいて、
    前記検索装置は、
    前記秘匿検索要求として、キーワードから確率的暗号化方式によって生成されるトラップドアであって、前記秘匿検索における検索対象データのキーワードが確率的暗号化方式によって暗号化された暗号化キーワードとの一致判定に使用されるトラップドアと、前記トラップドアの生成の元となる前記キーワードから確定的暗号化方式によって生成される確定的暗号化キーワードとの組を送信する検索側送信部を備え、
    前記サーバ装置は、
    前記検索側送信部が送信した前記トラップドアと、前記確定的暗号化キーワードとの組を受信するサーバ側通信部と、
    過去の秘匿検索要求の履歴として、前記サーバ側通信部によって受信された前記トラップドアと前記確定的暗号化キーワードとの組を格納する検索履歴記憶部と、
    検索対象データと、この検索対象データの暗号化キーワードとが関連付けられると共に、判明している場合には、前記暗号化キーワードに対応する前記確定的暗号化キーワードがさらに関連付けられたキーワード情報を格納するデータ記憶部と、
    前記サーバ側通信部が受信した前記確定的暗号化キーワードと一致する前記確定的暗号化キーワードが、前記検索履歴記憶部に存在するかどうかを判定し、存在すると判定した場合には、前記データ記憶部を対象として、前記検索履歴記憶部に存在する前記確定的暗号化キーワードを用いて、確定的暗号化方式に基づく検索対象データの秘匿検索を実行し、存在しないと判定した場合には、前記データ記憶部を対象として、受信した前記トラップドアと、前記データ記憶部に格納されている前記キーワード情報の前記暗号化キーワードとを用いて、確率的暗号化方式に基づく検索対象データの秘匿検索を実行する判定部と
    を備えたことを特徴とする秘匿検索システム。
JP2015501221A 2013-02-25 2013-02-25 サーバ装置、秘匿検索プログラム,記録媒体及び秘匿検索システム Active JP5963936B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2013/054735 WO2014128958A1 (ja) 2013-02-25 2013-02-25 サーバ装置、秘匿検索プログラム,記録媒体及び秘匿検索システム

Publications (2)

Publication Number Publication Date
JP5963936B2 true JP5963936B2 (ja) 2016-08-03
JPWO2014128958A1 JPWO2014128958A1 (ja) 2017-02-02

Family

ID=51390781

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015501221A Active JP5963936B2 (ja) 2013-02-25 2013-02-25 サーバ装置、秘匿検索プログラム,記録媒体及び秘匿検索システム

Country Status (5)

Country Link
US (1) US10235539B2 (ja)
EP (1) EP2960808A4 (ja)
JP (1) JP5963936B2 (ja)
CN (1) CN104995621B (ja)
WO (1) WO2014128958A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112784309A (zh) * 2021-02-20 2021-05-11 青岛大学 数据安全管理方法、电子设备和存储介质

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104702781A (zh) * 2015-02-04 2015-06-10 深圳市中兴移动通信有限公司 一种信息加密的方法及装置
JP6441160B2 (ja) * 2015-04-27 2018-12-19 株式会社東芝 秘匿化装置、復号装置、秘匿化方法および復号方法
WO2017122326A1 (ja) * 2016-01-14 2017-07-20 三菱電機株式会社 秘匿検索システム、秘匿検索方法及び秘匿検索プログラム
EP3392865B1 (en) * 2016-01-15 2021-06-02 Mitsubishi Electric Corporation Encryption device, encryption method, and encryption program
JP6381861B2 (ja) * 2016-05-27 2018-08-29 三菱電機株式会社 登録先決定装置、登録装置、秘匿検索システム、登録先決定方法及び登録先決定プログラム
FR3057123A1 (fr) * 2016-09-30 2018-04-06 Orange Procede et systeme de detection d'intrusions sur un reseau
US10721057B2 (en) * 2017-01-20 2020-07-21 Enveil, Inc. Dynamic channels in secure queries and analytics
US11507683B2 (en) 2017-01-20 2022-11-22 Enveil, Inc. Query processing with adaptive risk decisioning
US10873568B2 (en) 2017-01-20 2020-12-22 Enveil, Inc. Secure analytics using homomorphic and injective format-preserving encryption and an encrypted analytics matrix
US11196541B2 (en) 2017-01-20 2021-12-07 Enveil, Inc. Secure machine learning analytics using homomorphic encryption
US10790960B2 (en) 2017-01-20 2020-09-29 Enveil, Inc. Secure probabilistic analytics using an encrypted analytics matrix
US11777729B2 (en) 2017-01-20 2023-10-03 Enveil, Inc. Secure analytics using term generation and homomorphic encryption
CN110226190A (zh) * 2017-01-27 2019-09-10 三菱电机株式会社 检索装置、监视装置、监视方法和检索程序
WO2018198192A1 (ja) 2017-04-25 2018-11-01 三菱電機株式会社 検索装置、検索システム、検索方法及び検索プログラム
KR101979267B1 (ko) * 2017-05-29 2019-05-16 성균관대학교산학협력단 클라우드 저장 기반 암호화 시스템 및 방법
US11537726B2 (en) * 2017-12-18 2022-12-27 Nippon Telegraph And Telephone Corporation Secret computation system and method
AU2018389418B2 (en) * 2017-12-19 2021-11-04 Nippon Telegraph And Telephone Corporation Retrieval device, retrieval method, program, and recording medium
JP6462968B1 (ja) * 2018-01-17 2019-01-30 三菱電機株式会社 データ管理装置、データ管理方法及びデータ管理プログラム
JP6755434B2 (ja) * 2018-05-15 2020-09-16 三菱電機株式会社 秘匿検索装置および秘匿検索方法
US10902133B2 (en) 2018-10-25 2021-01-26 Enveil, Inc. Computational operations in enclave computing environments
US10817262B2 (en) 2018-11-08 2020-10-27 Enveil, Inc. Reduced and pipelined hardware architecture for Montgomery Modular Multiplication
CN109766314A (zh) * 2019-01-07 2019-05-17 西安电子科技大学 基于概率陷门的密文数据多关键词搜索方法
US11601258B2 (en) 2020-10-08 2023-03-07 Enveil, Inc. Selector derived encryption systems and methods
CN113904823B (zh) * 2021-09-28 2024-02-27 长沙学院 常数级授权计算复杂度的属性基可搜索加密方法及系统

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002044072A (ja) * 2000-03-24 2002-02-08 Contentguard Holdings Inc 秘話化電子著作物の生成方法、保護された電子著作物、及び電子著作物を再生の際に保護する方法
JP2011198079A (ja) * 2010-03-19 2011-10-06 Hitachi Solutions Ltd データベース暗号化システム及び方法
JP2012083863A (ja) * 2010-10-07 2012-04-26 Mitsubishi Electric Corp 情報検索装置および情報検索方法
WO2012077541A1 (ja) * 2010-12-08 2012-06-14 株式会社日立製作所 検索可能暗号処理システム
JP2012164031A (ja) * 2011-02-03 2012-08-30 Mitsubishi Electric Corp データ処理装置及びデータ保管装置及びデータ処理方法及びデータ保管方法及びプログラム
JP2012248940A (ja) * 2011-05-25 2012-12-13 Mitsubishi Electric Corp データ生成装置、データ生成方法、データ生成プログラム及びデータベースシステム

Family Cites Families (46)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5991414A (en) 1997-09-12 1999-11-23 International Business Machines Corporation Method and apparatus for the secure distributed storage and retrieval of information
JP3457184B2 (ja) 1998-06-25 2003-10-14 シャープ株式会社 検索装置及びその制御プログラムを記憶した媒体
US7068787B1 (en) 1998-10-23 2006-06-27 Contentguard Holdings, Inc. System and method for protection of digital works
US6519700B1 (en) 1998-10-23 2003-02-11 Contentguard Holdings, Inc. Self-protecting documents
JP4519963B2 (ja) 1999-06-21 2010-08-04 富士通株式会社 生体情報の暗号化・復号化方法および装置並びに、生体情報を利用した本人認証システム
US7496767B2 (en) 2001-01-19 2009-02-24 Xerox Corporation Secure content objects
EP1425649B1 (en) * 2001-09-14 2009-07-01 Computer Associates Think, Inc. Virus detection system
US7171557B2 (en) 2001-10-31 2007-01-30 Hewlett-Packard Development Company, L.P. System for optimized key management with file groups
JP2003178070A (ja) 2001-12-12 2003-06-27 Canon Inc 情報検索装置
US20050271246A1 (en) 2002-07-10 2005-12-08 Sharma Ravi K Watermark payload encryption methods and systems
US20050004924A1 (en) * 2003-04-29 2005-01-06 Adrian Baldwin Control of access to databases
CN101635021B (zh) * 2003-09-26 2011-08-10 日本电信电话株式会社 标签装置、标签自动识别系统和标签隐私保护方法
JP4395611B2 (ja) 2003-10-28 2010-01-13 独立行政法人情報通信研究機構 暗号化データベース検索装置および方法ならびに暗号化データベース検索プログラム
US20050138393A1 (en) 2003-12-22 2005-06-23 Challener David C. Determining user security level using trusted hardware device
JP2005284915A (ja) 2004-03-30 2005-10-13 Canon Inc 情報検索装置および方法、ならびに情報検索システムおよびその制御方法
JP4938678B2 (ja) 2004-11-16 2012-05-23 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ 類似性指標のセキュアな計算
JP2006210964A (ja) 2005-01-24 2006-08-10 National Institute Of Information & Communication Technology エルガマル暗号による情報授受伝達方法及び装置
JP2006262333A (ja) 2005-03-18 2006-09-28 Ic Brains Co Ltd 生体認証システム
JP4722620B2 (ja) 2005-08-19 2011-07-13 Kddi株式会社 暗号化文書検索方法および暗号化文書検索システム
JP4961214B2 (ja) 2006-03-29 2012-06-27 株式会社日立情報制御ソリューションズ 生体認証方法およびシステム
JP2008097438A (ja) 2006-10-13 2008-04-24 Hitachi Ltd ユーザ認証システム、認証サーバ、端末、及び耐タンパデバイス
US20090094200A1 (en) * 2007-10-05 2009-04-09 Yahoo! Inc. Method for Admission-controlled Caching
JP2009129210A (ja) 2007-11-25 2009-06-11 Tokyo Institute Of Technology チャレンジ・レスポンス生体認証方法
US8995665B1 (en) 2008-08-20 2015-03-31 Symantec Corporation Role based encryption without key management system
US8165305B2 (en) 2008-12-08 2012-04-24 Harrison Corporation Enhanced relational database security through encryption of table indices
JP5147673B2 (ja) 2008-12-18 2013-02-20 株式会社日立製作所 生体認証システムおよびその方法
JP2010160235A (ja) 2009-01-07 2010-07-22 Nippon Telegr & Teleph Corp <Ntt> 検索システム、端末装置、データベース装置、検索方法及びプログラム
JP2010165275A (ja) 2009-01-19 2010-07-29 Mitsubishi Electric Corp データ格納システム及び情報送信装置及びサーバ装置
US8837718B2 (en) 2009-03-27 2014-09-16 Microsoft Corporation User-specified sharing of data via policy and/or inference from a hierarchical cryptographic store
WO2010125653A1 (ja) 2009-04-28 2010-11-04 富士通株式会社 生体認証装置、生体認証方法および生体認証プログラム
US8495056B2 (en) * 2009-09-21 2013-07-23 At&T Intellectual Property I, L.P. System and method for caching database reports
EP2495908A4 (en) 2009-10-29 2017-07-19 Mitsubishi Electric Corporation Data processing device
JP5269209B2 (ja) 2010-01-13 2013-08-21 三菱電機株式会社 秘匿検索システム及び公開パラメータ生成装置及び暗号化装置及びユーザ秘密鍵生成装置及びクエリ発行装置及び検索装置及びコンピュータプログラム及び秘匿検索方法及び公開パラメータ生成方法及び暗号化方法及びユーザ秘密鍵生成方法及びクエリ発行方法及び検索方法
EP2525340B1 (en) 2010-01-15 2018-06-06 Mitsubishi Electric Corporation Confidential search system and encryption processing system
JP5432736B2 (ja) 2010-01-18 2014-03-05 日本電信電話株式会社 暗号化された情報のためのキーワード検索システム、キーワード検索方法、検索要求装置、検索代行装置、プログラム、記録媒体
JP5573293B2 (ja) 2010-03-30 2014-08-20 富士通株式会社 認証装置、暗号化装置、トークンデバイス、認証方法、および認証プログラム
US8429421B2 (en) * 2010-12-17 2013-04-23 Microsoft Corporation Server-side encrypted pattern matching
EP2665052B1 (en) 2011-01-13 2018-08-15 Mitsubishi Electric Corporation Data processing device and data archiving device
EP2667538A4 (en) 2011-01-18 2017-08-16 Mitsubishi Electric Corporation Encryption system, encryption processing method for encryption system, encryption device, encryption program, decryption device, decryption program, setup device, setup program, key generation device, key generation program, key assignment device and key assignment program
EP2680488B1 (en) 2011-02-22 2019-08-21 Mitsubishi Electric Corporation Similarity calculation system, similarity calculation device, computer program, and similarity calculation method
US8549653B2 (en) 2011-09-14 2013-10-01 Morgan Stanley Secure wildcard searchable database
JP5586795B2 (ja) 2011-11-30 2014-09-10 三菱電機株式会社 データ処理装置及びデータ処理方法及びプログラム
US9087212B2 (en) * 2012-01-25 2015-07-21 Massachusetts Institute Of Technology Methods and apparatus for securing a database
JP5606642B2 (ja) 2012-01-25 2014-10-15 三菱電機株式会社 データ検索装置、データ検索方法、データ検索プログラム、データ登録装置、データ登録方法、データ登録プログラムおよび情報処理装置
US20140019454A1 (en) * 2012-07-10 2014-01-16 Jason A. Carter Systems and Methods for Caching Data Object Identifiers
WO2014109066A1 (ja) 2013-01-12 2014-07-17 三菱電機株式会社 鍵生成装置、鍵生成プログラム、秘匿検索システム及び鍵配布方法

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002044072A (ja) * 2000-03-24 2002-02-08 Contentguard Holdings Inc 秘話化電子著作物の生成方法、保護された電子著作物、及び電子著作物を再生の際に保護する方法
JP2011198079A (ja) * 2010-03-19 2011-10-06 Hitachi Solutions Ltd データベース暗号化システム及び方法
JP2012083863A (ja) * 2010-10-07 2012-04-26 Mitsubishi Electric Corp 情報検索装置および情報検索方法
WO2012077541A1 (ja) * 2010-12-08 2012-06-14 株式会社日立製作所 検索可能暗号処理システム
JP2012164031A (ja) * 2011-02-03 2012-08-30 Mitsubishi Electric Corp データ処理装置及びデータ保管装置及びデータ処理方法及びデータ保管方法及びプログラム
JP2012248940A (ja) * 2011-05-25 2012-12-13 Mitsubishi Electric Corp データ生成装置、データ生成方法、データ生成プログラム及びデータベースシステム

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
JPN6013020423; 菅 孝徳ほか: '検索可能暗号の安全性再考' コンピュータセキュリティシンポジウム2011 (CSS 2011) 論文集 Vol. 2011, No. 3, 20111012, pp. 125-130 *
JPN6016019887; 伊藤 隆ほか: '頻度分析耐性を持つ高速秘匿検索方式' 電子情報通信学会技術研究報告 Vol. 110, No. 442, 20110224, pp. 1-6 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112784309A (zh) * 2021-02-20 2021-05-11 青岛大学 数据安全管理方法、电子设备和存储介质
CN112784309B (zh) * 2021-02-20 2022-08-23 青岛大学 数据安全管理方法、电子设备和存储介质

Also Published As

Publication number Publication date
CN104995621A (zh) 2015-10-21
EP2960808A4 (en) 2016-10-26
US20150371062A1 (en) 2015-12-24
JPWO2014128958A1 (ja) 2017-02-02
US10235539B2 (en) 2019-03-19
EP2960808A1 (en) 2015-12-30
CN104995621B (zh) 2018-06-05
WO2014128958A1 (ja) 2014-08-28

Similar Documents

Publication Publication Date Title
JP5963936B2 (ja) サーバ装置、秘匿検索プログラム,記録媒体及び秘匿検索システム
EP2731034B1 (en) Client computer for querying a database stored on a server via a network
US8245042B2 (en) Shielding a sensitive file
US9558366B2 (en) Computer system for storing and retrieval of encrypted data items, client computer, computer program product and computer-implemented method
CN101925913A (zh) 加密文件访问的方法和系统
US20170288858A1 (en) Server apparatus, search system, terminal apparatus, search method, non-transitory computer readable medium storing server program, and non-transitory computer readable medium storing terminal program
US20140331338A1 (en) Device and method for preventing confidential data leaks
AU2017283544A1 (en) Systems and methods for secure storage of user information in a user profile
US20240061790A1 (en) Locally-stored remote block data integrity
JP2006523995A (ja) 認可証明書におけるユーザ・アイデンティティのプライバシ
CN104239820A (zh) 一种安全存储设备
JP2012164031A (ja) データ処理装置及びデータ保管装置及びデータ処理方法及びデータ保管方法及びプログラム
KR102615556B1 (ko) 키 관리 서버를 이용한 데이터의 실시간 암복호화 보안 시스템 및 방법
JP5443236B2 (ja) 分散型データベースシステム
CN111753312B (zh) 数据处理方法、装置、设备和系统
US8499357B1 (en) Signing a library file to verify a callback function
WO2017126000A1 (ja) 暗号化装置、検索装置、暗号化プログラム、検索プログラム、暗号化方法及び検索方法
JP2013150309A (ja) 情報処理装置および情報処理方法およびプログラム
CN109154970B (zh) 登记目的地决定装置、登记装置、隐匿检索系统、登记目的地决定方法和计算机可读的存储介质
WO2018034192A1 (ja) 情報処理装置、情報処理方法、及び、記録媒体
JPWO2015162688A1 (ja) データ処理システム、データ処理方法
JP2013114534A (ja) データ処理装置及びデータ処理方法及びプログラム
US20230334141A1 (en) Systems and methods for providing secure passwords
US9560022B1 (en) Avoiding collection of biometric data without consent
US9086999B2 (en) Data encryption management

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160628

R150 Certificate of patent or registration of utility model

Ref document number: 5963936

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250