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 PDF

Info

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
Application number
JP2020167407A
Other languages
Japanese (ja)
Inventor
良多 蒲刈
Ryota Kamakari
利昭 舟久保
Toshiaki Funakubo
一穂 前田
Kazuho Maeda
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2020167407A priority Critical patent/JP2022059675A/en
Publication of JP2022059675A publication Critical patent/JP2022059675A/en
Withdrawn legal-status Critical Current

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

To improve safety against frequency analysis attacks.SOLUTION: A data utilization device 3 acquires search conditions for the database registering multiple records, in which the value of the second item of the record where the value of the first item in multiple records is the first item value is limited to the second item value. When the first item value is specified as the value of the first item in the search condition, the data utilization device 3 adds the condition that the value of the second item is the second item value to the search condition by logical product.SELECTED DRAWING: Figure 1

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.

特開2012-248940号公報Japanese Unexamined Patent Publication No. 2012-248940 国際公開第2013/038698号International Publication No. 2013/038698

暗号データのまま検索を行うことができる秘匿検索技術を用いても、暗号化されたデータの安全性は十分とはいえない。すなわち、暗号データを格納した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の実施の形態に係る秘密情報管理システムの一例を示す図である。It is a figure which shows an example of the confidential information management system which concerns on 1st Embodiment. 秘密情報管理システムの一例を示す図である。It is a figure which shows an example of a confidential information management system. データ管理サーバのハードウェアの一構成例を示す図である。It is a figure which shows one configuration example of the hardware of a data management server. 頻度分析攻撃の一例を示す図である。It is a figure which shows an example of a frequency analysis attack. ダミー要素を用いた変換集合の生成例を示す図である。It is a figure which shows the generation example of the transformation set using a dummy element. ダミー要素を用いた場合の項目値の変換例を示す図である。It is a figure which shows the conversion example of the item value when the dummy element is used. ダミー要素を用いた場合のダミー値の生成例を示す図である。It is a figure which shows the generation example of the dummy value when the dummy element is used. ダミー要素を用いた場合の登録データの一例を示す図である。It is a figure which shows an example of the registration data when the dummy element is used. 暗号文の均一化を説明する図である。It is a figure explaining the equalization of a ciphertext. 適切な群数Gについて説明する図である。It is a figure explaining an appropriate group number G. 頻度攪乱後の頻度分布の一例を示す図である。It is a figure which shows an example of the frequency distribution after frequency disturbance. 構造的ゼロを利用した攻撃方法の一例を示す図である。It is a figure which shows an example of the attack method using structural zero. 検索条件の攪乱の一例を示す図である。It is a figure which shows an example of the disturbance of a search condition. 秘密情報管理システムの機能を示すブロック図である。It is a block diagram which shows the function of a secret information management system. ダミーデータを用いた出現頻度の攪乱処理の一例を示す図である。It is a figure which shows an example of the disturbance processing of the appearance frequency using the dummy data. 平文の患者データのDBの一例を示す図である。It is a figure which shows an example of the DB of the patient data in plain text. 変換情報記憶部に格納される情報の一例を示す図である。It is a figure which shows an example of the information stored in the conversion information storage part. キーワード一覧の一例を示す図である。It is a figure which shows an example of a keyword list. 変換集合一覧の一例を示す図である。It is a figure which shows an example of the conversion set list. 登録データの一例を示す図である。It is a figure which shows an example of the registration data. 秘匿化DBの一例を示す図である。It is a figure which shows an example of a concealment DB. データ登録処理の手順の一例を示すフローチャートである。It is a flowchart which shows an example of the procedure of a data registration process. ダミーデータ生成処理の手順の一例を示すフローチャートである。It is a flowchart which shows an example of the procedure of a dummy data generation process. 検索条件入力画面の一例を示す図である。It is a figure which shows an example of the search condition input screen. 非構造的ゼロ情報記憶部に格納されている非構造的ゼロ情報の一例を示す図である。It is a figure which shows an example of the non-structural zero information stored in the non-structural zero information storage part. 検索処理の手順の一例を示すフローチャートである。It is a flowchart which shows an example of the procedure of a search process. ダミー値の逆変換の一例を示す図である。It is a figure which shows an example of the inverse conversion of a dummy value. 検索結果表示画面の一例を示す図である。It is a figure which shows an example of the search result display screen.

以下、本実施の形態について図面を参照して説明する。なお各実施の形態は、矛盾のない範囲で複数の実施の形態を組み合わせて実施することができる。
〔第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 data registration device 1, a server 2, and a data utilization device 3. Each of the data registration device 1, the server 2, and the data utilization device 3 of each device in the confidential information management method, for example, by executing a program in which the processing procedure in each device for realizing the confidential information management method is described. Processing can be carried out.

データ利用装置3は、秘密情報管理方法によって管理されているデータの検索要求を送信するための検索要求方法を実現するために、記憶部3aと処理部3bとを有する。記憶部3aは、例えばデータ利用装置3が有するメモリ、またはストレージ装置である。処理部3bは、例えばデータ利用装置3が有するプロセッサ、または演算回路である。図示していないが、データ登録装置1とサーバ2も、記憶部と処理部とを有する。例えばサーバ2の記憶部は、秘匿化データベース(DB)2aを記憶する。 The data utilization device 3 has a storage unit 3a and a processing unit 3b in order to realize a search request method for transmitting a data search request managed by the confidential information management method. The storage unit 3a is, for example, a memory or a storage device included in the data utilization device 3. The processing unit 3b is, for example, a processor or an arithmetic circuit included in the data utilization device 3. Although not shown, the data registration device 1 and the server 2 also have a storage unit and a processing unit. For example, the storage unit of the server 2 stores the concealment database (DB) 2a.

データ登録装置1は、秘匿対象の秘匿レコードを1つ以上含む秘匿レコード群5を記憶する。秘匿レコードには複数の項目それぞれの項目値が設定されている。秘匿レコードの複数の項目のうち、第1項目の値が第1項目値であるとき第2項目の値が第2項目値に限定される。例えば第1項目の値が第1項目値であるとき第2項目の値が第2項目値以外となることが社会通念上あり得ない場合に、第1項目の値が第1項目値であるとき第2項目の値が第2項目値に限定される。例えば職業の値が「助産師」の秘匿レコードは、性別の値は「女」に限定される。この場合、「職業」が第1項目、「助産師」が第1項目値、「性別」が第2項目、「女」が第2項目値である。 The data registration device 1 stores a concealed record group 5 including one or more concealed records to be concealed. Item values for each of a plurality of items are set in the secret record. When the value of the first item is the value of the first item among the plurality of items of the secret record, the value of the second item is limited to the value of the second item. For example, when the value of the first item is the value of the first item and it is not possible in the common sense that the value of the second item is other than the value of the second item, the value of the first item is the value of the first item. When the value of the second item is limited to the value of the second item. For example, in a secret record whose occupation value is "midwife", the gender value is limited to "female". In this case, "occupation" is the first item value, "midwife" is the first item value, "gender" is the second item value, and "female" is the second item value.

このように第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 data registration device 1 corresponds to each of a plurality of item values that can be set for each of the first item and the second item in the secret record, at least one item value group 4a, 4b corresponding to each of the first item and the second item. (Step S1). In the example of FIG. 1, the item values that can be set for occupations are "midwife" and "doctor", and the item values that can be set for gender are "male" and "female". The item value group 4a corresponding to the occupation includes "midwife" and "doctor". The item value group 4b corresponding to gender includes "male" and "female". In the example of FIG. 1, one item value group 4a and 4b are provided for each occupation and gender, but when the number of types of item values that can be set for an item is large, two or more for one item. Item value group of may be provided.

次にデータ登録装置1は、ダミーレコード群の生成処理を行う(ステップS2)。例えばデータ登録装置1は、項目値群4a,4b内の項目値それぞれを同一の項目値群4a,4b内の異なる項目値に全単射する全単射関係に従って秘匿レコードそれぞれの第1項目および第2項目に設定された既存項目値をダミー値に変換する。次にデータ登録装置1は、ダミー値が第1項目および第2項目に設定された、秘匿レコードの数と同数のダミーレコードを有するダミーレコード群6を生成する。 Next, the data registration device 1 performs a process of generating a dummy record group (step S2). For example, the data registration device 1 bijects the item values in the item value groups 4a and 4b to different item values in the same item value groups 4a and 4b, respectively, according to the bijective relationship, the first item of each concealed record and The existing item value set in the second item is converted into a dummy value. Next, the data registration device 1 generates a dummy record group 6 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.

図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 data registration device 1 performs flag setting processing for each of the secret record and the dummy record (step S3). For example, the data registration device 1 sets a first flag indicating true in the secret record and sets a second flag indicating false in the dummy record. In the example of FIG. 1, an identifier (ID) is randomly assigned to a secret record and a dummy record, a value twice the ID is set as the flag value for the secret record, and 1 is set to twice the ID for the dummy record. The added value is used as the flag value.

次にデータ登録装置1は、秘匿レコードに設定された既存項目値と第1フラグ、およびダミーレコードに設定されたダミー値と第2フラグを暗号化する(ステップS4)。データ登録装置1は、暗号化された秘匿レコードとダミーレコードとをIDで昇順にソートして登録データ7を生成する。図1の例では登録データ7のID「1,3,5」のレコードが秘匿レコードであり、ID「2,4,6」のレコードがダミーレコードである。 Next, the data registration device 1 encrypts 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 (step S4). The data registration device 1 sorts the encrypted secret record and the dummy record in ascending order by ID to generate the registration data 7. In the example of FIG. 1, the record with the ID “1,3,5” of the registration data 7 is a secret record, and the record with the ID “2,4,6” is a dummy record.

なお図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 data registration device 1 outputs the registration data 7 (step S5). For example, the data registration device 1 stores the concealed record group and the dummy record group in the concealed DB 2a of the server 2.

データ利用装置3の記憶部3aには非構造的ゼロとなる項目値の組み合わせを示す非構造的ゼロ情報8が格納されている。例えば職業「助産師」と性別「女」との組み合わせが非構造的ゼロ情報8である。 The storage unit 3a of the data utilization device 3 stores non-structural zero information 8 indicating a combination of item values that becomes non-structural zero. For example, the combination of occupation "midwife" and gender "female" is non-structural zero information 8.

データ利用装置3の処理部3bは、検索者からの入力に基づいて、秘匿化DB2aへの検索条件を取得する。次に処理部3bは、検索条件において第1項目の値として第1項目値が指定されているとき、第2項目の値が第2項目値であるという条件を、検索条件に論理積によって追加する(ステップS6)。 The processing unit 3b of the data utilization device 3 acquires the search condition for the concealment DB 2a based on the input from the searcher. Next, the processing unit 3b adds a condition that the value of the second item is the second item value to the search condition by logical product when the first item value is specified as the value of the first item in the search condition. (Step S6).

例えば検索条件として職業「助産師」と指定されているものとする。この場合、処理部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 information 8 and determines that the gender value of the secret record of the occupation “midwife” is limited to “female”. That is, the processing unit 3b determines that the first item value "midwife" is specified as the value of the first item "occupation" in the search condition. Therefore, the processing unit 3b adds the second item value "female" of the second item "gender" to the search condition as a logical product.

なお処理部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 search query 9 including a search condition to which the condition that the value of the second item is the second item value is added to the server 2 (step S7).
The server 2 performs a search according to the search query 9 (step S8). For example, the server 2 collates the search item value of the ciphertext in the search query 9 with the item value of the ciphertext of each record in the concealment DB 2a. The server 2 transmits the search result 10 including the record in which the item value matching the search item value is set to the data utilization device 3.

