JP2022059239A - Confidential Information Management Program, Confidential Information Management Method, and Confidential Information Management System - Google Patents

Confidential Information Management Program, Confidential Information Management Method, and Confidential Information Management System Download PDF

Info

Publication number
JP2022059239A
JP2022059239A JP2020166843A JP2020166843A JP2022059239A JP 2022059239 A JP2022059239 A JP 2022059239A JP 2020166843 A JP2020166843 A JP 2020166843A JP 2020166843 A JP2020166843 A JP 2020166843A JP 2022059239 A JP2022059239 A JP 2022059239A
Authority
JP
Japan
Prior art keywords
item
record
dummy
value
data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2020166843A
Other languages
Japanese (ja)
Other versions
JP7469669B2 (en
Inventor
利昭 舟久保
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 JP2020166843A priority Critical patent/JP7469669B2/en
Publication of JP2022059239A publication Critical patent/JP2022059239A/en
Application granted granted Critical
Publication of JP7469669B2 publication Critical patent/JP7469669B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

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

Abstract

To improve the safety of encrypted data against frequency analysis attacks.SOLUTION: A data registration unit 1 generates multiple second item values which are associated with any one of multiple first item values settable to one item in a secret record in a secret record group 5. The data registration unit 1 classifies each multiple second item value into one of the item value groups 4a and 4b. The data registration unit 1 converts the first item values which are set in one item in the secret record into at least one of the second item values corresponding to the first item values. The data registration unit 1 generates dummy record groups 6a, 6b each having a dummy record set to one item converted value of existing second item value set to one item of the secret record according to the bijective relationship of the second item value in groups 4a, 4b. The data registration unit 1 encrypts the item value set in each item of the secret record and the dummy record and outputs the same.SELECTED DRAWING: Figure 1

Description

本発明は、秘密情報管理プログラム、秘密情報管理方法、および秘密情報管理システムに関する。 The present invention relates to a confidential information management program, a confidential information management 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 technique related to concealment of data in a DB, for example, a system for configuring and improving the privacy of a database system has been proposed. We also propose a secret partial match search technology that ensures high security against attacks such as frequency analysis for storage encryption tags and search encryption tags, and has a small data size and a small amount of communication. Has been done.

特表2017-204277号公報Special Table 2017-204277 Gazette 国際公開第2017/126000号International Publication No. 2017/126000

暗号データのまま検索を行うことができる秘匿検索技術を用いても、暗号化されたデータの安全性は十分とはいえない。すなわち、暗号データを格納した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 on encrypted data.

1つの案では、コンピュータに以下の処理を実行させる秘密情報管理プログラムが提供される。
コンピュータは、秘匿対象の秘匿レコードを1つ以上含む秘匿レコード群における秘匿レコード内の一の項目に設定可能な複数の第1項目値の種類数が所定値の整数倍でない場合、複数の第1項目値それぞれに少なくとも1つが対応付けられ、かつそれぞれが複数の第1項目値のいずれか1つに対応づけられた、所定値の整数倍の複数の第2項目値を生成する。次にコンピュータは、複数の第2項目値それぞれを、一の項目に対応する少なくとも1つの項目値群のいずれかに、所定値と同数ずつ分類する。次にコンピュータは、秘匿レコード内の一の項目に設定されている第1項目値を、第1項目値に対応する少なくとも1つの第2項目値のいずれかに変換する。次にコンピュータは、項目値群内の第2項目値それぞれを同一の項目値群内の異なる第2項目値に全単射する全単射関係に従って秘匿レコードそれぞれの一の項目に設定された既存第2項目値をダミー値に変換する。次にコンピュータは、ダミー値が一の項目に設定された、秘匿レコードの数と同数のダミーレコードを有するダミーレコード群を生成する。次にコンピュータは、秘匿レコードに真を示す第1フラグを設定する。次にコンピュータは、ダミーレコードに偽を示す第2フラグを設定する。次にコンピュータは、秘匿レコードとダミーレコードそれぞれの一の項目に設定された項目値、秘匿レコードに付与された第1フラグ、およびダミーレコードに付与された第2フラグを暗号化する。そしてコンピュータは、秘匿レコード群とダミーレコード群とを出力する。
One idea is to provide a confidential information management program that causes a computer to perform the following processes.
When the number of types of a plurality of first item values that can be set for one item in a secret record group including one or more secret records to be hidden is not an integral multiple of a predetermined value, the computer performs a plurality of first items. Generates a plurality of second item values that are integral multiples of a predetermined value, with at least one associated with each item value and each associated with any one of the plurality of first item values. Next, the computer classifies each of the plurality of second item values into at least one item value group corresponding to one item by the same number as the predetermined value. Next, the computer converts the first item value set in one item in the secret record into at least one second item value corresponding to the first item value. Next, the computer sets each of the second item values in the item value group to one item of each secret record according to the bijective relationship of bijection to different second item values in the same item value group. Convert the second item value to a dummy value. Next, the computer generates a dummy record group having the same number of dummy records as the number of secret records in which the dummy value is set to one item. The computer then sets a first flag indicating true for the secret record. The computer then sets a second flag on the dummy record to indicate false. Next, the computer encrypts the item value set for each item of the secret record and the dummy record, the first flag given to the secret record, and the second flag given to the dummy record. Then, the computer outputs a secret record group and a dummy record group.

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 combination frequency when a dummy element is used. ダミー要素を用いない場合の組み合わせ頻度の一例を示す図である。It is a figure which shows an example of the combination frequency when the dummy element is not used. 秘密情報管理システムの機能を示すブロック図である。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 generation method of the conversion set list. 分割キーワード一覧の生成例を示す図である。It is a figure which shows the generation example of the split 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 split keyword list. 分割キーワードを用いた場合の項目値の変換例を示す図である。It is a figure which shows the conversion example of the item value when the division keyword is used. 分割キーワードを用いた場合の登録データの一例を示す図である。It is a figure which shows an example of the registration data when the division keyword is used. 秘匿化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 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.

データ登録装置1は、秘密情報管理方法を実現するために、記憶部1aと処理部1bとを有する。記憶部1aは、例えばデータ登録装置1が有するメモリ、またはストレージ装置である。処理部1bは、例えばデータ登録装置1が有するプロセッサ、または演算回路である。図示していないが、サーバ2とデータ利用装置3も、記憶部と処理部とを有する。例えばサーバ2の記憶部は、秘匿化データベース(DB)2aを記憶する。 The data registration device 1 has a storage unit 1a and a processing unit 1b in order to realize a confidential information management method. The storage unit 1a is, for example, a memory or a storage device included in the data registration device 1. The processing unit 1b is, for example, a processor included in the data registration device 1 or an arithmetic circuit. Although not shown, the server 2 and the data utilization device 3 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の記憶部1aは、秘匿対象の秘匿レコードを1つ以上含む秘匿レコード群5を記憶する。
データ登録装置1の処理部1bは、まず秘匿レコード内の一の項目に設定可能な複数の第1項目値に基づいて複数の第2項目値を生成し、生成した第2項目値を一の項目に対応する項目値群4a,4bに分類する(ステップS1)。例えば処理部1bは、秘匿レコード群5における秘匿レコード内の一の項目に設定可能な複数の第1項目値の種類数が所定値の整数倍かを判断する。所定値は、秘匿化DB2aにおいて出現頻度が同じとなる項目値の種類数として予め設定された値である。図1の例では所定値は「3」である。
The storage unit 1a of the data registration device 1 stores a concealed record group 5 including one or more concealed records to be concealed.
The processing unit 1b of the data registration device 1 first generates a plurality of second item values based on a plurality of first item values that can be set for one item in the secret record, and uses the generated second item value as one. Classify into item value groups 4a and 4b corresponding to the items (step S1). For example, the processing unit 1b determines whether the number of types of a plurality of first item values that can be set for one item in the secret record group 5 in the secret record group 5 is an integral multiple of a predetermined value. The predetermined value is a value preset as the number of types of item values having the same appearance frequency in the concealment DB 2a. In the example of FIG. 1, the predetermined value is "3".

処理部1bは、第1項目値の種類数が所定値の整数倍ではない場合、第1項目値それぞれに少なくとも1つが対応付けられ、かつそれぞれが複数の第1項目値のいずれか1つに対応づけられた、所定値の整数倍の種類の複数の第2項目値を生成する。他方、処理部1bは、第1項目値の種類数が所定値の整数倍の場合、第1項目値それぞれに少なくとも1つが対応付けられ、かつそれぞれが複数の第1項目値のいずれか1つに対応付けられた、第1項目値と同じ種類数の複数の第2項目値を生成する。 When the number of types of the first item value is not an integral multiple of the predetermined value, the processing unit 1b is associated with at least one of the first item values, and each of the first item values is associated with any one of the plurality of first item values. Generates a plurality of associated second item values of a type that is an integral multiple of a predetermined value. On the other hand, in the processing unit 1b, when the number of types of the first item value is an integral multiple of a predetermined value, at least one is associated with each of the first item values, and each is one of a plurality of first item values. Generates a plurality of second item values of the same number of types as the first item value associated with.

図1の例では、項目「性別」の第1項目値の種類数が「2」であり、所定数「3」と異なる。そこで処理部1bは、第2項目値として「男_1」、「男_2」、「女」の3つを生成している。第2項目値「男_1」と「男_2」とは、いずれも第1項目値「男」に対応付けられている。第2項目値「女」は第1項目値「女」に対応付けられている。すなわち第1項目値「男」が2つの第2項目値「男_1」、「男_2」に分割されることで、第2項目値の種類数が所定値「3」の整数倍になっている。 In the example of FIG. 1, the number of types of the first item value of the item “gender” is “2”, which is different from the predetermined number “3”. Therefore, the processing unit 1b generates three second item values, "male_1", "male_1", and "female". The second item value "male _1" and "male _1" are both associated with the first item value "male". The second item value "female" is associated with the first item value "female". That is, by dividing the first item value "male" into two second item values "male_1" and "male_1", the number of types of the second item value becomes an integral multiple of the predetermined value "3". There is.

また項目「血圧」の第1項目値の種類数は「3」であり、所定数「3」と等しい。そこで処理部1bは、第2項目値として「正常」、「低血圧」、「高血圧」の3つを生成している。第2項目値「正常」、「低血圧」、「高血圧」は、それぞれ第1項目値「正常」、「低血圧」、「高血圧」に対応する。 Further, the number of types of the first item value of the item "blood pressure" is "3", which is equal to the predetermined number "3". Therefore, the processing unit 1b generates three second item values, "normal", "hypotension", and "hypertension". The second item values "normal", "hypotension", and "hypertension" correspond to the first item values "normal", "hypotension", and "hypertension", respectively.

このように、第2項目値の種類数は第1項目値の種類数以上となる。ある項目の第1項目値の種類数が「4」であった場合には、その項目について6種類の第2項目値が生成される。 In this way, the number of types of the second item value is equal to or greater than the number of types of the first item value. If the number of types of the first item value of a certain item is "4", six types of second item values are generated for that item.

次に処理部1bは、複数の第2項目値それぞれを、その第2項目値の項目に対応する少なくとも1つの項目値群4a,4bのいずれかに分類する。図1の例では項目「性別」に対応するのも1つの項目値群4aであり、項目「血圧」に対応するのは1つの項目値群4bである。従って性別の第2項目値「男_1」、「女」、「男_2」が項目値群4aに分類され、血圧の第2項目値「正常」、「低血圧」、「高血圧」が項目値群4bに分類される。 Next, the processing unit 1b classifies each of the plurality of second item values into at least one item value group 4a or 4b corresponding to the item of the second item value. In the example of FIG. 1, one item value group 4a corresponds to the item "gender", and one item value group 4b corresponds to the item "blood pressure". Therefore, the second item values of gender "male_1", "female", and "male_2" are classified into the item value group 4a, and the second item values of blood pressure "normal", "hypotension", and "hypertension" are item values. It is classified into group 4b.

さらに処理部1bは、秘匿レコード内の一の項目に設定されている第1項目値を、第1項目値に対応する少なくとも1つの第2項目値のいずれかに変換する(ステップS2)。第1項目値に対応する第2項目値が複数ある場合、処理部1bは例えば変換先の第2項目値をランダムに選択する。図1の例では、第1項目値「男」に対応する第2項目値は「男_1」、「男_2」の2つ存在する。秘匿レコード群5の1行目の秘匿レコードの性別の第1項目値「男」は第2項目値「男_1」に変換され、2行目の秘匿レコードの性別の第1項目値「男」は第2項目値「男_2」に変換されている。このようにして値が第2項目値に変換された秘匿レコード群5aが生成される。秘匿レコード群5aには例えば群番号「0」が付与される。 Further, the processing unit 1b converts the first item value set in one item in the secret record into at least one second item value corresponding to the first item value (step S2). When there are a plurality of second item values corresponding to the first item value, the processing unit 1b randomly selects, for example, the second item value of the conversion destination. In the example of FIG. 1, there are two second item values corresponding to the first item value “male”, “male _1” and “male _1”. The first item value "male" of the gender of the secret record in the first line of the secret record group 5 is converted to the second item value "male_1", and the first item value "male" of the gender of the secret record in the second line. Is converted to the second item value "male_2". In this way, the secret record group 5a whose value is converted into the second item value is generated. For example, the group number "0" is assigned to the secret record group 5a.

処理部1bは、値が第2項目値に変換された秘匿レコード群5aに基づいて、ダミーレコード群6a,6bを生成する(ステップS3)。例えば処理部1bは、項目値群4a,4b内の第2項目値それぞれを同一の項目値群4a,4b内の異なる第2項目値に全単射する全単射関係に従って秘匿レコードそれぞれの一の項目に設定された既存第2項目値をダミー値に変換する。全単射は、写像であって、その写像の終域となる集合の任意の元に対し、その元を写像の像とする元が、写像の定義域となる集合に常にただ一つだけ存在するものである。そして処理部1bは、ダミー値が一の項目に設定された、秘匿レコードの数と同数のダミーレコードを有するダミーレコード群6a,6bを生成する。ダミーレコード群6aには例えば群番号「1」が付与され、ダミーレコード群6bには群番号「2」が付与される。 The processing unit 1b generates dummy record groups 6a and 6b based on the secret record group 5a whose value is converted into the second item value (step S3). For example, the processing unit 1b bijects each of the second item values in the item value groups 4a and 4b to different second item values in the same item value groups 4a and 4b according to the bijective relationship. Converts the existing second item value set in the item of to a dummy value. Bijection is a map, and for any element of the set that is the codomain of the map, there is always only one element that is the image of the map in the set that is the domain of the map. It is something to do. Then, the processing unit 1b generates dummy record groups 6a and 6b having the same number of dummy records as the number of secret records in which the dummy value is set to one item. For example, a group number "1" is assigned to the dummy record group 6a, and a group number "2" is assigned to the dummy record group 6b.

以下、秘匿レコード群5aとダミーレコード群6a,6bとを総称してレコード群と呼ぶ。また秘匿レコードとダミーレコードとを総称してレコードと呼ぶ。
ダミーレコード群6a,6bは、項目値群4a,4b内の第2項目値の数(所定値「3」)より「1」少ない数だけ生成される。ダミーレコード群6a,6bそれぞれの生成には、秘匿レコードの一の項目に設定された既存第2項目値が、ダミーレコード群ごとに異なる第2項目値に変換されるように、異なる全単射関係が使用される。例えば項目値群4a,4bにおいて既存第2項目値に対応する第2項目値から群番号の分だけ右側の第2項目値が、その群番号が付与されたダミーレコード群のダミー値となる。この場合、項目値群4a,4bは循環リスト構造となる。すなわち右端の第2項目値の右側は、左端の第2項目値である。
Hereinafter, the secret record group 5a and the dummy record groups 6a and 6b are collectively referred to as a record group. In addition, secret records and dummy records are collectively called records.
The dummy record groups 6a and 6b are generated by a number "1" less than the number of the second item values (predetermined value "3") in the item value groups 4a and 4b. For the generation of each of the dummy record groups 6a and 6b, different bijections are performed so that the existing second item value set in one item of the secret record is converted into a different second item value for each dummy record group. Relationships are used. For example, in the item value groups 4a and 4b, the second item value on the right side of the second item value corresponding to the existing second item value by the group number becomes the dummy value of the dummy record group to which the group number is assigned. In this case, the item value groups 4a and 4b have a circular list structure. That is, the right side of the second item value at the right end is the second item value at the left end.

例えば群番号「1」のダミーレコード群6aを生成する場合、処理部1bは、秘匿レコード群5aの各秘匿レコードに設定されている第2項目値(既存第2項目値)の項目値群4a,4b内での位置を特定する。そして処理部1bは、特定した位置から1つだけ右側の第2項目値をダミー値として、ダミーレコード群6a内のダミーレコードに設定する。 For example, when generating the dummy record group 6a of the group number "1", the processing unit 1b is the item value group 4a of the second item value (existing second item value) set in each secret record of the secret record group 5a. , Specify the position within 4b. Then, the processing unit 1b sets the second item value on the right side of the specified position as a dummy value in the dummy record in the dummy record group 6a.

また群番号「2」のダミーレコード群6bを生成する場合、処理部1bは、秘匿レコード群5aの各秘匿レコードに設定されている第2項目値(既存第2項目値)の項目値群4a,4b内での位置を特定する。そして処理部1bは、特定した位置から2つだけ右側の第2項目値をダミー値として、ダミーレコード群6a内のダミーレコードに設定する。 When generating the dummy record group 6b of the group number "2", the processing unit 1b is the item value group 4a of the second item value (existing second item value) set in each secret record of the secret record group 5a. , Specify the position within 4b. Then, the processing unit 1b sets the second item value on the right side only two from the specified position as a dummy value in the dummy record in the dummy record group 6a.

このようにして、例えば秘匿レコード群5a内の第2項目値「男_1」に基づいて、群番号「1」のダミーレコード群6aのダミーレコードにはダミー値「女」、群番号「2」のダミーレコード群6bのダミーレコードにはダミー値「男_1」が設定される。すなわちダミーレコード群6a,6bごとに異なる全単射関係に基づいてダミー値が生成されている。 In this way, for example, based on the second item value "male_1" in the secret record group 5a, the dummy record of the dummy record group 6a of the group number "1" has a dummy value "female" and a group number "2". A dummy value "male _1" is set in the dummy record of the dummy record group 6b. That is, dummy values are generated based on the bijective relations that are different for each of the dummy record groups 6a and 6b.

次に処理部1bは、各レコードにフラグを設定する(ステップS4)。例えば処理部1bは、秘匿レコードには真を示す第1フラグを設定し、ダミーレコードには偽を示す第2フラグを設定する。例えば処理部1bは、第2フラグの設定では、1または複数生成されたダミーレコード群ごとに異なり、第1フラグとも異なる値の第2フラグを、ダミーレコード群それぞれに含まれるダミーレコードに設定する。 Next, the processing unit 1b sets a flag for each record (step S4). For example, the processing unit 1b sets a first flag indicating true in the secret record and sets a second flag indicating false in the dummy record. For example, in the setting of the second flag, the processing unit 1b sets a second flag having a value different from that of the first flag, which is different for each one or a plurality of generated dummy records, in the dummy records included in each of the dummy records. ..

処理部1bは、各レコードのフラグの値を生成には、レコード群ごとの関数を用いることができる。例えば処理部1bは、秘匿レコードの識別子を変数とする第1関数の値を、第1フラグとして秘匿レコードに設定する。また処理部1bは、ダミーレコードの識別子を変数とし、同一の変数の値に対して第1関数とは異なり、かつ属するダミーレコード群ごとに異なる値を出力する第2関数の値を、第2フラグとしてダミーレコードに設定する。 The processing unit 1b can use a function for each record group to generate the flag value of each record. For example, the processing unit 1b sets the value of the first function whose variable is the identifier of the secret record in the secret record as the first flag. Further, the processing unit 1b uses the identifier of the dummy record as a variable, and sets the value of the second function, which is different from the first function for the value of the same variable and outputs a different value for each dummy record group to which the dummy record belongs, as the second function. Set to a dummy record as a flag.

フラグの値を生成する関数には、例えばレコードの識別子(ID:Identification)を変数とする関数を用いることができる。レコード群ごとの関数は、関数に含まれる定数に群番号が用いられる。例えば処理部1bは、秘匿レコードとダミーレコードとを合わせた集合において、それぞれを識別するIDを各レコードに付与する。処理部1bは、各レコードについて、IDに所定値「3」を乗算し、属するレコード群の群番号を加算した値をフラグとする。この場合、フラグの値がIDの倍数となっていれば、そのフラグは真を示す第1フラグである。またフラグの値がIDの倍数となっていなければ、そのフラグは偽を示す第2フラグである。 As a function that generates a flag value, for example, a function that uses a record identifier (ID: Identification) as a variable can be used. In the function for each record group, the group number is used for the constant included in the function. For example, the processing unit 1b assigns an ID for identifying each record to each record in a set of a set of a secret record and a dummy record. The processing unit 1b multiplies the ID by a predetermined value "3" for each record, and sets a value obtained by adding the group number of the record group to which the ID belongs as a flag. In this case, if the value of the flag is a multiple of the ID, the flag is the first flag indicating true. If the value of the flag is not a multiple of the ID, the flag is a second flag indicating false.

フラグの生成に群番号を用いた場合、レコードのフラグの値に基づいて、そのレコードが秘匿レコードなのかダミーレコードなのかだけでなく、そのレコードが属するレコード群の群番号を特定できる。例えばレコードのフラグの値を所定値「3」で除算したときの余りが、そのレコードが属するレコード群の群番号である。 When the group number is used to generate the flag, not only whether the record is a secret record or a dummy record but also the group number of the record group to which the record belongs can be specified based on the value of the flag of the record. For example, the remainder when the value of the flag of the record is divided by the predetermined value "3" is the group number of the record group to which the record belongs.

次に処理部1bは、秘匿レコードとダミーレコードそれぞれの一の項目に設定された項目値、秘匿レコードに付与された第1フラグ、およびダミーレコードに付与された第2フラグを暗号化する(ステップS5)。図1の例では処理部1bは、フラグも1つの項目とし、「性別」、「血圧」、「フラグ」それぞれの項目値を、項目値ごとに暗号化している。以下、ある平文を暗号化することで得られる暗号文を「H(平文)」と表記するものとする。各項目値が暗号化されたレコードの集合が、秘匿化DB2aへの登録データ7となる。 Next, the processing unit 1b encrypts the item value set for each item of the secret record and the dummy record, the first flag given to the secret record, and the second flag given to the dummy record (step). S5). In the example of FIG. 1, the processing unit 1b has a flag as one item, and the item values of "gender", "blood pressure", and "flag" are encrypted for each item value. Hereinafter, the ciphertext obtained by encrypting a certain plaintext shall be referred to as "H (plaintext)". The set of records in which each item value is encrypted becomes the registration data 7 in the concealment DB 2a.

