JP6599066B1 - 登録装置、サーバ装置、秘匿検索システム、秘匿検索方法、登録プログラムおよびサーバプログラム - Google Patents

登録装置、サーバ装置、秘匿検索システム、秘匿検索方法、登録プログラムおよびサーバプログラム Download PDF

Info

Publication number
JP6599066B1
JP6599066B1 JP2019534903A JP2019534903A JP6599066B1 JP 6599066 B1 JP6599066 B1 JP 6599066B1 JP 2019534903 A JP2019534903 A JP 2019534903A JP 2019534903 A JP2019534903 A JP 2019534903A JP 6599066 B1 JP6599066 B1 JP 6599066B1
Authority
JP
Japan
Prior art keywords
search
keyword
key
conversion
unit
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
JP2019534903A
Other languages
English (en)
Other versions
JPWO2019215818A1 (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 JP6599066B1 publication Critical patent/JP6599066B1/ja
Publication of JPWO2019215818A1 publication Critical patent/JPWO2019215818A1/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
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/14Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
    • 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/90Details of database functions independent of the retrieved data types
    • G06F16/901Indexing; Data structures therefor; Storage structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/951Indexing; Web crawling techniques
    • 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
    • G09C1/02Apparatus 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 by using a ciphering code in chart form
    • 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
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/76Proxy, i.e. using intermediary entity to perform cryptographic operations

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Storage Device Security (AREA)

Abstract

登録装置(200)は、キーワードを登録鍵で暗号化して暗号化キーワードを生成し、暗号化キーワードと、対応する暗号文を識別する識別情報とを含む索引を生成し、登録鍵と検索鍵とから、変換鍵を生成し、複数の暗号文と索引と変換鍵とをサーバ装置(400)に登録する。検索装置(300)は、キーワードを暗号化して検索クエリを生成し、検索クエリをサーバ装置(400)に送信する。サーバ装置(400)は、検索クエリを登録した変換鍵で再暗号化して再暗号化キーワードを生成し、登録した索引を再暗号化キーワードで検索し、検索結果として暗号化キーワードが得られれば、索引から識別情報を取得し、登録した複数の暗号文の中から、識別情報によって識別される暗号文を抽出し、抽出した暗号文を検索装置(300)に送信する。

Description

本発明は、登録装置、サーバ装置、秘匿検索システム、秘匿検索方法、登録プログラムおよびサーバプログラムに関するものである。
特許文献1、特許文献2および特許文献3には、秘匿検索に関する技術が開示されている。
秘匿検索は、検索可能暗号とも呼ばれる。秘匿検索は、暗号化したままデータを検索できる暗号技術である。実際には、暗号化データそのものは検索されない。検索対象のデータから関連するキーワードが事前に抽出され、そのキーワードが検索できる特殊な暗号技術を使って暗号化される。そして、その暗号化キーワードに対して検索クエリで検索が行われる。検索クエリとは、暗号化された検索用のキーワードのことである。
秘匿検索には、共通鍵方式と公開鍵方式とがある。共通鍵方式では、共通鍵暗号技術が利用され、登録者および検索者が限定される。公開鍵方式では、公開鍵暗号技術が利用され、検索者は限定されるが、登録者は限定されない。登録者は暗号化データを登録するユーザであり、検索者は暗号化データを検索するユーザである。
秘匿検索には、タグ型と索引型とがある。タグ型では、暗号文であるデータに検索できる暗号化キーワードが付加される。1つの暗号文に複数のキーワードが紐付くため、検索が低速になる。索引型では、暗号化キーワードごとに、暗号文であるデータが関連付けられる。1つのキーワードに複数の暗号文が紐付くため、検索が高速になる。
近年、秘匿検索は、クラウドサービスにおいてサーバ管理者による盗聴から機密情報を守るためのセキュリティ技術として注目されている。様々なサービスに適用するために、高速に検索ができ、かつ、アクセス制御ができる秘匿検索技術が求められている。
共通鍵方式では、通常、高速な秘匿検索ができるが、アクセス制御ができない。公開鍵方式では、通常、アクセス制御ができるが、高速な秘匿検索ができない。
共通鍵方式では、通常、登録者と検索者とが互いに同じ秘密情報を共有する。非特許文献1には、秘密情報の共有コストと秘密情報の漏洩時の影響度とを下げるため、登録者と検索者とが同じ秘密情報を共有しない共通鍵方式が開示されている。
非特許文献1には、マルチユーザ型共有鍵方式がさらに開示されている。マルチユーザ型共有鍵方式では、検索が許可されるユーザと検索が許可されないユーザとを設定することができる。つまり、マルチユーザ型共有鍵方式では、互いに異なる秘密情報を持っている複数のユーザが同じキーワードで検索した場合に、あるユーザの検索ではヒットするが、別のユーザの検索ではヒットしない暗号化データを生成することが可能である。
特開2010−061103号公報 特開2016−012897号公報 特開2017−037180号公報
R. A. Popa, N. Zeldovich, "Multi−Key Searchable Encryption", IACR Cryptology ePrint Archive: Report 2013/508
非特許文献1に記載の技術では、複数の鍵を使ってアクセス制御を達成しているが、方式がタグ型のため、共通鍵ベースとはいえ効率が悪い。
特許文献1、特許文献2および特許文献3に記載の技術では、信頼できる第三者を使ってアクセス制御を達成しているが、信頼できる第三者の存在の許容はユースケースに強く依存するため、汎用性が低い。
本発明は、アクセス制御ができる秘匿検索の高速化および汎用性の向上を目的とする。
本発明の一態様に係る登録装置は、
複数の暗号文のうち1つ以上の暗号文に対応するキーワードを登録鍵で暗号化して暗号化キーワードを生成し、生成した暗号化キーワードと、前記1つ以上の暗号文を識別する識別情報とを含む索引を生成する索引生成部と、
前記登録鍵と、検索に用いるキーワードを暗号化して検索クエリを生成する検索装置により暗号化に用いられる検索鍵とから、前記検索クエリを再暗号化して再暗号化キーワードを生成し前記索引を前記再暗号化キーワードで検索するサーバ装置により代理人再暗号化に用いられる変換鍵を生成する鍵生成部と、
前記複数の暗号文と、前記索引生成部により生成された索引と、前記鍵生成部により生成された変換鍵とを前記サーバ装置に送信する登録部と
を備える。
本発明の一態様に係るサーバ装置は、
複数の暗号文と、1つ以上の暗号文に対応するキーワードを登録鍵で暗号化して暗号化キーワードを生成する登録装置が生成した、前記暗号化キーワードと前記1つ以上の暗号文を識別する識別情報とを含む索引と、前記登録装置が前記登録鍵と検索に用いるキーワードを暗号化して検索クエリを生成する検索装置により暗号化に用いられる検索鍵とから生成した、代理人再暗号化に用いられる変換鍵とを受信する第1受信部と、
前記第1受信部により受信された複数の暗号文と索引と変換鍵とをデータベースに登録する管理部と、
前記検索クエリを受信する第2受信部と、
前記第2受信部により受信された検索クエリを前記管理部により登録された変換鍵で再暗号化して再暗号化キーワードを生成し、前記管理部により登録された索引を前記再暗号化キーワードで検索し、検索結果として前記暗号化キーワードが得られれば、前記索引から前記識別情報を取得し、前記管理部により登録された複数の暗号文の中から、前記識別情報によって識別される暗号文を抽出する検索部と、
前記検索部により抽出された暗号文を前記検索装置に送信する送信部と
を備える。
本発明では、複数の鍵を使ってアクセス制御を達成しながら、方式に索引型を適用しているため、秘匿検索の高速化を達成できる。また、共通鍵ベース索引方式のほとんどを適用できるため、汎用性が高い。
実施の形態1に係る秘匿検索システムの構成を示すブロック図。 実施の形態1に係る登録装置の構成を示すブロック図。 実施の形態1に係る検索装置の構成を示すブロック図。 実施の形態1に係るサーバ装置の構成を示すブロック図。 実施の形態1に係る登録装置の動作を示すフローチャート。 実施の形態1に係る索引の例を示す表。 実施の形態1に係る索引の例を示す表。 実施の形態1に係るサーバ装置の動作を示すフローチャート。 実施の形態1に係る登録装置の動作を示すフローチャート。 実施の形態1に係るサーバ装置の動作を示すフローチャート。 実施の形態1に係る検索装置の動作を示すフローチャート。 実施の形態1に係るサーバ装置の動作を示すフローチャート。 実施の形態1に係る検索装置の動作を示すフローチャート。 実施の形態1に係る秘匿検索システムのデータの流れを示す図。 実施の形態1に係る索引の例を示す表。 実施の形態1に係る索引の例を示す表。 実施の形態1に係る登録装置の構成を示すブロック図。 実施の形態1に係る検索装置の構成を示すブロック図。 実施の形態1に係るサーバ装置の構成を示すブロック図。 実施の形態1に係る、データのアクセス権限情報と、対応する暗号鍵および登録鍵との例を示す表。 実施の形態1に係る、検索者に配布される検索鍵の例を示す表。
以下、本発明の実施の形態について、図を用いて説明する。各図中、同一または相当する部分には、同一符号を付している。実施の形態の説明において、同一または相当する部分については、説明を適宜省略または簡略化する。なお、本発明は、以下に説明する実施の形態に限定されるものではなく、必要に応じて種々の変更が可能である。例えば、以下に説明する実施の形態は、部分的に実施されても構わない。
実施の形態1.
本実施の形態について、図1から図16を用いて説明する。
***構成の説明***
図1を参照して、本実施の形態に係る秘匿検索システム100の構成を説明する。
秘匿検索システム100は、登録装置200と、検索装置300と、サーバ装置400とを備える。
秘匿検索システム100の各装置は、インターネット等のネットワーク101を介して互いに通信を行う。
図2を参照して、本実施の形態に係る登録装置200の構成を説明する。
登録装置200は、コンピュータである。登録装置200は、具体的には、登録者によって利用されるPC等の端末である。「PC」は、Personal Computerの略語である。登録装置200は、プロセッサ201を備えるとともに、メモリ202、補助記憶装置203、入出力インタフェース204および通信装置205といった他のハードウェアを備える。プロセッサ201は、信号線を介して他のハードウェアと接続され、これら他のハードウェアを制御する。
登録装置200は、機能要素として、入力部210と、暗号文生成部220と、索引生成部230と、鍵生成部240と、配布部250と、登録部260とを備える。入力部210、暗号文生成部220、索引生成部230、鍵生成部240、配布部250および登録部260の機能は、ソフトウェアにより実現される。具体的には、入力部210、暗号文生成部220、索引生成部230、鍵生成部240、配布部250および登録部260の機能は、登録プログラムにより実現される。登録プログラムは、入力部210、暗号文生成部220、索引生成部230、鍵生成部240、配布部250および登録部260により行われる手順をそれぞれ入力手順、暗号文生成手順、索引生成手順、鍵生成手順、配布手順および登録手順としてコンピュータに実行させるプログラムである。登録プログラムは、コンピュータ読取可能な媒体に記録されて提供されてもよいし、記録媒体に格納されて提供されてもよいし、プログラムプロダクトとして提供されてもよい。
プロセッサ201は、登録プログラムを実行する装置である。プロセッサ201は、例えば、CPUである。「CPU」は、Central Processing Unitの略語である。
メモリ202は、登録プログラムを一時的に記憶する装置である。メモリ202は、例えば、RAM、フラッシュメモリまたはこれらの組み合わせである。「RAM」は、Random Access Memoryの略語である。
補助記憶装置203は、登録プログラムをあらかじめ記憶する装置である。補助記憶装置203は、例えば、HDD、フラッシュメモリまたはこれらの組み合わせである。「HDD」は、Hard Disk Driveの略語である。
入出力インタフェース204は、図示していない入力機器およびディスプレイが接続されるポートである。入出力インタフェース204は、例えば、USB端子である。「USB」は、Universal Serial Busの略語である。入力機器は、登録プログラムへのデータの入力のために登録者により操作される機器である。入力機器は、例えば、マウス、キーボード、タッチパネル、または、これらのうちいくつか、もしくは、すべての組み合わせである。ディスプレイは、登録プログラムから出力されるデータを画面に表示する機器である。ディスプレイは、例えば、LCDである。「LCD」は、Liquid Crystal Displayの略語である。
通信装置205は、登録プログラムに入力されるデータを受信するレシーバと、登録プログラムから出力されるデータを送信するトランスミッタとを備える。通信装置205は、例えば、通信チップまたはNICである。「NIC」は、Network Interface Cardの略語である。
登録プログラムは、補助記憶装置203からメモリ202にロードされ、メモリ202からプロセッサ201に読み込まれ、プロセッサ201によって実行される。補助記憶装置203には、登録プログラムだけでなく、OSも記憶されている。「OS」は、Operating Systemの略語である。プロセッサ201は、OSを実行しながら、登録プログラムを実行する。なお、登録プログラムの一部または全部がOSに組み込まれていてもよい。登録プログラムおよびOSは、メモリ202にあらかじめ記憶されていてもよく、その場合、補助記憶装置203を省略することができる。
登録装置200は、プロセッサ201を代替する複数のプロセッサを備えていてもよい。これら複数のプロセッサは、登録プログラムの実行を分担する。それぞれのプロセッサは、例えば、CPUである。
登録プログラムにより利用、処理または出力されるデータ、情報、信号値および変数値は、補助記憶装置203、メモリ202、または、プロセッサ201内のレジスタまたはキャッシュメモリに記憶される。
登録装置200は、1台のコンピュータで構成されていてもよいし、複数台のコンピュータで構成されていてもよい。登録装置200が複数台のコンピュータで構成されている場合は、入力部210、暗号文生成部220、索引生成部230、鍵生成部240、配布部250および登録部260の機能が、各コンピュータに分散されて実現されてもよい。
図3を参照して、本実施の形態に係る検索装置300の構成を説明する。
検索装置300は、コンピュータである。検索装置300は、具体的には、検索者によって利用されるPC等の端末である。検索装置300は、プロセッサ301を備えるとともに、メモリ302、補助記憶装置303、入出力インタフェース304および通信装置305といった他のハードウェアを備える。プロセッサ301は、信号線を介して他のハードウェアと接続され、これら他のハードウェアを制御する。
検索装置300は、機能要素として、取得部310と、入力部320と、暗号化部330と、要求部340と、復号部350と、出力部360とを備える。取得部310、入力部320、暗号化部330、要求部340、復号部350および出力部360の機能は、ソフトウェアにより実現される。具体的には、取得部310、入力部320、暗号化部330、要求部340、復号部350および出力部360の機能は、検索プログラムにより実現される。検索プログラムは、取得部310、入力部320、暗号化部330、要求部340、復号部350および出力部360により行われる手順をそれぞれ取得手順、入力手順、暗号化手順、要求手順、復号手順および出力手順としてコンピュータに実行させるプログラムである。検索プログラムは、コンピュータ読取可能な媒体に記録されて提供されてもよいし、記録媒体に格納されて提供されてもよいし、プログラムプロダクトとして提供されてもよい。
プロセッサ301は、検索プログラムを実行する装置である。プロセッサ301は、例えば、CPUである。
メモリ302は、検索プログラムを一時的に記憶する装置である。メモリ302は、例えば、RAM、フラッシュメモリまたはこれらの組み合わせである。
補助記憶装置303は、検索プログラムをあらかじめ記憶する装置である。補助記憶装置303は、例えば、HDD、フラッシュメモリまたはこれらの組み合わせである。
入出力インタフェース304は、図示していない入力機器およびディスプレイが接続されるポートである。入出力インタフェース304は、例えば、USB端子である。入力機器は、検索プログラムへのデータの入力のために検索者により操作される機器である。入力機器は、例えば、マウス、キーボード、タッチパネル、または、これらのうちいくつか、もしくは、すべての組み合わせである。ディスプレイは、検索プログラムから出力されるデータを画面に表示する機器である。ディスプレイは、例えば、LCDである。
通信装置305は、検索プログラムに入力されるデータを受信するレシーバと、検索プログラムから出力されるデータを送信するトランスミッタとを備える。通信装置305は、例えば、通信チップまたはNICである。
検索プログラムは、補助記憶装置303からメモリ302にロードされ、メモリ302からプロセッサ301に読み込まれ、プロセッサ301によって実行される。補助記憶装置303には、検索プログラムだけでなく、OSも記憶されている。プロセッサ301は、OSを実行しながら、検索プログラムを実行する。なお、検索プログラムの一部または全部がOSに組み込まれていてもよい。検索プログラムおよびOSは、メモリ302にあらかじめ記憶されていてもよく、その場合、補助記憶装置303を省略することができる。
検索装置300は、プロセッサ301を代替する複数のプロセッサを備えていてもよい。これら複数のプロセッサは、検索プログラムの実行を分担する。それぞれのプロセッサは、例えば、CPUである。
検索プログラムにより利用、処理または出力されるデータ、情報、信号値および変数値は、補助記憶装置303、メモリ302、または、プロセッサ301内のレジスタまたはキャッシュメモリに記憶される。
検索装置300は、1台のコンピュータで構成されていてもよいし、複数台のコンピュータで構成されていてもよい。検索装置300が複数台のコンピュータで構成されている場合は、取得部310、入力部320、暗号化部330、要求部340、復号部350および出力部360の機能が、各コンピュータに分散されて実現されてもよい。
図4を参照して、本実施の形態に係るサーバ装置400の構成を説明する。
サーバ装置400は、コンピュータである。サーバ装置400は、具体的には、クラウドサーバである。サーバ装置400は、プロセッサ401を備えるとともに、メモリ402、補助記憶装置403、入出力インタフェース404および通信装置405といった他のハードウェアを備える。プロセッサ401は、信号線を介して他のハードウェアと接続され、これら他のハードウェアを制御する。
サーバ装置400は、機能要素として、第1受信部410と、管理部420と、第2受信部430と、検索部440と、送信部450とを備える。第1受信部410、管理部420、第2受信部430、検索部440および送信部450の機能は、ソフトウェアにより実現される。具体的には、第1受信部410、管理部420、第2受信部430、検索部440および送信部450の機能は、サーバプログラムにより実現される。サーバプログラムは、第1受信部410、管理部420、第2受信部430、検索部440および送信部450により行われる手順をそれぞれ第1手順、管理手順、第2手順、検索手順および送信手順としてコンピュータに実行させるプログラムである。サーバプログラムは、コンピュータ読取可能な媒体に記録されて提供されてもよいし、記録媒体に格納されて提供されてもよいし、プログラムプロダクトとして提供されてもよい。
プロセッサ401は、サーバプログラムを実行する装置である。プロセッサ401は、例えば、CPUである。
メモリ402は、サーバプログラムを一時的に記憶する装置である。メモリ402は、例えば、RAM、フラッシュメモリまたはこれらの組み合わせである。
補助記憶装置403は、サーバプログラムをあらかじめ記憶する装置である。補助記憶装置403は、例えば、HDD、フラッシュメモリまたはこれらの組み合わせである。
補助記憶装置403には、データベース460が構築される。なお、メモリ402にデータベース460が構築されていてもよい。
入出力インタフェース404は、図示していない入力機器およびディスプレイが接続されるポートである。入出力インタフェース404は、例えば、USB端子である。入力機器は、サーバプログラムへのデータの入力のためにサーバ管理者により操作される機器である。入力機器は、例えば、マウス、キーボード、タッチパネル、または、これらのうちいくつか、もしくは、すべての組み合わせである。ディスプレイは、サーバプログラムから出力されるデータを画面に表示する機器である。ディスプレイは、例えば、LCDである。
通信装置405は、サーバプログラムに入力されるデータを受信するレシーバと、サーバプログラムから出力されるデータを送信するトランスミッタとを備える。通信装置405は、例えば、通信チップまたはNICである。
サーバプログラムは、補助記憶装置403からメモリ402にロードされ、メモリ402からプロセッサ401に読み込まれ、プロセッサ401によって実行される。補助記憶装置403には、サーバプログラムだけでなく、OSも記憶されている。プロセッサ401は、OSを実行しながら、サーバプログラムを実行する。なお、サーバプログラムの一部または全部がOSに組み込まれていてもよい。サーバプログラムおよびOSは、メモリ402にあらかじめ記憶されていてもよく、その場合、補助記憶装置403を省略することができる。
サーバ装置400は、プロセッサ401を代替する複数のプロセッサを備えていてもよい。これら複数のプロセッサは、サーバプログラムの実行を分担する。それぞれのプロセッサは、例えば、CPUである。
サーバプログラムにより利用、処理または出力されるデータ、情報、信号値および変数値は、補助記憶装置403、メモリ402、または、プロセッサ401内のレジスタまたはキャッシュメモリに記憶される。
サーバ装置400は、1台のコンピュータで構成されていてもよいし、複数台のコンピュータで構成されていてもよい。サーバ装置400が複数台のコンピュータで構成されている場合は、第1受信部410、管理部420、第2受信部430、検索部440および送信部450の機能が、各コンピュータに分散されて実現されてもよい。
***動作の説明***
図5から図14を参照して、本実施の形態に係る秘匿検索システム100の動作を説明する。秘匿検索システム100の動作は、本実施の形態に係る秘匿検索方法に相当する。
図5は、登録装置200が複数の暗号文と索引とをサーバ装置400に登録する動作を示している。
ステップS11において、入力部210は、複数の平文の入力を受ける。具体的には、入力部210は、入出力インタフェース204を介して、平文D1,D2,D3,・・・の入力を受ける。本実施の形態では、入力部210は、それぞれの平文に対してどの検索者にアクセスを許可するかを示す属性集合S1,S2,・・・の入力も受ける。
ステップS12において、暗号文生成部220は、入力部210に入力された複数の平文を暗号鍵で暗号化して複数の暗号文を生成する。具体的には、暗号文生成部220は、平文D1を暗号鍵EK1で暗号化し、暗号化によって得られたデータを暗号文C1としてメモリ202に書き込む。暗号文生成部220は、平文D2を暗号鍵EK1で暗号化し、暗号化によって得られたデータを暗号文C2としてメモリ202に書き込む。暗号文生成部220は、平文D3を暗号鍵EK2で暗号化し、暗号化によって得られたデータを暗号文C3としてメモリ202に書き込む。各暗号鍵は、補助記憶装置203にあらかじめ記憶されているか、入出力インタフェース204を介して適宜入力される。どの平文の暗号化にどの暗号鍵を用いるかは、あらかじめ指定されるか、平文の入力時または暗号鍵の入力時に指定される。本実施の形態では、どの平文の暗号化にどの暗号鍵を用いるかは、ステップS11で入力された属性集合によって決定される。
ステップS13において、入力部210は、入力部210に入力された複数の平文のうち1つ以上の平文に対応するキーワードの入力を受ける。すなわち、入力部210は、入力部210に入力された複数の暗号文のうち1つ以上の暗号文に対応するキーワードの入力を受ける。具体的には、入力部210は、入出力インタフェース204を介して、キーワードW1,W2,W3,・・・の入力を受ける。キーワードW1は、平文D1に対応する。すなわち、キーワードW1は、暗号文C1に対応する。キーワードW2は、平文D1および平文D2に対応する。すなわち、キーワードW2は、暗号文C1および暗号文C2に対応する。キーワードW3は、平文D3に対応する。すなわち、キーワードW3は、暗号文C3に対応する。各キーワードは、平文に対して手動で設定されてもよいし、平文から自動で抽出されてもよい。
ステップS14において、索引生成部230は、入力部210に入力されたキーワードを登録鍵で暗号化して暗号化キーワードを生成する。具体的には、索引生成部230は、キーワードW1のハッシュ値と、あらかじめ定められた値gとをペアリング関数eに与え、ペアリング関数eより得られた値を底とし、登録鍵SK1を指数とする、べき乗を算出し、算出結果を暗号化キーワードV1としてメモリ202に書き込む。索引生成部230は、キーワードW2のハッシュ値と、値gとをペアリング関数eに与え、ペアリング関数eより得られた値を底とし、登録鍵SK1を指数とする、べき乗を算出し、算出結果を暗号化キーワードV2としてメモリ202に書き込む。索引生成部230は、キーワードW2のハッシュ値と、値gとをペアリング関数eに与え、ペアリング関数eより得られた値を底とし、登録鍵SK2を指数とする、べき乗を算出し、算出結果を暗号化キーワードV3としてメモリ202に書き込む。索引生成部230は、キーワードW3のハッシュ値と、値gとをペアリング関数eに与え、ペアリング関数eより得られた値を底とし、登録鍵SK2を指数とする、べき乗を算出し、算出結果を暗号化キーワードV4としてメモリ202に書き込む。各登録鍵は、各暗号鍵と対になっており、各暗号鍵と同じように、補助記憶装置203にあらかじめ記憶されているか、入出力インタフェース204を介して適宜入力される。どのキーワードの暗号化にどの登録鍵を用いるかは、キーワードに対応する平文がどの暗号鍵で暗号化されたかによって決定される。
データのアクセス権限情報と、対応する暗号鍵および登録鍵との例を図20に示す。この例では、平文D1と平文D2とが属性集合S1に対応し、平文D3が属性集合S2に対応しているとする。すなわち、平文D1および平文D2へのアクセスが属性集合S1に属する検索者Paおよび検索者Pbに許可され、平文D3へのアクセスが属性集合S2に属する検索者Pbのみに許可されているとする。ステップS12では、属性集合S1と属性集合S2とに対応した暗号鍵および登録鍵のペアとして、それぞれ暗号鍵EK1および登録鍵SK1のペアと暗号鍵EK2および登録鍵SK2のペアとが生成される。暗号鍵EK1および登録鍵SK1のペアは、属性集合S1と対応付けて保管される。暗号鍵EK2および登録鍵SK2のペアは、属性集合S2と対応付けて保管される。すでに同じ属性集合を使って暗号鍵および登録鍵のペアが登録されていた場合は、暗号鍵および登録鍵のペアが生成される代わりに、保管されている暗号鍵および登録鍵が読み出される。
ステップS15において、索引生成部230は、ステップS14で生成した暗号化キーワードと、対応する1つ以上の暗号文を識別する識別情報とを含む索引を生成する。具体的には、索引生成部230は、図6に示すように、暗号化キーワードV1と、平文D1の識別子との組み合わせを1つのエントリとして含み、暗号化キーワードV2と、平文D1および平文D2の識別子との組み合わせを別のエントリとして含む索引を生成する。索引生成部230は、図7に示すように、暗号化キーワードV3と、平文D3の識別子との組み合わせを1つのエントリとして含み、暗号化キーワードV4と、平文D3の識別子との組み合わせを別のエントリとして含む索引を生成する。なお、図6および図7に示した索引の構造をそのまま適用することもできるが、頻度分析に対する安全性を確保するために、後述する、図15および図16に示すような索引を適用することが望ましい。
ステップS16において、登録部260は、暗号文生成部220により生成された複数の暗号文と、索引生成部230により生成された索引とをサーバ装置400に送信する。具体的には、登録部260は、図14に示すように、暗号文C1および暗号文C2と、図6の索引とをまとめてサーバ装置400に送信する。登録部260は、暗号文C3と、図7の索引とをまとめてサーバ装置400に送信する。
図8は、サーバ装置400が複数の暗号文と索引とをデータベース460に登録する動作を示している。
ステップS21において、第1受信部410は、登録装置200から送信された複数の暗号文と索引とを受信する。具体的には、第1受信部410は、図14に示すように、暗号文C1および暗号文C2と、図6の索引とをまとめて登録装置200から受信する。第1受信部410は、暗号文C3と、図7の索引とをまとめて登録装置200から受信する。
ステップS22において、管理部420は、第1受信部410により受信された複数の暗号文と索引とをデータベース460に登録する。具体的には、管理部420は、図14に示すように、暗号文C1および暗号文C2と、図6の索引とをまとめてデータベース461に登録する。管理部420は、暗号文C3と、図7の索引とをまとめてデータベース461に登録する。なお、データベース460は、本実施の形態のように、暗号文と索引のデータベース461と、後述する変換鍵のデータベース462とに分かれていることが望ましいが、1つに統合されていてもよい。
図9は、登録装置200が変換鍵をサーバ装置400に登録するとともに検索鍵を検索装置300に配布する動作を示している。
ステップS31において、鍵生成部240は、登録鍵と、検索装置300により暗号化に用いられる検索鍵とから、サーバ装置400により代理人再暗号化に用いられる変換鍵を生成する。具体的には、鍵生成部240は、前述した値gを底とし、登録鍵SK1を検索鍵Kaで割った値を指数とする、べき乗を算出し、算出結果を変換鍵K1aとしてメモリ202に書き込む。鍵生成部240は、値gを底とし、登録鍵SK1を検索鍵Kbで割った値を指数とする、べき乗を算出し、算出結果を変換鍵K1bとしてメモリ202に書き込む。鍵生成部240は、値gを底とし、登録鍵SK2を検索鍵Kbで割った値を指数とする、べき乗を算出し、算出結果を変換鍵K2bとしてメモリ202に書き込む。各検索鍵は、補助記憶装置203にあらかじめ記憶されているか、入出力インタフェース204を介して適宜入力される。どの登録鍵にどの検索鍵を組み合わせるかは、あらかじめ指定されるか、登録鍵の入力時または検索鍵の入力時に指定される。ある登録鍵と、ある検索鍵との組み合わせから生成された変換鍵を用いれば、その検索鍵で暗号化されたキーワードを、復号することなく、その登録鍵で暗号化されたキーワードに変換することができる。図20の例では、登録鍵SK1で生成された索引は属性集合S1に含まれる検索者Paと検索者Pbとが検索できる。そのため、検索者Paに配布予定の検索鍵Kaと、検索者Pbに配布予定の検索鍵Kbとのそれぞれでの検索が可能となるように、それぞれに対応する変換鍵K1aおよび変換鍵K1bが生成される。登録鍵SK2で生成された索引は属性集合S2に含まれる検索者Pbのみが検索できる。そのため、検索者Pbに配布予定の検索鍵Kbでの検索が可能となるように、検索鍵Kbに対応する変換鍵K2bが生成される。
ステップS32において、登録部260は、鍵生成部240により生成された変換鍵をサーバ装置400に送信する。具体的には、登録部260は、図14に示すように、変換鍵K1a,K1b,K2b,・・・をサーバ装置400に送信する。
ステップS33において、配布部250は、鍵生成部240により変換鍵の生成に用いられた検索鍵を検索装置300に送信する。具体的には、配布部250は、図14に示すように、検索鍵Kaを、検索者Paの検索装置300である検索装置300aに送信する。配布部250は、検索鍵Kbを、検索者Pbの検索装置300である検索装置300bに送信する。検索者に配布される検索鍵の例を図21に示す。この例では、検索者Paには検索鍵Kaが配布され、検索者Pbには検索鍵Kbが配布される。このように、検索鍵は検索者ごとに異なる。
ステップS33の処理は、ステップS31の処理より前に行われてもよい。
図10は、サーバ装置400が変換鍵をデータベース460に登録する動作を示している。
ステップS41において、第1受信部410は、登録装置200から送信された変換鍵を受信する。具体的には、第1受信部410は、図14に示すように、変換鍵K1a,K1b,K2b,・・・を登録装置200から受信する。
ステップS42において、管理部420は、第1受信部410により受信された変換鍵をデータベース460に登録する。具体的には、管理部420は、図14に示すように、変換鍵K1a,K1b,K2b,・・・をデータベース462に登録する。前述したように、本実施の形態では、データベース460が、暗号文と索引のデータベース461と、変換鍵のデータベース462とに分かれている。
図11は、検索装置300が検索クエリをサーバ装置400に送付して検索を要求する動作を示している。
ステップS51において、取得部310は、登録装置200から送信された検索鍵を受信する。具体的には、検索装置300aの取得部310は、図14に示すように、検索鍵Kaを登録装置200から受信する。あるいは、検索装置300bの取得部310は、検索鍵Kbを登録装置200から受信する。
ステップS52において、入力部320は、検索に用いられるキーワードの入力を受ける。具体的には、入力部320は、入出力インタフェース304または通信装置305を介して、キーワードwの入力を受ける。
ステップS53において、暗号化部330は、入力部320に入力されたキーワードを取得部310により受信された検索鍵で暗号化して検索クエリを生成する。具体的には、検索装置300aの暗号化部330は、キーワードwのハッシュ値を底とし、検索鍵Kaを指数とする、べき乗を算出し、算出結果を検索クエリQとしてメモリ302に書き込む。あるいは、検索装置300bの暗号化部330は、キーワードwのハッシュ値を底とし、検索鍵Kbを指数とする、べき乗を算出し、算出結果を検索クエリQとしてメモリ302に書き込む。
ステップS54において、要求部340は、暗号化部330により生成された検索クエリをサーバ装置400に送信して検索を要求する。具体的には、検索装置300aまたは検索装置300bの要求部340は、図14に示すように、検索クエリQをサーバ装置400に送信する。
図12は、サーバ装置400が検索を行う動作を示している。
ステップS61において、第2受信部430は、検索装置300から送信された検索クエリを受信する。具体的には、第2受信部430は、図14に示すように、検索クエリQを検索装置300aまたは検索装置300bから受信する。
ステップS62において、検索部440は、第2受信部430により受信された検索クエリを管理部420により登録された変換鍵で再暗号化して再暗号化キーワードを生成する。具体的には、検索部440は、図14に示すように、検索装置300aまたは検索装置300bから送信された検索クエリQをデータベース462に登録されている変換鍵K1a,K1b,K2b,・・・で再暗号化し、代理人再暗号化によって得られたデータを再暗号化キーワードvとしてメモリ402に書き込む。代理人再暗号化は、変換鍵K1aの場合、検索クエリQと変換鍵K1aとをペアリング関数eに与え、ペアリング関数eより得られた値のハッシュ値を算出することで行われる。代理人再暗号化は、変換鍵K1bの場合、検索クエリQと変換鍵K1bとをペアリング関数eに与え、ペアリング関数eより得られた値のハッシュ値を算出することで行われる。代理人再暗号化は、変換鍵K2bの場合、検索クエリQと変換鍵K2bとをペアリング関数eに与え、ペアリング関数eより得られた値のハッシュ値を算出することで行われる。
ステップS63において、検索部440は、管理部420により登録された索引をステップS62で生成した再暗号化キーワードで検索する。具体的には、検索部440は、図14に示すように、データベース461に登録されている図6の索引から、再暗号化キーワードvと一致する暗号化キーワードを含むエントリを抽出する。検索部440は、データベース461に登録されている図7の索引から、再暗号化キーワードvと一致する暗号化キーワードを含むエントリを抽出する。
検索結果として暗号化キーワードが得られなければ、検索の動作が終了する。検索結果として暗号化キーワードが得られれば、ステップS64の処理が行われる。再暗号化キーワードvが暗号化キーワードV1と一致する場合、図6の索引から、検索結果として暗号化キーワードV1を含むエントリが抽出される。再暗号化キーワードvが暗号化キーワードV2と一致する場合、図6の索引から、検索結果として暗号化キーワードV2を含むエントリが抽出される。再暗号化キーワードvが暗号化キーワードV3と一致する場合、図7の索引から、検索結果として暗号化キーワードV3を含むエントリが抽出される。再暗号化キーワードvが暗号化キーワードV4と一致する場合、図7の索引から、検索結果として暗号化キーワードV4を含むエントリが抽出される。
ステップS64において、検索部440は、ステップS63で検索結果として得られた暗号化キーワードを含む索引から識別情報を取得する。そして、検索部440は、管理部420により登録された複数の暗号文の中から、取得した識別情報によって識別される暗号文を抽出する。具体的には、検索部440は、図14に示すように、検索結果として暗号化キーワードV1を含むエントリを抽出した場合、そのエントリに平文D1の識別子が含まれているため、データベース461に登録されている暗号文C1を抽出する。検索部440は、検索結果として暗号化キーワードV2を含むエントリを抽出した場合、そのエントリに平文D1および平文D2の識別子が含まれているため、データベース461に登録されている暗号文C1および暗号文C2を抽出する。検索部440は、検索結果として暗号化キーワードV3を含むエントリを抽出した場合、そのエントリに平文D3の識別子が含まれているため、データベース461に登録されている暗号文C3を抽出する。検索部440は、検索結果として暗号化キーワードV4を含むエントリを抽出した場合、そのエントリに平文D3の識別子が含まれているため、データベース461に登録されている暗号文C3を抽出する。
送信部450は、検索部440により抽出された暗号文を検索装置300に送信する。具体的には、送信部450は、図14に示すように、キーワードwがキーワードW1と一致する場合、検索装置300aから送信された検索クエリQに対しては、検索結果として暗号文C1が抽出されるため、暗号文C1を検索装置300aに送信する。送信部450は、キーワードwがキーワードW2と一致する場合、検索装置300aから送信された検索クエリQに対しては、検索結果として暗号文C1および暗号文C2が抽出されるため、暗号文C1および暗号文C2を検索装置300aに送信する。送信部450は、キーワードwがキーワードW3と一致する場合、検索装置300aから送信された検索クエリQに対しては、検索結果として暗号文が抽出されないため、暗号文を検索装置300aに送信しない。あるいは、送信部450は、キーワードwがキーワードW1と一致する場合、検索装置300bから送信された検索クエリQに対しては、検索結果として暗号文C1が抽出されるため、暗号文C1を検索装置300bに送信する。送信部450は、キーワードwがキーワードW2と一致する場合、検索装置300bから送信された検索クエリQに対しては、検索結果として暗号文C1および暗号文C2が抽出されるため、暗号文C1および暗号文C2を検索装置300bに送信する。送信部450は、キーワードwがキーワードW3と一致する場合、検索装置300bから送信された検索クエリQに対しては、検索結果として暗号文C3が抽出されるため、暗号文C3を検索装置300bに送信する。
図13は、検索装置300が検索結果を取得する動作を示している。
ステップS71において、要求部340は、サーバ装置400から送信された暗号文を受信する。具体的には、検索装置300aまたは検索装置300bの要求部340は、キーワードwがキーワードW1と一致する場合、暗号文C1をサーバ装置400から受信する。検索装置300aまたは検索装置300bの要求部340は、キーワードwがキーワードW2と一致する場合、暗号文C1および暗号文C2をサーバ装置400から受信する。検索装置300bの要求部340は、キーワードwがキーワードW3と一致する場合、暗号文C3をサーバ装置400から受信する。
ステップS72において、復号部350は、要求部340により受信された暗号文を暗号鍵で復号する。具体的には、検索装置300aまたは検索装置300bの復号部350は、ステップS71で暗号文C1が受信されていれば、暗号文C1を暗号鍵EK1で復号し、復号によって得られたデータを平文D1としてメモリ302に書き込む。検索装置300aまたは検索装置300bの復号部350は、ステップS71で暗号文C2が受信されていれば、暗号文C2を暗号鍵EK1で復号し、復号によって得られたデータを平文D2としてメモリ302に書き込む。検索装置300bの復号部350は、ステップS71で暗号文C3が受信されていれば、暗号文C3を暗号鍵EK2で復号し、復号によって得られたデータを平文D3としてメモリ302に書き込む。各暗号鍵は、補助記憶装置303にあらかじめ記憶されているか、入出力インタフェース304または通信装置305を介して適宜入力される。本実施の形態では、ステップS12で生成された暗号鍵が、ステップS12以後に、対応する検索者に配布される。図20の例では、暗号鍵EK1は検索者Paおよび検索者Pbに送付され、暗号鍵EK2は検索者Pbのみに送付される。すなわち、暗号鍵EK1は登録装置200から検索装置300aおよび検索装置300bに送信され、暗号鍵EK2は登録装置200から検索装置300bのみに送信される。登録装置200から送信された暗号鍵EK1は、ステップS72以前に、検索装置300aおよび検索装置300bで受信される。登録装置200から送信された暗号鍵EK2は、ステップS72以前に、検索装置300bで受信される。
ステップS73において、出力部360は、復号部350により得られた平文を出力する。具体的には、検索装置300aまたは検索装置300bの出力部360は、ステップS72で平文D1が得られていれば、入出力インタフェース204を介して、平文D1を画面に表示するか、ファイルに出力する。検索装置300aまたは検索装置300bの出力部360は、ステップS72で平文D2が得られていれば、入出力インタフェース204を介して、平文D2を画面に表示するか、ファイルに出力する。検索装置300bの出力部360は、ステップS72で平文D3が得られていれば、入出力インタフェース204を介して、平文D3を画面に表示するか、ファイルに出力する。
図15を参照して、より具体的な索引の生成のしかたを説明する。
ステップS14およびステップS15において、登録装置200の索引生成部230は、入力部210に入力されたキーワードを登録鍵で暗号化して得られた結果データに対し、第1変換処理と第2変換処理とを別々に実行する。索引生成部230は、第1変換処理を実行して得られた第1変換データを暗号化キーワードとして利用する。索引生成部230は、第2変換処理を実行して得られた第2変換データを暗号文識別子で符号化して識別情報を生成する。暗号文識別子は、入力部210に入力されたキーワードに対応する暗号文の組み合わせを一意に表すデータである。
本実施の形態では、第1変換処理は、結果データに第1値を連結し、第1値を連結したデータのハッシュ値を第1変換データとして算出する処理である。第2変換処理は、結果データに第1値とは異なる第2値を連結し、第2値を連結したデータのハッシュ値を第2変換データとして算出する処理である。
なお、第1変換処理と第2変換処理は、互いに異なる処理であればよく、種々の変形例が実施可能である。1つの例において、第1変換処理は、結果データを第1ハッシュ関数によってハッシュ値である第1変換データに変換する処理である。第2変換処理は、結果データを第1ハッシュ関数とは異なる第2ハッシュ関数によってハッシュ値である第2変換データに変換する処理である。
本実施の形態では、第2変換データの符号化は、第2変換データと暗号文識別子との排他的論理和を識別情報として算出することで行われる。
以下の記号を定義する。
λ:セキュリティパラメータ
W:登録時のキーワード
w:検索時のキーワード
D:平文
G1,G2,GT:巡回群
H1,H2:ハッシュ関数
e:ペアリング関数
G1,G2,GTともに大きな素数pを位数として持つ。G2の生成元はgである。つまり、g≠1(1≦x≦p−1)かつg=1である。
ハッシュ関数H1,H2は、以下のような関数である。
H1:{0,1}→G1({0,1}は任意のビット列)
H2:{0,1}→{0,1}λ
ペアリング関数eは、以下のような関数である。
e:G1×G2→GT
e(H(w),g)=e(H(w),g)xyが成立する。
具体的な索引の生成の手順は、以下のとおりである。
1.平文D1,・・・,Dnから相異なるキーワードW1,・・・,WLを抽出する。Lは正の整数である。
2.鍵sk_Sに対応する索引ind_S={(キーワード,識別子)}を生成する。ただし、このSは、平文D1,・・・,Dnへのアクセスが許可される検索者を示す属性情報の集合を意味する。例えば、検索者Paおよび検索者Pbに対して平文D1,・・・,Dnへのアクセスが許可されている場合、S={Pa,Pb}である。この場合、図20の例を用いると、S=S1、sk_S=SK1である。
3.各キーワードに対応する識別子をベクトルで表現する。例えば、平文数n=5、ハッシュ関数H2の出力ビット長λ=10のとき、キーワードW1に平文D1、平文D3および平文D5が対応することは、
(1,0,1,0,1,0,0,0,0,0)
と表現される。キーワードWLに平文D2および平文D3が対応することは、
(0,1,1,0,0,0,0,0,0,0)
と表現される。すなわち、各ベクトルの順番がヒットする平文の識別子と対応しており、平文D1、平文D3および平文D5の識別子がヒットする場合は、ベクトルの1番目、3番目および5番目の成分が1となり、それ以外の成分がすべて0になる。このとき、ind_S={(W1,(1,0,1,0,1,0,0,0,0,0)),・・・,(WL,(0,1,1,0,0,0,0,0,0,0))}が構成される。
4.各Wi(1≦i≦L)に対して、ペアリング関数eとハッシュ関数H1,H2とを用いて、以下のt{i,0}およびt{i,1}を計算する。
t{i,0}=H2(e(H1(Wi),gsk_S)||0)
t{i,1}=H2(e(H1(Wi),gsk_S)||1)
「||」は連結を表す。t{i,0}の計算は、第1変換処理に相当する。t{i,1}の計算は、第2変換処理に相当する。この例では、第1値を0、第2値を1としている。なお、ハッシュ関数H1とハッシュ関数H2は同じ関数でもよい。
5.各i(1≦i≦L)に対して、t{i,1}のハッシュ値をベクトル表現にする。例えば、t{1,1}=1010101010であれば、これは、
(1,0,1,0,1,0,1,0,1,0)
と表現される。t{L,1}=1111100000であれば、これは、
(1,1,1,1,1,0,0,0,0,0)
と表現される。
6.各Wi(1≦i≦L)の識別子に対して、ベクトル表現されたt{i,1}と各成分との排他的論理和を計算する。例えば、W1について、
(1,0,1,0,1,0,0,0,0,0)+(1,0,1,0,1,0,1,0,1,0)=(0,0,0,0,0,0,1,0,1,0)
が計算される。この計算されたベクトルをT{1,1}と定義する。WLについて、
(0,1,1,0,0,0,0,0,0,0)+(1,1,1,1,1,0,0,0,0,0)=(1,0,0,1,1,0,0,0,0,0)
が計算される。この計算されたベクトルをT{L,1}と定義する。
7.ind_Sを図15に示すように更新し、IND_S=(ind_S,S)を出力する。
図16を参照して、上述した索引の生成のしかたに対応する、索引の検索のしかたを説明する。
ステップS62からステップS64において、サーバ装置400の検索部440は、検索装置300から送信された検索クエリを再暗号化して得られた結果データに対し、第1変換処理と第2変換処理とを別々に実行する。検索部440は、第1変換処理を実行して得られた第1変換データを再暗号化キーワードとして利用する。検索部440は、検索結果として暗号化キーワードが得られれば、第2変換処理を実行して得られた第2変換データを識別情報で復号して暗号文識別子を取得する。そして、検索部440は、管理部420により登録された複数の暗号文の中から、取得した暗号文識別子によって表される組み合わせに含まれる暗号文を抽出する。
前述したように、本実施の形態では、第1変換処理は、結果データに第1値を連結し、第1値を連結したデータのハッシュ値を第1変換データとして算出する処理である。第2変換処理は、結果データに第1値とは異なる第2値を連結し、第2値を連結したデータのハッシュ値を第2変換データとして算出する処理である。
本実施の形態では、第2変換データの復号は、第2変換データと識別情報との排他的論理和を暗号文識別子として算出することで行われる。
具体的な索引の検索の手順は、以下のとおりである。
1.検索クエリq_Uと変換鍵ck_Uとに対して、ペアリング関数eとハッシュ関数H1,H2とを用いて、以下のt0およびt1を計算する。
t0=H2(e(q_U,ck_U)||1)=H2(e(H1(w),gsk_S)||0)
t1=H2(e(q_U,ck_U)||1)=H2(e(H1(w),gsk_S)||1)
2.索引ind_S={(key,value)}に対して、t0=keyとなるkeyがあるか、バイナリ比較等を用いてチェックする。
3.もしなければ、ID=0(空集合)として出力する。もしあれば、(key,value)とそのkeyに対応したvalueに対して、t1をベクトル表現した値とvalueとの排他的論理和を計算し、成分が1となっている部分に対応した識別子をすべてIDに含め、IDを出力する。例えば、ind_Sが図16に示すとおりとし、t{1,0}=t0かつt1=(1,0,1,0,1,0,1,0,1,0)とする。このとき、t{1,0}に対応した(0,0,0,0,0,0,1,0,1,0)とt1=(1,0,1,0,1,0,1,0,1,0)との排他的論理和を成分ごとに計算し、(1,0,1,0,1,0,0,0,0,0)を得る。よって、平文D1、平文D3および平文D5の識別子をIDに含めて、IDを出力する。
上記のような索引技術を適用することで安全性を高めることができる。
***実施の形態の効果の説明***
本実施の形態では、複数の鍵を使ってアクセス制御を達成しながら、方式に索引型を適用しているため、秘匿検索の高速化を達成できる。また、共通鍵ベース索引方式のほとんどを適用できるため、汎用性が高い。
本実施の形態では、特に、公開鍵暗号技術と複数の秘密鍵とを使って、共通鍵暗号ベースの秘匿検索技術におけるアクセス制御を実現することができる。公開鍵暗号技術としては、ペアリングによる代理人再暗号化技術が用いられている。代理人再暗号化技術では、ある変換鍵を使えば、検索者が暗号化したデータを復号せずに、登録者が暗号化したデータへ変換できる。
本実施の形態では、データ登録時に、タグ型ではなく、索引型のデータが生成され、データ検索時に、索引型の検索クエリが生成される。よって、効率が良い。
本実施の形態では、データ登録時に同じ暗号化キーワードはまとめて索引に登録されるとともに、既存の安全な索引構成手法を適用して高安全化が可能となる。例えば、索引にダミーを追加したり、ヒットするデータ名も暗号化して隠したりする手法を適用することができる。
本実施の形態は、既存の共通鍵暗号ベースの索引型の方式に適用できるため、部分一致検索等、柔軟な検索機能付きの索引方式も構成することが可能である。
***他の構成***
本実施の形態では、登録装置200の入力部210、暗号文生成部220、索引生成部230、鍵生成部240、配布部250および登録部260の機能がソフトウェアにより実現されるが、変形例として、入力部210、暗号文生成部220、索引生成部230、鍵生成部240、配布部250および登録部260の機能がハードウェアにより実現されてもよい。この変形例について、主に本実施の形態との差異を説明する。
図17を参照して、本実施の形態の変形例に係る登録装置200の構成を説明する。
登録装置200は、電子回路209、補助記憶装置203、入出力インタフェース204および通信装置205といったハードウェアを備える。
電子回路209は、入力部210、暗号文生成部220、索引生成部230、鍵生成部240、配布部250および登録部260の機能を実現する専用のハードウェアである。電子回路209は、例えば、単一回路、複合回路、プログラム化したプロセッサ、並列プログラム化したプロセッサ、ロジックIC、GA、FPGA、ASIC、または、これらのうちいくつか、もしくは、すべての組み合わせである。「IC」は、Integrated Circuitの略語である。「GA」は、Gate Arrayの略語である。「FPGA」は、Field−Programmable Gate Arrayの略語である。「ASIC」は、Application Specific Integrated Circuitの略語である。
登録装置200は、電子回路209を代替する複数の電子回路を備えていてもよい。これら複数の電子回路は、全体として入力部210、暗号文生成部220、索引生成部230、鍵生成部240、配布部250および登録部260の機能を実現する。それぞれの電子回路は、例えば、単一回路、複合回路、プログラム化したプロセッサ、並列プログラム化したプロセッサ、ロジックIC、GA、FPGA、ASIC、または、これらのうちいくつか、もしくは、すべての組み合わせである。
別の変形例として、入力部210、暗号文生成部220、索引生成部230、鍵生成部240、配布部250および登録部260の機能がソフトウェアとハードウェアとの組み合わせにより実現されてもよい。すなわち、入力部210、暗号文生成部220、索引生成部230、鍵生成部240、配布部250および登録部260の機能の一部が専用のハードウェアにより実現され、残りがソフトウェアにより実現されてもよい。
プロセッサ201および電子回路209は、いずれも処理回路である。すなわち、登録装置200の構成が図2および図17のいずれに示した構成であっても、入力部210、暗号文生成部220、索引生成部230、鍵生成部240、配布部250および登録部260の動作は、処理回路により行われる。
本実施の形態では、検索装置300の取得部310、入力部320、暗号化部330、要求部340、復号部350および出力部360の機能がソフトウェアにより実現されるが、変形例として、取得部310、入力部320、暗号化部330、要求部340、復号部350および出力部360の機能がハードウェアにより実現されてもよい。この変形例について、主に本実施の形態との差異を説明する。
図18を参照して、本実施の形態の変形例に係る検索装置300の構成を説明する。
検索装置300は、電子回路309、補助記憶装置303、入出力インタフェース304および通信装置305といったハードウェアを備える。
電子回路309は、取得部310、入力部320、暗号化部330、要求部340、復号部350および出力部360の機能を実現する専用のハードウェアである。電子回路309は、例えば、単一回路、複合回路、プログラム化したプロセッサ、並列プログラム化したプロセッサ、ロジックIC、GA、FPGA、ASIC、または、これらのうちいくつか、もしくは、すべての組み合わせである。
検索装置300は、電子回路309を代替する複数の電子回路を備えていてもよい。これら複数の電子回路は、全体として取得部310、入力部320、暗号化部330、要求部340、復号部350および出力部360の機能を実現する。それぞれの電子回路は、例えば、単一回路、複合回路、プログラム化したプロセッサ、並列プログラム化したプロセッサ、ロジックIC、GA、FPGA、ASIC、または、これらのうちいくつか、もしくは、すべての組み合わせである。
別の変形例として、取得部310、入力部320、暗号化部330、要求部340、復号部350および出力部360の機能がソフトウェアとハードウェアとの組み合わせにより実現されてもよい。すなわち、取得部310、入力部320、暗号化部330、要求部340、復号部350および出力部360の機能の一部が専用のハードウェアにより実現され、残りがソフトウェアにより実現されてもよい。
プロセッサ301および電子回路309は、いずれも処理回路である。すなわち、検索装置300の構成が図3および図18のいずれに示した構成であっても、取得部310、入力部320、暗号化部330、要求部340、復号部350および出力部360の動作は、処理回路により行われる。
本実施の形態では、サーバ装置400の第1受信部410、管理部420、第2受信部430、検索部440および送信部450の機能がソフトウェアにより実現されるが、変形例として、第1受信部410、管理部420、第2受信部430、検索部440および送信部450の機能がハードウェアにより実現されてもよい。この変形例について、主に本実施の形態との差異を説明する。
図19を参照して、本実施の形態の変形例に係るサーバ装置400の構成を説明する。
サーバ装置400は、電子回路409、補助記憶装置403、入出力インタフェース404および通信装置405といったハードウェアを備える。
電子回路409は、第1受信部410、管理部420、第2受信部430、検索部440および送信部450の機能を実現する専用のハードウェアである。電子回路409は、例えば、単一回路、複合回路、プログラム化したプロセッサ、並列プログラム化したプロセッサ、ロジックIC、GA、FPGA、ASIC、または、これらのうちいくつか、もしくは、すべての組み合わせである。
サーバ装置400は、電子回路409を代替する複数の電子回路を備えていてもよい。これら複数の電子回路は、全体として第1受信部410、管理部420、第2受信部430、検索部440および送信部450の機能を実現する。それぞれの電子回路は、例えば、単一回路、複合回路、プログラム化したプロセッサ、並列プログラム化したプロセッサ、ロジックIC、GA、FPGA、ASIC、または、これらのうちいくつか、もしくは、すべての組み合わせである。
別の変形例として、第1受信部410、管理部420、第2受信部430、検索部440および送信部450の機能がソフトウェアとハードウェアとの組み合わせにより実現されてもよい。すなわち、第1受信部410、管理部420、第2受信部430、検索部440および送信部450の機能の一部が専用のハードウェアにより実現され、残りがソフトウェアにより実現されてもよい。
プロセッサ401および電子回路409は、いずれも処理回路である。すなわち、サーバ装置400の構成が図4および図19のいずれに示した構成であっても、第1受信部410、管理部420、第2受信部430、検索部440および送信部450の動作は、処理回路により行われる。
100 秘匿検索システム、101 ネットワーク、200 登録装置、201 プロセッサ、202 メモリ、203 補助記憶装置、204 入出力インタフェース、205 通信装置、209 電子回路、210 入力部、220 暗号文生成部、230 索引生成部、240 鍵生成部、250 配布部、260 登録部、300 検索装置、300a 検索装置、300b 検索装置、301 プロセッサ、302 メモリ、303 補助記憶装置、304 入出力インタフェース、305 通信装置、309 電子回路、310 取得部、320 入力部、330 暗号化部、340 要求部、350 復号部、360 出力部、400 サーバ装置、401 プロセッサ、402 メモリ、403 補助記憶装置、404 入出力インタフェース、405 通信装置、409 電子回路、410 第1受信部、420 管理部、430 第2受信部、440 検索部、450 送信部、460 データベース、461 データベース、462 データベース。

Claims (10)

  1. 複数の暗号文のうち1つ以上の暗号文に対応するキーワードを登録鍵で暗号化して暗号化キーワードを生成し、生成した暗号化キーワードと、前記1つ以上の暗号文を識別する識別情報とを含む索引を生成する索引生成部と、
    前記登録鍵と、検索に用いるキーワードを暗号化して検索クエリを生成する検索装置により暗号化に用いられる検索鍵とから、前記検索クエリを再暗号化して再暗号化キーワードを生成し前記索引を前記再暗号化キーワードで検索するサーバ装置により代理人再暗号化に用いられる変換鍵を生成する鍵生成部と、
    前記複数の暗号文と、前記索引生成部により生成された索引と、前記鍵生成部により生成された変換鍵とを前記サーバ装置に送信する登録部と
    を備え
    前記索引生成部は、前記1つ以上の暗号文に対応するキーワードを前記登録鍵で暗号化して得られた結果データに対し、第1変換処理と、前記第1変換処理とは異なる第2変換処理とを別々に実行し、前記第1変換処理を実行して得られた第1変換データを前記暗号化キーワードとして利用し、前記第2変換処理を実行して得られた第2変換データを、前記1つ以上の暗号文の組み合わせを一意に表す暗号文識別子で符号化して前記識別情報を生成する登録装置。
  2. 前記第1変換処理は、前記結果データに第1値を連結し、前記第1値を連結したデータのハッシュ値を前記第1変換データとして算出する処理であり、
    前記第2変換処理は、前記結果データに前記第1値とは異なる第2値を連結し、前記第2値を連結したデータのハッシュ値を前記第2変換データとして算出する処理である請求項に記載の登録装置。
  3. 前記索引生成部は、前記第2変換データと前記暗号文識別子との排他的論理和を前記識別情報として算出する請求項またはに記載の登録装置。
  4. 複数の暗号文と、1つ以上の暗号文に対応するキーワードを登録鍵で暗号化して暗号化キーワードを生成する登録装置が生成した、前記暗号化キーワードと前記1つ以上の暗号文を識別する識別情報とを含む索引と、前記登録装置が前記登録鍵と検索に用いるキーワードを暗号化して検索クエリを生成する検索装置により暗号化に用いられる検索鍵とから生成した、代理人再暗号化に用いられる変換鍵とを受信する第1受信部と、
    前記第1受信部により受信された複数の暗号文と索引と変換鍵とをデータベースに登録する管理部と、
    前記検索クエリを受信する第2受信部と、
    前記第2受信部により受信された検索クエリを前記管理部により登録された変換鍵で再暗号化して再暗号化キーワードを生成し、前記管理部により登録された索引を前記再暗号化キーワードで検索し、検索結果として前記暗号化キーワードが得られれば、前記索引から前記識別情報を取得し、前記管理部により登録された複数の暗号文の中から、前記識別情報によって識別される暗号文を抽出する検索部と、
    前記検索部により抽出された暗号文を前記検索装置に送信する送信部と
    を備え
    前記検索部は、前記検索クエリを再暗号化して得られた結果データに対し、第1変換処理と、前記第1変換処理とは異なる第2変換処理とを別々に実行し、前記第1変換処理を実行して得られた第1変換データを前記再暗号化キーワードとして利用し、前記検索結果として前記暗号化キーワードが得られれば、前記第2変換処理を実行して得られた第2変換データを前記識別情報で復号して、前記1つ以上の暗号文の組み合わせを一意に表す暗号文識別子を取得し、前記複数の暗号文の中から、前記暗号文識別子によって表される組み合わせに含まれる暗号文を抽出するサーバ装置。
  5. 前記第1変換処理は、前記結果データに第1値を連結し、前記第1値を連結したデータのハッシュ値を前記第1変換データとして算出する処理であり、
    前記第2変換処理は、前記結果データに前記第1値とは異なる第2値を連結し、前記第2値を連結したデータのハッシュ値を前記第2変換データとして算出する処理である請求項に記載のサーバ装置。
  6. 前記検索部は、前記第2変換データと前記識別情報との排他的論理和を前記暗号文識別子として算出する請求項またはに記載のサーバ装置。
  7. 前記登録装置と、
    前記検索装置と、
    請求項からのいずれか1項に記載のサーバ装置と
    を備える秘匿検索システム。
  8. 登録装置が、複数の暗号文のうち1つ以上の暗号文に対応するキーワードを登録鍵で暗号化して暗号化キーワードを生成し、生成した暗号化キーワードと、前記1つ以上の暗号文を識別する識別情報とを含む索引を生成し、前記登録鍵と、検索装置により暗号化に用いられる検索鍵とから、サーバ装置により代理人再暗号化に用いられる変換鍵を生成し、前記複数の暗号文と、生成した索引と、生成した変換鍵とを前記サーバ装置に送信し、
    前記サーバ装置が、前記複数の暗号文と前記索引と前記変換鍵とをデータベースに登録し、
    前記検索装置が、検索に用いるキーワードを暗号化して検索クエリを生成し、生成した検索クエリを前記サーバ装置に送信し、
    前記サーバ装置が、前記検索クエリを前記データベースに登録した変換鍵で再暗号化して再暗号化キーワードを生成し、前記データベースに登録した索引を前記再暗号化キーワードで検索し、検索結果として前記暗号化キーワードが得られれば、前記索引から前記識別情報を取得し、前記データベースに登録した複数の暗号文の中から、前記識別情報によって識別される暗号文を抽出し、抽出した暗号文を前記検索装置に送信する秘匿検索方法であって、
    前記登録装置は、前記1つ以上の暗号文に対応するキーワードを前記登録鍵で暗号化して得られた結果データに対し、第1変換処理と、前記第1変換処理とは異なる第2変換処理とを別々に実行し、前記第1変換処理を実行して得られた第1変換データを前記暗号化キーワードとして利用し、前記第2変換処理を実行して得られた第2変換データを、前記1つ以上の暗号文の組み合わせを一意に表す暗号文識別子で符号化して前記識別情報を生成する秘匿検索方法
  9. コンピュータに、
    複数の暗号文のうち1つ以上の暗号文に対応するキーワードを登録鍵で暗号化して暗号化キーワードを生成し、生成した暗号化キーワードと、前記1つ以上の暗号文を識別する識別情報とを含む索引を生成する索引生成手順と、
    前記登録鍵と、検索に用いるキーワードを暗号化して検索クエリを生成する検索装置により暗号化に用いられる検索鍵とから、前記検索クエリを再暗号化して再暗号化キーワードを生成し前記索引を前記再暗号化キーワードで検索するサーバ装置により代理人再暗号化に用いられる変換鍵を生成する鍵生成手順と、
    前記複数の暗号文と、前記索引生成手順により生成された索引と、前記鍵生成手順により生成された変換鍵とを前記サーバ装置に送信する登録手順と
    を実行させ
    前記索引生成手順は、前記1つ以上の暗号文に対応するキーワードを前記登録鍵で暗号化して得られた結果データに対し、第1変換処理と、前記第1変換処理とは異なる第2変換処理とを別々に実行し、前記第1変換処理を実行して得られた第1変換データを前記暗号化キーワードとして利用し、前記第2変換処理を実行して得られた第2変換データを、前記1つ以上の暗号文の組み合わせを一意に表す暗号文識別子で符号化して前記識別情報を生成する登録プログラム。
  10. コンピュータに、
    複数の暗号文と、1つ以上の暗号文に対応するキーワードを登録鍵で暗号化して暗号化キーワードを生成する登録装置が生成した、前記暗号化キーワードと前記1つ以上の暗号文を識別する識別情報とを含む索引と、前記登録装置が前記登録鍵と検索に用いるキーワードを暗号化して検索クエリを生成する検索装置により暗号化に用いられる検索鍵とから生成した、代理人再暗号化に用いられる変換鍵とを受信する第1手順と、
    前記第1手順により受信された複数の暗号文と索引と変換鍵とをデータベースに登録する管理手順と、
    前記検索クエリを受信する第2手順と、
    前記第2手順により受信された検索クエリを前記管理手順により登録された変換鍵で再暗号化して再暗号化キーワードを生成し、前記管理手順により登録された索引を前記再暗号化キーワードで検索し、検索結果として前記暗号化キーワードが得られれば、前記索引から前記識別情報を取得し、前記管理手順により登録された複数の暗号文の中から、前記識別情報によって識別される暗号文を抽出する検索手順と、
    前記検索手順により抽出された暗号文を前記検索装置に送信する送信手順と
    を実行させ
    前記検索手順は、前記検索クエリを再暗号化して得られた結果データに対し、第1変換処理と、前記第1変換処理とは異なる第2変換処理とを別々に実行し、前記第1変換処理を実行して得られた第1変換データを前記再暗号化キーワードとして利用し、前記検索結果として前記暗号化キーワードが得られれば、前記第2変換処理を実行して得られた第2変換データを前記識別情報で復号して、前記1つ以上の暗号文の組み合わせを一意に表す暗号文識別子を取得し、前記複数の暗号文の中から、前記暗号文識別子によって表される組み合わせに含まれる暗号文を抽出するサーバプログラム。
JP2019534903A 2018-05-08 2018-05-08 登録装置、サーバ装置、秘匿検索システム、秘匿検索方法、登録プログラムおよびサーバプログラム Active JP6599066B1 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2018/017792 WO2019215818A1 (ja) 2018-05-08 2018-05-08 登録装置、サーバ装置、秘匿検索システム、秘匿検索方法、登録プログラムおよびサーバプログラム

Publications (2)

Publication Number Publication Date
JP6599066B1 true JP6599066B1 (ja) 2019-10-30
JPWO2019215818A1 JPWO2019215818A1 (ja) 2020-05-28

Family

ID=68383309

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019534903A Active JP6599066B1 (ja) 2018-05-08 2018-05-08 登録装置、サーバ装置、秘匿検索システム、秘匿検索方法、登録プログラムおよびサーバプログラム

Country Status (5)

Country Link
US (1) US11831769B2 (ja)
JP (1) JP6599066B1 (ja)
CN (1) CN112042150B (ja)
DE (1) DE112018007433T5 (ja)
WO (1) WO2019215818A1 (ja)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE112020005557B4 (de) 2020-01-14 2023-09-28 Mitsubishi Electric Corporation Registrierungseinrichtung, suchoperationseinrichtung, datenverwaltungseinrichtung, registrierungsprogramm, suchoperationsprogramm und datenverwaltungsprogramm
JP7016458B2 (ja) * 2020-01-14 2022-02-04 三菱電機株式会社 秘匿検索システム、秘匿検索方法、及び、秘匿検索プログラム
WO2022153394A1 (ja) * 2021-01-13 2022-07-21 三菱電機株式会社 秘匿検索システムおよび秘匿検索方法
CN113434739B (zh) * 2021-06-08 2022-03-22 暨南大学 一种云环境下前向安全的多用户动态对称加密检索方法
DE112021007711T5 (de) 2021-07-27 2024-03-21 Mitsubishi Electric Corporation Suchausführungseinrichtung, suchausführungsverfahren, suchausführungsprogramm, und durchsuchbares verschlüsselungssystem
JP7486688B2 (ja) 2022-04-13 2024-05-17 三菱電機株式会社 暗号文変換システム、暗号文変換方法、及び暗号文変換プログラム
WO2023199436A1 (ja) 2022-04-13 2023-10-19 三菱電機株式会社 暗号文変換システム、暗号文変換方法、及び暗号文変換プログラム

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130046974A1 (en) * 2011-08-16 2013-02-21 Microsoft Corporation Dynamic symmetric searchable encryption
CN104394155A (zh) * 2014-11-27 2015-03-04 暨南大学 可验证完整性和完备性的多用户云加密关键字搜索方法
US20160191544A1 (en) * 2014-12-29 2016-06-30 Samsung Electronics Co., Ltd. User terminal, service providing apparatus, driving method of user terminal, driving method of service providing apparatus, and encryption indexing-based search system

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101593196B (zh) 2008-05-30 2013-09-25 日电(中国)有限公司 用于快速密文检索的方法、装置和系统
US9251097B1 (en) * 2011-03-22 2016-02-02 Amazon Technologies, Inc. Redundant key management
KR20130085491A (ko) 2011-12-09 2013-07-30 한국전자통신연구원 인덱스 검증과 추적이 가능한 다자간 환경에서의 검색 가능 암호 시스템 및 방법
JP5651609B2 (ja) 2012-01-23 2015-01-14 日本電信電話株式会社 検索可能暗号システム、検索装置、計算装置、及びプログラム
WO2013111284A1 (ja) * 2012-01-25 2013-08-01 三菱電機株式会社 データ検索装置、データ検索方法、データ検索プログラム、データ登録装置、データ登録方法、データ登録プログラムおよび情報処理装置
JP5670365B2 (ja) * 2012-01-26 2015-02-18 日本電信電話株式会社 暗号文検索システム、検索情報生成装置、検索実行装置、検索要求装置、暗号文検索方法、検索情報生成方法、検索実行方法、検索要求方法、およびプログラム
US9904788B2 (en) * 2012-08-08 2018-02-27 Amazon Technologies, Inc. Redundant key management
IN2014CH00681A (ja) 2014-02-13 2015-08-14 Infosys Ltd
JP6348004B2 (ja) * 2014-06-30 2018-06-27 Kddi株式会社 暗号化データ管理システム、プロキシサーバ、暗号化データ管理方法およびコンピュータプログラム
WO2016063344A1 (ja) 2014-10-21 2016-04-28 三菱電機株式会社 サーバ装置及び検索システム及び端末装置及び検索方法及びサーバプログラム及び端末プログラム
JP6419633B2 (ja) 2015-04-09 2018-11-07 株式会社日立ソリューションズ 検索システム
US9894042B2 (en) 2015-07-24 2018-02-13 Skyhigh Networks, Inc. Searchable encryption enabling encrypted search based on document type
JP6592301B2 (ja) 2015-08-10 2019-10-16 Kddi株式会社 匿名化装置、検索装置、方法及びプログラム
CN105743888A (zh) * 2016-01-22 2016-07-06 河南理工大学 一种基于关键字搜索的代理重加密方案
US10686827B2 (en) * 2016-04-14 2020-06-16 Sophos Limited Intermediate encryption for exposed content
KR102449816B1 (ko) * 2016-03-25 2022-10-04 삼성전자주식회사 암호화 및 검색 장치 및 그 방법
CN110337649B (zh) * 2016-12-30 2023-10-31 罗伯特·博世有限公司 用于搜索模式未察觉的动态对称可搜索加密的方法和系统

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130046974A1 (en) * 2011-08-16 2013-02-21 Microsoft Corporation Dynamic symmetric searchable encryption
CN104394155A (zh) * 2014-11-27 2015-03-04 暨南大学 可验证完整性和完备性的多用户云加密关键字搜索方法
US20160191544A1 (en) * 2014-12-29 2016-06-30 Samsung Electronics Co., Ltd. User terminal, service providing apparatus, driving method of user terminal, driving method of service providing apparatus, and encryption indexing-based search system

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
LEE, S.-H. AND LEE, I.-Y.: "A Study of Practical Proxy Reencryption with a Keyword Search Scheme considering Cloud Storage Struc", THE SCIENTIFIC WORLD JOURNAL, vol. 2014, JPN6019033269, 12 February 2014 (2014-02-12), pages 1 - 10, XP055651747, ISSN: 0004105643, DOI: 10.1155/2014/615679 *
POPA, R. A. AND ZELDOVICH, N.: "Multi-Key Searchable Encryption", MULTI-KEY SEARCHABLE ENCRYPTION, vol. Report 2013/508, JPN6019033268, August 2013 (2013-08-01), pages 1 - 18, XP061008020, ISSN: 0004105642 *

Also Published As

Publication number Publication date
US20200412536A1 (en) 2020-12-31
JPWO2019215818A1 (ja) 2020-05-28
DE112018007433T5 (de) 2020-12-31
CN112042150A (zh) 2020-12-04
CN112042150B (zh) 2024-02-23
US11831769B2 (en) 2023-11-28
WO2019215818A1 (ja) 2019-11-14

Similar Documents

Publication Publication Date Title
JP6599066B1 (ja) 登録装置、サーバ装置、秘匿検索システム、秘匿検索方法、登録プログラムおよびサーバプログラム
JP6941183B2 (ja) データのトークン化
JP5985123B1 (ja) 秘匿検索システム、管理装置、秘匿検索方法及び秘匿検索プログラム
US10361840B2 (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
US8694467B2 (en) Random number based data integrity verification method and system for distributed cloud storage
EP2665052A1 (en) Data processing device and data archiving device
JP2014002365A (ja) プライバシーを保護することができる暗号化データの問い合わせ方法及びシステム
WO2019142268A1 (ja) 登録装置、検索操作装置、データ管理装置、登録プログラム、検索操作プログラムおよびデータ管理プログラム
WO2021129470A1 (zh) 基于多项式完全同态的二进制数据加密系统及方法
CN112740615A (zh) 多方计算的密钥管理
WO2022137668A1 (ja) データファイル暗号化送受信システム及びデータファイル暗号化送受信方法
CN111555880A (zh) 数据碰撞方法、装置、存储介质及电子设备
JPWO2015107641A1 (ja) 暗号システム、鍵生成装置及び再暗号化装置
US20210081562A1 (en) Data processing apparatus, data processing method, and computer readable medium
US11902418B2 (en) Registration device, search operation device, and data management device
CN114036541A (zh) 一种复合加密存储用户私密内容的应用方法
WO2015107561A1 (ja) 検索システム、検索方法および検索プログラム
KR100919824B1 (ko) 데이터 암호화 장치와 이를 이용한 암호화 방법
WO2024142343A1 (ja) 登録要求装置、検索要求装置、データ管理装置、秘匿検索システム、登録要求方法、登録要求プログラム、検索要求方法、検索要求プログラム、データ管理方法及びデータ管理プログラム
TWI789115B (zh) 雲端服務的加密系統及加密方法
CN116074110B (zh) 一种用于实现云环境中加密文件共享的方法、系统、设备及介质
JP6918253B2 (ja) 秘匿検索システムおよび秘匿検索方法
US11811741B2 (en) Information processing system and information processing method
Hanash Homomorphic encryption of text documents
Rezapour et al. Efficient common prefix search on encrypted data as an additional service on the top of the storage providers

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190625

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190625

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20190625

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20190820

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20191001

R150 Certificate of patent or registration of utility model

Ref document number: 6599066

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