データ利用装置3は、サーバ2から、秘匿化DB2aに対する検索クエリ9による検索結果10を取得する。そしてデータ利用装置3は、検索結果10からダミーレコードを除外した真の検索結果を表示する(ステップS9)。例えばデータ利用装置3は、検索結果10に含まれる秘匿レコードとダミーレコードそれぞれの一の項目に設定された項目値、秘匿レコードに付与された第1フラグ、およびダミーレコードに付与された第2フラグを復号する。次にデータ利用装置3は、第1フラグおよび第2フラグに基づいて、検索結果10からダミーレコードを除去し、検索条件を満たす秘匿レコードを取得する。そしてデータ利用装置3は、真の検索結果を例えば表示画面11に表示する。 The data utilization device 3 acquires the search result 10 by the search query 9 for the concealment DB 2a from the server 2. Then, the data utilization device 3 displays the true search result excluding the dummy record from the search result 10 (step S9). For example, the data utilization device 3 has an item value set for each item of the secret record and the dummy record included in the search result 10, a first flag given to the secret record, and a second flag given to the dummy record. To decrypt. Next, the data utilization device 3 removes the dummy record from the search result 10 based on the first flag and the second flag, and acquires a secret record satisfying the search condition. Then, the data utilization device 3 displays the true search result on, for example, the display screen 11.

このように他の項目値との組み合わせで非構造的ゼロとなるような項目値が検索条件で指定された場合、非構造的ゼロの組み合わせとなるように条件が追加される。例えば検索者が職業「助産師」と入力した場合、職業「助産師」と性別「女」との論理和を検索条件とする検索クエリ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 search query 9 is generated with the logical sum of the occupation "midwife" and the gender "female" as the search condition. As a result, it is possible to prevent the attacker from estimating the search content depending on whether or not the search condition includes the item value of the gender.

例えば秘匿レコード群5の職業には「助産師」または「医師」が設定される。このうち「助産師」の性別は「女」に限定される。このことを知っている検索者は、助産師を職業とする女性の人数を調べる際に、検索条件として職業「助産師」以外に性別の項目値を指定する理由がない。そのため検索条件として職業「助産師」が指定されるとき、性別は指定されない。 For example, "midwife" or "doctor" is set for the occupation of the secret record group 5. Of these, the gender of "midwives" is limited to "female". A searcher who knows this has no reason to specify a gender item value other than the occupation "midwife" as a search condition when examining the number of women whose occupation is a midwife. Therefore, when the occupation "midwife" is specified as a search condition, the gender is not specified.

それに対して医師の性別は「男」と「女」の両方があり得るため、例えば医師を職業とする女性の人数を調べる際には、検索条件として職業「医師」と性別「女」が指定される。また性別に関係無く医師を職業とする人の人数を調べる際には、検索条件として職業「医師」のみが指定される。 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 search queries 9 transmitted from the data utilization device 3, and determines the type of the ciphertext of the item value for the occupation of the search query 9 and the frequency of specifying the item value for each type. You can get statistics. At this time, if the condition addition process of step S6 is not performed, the attacker can estimate the item value of the occupation. For example, if a profession ciphertext has a certain value and no gender item value is specified, the attacker can presume that the ciphertext is a "midwife" ciphertext. That is, the searcher's attempt to find out the number of midwives is leaked to the attacker.

それに対して、ステップ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 search query 9. Will be done. As a result, it is possible to prevent the attacker from presuming the content of the item value specified as the occupation depending on whether or not the item value of the gender is specified.

しかも、処理部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 search query 9. By this, even if the frequency of the case where the item value of gender in the search condition is specified and the case where it is not specified is analyzed, it is possible to estimate what the item value specified as the occupation at that time is. Becomes difficult.

またデータ利用装置3の記憶部3aに非構造的ゼロ情報8を記憶しておくことで、他の項目値との組み合わせで非構造的ゼロとなる項目値が検索条件に含まれているときに、確実に条件の追加処理を行うことができる。 Further, when the non-structural zero information 8 is stored in the storage unit 3a of the data utilization device 3, the search condition includes an item value that becomes non-structural zero in combination with another item value. , It is possible to reliably perform additional processing of conditions.

なおステップ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 concealment DB 2a is leveled by the dummy record. For example, in the example of FIG. 1, a plurality of encrypted concealed records and a plurality of encrypted dummy records having a dummy value for leveling the appearance frequency of item values are registered in the concealment DB2a. The frequency of occurrence is leveled in order to deter frequency analysis attacks from attackers. For example, the data registration device 1 makes the appearance frequency of a predetermined number of item values included in the item value groups 4a and 4b uniform. As a result, even if the attacker analyzes the appearance frequency of a certain ciphertext, there are a predetermined number of ciphertexts with the same appearance frequency, and even if the ciphertext is compared with the appearance frequency of the plaintext item value in the secret record group, the ciphertext is displayed. It is not possible to narrow down which plaintext item value corresponds to less than a predetermined number.

このとき、非構造的ゼロの項目値の組み合わせを構成する項目値を指定した検索クエリ(例えば職業「助産師」のみが指定された検索クエリ)が繰り返し送信されると、ある暗号文に対応する平文の項目値の候補が、所定数未満に絞り込まれる可能性がある。データ利用装置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 data utilization device 3, such a search is performed even if a search condition specifying an item value constituting a combination of non-structural zero item values is input. Can be disturbed. As a result, the deterrent effect of frequency analysis attacks by leveling the current frequency can be maintained.

〔第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 utilization platform 12 is constructed by the cloud. The patient data collection and utilization platform 12 has a data management server 100. The data management server 100 is a computer that manages patient data as a ciphertext. The data management server 100 is connected to the data registration servers 200 and 300 of the hospitals 13 and 14 and the terminal devices 400 and 500 of the pharmaceutical companies 15 and 16 via the network 20.

病院13のデータ登録サーバ200は、病院13で受診した患者の電子カルテなどの患者データを蓄積し、その患者データを暗号化してデータ管理サーバ100に提供するコンピュータである。同様に、病院14のデータ登録サーバ300は、病院14で受診した患者の電子カルテなどの患者データを蓄積し、その患者データを暗号化してデータ管理サーバ100に提供する。 The data registration server 200 of the hospital 13 is a computer that stores patient data such as an electronic medical record of a patient who has been examined at the hospital 13, encrypts the patient data, and provides the patient data to the data management server 100. Similarly, the data registration server 300 of the hospital 14 accumulates patient data such as an electronic medical record of a patient who has been examined at the hospital 14, encrypts the patient data, and provides the patient data to the data management server 100.

製薬企業15の端末装置400は、データ管理サーバ100で管理されている患者データを検索するために、製薬企業15の社員が使用するコンピュータである。製薬企業16の端末装置500は、データ管理サーバ100で管理されている患者データを検索するために、製薬企業16の社員が使用するコンピュータである。 The terminal device 400 of the pharmaceutical company 15 is a computer used by the employees of the pharmaceutical company 15 to search patient data managed by the data management server 100. The terminal device 500 of the pharmaceutical company 16 is a computer used by the employees of the pharmaceutical company 16 to search patient data managed by the data management server 100.

このような秘密情報管理システムは、例えば医療情報を活用した新薬開発の効率化に有用である。例えば、製薬企業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 pharmaceutical companies 15 and 16 conduct a clinical trial, the success rate of the clinical trial can be improved by formulating a plan in consideration of the number of patients with the target disease. Therefore, by centrally managing patient data extracted from the electronic medical records of patients distributed in a large number of hospitals 13 and 14 on the patient data collection and utilization platform 12, it is possible to easily obtain information on patients with the desired disease. Become.

図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 data management server 100 is controlled by the processor 101. A memory 102 and a plurality of peripheral devices are connected to the processor 101 via a bus 109. The processor 101 may be a multiprocessor. The processor 101 is, for example, a CPU (Central Processing Unit), an MPU (Micro Processing Unit), or a DSP (Digital Signal Processor). At least a part of the functions realized by the processor 101 executing a program may be realized by an electronic circuit such as an ASIC (Application Specific Integrated Circuit) or a PLD (Programmable Logic Device).

メモリ102は、データ管理サーバ100の主記憶装置として使用される。メモリ102には、プロセッサ101に実行させるOS(Operating System)のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、メモリ102には、プロセッサ101による処理に利用する各種データが格納される。メモリ102としては、例えばRAM(Random Access Memory)などの揮発性の半導体記憶装置が使用される。 The memory 102 is used as the main storage device of the data management server 100. At least a part of an OS (Operating System) program or an application program to be executed by the processor 101 is temporarily stored in the memory 102. Further, various data used for processing by the processor 101 are stored in the memory 102. As the memory 102, a volatile semiconductor storage device such as a RAM (Random Access Memory) is used.

バス109に接続されている周辺機器としては、ストレージ装置103、グラフィック処理装置104、入力インタフェース105、光学ドライブ装置106、機器接続インタフェース107およびネットワークインタフェース108がある。 Peripheral devices connected to the bus 109 include a storage device 103, a graphic processing device 104, an input interface 105, an optical drive device 106, a device connection interface 107, and a network interface 108.

ストレージ装置103は、内蔵した記録媒体に対して、電気的または磁気的にデータの書き込みおよび読み出しを行う。ストレージ装置103は、コンピュータの補助記憶装置として使用される。ストレージ装置103には、OSのプログラム、アプリケーションプログラム、および各種データが格納される。なお、ストレージ装置103としては、例えばHDD(Hard Disk Drive)やSSD(Solid State Drive)を使用することができる。 The storage device 103 electrically or magnetically writes and reads data to and from the built-in recording medium. The storage device 103 is used as an auxiliary storage device for a computer. The storage device 103 stores an OS program, an application program, and various data. As the storage device 103, for example, an HDD (Hard Disk Drive) or an SSD (Solid State Drive) can be used.

グラフィック処理装置104には、モニタ21が接続されている。グラフィック処理装置104は、プロセッサ101からの命令に従って、画像をモニタ21の画面に表示させる。モニタ21としては、有機EL(Electro Luminescence)を用いた表示装置や液晶表示装置などがある。 A monitor 21 is connected to the graphic processing device 104. The graphic processing device 104 causes the image to be displayed on the screen of the monitor 21 according to the instruction from the processor 101. The monitor 21 includes a display device using an organic EL (Electro Luminescence), a liquid crystal display device, and the like.

入力インタフェース105には、キーボード22とマウス23とが接続されている。入力インタフェース105は、キーボード22やマウス23から送られてくる信号をプロセッサ101に送信する。なお、マウス23は、ポインティングデバイスの一例であり、他のポインティングデバイスを使用することもできる。他のポインティングデバイスとしては、タッチパネル、タブレット、タッチパッド、トラックボールなどがある。 A keyboard 22 and a mouse 23 are connected to the input interface 105. The input interface 105 transmits signals sent from the keyboard 22 and the mouse 23 to the processor 101. The mouse 23 is an example of a pointing device, and other pointing devices can also be used. Other pointing devices include touch panels, tablets, touchpads, trackballs and the like.