そして処理部1bは、秘匿レコード群とダミーレコード群とを含む登録データ7を出力する(ステップS6)。例えば処理部1bは、サーバ2の秘匿化DB2aに登録データ7を格納する。 Then, the processing unit 1b outputs the registration data 7 including the secret record group and the dummy record group (step S6). For example, the processing unit 1b stores the registration data 7 in the concealment DB 2a of the server 2.

このようにして、ダミーレコードの追加によって頻度分析攻撃に対する安全性を向上させた登録データ7が、サーバ2の秘匿化DB2aに格納される。サーバ2は、秘匿化DB2aに格納された登録データ7に対する検索サービスをデータ利用装置3に提供する。 In this way, the registration data 7 whose security against frequency analysis attacks is improved by adding a dummy record is stored in the concealment DB 2a of the server 2. The server 2 provides the data utilization device 3 with a search service for the registered data 7 stored in the concealment DB 2a.

データ利用装置3は、データ登録装置1が生成した項目値群4a,4bの情報、および第1項目値と第2項目値との対応関係を示す情報を有している。例えばデータ利用装置3は、これらの情報をデータ登録装置1から取得する。またデータ利用装置3はデータ登録装置1の処理部1bと同じアルゴリズムで第1項目値に基づく第2項目値の生成および第2項目値の項目値群への分類を行ってもよい。 The data utilization device 3 has information on the item value groups 4a and 4b generated by the data registration device 1 and information indicating the correspondence between the first item value and the second item value. For example, the data utilization device 3 acquires such information from the data registration device 1. Further, the data utilization device 3 may generate the second item value based on the first item value and classify the second item value into the item value group by the same algorithm as the processing unit 1b of the data registration device 1.

