JP2022059675A - Search request program, search request method, and confidential information management system - Google Patents
Search request program, search request method, and confidential information management system Download PDFInfo
- Publication number
- JP2022059675A JP2022059675A JP2020167407A JP2020167407A JP2022059675A JP 2022059675 A JP2022059675 A JP 2022059675A JP 2020167407 A JP2020167407 A JP 2020167407A JP 2020167407 A JP2020167407 A JP 2020167407A JP 2022059675 A JP2022059675 A JP 2022059675A
- Authority
- JP
- Japan
- Prior art keywords
- item
- value
- search
- data
- dummy
- 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.)
- Withdrawn
Links
- 238000000034 method Methods 0.000 title claims description 55
- 238000012545 processing Methods 0.000 claims description 42
- 230000008569 process Effects 0.000 claims description 32
- 238000004458 analytical method Methods 0.000 abstract description 24
- 238000006243 chemical reaction Methods 0.000 description 112
- 238000013523 data management Methods 0.000 description 60
- 230000006870 function Effects 0.000 description 33
- 238000010586 diagram Methods 0.000 description 26
- 238000007726 management method Methods 0.000 description 20
- 230000009466 transformation Effects 0.000 description 17
- 208000001953 Hypotension Diseases 0.000 description 14
- 230000036543 hypotension Effects 0.000 description 14
- 230000008520 organization Effects 0.000 description 9
- 239000008280 blood Substances 0.000 description 7
- 210000004369 blood Anatomy 0.000 description 7
- 230000036772 blood pressure Effects 0.000 description 7
- 238000013480 data collection Methods 0.000 description 6
- 230000003287 optical effect Effects 0.000 description 6
- 230000004044 response Effects 0.000 description 6
- 206010020772 Hypertension Diseases 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 5
- 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
- 239000000284 extract Substances 0.000 description 4
- 230000002093 peripheral effect Effects 0.000 description 3
- 230000001174 ascending effect Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000009509 drug development Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000005401 electroluminescence Methods 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 239000002547 new drug Substances 0.000 description 2
- 230000008685 targeting Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 239000003814 drug Substances 0.000 description 1
- 230000003203 everyday effect Effects 0.000 description 1
- 238000000265 homogenisation Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000001356 surgical procedure Methods 0.000 description 1
- 230000033772 system development Effects 0.000 description 1
- 230000001131 transforming effect Effects 0.000 description 1
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
Description
本発明は、検索要求プログラム、検索要求方法、および秘密情報管理システムに関する。 The present invention relates to a search request program, a search request method, and a confidential information management system.
コンピュータシステムでは、ビッグデータと呼ばれる大量のデータを扱うことができる。例えばコンピュータでビッグデータを解析すれば、様々な知見を得ることが可能である。解析に用いるビッグデータの量が多いほど、そのビッグデータから多様な知識を得ることができ、得られた知識の信頼性も向上する。そこで企業などの組織ごとにビッグデータ用の独自のデータベース(DB)を構築するのではなく、複数の組織のデータを統合したDBを、複数の組織で利用することが考えられる。このような統合したDBサービスは、例えばクラウドコンピューティングシステム(以下、「クラウド」と呼ぶ)を用いて実現できる。 Computer systems can handle large amounts of data called big data. For example, by analyzing big data with a computer, 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 higher the reliability of the obtained knowledge. Therefore, instead of constructing a unique database (DB) for big data for each organization such as a company, it is conceivable to use a DB that integrates data of a plurality of organizations in a plurality of organizations. Such an integrated DB service can be realized by using, for example, a cloud computing system (hereinafter referred to as "cloud").
複数の組織のデータを統合したDBをクラウドで管理する場合において、データ提供元の組織は、提供したデータの利用を、データ提供元の組織が許可した他の組織のみに制限したい場合がある。またデータ提供元の組織およびデータを利用する組織は、提供されるデータの内容やDB内のデータへの検索内容を、クラウドの管理者にも知られたくない場合もある。これらの場合、ビッグデータを管理するクラウドは、例えば各組織から暗号化されたデータの提供を受け、暗号データをDBに格納する。そしてクラウドは、暗号データのままデータの同一性を判定できる照合技術を用いて、データ提供元の組織から渡された鍵で暗号化された検索要求に応じて、DB内のデータ検索を行う。これにより、データ提供元の組織は、鍵を渡した組織に対してのみ、提供したデータの利用を許可することができる。またクラウドでは、提供されたデータと検索要求とが暗号化されたままであるため、クラウドの管理者にデータの内容を知られることも抑止できる。 When managing a DB that integrates data of a plurality of organizations in the cloud, the data provider organization may want to limit the use of the provided data to only other organizations permitted by the data provider organization. In addition, the organization that provides the data and the organization that uses the data may not want the cloud administrator to know the content of the provided data or the search content for the data in the DB. In these cases, the 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 a search request encrypted with the key passed from the organization that provides the data, using a collation technology that can determine the identity of the data as it is. As a result, the organization that provides the data can allow the provided data to be used only by the organization that has given the key. Also, in the cloud, the provided data and the search request remain encrypted, so it is possible to prevent the contents of the data from being known to the cloud administrator.
DB内のデータの秘匿化に関連する技術としては、例えば属性データの取り得る値のバリエーションが限られているような場合でも、秘匿検索における頻度分析をより困難にし、安全性を高めるデータ生成装置が提案されている。またデータベースの保持者およびデータベースの利用者の双方が、お互いに自らの情報を秘匿した状態で、検索条件に類似するデータがデータベースに含まれているかどうかを調べることができる検索システムも提案されている。 As a technology related to concealment of data in a DB, for example, even when the variation of possible values of attribute data is limited, a data generation device that makes frequency analysis in concealment search more difficult and enhances safety. Has been proposed. In addition, a search system has been proposed that allows both database holders and database users to check whether the database contains data similar to the search conditions while keeping their information secret from each other. There is.
暗号データのまま検索を行うことができる秘匿検索技術を用いても、暗号化されたデータの安全性は十分とはいえない。すなわち、暗号データを格納したDBに対して頻度分析攻撃が可能であり、検索クエリの内容または検索結果が類推されてしまう場合がある。 Even if a secret search technology that can perform a search with encrypted data is used, the security of the encrypted data cannot be said to be sufficient. That is, a frequency analysis attack is possible against the DB that stores the encrypted data, and the content of the search query or the search result may be inferred.
1つの側面では、本件は、頻度分析攻撃に対する安全性を向上させることを目的とする。 On one side, the case aims to improve security against frequency analysis attacks.
1つの案では、コンピュータに以下の処理を実行させる検索要求プログラムが提供される。
コンピュータは、複数のレコードが登録され、複数のレコードのうちの第1項目の値が第1項目値であるレコードの第2項目の値が第2項目値に限定されるデータベースへの検索条件を取得する。そしてコンピュータは、検索条件において第1項目の値として第1項目値が指定されているとき、第2項目の値が第2項目値であるという条件を、検索条件に論理積によって追加する。
One idea is to provide a search request program that causes the computer to perform the following processing:
The computer sets a search condition for the database in which a plurality of records are registered and the value of the second item of the record in which the value of the first item among the plurality of records is the value of the first item is limited to the value of the second item. get. Then, when the first item value is specified as the value of the first item in the search condition, the computer adds the condition that the value of the second item is the second item value to the search condition by logical product.
1態様によれば、暗号化されたデータへの頻度分析攻撃に対する安全性を向上させることができる。 According to one aspect, it is possible to improve the security against frequency analysis attacks on encrypted data.
以下、本実施の形態について図面を参照して説明する。なお各実施の形態は、矛盾のない範囲で複数の実施の形態を組み合わせて実施することができる。
〔第1の実施の形態〕
まず、第1の実施の形態について説明する。
Hereinafter, the present 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, the first embodiment will be described.
図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 example of realizing a confidential information management method using a confidential information management system. The confidential information management system includes a
データ利用装置3は、秘密情報管理方法によって管理されているデータの検索要求を送信するための検索要求方法を実現するために、記憶部3aと処理部3bとを有する。記憶部3aは、例えばデータ利用装置3が有するメモリ、またはストレージ装置である。処理部3bは、例えばデータ利用装置3が有するプロセッサ、または演算回路である。図示していないが、データ登録装置1とサーバ2も、記憶部と処理部とを有する。例えばサーバ2の記憶部は、秘匿化データベース(DB)2aを記憶する。
The
データ登録装置1は、秘匿対象の秘匿レコードを1つ以上含む秘匿レコード群5を記憶する。秘匿レコードには複数の項目それぞれの項目値が設定されている。秘匿レコードの複数の項目のうち、第1項目の値が第1項目値であるとき第2項目の値が第2項目値に限定される。例えば第1項目の値が第1項目値であるとき第2項目の値が第2項目値以外となることが社会通念上あり得ない場合に、第1項目の値が第1項目値であるとき第2項目の値が第2項目値に限定される。例えば職業の値が「助産師」の秘匿レコードは、性別の値は「女」に限定される。この場合、「職業」が第1項目、「助産師」が第1項目値、「性別」が第2項目、「女」が第2項目値である。
The
このように第1項目の値が第1項目値であるとき第2項目に設定されることがあり得ない値を、構造的ゼロと呼ぶことができる。それに対して、第1項目の値が第1項目値であるとき第2項目に設定されることがあり得る唯一の値を、非構造的ゼロと呼ぶことができる。 Such a value that cannot be set in the second item when the value of the first item is the value of the first item can be called structural zero. On the other hand, when the value of the first item is the value of the first item, the only value that can be set in the second item can be called non-structural zero.
データ登録装置1は、秘匿レコード内の第1項目および第2項目それぞれに設定可能な複数の項目値それぞれを、第1項目および第2項目それぞれに少なくとも1つずつ対応する項目値群4a,4bのいずれかに分類する(ステップS1)。図1の例では、職業に設定可能な項目値は「助産師」と「医師」であり、性別に設定可能な項目値は「男」と「女」である。職業に対応する項目値群4aには、「助産師」と「医師」とが含まれる。性別に対応する項目値群4bには、「男」と「女」とが含まれる。なお図1の例では職業と性別それぞれに1つずつの項目値群4a,4bが設けられているが、項目に設定可能な項目値の種類数が多い場合、1つの項目に対して2以上の項目値群が設けられる場合もあり得る。
The
次にデータ登録装置1は、ダミーレコード群の生成処理を行う(ステップS2)。例えばデータ登録装置1は、項目値群4a,4b内の項目値それぞれを同一の項目値群4a,4b内の異なる項目値に全単射する全単射関係に従って秘匿レコードそれぞれの第1項目および第2項目に設定された既存項目値をダミー値に変換する。次にデータ登録装置1は、ダミー値が第1項目および第2項目に設定された、秘匿レコードの数と同数のダミーレコードを有するダミーレコード群6を生成する。
Next, the
図1の例では、秘匿レコードに設定された既存項目値「助産師」はダミー値「医師」に変換される。秘匿レコードに設定された既存項目値「医師」はダミー値「助産師」に変換される。秘匿レコードに設定された既存項目値「男」はダミー値「女」に変換される。秘匿レコードに設定された既存項目値「女」はダミー値「男」に変換される。 In the example of FIG. 1, the existing item value “midwife” set in the secret record is converted into the dummy value “doctor”. The existing item value "doctor" set in the secret record is converted to the dummy value "midwife". The existing item value "male" set in the secret record is converted to the dummy value "female". The existing item value "female" set in the secret record is converted to the dummy value "male".
次にデータ登録装置1は、秘匿レコードとダミーレコードそれぞれへのフラグ設定処理を行う(ステップS3)。例えばデータ登録装置1は、秘匿レコードに真を示す第1フラグを設定し、ダミーレコードに偽を示す第2フラグを設定する。図1の例では、秘匿レコードとダミーレコードとに識別子(ID)をランダムに付与し、秘匿レコードについてはIDの2倍の値をフラグの値とし、ダミーレコードについてはIDの2倍に1を加算した値をフラグの値としている。
Next, the
次にデータ登録装置1は、秘匿レコードに設定された既存項目値と第1フラグ、およびダミーレコードに設定されたダミー値と第2フラグを暗号化する(ステップS4)。データ登録装置1は、暗号化された秘匿レコードとダミーレコードとをIDで昇順にソートして登録データ7を生成する。図1の例では登録データ7のID「1,3,5」のレコードが秘匿レコードであり、ID「2,4,6」のレコードがダミーレコードである。
Next, the
なお図1においてある平文を暗号化することで得られる暗号文を「H(平文)」と表記している。以下の説明においても、同様の表記方法で暗号文を表記する。
そしてデータ登録装置1は、登録データ7を出力する(ステップS5)。例えばデータ登録装置1は、秘匿レコード群とダミーレコード群とをサーバ2の秘匿化DB2aに格納する。
The ciphertext obtained by encrypting a certain plaintext in FIG. 1 is referred to as "H (plaintext)". In the following description, the ciphertext is expressed in the same notation method.
Then, the
データ利用装置3の記憶部3aには非構造的ゼロとなる項目値の組み合わせを示す非構造的ゼロ情報8が格納されている。例えば職業「助産師」と性別「女」との組み合わせが非構造的ゼロ情報8である。
The storage unit 3a of the
データ利用装置3の処理部3bは、検索者からの入力に基づいて、秘匿化DB2aへの検索条件を取得する。次に処理部3bは、検索条件において第1項目の値として第1項目値が指定されているとき、第2項目の値が第2項目値であるという条件を、検索条件に論理積によって追加する(ステップS6)。
The processing unit 3b of the
例えば検索条件として職業「助産師」と指定されているものとする。この場合、処理部3bは、非構造的ゼロ情報8を参照し、職業「助産師」の秘匿レコードの性別の値は「女」に限定されると判断する。すなわち処理部3bは、検索条件に第1項目「職業」の値として第1項目値「助産師」が指定されていると判断する。そこで処理部3bは、検索条件に、第2項目「性別」の第2項目値「女」を論理積で追加する。
For example, it is assumed that the occupation "midwife" is specified as a search condition. In this case, the processing unit 3b refers to the non-structural zero
なお処理部3bは、検索条件において第1項目の値として第1項目値が指定されていることを検出したとき、第2項目値を追加するか否かをランダムに決定してもよい。例えば処理部3bは、乱数を生成し、乱数が所定の閾値より大きい場合、または小さい場合に、第2項目値を追加すると決定する。処理部3bは、追加すると決定した場合に第2項目の値が第2項目値であるという条件を検索条件に論理積によって追加する。 When the processing unit 3b detects that the first item value is specified as the value of the first item in the search condition, the processing unit 3b may randomly determine whether or not to add the second item value. For example, the processing unit 3b generates a random number, and determines that the second item value is added when the random number is larger than or smaller than a predetermined threshold value. The processing unit 3b adds the condition that the value of the second item is the second item value to the search condition by logical product when it is determined to add.
そして処理部3bは、第2項目の値が第2項目値であるという条件を追加した検索条件を含む検索クエリ9をサーバ2に送信する(ステップS7)。
サーバ2は、検索クエリ9に応じて検索を行う(ステップS8)。例えばサーバ2は、検索クエリ9内の暗号文のままの検索項目値と、秘匿化DB2a内の各レコードの暗号文の項目値とを照合する。サーバ2は、検索項目値に一致する項目値が設定されたレコードを含む検索結果10をデータ利用装置3に送信する。
Then, the processing unit 3b transmits a
The
データ利用装置3は、サーバ2から、秘匿化DB2aに対する検索クエリ9による検索結果10を取得する。そしてデータ利用装置3は、検索結果10からダミーレコードを除外した真の検索結果を表示する(ステップS9)。例えばデータ利用装置3は、検索結果10に含まれる秘匿レコードとダミーレコードそれぞれの一の項目に設定された項目値、秘匿レコードに付与された第1フラグ、およびダミーレコードに付与された第2フラグを復号する。次にデータ利用装置3は、第1フラグおよび第2フラグに基づいて、検索結果10からダミーレコードを除去し、検索条件を満たす秘匿レコードを取得する。そしてデータ利用装置3は、真の検索結果を例えば表示画面11に表示する。
The
このように他の項目値との組み合わせで非構造的ゼロとなるような項目値が検索条件で指定された場合、非構造的ゼロの組み合わせとなるように条件が追加される。例えば検索者が職業「助産師」と入力した場合、職業「助産師」と性別「女」との論理和を検索条件とする検索クエリ9が生成される。これにより、検索条件に性別の項目値が含まれているか否かにより、攻撃者から検索内容が推定されることを抑止することができる。
When an item value that becomes unstructured zero in combination with other item values is specified in the search condition in this way, the condition is added so that it becomes a combination of unstructured zero. For example, when the searcher inputs the occupation "midwife", the
例えば秘匿レコード群5の職業には「助産師」または「医師」が設定される。このうち「助産師」の性別は「女」に限定される。このことを知っている検索者は、助産師を職業とする女性の人数を調べる際に、検索条件として職業「助産師」以外に性別の項目値を指定する理由がない。そのため検索条件として職業「助産師」が指定されるとき、性別は指定されない。
For example, "midwife" or "doctor" is set for the occupation of the
それに対して医師の性別は「男」と「女」の両方があり得るため、例えば医師を職業とする女性の人数を調べる際には、検索条件として職業「医師」と性別「女」が指定される。また性別に関係無く医師を職業とする人の人数を調べる際には、検索条件として職業「医師」のみが指定される。 On the other hand, the gender of a doctor can be both "male" and "female", so for example, when examining the number of women whose occupation is a doctor, the occupation "doctor" and gender "female" are specified as search conditions. Will be done. In addition, when examining the number of people whose occupation is a doctor regardless of gender, only the occupation "doctor" is specified as a search condition.
すると検索条件として職業「医師」が指定されたときは、性別が指定される場合と指定されない場合とがあり得るのに対して、検索条件として職業「助産師」が指定されたときは性別が指定されることはない。攻撃者もこのような事情を認識している。 Then, when the occupation "doctor" is specified as the search condition, the gender may or may not be specified, whereas when the occupation "midwife" is specified as the search condition, the gender is specified. It is never specified. Attackers are also aware of this situation.
攻撃者は、例えば、データ利用装置3から多数送信された検索クエリ9を分析し、検索クエリ9の職業についての項目値の暗号文の種別と、種別ごとの性別の項目値の指定頻度との統計を取ることができる。このときステップS6の条件追加処理を行わないと、攻撃者は、職業の項目値を推定できてしまう。例えば職業の暗号文がある値のときは、性別の項目値が指定されることがない場合、攻撃者は、その暗号文が「助産師」の暗号文であることを推定できる。すなわち検索者が助産師の人数を調べようとしていることが、攻撃者に漏れてしまう。
For example, the attacker analyzes a large number of
それに対して、ステップS6で条件追加処理を行うことで、検索者が検索条件として職業「助産師」のみを指定しても、検索クエリ9では職業「助産師」と性別「女」とが指定される。これにより、性別の項目値の指定の有無によって、職業として指定した項目値の内容が攻撃者に推定されることを抑止できる。
On the other hand, by performing the condition addition process in step S6, even if the searcher specifies only the occupation "midwife" as the search condition, the occupation "midwife" and the gender "female" are specified in the
しかも、処理部3bは、第2項目値を追加するか否かをランダムに決定することができる。これにより、検索者が検索条件として職業「助産師」のみを指定したとき、検索クエリ9には性別「女」の指定が追加されたり、追加されなかったりする。これにより、検索条件における性別の項目値が指定されている場合と、指定されていない場合との頻度を分析しても、そのときの職業として指定された項目値が何なのかを推定することが困難となる。
Moreover, the processing unit 3b can randomly determine whether or not to add the second item value. As a result, when the searcher specifies only the occupation "midwife" as the search condition, the designation of the gender "female" is added or not added to the
またデータ利用装置3の記憶部3aに非構造的ゼロ情報8を記憶しておくことで、他の項目値との組み合わせで非構造的ゼロとなる項目値が検索条件に含まれているときに、確実に条件の追加処理を行うことができる。
Further, when the non-structural zero
なおステップS6の条件追加処理は、秘匿化DB2a内のレコードの各項目値の出現頻度が、ダミーレコードによって平準化されているときに特に有効となる。例えば図1の例では、秘匿化DB2aには、暗号化された複数の秘匿レコード、および項目値の出現頻度を平準化させるダミー値を有する暗号化された複数のダミーレコードが登録されている。出現頻度の平準化は、攻撃者からの頻度分析攻撃を抑止するために行われている。例えばデータ登録装置1は、項目値群4a,4bに含まれる所定数の項目値の出現頻度を均一にしている。これにより、攻撃者がある暗号文の出現頻度を分析しても同じ出現頻度の暗号文が所定数存在し、秘匿レコード群での平文の項目値の出現頻度と照らし合わせても、暗号文がどの平文の項目値に対応するのかを、所定数未満に絞り込むことができない。
The condition addition process in step S6 is particularly effective when the appearance frequency of each item value of the record in the
このとき、非構造的ゼロの項目値の組み合わせを構成する項目値を指定した検索クエリ(例えば職業「助産師」のみが指定された検索クエリ)が繰り返し送信されると、ある暗号文に対応する平文の項目値の候補が、所定数未満に絞り込まれる可能性がある。データ利用装置3においてステップS6の条件追加処理を行うことで、非構造的ゼロの項目値の組み合わせを構成する項目値を指定した検索条件が入力されても、そのような検索が行われたことを攪乱することができる。その結果、現頻度を平準化させたことによる頻度分析攻撃の抑止効果を維持することができる。
At this time, if a search query specifying an item value that constitutes a combination of non-structural zero item values (for example, a search query in which only the occupation "midwife" is specified) is repeatedly transmitted, it corresponds to a certain ciphertext. Candidates for plaintext item values may be narrowed down to less than the specified number. By performing the condition addition process in step S6 in the
〔第2の実施の形態〕
次に第2の実施の形態について説明する。第2の実施の形態は、多数の医療機関が有する患者データを、患者データ収集活用基盤を用いて有効活用するものである。例えば患者データ収集活用基盤により、複数の病院のデータを統合してビッグデータ化し、ビッグデータを複数の製薬企業で活用できるようにする。これにより、製薬企業や病院は、新薬開発のための調査(対象疾患の患者数や所在地域など)を容易に把握できるようになる。
[Second Embodiment]
Next, the second embodiment will be described. The second embodiment effectively utilizes patient data possessed by a large number of medical institutions by using a patient data collection and utilization platform. For example, the patient data collection and utilization platform will integrate data from multiple hospitals into big data so that big data can be used by multiple pharmaceutical companies. This will enable pharmaceutical companies and hospitals to easily grasp surveys for new drug development (number of patients with target diseases, location area, etc.).
患者データ収集活用基盤は、ICT(Information and Communications Technology)企業が管理するクラウドを用いて実現するのが効率的である。クラウドを用いることで、病院や製薬企業からのビッグデータへのアクセスが容易となる。しかしながら、患者データは要配慮個人情報であり、法的に参照が許される手続きを経たとしても、漏洩や目的外利用のリスクを考慮し、クラウドの管理者に対しても秘匿しておくのが適切である。また製薬企業による検索の内容は製薬企業の戦略に関する重要な企業秘密に結びつくため、検索内容についても秘匿しておくことが望ましい。そこで、患者データ収集活用基盤を実現するクラウドは、例えば暗号化したまま検索可能な暗号化方式を用いて、暗号化された患者データをDBで管理すると共に、暗号化された検索キーワードを用いて、暗号文のままでデータ検索を行う。これにより、クラウドの管理者に対しても、患者データと検索クエリの内容を秘匿しておくことができる。 It is efficient to realize the patient data collection and utilization platform by using the cloud managed by the ICT (Information and Communications Technology) company. The cloud makes it easier for hospitals and pharmaceutical companies to access big data. However, patient data is sensitive personal information, and even if it is legally permitted to be referred to, it is recommended to keep it secret from the cloud administrator in consideration of the risk of leakage and unintended use. Appropriate. In addition, since the content of the search by the pharmaceutical company is linked to important trade secrets regarding the strategy of the pharmaceutical company, it is desirable to keep the content of the search confidential. Therefore, the cloud that realizes the platform for collecting and utilizing patient data manages the encrypted patient data in the DB by using an encryption method that can be searched while it is encrypted, and also uses the encrypted search keyword. , Perform data search with the ciphertext as it is. As a result, the patient data and the contents of the search query can be kept secret even from the cloud administrator.
ここで、複数の組織(例えば病院)のデータを同じ仕組みで使用する場合、DBのフォーマットや格納する属性名と値は、共通の仕様として公開される。しかもシステム開発も担うクラウドの管理者は、秘匿化のアルゴリズムを熟知している。すると、クラウドの管理者の中に悪意を有する者が存在した場合、患者データを暗号文のまま管理するだけでは不十分な場合があり得る。 Here, when the data of a plurality of organizations (for example, a hospital) are used by the same mechanism, the DB format and the attribute names and values to be stored are disclosed as common specifications. Moreover, the cloud administrator, who is also responsible for system development, is familiar with the concealment algorithm. Then, if there is a malicious person among the cloud administrators, it may not be enough to manage the patient data as a ciphertext.
ここで、絞り込み検索などを用いて効率よく検索を行うために、データは行列形式で格納することを想定する。この場合、例えば項目「性別」のラベルが振られた列では平文候補が「男」または「女」の2種類しかなく、秘匿化DB内には同じ平文に基づく暗号文が多数存在することとなる。そして、攻撃者となり得るクラウドの管理者はこれらの暗号文を比較参照できる。 Here, it is assumed that the data is stored in a matrix format in order to perform an efficient search using a refined search 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 concealment DB. Become. And cloud administrators who can be attackers can 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 all information, such frequency information may be published. Therefore, the frequency distribution of all data may be publicly known. In addition, new information is added to medical information every day, and users demand the latest information. Therefore, it is important that the concealment DB can reflect the difference from the latest plaintext DB.
以上により、第2の実施の形態では、以下の条件(i)~(v)下でも秘匿化DBの内容や検索内容が、秘匿化DBを管理するクラウド管理者を含む攻撃者に対し秘匿できることを、セキュリティ要件とする。
(i)平文の種類や値は公知であり、極めて種類が少ない場合もあり得る。
(ii)攻撃者は、秘匿化DB内に存在するすべての暗号文と暗号化された検索クエリおよびこれに合致した秘匿化DB内の暗号文をすべて参照可能である。
(iii)意図的に秘密情報として管理する情報(秘密鍵)以外の、暗号化や照合のアルゴリズムは公知である。
(iv)すべてのデータの頻度分布は公知である。
(v)秘匿化DBは逐次更新され、攻撃者は差分情報を参照可能である。
As described above, in the second embodiment, the contents of the concealed DB and the search contents can be concealed from the attacker including the cloud administrator who manages the concealed DB even under the following conditions (i) to (v). Is a security requirement.
(I) The types and values of plaintext are known, and there may be very few types.
(Ii) The attacker can refer to all the ciphertexts existing in the concealment DB, the encrypted search query, and all the ciphertexts in the concealment DB matching the same.
(Iii) Algorithms for encryption and collation other than information (secret key) that is intentionally managed as secret information are known.
(Iv) The frequency distribution of all data is known.
(V) The concealment DB is updated sequentially, and the attacker can refer to the difference information.
条件(i)~(v)を満たす秘匿化DBがあるとき、容易に想定される攻撃手法としては総当たり攻撃が考えられる。平文の種類が少なく公知なため、暗号化鍵が公知である場合、攻撃者は全種類の平文を暗号化して平文と暗号文の辞書を作成することで、秘匿化DB内のデータや検索クエリを容易に解読できてしまう。よって、セキュリティ要件を満たすには、暗号化鍵は秘密鍵とすることとなる。 When there is a concealed DB that satisfies the conditions (i) to (v), a brute force attack can be considered as an easily assumed attack method. Since there are few types of plaintext and it is publicly known, if the encryption key is known, the attacker encrypts all types of plaintext and creates a plaintext and ciphertext dictionary to create data and search queries in the concealment DB. Can be easily deciphered. Therefore, in order to meet the security requirements, the encryption key must be a private key.
また、秘匿化DBの管理者でもある攻撃者は照合判定の結果を参照できる。そのため、ある検索クエリに対し一致判定された暗号文はすべて同じ平文に対応することが解ってしまう。よって、同じ平文でも暗号化するたびに異なる暗号文となる確率的暗号を用いても、攻撃者は同じ平文が同じ暗号文となる確定的暗号のような暗号文に変換できてしまう。そして、攻撃者はデータの頻度分布を知っているため、暗号文の頻度と比較することで容易に秘匿データの内容を推定できてしまう。頻度分布を正確に知らない場合でも、例えば産婦人科の性別データを参照すると、多い方の暗号文の平文は「女」であると容易に特定できる。よって、暗号化だけでなく頻度攪乱などの対策を採ることが重要となる。 In addition, an attacker who is also the administrator of the concealment DB can refer to the result of the collation determination. Therefore, it can be seen that all the ciphertexts that are determined to match a certain search query correspond to the same plaintext. Therefore, even if the same plaintext is encrypted and a different ciphertext is used each time, an attacker can convert the same plaintext into a deterministic ciphertext in which the same ciphertext is used. Since the attacker knows the frequency distribution of the data, the content of the confidential data can be easily estimated by comparing it with the frequency of the ciphertext. Even if you do not know the frequency distribution accurately, for example, by referring to the gender data of obstetrics and gynecology, you can easily identify the plaintext of the more ciphertext as "female". Therefore, it is important to take measures such as frequency disturbance as well as encryption.
そこで第2の実施の形態では、条件(i)~(v)下でも秘匿化DBの内容や検索内容を、攻撃者に対し秘匿できる秘密情報管理システムを提供する。第2の実施の形態に係る秘密情報管理システムでは、ダミーデータを追加することで頻度攪乱を実現する。この際、秘密情報管理システムは、データの増加率は一定に保ち、不要なストレージや検索処理の増加を防止する。そして秘密情報管理システムは、ある1種類の項目値に対し、出現頻度が同程度となる他の種類の項目値が少なくともk-1個(kは、2以上の整数)存在するようにダミーレコードを追加する。これにより、ある暗号文がk個の平文のうちのどれかであるということまでしか絞り込めないようになる。すなわち秘密情報管理システムは、出現頻度が同程度の暗号文が少なくともk個となるようにする。 Therefore, in the second embodiment, a confidential information management system capable of concealing the contents of the concealment DB and the search contents from the attacker is provided 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 confidential information management system keeps the data growth rate constant and prevents unnecessary storage and search processing from increasing. Then, the confidential information management system is a dummy record so that there are at least k-1 item values (k is an integer of 2 or more) of other types having the same frequency of appearance for one type of item value. To add. As a result, it becomes possible to narrow down only to the fact that a certain ciphertext is one of k plaintexts. That is, the secret information management system makes sure that the number of ciphertexts having the same frequency of appearance is at least k.
図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 confidential information management system is useful for improving the efficiency of new drug development utilizing medical information, for example. For example, when
図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 an example of a configuration of hardware of a data management server. The entire device of the
メモリ102は、データ管理サーバ100の主記憶装置として使用される。メモリ102には、プロセッサ101に実行させるOS(Operating System)のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、メモリ102には、プロセッサ101による処理に利用する各種データが格納される。メモリ102としては、例えばRAM(Random Access Memory)などの揮発性の半導体記憶装置が使用される。
The
バス109に接続されている周辺機器としては、ストレージ装置103、グラフィック処理装置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
グラフィック処理装置104には、モニタ21が接続されている。グラフィック処理装置104は、プロセッサ101からの命令に従って、画像をモニタ21の画面に表示させる。モニタ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を介して、他のコンピュータまたは通信機器との間でデータの送受信を行う。
The
データ管理サーバ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 against a DB (confidential 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 the concealment DB 32 is generated based on the DB 31 that stores the plaintext data. For example, the item value for each item included in each record of the DB 31 is individually encrypted and stored in the concealed DB 32. In the second embodiment, the item value set for each item may be referred to as a keyword.
図4の例では、同一の平文からは同一の暗号データが生成される確定的暗号化技術によって暗号化が行われているものとする。また攻撃者33は、元のDB31の項目に用いられている項目名(「診療科」、「性別」、「年齢層」)および各項目に格納され得るキーワードの候補(キーワード一覧)のすべてを知っているものとする。
In the example of FIG. 4, it is assumed that encryption is performed by a deterministic encryption technique in which the same encrypted data is generated from the same plaintext. Further, the
攻撃者33は、暗号文の出現頻度と、公知の頻度情報を比較して暗号文に対応する平文を類推することができる。例えば秘匿化DB32の2列目には、値が2種類しか登録されていない。そのため攻撃者33は、秘匿化DB32の2列目の項目「性別」に該当すると類推することができる。
The
さらに攻撃者33は、秘匿化DB32の2列目の値「tmuesf」と「uylgm」との出現頻度を比較し、「uylgm」の方が多いことを確認できる。すると攻撃者33は、人口分布を考えると出現頻度が多い方の「uylgm」が、「女」に対応する暗号データであると類推できる。
Further, the
攻撃者33は、複数の項目値の組み合わせによっても内容を類推できる。例えば攻撃者33は、秘匿化DB32の1列目の値「sEfgsr」に対応する2列目の値は「uylgm」のみであることを確認できる。すると攻撃者33は、片方の性別との組み合わせしかない値は、診療科における「婦人科」であると類推することができ、「uylgm」の平文が「女」あることを強く確信できる。
The
また攻撃者33は、秘匿化DB32の1列目の値「:opfyy」に対応する3列目の値は「jr8olt」のみであることを確認できる。すると攻撃者は、残りの3列目は年齢層であり、特定の年齢層との組み合わせしかない診療科は「小児科」であり、対応する年齢層は「児童」であると類推できる。
Further, the
なお、図4の例では、確定的暗号化によって暗号化された場合を想定しているが、確率的暗号化で暗号化された秘匿化DBに対しても頻度分析攻撃は可能である。確率的暗号化とは、同じ平文でも暗号化するたびに異なる暗号文に暗号化する暗号化技術である。確率的暗号化を行うと、同じ平文から生成された複数の暗号文のそれぞれの値が異なるため、秘匿化DB内を参照しただけでは、元の平文の出現頻度を数えられない。そのため、確率的暗号化で暗号することで、確定的暗号化よりも頻度分析攻撃が困難となる。 In the example of FIG. 4, it is assumed that the encryption is performed by deterministic encryption, but a frequency analysis attack is also possible against the confidential DB encrypted by probabilistic encryption. Probabilistic encryption is an encryption technology that encrypts the same plaintext into a different ciphertext each time it is encrypted. When probabilistic encryption is performed, the values of the plurality of ciphertexts generated from the same plaintext are different, so that the frequency of appearance of the original plaintext cannot be counted only by referring to the concealment DB. Therefore, encryption by probabilistic encryption makes frequency analysis attacks more difficult than deterministic encryption.
ただし、確率的暗号化を用いても、秘匿化DBを検索対象とする秘匿化検索を許容すると、攻撃者は、検索クエリに一致した暗号文はすべて同じ平文の暗号文であることが分かり、それらの暗号文は確定的暗号に変換できてしまう。そのため確率的暗号化を用いても、攻撃者は、データが活用されるに従って秘匿化DB内の多数の暗号文を確定的暗号に変換でき、確定的暗号化で暗号化した場合と同様に頻度分析攻撃が可能となる。 However, even if probabilistic encryption is used, if the concealed search targeting the concealed DB is allowed, the attacker finds that all the ciphertexts that match the search query are the same plaintext ciphertexts. Those ciphertexts can be converted to deterministic encryption. Therefore, even if probabilistic encryption is used, an attacker can convert a large number of ciphertexts in the concealment DB into deterministic encryption as the data is utilized, and the frequency is the same as when encrypted with deterministic encryption. Analytical attacks are possible.
このように頻度分析攻撃は、平文と暗号文に使用される文字や文字列の出現頻度を手掛りとして平文を類推し、盗み見る攻撃手法である。そして、元の平文の項目値に偏りがある場合に、その平文を暗号化した暗号文は、頻度分析攻撃に対して脆弱となる。 In this way, the frequency analysis attack is an attack method that infers plaintext by analogy with the appearance frequency of characters and character strings used in plaintext and ciphertext, and snoops on it. Then, when the item value of the original plaintext is biased, the ciphertext that encrypts the plaintext becomes vulnerable to a frequency analysis attack.
そこで頻度分析攻撃に対する安全性を高めるために、ダミーデータを用いて、元の平文の出現頻度を攪乱させることが考えられる。このとき、元の平文での項目値の種類や、各項目値の出現頻度を考慮せずにダミーデータ内の各項目の項目値(ダミー値)を追加しても、出現頻度を適切に攪乱させることはできない。 Therefore, in order to improve the 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 considering the frequency of appearance of item values in the original plaintext data and registering dummy data having dummy values with appropriate contents, reliable frequency disturbance can be realized. In this case, the
以下に、第2の実施の形態に使用する文字または用語の意味について説明する。
「k」は、予め設定されたセキュリティパラメータであり、2以上の整数が設定される。システムの管理者は、1つの項目の複数のキーワードのうち、頻度分析攻撃を受けたときに攻撃者が絞り込むことを許容可能な最小のキーワード数をkに設定する。
The meanings of the characters or terms used in the second embodiment will be described below.
“K” is a preset security parameter, and an integer of 2 or more is set. The system administrator sets k to the minimum number of keywords that an attacker can narrow down when receiving a frequency analysis attack among a plurality of keywords of one item.
「真のデータ」は、平文のDBに格納されているデータである。「真のデータのレコード」は、真のデータ内のキーワードを含むレコードである。なお真のデータのレコードは、第1の実施の形態の秘匿レコードの一例である。「ダミー値」は、真のデータに設定されている項目値(既存項目値)の頻度分布を攪乱するために追加した値である。「ダミーレコード」は、ダミー値を含むレコードである。「真の値」は、平文のDBに設定可能なキーワードである。 "True data" is data stored in a plaintext DB. A "record of true data" is a record that contains keywords in the true data. The record of true data is an example of a secret record of the first embodiment. The "dummy value" is a value added to disturb the frequency distribution of the item values (existing item values) set in the true data. A "dummy record" is a record containing a dummy value. "True value" is a keyword that can be set in the plaintext DB.
「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 is multiplied by the plaintext data by adding dummy data. A "group" is a set of multiple records. The set of records of true data is the group "0". A group of G-1 "1, 2, ..., G-1" including the same number of dummy records as the number of records of true data is generated. One G-1 dummy record is generated for one record included in the group "0", and one G-1 dummy record is generated in the group "1, 2, ..., G-1", respectively. Will be added one by one. The "flag" is a value given to each record so that the
「変換集合」は、各列(項目)について、真の値をk個以上とダミー要素または分割キーワード(真の値から1つまたは複数生成されたキーワード)を含む集合である。分割キーワードは、第1の実施の形態における第2項目値の一例である。変換集合には、1つの真の値に対してどのような値のダミーレコードを追加するかを決定するためのルールが表されている。変換集合の要素数は群数Gと等しい。変換集合は、平文検索クエリの攪乱や、攪乱検索結果の復元にも用いられる。 A "conversion set" is a set containing k or more true values and a dummy element or a split keyword (a keyword generated from one or more true values) for each column (item). The split keyword is an example of the second item value in the first embodiment. The transformation set represents a rule for deciding what value dummy record to add for one true value. The number of elements in the transformation set is equal to the number of groups G. The transformation set is also used to disturb plaintext search queries and restore disturbed search results.
「j」は列番号である。jは、レコードに登録された値の項目を特定するインデックスとして用いられる。「Xj」は、レコード内のj番目の列のフィールドに設定可能な項目値(キーワード)の種類数である。 "J" is a column number. j is used as an index for 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 jth column in the record.
「ダミー要素」は、XjがGより小さいかまたはGの倍数でない場合、変換集合に含める要素の不足を埋めるためのダミーの要素である。ダミー要素は、キーワード一覧には含まれない値である。 A "dummy element" is a dummy element to fill in the shortage of elements to be included in the transformation set if X j is less than G or not a multiple of G. The dummy element is a value that is not included in the keyword list.
次に、元の平文のデータにおける項目値の出現頻度を考慮したダミーデータの登録手法について説明する。
ダミーデータの登録手法の一例として、ダミー要素を用いる方法が考えられる。ダミー要素を用いる場合、データ登録サーバ200,300は、各項目の取り得るキーワードまたはダミー値から任意にG個選んだものを要素として変換集合を生成する。そしてデータ登録サーバ200,300は、各項目の取り得るキーワードがいずれか1つの変換集合の要素として含まれるまで変換集合を生成する。
Next, a method for registering dummy data in consideration of the frequency of appearance of item values in the original plaintext data will be described.
As an example of the dummy data registration method, a method using a dummy element can be considered. When a dummy element is used, the
図5は、ダミー要素を用いた変換集合の生成例を示す図である。図5の例では、真のデータのレコードは、「血圧」と「血液型」の項目が含まれているものとする。キーワードリスト34には、項目ごとに、その項目に設定可能なキーワードが登録されている。図5の例では、「血圧」に設定可能な項目値が3種類(正常、低血圧、高血圧)であり、「血液型」に設定可能な項目値が8種類(A+、B+、O+、AB+、A-、B-、O-、AB-)である。 FIG. 5 is a diagram showing an example of generating a transformation set using dummy elements. In the example of FIG. 5, it is assumed that the record of true data includes the items of "blood pressure" and "blood type". In the keyword list 34, keywords that can be set for each item are registered for each item. In the example of FIG. 5, there are 3 types of item values that can be set for "blood pressure" (normal, hypotension, and hypertension), and 8 types of item values that can be set for "blood type" (A +, B +, O +, AB +). , A-, B-, O-, AB-).
図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 transformation sets 35a, 35b, and 35c have a circular list structure, and the elements are arranged in order. Each element in the conversion set 35a, 35b, 35c is assigned an element number in ascending order from 0 in order from the beginning. For example, in the conversion set 35a, assuming that the left end in the figure is the head, "normal" is the head element (element number "0"), and "hypotension" is the next element (element number "1"). Since it has a circular list structure, for example, the element next to 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 a dummy element is 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 record of true data 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」のダミーレコード群に設定するダミー値に決定する。
When the
データ登録サーバ200,300は、群番号「3」(g=3)のダミーレコード群のダミー値c1,3を生成する場合、まず、mod(1+3,4)=0を計算する。そしてデータ登録サーバ200,300は、計算して得られた値「0」を要素番号とする変換集合35a内の要素b0に対応するキーワード「正常」を、群番号「3」のダミーレコード群に設定するダミー値に決定する。
When the
なお、図6に示したようなキーワードの変換元と変換先との関係は、全単射の関係の一例である。全単射関係を満たしていれば、図6に示す例とは別の規則で変換元のキーワードと変換先のキーワードまたはダミー要素との関係を定義してもよい。 The relationship between the conversion source and the conversion destination of the keyword as shown in FIG. 6 is an example of the 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 a rule different from the example shown in FIG.
データ登録サーバ200,300は、図6に示したようなダミー値の生成を、真のデータに出現する項目値それぞれについて行う。
図7は、ダミー要素を用いた場合のダミー値の生成例を示す図である。図7の例では、真のデータ36には、項目「血圧」のキーワードとして、「正常」が2回出現し、「低血圧」と「高血圧」とがそれぞれ1回ずつ出現している。また項目「血液型」の項目値として、「A+」が2回出現し、「O-」と「AB-」とがそれぞれ1回ずつ出現している。
The
FIG. 7 is a diagram showing an example of generating a dummy value when a dummy element is used. In the example of FIG. 7, in the true data 36, “normal” appears twice and “hypotension” and “hypertension” appear once each as the keyword of the item “blood pressure”. Further, 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+」が生成されている。 Dummy values to be set for each dummy record group are generated based on each of the keywords 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 of group number 3 (g = 3) is generated. Further, 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 of 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 a dummy element is used. The registered data 37 includes a record group 37a of the true data 36 and a dummy record group 37b, 37c, 37d. A flag is given to each record in the registration data 37. And the keyword (including the flag value) included in the registration data 37 is encrypted.
フラグ値は、真のデータのレコードとダミーレコードとを識別するために用いられる。例えば真のデータのレコードにはフラグ値「0」を設定し、ダミーレコードにはフラグ値「1」を設定することができる。この場合、G≧3のときにはフラグ値「0」の暗号文(H(0))よりもフラグ値「1」の暗号文(H(1))の方が多くなる。すると、攻撃者は、フラグ値の暗号文の出現頻度に基づいて、そのレコードが真のデータのレコードなのかを判断できてしまう。そこでデータ登録サーバ200,300は、フラグ値の暗号文についても頻度攪乱を行う。
The flag value is used to distinguish between a record of true data and a dummy record. For example, a flag value "0" can be set for a record of true data, and a flag value "1" can be set for a dummy record. In this case, when G ≧ 3, the ciphertext (H (1)) having the flag value “1” is larger than the ciphertext (H (0)) having the flag value “0”. Then, the attacker can determine whether the record is a record of true data based on the frequency of occurrence of the ciphertext of the flag value. Therefore, the
例えばデータ登録サーバ200,300は、フラグ値を決定するために、真のデータのレコード群およびダミーレコード群それぞれについて、同一の変数の値に対して異なる値を出力する異なる関数を用意する。そしてデータ登録サーバ200,300は、用意した関数にID列の値を変数xとして入力した値をフラグ値とする。
For example, the
群番号gの群(真のデータのレコード群またはダミーレコード群)のフラグ値生成関数をfg(x)としたとき、図8の例で用いているフラグ値生成関数は以下の通りである。
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」となる。
When the flag value generation function of the group of group number g (record group of true data or dummy record group) is f g (x), the flag value generation function used in the example of FIG. 8 is as follows. ..
f g (x) = (G + 1) x + g (2)
In the example of FIG. 8, G = 4. Therefore, the flag value generation function of the record group 37a (group number “0”) of the true data 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は、比較の結果が一致したフラグ値生成関数に対応する群が、そのレコードが属する群であると判断する。
At the time of the search, the
このようにして生成された登録データ37では、同一の変換集合に属する要素に対応する暗号文の出現頻度の均一化が図られている。
図9は、暗号文の均一化を説明する図である。例えば血圧の項目に設定可能なキーワードは、すべて1つの変換集合35a(図5参照)に属している。真のデータ36におけるキーワード「正常」の出現頻度は「2」、キーワード「低血圧」の出現頻度は「1」、キーワード「高血圧」の出現頻度は「1」である。
In the registration data 37 generated in this way, the appearance frequency of the ciphertexts corresponding to the elements belonging to the same conversion set is made uniform.
FIG. 9 is a diagram illustrating the homogenization of ciphertext. For example, all the keywords that can be set for the blood pressure item belong to one conversion set 35a (see FIG. 5). The frequency of appearance of the keyword "normal" in the true data 36 is "2", the frequency of appearance of the keyword "hypotension" is "1", and the frequency of appearance of the keyword "hypotension" is "1".
登録データ37では、各キーワードおよびダミー要素の値それぞれの暗号文の出現頻度が均一化されている。例えばキーワード「正常」の暗号文「H(正常)」、キーワード「低血圧」の暗号文「H(低血圧)」、キーワード「高血圧」の暗号文「H(高血圧)」、およびダミー要素の値「D1」の暗号文「H(D1)」それぞれの出現頻度は、いずれも「4」である。 In the registration data 37, the frequency of appearance of the ciphertext for each keyword and the value of the dummy element is made uniform. For example, the ciphertext "H (normal)" for the keyword "normal", the ciphertext "H (hypotension)" for the keyword "hypotension", the ciphertext "H (hypotension)" for the keyword "hypotension", and the value of the dummy element. The frequency of appearance of each of the ciphertexts "H (D1)" of "D1" is "4".
図5に示した変換集合の生成例からも分かるように、各変換集合にはk個(図5の例ではk=3)以上のキーワードが含まれる。従って攻撃者は、特定の暗号文の出現頻度が分かっても、その暗号文が、同一の変換集合に属するキーワードのうちのどのキーワードの暗号文なのかを特定することはできない。すなわち攻撃者は、暗号文に対応するキーワードの候補をk個までしか絞り込めない。その結果、頻度分析攻撃に対する安全性が向上している。 As can be seen from the conversion set generation example shown in FIG. 5, each conversion set contains k or more keywords (k = 3 in the example of FIG. 5). Therefore, even if the attacker knows the frequency of occurrence of a specific ciphertext, it cannot identify which of the keywords belonging to the same conversion set is the ciphertext. That is, the attacker can narrow down the candidate keywords corresponding to the ciphertext to only k. As a result, it is more secure against frequency analysis attacks.
なお、暗号文に対応するキーワードの候補をk個までしか絞り込めないようにするためには、群数Gの値を適切に決定することが重要となる。
図10は、適切な群数Gについて説明する図である。群数Gは、kに応じて決定される。前述のようにkは、暗号文に対応するキーワードの候補をk個までしか絞れないようにするために予め設定するセキュリティパラメータである。従ってkは、システムに求められる頻度分析攻撃に対する安全性の度合いに応じて決められる。
In order to narrow down the candidate keywords corresponding to the ciphertext to only k, it is important to appropriately determine the value of the group number G.
FIG. 10 is a diagram illustrating an appropriate group number G. The group number G is determined according to k. As described above, k is a security parameter set in advance so that only k keyword candidates corresponding to the ciphertext can be narrowed down. Therefore, k is determined according to the degree of safety against frequency analysis attacks required for the system.
このとき設定可能なキーワードの種類数Xj<kとなる項目も存在する。このような項目は、変換集合内にk個以上のキーワードを含めることができない。そのため攻撃者は、該当項目の暗号文に対応するキーワードが、Xj個(k<)のキーワードのどれかであることが分かる。しかしこのような項目の暗号文に対応するキーワードが、Xj個のどれかであることは、公知の情報であり、攻撃者が知っていても問題ない。例えば図10の例では、項目「性別」について設定可能なキーワードは「男」か「女」の2つしかない。しかし性別が「男」と「女」のいずれかであることは、攻撃者が知っていても問題ない情報である。 At this time, there is also an item in which the number of types of keywords that can be set X j <k. Such an item cannot contain more than k keywords in the conversion set. Therefore, the attacker knows that the keyword corresponding to the ciphertext of the corresponding item is one of X j (k <) keywords. However, it is publicly known information that the keyword corresponding to the ciphertext of such an item is any of Xj , and there is no problem even if the attacker knows it. For example, in the example of FIG. 10, there are only two keywords that can be set for the item "gender", "male" or "female". However, the fact that the gender is either "male" or "female" is information that the attacker knows without any problem.
他方、設定可能なキーワードの種類数Xj≧kとなる項目であれば、変換集合内にk個以上のキーワードが含まれるようにするのが適切である。そこで、Xjがkの倍数でない項目がある場合、データ登録サーバ200,300は、Gを調整することで、k個以上のキーワードが各変換集合に含まれるようにする。
On the other hand, if the number of types of keywords that can be set is X j ≧ k, it is appropriate to include k or more keywords in the conversion set. Therefore, when there is an item in which X j is not a multiple of k, the
例えば図10の「血液型」の例では、k=3に対し、Xj=4である。このとき変換集合一覧38のようにG=3にすると、検索者が「O」または「AB」を検索した際、その検索結果を見た攻撃者は、検索対象が「O」と「AB」の2つのどちらかだと分かってしまう。そこで、Xj≧kの項目について該当項目に設定可能なキーワードが各変換集合にk個以上含まれるようにするためには、G≧kとなるようにGが決定される。例えば変換集合一覧39のようにG=4にすれば、いずれの変換集合にも、対応する項目に設定可能なキーワードが3つ以上含まれる。
For example, in the example of "blood type" in FIG. 10, X j = 4 for k = 3. At this time, if G = 3 as shown in the conversion set list 38, when the searcher searches for "O" or "AB", the attacker who sees the search result finds "O" and "AB". It turns out that it is either of the two. Therefore, in order to include k or more keywords that can be set in the corresponding item for the item of X j ≧ k in each conversion set, G is determined so that G ≧ k. For example, if G = 4 as in the conversion set
図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 disturbance. The frequency distribution table 40 shown in FIG. 11 shows each keyword and dummy after frequency disturbance in a DB having items in which five types of keywords “A”, “B”, “C”, “D”, and “E” can be set. It represents the frequency of appearance of the element value "F". In the example of FIG. 11, G = 3. There are two conversion 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 value of the dummy record group of the group number "1" is "A → B", "B → C", "C → A", "D → E", based on the conversion set of the item values of the true data. It is generated by converting "E → F" and "F → D". The dummy value of the dummy record group of the group number "2" is "A → C", "B → A", "C → B", "D → F", based on the conversion set of the item values of the true data. 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 true data, the frequency of appearance of "A" is "10", the frequency of appearance of "B" is "7", the frequency of appearance of "C" is "2", and the frequency of appearance of "D" is "1", "E". The appearance frequency of "" is "5", and the appearance frequency of "F" is "0". Then, the appearance frequency of each keyword included in the conversion set "A, B, C" after the frequency disturbance becomes "19". The frequency of appearance of the values of each keyword or dummy element included in the conversion set "D, E, F" after frequency disturbance is "6". That is, the frequency of appearance of item values in the set is made uniform for each set of three item values.
また各ダミーレコード群のダミー値は、真のデータのキーワードを1対1で変換することで生成されている。そのためキーワードの出現頻度のばらつき度合いは変わらない。例えば出現頻度が多い順にその出現頻度の値を並べた場合、真のデータのレコード群および2つのダミーレコード群のいずれにおいても「10,7,5,2,1,0」である。このように、ダミーレコード群ごとの項目値の出現頻度のばらつき度合いは、すべてのダミーレコード群について真のデータと等しくなる。その結果、どのレコード群が真のデータのレコード群なのかを、キーワードの出現頻度のばらつき度合いから判断することが困難となる。また、すべてのダミーレコード群に真のデータの各レコードに1対1で対応するダミーレコードが存在する。そのため真のデータのあるレコードを削除する際には対応するダミーレコードを合わせて削除することで、データの秘匿性を維持したまま真のデータの任意のレコードを削除することができる。 Further, the dummy value of each dummy record group is generated by converting the keyword of true data on a one-to-one basis. Therefore, the degree of variation in the frequency of appearance of keywords does not change. For example, when the values of the frequency of appearance are arranged in descending order of frequency of appearance, it is "10,7,5,2,1,0" in both the record group of true data and the two dummy record groups. In this way, the degree of variation in the appearance frequency of the item values for each dummy record group is equal to the true data for all the 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 the frequency of appearance of the keywords. In addition, there is a one-to-one correspondence dummy record for each record of true data in all dummy record groups. Therefore, when deleting a record with true data, by deleting the corresponding dummy record together, it is possible to delete any record of true data while maintaining the confidentiality of the data.
このようにダミー要素を用いることで、頻度分析攻撃に対する安全性を向上させることが可能である。ただし、複数の項目のキーワード間の組み合わせ頻度を知っている攻撃者に対しては、検索条件に含まれるキーワードの候補がk個未満に絞られてしまう可能性がある。 By using the dummy element in this way, it is possible to improve the security against frequency analysis attacks. However, for an attacker who knows the frequency of combination between keywords of a plurality of items, the number of keyword candidates included in the search condition may be narrowed down to less than k.
例えば日本の法律上、助産師は女性のみである。そのため検索条件「助産師∧男性」(∧は論理積)を満たすレコードは存在しない。このように項目値の組み合わせが実世界で存在しない場合、これらの組み合わせは構造的ゼロである。構造的ゼロの情報を知っている検索者は、「職業」、「性別」の組み合わせで効率的に検索する場合、項目「性別」の項目値をわざわざ条件に指定せず、「職業:助産師」のみで検索する。このことは攻撃者も分かっている。すると構造的ゼロとなる項目値の組み合わせに関連する検索が行われたとき、攻撃者は検索条件に含まれる検索キーワードのk個未満に絞り込める可能性がある。 For example, under Japanese law, only women are midwives. Therefore, there is no record that satisfies the search condition "midwife ∧ male" (∧ is a logical product). When there are no combinations of item values in the real world, these combinations are structurally zero. A searcher who knows the information of structural zero does not bother to specify the item value of the item "gender" as a condition when searching efficiently by the combination of "occupation" and "gender", and "occupation: midwife". Search only by. This is also known to attackers. Then, when a search related to a combination of item values that becomes structural zero is performed, the attacker may narrow down to less than k search keywords included in the search condition.
図12は、構造的ゼロを利用した攻撃方法の一例を示す図である。図12の例では、k=G=2の場合の変換集合一覧41の例が示されている。変換集合一覧41では、職業の変換集合には「助産師」と「医師」が含まれ、性別の変換集合には「男」と「女」が含まれる。 FIG. 12 is a diagram showing an example of an attack method using structural zero. In the example of FIG. 12, an example of the transformation set list 41 in the case of k = G = 2 is shown. In the conversion set list 41, the conversion set of occupation includes "midwife" and "doctor", and the conversion set of gender includes "male" and "female".
検索条件一覧42には、職業と性別との組み合わせ検索を行う場合において生成し得る検索条件が示されている。生成し得る検索条件は「助産師∧男」、「助産師∧女」、「医師∧男」、「医師∧女」の4パターンである。 The search condition list 42 shows search conditions that can be generated when performing a combination search of occupation and gender. The search conditions that can be generated are four patterns: "midwife ∧ man", "midwife ∧ woman", "doctor ∧ man", and "doctor ∧ woman".
このとき「助産師∧男」の条件を満たすレコードは構造的ゼロに該当し、該当レコードが存在しないことは既知である。この場合、職業のみを「助産師」と指定した検索を行えば、「助産師∧女」の検索と同じ検索結果が得られる。そうすると実際に検索者が検索を行うときに入力する可能性がある検索条件は、「助産師」、「医師∧男」、「医師∧女」の3パターンである。 At this time, it is known that the record satisfying the condition of "midwife ∧ man" corresponds to structural zero, and the corresponding record does not exist. In this case, if a search is performed by designating only the occupation as "midwife", the same search result as the search for "midwife ∧ woman" can be obtained. Then, the search conditions that the searcher may actually enter when performing a search are three patterns of "midwife", "doctor ∧ male", and "doctor ∧ female".
攻撃者も構造的ゼロの情報を知っている場合、攻撃者は職業「助産師」には、性別の値が入っていないことも知っている。そのため、性別の値が入っている場合、攻撃者は検索条件の「職業」を、「助産師」以外の「医師」に絞りこめる。つまりk=2として2つ以上の項目値の出現頻度が均等となるようにダミーデータによって出現頻度を平準化したにも拘わらず、攻撃者によって検索条件に含まれる項目値がk未満に絞り込まれてしまう。 If the attacker also knows the structural zero information, the attacker also knows that the occupation "midwife" does not contain a gender value. Therefore, if a gender value is included, the attacker narrows down the search condition "occupation" to "doctors" other than "midwives." That is, even though the appearance frequency is leveled by dummy data so that the appearance frequency of two or more item values is equalized with k = 2, the item values included in the search condition are narrowed down to less than k by the attacker. Will end up.
そこで端末装置400,500では、検索条件に含まれる値(検索キーワード)の候補がk個未満に絞り込まれないようにするため、検索条件の攪乱処理を行う。
ここで構造的ゼロの裏返しは、実世界に存在する組み合わせであり、このような項目値の組み合わせは非構造的ゼロである。例えば構造的ゼロ「助産師∧男」に対して、非構造的ゼロは「助産師∧女」である。
Therefore, in the
Here, the inside out of structural zero is a combination that exists in the real world, and such a combination of item values is non-structural zero. For example, structural zero is "midwife ∧ male", while non-structural zero is "midwife ∧ female".
端末装置400,500は、検索条件が入力されると、非構造的ゼロ情報のリストを参照し、入力された検索条件の項目の値に対して、一意に決まる項目の値があるならば、その値を検索条件に自動的に追加する。例えば検索条件として職業「助産師」が指定されていなとき、端末装置400,500は検索条件に性別「女」を論理積で追加し、検索条件を「助産師∧女」とする。
When the search condition is input, the
このように検索条件を攪乱することで、攻撃者による検索条件に含まれる検索キーワードの推定を抑止することができる。ただし、職業「助産師」に対して、性別「女」を常に追加したのでは、検索キーワードの推定を抑止する効果として十分ではない。 By disturbing the search conditions in this way, it is possible to suppress the estimation of the search keywords included in the search conditions by the attacker. However, always adding the gender "female" to the occupation "midwife" is not sufficient as an effect of suppressing the estimation of the search keyword.
例えば攻撃者は変換集合の生成アルゴリズムを知っており、変換集合の内容も知っているものとする。そして攻撃者は構造的ゼロとなる項目値の組み合わせも知っているものとする。 For example, an attacker knows the algorithm for generating a transformation set and also knows the contents of the transformation set. The attacker also knows the combination of item values that is structurally zero.
ここで構造的ゼロでない職業「医師」の場合、性別は「男」、「女」のいずれもがあり得る。そのため、検索者は性別の条件を付けたり、付けなかったりし、対応がばらつく。それに対し、職業「助産師」に対して常に性別「女」が追加されていると、攻撃者は性別の値の有無についてのパターンを分析することで、常に性別の項目値が付与されている検索条件の職業の項目値が「助産師」であると判断できる。すると攻撃者は、検索条件に含まれる検索キーワードの候補をk未満に絞ることが可能となる。 Here, in the case of a non-structural zero occupation "doctor", the gender can be either "male" or "female". Therefore, the searcher may or may not set a gender condition, and the correspondence varies. On the other hand, if the gender "female" is always added to the occupation "midwife", the attacker always gives the gender item value by analyzing the pattern regarding the presence or absence of the gender value. It can be determined that the item value of the occupation of the search condition is "midwife". Then, the attacker can narrow down the search keyword candidates included in the search condition to less than k.
そこで端末装置400,500は、検索条件に含まれる項目値が非構造的ゼロとなる項目値の組み合わせに含まれる場合、ランダムに非構造的ゼロの組み合わせとなるような項目値を追加する。これにより、検索条件を攪乱することができる。
Therefore, when the item values included in the search condition are included in the combination of the item values having non-structural zeros, the
図13は、検索条件の攪乱の一例を示す図である。例えば職業「助産師」を検索キーワードとする検索条件43が入力されたものとする。このとき端末装置400,500は、非構造的ゼロとなる項目値の組み合わせが示された非構造的ゼロ情報44を参照する。例えば非構造的ゼロ情報44には、職業「助産師」と性別「女」との組み合わせが非構造的ゼロであることが示されている。
FIG. 13 is a diagram showing an example of disturbance of search conditions. For example, it is assumed that the
端末装置400,500は、非構造的ゼロ情報44に基づいて、検索条件43の項目値が、他の項目値と組み合わせたときに非構造的ゼロに該当すると判断する。そして端末装置400,500は、ランダムに検索条件に性別「女」の検索キーワードを追加する。このような項目値の追加処理の結果、職業「助産師」かつ性別「女」の検索条件45または職業「助産師」の検索条件46がランダムに生成される。
Based on the non-structural zero
このとき端末装置400,500は、攪乱対象の検索条件が一定数入力されたときの、自動的に項目値を追加する検索条件の個数をランダムに決定してもよい。項目値を追加する検索条件の個数は、例えば項目値を追加すると判断する確率によって制御できる。端末装置400,500は、例えば0~1の間で乱数を生成し、その乱数の値を、項目値を追加すると判断する確率とする。そして端末装置400,500は、他の項目値と組み合わせることで非構造的ゼロとなる検索条件を検出した場合、ランダムに決定した確率で、項目値を追加するか否かを決定する。これにより、自動的に項目値を追加する検索条件の個数がランダムとなる。
At this time, the
次に、検索条件を攪乱して頻度分析攻撃に対する安全性を向上させた秘密情報管理システムの各装置の機能について説明する。
図14は、秘密情報管理システムの機能を示すブロック図である。データ管理サーバ100は、秘匿化DB110、データ登録部120、鍵提供依頼部130、および検索部140を有する。秘匿化DB110は、データ管理サーバ100が有するメモリ102またはストレージ装置103によって実現される。データ登録部120、鍵提供依頼部130、および検索部140は、データ管理サーバ100が有するプロセッサ101によって実現される。
Next, the functions of each device of the confidential information management system that disturbs the search conditions and improves the security against frequency analysis attacks will be described.
FIG. 14 is a block diagram showing the 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に送信する。
When the key
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に送信する。
Further, the data
鍵提供部260は、データ管理サーバ100からの鍵提供依頼に応じて、登録した患者データの利用を許可する製薬企業の端末装置400,500へ、暗号鍵を送信する。なお鍵提供部260は、暗号鍵を、データ管理サーバ100を経由せずに端末装置400,500に送信する。データ管理サーバ100を経由せずに暗号鍵を送信することで、暗号鍵がデータ管理サーバ100から隔離される。その結果、データ管理サーバ100の管理者による、秘匿化DB110内のデータの復号が抑止される。
In response to the key provision request from the
以上、データ登録サーバ200が有する機能を説明したが、データ登録サーバ300もデータ登録サーバ200と同様の機能を有する。
端末装置400は、鍵記憶部410、変換情報記憶部420、鍵取得部430、検索要求部440、および非構造的ゼロ情報記憶部450を有する。鍵記憶部410、変換情報記憶部420、および非構造的ゼロ情報記憶部450は、端末装置400が有するメモリまたはストレージ装置によって実現される。また鍵取得部430、および検索要求部440は、端末装置400が有するプロセッサによって実現される。
Although the functions of the
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に格納する。
The
検索要求部440は、患者データの利用者(検索者)が入力した検索キーワードを取得する。次に検索要求部440は、取得した検索キーワードを、暗号鍵を用いて暗号化し、暗号文の検索キーワードを含む検索クエリをデータ管理サーバ100に送信する。検索要求部440は、データ管理サーバ100から検索結果を受信すると、検索結果の内容(例えば検索キーワードに合致した真のデータのレコード数)を表示する。
The
なお検索要求部440は、ダミーデータを検索対象とする検索クエリを送信することもできる。その場合、検索要求部440は、変換情報記憶部420に格納されている情報を用いて、検索キーワードをダミー値に変換し、暗号化したダミー値を含む検索クエリを送信する。この場合、検索要求部440は、検索結果に示されるレコードから所定のダミーレコードを抽出し、そのダミーレコード内のダミー値を、変換情報記憶部420に格納されている情報を用いて、真のデータに設定されていた値に変換する。そして検索要求部440は、変換後の値を有するレコードの内容を検索結果として表示する。
The
非構造的ゼロ情報記憶部450は、世の中で非構造的ゼロとなる2以上の項目値の組み合わせを示す情報を記憶する。非構造的ゼロ情報は、例えば、検索条件に含まれる検索キーワードが、他のキーワードと組み合わせたときに非構造的ゼロとなるか否かの判断に使用される。また非構造的ゼロ情報は、検索条件を攪乱するために追加する検索キーワードの決定にも使用される。
The non-structural zero
以上、端末装置400が有する機能を説明したが、端末装置500も端末装置400と同様の機能を有する。
図14に示した機能により、データ管理サーバ100の管理者に対しても患者データと検索クエリの内容を秘匿したまま、データ管理サーバ100において患者データを管理すると共に、製薬企業15,16による患者データの利用を可能とすることができる。なお、図14に示した各要素の機能は、例えば、その要素に対応するプログラムモジュールをコンピュータに実行させることで実現することができる。
Although the functions of the
With the function shown in FIG. 14, the patient data is managed by the
次に、図14に示したシステムによる出現頻度攪乱処理の概要について説明する。
図15は、ダミーデータを用いた出現頻度の攪乱処理の一例を示す図である。データ登録サーバ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, the outline of the appearance frequency disturbance treatment by the system shown in FIG. 14 will be described.
FIG. 15 is a diagram showing an example of appearance frequency disturbance processing using dummy data. The
その後、データ登録サーバ200は、DB210内のデータ211に対して、ダミーデータ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は、検索条件に対する非構造的ゼロ攪乱処理を行う(ステップS15)。例えば検索要求部440は、検索条件に示される検索キーワードが他のキーワードと組み合わせたときに非構造的ゼロに該当する場合、確率的に検索キーワードの追加の有無を判断する。そして検索要求部440は、検索キーワードを追加する場合、検索条件に、入力された検索キーワードと組み合わせることで非構造的ゼロとなるキーワードを検索キーワードとして論理積で追加する。
When the person in charge of the
端末装置400は、非構造的ゼロ攪乱処理を行った検索要件内の検索キーワードを暗号鍵52で暗号化して、暗号文の検索キーワードを含む検索クエリ57を生成する(ステップS16)。なお検索要求部440は、いずれかのダミーレコード群を検索対象とする場合、入力された検索キーワードを、ダミーレコード群におけるその検索キーワードに対応するダミー値に変換する。そして検索要求部440は、変化で得られたダミー値を暗号化した値を含む検索クエリ57を生成する。そして検索要求部440は、検索クエリ57をデータ管理サーバ100に送信する(ステップS17)。
The
データ管理サーバ100では、検索部140が、データを秘匿化したままで、登録データ53と検索クエリ57とを照合する(ステップS18)。そして検索部140は、検索クエリ57による検索にヒットしたレコードを、検索結果58として端末装置400に送信する(ステップS19)。検索結果58には、真のデータ54のレコードとダミーデータ55のダミーレコードとが含まれる。
In the
端末装置400では検索要求部440が検索結果58を受信する。検索要求部440は、真のデータ54を検索対象とした場合には、例えばフラグに基づいて、検索結果58からダミーレコードを破棄する(ステップS20)。そして検索要求部440は、検索結果58内の真のデータ54のレコードのみを含む真の結果59を、モニタなどに表示する。
In the
なお検索要求部440は、ダミーレコード群を検索対象とした場合には、例えばフラグに基づいて、検索結果58から検索対象のダミーレコード群に属するダミーレコードを抽出し、その他のレコードを破棄する。検索要求部440は、ダミーレコード内のダミー値を、そのダミー値の生成元であったキーワードに変換する。そして検索要求部440は、元のキーワードに変換された値を含むレコードを真の結果59として表示する。
When the dummy record group is the search target, the
このようにダミーデータ55を追加することで、各項目値の頻度攪乱が可能となる。また端末装置400が非構造的ゼロ攪乱処理を行うことで、他の項目値と組み合わせることで非構造的ゼロとなる項目値が検索条件として入力された場合に、非構造的ゼロを構成する項目値を用いた検索であることを攪乱することができる。
By adding the
次に、データ登録サーバ200,300が有する平文の患者データのDB210について説明する。
図16は、平文の患者データのDBの一例を示す図である。DB210には、真のデータ211が平文のまま格納されている。真のデータ211には、例えば患者ごとのレコードが、レコードの識別子(ID)に対応付けて登録されている。各レコードには、項目ごとの列に、その項目に対応するキーワードが設定されている。図16の例では、項目として「診療科」、「性別」、「年齢層」、「職業」がある。「診療科」の項目に設定される項目値は、患者が受診した診療科の名称である。「性別」の項目に設定される項目値は、患者の性別である。「年齢層」の項目に設定される項目値は、患者の年齢に対応する年齢層である。「職業」の項目に設定される項目値は、患者の職業である。DB210に登録されている各レコード内の値は、例えば平文の文字コードである。
Next, the plaintext
FIG. 16 is a diagram showing an example of a DB of plaintext patient data. The true data 211 is stored in the
データ登録要求部250は、患者のレコードをデータ管理サーバ100に登録する場合、そのレコードに設定された値(平文)を、確定的暗号化技術により暗号化する。そして暗号化されたレコードが、データ管理サーバ100の秘匿化DB110に登録される。その際、データ登録要求部250は、変換情報記憶部230を参照して、頻度分析攻撃に対する攪乱のためにダミーデータを生成する。
When the data
図17は、変換情報記憶部に格納される情報の一例を示す図である。変換情報記憶部230には、キーワード一覧231と変換集合一覧232とが記憶されている。キーワード一覧231は、項目ごとに、その項目に設定可能なキーワードのリストが示されたデータである。変換集合一覧232は、変換集合の内容を示すデータである。なお変換集合一覧232は、キーワード一覧231に基づいて、データ登録要求部250によって生成されるデータである。
FIG. 17 is a diagram showing an example of information stored in the conversion information storage unit. The conversion
図18は、キーワード一覧の一例を示す図である。キーワード一覧231には、DB210の項目ごとに、該当項目に設定可能なキーワードのリストが登録されている。図18の例では、「性別」の項目に設定できるキーワードは2個であり、「年齢層」の項目に設定できるキーワードは4個である。「診療科」と「職業」の項目に設定できるキーワードは、図18に示した6個のキーワード以外にも存在する。キーワード一覧231に基づいて変換集合一覧が生成される。
FIG. 18 is a diagram showing an example of a keyword list. In the
図19は、変換集合一覧の一例を示す図である。変換集合一覧232には、項目ごとに生成された変換集合232a~232gが含まれている。変換集合一覧232は、k=2、G=3という条件で生成されている。そのため変換集合232a~232gそれぞれには、キーワードリストに含まれるキーワードに対応する要素が少なくともk個以上含まれる。また変換集合232a~232gそれぞれには、ダミー要素を含めG個の要素が含まれる。
FIG. 19 is a diagram showing an example of a list of conversion sets. The
図19の例では、診療科の1つ目の変換集合232aには、「小児科」、「内科」、「婦人科」が含まれている。診療科の2つ目の変換集合232bには、「外科」、「耳鼻科」、「眼科」が含まれている。性別の変換集合232cには、「男」、「女」、「D1」(ダミー要素)が含まれている。年齢層の1つ目の変換集合232dには、「老人」、「成人」、「D2」(ダミー要素)が含まれている。年齢層の2つ目の変換集合232eには、「青年」、「児童」、「D3」(ダミー要素)が含まれている。職業の1つ目の変換集合232fには、「無職」、「弁護士」、「医師」が含まれている。職業の2つ目の変換集合232gには、「助産師」、「歌手」、「力士」が含まれている。 In the example of FIG. 19, the first conversion set 232a of the clinical department includes "pediatrics", "internal medicine", and "gynecology". The second transformation set 232b of the clinical department includes "surgery", "otolaryngology", and "ophthalmology". The gender conversion set 232c includes "male", "female", and "D1" (dummy element). The first transformation set 232d of the age group includes "old man", "adult", and "D2" (dummy element). The second transformation set 232e of the age group includes "youth", "children", and "D3" (dummy elements). The first conversion set of occupations, 232f, includes "unemployed," "lawyer," and "doctor." The second conversion set of professions, 232g, includes "midwives," "singers," and "wrestlers."
DB210に登録されているデータ211の各レコードに含まれる各キーワードを、変換集合一覧232内の該当するキーワードを含む変換集合に従って変換することで、ダミーレコードに設定するダミー値が生成される。そしてダミー値が設定されたダミーレコードを含む登録データが生成される。
By converting each keyword included in each record of the data 211 registered in the
図20は、登録データの一例を示す図である。登録データ60には、真のデータのレコード群60aとダミーレコード群60b,60cが含まれている。また各レコードにはランダムにIDが付与されている。登録データ60内の各レコードにはフラグが付与されている。そして登録データ60に含まれるキーワード(フラグ値も含む)が暗号化されている。なおフラグ値は、ランダムに付与されたIDを用いて、前述の式(2)に示したフラグ値生成関数によって生成されている。
FIG. 20 is a diagram showing an example of registered data. The registered data 60 includes a
データ登録要求部250は、登録データ60をIDでソートした後、データ管理サーバ100の秘匿化DB110に登録する。
図21は、秘匿化DBの一例を示す図である。秘匿化DB110に登録されたレコードはIDによってソートされており、真のデータのレコードとダミーレコードが混在して登録されている。
The data
FIG. 21 is a diagram showing an example of a concealment DB. The records registered in the
次に、データ登録処理の手順について詳細に説明する。
図22は、データ登録処理の手順の一例を示すフローチャートである。以下、図22に示す処理をステップ番号に沿って説明する。
Next, the procedure of the data registration process will be described in detail.
FIG. 22 is a flowchart showing an example of the procedure of the data registration process. Hereinafter, the process shown in FIG. 22 will be described along with the step numbers.
[ステップS101]データ登録要求部250は、同程度の出現頻度とする項目値の種類数kの設定入力を受け付ける。kの値が大きいほど安全性が向上するが登録するダミーレコード数も増加する。そこで、kの値は、秘匿化DB110に求められる頻度分析攻撃に対する安全性の度合いと、秘匿化DB110に許容されるダミーレコード数とを勘案して、データ登録サーバ200の管理者が決定する。
[Step S101] The data
[ステップS102]データ登録要求部250は、群数Gと項目ごとの変換集合数とを決定する。例えば、キーワード一覧においてj番目の項目に設定可能なキーワードの種類数をXjとすると、j番目の項目について最適な群数Gjは、床関数と天井関数とを用いて以下の式(3)で表される。
[Step S102] The data
データ登録要求部250は、すべての項目について求めたXjの値の最大値をGとする。さらにデータ登録要求部250は、群数Gに基づいてすべての項目それぞれの変換集合数を算出する。j番目の項目の最適な変換集合数Mjは以下の式(4)で表される。
The data
[ステップS103]データ登録要求部250は、すべての項目それぞれについて、ステップS102で決定した変換集合数分の変換集合を生成する。
[ステップS104]データ登録要求部250は、DB210から平文のデータ(真のデータのレコード群)を読み込む。
[Step S103] The data
[Step S104] The data
[ステップS105]データ登録要求部250は、ステップS102で決定した群数G-1個のダミーレコード群を含むダミーデータを生成する。なお、ダミーデータ生成処理の詳細は後述する(図23参照)。
[Step S105] The data
[ステップS106]データ登録要求部250は、真のデータとダミーデータとのレコードそれぞれに、ランダムにIDを付与する。
[ステップS107]データ登録要求部250は、真のデータのレコードとダミーレコードとのそれぞれにフラグを付与する。データ登録要求部250は、各レコードについて、例えば式(2)に示したフラグ値生成関数を用いて算出した値をフラグ値とするフラグを付与する。
[Step S106] The data
[Step S107] The data
[ステップS108]データ登録要求部250は、各レコードをIDでソートする。
[ステップS109]データ登録要求部250は、ソートされたレコード群を暗号化して、秘匿化DB110に登録する。例えばデータ登録要求部250は、レコード内の項目値ごとに暗号化し、暗号化された値を有するレコード群を、登録データとしてデータ管理サーバ100に送信する。データ管理サーバ100では、データ登録部120が登録データを受信し、受信した登録データを秘匿化DB110に格納する。
[Step S108] The data
[Step S109] The data
次に、ダミーデータ生成処理について詳細に説明する。
図23は、ダミーデータ生成処理の手順の一例を示すフローチャートである。以下、図23に示す処理をステップ番号に沿って説明する。
Next, the dummy data generation process will be described in detail.
FIG. 23 is a flowchart showing an example of the procedure of the dummy data generation process. Hereinafter, the process shown in FIG. 23 will be described along with the step numbers.
[ステップS121]データ登録要求部250は、ステップS102で算出した群数Gを取得する。
[ステップS122]データ登録要求部250は、真のデータをG-1個コピーし、G-1個のダミーレコード群を生成する。
[Step S121] The data
[Step S122] The data
[ステップS123]データ登録要求部250は、真のデータの全項目それぞれについて、ステップS124~S126の処理を実行する。
[ステップS124]データ登録要求部250は、全ダミーレコードそれぞれについて、ステップS125の処理を実行する。
[Step S123] The data
[Step S124] The data
[ステップS125]データ登録要求部250は、ダミーレコードの項目値を変換する。例えばデータ登録要求部250は、処理対象の項目に対応する変換集合の中から、ダミーレコードにおける処理対象の項目値(変換対象項目値)を含む変換集合を選択する。次にデータ登録要求部250は、処理対象のダミーレコードの属するダミーレコード群の群番号を取得する。データ登録要求部250は、選択した変換集合内の変換対象項目値に対応する要素から群番号の分だけ巡回的に右の要素を、その変換集合から取得する。そしてデータ登録要求部250は、変換処理対象のダミーレコード内の変換対象項目値を、取得した要素の値(ダミー値)に変換する。
[Step S125] The data
[ステップS126]データ登録要求部250は、全ダミーレコードそれぞれについて、ステップS125の処理が完了した場合、処理をステップS127に進める。
[ステップS127]データ登録要求部250は、全項目それぞれについて、ステップS124~S126の処理が完了した場合、ダミーデータ生成処理を終了する。
[Step S126] When the processing of step S125 is completed for each of the dummy records, the data
[Step S127] 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 transformation set. Then, the data
秘匿化DB110内のデータを検索しようとする検索者は、例えば端末装置400の検索条件入力画面を介して検索キーワードを端末装置400に入力する。
図24は、検索条件入力画面の一例を示す図である。検索条件入力画面61には、例えば検索変数としてDB210内の各項目の名称が設定されている。そして検索変数に対応付けて、その検索変数の指定値を検索キーワードとして入力するための指定値入力領域62が設けられている。検索者が指定値入力領域62に、検索変数として示されている項目の指定値を入力すると、端末装置400は、入力された指定値を検索キーワードとする検索を行う。
A searcher who wants to search the data in the
FIG. 24 is a diagram showing an example of a search condition input screen. On the search condition input screen 61, for example, the name of each item in the
図24の例では、職業として「助産師」が指定されているが、性別は指定されていない。この場合、端末装置400の検索要求部440は、職業「助産師」を検索条件として取得する。検索要求部440は、検索条件を取得すると、非構造的ゼロ情報記憶部450を参照し、取得した検索条件に対する非構造的ゼロ攪乱処理を行う。
In the example of FIG. 24, "midwife" is designated as a profession, but gender is not designated. In this case, the
図25は、非構造的ゼロ情報記憶部に格納されている非構造的ゼロ情報の一例を示す図である。図25の例では、非構造的ゼロ情報記憶部450には、項目の組み合わせごとの非構造的ゼロ情報451~453が格納されている。
FIG. 25 is a diagram showing an example of non-structural zero information stored in the non-structural zero information storage unit. In the example of FIG. 25, the non-structural zero
非構造的ゼロ情報451は、職業の項目値と性別の項目値との組み合わせが非構造的ゼロとなる項目値の組み合わせを示す情報である。例えば非構造的ゼロ情報451には、「助産師∧女」、「力士∧男」、「プロ野球選手∧男」、「歌舞伎役者∧男」、「巫女∧女」などの非構造的ゼロの項目値の組み合わせが設定されている。
The non-structural zero
非構造的ゼロ情報452は、診療科の項目値と性別の項目値との組み合わせが非構造的ゼロとなる項目値の組み合わせを示す情報である。例えば非構造的ゼロ情報452には、「婦人科∧女」の非構造的ゼロの項目値の組み合わせが設定されている。
The non-structural zero
非構造的ゼロ情報453は、診療科の項目値と年齢層の項目値との組み合わせが非構造的ゼロとなる項目値の組み合わせを示す情報である。例えば非構造的ゼロ情報453には、「小児科∧児童」の非構造的ゼロの項目値の組み合わせが設定されている。
The non-structural zero
非構造的ゼロ情報451~453に示される項目値の組み合わせは、左側の項目の項目値が成立するとき、右側の項目の項目値が成立するという関係となる。例えばある患者について職業「助産師」が成立するなら性別「女」が成立するという関係がある。すなわち右側の項目値は左側の項目値の必要条件であり、左側の項目値は右側の項目値の十分条件である。
The combination of the item values shown in the non-structural zero
非構造的ゼロ情報451~453に基づいて、構造的ゼロ情報451a~453aを把握することができる。構造的ゼロ情報451a~453aに示される項目値の組み合わせは、左側の項目の項目値が成立するとき、右側の項目の項目値は成立しないという関係となる。例えばある患者について職業「助産師」が成立するなら性別「男」は成立しないという関係がある。
The structural zero
非構造的ゼロ情報451~453の項目値の組み合わせを検索者が検索する場合、左側に示す十分条件となる項目値を指定すれば足りる。しかし常に左側の項目値のみを指定した検索クエリをデータ管理サーバ100に送信していると、その項目値が非構造的ゼロ情報451~453における十分条件となる項目値のいずれかであると推定される。
When the searcher searches for a combination of item values of non-structural zero
そこで検索要求部440は、非構造的ゼロ情報451~453の項目値の組み合わせにおける左側の項目値が検索条件で指定された場合には、対応する右側の項目値を追加値とし、論理積によって追加値を検索条件に追加する。例えば図24に示すように職業「助産師」と指定された場合、検索要求部440は性別「女」を追加した「助産師∧女」を検索条件とする検索クエリを生成する。
Therefore, when the item value on the left side in the combination of the item values of the non-structural zero
図26は、検索処理の手順の一例を示すフローチャートである。以下、図26に示す処理をステップ番号に沿って説明する。
[ステップS131]検索要求部440は、ユーザからの検索条件として入力された検索キーワードと、その検索キーワードに対応する項目を、平文検索クエリとして取得する。
FIG. 26 is a flowchart showing an example of the procedure of the search process. Hereinafter, the process shown in FIG. 26 will be described along with the step numbers.
[Step S131] The
[ステップS132]検索要求部440は、非構造的ゼロの項目値が平文検索クエリ内にあるか否かを判断する。例えば検索要求部440は、非構造的ゼロ情報451~453を参照し、非構造的ゼロの項目値の組み合わせにおける左側(十分条件)となる項目値から、平文検索クエリに含まれる項目とその項目値を検索する。検索要求部440は、非構造的ゼロ情報451~453から平文検索クエリに含まれる項目とその項目値が検出できた場合、非構造的ゼロの項目値が平文検索クエリ内にあると判断する。
[Step S132] The
検索要求部440は、非構造的ゼロの項目値が平文検索クエリ内にある場合、処理をステップS133に進める。また検索要求部440は、非構造的ゼロの項目値が平文検索クエリ内にない場合、処理をステップS135に進める。
The
[ステップS133]検索要求部440は、非構造的ゼロの項目値の組み合わせとなるように項目値を追加するか否かをランダムに決定する。例えば検索要求部440は、0以上1以下の乱数を生成し、生成した乱数が予め設定された閾値(0以上1以下の実数)より大きければ、項目値を追加すると判断する。
[Step S133] The
なお検索要求部440は、項目値を追加する確率を示す閾値をランダムに決定してもよい。この場合、検索要求部440は、0以上1以下の乱数を生成し、生成した乱数を閾値とする。次に検索要求部440は、0以上1以下の乱数を生成し、生成した値が閾値より大きければ項目値を追加すると判断する。閾値をランダムに決定することにより、非構造的ゼロの項目値を有する平文検索クエリが多数あったときの項目値の追加を行う平文検索クエリの数がランダムとなる。
The
検索要求部440は、項目値を追加すると判断した場合、処理をステップS134に進める。また検索要求部440は、項目値を追加しないと判断した場合、処理をステップS135に進める。
When the
[ステップS134]検索要求部440は、平文検索クエリに非構造的ゼロとなるように項目値を追加する。例えば検索要求部440は、ステップS132における検索において非構造的ゼロ情報451~453から検出した非構造的ゼロとなる項目値の組み合わせにおける右側の項目値を、平文検索クエリに論理積で追加する。
[Step S134] The
[ステップS135]検索要求部440は、変換集合一覧を生成する。例えば検索要求部440は、データ登録要求部250における項目ごとの変換集合生成処理と同様の処理を行い、変換集合一覧を生成する。検索要求部440によって生成される変換集合一覧は、データ登録要求部250で生成された変換集合一覧と同じものとなる。
[Step S135] The
[ステップS136]検索要求部440は、真のデータのレコード群とダミーレコード群とを含むすべての群の中から、1つの群を確率的に選択する。検索要求部440は、選択したレコード群を対象として検索を行うこととなる。なお、秘匿化DB110内のすべてのダミーレコード群は真のデータのレコード群と値は異なるものの同一の頻度分布を有している。そのためダミーレコード群を検索対象としたとしても、検索結果として得られたダミーレコード内のダミー値を変換集合に従って逆変換することで正しい検索結果を得ることができる。
[Step S136] The
このように平文検索クエリを変換集合に従って変換(攪乱)すれば、どの群を検索しても、平文データ群を検索した際と同一の結果が得られる。そのため、検索クエリの攪乱を行いながらも、検索クエリの数は増加しない。また検索要求部440が検索対象とする群をランダムに決定することで、攻撃者が検索される群の偏りによって秘匿化DBの各レコードの群番号を特定することが抑止される。
By transforming (disturbing) the plaintext search query according to the conversion set in this way, the same result as when searching the plaintext data group can be obtained regardless of which group is searched. Therefore, the number of search queries does not increase while disturbing the search queries. Further, by randomly determining the group to be searched by the
[ステップS137]検索要求部440は、ダミーレコード群を選択したか否かを判断する。検索要求部440は、選択したのがダミーレコード群であれば、処理をステップS138に進める。また検索要求部440は、選択したのが真のデータのレコード群であれば、処理をステップS143に進める。
[Step S137] The
[ステップS138]検索要求部440は、生成した平文検索クエリを、変換集合に基づいて攪乱する。例えば検索要求部440は、平文検索クエリにおいて、検索対象の項目と分割キーワードが指定されている場合、まず検索対象の項目に対応する1以上の変換集合の中から、指定された分割キーワードに対応する要素を含む変換集合を特定する。次に検索要求部440は、選択したダミーレコード群の群番号を取得する。検索要求部440は、検索対象の分割キーワードに対応する変換集合内の要素から群番号の分だけ巡回的に右の要素を、その変換集合から取得する。そして検索要求部440は、平文検索クエリ内の変換対象の分割キーワードを、取得した要素の値(ダミー値)に変換する。
[Step S138] The
[ステップS139]検索要求部440は、ステップS138で変換された後の平文検索クエリを暗号化して秘匿化検索クエリを生成する。検索要求部440は、生成した秘匿化検索クエリをデータ管理サーバ100に送信する。
[Step S139] The
[ステップS140]検索要求部440は、データ管理サーバ100から秘匿化検索の検索結果(秘匿化検索結果)を取得する。検索要求部440は、秘匿化検索結果から、ステップS137で選択されたダミーレコード群に属するダミーレコードのみを抽出する。このとき検索要求部440は、各レコードのフラグ値に基づいて、選択されたダミーレコード群に属するダミーレコードを特定できる。例えば検索要求部440は、選択したダミーレコード群に対応するフラグ値生成関数を用いて、検索結果に含まれるレコードのIDに対応するフラグ値を生成する。検索要求部440は、生成したフラグ値を暗号化する。そして検索要求部440は、該当レコードが、暗号化したフラグ値と同じ値のフラグ値を有する場合、そのレコードを選択した群のレコードであると判定する。
[Step S140] The
[ステップS141]検索要求部440は、秘匿化検索結果に含まれる、抽出したダミーレコード内の項目値(ダミー値)を、予めデータ登録サーバ200から取得した暗号鍵を用いて復号する。
[Step S141] The
[ステップS142]検索要求部440は、ステップS137で選択されたダミーレコード群に属するダミーレコードの復号されたダミー値を変換集合に基づいて逆変換し、平文の真の値が設定された検索結果を復元する。
[Step S142] The
図27は、ダミー値の逆変換の一例を示す図である。例えば検索要求部440は、ダミー値が属する項目に対応する1以上の変換集合の中からダミー値に対応する要素を含む変換集合を特定する。図27の例では、変換集合232bが特定されたものとする。次に検索要求部440は、ステップS137で選択したダミーレコード群の群番号を取得する。検索要求部440は、ダミー値に対応する変換集合232b内の要素から、群番号の分だけ巡回的に左の要素を、その変換集合232bから取得する。
FIG. 27 is a diagram showing an example of the inverse conversion of the dummy value. For example, the
図27に示した逆変換の関係は、図6に示した写像の逆写像となる全単射関係である。選択されたダミーレコード群に属するダミーレコード内のすべてのダミー値に対してこのような逆変換を行うことで、ダミー値に対応する元のキーワード(真の値)が得られる。その後、検索要求部440は、処理をステップS146に進める。
The relationship of the inverse transformation shown in FIG. 27 is a bijective relationship which is the inverse mapping of the mapping shown in FIG. By performing such an inverse conversion on all the dummy values in the dummy records belonging to the selected dummy record group, the original keyword (true value) corresponding to the dummy value can be obtained. After that, the
以下、図26の説明に戻る。
[ステップS143]検索要求部440は、検索条件に真のデータのレコード群に対応するフラグ値を追加した検索クエリを暗号化して、データ管理サーバ100に送信する。
Hereinafter, the description of FIG. 26 will be returned to.
[Step S143] The
[ステップS144]検索要求部440は、データ管理サーバ100から検索結果を取得する。
[ステップS145]検索要求部440は、検索結果に含まれる、真のデータのレコード群のレコード内の項目値を復号する。なお検索要求部440は、ステップS141と同様に、選択した群のレコード(真のデータのレコード)を特定する。
[Step S144] The
[Step S145] The
[ステップS146]検索要求部440は、平文の検索結果を出力する。検索結果は、例えば検索結果表示画面に表示される。
図28は、検索結果表示画面の一例を示す図である。検索結果表示画面70には、例えば患者に関する検索条件と、その検索条件に適合する患者の数が表示されている。また検索結果表示画面70には、検索でヒットしたレコードの平文のデータが表示されている。
[Step S146] The
FIG. 28 is a diagram showing an example of a search result display screen. On the search result display screen 70, for example, a search condition relating to a patient and the number of patients matching the search condition are displayed. Further, on the search result display screen 70, the plain text data of the record hit in the search is displayed.
このような検索により、他の項目値との組み合わせで非構造的ゼロとなるような項目値が検索条件に含まれていた場合に、非構造的ゼロを構成する項目値であることを攪乱することができる。その結果、攻撃者からの頻度分析攻撃に対する安全性が向上する。 By such a search, when the search condition includes an item value that becomes unstructural zero in combination with other item values, it disturbs that the item value constitutes unstructural zero. be able to. As a result, the security against frequency analysis attacks from attackers is improved.
〔その他の実施の形態〕
第2の実施の形態では、病院が有するデータに対する秘匿検索の例を示したが、他の分野でも利用可能である。
[Other embodiments]
In the second embodiment, an example of a confidential search for data possessed by a hospital is shown, but it can also be used in other fields.
また第2の実施の形態ではデータ登録サーバ200,300とデータ管理サーバ100とを分けているが、データ登録サーバ200,300がデータ管理サーバ100の機能を有していてもよい。
Further, in the second embodiment, the
以上、実施の形態を例示したが、実施の形態で示した各部の構成は同様の機能を有する他のものに置換することができる。また、他の任意の構成物や工程が付加されてもよい。さらに、前述した実施の形態のうちの任意の2以上の構成(特徴)を組み合わせたものであってもよい。 Although the embodiment has been illustrated above, the configuration of each part shown in the embodiment can be replaced with another having the same function. Further, any other components or processes may be added. Further, any two or more configurations (features) of the above-described embodiments may be combined.
1 データ登録装置
2 サーバ
2a 秘匿化DB
3 データ利用装置
3a 記憶部
3b 処理部
4a,4b 項目値群
5 秘匿レコード群
6 ダミーレコード群
7 登録データ
8 非構造的ゼロ情報
9 検索クエリ
10 検索結果
11 表示画面
1
3 Data utilization device 3a Storage unit 3b Processing unit 4a, 4b
Claims (6)
複数のレコードが登録され、前記複数のレコードのうちの第1項目の値が第1項目値であるレコードの第2項目の値が第2項目値に限定されるデータベースへの検索条件を取得し、
前記検索条件において前記第1項目の値として前記第1項目値が指定されているとき、前記第2項目の値が前記第2項目値であるという条件を、前記検索条件に論理積によって追加する、
処理を実行させる検索要求プログラム。 On the computer
A search condition for a database in which a plurality of records are registered and the value of the second item of the record in which the value of the first item among the plurality of records is the value of the first item is limited to the value of the second item is acquired. ,
When the first item value is specified as the value of the first item in the search condition, the condition that the value of the second item is the second item value is added to the search condition by logical product. ,
A search request program that executes processing.
請求項1記載の検索要求プログラム。 In the addition of the second item value, when it is detected that the first item value is specified as the value of the first item in the search condition, it is randomly determined whether or not to add the second item value. Then, when it is decided to add, the condition that the value of the second item is the value of the second item is added to the search condition by a logical product.
The search request program according to claim 1.
前記第1項目の前記第1項目値と前記第2項目の前記第2項目値との組み合わせが登録された非構造的ゼロ情報に基づいて、前記検索条件に含まれる検索項目の検索項目値が前記第1項目の前記第1項目値に該当するか否かを判断し、
検索項目の検索項目値が前記第1項目の前記第1項目値に該当する場合に、前記検索条件において前記第1項目の値として前記第1項目値が指定されていると判断し、
前記検索条件において前記第1項目の値として前記第1項目値が指定されているとき、前記非構造的ゼロ情報から前記第2項目の前記第2項目値を取得し、
前記非構造的ゼロ情報から取得した前記第2項目の値が前記第2項目値であるという条件を、前記検索条件に論理積によって追加する、
請求項1または2に記載の検索要求プログラム。 In the addition of the second item value,
Based on the non-structural zero information in which the combination of the first item value of the first item and the second item value of the second item is registered, the search item value of the search item included in the search condition is set. Judging whether or not it corresponds to the first item value of the first item,
When the search item value of the search item corresponds to the first item value of the first item, it is determined that the first item value is specified as the value of the first item in the search condition.
When the first item value is specified as the value of the first item in the search condition, the second item value of the second item is acquired from the non-structural zero information.
The condition that the value of the second item obtained from the non-structural zero information is the value of the second item is added to the search condition by a logical product.
The search request program according to claim 1 or 2.
前記コンピュータに、さらに、
前記データベースを有するサーバに、前記第1項目値と前記第2項目値とのそれぞれを暗号化した暗号文を含む検索クエリを送信し、
前記サーバから、前記データベースに対する前記検索クエリによる検索結果を取得し、
前記検索結果に含まれる秘匿レコードとダミーレコードそれぞれに設定された前記第1フラグまたは前記第2フラグに基づいて、前記検索結果から前記検索条件を満たす前記秘匿レコードを取得する、
処理を実行させる請求項1ないし3のいずれかに記載の検索要求プログラム。 In the database, a plurality of secret records in which the item values are encrypted and a plurality of dummy records having a dummy value ciphertext for leveling the appearance frequency of the item values are registered, and the plurality of secret records contain the first. One flag is set, and the second flag is set for the plurality of dummy records.
On the computer,
A search query containing a ciphertext in which each of the first item value and the second item value is encrypted is sent to the server having the database.
The search result by the search query for the database is acquired from the server, and the search result is obtained.
Based on the first flag or the second flag set in each of the secret record and the dummy record included in the search result, the secret record satisfying the search condition is acquired from the search result.
The search request program according to any one of claims 1 to 3, wherein the process is executed.
複数のレコードが登録され、前記複数のレコードのうちの第1項目の値が第1項目値であるレコードの第2項目の値が第2項目値に限定されるデータベースへの検索条件を取得し、
前記検索条件において前記第1項目の値として前記第1項目値が指定されているとき、前記第2項目の値が前記第2項目値であるという条件を、前記検索条件に論理積によって追加する、
検索要求方法。 The computer
A search condition for a database in which a plurality of records are registered and the value of the second item of the record in which the value of the first item among the plurality of records is the value of the first item is limited to the value of the second item is acquired. ,
When the first item value is specified as the value of the first item in the search condition, the condition that the value of the second item is the second item value is added to the search condition by logical product. ,
Search request method.
第1項目の値が第1項目値であるとき第2項目の値が第2項目値に限定される秘匿対象の秘匿レコードを1つ以上含む秘匿レコード群における前記秘匿レコード内の前記第1項目および前記第2項目それぞれに設定可能な複数の項目値それぞれを、前記第1項目および前記第2項目それぞれに少なくとも1つずつ対応する項目値群のいずれかに分類し、
前記項目値群内の項目値それぞれを同一の前記項目値群内の異なる項目値に全単射する全単射関係に従って前記秘匿レコードそれぞれの前記第1項目および前記第2項目に設定された既存項目値をダミー値に変換し、
前記ダミー値が前記第1項目および前記第2項目に設定された、前記秘匿レコードの数と同数のダミーレコードを有するダミーレコード群を生成し、
前記秘匿レコードに真を示す第1フラグを設定し、
前記ダミーレコードに偽を示す第2フラグを設定し、
前記秘匿レコードに設定された前記既存項目値と前記第1フラグ、および前記ダミーレコードに設定された前記ダミー値と前記第2フラグを暗号化し、
前記秘匿レコード群と前記ダミーレコード群とを前記サーバの前記データベースに格納するデータ登録装置と、
前記データベースへの検索条件を取得し、
前記検索条件において前記第1項目の値として前記第1項目値が指定されているとき、前記第2項目の値が前記第2項目値であるという条件を、前記検索条件に論理積によって追加し、
前記第1項目値と前記第2項目値とのそれぞれを暗号化した暗号文を含む検索クエリを前記サーバに送信し、
前記サーバから、前記データベースに対する前記検索クエリによる検索結果を取得し、
前記検索結果に含まれる前記秘匿レコードと前記ダミーレコードそれぞれに設定された前記第1フラグまたは前記第2フラグに基づいて、前記検索結果から前記検索条件を満たす前記秘匿レコードを取得するデータ利用装置と、
を有する秘密情報管理システム。 A server with a database and
When the value of the first item is the value of the first item, the value of the second item is limited to the value of the second item. And each of the plurality of item values that can be set for each of the second items is classified into one of the item value groups corresponding to at least one for each of the first item and the second item.
Existing set in the first item and the second item of each of the secret records according to the bijective relationship in which each item value in the item value group is bijected to different item values in the same item value group. Convert the item value to a dummy value and
A group of dummy records having the same number of dummy records as the number of secret records whose dummy values are set in the first item and the second item is generated.
Set the first flag indicating true to the secret record, and set it.
A second flag indicating false is set in the dummy record, and the dummy record is set.
The existing item value and the first flag set in the secret record, and the dummy value and the second flag set in the dummy record are encrypted.
A data registration device that stores the secret record group and the dummy record group in the database of the server, and
Acquire the search conditions for the database and
When the first item value is specified as the value of the first item in the search condition, the condition that the value of the second item is the second item value is added to the search condition by logical product. ,
A search query including a ciphertext in which each of the first item value and the second item value is encrypted is sent to the server.
The search result by the search query for the database is acquired from the server, and the search result is obtained.
A data utilization device that acquires the secret record satisfying the search condition from the search result based on the first flag or the second flag set in each of the secret record and the dummy record included in the search result. ,
Confidential information management system with.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2020167407A JP2022059675A (en) | 2020-10-02 | 2020-10-02 | Search request program, search request method, and confidential information management system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2020167407A JP2022059675A (en) | 2020-10-02 | 2020-10-02 | Search request program, search request method, and confidential information management system |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2022059675A true JP2022059675A (en) | 2022-04-14 |
Family
ID=81124737
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2020167407A Withdrawn JP2022059675A (en) | 2020-10-02 | 2020-10-02 | Search request program, search request method, and confidential information management system |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2022059675A (en) |
-
2020
- 2020-10-02 JP JP2020167407A patent/JP2022059675A/en not_active Withdrawn
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Guan et al. | Cross-lingual multi-keyword rank search with semantic extension over encrypted data | |
Chen et al. | A Blockchain‐Based Medical Data Sharing Mechanism with Attribute‐Based Access Control and Privacy Protection | |
Swaminathan et al. | Confidentiality-preserving rank-ordered search | |
US8549031B2 (en) | Range definition method and system | |
Xia et al. | Secure semantic expansion based search over encrypted cloud data supporting similarity ranking | |
Durham et al. | Quantifying the correctness, computational complexity, and security of privacy-preserving string comparators for record linkage | |
AU761149B2 (en) | Anonymously linking a plurality of data records | |
US11062035B2 (en) | Secure document management using blockchain | |
US20050125435A1 (en) | Text generation and searching method and system | |
Al Sibahee et al. | Efficient encrypted image retrieval in IoT-cloud with multi-user authentication | |
Kumar et al. | Novel method for safeguarding personal health record in cloud connection using deep learning models | |
Domadiya et al. | Privacy-preserving association rule mining for horizontally partitioned healthcare data: a case study on the heart diseases | |
WO2019058952A1 (en) | Medical data search system, medical data search method, and medical data search program | |
Chen et al. | Secure search for encrypted personal health records from big data NoSQL databases in cloud | |
Yau et al. | A privacy preserving repository for data integration across data sharing services | |
JP5720536B2 (en) | Information processing method and apparatus for searching for concealed data | |
JP7288194B2 (en) | Confidential Information Management Program, Confidential Information Management Method, and Confidential Information Management System | |
JP2022059675A (en) | Search request program, search request method, and confidential information management system | |
JP7132506B2 (en) | Confidential Information Retrieval System, Confidential Information Retrieval Program, and Confidential Information Retrieval Method | |
JP7469669B2 (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 | |
Kamble et al. | A study on fuzzy keywords search techniques and incorporating certificateless cryptography | |
Hansen et al. | HDI: integrating health data and tools | |
CN117521118B (en) | Medical data searchable encryption privacy protection and system | |
Quantin et al. | Epidemiological and statistical secured matching in France |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20230707 |
|
A761 | Written withdrawal of application |
Free format text: JAPANESE INTERMEDIATE CODE: A761 Effective date: 20240129 |