光学ドライブ装置106は、レーザ光などを利用して、光ディスク24に記録されたデータの読み取りを行う。光ディスク24は、光の反射によって読み取り可能なようにデータが記録された可搬型の記録媒体である。光ディスク24には、DVD(Digital Versatile Disc)、DVD-RAM、CD-ROM(Compact Disc Read Only Memory)、CD-R(Recordable)/RW(ReWritable)などがある。 The optical drive device 106 reads the data recorded on the optical disk 24 by using a laser beam or the like. The optical disk 24 is a portable recording medium on which data is recorded so that it can be read by reflection of light. The optical disk 24 includes a DVD (Digital Versatile Disc), a DVD-RAM, a CD-ROM (Compact Disc Read Only Memory), a CD-R (Recordable) / RW (ReWritable), and the like.

機器接続インタフェース107は、データ管理サーバ100に周辺機器を接続するための通信インタフェースである。例えば機器接続インタフェース107には、メモリ装置25やメモリリーダライタ26を接続することができる。メモリ装置25は、機器接続インタフェース107との通信機能を搭載した記録媒体である。メモリリーダライタ26は、メモリカード27へのデータの書き込み、またはメモリカード27からのデータの読み出しを行う装置である。メモリカード27は、カード型の記録媒体である。 The device connection interface 107 is a communication interface for connecting peripheral devices to the data management server 100. For example, a memory device 25 or a memory reader / writer 26 can be connected to the device connection interface 107. The memory device 25 is a recording medium equipped with a communication function with the device connection interface 107. The memory reader / writer 26 is a device that writes data to the memory card 27 or reads data from the memory card 27. The memory card 27 is a card-type recording medium.

ネットワークインタフェース108は、ネットワーク20に接続されている。ネットワークインタフェース108は、ネットワーク20を介して、他のコンピュータまたは通信機器との間でデータの送受信を行う。 The network interface 108 is connected to the network 20. The network interface 108 transmits / receives data to / from another computer or communication device via the network 20.

データ管理サーバ100は、以上のようなハードウェア構成によって、第2の実施の形態の処理機能を実現することができる。なおデータ登録サーバ200,300および端末装置400,500も、データ管理サーバ100と同様のハードウェアにより実現することができる。さらに図1に示したデータ登録装置1、サーバ2、およびデータ利用装置3も、データ管理サーバ100と同様のハードウェアにより実現することができる。 The data management server 100 can realize the processing function of the second embodiment by the hardware configuration as described above. The data registration servers 200, 300 and the terminal devices 400, 500 can also be realized by the same hardware as the data management server 100. Further, the data registration device 1, the server 2, and the data utilization device 3 shown in FIG. 1 can also be realized by the same hardware as the data management server 100.

データ管理サーバ100は、例えばコンピュータ読み取り可能な記録媒体に記録されたプログラムを実行することにより、第2の実施の形態の処理機能を実現する。データ管理サーバ100に実行させる処理内容を記述したプログラムは、様々な記録媒体に記録しておくことができる。例えば、データ管理サーバ100に実行させるプログラムをストレージ装置103に格納しておくことができる。プロセッサ101は、ストレージ装置103内のプログラムの少なくとも一部をメモリ102にロードし、プログラムを実行する。またデータ管理サーバ100に実行させるプログラムを、光ディスク24、メモリ装置25、メモリカード27などの可搬型記録媒体に記録しておくこともできる。可搬型記録媒体に格納されたプログラムは、例えばプロセッサ101からの制御により、ストレージ装置103にインストールされた後、実行可能となる。またプロセッサ101が、可搬型記録媒体から直接プログラムを読み出して実行することもできる。 The data management server 100 realizes the processing function of the second embodiment, for example, by executing a program recorded on a computer-readable recording medium. The program describing the processing content to be executed by the data management server 100 can be recorded on various recording media. For example, a program to be executed by the data management server 100 can be stored in the storage device 103. The processor 101 loads at least a part of the program in the storage device 103 into the memory 102 and executes the program. Further, the program to be executed by the data management server 100 can be recorded on a portable recording medium such as an optical disk 24, a memory device 25, and a memory card 27. The program stored in the portable recording medium can be executed after being installed in the storage device 103 by control from the processor 101, for example. The processor 101 can also read and execute the program directly from the portable recording medium.

次に、暗号データを格納する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 attacker 33 includes all the item names ("clinical department", "gender", "age group") used in the original DB31 item and all the keyword candidates (keyword list) that can be stored in each item. Suppose you know.

攻撃者33は、暗号文の出現頻度と、公知の頻度情報を比較して暗号文に対応する平文を類推することができる。例えば秘匿化DB32の2列目には、値が2種類しか登録されていない。そのため攻撃者33は、秘匿化DB32の2列目の項目「性別」に該当すると類推することができる。 The attacker 33 can infer the plaintext corresponding to the ciphertext by comparing the appearance frequency of the ciphertext with the known frequency information. For example, only two types of values are registered in the second column of the concealment DB 32. Therefore, it can be inferred that the attacker 33 corresponds to the item "gender" in the second column of the concealment DB 32.

さらに攻撃者33は、秘匿化DB32の2列目の値「tmuesf」と「uylgm」との出現頻度を比較し、「uylgm」の方が多いことを確認できる。すると攻撃者33は、人口分布を考えると出現頻度が多い方の「uylgm」が、「女」に対応する暗号データであると類推できる。 Further, the attacker 33 compares the appearance frequencies of the values "tumesf" and "uylgm" in the second column of the concealment DB 32, and can confirm that "uylgm" is more common. Then, the attacker 33 can infer that the "uylgm", which appears more frequently in consideration of the population distribution, is the encrypted data corresponding to the "female".

攻撃者33は、複数の項目値の組み合わせによっても内容を類推できる。例えば攻撃者33は、秘匿化DB32の1列目の値「sEfgsr」に対応する2列目の値は「uylgm」のみであることを確認できる。すると攻撃者33は、片方の性別との組み合わせしかない値は、診療科における「婦人科」であると類推することができ、「uylgm」の平文が「女」あることを強く確信できる。 The attacker 33 can also infer the contents by combining a plurality of item values. For example, the attacker 33 can confirm that the value in the second column corresponding to the value “sEfgsr” in the first column of the concealment DB 32 is only “uylgm”. Then, the attacker 33 can infer that the value only in combination with one gender is "gynecology" in the clinical department, and can be strongly convinced that the plaintext of "uylgm" is "female".

また攻撃者33は、秘匿化DB32の1列目の値「:opfyy」に対応する3列目の値は「jr8olt」のみであることを確認できる。すると攻撃者は、残りの3列目は年齢層であり、特定の年齢層との組み合わせしかない診療科は「小児科」であり、対応する年齢層は「児童」であると類推できる。 Further, the attacker 33 can confirm that the value in the third column corresponding to the value ": opfyy" in the first column of the concealment DB 32 is only "jr8olt". Then, the attacker can infer that the remaining third column is the age group, the clinical department that has only a combination with a specific age group is "pediatrics", and the corresponding age group is "children".

なお、図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 data registration servers 200 and 300 generate a dummy record group having the same distribution as the frequency distribution of true data, but each value is converted into another value. Each dummy record in this dummy record group is associated with a record of true data and has a one-to-one correspondence. Then, the data registration servers 200 and 300 convert the item value of the record of true data into another item value and set it as the dummy value of the corresponding dummy record. The one that defines this conversion rule is called a conversion set.

以下に、第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 terminal devices 400 and 500 can distinguish the dummy record.

「変換集合」は、各列(項目)について、真の値を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 data registration servers 200 and 300 generate a conversion set with G arbitrarily selected from possible keywords or dummy values of each item as elements. Then, the data registration servers 200 and 300 generate the conversion set until the possible keywords of each item are included as the elements of any one conversion set.

図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 list 35 of FIG. 5, when k = 3 and G = 4, the item “blood pressure” having three kinds of keywords and the item “blood type” having eight kinds of keywords correspond to each of the two items. The transformation sets 35a, 35b, 35c generated in the above are shown. For the item "blood pressure", only one conversion set 35a including {normal, hypotension, hypertension, D1} is generated. "D1" is a dummy element. For the item "blood type", a conversion set 35b containing {A +, B +, O +, AB +} as an element and a conversion set 35c containing {A-, B-, O-, AB-} as elements. Two have been generated.

変換集合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 data registration servers 200 and 300 generate a dummy value to be set in the dummy record by converting the keyword of the true data record based on the conversion sets 35a, 35b, 35c. For example, the data registration servers 200 and 300 generate one dummy value to be set in the dummy record in the dummy record group for each dummy record group based on one keyword of the true data record.

図6は、ダミー要素を用いた場合の項目値の変換例を示す図である。例えばデータ登録サーバ200,300は、真のデータのレコードについて、項目ごとに登録されているキーワードを参照し、そのキーワードが含まれる変換集合と、そのキーワードに該当する要素baを特定する。aは0以上の整数の要素番号であり、要素baは要素番号aの要素である。そしてデータ登録サーバ200,300は、真のデータに含まれるキーワードの要素baに基づいて、以下の式(1)により、群番号gのダミーレコード群のダミー値ca,gを、変換集合を参照して決定する。
a,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 data registration servers 200 and 300 refer to the keyword registered for each item for the record of true data, and specify the conversion set including the keyword and the element ba corresponding to the keyword. a is an element number of an integer of 0 or more, and element b a is an element of element number a. Then, the data registration servers 200 and 300 convert the dummy values c a and g of the dummy record group of the group number g by the following equation (1) based on the element ba of the keyword included in the true data. To determine by referring to.
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 data registration servers 200 and 300 have three dummy record groups (g = 1, 2, 3) based on the conversion set 35a including the keyword “hypotension”. ) Generate a dummy value to be set for each dummy record. First, the data registration servers 200 and 300 acquire the element number "1" (a = 1) in the conversion set 35a of the elements corresponding to the keyword "hypotension".

データ登録サーバ200,300は、群番号「1」(g=1)のダミーレコード群のダミー値c1,1を生成する場合、まず、mod(1+1,4)=2を計算する。そしてデータ登録サーバ200,300は、計算して得られた値「2」を要素番号とする変換集合35a内の要素b2に対応するキーワード「高血圧」を、群番号「1」のダミーレコード群に設定するダミー値に決定する。 When the data registration servers 200 and 300 generate dummy values c 1,1 of a dummy record group having a group number "1" (g = 1), they first calculate mod (1 + 1,4) = 2. Then, the data registration servers 200 and 300 use the keyword "hypertension" corresponding to the element b 2 in the conversion set 35a having the calculated value "2" as the element number, and the dummy record group of the group number "1". Determine the dummy value to be set in.

データ登録サーバ200,300は、群番号「2」(g=2)のダミーレコード群のダミー値c1,2を生成する場合、まず、mod(1+2,4)=3を計算する。そしてデータ登録サーバ200,300は、計算して得られた値「3」を要素番号とする変換集合35a内の要素b3に対応するダミー要素「D1」を、群番号「2」のダミーレコード群に設定するダミー値に決定する。 When the data registration servers 200 and 300 generate the dummy values c1 and 2 of the dummy record group of the group number "2" (g = 2), they first calculate mod (1 + 2,4) = 3. Then, the data registration servers 200 and 300 set the dummy element "D1" corresponding to the element b 3 in the conversion set 35a having the calculated value "3" as the element number, and the dummy record of the group number "2". Determine the dummy value to be set for the group.