データ利用装置3は、検索者から検索条件の入力を受け付ける。検索条件には、例えば秘匿化DB2bの一の項目の検索項目値が示される。図1の例では、検索者は、項目「性別」の項目値「男」を検索条件として入力している。 The data utilization device 3 accepts input of search conditions from the searcher. In the search condition, for example, the search item value of one item of the concealment DB 2b is shown. In the example of FIG. 1, the searcher inputs the item value "male" of the item "gender" as a search condition.

データ利用装置3は、検索条件に応じた検索クエリをサーバ2に送信する(ステップS7)。例えばデータ利用装置3は、検索条件に示される一の項目の検索項目値を、検索項目値と同じ値の第1項目値に対応する1または複数の第2項目値それぞれに変換する。例えば性別「男」は、「男_1」と「男_2」とに変換される。データ利用装置3は、変換により得られた第2項目値それぞれを含む検索クエリ8a,8bを、検索項目値を暗号化してサーバ2に送信する。 The data utilization device 3 transmits a search query according to the search condition to the server 2 (step S7). For example, the data utilization device 3 converts the search item value of one item shown in the search condition into one or a plurality of second item values corresponding to the first item value having the same value as the search item value. For example, the gender "male" is converted into "male_1" and "male_1". The data utilization device 3 encrypts the search item values and transmits the search queries 8a and 8b including the second item values obtained by the conversion to the server 2.

サーバ2では、検索クエリ8a,8bに応じて検索を行う(ステップS8)。例えばサーバ2は、検索クエリ8a,8b内の暗号文のままの検索項目値と、秘匿化DB2a内の各レコードの暗号文の項目値とを照合する。サーバ2は、検索項目値に一致する項目値が設定されたレコードを含む検索結果9をデータ利用装置3に送信する。 The server 2 performs a search according to the search queries 8a and 8b (step S8). For example, the server 2 collates the search item value of the ciphertext in the search queries 8a and 8b with the item value of the ciphertext of each record in the concealment DB 2a. The server 2 transmits the search result 9 including the record in which the item value matching the search item value is set to the data utilization device 3.

