JP2022147342A - Secret information management program, secret information management method, data registration device and secret information management system - Google Patents
Secret information management program, secret information management method, data registration device and secret information management system Download PDFInfo
- Publication number
- JP2022147342A JP2022147342A JP2021048542A JP2021048542A JP2022147342A JP 2022147342 A JP2022147342 A JP 2022147342A JP 2021048542 A JP2021048542 A JP 2021048542A JP 2021048542 A JP2021048542 A JP 2021048542A JP 2022147342 A JP2022147342 A JP 2022147342A
- Authority
- JP
- Japan
- Prior art keywords
- item
- record
- dummy
- search
- data
- 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.)
- Pending
Links
- 238000007726 management method Methods 0.000 title claims description 27
- 238000006243 chemical reaction Methods 0.000 claims description 321
- 238000012545 processing Methods 0.000 claims description 87
- 238000013507 mapping Methods 0.000 claims description 5
- 238000001514 detection method Methods 0.000 claims description 4
- 238000004458 analytical method Methods 0.000 abstract description 46
- 230000009466 transformation Effects 0.000 description 86
- 238000013523 data management Methods 0.000 description 79
- 238000010586 diagram Methods 0.000 description 77
- 238000000034 method Methods 0.000 description 67
- 230000006870 function Effects 0.000 description 32
- 239000003814 drug Substances 0.000 description 31
- 230000036772 blood pressure Effects 0.000 description 30
- 230000008569 process Effects 0.000 description 26
- 208000001953 Hypotension Diseases 0.000 description 19
- 206010020772 Hypertension Diseases 0.000 description 16
- 230000036543 hypotension Effects 0.000 description 10
- 230000008520 organization Effects 0.000 description 9
- 239000008280 blood Substances 0.000 description 7
- 210000004369 blood Anatomy 0.000 description 7
- 238000013480 data collection Methods 0.000 description 7
- 239000000284 extract Substances 0.000 description 7
- 230000001174 ascending effect Effects 0.000 description 6
- 208000012866 low blood pressure Diseases 0.000 description 6
- 230000003287 optical effect Effects 0.000 description 6
- 230000004044 response Effects 0.000 description 6
- 238000004891 communication Methods 0.000 description 4
- 201000010099 disease Diseases 0.000 description 4
- 208000037265 diseases, disorders, signs and symptoms Diseases 0.000 description 4
- 229940079593 drug Drugs 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 208000021822 hypotensive Diseases 0.000 description 3
- 230000001077 hypotensive effect Effects 0.000 description 3
- 230000002093 peripheral effect Effects 0.000 description 3
- 240000001973 Ficus microcarpa Species 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 230000000052 comparative effect Effects 0.000 description 2
- 230000007423 decrease Effects 0.000 description 2
- 238000009509 drug development Methods 0.000 description 2
- 238000005401 electroluminescence Methods 0.000 description 2
- 230000014509 gene expression Effects 0.000 description 2
- 230000001631 hypertensive effect Effects 0.000 description 2
- 239000002547 new drug Substances 0.000 description 2
- 230000011218 segmentation Effects 0.000 description 2
- 230000001131 transforming effect Effects 0.000 description 2
- 206010058467 Lung neoplasm malignant Diseases 0.000 description 1
- 230000002776 aggregation Effects 0.000 description 1
- 238000004220 aggregation Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 201000005202 lung cancer Diseases 0.000 description 1
- 208000020816 lung neoplasm Diseases 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000003094 perturbing effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000033772 system development Effects 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
Description
本発明は、秘密情報管理プログラム、秘密情報管理方法、データ登録装置、および秘密情報管理システムに関する。 The present invention relates to a confidential information management program, a confidential information management method, a data registration device, and a confidential information management system.
コンピュータシステムでは、ビッグデータと呼ばれる大量のデータを扱うことができる。例えばコンピュータでビッグデータを解析すれば、様々な知見を得ることが可能である。解析に用いるビッグデータの量が多いほど、そのビッグデータから多様な知識を得ることができ、得られた知識の信頼性も向上する。そこで企業などの組織ごとにビッグデータ用の独自のデータベース(DB)を構築するのではなく、複数の組織のデータを統合したDBを、複数の組織で利用することが考えられる。このような統合したDBサービスは、例えばクラウドコンピューティングシステム(以下、「クラウド」と呼ぶ)を用いて実現できる。 Computer systems can handle large amounts of data called big data. For example, if a computer analyzes big data, it is possible to obtain various findings. The larger the amount of big data used for analysis, the more diverse knowledge can be obtained from the big data, and the more reliable the obtained knowledge is. Therefore, instead of constructing a unique database (DB) for big data for each organization such as a company, it is conceivable that a plurality of organizations use a DB that integrates data of a plurality of organizations. Such an integrated DB service can be implemented using, for example, a cloud computing system (hereinafter referred to as "cloud").
複数の組織のデータを統合したDBをクラウドで管理する場合において、データ提供元の組織は、提供したデータの利用を、データ提供元の組織が許可した他の組織のみに制限したい場合がある。またデータ提供元の組織およびデータを利用する組織は、提供されるデータの内容やDB内のデータへの検索内容を、クラウドの管理者にも知られたくない場合もある。これらの場合、ビッグデータを管理するクラウドは、例えば各組織から暗号化されたデータの提供を受け、暗号データをDBに格納する。そしてクラウドは、暗号データのままデータの同一性を判定できる照合技術を用いて、データ提供元の組織から渡された鍵で暗号化された検索要求に応じて、DB内のデータ検索を行う。これにより、データ提供元の組織は、鍵を渡した組織に対してのみ、提供したデータの利用を許可することができる。またクラウドでは、提供されたデータと検索要求とが暗号化されたままであるため、クラウドの管理者にデータの内容を知られることも抑止できる。 When a database that integrates data from multiple organizations is managed in the cloud, the data provider organization may want to limit the use of the provided data to only other organizations that the data provider organization permits. In addition, the organization that provides the data and the organization that uses the data sometimes do not want the cloud administrator to know the contents of the provided data and the contents of searches for the data in the DB. In these cases, a cloud that manages big data receives encrypted data from each organization, for example, and stores the encrypted data in a DB. Then, the cloud searches the data in the DB in response to the search request encrypted with the key passed from the organization that provided the data, using a collation technique that can determine the identity of the encrypted data. As a result, the data provider organization can permit use of the provided data only to the organization that has passed the key. Moreover, in the cloud, since the provided data and the search request remain encrypted, it is possible to prevent the administrator of the cloud from knowing the contents of the data.
DB内のデータの秘匿化に関連する技術としては、例えば頻度分析への耐性を持つ秘匿検索を実現する検索システムが提案されている。また、暗号化により情報提供者のプライバシーを保護しつつ、分析の処理効率を向上できるデータ集計分析システムも提案されている。 As a technique related to concealment of data in a DB, for example, a search system that realizes concealed search that is resistant to frequency analysis has been proposed. A data aggregation analysis system has also been proposed that can improve the processing efficiency of analysis while protecting the privacy of the information provider through encryption.
暗号データのまま検索を行うことができる秘匿検索技術を用いても、暗号化されたデータの安全性は十分とはいえない。すなわち、暗号データを格納したDBに対して頻度分析攻撃が可能であり、検索クエリの内容または検索結果が類推されてしまう場合がある。 Encrypted data cannot be said to be sufficiently secure even if a confidential search technique is used, which allows searching encrypted data as it is. In other words, a frequency analysis attack is possible against a DB storing encrypted data, and the content of a search query or search results may be inferred.
1つの側面では、本件は、暗号化されたデータへの頻度分析攻撃に対する安全性を向上させることを目的とする。 In one aspect, this application aims to improve security against frequency analysis attacks on encrypted data.
1つの案では、コンピュータに以下の処理を実行させる秘密情報管理プログラムが提供される。
コンピュータは、秘匿対象の秘匿レコードを1つ以上含む秘匿レコード群における秘匿レコード内の一の項目に設定可能な複数の第1項目値それぞれに対して、n個(nは自然数)の第2項目値を対応付ける。次にコンピュータは、複数の項目値集合それぞれが、同一の第1項目値に対応付けられた2個以上の第2項目値のうちの1個からn-1個のいずれかの個数の第2項目値を含むように、第2項目値それぞれを複数の項目値集合のいずれかに分類する。次にコンピュータは、秘匿レコード内の一の項目に設定されている第1項目値を、対応付けられた第2項目値のいずれかに確率的に変換する。次にコンピュータは、秘匿レコード群に基づいて、ダミーの第2項目値の追加により、同一の項目値集合に属する第2項目値に対する検索のヒット件数の均等化を図った攪乱レコード群を生成する。次にコンピュータは、攪乱レコード群内のレコードに、レコードに含まれる第2項目値の真偽を示すフラグを付与する。そしてコンピュータは、攪乱レコード群を暗号化する。
In one proposal, a confidential information management program is provided that causes a computer to perform the following processes.
The computer provides n (n is a natural number) second items for each of a plurality of first item values that can be set for one item in a confidential record in a confidential record group including one or more confidential records to be confidential. Map values. Next, the computer determines that each of the plurality of item value sets is any of 1 to n-1 of the two or more second item values associated with the same first item value. Each second item value is classified into one of a plurality of item value sets so as to contain the item value. Next, the computer probabilistically converts the first item value set in one item in the confidential record to one of the associated second item values. Next, the computer generates a disturbance record group in which the number of search hits for the second item value belonging to the same item value set is equalized by adding a dummy second item value based on the confidential record group. . Next, the computer attaches a flag indicating whether the second item value included in the record is true or false to the record in the disturbance record group. The computer then encrypts the disturbed records.
1態様によれば、暗号化されたデータへの頻度分析攻撃に対する安全性を向上させることができる。 According to one aspect, security against frequency analysis attacks on encrypted data can be improved.
以下、本実施の形態について図面を参照して説明する。なお各実施の形態は、矛盾のない範囲で複数の実施の形態を組み合わせて実施することができる。
〔第1の実施の形態〕
まず、第1の実施の形態について説明する。第1の実施の形態は、キーワードを複数の分割キーワードに確率的に変換し、分割キーワードを暗号化してデータベース(DB)に登録することで、秘密情報として管理するキーワードの頻度攪乱を実現するものである。このようにして頻度攪乱をしたデータ登録方法およびそのデータの検索方法を含む秘密情報管理方法は、SCPDK(Share Ciphertext with Probabilistically Divided Keywords)と呼ぶことができる。
Hereinafter, this embodiment will be described with reference to the drawings. It should be noted that each embodiment can be implemented by combining a plurality of embodiments within a consistent range.
[First embodiment]
First, a first embodiment will be described. In the first embodiment, a keyword is stochastically converted into a plurality of divided keywords, and the divided keywords are encrypted and registered in a database (DB), thereby realizing frequency disturbance of keywords managed as secret information. is. A confidential information management method including a method of registering data whose frequency is disturbed in this way and a method of retrieving that data can be called SCPDK (Share Ciphertext with Probabilistically Divided Keywords).
図1は、第1の実施の形態に係る秘密情報管理システムの一例を示す図である。図1には、秘密情報管理システムを用いた秘密情報管理方法の実現例を示している。秘密情報管理システムは、データ登録装置1、サーバ2、およびデータ利用装置3を有している。データ登録装置1、サーバ2、およびデータ利用装置3それぞれは、例えば秘密情報管理方法を実現するための各装置における処理手順が記述されたプログラムを実行することにより、秘密情報管理方法における各装置の処理を実施することができる。
FIG. 1 is a diagram showing an example of a confidential information management system according to the first embodiment. FIG. 1 shows an implementation example of a confidential information management method using a confidential information management system. The confidential information management system has a
データ登録装置1は、秘密情報管理方法を実現するために、記憶部1aと処理部1bとを有する。記憶部1aは、例えばデータ登録装置1が有するメモリ、またはストレージ装置である。処理部1bは、例えばデータ登録装置1が有するプロセッサ、または演算回路である。図示していないが、サーバ2とデータ利用装置3も、記憶部と処理部とを有する。例えばサーバ2の記憶部は、秘匿化データベース(DB)2aを記憶する。
The
データ登録装置1の記憶部1aは、秘匿対象の秘匿レコードを1つ以上含む秘匿レコード群4を記憶する。
データ登録装置1の処理部1bは、第2項目値の生成と分類とを行う(ステップS1)。具体的には処理部1bは、まず秘匿対象の秘匿レコードを1つ以上含む秘匿レコード群4における秘匿レコード内の一の項目に設定可能な複数の第1項目値それぞれに対して、n個(nは自然数)の第2項目値を対応付ける。図1の例では、第1項目値「小児科」は第2項目値「小児科0」、「小児科1」に対応付けられ、第1項目値「婦人科」は第2項目値「婦人科0」、「婦人科1」に対応付けられ、第1項目値「内科」は第2項目値「内科0」、「内科1」に対応付けられている。
The
The
なお一部の第1項目値については、対応する第2項目値が1つであることも許容される。対応する第2項目値が1つの場合、第1項目値と第2項目値とは同じ値であってもよい。 It is also permissible for some first item values to have one corresponding second item value. When there is one corresponding second item value, the first item value and the second item value may be the same value.
処理部1bは、複数の項目値集合5a~5cそれぞれが、同一の第1項目値に対応付けられた2個以上の第2項目値のうちの1個からn-1個のいずれかの個数の第2項目値を含むように、第2項目値それぞれを複数の項目値集合5a~5cのいずれかに分類する。例えば処理部1bは、項目値集合5aに「小児科0」と「内科0」を分類し、項目値集合5bに「小児科1」と「婦人科0」を分類し、項目値集合5cに「婦人科1」と「内科1」を分類する。このとき処理部1bは、複数の項目値集合において、属する第2項目値に対応する第1項目値の組み合わせが同じとなることを抑止する。
The
次に処理部1bは、秘匿レコード内の一の項目に設定されている第1項目値を、対応付けられた第2項目値のいずれかに確率的に変換する(ステップS2)。例えば各第2項目値には、ランダムに決定された選択確率が設定されている。処理部1bは、第1項目値に対して、対応付けられた第2項目値のうちの1つを、それぞれの選択確率に従った確率で選択し、その第1項目値を選択した第2項目値に変換する。
Next, the
処理部1bは、秘匿レコード群4に基づいて、ダミーの第2項目値の追加により、同一の項目値集合に属する第2項目値に対する検索のヒット件数の均等化を図った攪乱レコード群6を生成する(ステップS3)。例えば処理部1bは、項目値集合に属する第2項目値それぞれを同一の項目値集合に属する異なる第2項目値に全単射する全単射関係に従って、秘匿レコードそれぞれの一の項目に設定された第2項目値それぞれに対応するダミー値を生成する。次に処理部1bは、ダミー値が一の項目に設定された、秘匿レコードと同数のダミーレコードを有するダミーレコード群を生成する。そして処理部1bは、秘匿レコード群とダミーレコード群とを含む攪乱レコード群6を生成する。
Based on the
さらに処理部1bは、攪乱レコード群6内のレコードに、そのレコードに含まれる第2項目値の真偽を示すフラグを付与する(ステップS4)。例えば処理部1bは、秘匿レコードに真を示す第1フラグを付与し、ダミーレコードに偽を示す第2フラグを付与する。
Further, the
処理部1bは、攪乱レコード群を暗号化する(ステップS5)。例えば処理部1bは、秘匿レコードとダミーレコードそれぞれの一の項目に設定された第2項目値、秘匿レコードに付与された第1フラグ、並びにダミーレコードに付与された第2フラグを暗号化する。
The
そして処理部1bは、暗号化された攪乱レコード群6を、例えばサーバ2の秘匿化DB2aに格納する。
このようにして、ダミーレコードの追加によって頻度分析攻撃に対する安全性を向上させた攪乱レコード群6が、サーバ2の秘匿化DB2aに格納される。サーバ2は、秘匿化DB2aに格納されたデータに対する検索サービスをデータ利用装置3に提供する。
Then, the
In this way, the
データ利用装置3は、データ登録装置1が生成した項目値集合5a~5cの情報、および第1項目値と第2項目値との対応関係を示す情報を有している。例えばデータ利用装置3は、これらの情報をデータ登録装置1から取得する。またデータ利用装置3はデータ登録装置1の処理部1bと同じアルゴリズムで第1項目値に基づく第2項目値の生成および第2項目値の項目値群への分類を行ってもよい。
The
データ利用装置3は、検索者から検索条件の入力を受け付ける。検索条件には、例えば秘匿化DB2aの一の項目の検索項目値が示される。データ利用装置3は、検索条件に応じた検索クエリをサーバ2に送信する。例えばデータ利用装置3は、検索条件に示される一の項目の検索項目値を、検索項目値と同じ値の第1項目値に対応する第2項目値それぞれに変換する。データ利用装置3は、変換により得られた第2項目値を暗号文のまま検索する検索クエリをサーバ2に送信する。例えばデータ利用装置3は、第2項目値の暗号文の論理和を含む検索クエリをサーバ2に送信する。
The
サーバ2では、受信した検索クエリに応じて暗号文のまま検索を行う。例えばサーバ2は、検索クエリ内の暗号文のままの第2項目値と、秘匿化DB2a内の各レコードの暗号文の項目値とを照合する。サーバ2は、検索項目値に一致する項目値が設定されたレコードを含む検索結果をデータ利用装置3に送信する。
The
データ利用装置3は、サーバ2から、秘匿化DB2a内の検索クエリにヒットした検出レコードを取得する。そしてデータ利用装置3は、検出レコードに付与されたフラグに基づいて、検出レコード内の第2項目値にヒットした値の真偽を判断し、真の検索結果を表示する。
The
例えばデータ利用装置3は、検索結果に含まれる秘匿レコードとダミーレコードそれぞれの一の項目に設定された項目値、秘匿レコードに付与された第1フラグ、およびダミーレコードに付与された第2フラグを復号する。次にデータ利用装置3は、第1フラグおよび第2フラグに基づいて、検索結果からダミーレコードを除去し、検索条件を満たす秘匿レコードを取得する。そしてデータ利用装置3は、真の検索結果を例えば表示画面に表示する。
For example, the
このようにして秘匿レコード群4内での第1項目値それぞれの出現頻度を攪乱し、秘匿化DB2aに対する頻度分析攻撃への安全性を向上させることができる。
なお処理部1bは、ダミーレコード群が複数ある場合、秘匿レコードの一の項目に設定された第2項目値が、ダミーレコード群ごとに異なる第2項目値に変換されるように、ダミーレコード群ごとに異なる全単射関係を利用することができる。これにより、頻度分析攻撃に対する安全性をさらに向上させることができる。
In this way, the frequency of appearance of each first item value in the
Note that, when there are a plurality of dummy record groups, the
処理部1bは、1または複数生成されたダミーレコード群ごとに異なり、第1フラグとも異なる値の第2フラグを、ダミーレコード群それぞれに含まれるダミーレコードに設定してもよい。例えば処理部1bは、秘匿レコードの識別子と秘匿レコード群の群番号を示す値とを含む第1フラグを秘匿レコードに付与し、ダミーレコードの識別子と、属するダミーレコード群の群番号とを含む第2フラグをダミーレコードに設定する。これにより、第2フラグの値に基づいてダミーレコードが属するダミーレコード群を識別することができる。その結果、ダミーレコード内の第2項目値を第1項目値に逆変換することで、ダミーレコードに基づいて元のレコードを再現することが可能となる。
The
データ登録装置1は、ダミーレコードを用いずに頻度攪乱を実現することもできる。例えば処理部1bは、秘匿レコード内の一の項目に設定されている第2項目値を、第2項目値が属する項目値集合に対応付けられ、同じ項目値集合に属するいずれの第2項目値に対する検索にもヒットする第3項目値に変換することで攪乱レコードを生成する。そして処理部1bは、生成した攪乱レコードを含む攪乱レコード群を生成する。これにより、ダミーレコードを用いずに済み、秘匿化DB2aに登録するデータ量を削減することができる。
The
第2項目値を第3項目値に変換する場合、処理部1bは、例えば攪乱レコードに、変換前の第2項目値を示す情報を含む第3フラグを付与する。処理部1bは、例えば秘匿レコードの識別子と、変換前の第2項目値に対応する要素の項目値集合内での要素番号とを含む第3フラグを、秘匿レコードに付与する。さらに処理部1bは、攪乱レコードの一の項目に設定された第3項目値、および付与された第3フラグを暗号化する。
When converting the second item value into the third item value, the
データ利用装置3は、第3フラグを用いて第3項目値を変換元の第2項目値に戻し、その第2項目値に対応する第1項目値を取得できる。例えばデータ利用装置3は、検索条件に示される一の項目の検索項目値を、検索項目値と同じ値の第1項目値に対応する1または複数の第2項目値それぞれに変換後、第2項目値を、その第2項目値に対応する第3項目値に変換する。そしてデータ利用装置3は、第3項目値の暗号文を含む検索クエリをサーバ2に送信する。
The
その後、データ利用装置3は、サーバ2から、秘匿化DB2a内の検索クエリによる検索結果を取得する。次にデータ利用装置3は、検索結果に含まれる攪乱レコードそれぞれに設定された第3項目値と第3フラグとを復号する。さらにデータ利用装置3は、第3フラグに基づいて第3項目値の変換元の第2項目値を判断する。そしてデータ利用装置3は、検索条件を満たす第1項目値に対応する第2項目値の暗号文が格納された攪乱レコードを、検索結果から抽出する。
After that, the
第1項目値が数値の場合、数値範囲検索が行われることにより、暗号文の元の平文の数値の並びが解析され、検索対象の絞り込みに利用される可能性がある。処理部1bは、複数の第1項目値が数値の場合、第2項目値を複数の項目値集合5a~5cのいずれかに分類する際に、数値の連続性を考慮した分類を行う。例えば処理部1bは、複数の第1項目値が数値の場合、第1数値範囲内の連続する複数の数値それぞれに対応する第2項目値を含む項目値集合に、第1数値範囲と重複しない第2数値範囲内の連続する数値それぞれに対応する第2項目値が含まれるようにする。これにより、数値の検索が行われた場合に、攻撃者によって、その数値の候補が、狭い数値範囲内の値に絞り込まれてしまうことを抑止できる。
When the first item value is a numerical value, a sequence of numerical values in the original plaintext of the ciphertext may be analyzed by performing a numerical range search and used to narrow down the search target. When the plurality of first item values are numerical values, the
〔第2の実施の形態〕
次に第2の実施の形態について説明する。第2の実施の形態は、多数の医療機関が有する患者データを、患者データ収集活用基盤を用いて有効活用するものである。例えば患者データ収集活用基盤により、複数の病院のデータを統合してビッグデータ化し、ビッグデータを複数の製薬企業で活用できるようにする。これにより、製薬企業や病院は、新薬開発のための調査(対象疾患の患者数や所在地域など)を容易に把握できるようになる。
[Second embodiment]
Next, a second embodiment will be described. The second embodiment effectively utilizes patient data possessed by many medical institutions using a patient data collection and utilization platform. For example, the patient data collection and utilization platform integrates data from multiple hospitals into big data so that it can be used by multiple pharmaceutical companies. As a result, pharmaceutical companies and hospitals will be able to easily grasp surveys for new drug development (number of patients with target diseases, location, etc.).
患者データ収集活用基盤は、ICT(Information and Communications Technology)企業が管理するクラウドを用いて実現するのが効率的である。クラウドを用いることで、病院や製薬企業からのビッグデータへのアクセスが容易となる。しかしながら、患者データは要配慮個人情報であり、法的に参照が許される手続きを経たとしても、漏洩や目的外利用のリスクを考慮し、クラウドの管理者に対しても秘匿しておくのが適切である。また製薬企業による検索の内容は製薬企業の戦略に関する重要な企業秘密に結びつくため、検索内容についても秘匿しておくことが望ましい。そこで、患者データ収集活用基盤を実現するクラウドは、例えば暗号化したまま検索可能な暗号化方式を用いて、暗号化された患者データをDBで管理すると共に、暗号化された検索キーワードを用いて、暗号文のままでデータ検索を行う。これにより、クラウドの管理者に対しても、患者データと検索クエリの内容を秘匿しておくことができる。 It is efficient to implement the patient data collection and utilization platform using a cloud managed by an ICT (Information and Communications Technology) company. Using the cloud will facilitate access to big data from hospitals and pharmaceutical companies. However, patient data is personal information that requires special care, and even if legally allowed to refer to it, it should be kept confidential even from the cloud administrator in consideration of the risk of leaks and unintended use. Appropriate. In addition, since the content of searches by pharmaceutical companies is linked to important trade secrets related to strategies of pharmaceutical companies, it is desirable to keep the content of searches confidential as well. Therefore, the cloud that realizes the patient data collection and utilization platform manages encrypted patient data in a DB, for example, using an encryption method that allows searching while encrypted, and uses encrypted search keywords. , data retrieval is performed with the ciphertext as it is. As a result, patient data and the content of search queries can be kept secret even from the cloud administrator.
複数の組織(例えば病院)のデータを同じ仕組みで使用する場合、DBのフォーマットや格納する属性名と値の仕様は、共通の仕様として公開される。しかもシステム開発も担うクラウドの管理者は、秘匿化のアルゴリズムを熟知している。すると、クラウドの管理者の中に悪意を有する者が存在した場合、患者データを暗号文のまま管理するだけでは不十分な場合があり得る。 When data of multiple organizations (for example, hospitals) are used with the same mechanism, specifications of the DB format and attribute names and values to be stored are published as common specifications. Moreover, cloud administrators, who are also responsible for system development, are familiar with encryption algorithms. Then, if there is a person with malicious intent among the cloud administrators, it may not be enough to manage patient data as it is in ciphertext.
ここで、絞り込み検索などを用いて効率よく検索を行うために、データは行列形式で格納することを想定する。この場合、例えば項目「性別」のラベルが振られた列では平文候補が「男」または「女」の2種類しかなく、秘匿化DB内には同じ平文に基づく暗号文が多数存在することとなる。そして、攻撃者となり得るクラウドの管理者はこれらの暗号文を比較参照できる。 Here, it is assumed that data is stored in a matrix format in order to perform efficient retrieval using narrowed retrieval or the like. In this case, for example, in the column labeled with the item “gender”, there are only two types of plaintext candidates, “male” and “female”, and there are many ciphertexts based on the same plaintext in the anonymization DB. Become. A cloud administrator, who could be an attacker, can then compare and refer to these ciphertexts.
さらに、大きな病院では広報の一環として疾患別患者数などの情報を公開している。同様にあらゆる情報について、このような頻度情報が公開される可能性がある。そのため、すべてのデータの頻度分布は公知となる場合がある。例えば複数の項目の値の組み合わせ頻度(肺がんの男性の人数など)についても公知となり得る。また、医療情報は日々新たな情報が追加され、利活用者は最新の情報を求める。よって、秘匿化DBは逐次最新の平文DBとの差分が反映できることが重要である。 In addition, large hospitals disclose information such as the number of patients by disease as part of public relations. Similarly, for any information, such frequency information may be published. Therefore, the frequency distribution of all data may be publicly known. For example, the combination frequency of the values of multiple items (the number of men with lung cancer, etc.) can also be publicly known. In addition, new information is added to medical information on a daily basis, and users demand the latest information. Therefore, it is important that the anonymization DB can reflect the difference from the latest plaintext DB sequentially.
以上により、第2の実施の形態では、以下の条件(i)~(v)下でも秘匿化DBの内容や検索内容が、秘匿化DBを管理するクラウド管理者を含む攻撃者に対し秘匿できることを、セキュリティ要件とする。
(i)平文の種類や値は公知であり、極めて種類が少ない場合もあり得る。
(ii)攻撃者は、秘匿化DB内に存在するすべての暗号文と暗号化された検索クエリおよびこれに合致した秘匿化DB内の暗号文をすべて参照可能である。
(iii)意図的に秘密情報として管理する情報(秘密鍵)以外の、暗号化や照合のアルゴリズムは公知である。
(iv)すべてのデータの頻度分布は組み合わせも含めて公知である。
(v)秘匿化DBは逐次更新され、攻撃者は差分情報を参照可能である。
As described above, in the second embodiment, even under the following conditions (i) to (v), the content of the anonymization DB and the search content can be concealed from attackers including the cloud administrator who manages the anonymization DB. is a security requirement.
(i) Plaintext types and values are publicly known, and there may be cases where there are very few types.
(ii) An attacker can refer to all ciphertexts and encrypted search queries existing in the anonymization DB and all matching ciphertexts in the anonymization DB.
(iii) Algorithms for encryption and verification other than information (secret key) intentionally managed as secret information are publicly known.
(iv) The frequency distribution of all data, including combinations, is publicly known.
(v) The anonymization DB is updated sequentially, and the attacker can refer to the difference information.
条件(i)~(v)を満たす秘匿化DBがあるとき、容易に想定される攻撃手法としては総当たり攻撃が考えられる。平文の種類が少なく公知なため、暗号化鍵が公知である場合、攻撃者は全種類の平文を暗号化して平文と暗号文の辞書を作成することで、秘匿化DB内のデータや検索クエリを容易に解読できてしまう。よって、セキュリティ要件を満たすには、暗号化鍵は秘密鍵とすることとなる。 When there is an anonymized DB that satisfies the conditions (i) to (v), a brute force attack can be considered as an attack method that can be easily assumed. Since the types of plaintext are few and publicly known, if the encryption key is known, an attacker can encrypt all types of plaintext and create a dictionary of plaintext and ciphertext. can be easily deciphered. Therefore, in order to satisfy the security requirements, the encryption key should be a private key.
また、秘匿化DBの管理者でもある攻撃者は照合判定の結果を参照できる。そのため、ある検索クエリに対し一致判定された暗号文はすべて同じ平文に対応することが分かってしまう。よって、同じ平文でも暗号化するたびに異なる暗号文となる確率的暗号を用いても、攻撃者は同じ平文が同じ暗号文となる確定的暗号のような暗号文に変換できてしまう。そして、攻撃者はデータの頻度分布を知っているため、暗号文の頻度と比較することで容易に秘匿データの内容を推定できてしまう。頻度分布を正確に知らない場合でも、例えば婦人科の性別データを参照すると、多い方の暗号文の平文は「女」であると容易に特定できる。よって、暗号化だけでなく頻度攪乱などの対策を採ることが重要となる。 In addition, the attacker who is also the administrator of the anonymization DB can refer to the result of the collation determination. Therefore, it turns out that all the ciphertexts determined to match a certain search query correspond to the same plaintext. Therefore, even if a probabilistic cipher is used in which even the same plaintext has different ciphertexts each time it is encrypted, an attacker can convert the same plaintext into ciphertexts such as deterministic ciphers in which the same ciphertexts are the same. Since the attacker knows the frequency distribution of the data, he/she can easily estimate the content of the secret data by comparing it with the frequency of the ciphertext. Even if the frequency distribution is not accurately known, for example, by referring to gynecological sex data, it is easy to identify that the plaintext of the more frequent ciphertexts is "female." Therefore, it is important to take countermeasures such as frequency disturbance in addition to encryption.
そこで第2の実施の形態では、条件(i)~(v)下でも秘匿化DBの内容や検索内容を、攻撃者に対し秘匿できる秘密情報管理システムを提供する。第2の実施の形態に係る秘密情報管理システムでは、ダミーデータを追加することで頻度攪乱を実現する。この際、秘密情報管理システムは、データの増加率は一定に保ち、不要なストレージや検索処理の増加を防止する。そして秘密情報管理システムは、ダミーレコードを追加することにより、ある1種類の項目値に対し、出現頻度が同程度となる他の種類の項目値の絞り込みを抑止する。例えば秘密情報管理システムは、攻撃者が検索クエリにヒットしたレコード数からその検索クエリで指定された項目値の候補を絞り込もうとしても、容易には絞り込めないようにする。 Therefore, the second embodiment provides a confidential information management system that can conceal the contents of the anonymized DB and the search contents from an attacker even under the conditions (i) to (v). In the confidential information management system according to the second embodiment, frequency disturbance is realized by adding dummy data. At this time, the secret information management system keeps the data growth rate constant to prevent unnecessary increases in storage and search processing. By adding a dummy record, the secret information management system suppresses narrowing down of other types of item values that have similar appearance frequencies to one type of item value. For example, the secret information management system prevents an attacker from easily narrowing down candidates for item values specified by a search query based on the number of records hit by the search query.
図2は、秘密情報管理システムの一例を示す図である。第2の実施の形態では、患者データ収集活用基盤12がクラウドによって構築されている。患者データ収集活用基盤12はデータ管理サーバ100を有している。データ管理サーバ100は、患者データを暗号文のままで管理するコンピュータである。データ管理サーバ100は、ネットワーク20を介して、病院13,14のデータ登録サーバ200,300と製薬企業15,16の端末装置400,500に接続されている。
FIG. 2 is a diagram showing an example of a confidential information management system. In the second embodiment, the patient data collection and
病院13のデータ登録サーバ200は、病院13で受診した患者の電子カルテなどの患者データを蓄積し、その患者データを暗号化してデータ管理サーバ100に提供するコンピュータである。同様に、病院14のデータ登録サーバ300は、病院14で受診した患者の電子カルテなどの患者データを蓄積し、その患者データを暗号化してデータ管理サーバ100に提供する。
The
製薬企業15の端末装置400は、データ管理サーバ100で管理されている患者データを検索するために、製薬企業15の社員が使用するコンピュータである。製薬企業16の端末装置500は、データ管理サーバ100で管理されている患者データを検索するために、製薬企業16の社員が使用するコンピュータである。
The
このような秘密情報管理システムは、例えば医療情報を活用した新薬開発の効率化に有用である。例えば、製薬企業15,16が、治験を行う場合、対象疾患の患者がどの程度存在するか等を考慮して計画を立案することで、治験の成功率を向上させることができる。そこで、患者データ収集活用基盤12で多数の病院13,14に分散する患者の電子カルテから抽出した患者データを集中管理することで、目的の疾患を有する患者の情報を容易に得ることが可能となる。
Such a secret information management system is useful, for example, in improving the efficiency of new drug development utilizing medical information. For example, when the
なおデータ登録サーバ200,300は、第1の実施の形態におけるデータ登録装置1の一例である。データ管理サーバ100は、第1の実施の形態におけるサーバ2の一例である。端末装置400,500は、第1の実施の形態におけるデータ利用装置3の一例である。
The
図3は、データ管理サーバのハードウェアの一構成例を示す図である。データ管理サーバ100は、プロセッサ101によって装置全体が制御されている。プロセッサ101には、バス109を介してメモリ102と複数の周辺機器が接続されている。プロセッサ101は、マルチプロセッサであってもよい。プロセッサ101は、例えばCPU(Central Processing Unit)、MPU(Micro Processing Unit)、またはDSP(Digital Signal Processor)である。プロセッサ101がプログラムを実行することで実現する機能の少なくとも一部を、ASIC(Application Specific Integrated Circuit)、PLD(Programmable Logic Device)などの電子回路で実現してもよい。
FIG. 3 is a diagram showing a configuration example of hardware of the data management server. The
メモリ102は、データ管理サーバ100の主記憶装置として使用される。メモリ102には、プロセッサ101に実行させるOS(Operating System)のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、メモリ102には、プロセッサ101による処理に利用する各種データが格納される。メモリ102としては、例えばRAM(Random Access Memory)などの揮発性の半導体記憶装置が使用される。
The
バス109に接続されている周辺機器としては、ストレージ装置103、GPU(Graphics Processing Unit)104、入力インタフェース105、光学ドライブ装置106、機器接続インタフェース107およびネットワークインタフェース108がある。
Peripheral devices connected to the bus 109 include a
ストレージ装置103は、内蔵した記録媒体に対して、電気的または磁気的にデータの書き込みおよび読み出しを行う。ストレージ装置103は、コンピュータの補助記憶装置として使用される。ストレージ装置103には、OSのプログラム、アプリケーションプログラム、および各種データが格納される。なお、ストレージ装置103としては、例えばHDD(Hard Disk Drive)やSSD(Solid State Drive)を使用することができる。
The
GPU104には、モニタ21が接続されている。GPU104は、プロセッサ101からの命令に従って、画像をモニタ21の画面に表示させる。GPU104は、グラフィックコントローラと呼ばれることもある。モニタ21としては、有機EL(Electro Luminescence)を用いた表示装置や液晶表示装置などがある。
A
入力インタフェース105には、キーボード22とマウス23とが接続されている。入力インタフェース105は、キーボード22やマウス23から送られてくる信号をプロセッサ101に送信する。なお、マウス23は、ポインティングデバイスの一例であり、他のポインティングデバイスを使用することもできる。他のポインティングデバイスとしては、タッチパネル、タブレット、タッチパッド、トラックボールなどがある。
A keyboard 22 and a mouse 23 are connected to the
光学ドライブ装置106は、レーザ光などを利用して、光ディスク24に記録されたデータの読み取りを行う。光ディスク24は、光の反射によって読み取り可能なようにデータが記録された可搬型の記録媒体である。光ディスク24には、DVD(Digital Versatile Disc)、DVD-RAM、CD-ROM(Compact Disc Read Only Memory)、CD-R(Recordable)/RW(ReWritable)などがある。
The
機器接続インタフェース107は、データ管理サーバ100に周辺機器を接続するための通信インタフェースである。例えば機器接続インタフェース107には、メモリ装置25やメモリリーダライタ26を接続することができる。メモリ装置25は、機器接続インタフェース107との通信機能を搭載した記録媒体である。メモリリーダライタ26は、メモリカード27へのデータの書き込み、またはメモリカード27からのデータの読み出しを行う装置である。メモリカード27は、カード型の記録媒体である。
The
ネットワークインタフェース108は、ネットワーク20に接続されている。ネットワークインタフェース108は、ネットワーク20を介して、他のコンピュータまたは通信機器との間でデータの送受信を行う。
データ管理サーバ100は、以上のようなハードウェア構成によって、第2の実施の形態の処理機能を実現することができる。なおデータ登録サーバ200,300および端末装置400,500も、データ管理サーバ100と同様のハードウェアにより実現することができる。さらに図1に示したデータ登録装置1、サーバ2、およびデータ利用装置3も、データ管理サーバ100と同様のハードウェアにより実現することができる。
The
データ管理サーバ100は、例えばコンピュータ読み取り可能な記録媒体に記録されたプログラムを実行することにより、第2の実施の形態の処理機能を実現する。データ管理サーバ100に実行させる処理内容を記述したプログラムは、様々な記録媒体に記録しておくことができる。例えば、データ管理サーバ100に実行させるプログラムをストレージ装置103に格納しておくことができる。プロセッサ101は、ストレージ装置103内のプログラムの少なくとも一部をメモリ102にロードし、プログラムを実行する。またデータ管理サーバ100に実行させるプログラムを、光ディスク24、メモリ装置25、メモリカード27などの可搬型記録媒体に記録しておくこともできる。可搬型記録媒体に格納されたプログラムは、例えばプロセッサ101からの制御により、ストレージ装置103にインストールされた後、実行可能となる。またプロセッサ101が、可搬型記録媒体から直接プログラムを読み出して実行することもできる。
The
次に、暗号データを格納するDB(秘匿化DB)に対する頻度分析攻撃について説明する。
図4は、頻度分析攻撃の一例を示す図である。平文のデータを記憶するDB31に基づいて、秘匿化DB32が生成されているものとする。例えばDB31の各レコードに含まれる項目ごとの項目値が個別に暗号化され、秘匿化DB32に格納されている。なお第2の実施の形態では、各項目に設定される項目値をキーワードと呼ぶこともある。
Next, a frequency analysis attack on a DB (anonymized DB) that stores encrypted data will be described.
FIG. 4 is a diagram showing an example of a frequency analysis attack. It is assumed that an
図4の例では、同一の平文からは同一の暗号データが生成される確定的暗号化技術によって暗号化が行われているものとする。また攻撃者33は、元のDB31の項目に用いられている項目名(「診療科」、「性別」、「年齢層」)および各項目に格納され得るキーワードの候補(キーワード一覧)のすべてを知っているものとする。
In the example of FIG. 4, it is assumed that encryption is performed by a deterministic encryption technique that generates the same encrypted data from the same plaintext. In addition, the
攻撃者33は、暗号文の出現頻度と公知の頻度情報を比較して、暗号文に対応する平文を類推することができる。例えば秘匿化DB32の2列目には、値が2種類しか登録されていない。そのため攻撃者33は、秘匿化DB32の2列目の項目「性別」に該当すると類推することができる。
The
さらに攻撃者33は、秘匿化DB32の2列目の値「tmuesf」と「uylgm」との出現頻度を比較し、「uylgm」の方が多いことを確認できる。すると攻撃者33は、人口分布を考えると出現頻度が多い方の「uylgm」が、「女」に対応する暗号データであると類推できる。
Furthermore, the
攻撃者33は、複数の項目値の組み合わせによっても内容を類推できる。例えば攻撃者33は、秘匿化DB32の1列目の値「sEfgsr」に対応する2列目の値は「uylgm」のみであることを確認できる。すると攻撃者33は、片方の性別との組み合わせしかない値は、診療科における「婦人科」であると類推することができ、「uylgm」の平文が「女」であることを強く確信できる。
The
また攻撃者33は、秘匿化DB32の1列目の値「:opfyy」に対応する3列目の値は「jr8olt」のみであることを確認できる。すると攻撃者33は、残りの3列目は年齢層であり、特定の年齢層との組み合わせしかない診療科は「小児科」であり、対応する年齢層は「児童」であると類推できる。
Also, the
なお、図4の例では、確定的暗号化によって暗号化された場合を想定しているが、確率的暗号化で暗号化された秘匿化DBに対しても頻度分析攻撃は可能である。確率的暗号化とは、同じ平文でも暗号化するたびに異なる暗号文に暗号化する暗号化技術である。確率的暗号化を行うと、同じ平文から生成された複数の暗号文のそれぞれの値が異なるため、暗号化DB内を参照しただけでは、元の平文の出現頻度を数えられない。そのため、確率的暗号化で暗号することで、確定的暗号化よりも頻度分析攻撃が困難となる。 In the example of FIG. 4, it is assumed that the DB is encrypted by deterministic encryption, but a frequency analysis attack is also possible for an anonymized DB encrypted by probabilistic encryption. Probabilistic encryption is an encryption technology that encrypts the same plaintext into different ciphertext each time it is encrypted. When probabilistic encryption is performed, multiple ciphertexts generated from the same plaintext have different values, so the appearance frequency of the original plaintext cannot be counted simply by referring to the encryption DB. Therefore, encryption using probabilistic encryption makes frequency analysis attacks more difficult than deterministic encryption.
ただし、確率的暗号化を用いても、秘匿化DBを検索対象とする秘匿化検索を許容すると、攻撃者33は、検索クエリに一致した暗号文はすべて同じ平文の暗号文であることが分かり、それらの暗号文は確定的暗号に変換できてしまう。そのため確率的暗号化を用いても、攻撃者33は、データが活用されるに従って秘匿化DB内の多数の暗号文を確定的暗号に変換でき、確定的暗号化で暗号化した場合と同様に頻度分析攻撃が可能となる。
However, even if probabilistic encryption is used, if anonymized searches for anonymized DBs are allowed, the
このように頻度分析攻撃は、平文と暗号文に使用される文字や文字列の出現頻度を手掛りとして平文を類推し、盗み見る攻撃手法である。そして、元の平文の項目値に偏りがある場合に、その平文を暗号化した暗号文は、頻度分析攻撃に対して脆弱となる。 In this way, the frequency analysis attack is an attack technique in which the appearance frequency of characters and character strings used in plaintext and ciphertext is used as a clue to infer the plaintext and to steal a glance. If the item values of the original plaintext are biased, the ciphertext obtained by encrypting the plaintext becomes vulnerable to frequency analysis attacks.
そこで頻度分析攻撃に対する安全性を高めるために、ダミーデータを用いて、元の平文の出現頻度を攪乱させることが考えられる。このとき、元の平文での項目値の種類や、各項目値の出現頻度を考慮せずにダミーデータ内の各項目の項目値(ダミー値)を追加しても、出現頻度を適切に攪乱させることはできない。 Therefore, in order to increase security against frequency analysis attacks, it is conceivable to use dummy data to disturb the appearance frequency of the original plaintext. At this time, even if the item value (dummy value) of each item in the dummy data is added without considering the type of item value in the original plaintext and the appearance frequency of each item value, the appearance frequency is appropriately disturbed. I can't let you.
例えば元の平文のデータにおける項目値の出現頻度を考慮して、適切な内容のダミー値を有するダミーデータを登録することで、確実な頻度攪乱を実現することができる。この場合、データ登録サーバ200,300は、真のデータの頻度分布と同じ分布であるが、それぞれの値が別の値に変換されたダミーレコード群を生成する。このダミーレコード群の各ダミーレコードは真のデータのレコードに紐付き、1対1で対応する。そしてデータ登録サーバ200,300は、真のデータのレコードの項目値を別の項目値に変換して対応するダミーレコードのダミー値として設定する。この変換規則を定めたものを変換集合と呼ぶ。
For example, by registering dummy data having dummy values with appropriate contents in consideration of the appearance frequency of item values in the original plaintext data, reliable frequency disturbance can be realized. In this case, the
以下に、第2の実施の形態に使用する文字または用語の意味について説明する。
「k」は、予め設定されたセキュリティパラメータであり、2以上の整数が設定される。システムの管理者は、1つの項目の複数のキーワードのうち、頻度分析攻撃を受けたときに攻撃者33が絞り込むことを許容可能な最小のキーワード数をkに設定する。
The meanings of characters and terms used in the second embodiment will be explained below.
“k” is a preset security parameter and is set to an integer of 2 or more. The system administrator sets k to be the minimum number of keywords that the
「真のデータ」は、平文のDBに格納されているデータである。「真のデータのレコード」は、真のデータ内のキーワードを含むレコードである。なお真のデータのレコードは、第1の実施の形態の秘匿レコードの一例である。「ダミー値」は、真のデータの頻度分布を攪乱するために追加した値である。「ダミーレコード」は、ダミー値を含むレコードである。「真の値」は、平文のDBに設定可能なキーワードである。真の値は、第1の実施の形態における第1項目値の一例である。 "True data" is data stored in the plaintext DB. A "true data record" is a record that contains keywords in the true data. Note that the true data record is an example of the confidential record of the first embodiment. A "dummy value" is a value added to disturb the frequency distribution of true data. A "dummy record" is a record that contains dummy values. "True value" is a keyword that can be set in the plaintext DB. A true value is an example of the first item value in the first embodiment.
「G」は群数であり、ダミーデータの追加によりデータ量が平文データの何倍になるかを示す値でもある。「群」は、複数のレコードの集合である。真のデータのレコードの集合が群「0」である。真のデータのレコード数と同数のダミーレコードを含むG-1個の群「1,2,・・・,G-1」が生成される。群「0」に含まれる1つのレコードに対し、G-1個のダミーレコードが生成され、G-1個のダミーレコードは、それぞれ群「1,2,・・・,G-1」に1つずつ追加される。「フラグ」は、端末装置400,500がダミーレコードを見分けられるように、ダミーレコードに付与される値である。
"G" is the number of groups, and is also a value indicating how many times the amount of data becomes the plaintext data due to the addition of dummy data. A "group" is a set of multiple records. The set of true data records is group "0". G−1 groups “1, 2, . G−1 dummy records are generated for one record included in group “0”, and G−1 dummy records are assigned to group “1, 2, . . . , G−1” respectively. added one by one. A "flag" is a value given to a dummy record so that the
「変換集合」は、各列(項目)について、真の値、分割キーワード(真の値から1つまたは複数生成されたキーワード)、またはダミー要素を含む集合である。変換集合には、1つの真の値に対してどのような値のダミーレコードを追加するかを決定するためのルールが表されている。変換集合の要素数は群数Gと等しい。変換集合は、分割クエリの攪乱や、秘匿化検索結果の復元にも用いられる。 A “transformation set” is a set including true values, split keywords (one or more keywords generated from true values), or dummy elements for each column (item). The conversion set expresses rules for determining what values of dummy records to add for one true value. The number of elements in the transformation set is equal to the number G of groups. Transformation sets are also used to perturb split queries and restore anonymized search results.
「j」は列番号である。jは、レコードに登録された値の項目を特定するインデックスとして用いられる。「Xj」は、レコード内のj番目の列のフィールドに設定可能な項目値(キーワード)の種類数である。 "j" is the column number. j is used as an index specifying the item of the value registered in the record. “X j ” is the number of types of item values (keywords) that can be set in the field of the j-th column in the record.
「ダミー要素」は、XjがGより小さいかまたはGの倍数でない場合、変換集合に含める要素の不足を埋めるためのダミーの要素である。ダミー要素は、キーワード一覧には含まれない値である。 A "dummy element" is a dummy element to fill in the missing elements for inclusion in the transform set when X j is less than G or not a multiple of G. A dummy element is a value that is not included in the keyword list.
次に、元の平文のデータにおける項目値の出現頻度を考慮したダミーデータの登録手法について説明する。
ダミーデータの登録手法の一例として、ダミー要素を用いる方法が考えられる。ダミー要素を用いる場合、データ登録サーバ200,300は、各項目の取り得るキーワードまたはダミー値から任意にG個選んだものを要素として変換集合を生成する。そしてデータ登録サーバ200,300は、各項目の取り得るキーワードがいずれか1つの変換集合の要素として含まれるまで変換集合を生成する。
Next, a method of registering dummy data in consideration of the appearance frequency of item values in the original plaintext data will be described.
As an example of a method of registering dummy data, a method using dummy elements is conceivable. When dummy elements are used, the
図5は、ダミー要素を用いた変換集合の生成例を示す図である。図5の例では、真のデータのレコードは、「血圧」と「血液型」の項目が含まれているものとする。キーワードリスト34には、項目ごとに、その項目に設定可能なキーワードが登録されている。図5の例では、「血圧」に設定可能な項目値が3種類(正常、低血圧、高血圧)であり、「血液型」に設定可能な項目値が8種類(A+、B+、O+、AB+、A-、B-、O-、AB-)である。
FIG. 5 is a diagram illustrating an example of generating a transformation set using dummy elements. In the example of FIG. 5, it is assumed that the true data record includes the items "blood pressure" and "blood type." Keywords that can be set for each item are registered in the
図5の変換集合一覧35には、k=3,G=4の場合に、3種類のキーワードをもつ項目「血圧」と8種類のキーワードをもつ項目「血液型」の2項目それぞれに対応して生成された変換集合35a,35b,35cが示されている。項目「血圧」に対しては、{正常、低血圧、高血圧、D1}を要素として含む変換集合35aが1つだけ生成されている。「D1」は、ダミー要素である。項目「血液型」に対しては、{A+,B+,O+,AB+}を要素として含む変換集合35bと、{A-,B-,O-,AB-}を要素として含む変換集合35cとの2つが生成されている。
In the conversion set
変換集合35a,35b,35cは、循環リスト構造となっており、要素が順番に配置されている。変換集合35a,35b,35c内の各要素には、先頭から順に、0から昇順の要素番号が付与される。例えば変換集合35aでは、図中の左端を先頭とすると、「正常」が先頭の要素(要素番号「0」)であり、「低血圧」が次の要素(要素番号「1」)である。循環リスト構造となっているため、例えば最後の要素「D1」の次の要素は「正常」となる。 The conversion sets 35a, 35b, and 35c have a circular list structure, and the elements are arranged in order. Each element in the transformation sets 35a, 35b, and 35c is assigned an element number in ascending order from 0, starting from the top. For example, in the conversion set 35a, "normal" is the first element (element number "0") and "hypotension" is the next element (element number "1"), starting from the left end in the figure. Because of the circular list structure, for example, the element following the last element "D1" is "normal".
データ登録サーバ200,300は、真のデータのレコードのキーワードを、変換集合35a,35b,35cに基づいて変換することで、ダミーレコードに設定するダミー値を生成する。例えばデータ登録サーバ200,300は、真のデータのレコードの1つのキーワードに基づいて、ダミーレコード群ごとに、そのダミーレコード群内のダミーレコードに設定するダミー値を1つ生成する。
The
図6は、ダミー要素を用いた場合の項目値の変換例を示す図である。例えばデータ登録サーバ200,300は、真のデータのレコードについて、項目ごとに登録されているキーワードを参照し、そのキーワードが含まれる変換集合と、そのキーワードに該当する要素baを特定する。aは0以上の整数の要素番号であり、要素baは要素番号aの要素である。そしてデータ登録サーバ200,300は、真のデータに含まれるキーワードの要素baに基づいて、以下の式(1)により、群番号gのダミーレコード群のダミー値ca,gを、変換集合を参照して決定する。
ca,g=bmod(a+g,G) (1)
図6の例では、真のデータのレコードに出現する項目値は「低血圧」であるものとする。ダミーレコード群が3つである(G=4)ため、データ登録サーバ200,300は、キーワード「低血圧」を含む変換集合35aに基づいて、3つのダミーレコード群(g=1,2,3)それぞれのダミーレコードに設定するダミー値を生成する。まずデータ登録サーバ200,300は、キーワード「低血圧」に対応する要素の変換集合35a内での要素番号「1」(a=1)を取得する。
FIG. 6 is a diagram showing an example of conversion of item values when dummy elements are used. For example, the
c a,g =b mod(a+g,G) (1)
In the example of FIG. 6, it is assumed that the item value appearing in the true data record is "hypotension". Since there are three dummy record groups (G=4), the
データ登録サーバ200,300は、群番号「1」(g=1)のダミーレコード群のダミー値c1,1を生成する場合、まず、mod(1+1,4)=2を計算する。そしてデータ登録サーバ200,300は、計算して得られた値「2」を要素番号とする変換集合35a内の要素b2に対応するキーワード「高血圧」を、群番号「1」のダミーレコード群に設定するダミー値に決定する。
When the
データ登録サーバ200,300は、群番号「2」(g=2)のダミーレコード群のダミー値c1,2を生成する場合、まず、mod(1+2,4)=3を計算する。そしてデータ登録サーバ200,300は、計算して得られた値「3」を要素番号とする変換集合35a内の要素b3に対応するダミー要素「D1」を、群番号「2」のダミーレコード群に設定するダミー値に決定する。
The
データ登録サーバ200,300は、群番号「3」(g=3)のダミーレコード群のダミー値c1,3を生成する場合、まず、mod(1+3,4)=0を計算する。そしてデータ登録サーバ200,300は、計算して得られた値「0」を要素番号とする変換集合35a内の要素b0に対応するキーワード「正常」を、群番号「3」のダミーレコード群に設定するダミー値に決定する。
The
なお、図6に示したようなキーワードの変換元と変換先との関係は、全単射の関係の一例である。全単射関係を満たしていれば、図6に示す例とは別の規則で変換元のキーワードと変換先のキーワードまたはダミー要素との関係を定義してもよい。 Note that the relationship between the conversion source and the conversion destination of a keyword as shown in FIG. 6 is an example of a bijective relationship. As long as the bijective relationship is satisfied, the relationship between the conversion-source keyword and the conversion-destination keyword or dummy element may be defined by rules other than the example shown in FIG.
データ登録サーバ200,300は、図6に示したようなダミー値の生成を、真のデータに出現する項目値それぞれについて行う。なお、以下の説明では、ある平文に対応する暗号文をH(平文)と表すこととする。
The
図7は、ダミー要素を用いた場合のダミー値の生成例を示す図である。図7の例では、真のデータ36には、項目「血圧」のキーワードとして、「正常」が2回出現し、「低血圧」と「高血圧」とがそれぞれ1回ずつ出現している。また項目「血液型」の項目値として、「A+」が2回出現し、「O-」と「AB-」とがそれぞれ1回ずつ出現している。 FIG. 7 is a diagram illustrating an example of generating dummy values when dummy elements are used. In the example of FIG. 7, in the true data 36, "normal" appears twice as a keyword for the item "blood pressure", and "hypotension" and "hypertension" appear once each. As the item value of the item "blood type", "A+" appears twice, and "O-" and "AB-" appear once each.
真のデータ36に出現するキーワードそれぞれに基づいて、ダミーレコード群それぞれに設定するダミー値が生成されている。例えば血圧「正常」に基づいて、群番号1(g=1)のダミーレコード群用のダミー値「低血圧」、群番号2(g=2)のダミーレコード群用のダミー値「高血圧」、群番号3(g=3)のダミーレコード群用のダミー値「D1」が生成されている。また例えば血液型「A+」に基づいて、群番号1(g=1)のダミーレコード群用のダミー値「B+」、群番号2(g=2)のダミーレコード群用のダミー値「O+」、群番号3(g=3)のダミーレコード群用のダミー値「AB+」が生成されている。 A dummy value to be set in each dummy record group is generated based on each keyword appearing in the true data 36 . For example, based on the blood pressure “normal”, the dummy value “hypotension” for the dummy record group of group number 1 (g=1), the dummy value “hypertension” for the dummy record group of group number 2 (g=2), A dummy value "D1" for a dummy record group with group number 3 (g=3) is generated. Also, for example, based on the blood type "A+", the dummy value "B+" for the dummy record group of group number 1 (g=1) and the dummy value "O+" for the dummy record group of group number 2 (g=2) , a dummy value "AB+" for a dummy record group with group number 3 (g=3) is generated.
データ登録サーバ200,300は、生成したダミー値をダミーレコードに割り当て、項目値を暗号化することで登録データを生成する。
図8は、ダミー要素を用いた場合の登録データの一例を示す図である。登録データ37には、真のデータ36のレコード群37aとダミーレコード群37b,37c,37dが含まれている。登録データ37内の各レコードにはフラグが付与されている。そして登録データ37に含まれるキーワード(フラグ値も含む)が暗号化されている。
The
FIG. 8 is a diagram showing an example of registration data when dummy elements are used. The registered data 37 includes a record group 37a of true data 36 and dummy record groups 37b, 37c, and 37d. Each record in the registration data 37 is given a flag. Keywords (including flag values) included in the registration data 37 are encrypted.
フラグ値は、真のデータのレコードとダミーレコードとを識別するために用いられる。例えば真のデータのレコードにはフラグ値「0」を設定し、ダミーレコードにはフラグ値「1」を設定することができる。この場合、G≧3のときにはフラグ値「0」の暗号文(H(0))よりもフラグ値「1」の暗号文(H(1))の方が多くなる。すると、攻撃者33は、フラグ値の暗号文の出現頻度に基づいて、そのレコードが真のデータのレコードなのかを判断できてしまう。そこでデータ登録サーバ200,300は、フラグ値の暗号文についても頻度攪乱を行う。
The flag value is used to distinguish between true data records and dummy records. For example, a true data record can be set with a flag value of "0", and a dummy record can be set with a flag value of "1". In this case, when G≧3, there are more ciphertexts (H(1)) with flag value “1” than ciphertexts (H(0)) with flag value “0”. Then, the
例えばデータ登録サーバ200,300は、図8に示すように各レコードが属する群の群番号を、そのレコードのフラグとして使用することができる。各群に属するレコード数は等しいため、これによりフラグ値の出現頻度がすべて等しくなる。
For example, the
またデータ登録サーバ200,300は、フラグ値を決定するために、真のデータのレコード群およびダミーレコード群それぞれについて、同一の変数の値に対して異なる値を出力する異なる関数を用意してもよい。この場合、データ登録サーバ200,300は、用意した関数にID列の値を変数xとして入力した値をフラグ値とする。
In order to determine the flag value, the
群番号gの群(真のデータのレコード群またはダミーレコード群)のフラグ値生成関数をfg(x)としたとき、例えば以下のようなフラグ値生成関数を用いることができる。
fg(x)=(G+1)x+g (2)
図8の例ではG=4である。従って、真のデータのレコード群37a(群番号「0」)のフラグ値生成関数は「f0(x)=4x+0」となる。ダミーレコード群37b(群番号「1」)のフラグ値生成関数は「f1(x)=4x+1」となる。ダミーレコード群37c(群番号「2」)のフラグ値生成関数は「f2(x)=4x+2」となる。ダミーレコード群37d(群番号「3」)のフラグ値生成関数は「f3(x)=4x+3」となる。
Assuming that the flag value generation function of the group of group number g (true data record group or dummy record group) is f g (x), for example, the following flag value generation function can be used.
f g (x)=(G+1)x+g (2)
In the example of FIG. 8, G=4. Therefore, the flag value generation function of the true data record group 37a (group number "0") is "f 0 (x)=4x+0". The flag value generation function of the dummy record group 37b (group number "1") is "f 1 (x)=4x+1". The flag value generation function of the dummy record group 37c (group number "2") is "f 2 (x)=4x+2". The flag value generation function of the dummy record group 37d (group number "3") is "f 3 (x)=4x+3".
端末装置400,500は、検索の際には、真のデータのレコード群37aまたはいずれか1つのダミーレコード群37b,37c,37dを検索対象として指定した検索クエリを発行する。データ管理サーバ100は、検索クエリに対する応答として、検索条件に合致したレコードを検索結果として応答する。そのときデータ管理サーバ100は、検索結果にID列とフラグ列のフラグ値とを含める。端末装置400,500は、検索結果に示されるレコードのIDを、群ごとのフラグ値生成関数それぞれに入力し、得られた関数値を暗号化する。そして端末装置400,500は、フラグ値生成関数の関数値の暗号文とレコードのフラグ値(暗号文)と比較する。端末装置400,500は、比較の結果が一致したフラグ値生成関数に対応する群が、そのレコードが属する群であると判断する。
When searching, the
このようにして生成された登録データ37では、同一の変換集合に属する要素に対応する暗号文の出現頻度の均一化が図られている。
図9は、暗号文の均一化を説明する図である。例えば血圧の項目に設定可能なキーワードは、すべて1つの変換集合35a(図5参照)に属している。真のデータ36におけるキーワード「正常」の出現頻度は「2」、キーワード「低血圧」の出現頻度は「1」、キーワード「高血圧」の出現頻度は「1」である。
In the registration data 37 generated in this manner, the frequency of appearance of ciphertexts corresponding to elements belonging to the same transformation set is made uniform.
FIG. 9 is a diagram for explaining uniformization of ciphertexts. For example, all the keywords that can be set for the blood pressure item belong to one conversion set 35a (see FIG. 5). The appearance frequency of the keyword "normal" in the true data 36 is "2", the appearance frequency of the keyword "hypotension" is "1", and the appearance frequency of the keyword "hypertension" is "1".
登録データ37では、各キーワードおよびダミー要素の値それぞれの暗号文の出現頻度が均一化されている。例えばキーワード「正常」の暗号文「H(正常)」、キーワード「低血圧」の暗号文「H(低血圧)」、キーワード「高血圧」の暗号文「H(高血圧)」、およびダミー要素の値「D1」の暗号文「H(D1)」それぞれの出現頻度は、いずれも「4」である。 In the registration data 37, the frequency of appearance of each ciphertext for each keyword and dummy element value is uniformed. For example, the ciphertext "H (normal)" for the keyword "normal", the ciphertext "H (low blood pressure)" for the keyword "hypotension", the ciphertext "H (hypertension)" for the keyword "hypertension", and the value of the dummy element The frequency of occurrence of each of the ciphertexts "H(D1)" of "D1" is "4".
図5に示した変換集合の生成例からも分かるように、各変換集合にはk個(図5の例ではk=3)以上のキーワードが含まれる。従って攻撃者33は、特定の暗号文の出現頻度が分かっても、その暗号文が、同一の変換集合に属するキーワードのうちのどのキーワードの暗号文なのかを特定することはできない。すなわち攻撃者33は、暗号文に対応するキーワードの候補をk個までしか絞り込めない。その結果、頻度分析攻撃に対する安全性が向上している。
As can be seen from the conversion set generation example shown in FIG. 5, each conversion set includes k (k=3 in the example of FIG. 5) or more keywords. Therefore, even if the
なお、暗号文に対応するキーワードの候補をk個までしか絞り込めないようにするためには、群数Gの値を適切に決定することが重要となる。
図10は、適切な群数Gについて説明する図である。群数Gは、kに応じて決定される。前述のようにkは、暗号文に対応するキーワードの候補をk個までしか絞れないようにするために予め設定するセキュリティパラメータである。従ってkは、システムに求められる頻度分析攻撃に対する安全性の度合いに応じて決められる。
It should be noted that it is important to appropriately determine the value of the number of groups G so that the number of keyword candidates corresponding to the ciphertext can be narrowed down to k.
FIG. 10 is a diagram illustrating an appropriate number G of groups. The number of groups G is determined according to k. As described above, k is a security parameter set in advance so that the number of keyword candidates corresponding to the ciphertext can be narrowed down to k. Therefore, k is determined according to the degree of security required for the system against frequency analysis attacks.
このとき設定可能なキーワードの種類数Xj<kとなる項目も存在する。このような項目は、変換集合内にk個以上のキーワードを含めることができない。そのため攻撃者33は、該当項目の暗号文に対応するキーワードが、Xj個(k<)のキーワードのどれかであることが分かる。しかしこのような項目の暗号文に対応するキーワードが、Xj個のどれかであることは、公知の情報であり、攻撃者33が知っていても問題ない。例えば図10の例では、項目「性別」について設定可能なキーワードは「男」か「女」の2つしかない。しかし性別が「男」と「女」のいずれかであることは、攻撃者33が知っていても問題ない情報である。
At this time, there are also items where the number of types of settable keywords X j <k. Such an item cannot contain more than k keywords in the transform set. Therefore, the
他方、設定可能なキーワードの種類数Xj≧kとなる項目であれば、変換集合内にk個以上のキーワードが含まれるようにするのが適切である。そこで、Xjがkの倍数でない項目がある場合、データ登録サーバ200,300は、Gを調整することで、k個以上のキーワードが各変換集合に含まれるようにする。
On the other hand, if the number of types of settable keywords X j ≥k, it is appropriate to include k or more keywords in the conversion set. Therefore, if there are items where X j is not a multiple of k, the
例えば図10の「血液型」の例では、k=3に対し、Xj=4である。このとき変換集合一覧38のようにG=3にすると、検索者が「O」または「AB」を検索した際、その検索結果を見た攻撃者33は、検索対象が「O」と「AB」の2つのどちらかだと分かってしまう。そこで、Xj≧kの項目について該当項目に設定可能なキーワードが各変換集合にk個以上含まれるようにするためには、G≧kのうちG=3以外となるようにGが決定される。例えば変換集合一覧39のようにG=4にすれば、いずれの変換集合にも、対応する項目に設定可能なキーワードが3つ以上含まれる。
For example, in the "blood type" example of FIG. 10, X j =4 for k=3. At this time, if G = 3 as in the conversion set list 38, when the searcher searches for "O" or "AB", the
図11は、頻度攪乱後の頻度分布の一例を示す図である。図11に示す頻度分布表40は、5種類のキーワード「A」、「B」、「C」、「D」、「E」を設定可能な項目を有するDBにおける頻度攪乱後の各キーワードおよびダミー要素の値「F」の出現頻度を表している。図11の例ではG=3である。変換集合は、「A,B,C」と「D,E,F」の2つである。 FIG. 11 is a diagram showing an example of frequency distribution after frequency perturbation. The frequency distribution table 40 shown in FIG. 11 has five types of keywords "A", "B", "C", "D", and "E" that can be set for each keyword and dummy keywords after frequency disturbance in the DB. It represents the appearance frequency of the element value “F”. In the example of FIG. 11, G=3. There are two transformation sets, 'A, B, C' and 'D, E, F'.
群番号「1」のダミーレコード群のダミー値は、真のデータの項目値を変換集合に基づいて「A→B」、「B→C」、「C→A」、「D→E」、「E→F」、「F→D」と変換することで生成される。群番号「2」のダミーレコード群のダミー値は、真のデータの項目値を変換集合に基づいて「A→C」、「B→A」、「C→B」、「D→F」、「E→D」、「F→E」と変換することで生成される。 The dummy values of the dummy record group with the group number "1" are converted from the item values of the true data to "A→B", "B→C", "C→A", "D→E", It is generated by converting “E→F” and “F→D”. The dummy values of the dummy record group with the group number "2" are converted from the item values of the true data to "A→C", "B→A", "C→B", "D→F", It is generated by converting "E→D" and "F→E".
真のデータにおける「A」の出現頻度は「10」、「B」の出現頻度は「7」、「C」の出現頻度は「2」、「D」の出現頻度は「1」、「E」の出現頻度は「5」、「F」の出現頻度は「0」である。すると、頻度攪乱後の変換集合「A,B,C」に含まれる各キーワードの出現頻度は、すべて「19」となる。また頻度攪乱後の変換集合「D,E,F」に含まれる各キーワードまたはダミー要素の値の出現頻度は、すべて「6」となる。すなわち項目値の3つずつの集合ごとに、集合内での項目値の出現頻度の均一化が図られている。 In the true data, the appearance frequency of "A" is "10", the appearance frequency of "B" is "7", the appearance frequency of "C" is "2", the appearance frequency of "D" is "1", and "E is "5", and the frequency of appearance of "F" is "0". Then, the appearance frequency of each keyword included in the conversion set "A, B, C" after the frequency disturbance is all "19". Also, the frequency of appearance of each keyword or dummy element value included in the conversion set "D, E, F" after the frequency disturbance is "6". That is, for each set of three item values, the frequency of appearance of the item values within the set is made uniform.
また各ダミーレコード群のダミー値は、真のデータのキーワードを1対1で変換することで生成されている。そのためキーワードの出現頻度のばらつき度合いは変わらない。例えば出現頻度が多い順にその出現頻度の値を並べた場合、真のデータのレコード群および2つのダミーレコード群のいずれにおいても「10,7,5,2,1,0」である。このように、ダミーレコード群ごとの項目値の出現頻度のばらつき度合いは、すべてのダミーレコード群について真のデータと等しくなる。その結果、どのレコード群が真のデータのレコード群なのかを、キーワードの出現頻度のばらつき度合いから判断することが困難となる。また、すべてのダミーレコード群に真のデータの各レコードに1対1で対応するダミーレコードが存在する。そのため真のデータのあるレコードを削除する際には対応するダミーレコードを合わせて削除することで、データの秘匿性を維持したまま真のデータの任意のレコードを削除することができる。 The dummy value of each dummy record group is generated by converting the keywords of the true data on a one-to-one basis. Therefore, the degree of variation in the frequency of appearance of the keywords does not change. For example, when the values of the frequency of appearance are arranged in descending order of appearance frequency, they are "10, 7, 5, 2, 1, 0" for both the true data record group and the two dummy record groups. In this way, the degree of variation in the frequency of occurrence of item values for each dummy record group is equal to the true data for all dummy record groups. As a result, it becomes difficult to determine which record group is the true data record group from the degree of variation in keyword appearance frequency. In addition, all dummy record groups have dummy records corresponding to each record of true data on a one-to-one basis. Therefore, by deleting a corresponding dummy record when deleting a record containing true data, any record containing true data can be deleted while maintaining the confidentiality of the data.
このようにダミー要素を用いることで、頻度分析攻撃に対する安全性を向上させることが可能である。ただし、ダミー要素を用いたとしても、複数の項目のキーワード間の組合せ頻度を知っている攻撃者33に対しては、検索条件に含まれるキーワードの候補がk個未満に絞られてしまう可能性がある。
By using dummy elements in this way, it is possible to improve security against frequency analysis attacks. However, even if dummy elements are used, there is a possibility that the number of keyword candidates included in the search condition will be narrowed down to less than k for the
例えば図11の「変換集合2」が項目「性別」についての変換集合であるものとする。性別のキーワードが「男」と「女」しかなければ、k=3の場合であっても図11に示すような変換集合を生成することが許容される。このとき複数の項目のキーワード間の組合せ頻度を用いた頻度分析攻撃が行われると、「変換集合1」に含まれるキーワードについても、k未満に絞り込まれる可能性がある。 For example, assume that "conversion set 2" in FIG. 11 is a conversion set for the item "gender". If the only gender keywords are "male" and "female," it is permissible to generate a transformation set as shown in FIG. 11 even when k=3. At this time, if a frequency analysis attack using the combination frequency between keywords of a plurality of items is performed, the keywords included in "transformation set 1" may also be narrowed down to less than k.
図12は、ダミー要素を用いた場合の組み合わせ頻度の一例を示す図である。図12にはk=G=3のときの変換集合一覧41とそのときの組み合わせ頻度表42とが示されている。
FIG. 12 is a diagram showing an example of combination frequencies when dummy elements are used. FIG. 12 shows a
変換集合一覧41には血圧と性別との変換集合が示されている。血圧の変換集合には「正常」、「低血圧」、「高血圧」が含まれる。性別の変換集合には「男」、「女」、およびダミー要素の値「D1」が含まれる。
A conversion set
組み合わせ頻度表42には、血圧の値と性別の値との組み合わせ(論理積)に対応するレコードの出現頻度が示されている。真の頻度は、真のデータのレコード群内の該当するレコードの数である。攪乱後頻度は、真のデータのレコード群とダミーレコード群とにおける該当するレコードの数である。 The combination frequency table 42 shows the frequency of occurrence of records corresponding to combinations (logical products) of blood pressure values and gender values. The true frequency is the number of relevant records in the true data record set. The post-perturbation frequency is the number of corresponding records in the true data record group and the dummy record group.
例えば血圧が「正常」で性別が「男」のレコードは、真のデータのレコード群に「n1」件含まれる。血圧が「低血圧」で性別が「女」のレコードは、真のデータのレコード群に「n2」件含まれる。血圧が「高血圧」で性別が「D1」のレコードは、真のデータのレコード群に「n3」(n3=0)件含まれる。血圧が「正常」で性別が「女」のレコードは、真のデータのレコード群に「n4」件含まれる。血圧が「低血圧」で性別が「D1」のレコードは、真のデータのレコード群に「n5」(n5=0)件含まれる。血圧が「高血圧」で性別が「男」のレコードは、真のデータのレコード群に「n6」件含まれる。血圧が「正常」で性別が「D1」のレコードは、真のデータのレコード群に「n7」(n7=0)件含まれる。血圧が「低血圧」で性別が「男」のレコードは、真のデータのレコード群に「n8」件含まれる。血圧が「高血圧」で性別が「女」のレコードは、真のデータのレコード群に「n9」件含まれる。 For example, “n1” records of “normal” blood pressure and “male” gender are included in the true data record group. "n2" records of "low blood pressure" for blood pressure and "female" for sex are included in the true data record group. Records with the blood pressure of "hypertension" and the sex of "D1" are included in the true data record group of "n3" (n3=0) records. "n4" records of "normal" blood pressure and "female" gender are included in the true data record group. "n5" (n5=0) records with "hypotension" as the blood pressure and "D1" as the sex are included in the true data record group. "n6" records of "hypertension" for blood pressure and "male" for sex are included in the true data record group. Records with "normal" blood pressure and "D1" sex are included in the record group of true data with "n7" (n7=0) records. "n8" records of "hypotension" for blood pressure and "male" for sex are included in the true data record group. "n9" records of "hypertension" for blood pressure and "female" for sex are included in the true data record group.
ここで群番号「1」(g=1)のダミーレコード群において、血圧のダミー値が「正常」で性別のダミー値が「男」となるレコードは、真のデータのレコード群内の血圧が「低血圧」で性別が「女」のレコードに基づいて生成される。そのため血圧が「正常」で性別が「男」のレコードは、群番号「1」(g=1)のダミーレコード群に「n2」件含まれる。群番号「2」(g=2)のダミーレコード群において、血圧のダミー値が「正常」で性別のダミー値が「男」となるレコードは、真のデータのレコード群内の血圧が「高血圧」で性別が「D1」のレコードに基づいて生成される。そのため血圧が「正常」で性別が「男」のレコードは、群番号「2」(g=2)のダミーレコード群に「n3」(n3=0)件含まれる。 Here, in the dummy record group with the group number “1” (g=1), the record in which the blood pressure dummy value is “normal” and the gender dummy value is “male” is the blood pressure in the true data record group. It is generated based on records with "hypotension" and gender of "female". Therefore, “n2” records of “normal” blood pressure and “male” gender are included in the dummy record group of group number “1” (g=1). In the dummy record group with the group number “2” (g=2), the record in which the blood pressure dummy value is “normal” and the gender dummy value is “male” is the true data record group in which the blood pressure is “high blood pressure.” ” is generated based on the record whose gender is “D1”. Therefore, “n3” (n3=0) records of “normal” blood pressure and “male” sex are included in the dummy record group of group number “2” (g=2).
すると、秘匿化DBにおける血圧が「正常」で性別が「男」のレコードの出現頻度(攪乱後頻度)は「n1+n2」となる。同様に、秘匿化DBにおける血圧が「低血圧」で性別が「女」のレコードの出現頻度(攪乱後頻度)、秘匿化DBにおける血圧が「高血圧」で性別が「D1」のレコードの出現頻度(攪乱後頻度)も「n1+n2」となる。 Then, the appearance frequency (post-disturbance frequency) of the record with "normal" blood pressure and "male" sex in the anonymized DB is "n1+n2". Similarly, the appearance frequency (post-disturbance frequency) of records with “low blood pressure” and “female” as the blood pressure in the anonymized DB, and the appearance frequency of records with “high blood pressure” as the blood pressure and “D1” as the gender in the anonymized DB. (Frequency after disturbance) is also "n1+n2".
図12に示すような攪乱後頻度を有する秘匿化DBに対して検索者が検索を行ったとき、複数の項目値の組合せ頻度を知っている攻撃者33は、検索条件に含まれるキーワードの候補をk個(図12の例では3個)未満に絞ることが可能である。例えば検索者が「正常∧男」(∧は論理積)の検索または「低血圧∧女」の検索を行ったものとする。これらのいずれの検索結果も錯乱後頻度は「n1+n2」である。すなわち検索条件にヒットしたレコード数は「n1+n2」である。なお検索者がダミー要素を検索することはない。 When a searcher searches an anonymized DB having post-disturbance frequencies as shown in FIG. can be narrowed down to less than k (three in the example of FIG. 12). For example, it is assumed that a searcher performs a search for "normal ∧ male" (∧ is a logical product) or a search for "low blood pressure ∧ female". The post-confusion frequency of any of these search results is "n1+n2". That is, the number of records that hit the search condition is "n1+n2". Note that the searcher never searches for dummy elements.
ここで、血圧のキーワードと性別のキーワードとの間の組み合わせ頻度(真の頻度)を知っている攻撃者33は、攪乱後頻度が「n1+n2」となるのが「正常∧男」または「低血圧∧女」のみであることも知っている。すると攻撃者33は、少なくとも「高血圧」が検索対象外であることを認識できる。これは、検索者の関心の対象が血圧については「正常」または「低血圧」であり、「高血圧」は関心の対象外であると、攻撃者33に知られてしまうことを意味する。すなわち、検索の対象がk(=3)未満に絞られてしまう。
Here, the
このようにキーワードの種類数Xj(「男」、「女」の2種類)が少なく、Xj<kとなる項目値と他の項目値とが組み合わさると、他の項目値も性別列のXj個の値に絞られてしまう。 In this way, when the number of types of keywords X j (two types of “male” and “female”) is small and an item value satisfying X j <k is combined with other item values, the other item values also is narrowed down to X j values of .
図12の例では、ダミー要素に対する検索が行われることがないという事実が、検索対象の絞り込みに利用されている。そして要素の組み合わせを考慮にいれた場合、ダミー要素を含む検索以外にも検索が行われることがない要素の組み合わせが存在する。例えば患者ごとのレコードが登録されたDBの項目に「診療科」と「年齢層」とが含まれている場合があり得る。ここで、小児科を成人や老人が受診することはない。そのため診療科の値が「小児科」のレコードにおいて、年齢層の値が「成人」、「老人」などであることはない。 In the example of FIG. 12, the fact that no dummy element is searched is used to narrow down the search target. When the combinations of elements are taken into consideration, there are combinations of elements that are not searched for other than searches that include dummy elements. For example, there may be a case where the items of the DB in which records for each patient are registered include "medical department" and "age group". Adults and the elderly do not visit pediatrics here. Therefore, in a record with the department value of "Pediatrics", the age group value is not "adult" or "elderly".
このように1つの項目の値がある項目値であるとき他の項目に設定されることがあり得ない値を、構造的ゼロと呼ぶことができる。それに対して、1つの項目の値がある項目値であるとき他の項目に設定されることがあり得る唯一の値(例えば診療科「小児科」に対する年齢層「児童」)を、非構造的ゼロと呼ぶことができる。構造的ゼロも検索対象の絞り込みに利用可能である。 Such a value that cannot be set to another item when the value of one item is a certain item value can be called structural zero. In contrast, the only value that can be set in another item when the value of one item is an item value (for example, the age group "child" for the clinical department "pediatrics") is defined as the unstructured zero can be called Structural zeros can also be used to narrow down your search.
図13は、構造的ゼロを利用した検索対象の絞り込みの一例を示す図である。図13の例では、DB43には「診療科」、「性別」、および「年齢層」の項目が設けられている。このDB43の各項目の値が暗号化された秘匿化DB44が生成されている。ここで診療科については、「内科」、「婦人科」、「小児科」を含む1つの変換集合が生成されているものとする。また年齢層については、「老人」、「成人」、「D2」(ダミー要素)を含む変換集合と、「青年」、「児童」、「D3」(ダミー要素)を含む変換集合とが生成されているものとする。
FIG. 13 is a diagram illustrating an example of narrowing down search targets using structural zeros. In the example of FIG. 13, the DB 43 has items of "medical department", "gender", and "age group". An
この場合、「内科∧成人」、「婦人科∧D2」、「小児科∧老人」それぞれの組み合わせの頻度攪乱後の出現頻度が同じとなる。図13の例では、これらの組み合わせの出現頻度は「133」である。 In this case, the appearance frequencies after the frequency perturbation are the same for the combinations of "internal medicine/adult", "gynecology/D2", and "pediatrics/elderly". In the example of FIG. 13, the appearance frequency of these combinations is "133".
ここで検索者45が「内科∧成人」の検索を、秘匿化DB44に対して行った場合を想定する。この検索に対しては、133件のレコードがヒットする。攻撃者33が検索者45による検索を監視していた場合、攻撃者33は、各項目に設定可能な値の出現頻度を組み合わせて、出現頻度が「133」となる値の組み合わせを調べる。これにより攻撃者33は、検索対象の候補を「内科∧成人」、「婦人科∧D2」、「小児科∧老人」の3つまで絞り込むことができる。
Here, it is assumed that the searcher 45 searches the anonymized
次に攻撃者33は、ダミー要素である「D2」が検索対象となることはないため、「婦人科∧D2」を検索対象の候補から除外する。さらに攻撃者33は、小児科に老人という検索が行われることはない(構造的ゼロの検索をする理由がない)ため、「小児科∧老人」も検索対象の候補から除外する。その結果、検索者45が送信した検索クエリは「内科∧成人」であることを攻撃者33が認識できる。
Next, the
このようにダミー要素や構造的ゼロが存在することによって検索クエリに含まれるキーワードが絞り込まれてしまう。このことを前提とすると、各項目に設定可能なキーワードの組み合わせの出現頻度に基づいて、k個程度にまで初期段階で絞り込まれていることに問題がある。そこで、データ登録サーバ200,300は、データを登録する際に、各項目に設定可能なキーワードの出現頻度が分かっていても、その情報からは検索クエリに含まれるキーワードの絞り込みが十分にできないようにする。具体的には以下の通りである。
The presence of dummy elements and structural zeros narrows down the keywords included in the search query. Assuming this, there is a problem in that the number of keyword combinations that can be set for each item is narrowed down to about k in the initial stage based on the appearance frequency of the combination of keywords. Therefore, when registering data, the
データ登録サーバ200,300は、DB43に登録可能なキーワードを、複数のキーワードのいずれかに確率的に変換する。以下、変換先となるキーワードを分割キーワードと呼ぶこととする。
The
図14は、分割キーワードへの確率的変換の一例を示す図である。例えばデータ登録サーバ200は、診療科、性別、年齢層の項目を含むDB210を有する。データ登録サーバ200は、DB210の各項目に登録可能なキーワードに基づいて、分割キーワード選択テーブル233を生成する。
FIG. 14 is a diagram showing an example of probabilistic conversion into split keywords. For example, the
分割キーワード選択テーブル233には、DB210内の項目ごとに、該当項目に登録可能なキーワードに対応する分割キーワードと、分割キーワードの選択確率とが設定されている。例えば項目「診療科」に登録可能なキーワード「小児科」に対応する分割キーワードとして「小児科0」と「小児科1」とがある。
In the split keyword selection table 233, for each item in the
分割キーワードの選択確率は、乱数を生成することによって決定され、データ登録サーバ200外には秘密となるように管理される。従って、DB210に登録可能なキーワードそれぞれに対して2つの分割キーワードが存在する場合でも、分割キーワードごとに選択確率は異なる。例えば分割キーワード「小児科0」の選択確率は「0.72」であり、「小児科1」の選択確率は「0.28」である。また分割キーワード「婦人科0」の選択確率は「0.60」であり、「婦人科1」の選択確率は「0.40」である。なお、DB210に登録可能な1つのキーワードに対応する複数の分割キーワードの選択確率の合計は「1」となる。
The selection probabilities of the divided keywords are determined by generating random numbers and are managed confidentially outside the
データ登録サーバ200は、データ管理サーバ100にDB210内のデータを登録する際に、DB210内の各レコードの項目値を、分割キーワード選択テーブル233を参照して、確率的に対応する分割キーワードのいずれかに変換する。例えば「小児科」を変換する場合、72%の確率で「小児科0」に変換され、残りの28%の確率で「小児科1」に変換される。DB210内のキーワードを変換することで、分割済データ211が生成される。
When registering the data in the
なお図14の例では、すべてのキーワードを分割キーワードに変換しているが、一部のキーワードについては変換せずに、DB210に登録可能なキーワードのまま秘匿化を行うことも可能である。
In the example of FIG. 14, all keywords are converted into split keywords, but it is also possible to anonymize some of the keywords as they are, without conversion, as they can be registered in the
データ登録サーバ200は、分割キーワード選択テーブル233に示される分割キーワードを要素として含む変換集合を生成し、その変換集合を用いてダミーデータを生成する。その際、データ登録サーバ200は、各変換集合について、以下の生成条件を満たすようにする。
The
変換集合の生成条件は、その変換集合の要素のうちの少なくとも1つが分割キーワードであり、かつその分割キーワードと変換元のキーワードが共通の他の分割キーワードが他の変換集合に含まれることである。換言すると変換集合は、1つのキーワードに対応するn個の分割キーワードのうちのn-1個以下の分割キーワードを含む。 The conditions for generating a transformation set are that at least one of the elements of the transformation set is a split keyword, and that the other transformation set contains another split keyword that shares the split keyword with the conversion source keyword. . In other words, the conversion set includes n-1 or less split keywords out of n split keywords corresponding to one keyword.
図15は、変換集合による分割キーワードからダミー値への変換の一例を示す図である。変換集合一覧232には、診療科についての3つの変換集合232a~232c、性別についての3つの変換集合232d~232f、および年齢層についての4つの変換集合232g~232jが含まれている。各変換集合232a~232jには、2つずつの要素が含まれている。変換集合232a~232jに含まれる要素は、例えば分割キーワード、またはダミー要素である。また分割しないキーワードがある場合、そのキーワードも変換集合232a~232jの要素となる。
FIG. 15 is a diagram showing an example of conversion from split keywords to dummy values by a conversion set. The
なお図15における変換集合232a~232j内の「:」の左の数字は要素番号である。「:」の右の文字列が要素として設定された分割キーワードである。
図15の例では、DB210に登録可能なキーワードはすべて分割されるため、変換集合232a~232jに要素として含まれるのは分割キーワードとダミー要素である。例えば診療科の変換集合232aには、分割キーワード「小児科0」、「内科0」が含まれる。また性別の変換集合232dには、分割キーワード「男0」とダミー要素「D1」が含まれる。
Note that the numbers to the left of ":" in the conversion sets 232a to 232j in FIG. 15 are element numbers. The character string to the right of ":" is a split keyword set as an element.
In the example of FIG. 15, all the keywords that can be registered in the
変換集合232a~232jのいずれも、少なくとも1つの分割キーワードを要素として含んでいる。そしてその分割キーワードを含む変換集合とは別の変換集合に、その分割キーワードと変換元のキーワードが共通の他の分割キーワードが含まれている。例えば変換集合232aには、分割キーワード「小児科0」が含まれている。「小児科0」の変換元のキーワードは「小児科」である。「小児科」の分割キーワードとしては「小児科0」以外に「小児科1」が存在する。「小児科1」は、変換集合232aとは別の変換集合232bに含まれている。従って変換集合232aは、変換集合の生成条件を満たしている。また変換集合232dは、分割キーワードを「男0」しか含んでおらず、もう1つの要素はダミー要素「D1」である。ただし「男0」と変換元のキーワードが共通の他の分割キーワード「男1」が他の変換集合232eに含まれている。従って変換集合232dについても変換集合の生成条件が満たされている。
Each of conversion sets 232a-232j includes at least one split keyword as an element. A conversion set different from the conversion set containing the divided keyword contains another divided keyword that shares the same conversion source keyword as the divided keyword. For example, the conversion set 232a includes the split keyword "
データ登録サーバ200は、変換集合232a~232jに従いダミーデータを生成する。ダミーデータは、G-1個のダミーレコード群である。ダミーレコードに設定するダミー値の生成方法は、図6を参照して説明した通りである。
分割済データ211内の真のデータのレコードとダミーレコードとを混在させることで、秘匿化DBへの登録用の登録データ46が生成される。登録データ46は、第1の実施の形態における攪乱レコード群6の一例である。
By mixing true data records and dummy records in the divided data 211, registration data 46 for registration in the anonymization DB is generated. Registration data 46 is an example of
登録データ46においては、同じ変換集合に含まれるG個の要素の出現頻度が等しくなる。しかもそれら要素の出現頻度とDB210データの頻度とを比較しても、平文を特定できないようになる。例えば変換集合232gに含まれる「老人0」と「児童0」の頻度とそれぞれの元データの頻度との相関は秘密の選択確率によって隠されている。そのため各変換集合の要素の頻度を合計しても、真のデータの2以上のキーワードの頻度の合計と一致しない。
In the registration data 46, the appearance frequencies of G elements included in the same transformation set are equal. Moreover, plaintext cannot be identified even by comparing the frequency of occurrence of these elements with the frequency of data in the
またデータ登録サーバ200は、検索時に暗号文がどの群に属しているかを見分けることができるようにするために、登録データ46内の各レコードに群番号を含むフラグ値を追加する。例えばデータ登録サーバ200は、群番号の分類攻撃を防ぐため、フラグ値に生成の元のレコードのIDを加え、すべてのフラグ値をユニークな値にする。
The
登録データ46の先頭のレコードは分割済データ211の先頭(ID「0」)のレコードであり、真のデータのレコード群(群番号「0」)に属するため、フラグ値は「0,0」である。登録データ46の2つ目のレコードは分割済データ211の先頭(ID「0」)のレコードに基づくダミーレコードであり、ダミーレコード群(群番号「1」)に属するため、フラグ値は「0,1」である。 The leading record of the registered data 46 is the leading (ID "0") record of the divided data 211 and belongs to the true data record group (group number "0"), so the flag value is "0, 0". is. The second record of the registered data 46 is a dummy record based on the first record (ID "0") of the divided data 211 and belongs to the dummy record group (group number "1"), so the flag value is "0". , 1”.
図14、図15には、DB210に登録可能なすべてのキーワードについて分割キーワードに変換する例を示しているが、すべての変換集合が生成条件を満たせるのであれば、一部のキーワードについては分割しなくてもよい。
14 and 15 show an example of converting all keywords that can be registered in the
図16は、変換集合の他の生成例を示す第1の図である。図16に示す変換集合一覧47には、診療科についての3つの変換集合47a~47c、性別についての2つの変換集合47d~47e、および年齢層についての3つの変換集合47f~47hが含まれている。図16の例では、診療科の「内科」、性別のキーワード「女」、年齢層のキーワード「青年」および「児童」については分割キーワードへの変換が行われない。そのため、これらのキーワードはそのまま変換集合の要素となっている。
FIG. 16 is a first diagram showing another example of generating a transformation set. The
このような変換集合一覧47に含まれる各変換集合47a~47hは、変換集合の生成条件を満たしている。例えば変換集合47dには、分割キーワード「男0」と分割されていないキーワード「女」が含まれている。このうち「男0」の変換元のキーワードは「男」である。「男」の分割キーワードとしては「男0」以外に「男1」が存在する。「男1」は、変換集合47dとは別の変換集合47eに含まれている。従って変換集合47dは、変換集合の生成条件を満たしている。
Each of the transformation sets 47a to 47h included in the
ただし変換集合一覧47を用いてダミー値への変換を行うと、図15に示した変換集合一覧232を用いた場合に比べて、平文推定の難易度が下がる。例えば変換集合一覧47を用いてダミー値への変換を行った秘匿化DBに対して、攻撃者33は以下のような攻撃が可能である。
However, if conversion to dummy values is performed using the conversion set
攻撃者33が性別に対する検索の検索対象の特定を試みる場合を想定する。攻撃者33は、性別の変換集合47d,47eごとの攪乱後頻度を得る。例えば攻撃者33は、検索者が性別「女」のレコードを検索した場合にヒットしたレコード数を取得することで、変換集合47dの攪乱後頻度(「男0」の頻度と「女」の頻度との合計)を得ることができる。攻撃者33は、変換集合47dの攪乱後頻度から平文の「女」の頻度を減算する。すると「男0」の頻度となる。さらに攻撃者33は、減算結果にもう1つの変換集合47eの攪乱後頻度を加算する。加算後の頻度は、「男0」の頻度と「男1」の頻度との合計である。
Assume that an
攻撃者33は、加算結果が「男」の頻度と等しくなることが確認できれば、変換集合47dの攪乱後頻度となる検索が行われた場合、対応する変換集合47dには「女」が含まれると判断できる。以後、攻撃者33は、検索者により変換集合47dの攪乱後頻度となる検索のみが行われた場合、「女」を検索したと特定することができる。
If the
攻撃者33がこのような試行を繰り返すことで検索対象の絞り込みが可能となるが、同じ項目に登録可能なキーワード数が多くなるほど、このような攻撃の試行回数が増加し、検索対象が特定される危険性は低下する。
By repeating such attempts, the
このように、変換集合一覧47に示すような変換集合47a~47hでは、性別のように登録可能なキーワード数が少ない項目がある場合に、頻度分析攻撃に対する安全性が低下してしまう。ただし、各項目の登録可能なキーワード数が多ければ、攻撃者33が行う攻撃で用いるキーワード(攻撃において該当キーワードの頻度の加減算を行う)の組み合わせ数が膨大となる。その結果、変換集合一覧47に示すように一部の要素が、DB210に登録されるキーワードのまま(分割キーワードに変換されていない)であっても十分に安全となる。
As described above, in the conversion sets 47a to 47h shown in the conversion set
なお、すべてのキーワードを分割キーワードに変換したとしても、変換集合を適切に生成しないと、頻度分析攻撃に対する安全性が不十分となる場合がある。
図17は、変換集合の他の生成例を示す第2の図である。図17に示す変換集合一覧48には、診療科についての3つの変換集合48a~48c、性別についての3つの変換集合48d~48f、および年齢層についての4つの変換集合48g~48jが含まれている。図17の例では、年齢層の変換集合48g~48jの要素が、図15に示した変換集合232g~232jと異なっている。
Note that even if all keywords are converted into split keywords, security against frequency analysis attacks may be insufficient unless a conversion set is generated appropriately.
FIG. 17 is a second diagram showing another example of generating a transformation set. The
変換集合48g~48jでは、「老人」の分割キーワード「老人0」、「老人1」が、それぞれ変換集合48gと変換集合48hとに格納されている。また「青年」の分割キーワード「青年0」、「青年1」が、それぞれ変換集合48gと変換集合48hとに格納されている。すなわち変換集合48gと変換集合48hとは、属する分割キーワードの変換元のキーワードの組み合わせ(「老人」、「青年」)が同じである。同様に、変換集合48iと変換集合48jとも、属する分割キーワードの変換元のキーワードの組み合わせ(「成人」、「児童」)が同じである。
In the conversion sets 48g to 48j, the divided keywords "
このような変換集合48g~48jが生成された場合、変換集合48gに属する分割キーワードの攪乱後頻度と変換集合48hに属する分割キーワードの攪乱後頻度との合計が、DB210における「老人」と「青年」との出現頻度の合計に等しくなる。そうすると「老人」または「青年」の検索が行われたとき、ヒットしたレコードの件数から、検索対象のキーワードが「老人」または「青年」であると攻撃者33が推定できてしまう。すなわち検索対象のキーワードの候補が2つに絞り込まれてしまう。
When such conversion sets 48g to 48j are generated, the sum of the post-disturbance frequencies of the split keywords belonging to the conversion set 48g and the post-disturbance frequencies of the split keywords belonging to the conversion set 48h is the same as the "elderly" and "youth" in the
このような頻度分析攻撃を困難にするために、データ登録要求サーバ200,300は、図15に示すように、変換集合内の分割キーワードの変換元のキーワードの組み合わせが同じとなる複数の変換集合が生じないようにする。
In order to make such a frequency analysis attack difficult, the data
次に、確率的に分割キーワードへの変換を行うことで頻度分析攻撃に対する安全性を向上させた秘密情報管理システムの各装置の機能について説明する。
図18は、秘密情報管理システムの機能を示すブロック図である。データ管理サーバ100は、秘匿化DB110、データ登録部120、鍵提供依頼部130、および検索部140を有する。秘匿化DB110は、データ管理サーバ100が有するメモリ102またはストレージ装置103によって実現される。データ登録部120、鍵提供依頼部130、および検索部140は、データ管理サーバ100が有するプロセッサ101によって実現される。
Next, the function of each device of the secret information management system that improves security against frequency analysis attacks by probabilistic conversion into divided keywords will be described.
FIG. 18 is a block diagram showing functions of the confidential information management system. The
秘匿化DB110は、データ登録サーバ200,300から収集した暗号文の患者データを、暗号文のまま管理するDBである。
データ登録部120は、データ登録サーバ200,300からのデータ登録要求に応じて、暗号文の患者データを秘匿化DB110に登録する。
The
The
鍵提供依頼部130は、端末装置400,500からの鍵取得要求を受信すると、端末装置400,500への鍵提供依頼を、データ登録サーバ200,300に送信する。
検索部140は、端末装置400,500からの暗号化された検索キーワードを含むデータ検索クエリに応じて、秘匿化DB110に登録された患者データを検索する。この際、検索部140は、患者データと検索キーワードとを暗号文のまま照合し、検索キーワードに合致するレコードを、秘匿化DB110から抽出する。そして検索部140は、抽出したレコードを、検索クエリの送信元の端末装置400,500に送信する。
Upon receiving a key acquisition request from
The
データ登録サーバ200は、DB210、鍵記憶部220、変換情報記憶部230、鍵生成部240、データ登録要求部250、および鍵提供部260を有する。DB210、鍵記憶部220、および変換情報記憶部230は、データ登録サーバ200が有するメモリまたはストレージ装置によって実現される。また鍵生成部240、データ登録要求部250、および鍵提供部260は、データ登録サーバ200が有するプロセッサによって実現される。
The
DB210は、患者データを平文で格納するDBである。
鍵記憶部220は、データ管理サーバ100に登録する患者データの暗号化に使用する暗号鍵を記憶する。暗号鍵は、データ管理サーバ100からアクセスできないように管理される。
The
The
変換情報記憶部230は、真のデータのレコード群に示されるキーワードを、ダミーレコードに登録するダミー値に変換するために使用する情報を記憶する。例えば変換集合一覧などの情報が変換情報記憶部230に格納される。
The conversion
鍵生成部240は、暗号鍵を生成する。鍵生成部240は、生成した暗号鍵を鍵記憶部220に格納する。
データ登録要求部250は、データ管理サーバ100への登録対象の患者データの暗号文を含むデータ登録要求を、データ管理サーバ100に送信する。例えばデータ登録要求部250は、まず登録対象の患者データをDB210から取得し、秘匿化DB110のフォーマットに合わせて、患者データを加工する。この際、データ登録要求部250は、送信するデータ登録要求にダミーデータを含める。ダミーデータは複数のダミーレコードを含む。ダミーレコード内にはダミー値が登録されている。データ登録要求部250は、変換情報記憶部230に格納されている情報を用いて、真のデータ内の値をダミー値に変換し、ダミーレコードに登録する。
The
The data
さらにデータ登録要求部250は、暗号鍵を用いて、秘匿化DB110に登録する項目値ごとに、患者データに含まれる値を暗号化する。そしてデータ登録要求部250は、項目値ごとに暗号化された、暗号文の患者データを含むデータ登録要求を、データ管理サーバ100に送信する。
Furthermore, the data
鍵提供部260は、データ管理サーバ100からの鍵提供依頼に応じて、登録した患者データの利用を許可する製薬企業の端末装置400,500へ、暗号鍵を送信する。なお鍵提供部260は、暗号鍵を、データ管理サーバ100を経由せずに端末装置400,500に送信する。データ管理サーバ100を経由せずに暗号鍵を送信することで、暗号鍵がデータ管理サーバ100から隔離される。その結果、データ管理サーバ100の管理者による、秘匿化DB110内のデータの復号が抑止される。
In response to a key provision request from the
以上、データ登録サーバ200が有する機能を説明したが、データ登録サーバ300もデータ登録サーバ200と同様の機能を有する。
端末装置400は、鍵記憶部410、変換情報記憶部420、鍵取得部430、および検索要求部440を有する。鍵記憶部410と変換情報記憶部420は、端末装置400が有するメモリまたはストレージ装置によって実現される。また鍵取得部430、および検索要求部440は、端末装置400が有するプロセッサによって実現される。
Although the functions of the
鍵記憶部410は、検索クエリに含める検索キーワードの暗号化に使用する暗号鍵を記憶する。暗号鍵は、データ管理サーバ100からアクセスできないように管理される。
変換情報記憶部420は、検索者が指定した検索条件に示されるキーワードをダミー値に変換するために使用する情報を記憶する。変換情報記憶部420に格納されている情報は、データ登録サーバ200の変換情報記憶部230に格納されている情報と同じである。
The
The conversion
鍵取得部430は、データ登録サーバ200,300で提供される暗号鍵を取得する。例えば鍵取得部430は、データ管理サーバ100に、鍵取得要求を送信する。するとデータ管理サーバ100の鍵提供依頼部130により、データ登録サーバ200,300に鍵提供依頼が送信される。鍵提供依頼に応じて、例えばデータ登録サーバ200の鍵提供部260が、暗号鍵を端末装置400に送信する。そして鍵取得部430は、端末装置400から送信された暗号鍵を取得する。鍵取得部430は、取得した暗号鍵を、鍵記憶部410に格納する。
検索要求部440は、患者データの利用者(検索者)が入力した検索キーワードを取得する。次に検索要求部440は、取得した検索キーワードを、暗号鍵を用いて暗号化し、暗号文の検索キーワードを含む検索クエリをデータ管理サーバ100に送信する。検索要求部440は、データ管理サーバ100から検索結果を受信すると、検索結果の内容(例えば検索キーワードに合致した真のデータのレコード数)を表示する。
The
なお検索要求部440は、ダミーデータを検索対象とする検索クエリを送信することもできる。その場合、検索要求部440は、変換情報記憶部420に格納されている情報を用いて、検索キーワードをダミー値に変換し、暗号化したダミー値を含む検索クエリを送信する。この場合、検索要求部440は、検索結果に示されるレコードから所定のダミーレコードを抽出し、そのダミーレコード内のダミー値を、変換情報記憶部420に格納されている情報を用いて、真のデータに設定されていた値に変換する。そして検索要求部440は、変換後の値を有するレコードの内容を検索結果として表示する。
Note that the
以上、端末装置400が有する機能を説明したが、端末装置500も端末装置400と同様の機能を有する。
図18に示した機能により、データ管理サーバ100の管理者に対しても患者データと検索クエリの内容を秘匿したまま、データ管理サーバ100において患者データを管理すると共に、製薬企業15,16による患者データの利用を可能とすることができる。なお、図18に示した各要素の機能は、例えば、その要素に対応するプログラムモジュールをコンピュータに実行させることで実現することができる。
Although the functions of the
With the function shown in FIG. 18, patient data is managed in the
次に、図18に示したシステムによる出現頻度攪乱処理の概要について説明する。
図19は、ダミーデータを用いた出現頻度の攪乱処理の一例を示す図である。データ登録サーバ200は、データ54の使用を許可する製薬企業(例えば製薬企業15)の端末装置400へ、鍵生成部240が生成した暗号鍵51を送信する(ステップS11)。例えば端末装置400の鍵取得部430がデータ管理サーバ100に鍵取得要求を送信する。データ管理サーバ100では、鍵提供依頼部130が、データ登録サーバ200に暗号鍵51の提供を依頼する。データ登録サーバ200の鍵提供部260は、暗号鍵51の提供依頼を受信すると、管理者による暗号鍵51の提供の許可を示す入力を受け付ける。鍵提供部260は、暗号鍵51の提供を許可する旨の入力が行われると、暗号鍵51を鍵記憶部220から取得し、取得した暗号鍵51と同じ暗号鍵52を、データ管理サーバ100を経由させずに端末装置400に送信する。端末装置400では、鍵取得部430が受信した暗号鍵52を鍵記憶部410に格納する。これにより、データ登録サーバ200と端末装置400とで、暗号鍵の共有化が図られる。
Next, an overview of appearance frequency disturbance processing by the system shown in FIG. 18 will be described.
FIG. 19 is a diagram showing an example of the appearance frequency disturbance process using dummy data. The
その後、データ登録サーバ200は、DB210内のデータ210aに対して、ダミーデータ55を追加する(ステップS12)。例えばデータ登録要求部250は、DB210から取得した真のデータ54に含まれるレコードの数のG-1倍のダミーレコードを、ダミーデータ55として追加する。この際、データ登録要求部250は、追加したダミーレコードの項目値(ダミー値)として、真のデータ54に設定されている項目値を用い、各項目値の出現頻度の偏りを減少させる。さらにデータ登録要求部250は、各レコードに、真のデータ54のレコードなのかダミーレコードなのか、ダミーレコードであればどのダミーレコード群に属するのかを識別するためのフラグ56を付与する。
After that, the
データ登録要求部250は、真のデータ54とダミーデータ55との各レコード内の項目値(フラグを含む)を暗号鍵51で暗号化して、登録データ53を生成する(ステップS13)。そしてデータ登録要求部250は、登録データ53を含むデータ登録要求を、データ管理サーバ100に送信する(ステップS14)。データ管理サーバ100では、データ登録部120が、登録データ53を受信し、受信した登録データ53を秘匿化DB110に格納する。
The data
製薬企業15の担当者がデータ54を利用する場合、担当者は、端末装置400に検索キーワードを入力する。すると検索要求部440は、入力された検索キーワードを暗号鍵52で暗号化して、暗号文の検索キーワードを含む検索クエリ57を生成する(ステップS15)。なお検索要求部440は、いずれかのダミーレコード群を検索対象とする場合、入力された検索キーワードを、ダミーレコード群におけるその検索キーワードに対応するダミー値に変換する。そして検索要求部440は、変化で得られたダミー値を暗号化した値を含む検索クエリ57を生成する。そして検索要求部440は、検索クエリ57をデータ管理サーバ100に送信する(ステップS16)。
When the person in charge of the
データ管理サーバ100では、検索部140が、データを秘匿化したままで、登録データ53と検索クエリ57とを照合する(ステップS17)。そして検索部140は、検索クエリ57による検索にヒットしたレコードを、検索結果58として端末装置400に送信する(ステップS18)。検索結果58には、真のデータ54のレコードとダミーデータ55のダミーレコードとが含まれる。
In the
端末装置400では検索要求部440が検索結果58を受信する。検索要求部440は、真のデータを検索対象とした場合には、例えばフラグに基づいて、検索結果58からダミーレコードを破棄する(ステップS19)。そして検索要求部440は、検索結果58内の真のデータ54のレコードのみを含む真の結果59を、モニタなどに表示する。
In
なお検索要求部440は、ダミーレコード群を検索対象とした場合には、例えばフラグに基づいて、検索結果58から検索対象のダミーレコード群に属するダミーレコードを抽出し、その他のレコードを破棄する。検索要求部440は、ダミーレコード内のダミー値を、そのダミー値の変換元であったキーワードに変換する。そして検索要求部440は、元のキーワードに変換された値を含むレコードを真の結果59として表示する。
When the dummy record group is set as a search target, the
このようにダミーデータ55を追加することで、各項目値の頻度攪乱が可能となる。端末装置400は、フラグを用いてダミーデータ55と真のデータ54とを識別して、真の結果59を得ることができる。
By adding the
次に、データ登録サーバ200,300が有する平文の患者データのDB210について説明する。
図20は、平文の患者データのDBの一例を示す図である。DB210には、真のデータ210aが平文のまま格納されている。真のデータ210aには、例えば患者ごとのレコードが、レコードの識別子(ID)に対応付けて登録されている。各レコードには、項目ごとの列に、その項目に対応するキーワードが設定されている。図20の例では、項目として「診療科」、「性別」、「年齢層」がある。DB210に登録されている各レコード内の値は、例えば平文の文字コードである。
Next, the plaintext
FIG. 20 is a diagram showing an example of a plaintext patient data DB. The
データ登録要求部250は、患者のレコードをデータ管理サーバ100に登録する場合、そのレコードに設定された値(平文)を、確定的暗号化技術により暗号化する。そして暗号化されたレコードが、データ管理サーバ100の秘匿化DB110に登録される。その際、データ登録要求部250は、分割キーワード選択テーブル233(図14参照)に基づいてキーワードを確率的に分割キーワードに変換する。さらにデータ登録要求部250は、変換情報記憶部230を参照して、頻度分析攻撃に対する攪乱のためにダミーデータを生成する。
When registering a patient's record in the
図21は、データ登録サーバ内の変換情報記憶部に格納される情報の一例を示す図である。変換情報記憶部230には、キーワード一覧231、変換集合一覧232、および分割キーワード選択テーブル233が記憶されている。キーワード一覧231は、項目ごとに、その項目に設定可能なキーワードのリストが示されたデータである。変換集合一覧232は、変換集合の内容を示すデータである。分割キーワード選択テーブル233は、キーワードを分割して秘匿化DB110に登録する場合における分割後のキーワード(分割キーワード)のリストを示すデータである。なお変換集合一覧232と分割キーワード選択テーブル233とは、キーワード一覧231に基づいて、データ登録要求部250によって生成されるデータである。変換集合一覧232と分割キーワード選択テーブル233とは、データ登録サーバ200の外部からアクセスできないように秘密に管理される。
FIG. 21 is a diagram showing an example of information stored in a conversion information storage unit within the data registration server. A
図22は、キーワード一覧の一例を示す図である。キーワード一覧231には、DB210の項目ごとに、該当項目に設定可能なキーワードのリストが登録されている。図22の例では、「診療科」の項目に登録できるキーワードは3個であり、「性別」の項目に登録できるキーワードは2個であり、「年齢層」の項目に登録できるキーワードは4個である。
FIG. 22 is a diagram showing an example of a keyword list. In the
図23は、変換集合の第1の生成例を示す図である。キーワードリスト231aには、年齢層に設定可能な4個のキーワードが示されている。またG=2であり、各変換集合232g~232jには2つずつの分割キーワードが含まれる。図14に示した分割キーワード選択テーブル233に基づいて分割キーワードを生成する場合、年齢層に関する分割キーワードは8個となる。 FIG. 23 is a diagram illustrating a first generation example of a transformation set. The keyword list 231a shows four keywords that can be set for age groups. Also, G=2, and each conversion set 232g to 232j includes two divided keywords. When the divided keywords are generated based on the divided keyword selection table 233 shown in FIG. 14, there are eight divided keywords related to age groups.
データ登録要求部250は、まず4個の変換集合232g~232jの要素の格納領域を生成する。またデータ登録要求部250は、変換集合232g~232jの識別子をそれぞれ「2-0」~「2-3」とする。識別子の左側の数値は「年齢層」に対応する値であり、右側の数値は「年齢層」の変換集合232g~232jに対する通し番号である。
The data
データ登録要求部250は、例えばキーワードリスト231aから、所定の順番あるいはランダムな順番ですべてのキーワードを1回ずつ選択する。図23の例では、キーワードリスト231aの左から順にキーワードを選択するものとする。
The data
データ登録要求部250は、選択したキーワードの分割キーワードを番号の小さい変換集合から順に、変換集合の格納領域に格納していく。このとき、データ登録要求部250は、同じキーワードに対応する分割キーワードは異なる変換集合に格納する。またデータ登録要求部250は、変換集合内の分割キーワードの変換元のキーワードの組み合わせが同じとなる複数の変換集合が生じないようにする。
The data
例えばデータ登録要求部250は、最初に選択したキーワードの1つ目の分割キーワードを先頭の変換集合232gに登録する。次にデータ登録要求部250は、そのキーワードの2つ目の分割キーワードを2番目の変換集合232hに登録する。例えば「老人」が最初に選択された場合、「老人0」が変換集合232gに登録され、「老人1」が変換集合232hに登録される。
For example, the data
データ登録要求部250は、2番目に選択したキーワードの1つ目の分割キーワードを、直前に選択したキーワードの2つ目の分割キーワードと同じ変換集合232hに登録する。次にデータ登録要求部250は、そのキーワードの2つ目の分割キーワードを次の変換集合232iに登録する。例えば「成人」が2番目に選択された場合、「成人0」が変換集合232hに登録され、「成人1」が変換集合232iに登録される。
The data
データ登録要求部250は、3番目以降に選択した各キーワードの分割キーワードについても、2番目に選択したキーワードと同様の手順で変換集合に登録する。例えば「青年」が3番目に選択された場合、「青年0」が変換集合232iに登録され、「青年1」が変換集合232jに登録される。
The data
データ登録要求部250は、最後に選択したキーワードの分割キーワードについては、格納領域が空いている変換集合に登録する。例えば「児童」が最後に選択された場合、「児童0」が変換集合232gに登録され、「児童1」が変換集合232jに登録される。
The data
このような手順で変換集合232g~232jが生成される。変換集合232g~232jそれぞれは、属する要素のうちの少なくとも1つが分割キーワードであり、かつその分割キーワードと変換元のキーワードが共通の他の分割キーワードが他の変換集合に含まれる。そのため変換集合の生成条件を満たしている。また変換集合232g~232j内の分割キーワードの変換元のキーワードの組み合わせが同じとなる複数の変換集合は生じていない。 Transformation sets 232g to 232j are generated by such a procedure. Each of the conversion sets 232g to 232j has at least one of the elements belonging to it being a split keyword, and another split keyword having a common conversion source keyword with the split keyword is included in the other conversion set. Therefore, it satisfies the transformation set generation condition. In addition, there are no multiple conversion sets in which the combination of the conversion source keywords of the divided keywords in the conversion sets 232g to 232j is the same.
図23には年齢層の変換集合232g~232jの生成例を示したが、診療科および性別についても同様の手順でそれぞれの変換集合232a~232fを生成することができる。その結果、図15に示したような変換集合一覧232が生成される。
FIG. 23 shows an example of generation of transformation sets 232g to 232j for age groups, but transformation sets 232a to 232f can also be generated for departments and genders using the same procedure. As a result, a
図23に示したのは、G=2,L=2,Xj=4,Mj(j番目の項目の変換集合数)=4の場合の例であるが、これらのパラメータの値が別の値であっても、同様に適切な変換集合を生成することができる。 FIG. 23 shows an example of G=2, L=2, X j =4, and M j (the number of transformation sets of the j-th item)=4, but these parameter values are different. A suitable transform set can also be generated for any value of .
図24は、変換集合の第2の生成例を示す図である。図24には、G=3,L=4,Xj=4,Mj=6の場合における変換集合49a~49fの生成例が示されている。
例えばデータ登録要求部250は、最初に選択したキーワードの1つ目の分割キーワードを先頭の変換集合49aの要素番号「0」の要素に登録する。次にデータ登録要求部250は、そのキーワードの2つ目以降の分割キーワードを、変換集合番号と要素番号を1ずつ加算しながら、該当する番号の要素に登録していく。なおデータ登録要求部250は、加算後の要素番号がLとなる場合、要素番号を「0」に戻す。
FIG. 24 is a diagram illustrating a second generation example of a transformation set. FIG. 24 shows an example of generation of transformation sets 49a to 49f when G=3, L=4, X j =4 and M j =6.
For example, the data
例えば「老人」が最初に選択された場合、「老人0」が変換集合49aの要素番号「0」の要素に登録される。続けて、「老人1」が変換集合49bの要素番号「1」の要素に登録され、「老人2」が変換集合49cの要素番号「2」の要素に登録され、「老人3」が変換集合49dの要素番号「0」の要素に登録される。
For example, when "old man" is selected first, "
データ登録要求部250は、2つ目以降に選択されたキーワードの1つ目の分割キーワードを、直前に選択されたキーワードの1つ目の分割キーワードを格納した変換集合に対して変換集合番号で次の変換集合に登録する。次にデータ登録要求部250は、そのキーワードの2つ目以降の分割キーワードを、変換集合番号と要素番号を1ずつ加算しながら、該当する番号の要素に登録していく。なおデータ登録要求部250は、加算後の要素番号がLとなる場合、要素番号を「0」に戻す。
The data
例えば2つ目のキーワードとして「成人」が選択されると、「成人0」が変換集合49bの要素番号「0」の要素に登録される。続けて、「成人1」が変換集合49cの要素番号「1」の要素に登録され、「成人2」が変換集合49dの要素番号「2」の要素に登録され、「成人3」が変換集合49eの要素番号「0」の要素に登録される。
For example, when "adult" is selected as the second keyword, "
次に「青年」が選択されると、「青年0」が変換集合49cの要素番号「0」の要素に登録される。続けて、「青年1」が変換集合49dの要素番号「1」の要素に登録され、「青年2」が変換集合49eの要素番号「2」の要素に登録され、「青年3」が変換集合49fの要素番号「0」の要素に登録される。
Next, when "Youth" is selected, "
データ登録要求部250は、最後に選択したキーワードの分割キーワードについては、格納領域が空いている変換集合に登録する。例えば「児童」が最後に選択された場合、「児童0」が変換集合49aの要素番号「1」の要素に登録される。続けて「児童1」が変換集合49bの要素番号「2」の要素に登録され、「児童2」が変換集合49eの要素番号「1」の要素に登録され、「児童3」が変換集合49fの要素番号「2」の要素に登録される。
The data
データ登録要求部250は、すべての分割キーワードを登録後に空いている要素にダミー要素を登録する。例えば変換集合49fの要素番号「1」の要素に「D0」が登録され、変換集合49aの要素番号「2」の要素に「D1」が登録される。
The data
このようにG、L、Xj、Mjの値が増えても、適切な変換集合を生成することができる(変換集合生成手順の詳細は図28参照)。データ登録要求部250は、変換集合一覧232を生成後、図14に示すような分割キーワード選択テーブル233を生成する。データ登録要求部250は、生成した変換集合一覧232と分割キーワード選択テーブル233とを変換情報記憶部230に格納する。そしてデータ登録要求部250は、分割キーワード選択テーブル233に基づいてDB210内のキーワードを確率的に分割キーワードに変換後、秘匿化DB110に登録するための登録データを生成する。
Even if the values of G, L, X j , and M j increase in this way, an appropriate transformation set can be generated (see FIG. 28 for details of the transformation set generation procedure). After generating the
図25は、分割キーワードを用いて生成した登録データの一例を示す図である。DB210に格納されていた真のデータに示される各キーワードが分割キーワード選択テーブル233に示される選択確率で確率的に分割キーワードに変換され、分割済データ211が生成される。そして、分割済データ211に基づいて登録データ60が生成される。
FIG. 25 is a diagram showing an example of registration data generated using split keywords. Each keyword shown in the true data stored in the
登録データ60には、分割済データ211のレコードの集合である真のデータのレコード群60aと、分割済データ211のレコードの各分割キーワードを変換して得られたダミーレコード群60bが含まれている。真のデータのレコード群60aの群番号は「0」であり、ダミーレコード群60bの群番号は「1」である。 The registered data 60 includes a true data record group 60a, which is a set of records of the divided data 211, and a dummy record group 60b obtained by converting each divided keyword of the divided data 211 records. there is The group number of the true data record group 60a is "0", and the group number of the dummy record group 60b is "1".
各レコードにはランダムにIDが付与されている。登録データ60内の各レコードにはフラグが付与されている。そして登録データ60に含まれるキーワード(フラグ値も含む)が暗号化される。なおフラグ値は、変換元のレコードの分割済データ211内でのIDと、属する群の群番号との組である。 Each record is assigned an ID at random. Each record in the registration data 60 is given a flag. Keywords (including flag values) included in the registration data 60 are then encrypted. Note that the flag value is a set of the ID in the divided data 211 of the conversion source record and the group number of the group to which it belongs.
データ登録要求部250は、登録データ60の各項目値を暗号化し、登録データ60のレコードをIDでソートした後、データ管理サーバ100の秘匿化DB110に登録する。
The data
図26は、秘匿化DBの一例を示す図である。秘匿化DB110に登録されたレコードはIDによってソートされており、真のデータのレコードとダミーレコードが混在して登録されている。
FIG. 26 is a diagram illustrating an example of an anonymization DB; The records registered in the
次に、データ登録処理の手順について詳細に説明する。
図27は、データ登録処理の手順の一例を示すフローチャートである。以下、図27に示す処理をステップ番号に沿って説明する。
Next, the procedure of data registration processing will be described in detail.
FIG. 27 is a flowchart illustrating an example of the procedure of data registration processing. The processing shown in FIG. 27 will be described below along with the step numbers.
[ステップS101]データ登録要求部250は、群数Gとキーワード分割数Lの設定入力を受け付ける。GとLは共に2以上の整数である。GとLの値が大きいほど安全性が向上するが登録するダミーレコード数も増加する。そこで、GとLの値は、秘匿化DB110に求められる頻度分析攻撃に対する安全性の度合いと、秘匿化DB110に許容されるダミーレコード数とを勘案して、データ登録サーバ200の管理者が決定する。
[Step S101] The data
[ステップS102]データ登録要求部250は、項目ごとの変換集合数を決定する。例えばj番目の項目の変換集合数Mjは、天井関数を用いて以下の式(3)で表される。
[Step S102] The data
j番目の項目のキーワードの種類数Xjにキーワード分割数Lを乗算した値(L×Xj)が、その項目の分割キーワード数である。分割キーワード数を群数Gで除算した結果の天井関数(除算結果以上の最小の整数)と「3」とのうちの大きい方の値が、変換集合数となる。 The value (L×X j ) obtained by multiplying the keyword type number X j of the j-th item by the keyword division number L is the number of divided keywords of the item. The larger one of the ceiling function (minimum integer greater than or equal to the division result) obtained by dividing the number of divided keywords by the number of groups G and "3" is the number of transformation sets.
変換集合数が「3」以上となるようにしたことで、G=2の場合において、性別のように2種類のキーワードしか存在しない項目についても、3つの変換集合が生成される。これにより性別についても、異なる変換集合において、それぞれの分割キーワードの変換元のキーワードの組み合わせが同じとなることを抑止することができる。 By setting the number of conversion sets to be "3" or more, in the case of G=2, three conversion sets are generated even for an item such as gender that has only two types of keywords. As a result, it is possible to prevent the combination of the conversion source keywords of the divided keywords from becoming the same in different conversion sets for gender as well.
[ステップS103]データ登録要求部250は、すべての項目それぞれについて、ステップS102で決定した変換集合数分の変換集合を生成する。なお、データ登録要求部250は、変換集合の格納領域の数よりも分割キーワード数が少ない場合には、ダミー要素を変換集合の要素として登録する。生成される各変換集合は少なくとも1つの分割キーワードを含み、その分割キーワードと変換元のキーワードが共通の他の分割キーワードが他の変換集合に含まれる。これにより、図15の変換集合一覧232に示すような変換集合232a~232jが生成される。なお、変換集合生成手順の詳細は後述する(図28参照)。
[Step S103] The data
[ステップS104]データ登録要求部250は、分割キーワード選択テーブル233を生成する。例えばデータ登録要求部250は、キーワード一覧231に示されるキーワードごとに「0」~「1」のL-1個の乱数を生成する。そしてデータ登録要求部250は、生成した乱数を境界値とし、「0」~「1」の数値範囲を境界値で分割して得られる複数の数値範囲それぞれの大きさを、分割キーワードのそれぞれの選択確率とする。
[Step S<b>104 ] The data
例えばデータ登録要求部250は、L=2の場合、1つのキーワードについて1個の乱数を生成する。例えば図14に示した分割キーワード選択テーブル233では、「小児科」について乱数「0.72」が生成されている。そこでデータ登録要求部250は、「0」から乱数までの数値範囲の大きさ「0.72」を、1つ目の分割キーワード「小児科0」の選択確率として設定している。またデータ登録要求部250は、乱数から「1」までの数値範囲の大きさ「0.28」を、2つ目の分割キーワード「小児科1」の選択確率として設定している。
For example, when L=2, the data
キーワードごとに乱数が生成されるため、すべての分割キーワードの選択確率は不統一な値となる。データ登録要求部250は、分割キーワードに対応付けてその選択確率を分割キーワード選択テーブル233に設定する。これにより、図14に示すような分割キーワード選択テーブル233が生成される。
Since a random number is generated for each keyword, the selection probabilities of all divided keywords are non-uniform values. The data
[ステップS105]データ登録要求部250は、DB210から平文のデータを読み込む。
[ステップS106]データ登録要求部250は、読み込んだ平文のデータのレコードに登録されているキーワードを、分割キーワード選択テーブル233に示される選択確率で確率的に分割キーワードに変換する。例えばデータ登録要求部250は、平文のデータに含まれるキーワードを1つずつ選択する。次にデータ登録要求部250は、選択したキーワードの分割キーワードの選択確率に応じた大きさの「0」~「1」内の数値範囲を分割キーワードに割り当てる。例えば図14に示した分割キーワード選択テーブル233の場合において「小児科」が選択されると、データ登録要求部250は「0」から「0.72」の数値範囲に「小児科0」を割り当て、「0.28」から「1」の数値範囲に「小児科1」を割り当てる。そしてデータ登録要求部250は、「0」~「1」の範囲内の乱数を生成し、生成した乱数を含む数値範囲に割り当てられた分割キーワードに、選択したキーワードを変換する。
[Step S<b>105 ] The data
[Step S<b>106 ] The data
[ステップS107]データ登録要求部250は、群数G-1個のダミーレコード群を含むダミーデータを生成する。なお、ダミーデータ生成処理の詳細は後述する(図29参照)。
[Step S107] The data
[ステップS108]データ登録要求部250は、真のデータとダミーデータとのレコードそれぞれに、ランダムにIDを付与する。
[ステップS109]データ登録要求部250は、各レコードにフラグを付与する。例えばデータ登録要求部250は、各レコードについて、そのレコードの変換元となったレコードのDB210内でのIDと、そのレコードが属する群の群番号との組をフラグ値として生成する。元のレコードのIDと群番号との組をフラグ値とすることで、各レコードにユニークなフラグ値が生成される。
[Step S108] The data
[Step S109] The data
[ステップS110]データ登録要求部250は、各レコードをIDでソートする。
[ステップS111]データ登録要求部250は、ソートされたレコード群を暗号化して、秘匿化DB110に登録する。例えばデータ登録要求部250は、レコード内の項目値ごとに暗号化し、暗号化された値を有するレコード群を、登録データとしてデータ管理サーバ100に送信する。データ管理サーバ100では、データ登録部120が登録データを受信し、受信した登録データを秘匿化DB110に格納する。
[Step S110] The data
[Step S<b>111 ] The data
次に変換集合の生成処理について詳細に説明する。
図28は、変換集合生成処理の手順の一例を示すフローチャートである。以下、図28に示す処理をステップ番号に沿って説明する。
Next, the transformation set generation processing will be described in detail.
FIG. 28 is a flowchart illustrating an example of the procedure of transformation set generation processing. The processing shown in FIG. 28 will be described below along with the step numbers.
[ステップS121]データ登録要求部250は、変換集合の生成処理を行っていない項目のうちの1つを、処理対象項目として選択する。
[ステップS122]データ登録要求部250は、キーワード一覧231の中から、処理対象項目のキーワードのうち変換集合に未設定のキーワードを1つ選択する。
[Step S121] The data
[Step S<b>122 ] The data
[ステップS123]データ登録要求部250は、設定対象の分割キーワードを示す分割キーワード番号lに初期値「0」を設定する(l=0)。
[ステップS124]データ登録要求部250は、変換集合における値が未設定の要素のうちの要素番号が最小の要素の要素番号を、設定先の要素番号gに設定する。
[Step S123] The data
[Step S124] The data
[ステップS125]データ登録要求部250は、値が未設定の要素番号gの要素のうちの変換集合番号が最小の要素の変換集合の変換集合番号を、設定先の変換集合番号mに設定する。
[Step S125] The data
[ステップS126]データ登録要求部250は、xm,gの要素にl番目の分割キーワードを設定する。
[ステップS127]データ登録要求部250は、キーワード番号lがL-1に達したか否かを判断する(l=L-1?)。データ登録要求部250は、L-1に達していなければ処理をステップS128に進める。またデータ登録要求部250は、L-1に達していれば処理をステップS130に進める。
[Step S126] The data
[Step S127] The data
[ステップS128]データ登録要求部250は、設定先の要素番号gと設定先の変換集合番号mとを更新する。例えばデータ登録要求部250は、設定先の要素番号を「g=mod(g+1,G)」に更新する。またデータ登録要求部250は、設定先の変換集合番号mを「m=mod(m+1,M)」に更新する。さらにデータ登録要求部250は、分割キーワード番号lに1を加算する(l=l+1)。
[Step S128] The data
[ステップS129]データ登録要求部250は、xm,gの要素に値が未設定か否かを判断する。データ登録要求部250は、値が未設定であれば処理をステップS126に進める。またデータ登録要求部250は、値が設定済であれば、処理をステップS124に進める。
[Step S129] The data
[ステップS130]データ登録要求部250は、処理対象項目のキーワードのうち未設定のキーワードが残っているか否かを判断する。データ登録要求部250は、未設定のキーワードがあれば、処理をステップS122に進める。またデータ登録要求部250は、未設定のキーワードがなければ処理をステップS131に進める。
[Step S130] The data
なおデータ登録要求部250は、選択した項目のすべてのキーワードに対応する分割キーワードを変換集合の要素に設定完了後に、その項目に対応する変換集合に値が未設定の領域が残っている場合、該当領域にダミー要素を設定する。
Note that the data
[ステップS131]データ登録要求部250は、未処理の項目があるか否かを判断する。データ登録要求部250は、すべての項目について変換集合を生成する処理が完了していれば、変換集合生成処理を終了する。またデータ登録要求部250は、未処理の項目があれば処理をステップS121に進める。
[Step S131] The data
このような手順で変換集合を生成することで、適切な変換集合を生成することができる。次に、ダミーデータ生成処理について詳細に説明する。
図29は、ダミーデータ生成処理の手順の一例を示すフローチャートである。以下、図29に示す処理をステップ番号に沿って説明する。
An appropriate conversion set can be generated by generating a conversion set in such a procedure. Next, dummy data generation processing will be described in detail.
FIG. 29 is a flowchart illustrating an example of the procedure of dummy data generation processing. The processing shown in FIG. 29 will be described below along with the step numbers.
[ステップS141]データ登録要求部250は、ステップS102で算出した群数Gを取得する。
[ステップS142]データ登録要求部250は、真のデータをG-1個コピーし、G-1個のダミーレコード群を生成する。
[Step S141] The data
[Step S142] The data
[ステップS143]データ登録要求部250は、真のデータの全項目それぞれについて、ステップS144~S146の処理を実行する。
[ステップS144]データ登録要求部250は、全ダミーレコードそれぞれについて、ステップS145の処理を実行する。
[Step S143] The data
[Step S144] The data
[ステップS145]データ登録要求部250は、ダミーレコードの項目値を変換する。例えばデータ登録要求部250は、処理対象の項目に対応する変換集合の中から、ダミーレコードにおける処理対象の項目値(変換対象項目値)を含む変換集合を選択する。次にデータ登録要求部250は、処理対象のダミーレコードの属するダミーレコード群の群番号を取得する。データ登録要求部250は、選択した変換集合内の変換対象項目値に対応する要素から群番号の分だけ巡回的に右の要素を、その変換集合から取得する。そしてデータ登録要求部250は、変換処理対象のダミーレコード内の変換対象項目値を、取得した要素の値(ダミー値)に変換する。
[Step S145] The data
[ステップS146]データ登録要求部250は、全ダミーレコードそれぞれについて、ステップS145の処理が完了した場合、処理をステップS147に進める。
[ステップS147]データ登録要求部250は、全項目それぞれについて、ステップS144~S146の処理が完了した場合、ダミーデータ生成処理を終了する。
[Step S146] When the processing of step S145 is completed for each dummy record, the data
[Step S147] When the processes of steps S144 to S146 are completed for all items, the data
このようにして、真のデータの項目値を、変換集合内の他の要素に置き換えることで、ダミーデータが生成される。そしてデータ登録要求部250が、生成したダミーデータとフラグ値を含む登録データを暗号化して秘匿化DB110に登録する。
In this way, dummy data is generated by replacing the item values of the true data with other elements in the conversion set. Then, the data
秘匿化DB110内のデータを検索しようとする検索者は、例えば端末装置400の検索条件入力画面を介して検索キーワードを端末装置400に入力する。
図30は、検索条件入力画面の一例を示す図である。検索条件入力画面61には、例えば検索変数としてDB210内の各項目の名称が設定されている。そして検索変数に対応付けて、その検索変数の指定値を検索キーワードとして入力するための指定値入力領域62が設けられている。検索者が指定値入力領域62に、検索変数として示されている項目の指定値を入力すると、端末装置400は、入力された指定値を検索キーワードとする検索を行う。
A searcher who intends to search for data in the
FIG. 30 is a diagram showing an example of a search condition input screen. For example, the name of each item in the
端末装置400は、秘匿化検索を実施するために、変換情報記憶部420に格納された情報を用いて検索キーワードの分割キーワードへの変換などの処理を行う。
図31は、端末装置内の変換情報記憶部に格納される情報の一例を示す図である。変換情報記憶部420には、キーワード一覧421、変換集合一覧422、および分割キーワード一覧423が格納されている。このうちキーワード一覧421および変換集合一覧422は、それぞれデータ登録サーバ200が有するキーワード一覧231および変換集合一覧232と同じ内容のデータである。
The
31 is a diagram depicting an example of information stored in a conversion information storage unit within a terminal device; FIG. A
分割キーワード一覧423は、DB210に登録可能なキーワードそれぞれと分割キーワードとの対応関係を示すデータである。分割キーワード一覧423の内容は、データ登録サーバ200が有する分割キーワード選択テーブル233から選択確率の情報を削除したものと同じである。端末装置400は、分割キーワード一覧423に基づいて、検索キーワードを分割キーワードに変換する。
The
図32は、分割キーワードへの変換の一例を示す図である。端末装置400は、入力された検索条件を示す平文検索クエリ63を分割する。例えば端末装置400は、検索者から検索条件として「年齢層=老人」(左辺が項目名、右辺がキーワード(項目値)を表す)の入力を受け付けたものとする。端末装置400は、分割キーワード選択テーブル233から、キーワード「老人」に対応付けられた分割キーワードを取得する。図32の例では、「老人0」と「老人1」とが分割キーワードとして取得される。端末装置400は、検索キーワード「老人」を分割キーワード「老人0」および「老人1」に分割して、それらの論理和を示す分割クエリ64を生成する。
FIG. 32 is a diagram showing an example of conversion into split keywords. The
端末装置400は、変換集合一覧422に基づいて、分割クエリ64から攪乱クエリを生成する。
図33は、攪乱クエリの生成の一例を示す図である。端末装置400が有する変換集合一覧422の内容は変換集合一覧232と同じであり、DB210の項目に対応する変換集合422a~422jが含まれる。
The
FIG. 33 is a diagram illustrating an example of generation of a disruptive query. The
端末装置400は、分割クエリ64に含まれる分割キーワード「老人0」および「老人1」それぞれについて、検索対象の群をランダムに決定する。例えば「老人0」の検索対象の群は「1」、「老人1」の検索対象の群は「0」に決定されたものとする。
The
端末装置400は、変換集合一覧422を参照し、決定された群に基づいて、分割クエリ64内の分割キーワードを変換して攪乱クエリ65を生成する。例えば「老人0」は、変換集合422gに従って、群「1」の要素「児童0」に変換される。また「老人1」は検索対象の群が「0」(真のデータのレコード群)であるため、変換されない。
The
そして端末装置400は、攪乱クエリ65内のキーワードを暗号化する。これにより暗号文のキーワードを含む秘匿化検索クエリ66が生成される。端末装置400は、秘匿化検索クエリ66を含む検索要求をデータ管理サーバ100に送信する。
The
図34は、検索処理の一例を示す図である。データ管理サーバ100は、秘匿化検索クエリ66を受信すると、秘匿化検索クエリ66に示される条件を満たすレコードを秘匿化DB110から検索する。例えば「H(年齢層=児童0)」の条件を満たすレコードは、ID「9」とID「10」のレコードである。また「H(年齢層=老人1)」の条件を満たすレコードは、ID「3」とID「8」のレコードである。秘匿化検索クエリ66は、「H(年齢層=児童0)」と「H(年齢層=老人1)」との論理和であるため、これらの条件のいずれかを満たすレコードが秘匿化検索結果67に含められる。データ管理サーバ100は、秘匿化検索結果67を端末装置400に送信する。
FIG. 34 is a diagram depicting an example of search processing; Upon receiving the anonymized
端末装置400は、秘匿化検索結果67を受信すると、秘匿化検索結果67内の項目値を復号する。端末装置400は、復号することにより、秘匿化検索結果67における3つ目と4つ目のレコードが「年齢層=児童0」を満たしており、1つ目と2つ目のレコードが「年齢層=老人1」を満たしていることを認識する。
Upon receiving the anonymous search result 67 , the
端末装置400は、復号して得られた各レコードのフラグに基づいて、そのレコードが属する群の群番号を判断する。そして端末装置400は、各レコードが属する群が、検索群か否かを判断する。例えば「年齢層=児童0」の検索群は「1」であるため「年齢層=児童0」を満たすレコードのうち、群番号「1」のレコードのみが検索対象のレコードである。また「年齢層=老人1」の検索群は「0」であるため「年齢層=老人1」を満たすレコードのうち、群番号「0」のレコードのみが検索対象のレコードである。
The
端末装置400は、秘匿化検索結果67に含まれていたレコードのうち検索群に属していないレコードを除去し、残りのレコードを復元する。なお真のデータのレコード群(群番号「0」)に属していたレコードについては、復元処理は不要である。端末装置400は、ダミーレコード群(群番号「1」)に属していたレコードの項目値を、データ登録サーバ200が有する変換集合一覧232(図15参照)と同じ内容の変換集合一覧422(図33参照)に基づいて、攪乱クエリ65の生成時と逆の変換を行う。その結果、群番号「1」に属するダミーレコードにおける「小児科1」は「婦人科0」に変換され、「男1」は「女0」に変換され、「児童0」は「老人0」に変換される。
The
端末装置400は、各レコードに項目値として設定されている分割キーワードを元のキーワードに変換し、フラグを除去することで検索結果68を生成する。図34の例では、分割キーワードの最後の数字を削除することで、元のキーワードに変換することができる。
The
図35は、検索処理の手順の一例を示すフローチャートである。以下、図35に示す処理をステップ番号に沿って説明する。
[ステップS201]検索要求部440は、ユーザからの検索条件として入力された検索キーワードと、その検索キーワードに対応する項目を、平文検索クエリとして取得する。
FIG. 35 is a flowchart illustrating an example of a search processing procedure. The processing shown in FIG. 35 will be described below along with the step numbers.
[Step S201] The
[ステップS202]検索要求部440は、変換集合一覧422と分割キーワード一覧423を生成する。例えば検索要求部440は、データ登録要求部250における項目ごとの変換集合生成処理と同様の処理を行い、変換集合一覧422を生成する。検索要求部440によって生成される変換集合一覧442は、データ登録要求部250で生成された変換集合一覧232と同じものとなる。
[Step S202] The
データ登録要求部250が乱数を用いてステップS122(図28参照)のキーワードの選択順を決定している場合、検索要求部440は、データ登録要求部250が乱数の生成に使用した乱数シードをデータ登録サーバ200から取得する。検索要求部440は、取得した乱数シードに基づいて、データ登録要求部250が変換集合に用いたものと同じ乱数を生成して、キーワードの選択順を決定する。その結果、データ登録サーバ200が有する変換集合一覧232と同じ内容の変換集合一覧422を生成することができる。なお検索要求部440は、データ登録サーバ200から変換集合一覧232を取得し、端末装置400の変換集合一覧422として変換情報記憶部420に格納してもよい。
If the data
検索要求部440が生成する分割キーワード一覧423は、データ登録サーバ200における分割キーワード選択テーブル233から選択確率の情報を除いたものである。例えば検索要求部440は、データ登録サーバ200と同じアルゴリズムで分割キーワードを生成する。例えば検索要求部440は、キーワード一覧421に示されるキーワードの後ろに、分割キーワードを識別する0から昇順の番号を追加することで、分割キーワードを生成する。
The
[ステップS203]検索要求部440は、取得した平文検索クエリを分割する。例えば検索要求部440は、平文検索クエリに含まれる検索キーワードを分割キーワードに分割する。そして検索要求部440は、分割によって得られた分割キーワードごとの分割クエリを生成する。図32に示すような分割キーワード一覧423が生成されているとき、検索キーワード「老人」は「老人0」と「老人1」とに分割される。そして検索キーワード「老人0」を含む分割クエリと検索キーワード「老人1」を含む分割クエリとが生成される。分割により生成された分割クエリの検索結果の論理和が、取得した平文検索クエリの検索結果である。
[Step S203] The
取得した平文検索クエリには、複数の検索キーワードが含まれる場合がある。複数の検索キーワードの論理和検索の場合、検索要求部440は、各検索キーワードを分割キーワードに分解し、分割キーワードごとの分割クエリを生成する。複数生成された分割クエリによる検索結果の論理和が、取得した平文検索クエリの検索結果である。
The obtained plaintext search query may contain multiple search keywords. In the case of a logical sum search of multiple search keywords, the
また複数の検索キーワードの論理積検索の場合、検索要求部440は、項目が異なる分割キーワード間のすべての組み合わせを生成する。3つ以上の項目それぞれの検索キーワードの論理積の場合であれば、検索要求部440は、各項目から1ずつ分割キーワードを選択することで生成可能な分割キーワードのすべての組み合わせを生成する。そして検索要求部440は、生成した分割キーワードの組み合わせごとの論理積の平文検索クエリを生成する。この場合も、複数生成された分割クエリによる検索結果の論理和が、取得した平文検索クエリの検索結果である。
Also, in the case of a logical product search of a plurality of search keywords, the
例えば取得した平文検索クエリが「A∧B」であり、検索キーワード「A」は「A0」と「A1」に分割され、検索キーワード「B」は「B0」と「B1」に分割されるものとする。この場合、検索要求部440は、分割クエリとして、「A0∧B0」、「A0∧B1」、「A1∧B0」、「A1∧B1」を生成する。
For example, the obtained plaintext search query is "A∧B", the search keyword "A" is divided into "A0" and "A1", and the search keyword "B" is divided into "B0" and "B1". and In this case, the
[ステップS204]検索要求部440は、生成された分割クエリのうち未選択のものを1つ選択する。
[ステップS205]検索要求部440は、真のデータのレコード群とダミーレコード群とを含むすべての群の中から、1つの群を確率的に選択する。検索要求部440は、選択したレコード群を対象として検索を行うこととなる。なお、秘匿化DB110内のすべてのダミーレコード群は真のデータのレコード群と値は異なるものの同一の頻度分布を有している。そのためダミーレコード群を検索対象としたとしても、検索結果として得られたダミーレコード内のダミー値を変換集合に従って逆変換することで正しい検索結果を得ることができる。
[Step S204] The
[Step S205] The
このように分割クエリを変換集合に従って変換(攪乱)すれば、どの群を検索しても、平文データ群を検索した際と同一の結果が得られる。そのため、検索クエリの攪乱を行いながらも、検索クエリの数は増加しない。また検索要求部440が検索対象とする群をランダムに決定することで、攻撃者33が検索される群の偏りによって秘匿化DBの各レコードの群番号を特定することが抑止される。
By transforming (disturbing) the split query according to the transform set in this way, the same result as when the plaintext data group is retrieved can be obtained regardless of which group is retrieved. Therefore, the number of search queries does not increase while perturbing search queries. In addition, by randomly determining the group to be searched by the
[ステップS206]検索要求部440は、ダミーレコード群を選択したか否かを判断する。検索要求部440は、選択したのがダミーレコード群であれば、処理をステップS207に進める。また検索要求部440は、選択したのが真のデータのレコード群であれば、処理をステップS212に進める。
[Step S206] The
[ステップS207]検索要求部440は、生成した分割クエリを、変換集合に基づいて攪乱する。例えば検索要求部440は、分割クエリにおいて、検索対象の項目と分割キーワードが指定されている場合、まず検索対象の項目に対応する1以上の変換集合の中から、指定された分割キーワードに対応する要素を含む変換集合を特定する。次に検索要求部440は、選択したダミーレコード群の群番号を取得する。検索要求部440は、検索対象の分割キーワードに対応する変換集合内の要素から群番号の分だけ巡回的に右の要素を、その変換集合から取得する。そして検索要求部440は、分割クエリ内の変換対象の分割キーワードを、取得した要素の値(ダミー値)に変換する。
[Step S207] The
[ステップS208]検索要求部440は、ステップS207で変換された後の分割クエリを暗号化して秘匿化検索クエリを生成する。検索要求部440は、生成した秘匿化検索クエリをデータ管理サーバ100に送信する。
[Step S208] The
[ステップS209]検索要求部440は、データ管理サーバ100から秘匿化検索の検索結果(秘匿化検索結果)を取得する。検索要求部440は、秘匿化検索結果から、ステップS206で選択されたダミーレコード群に属するダミーレコードのみを抽出する。このとき検索要求部440は、各レコードのフラグ値に基づいて、選択されたダミーレコード群に属するダミーレコードを特定できる。
[Step S<b>209 ] The
[ステップS210]検索要求部440は、秘匿化検索結果に含まれる、抽出したダミーレコード内の項目値(ダミー値)を、予めデータ登録サーバ200から取得した暗号鍵を用いて復号する。
[Step S<b>210 ] The
[ステップS211]検索要求部440は、ステップS206で選択されたダミーレコード群に属するダミーレコードの復号されたダミー値を変換集合に基づいて逆変換し、平文の真の値が設定された検索結果を復元する。
[Step S211] The
図36は、ダミー値の逆変換の一例を示す図である。例えば検索要求部440は、ダミー値が属する項目に対応する1以上の変換集合の中からダミー値に対応する要素を含む変換集合を特定する。図36の例では、変換集合69が特定されたものとする。次に検索要求部440は、ステップS206で選択したダミーレコード群の群番号を取得する。検索要求部440は、ダミー値に対応する変換集合69内の要素から、群番号の分だけ巡回的に左の要素を、その変換集合69から取得する。そして検索要求部440は、復号されたダミー値を、取得した要素の値(真のデータの分割キーワード)に変換する。例えば群番号「2」のダミーレコード群に属するダミーレコードのダミー値が「児童1」の場合、そのダミー値は変換集合69において「児童1」の左側に2つ目の要素「成人1」に逆変換される。
FIG. 36 is a diagram showing an example of inverse transformation of dummy values. For example, the
図36に示した逆変換の関係は、データ登録サーバ200がデータ登録時に行った項目値の変換に用いた写像の逆写像となる全単射関係である。選択されたダミーレコード群に属するダミーレコード内のすべてのダミー値に対してこのような逆変換を行うことで、ダミー値に対応する分割キーワードが得られる。検索要求部440は、分割キーワード一覧に基づいて、分割キーワードを元のキーワード(真の値)に変換する。これにより真の検索結果が生成される。その後、検索要求部440は、処理をステップS215に進める。
The inverse transformation relationship shown in FIG. 36 is a bijective relationship that is the inverse mapping of the mapping used for the conversion of the item values performed by the
以下、図35の説明に戻る。
[ステップS212]検索要求部440は、検索条件に真のデータのレコード群に対応するフラグ値を追加した検索クエリを暗号化して秘匿化検索クエリを生成し、秘匿化検索クエリをデータ管理サーバ100に送信する。
Hereinafter, the description will return to FIG.
[Step S212] The
[ステップS213]検索要求部440は、データ管理サーバ100から秘匿化検索クエリを用いた秘匿化検索結果を取得する。
[ステップS214]検索要求部440は、秘匿化検索結果に含まれる、真のデータのレコード群のレコード内の項目値を復号する。なお検索要求部440は、ステップS210と同様に、選択した群のレコード(真のデータのレコード)を特定する。検索要求部440は、真のデータのレコード内の分割キーワードを、分割キーワード一覧に基づいて元のキーワードに変換し、平文の真の値が設定された検索結果を得る。
[Step S<b>213 ] The
[Step S214] The
[ステップS215]検索要求部440は、平文の検索結果を出力する。
[ステップS216]検索要求部440は、すべての分割クエリが選択されたか否かを判断する。検索要求部440は、未選択の分割クエリがある場合、処理をステップS204に進める。また検索要求部440は、すべての分割クエリが選択され、対応する秘匿化検索クエリによる検索が終了した場合、検索処理を終了する。
[Step S215] The
[Step S216] The
検索結果は、例えば検索結果表示画面に表示される。
図37は、検索結果表示画面の一例を示す図である。検索結果表示画面70には、例えば患者に関する検索条件と、その検索条件に適合する患者の数が表示されている。また検索結果表示画面70には、検索でヒットしたレコードの平文のデータが表示されている。
Search results are displayed, for example, on a search result display screen.
FIG. 37 is a diagram showing an example of a search result display screen. The search result display screen 70 displays, for example, search conditions related to patients and the number of patients who match the search conditions. The search result display screen 70 also displays plaintext data of records hit by the search.
このような検索により、G個の分割キーワードの集合ごとに項目値の出現頻度が均等化される。その結果、項目値ごとの出現頻度の偏りが抑止され、頻度分析攻撃に対する安全性が向上する。しかも分割キーワードの出現頻度は秘密の選択確率によって決まっているため、頻度攪乱後のあるキーワードの出現頻度に基づいて、そのキーワードの候補を絞り込むことは困難である。 Such a search equalizes the frequency of appearance of item values for each set of G divided keywords. As a result, bias in appearance frequency for each item value is suppressed, and security against frequency analysis attacks is improved. Moreover, since the appearance frequency of the divided keywords is determined by the secret selection probability, it is difficult to narrow down the keyword candidates based on the appearance frequency of a certain keyword after frequency disturbance.
以下、図38と図39を参照して、秘匿化DB110頻度分析攻撃の困難性について説明する。
図38は、分割キーワードによる頻度攪乱の一例を示す図である。例えばDB210内の年齢層の項目について、「老人」の出現頻度が「98」、「成人」の出現頻度が「35」、「青年」の出現頻度が「91」、児童の出現頻度が「63」であるものとする。各キーワードは2つずつに分割され、図15に示す変換集合232g~232jによって群「1」のダミーレコードの項目値がダミー値への変換が行われることで、出現頻度攪乱が実現される。
The difficulty of the anonymized
FIG. 38 is a diagram showing an example of frequency disturbance by split keywords. For example, regarding the age group items in the
秘匿化DB110には頻度攪乱後のデータが登録され、変換集合ごとに分割キーワードの出現頻度が均等化されている。図中、実線の矩形内の数字は群「0」(真のデータのレコード群)における出現頻度であり、破線の矩形内の数字は群「1」(ダミーレコード群)における出現頻度である。
Data after frequency disturbance is registered in the
図38の例では、「H(老人0)」と「H(児童0)」の出現頻度は共に「65」である。「H(老人1)」と「H(成人0)」の出現頻度は共に「81」である。「H(成人1)」と「H(青年0)」の出現頻度は共に「80」である。「H(青年1)」と「H(児童1)」の出現頻度は共に「61」である。 In the example of FIG. 38, the frequency of appearance of both "H (old man 0)" and "H (child 0)" is "65". The frequency of appearance of both "H (old man 1)" and "H (adult 0)" is "81". The frequency of occurrence of both "H (adult 1)" and "H (youth 0)" is "80". The frequency of appearance of both "H (youth 1)" and "H (child 1)" is "61".
図39は、頻度分析攻撃の一例を示す図である。例えば攻撃者33は、秘匿化DB110への検索状況を盗み見ることで、検索によってヒットしたレコード数により攪乱後頻度「65,81,80,61」の4パターンであることを把握できたものとする。
FIG. 39 is a diagram illustrating an example of a frequency analysis attack; For example, it is assumed that the
攻撃者33がDB210における各キーワードの出現頻度を知っているとき、攻撃者33がそれらの出現頻度を組み合わせても攪乱後頻度とはならない。そこで攻撃者33は、分割頻度と変換集合の要素の組み合わせを総当たりで、組み合わせごとの攪乱後頻度を算出することが考えられる。
When the
例えば「老人」であれば、「老人0」と「老人1」それぞれの分割頻度の比率は「0:98」、「1:97」、「2:96」、・・・、「98:0」の99通り存在する。同様に「成人」についての分割頻度の比率は36通り、「青年」についての分割頻度の比率は92通り、「児童」についての分割頻度の比率は64通り存在する。 For example, for "elderly", the ratios of division frequencies for "elderly 0" and "elderly 1" are "0:98", "1:97", "2:96", ..., "98:0". ” exists in 99 ways. Similarly, there are 36 division frequency ratios for "adult", 92 division frequency ratios for "youth", and 64 division frequency ratios for "child".
また同じ変換集合の要素となる分割キーワードの組み合わせも、多数のパターンが考えられる。例えば「老人0」と同じ変換集合に属する分割キーワードは、「児童0」以外にも「成人0」の場合、「青年0」の場合も考えられる。変換集合の生成アルゴリズムが既知であったとしても、変換集合を生成する前にキーワードをランダムに並べ替えておけば、どのような組み合わせの変換集合が生成されるのかを秘密にしておくことは可能である。
Also, there are many possible patterns of combinations of split keywords that are elements of the same conversion set. For example, divided keywords belonging to the same conversion set as "
攻撃者33は、これらのすべての組み合わせの可能性を考慮して、攪乱後頻度「65,81,80,61」それぞれの検索対象のキーワードを探し出すこととなる。しかし、攪乱後頻度が「65,81,80,61」となるような分割頻度と変換集合のパターンは多数存在する。例えば図15に示す通りの変換集合232g~232jであったとしても、変換集合232g~232jそれぞれの分割キーワードの攪乱後頻度が「65,81,80,61」となる分割頻度の組み合わせは、図39に示すように35通り存在する。
The
また変換集合232g~232jそれぞれの分割キーワードの攪乱後頻度が「61,80,81,65」の場合(出現頻度例72)がある。この出現頻度例72の場合を、変換集合232g~232jそれぞれの分割キーワードの攪乱後頻度が「65,81,80,61」の場合(出現頻度例71)と区別することはできない。変換集合232g~232jそれぞれの分割キーワードの攪乱後頻度が「61,80,81,65」の場合(出現頻度例72)についても、そのような攪乱後頻度となる分割頻度の組み合わせは多数存在する。 Further, there is a case where the post-conversion frequencies of the divided keywords of the conversion sets 232g to 232j are "61, 80, 81, 65" (appearance frequency example 72). The case of appearance frequency example 72 cannot be distinguished from the case (appearance frequency example 71) in which the post-disturbance frequencies of the divided keywords of the conversion sets 232g to 232j are "65, 81, 80, 61". In the case where the post-disturbance frequencies of the divided keywords of the conversion sets 232g to 232j are "61, 80, 81, 65" (appearance frequency example 72), there are many combinations of the post-disturbance frequencies. .
そのため攻撃者33は、検索が実行されたときにヒットしたレコード数から検索対象のキーワードを絞り込もうとしても、いずれのキーワードもあり得ることとなり、絞り込みは困難である。例えば検索にヒットしたレコード数が「81」であったとしても、出現頻度例71または出現頻度例72があり得ることを考慮すると、検索対象のキーワードとしてはいずれのキーワードもあり得ることとなる。このように頻度分析攻撃が困難となっている。
Therefore, even if the
また端末装置400では、検索結果としてダミーレコードを取得した場合でも、そのダミーレコードのダミー値に基づいて、入力された検索条件に適合する真のデータの項目値を取得することができる。そのため、攻撃者33がデータ管理サーバ100から送信された検索結果を取得したとしても、検索結果に含まれる項目値が真のデータの項目値なのかダミー値なのかを、攻撃者33は判別することができない。その結果、真のデータの機密性が向上する。
Even when a dummy record is acquired as a search result, the
なお、変換集合一覧232は秘密情報であり、秘匿化DB110にデータを登録するデータ登録サーバ200と、その秘匿化DB110の検索が許可されている端末装置400のみが変換集合一覧232を有する。また1レコードごとのレコードの追加・削除を行うと、追加・削除された暗号文と平文の対応付けが可能となる。そのためデータ登録サーバ200は、1行単位での変換集合が特定されるため、1レコードごとのレコードの追加・削除は行わない。すなわちデータ登録サーバ200は、所定数以上の量のレコードを纏めて、DB210および秘匿化DB110への追加または削除を行う。
Note that the
〔第3の実施の形態〕
次に第3の実施の形態について説明する。第3の実施の形態は、ダミーレコードを用いずに頻度攪乱を行うものである。
[Third Embodiment]
Next, a third embodiment will be described. The third embodiment performs frequency perturbation without using dummy records.
前述の第2の実施の形態では複数のダミーレコードを有するダミーデータを追加しているため、秘匿化DB110内のレコード数は、元のデータのレコード数の整数倍となる。第3の実施の形態ではデータ登録サーバ200は、ダミーレコードの生成に代えて、分割キーワードを所定数ずつの変換集合に纏め、同じ変換集合に属する分割キーワードを共通の値(共有キーワード)に変換することで頻度攪乱を行う。すなわち、複数の値が共通の値に変換されることで、秘匿化DB内の各値の出現頻度は、真のデータの各値の出現頻度とは異なる数となる。このときデータ登録サーバ200は、各レコードに、共有キーワードの変換元の分割キーワードを示す情報をフラグとして設定する。
Since dummy data having a plurality of dummy records is added in the above-described second embodiment, the number of records in the
図40は、共通キーワードへの変換の一例を示す図である。第3の実施の形態では、データ登録サーバ200は、第2の実施の形態における変換集合一覧に代えて、共有集合一覧234を生成する。
FIG. 40 is a diagram showing an example of conversion to common keywords. In the third embodiment, the
共有集合一覧234には、項目ごとの1以上の共有集合234a~234jが含まれる。共有集合234a~234jの生成条件は、少なくとも1つの要素が分割キーワードであり、かつその分割キーワードと変換元のキーワードが共通の他の分割キーワードが他の変換集合に含まれることである。換言すると共有集合234a~234jそれぞれは、1つのキーワードに対応するn個の分割キーワードのうちのn-1個以下の分割キーワードを含む。
The
図40の例では、共有集合一覧234には、診療科についての3つの共有集合234a~234c、性別についての3つの共有集合234d~234df、および年齢層についての4つの共有集合234g~234jが含まれている。共有集合234d,234fには1つの要素が含まれ、それ以外の共有集合234a~234c,234e,234g~234jには、2つずつの要素が含まれている。共有集合234a~234jに含まれる要素は、すべて分割キーワードである。また分割しないキーワードがある場合、そのキーワードも共有集合234a~234jの要素となる。
In the example of FIG. 40, the shared
データ登録サーバ200は、第2の実施の形態と同様に、分割キーワード選択テーブル233(図14参照)を参照して、平文のDB210に格納されていたキーワードを、そのキーワードに対応する複数の分割キーワードのうちの1つに確率的に変換する。そしてデータ登録サーバ200は、分割済データ211を生成する。
As in the second embodiment, the
さらにデータ登録サーバ200は、分割済データ211内の分割キーワードを、共有集合一覧234に基づいて共有キーワードへ変換する。例えばデータ登録サーバ200は、1つの共有集合内の要素それぞれに対応する分割キーワードは、同じ共有キーワードに変換する。図40の例では、共有集合234a~234jに含まれる要素を列挙した文字列が共有キーワードとなっている。
Furthermore, the
なお図40における共有集合234a~234j内の「:」の左の数字は要素番号である。「:」の右の文字列が要素として設定された分割キーワードである。
例えば共有集合234aには「小児科0」と「内科0」とが要素として含まれる。そのため分割済データ211内の分割キーワード「小児科0」と「内科0」は、いずれも共通キーワード「小児科0,内科0」に変換される。なお共有集合234dには、要素が「男0」のみである。そのため共有集合234dに対応する共有キーワードは、分割キーワードと同じ「男0」である。
Note that the numbers to the left of ":" in shared
For example, the shared
分割済データ211内の各レコードに対応するレコードが、登録データ81として生成される。そしてデータ登録サーバ200は、登録データ81内に各レコードにフラグを付与する。登録データ81は、第1の実施の形態に示した攪乱レコード群6の一例である。
A record corresponding to each record in the divided data 211 is generated as
フラグは、変換元の分割キーワードに対応する要素の要素番号と、変換元のレコードのIDを含んでいる。例えば分割済データ211のID「0」のレコードは、診療科「内科0」、性別「男1」、年齢層「老人1」を含む。「内科0」は「小児科0,内科0」に変換されている。共有集合234aにおける「内科0」の要素番号は「1」である。「男1」は「男1,女0」に変換されている。共有集合234dにおける「男1」の要素番号は「0」である。「老人1」は「老人1,成人0」に変換されている。「老人1」の要素番号は「0」である。すると変換後のレコードには、レコードのID「0」、「内科0」の要素番号「1」、「男1」の要素番号「0」、および「老人1」の要素番号「0」を含むフラグ「0(1,0,0)」が付与される。
The flag includes the element number of the element corresponding to the split keyword of the conversion source and the ID of the record of the conversion source. For example, the record with the ID "0" in the divided data 211 includes the clinical department "
データ登録サーバ200は、登録データ81を項目値ごと(フラグも含め)に暗号化して、秘匿化DB110に登録する。その際、データ登録サーバ200は、登録データ81の各レコードにランダムなIDを付与し、IDでソートしてもよい。
The
端末装置400は、図32に示す分割キーワード一覧423を有すると共に、データ登録サーバ200が有する共有集合一覧234と同じ内容の共有集合一覧を有する。そして端末装置400は、秘匿化DB110を検索する場合、検索キーワードを対応する分割キーワードそれぞれに変換後、さらに分割キーワードを共有キーワードに変換する。そして端末装置400は、共有キーワードを含む秘匿化検索クエリをデータ管理サーバ100に送信する。
The
なお、共有集合一覧234は秘密情報であり、秘匿化DB110にデータを登録するデータ登録サーバ200と、その秘匿化DB110の検索が許可されている端末装置400のみが共有集合一覧234を有する。また1レコードごとのレコードの追加・削除を行うと、追加・削除された暗号文と平文の対応付けが可能となる。そのためデータ登録サーバ200は、1行単位での共有集合が特定されるため、1レコードごとのレコードの追加・削除は行わない。すなわちデータ登録サーバ200は、所定数以上の量のレコードを纏めて、DB210および秘匿化DB110への追加または削除を行う。
Note that the shared
データ管理サーバ100は、秘匿化検索クエリに基づいて、秘匿化DB110から、該当する共有キーワードを含むレコードを検索する。秘匿化DB110内の共有キーワードの出現頻度は、共有キーワードの変換元となった各分割キーワードの出現頻度の合計である。また、分割キーワードは確率的に生成されている。そのため攻撃者33が共有キーワードの出現頻度を取得したとしても、元の検索キーワードを推定するのは困難である。
Based on the anonymized search query, the
端末装置400は、秘匿化検索クエリにヒットしたレコードをデータ管理サーバ100から取得すると、そのレコードのフラグに基づいて、共通キーワードを、変換元の分割キーワードに変換することができる。そして端末装置400は、分割キーワード一覧423に基づいて分割キーワードを元のキーワードに変換する。これにより端末装置400は、検索キーワードを含むレコードを取得することができる。
When the
またフラグ値にはレコードのIDが含まれているため、フラグ値を暗号化したときの暗号文がレコードごとにユニークな値となる。これにより、フラグ値の頻度分析攻撃を防ぐことができる。 Also, since the flag value includes the ID of the record, the ciphertext when the flag value is encrypted becomes a unique value for each record. This can prevent flag value frequency analysis attacks.
図40には、DB210に登録可能なすべてのキーワードについて分割キーワードに変換する例を示しているが、すべての共有集合が生成条件を満たせるのであれば、一部のキーワードについては分割しなくてもよい。
FIG. 40 shows an example in which all keywords that can be registered in the
図41は、共有集合の他の生成例を示す第1の図である。図41に示す共有集合一覧82には、診療科についての3つの共有集合82a~82c、性別についての2つの共有集合82d~82e、および年齢層についての3つの共有集合82f~82hが含まれている。図41の例では、診療科の「内科」、性別のキーワード「女」、年齢層のキーワード「青年」および「児童」については分割キーワードへの変換が行われない。そのため、これらのキーワードはそのまま共有集合の要素となっている。なお共有集合82c,82eに含まれる要素は1つである。第2の実施の形態における変換集合と異なり、共有集合は、要素が1つであってもよい。
FIG. 41 is a first diagram showing another example of generating shared sets. The shared
共有集合一覧82に示す各共有集合82a~82hは、共有集合の生成条件を満たしている。ただし共有集合一覧82を用いて共有キーワードへの変換を行うと、図40に示した共有集合一覧234を用いた場合に比べて、平文推定の難易度が下がる。例えば共有集合一覧82を用いて共有キーワードへの変換を行った秘匿化DB110に対して、攻撃者33は以下のような攻撃が可能である。
Each sharing set 82a to 82h shown in the sharing set
例えば攻撃者33が性別に対する検索の検索対象の特定を試みる場合を想定する。攻撃者33は、性別の共有集合82d,82eそれぞれの共有キーワードごとの攪乱後頻度を得る。例えば攻撃者33は、検索者が性別「女」のレコードを検索した場合にヒットしたレコード数を取得することで、共有集合82dに対応する共有キーワードの攪乱後頻度(「男0」の頻度と「女」の頻度との合計)を得ることができる。攻撃者33は、共有集合82dに対応する共有キーワードの攪乱後頻度から平文の「女」の頻度を減算する。すると「男0」の頻度となる。さらに攻撃者33は、減算結果にもう1つの共有集合82eに対応する共有キーワードの攪乱後頻度を加算する。加算後の頻度は、「男0」の頻度と「男1」の頻度との合計である。
Assume, for example, that the
攻撃者33は、加算結果が「男」の頻度と等しくなることが確認できれば、共有集合82dに対応する共有キーワードの攪乱後頻度となる検索が行われた場合、対応する共有集合82dには「女」が含まれると判断できる。以後、攻撃者33は、検索者により共有集合82dに対応する共有キーワードの攪乱後頻度となる検索のみが行われた場合、「女」を検索したと特定することができる。
If the
攻撃者33がこのような試行を繰り返すことで検索対象の絞り込みが可能となるが、同じ項目に登録可能なキーワード数が多くなるほど、このような攻撃の試行回数が増加し、検索対象が特定される危険性は低下する。
By repeating such attempts, the
このように、共有集合一覧82に示すような共有集合82a~82hでは、性別のように登録可能なキーワード数が少ない項目がある場合に、頻度分析攻撃に対する安全性が低下してしまう。ただし、各項目の登録可能なキーワード数が多ければ、攻撃者33が行う攻撃で用いるキーワード(攻撃において該当キーワードの頻度の加減算を行う)の組み合わせ数が膨大となる。その結果、共有集合一覧82に示すように一部の要素が、DB210に登録されるキーワードのまま(分割キーワードに変換されていない)であっても十分に安全となる。
In this way, in the shared sets 82a to 82h shown in the shared
なお第3の実施の形態においても、第2の実施の形態における変換集合と同様、含まれる分割キーワードの変換元のキーワードの組み合わせが同じとなる共有集合が複数ある場合、頻度分析攻撃に対して脆弱となる。そのためデータ登録要求部250は、含まれる分割キーワードの変換元のキーワードの組み合わせが互いに異なるように、複数の共有集合を生成する。
In the third embodiment, as in the conversion set in the second embodiment, if there are a plurality of shared sets in which the combination of the conversion source keywords of the divided keywords is the same, the frequency analysis attack become vulnerable. Therefore, the data
第3の実施の形態を実現するために各装置が有する要素は、図18に示した第2の実施の形態の各装置の要素と同じである。ただし第3の実施の形態では、各要素の処理内容の一部または記憶する情報の一部が第2の実施の形態と異なる。 Elements of each device for realizing the third embodiment are the same as those of each device of the second embodiment shown in FIG. However, in the third embodiment, part of the processing contents of each element or part of the information to be stored differs from the second embodiment.
第3の実施の形態ではデータ登録サーバ200の変換情報記憶部230に格納される情報が、第2の実施の形態と異なる。
図42は、第3の実施の形態におけるデータ登録サーバの変換情報記憶部に格納される情報の一例を示す図である。変換情報記憶部230は、キーワード一覧231、共有集合一覧234、および分割キーワード選択テーブル233を記憶する。図21に示した第2の実施の形態の変換情報記憶部230と比較すると、第2の実施の形態における変換集合一覧232が第3の実施の形態では共有集合一覧234となっている。
In the third embodiment, the information stored in the conversion
42 is a diagram illustrating an example of information stored in a conversion information storage unit of a data registration server according to the third embodiment; FIG. The conversion
共有集合一覧234は、データ登録要求部250によって生成される。データ登録要求部250は、例えば第2の実施の形態における変換集合生成手順と同じ手順で共有集合を生成することができる。
Shared
図43は、共有集合の生成例を示す図である。キーワードリスト231aには、年齢層に設定可能な4個のキーワードが示されている。またG=2であり、各共有集合234g~234jには2つずつの分割キーワードが含まれる。図14に示した分割キーワード選択テーブル233に基づいて分割キーワードを生成する場合、年齢層に関する分割キーワードは8個となる。 FIG. 43 is a diagram illustrating an example of generating a sharing set. The keyword list 231a shows four keywords that can be set for age groups. Also, G=2, and each shared set 234g-234j includes two split keywords. When the divided keywords are generated based on the divided keyword selection table 233 shown in FIG. 14, there are eight divided keywords related to age groups.
データ登録要求部250は、まず4個の共有集合234g~234jの要素の格納領域を生成する。またデータ登録要求部250は、共有集合234g~234jの識別子をそれぞれ「2-0」~「2-3」とする。識別子の左側の数値は「年齢層」に対応する値であり、右側の数値は「年齢層」の共有集合234g~234jに対する通し番号である。
The data
データ登録要求部250は、例えばキーワードリスト231aから、所定の順番あるいはランダムな順番ですべてのキーワードを1回ずつ選択する。図43の例では、キーワードリスト231aの左から順にキーワードを選択するものとする。
The data
データ登録要求部250は、選択したキーワードの分割キーワードを番号の小さい共有集合から順に、共有集合の格納領域に格納していく。このとき、データ登録要求部250は、同じキーワードに対応する分割キーワードは異なる共有集合に格納する。またデータ登録要求部250は、共有集合内の分割キーワードの変換元のキーワードの組み合わせが同じとなる複数の共有集合が生じないようにする。
The data
例えばデータ登録要求部250は、最初に選択したキーワードの1つ目の分割キーワードを先頭の共有集合234gに登録する。次にデータ登録要求部250は、そのキーワードの2つ目の分割キーワードを2番目の共有集合234hに登録する。例えば「老人」が最初に選択された場合、「老人0」が共有集合234gに登録され、「老人1」が共有集合234hに登録される。
For example, the data
データ登録要求部250は、2番目に選択したキーワードの1つ目の分割キーワードを、直前に選択したキーワードの2つ目の分割キーワードと同じ共有集合234hに登録する。次にデータ登録要求部250は、そのキーワードの2つ目の分割キーワードを次の共有集合234iに登録する。例えば「成人」が2番目に選択された場合、「成人0」が共有集合234hに登録され、「成人1」が共有集合234iに登録される。
The data
データ登録要求部250は、3番目以降に選択した各キーワードの分割キーワードについても、2番目に選択したキーワードと同様の手順で共有集合に登録する。例えば「青年」が3番目に選択された場合、「青年0」が共有集合234iに登録され、「青年1」が共有集合234jに登録される。
The data
データ登録要求部250は、最後に選択したキーワードの分割キーワードについては、格納領域が空いている共有集合に登録する。例えば「児童」が最後に選択された場合、「児童0」が共有集合234gに登録され、「児童1」が共有集合234jに登録される。
The data
このような手順で共有集合234g~234jが生成される。共有集合234g~234jそれぞれは、属する要素のうちの少なくとも1つが分割キーワードであり、かつその分割キーワードと変換元のキーワードが共通の他の分割キーワードが他の共有集合に含まれる。そのため共有集合の生成条件を満たしている。また共有集合234g~234j内の分割キーワードの変換元のキーワードの組み合わせが同じとなる複数の共有集合は生じていない。 Shared sets 234g to 234j are generated by such a procedure. At least one of the elements belonging to each of the shared sets 234g to 234j is a split keyword, and another split keyword that shares the split keyword with the conversion source keyword is included in the other shared set. Therefore, it satisfies the conditions for generating a shared set. In addition, there are no multiple shared sets in which the combination of the conversion source keywords of the divided keywords in the shared sets 234g to 234j is the same.
図43には年齢層の共有集合234g~234jの生成例を示したが、診療科および性別についても同様の手順でそれぞれの共有集合234a~234fを生成することができる。その結果、図40に示したような共有集合一覧234が生成される。
Although FIG. 43 shows an example of generation of shared
j番目の項目のキーワードの種類数をXj、j番目の項目の共有集合数をM’jとしたとき、図43に示したのは、G=2,L=2,Xj=4,M’j=4の場合の例である。これらのパラメータの値が別の値であっても、同様に適切な共有集合を生成することができる。 Assuming that the number of types of keywords in the j-th item is X j and the number of shared sets of the j -th item is M' j , FIG. This is an example when M' j =4. Other values for these parameters can be used to generate a suitable shared set as well.
データ登録サーバ200は、共有集合一覧234を用いて分割キーワードを共有キーワードに変換することで生成された登録データ81の各レコードにランダムなIDを付与し、IDでソートした後、各レコードを秘匿化DB110に格納する。
The
図44は、共有キーワードが格納された秘匿化DBの一例を示す図である。秘匿化DB110に登録されたレコードはIDによってソートされており、真のデータにおける変換元のレコードとは異なる順番で登録されている。
FIG. 44 is a diagram showing an example of an anonymization DB storing shared keywords. The records registered in the
次にデータ登録処理の手順について説明する。
図45は、データ登録処理の手順の一例を示すフローチャートである。以下、図45に示す処理をステップ番号に沿って説明する。
Next, the procedure of data registration processing will be described.
FIG. 45 is a flow chart showing an example of the procedure of data registration processing. The processing shown in FIG. 45 will be described below along with the step numbers.
[ステップS301]データ登録要求部250は、群数Gとキーワード分割数Lの設定入力を受け付ける。GとLは共に2以上の整数である。GとLの値が大きいほど安全性が向上するが登録するダミーレコード数も増加する。そこで、GとLの値は、秘匿化DB110に求められる頻度分析攻撃に対する安全性の度合いと、秘匿化DB110に許容されるダミーレコード数とを勘案して、データ登録サーバ200の管理者が決定する。
[Step S301] The data
[ステップS302]データ登録要求部250は、項目ごとの共有集合数を決定する。例えばj番目の項目の共有集合数M’jは、天井関数を用いて以下の式(4)で表される。
[Step S302] The data
j番目の項目のキーワードの種類数Xjにキーワード分割数Lを乗算した値(L×Xj)が、その項目の分割キーワード数である。分割キーワード数を群数Gで除算した結果の天井関数(除算結果以上の最小の整数)と「3」とのうちの大きい方の値が、共有集合数となる。 The value (L×X j ) obtained by multiplying the keyword type number X j of the j-th item by the keyword division number L is the number of divided keywords of the item. The larger one of the ceiling function (minimum integer equal to or greater than the division result) obtained by dividing the number of divided keywords by the number of groups G and "3" is the number of shared sets.
共有集合数が「3」以上となるようにしたことで、G=2の場合において、性別のように2種類のキーワードしか存在しない項目についても、3つの共有集合が生成される。これにより性別についても、異なる共有集合において、それぞれの分割キーワードの変換元のキーワードの組み合わせが同じとなることを抑止することができる。 By setting the number of shared sets to be "3" or more, in the case of G=2, three shared sets are generated even for an item such as gender that has only two types of keywords. As a result, it is possible to prevent the same combination of the conversion source keywords of the divided keywords in different shared sets for gender.
[ステップS303]データ登録要求部250は、すべての項目それぞれについて、ステップS302で決定した共有集合数分の共有集合を生成する。なお、データ登録要求部250は、共有集合の格納領域の数よりも分割キーワード数が少ない場合には、共有集合の要素の格納領域の一部を空欄のままとする。生成される各共有集合は少なくとも1つの分割キーワードを含み、その分割キーワードと変換元のキーワードが共通の他の分割キーワードが他の共有集合に含まれる。これにより、図40の共有集合一覧234に示すような共有集合234a~234jが生成される。
[Step S303] The data
[ステップS304]データ登録要求部250は、分割キーワード選択テーブル233を生成する。この処理の詳細は、図27に示したステップS104の処理と同様である。
[ステップS305]データ登録要求部250は、DB210から平文のデータを読み込む。
[Step S<b>304 ] The data
[Step S<b>305 ] The data
[ステップS306]データ登録要求部250は、読み込んだ平文のデータのレコードに登録されているキーワードを、分割キーワード選択テーブル233に示される選択確率で確率的に分割キーワードに変換する。この処理の詳細は、図27に示したステップS106の処理と同様である。
[Step S<b>306 ] The data
[ステップS307]データ登録要求部250は、各レコードの分割キーワードを共有キーワードに変換する。なお、共有キーワードへ変換する処理の詳細は後述する(図46参照)。
[Step S307] The data
[ステップS308]データ登録要求部250は、共有キーワードを含むレコードそれぞれに、ランダムにIDを付与する。
[ステップS309]データ登録要求部250は、各レコードにフラグ値を付与する。例えばデータ登録要求部250は、各レコードについて、そのレコードの変換元となった平文のDB210内のレコードのIDと、各項目の共有キーワードへの変換元となった分割キーワードの共有集合内での要素番号との組をフラグ値として生成する。変換元のレコードのIDを含むことにより、すべてのフラグ値をユニークな値にすることができ、フラグ値の頻度分析攻撃を防ぐことができる。また変換元の分割キーワードの共有集合での要素番号がフラグ値に含まれていることにより、フラグ値を参照すれば、共有キーワードを元の分割キーワードに戻すことが可能となる。
[Step S308] The data
[Step S309] The data
[ステップS310]データ登録要求部250は、各レコードをIDでソートする。
[ステップS311]データ登録要求部250は、ソートされたレコード群を暗号化して、秘匿化DB110に登録する。例えばデータ登録要求部250は、レコード内の項目値ごとに暗号化し、暗号化された値を有するレコード群を、登録データとしてデータ管理サーバ100に送信する。データ管理サーバ100では、データ登録部120が登録データを受信し、受信した登録データを秘匿化DB110に格納する。
[Step S310] The data
[Step S<b>311 ] The data
次に分割キーワードを共有キーワードへ変換する処理について詳細に説明する。
図46は、共有キーワードへ変換する処理手順の詳細を示すフローチャートである。以下、図46に示す処理をステップ番号に沿って説明する。
Next, a detailed description will be given of the process of converting a divided keyword into a shared keyword.
FIG. 46 is a flow chart showing the details of the processing procedure for conversion into shared keywords. The processing shown in FIG. 46 will be described below along with the step numbers.
[ステップS321]データ登録要求部250は、項目値が分割キーワードに変換された分割済データ211(図40参照)に含まれる分割キーワードを1つ選択する。
[ステップS322]データ登録要求部250は、共有集合一覧234から、選択した分割キーワードが属する項目の共有集合を特定し、特定した共有集合から選択した分割キーワードを含む共有集合を検索する。
[Step S321] The data
[Step S322] The data
[ステップS323]データ登録要求部250は、選択した分割キーワードを、その分割キーワードを含む共有集合に対応する共有キーワードに置き換える。例えばデータ登録要求部250は、選択した分割キーワードが属する共有集合のすべての要素を文字列結合し、共有キーワードとして出力する。またデータ登録要求部250は、予め共有集合ごとに特定の共有キーワードを設定しておき、選択した分割キーワードが属する共有集合に設定された共有キーワードに、分割キーワードを変換してもよい。
[Step S323] The data
[ステップS324]データ登録要求部250は、分割済データ211内に未選択の分割キーワードがあるか否かを判断する。データ登録要求部250は、未選択の分割キーワードがある場合、処理をステップS321に進める。またデータ登録要求部250は、すべての分割キーワードの共有キーワードへの置き換えが完了した場合、共有キーワードへ変換する処理を終了する。
[Step S324] The data
図47は、分割キーワードから共有キーワードへの変換の一例を示す図である。例えば分割キーワード「老人1」が選択されたものとする。「老人1」は、共有集合234hに含まれている。共有集合234hの要素は、「老人1」と「成人0」である。そこで「老人1」と「成人0」の文字列をコンマを挟んで結合した「老人1,成人0」が共有キーワードとして出力される。
FIG. 47 is a diagram showing an example of conversion from divided keywords to shared keywords. For example, it is assumed that the divided keyword "
分割済データ211(図40参照)内の各レコードの分割キーワードが共有キーワードに置き換えられることにより、各レコードは登録データ81(図40参照)のレコードとなる。 By replacing the divided keyword of each record in the divided data 211 (see FIG. 40) with the shared keyword, each record becomes a record of the registration data 81 (see FIG. 40).
図48は、登録データのレコードの一例を示す図である。分割キーワードが設定されたレコード83は、ID「0」であり、診療科「内科0」、性別「男1」、年齢層「老人1」を有する。分割キーワード「内科0」は、「小児科0」と「内科0」とを含む共有集合234aの要素であるため、共有キーワード「小児科0,内科0」に変換される。分割キーワード「男1」は、「男1」と「女0」とを含む共有集合234eの要素であるため、共有キーワード「男1,女0」に変換される。分割キーワード「老人1」は、「老人1」と「成人0」とを含む共有集合234hの要素であるため、共有キーワード「老人1,成人0」に変換される。
FIG. 48 is a diagram showing an example of a record of registration data. A record 83 in which a division keyword is set has an ID of "0", a clinical department of "
共有キーワードを有するレコード84には、ランダムにID「5」が付与されている。またレコード84のフラグ値には、レコード83のID「0」が含まれる。またレコード84のフラグ値には、レコード83内の分割キーワードについての、その分割キーワードが属する共有集合における要素番号が含まれる。
A
このようにして生成されたレコード84は、項目値とフラグ値とが暗号化され、秘匿化DB110に登録される。秘匿化DB110に対する検索は、共有キーワードを用いて行われる。
The
第3の実施の形態では端末装置400の変換情報記憶部420に格納される情報が、第2の実施の形態と異なる。
図49は、第3の実施の形態における端末装置の変換情報記憶部に格納される情報の一例を示す図である。変換情報記憶部420は、キーワード一覧421、共有集合一覧424、および分割キーワード一覧423を記憶する。図31に示した第2の実施の形態の変換情報記憶部420と比較すると、第2の実施の形態における変換集合一覧422が第3の実施の形態では共有集合一覧424となっている。
In the third embodiment, information stored in the conversion
49 is a diagram illustrating an example of information stored in a conversion information storage unit of a terminal device according to the third embodiment; FIG. The conversion
共有集合一覧424は、例えば検索要求部440によって、データ登録要求部250による共有集合一覧234の生成手順と同じ手順で生成される。また検索要求部440は、データ登録サーバ200から共有集合一覧234を取得し、自身の共有集合一覧424として変換情報記憶部420に格納してもよい。
The shared
検索要求部440は、検索要求が入力されると分割キーワード一覧423と共有集合一覧424とを用いて、秘匿化検索クエリを生成する。
図50は、秘匿化検索クエリの一例を示す図である。検索要求部440は、検索条件が入力されると、検索条件に示される検索キーワードを含む平文検索クエリ91を生成する。次に検索要求部440は、分割キーワード一覧423を参照して、検索キーワードを、対応する複数の分割キーワードそれぞれに分割し、複数の分割キーワードの論理和検索を行う分割クエリ92を生成する。例えば検索キーワードが「老人」の場合、「老人0」と「老人1」の論理和検索を行う分割クエリ92が生成される。
When a search request is input, the
FIG. 50 is a diagram showing an example of an anonymized search query. When a search condition is input, the
さらに検索要求部440は、共有集合一覧424を参照し、分割キーワードを、その分割キーワードが属する共有集合に対応する共有キーワードに変換することで攪乱クエリ93を生成する。例えば分割キーワード「老人0」の共有キーワード「老人0,児童0」と分割キーワード「老人1」の共有キーワード「老人1,成人0」との論理和検索を行う攪乱クエリ93が生成される。
Further, the
そして検索要求部440は、攪乱クエリ93内の共有キーワードを暗号化した秘匿化検索クエリ94を生成する。検索要求部440は、秘匿化検索クエリ94をデータ管理サーバ100に送信する。するとデータ管理サーバ100において、秘匿化検索クエリ94に応じた秘匿化検索が行われる。
The
図51は、共有キーワードを用いた秘匿化検索の一例を示す図である。秘匿化検索クエリ94を取得したデータ管理サーバ100では、検索部140が秘匿化検索クエリ94に示されている共有キーワードの暗号文を含むレコードを秘匿化DB110から検索する。そして検索部140は、該当するレコードを含む秘匿化検索結果95を端末装置400に送信する。
FIG. 51 is a diagram showing an example of anonymous search using a shared keyword. In the
端末装置400の検索要求部440は、秘匿化検索結果95内の項目値を復号して、攪乱検索結果96を生成する。検索要求部440は、攪乱検索結果96の各レコードのフラグに基づいて、該当レコード内の共有キーワードの変換元の分割キーワードを判断する。そして検索要求部440は、復号された秘匿化検索結果95から、分割クエリ92に含まれる分割キーワードに基づいて変換された共有キーワードを有するレコードを検索する。
The
検索要求部440は、分割クエリ92に示される分割キーワードを有するレコードの共有キーワードを分割キーワードに逆変換し、さらにその分割キーワードをDB210に登録可能なキーワードに変換する。そして検索要求部440は、フラグを除去した後、DB210に登録可能なキーワードを有するレコードを検索結果97として出力する。
The
図52は、検索処理の手順の一例を示すフローチャートである。以下、図52に示す処理をステップ番号に沿って説明する。
[ステップS401]検索要求部440は、ユーザからの検索条件として入力された検索キーワードと、その検索キーワードに対応する項目を、平文検索クエリとして取得する。
FIG. 52 is a flowchart illustrating an example of a search processing procedure. The processing shown in FIG. 52 will be described below along with the step numbers.
[Step S401] The
[ステップS402]検索要求部440は、共有集合一覧424と分割キーワード一覧423を生成する。例えば検索要求部440は、データ登録要求部250における項目ごとの共有集合生成処理と同様の処理を行い、共有集合一覧424を生成する。検索要求部440によって生成される共有集合一覧は、データ登録要求部250で生成された共有集合一覧と同じものとなる。
[Step S402] The
[ステップS403]検索要求部440は、取得した平文検索クエリを分割する。例えば検索要求部440は、平文検索クエリに含まれる検索キーワードを分割キーワードに分割する。そして検索要求部440は、分割によって得られた分割キーワードの論理和を示す分割クエリを生成する。
[Step S403] The
取得した平文検索クエリには、複数の検索キーワードが含まれる場合がある。複数の検索キーワードの論理和検索の場合、検索要求部440は、各検索キーワードを分割キーワードに分解し、すべての分割キーワードの論理和を示す分割クエリを生成する。また複数の検索キーワードの論理積検索の場合、検索要求部440は、項目が異なる分割キーワード間のすべての組み合わせを生成する。3つ以上の項目それぞれの検索キーワードの論理積の場合であれば、検索要求部440は、各項目から1ずつ分割キーワードを選択することで生成可能な分割キーワードのすべての組み合わせを生成する。そして検索要求部440は、生成した分割キーワードの組み合わせごとの論理積を示す論理式を生成する。さらに検索要求部440は、分割キーワードの組み合わせごとに生成した論理積の論理式間の論理和を示す分割クエリを生成する。
The obtained plaintext search query may contain multiple search keywords. In the case of a logical sum search of a plurality of search keywords, the
例えば取得した平文検索クエリが「A∧B」であり、検索キーワード「A」は「A0」と「A1」に分割され、検索キーワード「B」は「B0」と「B1」に分割されるものとする。この場合、検索要求部440は、分割クエリとして、「(A0∧B0)∨(A0∧B1)∨(A1∧B0)∨(A1∧B1)」を生成する。
For example, the obtained plaintext search query is "A∧B", the search keyword "A" is divided into "A0" and "A1", and the search keyword "B" is divided into "B0" and "B1". and In this case, the
[ステップS404]検索要求部440は、生成した分割クエリを、共有集合に基づいて攪乱クエリに変換する。例えば検索要求部440は、分割クエリにおいて、検索対象の項目と分割キーワードが指定されている場合、まず検索対象の項目に対応する1以上の共有集合の中から、指定された分割キーワードに対応する要素を含む共有集合を特定する。次に検索要求部440は、特定した共有集合に対応する共有キーワードに、分割クエリ内の変換対象の分割キーワードを変換する。
[Step S404] The
[ステップS405]検索要求部440は、ステップS404で変換された後の共有キーワードを暗号化して秘匿化検索クエリを生成する。検索要求部440は、生成した秘匿化検索クエリをデータ管理サーバ100に送信する。
[Step S405] The
[ステップS406]検索要求部440は、データ管理サーバ100から秘匿化検索の検索結果(秘匿化検索結果)を取得する。
[ステップS407]検索要求部440は、秘匿化検索結果に含まれる項目値(暗号文)を予めデータ登録サーバ200から取得した暗号鍵を用いて復号し、平文の共有キーワードを含む攪乱検索結果を生成する。
[Step S<b>406 ] The
[Step S407] The
[ステップS408]検索要求部440は、攪乱検索結果から、分割クエリに含まれていた分割キーワードに基づいて変換された共有キーワードを含むレコードを検索する。例えば検索要求部440は、復号して得られた共有キーワードを、その共有キーワードに対応する共有集合の要素である分割キーワードに分割する。検索要求部440は、分割して得られた分割キーワードのうち、フラグ値に示される要素番号に対応する分割キーワードを抽出する。検索要求部440は、抽出した分割キーワードが、分割クエリに示される分割キーワードのいずれかと一致するか否かを判断する。検索要求部440は、一致した場合、その分割キーワードを含むレコードを、真の検索結果として抽出する。また検索要求部440は、抽出した分割キーワードが、分割クエリに示される分割キーワードのいずれとも一致しない場合、抽出した分割キーワードの抽出元のレコードを削除する。
[Step S408] The
[ステップS409]検索要求部440は、真の検索結果として抽出したレコードの共有キーワードそれぞれを、DB210に設定されていたキーワードに復元する。例えば検索要求部440は、各共有キーワードを、その共有キーワードに対応する共有集合内の、フラグ値で示される要素番号の分割キーワードに変換する。そして検索要求部440は、分割キーワードを、分割キーワード一覧423においてその分割キーワードに対応するキーワードに変換する。
[Step S409] The
[ステップS410]検索要求部440は、平文の検索結果を出力する。
このようにして、端末装置400を用いて秘匿化DB110に対する検索結果を得ることができる。この際、データ管理サーバ100に対して送信される秘匿化検索クエリでは共有キーワードが指定されている。そのため、検索条件として入力された検索キーワードの平文のDB210内での出現頻度と、秘匿化検索クエリにヒットするレコード数(秘匿化DB110内での共有キーワードの出現頻度)とは異なり、攻撃者33による頻度分析攻撃が困難となっている。
[Step S410] The
In this way, the
図53は、共有キーワードを用いた場合の頻度分析攻撃の困難性を示す図である。例えばDB210において、「小児科」の出現頻度は「27」、「婦人科」の出現頻度は「84」、「内科」の出現頻度は「95」であるものとする。「小児科」は19個の分割キーワード「小児科0」と8個の分割キーワード「小児科1」とに確率的に変換されている。「婦人科」は50個の分割キーワード「婦人科0」と34個の分割キーワード「婦人科1」とに確率的に変換されている。「内科」は52個の分割キーワード「内科0」と43個の分割キーワード「内科1」とに確率的に変換されている。
FIG. 53 is a diagram showing the difficulty of frequency analysis attacks when using shared keywords. For example, in the
分割キーワード数は6個である。分割キーワードを2個ずつ含む共有集合が3個生成され、その共有集合に基づいて共有キーワードが生成され、秘匿化DB110に暗号化された共有キーワードが登録されている。秘匿化DB110では、共有キーワード「小児科0,内科0」の出現頻度が「71」、共有キーワード「小児科1,婦人科0」の出現頻度が「58」、共有キーワード「婦人科1,内科1」の出現頻度が「77」となっている。
The number of divided keywords is six. Three shared sets each containing two divided keywords are generated, shared keywords are generated based on the shared sets, and encrypted shared keywords are registered in the
攻撃者33は、キーワード数が3個であり、共有集合数が3個であり、各キーワードが2つずつに分割され共有集合内の分割キーワード数が2個であることを知っているものとする。しかし各キーワードがどのような比率で分割キーワードに分割されたのかは攻撃者33には分からない。そのため攻撃者33が各共有キーワードの出現頻度がそれぞれ「71」、「58」、「77」であることを知ったとしても、その共有キーワードに含まれる分割キーワードを絞り込むことはできない。そのため頻度分析攻撃は困難である。
Assume that the
〔第4の実施の形態〕
次に第4の実施の形態について説明する。第4の実施の形態は、第3の実施の形態を改良し、数値範囲の検索に対する頻度分析攻撃の困難性を向上させたものである。
[Fourth Embodiment]
Next, a fourth embodiment will be described. The fourth embodiment is an improvement over the third embodiment to increase the difficulty of frequency analysis attacks against numerical range searches.
データ管理サーバ100は、データを暗号化したままで検索を行う。暗号化したままでの検索は、原則として完全一致検索である。完全一致検索の場合、数値の大小関係を比較することはできない。そこである範囲内の数値を有するレコードの検索を行う場合、端末装置400は、その範囲内に存在し得るすべての数値の論理和を検索キーワードとする。
The
図54は、数値範囲検索の一例を示す図である。データ登録サーバ200のDB210には、患者に関するレコードが登録されており、各レコードは診療科、性別、年齢の項目値を有している。各項目値は確率的に分割キーワードに変換され、さらに共有キーワードに変換されて秘匿化DB110に登録される。分割キーワードは、各年齢の数値の後に「_0」、「_1」を追加した文字列であるものとする。例えば年齢「18」の分割キーワードは「18_0」と「18_1」となる。
FIG. 54 is a diagram showing an example of numerical range search. Records relating to patients are registered in the
端末装置400は、年齢の範囲を指定した検索条件601が入力されると、その範囲内の全年齢の分割キーワードの論理和を示す分割クエリ602を生成する。端末装置400は、分割クエリ602内の分割キーワードを共有キーワードに変換することで攪乱クエリ603を生成し、共有キーワードを暗号化することで秘匿化検索クエリ604を生成する。そして端末装置400が秘匿化検索クエリ604をデータ管理サーバ100に送信すると、データ管理サーバ100が秘匿化DB110の検索を行う。
When a search condition 601 specifying an age range is input, the
図55は、年齢の共有集合の生成例(比較例)を示す図である。年齢のキーワードリスト611には、「0~100」の101個の整数が設定されている。各キーワードは、2個ずつの分割キーワードを有する。したがって分割キーワード数は202となる。要素を2個(G=2)ずつ含む共有集合を生成した場合、101個の共有集合1-1~1-3,・・・,1-51~1-53,・・・,1-99~1-101が生成される。図55の例では、第3の実施の形態において図43に示した手順で共有集合1-1~1-3,・・・,1-51~1-53,・・・,1-99~1-101が生成されている。
FIG. 55 is a diagram illustrating an example (comparative example) of generation of a shared set of ages. In the
共有集合1-1~1-3,・・・,1-51~1-53,・・・,1-99~1-101それぞれに要素として含まれる分割キーワードは、その共有集合に対応する共有キーワードに変換される。例えばキーワード「0」の分割キーワード「0_0」は共有キーワード「0_0,100_0」に変換され、分割キーワード「0_1」は共有キーワード「0_1,1_0」に変換される。共有キーワードが暗号化され、秘匿化DB110に格納される。そして暗号文の共有キーワードに対する秘匿化検索が行われる。
, 1-51 to 1-53, . . . , 1-99 to 1-101. converted to keywords. For example, the divided keyword "0_0" of the keyword "0" is converted into the shared keyword "0_0,100_0", and the divided keyword "0_1" is converted into the shared keyword "0_1,1_0". A shared keyword is encrypted and stored in the
年齢を指定した検索では、数値範囲を指定した検索が可能となる。数値範囲の検索は、図54に示すように、該当範囲内の数値の論理和検索に置き換えられる。すると攻撃者33は、発行される秘匿化検索クエリの論理和の項が多いことにより、数値の項目に対する検索であることが推定できる。攻撃者33は、秘匿化検索クエリに同時に含まれる暗号文は連番であると仮定することで、共有キーワードの暗号文の前後関係を特定できる。
A search specifying an age enables a search specifying a numerical range. The numeric range search is replaced by a logical sum search of the numbers within the range, as shown in FIG. Then, the
例えば「0~1」の数値範囲の検索が行われると、共有キーワード「0_0,100_0」、「0_1,1_0」、「1_1,2_0」のいずれかの暗号文を有するレコードがヒットする。攻撃者33は、これらのレコードに含まれる共有キーワードの変換元の分割キーワードには連番の数値が含まれると推定できる。そこで攻撃者33は、共有キーワード「0_0,100_0」、「0_1,1_0」、「1_1,2_0」の暗号文が連続するように並べる。攻撃者33は、様々な数値範囲の検索が行われるごとに、ヒットしたレコードに含まれる共有キーワードの暗号文が連続するように暗号文を並べていく。攻撃者33は、最終的には、図55の共有キーワードの並びと同じ順に、共有キーワードの暗号文を並べることができる。
For example, when a search is performed in the numerical range of "0 to 1", a record having a ciphertext of one of the shared keywords "0_0, 100_0", "0_1, 1_0", and "1_1, 2_0" is hit. The
なお図55の例では、分割キーワード「100_0」を除き、上位の共有集合ほど、小さい数値のキーワードの分割キーワードが含まれている。このとき攻撃者33は共有キーワード間の連続関係が分かるのみであり、共有キーワードの暗号文を並べても、その配列の先頭と後方のうちのどちらの数値が小さく、どちらの数値が大きいのかは判別できない。
In the example of FIG. 55, except for the split keyword "100_0", the higher the shared set, the smaller the number of split keywords included. At this time, the
しかし共有キーワードの暗号文の中盤の値を含むレコードが検索された場合、攻撃者33は、全体の数値範囲「0~100」の内の中盤の数値が検索されたことを認識できる。すなわち検索条件の絞り込みが可能となってしまう。
However, if a record containing the middle value of the ciphertext of the shared keyword is retrieved, the
そこで第4の実施の形態では、データ登録サーバ200のデータ登録要求部250は、キーワードリストに数値が設定されている場合、ある数値範囲の連続する数値を含む共有集合に、範囲が重複しない他の数値範囲の連続する数値範囲が含まれるように共有集合を生成する。
Therefore, in the fourth embodiment, when numerical values are set in the keyword list, the data
図56は、年齢の共有集合の生成例を示す図である。図56には、要素を2個(G=2)ずつ含む102個の共有集合2-1~2-6,・・・,2-97~2-102が示されている。 FIG. 56 is a diagram illustrating an example of generating a shared set of ages. FIG. 56 shows 102 shared sets 2-1 to 2-6, .
データ登録要求部250は、例えばキーワードリスト611から値の小さい順に数値を選択する。データ登録要求部250は、選択した数値の分割キーワードを最上位の共有集合2-1から順に下位に向かって1つずつ設定する。2つ目以降に選択した数値の分割キーワードは、前に選択した数値を設定した共有集合の次の共有集合に設定する。
The data
データ登録要求部250は、すべての共有集合2-1~2-102に1つずつの分割キーワードが設定されると、各共有集合に対する2つ目の要素を設定する。ただし最上位の共有集合2-1と最下位の共有集合2-102は、2つ目の分割キーワードの設定対象外とされる。そこでデータ登録要求部250は、選択した数値の分割キーワードを下位から2番目の共有集合2-101から順に上位に向かって1つずつ設定する。
The data
このように共有集合を生成することで、ある数値範囲の連続する数値を含む共有集合には、範囲が重複しない別の数値範囲の連続する数値も含まれることとなる。その結果、攻撃者33が、数値の連続性に基づいて共有集合2-1~2-102に対応する共有キーワードの暗号文を並べることができたとしても、ある暗号文を含むレコードが検索されたときの検索された数値範囲の絞り込みは困難となる。例えば攻撃者33は、「0~2」付近の検索、「98~100」付近の検索、「48~50」付近の検索、「51~53」付近の検索、「48~53」付近の検索を見分けることが困難である。
By generating a shared set in this way, a shared set containing consecutive numbers in a certain numerical range will also contain consecutive numbers in another numerical range whose ranges do not overlap. As a result, even if the
群数G(共有集合の最大要素数)を増やすと、検索にヒットする件数が他の共有キーワードの影響で増加する。年齢のキーワード数が多い項目は、各キーワードの頻度がキーワード数に応じた減少が見込まれる。そこで項目値が数値の場合における該当項目に対応する群数を増やしてもよい。 When the number of groups G (the maximum number of elements in a shared set) is increased, the number of search hits increases due to the influence of other shared keywords. For items with a large number of age keywords, the frequency of each keyword is expected to decrease according to the number of keywords. Therefore, the number of groups corresponding to the applicable item when the item value is a numerical value may be increased.
図57は、群数を3とした場合の共有集合の生成例を示す図である。図57には、要素を3個(G=3)ずつ含む68個の共有集合3-1~3-6,・・・,3-63~3-68が示されている。 FIG. 57 is a diagram illustrating an example of generating a shared set when the number of groups is three. FIG. 57 shows 68 shared sets 3-1 to 3-6, .
データ登録要求部250は、例えばキーワードリスト611から値の小さい順に数値を選択する。データ登録要求部250は、選択した数値の分割キーワードを最上位の共有集合3-1から順に下位に向かって1つずつ設定する。データ登録要求部250は、すべての共有集合3-1~3-6,・・・,3-63~3-68に1つずつの分割キーワードが設定されると、各共有集合に対する2つ目の要素を設定する。ただし最下位の共有集合3-68は、2つ目の分割キーワードの設定対象外とされる。そこでデータ登録要求部250は、選択した数値の分割キーワードを下位から2番目の共有集合3-67から順に上位に向かって1つずつ設定する。データ登録要求部250は、すべての共有集合3-1~3-6,・・・,3-63~3-68に2つずつの分割キーワードが設定されると、各共有集合に対する3つ目の要素を設定する。ただし最上位の共有集合3-1は、3つ目の分割キーワードの設定対象外とされる。そこでデータ登録要求部250は、選択した数値の分割キーワードを上位から2番目の共有集合3-2から順に下位に向かって1つずつ設定する。
The data
このように群数Gを増やすことで、数値範囲の検索が行われても、ヒットしたレコードに含まれる数値範囲の数が多数となり、検索対象の絞り込みがより困難となる。
〔その他の実施の形態〕
第2~第4の実施の形態では、病院が有するデータに対する秘匿検索の例を示したが、他の分野でも利用可能である。
By increasing the number of groups G in this way, even if a numerical range search is performed, the number of numerical ranges included in hit records will be large, making it more difficult to narrow down the search target.
[Other embodiments]
In the second to fourth embodiments, an example of confidential search for data held by a hospital has been shown, but it can also be used in other fields.
また第2~第4の実施の形態ではデータ登録サーバ200,300とデータ管理サーバ100とを分けているが、データ登録サーバ200,300がデータ管理サーバ100の機能を有していてもよい。
In addition, although the
以上、実施の形態を例示したが、実施の形態で示した各部の構成は同様の機能を有する他のものに置換することができる。また、他の任意の構成物や工程が付加されてもよい。さらに、前述した実施の形態のうちの任意の2以上の構成(特徴)を組み合わせたものであってもよい。 Although the embodiment has been exemplified above, the configuration of each part shown in the embodiment can be replaced with another one having the same function. Also, any other components or steps may be added. Furthermore, any two or more configurations (features) of the above-described embodiments may be combined.
1 データ登録装置
1a 記憶部
1b 処理部
2 サーバ
2a 秘匿化DB
3 データ利用装置
4 秘匿レコード群
5a~5c 項目値集合
6 攪乱レコード群
1
3
Claims (17)
秘匿対象の秘匿レコードを1つ以上含む秘匿レコード群における前記秘匿レコード内の一の項目に設定可能な複数の第1項目値それぞれに対して、n個(nは自然数)の第2項目値を対応付け、
複数の項目値集合それぞれが、同一の前記第1項目値に対応付けられた2個以上の前記第2項目値のうちの1個からn-1個のいずれかの個数の前記第2項目値を含むように、前記第2項目値それぞれを前記複数の項目値集合のいずれかに分類し、
前記秘匿レコード内の前記一の項目に設定されている前記第1項目値を、対応付けられた前記第2項目値のいずれかに確率的に変換し、
前記秘匿レコード群に基づいて、ダミーの前記第2項目値の追加により、同一の項目値集合に属する前記第2項目値に対する検索のヒット件数の均等化を図った攪乱レコード群を生成し、
前記攪乱レコード群内のレコードに、前記レコードに含まれる前記第2項目値の真偽を示すフラグを付与し、
前記攪乱レコード群を暗号化する、
処理を実行させる秘密情報管理プログラム。 to the computer,
n (n is a natural number) second item values for each of a plurality of first item values that can be set for one item in the confidential record in the confidential record group including one or more confidential records to be confidential mapping,
each of the plurality of item value sets is any number of 1 to n-1 of the second item values among the two or more second item values associated with the same first item value Classifying each of the second item values into one of the plurality of item value sets so as to include
probabilistically converting the first item value set in the one item in the confidential record to one of the associated second item values;
Based on the confidential record group, by adding the dummy second item value, a disturbance record group is generated in which the number of search hits for the second item value belonging to the same item value set is equalized,
Giving a flag indicating the truth or falseness of the second item value included in the record to a record in the disturbance record group,
encrypting the disturbance records;
A confidential information management program that causes processing to be performed.
請求項1記載の秘密情報管理プログラム。 In the conversion of the first item value to the second item value, the selection probability of the second item value is randomly determined, and among the second item values associated with the first item value, selecting one with a probability according to the selection probability and converting the first item value to the selected second item value;
The secret information management program according to claim 1.
請求項1または2に記載の秘密情報管理プログラム。 In the classification of the second item values, two or more of the item value sets are prevented from having the same combination of the first item values corresponding to the second item values belonging to them.
3. The confidential information management program according to claim 1 or 2.
前記項目値集合に属する前記第2項目値それぞれを同一の前記項目値集合に属する異なる前記第2項目値に全単射する全単射関係に従って、前記秘匿レコードそれぞれの前記一の項目に設定された前記第2項目値それぞれに対応するダミー値を生成し、
前記ダミー値が前記一の項目に設定された、前記秘匿レコードと同数のダミーレコードを有するダミーレコード群を生成し、
前記秘匿レコード群と前記ダミーレコード群とを含む前記攪乱レコード群を生成する、
請求項1ないし3のいずれかに記載の秘密情報管理プログラム。 In the generation of the disturbance record group,
set in the one item of each of the confidential records according to a bijective relationship in which each of the second item values belonging to the item value set is bijected to a different second item value belonging to the same item value set; generating a dummy value corresponding to each of the second item values,
generating a dummy record group having the same number of dummy records as the confidential records, in which the dummy value is set in the one item;
generating the disturbance record group including the confidential record group and the dummy record group;
4. The confidential information management program according to any one of claims 1 to 3.
請求項4記載の秘密情報管理プログラム。 In the generation of the dummy record group, when there are a plurality of the dummy record groups, the second item value set in the one item of the confidential record is converted to a different second item value for each dummy record group. using the bijective relationship that is different for each of the dummy record groups,
5. The confidential information management program according to claim 4.
前記暗号化では、前記秘匿レコードと前記ダミーレコードそれぞれの前記一の項目に設定された前記第2項目値、前記秘匿レコードに付与された前記第1フラグ、および前記ダミーレコードに付与された前記第2フラグを暗号化する、
請求項4または5に記載の秘密情報管理プログラム。 In the provision of the flag, a first flag indicating true is provided to the confidential record, and a second flag indicating false is provided to the dummy record,
In the encryption, the second item value set to the one item of each of the confidential record and the dummy record, the first flag assigned to the confidential record, and the first flag assigned to the dummy record Encrypt 2 flags,
6. The confidential information management program according to claim 4 or 5.
請求項6記載の秘密情報管理プログラム。 In assigning the second flag, the second flag having a value different for each of the dummy record groups generated one or more and different from the first flag is set to the dummy records included in each of the dummy record groups. ,
7. The confidential information management program according to claim 6.
前記第2フラグの設定では、前記ダミーレコードの識別子と、属する前記ダミーレコード群の群番号とを含む前記第2フラグを前記ダミーレコードに設定する、
請求項7記載の秘密情報管理プログラム。 In the setting of the first flag, the first flag including the identifier of the confidential record and the value indicating the group number of the confidential record group is given to the confidential record,
In setting the second flag, the second flag including the identifier of the dummy record and the group number of the dummy record group to which it belongs is set in the dummy record.
The secret information management program according to claim 7.
前記秘匿レコード内の前記一の項目に設定されている変換前の前記第2項目値を、変換前の前記第2項目値が属する項目値集合に対応付けられ、同じ前記項目値集合に属するいずれの前記第2項目値に対する検索にもヒットする第3項目値に変換することで攪乱レコードを生成し、前記攪乱レコードを含む前記攪乱レコード群を生成する、
請求項1ないし3のいずれかに記載の秘密情報管理プログラム。 In the generation of the disturbance record group,
The second item value before conversion set in the one item in the confidential record is associated with the item value set to which the second item value before conversion belongs, and any item belonging to the same item value set is associated with the item value set to which the second item value before conversion belongs. generating a disturbance record by converting to a third item value that also hits a search for the second item value of , and generating the disturbance record group including the disturbance record;
4. The confidential information management program according to any one of claims 1 to 3.
前記暗号化では、前記攪乱レコードの前記一の項目に設定された前記第3項目値、および付与された前記第3フラグを暗号化する、
請求項9記載の秘密情報管理プログラム。 In the addition of the flag, a third flag including information indicating the second item value before conversion is added to the disturbance record;
In the encryption, encrypting the third item value set in the one item of the disturbance record and the given third flag;
10. The confidential information management program according to claim 9.
請求項10記載の秘密情報管理プログラム。 In the addition of the third flag, the third flag containing the identifier of the confidential record and the element number in the item value set of the element corresponding to the second item value before conversion is added to the confidential record Give,
11. The confidential information management program according to claim 10.
請求項1ないし11のいずれかに記載の秘密情報管理プログラム。 In the classification, when the plurality of first item values are numerical values, an item value set including the second item values corresponding to each of the plurality of consecutive numerical values within the first numerical range overlaps with the first numerical range. classifying the second item value into one of the plurality of item value sets such that the second item value corresponding to each consecutive numerical value within the second numerical range is included;
12. The confidential information management program according to any one of claims 1 to 11.
秘匿対象の秘匿レコードを1つ以上含む秘匿レコード群における前記秘匿レコード内の一の項目に設定可能な複数の第1項目値それぞれに対して、n個(nは自然数)の第2項目値を対応付け、
複数の項目値集合それぞれが、同一の前記第1項目値に対応付けられた2個以上の前記第2項目値のうちの1個からn-1個のいずれかの個数の前記第2項目値を含むように、前記第2項目値それぞれを前記複数の項目値集合のいずれかに分類し、
前記秘匿レコード内の前記一の項目に設定されている前記第1項目値を、対応付けられた前記第2項目値のいずれかに確率的に変換し、
前記秘匿レコード群に基づいて、ダミーの前記第2項目値の追加により、同一の項目値集合に属する前記第2項目値に対する検索のヒット件数の均等化を図った攪乱レコード群を生成し、
前記攪乱レコード群内のレコードに、前記レコードに含まれる前記第2項目値の真偽を示すフラグを付与し、
前記攪乱レコード群を暗号化する、
秘密情報管理方法。 the computer
n (n is a natural number) second item values for each of a plurality of first item values that can be set for one item in the confidential record in the confidential record group including one or more confidential records to be confidential mapping,
each of the plurality of item value sets is any number of 1 to n-1 of the second item values among the two or more second item values associated with the same first item value Classifying each of the second item values into one of the plurality of item value sets so as to include
probabilistically converting the first item value set in the one item in the confidential record to one of the associated second item values;
Based on the confidential record group, by adding the dummy second item value, a disturbance record group is generated in which the number of search hits for the second item value belonging to the same item value set is equalized,
Giving a flag indicating the truth or falseness of the second item value included in the record to a record in the disturbance record group,
encrypting the disturbance records;
Confidential information management method.
前記秘匿レコード群における前記秘匿レコード内の一の項目に設定可能な複数の第1項目値それぞれに対して、n個(nは自然数)の第2項目値を対応付け、
複数の項目値集合それぞれが、同一の前記第1項目値に対応付けられた2個以上の前記第2項目値のうちの1個からn-1個のいずれかの個数の前記第2項目値を含むように、前記第2項目値それぞれを前記複数の項目値集合のいずれかに分類し、
前記秘匿レコード内の前記一の項目に設定されている前記第1項目値を、対応付けられた前記第2項目値のいずれかに確率的に変換し、
前記秘匿レコード群に基づいて、ダミーの前記第2項目値の追加により、同一の項目値集合に属する前記第2項目値に対する検索のヒット件数の均等化を図った攪乱レコード群を生成し、
前記攪乱レコード群内のレコードに、前記レコードに含まれる前記第2項目値の真偽を示すフラグを付与し、
前記攪乱レコード群を暗号化する、
処理部と、
を有するデータ登録装置。 a storage unit that stores a confidential record group including one or more confidential records to be confidential;
Associate n (n is a natural number) second item values with each of a plurality of first item values that can be set for one item in the confidential record in the confidential record group,
each of the plurality of item value sets is any number of 1 to n-1 of the second item values among the two or more second item values associated with the same first item value Classifying each of the second item values into one of the plurality of item value sets so as to include
probabilistically converting the first item value set in the one item in the confidential record to one of the associated second item values;
Based on the confidential record group, by adding the dummy second item value, a disturbance record group is generated in which the number of search hits for the second item value belonging to the same item value set is equalized,
Giving a flag indicating the truth or falseness of the second item value included in the record to a record in the disturbance record group,
encrypting the disturbance records;
a processing unit;
A data registration device having
秘匿対象の秘匿レコードを1つ以上含む秘匿レコード群における前記秘匿レコード内の一の項目に設定可能な複数の第1項目値それぞれに対して、n個(nは自然数)の第2項目値を対応付け、
複数の項目値集合それぞれが、同一の前記第1項目値に対応付けられた2個以上の前記第2項目値のうちの1個からn-1個のいずれかの個数の前記第2項目値を含むように、前記第2項目値それぞれを前記複数の項目値集合のいずれかに分類し、
前記秘匿レコード内の前記一の項目に設定されている前記第1項目値を、対応付けられた前記第2項目値のいずれかに確率的に変換し、
前記秘匿レコード群に基づいて、ダミーの前記第2項目値の追加により、同一の項目値集合に属する前記第2項目値に対する検索のヒット件数の均等化を図った攪乱レコード群を生成し、
前記攪乱レコード群内のレコードに、前記レコードに含まれる前記第2項目値の真偽を示すフラグを付与し、
前記攪乱レコード群を暗号化し、
前記攪乱レコード群を前記データベースに格納する、
データ登録装置と、
検索条件に示される前記一の項目の検索項目値を、前記検索項目値と同じ値の前記第1項目値に対応する1または複数の前記第2項目値それぞれに変換し、
変換により得られた前記第2項目値を暗号文のまま検索する検索クエリを前記サーバに送信し、
前記サーバから、前記データベース内の前記検索クエリにヒットした検出レコードを取得し、
前記検出レコードに付与された前記フラグに基づいて、前記検出レコード内の前記第2項目値にヒットした値の真偽を判断する、
データ利用装置と、
を有する秘密情報管理システム。 a server having a database;
n (n is a natural number) second item values for each of a plurality of first item values that can be set for one item in the confidential record in the confidential record group including one or more confidential records to be confidential mapping,
each of the plurality of item value sets is any number of 1 to n-1 of the second item values among the two or more second item values associated with the same first item value Classifying each of the second item values into one of the plurality of item value sets so as to include
probabilistically converting the first item value set in the one item in the confidential record to one of the associated second item values;
Based on the confidential record group, by adding the dummy second item value, a disturbance record group is generated in which the number of search hits for the second item value belonging to the same item value set is equalized,
Giving a flag indicating the truth or falseness of the second item value included in the record to a record in the disturbance record group,
encrypting the disturbance record group;
storing the disturbance record group in the database;
a data registration device;
converting the search item value of the one item indicated in the search condition into one or more of the second item values corresponding to the first item value having the same value as the search item value;
transmitting to the server a search query for searching the second item value obtained by the conversion as it is in ciphertext;
Obtaining from the server a detection record that hits the search query in the database;
Determining whether the value that hits the second item value in the detection record is true or false based on the flag attached to the detection record;
a data utilization device;
Confidential Information Management System.
前記攪乱レコード群の生成では、
前記項目値集合に属する前記第2項目値それぞれを同一の前記項目値集合に属する異なる前記第2項目値に全単射する全単射関係に従って、前記秘匿レコードそれぞれの前記一の項目に設定された前記第2項目値それぞれに対応するダミー値を生成し、
前記ダミー値が前記一の項目に設定された、前記秘匿レコードと同数のダミーレコードを有するダミーレコード群を生成し、
前記秘匿レコード群と前記ダミーレコード群とを含む前記攪乱レコード群を生成し、
前記攪乱レコード群の生成では、
前記秘匿レコードに真を示す第1フラグを付与し、
前記ダミーレコードに偽を示す第2フラグを付与し、
前記暗号化では、
前記秘匿レコードと前記ダミーレコードそれぞれの前記一の項目に設定された前記第2項目値、前記秘匿レコードに付与された前記第1フラグ、および前記ダミーレコードに付与された前記第2フラグを暗号化し、
前記秘匿レコード群と前記ダミーレコード群とを前記サーバの前記データベースに格納し、
前記データ利用装置は、
変換により得られた前記第2項目値それぞれの暗号文を含む検索クエリを前記サーバに送信し、
前記サーバから、前記データベース内の前記検索クエリによる検索結果を取得し、
前記検索結果に含まれる前記秘匿レコードと前記ダミーレコードそれぞれに設定された前記第1フラグまたは前記第2フラグに基づいて、前記検索結果から前記検索条件を満たす前記秘匿レコードを取得する、
請求項15記載の秘密情報管理システム。 The data registration device
In the generation of the disturbance record group,
set in the one item of each of the confidential records according to a bijective relationship in which each of the second item values belonging to the item value set is bijected to a different second item value belonging to the same item value set; generating a dummy value corresponding to each of the second item values,
generating a dummy record group having the same number of dummy records as the confidential records, in which the dummy value is set in the one item;
generating the disturbance record group including the confidential record group and the dummy record group;
In the generation of the disturbance record group,
Giving a first flag indicating true to the confidential record,
Giving a second flag indicating false to the dummy record,
In said encryption,
encrypting the second item value set in the one item of each of the secret record and the dummy record, the first flag given to the secret record, and the second flag given to the dummy record; ,
storing the confidential record group and the dummy record group in the database of the server;
The data utilization device is
Sending to the server a search query containing the ciphertext of each of the second item values obtained by the conversion;
obtaining search results from the search query in the database from the server;
acquiring the confidential record satisfying the search condition from the search result based on the first flag or the second flag set in each of the confidential record and the dummy record included in the search result;
16. The confidential information management system according to claim 15.
前記攪乱レコード群の生成では、前記秘匿レコード内の前記一の項目に設定されている変換前の前記第2項目値を、変換前の前記第2項目値が属する項目値集合に対応付けられ、同じ前記項目値集合に属するいずれの前記第2項目値に対する検索にもヒットする第3項目値に変換することで攪乱レコードを生成し、前記攪乱レコードを含む前記攪乱レコード群を生成し、
前記データ利用装置は、
変換により得られた前記第2項目値それぞれを、前記第2項目値に対応する前記第3項目値に変換し、前記第3項目値の暗号文を含む検索クエリを前記サーバに送信し、
前記サーバから、前記データベース内の前記検索クエリによる検索結果を取得し、
前記検索結果に含まれる前記攪乱レコードそれぞれに設定された前記第3項目値と前記第3フラグとを復号し、
前記第3フラグに基づいて前記第3項目値の変換元の前記第2項目値を判断し、
前記検索条件を満たす前記第1項目値に対応する前記第2項目値の暗号文が格納された前記攪乱レコードを、前記検索結果から抽出する、
請求項15記載の秘密情報管理システム。 The data registration device
In generating the disturbance record group, the second item value before conversion set in the one item in the confidential record is associated with an item value set to which the second item value before conversion belongs, generating a disturbance record by converting it into a third item value that hits a search for any of the second item values belonging to the same item value set, and generating the disturbance record group including the disturbance record;
The data utilization device is
converting each of the second item values obtained by the conversion into the third item value corresponding to the second item value, and transmitting a search query including encrypted text of the third item value to the server;
obtaining search results from the search query in the database from the server;
decoding the third item value and the third flag set in each of the disturbance records included in the search result;
determining the second item value from which the third item value is converted based on the third flag;
extracting from the search result the disturbance record storing the encrypted text of the second item value corresponding to the first item value satisfying the search condition;
16. The confidential information management system according to claim 15.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2021048542A JP2022147342A (en) | 2021-03-23 | 2021-03-23 | Secret information management program, secret information management method, data registration device and secret information management system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2021048542A JP2022147342A (en) | 2021-03-23 | 2021-03-23 | Secret information management program, secret information management method, data registration device and secret information management system |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2022147342A true JP2022147342A (en) | 2022-10-06 |
Family
ID=83463525
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2021048542A Pending JP2022147342A (en) | 2021-03-23 | 2021-03-23 | Secret information management program, secret information management method, data registration device and secret information management system |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2022147342A (en) |
-
2021
- 2021-03-23 JP JP2021048542A patent/JP2022147342A/en active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Wan et al. | Sociotechnical safeguards for genomic data privacy | |
Kum et al. | Privacy preserving interactive record linkage (PPIRL) | |
CN109716345B (en) | Computer-implemented privacy engineering system and method | |
Wang et al. | Searchable encryption over feature-rich data | |
Vatsalan et al. | A taxonomy of privacy-preserving record linkage techniques | |
JP6054790B2 (en) | Gene information storage device, gene information search device, gene information storage program, gene information search program, gene information storage method, gene information search method, and gene information search system | |
MX2014014368A (en) | System for anonymizing and aggregating protected health information. | |
Al Sibahee et al. | Efficient encrypted image retrieval in IoT-cloud with multi-user authentication | |
Karakasidis et al. | Scalable blocking for privacy preserving record linkage | |
CN114564744A (en) | Data protection method and device for medical health archive management system | |
CN114579998A (en) | Block chain assisted medical big data search mechanism and privacy protection method | |
Zainab et al. | Sensitive and private data analysis: A systematic review | |
JP7288194B2 (en) | Confidential Information Management Program, Confidential Information Management Method, and Confidential Information Management System | |
JP2022147342A (en) | Secret information management program, secret information management method, data registration device and secret information management system | |
Gkoulalas-Divanis et al. | Introduction to medical data privacy | |
JP7469669B2 (en) | Confidential information management program, confidential information management method, and confidential information management system | |
JP7132506B2 (en) | Confidential Information Retrieval System, Confidential Information Retrieval Program, and Confidential Information Retrieval Method | |
Han et al. | Private blocking technique for multi-party privacy-preserving record linkage | |
JP2022059675A (en) | Search request program, search request method, and confidential information management system | |
CN117521118B (en) | Medical data searchable encryption privacy protection and system | |
Hansen et al. | HDI: integrating health data and tools | |
Christen et al. | Secure health data linkage and geocoding: Current approaches and research directions | |
Ranbaduge | A scalable blocking framework for multidatabase privacy-preserving record linkage | |
Khan et al. | Secured technique for healthcare record linkage | |
Huang | On Secure Cloud Computing for Genomic Data: From Storage to Analysis |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20231207 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20240521 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20240522 |