データ登録サーバ200,300は、群番号「3」(g=3)のダミーレコード群のダミー値c1,3を生成する場合、まず、mod(1+3,4)=0を計算する。そしてデータ登録サーバ200,300は、計算して得られた値「0」を要素番号とする変換集合35a内の要素b0に対応するキーワード「正常」を、群番号「3」のダミーレコード群に設定するダミー値に決定する。 When the data registration servers 200 and 300 generate the dummy values c 1, 3 of the dummy record group of the group number "3" (g = 3), first, mod (1 + 3, 4) = 0 is calculated. Then, the data registration servers 200 and 300 use the keyword "normal" corresponding to the element b 0 in the conversion set 35a whose element number is the calculated value "0", and the dummy record group of the group number "3". Determine the dummy value to be set in.

なお、図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 data registration servers 200 and 300 generate dummy values as shown in FIG. 6 for each item value appearing in the true data.
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 data registration servers 200 and 300 allocate the generated dummy values to the dummy records and generate the registration data by encrypting the item values.
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 data registration servers 200 and 300 also disturb the frequency of the ciphertext of the flag value.

例えばデータ登録サーバ200,300は、フラグ値を決定するために、真のデータのレコード群およびダミーレコード群それぞれについて、同一の変数の値に対して異なる値を出力する異なる関数を用意する。そしてデータ登録サーバ200,300は、用意した関数にID列の値を変数xとして入力した値をフラグ値とする。 For example, the data registration servers 200 and 300 prepare different functions that output different values for the same variable value for each of the true data record group and the dummy record group in order to determine the flag value. Then, the data registration servers 200 and 300 use the value input in the ID column value as the variable x in the prepared function as the flag value.