データ利用装置3は、サーバ2から、秘匿化DBに対する検索クエリ8a,8bによる検索結果9を取得する。そしてデータ利用装置3は、検索結果9からダミーレコードを除去した真の検索結果を表示する(ステップS9)。例えばデータ利用装置3は、検索結果9に含まれる秘匿レコードとダミーレコードそれぞれの一の項目に設定された項目値、秘匿レコードに付与された第1フラグ、およびダミーレコードに付与された第2フラグを復号する。次にデータ利用装置3は、第1フラグおよび第2フラグに基づいて、検索結果9からダミーレコードを除去し、検索条件を満たす秘匿レコードを取得する。そしてデータ利用装置3は、真の検索結果を例えば表示画面10に表示する。 The data utilization device 3 acquires the search result 9 by the search queries 8a and 8b for the concealment DB from the server 2. Then, the data utilization device 3 displays the true search result obtained by removing the dummy record from the search result 9 (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 9, 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 9 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 10.

このようにして項目に設定可能な項目値の種類数が少ない場合でも、項目値の種類数を所定値まで増やして登録データ7を生成することができる。しかも登録データでは、所定値と同数の種類の項目値の出現頻度が均等化されている。その結果、設定可能な項目値の種類数が少ない項目値を利用した頻度分析攻撃に対する安全性を向上させることが可能となる。 In this way, even when the number of types of item values that can be set for the item is small, the number of types of item values can be increased to a predetermined value to generate the registration data 7. Moreover, in the registered data, the frequency of appearance of the same number of types of item values as the predetermined values is equalized. As a result, it is possible to improve the safety against frequency analysis attacks using item values with a small number of types of item values that can be set.

なおデータ利用装置3は、ダミーレコードを検索する検索クエリを送信し、検索結果に含まれるダミーレコードから、検索条件を満たす秘匿レコードを生成することもできる。その場合、データ利用装置3は、検索条件に示される検索項目値を、データ登録装置1がダミーレコード群6a,6bのいずれかの生成に使用した全単射関係に従い変換する。そしてデータ利用装置3は、変換により得られた変換項目値を含む検索クエリをサーバ2に送信する。 The data utilization device 3 can also send a search query to search for dummy records and generate a secret record satisfying the search condition from the dummy records included in the search result. In that case, the data utilization device 3 converts the search item value shown in the search condition according to the bijective relationship used by the data registration device 1 to generate any of the dummy record groups 6a and 6b. Then, the data utilization device 3 transmits a search query including the conversion item value obtained by the conversion to the server 2.

データ利用装置3は、サーバ2から検索結果を受信すると、第1フラグおよび第2フラグに基づいて、検索結果から変換項目値を有する適合ダミーレコードを抽出する。例えばデータ利用装置3は、検索クエリがダミーレコード群6aの生成に使用された全単射関係で変換した変換項目値を有していた場合、ダミーレコード群6aに対応する第2フラグを有するレコードを適合ダミーレコードとして抽出する。またデータ利用装置3は、検索クエリがダミーレコード群6bの生成に使用された全単射関係で変換した変換項目値を有していた場合、ダミーレコード群6bに対応する第2フラグを有するレコードを適合ダミーレコードとして抽出する。 When the data utilization device 3 receives the search result from the server 2, the data utilization device 3 extracts a matching dummy record having a conversion item value from the search result based on the first flag and the second flag. For example, the data utilization device 3 has a record having a second flag corresponding to the dummy record group 6a when the search query has a conversion item value converted by the bijection relationship used to generate the dummy record group 6a. Is extracted as a conforming dummy record. Further, the data utilization device 3 has a record having a second flag corresponding to the dummy record group 6b when the search query has a conversion item value converted by the bijection relationship used for generating the dummy record group 6b. Is extracted as a conforming dummy record.

そしてデータ利用装置3は、適合ダミーレコードの一の項目の復号された既復号項目値を全単射関係の逆写像関係に従い変換することで、検索条件を満たす秘匿レコードを取得する。 Then, the data utilization device 3 acquires a secret record satisfying the search condition by converting the decoded already decoded item value of one item of the conforming dummy record according to the inverse mapping relationship of the bijection relationship.

ダミーレコードの検索を行い、検索結果に含まれるダミーレコードから秘匿レコードを生成できるようにしたことで、検索条件に含まれる検索項目値が漏洩することを抑止することができる。 By searching for dummy records and making it possible to generate a secret record from the dummy records included in the search results, it is possible to prevent the search item values included in the search conditions from being leaked.

〔第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. As a result, pharmaceutical companies and hospitals will be able to easily grasp surveys for new drug development (number of patients with target diseases, location 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 in 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 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 encryption 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に設定可能なキーワードである。真の値は、第1の実施の形態における第1項目値の一例である。 "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 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. The true value is an example of the first item value in the first embodiment.

「G」は群数であり、ダミーデータの追加によりデータ量が平文データの何倍になるかを示す値でもある。この群数Gは、第1の実施の形態に示した所定値の一例である。「群」は、複数のレコードの集合である。真のデータのレコードの集合が群「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. This group number G is an example of a predetermined value shown in the first embodiment. 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 the dummy 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 appearance frequency are arranged in descending order of the appearance frequency, 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, if a dummy element is used, an attacker who knows the combination frequency between keywords of a plurality of items may be narrowed down to less than k keyword candidates included in the search condition.

例えば図11の「変換集合2」が項目「性別」についての変換集合であるものとする。性別のキーワードが「男」と「女」しかなければ、k=3の場合であっても図11に示すような変換集合を生成することが許容される。このとき複数の項目のキーワード間の組合せ頻度を用いた頻度分析攻撃が行われると、「変換集合1」に含まれるキーワードについても、k未満に絞り込まれる可能性がある。 For example, it is assumed that "transformation set 2" in FIG. 11 is a transformation set for the item "gender". If the only gender keywords are "male" and "female", it is permissible to generate a transformation set as shown in FIG. 11 even when k = 3. At this time, if a frequency analysis attack using the combination frequency between the keywords of a plurality of items is performed, the keywords included in the "conversion set 1" may be narrowed down to less than k.

図12は、ダミー要素を用いた場合の組み合わせ頻度の一例を示す図である。図12にはk=G=3のときの変換集合一覧41とそのときの組み合わせ頻度表42とが示されている。 FIG. 12 is a diagram showing an example of the combination frequency when a dummy element is used. FIG. 12 shows a conversion set list 41 when k = G = 3 and a combination frequency table 42 at that time.

変換集合一覧41には血圧と性別との変換集合が示されている。血圧の変換集合には「正常」、「低血圧」、「高血圧」が含まれる。性別の変換要素には「男」、「女」、およびダミー要素の値「D1」が含まれる。 The conversion set list 41 shows the conversion set between blood pressure and gender. The blood pressure conversion set includes "normal", "hypotension", and "hypertension". Gender conversion elements include "male", "female", and the dummy element value "D1".

組み合わせ頻度表42には、血圧の値と性別の値との組み合わせ(論理積)に対応するレコードの出現頻度が示されている。真の頻度は、真のデータのレコード群内の該当するレコードの数である。攪乱後頻度は、真のデータのレコード群とダミーレコード群とにおける該当するレコードの数である。 The combination frequency table 42 shows the frequency of appearance of records corresponding to the combination (logical product) of the blood pressure value and the gender value. True frequency is the number of applicable records in the set of records for true data. Post-disturbance frequency is the number of applicable records in the true data record set and the dummy record set.

例えば血圧が「正常」で性別が「男」のレコードは、真のデータのレコード群に「n1」件含まれる。血圧が「低血圧」で性別が「女」のレコードは、真のデータのレコード群に「n2」件含まれる。血圧が「高血圧」で性別が「D1」のレコードは、真のデータのレコード群に「n3」(n3=0)件含まれる。血圧が「正常」で性別が「女」のレコードは、真のデータのレコード群に「n4」件含まれる。血圧が「低血圧」で性別が「D1」のレコードは、真のデータのレコード群に「n5」(n5=0)件含まれる。血圧が「高血圧」で性別が「男」のレコードは、真のデータのレコード群に「n6」件含まれる。血圧が「正常」で性別が「D1」のレコードは、真のデータのレコード群に「n7」(n7=0)件含まれる。血圧が「低血圧」で性別が「男」のレコードは、真のデータのレコード群に「n8」件含まれる。血圧が「高血圧」で性別が「女」のレコードは、真のデータのレコード群に「n9」件含まれる。 For example, a record having a blood pressure of "normal" and a gender of "male" is included in the true data record group of "n1". Records with a blood pressure of "hypotension" and a gender of "female" are included in the true data record group of "n2". Records with a blood pressure of "hypertension" and a gender of "D1" are included in the true data record group of "n3" (n3 = 0). Records with a blood pressure of "normal" and a gender of "female" are included in the true data record group of "n4". Records with a blood pressure of "hypotension" and a gender of "D1" are included in the true data record group of "n5" (n5 = 0). Records with a blood pressure of "hypertension" and a gender of "male" are included in the true data record group of "n6". Records with a blood pressure of "normal" and a gender of "D1" are included in the true data record group of "n7" (n7 = 0). Records with a blood pressure of "hypotension" and a gender of "male" are included in the true data record group of "n8". Records with a blood pressure of "hypertension" and a gender of "female" are included in the true data record group of "n9".

ここで群番号「1」(g=1)のダミーレコード群において、血圧のダミー値が「正常」で性別のダミー値が「男」となるレコードは、真のデータのレコード群内の血圧が「低血圧」で性別が「女」のレコードに基づいて生成される。そのため血圧が「正常」で性別が「男」のレコードは、群番号「1」(g=1)のダミーレコード群に「n2」件含まれる。群番号「2」(g=2)のダミーレコード群において、血圧のダミー値が「正常」で性別のダミー値が「男」となるレコードは、真のデータのレコード群内の血圧が「高血圧」で性別が「D1」のレコードに基づいて生成される。そのため血圧が「正常」で性別が「男」のレコードは、群番号「2」(g=2)のダミーレコード群に「n3」(n3=0)件含まれる。 Here, in the dummy record group of the group number "1" (g = 1), the record in which the dummy value of blood pressure is "normal" and the dummy value of gender is "male" is the blood pressure in the record group of true data. Generated based on the record of "hypotension" and gender of "female". Therefore, the records whose blood pressure is "normal" and whose gender is "male" are included in the dummy record group of the group number "1" (g = 1) by "n2". In the dummy record group of group number "2" (g = 2), the record in which the dummy value of blood pressure is "normal" and the dummy value of gender is "male" is that the blood pressure in the record group of true data is "hypertension". Is generated based on the record whose gender is "D1". Therefore, the records whose blood pressure is "normal" and whose gender is "male" are included in the dummy record group of the group number "2" (g = 2) for "n3" (n3 = 0).

すると、秘匿化DBにおける血圧が「正常」で性別が「男」のレコードの出現頻度(攪乱後頻度)は「n1+n2」となる。同様に、秘匿化DBにおける血圧が「低血圧」で性別が「女」のレコードの出現頻度(攪乱後頻度)、秘匿化DBにおける血圧が「高血圧」で性別が「D1」のレコードの出現頻度(攪乱後頻度)も「n1+n2」となる。 Then, the appearance frequency (post-disturbance frequency) of the record in which the blood pressure is "normal" and the gender is "male" in the concealment DB becomes "n1 + n2". Similarly, the frequency of appearance of records with blood pressure of "hypotension" and gender of "female" in the concealment DB (frequency after disturbance), and the frequency of appearance of records of blood pressure of "hypotension" and gender of "D1" in the concealment DB. (Frequency after disturbance) is also "n1 + n2".

図12に示すような攪乱後頻度を有する秘匿化DBに対して検索者が検索を行ったとき、複数の項目値の組合せ頻度を知っている攻撃者は、検索条件に含まれるキーワードの候補をk個(図12の例では3個)未満に絞ることが可能である。例えば検索者が「正常∧男」(∧は論理積)の検索または「低血圧∧女」の検索を行ったものとする。これらのいずれの検索結果も錯乱後頻度は「n1+n2」である。すなわち検索条件にヒットしたレコード数は「n1+n2」である。なお検索者がダミー値を検索することはない。 When a searcher searches for a concealed DB having a post-disturbance frequency as shown in FIG. 12, an attacker who knows the combination frequency of a plurality of item values selects a keyword candidate included in the search condition. It is possible to narrow down to less than k (three in the example of FIG. 12). For example, it is assumed that the searcher searches for "normal ∧ male" (∧ is a logical product) or "hypotension ∧ female". The post-confusion frequency of any of these search results is "n1 + n2". That is, the number of records that hit the search condition is "n1 + n2". The searcher does not search for the dummy value.

ここで、血圧のキーワードと性別のキーワードとの間の組み合わせ頻度(真の頻度)を知っている攻撃者は、攪乱後頻度が「n1+n2」となるのが「正常∧男」または「低血圧∧女」のみであることも知っている。すると攻撃者は、少なくとも「高血圧」が検索対象外であることを認識できる。これは、検索者の関心の対象が血圧については「正常」または「低血圧」であり、「高血圧」は関心の対象外であると、攻撃者に知られてしまうことを意味する。すなわち、検索の対象がk(=3)未満に絞られてしまう。 Here, for an attacker who knows the combination frequency (true frequency) between the blood pressure keyword and the gender keyword, the post-disturbance frequency is "n1 + n2" for "normal ∧ male" or "hypotension ∧". I also know that it is only a woman. The attacker can then recognize that at least "hypertension" is not included in the search. This means that the attacker will know that the searcher's interest is "normal" or "hypotension" for blood pressure and not "hypertension". That is, the search target is narrowed down to less than k (= 3).

このようにキーワードの種類数Xj(「男」、「女」の2種類)が少なく、Xj<kとなる項目値と他の項目値とが組み合わさると、他の項目値も性別列のXj個の値に絞られてしまう。そこで、データ登録サーバ200,300は、ダミー要素を用いずに変換集合を生成する。 In this way, the number of types of keywords X j (two types of "male" and "female") is small, and when the item value with X j <k is combined with other item values, the other item values are also in the gender column. It is narrowed down to X j values of. Therefore, the data registration servers 200 and 300 generate a conversion set without using dummy elements.

図13は、ダミー要素を用いない場合の組み合わせ頻度の一例を示す図である。図13にはk=G=3のときにダミー要素を用いずに生成された変換集合一覧43とそのときの組み合わせ頻度表44とが示されている。 FIG. 13 is a diagram showing an example of the combination frequency when the dummy element is not used. FIG. 13 shows a conversion set list 43 generated without using a dummy element when k = G = 3, and a combination frequency table 44 at that time.

データ登録サーバ200,300は、設定可能なキーワードの種類数Xj<kとなる列の変換集合生成において、設定可能なキーワード数が足りない場合は、設定可能なキーワードの少なくとも一部を別の複数のキーワードに分割してキーワードを追加する。図13の例ではk=3であり、性別の項目に設定可能なキーワード数は「Xj=2」である。そこでデータ登録サーバ200,300は、性別の項目について、「男」を2つに分割し、変換集合を{男_1,女,男_2}とする。 If the number of configurable keywords is insufficient in the conversion set generation of the column in which the number of types of keywords that can be set X j <k, the data registration servers 200 and 300 use another set of at least a part of the configurable keywords. Divide into multiple keywords and add keywords. In the example of FIG. 13, k = 3, and the number of keywords that can be set for the gender item is “X j = 2”. Therefore, the data registration servers 200 and 300 divide the "male" into two for the gender item, and set the conversion set to {male_1, female, male_2}.

データ登録サーバ200,300は、真のデータのレコード内のキーワードが分割対象である場合、分割された値から任意の一つを選んで該当キーワードを分割後の値に変換した後、変換集合を用いた攪乱処理を行う。端末装置400,500は、検索クエリ内のキーワードが分割対象である場合、分割されたキーワードを分割後のそれぞれの値を用いて検索を行う。 When the keyword in the record of true data is the target of division, the data registration servers 200 and 300 select an arbitrary one from the divided values, convert the keyword into the divided value, and then convert the conversion set. Perform the disturbance treatment used. When the keywords in the search query are the division targets, the terminal devices 400 and 500 search the divided keywords using the respective values after the division.

例えば血圧が「正常」で性別が「男_1」のレコードは、真のデータのレコード群に「n1」件含まれる。血圧が「低血圧」で性別が「女」のレコードは、真のデータのレコード群に「n2」件含まれる。血圧が「高血圧」で性別が「男_2」のレコードは、真のデータのレコード群に「n3」件含まれる。血圧が「正常」で性別が「女」のレコードは、真のデータのレコード群に「n4」件含まれる。血圧が「低血圧」で性別が「男_2」のレコードは、真のデータのレコード群に「n5」件含まれる。血圧が「高血圧」で性別が「男_1」のレコードは、真のデータのレコード群に「n6」件含まれる。血圧が「正常」で性別が「男_2」のレコードは、真のデータのレコード群に「n7」件含まれる。血圧が「低血圧」で性別が「男_1」のレコードは、真のデータのレコード群に「n8」件含まれる。血圧が「高血圧」で性別が「女」のレコードは、真のデータのレコード群に「n9」件含まれる。 For example, a record having a blood pressure of "normal" and a gender of "male_1" is included in the true data record group of "n1". Records with a blood pressure of "hypotension" and a gender of "female" are included in the true data record group of "n2". Records with a blood pressure of "hypertension" and a gender of "male_2" are included in the true data record group of "n3". Records with a blood pressure of "normal" and a gender of "female" are included in the true data record group of "n4". Records with a blood pressure of "hypotension" and a gender of "male_2" are included in the true data record group of "n5". Records with a blood pressure of "hypertension" and a gender of "male_1" are included in the true data record group of "n6". Records with a blood pressure of "normal" and a gender of "male_2" are included in the true data record group of "n7". Records with a blood pressure of "hypotension" and a gender of "male_1" are included in the true data record group of "n8". Records with a blood pressure of "hypertension" and a gender of "female" are included in the true data record group of "n9".

この場合、秘匿化DBにおける血圧が「正常」で性別が「男_1」のレコードの出現頻度(攪乱後頻度)は「n1+n2+n3」となる。同様に、秘匿化DBにおける血圧が「低血圧」で性別が「女」のレコードの出現頻度(攪乱後頻度)、秘匿化DBにおける血圧が「高血圧」で性別が「男_2」のレコードの出現頻度(攪乱後頻度)も「n1+n2+n3」となる。 In this case, the appearance frequency (post-disturbance frequency) of the record in which the blood pressure is "normal" and the gender is "male_1" in the concealment DB is "n1 + n2 + n3". Similarly, the frequency of appearance of records with blood pressure of "hypotension" and gender of "female" in the concealment DB (frequency after disturbance), and the appearance of records of blood pressure of "hypotension" and gender of "male_2" in the concealment DB. The frequency (frequency after disturbance) is also "n1 + n2 + n3".

なお分割対象のキーワードを、分割後のいずれのキーワードに変換するのかは、例えばランダムに決定される。そのため真のデータにおける血圧「正常」で性別が「男」のレコードの数(真の頻度)を攻撃者が知っていても、血圧「正常」で性別が「男_1」のレコードの数(真の頻度「n1」)は、攻撃者には正確には分からない。 It should be noted that, for example, it is randomly determined which keyword to be converted into the keyword to be divided. Therefore, even if the attacker knows the number of records (true frequency) of blood pressure "normal" and gender "male" in the true data, the number of records of blood pressure "normal" and gender "male _1" (true). Frequency "n1") is not exactly known to the attacker.

攻撃者が真のデータにおける血圧「正常」で性別が「男_1」のレコードの数(真の頻度「n1」)を推定できたとしても、検索者が検索した検索クエリの血圧のキーワードが何であるのかは、攻撃者はk未満には絞り込むことができない。例えば検索者が「正常∧男」の検索を行う場合、端末装置400,500は、「正常∧男_1」と「正常∧男_2」との検索クエリを用いて検索を行う。これらの検索結果の論理和を採れば、「正常∧男」の検索結果を得ることができる。「正常∧男_1」の検索結果に含まれるレコード数は「n1+n2+n3」である。攪乱後頻度が「n1+n2+n3」となるのは、「正常∧男_1」、「低血圧∧女」、「高血圧∧男_2」のいずれかである。すると検索クエリに含まれていた血圧のキーワードは、「正常」、「低血圧」、「高血圧」のいずれもあり得ることとなる。すなわち攻撃者は、検索に使用されたキーワードの候補をk(k=3)未満に絞り込むことはできない。 Even if the attacker could estimate the number of records with true data blood pressure "normal" and gender "male_1" (true frequency "n1"), what is the blood pressure keyword in the search query searched by the searcher? The attacker cannot narrow down to less than k. For example, when the searcher searches for "normal ∧ male", the terminal devices 400 and 500 perform the search using the search queries of "normal ∧ male _1" and "normal ∧ male _1". By taking the logical sum of these search results, the search result of "normal ∧ man" can be obtained. The number of records included in the search result of "normal ∧ man_1" is "n1 + n2 + n3". The frequency after disturbance is "n1 + n2 + n3" in any of "normal ∧ male _1", "hypotension ∧ female", and "hypertension ∧ male _1". Then, the blood pressure keywords included in the search query can be "normal", "hypotension", or "hypertension". That is, the attacker cannot narrow down the keyword candidates used in the search to less than k (k = 3).

次に、ダミー要素を用いずに頻度分析攻撃に対する安全性を向上させた秘密情報管理システムの各装置の機能について説明する。
図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 with improved security against frequency analysis attacks without using dummy elements 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を有する。鍵記憶部410と変換情報記憶部420は、端末装置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, and a search request unit 440. The key storage unit 410 and the conversion information storage unit 420 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.

以上、端末装置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は、入力された検索キーワードを暗号鍵52で暗号化して、暗号文の検索キーワードを含む検索クエリ57を生成する(ステップS15)。なお検索要求部440は、いずれかのダミーレコード群を検索対象とする場合、入力された検索キーワードを、ダミーレコード群におけるその検索キーワードに対応するダミー値に変換する。そして検索要求部440は、変化で得られたダミー値を暗号化した値を含む検索クエリ57を生成する。そして検索要求部440は、検索クエリ57をデータ管理サーバ100に送信する(ステップS16)。 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. Then, the search request unit 440 encrypts the input search keyword with the encryption key 52, and generates a search query 57 including the search keyword of the ciphertext (step S15). 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 S16).

