JP5606642B2 - データ検索装置、データ検索方法、データ検索プログラム、データ登録装置、データ登録方法、データ登録プログラムおよび情報処理装置 - Google Patents

データ検索装置、データ検索方法、データ検索プログラム、データ登録装置、データ登録方法、データ登録プログラムおよび情報処理装置 Download PDF

Info

Publication number
JP5606642B2
JP5606642B2 JP2013555046A JP2013555046A JP5606642B2 JP 5606642 B2 JP5606642 B2 JP 5606642B2 JP 2013555046 A JP2013555046 A JP 2013555046A JP 2013555046 A JP2013555046 A JP 2013555046A JP 5606642 B2 JP5606642 B2 JP 5606642B2
Authority
JP
Japan
Prior art keywords
data
search
unit
key
encryption
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
JP2013555046A
Other languages
English (en)
Other versions
JPWO2013111284A1 (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 JP5606642B2 publication Critical patent/JP5606642B2/ja
Publication of JPWO2013111284A1 publication Critical patent/JPWO2013111284A1/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/06Network architectures or network communication protocols for network security for supporting key management in a packet data network
    • H04L63/065Network architectures or network communication protocols for network security for supporting key management in a packet data network for group communications
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0894Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/34Encoding or coding, e.g. Huffman coding or error correction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/42Anonymization, e.g. involving pseudonyms
    • 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
    • H04L9/3066Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves
    • H04L9/3073Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves involving pairings, e.g. identity based encryption [IBE], bilinear mappings or bilinear pairings, e.g. Weil or Tate pairing

Landscapes

  • Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Physics & Mathematics (AREA)
  • Algebra (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Storage Device Security (AREA)

Description

本発明は、データ検索装置、データ検索方法、データ検索プログラム、データ登録装置、データ登録方法、データ登録プログラムおよび情報処理装置に関するものである。
公開鍵暗号(PKC:Public Key Cryptography)の分野において、暗号化したデータを復号しないでキーワード検索を行うための技術として、検索可能公開鍵暗号(PEKS:Public−key Encryption with Keyword Search)が知られている(非特許文献1参照)。
この検索可能公開鍵暗号は、例えば、次のようなアプリケーションを実現する。
送信者が機密情報を含んだデータファイルを外部データベース(以下、「サーバ」という)経由で受信者に送る、という状況を考える。すなわち、送信者がサーバにデータファイルをアップロードしておき、受信者がキーワード検索により必要なデータファイルをサーバからダウンロードする、という状況を考える。
ここで、送信者と受信者は、データファイルとキーワードとの両方をサーバに知られずに共有したい。
受信者は、公開鍵暗号の公開鍵・秘密鍵ペア(データファイル本体の暗号化・復号に使用)と、検索可能公開鍵暗号の公開鍵・秘密鍵ペア(キーワードの暗号化、検索クエリの作成に使用)とを予め用意する。そして、受信者は、それぞれの公開鍵を公開しておく。
送信者は、受信者の公開鍵暗号の公開鍵を用いてデータファイルを暗号化してデータファイルの暗号文を生成する。これに加えて、送信者は、検索可能公開鍵暗号の公開鍵を用いてキーワードを暗号化してキーワードの暗号文を生成する。以下、検索可能公開鍵暗号の公開鍵を用いて生成したキーワードの暗号文を「暗号化タグ」という。送信者は、データファイルの暗号文と暗号化タグとを合わせてサーバにアップロードする。
受信者は、検索可能公開鍵暗号の秘密鍵を用いてキーワードを暗号化してキーワードの暗号文を生成する。以下、検索可能公開鍵暗号の秘密鍵を用いて生成したキーワードの暗号文を「トラップドア」という。受信者は、このトラップドアを検索クエリとしてサーバに送信する。
サーバは、受け取ったトラップドアを用いてデータベース内の全てのデータファイルの暗号文それぞれの暗号化タグに対して秘匿検索を行う。そして、サーバは、秘匿検索でヒットしたデータファイルの暗号文を受信者に送信する。
検索可能公開鍵暗号には、全件検索をしなければならないため検索処理の時間がデータファイルの数に比例した大きさになってしまう、という課題があった。
これを解決するためにいくつかの方法が提案されている。
特許文献1は、キーワードと文書名とを対応付けて記憶したインデックス記憶部と暗号化した文書を記憶した暗号化データベースとを用意し、インデックス記憶部内のキーワードを検索し、検索にヒットしなかった場合に暗号化データベース内の文書を全文検索する方法を開示している。インデックス記憶部は検索結果に応じて更新される。
但し、この方法には、インデックス記憶部が適切に更新されるまでは全文検索が必要なため、検索処理を高速化することができない、という課題がある。また、この方法には、様々な検索要求が大量に発生した場合にインデックス記憶部の効果が薄まり、検索処理を高速化することができない、という課題もある。さらに、この方法には、既存の検索可能公開鍵暗号方式のシステムを大きく変更する必要がある、という課題もある。
特開2005−134990号公報 国際公開第2011/086668号パンフレット
Dan Boneh, Giovanni Di Crescenzo, Rafail Ostrovsky and Giuseppe Persiano, ``Public Key Encryption with Keyword Search,’’ Eurocrypt 2004, Lecture Notes in Computer Science, vol. 3027, pp. 506−522, 2004. Mihir Bellare, Alexandra Boldyreva, Anand Desai and David Pointcheval, ``Key−Privacy in Public−Key Encryption,’’ Asiacrypt 2001, Lecture Notes in Computer Science, vol. 2248, pp. 566−582, 2001. Alfred J. Menezes, Paul C. Van Oorschot, and Scott A. Vanstone, Handbook of Applied Cryptography, Chapter 8 ``Public−Key Encryption,’’ CRC Press, 2006. Dan Boneh and Matthew Franklin, ``Identity−Based Encryption from the Weil Pairing,’’ Crypto 2001, Lecture Notes in Computer Science, vol. 2139, pp. 213−229, 2001. Xavier Boyen and Brent Waters, ``Anonymous Hierarchical Identity−Based Encryption (Without Random Oracles),’’ Crypto 2006, Lecture Notes in Computer Science, vol. 4117, pp. 290−307, 2006. Michel Abdalla, Mihir Bellare, Dario Catalano, Eike Kiltz, Tadayoshi Kohno, Tanja Lange, John Malone−Lee, Gregory Neven, Pascal Paillier, and Haixia Shi, ``Searchable Encryption Revisited: Consistency Properties, Relation to Anonymous IBE, and Extensions,’’ Crypto 2005, Lecture Notes in Computer Science, vol. 3621, pp. 205−222, 2005. Jonathan Katz, Amit Sahai, and Brent Waters, ``Predicate Encryption Supporting Disjunctions, Polynomial Equations, and Inner Products,’’ Eurocrypt 2008, Lecture Notes in Computer Science, vol. 4965, pp. 146−162, 2008. Tatsuaki Okamoto and Katsuyuki Takashima, ``Adaptively Attribute−Hiding (Hierarchical) Inner Product Encryption,’’ Cryptology ePrint Archive, Report 2011/543, 2011.
本発明は、例えば、検索可能公開鍵暗号を用いた検索処理を高速化できるようにすることを目的とする。
本発明のデータ検索装置は、
1つ以上のデータを含んだ複数のデータグループと暗号化された情報を復号する複数の復号鍵とを対応付けて記憶するデータ記憶部と、
復号鍵を判定するための鍵判定情報を記憶する鍵判定情報記憶部と、
データを検索するための検索条件と、所定の情報を暗号化した暗号化情報とを入力する検索条件入力部と、
前記検索条件入力部が入力した前記暗号化情報を前記データ記憶部に記憶される前記複数の復号鍵それぞれを用いて復号し、前記複数の復号鍵のうち前記暗号化情報を前記鍵判定情報と同じ情報に復号した復号鍵を選択し、前記データ記憶部に記憶される前記複数のデータグループのうち前記選択した復号鍵に対応付けられたデータグループを検索先グループとして選択するデータグループ選択部と、
前記データグループ選択部によって選択された前記検索先グループに含まれる1つ以上のデータから前記検索条件入力部が入力した前記検索条件を満たすデータを検索結果のデータとして取得するデータ検索部と、
前記データ検索部によって取得された前記検索結果のデータを出力する検索結果出力部とを備える。
本発明によれば、例えば、検索可能公開鍵暗号を用いた検索処理を高速化することができる。
実施の形態1におけるデータ検索システム900の構成図。 実施の形態1におけるデータ検索端末100の機能構成図。 実施の形態1におけるシステム公開鍵140とシステム秘密鍵150とを示す図。 実施の形態1における公開鍵対応表160を示す図。 実施の形態1における検索クエリ170を示す図。 実施の形態1におけるデータ登録端末200の機能構成図。 実施の形態1におけるシステム暗号文230を示す図。 実施の形態1におけるデータ検索サーバ300の機能構成図。 実施の形態1における秘密鍵対応表350を示す図。 実施の形態1におけるデータ検索端末100のセットアップ処理を示すフローチャート。 実施の形態1におけるデータ登録端末200のデータ登録処理を示すフローチャート。 実施の形態1におけるデータ検索サーバ300のデータ登録処理を示すフローチャート。 実施の形態1におけるデータ検索端末100のデータ検索要求処理を示すフローチャート。 実施の形態1におけるデータ検索サーバ300のデータ検索処理を示すフローチャート。 実施の形態1におけるデータ検索端末100のカテゴリ登録要求処理を示すフローチャート。 実施の形態1におけるデータ検索サーバ300のカテゴリ登録処理を示すフローチャート。 実施の形態1におけるデータ検索システム900のハードウェア資源の一例を示す図。 実施の形態1における鍵判定値対応表192を示す図。 実施の形態1における公開鍵対応表160の別例を示す図。 実施の形態2におけるシステム公開鍵140とシステム秘密鍵150とを示す図。 実施の形態2におけるデータ検索端末100のセットアップ処理を示すフローチャート。 実施の形態2におけるデータ登録端末200のデータ登録要求処理を示すフローチャート。 実施の形態2におけるデータ検索サーバ300のデータ登録処理を示すフローチャート。 実施の形態2におけるデータ検索端末100のデータ検索要求処理を示すフローチャート。 実施の形態2におけるデータ検索サーバ300のデータ検索処理を示すフローチャート。 実施の形態2におけるデータ検索端末100のカテゴリ登録要求処理を示すフローチャート。 実施の形態2におけるデータ検索サーバ300のカテゴリ登録処理を示すフローチャート。 実施の形態2における公開鍵対応表160を示す図。 実施の形態3におけるシステム公開鍵140とシステム秘密鍵150とを示す図。
実施の形態1.
検索可能公開鍵暗号(PEKS)を用いて高速に検索を行うシステムについて説明する。
検索可能公開鍵暗号とは、暗号化したデータを復号しないでキーワード検索を行うための技術である(非特許文献1参照)。
図1は、実施の形態1におけるデータ検索システム900の構成図である。
実施の形態1におけるデータ検索システム900の構成について、図1に基づいて説明する。
データ検索システム900は検索可能公開鍵暗号を用いて検索を行うシステムの一例である。検索可能公開鍵暗号を用いることにより、検索対象のデータおよび検索用のキーワードを秘匿してキーワード検索を行うことができる。
データ検索システム900は、一つのデータ検索端末100と、複数のデータ登録端末200と、一つのデータ検索サーバ300とを備える。但し、データ検索端末100やデータ検索サーバ300が複数あっても構わないし、データ登録端末200が一つであっても構わない。
データ検索端末100とデータ登録端末200とデータ検索サーバ300とはネットワーク909(例えば、インターネット)を介して通信接続している。
データ登録端末200(データ登録装置の一例)は、検索対象のデータを暗号化してデータ検索サーバ300に登録するための装置(コンピュータ)である。
データ検索端末100(情報処理端末装置の一例)は、データ検索サーバ300に対して暗号化した検索キーワードを指定してキーワード検索を要求するための装置である。
データ検索サーバ300(データ検索装置の一例)は、データ登録端末200によって登録された暗号化データを対象にしてデータ検索端末100によって指定された暗号化キーワードに従って検索可能公開鍵暗号のキーワード検索を行うための装置である。データ検索サーバ300は検索結果をデータ検索端末100に応答する。
例えば、検索対象のデータとして電子メールが挙げられる。この場合、データ検索サーバ300はメールサーバとして機能し、データ登録端末200は電子メールの送信者が使用するコンピュータとして機能し、データ検索端末100は電子メールの受信者が使用するコンピュータとして機能する。そして、データ検索システム900は以下のように利用される。但し、以下の利用方法は、データ検索システム900の利用方法の一例である。
電子メールの送信者A、B、Cはそれぞれ、データ登録端末200を用いて暗号化した電子メールをデータ検索サーバ300へ送信する。データ検索サーバ300は送信者A、B、Cそれぞれの暗号化された電子メールを記憶する。
電子メールの受信者は、送信者Aの電子メールを見たい場合、データ検索端末100に対して電子メールの検索キーワードとして送信者Aの識別子(例えば、電子メールアドレス)を指定する。データ検索端末100は、検索キーワード(送信者Aの識別子)を暗号化してデータ検索サーバ300へ送信する。
データ検索サーバ300は、暗号化された検索キーワードに従って検索可能公開鍵暗号のキーワード検索を行い、送信者Aの暗号化された電子メールをデータ検索端末100へ送信する。
データ検索端末100は送信者Aの暗号化された電子メールを受信し、受信した電子メールを復号し、復号した電子メールを表示する。
これにより、電子メールの送信者A、B、Cおよび受信者は電子メールを秘匿することができる。さらに、電子メールの受信者は電子メールの検索キーワードを秘匿することができる。
図2は、実施の形態1におけるデータ検索端末100の機能構成図である。
実施の形態1におけるデータ検索端末100の機能構成について、図2に基づいて説明する。
データ検索端末100(情報処理装置の一例)は、セットアップ処理部110と、検索要求処理部120と、カテゴリ登録要求部130と、検索端末記憶部190とを備える。
セットアップ処理部110は、システム鍵生成部111と、公開鍵対応表生成部112と、鍵情報公開部113とを備える。
システム鍵生成部111は、後述する鍵判定値191とシステム公開鍵140とシステム秘密鍵150とを生成する。
公開鍵対応表生成部112は、後述する公開鍵対応表160を生成する。
鍵情報公開部113は、システム公開鍵140とシステム秘密鍵150と公開鍵対応表160とをデータ登録端末200またはデータ検索サーバ300に対して公開する。
システム鍵生成部111、公開鍵対応表生成部112および鍵情報公開部113の詳細については、後述するセットアップ処理のフローチャートに基づいて説明する。
図3は、実施の形態1におけるシステム公開鍵140とシステム秘密鍵150とを示す図である。
実施の形態1におけるシステム公開鍵140とシステム秘密鍵150とについて、図3に基づいて説明する。
システム公開鍵140およびシステム秘密鍵150は、データ検索システム900で使用する公開鍵暗号(または検索可能公開鍵暗号)の鍵ペアを構成する。
システム公開鍵140は、一つのデータ用公開鍵141と、一つのキーワード用公開鍵142と、複数のカテゴリ判定用公開鍵143(複数の暗号化鍵の一例)とを含む。
データ用公開鍵141は、検索対象のデータを暗号化するための鍵データ(暗号化鍵)である。
キーワード用公開鍵142は、検索対象のデータに添付するキーワード(データキーワード)またはデータの検索時に指定するキーワード(検索キーワード)を暗号化するための鍵データ(暗号化鍵)である。
カテゴリ判定用公開鍵143は、検索対象のデータが属するカテゴリ(データカテゴリ)を判定するための情報(鍵判定値191)を暗号化するための鍵データ(暗号化鍵)である。カテゴリ判定用公開鍵143はデータのカテゴリ毎に異なる。
システム秘密鍵150は、一つのデータ用秘密鍵151と、一つのキーワード用秘密鍵152と、複数のカテゴリ判定用秘密鍵153(複数の復号鍵の一例)とを含む。
データ用秘密鍵151は、暗号化された検索対象のデータを復号するための鍵データ(復号鍵)である。
キーワード用秘密鍵152は、検索キーワードに対応する秘密鍵(後述する検索用トラップドア171)を生成するための鍵データ(マスタ秘密鍵)である。
カテゴリ判定用秘密鍵153は、暗号化された鍵判定値191(後述する索引用タグ172または索引用タグ233)を復号するための鍵データ(復号鍵)である。カテゴリ判定用秘密鍵153はデータのカテゴリ毎に異なる。
データ用公開鍵141およびデータ用秘密鍵151はデータ用の鍵ペア(公開鍵暗号の鍵ペア)を構成する。
キーワード用公開鍵142およびキーワード用秘密鍵152はデータのキーワード用の鍵ペア(検索可能公開鍵暗号の鍵ペア)を構成する。キーワード用公開鍵142とキーワード用秘密鍵152とをデータ用の鍵ペアとして兼用しても構わない。この場合、データ用公開鍵141およびデータ用秘密鍵151は不要である。
カテゴリ判定用公開鍵143およびカテゴリ判定用秘密鍵153はデータのカテゴリ判定用の複数の鍵ペア(公開鍵暗号の鍵ペア)を構成する。
図4は、実施の形態1における公開鍵対応表160を示す図である。
実施の形態1における公開鍵対応表160について、図4に基づいて説明する。
公開鍵対応表160は、カテゴリ判定用公開鍵143とデータのカテゴリとを対応付けるデータである。
図4に示す公開鍵対応表160は、「PK」で識別されるカテゴリ判定用公開鍵143と「特許」カテゴリとを対応付け、「PK」で識別されるカテゴリ判定用公開鍵143と「意匠」カテゴリとを対応付けている。
図2に戻り、データ検索端末100の機能構成の説明を続ける。
検索要求処理部120は、検索キーワード入力部121と、検索クエリ生成部122と、検索要求部123と、検索結果出力部124とを備える。
検索キーワード入力部121(検索条件入力部の一例)は、利用者(データの検索者)に指定された検索キーワード(検索条件の一例)と検索対象のカテゴリとを入力装置または記憶装置から入力する。
検索クエリ生成部122(暗号化タグ生成部の一例)は、検索キーワードと検索対象のカテゴリとに基づいて検索クエリ170を生成する。検索クエリ170は検索キーワードを指定するためのデータである。
検索要求部123(データ検索要求部の一例)は、検索クエリ170をデータ検索サーバ300へ送信し、検索キーワードに該当する暗号化データを含んだ検索結果199をデータ検索サーバ300から受信する。
検索結果出力部124は、検索結果199に含まれる暗号化データをデータ用秘密鍵151を用いて復号し、復号して得られたデータを出力する。
検索キーワード入力部121、検索クエリ生成部122、検索要求部123および検索結果出力部124の詳細については、後述するデータ検索要求処理のフローチャートに基づいて説明する。
図5は、実施の形態1における検索クエリ170を示す図である。
実施の形態1における検索クエリ170について、図5に基づいて説明する。
検索クエリ170は、検索用トラップドア171(検索条件の情報の一例)と索引用タグ172(暗号化タグの一例)とを含んだデータである。
検索用トラップドア171は検索キーワードに対応する秘密鍵である。検索用トラップドア171はキーワード用秘密鍵152を用いて生成される。
索引用タグ172は、検索対象のカテゴリ用のカテゴリ判定用公開鍵143を用いて暗号化した鍵判定値191である。
図2に戻り、データ検索端末100の機能構成について説明を続ける。
カテゴリ登録要求部130は、特定のカテゴリに属するデータ用のデータベースの生成をデータ検索サーバ300に対して要求する。
カテゴリ登録要求部130の詳細については、後述するカテゴリ登録要求処理のフローチャートに基づいて説明する。
検索端末記憶部190(暗号化鍵記憶部の一例)は、データ検索端末100で使用するデータを記憶する。
例えば、検索端末記憶部190は、鍵判定値191、システム公開鍵140、システム秘密鍵150、公開鍵対応表160、検索クエリ170および検索結果199を記憶する。
図6は、実施の形態1におけるデータ登録端末200の機能構成図である。
実施の形態1におけるデータ登録端末200の機能構成について、図6に基づいて説明する。
データ登録端末200(データ登録装置の一例)は、公開情報取得部210と、データ登録要求処理部220と、登録端末記憶部290とを備える。
公開情報取得部210は、データ検索端末100によって公開された鍵判定値191とシステム公開鍵140と公開鍵対応表160とを取得する。
公開情報取得部210の詳細については、後述するセットアップ処理のフローチャートに基づいて説明する。
データ登録要求処理部220は、登録情報入力部221と、データ暗号文生成部222と、キーワード暗号文生成部223と、索引用タグ生成部224と、データ登録要求部225とを備える。
登録情報入力部221(分類情報入力部の一例)は、利用者(データの登録者)に指定されたデータとデータのキーワードとデータのカテゴリとを入力装置または記憶装置から入力する。
データ暗号文生成部222(データ生成部の一例)は、データ用公開鍵141を用いてデータを暗号化する。
キーワード暗号文生成部223は、キーワード用公開鍵142を用いてデータのキーワードを暗号化する。
索引用タグ生成部224(暗号化タグ生成部の一例)は、データのカテゴリ用のカテゴリ判定用公開鍵143を用いて鍵判定値191を暗号化する。
データ登録要求部225(データ登録要求部の一例)は、暗号化したデータとキーワードと鍵判定値191とを含んだシステム暗号文230の登録をデータ検索サーバ300に対して要求する。
登録情報入力部221、データ暗号文生成部222、キーワード暗号文生成部223、索引用タグ生成部224およびデータ登録要求部225の詳細については、後述するデータ登録要求処理のフローチャートに基づいて説明する。
図7は、実施の形態1におけるシステム暗号文230を示す図である。
実施の形態1におけるシステム暗号文230について、図7に基づいて説明する。
システム暗号文230は、データ暗号文231と、キーワード暗号文232と、索引用タグ233とを含んだデータである。
データ暗号文231(データの一例)は、データ用公開鍵141を用いてデータを暗号化したものである。
キーワード暗号文232は、キーワード用公開鍵142を用いてデータのキーワードを暗号化したものである。
索引用タグ233(暗号化タグの一例)は、データが属するカテゴリのカテゴリ判定用公開鍵143を用いて鍵判定値191を暗号化したものである。
図6に戻り、データ登録端末200の機能構成の説明を続ける。
登録端末記憶部290は、データ登録端末200で使用するデータを記憶する。
例えば、登録端末記憶部290は、鍵判定値191、システム公開鍵140、公開鍵対応表160およびシステム暗号文230を記憶する。
図8は、実施の形態1におけるデータ検索サーバ300の機能構成図である。
実施の形態1におけるデータ検索サーバ300の機能構成について、図8に基づいて説明する。
データ検索サーバ300(データ検索装置の一例)は、カテゴリ用秘密鍵管理部310と、データ登録処理部320と、データ検索処理部330と、カテゴリ判定部340と、検索サーバ記憶部390とを備える。
さらに、データ検索サーバ300は、データのカテゴリ別にデータベース(以下、「カテゴリ別DB部391」という)を備える。
また、データ検索サーバ300は、いずれのカテゴリにも分類されていないデータ用のデータベース(以下、「未分類DB部392」という)を備える。
カテゴリ用秘密鍵管理部310(追加復号鍵入力部、データグループ登録部の一例)は、データ検索端末100によって生成される鍵判定値191とカテゴリ判定用秘密鍵153とを管理する。
また、カテゴリ用秘密鍵管理部310は、カテゴリ判定用秘密鍵153に対応付けるカテゴリ別DB部391を生成する。
さらに、カテゴリ用秘密鍵管理部310は、カテゴリ判定用秘密鍵153とカテゴリ別DB部391とを対応付ける秘密鍵対応表350を生成する。
カテゴリ用秘密鍵管理部310の詳細については、後述するセットアップ処理のフローチャートおよびカテゴリ登録処理のフローチャートに基づいて説明する。
データ登録処理部320は、登録要求受信部321と、データ登録部322とを備える。
登録要求受信部321(新規データ入力部の一例)は、データ登録端末200から送信されるデータ(図7に示したシステム暗号文230)の登録要求を受信する。
データ登録部322(新規データ登録部の一例)は、データの登録要求に従ってデータが属するカテゴリ用のカテゴリ別DB部391にデータを記憶する。
登録要求受信部321およびデータ登録部322の詳細については、後述するデータ登録処理のフローチャートに基づいて説明する。
データ検索処理部330は、検索要求受信部331と、データ検索部332と、検索結果送信部333とを備える。
検索要求受信部331(検索条件入力部の一例)は、データ検索端末100から送信されるデータの検索要求(図5に示した検索クエリ)を受信する。
データ検索部332(データ検索部の一例)は、データの検索要求に従って検索対象のカテゴリ用のカテゴリ別DB部391を検索する。
検索結果送信部333(検索結果出力部の一例)は、検索条件を満たすデータ(図7に示したシステム暗号文230)を含んだ検索結果をデータ検索端末100へ送信する。
検索要求受信部331、データ検索部332および検索結果送信部333の詳細については、後述するデータ検索処理のフローチャートに基づいて説明する。
カテゴリ判定部340(データグループ選択部の一例)は、データの登録要求に基づいてデータが属するカテゴリ用のカテゴリ別DB部391を判定し、データの検索要求に基づいて検索対象のカテゴリ用のカテゴリ別DB部391を判定する。
カテゴリ判定部340の詳細については、後述するデータ登録処理のフローチャートおよびデータ検索処理のフローチャートに基づいて説明する。
検索サーバ記憶部390は、データ検索サーバ300で使用するデータを記憶する。
例えば、検索サーバ記憶部390は、鍵判定値191、カテゴリ判定用秘密鍵153および秘密鍵対応表350を記憶する。
図9は、実施の形態1における秘密鍵対応表350を示す図である。
実施の形態1における秘密鍵対応表350について、図9に基づいて説明する。
秘密鍵対応表350は、カテゴリ判定用秘密鍵153とカテゴリ別DB部391とを対応付けるデータである。
図9に示す秘密鍵対応表350は、「SK」で識別されるカテゴリ判定用秘密鍵153と、「DB」で識別されるカテゴリ別DB部391とを対応付け、「SK」で識別されるカテゴリ判定用秘密鍵153と、「DB」で識別されるカテゴリ別DB部391とを対応付けている。
図8に戻り、データ検索サーバ300の機能構成の説明を続ける。
カテゴリ別DB部391(データ記憶部の一例)は、同じカテゴリに分類された1つ以上のシステム暗号文230(データグループの一例)を記憶する。
未分類DB部392(データ記憶部の一例)は、いずれのカテゴリにも分類されていない1つ以上のシステム暗号文230(未分類グループの一例)を記憶する。
図10は、実施の形態1におけるデータ検索端末100のセットアップ処理を示すフローチャートである。
実施の形態1におけるデータ検索端末100のセットアップ処理について、図10に基づいて説明する。
データ検索を行いたい利用者(以下、「検索者」という)はデータ検索端末100のセットアップ処理部110を起動し、データ検索端末100のセットアップ処理部110は以下のセットアップ処理(S110からS131)を実行する。
S110において、システム鍵生成部111は、システム公開鍵140とシステム秘密鍵150とを生成する(図3参照)。鍵生成方法については非特許文献3を参照のこと。
このとき、システム鍵生成部111は、データ用公開鍵141とデータ用秘密鍵151との鍵ペアを公開鍵暗号方式の鍵生成アルゴリズムによって生成する。RSA暗号(RSAは登録商標)は公開鍵暗号方式の一例である。
また、システム鍵生成部111は、キーワード用公開鍵142とキーワード用秘密鍵152との鍵ペアを検索可能公開鍵暗号方式の鍵生成アルゴリズムによって生成する。
また、システム鍵生成部111は、カテゴリ判定用公開鍵143とカテゴリ判定用秘密鍵153との複数の鍵ペアを公開鍵暗号方式の鍵生成アルゴリズムによって生成する。例えば、システム鍵生成部111は、ElGamal暗号やCramer−Shoup暗号など、鍵匿名性(key−privacy)を有する公開鍵暗号方式を使用する。鍵匿名性とは、暗号文を見てもどの公開鍵を用いたかわからない、という性質である。カテゴリ判定用公開鍵143とカテゴリ判定用秘密鍵153との鍵ペアの個数はデータを分類するカテゴリの個数であり、検索者がデータ検索端末100のシステム鍵生成部111に対して指定(入力)する。
S110の後、S120に進む。
S120において、検索者は、S110で生成されたカテゴリ判定用公開鍵143に対応付けるデータのカテゴリを示すカテゴリ情報を入力装置(例えば、キーボードやマウス)を用いてデータ検索端末100の公開鍵対応表生成部112に対して入力する。つまり、公開鍵対応表生成部112は、検索者によって指定されたカテゴリ情報を入力装置から入力する。
公開鍵対応表生成部112は、入力したカテゴリ情報に従って図4に示すような公開鍵対応表160を生成する。公開鍵対応表160は、カテゴリ判定用公開鍵143とデータのカテゴリとを対応付けるデータである。
例えば、「PK」で識別されるカテゴリ判定用公開鍵143に対応付けるデータのカテゴリが「特許」である場合、公開鍵対応表生成部112は「PK」と「特許」とを対応付けて公開鍵対応表160に設定する。
S120の後、S130に進む。
S130において、鍵情報公開部113は、所定の鍵判定値191とS110で生成したシステム公開鍵140とS120で生成した公開鍵対応表160とをデータ登録端末200に対する公開情報として公開する。鍵判定値191は所定値(例えば「1」)である。
例えば、データ検索端末100の鍵情報公開部113が公開情報を所定のサーバ(例えば、データ検索サーバ300)に登録し、データ登録端末200の公開情報取得部210が所定のサーバから公開情報を取得する。公開情報取得部210は取得した公開情報を登録端末記憶部290に記憶する。
また例えば、データ登録端末200の公開情報取得部210が公開情報を要求する公開要求をデータ検索端末100へ送信し、データ検索端末100の鍵情報公開部113が公開要求を受信する。そして、データ検索端末100の鍵情報公開部113が公開情報をデータ登録端末200へ送信し、データ登録端末200の公開情報取得部210が公開情報を受信する。公開情報取得部210は受信した公開情報を登録端末記憶部290に記憶する。
S130の後、S131に進む。
S131において、鍵情報公開部113は、所定の鍵判定値191とS110で生成した複数のカテゴリ判定用秘密鍵153とをデータ検索サーバ300へ送信する。鍵判定値191はデータ登録端末200に対して公開する値と同じである。
但し、鍵情報公開部113は、複数のカテゴリ判定用秘密鍵153のうち少なくともいずれかのカテゴリ判定用秘密鍵153だけをデータ検索サーバ300へ送信してもよい。つまり、データ検索サーバ300に対して送信しないカテゴリ判定用秘密鍵153があっても構わない。例えば、検索者がカテゴリ判定用秘密鍵153を指定する。そして、鍵情報公開部113は、複数のカテゴリ判定用秘密鍵153のうち検索者によって指定されたカテゴリ判定用秘密鍵153をデータ検索サーバ300へ送信する。
このとき、データ検索サーバ300のカテゴリ用秘密鍵管理部310は、データ検索端末100の鍵情報公開部113によって送信された鍵判定値191とカテゴリ判定用秘密鍵153とを受信する。カテゴリ用秘密鍵管理部310は、受信した鍵判定値191とカテゴリ判定用秘密鍵153とを検索サーバ記憶部390に記憶する。
そして、カテゴリ用秘密鍵管理部310は、受信したカテゴリ判定用秘密鍵153別にカテゴリ別DB部391を生成する。カテゴリ別DB部391は、カテゴリ判定用秘密鍵153と鍵ペアを構成するカテゴリ判定用公開鍵143を用いて生成された索引用タグ233を含んだシステム暗号文230(図7参照)を記憶するためのデータベースである。
また、カテゴリ用秘密鍵管理部310は、図9に示すような秘密鍵対応表350を生成する。例えば、「SK」で識別されるカテゴリ判定用秘密鍵153に対して「DB」で識別されるカテゴリ別DB部391を生成した場合、カテゴリ用秘密鍵管理部310は「SK」と「DB」とを対応付けて秘密鍵対応表350に設定する。
S131により、セットアップ処理は終了する。
図11は、実施の形態1におけるデータ登録端末200のデータ登録処理を示すフローチャートである。
実施の形態1におけるデータ登録端末200のデータ登録処理について、図11に基づいて説明する。
検索対象のデータを登録したい利用者(以下、「登録者」という)はデータ登録端末200のデータ登録要求処理部220を起動し、データ登録端末200のデータ登録要求処理部220は以下のデータ登録処理(S210からS251)を実行する。
S210において、登録者は、検索対象として登録したいデータと、データに関連するキーワードと、データが属するカテゴリを示すカテゴリ情報とを入力装置を用いてデータ登録端末200の登録情報入力部221に対して入力する。つまり、登録情報入力部221は、登録者によって指定されたデータとキーワードとカテゴリ情報とを入力装置から入力する。
S210の後、S220に進む。
S220において、データ暗号文生成部222は、登録端末記憶部290からデータ用公開鍵141を取得し、取得したデータ用公開鍵141を用いてS210で入力されたデータを暗号化する。以下、暗号化後のデータを「データ暗号文231」という。
S220の後、S230に進む。
S230において、キーワード暗号文生成部223は、登録端末記憶部290からキーワード用公開鍵142を取得し、取得したキーワード用公開鍵142を用いてS210で入力されたキーワードを暗号化する。以下、暗号化後のキーワードを「キーワード暗号文232」という。
S230の後、S240に進む。
S240において、索引用タグ生成部224は、登録端末記憶部290に記憶されている公開鍵対応表160を参照する。
そして、索引用タグ生成部224は、公開鍵対応表160に示されている複数のカテゴリ判定用公開鍵143のうちS210で入力されたカテゴリ情報が示すカテゴリに対応付けられているカテゴリ判定用公開鍵143を選択し、選択したカテゴリ判定用公開鍵143を登録端末記憶部290から取得する。
S240の後、S241に進む。
S241において、索引用タグ生成部224は、登録端末記憶部290から鍵判定値191を取得し、S240で取得したカテゴリ判定用公開鍵143を用いて鍵判定値191を暗号化する。以下、暗号化後の鍵判定値191を「索引用タグ233」という。
S241の後、S250に進む。
S250において、データ登録要求部225は、S220で生成したデータ暗号文231とS230で生成したキーワード暗号文232とS241で生成した索引用タグ233とを含んだシステム暗号文230(図7参照)を生成する。
S250の後、S251に進む。
S251において、データ登録要求部225は、S250で生成したシステム暗号文230の登録を要求する登録要求をデータ検索サーバ300へ送信する。登録要求はシステム暗号文230を含んだデータである。
S251により、データ登録要求処理は終了する。
図12は、実施の形態1におけるデータ検索サーバ300のデータ登録処理を示すフローチャートである。
実施の形態1におけるデータ検索サーバ300のデータ登録処理について、図12に基づいて説明する。
S310において、登録要求受信部321は、データ登録端末200から送信されるシステム暗号文230の登録要求を受信する。
S310の後、S320に進む。
S320において、カテゴリ判定部340は、後述するS330で選択していない未選択のカテゴリ判定用秘密鍵153が検索サーバ記憶部390に有るか否かを判定する。
未選択のカテゴリ判定用秘密鍵153が有る場合(YES)、S330に進む。
未選択のカテゴリ判定用秘密鍵153が無い場合(NO)、S321に進む。
S330において、カテゴリ判定部340は、検索サーバ記憶部390から未選択のカテゴリ判定用秘密鍵153を一つ選択し、選択したカテゴリ判定用秘密鍵153を検索サーバ記憶部390から取得する。
S330の後、S331に進む。
S331において、カテゴリ判定部340は、S310で受信されたシステム暗号文230から索引用タグ233を取得し、取得した索引用タグ233をS330で取得したカテゴリ判定用秘密鍵153を用いて復号する。以下、索引用タグ233を復号した値を索引用タグ233の復号値という。
S331の後、S332に進む。
S332において、カテゴリ判定部340は、S331で得られた索引用タグ233の復号値と検索サーバ記憶部390に記憶されている鍵判定値191とを比較する。
索引用タグ233の復号値と鍵判定値191とが同じ値である場合(YES)、S340に進む。
索引用タグ233の復号値と鍵判定値191とが異なる値である場合(NO)、S320に戻る。
S340において、データ登録部322は、検索サーバ記憶部390に記憶されている秘密鍵対応表350(図9参照)を参照し、秘密鍵対応表350に示されている複数のカテゴリ別DB部391のうちS330で選択したカテゴリ判定用秘密鍵153に対応付けられているカテゴリ別DB部391を選択する。
そして、データ登録部322は、選択したカテゴリ別DB部391にS310で受信されたシステム暗号文230を記憶する。
S340により、データ登録処理は終了する。
S321において、データ登録部322は、S310で受信されたシステム暗号文230を未分類DB部392に記憶する。つまり、システム暗号文230のデータ暗号文231がいずれのカテゴリ別DB部391のカテゴリにも分類されない場合、データ登録部322はシステム暗号文230を未分類DB部392に記憶する。未分類DB部392はデータ検索サーバ300に予め生成しておく。
S321により、データ登録処理は終了する。
図11に示したデータ登録要求処理と図12に示したデータ登録処理とにより、システム暗号文230はデータ検索サーバ300のいずれかのカテゴリ別DB部391または未分類DB部392に記憶される。
図13は、実施の形態1におけるデータ検索端末100のデータ検索要求処理を示すフローチャートである。
実施の形態1におけるデータ検索端末100のデータ検索要求処理について、図13に基づいて説明する。
検索者はデータ検索端末100の検索要求処理部120を起動し、データ検索端末100の検索要求処理部120は以下のデータ検索要求処理(S410からS441)を実行する。
S410において、検索者は、検索キーワードと検索対象のカテゴリを示すカテゴリ情報とを入力装置を用いてデータ検索端末100の検索キーワード入力部121に対して入力する。つまり、検索キーワード入力部121は検索者によって指定された検索キーワードとカテゴリ情報とを入力装置から入力する。
S410の後、S420に進む。
S420において、検索クエリ生成部122は、検索端末記憶部190からキーワード用秘密鍵152を取得し、取得したキーワード用秘密鍵152を用いてS410で入力された検索キーワードを暗号化する。以下、暗号化後の検索キーワードを「検索用トラップドア171」という。
S420の後、S421に進む。
S421において、検索クエリ生成部122は、検索端末記憶部190に記憶されている公開鍵対応表160を参照し、公開鍵対応表160に示されている複数のカテゴリ判定用公開鍵143のうちS410で入力されたカテゴリ情報が示すカテゴリに対応付けられているカテゴリ判定用公開鍵143を選択する。
S421の後、S422に進む。
S422において、検索クエリ生成部122は、検索端末記憶部190から鍵判定値191を取得し、取得した鍵判定値191をS421で選択したカテゴリ判定用公開鍵143を用いて暗号化する。以下、暗号化後の鍵判定値191を「索引用タグ172」という。
S422の後、S423に進む。
S423において、検索クエリ生成部122は、S420で生成した検索用トラップドア171とS422で生成した索引用タグ172とを含んだ検索クエリ170(図5参照)を生成する。
S423の後、S430に進む。
S430において、検索要求部123は、S423で生成された検索クエリ170をデータ検索サーバ300へ送信する。
S430の後、S431に進む。
S431において、検索要求部123は、データ検索サーバ300から送信される検索結果を受信する。検索結果は、検索クエリ170に対応するデータ暗号文231(言い換えると「検索条件を満たすデータ暗号文231」または「検索処理でヒットしたデータ暗号文231」)を含んだデータである。
S431の後、S440に進む。
S440において、検索結果出力部124は、検索端末記憶部190からデータ用秘密鍵151を取得し、取得したデータ用秘密鍵151を用いてS431で受信された検索結果に含まれるデータ暗号文231を復号する。データ暗号文231を復号することにより、暗号化前のデータが得られる。
S440の後、S441に進む。
S441において、検索結果出力部124は、S440で得られたデータを含んだ検索結果を出力する。例えば、検索結果出力部124は、検索結果をディスプレイに表示する。
S441により、データ検索要求処理は終了する。
図14は、実施の形態1におけるデータ検索サーバ300のデータ検索処理を示すフローチャートである。
実施の形態1におけるデータ検索サーバ300のデータ検索処理について、図14に基づいて説明する。
S510において、検索要求受信部331は、データ検索端末100から送信される検索クエリ170を受信する。検索クエリ170は、検索用トラップドア171と索引用タグ172とを含んだデータである(図5参照)。
S510の後、S520に進む。
S520において、カテゴリ判定部340は、後述するS530で選択していない未選択のカテゴリ判定用秘密鍵153が検索サーバ記憶部390に有るか否かを判定する。
未選択のカテゴリ判定用秘密鍵153が有る場合(YES)、S530に進む。
未選択のカテゴリ判定用秘密鍵153が無い場合(NO)、S521に進む。
S530において、カテゴリ判定部340は、検索サーバ記憶部390から未選択のカテゴリ判定用秘密鍵153を一つ選択し、選択したカテゴリ判定用秘密鍵153を検索サーバ記憶部390から取得する。
S530の後、S531に進む。
S531において、カテゴリ判定部340は、S510で受信された検索クエリ170から索引用タグ172を取得し、取得した索引用タグ172をS530で取得したカテゴリ判定用秘密鍵153を用いて復号する。以下、索引用タグ172を復号した値を索引用タグ172の復号値という。
S531の後、S532に進む。
S532において、カテゴリ判定部340は、S531で得られた索引用タグ172の復号値と検索サーバ記憶部390に記憶されている鍵判定値191とを比較する。
索引用タグ172の復号値と鍵判定値191とが同じ値である場合(YES)、S540に進む。
索引用タグ172の復号値と鍵判定値191とが異なる値である場合(NO)、S520に戻る。
S540において、データ検索部332は、検索サーバ記憶部390に記憶されている秘密鍵対応表350(図9参照)を参照し、秘密鍵対応表350に示されている複数のカテゴリ別DB部391のうちS530で選択したカテゴリ判定用秘密鍵153に対応付けられているカテゴリ別DB部391を検索対象として選択する。
そして、データ検索部332は、S510で受信された検索クエリ170から検索用トラップドア171を取得し、取得した検索用トラップドア171を用いて検索可能公開鍵暗号方式の検索アルゴリズムによって検索対象のカテゴリ別DB部391を検索する。
例えば、データ検索部332は以下のように検索する。
データ検索部332は、検索対象のカテゴリ別DB部391からシステム暗号文230を一つずつ選択し、選択したシステム暗号文230からキーワード暗号文232を取得する。
データ検索部332は、キーワード暗号文232と検索用トラップドア171とを入力データにして検索可能公開鍵暗号方式の検索アルゴリズム(検索プログラム)を実行する。
データ検索部332は、検索アルゴリズムの実行結果に基づいて、キーワード暗号文232へ暗号化する前のデータキーワードと検索用トラップドア171へ暗号化する前の検索キーワードとが一致するか否かを判定する。キーワード暗号文232のデータキーワードと検索用トラップドア171の検索キーワードとが一致する場合、そのキーワード暗号文232と共にシステム暗号文230に含まれているデータ暗号文231が検索処理でヒットしたデータ暗号文231である。
S540の後、S550に進む。
S521において、データ検索部332は、S510で受信された検索クエリ170から検索用トラップドア171を取得し、取得した検索用トラップドア171を用いて検索可能公開鍵暗号方式の検索アルゴリズムによって未分類DB部392を検索する。つまり、データ検索部332はカテゴリ別DB部391の代わりに未分類DB部392を検索対象にして検索処理を行う。検索方法はS540と同様である。
S521の後、S550に進む。
S550において、検索結果送信部333は、S540またはS521の検索処理でヒットしたデータ暗号文231を含んだ検索結果をデータ検索端末100へ送信する。
S550により、データ検索処理は終了する。
図14に示したデータ検索処理により、データ検索サーバ300は、検索者が指定したカテゴリ用のカテゴリ別DB部391(または未分類DB部392)を検索対象にして検索可能公開鍵暗号方式で検索を行うことができる。つまり、データ検索サーバ300は、データと検索キーワードと検索対象のカテゴリとを秘匿にしたままキーワード検索を行うことができる。また、データ検索サーバ300は、検索者が指定したカテゴリ用のカテゴリ別DB部391(または未分類DB部392)を検索対象にして検索を行うことにより、全てのデータ暗号文231を検索する場合に比べて検索時間を短縮させることができる。
図15は、実施の形態1におけるデータ検索端末100のカテゴリ登録要求処理を示すフローチャートである。
実施の形態1におけるデータ検索端末100のカテゴリ登録要求処理について、図15に基づいて説明する。
S601において、検索者は、未分類のシステム暗号文230を分類したいカテゴリを示すカテゴリ情報を入力装置を用いてデータ検索端末100のカテゴリ登録要求部130に対して入力する。つまり、カテゴリ登録要求部130は検索者に指定されたカテゴリ情報を入力装置から入力する。
S601の後、S602に進む。
S602において、カテゴリ登録要求部130は、検索端末記憶部190に記憶されている公開鍵対応表160(図4参照)を参照し、公開鍵対応表160に示されている複数のカテゴリ判定用秘密鍵153のうちS601で入力したカテゴリ情報が示すカテゴリに対応付けられているカテゴリ判定用秘密鍵153を選択する。
S602の後、S603に進む。
S603において、カテゴリ登録要求部130は、S602で選択したカテゴリ判定用秘密鍵153を検索端末記憶部190から取得し、取得したカテゴリ判定用秘密鍵153を含んだカテゴリ登録要求をデータ検索サーバ300へ送信する。
S603により、カテゴリ登録要求処理は終了する。
図16は、実施の形態1におけるデータ検索サーバ300のカテゴリ登録処理を示すフローチャートである。
実施の形態1におけるデータ検索サーバ300のカテゴリ登録処理について、図16に基づいて説明する。
S610において、カテゴリ用秘密鍵管理部310は、データ検索端末100から送信されるカテゴリ登録要求を受信する。カテゴリ登録要求はカテゴリ判定用秘密鍵153を含んだデータである。
カテゴリ用秘密鍵管理部310は、受信したカテゴリ登録要求からカテゴリ判定用秘密鍵153を取得し、取得したカテゴリ判定用秘密鍵153を検索サーバ記憶部390に記憶する。
S610の後、S620に進む。
S620において、カテゴリ用秘密鍵管理部310は、新たにカテゴリ別DB部391を生成する。
S620の後、S630に進む。
S630において、カテゴリ用秘密鍵管理部310は、S610で取得したカテゴリ判定用秘密鍵153とS620で生成したカテゴリ別DB部391とを対応付けて秘密鍵対応表350(図9参照)に設定する。
S630の後、S640に進む。
S640において、カテゴリ用秘密鍵管理部310は、後述するS641で選択していない未選択のシステム暗号文230が未分類DB部392にあるか否かを判定する。
未選択のシステム暗号文230が未分類DB部392にある場合(YES)、S641に進む。
未選択のシステム暗号文230が未分類DB部392に無い場合(NO)、カテゴリ登録処理は終了する。
S641において、カテゴリ用秘密鍵管理部310は、未分類DB部392から未選択のシステム暗号文230を1つ選択し、選択したシステム暗号文230を未分類DB部392から取得する。
S641の後、S642に進む。
S642において、カテゴリ用秘密鍵管理部310は、S641で選択したシステム暗号文230から索引用タグ233を取得し、取得した索引用タグ233をS610で取得したカテゴリ判定用秘密鍵153を用いて復号する。以下、索引用タグ233を復号した値を索引用タグ233の復号値という。
S642の後、S643に進む。
S643において、カテゴリ用秘密鍵管理部310は、S642で得られた索引用タグ233の復号値と検索サーバ記憶部390に記憶されている鍵判定値191とを比較する。
索引用タグ233の復号値と鍵判定値191とが同じである場合(YES)、S644に進む。
索引用タグ233の復号値と鍵判定値191とが異なる場合(NO)、S640に戻る。
S644において、カテゴリ用秘密鍵管理部310は、S641で選択したシステム暗号文230を未分類DB部392からS620で生成した新たなカテゴリ別DB部391へ移動する。
S644の後、S640に戻る。
図15に示したカテゴリ登録要求処理と図16に示したカテゴリ登録処理とにより、新たなカテゴリ用のカテゴリ別DB部391が生成され、生成されたカテゴリ別DB部391には新たなカテゴリに分類されるシステム暗号文230が記憶される。
図17は、実施の形態1におけるデータ検索システム900のハードウェア資源の一例を示す図である。
図17において、データ検索端末100、データ登録端末200およびデータ検索サーバ300(いずれもコンピュータの一例)は、CPU901(Central Processing Unit)を備えている。CPU901は、バス902を介してROM903、RAM904、通信ボード905、ディスプレイ911(表示装置)、キーボード912、マウス913、ドライブ914、磁気ディスク装置920などのハードウェアデバイスと接続され、これらのハードウェアデバイスを制御する。ドライブ914は、FD(Flexible Disk Drive)、CD(Compact Disc)、DVD(Digital Versatile Disc)などの記憶媒体を読み書きする装置である。
ROM903、RAM904、磁気ディスク装置920およびドライブ914は記憶装置の一例である。キーボード912、マウス913および通信ボード905は入力装置の一例である。ディスプレイ911および通信ボード905は出力装置の一例である。
通信ボード905は、有線または無線で、LAN(Local Area Network)、インターネット、電話回線などの通信網に接続している。
磁気ディスク装置920には、OS921(オペレーティングシステム)、プログラム群922、ファイル群923が記憶されている。
プログラム群922には、実施の形態において「〜部」として説明する機能を実行するプログラムが含まれる。プログラム(例えば、データ検索プログラム、データ登録プログラム、情報処理プログラム)は、CPU901により読み出され実行される。すなわち、プログラムは、「〜部」としてコンピュータを機能させるものであり、また「〜部」の手順や方法をコンピュータに実行させるものである。
ファイル群923には、実施の形態において説明する「〜部」で使用される各種データ(入力、出力、判定結果、計算結果、処理結果など)が含まれる。
実施の形態において構成図およびフローチャートに含まれている矢印は主としてデータや信号の入出力を示す。
フローチャートなどに基づいて説明する実施の形態の処理はCPU901、記憶装置、入力装置、出力装置などのハードウェアを用いて実行される。
実施の形態において「〜部」として説明するものは「〜回路」、「〜装置」、「〜機器」であってもよく、また「〜ステップ」、「〜手順」、「〜処理」であってもよい。すなわち、「〜部」として説明するものは、ファームウェア、ソフトウェア、ハードウェアまたはこれらの組み合わせのいずれで実装されても構わない。
実施の形態1におけるデータ検索システム900は、例えば、以下のような特徴を有する。
(1)暗号文(システム暗号文230)と検索クエリとの両方に索引用タグを付加する(図5、7参照)。
(2)データ検索サーバ300に秘密鍵(カテゴリ判定用秘密鍵153)を開示することによって、秘密鍵に対応した特定のデータを全体から分離する。
(3)検索クエリ内の索引用タグを秘密鍵で復号し、その結果を見て検索対象を限定する(図14参照)。
(4)上記の(1)から(3)を組み合わせることにより、全件検索を回避し、検索を高速化する。
実施の形態1におけるデータ検索システム900により、例えば、以下のような効果を奏することができる。
(1)検索可能公開鍵暗号において検索の高速化を実現できる、という効果がある。
(2)特定のデータ(例えば、あるカテゴリに該当するデータ)に狙いを定めて検索を高速化することができる、という効果がある。
(3)検索者が検索の高速化を行うカテゴリを適応的に増加させることができる、という効果がある(図15、16参照)。
(4)索引用タグの作成に使用する公開鍵暗号としてElGamal暗号やCramer−Shoup暗号などの鍵匿名性を有する公開鍵暗号方式を利用することにより、暗号文のカテゴリ情報をデータ検索サーバ300に秘匿したままで検索を高速化できる、という効果がある。また、鍵匿名性を有さない公開鍵暗号方式を利用することにより、公開鍵暗号方式の選択肢を増やすことができる、という効果がある。
(5)既存の検索可能公開鍵暗号に対してカテゴリ判定用鍵ペア群(図3参照)や索引用タグ(図5、7参照)を増設する(アドオンする)構成をとっているため、既存の検索可能公開鍵暗号を大きく変更することなく実装することができる、という効果がある。これにより、実装コストを低減させることができる、という効果がある。
実施の形態1におけるデータ検索システム900は以下のような構成にしてもよい。
(1)システム暗号文230に複数の索引用タグ233を含めてもよい。この場合、登録者は複数のカテゴリ情報をデータ登録端末200に指定(入力)する。そして、データ登録端末200は指定されたカテゴリ別に索引用タグ233を生成し、生成した複数の索引用タグ233をシステム暗号文230に設定する。また、データ検索サーバ300は、システム暗号文230に含まれる複数の索引用タグ233に対応する複数のカテゴリ別DB部391にシステム暗号文230を記憶する。これにより、複数のカテゴリにまたがるデータに対応することができる。
(2)実施の形態1では索引用タグの平文(鍵判定値191)として定数(例えば「1」)を用いる例を示したが、検索対象のデータやキーワードに依存した平文を用いてもよい。
例えば、キーワード暗号文232(図7参照)のハッシュ値を索引用タグの平文として用いてもよい。このようにすれば、キーワード暗号文232と索引用タグとの間に対応関係が生じるため、通信路上におけるデータの取り替え攻撃に耐性を持たせることができる。この場合、データ検索端末100、データ登録端末200およびデータ検索サーバ300は鍵判定値191を使用する代わりにキーワード暗号文232のハッシュ値を算出して使用する。
(3)複数の鍵判定値191を用いてカテゴリの分類を詳細化してもよい。カテゴリの分類を詳細化することにより、より高速な検索を実現することができる。
例えば、データ検索システム900は以下のように動作する。
データ検索端末100は図18に示すような鍵判定値対応表192を生成し、生成した鍵判定値対応表192をデータ登録端末200およびデータ検索サーバ300に提供する。
データ検索端末100およびデータ登録端末200は利用者からカテゴリの大分類と小分類とを指定され、指定されたカテゴリの大分類と小分類とに対応付けられた鍵判定値191を使用する。
データ検索サーバ300は、カテゴリの大分類毎(カテゴリ判定用秘密鍵153毎)にカテゴリ別DB部391を生成し、カテゴリ別DB部391内でカテゴリの小分類別にシステム暗号文230を記憶する。例えば、データ検索サーバ300は、索引用タグ233の復号値が「11」であるシステム暗号文230と索引用タグ233の復号値が「12」であるシステム暗号文230とをカテゴリ別DB部391内で別々に管理する。
図18は、実施の形態1における鍵判定値対応表192を示す図である。図18に示すように、鍵判定値対応表192は大分類のカテゴリと小分類のカテゴリと鍵判定値191とを対応付けるデータである。カテゴリの分類は3階層以上(例えば、大分類、中分類、小分類)であっても構わない。
(4)実施の形態1ではカテゴリを適応的に増加させる方法(図15、16参照)を示したが、カテゴリを適応的に減少させてもよい。
例えば、検索者はデータ検索端末100を操作してカテゴリの削除要求をデータ検索サーバ300へ送信する。カテゴリの削除要求は削除したいカテゴリのカテゴリ判定用秘密鍵153を指定するデータである。データ検索サーバ300は削除要求に従ってカテゴリ判定用秘密鍵153を削除し、カテゴリ判定用秘密鍵153に対応付けられたカテゴリ別DB部391からシステム暗号文230を取り出して未分類DB部392へ移動し、カテゴリ別DB部391を削除する。
(5)実施の形態1ではカテゴリ判定用公開鍵143とカテゴリ判定用秘密鍵153との鍵ペアを所定数だけ生成する例を示したが、カテゴリ判定用公開鍵143とカテゴリ判定用秘密鍵153との鍵ペアを必要に応じて追加してもよい。
例えば、検索者はカテゴリを追加したい場合に追加のカテゴリ情報をデータ検索端末100に入力する。この場合、データ検索端末100は追加のカテゴリ情報に基づいて新たにカテゴリ判定用公開鍵143とカテゴリ判定用秘密鍵153との鍵ペアを生成し、公開鍵対応表160を更新し、カテゴリ判定用公開鍵143とカテゴリ判定用秘密鍵153と公開鍵対応表160とをセットアップ処理と同様にデータ登録端末200およびデータ検索サーバ300に提供する。
(6)実施の形態1ではデータ(データ暗号文231)やキーワード(キーワード暗号文232)の内容に関するカテゴリ(例えば「特許」「意匠」)によってシステム暗号文230を分類する例を示した。但し、データのその他の属性(作成日付、データサイズなど)によってシステム暗号文230を分類しても構わない。これにより、データの属性(種類)に応じてシステム暗号文230を管理し、検索を高速化することができる。
図19は、実施の形態1における公開鍵対応表160の別例を示す図である。
例えば、データ検索端末100は図19に示すような公開鍵対応表160を生成し、生成した公開鍵対応表160をデータ登録端末200に提供する。データ登録端末200は、公開鍵対応表160に示される複数のカテゴリ判定用公開鍵143のうちシステム暗号文230の作成日に対応付けられているカテゴリ判定用公開鍵143を用いてシステム暗号文230の索引用タグ233を生成する。検索者は、取得したいデータの作成日をデータ検索端末100に入力する。そして、データ検索端末100は、公開鍵対応表160に示される複数のカテゴリ判定用公開鍵143のうち入力されたデータの作成日に対応付けられているカテゴリ判定用公開鍵143を用いて検索クエリ170の索引用タグ172を生成する。
(7)公開鍵暗号方式(または検索可能公開鍵暗号)の代わりに他の暗号方式(例えば、共通鍵暗号方式)を用いても構わない。また、データやキーワードを必要に応じて暗号化せずに登録しても構わない。
実施の形態1において、例えば、以下のようなデータ検索システム900について説明した。
データ検索装置(データ検索サーバ300)は、データ記憶部と、鍵判定情報記憶部と、検索条件入力部と、データグループ選択部と、データ検索部と、検索結果出力部とを備える。
データ記憶部(記憶装置)は、1つ以上のデータ(システム暗号文230)を含んだ複数のデータグループ(カテゴリ別DB部391)と暗号化された情報を復号する複数の復号鍵(カテゴリ判定用秘密鍵153)とを対応付けて記憶する。
鍵判定情報記憶部(検索サーバ記憶部390)は、復号鍵を判定するための鍵判定情報(鍵判定値191)を記憶する。
検索条件入力部(検索要求受信部331)は、データを検索するための検索条件(検索用トラップドア171)と、所定の情報(鍵判定値191)を暗号化した暗号化情報(索引用タグ172)とを入力する。
データグループ選択部(カテゴリ判定部340)は、検索条件入力部が入力した暗号化情報をデータ記憶部に記憶される複数の復号鍵それぞれを用いて復号する。データグループ選択部は、複数の復号鍵のうち暗号化情報を鍵判定情報と同じ情報に復号した復号鍵を選択する。データグループ選択部は、データ記憶部に記憶される複数のデータグループのうち選択した復号鍵に対応付けられたデータグループを検索先グループとして選択する。
データ検索部(データ検索部332)は、データグループ選択部によって選択された検索先グループに含まれる1つ以上のデータから検索条件入力部が入力した検索条件を満たすデータを検索結果のデータとして取得する。
検索結果出力部(検索結果送信部333)は、データ検索部によって取得された検索結果のデータを出力する。
データ検索装置は、さらに、新規データ入力部と新規データ登録部とを備える。
新規データ入力部(登録要求受信部321)は、新規データ(データ暗号文231)と所定の情報(鍵判定値191)を暗号化した暗号化タグ(索引用タグ233)とを入力する。
新規データ登録部(データ登録部322)は、新規データ入力部が入力した新規データを複数のデータグループのうちデータグループ選択部によって選択される登録先グループに追加する。
データグループ選択部は、新規データ入力部が入力した暗号化タグを複数の復号鍵それぞれを用いて復号する。データグループ選択部は、複数の復号鍵のうち暗号化タグを鍵判定情報と同じ情報に復号した復号鍵を選択し、複数のデータグループのうち選択した復号鍵に対応付けられたデータグループを登録先グループとして選択する。
データ記憶部(記憶装置)は、さらに、複数のデータと所定の情報を暗号化した複数の暗号化タグとを対応付けて含んだデータグループとして未分類グループ(未分類DB部392)を記憶する。
データ検索装置は、さらに、追加復号鍵入力部とデータグループ登録部とを備える。
追加復号鍵入力部(カテゴリ用秘密鍵管理部310)は、新たな復号鍵(カテゴリ判定用秘密鍵153)を追加復号鍵として入力する。
データグループ登録部(カテゴリ用秘密鍵管理部310)は、未分類グループに含まれる複数の暗号化タグを追加復号鍵入力部が入力した追加復号鍵を用いて復号する。データグループ登録部は、複数の暗号化タグのうち鍵判定情報と同じ情報に復号された暗号化タグを選択する。データグループ登録部は、未分類グループに含まれる複数のデータから、選択した暗号化タグに対応付けられたデータを抽出し、複数のデータグループに加える新たなデータグループとして、抽出したデータを含んだ追加グループを生成する。データグループ登録部は、生成した追加グループと追加復号鍵とを対応付けてデータ記憶部に記憶する。
データ登録装置(データ登録端末200)は、データ生成部と、分類情報入力部と、暗号化タグ生成部と、データ登録要求部とを備える。
データ生成部(データ暗号文生成部222)はデータ(データ暗号文231)を生成する。
分類情報入力部(登録情報入力部221)は、データ生成部によって生成されたデータの分類を示す分類情報を入力する。
暗号化タグ生成部(索引用タグ生成部224)は、分類情報入力部が入力した分類情報に基づいて所定の情報(鍵判定値191)を暗号化することによって暗号化タグ(索引用タグ233)を生成する。
データ登録要求部(データ登録要求部225)は、データ生成部が生成したデータと暗号化タグ生成部が生成した暗号化タグとをデータ検索装置(データ検索サーバ300)へ送信する。これにより、データ登録要求部は、分類情報が示す分類のデータグループにデータを検索対象のデータとして追加する処理をデータ検索装置に実行させる。
データ登録装置は、さらに、複数の暗号化鍵(カテゴリ判定用公開鍵143)と複数の分類情報(カテゴリ情報)とを対応付けて記憶する暗号化鍵記憶部(登録端末記憶部290)を備える。
暗号化タグ生成部は、暗号化鍵記憶部に記憶される複数の暗号化鍵のうち分類情報入力部が入力した分類情報と同じ分類情報に対応付けられた暗号化鍵を選択し、選択した暗号化鍵を用いて所定の情報を暗号化して暗号化タグを生成する。
情報処理装置(データ検索端末100)は、検索条件入力部と、暗号化タグ生成部と、データ検索要求部とを備える。
検索条件入力部(検索キーワード入力部121)は、データ(データ暗号文231)を検索するための検索条件(検索キーワード)とデータの分類を示す分類情報(カテゴリ情報)とを入力する。
暗号化タグ生成部(検索クエリ生成部122)は、検索条件入力部が入力した分類情報に基づいて所定の情報(鍵判定値191)を暗号化することによって暗号化タグ(索引用タグ172)を生成する。
データ検索要求部(検索要求部123)は、検索条件入力部が入力した検索条件の情報(検索用トラップドア171)と暗号化タグ生成部によって生成された暗号化タグとをデータ検索装置(データ検索サーバ300)へ送信する。データ検索要求部は、分類情報が示す分類のデータグループに含まれるデータのうち検索条件を満たすデータを検索結果のデータとしてデータ検索装置から受信する。
情報処理装置は、さらに、複数の暗号化鍵(カテゴリ判定用公開鍵143)と複数の分類情報とを対応付けて記憶する暗号化鍵記憶部(検索端末記憶部190)を備える。
暗号化タグ生成部は、暗号化鍵記憶部に記憶される複数の暗号化鍵のうち検索条件入力部が入力した分類情報と同じ分類情報に対応付けられた暗号化鍵を選択し、選択した暗号化鍵を用いて所定の情報を暗号化して暗号化タグを生成する。
実施の形態2.
公開鍵暗号の代わりにIDベース暗号(IBE:Identity−Based Encryption)を用いる形態について説明する。
IDベース暗号とは、ユーザ名、IPアドレス、メールアドレスなどの識別子(ID)を公開鍵として用いる暗号方式である。
以下、実施の形態1と異なる事項について主に説明する。説明を省略する事項については実施の形態1と同様である。
データ検索システム900の構成、およびデータ検索端末100とデータ登録端末200とデータ検索サーバ300との機能構成は、実施の形態1と同様である(図1、2、6、8参照)。
但し、データ検索システム900は、以下の点で実施の形態1と異なる。
データ検索システム900は、公開鍵暗号の代わりにIDベース暗号を用いるため、実施の形態1で説明した公開鍵対応表160(図4参照)が不要である。このため、データ検索端末100の公開鍵対応表生成部112も不要である。処理の詳細については後述する。
図20は、実施の形態2におけるシステム公開鍵140とシステム秘密鍵150とを示す図である。
実施の形態2におけるシステム公開鍵140とシステム秘密鍵150とについて、図20に基づいて説明する。
システム公開鍵140は、実施の形態1(図3参照)で説明した複数のカテゴリ判定用公開鍵143の代わりに、一つのIBEマスタ公開鍵144を有する。IBEマスタ公開鍵144はIDベース暗号のマスタ公開鍵である。
システム秘密鍵150は、実施の形態1(図3参照)で説明した複数のカテゴリ判定用秘密鍵153の代わりに、一つのIBEマスタ秘密鍵154を有する。IBEマスタ秘密鍵154はIDベース暗号のマスタ秘密鍵である。
図21は、実施の形態2におけるデータ検索端末100のセットアップ処理を示すフローチャートである。
実施の形態2におけるデータ検索端末100のセットアップ処理について、図21に基づいて説明する。
以下に説明するS110BからS131Bは、実施の形態1(図10参照)で説明したS110からS131に対応する処理である。実施の形態1と一部が異なる処理には末尾に「B」を付記する。
S110Bにおいて、システム鍵生成部111はシステム公開鍵140とシステム秘密鍵150とを生成する。
図20に示したように、システム公開鍵140はIBEマスタ公開鍵144を含み、システム秘密鍵150はIBEマスタ秘密鍵154を含む。
システム鍵生成部111は、IDベース暗号方式のマスタ鍵生成アルゴリズムを実行してIBEマスタ公開鍵144とIBEマスタ秘密鍵154との鍵ペアを生成する。
例えば、システム鍵生成部111は、Boneh−Franklin IDベース暗号(BF−IBE)(非特許文献4参照)やBoyen−Waters IDベース暗号(BW−IBE)(非特許文献5参照)など、匿名性(anonymity)を有するIDベース暗号方式を使用する。匿名性とは、暗号文を見てもどのIDを公開鍵として用いたかわからない、という性質である(非特許文献6参照)。
但し、システム鍵生成部111は、匿名性を有さないIDベース暗号方式(例えば、Boneh−Boyen IDベース暗号(BB−IBE))を使用しても構わない。
S110Bの後、S130Bに進む。
S130Bにおいて、鍵情報公開部113は、実施の形態1のS130と同様にシステム公開鍵140と鍵判定値191とIDベース暗号の公開パラメータとをデータ登録端末200に対して公開する。但し、公開鍵対応表160は不要である。
S130Bの後、S131Bに進む。
S131Bにおいて、鍵情報公開部113は、IBEマスタ秘密鍵154とカテゴリ情報とを用いてIDベース暗号のユーザ秘密鍵生成アルゴリズムを実行し、カテゴリ別にユーザ秘密鍵を生成する。カテゴリ情報は利用者がデータ検索端末100に対して指定(入力)する。
鍵情報公開部113は、実施の形態1のS131と同様にカテゴリ別のユーザ秘密鍵(カテゴリ判定用秘密鍵153の代わり)と鍵判定値191とIDベース暗号の公開パラメータとをデータ検索サーバ300に登録する。データ検索サーバ300は、カテゴリ別のユーザ秘密鍵とカテゴリ別DB部391とを対応付ける秘密鍵対応表350を生成する。
S131Bにより、セットアップ処理は終了する。
図22は、実施の形態2におけるデータ登録端末200のデータ登録要求処理を示すフローチャートである。
実施の形態2におけるデータ登録端末200のデータ登録要求処理について、図22に基づいて説明する。
以下に説明するS210からS251は、実施の形態1(図11参照)で説明したS210からS251に対応する処理である。実施の形態1と一部が異なる処理には末尾に「B」を付記する。
S210からS230は実施の形態1と同じである。S230の後、S241Bに進む。
S241Bにおいて、索引用タグ生成部224は、IBEマスタ公開鍵144とカテゴリ情報とを用いてIDベース暗号の暗号化アルゴリズムを実行し、鍵判定値191を暗号化した索引用タグ233を生成する。つまり、索引用タグ生成部224はカテゴリ情報をパラメータとして、IBEマスタ公開鍵144を用いて鍵判定値191を暗号化する。
S241Bの後、S250に進む。
S250およびS251は実施の形態1と同じである。S251により、データ登録要求処理は終了する。
図23は、実施の形態2におけるデータ検索サーバ300のデータ登録処理を示すフローチャートである。
実施の形態2におけるデータ検索サーバ300のデータ登録処理について、図23に基づいて説明する。
以下に説明するS310からS340Bは、実施の形態1(図12参照)で説明したS310からS340に対応する処理である。実施の形態1と一部が異なる処理には末尾に「B」を付記する。
S310において、登録要求受信部321はデータ登録端末200からシステム暗号文230の登録要求を受信する。
S310の後、S320Bに進む。
S320Bにおいて、カテゴリ判定部340は、後述するS330Bで選択していない未選択のカテゴリ別のユーザ秘密鍵が検索サーバ記憶部390に有るか否かを判定する。
未選択のカテゴリ別のユーザ秘密鍵が有る場合(YES)、S330Bに進む。
未選択のカテゴリ別のユーザ秘密鍵が無い場合(NO)、S321に進む。S321において、データ登録部322はシステム暗号文230を未分類DB部392に記憶する。
S330Bにおいて、カテゴリ判定部340は、検索サーバ記憶部390から未選択のカテゴリ別のユーザ秘密鍵を一つ選択する。
S330Bの後、S331Bに進む。
S331Bにおいて、カテゴリ判定部340は、S330Bで選択したカテゴリ別のユーザ秘密鍵を用いてシステム暗号文230に含まれる索引用タグ233を復号する。
S331Bの後、S332に進む。
S332において、カテゴリ判定部340は、鍵判定値191とS331Bで得られた索引用タグ233の復号値とを比較する。
鍵判定値191と索引用タグ233の復号値とが同じ値である場合(YES)、S340Bに進む。
鍵判定値191と索引用タグ233の復号値とが異なる値である場合(NO)、S320Bに戻る。
S340Bにおいて、データ登録部322は、S330Bで選択したカテゴリ別のユーザ秘密鍵に対応するカテゴリ別DB部391にシステム暗号文230を記憶する。
S340Bにより、データ登録処理は終了する。
図24は、実施の形態2におけるデータ検索端末100のデータ検索要求処理を示すフローチャートである。
実施の形態2におけるデータ検索端末100のデータ検索要求処理について、図24に基づいて説明する。
以下に説明するS410からS441は、実施の形態1(図13参照)で説明したS410からS441に対応する処理である。実施の形態1と一部が異なる処理には末尾に「B」を付記する。
S410およびS420は実施の形態1と同じである。S420の後、S422Bに進む。
S422Bにおいて、検索クエリ生成部122は、IBEマスタ公開鍵144とカテゴリ情報とを用いてIDベース暗号の暗号化アルゴリズムを実行し、鍵判定値191を暗号化した索引用タグ172を生成する。つまり、検索クエリ生成部122はカテゴリ情報をパラメータとして、IBEマスタ公開鍵144を用いて鍵判定値191を暗号化する。
S422Bの後、S423に進む。
S423からS441は実施の形態1と同じである。S441により、データ検索要求処理は終了する。
図25は、実施の形態2におけるデータ検索サーバ300のデータ検索処理を示すフローチャートである。
実施の形態2におけるデータ検索サーバ300のデータ検索処理について、図25に基づいて説明する。
以下に説明するS510からS550は、実施の形態1(図14参照)で説明したS510からS550に対応する処理である。実施の形態1と一部が異なる処理には末尾に「B」を付記する。
S510において、検索要求受信部331は、検索用トラップドア171と索引用タグ172とを含んだ検索クエリ170をデータ検索端末100から受信する。
S510の後、S520Bに進む。
S520Bにおいて、カテゴリ判定部340は、後述するS530Bで選択していない未選択のカテゴリ別のユーザ秘密鍵が検索サーバ記憶部390にあるか否かを判定する。
未選択のカテゴリ別のユーザ秘密鍵が有る場合(YES)、S530Bに進む。
未選択のカテゴリ別のユーザ秘密鍵が無い場合(NO)、S521に進む。S521において、データ検索部332は、検索用トラップドア171を用いて検索可能公開鍵暗号方式の検索アルゴリズムにより未分類DB部392を検索する。
S530Bにおいて、カテゴリ判定部340は、検索サーバ記憶部390から未選択のカテゴリ別のユーザ秘密鍵を一つ選択する。
S530Bの後、S531Bに進む。
S531Bにおいて、カテゴリ判定部340は、S530Bで選択したカテゴリ別のユーザ秘密鍵を用いて索引用タグ172を復号する。
S531Bの後、S532に進む。
S532において、カテゴリ判定部340は、鍵判定値191とS531Bで得られた索引用タグ172の復号値とを比較する。
鍵判定値191と索引用タグ172の復号値とが同じ値である場合(YES)、S540Bに進む。
鍵判定値191と索引用タグ172の復号値とが異なる値である場合(NO)、S520Bに戻る。
S540Bにおいて、データ検索部332は、S530Bで選択したカテゴリ別のユーザ秘密鍵に対応するカテゴリ別DB部391を、検索用トラップドア171を用いて検索可能暗号方式の検索アルゴリズムにより検索する。
S540Bの後、S550に進む。
S550において、検索結果送信部333は、S540BまたはS521の検索処理でヒットしたデータ暗号文231を含んだ検索結果をデータ検索端末100へ送信する。
S550により、データ検索処理は終了する。
図26は、実施の形態2におけるデータ検索端末100のカテゴリ登録要求処理を示すフローチャートである。
実施の形態2におけるデータ検索端末100のカテゴリ登録要求処理について、図26に基づいて説明する。
以下に説明するS601からS603Bは、実施の形態1(図15参照)で説明したS601からS603に対応する処理である。実施の形態1と一部が異なる処理には末尾に「B」を付記する。
S601において、カテゴリ登録要求部130は検索者が指定したカテゴリ情報を入力する。
S601の後、S602Bに進む。
S602Bにおいて、カテゴリ登録要求部130は、IBEマスタ秘密鍵154とカテゴリ情報とを用いてIDベース暗号のユーザ秘密鍵生成アルゴリズムを実行し、カテゴリ別のユーザ秘密鍵を生成する。
S602Bの後、S603Bに進む。
S603Bにおいて、カテゴリ登録要求部130は、S602Bで生成したカテゴリ別のユーザ秘密鍵を含んだカテゴリ登録要求をデータ検索サーバ300へ送信する。
S603Bにより、カテゴリ登録要求処理は終了する。
図27は、実施の形態2におけるデータ検索サーバ300のカテゴリ登録処理を示すフローチャートである。
実施の形態2におけるデータ検索サーバ300のカテゴリ登録処理について、図27に基づいて説明する。
以下に説明するS610BからS644は、実施の形態1(図16参照)で説明したS610からS644に対応する処理である。実施の形態1と一部が異なる処理には末尾に「B」を付記する。
S610Bにおいて、カテゴリ用秘密鍵管理部310は、カテゴリ別のユーザ秘密鍵を含んだカテゴリ登録要求をデータ検索端末100から受信する。
S610Bの後、S620に進む。
S620において、カテゴリ用秘密鍵管理部310は新たなカテゴリ別DB部391を生成する。
S620の後、S630Bに進む。
S630Bにおいて、カテゴリ用秘密鍵管理部310は、秘密鍵対応表350にカテゴリ別のユーザ秘密鍵と新たなカテゴリ別DB部391との対応関係を設定する。
S630Bの後、S640に進む。
S640において、カテゴリ用秘密鍵管理部310は、後述するS641で選択していない未選択のシステム暗号文230が有るか否かを判定する。
未選択のシステム暗号文230が有る場合(YES)、S641に進む。
未選択のシステム暗号文230が無い場合(NO)、カテゴリ登録処理は終了する。
S641において、カテゴリ用秘密鍵管理部310は、登録端末記憶部290から未選択のシステム暗号文230を一つ選択する。
S641の後、S642Bに進む。
S642Bにおいて、カテゴリ用秘密鍵管理部310は、カテゴリ別のユーザ秘密鍵を用いて索引用タグ233を復号する。
S642Bの後、S643に進む。
S643において、カテゴリ用秘密鍵管理部310は、鍵判定値191とS642Bで得られた索引用タグ233の復号値とを比較する。
鍵判定値191と索引用タグ233の復号値とが同じ値である場合(YES)、S644に進む。
鍵判定値191と索引用タグ233の復号値とが異なる値である場合(NO)、S640に戻る。
S644において、カテゴリ用秘密鍵管理部310は、S641で選択したシステム暗号文230を未分類DB部392から新たなカテゴリ別DB部391へ移動する。
S644の後、S640に戻る。
実施の形態2において、実施の形態1と同様に公開鍵対応表160を用いても構わない。この場合、データ検索端末100およびデータ登録端末200は以下のように動作する。
図28は、実施の形態2における公開鍵対応表160を示す図である。図28に示すように、公開鍵対応表160は、カテゴリ判定用公開鍵として用いるIDとカテゴリとを対応付けるデータである。
データ検索端末100およびデータ登録端末200は、カテゴリ情報を用いてカテゴリ別のユーザ公開鍵を生成する代わりに、公開鍵対応表160に示される複数のIDのうちカテゴリ情報が示すカテゴリに対応するIDを用いてカテゴリ別のユーザ公開鍵を生成する。
実施の形態2におけるデータ検索システム900により、例えば、以下のような効果を奏することができる。
(1)実施の形態1と同様な効果を得ることができる。特に、検索可能公開鍵暗号において検索の高速化を実現することができる。また、匿名性を有するIDベース暗号を用いることにより暗号文のカテゴリ情報を秘匿することができる。
(2)公開鍵対応表が不要なため、データ登録端末200は公開鍵対応表を参照することなく直ちに索引用タグ233を生成することができる。但し、公開鍵対応表を用いても構わない。
(3)IBEマスタ公開鍵144およびIBEマスタ秘密鍵154を用いることにより、カテゴリ数の増加や減少に直ちに対応することができる。
実施の形態3.
IDベース暗号の代わりに関数型暗号(FE:Functional Encryption)を用いる形態について説明する。
関数型暗号とは、パラメータxを公開鍵として用いて、ユーザ秘密鍵を生成する際にパラメータyを用いる暗号方式である。パラメータxとパラメータyとが所定の関係R(x、y)を満たす場合に暗号文を復号することができる。
パラメータx、パラメータyおよび関係R(x,y)には様々な種類がある。例えば、属性秘匿性を有する関数型暗号の場合、xおよびyは数値ベクトルであり、関係Rはxとyとの内積値が0となる関係であることが一般的である。このようなx、y、R(x,y)を内積述語と呼ぶ。例えば、x=(1,34,5)、y=(−29, 1, −1)のとき、xとyの内積値は0になるので、このxおよびyは関係R(x,y)を満たすことになる。
属性秘匿性とは、暗号文を見てもどの属性を用いて暗号化したかわからない、という性質である(非特許文献8参照)。Katz−Sahai−Waters内積述語暗号(KSW−IPE)(非特許文献7参照)や岡本−高島内積述語暗号(OT−IPE)(非特許文献8参照)は、属性秘匿性を有する関数型暗号方式の一例である。Sahai−WatersファジイIDベース暗号(SW−FIDE)は属性秘匿性を有さない関数型暗号の一例である。
以下、実施の形態1、2と異なる事項について主に説明する。説明を省略する事項については実施の形態1、2と同様である。
データ検索システム900の構成、およびデータ検索端末100とデータ登録端末200とデータ検索サーバ300との機能構成は、実施の形態1と同様である(図1、2、6、8参照)。
但し、データ検索システム900は、以下の点で実施の形態1、2と異なる。
データ検索システム900は、関数型暗号を用いるため、IDベース暗号を用いる場合(実施の形態2参照)と同様に公開鍵対応表160が不要である。このため、データ検索端末100の公開鍵対応表生成部112も不要である。但し、実施の形態2(図28参照)と同様にパラメータx(IDの代わり)とカテゴリとを対応付ける公開鍵対応表160を用いても構わない。
図29は、実施の形態3におけるシステム公開鍵140とシステム秘密鍵150とを示す図である。
実施の形態3におけるシステム公開鍵140とシステム秘密鍵150とについて、図29に基づいて説明する。
システム公開鍵140は、実施の形態1(図3参照)で説明した複数のカテゴリ判定用公開鍵143の代わりに、一つのFEマスタ公開鍵145を有する。FEマスタ公開鍵145は関数型暗号のマスタ公開鍵である。
システム秘密鍵150は、実施の形態1(図3参照)で説明した複数のカテゴリ判定用秘密鍵153の代わりに、一つのFEマスタ秘密鍵155を有する。FEマスタ秘密鍵155は関数型暗号のマスタ秘密鍵である。
データ検索端末100のセットアップ処理は実施の形態2と同様である(図21参照)。
但し、システム鍵生成部111はIBEマスタ公開鍵144の代わりに関数型暗号のマスタ公開鍵を含んだシステム公開鍵140を生成し、IBEマスタ秘密鍵154の代わりに関数型暗号のマスタ秘密鍵を含んだシステム秘密鍵150を生成する(S110B)。
データ登録端末200のデータ登録要求処理は実施の形態2と同様である(図22参照)。
但し、索引用タグ生成部224は、IBEマスタ公開鍵144の代わりに関数型暗号のマスタ公開鍵を用いて鍵判定値191を暗号化して索引用タグ233を生成する(S241B)。
例えば、索引用タグ生成部224は、マスタ公開鍵「ベクトルx=(CN、1)」の「CN」にカテゴリ情報(カテゴリ名)を設定してユーザ公開鍵を生成し、生成したユーザ公開鍵を用いて鍵判定値191を暗号化して索引用タグ233を生成する。つまり、索引用タグ生成部224はカテゴリ情報を含んだパラメータxを公開鍵として用いて索引用タグ233を生成する。
登録者は、関数型暗号の特性を活かして複雑な条件でカテゴリを指定してもよい。例えば、内積述語暗号を用いればAND条件またはOR条件を指定できることが知られている。また、属性秘匿性を有さない関数型暗号を用いればNOT条件を指定できることが知られている。索引用タグ生成部224は検索条件に応じた形式のベクトルxを公開鍵として用いる。
データ検索サーバ300のデータ登録処理は実施の形態2と同様である(図23参照)。
但し、カテゴリ別のユーザ秘密鍵はIDベース暗号ではなく関数型暗号のユーザ秘密鍵である。
データ検索端末100のデータ検索要求処理は実施の形態2と同様である(図24参照)。
但し、検索クエリ生成部122は、上記の索引用タグ生成部224と同様に、IBEマスタ公開鍵144の代わりに関数型暗号のマスタ公開鍵を用いて関数型暗号方式の暗号アルゴリズムを実行し、鍵判定値191を暗号化して索引用タグ172を生成する(S422B)。
データ検索サーバ300のデータ検索処理は実施の形態2と同様である(図25参照)。
但し、カテゴリ別のユーザ秘密鍵はIDベース暗号ではなく関数型暗号のユーザ秘密鍵である。
データ検索端末100のカテゴリ登録要求処理は実施の形態2と同様である(図26参照)。
但し、カテゴリ登録要求部130は、IBEマスタ秘密鍵154の代わりに関数型暗号のマスタ秘密鍵を用いてカテゴリ別のユーザ秘密鍵を生成する(S602B)。
例えば、カテゴリ登録要求部130は、関数型暗号のマスタ秘密鍵とベクトルy=(−1、CN)とを入力にして関数型暗号方式のユーザ秘密鍵生成アルゴリズムを実行し、カテゴリ別のユーザ秘密鍵を生成する。CNはカテゴリ情報(カテゴリ名)である。つまり、索引用タグ生成部224はカテゴリ情報を含んだパラメータyを用いてカテゴリ別のユーザ秘密鍵を生成する。
検索者は、関数型暗号の特性を活かして複雑な条件でカテゴリを指定してもよい。例えば、内積述語暗号を用いればAND条件またはOR条件を指定できることが知られている。また、属性秘匿性を有さない関数型暗号を用いればNOT条件を指定できることが知られている。この場合、カテゴリ登録要求部130は条件に応じた形式のベクトルyを用いる。
データ検索サーバ300のカテゴリ登録処理は実施の形態2と同様である(図27参照)。
但し、カテゴリ別のユーザ秘密鍵はIDベース暗号ではなく関数型暗号のユーザ秘密鍵である。
実施の形態3におけるデータ検索システム900により、例えば、以下のような効果を奏することができる。
(1)実施の形態1、2と同様な効果を得ることができる。特に、検索可能公開鍵暗号において検索の高速化を実現することができる。また、属性秘匿性を有する関数型暗号を用いることにより暗号文のカテゴリ情報を秘匿することができる。
(2)IDベース暗号を用いた場合のカテゴリの条件(IDの一致)よりも柔軟な条件(AND条件、OR条件、NOT条件など)でカテゴリを指定することができる。
100 データ検索端末、110 セットアップ処理部、111 システム鍵生成部、112 公開鍵対応表生成部、113 鍵情報公開部、120 検索要求処理部、121 検索キーワード入力部、122 検索クエリ生成部、123 検索要求部、124 検索結果出力部、130 カテゴリ登録要求部、140 システム公開鍵、141 データ用公開鍵、142 キーワード用公開鍵、143 カテゴリ判定用公開鍵、144 IBEマスタ公開鍵、150 システム秘密鍵、151 データ用秘密鍵、152 キーワード用秘密鍵、153 カテゴリ判定用秘密鍵、154 IBEマスタ秘密鍵、160,161 公開鍵対応表、170 検索クエリ、171 検索用トラップドア、172 索引用タグ、190 検索端末記憶部、191 鍵判定値、192 鍵判定値対応表、199 検索結果、200 データ登録端末、210 公開情報取得部、220 データ登録要求処理部、221 登録情報入力部、222 データ暗号文生成部、223 キーワード暗号文生成部、224 索引用タグ生成部、225 データ登録要求部、230 システム暗号文、231 データ暗号文、232 キーワード暗号文、233 索引用タグ、290 登録端末記憶部、300 データ検索サーバ、310 カテゴリ用秘密鍵管理部、320 データ登録処理部、321 登録要求受信部、322 データ登録部、330 データ検索処理部、331 検索要求受信部、332 データ検索部、333 検索結果送信部、340 カテゴリ判定部、350 秘密鍵対応表、390 検索サーバ記憶部、391 カテゴリ別DB部、392 未分類DB部、900 データ検索システム、901 CPU、902 バス、903 ROM、904 RAM、905 通信ボード、909 ネットワーク、911 ディスプレイ、912 キーボード、913 マウス、914 ドライブ、920 磁気ディスク装置、921 OS、922 プログラム群、923 ファイル群。

Claims (17)

  1. 検索対象のデータを分類した複数のデータグループと、暗号化された前記データグループの識別子を復号する複数の復号鍵とを対応付けて記憶するデータ記憶部と、
    復号鍵を判定する値である鍵判定情報を記憶する鍵判定情報記憶部と、
    データを検索する条件である検索条件と、検索対象とするデータグループの識別子を暗号化した暗号化情報とを入力する検索条件入力部と、
    前記検索条件入力部が入力した前記暗号化情報を前記データ記憶部に記憶され前記複数の復号鍵それぞれを用いて復号し、復号した結果が前記鍵判定情報と同じになる復号鍵を前記複数の復号鍵の中から選択し、前記データ記憶部に記憶された前記複数のデータグループのうち前記選択した復号鍵に対応付けられたデータグループを検索先グループとして選択するデータグループ選択部と、
    前記データグループ選択部によって選択された前記検索先グループに含まれるデータから前記検索条件入力部が入力した前記検索条件を満たすデータを検索結果のデータとして取得するデータ検索部と、
    前記データ検索部によって取得された前記検索結果のデータを出力する検索結果出力部と
    を備えることを特徴とするデータ検索装置。
  2. 前記データ検索装置は、さらに、
    新規データと前記データグループの識別子を暗号化した暗号化タグとを入力する新規データ入力部と、
    前記新規データ入力部が入力した前記新規データを前記複数のデータグループのうち前記データグループ選択部によって選択される登録先グループに追加する新規データ登録部と、を備え、
    前記データグループ選択部は、
    前記新規データ入力部が入力した前記暗号化タグを前記複数の復号鍵それぞれを用いて復号し、復号した結果が前記鍵判定情報と同じになる復号鍵を前記複数の復号鍵の中から選択し、前記複数のデータグループのうち前記選択した復号鍵に対応付けられたデータグループを前記登録先グループとして選択する
    ことを特徴とする請求項1記載のデータ検索装置。
  3. 前記データ記憶部は、さらに、複数のデータと前記データグループの識別子を暗号化した複数の暗号化タグとを対応付けて含んだデータグループとして未分類グループを記憶し、
    前記データ検索装置は、さらに、
    新たな復号鍵を追加復号鍵として入力する追加復号鍵入力部と、
    前記未分類グループに含まれる前記複数の暗号化タグを前記追加復号鍵入力部が入力した前記追加復号鍵を用いて復号し、復号した結果が前記鍵判定情報と同じになる暗号化タグを前記複数の暗号化タグの中から選択し、前記未分類グループに含まれる前記複数のデータから前記選択した暗号化タグに対応付けられたデータを抽出し、前記複数のデータグループに加える新たなデータグループとして前記抽出したデータを含んだ追加グループを生成し、生成した前記追加グループと前記追加復号鍵とを対応付けて前記データ記憶部に記憶するデータグループ登録部と、を備える
    ことを特徴とする請求項1または請求項2記載のデータ検索装置。
  4. 検索対象のデータを分類した複数のデータグループと、暗号化された前記データグループの識別子を復号する複数の復号鍵とを対応付けて記憶するデータ記憶部と、復号鍵を判定する値である鍵判定情報を記憶する鍵判定情報記憶部と、検索条件入力部と、データグループ選択部と、データ検索部と、検索結果出力部と、を備えるデータ検索装置を用いて実行するデータ検索方法であって、
    前記検索条件入力部が、データを検索する条件である検索条件と、検索対象とするデータグループの識別子を暗号化した暗号化情報とを入力し、
    前記データグループ選択部が、前記検索条件入力部が入力した前記暗号化情報を前記データ記憶部に記憶される前記複数の復号鍵それぞれを用いて復号し、復号した結果が前記鍵判定情報と同じになる復号鍵を前記複数の復号鍵の中から選択し、前記データ記憶部に記憶される前記複数のデータグループのうち前記選択した復号鍵に対応付けられたデータグループを検索先グループとして選択し、
    前記データ検索部が、前記データグループ選択部によって選択された前記検索先グループに含まれる1つ以上のデータから前記検索条件入力部が入力した前記検索条件を満たすデータを検索結果のデータとして取得し、
    前記検索結果出力部が、前記データ検索部によって取得された前記検索結果のデータを出力する
    ことを特徴とするデータ検索方法。
  5. データ記憶部と鍵判定情報記憶部とを用いるデータ検索プログラムであって、
    前記データ記憶部は、検索対象のデータを分類した複数のデータグループと、暗号化された前記データグループの識別子を復号する複数の復号鍵とを対応付けて記憶する記憶部であり、
    前記鍵判定情報記憶部は、復号鍵を判定する値である鍵判定情報を記憶する記憶部であり、
    データを検索する条件である検索条件と、検索対象とするデータグループの識別子を暗号化した暗号化情報とを入力する検索条件入力処理と、
    前記検索条件入力処理で入力した前記暗号化情報を前記データ記憶部に記憶された前記複数の復号鍵それぞれを用いて復号し、復号した結果が前記鍵判定情報と同じになる復号鍵を前記複数の復号鍵の中から選択し、前記データ記憶部に記憶された前記複数のデータグループのうち前記選択した復号鍵に対応付けられたデータグループを検索先グループとして選択するデータグループ選択処理と、
    前記データグループ選択処理によって選択された前記検索先グループに含まれるデータから前記検索条件入力処理で入力した前記検索条件を満たすデータを検索結果のデータとして取得するデータ検索処理と、
    前記データ検索処理によって取得された前記検索結果のデータを出力する検索結果出力処理と
    をコンピュータに実行させるためのデータ検索プログラム。
  6. データを生成するデータ生成部と、
    前記データ生成部によって生成されたデータの分類を示す分類情報を入力する分類情報入力部と、
    前記分類情報入力部が入力した前記分類情報に基づいて前記分類情報が示す前記分類のデータグループを選択するための暗号化タグを生成する暗号化タグ生成部と、
    前記データ生成部が生成した前記データと前記暗号化タグ生成部が生成した前記暗号化タグとをデータ検索装置へ送信することによって、前記分類情報が示す前記分類のデータグループに前記データを検索対象のデータとして追加する処理を前記データ検索装置に実行させるデータ登録要求部と
    を備えることを特徴とするデータ登録装置。
  7. 前記データ登録装置は、さらに、
    複数の暗号化鍵と複数の分類情報とを対応付けて記憶する暗号化鍵記憶部を備え、
    前記暗号化タグ生成部は、
    前記暗号化鍵記憶部に記憶される前記複数の暗号化鍵のうち前記分類情報入力部が入力した前記分類情報と同じ分類情報に対応付けられた暗号化鍵を選択し、選択した暗号化鍵を用いて前記暗号化タグを生成する
    ことを特徴とする請求項6記載のデータ登録装置。
  8. 前記暗号化タグ生成部は、前記分類情報に基づくIDを用いてIDベース暗号方式によって前記暗号化タグを生成する
    ことを特徴とする請求項6記載のデータ登録装置。
  9. 前記暗号化タグ生成部は、前記分類情報を含んだベクトルを用いて関数型暗号方式によって前記暗号化タグを生成する
    ことを特徴とする請求項6記載のデータ登録装置。
  10. データ生成部と、分類情報入力部と、暗号化タグ生成部と、データ登録要求部と、を備えるデータ登録装置を用いて実行するデータ登録方法であって、
    前記データ生成部が、データを生成し、
    前記分類情報入力部が、前記データ生成部によって生成されたデータの分類を示す分類情報を入力し、
    前記暗号化タグ生成部が、前記分類情報入力部が入力した前記分類情報に基づいて前記分類情報が示す前記分類のデータグループを選択するための暗号化タグを生成し、
    前記データ登録要求部が、前記データ生成部が生成した前記データと前記暗号化タグ生成部が生成した前記暗号化タグとをデータ検索装置へ送信することによって、前記分類情報が示す前記分類のデータグループに前記データを検索対象のデータとして追加する処理を前記データ検索装置に実行させる
    ことを特徴とするデータ登録方法。
  11. データを生成するデータ生成処理と、
    前記データ生成処理によって生成されたデータの分類を示す分類情報を入力する分類情報入力処理と、
    前記分類情報入力処理で入力した前記分類情報に基づいて前記分類情報が示す前記分類のデータグループを選択するための暗号化タグを生成する暗号化タグ生成処理と、
    前記データ生成処理で成した前記データと前記暗号化タグ生成処理で生成した前記暗号
    化タグとをデータ検索装置へ送信することによって、前記分類情報が示す前記分類のデータグループに前記データを検索対象のデータとして追加する処理を前記データ検索装置に実行させるデータ登録要求処理と
    をコンピュータに実行させるためのデータ登録プログラム。
  12. データを検索するための検索条件とデータの分類を示す分類情報とを入力する検索条件入力部と、
    前記検索条件入力部が入力した前記分類情報に基づいて前記分類情報が示す前記分類のデータグループを選択するための暗号化タグを生成する暗号化タグ生成部と、
    前記検索条件入力部が入力した前記検索条件の情報と前記暗号化タグ生成部によって生成された前記暗号化タグとをデータ検索装置へ送信し、前記分類情報が示す前記分類のデータグループに含まれるデータのうち前記検索条件を満たすデータを検索結果のデータとして前記データ検索装置から受信するデータ検索要求部と
    を備えることを特徴とする情報処理装置。
  13. 前記情報処理装置は、さらに、
    複数の暗号化鍵と複数の分類情報とを対応付けて記憶する暗号化鍵記憶部を備え、
    前記暗号化タグ生成部は、
    前記暗号化鍵記憶部に記憶される前記複数の暗号化鍵のうち前記検索条件入力部が入力した前記分類情報と同じ分類情報に対応付けられた暗号化鍵を選択し、選択した暗号化鍵を用いて前記暗号化タグを生成する
    ことを特徴とする請求項12記載の情報処理装置。
  14. 前記暗号化タグ生成部は、前記分類情報に基づくIDを用いてIDベース暗号方式によって前記暗号化タグを生成する
    ことを特徴とする請求項12記載の情報処理装置。
  15. 前記暗号化タグ生成部は、前記分類情報を含んだベクトルを用いて関数型暗号方式によって前記暗号化タグを生成する
    ことを特徴とする請求項12記載の情報処理装置。
  16. 検索条件入力部と、暗号化タグ生成部と、データ検索要求部と、を備える情報処理装置を用いて実行するデータ検索方法であって、
    前記検索条件入力部が、データを検索するための検索条件とデータの分類を示す分類情報とを入力し、
    前記暗号化タグ生成部が、前記検索条件入力部が入力した前記分類情報に基づいて前記分類情報が示す前記分類のデータグループを選択するための暗号化タグを生成し、
    前記データ検索要求部が、前記検索条件入力部が入力した前記検索条件の情報と前記暗号化タグ生成部によって生成された前記暗号化タグとをデータ検索装置へ送信し、前記分類情報が示す前記分類のデータグループに含まれるデータのうち前記検索条件を満たすデータを検索結果のデータとして前記データ検索装置から受信する
    ことを特徴とするデータ検索方法。
  17. データを検索するための検索条件とデータの分類を示す分類情報とを入力する検索条件入力処理と、
    前記検索条件入力処理で入力した前記分類情報に基づいて前記分類情報が示す前記分類のデータグループを選択するための暗号化タグを生成する暗号化タグ生成処理と、
    前記検索条件入力処理で入力した前記検索条件の情報と前記暗号化タグ生成処理によって生成された前記暗号化タグとをデータ検索装置へ送信し、前記分類情報が示す前記分類のデータグループに含まれるデータのうち前記検索条件を満たすデータを検索結果のデー
    タとして前記データ検索装置から受信するデータ検索要求処理と
    をコンピュータに実行させるためのデータ検索プログラム。
JP2013555046A 2012-01-25 2012-01-25 データ検索装置、データ検索方法、データ検索プログラム、データ登録装置、データ登録方法、データ登録プログラムおよび情報処理装置 Active JP5606642B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2012/051533 WO2013111284A1 (ja) 2012-01-25 2012-01-25 データ検索装置、データ検索方法、データ検索プログラム、データ登録装置、データ登録方法、データ登録プログラムおよび情報処理装置

Publications (2)

Publication Number Publication Date
JP5606642B2 true JP5606642B2 (ja) 2014-10-15
JPWO2013111284A1 JPWO2013111284A1 (ja) 2015-05-11

Family

ID=48873055

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013555046A Active JP5606642B2 (ja) 2012-01-25 2012-01-25 データ検索装置、データ検索方法、データ検索プログラム、データ登録装置、データ登録方法、データ登録プログラムおよび情報処理装置

Country Status (5)

Country Link
US (2) US9391965B2 (ja)
EP (1) EP2808803B1 (ja)
JP (1) JP5606642B2 (ja)
CN (1) CN104081390B (ja)
WO (1) WO2013111284A1 (ja)

Families Citing this family (36)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2808803B1 (en) 2012-01-25 2017-03-01 Mitsubishi Electric Corporation Data search device, data search method, data search program, data registration device, data registration method, data registration program and information processing device
EP2885732B1 (en) 2012-08-15 2018-04-04 Visa International Service Association Searchable encrypted data
US9602473B2 (en) * 2012-09-06 2017-03-21 Zixcorp Systems, Inc. Secure message forwarding with sender controlled decryption
EP2960808A4 (en) 2013-02-25 2016-10-26 Mitsubishi Electric Corp SERVER DEVICE, PRIVATE SEARCH PROGRAM, RECORDING MEDIA AND PRIVATE SEARCH SYSTEM
JP6144992B2 (ja) * 2013-08-08 2017-06-07 株式会社日立製作所 検索可能暗号処理システム及び方法
JP6208586B2 (ja) 2014-01-16 2017-10-04 株式会社日立製作所 検索可能暗号処理システムおよび検索可能暗号処理方法
US9660930B2 (en) 2014-03-17 2017-05-23 Splunk Inc. Dynamic data server nodes
US9838346B2 (en) 2014-03-17 2017-12-05 Splunk Inc. Alerting on dual-queue systems
US9753818B2 (en) 2014-09-19 2017-09-05 Splunk Inc. Data forwarding using multiple data pipelines
US9838467B2 (en) 2014-03-17 2017-12-05 Splunk Inc. Dynamically instantiating dual-queue systems
US9836358B2 (en) 2014-03-17 2017-12-05 Splunk Inc. Ephemeral remote data store for dual-queue systems
JP7020780B2 (ja) * 2015-02-09 2022-02-16 日本電気株式会社 サーバ装置、データ検索システム、検索方法および検索プログラム
US10592682B2 (en) * 2015-02-20 2020-03-17 Mitsubishi Electric Corporation Data storage apparatus, data processing method, and computer readable medium adding a user attribute of a revoked user to an embedded decryption condition while encrypted data remains in an encrypted state
JP6441160B2 (ja) * 2015-04-27 2018-12-19 株式会社東芝 秘匿化装置、復号装置、秘匿化方法および復号方法
WO2017221308A1 (ja) * 2016-06-20 2017-12-28 三菱電機株式会社 データ管理装置、データ管理方法、データ管理プログラム、検索装置、検索方法及び検索プログラム
US11223472B2 (en) 2016-09-12 2022-01-11 Nippon Telegraph And Telephone Corporation Encrypted message search method, message transmission/reception system, server, terminal and program
JP6813773B2 (ja) * 2016-10-17 2021-01-13 富士通株式会社 データ収集プログラム、データ収集システム及びデータ収集方法
US20210173957A1 (en) * 2017-01-12 2021-06-10 Mitsubishi Electric Corporation Encrypted tag generation device, search query generation device, and searchable encryption system
CN110226190A (zh) * 2017-01-27 2019-09-10 三菱电机株式会社 检索装置、监视装置、监视方法和检索程序
CN110612563B (zh) * 2017-05-18 2023-05-12 三菱电机株式会社 检索装置、隐匿检索系统以及计算机能读取的存储介质
GB201710013D0 (en) * 2017-06-22 2017-08-09 Scentrics Information Security Tech Ltd Control Access to data
WO2019053778A1 (ja) * 2017-09-12 2019-03-21 三菱電機株式会社 登録端末、検索端末、検索サーバ、検索システム、登録プログラム及び検索プログラム
KR102305787B1 (ko) * 2017-12-14 2021-09-28 미쓰비시덴키 가부시키가이샤 검색 시스템 및 감시 시스템
JP6885325B2 (ja) * 2017-12-26 2021-06-16 日本電信電話株式会社 暗号化装置、復号装置、暗号化方法、復号方法、プログラム
CN108259172B (zh) * 2018-01-12 2021-02-05 哈尔滨工业大学深圳研究生院 云存储系统中的密文搜索方法
EP3731107B1 (en) * 2018-01-17 2021-10-27 Mitsubishi Electric Corporation Data management device, search device, registration device, data management method, and data management program
WO2019142268A1 (ja) * 2018-01-17 2019-07-25 三菱電機株式会社 登録装置、検索操作装置、データ管理装置、登録プログラム、検索操作プログラムおよびデータ管理プログラム
CN108449309B (zh) * 2018-01-19 2019-08-20 华中科技大学 一种混合型可搜索加密方法和系统
DE112018007433T5 (de) * 2018-05-08 2020-12-31 Mitsubishi Electric Corporation Registrierungsvorrichtung, servervorrichtung, durchsuchbares verschlüsselungssystem, durchsuchbares verschlüsselungs-verfahren, registrierungsprogramm und serverprogramm
DE112018007468T5 (de) * 2018-05-15 2021-01-21 Mitsubishi Electric Corporation Geheime-Suche-Einrichtung und Geheime-Suche-Verfahren
CN109672525B (zh) * 2018-12-14 2020-10-02 华中科技大学 一种具有前向索引的可搜索公钥加密方法及系统
CN112115506B (zh) * 2020-08-21 2022-10-25 山东师范大学 一种支持布尔查询的属性基数据搜索方法及系统
CN113014563B (zh) * 2021-02-10 2022-03-25 华中科技大学 一种保障可搜索公钥加密检索完备性的方法及系统
CN117651983A (zh) 2021-07-27 2024-03-05 三菱电机株式会社 检索执行装置、检索执行方法、检索执行程序和隐匿检索系统
CN116975884A (zh) * 2023-06-30 2023-10-31 萍乡逗花科技有限公司 一种数据安全存储方法及装置
CN117272394B (zh) * 2023-11-21 2024-02-02 中债金科信息技术有限公司 债券市场数据共享方法及装置、存储介质及电子设备

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003178070A (ja) * 2001-12-12 2003-06-27 Canon Inc 情報検索装置
JP2005284915A (ja) * 2004-03-30 2005-10-13 Canon Inc 情報検索装置および方法、ならびに情報検索システムおよびその制御方法
JP2010165275A (ja) * 2009-01-19 2010-07-29 Mitsubishi Electric Corp データ格納システム及び情報送信装置及びサーバ装置
WO2011086687A1 (ja) * 2010-01-15 2011-07-21 三菱電機株式会社 秘匿検索システム及び暗号処理システム
WO2011086668A1 (ja) * 2010-01-13 2011-07-21 三菱電機株式会社 秘匿検索システム及び公開パラメータ生成装置及び暗号化装置及びユーザ秘密鍵生成装置及びクエリ発行装置及び検索装置及びコンピュータプログラム及び秘匿検索方法及び公開パラメータ生成方法及び暗号化方法及びユーザ秘密鍵生成方法及びクエリ発行方法及び検索方法

Family Cites Families (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
CA2341979A1 (en) 2000-03-24 2001-09-24 Contentguard Holdings, Inc. System and method for protection of digital works
US7496767B2 (en) 2001-01-19 2009-02-24 Xerox Corporation Secure content objects
US7171557B2 (en) 2001-10-31 2007-01-30 Hewlett-Packard Development Company, L.P. System for optimized key management with file groups
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
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
JP2006210964A (ja) 2005-01-24 2006-08-10 National Institute Of Information & Communication Technology エルガマル暗号による情報授受伝達方法及び装置
JP2006284915A (ja) 2005-03-31 2006-10-19 Toshiba Matsushita Display Technology Co Ltd 表示装置及びアレイ基板
JP4722620B2 (ja) 2005-08-19 2011-07-13 Kddi株式会社 暗号化文書検索方法および暗号化文書検索システム
US20090094200A1 (en) 2007-10-05 2009-04-09 Yahoo! Inc. Method for Admission-controlled Caching
US8165305B2 (en) * 2008-12-08 2012-04-24 Harrison Corporation Enhanced relational database security through encryption of table indices
JP2010160235A (ja) 2009-01-07 2010-07-22 Nippon Telegr & Teleph Corp <Ntt> 検索システム、端末装置、データベース装置、検索方法及びプログラム
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
JP5432736B2 (ja) 2010-01-18 2014-03-05 日本電信電話株式会社 暗号化された情報のためのキーワード検索システム、キーワード検索方法、検索要求装置、検索代行装置、プログラム、記録媒体
JP5411034B2 (ja) 2010-03-19 2014-02-12 株式会社日立ソリューションズ データベース暗号化システム及び方法
CN101859323B (zh) * 2010-05-31 2013-01-16 广西大学 密文全文检索系统
JP5557683B2 (ja) 2010-10-07 2014-07-23 三菱電機株式会社 情報検索装置および情報検索方法
JP5412414B2 (ja) 2010-12-08 2014-02-12 株式会社日立製作所 検索可能暗号処理システム
US8429421B2 (en) 2010-12-17 2013-04-23 Microsoft Corporation Server-side encrypted pattern matching
WO2012095973A1 (ja) 2011-01-13 2012-07-19 三菱電機株式会社 データ処理装置及びデータ保管装置
WO2012098649A1 (ja) 2011-01-18 2012-07-26 三菱電機株式会社 暗号システム、暗号システムの暗号処理方法、暗号化装置、暗号化プログラム、復号装置、復号プログラム、セットアップ装置、セットアッププログラム、鍵生成装置、鍵生成プログラム、鍵委譲装置および鍵委譲プログラム
JP2012164031A (ja) 2011-02-03 2012-08-30 Mitsubishi Electric Corp データ処理装置及びデータ保管装置及びデータ処理方法及びデータ保管方法及びプログラム
US8549653B2 (en) * 2011-09-14 2013-10-01 Morgan Stanley Secure wildcard searchable database
US20140247939A1 (en) 2011-11-30 2014-09-04 Mitsubishi Electric Corporation Data processing device and data processing method and program
EP2808803B1 (en) 2012-01-25 2017-03-01 Mitsubishi Electric Corporation Data search device, data search method, data search program, data registration device, data registration method, data registration program and information processing device
US9087212B2 (en) 2012-01-25 2015-07-21 Massachusetts Institute Of Technology Methods and apparatus for securing a database
US20140019454A1 (en) 2012-07-10 2014-01-16 Jason A. Carter Systems and Methods for Caching Data Object Identifiers
CN104798339B (zh) 2013-01-12 2018-06-01 三菱电机株式会社 密钥生成装置、隐匿检索系统和密钥发布方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003178070A (ja) * 2001-12-12 2003-06-27 Canon Inc 情報検索装置
JP2005284915A (ja) * 2004-03-30 2005-10-13 Canon Inc 情報検索装置および方法、ならびに情報検索システムおよびその制御方法
JP2010165275A (ja) * 2009-01-19 2010-07-29 Mitsubishi Electric Corp データ格納システム及び情報送信装置及びサーバ装置
WO2011086668A1 (ja) * 2010-01-13 2011-07-21 三菱電機株式会社 秘匿検索システム及び公開パラメータ生成装置及び暗号化装置及びユーザ秘密鍵生成装置及びクエリ発行装置及び検索装置及びコンピュータプログラム及び秘匿検索方法及び公開パラメータ生成方法及び暗号化方法及びユーザ秘密鍵生成方法及びクエリ発行方法及び検索方法
WO2011086687A1 (ja) * 2010-01-15 2011-07-21 三菱電機株式会社 秘匿検索システム及び暗号処理システム

Also Published As

Publication number Publication date
US9391965B2 (en) 2016-07-12
EP2808803B1 (en) 2017-03-01
CN104081390A (zh) 2014-10-01
US20140298009A1 (en) 2014-10-02
WO2013111284A1 (ja) 2013-08-01
EP2808803A1 (en) 2014-12-03
CN104081390B (zh) 2017-11-03
USRE48146E1 (en) 2020-08-04
EP2808803A4 (en) 2016-01-20
JPWO2013111284A1 (ja) 2015-05-11

Similar Documents

Publication Publication Date Title
JP5606642B2 (ja) データ検索装置、データ検索方法、データ検索プログラム、データ登録装置、データ登録方法、データ登録プログラムおよび情報処理装置
JP5420085B2 (ja) データ処理装置及びデータ保管装置
Stanek et al. A secure data deduplication scheme for cloud storage
JP5501482B2 (ja) 暗号システム、暗号システムの暗号処理方法、暗号化装置、暗号化プログラム、復号装置および復号プログラム
JP5985123B1 (ja) 秘匿検索システム、管理装置、秘匿検索方法及び秘匿検索プログラム
Zhao et al. Multi-user keyword search scheme for secure data sharing with fine-grained access control
TWI749444B (zh) 可靠的使用者服務系統和方法
JP6770075B2 (ja) 暗号化メッセージ検索方法、メッセージ送受信システム、端末、プログラム
JP5432736B2 (ja) 暗号化された情報のためのキーワード検索システム、キーワード検索方法、検索要求装置、検索代行装置、プログラム、記録媒体
JP6700797B2 (ja) 鍵生成装置、中間暗号化装置、委託暗号化装置、復号装置およびそれらのプログラム、ならびに、個人情報保護システム
Tan et al. Lightweight edge‐based kNN privacy‐preserving classification scheme in cloud computing circumstance
Ling et al. Server-aided revocable predicate encryption: formalization and lattice-based instantiation
Aronesty et al. Encapsulated search index: Public-key, sub-linear, distributed, and delegatable
JP2010160235A (ja) 検索システム、端末装置、データベース装置、検索方法及びプログラム
JP2013152520A (ja) 検索装置、検索端末装置、データ登録装置、検索方法、検索プログラム、データ登録方法およびデータ登録プログラム
Zhang et al. Compact anonymous hierarchical identity-based encryption with constant size private keys
Prakash et al. Secure access of multiple keywords over encrypted data in cloud environment using ECC-PKI and ECC ElGamal
JP7378675B2 (ja) 暗号化タグ生成装置、秘匿検索システム、暗号化タグ生成方法及び暗号化タグ生成プログラム
Miao et al. Fine-grained searchable encryption over encrypted data in multi-clouds
Rhee et al. Anonymous ibe from peks: A generic construction
Chaudhari et al. Privacy-Preserving Proxy Re-encryption with Fine-Grained Access Control
Zhenhua et al. A ciphertext‐policy hidden vector encryption scheme supporting multiuser keyword search
Lima et al. A secure collaborative network protocol
Mahender et al. Lightweight Fine-Grained Search Over Encrypted Document
Liu et al. Coarser-grained multi-user searchable encryption in hybrid cloud

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140826

R150 Certificate of patent or registration of utility model

Ref document number: 5606642

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

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250