群番号gの群(真のデータのレコード群またはダミーレコード群)のフラグ値生成関数をfg(x)としたとき、図8の例で用いているフラグ値生成関数は以下の通りである。
g(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 terminal devices 400 and 500 issue a search query in which the record group 37a of the true data or any one of the dummy record groups 37b, 37c, 37d is designated as the search target. As a response to the search query, the data management server 100 responds with a record that matches the search condition as a search result. At that time, the data management server 100 includes the ID column and the flag value of the flag column in the search result. The terminal devices 400 and 500 input the ID of the record shown in the search result into each of the flag value generation functions for each group, and encrypt the obtained function value. Then, the terminal devices 400 and 500 compare the ciphertext of the function value of the flag value generation function with the flag value (ciphertext) of the record. The terminal devices 400 and 500 determine that the group corresponding to the flag value generation function whose comparison results match is the group to which the record belongs.

このようにして生成された登録データ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 data registration servers 200 and 300 adjust G so that k or more keywords are included in each conversion set.

例えば図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 list 39, each conversion set contains three or more keywords that can be set for the corresponding items.

図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 terminal devices 400 and 500, the search condition is disturbed so that the candidates for the values (search keywords) included in the search condition are not narrowed down to less than k.
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 terminal devices 400 and 500 refer to the list of non-structural zero information, and if there is an item value uniquely determined with respect to the input search condition item value, The value is automatically added to the search criteria. For example, when the occupation "midwife" is not specified as the search condition, the terminal devices 400 and 500 add the gender "female" to the search condition by logical product, and the search condition is "midwife ∧ woman".

このように検索条件を攪乱することで、攻撃者による検索条件に含まれる検索キーワードの推定を抑止することができる。ただし、職業「助産師」に対して、性別「女」を常に追加したのでは、検索キーワードの推定を抑止する効果として十分ではない。 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 terminal devices 400 and 500 randomly add the item values so as to be the combination of non-structural zeros. This can disturb the search conditions.

図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 search condition 43 with the occupation "midwife" as the search keyword is input. At this time, the terminal devices 400 and 500 refer to the non-structural zero information 44 in which the combination of item values that becomes non-structural zero is shown. For example, the non-structural zero information 44 shows that the combination of occupation "midwife" and gender "female" is non-structural zero.

端末装置400,500は、非構造的ゼロ情報44に基づいて、検索条件43の項目値が、他の項目値と組み合わせたときに非構造的ゼロに該当すると判断する。そして端末装置400,500は、ランダムに検索条件に性別「女」の検索キーワードを追加する。このような項目値の追加処理の結果、職業「助産師」かつ性別「女」の検索条件45または職業「助産師」の検索条件46がランダムに生成される。 Based on the non-structural zero information 44, the terminal devices 400 and 500 determine that the item value of the search condition 43 corresponds to the non-structural zero when combined with other item values. Then, the terminal devices 400 and 500 randomly add a search keyword of gender "female" to the search condition. As a result of such additional processing of the item value, the search condition 45 for the occupation "midwife" and the gender "female" or the search condition 46 for the occupation "midwife" is randomly generated.

このとき端末装置400,500は、攪乱対象の検索条件が一定数入力されたときの、自動的に項目値を追加する検索条件の個数をランダムに決定してもよい。項目値を追加する検索条件の個数は、例えば項目値を追加すると判断する確率によって制御できる。端末装置400,500は、例えば0~1の間で乱数を生成し、その乱数の値を、項目値を追加すると判断する確率とする。そして端末装置400,500は、他の項目値と組み合わせることで非構造的ゼロとなる検索条件を検出した場合、ランダムに決定した確率で、項目値を追加するか否かを決定する。これにより、自動的に項目値を追加する検索条件の個数がランダムとなる。 At this time, the terminal devices 400 and 500 may randomly determine the number of search conditions to which the item value is automatically added when a certain number of search conditions to be disturbed are input. The number of search conditions for which an item value is added can be controlled, for example, by the probability of determining that the item value is to be added. The terminal devices 400 and 500 generate a random number between 0 and 1, for example, and use the value of the random number as the probability of determining that the item value is to be added. Then, when the terminal devices 400 and 500 detect a search condition that becomes non-structural zero when combined with other item values, the terminal devices 400 and 500 determine whether or not to add the item values with a probability determined at random. As a result, the number of search conditions for which item values are automatically added becomes random.

次に、検索条件を攪乱して頻度分析攻撃に対する安全性を向上させた秘密情報管理システムの各装置の機能について説明する。
図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 data management server 100 has a concealment DB 110, a data registration unit 120, a key provision request unit 130, and a search unit 140. The concealment DB 110 is realized by the memory 102 or the storage device 103 of the data management server 100. The data registration unit 120, the key provision request unit 130, and the search unit 140 are realized by the processor 101 included in the data management server 100.

秘匿化DB110は、データ登録サーバ200,300から収集した暗号文の患者データを、暗号文のまま管理するDBである。
データ登録部120は、データ登録サーバ200,300からのデータ登録要求に応じて、暗号文の患者データを秘匿化DB110に登録する。
The concealment DB 110 is a DB that manages the patient data of the ciphertext collected from the data registration servers 200 and 300 as the ciphertext.
The data registration unit 120 registers the patient data of the ciphertext in the concealment DB 110 in response to the data registration request from the data registration servers 200 and 300.

鍵提供依頼部130は、端末装置400,500からの鍵取得要求を受信すると、端末装置400,500への鍵提供依頼を、データ登録サーバ200,300に送信する。
検索部140は、端末装置400,500からの暗号化された検索キーワードを含むデータ検索クエリに応じて、秘匿化DB110に登録された患者データを検索する。この際、検索部140は、患者データと検索キーワードとを暗号文のまま照合し、検索キーワードに合致するレコードを、秘匿化DB110から抽出する。そして検索部140は、抽出したレコードを、検索クエリの送信元の端末装置400,500に送信する。
When the key provision request unit 130 receives the key acquisition request from the terminal devices 400 and 500, the key provision request unit 130 transmits the key provision request to the terminal devices 400 and 500 to the data registration servers 200 and 300.
The search unit 140 searches for patient data registered in the concealment DB 110 in response to a data search query including encrypted search keywords from the terminal devices 400 and 500. At this time, the search unit 140 collates the patient data with the search keyword as a ciphertext, and extracts a record matching the search keyword from the concealment DB 110. Then, the search unit 140 transmits the extracted records to the terminal devices 400, 500 that are the transmission sources of the search query.

データ登録サーバ200は、DB210、鍵記憶部220、変換情報記憶部230、鍵生成部240、データ登録要求部250、および鍵提供部260を有する。DB210、鍵記憶部220、および変換情報記憶部230は、データ登録サーバ200が有するメモリまたはストレージ装置によって実現される。また鍵生成部240、データ登録要求部250、および鍵提供部260は、データ登録サーバ200が有するプロセッサによって実現される。 The data registration server 200 includes a DB 210, a key storage unit 220, a conversion information storage unit 230, a key generation unit 240, a data registration request unit 250, and a key provision unit 260. The DB 210, the key storage unit 220, and the conversion information storage unit 230 are realized by the memory or storage device included in the data registration server 200. Further, the key generation unit 240, the data registration request unit 250, and the key provision unit 260 are realized by the processor included in the data registration server 200.

DB210は、患者データを平文で格納するDBである。
鍵記憶部220は、データ管理サーバ100に登録する患者データの暗号化に使用する暗号鍵を記憶する。暗号鍵は、データ管理サーバ100からアクセスできないように管理される。
The DB 210 is a DB that stores patient data in plain text.
The key storage unit 220 stores an encryption key used for encrypting patient data registered in the data management server 100. The encryption key is managed so as not to be accessible from the data management server 100.

変換情報記憶部230は、真のデータのレコード群に示されるキーワードを、ダミーレコードに登録するダミー値に変換するために使用する情報を記憶する。例えば変換集合一覧などの情報が変換情報記憶部230に格納される。 The conversion information storage unit 230 stores information used for converting the keyword shown in the record group of true data into a dummy value registered in the dummy record. For example, information such as a conversion set list is stored in the conversion information storage unit 230.

鍵生成部240は、暗号鍵を生成する。鍵生成部240は、生成した暗号鍵を鍵記憶部220に格納する。
データ登録要求部250は、データ管理サーバ100への登録対象の患者データの暗号文を含むデータ登録要求を、データ管理サーバ100に送信する。例えばデータ登録要求部250は、まず登録対象の患者データをDB210から取得し、秘匿化DB110のフォーマットに合わせて、患者データを加工する。この際、データ登録要求部250は、送信するデータ登録要求にダミーデータを含める。ダミーデータは複数のダミーレコードを含む。ダミーレコード内にはダミー値が登録されている。データ登録要求部250は、変換情報記憶部230に格納されている情報を用いて、真のデータ内の値をダミー値に変換し、ダミーレコードに登録する。
The key generation unit 240 generates an encryption key. The key generation unit 240 stores the generated encryption key in the key storage unit 220.
The data registration request unit 250 transmits a data registration request including a ciphertext of patient data to be registered in the data management server 100 to the data management server 100. For example, the data registration request unit 250 first acquires the patient data to be registered from the DB 210, and processes the patient data according to the format of the concealed DB 110. At this time, the data registration request unit 250 includes dummy data in the data registration request to be transmitted. Dummy data includes multiple dummy records. A dummy value is registered in the dummy record. The data registration request unit 250 converts the value in the true data into a dummy value by using the information stored in the conversion information storage unit 230, and registers the value in the dummy record.

さらにデータ登録要求部250は、暗号鍵を用いて、秘匿化DB110に登録する項目値ごとに、患者データに含まれる値を暗号化する。そしてデータ登録要求部250は、項目値ごとに暗号化された、暗号文の患者データを含むデータ登録要求を、データ管理サーバ100に送信する。 Further, the data registration request unit 250 uses the encryption key to encrypt the value included in the patient data for each item value registered in the concealment DB 110. Then, the data registration request unit 250 transmits a data registration request including the patient data of the ciphertext encrypted for each item value to the data management server 100.

鍵提供部260は、データ管理サーバ100からの鍵提供依頼に応じて、登録した患者データの利用を許可する製薬企業の端末装置400,500へ、暗号鍵を送信する。なお鍵提供部260は、暗号鍵を、データ管理サーバ100を経由せずに端末装置400,500に送信する。データ管理サーバ100を経由せずに暗号鍵を送信することで、暗号鍵がデータ管理サーバ100から隔離される。その結果、データ管理サーバ100の管理者による、秘匿化DB110内のデータの復号が抑止される。 In response to the key provision request from the data management server 100, the key providing unit 260 transmits the encryption key to the terminal devices 400 and 500 of the pharmaceutical company that permit the use of the registered patient data. The key providing unit 260 transmits the encryption key to the terminal devices 400 and 500 without going through the data management server 100. By transmitting the encryption key without going through the data management server 100, the encryption key is isolated from the data management server 100. As a result, the administrator of the data management server 100 is prevented from decrypting the data in the concealed DB 110.

以上、データ登録サーバ200が有する機能を説明したが、データ登録サーバ300もデータ登録サーバ200と同様の機能を有する。
端末装置400は、鍵記憶部410、変換情報記憶部420、鍵取得部430、検索要求部440、および非構造的ゼロ情報記憶部450を有する。鍵記憶部410、変換情報記憶部420、および非構造的ゼロ情報記憶部450は、端末装置400が有するメモリまたはストレージ装置によって実現される。また鍵取得部430、および検索要求部440は、端末装置400が有するプロセッサによって実現される。
Although the functions of the data registration server 200 have been described above, the data registration server 300 also has the same functions as the data registration server 200.
The terminal device 400 has a key storage unit 410, a conversion information storage unit 420, a key acquisition unit 430, a search request unit 440, and a non-structural zero information storage unit 450. The key storage unit 410, the conversion information storage unit 420, and the non-structural zero information storage unit 450 are realized by the memory or storage device included in the terminal device 400. Further, the key acquisition unit 430 and the search request unit 440 are realized by the processor included in the terminal device 400.

鍵記憶部410は、検索クエリに含める検索キーワードの暗号化に使用する暗号鍵を記憶する。暗号鍵は、データ管理サーバ100からアクセスできないように管理される。
変換情報記憶部420は、検索者が指定した検索条件に示されるキーワードをダミー値に変換するために使用する情報を記憶する。変換情報記憶部420に格納されている情報は、データ登録サーバ200の変換情報記憶部230に格納されている情報と同じである。
The key storage unit 410 stores the encryption key used for encrypting the search keyword to be included in the search query. The encryption key is managed so as not to be accessible from the data management server 100.
The conversion information storage unit 420 stores information used for converting the keyword shown in the search condition specified by the searcher into a dummy value. The information stored in the conversion information storage unit 420 is the same as the information stored in the conversion information storage unit 230 of the data registration server 200.

鍵取得部430は、データ登録サーバ200,300で提供される暗号鍵を取得する。例えば鍵取得部430は、データ管理サーバ100に、鍵取得要求を送信する。するとデータ管理サーバ100の鍵提供依頼部130により、データ登録サーバ200,300に鍵提供依頼が送信される。鍵提供依頼に応じて、例えばデータ登録サーバ200の鍵提供部260が、暗号鍵を端末装置400に送信する。そして鍵取得部430は、端末装置400から送信された暗号鍵を取得する。鍵取得部430は、取得した暗号鍵を、鍵記憶部410に格納する。 The key acquisition unit 430 acquires the encryption key provided by the data registration servers 200 and 300. For example, the key acquisition unit 430 transmits a key acquisition request to the data management server 100. Then, the key provision request unit 130 of the data management server 100 transmits the key provision request to the data registration servers 200 and 300. In response to the key provision request, for example, the key providing unit 260 of the data registration server 200 transmits the encryption key to the terminal device 400. Then, the key acquisition unit 430 acquires the encryption key transmitted from the terminal device 400. The key acquisition unit 430 stores the acquired encryption key in the key storage unit 410.

検索要求部440は、患者データの利用者(検索者)が入力した検索キーワードを取得する。次に検索要求部440は、取得した検索キーワードを、暗号鍵を用いて暗号化し、暗号文の検索キーワードを含む検索クエリをデータ管理サーバ100に送信する。検索要求部440は、データ管理サーバ100から検索結果を受信すると、検索結果の内容(例えば検索キーワードに合致した真のデータのレコード数)を表示する。 The search request unit 440 acquires the search keyword input by the user (searcher) of the patient data. Next, the search request unit 440 encrypts the acquired search keyword using the encryption key, and sends a search query including the search keyword of the ciphertext to the data management server 100. When the search request unit 440 receives the search result from the data management server 100, the search request unit 440 displays the content of the search result (for example, the number of records of true data matching the search keyword).

なお検索要求部440は、ダミーデータを検索対象とする検索クエリを送信することもできる。その場合、検索要求部440は、変換情報記憶部420に格納されている情報を用いて、検索キーワードをダミー値に変換し、暗号化したダミー値を含む検索クエリを送信する。この場合、検索要求部440は、検索結果に示されるレコードから所定のダミーレコードを抽出し、そのダミーレコード内のダミー値を、変換情報記憶部420に格納されている情報を用いて、真のデータに設定されていた値に変換する。そして検索要求部440は、変換後の値を有するレコードの内容を検索結果として表示する。 The search request unit 440 can also send a search query targeting dummy data. In that case, the search request unit 440 converts the search keyword into a dummy value using the information stored in the conversion information storage unit 420, and transmits a search query including the encrypted dummy value. In this case, the search request unit 440 extracts a predetermined dummy record from the record shown in the search result, and uses the information stored in the conversion information storage unit 420 to set the dummy value in the dummy record to be true. Convert to the value set in the data. Then, the search request unit 440 displays the contents of the record having the converted value as the search result.

非構造的ゼロ情報記憶部450は、世の中で非構造的ゼロとなる2以上の項目値の組み合わせを示す情報を記憶する。非構造的ゼロ情報は、例えば、検索条件に含まれる検索キーワードが、他のキーワードと組み合わせたときに非構造的ゼロとなるか否かの判断に使用される。また非構造的ゼロ情報は、検索条件を攪乱するために追加する検索キーワードの決定にも使用される。 The non-structural zero information storage unit 450 stores information indicating a combination of two or more item values that becomes non-structural zero in the world. The non-structural zero information is used, for example, to determine whether or not the search keyword included in the search condition becomes unstructural zero when combined with other keywords. Non-structural zero information is also used to determine additional search keywords to disturb the search criteria.

以上、端末装置400が有する機能を説明したが、端末装置500も端末装置400と同様の機能を有する。
図14に示した機能により、データ管理サーバ100の管理者に対しても患者データと検索クエリの内容を秘匿したまま、データ管理サーバ100において患者データを管理すると共に、製薬企業15,16による患者データの利用を可能とすることができる。なお、図14に示した各要素の機能は、例えば、その要素に対応するプログラムモジュールをコンピュータに実行させることで実現することができる。
Although the functions of the terminal device 400 have been described above, the terminal device 500 also has the same functions as the terminal device 400.
With the function shown in FIG. 14, the patient data is managed by the data management server 100 while the patient data and the contents of the search query are kept secret from the administrator of the data management server 100, and the patients by the pharmaceutical companies 15 and 16 are managed. Data can be made available. The function of each element shown in FIG. 14 can be realized, for example, by causing a computer to execute a program module corresponding to the element.

次に、図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 data registration server 200 transmits the encryption key 51 generated by the key generation unit 240 to the terminal device 400 of the pharmaceutical company (for example, the pharmaceutical company 15) that permits the use of the data 54 (step S11). For example, the key acquisition unit 430 of the terminal device 400 transmits a key acquisition request to the data management server 100. In the data management server 100, the key provision requesting unit 130 requests the data registration server 200 to provide the encryption key 51. Upon receiving the request for providing the encryption key 51, the key providing unit 260 of the data registration server 200 accepts an input indicating permission for the provision of the encryption key 51 by the administrator. When the key providing unit 260 is input to permit the provision of the encryption key 51, the key providing unit 260 acquires the encryption key 51 from the key storage unit 220, and obtains the same encryption key 52 as the acquired encryption key 51 in the data management server 100. Is transmitted to the terminal device 400 without going through. In the terminal device 400, the encryption key 52 received by the key acquisition unit 430 is stored in the key storage unit 410. As a result, the encryption key can be shared between the data registration server 200 and the terminal device 400.

その後、データ登録サーバ200は、DB210内のデータ211に対して、ダミーデータ55を追加する(ステップS12)。例えばデータ登録要求部250は、DB210から取得した真のデータ54に含まれるレコードの数のG-1倍のダミーレコードを、ダミーデータ55として追加する。この際、データ登録要求部250は、追加したダミーレコードの項目値(ダミー値)として、真のデータ54に設定されている項目値を用い、各項目値の出現頻度の偏りを減少させる。さらにデータ登録要求部250は、各レコードに、真のデータ54のレコードなのかダミーレコードなのか、ダミーレコードであればどのダミーレコード群に属するのかを識別するためのフラグ56を付与する。 After that, the data registration server 200 adds dummy data 55 to the data 211 in the DB 210 (step S12). For example, the data registration request unit 250 adds a dummy record G-1 times the number of records included in the true data 54 acquired from the DB 210 as the dummy data 55. At this time, the data registration request unit 250 uses the item value set in the true data 54 as the item value (dummy value) of the added dummy record, and reduces the bias of the appearance frequency of each item value. Further, the data registration request unit 250 assigns a flag 56 to each record to identify whether it is a record of true data 54 or a dummy record, and if it is a dummy record, which dummy record group it belongs to.

データ登録要求部250は、真のデータ54とダミーデータ55との各レコード内の項目値(フラグを含む)を暗号鍵51で暗号化して、登録データ53を生成する(ステップS13)。そしてデータ登録要求部250は、登録データ53を含むデータ登録要求を、データ管理サーバ100に送信する(ステップS14)。データ管理サーバ100では、データ登録部120が、登録データ53を受信し、受信した登録データ53を秘匿化DB110に格納する。 The data registration request unit 250 encrypts the item values (including flags) in each record of the true data 54 and the dummy data 55 with the encryption key 51 to generate the registration data 53 (step S13). Then, the data registration request unit 250 transmits a data registration request including the registration data 53 to the data management server 100 (step S14). In the data management server 100, the data registration unit 120 receives the registration data 53 and stores the received registration data 53 in the concealment DB 110.

製薬企業15の担当者がデータ54を利用する場合、担当者は、端末装置400に検索キーワードを検索条件として入力する。すると検索要求部440は、検索条件に対する非構造的ゼロ攪乱処理を行う(ステップS15)。例えば検索要求部440は、検索条件に示される検索キーワードが他のキーワードと組み合わせたときに非構造的ゼロに該当する場合、確率的に検索キーワードの追加の有無を判断する。そして検索要求部440は、検索キーワードを追加する場合、検索条件に、入力された検索キーワードと組み合わせることで非構造的ゼロとなるキーワードを検索キーワードとして論理積で追加する。 When the person in charge of the pharmaceutical company 15 uses the data 54, the person in charge inputs a search keyword into the terminal device 400 as a search condition. Then, the search request unit 440 performs a non-structural zero disturbance process for the search condition (step S15). For example, when the search keyword shown in the search condition corresponds to non-structural zero when combined with other keywords, the search request unit 440 probabilistically determines whether or not the search keyword is added. Then, when adding a search keyword, the search request unit 440 adds a keyword that becomes non-structural zero by combining with the input search keyword as a search keyword by logical product.

端末装置400は、非構造的ゼロ攪乱処理を行った検索要件内の検索キーワードを暗号鍵52で暗号化して、暗号文の検索キーワードを含む検索クエリ57を生成する(ステップS16)。なお検索要求部440は、いずれかのダミーレコード群を検索対象とする場合、入力された検索キーワードを、ダミーレコード群におけるその検索キーワードに対応するダミー値に変換する。そして検索要求部440は、変化で得られたダミー値を暗号化した値を含む検索クエリ57を生成する。そして検索要求部440は、検索クエリ57をデータ管理サーバ100に送信する(ステップS17)。 The terminal device 400 encrypts the search keyword in the search requirement subjected to the non-structural zero disturbance processing with the encryption key 52, and generates the search query 57 including the search keyword of the ciphertext (step S16). When the search request unit 440 targets any of the dummy record groups, the search request unit 440 converts the input search keyword into a dummy value corresponding to the search keyword in the dummy record group. Then, the search request unit 440 generates a search query 57 including a value obtained by encrypting the dummy value obtained by the change. Then, the search request unit 440 sends the search query 57 to the data management server 100 (step S17).

データ管理サーバ100では、検索部140が、データを秘匿化したままで、登録データ53と検索クエリ57とを照合する(ステップS18)。そして検索部140は、検索クエリ57による検索にヒットしたレコードを、検索結果58として端末装置400に送信する(ステップS19)。検索結果58には、真のデータ54のレコードとダミーデータ55のダミーレコードとが含まれる。 In the data management server 100, the search unit 140 collates the registered data 53 with the search query 57 while keeping the data confidential (step S18). Then, the search unit 140 transmits the record hit by the search by the search query 57 to the terminal device 400 as the search result 58 (step S19). The search result 58 includes a record of true data 54 and a dummy record of dummy data 55.

端末装置400では検索要求部440が検索結果58を受信する。検索要求部440は、真のデータ54を検索対象とした場合には、例えばフラグに基づいて、検索結果58からダミーレコードを破棄する(ステップS20)。そして検索要求部440は、検索結果58内の真のデータ54のレコードのみを含む真の結果59を、モニタなどに表示する。 In the terminal device 400, the search request unit 440 receives the search result 58. When the true data 54 is the search target, the search request unit 440 discards the dummy record from the search result 58, for example, based on the flag (step S20). Then, the search request unit 440 displays the true result 59 including only the record of the true data 54 in the search result 58 on a monitor or the like.

なお検索要求部440は、ダミーレコード群を検索対象とした場合には、例えばフラグに基づいて、検索結果58から検索対象のダミーレコード群に属するダミーレコードを抽出し、その他のレコードを破棄する。検索要求部440は、ダミーレコード内のダミー値を、そのダミー値の生成元であったキーワードに変換する。そして検索要求部440は、元のキーワードに変換された値を含むレコードを真の結果59として表示する。 When the dummy record group is the search target, the search request unit 440 extracts the dummy record belonging to the dummy record group to be searched from the search result 58, for example, based on the flag, and discards the other records. The search request unit 440 converts the dummy value in the dummy record into the keyword from which the dummy value was generated. Then, the search request unit 440 displays the record including the value converted into the original keyword as the true result 59.

このようにダミーデータ55を追加することで、各項目値の頻度攪乱が可能となる。また端末装置400が非構造的ゼロ攪乱処理を行うことで、他の項目値と組み合わせることで非構造的ゼロとなる項目値が検索条件として入力された場合に、非構造的ゼロを構成する項目値を用いた検索であることを攪乱することができる。 By adding the dummy data 55 in this way, it is possible to disturb the frequency of each item value. Further, when the terminal device 400 performs non-structural zero disturbance processing and an item value that becomes non-structural zero when combined with other item values is input as a search condition, an item constituting non-structural zero It can disturb the search by value.

次に、データ登録サーバ200,300が有する平文の患者データのDB210について説明する。
図16は、平文の患者データのDBの一例を示す図である。DB210には、真のデータ211が平文のまま格納されている。真のデータ211には、例えば患者ごとのレコードが、レコードの識別子(ID)に対応付けて登録されている。各レコードには、項目ごとの列に、その項目に対応するキーワードが設定されている。図16の例では、項目として「診療科」、「性別」、「年齢層」、「職業」がある。「診療科」の項目に設定される項目値は、患者が受診した診療科の名称である。「性別」の項目に設定される項目値は、患者の性別である。「年齢層」の項目に設定される項目値は、患者の年齢に対応する年齢層である。「職業」の項目に設定される項目値は、患者の職業である。DB210に登録されている各レコード内の値は、例えば平文の文字コードである。
Next, the plaintext patient data DB 210 possessed by the data registration servers 200 and 300 will be described.
FIG. 16 is a diagram showing an example of a DB of plaintext patient data. The true data 211 is stored in the DB 210 in plain text. In the true data 211, for example, a record for each patient is registered in association with the identifier (ID) of the record. In each record, a keyword corresponding to the item is set in the column for each item. In the example of FIG. 16, there are "clinical department", "gender", "age group", and "occupation" as items. The item value set in the "clinical department" item is the name of the clinical department that the patient visited. The item value set in the "gender" item is the gender of the patient. The item value set in the item of "age group" is the age group corresponding to the age of the patient. The item value set in the "occupation" item is the occupation of the patient. The value in each record registered in the DB 210 is, for example, a plaintext character code.

データ登録要求部250は、患者のレコードをデータ管理サーバ100に登録する場合、そのレコードに設定された値(平文)を、確定的暗号化技術により暗号化する。そして暗号化されたレコードが、データ管理サーバ100の秘匿化DB110に登録される。その際、データ登録要求部250は、変換情報記憶部230を参照して、頻度分析攻撃に対する攪乱のためにダミーデータを生成する。 When the data registration request unit 250 registers the patient record in the data management server 100, the data registration request unit 250 encrypts the value (plain text) set in the record by the deterministic encryption technique. Then, the encrypted record is registered in the concealment DB 110 of the data management server 100. At that time, the data registration request unit 250 refers to the conversion information storage unit 230 and generates dummy data for disturbance against the frequency analysis attack.

図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 information storage unit 230 stores the keyword list 231 and the conversion set list 232. The keyword list 231 is data showing a list of keywords that can be set for each item. The conversion set list 232 is data indicating the contents of the conversion set. The conversion set list 232 is data generated by the data registration request unit 250 based on the keyword list 231.

図18は、キーワード一覧の一例を示す図である。キーワード一覧231には、DB210の項目ごとに、該当項目に設定可能なキーワードのリストが登録されている。図18の例では、「性別」の項目に設定できるキーワードは2個であり、「年齢層」の項目に設定できるキーワードは4個である。「診療科」と「職業」の項目に設定できるキーワードは、図18に示した6個のキーワード以外にも存在する。キーワード一覧231に基づいて変換集合一覧が生成される。 FIG. 18 is a diagram showing an example of a keyword list. In the keyword list 231, a list of keywords that can be set for the corresponding item is registered for each item of the DB 210. In the example of FIG. 18, the number of keywords that can be set in the “gender” item is two, and the number of keywords that can be set in the “age group” item is four. Keywords that can be set in the items of "clinical department" and "occupation" exist in addition to the six keywords shown in FIG. A conversion set list is generated based on the keyword list 231.

図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 conversion set list 232 includes conversion sets 232a to 232g generated for each item. The conversion set list 232 is generated under the conditions of k = 2 and G = 3. Therefore, each of the conversion sets 232a to 232g contains at least k or more elements corresponding to the keywords included in the keyword list. Further, each of the conversion sets 232a to 232g includes G elements including a dummy element.

図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 DB 210 according to the conversion set including the corresponding keyword in the conversion set list 232, a dummy value to be set in the dummy record is generated. Then, registration data including a dummy record in which a dummy value is set is generated.

図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 record group 60a of true data and a dummy record group 60b, 60c. An ID is randomly assigned to each record. A flag is given to each record in the registration data 60. And the keyword (including the flag value) included in the registration data 60 is encrypted. The flag value is generated by the flag value generation function shown in the above equation (2) using a randomly assigned ID.

データ登録要求部250は、登録データ60をIDでソートした後、データ管理サーバ100の秘匿化DB110に登録する。
図21は、秘匿化DBの一例を示す図である。秘匿化DB110に登録されたレコードはIDによってソートされており、真のデータのレコードとダミーレコードが混在して登録されている。
The data registration request unit 250 sorts the registered data 60 by ID and then registers the registered data 60 in the concealment DB 110 of the data management server 100.
FIG. 21 is a diagram showing an example of a concealment DB. The records registered in the concealment DB 110 are sorted by ID, and true data records and dummy records are mixed and registered.

次に、データ登録処理の手順について詳細に説明する。
図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 registration request unit 250 receives a setting input of the number of types of item values k having the same appearance frequency. The larger the value of k, the better the security, but the number of dummy records to be registered also increases. Therefore, the value of k is determined by the administrator of the data registration server 200 in consideration of the degree of security against the frequency analysis attack required for the concealment DB 110 and the number of dummy records allowed for the concealment DB 110.

[ステップS102]データ登録要求部250は、群数Gと項目ごとの変換集合数とを決定する。例えば、キーワード一覧においてj番目の項目に設定可能なキーワードの種類数をXjとすると、j番目の項目について最適な群数Gjは、床関数と天井関数とを用いて以下の式(3)で表される。 [Step S102] The data registration request unit 250 determines the number of groups G and the number of conversion sets for each item. For example, assuming that the number of types of keywords that can be set for the j-th item in the keyword list is X j , the optimum group number G j for the j-th item is the following equation (3) using the floor function and ceiling function. ).