データ管理サーバ100では、検索部140が、データを秘匿化したままで、登録データ53と検索クエリ57とを照合する(ステップS17)。そして検索部140は、検索クエリ57による検索にヒットしたレコードを、検索結果58として端末装置400に送信する(ステップS18)。検索結果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 concealed (step S17). 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 S18). The search result 58 includes a record of true data 54 and a dummy record of dummy data 55.

端末装置400では検索要求部440が検索結果58を受信する。検索要求部440は、真のデータを検索対象とした場合には、例えばフラグに基づいて、検索結果58からダミーレコードを破棄する(ステップS19)。そして検索要求部440は、検索結果58内の真のデータ54のレコードのみを含む真の結果59を、モニタなどに表示する。 In the terminal device 400, the search request unit 440 receives the search result 58. When the search request unit 440 targets true data, the search request unit 440 discards a dummy record from the search result 58, for example, based on a flag (step S19). 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は、フラグを用いてダミーデータ55と真のデータ54とを識別して、真の結果59を得ることができる。 By adding the dummy data 55 in this way, it is possible to disturb the frequency of each item value. The terminal device 400 can use the flag to discriminate between the dummy data 55 and the true data 54 and obtain the true result 59.

次に、データ登録サーバ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 "blood pressure" and "blood type" as items. 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、および分割キーワード一覧233が記憶されている。キーワード一覧231は、項目ごとに、その項目に設定可能なキーワードのリストが示されたデータである。変換集合一覧232は、変換集合の内容を示すデータである。分割キーワード一覧233は、キーワードを分割して秘匿化DB110に登録する場合における分割後のキーワード(分割キーワード)のリストを示すデータである。なお変換集合一覧232と分割キーワード一覧233とは、キーワード一覧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 a keyword list 231, a conversion set list 232, and a split keyword list 233. 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 divided keyword list 233 is data showing a list of divided keywords (divided keywords) when the keywords are divided and registered in the concealment DB 110. The conversion set list 232 and the divided keyword list 233 are data generated by the data registration request unit 250 based on the keyword list 231.

図18は、キーワード一覧の一例を示す図である。キーワード一覧231には、DB210の項目ごとに、該当項目に設定可能なキーワードのリストが登録されている。図18の例では、「血圧」の項目に登録できるキーワードは3個であり、「血液型」の項目に登録できるキーワードは8個である。 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 registered in the item of "blood pressure" is three, and the number of keywords that can be registered in the item of "blood type" is eight.

図19は、変換集合一覧の生成方法の一例を示す図である。キーワードリスト231aには、j番目の項目に設定可能なキーワードXj個のキーワードが示されている。j番目の項目についてm個(mは1以上の整数)の変換集合232aが生成されるものとする。各変換集合には「1」から「m」までの番号が付与されている。各変換集合には、G個のキーワード格納領域が設けられている。 FIG. 19 is a diagram showing an example of a method for generating a conversion set list. In the keyword list 231a, Xj keywords that can be set in the jth item are shown. It is assumed that m transformation sets 232a (m is an integer of 1 or more) are generated for the jth item. Each conversion set is assigned a number from "1" to "m". Each conversion set is provided with G keyword storage areas.

データ登録要求部250は、例えばキーワードリスト231aから、所定の順番あるいはランダムな順番ですべてのキーワードを1回ずつ選択する。データ登録要求部250は、選択したキーワードを番号の小さい変換集合から順にその変換集合の格納領域に格納していく。データ登録要求部250は、複数の変換集合232aそれぞれに1つずつのキーワードが割り当てられたとき、未選択のキーワードがあれば、再度、選択したキーワードを番号の小さい変換集合から順にその変換集合の格納領域に格納していく。図19では、キーワードの格納順を矢印で示している。 The data registration request unit 250 selects all the keywords once from the keyword list 231a, for example, in a predetermined order or a random order. The data registration request unit 250 stores the selected keywords in the storage area of the conversion set in order from the conversion set having the smallest number. When one keyword is assigned to each of the plurality of conversion sets 232a, the data registration requesting unit 250, if there is an unselected keyword, again selects the selected keyword in the conversion set in ascending order of the number. Store in the storage area. In FIG. 19, the storage order of the keywords is indicated by arrows.

データ登録要求部250は、すべてのキーワードの1回ずつの選択が完了した後、複数の変換集合232aのいずれかに空き領域がある場合、キーワードリスト231aからキーワードの2回目の選択を行う。そしてデータ登録要求部250は、選択したキーワードを番号の小さい変換集合から順にその変換集合の格納領域に格納していく。 After the data registration request unit 250 completes the selection of all the keywords once, if there is a free area in any of the plurality of conversion sets 232a, the data registration request unit 250 selects the keywords a second time from the keyword list 231a. Then, the data registration request unit 250 stores the selected keywords in the storage area of the conversion set in order from the conversion set having the smallest number.

データ登録要求部250は、このような選択したキーワードの変換集合のキーワード格納領域への格納処理を、すべての変換集合のキーワード格納領域に空きがなくなるまで繰り返す。 The data registration request unit 250 repeats the process of storing the selected keyword in the keyword storage area of the conversion set until there is no space in the keyword storage area of all the conversion sets.

このとき、変換集合の数mは、すべてのキーワードを1回ずついずれかの変換集合のキーワード格納領域に格納したときに、各変換集合にk種類以上のキーワードが格納されるように決定されている。ただしXj<kの場合はm=1となり、Xj種類のキーワードすべてが1つの変換集合に含められる。 At this time, the number m of the conversion set is determined so that when all the keywords are stored once in the keyword storage area of any of the conversion sets, k or more kinds of keywords are stored in each conversion set. There is. However, when X j <k, m = 1, and all keywords of X j type are included in one conversion set.

データ登録要求部250は、変換集合に2回以上格納されたキーワードを、格納されたキーワード格納領域ごとに異なる値となるように変更する。図19の例では、1回目の選択によって格納されたキーワードに「_1」の文字列を付与し、2回目の選択によって格納されたキーワードに「_2」の文字列を付与している。 The data registration request unit 250 changes the keywords stored in the conversion set two or more times so that the values are different for each stored keyword storage area. In the example of FIG. 19, the character string of "_1" is given to the keyword stored by the first selection, and the character string of "_2" is given to the keyword stored by the second selection.

データ登録要求部250は、生成した変換集合232aに基づいて分割キーワード一覧を生成する。
図20は、分割キーワード一覧の生成例を示す図である。例えばデータ登録要求部250は、複数の変換集合232aに登録されている各キーワードを抽出し、分割キーワード一覧233aに分割キーワードとして登録する。
The data registration request unit 250 generates a split keyword list based on the generated conversion set 232a.
FIG. 20 is a diagram showing an example of generating a list of divided keywords. For example, the data registration request unit 250 extracts each keyword registered in the plurality of conversion sets 232a and registers it in the divided keyword list 233a as a divided keyword.

図21は、変換集合一覧の一例を示す図である。変換集合一覧232には、項目ごとに生成された変換集合232b,232c,232dが含まれている。図21の例では、血圧の変換集合232bには、「正常_1」、「低血圧」、「高血圧」、「正常_2」が登録されている。 FIG. 21 is a diagram showing an example of a list of conversion sets. The conversion set list 232 includes conversion sets 232b, 232c, and 232d generated for each item. In the example of FIG. 21, "normal_1", "hypotension", "hypertension", and "normal_1" are registered in the blood pressure conversion set 232b.

図22は、分割キーワード一覧の一例を示す図である。分割キーワード一覧233には、項目ごとに、その項目に設定可能なキーワードに対応付けて、そのキーワードの分割キーワードが登録されている。例えば項目「血圧」のキーワード「正常」には、分割キーワードとして「正常_1」と「正常_2」とが登録されている。他のキーワードは、分割キーワードが1つしかないため、元のキーワードと同じ値が分割キーワードとして登録されている。なお分割キーワードが1つしか存在しないキーワードについては、分割キーワード一覧233への登録対象から除外してもよい。分割キーワード一覧233に登録されていないキーワードは、分割キーワードへの変更対象外となる。 FIG. 22 is a diagram showing an example of a list of divided keywords. In the split keyword list 233, the split keywords of the keywords are registered in association with the keywords that can be set for each item. For example, in the keyword "normal" of the item "blood pressure", "normal_1" and "normal_1" are registered as division keywords. Since the other keywords have only one split keyword, the same value as the original keyword is registered as the split keyword. A keyword having only one split keyword may be excluded from the registration target in the split keyword list 233. Keywords that are not registered in the split keyword list 233 are not subject to change to split keywords.

このような分割キーワード一覧233に基づいてDB210内の真のデータ211に含まれる値が分割キーワードに変更される。そして分割キーワードが設定された真のデータのレコード群に基づいて、秘匿化DBに登録する登録データが生成される。 Based on such a split keyword list 233, the value included in the true data 211 in the DB 210 is changed to the split keyword. Then, the registration data to be registered in the concealment DB is generated based on the record group of the true data in which the division keyword is set.

図23は、分割キーワードを用いた場合の項目値の変換例を示す図である。変換の方法は、図6に示したダミー要素を用いた場合と同様である。すなわちダミーレコード群の群番号の分だけ右にずらした位置の要素が、そのダミーレコード群のダミーレコードに設定するダミー値となる。これはダミーレコード群それぞれについて、変換元の集合{正常_1,低血圧,高血圧,正常_2}から変換先の集合{正常_1,低血圧,高血圧,正常_2}への写像が、全単射関係となっている。群番号によって変換先が異なるため、ダミーレコード群ごとに異なる全単射関係となる。 FIG. 23 is a diagram showing an example of conversion of item values when a split keyword is used. The conversion method is the same as when the dummy element shown in FIG. 6 is used. That is, the element at the position shifted to the right by the group number of the dummy record group becomes the dummy value set in the dummy record of the dummy record group. This is because for each dummy record group, the mapping from the conversion source set {normal_1, hypotension, hypertension, normal_2} to the conversion destination set {normal_1, hypotension, hypertension, normal_2} is bijective. It has become. Since the conversion destination differs depending on the group number, the bijective relationship is different for each dummy record group.

