JP6208586B2 - 検索可能暗号処理システムおよび検索可能暗号処理方法 - Google Patents

検索可能暗号処理システムおよび検索可能暗号処理方法 Download PDF

Info

Publication number
JP6208586B2
JP6208586B2 JP2014005718A JP2014005718A JP6208586B2 JP 6208586 B2 JP6208586 B2 JP 6208586B2 JP 2014005718 A JP2014005718 A JP 2014005718A JP 2014005718 A JP2014005718 A JP 2014005718A JP 6208586 B2 JP6208586 B2 JP 6208586B2
Authority
JP
Japan
Prior art keywords
data
index
concealment
plaintext
search
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
JP2014005718A
Other languages
English (en)
Other versions
JP2015135541A (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.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2014005718A priority Critical patent/JP6208586B2/ja
Priority to US15/111,747 priority patent/US10489604B2/en
Priority to EP15737151.9A priority patent/EP3096245B1/en
Priority to PCT/JP2015/050736 priority patent/WO2015108052A1/ja
Publication of JP2015135541A publication Critical patent/JP2015135541A/ja
Application granted granted Critical
Publication of JP6208586B2 publication Critical patent/JP6208586B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6227Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database where protection concerns the structure of data, e.g. records, types, queries
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • G06F16/3331Query processing
    • G06F16/334Query execution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/35Clustering; Classification
    • 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/008Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols involving homomorphic encryption
    • 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

Landscapes

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

Description

本発明は、検索可能暗号処理システムおよび検索可能暗号処理方法に関するものであり、具体的には、サーバ/クライアントモデルにおいて、サーバが、クライアントの要求に従って、暗号化データを復号せずに、預託された暗号化データを検索する、検索処理システムの技術に関する。
サーバ/クライアントモデルにおいて、クライアントがサーバにデータを預託しながらも、該当サーバにおける預託データの情報漏洩を防ぐ技術として、例えば、クライアントの要求に従い、暗号化データを復号せずに、かつ、ペアリング等の計算負荷の重い演算を用いずに、預託された暗号化データを高速に検索する検索処理技術(特許文献1参照)などが提案されている。
この技術においては、平文と暗号文が一対一の単純な対応関係を有する決定的暗号化方式よりも安全な、平文と暗号文が一対mの複雑な対応関係を有する確率的暗号化方式を採用している。このように、よりセキュアな暗号化方式の下、暗号化データの復号を伴わない検索が可能となるため、データ預託先たるサーバでの情報漏洩を防ぎつつ、該当サーバにおける預託データの検索をセキュアに行うことが可能となる。
WO2012/077541号公報
しかしながら、上述の如き従来技術においては、暗号化された検索クエリに対応する暗号化データを、預託された全てのデータ中で逐次検索する方式となっており、サーバでのデータ数が大規模な暗号化データ群に対する検索処理に関しては問題が残されている。具体的には、暗号化データの数と検索回数が比例することになるため、例えば、1億件の暗号化データを検索母集団とする場合、1億回の検索動作が必要となるなど、預託データ数が大規模になるほど、検索処理の手順が増大し、処理に要する時間も膨大なものとなってしまう問題がある。従って、データ数が大規模な暗号化データに対し従来技術による検索を実行するとしても、現実的な時間(例えば、1秒以内)で検索処理を完了することは困難である。
そこで本発明の目的は、検索クエリを暗号化したまま暗号化データの検索を行うシステムにおいて、大規模データに対する検索処理を高速化可能とする技術を提供することにある。
上記課題を解決する本発明の検索可能暗号処理システムは、他装置と通信する通信装置と、検索対象データとして、平文データを秘匿化した秘匿データと、平文データを分類する平文インデックスを秘匿化した秘匿化インデックスとを格納した記憶装置と、検索クライアントより、平文クエリを秘匿化した秘匿データ用クエリ、および平文インデックスを秘匿化した秘匿化インデックス用クエリを受信し、所定の検索可能暗号技術に基づいて、前記秘匿化インデックス用クエリに該当する秘匿化インデックスを前記記憶装置において検索し、該当秘匿化インデックスに分類された秘匿データ群を対象として、前記秘匿データ用クエリに該当する秘匿データを検索し、当該検索した秘匿データを前記検索クライアントに返信する処理を実行する演算装置と、を備えるサーバを含むことを特徴とする。
また、本発明の検索可能暗号処理方法は、他装置と通信する通信装置と、検索対象データとして、平文データを秘匿化した秘匿データと、平文データを分類する平文インデックスを秘匿化した秘匿化インデックスとを格納した記憶装置を備えた情報処理装置が、検索クライアントより、平文クエリを秘匿化した秘匿データ用クエリ、および平文インデックスを秘匿化した秘匿化インデックス用クエリを受信し、所定の検索可能暗号技術に基づいて、前記秘匿化インデックス用クエリに該当する秘匿化インデックスを前記記憶装置において検索し、該当秘匿化インデックスに分類された秘匿データ群を対象として、前記秘匿データ用クエリに該当する秘匿データを検索し、当該検索した秘匿データを前記検索クライアントに返信する処理を実行する、ことを特徴とする。
本発明によれば、検索クエリを暗号化したまま暗号化データの検索を行うシステムにおいて、大規模データに対する検索処理を高速化できる。
本実施形態の検索可能暗号処理システムを含むネットワーク構成図である。 本実施形態における登録クライアントの機能の概略を例示する図である。 本実施形態における検索クライアントの機能の概略を例示する図である。 本実施形態における管理サーバの機能の概略を例示する図である。 本実施形態におけるコンピュータのハードウェア構成例を示す図である。 本実施形態の登録クライアントと管理サーバとの間での処理手順の概要を示す図である。 本実施形態の検索クライアントと管理サーバとの間での処理手順の概要を示す図である。 本実施形態の平文インデックス、平文データ、平文データの識別子の例を示す図である。 本実施形態の秘匿化インデックス、秘匿データ、暗号化識別子の例を示す図である。 本実施形態の秘匿化インデックスの概要を示す図である。 本実施形態における検索可能暗号処理方法の処理手順例1を示すフロー図である。 本実施形態における検索可能暗号処理方法の処理手順例2を示すフロー図である。 本実施形態の秘匿データの概要を示す図である。 本実施形態における検索可能暗号処理方法の処理手順例3を示すフロー図である。 本実施形態の管理サーバの記憶部に格納される秘匿化インデックス、暗号化識別子、秘匿データ、暗号化識別子の例を示す図である。 本実施形態の管理サーバの記憶部に格納される秘匿化インデックスと暗号化識別子の関係例を示す図である。 本実施形態の秘匿データ用クエリの概要を示す図である。 本実施形態における検索可能暗号処理方法の処理手順例4を示すフロー図である。 本実施形態の秘匿化インデックス用クエリの概要を示す図である。 本実施形態における検索可能暗号処理方法の処理手順例5を示すフロー図である。 本実施形態における検索可能暗号処理方法の処理手順例6を示すフロー図である。 本実施形態における検索可能暗号処理方法の処理手順例7を示すフロー図である。 本実施形態における検索可能暗号処理方法の処理手順例8を示すフロー図である。 本実施形態における検索可能暗号処理方法の処理手順例9を示すフロー図である。 本実施形態における検索可能暗号処理方法の処理手順例10を示すフロー図である。
以下に本発明の実施形態について図面を用いて詳細に説明する。図1は、本実施形態の検索可能暗号処理システム10を含むネットワーク構成図である。図1に示す検索可能暗号処理システム10は、検索クエリを暗号化したまま暗号化データの検索を行うシステムにおいて、大規模データに対する検索処理を高速化可能とするコンピュータシステムである。
図1にて示すように、検索可能暗号処理システム10は、登録クライアント100(Registration Client)と、検索クライアント200(Search Client)と、管理サーバ300(Management Server)とを備え、登録クライアント100と管理サーバ300、検索クライアント200と管理サーバ300は、ネットワーク400を介して相互に情報を送受信できるように構成されている。なお、図1における検索可能暗号処理システム10の構成では、登録クライアント100、検索クライアント200、および管理サーバ300を全て含む形態となっているが、検索可能暗号処理システム10の最小構成となる管理サーバ300のみ、または登録クライアント100と管理サーバ300のみ、といった構成で検索可能暗号処理システム10を成すとしてもよい。
ここで、本実施形態における登録クライアント100は、平文を秘匿化したデータ(以降、秘匿データと呼ぶ)と、平文を分類するインデックスを秘匿化したデータ(以降、秘匿化インデックスと呼ぶ)を管理サーバ300に送信して登録させる、データ登録用の送受信装置として機能する。また、検索クライアント200は、秘匿化した平文クエリ(以降、秘匿化クエリと呼ぶ)を管理サーバ300に送信し、管理サーバ300から返信される検索結果を受信する、検索用の送受信装置として機能する。また、管理サーバ300は、上述の登録クライアント100から送信されてくる秘匿データと秘匿化インデックスを記憶し、また検索クライアント200の要求に応じて秘匿データを検索する送受信装置として機能する。
続いて、本実施形態の検索可能暗号処理システム10を構成する各装置の機能構成について説明する。上述したように、以下に説明する機能は、例えば検索可能暗号処理システム10を構成する各装置が備えるプログラムを実行することで実装される機能と言える。
図2は本実施形態における登録クライアント100の機能の概略を例示する図である。本実施形態の検索可能暗号処理システム10を構成する登録クライアント100は、制御部110と、記憶部120と、入力部101と、出力部102と、通信部103とを備えている。
このうち記憶部120には、入力部101を介して受け付けた平文データ131と平文データの識別子138が記憶されている。また記憶部120には、平文データ131から作成したる平文インデックス133も記憶されている。また記憶部120には、情報セキュリティの観点から、登録クライアント100が秘密に管理すべきデータである、乱数用秘密鍵151や、データ暗号化鍵152、マスク用秘密鍵153、および複数個のインデックス用秘密鍵155も記憶されている。また記憶部120には、平文データ131や平文インデックス133に基づいて秘匿データや秘匿化インデックスを作成する際に用いられるデータである、パラメータ160も記憶されている。
また、制御部110は、全体処理部111と、暗号化部112と、擬似乱数生成部114と、圧縮関数部115と、準同型関数部116と、基本演算部117とを備えている。このうち全体処理部111は、登録クライアント100における全ての処理を制御するものとなる。例えば、この全体処理部111は、入力部101を介して受け付けた情報を、記憶部120において平文データ131として記憶する処理を行う。また、全体処理部111は、平文データ131を出力部102に表示する処理を行う。また、全体処理部111は、記憶部120に記憶している平文データ131を読み込み、それぞれ、暗号化部112と、擬似乱数生成部114と、圧縮関数部115と、準同型関数部116と、基本演算部117とに入力し、出力されたデータを、記憶部120に秘匿データとして記憶する処理を行う。また、全体処理部111は、上述の秘匿データを通信部103を介して管理サーバ300に送信する処理を行う。
また、暗号化部112は、入力されたデータに対する暗号化の処理を行う。暗号化部112は、例えば、全体処理部111から入力された平文データ131と乱数用秘密鍵151に基づいて暗号化データを出力する処理を行う。この暗号化部112は、例えば、標準的な暗号化アルゴリズムの実装により実現される。
また、擬似乱数生成部114は、擬似乱数を出力する処理を行う。擬似乱数生成部114は、例えば、標準的な擬似乱数生成アルゴリズムの実装により実現される。本実施形態における擬似乱数生成部114は、全体処理部111から入力された乱数用秘密鍵151を用い、擬似乱数を出力する。なお、乱数用秘密鍵151のデータ値は、疑似乱数生成部114において擬似乱数を生成するたびに新しいデータ値に更新される。
また、圧縮関数部115は、入力されたデータについて不可逆変換な圧縮をしたデータを出力する処理を行う。この圧縮関数部115は、例えば、全体処理部111から入力されたデータを固定長の別のデータに変換する。例えば、標準的な暗号ハッシュ関数アルゴリズムであるSHA−256関数の実装により、任意長の入力データを256ビットのデータへ変換する圧縮関数部115が実現できる。
また、準同型関数部116は、入力データに対し、準同型性を有する関数の出力結果をデータとして出力する処理を行う。ただし、準同型を有する関数(以降、準同型関数と呼ぶ)とは、関数Fと、入力変数x、入力変数yに対し、
F(x・y)=F(x)?F(y)−−−−(数1)
が成り立つ関数を指す。ただし、“・”と“?”は、演算記号を表わし、加算用の演算記号+、乗算用の演算記号*、ビット毎の排他的論理和であるXOR(eXclusive OR)演算用の演算記号xor等が入る。
このとき、上述の[数1]において、“・”と“?”にXOR演算記号xorが入る場合、即ち以下の[数2]が成り立つ。
F(x xor y)=F(x)xor F(y)−−−−(数2)
また、基本演算部117は、加算、減算、比較算や、AND、OR、XOR等の基本的な算術演算に関する処理を行う。例えば、基本演算部117は、全体処理部111から入力された2つのデータのビット毎の排他的論理和であるXOR演算や、比較演算の等号成立または不成立の検証結果を、データとして出力する処理を行う。
以上に示した登録クライアント100は、例えば、図5にて示すように、演算装置たるCPU(Central Processing Unit)501と、メモリ502と、HDD(Hard Disk Drive)等の外部記憶装置503と、CD(Compact Disk)やDVD(Digital Versatile Disk)等の可搬性を有する記憶媒体508に対して情報を読み書きする読書装置507と、キーボードやマウス等の入力装置506と、ディスプレイ等の出力装置505と、ネットワーク400に接続するためのNIC(Network Interface Card)等の通信装置504と、これらを連結するシステムバス等の内部通信線(システムバスという)509と、を備えた一般的なコンピュータ500で実現できる。
例えば、記憶部120は、CPU501がメモリ502または外部記憶装置503を利用することにより実現可能である。また、制御部110と制御部110に含まれる各処理部は、外部記憶装置503に記憶されている所定のプログラムをメモリ502にロードしてCPU501で実行することで実現可能である。また、入力部101は、CPU501が入力装置506を利用することで実現可能であり、出力部102は、CPU501が出力装置505を利用することで実現可能である。また、通信部103は、CPU501が通信装置504を利用することで実現可能である。
上述した所定のプログラムは、読書装置507を介して記憶媒体508から、あるいは、通信装置504を介してネットワーク400から、外部記憶装置503に記憶(ダウンロード)され、必要なタイミングでメモリ502上にロードされてCPU501により実行されるとしてもよい。また、所定のプログラムは、読書装置507を介して記憶媒体508から、あるいは通信装置504を介してネットワーク400から、メモリ502上に直接ロードされ、CPU501により実行されるようにしてもよい。
続いて、検索クライアント200について説明する。図3は本実施形態における検索クライアント200の機能の概略を例示する図である。図示するように、検索クライアント200は、制御部210と、記憶部220と、入力部201と、出力部202と、通信部203とを備えている。
このうち記憶部220は、登録クライアント100の記憶部120で保持するものと同様の働きをする、乱数用秘密鍵251や、秘匿データや秘匿化インデックスを作成する際に用いられるデータであるパラメータ260も記憶されている。また記憶部220には、データの秘匿化に用いるデータ暗号化鍵252と、マスク用秘密鍵253、データ復号化鍵258、関数値暗号化鍵254、秘密鍵暗号化鍵257、クエリ暗号化鍵259も記憶される。
また制御部210は、全体処理部211と、暗号化部212と、復号化部213と、擬似乱数生成部214と、圧縮関数部215と、準同型関数部216と、基本演算部217とを備えている。
このうち全体処理部211は、上述した登録クライアント100の全体処理部111と同様、検索クライアント200における全ての処理を制御する。
また、暗号化部212は、上述した登録クライアント100の暗号化部112と同様、入力されたデータの暗号化データを出力する処理を行う。
また、復号化部213は、入力されたデータを用い、暗号化データを復号する処理を行う。この復号化部213は、例えば、標準的な復号化アルゴリズムの実装により実現される。
また、擬似乱数生成部214は、上述した登録クライアント100の擬似乱数生成部114と同様、擬似乱数を出力する処理を行う。また、圧縮関数部215は、上述した登録クライアント100の圧縮関数部115と同様、入力されたデータについて不可逆変換な圧縮をしたデータを出力する処理を行う。
また、準同型関数部216は、上述した登録クライアント100の準同型関数116同様、入力されたデータに対し、準同型性関数の出力結果をデータとして出力する処理を行う。また、基本演算部217は、上述した登録クライアント100の基本演算部117同様、基本的な算術演算に関する処理を行う。
以上に示した検索クライアント200は、登録クライアント100と同様、図5に示す一般的なコンピュータで実現できる。
続いて管理サーバ300について説明する。図4は本実施形態における管理サーバ300の機能の概略を例示する図である。図示するように、本実施形態における管理サーバ300は、制御部310と、記憶部320と、入力部301と、出力部302と、通信部303を備えている。
このうち記憶部320は、秘匿データ341、秘匿化インデックス342、関係表382、暗号化識別子381、関数値復号鍵354、および秘密鍵暗号化鍵356を記憶する。
また、制御部310は、全体処理部311と、復号化部313と、圧縮関数部315と、準同型関数部316と、基本演算部317を備えている。
このうち全体処理部311は、上述の登録クライアント100の全体処理部111と同様、管理サーバ300における全ての処理を制御する。また、復号化部313は、上述の検索クライアント200の復号化部213と同様、暗号化されたデータを復号する処理を行う。
また、圧縮関数部315は、上述の登録クライアント100の圧縮関数部115と同様、入力されたデータについて不可逆変換な圧縮をしたデータを出力する処理を行う。
また、準同型関数部316は、上述の登録クライアントの準同型関数部116と同様、入力されたデータに対し、準同型関数の出力結果をデータとして出力する処理を行う。
また、基本演算部317は、上述の登録クライアント100の基本演算部117と同様、基本的な算術演算に関する処理を行う。
以上に示した検索クライアント200は、登録クライアント同様、図5に示す一般的なコンピュータで実現できる。
ここで、本実施形態における検索可能暗号処理方法の概略について説明する。図6は本実施形態の登録クライアント100と管理サーバ300との間での処理手順の概要を示す図である。この場合、登録クライアント100は、入力部101においてユーザが入力した情報を平文データ131とし、この平文データ131の識別子138と共に記憶部120へ格納しているものとする。登録クライアント100は、上述の平文データ131を秘匿化して秘匿データを生成し、この秘匿データと平文データの識別子138の組を、通信部103によって、ネットワーク400経由で管理サーバ300に送信する。
一方、管理サーバ300は、通信部303により、秘匿データと平文データの識別子138を受信し、秘匿データのアドレスと平文データの識別子138の変換表すなわち関係表382を作成したのち、該当秘匿データと関係表382を記憶部320へ格納する。
また、登録クライアント100は、記憶部120に格納された平文インデックス133を秘匿化して秘匿化インデックスとし、また、平文データの識別子138を暗号化して暗号化識別子とし、これら秘匿化インデックスおよび暗号化識別子を、通信部103により、ネットワーク400経由で管理サーバ300に送信する。管理サーバ300は、秘匿化インデックスおよび暗号化識別子を受信し、記憶部320に格納する。
図7は本実施形態の検索クライアント200と管理サーバ300との間での処理手順の概要を示す図である。ここでは、検索クライアント200による要求に応じて実行される管理サーバ300での検索処理の概要について示している。ここで、検索クライアント200は、ユーザが入力した情報を平文クエリ241として記憶部120に記憶しているものとする。
検索クライアント200は、平文クエリ241に基づいて、秘匿データ用クエリと秘匿化インデックス用クエリを生成し、通信部103により、ネットワーク400経由で管理サーバ300に送信する。一方、管理サーバは、通信部303により、秘匿データ用クエリと秘匿化インデックス用クエリを受信し、記憶部320へ格納する。
また、管理サーバ300は、記憶部320に格納された秘匿化インデックスを用い、秘匿化インデックス用クエリに該当する秘匿化インデックスを探し出し、次に、秘匿データ用クエリに該当する秘匿データを検索し、検索結果に該当する秘匿データを、通信部303により、ネットワーク400経由で検索クライアント200に送信する。他方、検索クライアント200は、管理サーバ300から送信されてきた秘匿データを復号し、平文データを得ることになる。
ここで、平文データ、平文インデックス、および平文データの識別子、の間の関係について説明する。図8は、平文データと平文インデックスの関係の一例を示している。本実施形態における平文インデックスは、登録クライアント100によって、平文データとの関係が直接的または間接的に定義されおり、図8の例では、平文データのハッシュ値の最下位3ビットによって平文データをグループ分けするものとなっている。この場合、8種類の平文インデックス(2進表記で“000”から“111”まで8種)があり、平文インデックスの値によって最大n個の平文データ131がグループ分けされている。例えば、“000”の値を持つ平文インデックスにより、n個の平文データ(川嶋、長友、・・・、香川、吉田、本田)が1グループとして分類されている。同様に、“001”の値の平文インデックスにより、(n−2)個の平文データ(内田、前田、・・・、遠藤)がグループ分けされている。また、平文データの識別子138は、各平文データ131を指し示すid(またはデータアドレス)であり、例えば、平文データ“川嶋”の識別子は(1,1)、平文データ“長友”の識別子は(1,2)である。
なお、情報セキュリティの観点では、平文インデックスに対応する平文データ131の数が同じである方が望ましい。そのため登録クライアント100は、各平文インデックスに関して、全てn個の平文データが対応付けされるよう、n個より平文データ数が少ない平文インデックスに関して、乱数を生成して平文データまたは秘匿データとして追加するとしてもよい。その場合、平文インデックスに対応する平文データの数が一定になるため、平文インデックスの人気度が外部漏洩(平文データの数が多いほど検索対象となりやすく、その場合、インデックスに有用なデータが含まれていることを類推されやすい)せずに済む。もちろん、全て一律にn個の平文データが関連付けられるように追加する必要はなく、不均等に増加させても構わない。
また、登録クライアント100は、平文インデックスに対応付ける平文データとして乱数を追加するのではなく、例えば“川嶋”を3種類の平文インデックス“000”、“001”、“010”に関連付けるといったように、同一の平文データに複数の平文インデックスを関連付けるとしても構わない。但しこの場合、上述の平文データ“川嶋”は、平文インデックス“000”に該当するときのみ検索結果に反映されるものとする。
なお、登録クライアント100における平文インデックスの作成方法は、上述で例示したように、平文データをハッシュ関数に適用してハッシュ値を取得し、このハッシュ値の最下位3ビットをインデックスの値として採用する手法のみならず、例えば、ハッシュ値の任意桁のビットを用いてもよい。また、ハッシュ関数ではなく、別の関数を用いても良い。例えば、n−gramを用い、平文データを一定のデータ長で区切り、区切られたそのデータを平文インデックスとしてもよい。
続いて秘匿データ、秘匿化インデックス、および暗号化識別子の関係について説明する。図9は、平文データを秘匿化した秘匿データと、平文インデックスを秘匿化した秘匿化インデックスの関係の一例を示している。この場合、登録クライアント100において、例えば、平文インデックス“000”の値を秘匿化した秘匿化インデックスがI(1)であり、同様に平文インデックス“111”の値を秘匿化した秘匿化インデックスがI(8)である。また“川嶋”の値を持つ平文データを秘匿化した秘匿データがD(1,1)であり、同様に“本田”の値をもつ平文データを秘匿化した秘匿データがD(1,n)である。また登録クライアント100は、空欄の値を持つ平文データに関しては、秘匿データとして乱数を置く(これにより、秘匿化インデックス1つにつき、同数の秘匿データがグルーピングされているように見える)。また登録クライアント100は、各平文データの識別子を暗号化し、これを記憶部120に格納する。登録クライアント100は、例えば平文データの識別子(1,1)のアドレスを暗号化し、記憶部120に格納する。
続いて、登録クライアント100による秘匿化インデックスの構成手順について説明する。図10は本実施形態の秘匿化インデックスの概要を示す図である。また、図11は本実施形態における検索可能暗号処理方法の処理手順例1を示すフロー図である。この場合、登録クライアント100の全体処理部111は、記憶部120に記憶されているパラメータ160を読み込み、平文インデックス133に0値(バイナリ)をパディングし、平文インデックス133のサイズを調整する(s100)。また、全体処理部111は、サイズ調整後の平文インデックス133と、記憶部120から読み出したインデックス用暗号化鍵155とを暗号化部112へ入力する(s101)。
登録クライアント100の暗号化部112は、上述の全体処理部111から得た平文インデックス133を暗号化し、暗号化インデックスCを出力する(s102)。
また、登録クライアント100の全体処理部111は、記憶部120から乱数用秘密鍵151を読み出して擬似乱数生成部114に入力する(s103)。擬似乱数生成部114は、全体処理部111から入力された乱数用秘密鍵151を用い、擬似乱数Rを出力する(s104)。全体処理部111は、この擬似乱数Rを記憶部120に初期ベクトルIVとして記憶する。
続いて登録クライアント100の基本演算部117は、上述の暗号化インデックスCと擬似乱数Rを二つの入力とみなし、XORした結果である暗号化インデックスDを出力する(s105)。一方、全体処理部111は、暗号化インデックスDを記憶部120に格納する(s106)。このとき、暗号化インデックスC、擬似乱数R、暗号化インデックスDには、以下の[数3]が成り立つ。
D= C xor R−−−−(数3)
また、登録クライアント100の全体処理部111は、上述の擬似乱数Rを準同型関数部116に入力する(s107)。準同型関数部116は、入力された疑似乱数Rのハッシュ値について、準同型性を保有するデータの出力値である準同型関数値を出力する(s108)。なお、準同型関数をfuncとした場合、その入力である疑似乱数Rのハッシュ値H1、出力である準同型関数値Fには、以下の[数4]が成り立つ。
F= func(H1)−−−−(数4)
登録クライアント100の全体処理部111は、上述の準同型関数値Fを圧縮関数部115へ入力する(s109)。一方、圧縮関数部115は、準同型関数値Fを変換し、ハッシュ値H2を出力する(s110)。全体処理部111は、このハッシュ値H2を検索タグとみなし、記憶部120へ格納する(s111)。
また、登録クライアント100の全体処理部111は、パラメータ160を記憶部120から呼び出し、上述の準同型関数値Fと連結させたデータを、圧縮関数部115に入力する(s112)。この場合、圧縮関数部115は、連結された準同型関数値FとパラメータPAを変換し、ハッシュ値H3を出力する(s113)。圧縮関数をhashとした場合、パラメータPA、準同型関数値F、出力されるハッシュ値H3には、以下の[数5]が成り立つ。
H3= hash(F||PA)−−−−(数5)
この時、全体処理部111は、平文インデックス133の値に応じて、インデックス用秘密鍵155を取得する(s114)。基本的には、一つの平文インデックス133につき、同一のインデックス秘密鍵155を利用し、異なる値の平文インデックスには、異なるインデックスを利用する。
全体処理部111は、上述のハッシュ値H3に対し、記憶部120に格納されたインデックス用秘密鍵155をxorした値を、鍵埋込タグEとみなし、記憶部120へ格納する(s115)。このとき、インデックス用秘密鍵IK、ハッシュ値H3、鍵埋込タグEには、以下の[数6]が成り立つ。
E= IK xor H3−−−−(数6)
続いて登録クライアント100の全体処理部111は、上述までの処理で得た、暗号化インデックスD、検索タグH2、鍵埋込タグEを連結したデータを、秘匿化インデックスとし記憶部120に格納する(s116)。なお、上記の処理手順は、実行手順を変更してもよい。
続いて、暗号化識別子の構成方法について説明する。図12は本実施形態における検索可能暗号処理方法の処理手順例2を示すフロー図である。この場合、登録クライアント100の全体処理部111は、記憶部120に記憶されたパラメータ160を読み込み、平文データの識別子138に0値(バイナリ)をパディングし、データサイズを調整する(s120)。また、全体処理部111は、上述の平文データの識別子138と、記憶部120から読み出した例えばデータ暗号化鍵152を暗号化部112へ入力する(s121)。
一方、登録クライアント100の暗号化部112は、平文データの識別子138を暗号化してデータC’を出力する(s122)。また、全体処理部111は、このデータC’を暗号化識別子として記憶部120へ格納する(s123)。なお、上述のパディングに際しては、0値を書き込むだけでなく、他のパディング方法を実装してもよい。例えば、他の定数や、乱数を追加してもよい。
続いて登録クライアント100による秘匿データの構成方法について説明する。図13は本実施形態の秘匿データの概要を示す図である。また、図14は本実施形態における検索可能暗号処理方法の処理手順例3を示すフロー図である。
この場合、登録クライアント100の全体処理部111は、記憶部120に記憶されたパラメータ160を読み込み、平文データ131に0値(バイナリ)をパディングし、データサイズを調整し、このデータサイズ調整後の平文データ131と、記憶部120から読み出したデータ暗号化鍵152を暗号化部112へ入力する(s130)。
一方、登録クライアント100の暗号化部112は、上述のデータサイズ調整後の平文データ131を暗号化し、暗号化データC’を出力する(s131)。
また、登録クライアント100の全体処理部111は、記憶部120から乱数用秘密鍵151を読み出し、これを擬似乱数生成部114に入力する(s132)。他方、擬似乱数生成部114は、全体処理部111から入力された乱数用秘密鍵151を用い、擬似乱数を出力する(s133)。全体処理部111は、この擬似乱数を記憶部120にて初期ベクトルIVとして記憶する(s134)。
続いて登録クライアント100の全体処理部111は、上述の初期ベクトルIVとマスク用秘密鍵153を連結し、圧縮関数部115に入力する(s135)。一方、圧縮関数部115は、全体処理部111から入力された初期ベクトルIVとマスク用秘密鍵153を変換し、ハッシュ値H1’を出力する(s136)。このとき、ハッシュ値H1’は、圧縮関数の性質から、乱数とみなせる。
次に、基本演算部117は、上述の暗号化データC’とハッシュ値H1’を二つの入力とみなし、XORした結果である暗号化データD’を出力する(s137)。また、全体処理部111は、この暗号化データD’を記憶部120に格納する(s138)。このとき、暗号化データC’、ハッシュ値H1’、暗号化データD’には、以下の[数7]が成り立つ。
D’= C’ xor H1’−−−−(数7)
続いて登録クライアント100の全体処理部111は、上述のハッシュ値H1’を準同型関数部116に入力する(s139)。準同型関数部116は、全体処理部111から入力されたハッシュ値H1’について、準同型性を保有するデータの出力値である、準同型関数値を出力する(s140)。なお、準同型関数をfuncとした場合、その入力であるハッシュ値H1’、出力である準同型関数値F’には、以下の[数8]が成り立つ。
F’= func(H1’)−−−−(数8)
この場合、登録クライアント100の全体処理部111は、上述の準同型関数値F’を圧縮関数部115へ入力する(s141)。圧縮関数部115は、準同型関数値F’を変換し、ハッシュ値H2’を出力する(s142)。全体処理部111は、このハッシュ値H2’を検索タグとみなし、記憶部120へ格納する(s143)。
続いて登録クライアント100の全体処理部111は、上述までの処理で得た、初期ベクトルIV、暗号化データD’、検索タグH2’を連結したデータを秘匿データとし、記憶部120に格納する(s144)。なお、上記の処理手順は、処理手順を変更してもよい。また、パディングには、0値を書き込むだけでなく、他のパディング方法を実装してもよい。例えば、他の定数や、乱数を追加してもよい。
ここで、管理サーバ300が、上述までの処理で得た各種データの記憶部320の記憶領域での配置関係について説明する。図15に管理サーバ300の記憶部320に格納された、秘匿化インデックス342、暗号化識別子381、秘匿データ341、平文データの識別子と秘匿データ341のアドレスとの関係表382を示す。管理サーバ300は、上述のごとく登録クライアント100から得た、“I(1)”といった秘匿化インデックス342に、“E(1,1)”〜“E(1,n)”といった(該当する平文インデックスが分類する平文に関する)識別子暗号化識別子381を対応付けて記憶している。
一方、“E(1,1)”〜“E(1,n)”といった識別子暗号化識別子381のそれぞれとは、該当する平文インデックスが分類する平文を暗号化した、“D(1,1)”〜“D(1,n)”といった秘匿データ341を対応付けて記憶している。
この場合、関係表382においては、“E(1,1)”〜“E(1,n)”の暗号化前、つまり平文データの識別子“(1,1)”〜“(1,n)”のそれぞれは、該当平文データを起源する秘匿データ341、つまり“D(1,1)”〜“D(1,n)”の格納場所たるアドレス、“(1,1)”〜“(1,n)”と対応付けされている。このため、管理サーバ300は、秘匿データ341を記憶部320格納後、関係表382において、この秘匿データ341と組となる平文データの識別子138と同じ行に、該当秘匿データ341のアドレスを記入することとなる。
なお、図16にて示すように、階層化された秘匿化インデックス342と暗号化識別子381が対応付けされた関係も想定できる。この場合、秘匿化インデックス342において、例えば、平文データのハッシュ値の先頭ビット(例:2進表記で“000”のうち左端の“0”)に対応する“I(0)”を最上位階層とし、平文データのハッシュ値の2番目ビット(例:2進表記で“010”、“000”のうち中央の“1”または“0”、)に対応する“I(01)”、“I(00)”を中位階層とし、平文データのハッシュ値の最下位ビット(例:2進表記で“010”、“011”)に対応する“I(010)”または“I(011)”を最下位階層とし、すなわち、平文データの分類概念の大小に従った複数階層が構成されている。
また、登録クライアント100から得た、“I(010)”すなわち最下位階層の秘匿化インデックス342には、“E(1,1)”〜“E(1,n)”といった(該当する平文インデックスが分類する平文に関する)識別子暗号化識別子381を対応付けて記憶している。同様に、“I(011)”すなわち最下位階層の秘匿化インデックス342には、“E(2,1)”〜“E(2,n)”といった識別子暗号化識別子381を対応付けて記憶している。
一方、中位階層“I(01)”なる秘匿化インデックス342には、上述の“E(1,1)”〜“E(1,n)”、と、“E(2,1)”〜“E(2,n)”の各暗号化識別子381が対応付けて記憶されている。
従って、こうした階層化された秘匿インデックスが構成されている場合、管理サーバ300は、秘匿化インデックス用クエリに該当する秘匿化インデックスの検索を、記憶部320において、平文データのハッシュ値の先頭ビットが一致する秘匿化インデックス342を、複数階層のうち最上位階層の秘匿化インデックス中で検索して、該当秘匿化インデックス342を特定し、ここで特定した最上位階層の秘匿化インデックス342の下位にあたる中位階層の秘匿化インデックス中から、平文データのハッシュ値の先頭および2番目のビットが一致する秘匿化インデックス342を検索して特定し、ここで特定した中位位階層の秘匿化インデックス342の下位にあたる最下位階層の秘匿化インデックス中から、平文データのハッシュ値の全ビットが一致する秘匿化インデックス342を検索して特定し、該当秘匿化インデックス342に分類された秘匿データ群を対象として、秘匿データ用クエリに該当する秘匿データを検索し、当該検索した秘匿データを検索クライアント200に返信することができる。つまり、検索対象となるデータ群において総当たり的な検索を実行する必要が無く、検索の高速がより一層図れることになる。
続いて、検索クライアント200における秘匿データ用クエリの構成方法について説明する。図17は本実施形態の秘匿データ用クエリの概要を示す図である。また、図18は本実施形態における検索可能暗号処理方法の処理手順例4を示すフロー図である。
この場合、検索クライアント200の全体処理部211は、記憶部220に記憶されているパラメータ260を読み込み、平文クエリ241に0値(バイナリ)をパディングし、データサイズを調整し、この平文クエリ241と記憶部220から読み出したデータ暗号化鍵252を暗号化部212へ入力する(s150)。
次に、検索クライアント200の暗号化部212は、上述の全体処理部211から入力された平文クエリ241を暗号化し、秘匿データ用暗号化クエリC’’を出力する(s151)。
また、検索クライアント200の全体処理部211は、記憶部220から乱数用秘密鍵251を読み出し、これを擬似乱数生成部214に入力する(s152)。この時、擬似乱数生成部214は、全体処理部211から入力された乱数用秘密鍵151を用い、擬似乱数R’’を出力する(s153)。
続いて検索クライアント200の全体処理部211は、この擬似乱数R’’と、秘匿データ用暗号化クエリC’’を二つの入力とみなし、XORした結果である秘匿データ用暗号化クエリD’’を出力する(s154)。また、全体処理部211は、秘匿データ用暗号化クエリD’’を記憶部220に格納する(s155)。このとき、秘匿データ用暗号化クエリC’’、擬似乱数R’’、秘匿データ用暗号化クエリD’’には、以下の[数10]が成り立つ。
D’’= C’’ xor R’’−−−−(数10)
次に、検索クライアント200の全体処理部211は、上述の擬似乱数R’’を準同型関数部216に入力する(s156)。一方、準同型関数部216は、全体処理部211から入力された擬似乱数R’’について、準同型性を保有するデータの出力値である、準同型関数値を出力する(s157)。なお、準同型関数をfuncとした場合、その入力である擬似乱数R’’、出力である準同型関数値F’’には、以下の[数11]が成り立つ。
F’’= func(R’’)−−−−(数11)
続いて検索クライアント200の全体処理部211は、上述の準同型関数値F’’と、記憶部220から読み込んだ関数値暗号化鍵254を暗号化部212へ入力する(s158)。一方、暗号化部212は、準同型関数値F’’を暗号化し、暗号化されたデータH2’’を出力する(s159)。全体処理部211は、このデータH2’’を秘匿データ用検索タグクエリとみなし、記憶部220へ格納する(s160)。
続いて検索クライアント200の全体処理部211は、上述の秘匿データ用暗号化クエリD’’、秘匿データ用検索タグH2’’を連結したデータを、秘匿データ用クエリとし記憶部220に格納する(s161)。なお、上記の処理手順は、処理手順を変更してもよい。また、パディングには、0値を書き込むだけでなく、他のパディング方法を実装してもよい。例えば、他の定数や、乱数を追加してもよい。
次に、検索クライアント200における秘匿化インデックス用クエリの構成方法について説明する。図19は本実施形態の秘匿化インデックス用クエリの概要を示す図である。また、図20は本実施形態における検索可能暗号処理方法の処理手順例5を示すフロー図である。
この場合、検索クライアント200の全体処理部211は、平文クエリ241を圧縮関数215に入力し、最下位nビット(例:3ビット)を秘匿化インデックス用の平文クエリとみなし、記憶部220に格納する(s165)。また、全体処理部211は、平文クエリ241に0値(バイナリ)をパディングし、データサイズを調整する(s166)。以降の手順は、秘匿データ用クエリの構成手順と同様である。すなわち、検索クライアント200の全体処理部211は、擬似乱数R’’’等を作りながら、秘匿化インデックス用暗号化クエリD’’’、秘匿化インデックス用検索タグH2’’’を記憶部220に格納する(s167)。
また、検索クライアント200の全体処理部211は、秘匿化インデックス用暗号化クエリD’’’、秘匿化インデックス用検索タグH2’’’を連結したデータを秘匿化インデックス用クエリとし、記憶部220に格納する(s168)。なお、パディングには、0値を書き込むだけでなく、他のパディング方法を実装してもよい。例えば、他の定数や、乱数を追加してもよい。
次に、秘匿化インデックス用クエリに該当する秘匿化インデックスの検索方法について説明する。図21は本実施形態における検索可能暗号処理方法の処理手順例6を示すフロー図である。ここでは、管理サーバ300における、秘匿化インデックス用クエリを用いた、秘匿化インデックスの検索手順を示す。ここにおける管理サーバ300は、秘匿データ341、秘匿データ用クエリ、秘匿化インデックス342、秘匿化インデックス用クエリを用い、平文データと平文クエリのデータ値が同一であるかを検知し、同一である場合は、該当する秘匿データ341を探し出すこととなる。
この場合、管理サーバ300の全体処理部311は、検索クライアント200から受信した秘匿化インデックス用クエリから、秘匿化インデックス用検索タグクエリH2’’’を取得し、関数値復号化鍵354と共に、復号化部313へ入力して、出力された関数値F’’’を取得する(s200)。この関数値F’’’は、乱数R’’’と準同型関数Fを用い、以下の[数13]で表わされる。
F’’’=func(R’’’)−−−−(数13)
次に、管理サーバ300の全体処理部311は、上述の秘匿化インデックス用クエリから秘匿化インデックス用暗号化クエリD’’’を取り出し、更に、記憶部320における秘匿化インデックス342から暗号化インデックスDを取り出す(s201)。
続いて管理サーバ300の基本演算部317は、上述の秘匿化インデックス用暗号化クエリD’’’と暗号化インデックスDを入力として、その排他的論理和(XOR算)を計算し、以下の[数14]に沿って、出力結果を取得する(s202)。
D xor D’’’=(C xor R) xor (C’’’ xor R’’’)
−−−−(数14)
ここで、平文インデックスと平文クエリのデータ値が同一である場合、それらを暗号化したデータも値が等しいため、以下の[数15]が導ける。
D xor D’’’=R xor R’’’−−−−(数15)
即ち、乱数(R xor R’’)の情報のみが残る。この場合、管理サーバ300の全体処理部311は、上述の基本演算部317の出力結果を準同型関数部316に入力し、準同型関数部316の出力結果である関数値Yを取得する(s203)。このとき、関数値Yの値は以下の[数16]に従う。
Y=func(D xor D’’ )−−−−(数16)
続いて管理サーバ300の全体処理部311は、基本演算部317に上述の関数値F’’’と関数値Yを入力し、基本演算部317で計算された、その排他的論理和(XOR算)たる関数値Zを取得する(s204)。ここで、平文インデックスと平文インデックスのデータ値が同一である場合、即ち上述の[数15]が成り立つ場合、関数値Zには以下の[数17]が成り立つ。
Z = F’’’ xor Y
= func(R’’’) xor (func(D xor D’’ )
= func(R’’’) xor (func( R xor R’’’)
= func(Rn) xor func(R) xor func(R’’’)
= func(R’’’)
−−−−(数17)
次に、管理サーバ300の全体処理部311は、圧縮関数部315に上述の関数値Zを入力し、圧縮関数部315から出力されたデータをハッシュ値Hとして取得する(s205)。
また、管理サーバ300の全体処理部311は、上述のハッシュ値Hから、パラメータに記録されたビット長を取得し検索タグとする(s206)。例えば、図10にて示すように、最下位3ビットを抽出する。
続いて管理サーバ300の全体処理部311は、基本演算部317に上述の暗号化インデックスDと秘匿データの検索タグを入力する(s207)。一方、基本演算部317は上述の暗号化インデックスDと秘匿データの検索タグの比較を行い(s208)、同一であれば(s208:Y)、以下のステップs209の処理を行う。他方、異なる場合(s208:N)、基本演算部317は、処理を中断して、別の秘匿化インデックスと秘匿化インデックス用クエリとの検索処理を行うべく、処理を上述のステップs200に戻す。
管理サーバ300の全体処理部311は、パラメータPAを記憶部320から呼び出し、準同型関数値Fと連結したデータを圧縮関数部315に入力する(s209)。圧縮関数部315は、連結された準同型関数値FとパラメータPAを変換し、ハッシュ値Gを出力する(s210)。圧縮関数をhashとした場合、パラメータPA、準同型関数値F、出力されるハッシュ値Gには、以下の[数18]が成り立つ。
G= hash(F||PA)−−−−(数18)
続いて管理サーバ300の全体処理部311は、秘匿化インデックス342から、鍵埋込タグEを取得し、基本演算部317に、ハッシュ値Gと鍵埋込タグEとのxorを計算させる(s211)。このとき、以下の[数19]より、出力されるデータはインデックス用秘密鍵IKに該当するとき、ハッシュ値H3、鍵埋込タグEには、以下の[数19]が成り立つ。
E xor G
=hash(F||PA)xor( IK xor H3)
=hash(F||PA)xor( IK xor hash(F||PA))
=hash(F||PA)xor IK xor hash(F||PA)
= IK
−−−−(数19)
従って、平文インデックスと平文クエリのデータ値が同一である場合、管理サーバ300の全体処理部311は、インデックス用秘密鍵IKを取得できる(s212)。なお、上記の処理手順は、処理手順を変更してもよい。また、秘匿化インデックスが図16のごとく階層化されたものである場合、上述のステップs208の処理は、最初に、検索タグのビットのうち先頭1ビットを抽出し、ここで抽出したビットと、階層中の最上位階層の暗号化インデックスとの同一判定を行い、この判定で特定された所定暗号化インデックスの配下にあたる第二位階層の暗号化インデックス群に対し、検索タグのビットのうち先頭から2番目までの2ビットとの同一判定を行い、この判定で特定された所定暗号化インデックスの配下にあたる最下位階層の暗号化インデックス群に対し、検索タグの3ビットとの同一判定を行い、その結果を当該ステップs208の結果とする。この場合、当該ステップs208で“N”判定の結果、ステップ200へ処理が戻るのは、最上位階層から最下位階層までのいずれかの判定で、一致判定が得られなかった、すなわちビットと一致する暗号化インデックスが無かった場合に該当することになる。こうした階層化されたインデックス構造を用いた処理は、以降の検索処理に際しても同様に実行出来る。
次に、秘匿化インデックスに該当する秘匿データの検索方法について説明する。図22は本実施形態における検索可能暗号処理方法の処理手順例7を示すフロー図である。この場合、管理サーバ300の全体処理部311は、秘匿化インデックス用クエリに該当する、秘匿化インデックスに関連付けられた暗号化識別子381を取得し、記憶部320に格納する(s220)。例えば、図15に示した例の場合、I(1)が秘匿化インデックス用クエリに該当する場合、関連付けられた暗号化識別子であるE(1,1)、E(1,2)、・・・、E(1,n)を取得する。
続いて管理サーバ300の全体処理部311は、記憶部320に格納された暗号化識別子381を取得し、インデックス用秘密鍵IKと共に、復号化部313へ入力し、平文データの識別子を取得する(s221)。
続いて管理サーバ300の全体処理部311は、関係表382を用い、平文データの識別子に該当する秘匿データ341のアドレスを参照し、該当秘匿データ341を取得する(s222)。例えば、図15で示した例の場合、平文データの識別子(1,1)が該当した場合、関係表832の同行にある秘匿データのアドレス&D(1,1)から、秘匿データD(1,1)を取得する。
次に、管理サーバ300における秘匿データによる検索方法について説明する。図23は本実施形態における検索可能暗号処理方法の処理手順例8を示すフロー図である。ここでは、管理サーバ300における、秘匿データと秘匿化インデックスを用いた、秘匿データの検索手順を示す。管理サーバ300は、秘匿データ341、秘匿データ用クエリ、秘匿化インデックス342、秘匿インデックス用クエリを用い、平文データと平文クエリのデータ値が同一であるかを検知し、同一である場合は、該当する秘匿データを探し出すこととなる。
この場合、管理サーバ300の全体処理部311は、検索クライアント200より受信した秘匿化インデックス用クエリから、秘匿化インデックス用検索タグクエリH2’’’を取得し、関数値復号化鍵354と共に、復号化部313へ入力し、出力された関数値F’’’を取得する(s230)。この関数値F’’’は、乱数R’’’と準同型関数Fを用い、以下の[数20]で表わされる。
F’’’=func(R’’’)−−−−(数20)
次に、管理サーバ300の全体処理部311は、秘匿化インデックス用クエリから秘匿化インデックス用暗号化クエリD’’’と、秘匿化インデックスから暗号化インデックスDを取り出す(s231)。また、管理サーバ300の基本演算部317は、秘匿化インデックス用暗号化クエリD’’’と暗号化インデックスDを入力として、その排他的論理和(XOR算)を計算し、以下の[数21]に沿って、出力結果を取得する(s232)。
D xor D’’’ = (C xor R) xor (C’’’ xor R’’’)
−−−−(数21)
ここで、平文インデックスと平文クエリのデータ値が同一である場合、それらを暗号化したデータも値が等しいため、以下の[数22]が導ける。
D xor D’’’ = R xor R’’’−−−−(数22)
即ち、乱数(R xor R’’)の情報のみが残る。
続いて管理サーバ300の全体処理部311は、基本演算部317の出力結果を準同型関数部316に入力し、準同型関数部316の出力結果である関数値Yを取得する(s233)。このとき、関数値Yの値は以下の[数23]に従う。
Y=func(D xor D’’)−−−−(数23)
続いて管理サーバ300の全体処理部311は、基本演算部317に関数値F’’’と関数値Yを入力し、基本演算部317による、その排他的論理和(XOR算)たる関数値Zを取得する(s234)。ここで、平文インデックスと平文インデックスのデータ値が同一である場合、即ち上述の[数22]が成り立つ場合、関数値Zには以下の[数24]が成り立つ。
Z = F’’’ xor Y
= func(R’’’) xor (func(D xor D’’ )
= func(R’’’) xor (func( R xor R’’’)
= func(Rn) xor func(R) xor func(R’’’)
= func(R’’’)
−−−−(数24)
次に、管理サーバ300の全体処理部311は、圧縮関数部315に関数値Zを入力し、出力されたデータをハッシュ値Hとして取得する(s235)。また、管理サーバ300の全体処理部311は、上述のハッシュ値Hから、パラメータに記録されたビット長を取得し検索タグとする(s236)。例えば、図10に示すように、最下位3ビットを抽出する。
また、管理サーバ300の全体処理部311は、基本演算部317に暗号化インデックスDと秘匿データの検索タグを入力し、両者の比較を行う(s237)。基本演算部317における比較結果が同一であれば(s237:Y)、以下のステップs238を実行する。他方、比較結果が異なる場合(s237:N)、全体処理部311は、処理を中断し、別の秘匿化インデックスと秘匿化インデックス用クエリとの検索処理を行うべく処理をステップs230に戻す。
管理サーバ300の全体処理部311は、パラメータPAを記憶部320から呼び出し、準同型関数値Fと連結したデータを圧縮関数部315に入力する(s238)。圧縮関数部315は、連結された準同型関数値FとパラメータPAを変換し、ハッシュ値Gを出力する(s239)。圧縮関数をhashとした場合、パラメータPA、準同型関数値F、出力されるハッシュ値Gには、以下の[数25]が成り立つ。
G= hash(F||PA)−−−−(数25)
次に、全体処理部311は、秘匿化インデックス342から鍵埋込タグEを取得し、基本演算部317に、ハッシュ値Gと鍵埋込タグEとのxorを計算させる(s240)。このとき、以下の[数26]より、出力されるデータはインデックス用秘密鍵IKに該当する。こののとき、ハッシュ値H3、鍵埋込タグEには、以下の[数26]が成り立つ。
E xor G
=hash(F||PA)xor( IK xor H3)
=hash(F||PA)xor( IK xor hash(F||PA))
=hash(F||PA)xor IK xor hash(F||PA)
= IK
−−−−(数26)
従って、平文インデックスと平文クエリのデータ値が同一である場合、管理サーバ300の全体処理部311は、インデックス用秘密鍵IKを取得できる(s241)。なお、上記の処理手順は、処理手順を変更してもよい。
次に、秘匿化インデックスに該当する秘匿データの検索方法について説明する。図24は本実施形態における検索可能暗号処理方法の処理手順例9を示すフロー図である。ここで示す管理サーバ300における、秘匿データ用クエリを用いた、秘匿データの検索手順は、秘匿化インデックス用クエリを用いた、秘匿化インデックスの検索手順と同様である。この場合、管理サーバ300は、検索クライアント200より受信した秘匿データ用クエリから、秘匿データ用検索タグクエリH2’’を取得し、関数値復号鍵と共に、復号化部313へ入力し、出力された関数値F’’を取得する(s250)。
また、管理サーバ300は、秘匿データ用暗号化クエリD’’と暗号化データD’のxorを計算し、その出力結果を準同型関数部316に入力する(s251)。また、管理サーバ300は、ここで出力された準同型関数値関数値F’’から、関数値F’’のxorの結果を圧縮関数部315に入力し、出力された結果が検索タグH2と等しければ、秘匿データは秘匿データ用クエリと等しいとみなす(s252)。なお、上記の処理手順は、秘匿化インデックス用クエリを用いた、秘匿化インデックスの検索手順と同様、処理手順を変更してもよい。
次に、秘匿データの復号方法について説明する。図25は本実施形態における検索可能暗号処理方法の処理手順例10を示すフロー図であり、検索クライアント200における秘匿データの復号方法の処理手順を示すものである。
この場合、検索クライアント200の全体処理部211は、記憶部220からマスク用秘密鍵253とデータ復号化鍵258を取得する(s300)。
また、検索クライアント200の全体処理部211は、管理サーバ300より返信されてきた秘匿データが含む初期ベクトルIVと、上述のステップs300で得たマスク用秘密鍵253を連結し、圧縮関数部215に入力する(s301)。この場合、圧縮関数部215は、全体処理部211から入力された上述の初期ベクトルIVとマスク用秘密鍵253を変換し、ハッシュ値H1’を出力する(s302)。
次に、検索クライアント200の全体処理部211は、管理サーバ300より得た秘匿データから暗号化データD’を取り出す(s303)。また、基本演算部211は、上述の暗号化データD’と、上述のステップs302で得たハッシュ値H1’を、二つの入力とみなし、XORした結果である暗号化データC’を出力する(s304)。
続いて全体処理部211は、上述の暗号化データD’を記憶部220に格納する(s305)。このとき、暗号化データD’、ハッシュ値H1’、暗号化データC’には、以下の[数27]が成り立つ。
C’= D’ xor H1’−−−−(数27)
また、全体処理部211は、上述の暗号化データC’とデータ復号化鍵258を復号化部213へ入力する(s306)。この場合、復号化部213は、上述の暗号化データC’を復号する(s307)。一方、全体処理部211は、記憶部220に記憶された、パラメータ260を読み込み、上述のステップs307で復号したデータから、パディングされた値を取り除き、平文データmを取得し、出力部202に表示する(s308)。
以上、本発明を実施するための最良の形態などについて具体的に説明したが、本発明はこれに限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能である。
こうした本実施形態によれば、検索クエリを暗号化したまま暗号化データの検索を行うシステムにおいて、大規模データに対する検索処理を高速化できる。
本明細書の記載により、少なくとも次のことが明らかにされる。すなわち、本実施形態の検索可能暗号処理システムにおける前記サーバの記憶装置は、前記秘匿化インデックスと対応付けて、当該秘匿化インデックスに分類される前記平文データを示す識別子を暗号化した暗号化識別子を更に格納し、前記平文データを示す識別子と、該当平文データを起源とする秘匿データのアドレスとの対応関係を示す関係表を更に格納しており、前記サーバの演算装置は、前記検索した該当秘匿化インデックスに対応する暗号化識別子を記憶装置にて取得し、当該取得した暗号化識別子を所定鍵で復号して平文データの識別子を取得し、当該平文データの識別子を前記関係表に照合して、前記平文データの識別子に対応する秘匿データのアドレスを特定し秘匿データを取得する処理を実行するものである、としてもよい。
これによれば、サーバにおいて、記憶装置内の秘匿データについて検索を行う際、該当秘匿データの格納場所すなわちアドレスを簡便に特定した上で、このアドレスに基づいて秘匿データを効率的に取得することが出来る。従って、全体の検索効率が改善される。
また、本実施形態の検索可能暗号処理システムにおける前記サーバの記憶装置において、各秘匿化インデックスに対応付けた前記暗号化識別子の数が、秘匿化インデックス間で同数であるとしてもよい。
これによれば、秘匿化インデックス間で秘匿データ数による相違は無くなり、例えば、検索処理の対象となる頻度が高い秘匿インデックスには秘匿データ数が多く、すなわち有用な情報が格納されている、などと類推される恐れが少なくなる。よって、検索処理のセキュア度が向上する。
また、本実施形態の検索可能暗号処理システムにおける前記サーバの演算装置は、前記検索クライアントより受信した前記秘匿化インデックス用クエリから秘密鍵情報を抽出し、前記秘密鍵情報により前記暗号化識別子を復号するものである、としてもよい。これによれば、暗号化識別子をセキュアかつ効率的に復号化出来る。
また、本実施形態の検索可能暗号処理システムにおける、前記サーバの記憶装置において、前記秘匿化インデックスが、前記平文データの分類概念の大小に従った複数階層で構成されており、前記サーバの演算装置は、前記秘匿化インデックス用クエリに該当する秘匿化インデックスの検索を、前記複数階層のうち最上位階層の秘匿化インデックスから下位階層の秘匿化インデックスに向けて順次実行し、当該検索で特定した最下位階層の秘匿化インデックスに分類された秘匿データ群を対象として、前記秘匿データ用クエリに該当する秘匿データを検索し、当該検索した秘匿データを前記検索クライアントに返信するものである、としてもよい。
これによれば、秘匿インデックスの分類に属さない、すなわち検索対象となりえない秘匿データについて検索処理から排除する処理を、上述の階層に沿って順次行うことで、検索処理の更なる効率化が図られるため、検索に要する時間も更に低減出来る。
また、本実施形態の検索可能暗号処理システムにおいて、他装置と通信する通信装置と、平文データを秘匿化して秘匿データを生成し、前記平文データを分類する平文インデックスを秘匿化して秘匿化インデックスを生成し、前記秘匿データおよび前記秘匿化インデックスを前記検索対象データとして前記サーバに送信する処理を実行する演算装置と、を備える登録クライアントを更に含むとしてもよい。
これによれば、サーバが記憶装置で保持する秘匿データおよび秘匿化インデックスを、より効率的に取得し、管理することが可能となる。
また、本実施形態の検索可能暗号処理システムにおいて、前記登録クライアントの演算装置は、前記平文データを所定アルゴリズムに適用して前記平文インデックスを生成するものであるとしてもよい。
これによれば、サーバが記憶装置で保持する秘匿化インデックスを、登録クライアントにおいて平文データに基づく平文インデックスから効率的に生成し、登録することが可能となる。
また、本実施形態の検索可能暗号処理システムにおいて、前記登録クライアントの演算装置は、前記平文データをハッシュ関数またはn−gramに適用して前記平文インデックスを生成するものであるとしてもよい。
これによれば、サーバが記憶装置で保持する秘匿化インデックスを、登録クライアントにおいて平文データに基づく平文インデックスから更に効率的かつセキュアに生成し、登録することが可能となる。
また、本実施形態の検索可能暗号処理システムにおいて、前記登録クライアントの演算装置は、前記平文データを示す識別子を暗号化して暗号化識別子を生成し、当該暗号化識別子を前記サーバに送信するものである、としてもよい。
これによれば、上述の暗号化識別子を保持するサーバにおいて、検索時に暗号化識別子と関係表とに基づいて秘匿データのアドレスを効率的に特定することが可能となり、全体の検索効率が改善される。
また、本実施形態の検索可能暗号処理システムにおいて、前記登録クライアントの演算装置は、前記暗号化識別子を、各秘匿化インデックスの間で同数だけ生成するものであるとしてもよい。
これによれば、秘匿化インデックス間で秘匿データ数による相違は無くなり、例えば、検索処理の対象となる頻度が高い秘匿インデックスには秘匿データ数が多く、すなわち有用な情報が格納されている、などと類推される恐れが少なくなる。よって、検索処理のセキュア度が向上する。
また、本実施形態の検索可能暗号処理システムにおいて、前記登録クライアントの演算装置は、前記秘匿化インデックスを、前記平文データの分類概念の大小に従って複数階層で構成し、当該複数階層の秘匿化インデックスおよび前記秘匿データを前記検索対象データとして前記サーバに送信するものであるとしてもよい。
これによれば、上述のサーバにおいて、秘匿インデックスの分類に属さない、すなわち検索対象となりえない秘匿データについて検索処理から排除する処理を、上述の階層に沿って順次行うことが可能となり、そのため検索処理の更なる効率化が図られ、検索に要する時間も更に低減出来る。
10 検索可能暗号処理システム
100 登録クライアント
101 入力部
102 出力部
103 通信部
110 制御部
111 全体処理部
112 暗号化部
114 擬似乱数生成部
115 圧縮関数部
116 準同型関数部
117 基本演算部
120 記憶部
131 平文データ
133 平文インデックス
138 平文データの識別子
151 乱数用秘密鍵
152 データ暗号化鍵
153 マスク用秘密鍵
155 インデックス用秘密鍵
160 パラメータ
200 検索クライアント
201 入力部
202 出力部
203 通信部
210 制御部
211 全体処理部
212 暗号化部
213 復号化部
214 擬似乱数生成部
215 圧縮関数部
216 準同型関数部
217 基本演算部
220 記憶部
241 平文クエリ
251 乱数用秘密鍵
252 データ暗号化鍵
253 マスク用秘密鍵
254 関数値暗号化鍵
257 秘密鍵暗号化鍵
258 データ復号化鍵
259 クエリ暗号化鍵
260 パラメータ
300 管理サーバ(サーバ)
301 入力部
302 出力部
303 通信部
310 制御部
311 全体処理部
313 復号化部
315 圧縮関数部
316 準同型関数部
317 基本演算部
320 記憶部
341 秘匿データ
342 秘匿化インデックス
354 関数値復号化鍵
356 秘密鍵暗号化鍵
381 暗号化識別子
382 関係表
400 ネットワーク
500 コンピュータ
501 CPU(Central Processing Unit)
502 メモリ
503 外部記憶装置
504 通信装置
505 出力装置
506 入力装置
507 読書装置
508 記憶媒体
509 内部通信線

Claims (12)

  1. 他装置と通信する通信装置と、
    検索対象データとして、平文データを秘匿化した秘匿データと、平文データを分類する平文インデックスを秘匿化した秘匿化インデックスとを格納した記憶装置と、
    検索クライアントより、平文クエリを秘匿化した秘匿データ用クエリ、および平文インデックスを秘匿化した秘匿化インデックス用クエリを受信し、所定の検索可能暗号技術に基づいて、前記秘匿化インデックス用クエリに該当する秘匿化インデックスを前記記憶装置において検索し、該当秘匿化インデックスに分類された秘匿データ群を対象として、前記秘匿データ用クエリに該当する秘匿データを検索し、当該検索した秘匿データを前記検索クライアントに返信する処理を実行する演算装置と、
    を備えるサーバを含むことを特徴とする検索可能暗号処理システム。
  2. 前記サーバの記憶装置は、
    前記秘匿化インデックスと対応付けて、当該秘匿化インデックスに分類される前記平文データを示す識別子を暗号化した暗号化識別子を更に格納し、
    前記平文データを示す識別子と、該当平文データを起源とする秘匿データのアドレスとの対応関係を示す関係表を更に格納しており、
    前記サーバの演算装置は、
    前記検索した該当秘匿化インデックスに対応する暗号化識別子を記憶装置にて取得し、当該取得した暗号化識別子を所定鍵で復号して平文データの識別子を取得し、当該平文データの識別子を前記関係表に照合して、前記平文データの識別子に対応する秘匿データのアドレスを特定し秘匿データを取得する処理を実行するものである、
    ことを特徴とする請求項1に記載の検索可能暗号処理システム。
  3. 前記サーバの記憶装置において、各秘匿化インデックスに対応付けた前記暗号化識別子の数が、秘匿化インデックス間で同数であることを特徴とする請求項2に記載の検索可能暗号処理システム。
  4. 前記サーバの演算装置は、
    前記検索クライアントより受信した前記秘匿化インデックス用クエリから秘密鍵情報を抽出し、前記秘密鍵情報により前記暗号化識別子を復号するものである、
    ことを特徴とする請求項3に記載の検索可能暗号処理システム。
  5. 前記サーバの記憶装置において、
    前記秘匿化インデックスが、前記平文データの分類概念の大小に従った複数階層で構成されており、
    前記サーバの演算装置は、
    前記秘匿化インデックス用クエリに該当する秘匿化インデックスの検索を、前記複数階層のうち最上位階層の秘匿化インデックスから下位階層の秘匿化インデックスに向けて順次実行し、当該検索で特定した最下位階層の秘匿化インデックスに分類された秘匿データ群を対象として、前記秘匿データ用クエリに該当する秘匿データを検索し、当該検索した秘匿データを前記検索クライアントに返信するものである、
    ことを特徴とする請求項4に記載の検索可能暗号処理システム。
  6. 他装置と通信する通信装置と、
    平文データを秘匿化して秘匿データを生成し、前記平文データを分類する平文インデックスを秘匿化して秘匿化インデックスを生成し、前記秘匿データおよび前記秘匿化インデックスを前記検索対象データとして前記サーバに送信する処理を実行する演算装置と、
    を備える登録クライアントを更に含むことを特徴とする請求項5に記載の検索可能暗号処理システム。
  7. 前記登録クライアントの演算装置は、
    前記平文データを所定アルゴリズムに適用して前記平文インデックスを生成するものであることを特徴とする請求項6に記載の検索可能暗号処理システム。
  8. 前記登録クライアントの演算装置は、
    前記平文データをハッシュ関数またはn−gramに適用して前記平文インデックスを生成するものであることを特徴とする請求項7に記載の検索可能暗号処理システム。
  9. 前記登録クライアントの演算装置は、
    前記平文データを示す識別子を暗号化して暗号化識別子を生成し、当該暗号化識別子を前記サーバに送信するものである、
    ことを特徴とする請求項8に記載の検索可能暗号処理システム。
  10. 前記登録クライアントの演算装置は、
    前記暗号化識別子を、各秘匿化インデックスの間で同数だけ生成するものであることを特徴とする請求項9に記載の検索可能暗号処理システム。
  11. 前記登録クライアントの演算装置は、
    前記秘匿化インデックスを、前記平文データの分類概念の大小に従って複数階層で構成し、当該複数階層の秘匿化インデックスおよび前記秘匿データを前記検索対象データとして前記サーバに送信するものであることを特徴とする請求項10に記載の検索可能暗号処理システム。
  12. 他装置と通信する通信装置と、検索対象データとして、平文データを秘匿化した秘匿データと、平文データを分類する平文インデックスを秘匿化した秘匿化インデックスとを格納した記憶装置を備えた情報処理装置が、
    検索クライアントより、平文クエリを秘匿化した秘匿データ用クエリ、および平文インデックスを秘匿化した秘匿化インデックス用クエリを受信し、所定の検索可能暗号技術に基づいて、前記秘匿化インデックス用クエリに該当する秘匿化インデックスを前記記憶装置において検索し、該当秘匿化インデックスに分類された秘匿データ群を対象として、前記秘匿データ用クエリに該当する秘匿データを検索し、当該検索した秘匿データを前記検索クライアントに返信する処理を実行する、
    ことを特徴とする検索可能暗号処理方法。
JP2014005718A 2014-01-16 2014-01-16 検索可能暗号処理システムおよび検索可能暗号処理方法 Active JP6208586B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2014005718A JP6208586B2 (ja) 2014-01-16 2014-01-16 検索可能暗号処理システムおよび検索可能暗号処理方法
US15/111,747 US10489604B2 (en) 2014-01-16 2015-01-14 Searchable encryption processing system and searchable encryption processing method
EP15737151.9A EP3096245B1 (en) 2014-01-16 2015-01-14 Retrievable cryptograph processing system and retrievable cryptograph processing method
PCT/JP2015/050736 WO2015108052A1 (ja) 2014-01-16 2015-01-14 検索可能暗号処理システムおよび検索可能暗号処理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014005718A JP6208586B2 (ja) 2014-01-16 2014-01-16 検索可能暗号処理システムおよび検索可能暗号処理方法

Publications (2)

Publication Number Publication Date
JP2015135541A JP2015135541A (ja) 2015-07-27
JP6208586B2 true JP6208586B2 (ja) 2017-10-04

Family

ID=53542941

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014005718A Active JP6208586B2 (ja) 2014-01-16 2014-01-16 検索可能暗号処理システムおよび検索可能暗号処理方法

Country Status (4)

Country Link
US (1) US10489604B2 (ja)
EP (1) EP3096245B1 (ja)
JP (1) JP6208586B2 (ja)
WO (1) WO2015108052A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020194478A (ja) * 2019-05-30 2020-12-03 株式会社日立ソリューションズ 異常検知システム、及び異常検知方法

Families Citing this family (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170185653A1 (en) * 2015-12-29 2017-06-29 Quixey, Inc. Predicting Knowledge Types In A Search Query Using Word Co-Occurrence And Semi/Unstructured Free Text
WO2017122326A1 (ja) 2016-01-14 2017-07-20 三菱電機株式会社 秘匿検索システム、秘匿検索方法及び秘匿検索プログラム
EP3392865B1 (en) 2016-01-15 2021-06-02 Mitsubishi Electric Corporation Encryption device, encryption method, and encryption program
US11451368B2 (en) 2016-06-02 2022-09-20 Nec Corporation Encrypted information matching device, encrypted information matching method, and recording medium having encrypted information matching program stored thereon
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
KR102290605B1 (ko) * 2016-12-20 2021-08-18 니폰 덴신 덴와 가부시끼가이샤 메시지 송신 시스템, 통신 단말, 서버 장치, 메시지 송신 방법 및 프로그램
US11507683B2 (en) 2017-01-20 2022-11-22 Enveil, Inc. Query processing with adaptive risk decisioning
US11196541B2 (en) 2017-01-20 2021-12-07 Enveil, Inc. Secure machine learning analytics using homomorphic encryption
US10790960B2 (en) 2017-01-20 2020-09-29 Enveil, Inc. Secure probabilistic analytics using an encrypted analytics matrix
US10693627B2 (en) 2017-01-20 2020-06-23 Enveil, Inc. Systems and methods for efficient fixed-base multi-precision exponentiation
US10880275B2 (en) 2017-01-20 2020-12-29 Enveil, Inc. Secure analytics using homomorphic and injective format-preserving encryption
US11777729B2 (en) 2017-01-20 2023-10-03 Enveil, Inc. Secure analytics using term generation and homomorphic encryption
US10754970B2 (en) * 2017-01-27 2020-08-25 International Business Machines Corporation Data masking
US10496631B2 (en) 2017-03-10 2019-12-03 Symphony Communication Services Holdings Llc Secure information retrieval and update
US11106740B2 (en) 2017-04-25 2021-08-31 Mitsubishi Electric Corporation Search device, search system, search method, and computer readable medium
JP6251437B1 (ja) * 2017-05-26 2017-12-20 義尚 神山 分類用符号生成ソフトウェアを記録した記録媒体
US20200151356A1 (en) * 2017-08-11 2020-05-14 Duality Technologies, Inc. System and method for fast and efficient searching of encrypted ciphertexts
DE112018007468T5 (de) * 2018-05-15 2021-01-21 Mitsubishi Electric Corporation Geheime-Suche-Einrichtung und Geheime-Suche-Verfahren
JP2020004199A (ja) * 2018-06-29 2020-01-09 ソニー株式会社 情報処理装置および情報処理方法
WO2020003821A1 (ja) 2018-06-29 2020-01-02 ソニー株式会社 情報処理システム、情報処理方法、および情報処理装置
US10958415B2 (en) * 2018-07-11 2021-03-23 Informatica Llc Method, apparatus, and computer-readable medium for searching polymorphically encrypted data
US10902133B2 (en) 2018-10-25 2021-01-26 Enveil, Inc. Computational operations in enclave computing environments
US10817262B2 (en) 2018-11-08 2020-10-27 Enveil, Inc. Reduced and pipelined hardware architecture for Montgomery Modular Multiplication
US11764940B2 (en) 2019-01-10 2023-09-19 Duality Technologies, Inc. Secure search of secret data in a semi-trusted environment using homomorphic encryption
CN110020554B (zh) * 2019-04-19 2021-04-13 腾讯科技(深圳)有限公司 基于区块链的信息处理方法、装置和计算机可读存储介质
WO2020235019A1 (ja) * 2019-05-21 2020-11-26 日本電信電話株式会社 情報処理装置、情報処理方法及びプログラム
CN110175463B (zh) * 2019-05-29 2023-07-07 华南师范大学 基于大数据搜索和函数变换的信息隐藏方法和机器人系统
CN110689349B (zh) * 2019-10-08 2023-07-11 深圳前海微众银行股份有限公司 一种区块链中的交易哈希值存储和搜索方法及装置
JP7384740B2 (ja) * 2020-04-27 2023-11-21 株式会社日立製作所 検索システム、検索装置、および検索方法
US11601258B2 (en) 2020-10-08 2023-03-07 Enveil, Inc. Selector derived encryption systems and methods
US11893128B2 (en) * 2021-06-14 2024-02-06 International Business Machines Corporation Data query against an encrypted database
CN114969128B (zh) * 2022-07-28 2022-10-28 翼方健数(北京)信息科技有限公司 一种基于安全多方计算技术的隐匿查询方法、系统和存储介质

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7519835B2 (en) * 2004-05-20 2009-04-14 Safenet, Inc. Encrypted table indexes and searching encrypted tables
WO2005119960A2 (en) * 2004-06-01 2005-12-15 Ben-Gurion University Of The Negev Research And Development Authority Structure preserving database encryption method and system
JP4722620B2 (ja) * 2005-08-19 2011-07-13 Kddi株式会社 暗号化文書検索方法および暗号化文書検索システム
KR100903599B1 (ko) * 2007-11-22 2009-06-18 한국전자통신연구원 내적을 이용한 암호화된 데이터 검색 방법 및 이를 위한단말 장치와 서버
CN101593196B (zh) * 2008-05-30 2013-09-25 日电(中国)有限公司 用于快速密文检索的方法、装置和系统
US20100146299A1 (en) * 2008-10-29 2010-06-10 Ashwin Swaminathan System and method for confidentiality-preserving rank-ordered search
JP5557683B2 (ja) * 2010-10-07 2014-07-23 三菱電機株式会社 情報検索装置および情報検索方法
JP5412414B2 (ja) 2010-12-08 2014-02-12 株式会社日立製作所 検索可能暗号処理システム
KR20120068524A (ko) * 2010-12-17 2012-06-27 한국전자통신연구원 데이터 관리 장치 및 데이터 관리 방법
JP5667969B2 (ja) * 2011-12-22 2015-02-12 株式会社日立製作所 検索処理システムおよび部分一致検索方法
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
JP5670365B2 (ja) * 2012-01-26 2015-02-18 日本電信電話株式会社 暗号文検索システム、検索情報生成装置、検索実行装置、検索要求装置、暗号文検索方法、検索情報生成方法、検索実行方法、検索要求方法、およびプログラム
US8832427B2 (en) * 2012-03-30 2014-09-09 Microsoft Corporation Range-based queries for searchable symmetric encryption

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020194478A (ja) * 2019-05-30 2020-12-03 株式会社日立ソリューションズ 異常検知システム、及び異常検知方法
JP7100607B2 (ja) 2019-05-30 2022-07-13 株式会社日立ソリューションズ 異常検知システム、及び異常検知方法

Also Published As

Publication number Publication date
EP3096245A1 (en) 2016-11-23
EP3096245B1 (en) 2020-12-02
US10489604B2 (en) 2019-11-26
WO2015108052A1 (ja) 2015-07-23
JP2015135541A (ja) 2015-07-27
EP3096245A4 (en) 2017-09-13
US20160335450A1 (en) 2016-11-17

Similar Documents

Publication Publication Date Title
JP6208586B2 (ja) 検索可能暗号処理システムおよび検索可能暗号処理方法
US9275250B2 (en) Searchable encryption processing system
JP6144992B2 (ja) 検索可能暗号処理システム及び方法
Salam et al. Implementation of searchable symmetric encryption for privacy-preserving keyword search on cloud storage
WO2012115031A1 (ja) 検索システム、検索システムの検索方法、情報処理装置、検索プログラム、対応キーワード管理装置および対応キーワード管理プログラム
JP6239213B1 (ja) 秘匿検索システム、秘匿検索方法及び秘匿検索プログラム
WO2024077948A1 (zh) 匿踪查询方法、装置和系统及存储介质
WO2019142268A1 (ja) 登録装置、検索操作装置、データ管理装置、登録プログラム、検索操作プログラムおよびデータ管理プログラム
US20190130125A1 (en) Searchable encryption processing system
EP3657475B1 (en) Data processing apparatus, data processing method, and data processing program
JP5670365B2 (ja) 暗号文検索システム、検索情報生成装置、検索実行装置、検索要求装置、暗号文検索方法、検索情報生成方法、検索実行方法、検索要求方法、およびプログラム
EP2286610B1 (en) Techniques for peforming symmetric cryptography
JP7024709B2 (ja) 暗号化情報照合装置、暗号化情報照合方法、及び、暗号化情報照合プログラム
JP6672451B2 (ja) 暗号化検索インデックスマージサーバ、暗号化検索インデックスマージシステム、及び暗号化検索インデックスマージ方法
JP6987330B1 (ja) 登録装置、検索操作装置、データ管理装置、登録プログラム、検索操作プログラムおよびデータ管理プログラム
WO2020003859A1 (ja) 情報処理装置および情報処理方法
JP7217836B1 (ja) データ管理装置、秘匿検索システム、秘匿検索方法、および、秘匿検索プログラム
JP6918253B2 (ja) 秘匿検索システムおよび秘匿検索方法
JP6351890B1 (ja) 検索装置、秘匿検索システム及び検索プログラム
Gong et al. VPSearch+: Achieving Verifiability for Privacy-Preserving Multi-keyword Search Without Client Storage Overhead
Zhou et al. Privacy Protection and Data Security for Big Data Encryption: A Review

Legal Events

Date Code Title Description
A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A712

Effective date: 20150826

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20161202

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170907

R150 Certificate of patent or registration of utility model

Ref document number: 6208586

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150