Figure 2022059675000002
Figure 2022059675000002

データ登録要求部250は、すべての項目について求めたXjの値の最大値をGとする。さらにデータ登録要求部250は、群数Gに基づいてすべての項目それぞれの変換集合数を算出する。j番目の項目の最適な変換集合数Mjは以下の式(4)で表される。 The data registration request unit 250 sets G to the maximum value of X j obtained for all items. Further, the data registration request unit 250 calculates the number of conversion sets for each item based on the number of groups G. The optimum number of conversion sets M j for the jth item is expressed by the following equation (4).

Figure 2022059675000003
Figure 2022059675000003

[ステップS103]データ登録要求部250は、すべての項目それぞれについて、ステップS102で決定した変換集合数分の変換集合を生成する。
[ステップS104]データ登録要求部250は、DB210から平文のデータ(真のデータのレコード群)を読み込む。
[Step S103] The data registration request unit 250 generates conversion sets for the number of conversion sets determined in step S102 for each of the items.
[Step S104] The data registration request unit 250 reads plain text data (a record group of true data) from the DB 210.

[ステップS105]データ登録要求部250は、ステップS102で決定した群数G-1個のダミーレコード群を含むダミーデータを生成する。なお、ダミーデータ生成処理の詳細は後述する(図23参照)。 [Step S105] The data registration request unit 250 generates dummy data including a dummy record group having a group number G-1 determined in step S102. The details of the dummy data generation process will be described later (see FIG. 23).