図24は、分割キーワードを用いた場合の登録データの一例を示す図である。DB210に格納されていた真のデータ211(図15参照)における「血圧」の項目のキーワード「正常」は、分割キーワード一覧233(図22参照)に基づいて分割キーワードに変更されている。分割キーワードへの変更後の真のデータ211aでは、ID「1」のレコードの「血圧」の値は「正常_1」に変更されている。またID「4」のレコードの「血圧」の値は「正常_2」に変更されている。 FIG. 24 is a diagram showing an example of registered data when the divided keyword is used. The keyword "normal" in the item of "blood pressure" in the true data 211 (see FIG. 15) stored in the DB 210 is changed to the divided keyword based on the divided keyword list 233 (see FIG. 22). In the true data 211a after the change to the split keyword, the value of "blood pressure" in the record of ID "1" is changed to "normal_1". Further, the value of "blood pressure" in the record of ID "4" is changed to "normal_2".

登録データ60には、真のデータ211aのレコード群60aとダミーレコード群60b~60dが含まれている。また各レコードにはランダムにIDが付与されている。登録データ60内の各レコードにはフラグが付与されている。そして登録データ60に含まれるキーワード(フラグ値も含む)が暗号化されている。なおフラグ値は、ランダムに付与されたIDを用いて、前述の式(2)に示したフラグ値生成関数によって生成されている。 The registered data 60 includes a record group 60a of the true data 211a and a dummy record group 60b to 60d. 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に登録する。
図25は、秘匿化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. 25 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.

次に、データ登録処理の手順について詳細に説明する。
図26は、データ登録処理の手順の一例を示すフローチャートである。以下、図26に示す処理をステップ番号に沿って説明する。
Next, the procedure of the data registration process will be described in detail.
FIG. 26 is a flowchart showing an example of the procedure of the data registration process. Hereinafter, the process shown in FIG. 26 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 2022059239000002
Figure 2022059239000002

データ登録要求部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 of the jth item is expressed by the following equation (4).

Figure 2022059239000003
Figure 2022059239000003

[ステップS103]データ登録要求部250は、すべての項目それぞれについて、ステップS102で決定した変換集合数分の変換集合を生成する。またデータ登録要求部250は、生成した変換集合に基づいて分割キーワード一覧233を生成する。 [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. Further, the data registration request unit 250 generates the divided keyword list 233 based on the generated conversion set.

[ステップS104]データ登録要求部250は、DB210から平文のデータ(真のデータのレコード群)を読み込む。
[ステップS105]データ登録要求部250は、分割キーワード一覧233に基づいて、読み込んだ平文のデータにおける真のデータのレコードに登録されているキーワードを分割キーワードに変換する。例えばデータ登録要求部250は、登録されているキーワードに対応する分割キーワードの集合からランダムに分割キーワードを1つ選択する。そしてデータ登録要求部250は、分割対象のキーワードを選択した分割キーワードに変換する。
[Step S104] The data registration request unit 250 reads plain text data (a record group of true data) from the DB 210.
[Step S105] The data registration request unit 250 converts the keyword registered in the record of the true data in the read plaintext data into the split keyword based on the split keyword list 233. For example, the data registration request unit 250 randomly selects one divided keyword from the set of divided keywords corresponding to the registered keywords. Then, the data registration request unit 250 converts the keyword to be divided into the selected divided keyword.

[ステップS106]データ登録要求部250は、ステップS102で決定した群数G-1個のダミーレコード群を含むダミーデータを生成する。なお、ダミーデータ生成処理の詳細は後述する(図27参照)。 [Step S106] 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. 27).

[ステップS107]データ登録要求部250は、真のデータとダミーデータとのレコードそれぞれに、ランダムにIDを付与する。
[ステップS108]データ登録要求部250は、真のデータのレコードとダミーレコードとのそれぞれにフラグを付与する。データ登録要求部250は、各レコードについて、例えば式(2)に示したフラグ値生成関数を用いて算出した値をフラグ値とするフラグを付与する。
[Step S107] The data registration request unit 250 randomly assigns an ID to each of the records of the true data and the dummy data.
[Step S108] 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.

[ステップS109]データ登録要求部250は、各レコードをIDでソートする。
[ステップS110]データ登録要求部250は、ソートされたレコード群を暗号化して、秘匿化DB110に登録する。例えばデータ登録要求部250は、レコード内の項目値ごとに暗号化し、暗号化された値を有するレコード群を、登録データとしてデータ管理サーバ100に送信する。データ管理サーバ100では、データ登録部120が登録データを受信し、受信した登録データを秘匿化DB110に格納する。
[Step S109] The data registration request unit 250 sorts each record by ID.
[Step S110] 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.

次に、ダミーデータ生成処理について詳細に説明する。
図27は、ダミーデータ生成処理の手順の一例を示すフローチャートである。以下、図27に示す処理をステップ番号に沿って説明する。
Next, the dummy data generation process will be described in detail.
FIG. 27 is a flowchart showing an example of the procedure of the dummy data generation process. Hereinafter, the process shown in FIG. 27 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~S127の処理を実行する。
[ステップS124]データ登録要求部250は、全ダミーレコードそれぞれについて、ステップS125の処理を実行する。
[Step S123] The data registration request unit 250 executes the processes of steps S124 to S127 for each of 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に入力する。
図28は、検索条件入力画面の一例を示す図である。検索条件入力画面61には、例えば検索変数としてDB210内の各項目の名称が設定されている。そして検索変数に対応付けて、その検索変数の指定値を検索キーワードとして入力するための指定値入力領域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. 28 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, the terminal device 400 performs a search using the input specified value as a search keyword.

図29は、検索処理の手順の一例を示すフローチャートである。以下、図29に示す処理をステップ番号に沿って説明する。
[ステップS131]検索要求部440は、ユーザからの検索条件として入力された検索キーワードと、その検索キーワードに対応する項目を、平文検索クエリとして取得する。
FIG. 29 is a flowchart showing an example of the procedure of the search process. Hereinafter, the process shown in FIG. 29 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は、データ登録要求部250における項目ごとの変換集合生成処理と同様の処理を行い、変換集合一覧を生成する。検索要求部440によって生成される変換集合一覧は、データ登録要求部250で生成された変換集合一覧と同じものとなる。この際、検索要求部440は、群数Gも算出する。そして検索要求部440は、変換集合一覧に基づいて分割キーワード一覧を生成する。 [Step S132] 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. At this time, the search request unit 440 also calculates the group number G. Then, the search request unit 440 generates a split keyword list based on the conversion set list.

[ステップS133]検索要求部440は、取得した平文検索クエリを分割する。例えば検索要求部440は、平文検索クエリに含まれる検索キーワードを分割キーワードに分割する。そして検索要求部440は、分割によって得られた分割キーワードごとの平文検索クエリを生成する。図22に示すような分割キーワード一覧233が生成されているとき、検索キーワード「正常」は「正常_1」と「正常_2」とに分割される。そして検索キーワード「正常_1」を含む平文検索クエリと検索キーワード「正常_2」を含む平文検索クエリとが生成される。分割により生成された平文検索クエリの検索結果の論理和が、取得した平文検索クエリの検索結果である。 [Step S133] The search request unit 440 divides the acquired plaintext search query. For example, the search request unit 440 divides the search keyword included in the plaintext search query into split keywords. Then, the search request unit 440 generates a plaintext search query for each division keyword obtained by the division. When the split keyword list 233 as shown in FIG. 22 is generated, the search keyword "normal" is divided into "normal_1" and "normal_1". Then, a plaintext search query including the search keyword "normal_1" and a plaintext search query including the search keyword "normal_1" are generated. The logical sum of the search results of the plaintext search query generated by the division is the search result of the obtained plaintext search query.

取得した平文検索クエリには、複数の検索キーワードが含まれる場合がある。複数の検索キーワードの論理和検索の場合、検索要求部440は、各検索キーワードを分割キーワードに分解し、分割キーワードごとの平文検索クエリを生成する。複数生成された平文検索クエリによる検索結果の論理和が、取得した平文検索クエリの検索結果である。 The obtained plaintext search query may contain multiple search keywords. In the case of a logical sum search of a plurality of search keywords, the search request unit 440 decomposes each search keyword into split keywords and generates a plaintext search query for each split keyword. The logical sum of the search results of the multiple generated plaintext search queries is the search result of the acquired plaintext search query.

また複数の検索キーワードの論理積検索の場合、検索要求部440は、項目が異なる分割キーワード間のすべての組み合わせを生成する。3つ以上の項目それぞれの検索キーワードの論理積の場合であれば、検索要求部440は、各項目から1ずつ分割キーワードを選択することで生成可能な分割キーワードのすべての組み合わせを生成する。そして検索要求部440は、生成した分割キーワードの組み合わせごとの論理積の平文検索クエリを生成する。この場合も、複数生成された平文検索クエリによる検索結果の論理和が、取得した平文検索クエリの検索結果である。 Further, in the case of a logical product search of a plurality of search keywords, the search request unit 440 generates all combinations between the divided keywords having different items. In the case of the logical product of the search keywords for each of the three or more items, the search request unit 440 generates all combinations of the divided keywords that can be generated by selecting one divided keyword from each item. Then, the search request unit 440 generates a plaintext search query of the logical product for each combination of the generated split keywords. In this case as well, the logical sum of the search results obtained by the plurality of generated plaintext search queries is the search result of the acquired plaintext search query.

例えば取得した検索クエリが「A∧B」であり、検索キーワード「A」は「A_1」と「A_2」に分割され、検索キーワード「B」は「B_1」と「B_2」に分割されるものとする。この場合、検索要求部440は、分割後の平文検索クエリとして、「A_1∧B_1」、「A_1∧B_2」、「A_2∧B_1」、「A_2∧B_2」を生成する。 For example, the acquired search query is "A∧B", the search keyword "A" is divided into "A_1" and "A_1", and the search keyword "B" is divided into "B_1" and "B_1". do. In this case, the search request unit 440 generates "A_1∧B_1", "A_1∧B_1", "A_2∧B_1", and "A_2∧B_1" as the plaintext search query after division.

[ステップS134]検索要求部440は、生成された平文検索クエリのうち未選択のものを1つ選択する。
[ステップS135]検索要求部440は、真のデータのレコード群とダミーレコード群とを含むすべての群の中から、1つの群を確率的に選択する。検索要求部440は、選択したレコード群を対象として検索を行うこととなる。なお、秘匿化DB110内のすべてのダミーレコード群は真のデータのレコード群と値は異なるものの同一の頻度分布を有している。そのためダミーレコード群を検索対象としたとしても、検索結果として得られたダミーレコード内のダミー値を変換集合に従って逆変換することで正しい検索結果を得ることができる。
[Step S134] The search request unit 440 selects one of the generated plaintext search queries that has not been selected.
[Step S135] 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.

[ステップS136]検索要求部440は、ダミーレコード群を選択したか否かを判断する。検索要求部440は、選択したのがダミーレコード群であれば、処理をステップS137に進める。また検索要求部440は、選択したのが真のデータのレコード群であれば、処理をステップS142に進める。 [Step S136] 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 S137. Further, if the search request unit 440 selects a record group of true data, the process proceeds to step S142.

[ステップS137]検索要求部440は、生成した平文検索クエリを、変換集合に基づいて攪乱する。例えば検索要求部440は、平文検索クエリにおいて、検索対象の項目と分割キーワードが指定されている場合、まず検索対象の項目に対応する1以上の変換集合の中から、指定された分割キーワードに対応する要素を含む変換集合を特定する。次に検索要求部440は、選択したダミーレコード群の群番号を取得する。検索要求部440は、検索対象の分割キーワードに対応する変換集合内の要素から群番号の分だけ巡回的に右の要素を、その変換集合から取得する。そして検索要求部440は、平文検索クエリ内の変換対象の分割キーワードを、取得した要素の値(ダミー値)に変換する。 [Step S137] 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.

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

