JP6381861B2 - 登録先決定装置、登録装置、秘匿検索システム、登録先決定方法及び登録先決定プログラム - Google Patents
登録先決定装置、登録装置、秘匿検索システム、登録先決定方法及び登録先決定プログラム Download PDFInfo
- Publication number
- JP6381861B2 JP6381861B2 JP2018518922A JP2018518922A JP6381861B2 JP 6381861 B2 JP6381861 B2 JP 6381861B2 JP 2018518922 A JP2018518922 A JP 2018518922A JP 2018518922 A JP2018518922 A JP 2018518922A JP 6381861 B2 JP6381861 B2 JP 6381861B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- registration
- data management
- destination determination
- management devices
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/002—Countermeasures against attacks on cryptographic mechanisms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/71—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
- G06F21/75—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information by inhibiting the analysis of circuitry or operation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/18—Complex mathematical operations for evaluating statistical data, e.g. average values, frequency distributions, probability functions, regression analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/30—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0407—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the identity of one or more communicating identities is hidden
- H04L63/0414—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the identity of one or more communicating identities is hidden during transmission, i.e. party's identity is protected against eavesdropping, e.g. by using temporary identifiers, but is known to the other party or parties involved in the communication
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Mathematical Physics (AREA)
- Databases & Information Systems (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- Bioethics (AREA)
- Mathematical Optimization (AREA)
- Mathematical Analysis (AREA)
- Pure & Applied Mathematics (AREA)
- Computational Mathematics (AREA)
- Probability & Statistics with Applications (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Operations Research (AREA)
- Evolutionary Biology (AREA)
- Bioinformatics & Computational Biology (AREA)
- Algebra (AREA)
- Life Sciences & Earth Sciences (AREA)
- Computational Linguistics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Storage Device Security (AREA)
Description
秘匿検索システムは、機密データ管理のアウトソーシングと、メールデータ管理装置における暗号化メールのフィルタリングとに対する応用が期待されている。秘匿検索システムでは、種々の安全性要件を達成するための技術と、データ管理装置及び検索装置のストレージ使用量と通信オーバーヘッドと演算オーバーヘッドとを削減するための様々な技術が研究されている。
確定的暗号をベースとした秘匿検索では、同じキーワードが同じ暗号化キーワードになる。そのため、データ管理装置は、指定された暗号化キーワードに基づくバイナリ一致判定を行うだけで検索を行うことができる。したがって、確定的暗号をベースとした秘匿検索は、既存の検索技術を用いた高速化が可能というメリットがある。
しかし、確定的暗号をベースとした秘匿検索では、キーワードの頻度情報がそのまま暗号化キーワードの頻度情報として現れる。そのため、確定的暗号をベースとした秘匿検索は、データ管理装置が暗号化キーワードの頻度を調べることによって対応するキーワードを推測する「頻度分析」と呼ばれる攻撃が可能となるデメリットがある。
特許文献1には、頻度分析攻撃への対策を行った、確定的暗号をベースとした秘匿検索方式が記載されている。
しかし、確率的暗号をベースとした秘匿検索では、暗号化キーワードと検索要求(トラップドア)との照合に、バイナリ一致判定ではない特別な演算が必要となる。また、確率的暗号をベースとした秘匿検索では、既存の検索技術を用いた高速化ができない。そのため、確率的暗号をベースとした秘匿検索は、検索に要する時間が確定的暗号ベースの方式よりも長くなるというデメリットがある。
非特許文献1には、確率的暗号をベースとした秘匿検索方式が記載されている。
特許文献2,3には、検索者に指定された検索条件よりも広い条件を検索要求としてデータ管理装置に送信することでヒット率を変化させるとともに、ヒット率が均一になるような工夫を行う方式が記載されている。これにより、データ管理装置によるキーワードの推測を困難にしている。
この発明は、簡便な構成により、データ管理装置による登録データの推測を困難にすることを目的とする。
登録データを構成するデータ種別を対象種別として、複数のデータ管理装置それぞれで管理される前記登録データの前記対象種別に設定された値の出現頻度分布が、前記複数のデータ管理装置で管理される前記登録データの前記対象種別に設定された値の出現頻度分布と異なるように、前記複数のデータ管理装置のうちどのデータ管理装置に前記登録データを管理させるかを決定する登録先決定部
を備える。
***構成の説明***
図1を参照して、実施の形態1に係る秘匿検索システム10の構成を説明する。
秘匿検索システム10は、複数のデータ管理装置20と、登録装置30と、検索装置40とを備える。登録装置30は、登録先決定装置50を備える。各データ管理装置20と登録装置30と検索装置40とは、ネットワーク60を介して接続されている。
秘匿検索システム10が備えるデータ管理装置20は、2台以上であればよい。実施の形態1では、図1に示すように、秘匿検索システム10が、複数のデータ管理装置20として、データ管理装置20Aとデータ管理装置20Bと2台を備える例を説明する。
データ管理装置20は、コンピュータである。
データ管理装置20は、プロセッサ21と、記憶装置22と、通信インタフェース23とのハードウェアを備える。プロセッサ21は、システムバスを介して他のハードウェアと接続され、これら他のハードウェアを制御する。
記憶装置22には、データ管理装置20の各部の機能を実現するプログラムが記憶されている。このプログラムは、プロセッサ21により読み込まれ実行される。また、記憶装置22は、データ記憶部221の機能を実現する。
登録装置30は、コンピュータである。
登録装置30は、プロセッサ31と、記憶装置32と、通信インタフェース33とのハードウェアを備える。プロセッサ31は、システムバスを介して他のハードウェアと接続され、これら他のハードウェアを制御する。また、登録装置30は、登録先決定装置50を備える。
記憶装置32には、登録装置30の各部の機能を実現するプログラムが記憶されている。このプログラムは、プロセッサ31により読み込まれ実行される。また、記憶装置32は、暗号鍵記憶部321と、登録先記憶部322との機能を実現する。
検索装置40は、コンピュータである。
検索装置40は、プロセッサ41と、記憶装置42と、通信インタフェース43とのハードウェアを備える。プロセッサ41は、システムバスを介して他のハードウェアと接続され、これら他のハードウェアを制御する。
記憶装置42には、検索装置40の各部の機能を実現するプログラムが記憶されている。このプログラムは、プロセッサ41により読み込まれ実行される。また、記憶装置42は、検索鍵記憶部421と、登録先記憶部422との機能を実現する。
登録先決定装置50は、コンピュータである。
登録先決定装置50は、プロセッサ51と、記憶装置52と、通信インタフェース53とのハードウェアを備える。プロセッサ51は、システムバスを介して他のハードウェアと接続され、これら他のハードウェアを制御する。
記憶装置52には、登録先決定部511の機能を実現するプログラムが記憶されている。このプログラムは、プロセッサ51により読み込まれ実行される。また、記憶装置52は、決定情報記憶部521の機能を実現する。
不揮発性メモリは、具体例としては、HDD(Hard Disk Drive)、SSD(Solid State Drive)、フラッシュメモリである。不揮発性メモリは、SD(Secure Digital)メモリカード、CF(CompactFlash)、NANDフラッシュ、フレキシブルディスク、光ディスク、コンパクトディスク、ブルーレイ(登録商標)ディスク、DVDといった可搬記憶媒体であってもよい。
揮発性メモリは、具体例としては、DDR2−SDRAM(Double−Data−Rate2 Synchronous Dynamic Random Access Memory)、DDR3−SDRAM(Double−Data−Rate3 Synchronous Dynamic Random Access Memory)である。
図6から図13を参照して、実施の形態1に係る秘匿検索システム10の動作を説明する。
実施の形態1に係る秘匿検索システム10の動作は、実施の形態1に係る秘匿検索方法に相当する。また、実施の形態1に係る秘匿検索システム10の動作は、実施の形態1に係る秘匿検索プログラムの処理に相当する。
データ記憶部221には、登録装置30によってデータが暗号化された暗号化データと、登録装置30によって秘匿検索用に生成された暗号化キーワードとが、関連付けて記憶される。
図6では、関数Fはキーワードから秘匿検索用の暗号化キーワードを生成する関数であり、関数Eはデータを暗号化する関数である。例えば1行目のレコードでは、暗号化された「高橋太郎、男、31、・・・」というデータを検索するためのキーワードとして、「高橋」「男」「31」が秘匿検索用に暗号化されて記憶されている。なお、図6では説明を容易にするため「名字」「性別」「年齢」というデータ種別が明記されているが、これらはデータ管理装置20に分からないように暗号化されていてもよい。
暗号鍵記憶部321は、暗号化データ生成用の暗号鍵と、暗号化キーワード生成用の暗号鍵とを記憶する。暗号化データ生成用の暗号鍵は、具体例としては、AES(Advanced Encryption Standard)の鍵、又は、RSAの公開鍵である。暗号化キーワード生成用の暗号鍵は、具体例としては、非特許文献1等に記載された既存の秘匿検索技術の暗号鍵である。
暗号鍵記憶部321は、図7に示すように、全てのデータ管理装置20に共通の暗号化データ生成用の暗号鍵と、暗号化キーワード生成用の暗号鍵とを記憶してもよいし、データ管理装置20毎に、異なる暗号化データ生成用の暗号鍵と、異なる暗号化キーワード生成用の暗号鍵とを記憶してもよい。
登録先記憶部322及び登録先記憶部422は、各データ管理装置20を特定するための情報を記憶する。図8では、登録先記憶部322及び登録先記憶部422は、各データ管理装置20のIPアドレスを記憶している。
検索鍵記憶部421は、データ復号用の暗号鍵と、検索要求であるトラップドア生成用の暗号鍵とを記憶する。データ復号用の暗号鍵は、具体例としては、AESの鍵、又は、RSAの秘密鍵である。トラップドア生成用の暗号鍵は、具体例としては、非特許文献1等に記載された既存の秘匿検索技術のトラップドア生成用の暗号鍵である。
データ復号用の暗号鍵と、暗号鍵記憶部321に記憶された暗号化データ生成用の暗号鍵とは対応する鍵である。また、トラップドア生成用の暗号鍵と、暗号鍵記憶部321に記憶された暗号化キーワード生成用の暗号鍵とは対応する鍵である。したがって、暗号鍵記憶部321に、データ管理装置20毎に、異なる暗号化データ生成用の暗号鍵と、異なる暗号化キーワード生成用の暗号鍵とが記憶される場合には、検索鍵記憶部421も、データ管理装置20毎に、異なるデータ復号用の暗号鍵と、異なるトラップドア生成用の暗号鍵とが記憶される。
決定情報記憶部521は、頻度分析攻撃を防ぐために出現頻度分布を撹乱したいデータ種別に設定される値毎、つまりキーワード毎に、複数データ管理装置20それぞれを選択する選択確率を記憶する。図10では、名字の出現頻度分布を撹乱する場合において、検索用のキーワードが「佐藤」であるデータを確率0.4でデータ管理装置IDが“A”であるデータ管理装置20Aに登録し、確率0.6でデータ管理装置IDが“B”であるデータ管理装置20Bに登録することを表している。また、一番下のレコードは、図10に存在しない名字については、確率0.5ずつで各データ管理装置20に登録することを表している。一番下のレコードは、名字を全て列挙することは現実的でないために設けられている。性別及び血液型のように、設定される値の種類が少ないようなデータ種別については、全ての値について選択確率を記憶してもよい。
なお、以下では、各データ管理装置20における名字の出現頻度分布を撹乱する例について説明する。つまり、各データ管理装置20による名字の推測を困難にする例について説明する。
初期設定処理では、秘匿検索システム10全体の初期設定が行われる。
検索装置40の復号部413は、データ復号用の暗号鍵と暗号化データ生成用の暗号鍵とのペアを生成して、データ復号用の暗号鍵を検索鍵記憶部421に書き込む。送信部412は、データ復号用の暗号鍵に対応する暗号化データ生成用の暗号鍵を公開する、又は、登録装置30に送信する。
また、検索装置40の検索要求生成部411は、トラップドア生成用の暗号鍵と暗号化キーワード生成用の暗号鍵とのペアを生成して、トラップドア生成用の暗号鍵を検索鍵記憶部421に書き込む。送信部412は、トラップドア生成用の暗号鍵に対応する暗号化キーワード生成用の暗号鍵を公開する又は、登録装置30に送信する。
その結果、図9に示すように検索鍵記憶部421に、データ復号用の暗号鍵と、トラップドア生成用の暗号鍵とが記憶される。
なお、復号部413は、データ復号用の暗号鍵と暗号化データ生成用の暗号鍵とのペアを、生成するのではなく、外部で生成されたものを取得してもよい。同様に、検索要求生成部411は、トラップドア生成用の暗号鍵と暗号化キーワード生成用の暗号鍵とのペアを、生成するのではなく、外部で生成されたものを取得してもよい。
検索装置40の送信部412は、各データ管理装置20を特定するための情報を登録先記憶部422に書き込む。具体例としては、送信部412は、通信インタフェース43を介して各データ管理装置20のIPアドレスを取得して、登録先記憶部422に書き込む。
その結果、図8に示すように、登録先記憶部422に各データ管理装置20を特定するための情報が記憶される。
登録装置30の登録データ生成部311は、ステップS11で公開された、又は送信された暗号化データ生成用の暗号鍵と、暗号化キーワード生成用の暗号鍵とを取得し、暗号鍵記憶部321に書き込む。
その結果、図7に示すように暗号鍵記憶部321に、暗号化データ生成用の暗号鍵と、暗号化キーワード生成用の暗号鍵とが記憶される。
登録装置30の送信部312は、各データ管理装置20を特定するための情報を登録先記憶部322に書き込む。具体例としては、送信部312は、通信インタフェース33を介して各データ管理装置20のIPアドレスを取得して、登録先記憶部322に書き込む。ここでは、ステップS12で登録先記憶部422に書き込まれた情報と同じ情報が登録先記憶部322に書き込まれる。
その結果、図8に示すように、登録先記憶部322に各データ管理装置20を特定するための情報が記憶される。
登録先決定装置50の登録先決定部511は、登録データを構成する少なくとも一部のデータ種別を対象種別として、対象種別に設定される値毎に選択確率を設定して、決定情報記憶部521に書き込む。例えば、名字の出現頻度分布の撹乱を目的とする場合、登録先決定部511は、各名字に対し、当該名字をキーワードとしたデータをデータ管理装置20に登録する際に、各データ管理装置20を登録先として選択する選択確率を設定して、決定情報記憶部521に書き込む。
具体例としては、登録先決定部511は、対象種別に設定される値毎に選択確率の入力をユーザから受け付け、受け付けられた選択確率を決定情報記憶部521に書き込む。あるいは、登録先決定部511は、対象種別に設定される値毎にランダムに選択確率を設定して、決定情報記憶部521に書き込んでもよい。ここでのポイントは、設定される値毎に異なる選択確率を設定することである。
その結果、図10に示すように、決定情報記憶部521に対象種別に設定される値毎に、選択確率が記憶される。
データ登録処理は、登録するデータ毎に登録先のデータ管理装置20が決定され、暗号化キーワードと暗号化データとを決定されたデータ管理装置20に記憶させる処理である。
ここでは、「高橋太郎、男、31、・・・」というデータを、名字「高橋」、性別「男」、年齢「31」というキーワードで秘匿検索できるように登録する例について説明する。
登録先決定装置50の登録先決定部511は、出現頻度分布を撹乱したいキーワード、つまり値に対し、決定情報記憶部521が記憶する選択確率を参照して、登録先を決定する。
ここでは、登録先決定部511は、名字の出現頻度分布を撹乱したいため、キーワードである名字「高橋」に対する選択確率を取得する。図10に示す選択確率が決定情報記憶部521に記憶されている場合、データは、データ管理装置20Aに確率0.2で振り分けられ、データ管理装置20Bに確率0.8で振り分けられる。登録先決定部511は、取得された選択確率に基づき、登録先のデータ管理装置20を決定する。ここでは、登録先がデータ管理装置20Bに決定されたとする。
登録装置30の登録データ生成部311は、暗号鍵記憶部321に記憶された暗号化データ生成用の暗号鍵を用いて、データを暗号化して、暗号化データを生成する。なお、暗号鍵記憶部321に、データ管理装置20毎に異なる暗号鍵が記憶されている場合、登録データ生成部311は、登録先のデータ管理装置20に対応する暗号鍵を利用する。
ここでは、登録データ生成部311は、データ「高橋太郎、男、31、・・・」を暗号化して、暗号化データE(高橋太郎、男、31、・・・)を生成する。
登録装置30の登録データ生成部311は、暗号鍵記憶部321に記憶された暗号化キーワード生成用の暗号鍵を用いて、キーワードを暗号化して、暗号化キーワードを生成する。なお、暗号鍵記憶部321に、データ管理装置20毎に異なる暗号鍵が記憶されている場合、登録データ生成部311は、登録先のデータ管理装置20に対応する暗号鍵を利用する。
ここでは、登録データ生成部311は、キーワードとして「高橋」と「男」と「31」とを暗号化して、暗号化キーワードとしてF(高橋)とF(男)とF(31)とを生成する。なお、暗号化キーワード生成用の暗号鍵は、名字と性別と年齢といったデータ種別毎に異なっていてもよいし、データ種別によらず同一であってもよい。暗号鍵がデータ種別毎に異なる場合には、登録データ生成部311は、データ種別毎に対応する暗号鍵を利用する。
登録装置30の送信部312は、ステップS21で決定された登録先のデータ管理装置20を特定するための情報を登録先記憶部322から読み出す。そして、送信部312は、読み出された情報に従い、ステップS22で生成された暗号化データと、ステップS23で生成された暗号化キーワードとを、登録先のデータ管理装置20に送信する。
図8に示す情報が登録先記憶部322に記憶されている場合、ここでは、データ管理装置20BのIPアドレスである「Y.Y.Y.Y」が読み出される。そして、送信部312は、暗号化データと暗号化キーワードとを、IPアドレス「Y.Y.Y.Y」に従いデータ管理装置20Bに送信する。
登録先のデータ管理装置20の登録部211は、ステップS24で送信された暗号化データと暗号化キーワードとを、データ記憶部221に書き込む。
ここでは、図6の1行目に示すデータがデータ記憶部221に書き込まれる。
データ検索処理は、キーワードが指定され、各データ管理装置20に記憶されたデータに対して秘匿検索を行う処理である。
検索装置40の検索要求生成部411は、キーワードの入力を受け付ける。そして、検索要求生成部411は、検索鍵記憶部421に記憶されたトラップドア生成用の暗号鍵を用いて、受け付けられたキーワードを暗号化して、検索要求を生成する。なお、検索鍵記憶部421に、データ管理装置20毎に異なる暗号鍵が記憶されている場合、検索要求生成部411は、各暗号鍵を用いて各データ管理装置20に対応する検索要求を生成する。
ここでは、検索要求生成部411は、キーワードとして名字「高橋」を受け付ける。そして、検索要求生成部411は、トラップドア生成用の暗号鍵を用いてT(高橋)を生成する。Tは、トラップドア生成関数である。暗号鍵がデータ種別毎に異なる場合には、検索要求生成部411は、データ種別毎に対応する暗号鍵を利用する。
検索装置40の送信部412は、ステップS31で生成された検索要求を各データ管理装置20に送信する。なお、検索鍵記憶部421に、データ管理装置20毎に異なる暗号鍵が記憶されている場合、対応する暗号鍵を用いて生成された検索要求をデータ管理装置20に送信する。
各データ管理装置20の検索部212は、ステップS32で送信された検索要求に従い、データ記憶部221に記憶されたデータに対して検索を行う。具体例としては、検索部212は、非特許文献1に記載された既存の秘匿検索処理を実行する。
ここでは、T(高橋)を用いて検索を行った結果、図6の1行目に示すE(高橋太郎、男、31、・・・)がヒットする。
各データ管理装置20の検索部212は、ステップS33でヒットしたデータを検索装置40へ送信する。
ここでは、図6の1行目に示すE(高橋太郎、男、31、・・・)が送信される。
検索装置40の復号部413は、検索鍵記憶部421に記憶されたデータ復号用の暗号鍵を用いて、ステップS34で送信されたデータを復号する。なお、検索鍵記憶部421に、データ管理装置20毎に異なる暗号鍵が記憶されている場合、データの送信元のデータ管理装置20に対応する暗号鍵を用いて復号する。
ここでは、E(高橋太郎、男、31、・・・)が復号されて、高橋太郎、男、31、・・・というデータが得られる。
以上のように、実施の形態1に係る秘匿検索システム10では、各データ管理装置における登録データの値の出現頻度分布が撹乱される。そのため、データ管理装置による登録データの推測が困難になる。
例えば、名字の本来の出現頻度分布が、「佐藤」1.6%、「鈴木」1.4%、「高橋」1.2%である場合、データ管理装置20Aには、キーワードが「佐藤」であるデータが全体の0.64%(=1.6%×0.4)登録される。同様に、「鈴木」は全体の0.98%(=1.4%×0.7)が、「高橋」は全体の0.24%(=1.2%×0.2)が登録される。したがって、各データ管理装置20への登録データの総量が均等であると仮定すると、データ管理装置20Aにおける名字の出現頻度分布は、「佐藤」1.28%、「鈴木」1.96%、「高橋」0.48%となり、本来と異なる分布になる。
そのため、秘匿検索システム10が長期稼働するなどして、データ管理装置20がこれらの頻度(1.28%、1.96%、0.48%、・・・)を観測できたとしても、キーワードを正しく推測することができず、頻度分析攻撃に対する安全性が保たれる。なお、データ管理装置20Bに関しても、名字の出現頻度分布は「佐藤」1.92%、「鈴木」0.84%、「高橋」1.92%となり、頻度分析攻撃に対する安全性が保たれる。
<変形例1>
実施の形態1では、暗号化キーワードの生成と、検索要求の生成とには、既存の秘匿検索技術を用いた。しかし、変形例1として、既存の秘匿検索技術に代えて、AESといった確定的暗号、又は、HMAC(Hash−based Message Authentication Code)といった鍵付ハッシュ関数を用いてもよい。
実施の形態1では、決定情報記憶部521には値毎に選択確率が記憶された。しかし、変形例2として、各値について、ある1つのデータ管理装置20に対する選択確率を1とし、他のデータ管理装置20に対する選択確率を0としてもよい。これにより、特定の値は、必ず特定のデータ管理装置20に記憶されることになる。検索装置40にも、この選択確率を記憶させておけば、データ検索処理で、検索装置40が検索要求を送信する先のデータ管理装置20を、限定することができる。
実施の形態1では、1つのデータ種別について出現頻度分布を撹乱する場合を説明した。しかし、変形例3として、複数のデータ種別について出現頻度分布を撹乱してもよい。例えば、実施の形態1では、名字についてのみ出現頻度分布を撹乱したが、名字と性別とについて出現頻度分布を撹乱してもよい。
複数のデータ種別について出現頻度分布を撹乱する場合、図14に示すように、決定情報記憶部521に、データ種別毎に選択確率を記憶しておく必要がある。その上で、登録先決定部511は、出現頻度分布を撹乱する対象のデータ種別をランダムに選択して、選択されたデータ種別についての選択確率に基づき登録先を決定すればよい。図14に示す選択確率が決定情報記憶部521に記憶されている場合、例えば、登録先決定部511は、名字と性別とを確率0.5ずつでランダムに選択する。
実施の形態1では、データ記憶部221に暗号化データと暗号化キーワードとが一元的に記憶された。しかし、変形例4として、データIDを介在させる等して、暗号化データと暗号化キーワードとを関連付けておき、暗号化データと暗号化キーワードと別々に記憶してもよい。特に、暗号化データと暗号化キーワードとを別の装置に記憶してもよい。
実施の形態1では、登録装置30と検索装置40とを別々の装置とした。しかし、変形例5として、情報検索者のみが情報登録可能であるような場合には、登録装置30と検索装置40とを1つの装置にまとめてもよい。この場合、暗号化キーワード生成用の暗号鍵及び暗号化データ生成用の暗号鍵を外部に公開する必要がなくなるため、攻撃者に余分な情報を与えることなく秘匿検索システムを運用することができる。
実施の形態1では、登録装置30の暗号鍵記憶部321、及び、検索装置40の検索鍵記憶部421に暗号鍵を記憶した。しかし、変形例6として、暗号鍵を必要時に外部から取得するようにしてもよい。例えば、暗号鍵をICカードから取得してもよいし、パスワードあるいは生体情報から暗号鍵を自動生成してもよい。
実施の形態1では、登録装置30及び検索装置40を1台だけ利用した。しかし、変形例7として、複数の登録装置30及び複数の検索装置40を利用して、データの登録及び検索をそれぞれが実行できるようにしてもよい。この場合、複数の検索装置40間でトラップドア生成用の暗号鍵を共有することで、異なる装置からでも同じ検索結果を得ることが可能となる。一方で、同じ検索キーワードでも、装置毎に検索結果を変えたい場合は、トラップドア生成用の暗号鍵を装置毎に変えればよい。
実施の形態1では、データ管理装置20と登録装置30と検索装置40と登録先決定装置50との各装置の各部の機能がソフトウェアで実現された。変形例8として、各装置の各部の機能はハードウェアで実現されてもよい。この変形例8について、実施の形態1と異なる点を説明する。
各部の機能がハードウェアで実現される場合、各装置は、プロセッサ21,31,41,51と記憶装置22,32,42,52とに代えて、処理回路24,34,44,54を備える。処理回路24,34,44,54は、各装置の各部の機能と、記憶装置22の機能とを実現する専用の電子回路である。
各装置は、処理回路24,34,44,54を代替する複数の処理回路を備えていてもよい。これら複数の処理回路により、全体として各部の機能が実現される。それぞれの処理回路は、処理回路24,34,44,54と同じように、専用の電子回路である。
変形例9として、一部の機能がハードウェアで実現され、他の機能がソフトウェアで実現されてもよい。つまり、各装置の各部のうち、一部の機能がハードウェアで実現され、他の機能がソフトウェアで実現されてもよい。
実施の形態1では、各装置間の通信の保護には言及していない。しかし、変形例10として、TLS(Transport Layer Security)といった既存の暗号技術を利用して通信を保護してもよい。
実施の形態2は、出現頻度分布を撹乱したいデータ種別の値が指定された時点で選択確率を計算する点が実施の形態1と異なる。実施の形態2では、この異なる点を説明する。
図19と、図11から図12とを参照して、実施の形態2に係る秘匿検索システム10の動作を説明する。
実施の形態2に係る秘匿検索システム10の動作は、実施の形態2に係る秘匿検索方法に相当する。また、実施の形態2に係る秘匿検索システム10の動作は、実施の形態2に係る秘匿検索プログラムの処理に相当する。
決定情報記憶部521は、各値から選択確率を確定的に導出するための秘密情報を記憶する。具体例としては、決定情報記憶部521は、HMAC鍵を記憶する。値毎に異なる選択確率を確定的に導出できるなら、HMAC鍵以外の秘密情報を記憶してもよい。
ステップS11からステップS14までの処理は、実施の形態1と同じである。
登録先決定装置50の登録先決定部511は、選択確率を確定的に導出するための秘密情報を決定情報記憶部521に書き込む。実施の形態2では、登録先決定部511は、HMAC鍵を決定情報記憶部521に書き込む。
ステップS22からステップS25までの処理は、実施の形態1と同じである。
登録先決定装置50の登録先決定部511は、出現頻度分布を撹乱したいキーワード、つまり値と、決定情報記憶部521に記憶された秘密情報とから、選択確率を計算する。そして、登録先決定部511は、計算された選択確率を参照して、登録先を決定する。
実施の形態2では、登録先決定部511は、キーワードと、HMAC鍵とからハッシュ値を計算する。そして、登録先決定部511は、計算されたハッシュ値を、0以上1以下の値に正規化して得られた値を、データ管理装置20Aに対する選択確率とする。また、登録先決定部511は、データ管理装置20Aに対する選択確率を1から減じた値を、データ管理装置20Bに対する選択確率とする。
以上のように、実施の形態2に係る秘匿検索システム10では、データを記憶する場合に選択確率が計算される。そのため、事前に各値に対する選択確率を準備しておく必要がない。
データ登録時にキーワードを自由に設定できる場合と、キーワードの値が限定されている場合であっても、取り得る値が多岐にわたる場合等には、事前に各値に対する選択確率を準備しておくことが難しい。このような場合にも、実施の形態2に係る秘匿検索システム10では、安全な秘匿検索を実現することが可能である。
<変形例11>
実施の形態2では、ステップS21でハッシュ値から選択確率が直接計算された。しかし、変形例11として、選択確率を確率的に計算する確率的アルゴリズムの乱数シードとしてハッシュ値が与えられ、ハッシュ値から確定的に選択確率が計算されてもよい。
Claims (9)
- 登録データを構成するデータ種別を対象種別として、複数のデータ管理装置それぞれで管理される前記登録データの前記対象種別に設定された値の出現頻度分布が、前記複数のデータ管理装置で管理される前記登録データの前記対象種別に設定された値の出現頻度分布と異なるように、前記複数のデータ管理装置のうちどのデータ管理装置に前記登録データを管理させるかを決定する登録先決定部と、
前記対象種別に設定された値毎に、前記複数のデータ管理装置それぞれを選択する選択確率を記憶した決定情報記憶部と
を備え、
前記登録先決定部は、前記決定情報記憶部に記憶された選択確率に従い、データ管理装置を選択することにより、どのデータ管理装置に前記登録データを管理させるかを決定する
登録先決定装置。 - 登録データを構成するデータ種別を対象種別として、複数のデータ管理装置それぞれで管理される前記登録データの前記対象種別に設定された値の出現頻度分布が、前記複数のデータ管理装置で管理される前記登録データの前記対象種別に設定された値の出現頻度分布と異なるように、前記複数のデータ管理装置のうちどのデータ管理装置に前記登録データを管理させるかを決定する登録先決定部であって、前記登録データと秘密情報とから前記複数のデータ管理装置それぞれを選択する選択確率を計算し、計算された選択確率に従い、データ管理装置を選択することにより、どのデータ管理装置に前記登録データを管理させるかを決定する登録先決定部
を備える登録先決定装置。 - 前記登録データは、秘匿検索用のキーワードである
請求項1又は2に記載の登録先決定装置。 - 請求項3に記載の登録先決定装置と、
前記登録先決定装置により前記登録データを管理させると決定されたデータ管理装置に、前記登録データを送信する送信部と
を備える登録装置。 - 請求項4に記載の登録装置と、
前記複数のデータ管理装置と、
前記複数のデータ管理装置に検索要求を送信して、送信された検索要求に対応するキーワードを特定させる検索装置と
を備える秘匿検索システム。 - コンピュータが、登録データを構成するデータ種別を対象種別として、複数のデータ管理装置それぞれで管理される前記登録データの前記対象種別に設定された値の出現頻度分布が、前記複数のデータ管理装置で管理される前記登録データの前記対象種別に設定された値の出現頻度分布と異なるように、前記複数のデータ管理装置のうちどのデータ管理装置に前記登録データを管理させるかを決定する登録先決定方法であって、前記対象種別に設定された値毎に記憶装置に記憶された、前記複数のデータ管理装置それぞれを選択する選択確率に従い、データ管理装置を選択することにより、どのデータ管理装置に前記登録データを管理させるかを決定する登録先決定方法。
- コンピュータが、登録データを構成するデータ種別を対象種別として、複数のデータ管理装置それぞれで管理される前記登録データの前記対象種別に設定された値の出現頻度分布が、前記複数のデータ管理装置で管理される前記登録データの前記対象種別に設定された値の出現頻度分布と異なるように、前記複数のデータ管理装置のうちどのデータ管理装置に前記登録データを管理させるかを決定する登録先決定方法であって、前記登録データと秘密情報とから前記複数のデータ管理装置それぞれを選択する選択確率を計算し、計算された選択確率に従い、データ管理装置を選択することにより、どのデータ管理装置に前記登録データを管理させるかを決定する登録先決定方法。
- 登録データを構成するデータ種別を対象種別として、複数のデータ管理装置それぞれで管理される前記登録データの前記対象種別に設定された値の出現頻度分布が、前記複数のデータ管理装置で管理される前記登録データの前記対象種別に設定された値の出現頻度分布と異なるように、前記複数のデータ管理装置のうちどのデータ管理装置に前記登録データを管理させるかを決定する登録先決定処理であって、前記対象種別に設定された値毎に記憶装置に記憶された、前記複数のデータ管理装置それぞれを選択する選択確率に従い、データ管理装置を選択することにより、どのデータ管理装置に前記登録データを管理させるかを決定する登録先決定処理
をコンピュータに実行させる登録先決定プログラム。 - 登録データを構成するデータ種別を対象種別として、複数のデータ管理装置それぞれで管理される前記登録データの前記対象種別に設定された値の出現頻度分布が、前記複数のデータ管理装置で管理される前記登録データの前記対象種別に設定された値の出現頻度分布と異なるように、前記複数のデータ管理装置のうちどのデータ管理装置に前記登録データを管理させるかを決定する登録先決定処理であって、前記登録データと秘密情報とから前記複数のデータ管理装置それぞれを選択する選択確率を計算し、計算された選択確率に従い、データ管理装置を選択することにより、どのデータ管理装置に前記登録データを管理させるかを決定する登録先決定処理
をコンピュータに実行させる登録先決定プログラム。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2016/065743 WO2017203698A1 (ja) | 2016-05-27 | 2016-05-27 | 登録先決定装置、登録装置、秘匿検索システム、登録先決定方法及び登録先決定プログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP6381861B2 true JP6381861B2 (ja) | 2018-08-29 |
JPWO2017203698A1 JPWO2017203698A1 (ja) | 2018-11-29 |
Family
ID=60411983
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2018518922A Active JP6381861B2 (ja) | 2016-05-27 | 2016-05-27 | 登録先決定装置、登録装置、秘匿検索システム、登録先決定方法及び登録先決定プログラム |
Country Status (4)
Country | Link |
---|---|
US (1) | US10936757B2 (ja) |
JP (1) | JP6381861B2 (ja) |
CN (1) | CN109154970B (ja) |
WO (1) | WO2017203698A1 (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3731044B1 (en) | 2019-04-26 | 2022-09-07 | Kabushiki Kaisha Yaskawa Denki | Communication system and communication method |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009181546A (ja) * | 2008-02-01 | 2009-08-13 | Toshiba Corp | コーディネータサーバ、データ割当方法及びプログラム |
WO2012115031A1 (ja) * | 2011-02-22 | 2012-08-30 | 三菱電機株式会社 | 検索システム、検索システムの検索方法、情報処理装置、検索プログラム、対応キーワード管理装置および対応キーワード管理プログラム |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7136851B2 (en) * | 2004-05-14 | 2006-11-14 | Microsoft Corporation | Method and system for indexing and searching databases |
EP1868132A4 (en) * | 2005-03-23 | 2014-06-18 | Ihc Corp | AUTHENTICATION SYSTEM |
CN101071478B (zh) * | 2006-06-15 | 2010-12-15 | 腾讯科技(深圳)有限公司 | 一种好友分组管理方法 |
KR100859162B1 (ko) * | 2007-10-16 | 2008-09-19 | 펜타시큐리티시스템 주식회사 | 암호화된 칼럼을 포함하는 데이터베이스에서의 쿼리의 암호화 변조를 통한 사용자 쿼리 처리 장치 및 방법 |
CN102656570B (zh) * | 2009-12-16 | 2015-11-25 | Idtp控股公司 | 用于缓存的方法和服务器 |
US8909614B2 (en) * | 2010-03-29 | 2014-12-09 | Nec Corporation | Data access location selecting system, method, and program |
US8375030B2 (en) | 2010-12-03 | 2013-02-12 | Mitsubishi Electric Research Laboratories, Inc. | Differentially private aggregate classifier for multiple databases |
EP2659395A2 (en) * | 2010-12-28 | 2013-11-06 | Citrix Systems, Inc. | Systems and methods for database proxy request switching |
JP5420085B2 (ja) * | 2011-01-13 | 2014-02-19 | 三菱電機株式会社 | データ処理装置及びデータ保管装置 |
JP5573859B2 (ja) * | 2012-02-09 | 2014-08-20 | コニカミノルタ株式会社 | エアタグ情報登録装置、エアタグ情報登録システムおよびプログラム |
JP5983333B2 (ja) | 2012-11-13 | 2016-08-31 | 富士通株式会社 | 検索処理方法、データ生成方法及び情報処理装置 |
JP5991155B2 (ja) | 2012-11-13 | 2016-09-14 | 富士通株式会社 | 検索処理方法、データ生成方法及び情報処理装置 |
US10235539B2 (en) * | 2013-02-25 | 2019-03-19 | Mitsubishi Electric Corporation | Server device, recording medium, and concealed search system |
US9646166B2 (en) * | 2013-08-05 | 2017-05-09 | International Business Machines Corporation | Masking query data access pattern in encrypted data |
WO2015063905A1 (ja) | 2013-10-31 | 2015-05-07 | 株式会社日立製作所 | データ分析システム |
JP2015170057A (ja) | 2014-03-05 | 2015-09-28 | 富士通株式会社 | 秘匿検索装置、秘匿検索方法および秘匿検索プログラム |
-
2016
- 2016-05-27 JP JP2018518922A patent/JP6381861B2/ja active Active
- 2016-05-27 WO PCT/JP2016/065743 patent/WO2017203698A1/ja active Application Filing
- 2016-05-27 CN CN201680085947.4A patent/CN109154970B/zh active Active
- 2016-05-27 US US16/091,690 patent/US10936757B2/en active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009181546A (ja) * | 2008-02-01 | 2009-08-13 | Toshiba Corp | コーディネータサーバ、データ割当方法及びプログラム |
WO2012115031A1 (ja) * | 2011-02-22 | 2012-08-30 | 三菱電機株式会社 | 検索システム、検索システムの検索方法、情報処理装置、検索プログラム、対応キーワード管理装置および対応キーワード管理プログラム |
Also Published As
Publication number | Publication date |
---|---|
JPWO2017203698A1 (ja) | 2018-11-29 |
US10936757B2 (en) | 2021-03-02 |
CN109154970B (zh) | 2021-07-20 |
CN109154970A (zh) | 2019-01-04 |
WO2017203698A1 (ja) | 2017-11-30 |
US20190163934A1 (en) | 2019-05-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9735962B1 (en) | Three layer key wrapping for securing encryption keys in a data storage system | |
JP5420085B2 (ja) | データ処理装置及びデータ保管装置 | |
US10235539B2 (en) | Server device, recording medium, and concealed search system | |
US9122888B2 (en) | System and method to create resilient site master-key for automated access | |
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 | |
US10872158B2 (en) | Secret search system, secret search method, and computer readable medium | |
JP2014119486A (ja) | 秘匿検索処理システム、秘匿検索処理方法、および秘匿検索処理プログラム | |
JP6632780B2 (ja) | データ処理装置、データ処理方法及びデータ処理プログラム | |
CN114417073B (zh) | 一种加密图的邻居节点查询方法及装置、电子设备 | |
JP2013156675A (ja) | 暗号文検索システム、検索情報生成装置、検索実行装置、検索要求装置、暗号文検索方法、検索情報生成方法、検索実行方法、検索要求方法、およびプログラム | |
JP6289768B2 (ja) | 暗号化装置、暗号化プログラム及び暗号化方法 | |
Islam et al. | A novel approach for client side encryption in cloud computing | |
KR101140576B1 (ko) | 암호화 문서에 대한 다자간 검색 시스템 및 그 방법 | |
JP6381861B2 (ja) | 登録先決定装置、登録装置、秘匿検索システム、登録先決定方法及び登録先決定プログラム | |
JP6672451B2 (ja) | 暗号化検索インデックスマージサーバ、暗号化検索インデックスマージシステム、及び暗号化検索インデックスマージ方法 | |
JP6462968B1 (ja) | データ管理装置、データ管理方法及びデータ管理プログラム | |
WO2017221308A1 (ja) | データ管理装置、データ管理方法、データ管理プログラム、検索装置、検索方法及び検索プログラム | |
US20210288798A1 (en) | Jigsaw key encryption/decryption | |
Filaly et al. | Hybrid Encryption Algorithm for Information Security in Hadoop |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20180607 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20180607 |
|
A871 | Explanation of circumstances concerning accelerated examination |
Free format text: JAPANESE INTERMEDIATE CODE: A871 Effective date: 20180607 |
|
A975 | Report on accelerated examination |
Free format text: JAPANESE INTERMEDIATE CODE: A971005 Effective date: 20180627 |
|
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: 20180703 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20180731 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6381861 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 |