[ステップS106]データ登録要求部250は、真のデータとダミーデータとのレコードそれぞれに、ランダムにIDを付与する。
[ステップS107]データ登録要求部250は、真のデータのレコードとダミーレコードとのそれぞれにフラグを付与する。データ登録要求部250は、各レコードについて、例えば式(2)に示したフラグ値生成関数を用いて算出した値をフラグ値とするフラグを付与する。
[Step S106] The data registration request unit 250 randomly assigns an ID to each of the records of the true data and the dummy data.
[Step S107] The data registration request unit 250 adds a flag to each of the true data record and the dummy record. The data registration request unit 250 assigns a flag to each record, for example, a value calculated by using the flag value generation function shown in the equation (2) as a flag value.

[ステップS108]データ登録要求部250は、各レコードをIDでソートする。
[ステップS109]データ登録要求部250は、ソートされたレコード群を暗号化して、秘匿化DB110に登録する。例えばデータ登録要求部250は、レコード内の項目値ごとに暗号化し、暗号化された値を有するレコード群を、登録データとしてデータ管理サーバ100に送信する。データ管理サーバ100では、データ登録部120が登録データを受信し、受信した登録データを秘匿化DB110に格納する。
[Step S108] The data registration request unit 250 sorts each record by ID.
[Step S109] The data registration request unit 250 encrypts the sorted record group and registers it in the concealment DB 110. For example, the data registration request unit 250 encrypts each item value in the record, and transmits the record group having the encrypted value to the data management server 100 as registration data. In the data management server 100, the data registration unit 120 receives the registration data and stores the received registration data in the concealment DB 110.

次に、ダミーデータ生成処理について詳細に説明する。
図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 registration request unit 250 acquires the group number G calculated in step S102.
[Step S122] The data registration request unit 250 copies G-1 true data and generates a dummy record group of G-1.

[ステップS123]データ登録要求部250は、真のデータの全項目それぞれについて、ステップS124~S126の処理を実行する。
[ステップS124]データ登録要求部250は、全ダミーレコードそれぞれについて、ステップS125の処理を実行する。
[Step S123] The data registration request unit 250 executes the processes of steps S124 to S126 for all the items of true data.
[Step S124] The data registration request unit 250 executes the process of step S125 for each of all dummy records.

[ステップS125]データ登録要求部250は、ダミーレコードの項目値を変換する。例えばデータ登録要求部250は、処理対象の項目に対応する変換集合の中から、ダミーレコードにおける処理対象の項目値(変換対象項目値)を含む変換集合を選択する。次にデータ登録要求部250は、処理対象のダミーレコードの属するダミーレコード群の群番号を取得する。データ登録要求部250は、選択した変換集合内の変換対象項目値に対応する要素から群番号の分だけ巡回的に右の要素を、その変換集合から取得する。そしてデータ登録要求部250は、変換処理対象のダミーレコード内の変換対象項目値を、取得した要素の値(ダミー値)に変換する。 [Step S125] The data registration request unit 250 converts the item value of the dummy record. For example, the data registration request unit 250 selects a conversion set including the item value of the processing target (conversion target item value) in the dummy record from the conversion set corresponding to the item to be processed. Next, the data registration request unit 250 acquires the group number of the dummy record group to which the dummy record to be processed belongs. The data registration request unit 250 cyclically acquires the right element from the conversion set by the group number from the elements corresponding to the conversion target item values in the selected conversion set. Then, the data registration request unit 250 converts the conversion target item value in the dummy record to be converted into the value (dummy value) of the acquired element.