[ステップS139]検索要求部440は、データ管理サーバ100から秘匿化検索の検索結果(秘匿化検索結果)を取得する。検索要求部440は、秘匿化検索結果から、ステップS136で選択されたダミーレコード群に属するダミーレコードのみを抽出する。このとき検索要求部440は、各レコードのフラグ値に基づいて、選択されたダミーレコード群に属するダミーレコードを特定できる。例えば検索要求部440は、選択したダミーレコード群に対応するフラグ値生成関数を用いて、検索結果に含まれるレコードのIDに対応するフラグ値を生成する。検索要求部440は、生成したフラグ値を暗号化する。そして検索要求部440は、該当レコードが、暗号化したフラグ値と同じ値のフラグ値を有する場合、そのレコードを選択した群のレコードであると判定する。 [Step S139] 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 S136 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.

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

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

図30は、ダミー値の逆変換の一例を示す図である。例えば検索要求部440は、ダミー値が属する項目に対応する1以上の変換集合の中からダミー値に対応する要素を含む変換集合を特定する。図30の例では、変換集合232bが特定されたものとする。次に検索要求部440は、ステップS136で選択したダミーレコード群の群番号を取得する。検索要求部440は、ダミー値に対応する変換集合232b内の要素から、群番号の分だけ巡回的に左の要素を、その変換集合232bから取得する。そして検索要求部440は、復号されたダミー値を、取得した要素の値(真のデータの分割キーワード)に変換する。例えば群番号「2」のダミーレコード群に属するダミーレコードのダミー値が「正常_2」の場合、そのダミー値は変換集合232bにおいて「正常_2」の左側に2つ目の要素「低血圧」に逆変換される。 FIG. 30 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. 30, 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 S136. 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. Then, the search request unit 440 converts the decoded dummy value into the value of the acquired element (true data division keyword). For example, when the dummy value of the dummy record belonging to the dummy record group of the group number "2" is "normal_2", the dummy value is set to the second element "hypotension" on the left side of "normal_2" in the transformation set 232b. Inversely converted.

図30に示した逆変換の関係は、図23に示した写像の逆写像となる全単射関係である。選択されたダミーレコード群に属するダミーレコード内のすべてのダミー値に対してこのような逆変換を行うことに、ダミー値に対応する分割キーワードが得られる。検索要求部440は、分割キーワード一覧に基づいて、分割キーワードを元のキーワード(真の値)に変換する。これにより真の検索結果が生成される。その後、検索要求部440は、処理をステップS145に進める。 The relationship of the inverse transformation shown in FIG. 30 is a bijective relationship which is the inverse mapping of the mapping shown in FIG. 23. By performing such an inverse conversion on all the dummy values in the dummy records belonging to the selected dummy record group, the split keyword corresponding to the dummy value is obtained. The search request unit 440 converts the divided keyword into the original keyword (true value) based on the divided keyword list. This will generate true search results. After that, the search request unit 440 advances the process to step S145.

以下、図29の説明に戻る。
[ステップS142]検索要求部440は、検索条件に真のデータのレコード群に対応するフラグ値を追加した検索クエリを暗号化して、データ管理サーバ100に送信する。
Hereinafter, the description of FIG. 29 will be returned to.
[Step S142] 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.

[ステップS143]検索要求部440は、データ管理サーバ100から検索結果を取得する。
[ステップS144]検索要求部440は、検索結果に含まれる、真のデータのレコード群のレコード内の項目値を復号する。なお検索要求部440は、ステップS140と同様に、選択した群のレコード(真のデータのレコード)を特定する。検索要求部440は、真のデータのレコード内の分割キーワードを、分割キーワード一覧に基づいて元のキーワードに変換し、平文の真の値が設定された検索結果を得る。
[Step S143] The search request unit 440 acquires the search result from the data management server 100.
[Step S144] 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 S140. The search request unit 440 converts the divided keyword in the record of the true data into the original keyword based on the divided keyword list, and obtains the search result in which the true value of the plain text is set.

[ステップS145]検索要求部440は、平文の検索結果を出力する。
[ステップS146]検索要求部440は、すべての平文検索クエリが選択されたか否かを判断する。検索要求部440は、未選択の平文検索クエリがある場合、処理をステップS134に進める。また検索要求部440は、すべての平文検索クエリが選択され、対応する秘匿化検索クエリによる検索が終了した場合、検索処理を終了する。
[Step S145] The search request unit 440 outputs a plaintext search result.
[Step S146] The search request unit 440 determines whether or not all the plaintext search queries have been selected. If there is an unselected plaintext search query, the search request unit 440 advances the process to step S134. Further, the search request unit 440 ends the search process when all the plaintext search queries are selected and the search by the corresponding concealed search query is completed.

検索結果は、例えば検索結果表示画面に表示される。
図31は、検索結果表示画面の一例を示す図である。検索結果表示画面70には、例えば患者に関する検索条件と、その検索条件に適合する患者の数が表示されている。また検索結果表示画面70には、検索でヒットしたレコードの平文のデータが表示されている。
The search result is displayed, for example, on the search result display screen.
FIG. 31 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.

このような検索により、G個の分割キーワードの集合ごとに項目値の出現頻度が均等化される。その結果、項目値ごと出現頻度の偏りが抑止され、頻度分析攻撃に対する安全性が向上する。しかもダミー要素を用いないことから、複数の項目のキーワードを組み合わせた頻度分析攻撃に対しても安全性が向上している。 By such a search, the appearance frequency of the item value is equalized for each set of G divided keywords. As a result, the bias of the appearance frequency for each item value is suppressed, and the safety against frequency analysis attacks is improved. Moreover, since no dummy element is used, safety is improved against frequency analysis attacks that combine keywords of multiple items.

また端末装置400では、検索結果としてダミーレコードを取得した場合でも、そのダミーレコードのダミー値に基づいて、入力された検索条件に適合する真のデータの項目値を取得することができる。そのため、攻撃者がデータ管理サーバ100から送信された検索結果を取得したとしても、検索結果に含まれる項目値が真のデータの項目値なのかダミー値なのかを、攻撃者は判別することができない。その結果、真のデータの機密性が向上する。 Further, in the terminal device 400, even when a dummy record is acquired as a search result, it is possible to acquire an item value of true data that matches the input search condition based on the dummy value of the dummy record. Therefore, even if the attacker acquires the search result transmitted from the data management server 100, the attacker can determine whether the item value included in the search result is a true data item value or a dummy value. Can not. As a result, the confidentiality of true data 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.

また暗号鍵による項目値の暗号化および復号には、例えば予め用意した対応辞書を利用することができる。対応辞書を利用する場合、データ登録サーバ200,300と端末装置400,500それぞれは、分割キーワード一覧に示される分割キーワードを暗号鍵で暗号化し、分割キーワードと暗号文との対応辞書を予め生成しておく。そしてデータ登録サーバ200,300と端末装置400,500それぞれは、暗号化の際には、暗号化対象の平文(分割キーワードまたは検索キーワード)を対応辞書から検索し、暗号化対象の平文を、検索でヒットした分割キーワードに対応する暗号文に変換する。また端末装置400,500それぞれは、復号の際には、復号対象の暗号文を対応辞書から検索し、復号対象の暗号文を、検索でヒットした暗号文に対応する分割キーワードに変換する。 Further, for encryption and decryption of the item value by the encryption key, for example, a corresponding dictionary prepared in advance can be used. When using the corresponding dictionary, each of the data registration servers 200, 300 and the terminal devices 400, 500 encrypts the divided keyword shown in the divided keyword list with an encryption key, and generates a corresponding dictionary between the divided keyword and the ciphertext in advance. Keep it. Then, each of the data registration servers 200, 300 and the terminal devices 400, 500 searches the plaintext to be encrypted (divided keyword or search keyword) from the corresponding dictionary at the time of encryption, and searches for the plaintext to be encrypted. Convert to the ciphertext corresponding to the split keyword hit in. Further, each of the terminal devices 400 and 500 searches the ciphertext to be decrypted from the corresponding dictionary at the time of decryption, and converts the ciphertext to be decrypted into the divided keyword corresponding to the ciphertext hit in the search.

以上、実施の形態を例示したが、実施の形態で示した各部の構成は同様の機能を有する他のものに置換することができる。また、他の任意の構成物や工程が付加されてもよい。さらに、前述した実施の形態のうちの任意の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 データ登録装置
1a 記憶部
1b 処理部
2 サーバ
2a 秘匿化DB
3 データ利用装置
4a,4b 項目値群
5,5b 秘匿レコード群
6a,6b ダミーレコード群
7 登録データ
8a,8b 検索クエリ
9 検索結果
10 表示画面
1 Data registration device 1a Storage unit 1b Processing unit 2 Server 2a Concealment DB
3 Data utilization device 4a, 4b Item value group 5,5b Confidential record group 6a, 6b Dummy record group 7 Registered data 8a, 8b Search query 9 Search result 10 Display screen

Claims (7)