[ステップ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 registration requesting unit 250 advances the processing to step S127.
[Step S127] The data registration request unit 250 ends the dummy data generation process when the processes of steps S124 to S126 are completed for each of the items.

このようにして、真のデータの項目値を、変換集合内の他の要素に置き換えることで、ダミーデータが生成される。そしてデータ登録要求部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 registration request unit 250 encrypts the generated dummy data and the registration data including the flag value and registers them in the concealment DB 110.

秘匿化DB110内のデータを検索しようとする検索者は、例えば端末装置400の検索条件入力画面を介して検索キーワードを端末装置400に入力する。
図24は、検索条件入力画面の一例を示す図である。検索条件入力画面61には、例えば検索変数としてDB210内の各項目の名称が設定されている。そして検索変数に対応付けて、その検索変数の指定値を検索キーワードとして入力するための指定値入力領域62が設けられている。検索者が指定値入力領域62に、検索変数として示されている項目の指定値を入力すると、端末装置400は、入力された指定値を検索キーワードとする検索を行う。
A searcher who wants to search the data in the concealment DB 110 inputs a search keyword into the terminal device 400, for example, via a search condition input screen of the terminal device 400.
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 DB 210 is set as a search variable. Then, a designated value input area 62 for inputting the designated value of the search variable as a search keyword is provided in association with the search variable. When the searcher inputs the specified value of the item shown as the search variable in the specified value input area 62, the terminal device 400 performs a search using the input specified value as a search keyword.

図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 search request unit 440 of the terminal device 400 acquires the occupation "midwife" as a search condition. When the search request unit 440 acquires the search condition, the search request unit 440 refers to the non-structural zero information storage unit 450 and performs non-structural zero disturbance processing on the acquired search condition.

図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 information storage unit 450 stores the non-structural zero information 451 to 453 for each combination of items.

非構造的ゼロ情報451は、職業の項目値と性別の項目値との組み合わせが非構造的ゼロとなる項目値の組み合わせを示す情報である。例えば非構造的ゼロ情報451には、「助産師∧女」、「力士∧男」、「プロ野球選手∧男」、「歌舞伎役者∧男」、「巫女∧女」などの非構造的ゼロの項目値の組み合わせが設定されている。 The non-structural zero information 451 is information indicating a combination of item values in which the combination of the item value of occupation and the item value of gender is non-structural zero. For example, the non-structural zero information 451 includes non-structural zeros such as "midwife ∧ woman", "wrestler ∧ man", "professional baseball player ∧ man", "Kabuki actor ∧ man", and "priestess ∧ woman". The combination of item values of is set.

非構造的ゼロ情報452は、診療科の項目値と性別の項目値との組み合わせが非構造的ゼロとなる項目値の組み合わせを示す情報である。例えば非構造的ゼロ情報452には、「婦人科∧女」の非構造的ゼロの項目値の組み合わせが設定されている。 The non-structural zero information 452 is information indicating a combination of item values in which the combination of the item value of the clinical department and the item value of the gender is non-structural zero. For example, in the non-structural zero information 452, a combination of non-structural zero item values of "gynecology ∧ woman" is set.

非構造的ゼロ情報453は、診療科の項目値と年齢層の項目値との組み合わせが非構造的ゼロとなる項目値の組み合わせを示す情報である。例えば非構造的ゼロ情報453には、「小児科∧児童」の非構造的ゼロの項目値の組み合わせが設定されている。 The non-structural zero information 453 is information indicating a combination of item values in which the combination of the item value of the clinical department and the item value of the age group becomes non-structural zero. For example, in the non-structural zero information 453, a combination of non-structural zero item values of "pediatrics ∧ children" is set.

非構造的ゼロ情報451~453に示される項目値の組み合わせは、左側の項目の項目値が成立するとき、右側の項目の項目値が成立するという関係となる。例えばある患者について職業「助産師」が成立するなら性別「女」が成立するという関係がある。すなわち右側の項目値は左側の項目値の必要条件であり、左側の項目値は右側の項目値の十分条件である。 The combination of the item values shown in the non-structural zero information 451 to 453 has a relation that when the item value of the item on the left side is satisfied, the item value of the item on the right side is satisfied. For example, if the occupation "midwife" is established for a certain patient, the gender "female" is established. That is, the item value on the right side is a necessary condition for the item value on the left side, and the item value on the left side is a sufficient condition for the item value on the right side.

非構造的ゼロ情報451~453に基づいて、構造的ゼロ情報451a~453aを把握することができる。構造的ゼロ情報451a~453aに示される項目値の組み合わせは、左側の項目の項目値が成立するとき、右側の項目の項目値は成立しないという関係となる。例えばある患者について職業「助産師」が成立するなら性別「男」は成立しないという関係がある。 The structural zero information 451a to 453a can be grasped based on the non-structural zero information 451 to 453. The combination of the item values shown in the structural zero information 451a to 453a has a relation that when the item value of the item on the left side is satisfied, the item value of the item on the right side is not satisfied. For example, if the occupation "midwife" is established for a certain patient, the gender "male" is not established.

非構造的ゼロ情報451~453の項目値の組み合わせを検索者が検索する場合、左側に示す十分条件となる項目値を指定すれば足りる。しかし常に左側の項目値のみを指定した検索クエリをデータ管理サーバ100に送信していると、その項目値が非構造的ゼロ情報451~453における十分条件となる項目値のいずれかであると推定される。 When the searcher searches for a combination of item values of non-structural zero information 451 to 453, it is sufficient to specify the item values that are sufficient conditions shown on the left side. However, if a search query that always specifies only the item value on the left side is sent to the data management server 100, it is estimated that the item value is one of the item values that are sufficient conditions in the non-structural zero information 451 to 453. Will be done.

そこで検索要求部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 information 451 to 453 is specified in the search condition, the search request unit 440 sets the corresponding item value on the right side as an additional value and ANDs it. Add additional values to the search criteria. For example, when the occupation "midwife" is specified as shown in FIG. 24, the search request unit 440 generates a search query with the search condition of "midwife ∧ female" to which the gender "female" is added.

図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 search request unit 440 acquires a search keyword input as a search condition from the user and an item corresponding to the search keyword as a plaintext search query.

[ステップS132]検索要求部440は、非構造的ゼロの項目値が平文検索クエリ内にあるか否かを判断する。例えば検索要求部440は、非構造的ゼロ情報451~453を参照し、非構造的ゼロの項目値の組み合わせにおける左側(十分条件)となる項目値から、平文検索クエリに含まれる項目とその項目値を検索する。検索要求部440は、非構造的ゼロ情報451~453から平文検索クエリに含まれる項目とその項目値が検出できた場合、非構造的ゼロの項目値が平文検索クエリ内にあると判断する。 [Step S132] The search request unit 440 determines whether or not the item value of non-structural zero is in the plaintext search query. For example, the search request unit 440 refers to the non-structural zero information 451 to 453, and starts from the item value on the left side (sufficient condition) in the combination of the non-structural zero item values, the item included in the plaintext search query and the item. Search for a value. When the search request unit 440 can detect an item included in the plaintext search query and its item value from the non-structural zero information 451 to 453, the search request unit 440 determines that the item value of the non-structural zero is in the plaintext search query.

検索要求部440は、非構造的ゼロの項目値が平文検索クエリ内にある場合、処理をステップS133に進める。また検索要求部440は、非構造的ゼロの項目値が平文検索クエリ内にない場合、処理をステップS135に進める。 The search request unit 440 advances the process to step S133 when the item value of non-structural zero is in the plaintext search query. Further, the search request unit 440 advances the process to step S135 when the item value of non-structural zero is not in the plaintext search query.

[ステップS133]検索要求部440は、非構造的ゼロの項目値の組み合わせとなるように項目値を追加するか否かをランダムに決定する。例えば検索要求部440は、0以上1以下の乱数を生成し、生成した乱数が予め設定された閾値(0以上1以下の実数)より大きければ、項目値を追加すると判断する。 [Step S133] The search request unit 440 randomly determines whether or not to add the item values so as to be a combination of the item values of non-structural zero. For example, the search request unit 440 generates a random number of 0 or more and 1 or less, and determines that an item value is added if the generated random number is larger than a preset threshold value (a real number of 0 or more and 1 or less).

なお検索要求部440は、項目値を追加する確率を示す閾値をランダムに決定してもよい。この場合、検索要求部440は、0以上1以下の乱数を生成し、生成した乱数を閾値とする。次に検索要求部440は、0以上1以下の乱数を生成し、生成した値が閾値より大きければ項目値を追加すると判断する。閾値をランダムに決定することにより、非構造的ゼロの項目値を有する平文検索クエリが多数あったときの項目値の追加を行う平文検索クエリの数がランダムとなる。 The search request unit 440 may randomly determine a threshold value indicating the probability of adding the item value. In this case, the search request unit 440 generates a random number of 0 or more and 1 or less, and uses the generated random number as a threshold value. Next, the search request unit 440 generates a random number of 0 or more and 1 or less, and determines that the item value is added if the generated value is larger than the threshold value. By randomly determining the threshold value, the number of plaintext search queries that add item values when there are many plaintext search queries having non-structural zero item values becomes random.

検索要求部440は、項目値を追加すると判断した場合、処理をステップS134に進める。また検索要求部440は、項目値を追加しないと判断した場合、処理をステップS135に進める。 When the search request unit 440 determines that the item value is to be added, the process proceeds to step S134. Further, when the search request unit 440 determines that the item value is not added, the process proceeds to step S135.

[ステップS134]検索要求部440は、平文検索クエリに非構造的ゼロとなるように項目値を追加する。例えば検索要求部440は、ステップS132における検索において非構造的ゼロ情報451~453から検出した非構造的ゼロとなる項目値の組み合わせにおける右側の項目値を、平文検索クエリに論理積で追加する。 [Step S134] The search request unit 440 adds an item value to the plaintext search query so as to be non-structural zero. For example, the search request unit 440 adds the item value on the right side of the combination of the item values to be non-structural zero detected from the non-structural zero information 451 to 453 in the search in step S132 to the plaintext search query by logical product.

[ステップS135]検索要求部440は、変換集合一覧を生成する。例えば検索要求部440は、データ登録要求部250における項目ごとの変換集合生成処理と同様の処理を行い、変換集合一覧を生成する。検索要求部440によって生成される変換集合一覧は、データ登録要求部250で生成された変換集合一覧と同じものとなる。 [Step S135] The search request unit 440 generates a conversion set list. For example, the search request unit 440 performs the same processing as the conversion set generation processing for each item in the data registration request unit 250, and generates a conversion set list. The conversion set list generated by the search request unit 440 is the same as the conversion set list generated by the data registration request unit 250.

[ステップS136]検索要求部440は、真のデータのレコード群とダミーレコード群とを含むすべての群の中から、1つの群を確率的に選択する。検索要求部440は、選択したレコード群を対象として検索を行うこととなる。なお、秘匿化DB110内のすべてのダミーレコード群は真のデータのレコード群と値は異なるものの同一の頻度分布を有している。そのためダミーレコード群を検索対象としたとしても、検索結果として得られたダミーレコード内のダミー値を変換集合に従って逆変換することで正しい検索結果を得ることができる。 [Step S136] The search request unit 440 probabilistically selects one group from all the groups including the true data record group and the dummy record group. The search request unit 440 searches for the selected record group. It should be noted that all the dummy record groups in the concealment DB 110 have the same frequency distribution as the true data record group, although the values are different. Therefore, even if the dummy record group is the search target, the correct search result can be obtained by inversely converting the dummy value in the dummy record obtained as the search result according to the conversion set.

このように平文検索クエリを変換集合に従って変換(攪乱)すれば、どの群を検索しても、平文データ群を検索した際と同一の結果が得られる。そのため、検索クエリの攪乱を行いながらも、検索クエリの数は増加しない。また検索要求部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 search request unit 440, it is possible to prevent the attacker from specifying the group number of each record in the concealment DB due to the bias of the searched group.

[ステップS137]検索要求部440は、ダミーレコード群を選択したか否かを判断する。検索要求部440は、選択したのがダミーレコード群であれば、処理をステップS138に進める。また検索要求部440は、選択したのが真のデータのレコード群であれば、処理をステップS143に進める。 [Step S137] The search request unit 440 determines whether or not the dummy record group has been selected. If the search request unit 440 selects a dummy record group, the search request unit 440 advances the process to step S138. Further, if the search request unit 440 selects a record group of true data, the process proceeds to step S143.

[ステップS138]検索要求部440は、生成した平文検索クエリを、変換集合に基づいて攪乱する。例えば検索要求部440は、平文検索クエリにおいて、検索対象の項目と分割キーワードが指定されている場合、まず検索対象の項目に対応する1以上の変換集合の中から、指定された分割キーワードに対応する要素を含む変換集合を特定する。次に検索要求部440は、選択したダミーレコード群の群番号を取得する。検索要求部440は、検索対象の分割キーワードに対応する変換集合内の要素から群番号の分だけ巡回的に右の要素を、その変換集合から取得する。そして検索要求部440は、平文検索クエリ内の変換対象の分割キーワードを、取得した要素の値(ダミー値)に変換する。 [Step S138] The search request unit 440 disturbs the generated plaintext search query based on the conversion set. For example, when the search target item and the split keyword are specified in the plaintext search query, the search request unit 440 first corresponds to the specified split keyword from one or more conversion sets corresponding to the search target item. Identify the transformation set that contains the elements to be. Next, the search request unit 440 acquires the group number of the selected dummy record group. The search request unit 440 periodically acquires the right element from the conversion set by the number of the group number from the elements in the conversion set corresponding to the divided keyword to be searched. Then, the search request unit 440 converts the split keyword to be converted in the plaintext search query into the value (dummy value) of the acquired element.

[ステップS139]検索要求部440は、ステップS138で変換された後の平文検索クエリを暗号化して秘匿化検索クエリを生成する。検索要求部440は、生成した秘匿化検索クエリをデータ管理サーバ100に送信する。 [Step S139] The search request unit 440 encrypts the plaintext search query converted in step S138 to generate a concealed search query. The search request unit 440 sends the generated concealment search query to the data management server 100.

[ステップS140]検索要求部440は、データ管理サーバ100から秘匿化検索の検索結果(秘匿化検索結果)を取得する。検索要求部440は、秘匿化検索結果から、ステップS137で選択されたダミーレコード群に属するダミーレコードのみを抽出する。このとき検索要求部440は、各レコードのフラグ値に基づいて、選択されたダミーレコード群に属するダミーレコードを特定できる。例えば検索要求部440は、選択したダミーレコード群に対応するフラグ値生成関数を用いて、検索結果に含まれるレコードのIDに対応するフラグ値を生成する。検索要求部440は、生成したフラグ値を暗号化する。そして検索要求部440は、該当レコードが、暗号化したフラグ値と同じ値のフラグ値を有する場合、そのレコードを選択した群のレコードであると判定する。 [Step S140] The search request unit 440 acquires the search result (confidential search result) of the concealed search from the data management server 100. The search request unit 440 extracts only the dummy records belonging to the dummy record group selected in step S137 from the concealment search result. At this time, the search request unit 440 can identify the dummy record belonging to the selected dummy record group based on the flag value of each record. For example, the search request unit 440 uses the flag value generation function corresponding to the selected dummy record group to generate the flag value corresponding to the ID of the record included in the search result. The search request unit 440 encrypts the generated flag value. Then, when the corresponding record has a flag value having the same value as the encrypted flag value, the search request unit 440 determines that the record is a record of the selected group.

[ステップS141]検索要求部440は、秘匿化検索結果に含まれる、抽出したダミーレコード内の項目値(ダミー値)を、予めデータ登録サーバ200から取得した暗号鍵を用いて復号する。 [Step S141] The search request unit 440 decodes the item value (dummy value) in the extracted dummy record included in the concealed search result by using the encryption key acquired in advance from the data registration server 200.

[ステップS142]検索要求部440は、ステップS137で選択されたダミーレコード群に属するダミーレコードの復号されたダミー値を変換集合に基づいて逆変換し、平文の真の値が設定された検索結果を復元する。 [Step S142] The search request unit 440 reversely converts the decoded dummy value of the dummy record belonging to the dummy record group selected in step S137 based on the conversion set, and the search result in which the true value of the plain text is set is set. To restore.

図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 search request unit 440 specifies a conversion set including an element corresponding to the dummy value from one or more conversion sets corresponding to the items to which the dummy value belongs. In the example of FIG. 27, it is assumed that the conversion set 232b is specified. Next, the search request unit 440 acquires the group number of the dummy record group selected in step S137. The search request unit 440 periodically acquires the left element from the conversion set 232b by the number of the group number from the elements in the conversion set 232b corresponding to the dummy value.

図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 search request unit 440 advances the process to step S146.

以下、図26の説明に戻る。
[ステップS143]検索要求部440は、検索条件に真のデータのレコード群に対応するフラグ値を追加した検索クエリを暗号化して、データ管理サーバ100に送信する。
Hereinafter, the description of FIG. 26 will be returned to.
[Step S143] The search request unit 440 encrypts a search query in which a flag value corresponding to a record group of true data is added to the search condition, and sends the search query to the data management server 100.

[ステップS144]検索要求部440は、データ管理サーバ100から検索結果を取得する。
[ステップS145]検索要求部440は、検索結果に含まれる、真のデータのレコード群のレコード内の項目値を復号する。なお検索要求部440は、ステップS141と同様に、選択した群のレコード(真のデータのレコード)を特定する。
[Step S144] The search request unit 440 acquires the search result from the data management server 100.
[Step S145] The search request unit 440 decodes the item value in the record of the record group of the true data included in the search result. Note that the search request unit 440 specifies a record (a record of true data) of the selected group, as in step S141.

[ステップS146]検索要求部440は、平文の検索結果を出力する。検索結果は、例えば検索結果表示画面に表示される。
図28は、検索結果表示画面の一例を示す図である。検索結果表示画面70には、例えば患者に関する検索条件と、その検索条件に適合する患者の数が表示されている。また検索結果表示画面70には、検索でヒットしたレコードの平文のデータが表示されている。
[Step S146] The search request unit 440 outputs a plaintext search result. The search result is displayed, for example, on the search result display screen.
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 data registration servers 200 and 300 and the data management server 100 are separated, but the data registration servers 200 and 300 may have the function of the data management server 100.

以上、実施の形態を例示したが、実施の形態で示した各部の構成は同様の機能を有する他のものに置換することができる。また、他の任意の構成物や工程が付加されてもよい。さらに、前述した実施の形態のうちの任意の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 Data registration device 2 Server 2a Concealment DB
3 Data utilization device 3a Storage unit 3b Processing unit 4a, 4b Item value group 5 Confidential record group 6 Dummy record group 7 Registered data 8 Non-structural zero information 9 Search query 10 Search result 11 Display screen

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.
前記第2項目値の追加では、前記検索条件において前記第1項目の値として前記第1項目値が指定されていることを検出すると、前記第2項目値を追加するか否かをランダムに決定し、追加すると決定した場合に前記第2項目の値が前記第2項目値であるという条件を前記検索条件に論理積によって追加する、
請求項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.
前記第2項目値の追加では、
前記第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フラグまたは前記第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.
JP2020167407A 2020-10-02 2020-10-02 Search request program, search request method, and confidential information management system Withdrawn JP2022059675A (en)

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)

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