コンピュータに、
秘匿対象の秘匿レコードを1つ以上含む秘匿レコード群における前記秘匿レコード内の一の項目に設定可能な複数の第1項目値の種類数が所定値の整数倍でない場合、前記複数の第1項目値それぞれに少なくとも1つが対応付けられ、かつそれぞれが前記複数の第1項目値のいずれか1つに対応づけられた、前記所定値の整数倍の複数の第2項目値を生成し、
前記複数の第2項目値それぞれを、前記一の項目に対応する少なくとも1つの項目値群のいずれかに、前記所定値と同数ずつ分類し、
前記秘匿レコード内の前記一の項目に設定されている第1項目値を、前記第1項目値に対応する少なくとも1つの第2項目値のいずれかに変換し、
前記項目値群内の第2項目値それぞれを同一の前記項目値群内の異なる第2項目値に全単射する全単射関係に従って前記秘匿レコードそれぞれの前記一の項目に設定された既存第2項目値をダミー値に変換し、
前記ダミー値が前記一の項目に設定された、前記秘匿レコードの数と同数のダミーレコードを有するダミーレコード群を生成し、
前記秘匿レコードに真を示す第1フラグを設定し、
前記ダミーレコードに偽を示す第2フラグを設定し、
前記秘匿レコードと前記ダミーレコードそれぞれの前記一の項目に設定された項目値、前記秘匿レコードに付与された前記第1フラグ、および前記ダミーレコードに付与された前記第2フラグを暗号化し、
前記秘匿レコード群と前記ダミーレコード群とを出力する、
処理を実行させる秘密情報管理プログラム。
On the computer
When the number of types of a plurality of first item values that can be set in one item in the secret record in the secret record group including one or more secret records to be hidden is not an integral multiple of a predetermined value, the plurality of first items. Generate a plurality of second item values that are integral multiples of the predetermined value, each of which is associated with at least one of the values and is associated with any one of the plurality of first item values.
Each of the plurality of second item values is classified into at least one item value group corresponding to the one item by the same number as the predetermined value.
The first item value set in the one item in the secret record is converted into one of at least one second item value corresponding to the first item value.
The existing first item set in the first item of each of the secret records according to the bijective relationship in which each of the second item values in the item value group is bijected to different second item values in the same item value group. Convert 2 item values to dummy values and
A dummy record group having the same number of dummy records as the number of secret records in which the dummy value is set in the one 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 item value set in the one item of each of the secret record and the dummy record, the first flag given to the secret record, and the second flag given to the dummy record are encrypted.
The secret record group and the dummy record group are output.
A secret information management program that executes processing.
前記ダミーレコード群の生成では、前記ダミーレコード群が複数あるとき、前記秘匿レコードの前記一の項目に設定された前記既存第2項目値が、前記ダミーレコード群ごとに異なる第2項目値に変換されるように、前記ダミーレコード群ごとに異なる前記全単射関係を利用する、
請求項1記載の秘密情報管理プログラム。
In the generation of the dummy record group, when there are a plurality of the dummy record groups, the existing second item value set in the one item of the secret record is converted into a second item value different for each dummy record group. As such, the bijection relation, which is different for each dummy record group, is used.
The confidential information management program according to claim 1.
前記第2フラグの設定では、1または複数生成された前記ダミーレコード群ごとに異なり、前記第1フラグとも異なる値の前記第2フラグを、前記ダミーレコード群それぞれに含まれる前記ダミーレコードに設定する、
請求項1または2に記載の秘密情報管理プログラム。
In the setting of the second flag, the second flag having a value different from that of the dummy record group generated one or more and different from that of the first flag is set in the dummy record included in each of the dummy record groups. ,
The confidential information management program according to claim 1 or 2.
前記第1フラグの設定では、前記秘匿レコードの識別子を変数とする第1関数の値を、前記第1フラグとして前記秘匿レコードに設定し、
前記第2フラグの設定では、前記ダミーレコードの識別子を変数とし、同一の変数の値に対して前記第1関数とは異なり、かつ属する前記ダミーレコード群ごとに異なる値を出力する第2関数の値を、前記第2フラグとして前記ダミーレコードに設定する、
請求項3記載の秘密情報管理プログラム。
In the setting of the first flag, the value of the first function having the identifier of the secret record as a variable is set in the secret record as the first flag.
In the setting of the second flag, the identifier of the dummy record is used as a variable, and the value of the same variable is different from that of the first function, and a different value is output for each dummy record group to which the dummy record belongs. A value is set in the dummy record as the second flag.
The confidential information management program according to claim 3.
コンピュータが、
秘匿対象の秘匿レコードを1つ以上含む秘匿レコード群における前記秘匿レコード内の一の項目に設定可能な複数の第1項目値の種類数が所定値の整数倍でない場合、前記複数の第1項目値それぞれに少なくとも1つが対応付けられ、かつそれぞれが前記複数の第1項目値のいずれか1つに対応づけられた、前記所定値の整数倍の複数の第2項目値を生成し、
前記複数の第2項目値それぞれを、前記一の項目に対応する少なくとも1つの項目値群のいずれかに、前記所定値と同数ずつ分類し、
前記秘匿レコード内の前記一の項目に設定されている第1項目値を、前記第1項目値に対応する少なくとも1つの第2項目値のいずれかに変換し、
前記項目値群内の第2項目値それぞれを同一の前記項目値群内の異なる第2項目値に全単射する全単射関係に従って前記秘匿レコードそれぞれの前記一の項目に設定された既存第2項目値をダミー値に変換し、
前記ダミー値が前記一の項目に設定された、前記秘匿レコードの数と同数のダミーレコードを有するダミーレコード群を生成し、
前記秘匿レコードに真を示す第1フラグを設定し、
前記ダミーレコードに偽を示す第2フラグを設定し、
前記秘匿レコードと前記ダミーレコードそれぞれの前記一の項目に設定された項目値、前記秘匿レコードに付与された前記第1フラグ、および前記ダミーレコードに付与された前記第2フラグを暗号化し、
前記秘匿レコード群と前記ダミーレコード群とを出力する、
秘密情報管理方法。
The computer
When the number of types of a plurality of first item values that can be set in one item in the secret record in the secret record group including one or more secret records to be hidden is not an integral multiple of a predetermined value, the plurality of first items. Generate a plurality of second item values that are integral multiples of the predetermined value, each of which is associated with at least one of the values and is associated with any one of the plurality of first item values.
Each of the plurality of second item values is classified into at least one item value group corresponding to the one item by the same number as the predetermined value.
The first item value set in the one item in the secret record is converted into one of at least one second item value corresponding to the first item value.
The existing first item set in the first item of each of the secret records according to the bijective relationship in which each of the second item values in the item value group is bijected to different second item values in the same item value group. Convert 2 item values to dummy values and
A dummy record group having the same number of dummy records as the number of secret records in which the dummy value is set in the one 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 item value set in the one item of each of the secret record and the dummy record, the first flag given to the secret record, and the second flag given to the dummy record are encrypted.
The secret record group and the dummy record group are output.
Confidential information management method.
データベースを有するサーバと、
秘匿対象の秘匿レコードを1つ以上含む秘匿レコード群における前記秘匿レコード内の一の項目に設定可能な複数の第1項目値の種類数が所定値の整数倍でない場合、前記複数の第1項目値それぞれに少なくとも1つが対応付けられ、かつそれぞれが前記複数の第1項目値のいずれか1つに対応づけられた、前記所定値の整数倍の複数の第2項目値を生成し、
前記複数の第2項目値それぞれを、前記一の項目に対応する少なくとも1つの項目値群のいずれかに、前記所定値と同数ずつ分類し、
前記秘匿レコード内の前記一の項目に設定されている第1項目値を、前記第1項目値に対応する少なくとも1つの第2項目値のいずれかに変換し、
前記項目値群内の第2項目値それぞれを同一の前記項目値群内の異なる第2項目値に全単射する全単射関係に従って前記秘匿レコードそれぞれの前記一の項目に設定された既存第2項目値をダミー値に変換し、
前記ダミー値が前記一の項目に設定された、前記秘匿レコードの数と同数のダミーレコードを有するダミーレコード群を生成し、
前記秘匿レコードに真を示す第1フラグを設定し、
前記ダミーレコードに偽を示す第2フラグを設定し、
前記秘匿レコードと前記ダミーレコードそれぞれの前記一の項目に設定された項目値、前記秘匿レコードに付与された前記第1フラグ、および前記ダミーレコードに付与された前記第2フラグを暗号化し、
前記秘匿レコード群と前記ダミーレコード群とを前記サーバの前記データベースに格納するデータ登録装置と、
検索条件に示される前記一の項目の検索項目値を、前記検索項目値と同じ値の前記第1項目値に対応する1または複数の前記第2項目値それぞれに変換し、変換により得られた前記第2項目値それぞれを含む検索クエリを、前記検索項目値を暗号化して前記サーバに送信し、
前記サーバから、前記データベース内の前記検索クエリによる検索結果を取得し、
前記検索結果に含まれる前記秘匿レコードと前記ダミーレコードそれぞれに設定された前記第1フラグまたは前記第2フラグに基づいて、前記検索結果から前記検索条件を満たす前記秘匿レコードを取得するデータ利用装置と、
を有する秘密情報管理システム。
A server with a database and
When the number of types of a plurality of first item values that can be set in one item in the secret record in the secret record group including one or more secret records to be hidden is not an integral multiple of a predetermined value, the plurality of first items. Generate a plurality of second item values that are integral multiples of the predetermined value, each of which is associated with at least one of the values and is associated with any one of the plurality of first item values.
Each of the plurality of second item values is classified into at least one item value group corresponding to the one item by the same number as the predetermined value.
The first item value set in the one item in the secret record is converted into one of at least one second item value corresponding to the first item value.
The existing first item set in the first item of each of the secret records according to the bijective relationship in which each of the second item values in the item value group is bijected to different second item values in the same item value group. Convert 2 item values to dummy values and
A dummy record group having the same number of dummy records as the number of secret records in which the dummy value is set in the one 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 item value set in the one item of each of the secret record and the dummy record, the first flag given to the secret record, and the second flag given to the dummy record are encrypted.
A data registration device that stores the secret record group and the dummy record group in the database of the server, and
The search item value of the one item shown in the search condition is converted into one or a plurality of the second item values corresponding to the first item value having the same value as the search item value, and obtained by the conversion. A search query containing each of the second item values is transmitted to the server with the search item values encrypted.
The search result by the search query in 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.
前記データ利用装置は、前記検索条件に示される前記検索項目値を、前記全単射関係に従い変換し、変換により得られた変換項目値を含む前記検索クエリを送信し、
前記検索結果に含まれる前記ダミーレコードに設定された前記第2フラグに基づいて、前記検索結果から前記変換項目値を有する適合ダミーレコードを抽出し、前記適合ダミーレコードの前記一の項目の復号された既復号項目値を前記全単射関係の逆写像関係に従い変換することで、前記検索条件を満たす前記秘匿レコードを取得する、
請求項6記載の秘密情報管理システム。
The data utilization device converts the search item value shown in the search condition according to the bijective relationship, and sends the search query including the conversion item value obtained by the conversion.
Based on the second flag set in the dummy record included in the search result, a matching dummy record having the conversion item value is extracted from the search result, and the one item of the matching dummy record is decoded. By converting the already decoded item value according to the inverse mapping relation of the bijective relation, the secret record satisfying the search condition is acquired.
The confidential information management system according to claim 6.
JP2020166843A 2020-10-01 2020-10-01 Confidential information management program, confidential information management method, and confidential information management system Active JP7469669B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2020166843A JP7469669B2 (en) 2020-10-01 2020-10-01 Confidential information management program, confidential information management method, and confidential information management system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2020166843A JP7469669B2 (en) 2020-10-01 2020-10-01 Confidential information management program, confidential information management method, and confidential information management system

Publications (2)

Publication Number Publication Date
JP2022059239A true JP2022059239A (en) 2022-04-13
JP7469669B2 JP7469669B2 (en) 2024-04-17

Family

ID=81124241

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020166843A Active JP7469669B2 (en) 2020-10-01 2020-10-01 Confidential information management program, confidential information management method, and confidential information management system

Country Status (1)

Country Link
JP (1) JP7469669B2 (en)

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012248940A (en) 2011-05-25 2012-12-13 Mitsubishi Electric Corp Data generation device, data generation method, data generation program and database system
US20170308580A1 (en) 2015-01-26 2017-10-26 Hitachi, Ltd. Data Aggregation/Analysis System and Method Therefor
JP2018063638A (en) 2016-10-14 2018-04-19 株式会社日立製作所 Encrypted data processing system and encrypted data processing method
CN110226190A (en) 2017-01-27 2019-09-10 三菱电机株式会社 Retrieve device, monitoring arrangement, monitoring method and search program
JP7288194B2 (en) 2019-07-18 2023-06-07 富士通株式会社 Confidential Information Management Program, Confidential Information Management Method, and Confidential Information Management System

Also Published As

Publication number Publication date
JP7469669B2 (en) 2024-04-17

Similar Documents

Publication Publication Date Title
Fu et al. Secure data storage and searching for industrial IoT by integrating fog computing and cloud computing
TWI510939B (en) Gene information memory device, gene information retrieval device, gene information memory program product, gene information retrieval program product, gene information memory method, gene information retrieval method and gene information retrieval system
Yang et al. A hybrid solution for privacy preserving medical data sharing in the cloud environment
US9684710B2 (en) Extending random number summation as an order-preserving encryption scheme
US7519835B2 (en) Encrypted table indexes and searching encrypted tables
US20130238646A1 (en) Partial-Match Searches of Encrypted Data Sets
EP3382576B1 (en) Secret search system, secret search method, and secret search program
CN107209787A (en) Improve the search capability of dedicated encrypted data
JP6619401B2 (en) Data search system, data search method, and data search program
EP2709306A1 (en) Method and system to perform secure boolean search over encrypted documents
KR20140029984A (en) Medical information management method of medical database operating system
JP6250497B2 (en) Information management system
EP4227841A1 (en) Systems and methods for tracking propagation of sensitive data
Al Sibahee et al. Efficient encrypted image retrieval in IoT-cloud with multi-user authentication
Kumar et al. Secure and efficient image retrieval through invariant features selection in insecure cloud environments
Dhanalakshmi et al. Security threats and approaches in E-Health cloud architecture system with big data strategy using cryptographic algorithms
CN112134882A (en) System and method for anonymously transferring data in a network
JP2006189925A (en) Private information management system, private information management program, and private information protection method
JP7288194B2 (en) Confidential Information Management Program, Confidential Information Management Method, and Confidential Information Management System
JP7469669B2 (en) Confidential information management program, confidential information management method, and confidential information management system
JP7132506B2 (en) Confidential Information Retrieval System, Confidential Information Retrieval Program, and Confidential Information Retrieval Method
JP2022059675A (en) Search request program, search request method, and confidential information management system
JP2022147342A (en) Secret information management program, secret information management method, data registration device and secret information management system
Han et al. Private blocking technique for multi-party privacy-preserving record linkage
CN117521118B (en) Medical data searchable encryption privacy protection and system

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20230707

TRDD Decision of grant or rejection written
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20240221

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20240305

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20240318

R150 Certificate of patent or registration of utility model

Ref document number: 7469669

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150