JP2020077256A - Anonymization system and anonymization method - Google Patents

Anonymization system and anonymization method Download PDF

Info

Publication number
JP2020077256A
JP2020077256A JP2018210777A JP2018210777A JP2020077256A JP 2020077256 A JP2020077256 A JP 2020077256A JP 2018210777 A JP2018210777 A JP 2018210777A JP 2018210777 A JP2018210777 A JP 2018210777A JP 2020077256 A JP2020077256 A JP 2020077256A
Authority
JP
Japan
Prior art keywords
data
anonymization
value
signature
information
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
JP2018210777A
Other languages
Japanese (ja)
Other versions
JP7100563B2 (en
Inventor
啓成 藤原
Hiroshige Fujiwara
啓成 藤原
尚宜 佐藤
Hisanobu Sato
尚宜 佐藤
高橋 健太
Kenta Takahashi
健太 高橋
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.)
Hitachi Ltd
Original Assignee
Hitachi 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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2018210777A priority Critical patent/JP7100563B2/en
Priority to PCT/JP2019/041245 priority patent/WO2020095662A1/en
Publication of JP2020077256A publication Critical patent/JP2020077256A/en
Application granted granted Critical
Publication of JP7100563B2 publication Critical patent/JP7100563B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Bioethics (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)

Abstract

To provide an anonymization system and an anonymization method which can verify correctness of anonymization processing for data even after carrying out anonymization processing such as deletion and substitution.SOLUTION: An anonymization data providing server carries out patient data record expansion processing S01 to store the processing result on an extended patient data table. The server subsequently carries out signature generating processing S02 for generating digital signature by using data of the extended patient data table as an input. The server allows an anonymization data user terminal to acquire S05 the generated signature value together with an original patient data name through a Web server registration S03. The anonymization data providing server which received an anonymization data acquisition request S06 carries out the verifiable anonymization processing S07 with the use of the patient data name and anonymization conditions as an input to generate anonymization data, and allows the anonymization data user terminal to acquire the same S08. The anonymization data user terminal carries out signature verification processing S09 with the use of the anonymization data and the signature value to verify validity of the anonymization data.SELECTED DRAWING: Figure 10

Description

本発明は、匿名化システムおよび匿名化方法に係り、医療情報等の個人情報を匿名化して医学研究等に活用するために提供する際に、改竄を検知して、提供された情報の正当性を検証するのに好適な匿名化システムおよび匿名化方法に関する。   The present invention relates to an anonymization system and anonymization method, detects tampering when providing personal information such as medical information to be used for anonymizing and utilizing it in medical research, and the validity of the provided information. The present invention relates to an anonymization system and anonymization method suitable for verifying.

近年、2017年5月の改正個人情報保護法の全面施行により、個人情報の適切な保護を前提とした匿名加工情報の利用・活用が進みつつある。また、2018年5月には、国民の医療情報を匿名加工して、大学や製薬企業の研究開発などでの活用を可能にする仕組みを定めた次世代医療基盤法が施行された。こうした法規制により、医療分野の研究開発等に匿名化データが活用可能となってきている。   In recent years, with the full enforcement of the revised Personal Information Protection Law in May 2017, the use and utilization of anonymously processed information, which is premised on the proper protection of personal information, is progressing. In addition, in May 2018, the Next-Generation Medical Infrastructure Act was enacted, which established a mechanism that anonymously processes medical information of the people and enables it to be used in research and development of universities and pharmaceutical companies. Due to such regulations, anonymized data can be used for research and development in the medical field.

医療分野では、研究に用いる医療データに対し“バリデーション”と呼ばれる正当性の検証を行っている。今後、匿名加工に対しても、同様の正当性の検証が課題となると考えられる。   In the medical field, the validity of medical data used for research is called “validation”. In the future, it is considered that the verification of the same legitimacy will be an issue for anonymous processing.

臨床情報等の個人情報を匿名化して提供する技術としては、例えば、特許文献1に開示がある。特許文献1に記載された情報管理システムによれば、臨床情報等の被検体情報(個人情報)の匿名化処理後、被検体情報の所有者や閲覧権限所有者が、匿名化処理された情報に関連付けられて蓄積された情報を特定可能とする。   A technique for anonymizing and providing personal information such as clinical information is disclosed in Patent Document 1, for example. According to the information management system described in Patent Document 1, after the subject information (personal information) such as clinical information has been anonymized, the owner of the subject information and the viewing authority owner have anonymized information. It is possible to specify the information accumulated in association with.

国際公開第2008/069011号International Publication No. 2008/069011

上記従来技術の特許文献1では、正当性保証の対象が元データの一部(識別子ないし準識別子の組合せ)が対象であるため、データ全体に対し匿名化の正当性を保証することができない。   In Patent Document 1 of the above-mentioned related art, since the target of the validity guarantee is a part of the original data (a combination of identifiers or quasi-identifiers), the validity of the anonymization cannot be guaranteed for the entire data.

一般的に、データに対する正当性を保証する技術としては、デジタル署名技術がある。しかしながら、単純にデジタル署名を適用するだけでは、データの削除や置換等の匿名化処理を施すと、正当性を検証できない。不正な匿名化データを利用した場合、研究成果が不正となる事態などが発生する恐れがある。   Generally, there is a digital signature technique as a technique for guaranteeing the validity of data. However, the legitimacy cannot be verified by simply applying a digital signature and performing anonymization processing such as deletion or replacement of data. If unauthorized anonymized data is used, there is a risk that research results will be unauthorized.

本発明の目的は、データに対する匿名化処理の正当性を、削除や置換などの匿名化処理を施した後でも検証できる匿名化の正当性を検証可能な匿名化システムおよび匿名化方法を提供することにある。   An object of the present invention is to provide an anonymization system and an anonymization method capable of verifying the anonymization correctness of data that can be verified even after the anonymization process such as deletion or replacement. Especially.

本発明の匿名化システムの構成は、好ましくは、情報処理装置により秘密情報を匿名化して利用者に提供する匿名化システムであって、秘密情報を記憶する秘密情報記憶手段と、秘密情報を抽象化する情報の候補群である抽象化候補群情報記憶手段と、秘密情報に抽象化する情報の候補群を追加した拡張秘密データを記憶する拡張秘密データ記憶手段と、秘密情報から一部の情報を削除または置換した匿名化データを記憶する匿名化データ記憶手段と、秘密情報と抽象化候補群情報を用い、拡張秘密データを生成する拡張秘密データ生成手段と、拡張秘密データまたは匿名化データを用いて秘密情報のハッシュ値を中間値とするデジタル署名を生成する署名生成手段と、拡張秘密データを用いて匿名化データを生成する匿名化手段と、与えられた匿名化データの正当性を検証する匿名化データ正当性検証手段とを備え、拡張秘密データ生成手段は、秘密情報記憶手段により記憶された秘密情報と抽象化候補群情報記憶手段により記憶された秘密情報を抽象化する情報の候補群を参照して、拡張秘密データを生成し、匿名化手段は、拡張秘密データに対して、署名生成手段の署名生成の中間値と同一のハッシュ値に置き換える処理を実行して、匿名化データを生成し、署名生成手段は、拡張秘密データ生成手段より生成された拡張秘密データより、第一の署名値を、匿名化手段に生成された匿名化データより、第二の署名値をそれぞれ生成し、匿名化データ正当性検証手段は、第一の署名値と第二の署名値を比較することにより、与えられた匿名化データの正当性を検証するようにしたものである。   The configuration of the anonymization system of the present invention is preferably an anonymization system in which confidential information is anonymized by an information processing device and provided to a user, and the confidential information storage means stores the confidential information and the confidential information is abstracted. Abstraction candidate group information storage means that is a candidate group of information to be converted, extended secret data storage means that stores extended secret data in which a candidate group of information to be abstracted is added to secret information, and some information from the secret information The anonymized data storage means for storing the anonymized data with deleted or replaced, the extended secret data generation means for generating the extended secret data by using the secret information and the abstraction candidate group information, and the extended secret data or the anonymized data. Signature generation means for generating a digital signature using the hash value of secret information as an intermediate value, anonymization means for generating anonymization data using extended secret data, and verification of the validity of given anonymization data And an anonymized data validity verification means, wherein the extended secret data generation means is an information candidate for abstracting the secret information stored by the secret information storage means and the secret information stored by the abstraction candidate group information storage means. By referring to the group, the extended secret data is generated, and the anonymization means performs a process of replacing the extended secret data with the same hash value as the intermediate value of the signature generation of the signature generation means to generate the anonymized data. The signature generation means generates a first signature value from the extended secret data generated by the extended secret data generation means, and a second signature value from the anonymization data generated by the anonymization means. The anonymized data validity verification means is configured to verify the validity of the given anonymized data by comparing the first signature value and the second signature value.

本発明によれば、データに対する匿名化処理の正当性を、削除や置換などの匿名化処理を施した後でも検証できる匿名化の正当性を検証可能な匿名化システムおよび匿名化方法を提供することができる。   According to the present invention, there is provided an anonymization system and anonymization method capable of verifying the correctness of anonymization processing that can verify the correctness of anonymization processing for data even after performing anonymization processing such as deletion or replacement. be able to.

匿名化システムの全体構成図である。It is a whole block diagram of an anonymization system. 匿名化データ提供サーバの機能構成図である。It is a functional block diagram of an anonymization data provision server. 匿名化データ利用者端末の機能構成図である。It is a functional block diagram of an anonymization data user terminal. 匿名化データ提供サーバおよび匿名化データ利用者端末のハードウェア・ソフトウェア構成図である。It is a hardware / software block diagram of an anonymization data providing server and an anonymization data user terminal. 患者データテーブルのデータ構造の一例を示す図である。It is a figure which shows an example of the data structure of a patient data table. 抽象化パタン群のデータ構造の一例を示す図である。It is a figure which shows an example of the data structure of an abstraction pattern group. 拡張患者データテーブルのデータ構造の一例を示す図である。It is a figure which shows an example of the data structure of an extended patient data table. 署名データテーブルのデータ構造の一例を示す図である。It is a figure which shows an example of the data structure of a signature data table. 匿名化データのデータ構造の一例を示す図である。It is a figure which shows an example of the data structure of anonymization data. 利用者が匿名化データ提供サーバから匿名化データを取得して検証するまでの一連の処理を示すシーケンス図である。It is a sequence diagram which shows a series of processes until a user acquires anonymized data from an anonymized data providing server and verifies it. 患者データレコード拡張処理を示すフローチャートである。It is a flowchart which shows a patient data record expansion process. 署名生成処理を示すフローチャートである(その一)。It is a flow chart which shows signature generation processing (the 1). 署名生成処理を示すフローチャートである(その二)。It is a flow chart which shows signature generation processing (the 2). 検証可能匿名化処理を示すフローチャートである。It is a flowchart which shows a verifiable anonymization process. レコード削除処理を示すフローチャートである。It is a flow chart which shows record deletion processing. 属性削除処理を示すフローチャートである。It is a flowchart which shows an attribute deletion process. 属性置換処理を示すフローチャートである。It is a flowchart which shows an attribute replacement process. 署名検証処理を示すフローチャートである。It is a flowchart which shows a signature verification process.

以下、本発明の一実施形態を、図1ないし図17を用いて説明する。
本実施形態では、病院等が患者の医療情報を匿名化して医学研究、統計資料等に活用するために提供する例について説明する。
先ず、図1ないし図4を用いて匿名化システムの構成について説明する。
An embodiment of the present invention will be described below with reference to FIGS. 1 to 17.
In the present embodiment, an example will be described in which a hospital or the like anonymizes medical information of a patient and provides it for use in medical research, statistical data, and the like.
First, the configuration of the anonymization system will be described with reference to FIGS. 1 to 4.

先ず、図1を用いて匿名化システムの全体構成について説明する。
匿名化データ提供システムは、個人情報を含む情報を保持するデータ所有者(データホルダ)が、情報を匿名化した上で、データ利用者へ提供するためのシステムである。匿名化データ提供システムは、図1に示されるように、匿名化データ提供サーバ1と匿名化データ利用者端末2からなり、それらをネットワーク3により接続した形態である。
First, the overall configuration of the anonymization system will be described with reference to FIG.
The anonymized data providing system is a system in which a data owner (data holder) holding information including personal information anonymizes the information and provides it to the data user. As shown in FIG. 1, the anonymized data providing system includes an anonymized data providing server 1 and an anonymized data user terminal 2, which are connected by a network 3.

匿名化データ提供サーバ1は、データホルダが個人情報を格納し提供用の匿名化処理を行う機能を提供するサーバである。匿名化データ利用者端末2は、データ利用者が匿名化データをダウンロードし、正当性の検証を行うクライアント端末である。ネットワーク3は、インターネットのようなグローバルなネットワークであってもよいし、構内に設置されるLAN(Local Network)であってもよい。   The anonymized data providing server 1 is a server that provides a function in which a data holder stores personal information and performs an providing anonymization process. The anonymized data user terminal 2 is a client terminal where a data user downloads anonymized data and verifies the validity. The network 3 may be a global network such as the Internet or a LAN (Local Network) installed in the premises.

次に、図2を用いて匿名化データ提供サーバの機能構成について説明する。
匿名化データ提供サーバ1は、図2に示されるように、Webサーバ機能部101、レコード拡張機能部102、匿名化処理機能部103、乱数生成部104、ハッシュ値生成部105、署名生成部106、記憶部110からなる。
Next, the functional configuration of the anonymized data providing server will be described with reference to FIG.
As shown in FIG. 2, the anonymized data providing server 1 has a Web server function unit 101, a record extension function unit 102, an anonymization processing function unit 103, a random number generation unit 104, a hash value generation unit 105, and a signature generation unit 106. , Storage unit 110.

Webサーバ機能部101は、データ利用者へ患者データ名とデジタル署名値をWebページにより公開する処理を行う機能部である。レコード拡張機能部102は、匿名化処理に先立ち患者データを拡張する前処理を行う機能部である。匿名化処理機能部103は、検証可能な匿名化処理を行う機能部である。乱数生成部104は、ハッシュ値の安全性を高めるために付与する乱数を生成する機能部である。ハッシュ値生成部105は、一方向関数などによるハッシュ値の生成を行う機能部である。署名生成部106は、拡張患者データを入力としてデジタル署名を生成する機能部である。記憶部110は、匿名化データ提供サーバ1で使用されるデータを記憶する機能部である。   The Web server function unit 101 is a function unit that performs processing of disclosing the patient data name and the digital signature value to the data user on the Web page. The record expansion function unit 102 is a function unit that performs preprocessing for expanding patient data prior to anonymization processing. The anonymization processing function unit 103 is a function unit that performs verifiable anonymization processing. The random number generation unit 104 is a functional unit that generates a random number that is added to enhance the security of hash values. The hash value generation unit 105 is a functional unit that generates a hash value using a one-way function or the like. The signature generation unit 106 is a functional unit that inputs the extended patient data and generates a digital signature. The storage unit 110 is a functional unit that stores data used in the anonymized data providing server 1.

記憶部110には、患者データテーブル301、抽象化パタン群302、拡張患者データテーブル303、署名データテーブル304、匿名化データ305が格納されている。   The storage unit 110 stores a patient data table 301, an abstract pattern group 302, an extended patient data table 303, a signature data table 304, and anonymized data 305.

患者データテーブル301は、個人情報を含む患者データを格納するテーブルである。抽象化パタン群302は、患者データの匿名化における置換処理のパタン群のデータである。拡張患者データテーブル303は、匿名化処理の前処理として拡張処理を行った患者データを格納するテーブルである。署名データテーブル304は、患者データ名とその患者データの拡張患者データのデジタル署名値のペアを格納するテーブルである。匿名化データ305は、患者データを匿名化したデータである。
なお、データの具体的な構造は、後に詳説する。
The patient data table 301 is a table that stores patient data including personal information. The abstraction pattern group 302 is data of a pattern group of replacement processing in anonymization of patient data. The extended patient data table 303 is a table that stores the patient data that has undergone the extended process as a preprocess of the anonymization process. The signature data table 304 is a table that stores a pair of a patient data name and a digital signature value of extended patient data of the patient data. Anonymization data 305 is data obtained by anonymizing patient data.
The specific structure of the data will be described in detail later.

次に、図3を用いて匿名化データ利用者端末の機能構成に説明する。
匿名化データ利用者端末2は、図3に示されるように、ブラウザ機能部201、署名検証処理部202、ハッシュ値生成部203、署名生成部204、記憶部210からなる。Webブラウザ機能部201は、Webページを参照する処理を行う機能部である。署名検証処理部202は、Webページから取得した署名値と受領した匿名化データの署名値とを比較し匿名化の正当性を検証する機能部である。ハッシュ値生成部203は、一方向関数などによるハッシュ値の生成を行う機能部である。署名生成部204は、匿名化データ提供サーバ1の署名生成部106と同等の機能を有し、匿名化データを入力としてデジタル署名を生成する機能部である。記憶部210は、匿名化データ利用者端末2で使用されるデータを記憶する機能部である。
Next, the functional configuration of the anonymized data user terminal will be described with reference to FIG.
As shown in FIG. 3, the anonymized data user terminal 2 includes a browser function unit 201, a signature verification processing unit 202, a hash value generation unit 203, a signature generation unit 204, and a storage unit 210. The web browser function unit 201 is a function unit that performs a process of referring to a web page. The signature verification processing unit 202 is a functional unit that compares the signature value acquired from the Web page with the signature value of the received anonymization data to verify the validity of the anonymization. The hash value generation unit 203 is a functional unit that generates a hash value using a one-way function or the like. The signature generation unit 204 has a function equivalent to that of the signature generation unit 106 of the anonymized data providing server 1, and is a functional unit that inputs the anonymized data and generates a digital signature. The storage unit 210 is a functional unit that stores data used in the anonymized data user terminal 2.

記憶部210には、匿名化データ305、署名値311が格納される。匿名化データ305、患者データを匿名化したデータであり、匿名化データ提供サーバ1からネットワーク3経由で受領したデータである。署名値311は、Webページから取得した検証用のデジタル署名値および匿名化データ305より生成したデジタル署名値である。   Anonymized data 305 and a signature value 311 are stored in the storage unit 210. Anonymized data 305 is data obtained by anonymizing patient data, and is data received from the anonymized data providing server 1 via the network 3. The signature value 311 is a digital signature value for verification acquired from the Web page and a digital signature value generated from the anonymized data 305.

次に、図4を用いて匿名化データ提供サーバおよび匿名化データ利用者端末のハードウェア構成、ソフトウェア構成について説明する。
匿名化データ提供サーバ1のハードウェア構成としては、例えば、図4に示されるサーバ装置のような一般的な情報処理装置で実現される。また、実計算機上に構築される仮想マシンであってもよい。
Next, the hardware configuration and software configuration of the anonymized data providing server and the anonymized data user terminal will be described with reference to FIG.
The hardware configuration of the anonymized data providing server 1 is realized by a general information processing device such as the server device shown in FIG. 4, for example. It may also be a virtual machine constructed on a real computer.

匿名化データ提供サーバ1は、CPU(Central Processing Unit)401、主メモリ402、ネットワークインタフェース403、表示装置410、入力装置420がバスにより結合された形態になっている。   The anonymized data providing server 1 has a form in which a CPU (Central Processing Unit) 401, a main memory 402, a network interface 403, a display device 410, and an input device 420 are connected by a bus.

CPU401は、匿名化データ提供サーバ1の各部を制御し、主メモリ402に必要なプログラムをロードして実行する。   The CPU 401 controls each unit of the anonymized data providing server 1, loads a necessary program into the main memory 402, and executes it.

主メモリ402は、通常、RAMなどの揮発メモリで構成され、CPU401が実行するプログラム、参照するデータが記憶される。   The main memory 402 is usually composed of a volatile memory such as a RAM, and stores programs executed by the CPU 401 and data to be referred to.

ネットワークインタフェース403は、ネットワーク3と接続するためのインタフェースである。   The network interface 403 is an interface for connecting to the network 3.

表示装置410は、LCD(Liquid Crystal Display)などの情報を表示する装置である。   The display device 410 is a device that displays information such as an LCD (Liquid Crystal Display).

入力装置420は、コマンドやデータなどの情報を入力したり、装置を制御するための入力を行う装置であり、例えば、キーボードやポインティングデバイスのマウスなどである。   The input device 420 is a device for inputting information such as commands and data and for inputting to control the device, and is, for example, a keyboard or a mouse of a pointing device.

ハードディスクドライブ(HDD:Hard Disk Drive)430は、大容量の記憶容量を有しており、本実施形態を実行するためのプログラムが格納されている。匿名化データ提供サーバ1のハードディスクドライブ430には、Webサーバ機能プログラム601、レコード拡張機能プログラム602、匿名化処理機能プログラム603、乱数生成プログラム604、ハッシュ値生成プログラム605、署名生成プログラム606がインストールされている。Webサーバ機能プログラム601、レコード拡張機能プログラム602、匿名化処理機能プログラム603、乱数生成プログラム604、ハッシュ値生成プログラム605、署名生成プログラム606は、それぞれ、Webサーバ機能部101、レコード拡張機能部102、匿名化処理機能部103、乱数生成部104、ハッシュ値生成部105、署名生成部106の機能を実行するプログラムである。   A hard disk drive (HDD) 430 has a large storage capacity and stores a program for executing the present embodiment. The Web server function program 601, the record expansion function program 602, the anonymization processing function program 603, the random number generation program 604, the hash value generation program 605, and the signature generation program 606 are installed in the hard disk drive 430 of the anonymized data providing server 1. ing. The Web server function program 601, the record expansion function program 602, the anonymization processing function program 603, the random number generation program 604, the hash value generation program 605, and the signature generation program 606 are respectively the Web server function unit 101, the record expansion function unit 102, It is a program that executes the functions of the anonymization processing function unit 103, the random number generation unit 104, the hash value generation unit 105, and the signature generation unit 106.

また、ハードディスクドライブ430は、患者データテーブル301、抽象化パタン群302、拡張患者データテーブル303、署名データテーブル304、匿名化データ305が格納されている。   Further, the hard disk drive 430 stores a patient data table 301, an abstracted pattern group 302, an extended patient data table 303, a signature data table 304, and anonymized data 305.

匿名化データ利用者端末2のハードウェア構成としては、例えば、図4に示されるパーソナルコンピュータのような一般的な情報処理装置で実現される。また、スマートフォンであってもよいし、専用端末であってもよい。   The hardware configuration of the anonymized data user terminal 2 is realized by, for example, a general information processing device such as the personal computer shown in FIG. Further, it may be a smartphone or a dedicated terminal.

匿名化データ利用者端末2のハードウェア構成の各部は、匿名化データ提供サーバ1と同一である。   Each unit of the hardware configuration of the anonymized data user terminal 2 is the same as that of the anonymized data providing server 1.

匿名化データ利用者端末2のハードディスクドライブ530には、ブラウザ機能プログラム701、署名検証処理プログラム702、ハッシュ値生成プログラム703、署名生成プログラム704がインストールされている。ブラウザ機能プログラム701、署名検証処理プログラム702、ハッシュ値生成プログラム703、署名生成プログラム704は、それぞれブラウザ機能部201、署名検証処理部202、ハッシュ値生成部203、署名生成部204の各機能を実行するプログラムである。   A browser function program 701, a signature verification processing program 702, a hash value generation program 703, and a signature generation program 704 are installed in the hard disk drive 530 of the anonymized data user terminal 2. The browser function program 701, the signature verification processing program 702, the hash value generation program 703, and the signature generation program 704 execute the functions of the browser function unit 201, the signature verification processing unit 202, the hash value generation unit 203, and the signature generation unit 204, respectively. It is a program to do.

また、ハードディスクドライブ530には、匿名化データ305、署名値311が格納されている。   Further, the hard disk drive 530 stores anonymized data 305 and a signature value 311.

次に、図5ないし図9を用いて匿名化システムで用いられデータ構造について説明する。
患者データテーブル301は、患者の個人情報や関連データを格納するテーブルであり、図5に示されるように、「氏名」「住所(都道府県名)」「性別」から構成される。例えば、レコード3011は、ある患者の氏名が「日立太郎」であり、住所が「東京都」であり、性別が「男性」であることを示している。
Next, a data structure used in the anonymization system will be described with reference to FIGS.
The patient data table 301 is a table that stores personal information of a patient and related data, and as shown in FIG. 5, is composed of “name”, “address (prefecture name)”, and “sex”. For example, the record 3011 indicates that the name of a certain patient is “Hitachi Taro”, the address is “Tokyo”, and the gender is “male”.

抽象化パタン群302は、患者データテーブル301のカラムの表す属性を抽象化するときに用いられるデータであり、図6(a)に示されるように、例えば、一般化階層木302aというツリー構造のデータで表現される。   The abstract pattern group 302 is data used when abstracting the attributes represented by the columns of the patient data table 301, and as shown in FIG. 6A, for example, has a tree structure of a generalized hierarchical tree 302a. Expressed in data.

一般化階層木302aにおいては、ツリー構造の葉ノードには、最も抽象度の低い値が配置され、根ノードには最も抽象度の高い値が配置され、中間ノードは、葉ノードに近いノードから根ノードに近いノードになるにつれて抽象度が高い値が配置される。例えば、図6(a)に示される属性「住所」の一般化階層木302aは、葉ノードが「東京都」「神奈川県」などの“都道府県名”であり、中間ノードがより抽象度の高い「関東地方」「近畿地方」などの“地方名”であり、根ノードがこれらの中では最も抽象度の高い「日本」という“国名”である一般化階層木を示している。   In the generalized hierarchical tree 302a, the leaf node of the tree structure has the lowest abstraction value, the root node has the highest abstraction value, and the intermediate nodes start from nodes close to the leaf node. A value having a higher degree of abstraction is arranged as the node gets closer to the root node. For example, in the generalized hierarchical tree 302a of the attribute “address” shown in FIG. 6A, the leaf nodes are “prefecture names” such as “Tokyo” and “Kanagawa prefecture”, and the intermediate nodes are more abstract. This shows a generalized hierarchical tree in which the "region name" is high such as "Kanto region" and "Kinki region", and the root node is the "country name" of "Japan" which has the highest degree of abstraction among these.

抽象化パタン群302は、図6(b)に示される抽象化パタンテーブル302bの形式で表現されていてもよい。例えば、属性「住所」の抽象化パタンテーブル302bは、「住所」と「抽象化パタン」のカラムからなるテーブル構造のデータで表現される。抽象化パタンテーブル302bは、現在「住所」カラムの値である各“都道府県名”に対し、より抽象度の高い匿名化処理における置換対象の候補となる“地方名”および“国名”の値を対応付ける。例えば、抽象化パタンテーブル302bの「住所」の値「東京都」の抽象化パタンは、“地方名”を示す「関東地方」および“国名”を示す「日本」がより抽象度の高い匿名化処理における置換対象の候補であることを示している。   The abstract pattern group 302 may be expressed in the format of the abstract pattern table 302b shown in FIG. For example, the abstract pattern table 302b of the attribute “address” is represented by data having a table structure including columns of “address” and “abstract pattern”. In the abstraction pattern table 302b, for each "prefecture name" that is currently the value of the "address" column, the values of "regional name" and "country name" that are candidates for replacement in anonymization processing with a higher degree of abstraction. Correspond to. For example, in the abstract pattern of the value "Tokyo" of the "address" of the abstract pattern table 302b, "Kanto region" indicating "region name" and "Japan" indicating "country name" are anonymized with a higher degree of abstraction. It indicates that the candidate is a replacement target in the process.

拡張患者データテーブル303は、患者データテーブル301の患者データに対し、検証可能な匿名化処理を実現するための前処理を施したテーブルである。拡張患者データテーブル303は、置換による匿名化を実行する際に置換候補となる抽象化パタン群302の各値を患者データに追加し、さらに削除や置換の匿名化処理の代替処理として実行するハッシュ化の安全性を高めるための乱数を追加したデータ構造を有する。例えば、図7に示される例では、患者データテーブル301に対して、属性「住所」の抽象化パタンである「住所3」および「住所4」の値を追加し、さらに、各属性に対してハッシュ化の安全性を高めるための乱数である「氏名1」「住所1」「性別1」の乱数の値を追加している。   The extended patient data table 303 is a table in which the patient data of the patient data table 301 has been subjected to preprocessing for realizing verifiable anonymization processing. The extended patient data table 303 is a hash that adds each value of the abstract pattern group 302 that is a replacement candidate when anonymization by replacement is performed to patient data, and that is executed as an alternative process of anonymization process of deletion or replacement. It has a data structure with a random number added to improve the security of computerization. For example, in the example shown in FIG. 7, values of “address 3” and “address 4” which are abstract patterns of the attribute “address” are added to the patient data table 301, and further, for each attribute. Random number values of “name 1”, “address 1”, and “sex 1”, which are random numbers for enhancing the security of hashing, are added.

この属性ごとに乱数を追加するデータ構造と、後に説明する属性ごとにハッシュ値を段階的に生成するアルゴリズムにより、すべての要素に乱数を付与する場合に比べてデータサイズを削減しつつ、乱数によるハッシュ化の安全性向上をデータ全体に適用することができる。   By using a data structure that adds a random number for each attribute and an algorithm that generates a hash value step by step for each attribute that will be described later, while reducing the data size compared to when assigning random numbers to all elements, The increased security of hashing can be applied to the entire data.

署名データテーブル304は、患者データに対しての署名値を保持するテーブルであり、図8に示されるように、「対象データ」、「署名値」から構成される。「対象データ」は、患者データ名を格納するカラムであり、「署名値」は、各患者データに対し署名生成処理により生成した署名値を格納するカラムである。   The signature data table 304 is a table holding the signature value for the patient data, and as shown in FIG. 8, is composed of “target data” and “signature value”. The “target data” is a column that stores the patient data name, and the “signature value” is a column that stores the signature value generated by the signature generation process for each patient data.

本実施形態では、署名データテーブル304のデータは、匿名化データ提供サーバ1のWebサーバ機能部101部により読み込まれ、Webページとして、ネットワーク3経由で匿名化データ利用者端末2からWebブラウザ等による閲覧およびダウンロードを可能とする。   In the present embodiment, the data of the signature data table 304 is read by the Web server function unit 101 of the anonymized data providing server 1 and is used as a Web page from the anonymized data user terminal 2 via the network 3 by a Web browser or the like. You can browse and download.

匿名化データ305は、拡張患者データテーブル303に匿名化処理を実行したデータである。例えば、図9には、図7に示された、拡張患者データテーブル303のデータに対し、匿名化処理を実行した結果の一例が示されている。例えば、レコード削除されたレコード3051は、削除されたレコードであることを示すラベルである“Delete_R”および削除の代替処理として実行するハッシュ化により生成されたレコードハッシュ値“22891F”および空値を示す“−”(Null)により構成される。また、例えば、属性削除および属性置換されたレコード3052は、属性「氏名」が属性削除されたことを示すラベルである“Delete_A”、属性削除の代替処理として実行するハッシュ化により生成された属性ハッシュ値“465FC4”、属性「住所」が置換されたことを示す“Replace”、属性置換の代替処理として実行するハッシュ化により生成された属性ハッシュ値“B0D8C7”により構成される。
レコード削除、属性削除、属性置換の各処理の詳細は、後に説明する。
Anonymization data 305 is data obtained by executing anonymization processing on the extended patient data table 303. For example, FIG. 9 shows an example of the result of executing the anonymization process on the data of the extended patient data table 303 shown in FIG. 7. For example, the deleted record 3051 indicates a label “Delete_R” indicating that the record is a deleted record, a record hash value “22891F” generated by hashing executed as an alternative process of deletion, and an empty value. It is composed of "-" (Null). In addition, for example, the attribute deleted and replaced record 3052 includes a label “Delete_A”, which is a label indicating that the attribute “name” has been deleted, and an attribute hash generated by hashing executed as an alternative process of attribute deletion. The value “465FC4” is composed of “Replace” indicating that the attribute “address” has been replaced, and the attribute hash value “B0D8C7” generated by hashing executed as an alternative process of the attribute replacement.
Details of each process of record deletion, attribute deletion, and attribute replacement will be described later.

これらのハッシュ値は、署名生成処理における中間処理の値であり、このデータ構造により、匿名化データ利用者端末2の署名検証処理における署名生成処理のデータ処理量が削減できるので、署名検証処理を高速化することができる。   These hash values are intermediate processing values in the signature generation processing, and this data structure can reduce the data processing amount of the signature generation processing in the signature verification processing of the anonymized data user terminal 2. It can speed up.

次に、図10ないし図17を用いて匿名化システムの処理について説明する。   Next, processing of the anonymization system will be described with reference to FIGS. 10 to 17.

先ず、図10を用いて利用者が匿名化データ提供サーバから匿名化データを取得して検証するまでの一連の処理について説明する。
先ず、匿名化データ提供サーバ1のレコード拡張機能部102は、患者データテーブル301および抽象化パタン群302を入力とし、匿名化処理の前処理として患者データレコード拡張処理を行い、拡張患者データテーブル303へ処理結果を格納する(S01)。なお、患者データレコード拡張処理は、後に、図11を用いて詳説する。
First, a series of processes until the user acquires anonymized data from the anonymized data providing server and verifies the anonymized data will be described with reference to FIG. 10.
First, the record expansion function unit 102 of the anonymized data providing server 1 receives the patient data table 301 and the abstract pattern group 302 as input, performs patient data record expansion processing as preprocessing of anonymization processing, and expands the patient data table 303. The processing result is stored in (S01). The patient data record expansion process will be described later in detail with reference to FIG.

次に、匿名化データ提供サーバ1の署名生成部106は、拡張患者データテーブル303のデータを入力とし、デジタル署名を生成する署名生成処理を行い、生成した署名値を元となった患者データ名とともに署名データテーブル304に格納する(S02)。なお、署名生成処理は、後に、図12Aおよび図12Bを用いて詳説する。   Next, the signature generation unit 106 of the anonymized data providing server 1 receives the data of the extended patient data table 303 as input, performs a signature generation process of generating a digital signature, and uses the generated signature value as the source of the patient data name. It is also stored in the signature data table 304 (S02). The signature generation process will be described later in detail with reference to FIGS. 12A and 12B.

次に、匿名化データ提供サーバ1のWebサーバ機能部101は、署名データテーブル304に格納された患者データ名および署名値を読出し、ネットワーク3からアクセス可能なWebページを生成し、WebページのURL(Uniform Resource Locator)を匿名化データ利用者端末2のWebブラウザ機能へ通知する(S03)。   Next, the Web server function unit 101 of the anonymized data providing server 1 reads the patient data name and the signature value stored in the signature data table 304, generates a Web page accessible from the network 3, and outputs the URL of the Web page. The (Uniform Resource Locator) is notified to the web browser function of the anonymized data user terminal 2 (S03).

次に、匿名化データ利用者端末2のWebブラウザ機能部201は、患者データ名および署名値を含むWebページを取得し、患者データ名および署名値の一覧をデータ利用者にディスプレイ等の表示装置510により表示する(S06)。   Next, the web browser function unit 201 of the anonymized data user terminal 2 acquires a web page including the patient data name and the signature value, and displays a list of the patient data name and the signature value on a display device such as a display for the data user. It is displayed by 510 (S06).

次に、匿名化データのデータ利用者は、匿名化データ利用者端末2のマウスなどの入力装置520を操作し、利用する患者データの患者データ名に対応する署名値を、Webページからダウンロードし、匿名化データ利用者端末2の主メモリ502またはハードディスクドライブ530に検証用の署名値311として保存する(S05)。   Next, the data user of the anonymized data operates the input device 520 such as the mouse of the anonymized data user terminal 2 to download the signature value corresponding to the patient data name of the patient data to be used from the Web page. The signature value 311 for verification is stored in the main memory 502 or the hard disk drive 530 of the anonymized data user terminal 2 (S05).

次に、データ利用者は、利用する患者データ名および匿名化条件を匿名化データ利用者端末2のWebブラウザ機能部201に入力する。本実施形態では、以下の三つの匿名化条件が入力されるものとする。   Next, the data user inputs the patient data name to be used and the anonymization condition to the Web browser function unit 201 of the anonymized data user terminal 2. In this embodiment, the following three anonymization conditions are input.

匿名化条件1:属性「住所」が“日本”以外のレコードを削除
匿名化条件2:属性「氏名」を削除
匿名化条件3:属性「住所」を“都道府県名”から“地方名”に置換
Anonymization condition 1: Delete records where attribute "address" is other than "Japan" Anonymization condition 2: Delete attribute "name" Anonymization condition 3: Change attribute "address" from "prefecture name" to "regional name" Replacement

そして、Webブラウザ機能部201は、患者データ名および匿名化条件からなる匿名化データ取得依頼を匿名化データ提供サーバ1のWebサーバ機能部101に通知する(S06)。   Then, the Web browser function unit 201 notifies the Web server function unit 101 of the anonymized data providing server 1 of the anonymized data acquisition request including the patient data name and the anonymization condition (S06).

次に、匿名化データ提供サーバ1のWebサーバ機能部101は、通知された患者データ名および匿名化条件を匿名化処理機能部103に送信する。匿名化処理機能部103は、患者データ名および匿名化条件を入力として検証可能匿名化処理を実行して、匿名化データ305を生成し、Webサーバ機能部101に送信する。そして、Webサーバ機能部101は、匿名化データ305をデータ利用者向けのダウンロード用Webページに登録し、そのURLを匿名化データ利用者端末2のWebブラウザ機能へ通知する(S07)。なお、検証可能匿名化処理の詳細は、後に、図13を用いて詳説する。   Next, the Web server function unit 101 of the anonymization data providing server 1 transmits the notified patient data name and anonymization condition to the anonymization processing function unit 103. The anonymization process function unit 103 executes the verifiable anonymization process by inputting the patient data name and the anonymization condition, generates the anonymization data 305, and transmits the anonymization data 305 to the Web server function unit 101. Then, the Web server function unit 101 registers the anonymized data 305 in the download Web page for data users, and notifies the URL to the Web browser function of the anonymized data user terminal 2 (S07). The details of the verifiable anonymization process will be described later with reference to FIG.

次に、匿名化データ利用者端末2のWebブラウザ機能部201は、通知されたURLを入力としてデータ利用者向けのダウンロード用Webページにアクセスし、匿名化データをダウンロードにより取得し、匿名化データ利用者端末2の主メモリ502またはハードディスクドライブ530に匿名化データ305として格納する(S08)。   Next, the web browser function unit 201 of the anonymized data user terminal 2 accesses the download web page for the data user by inputting the notified URL, acquires the anonymized data by downloading, and acquires the anonymized data. The anonymized data 305 is stored in the main memory 502 or the hard disk drive 530 of the user terminal 2 (S08).

最後に、匿名化データ利用者端末2の署名検証処理部202は、匿名化データ305および検証用の署名値311を入力として、匿名化の正当性を検証する署名検証処理を実行し、正当性が検証された場合“OK”を、正当でない場合“NG”を、匿名化データ利用者端末2のディスプレイ等の表示装置510により、データ利用者に表示する(S09)。なお、署名検証処理の詳細は、後に、図17を用いて詳説する。   Finally, the signature verification processing unit 202 of the anonymized data user terminal 2 receives the anonymized data 305 and the verification signature value 311 and executes a signature verification process for verifying the anonymity of the anonymization to obtain the validity. Is verified, and if it is not valid, “NG” is displayed to the data user by the display device 510 such as the display of the anonymized data user terminal 2 (S09). The details of the signature verification process will be described later with reference to FIG.

上記の利用者が匿名化データ提供サーバから匿名化データを取得して検証するまでの一連の処理により、データ利用者は、入手した匿名化データが正当な匿名化処理で匿名化されたか否かを確認できる。これにより、例えば、医療分野では研究に用いる患者、被験者等の匿名化データの匿名化の正当性を検証できるので、不正な匿名化データにより研究結果が誤る事態を避けることができる。   Through the series of processes until the above user acquires anonymized data from the anonymized data providing server and verifies it, the data user determines whether the obtained anonymized data has been anonymized by a valid anonymization process. Can be confirmed. Thereby, for example, in the medical field, since it is possible to verify the anonymity of the anonymization data of the patient, the subject, etc. used in the research, it is possible to avoid the situation where the research result is erroneous due to the illegal anonymization data.

次に、図11を用いて患者データレコード拡張処理について説明する。
これは、図10のS01に該当する処理である。
Next, the patient data record expansion process will be described with reference to FIG.
This is a process corresponding to S01 of FIG.

先ず、匿名化データ提供サーバ1のレコード拡張機能部102は、患者データテーブルのレコード数をカウントし、レコード数Nとする(S101)。なお、図11に示した処理で使用する変数m(mは、レコードのカウンタ)の初期値は1とする。   First, the record expansion function unit 102 of the anonymized data providing server 1 counts the number of records in the patient data table and sets it as the number of records N (S101). The initial value of the variable m (m is a record counter) used in the processing shown in FIG. 11 is 1.

次に、レコード拡張機能部102は、患者データテーブルのレコードを一つ読出す(S102)。   Next, the record expansion function part 102 reads one record of the patient data table (S102).

例えば、読み出したレコードが図5に示すレコード3011の場合、当該レコードは属性「氏名」の要素が「日立太郎」、属性「住所」の要素が「東京都」、属性「性別」の要素が「男性」となる。   For example, when the read record is the record 3011 shown in FIG. 5, the element having the attribute “name” is “Hitachi Taro”, the element having the attribute “address” is “Tokyo”, and the element having the attribute “gender” is “gender”. Become a man ".

次に、レコード拡張機能部102は、抽象化パタン群302から、読出した当該レコードの抽象化パタン群を読み出す(S103)。例えば、当該レコードの属性「住所」の「東京都」の抽象化パタンを、図6(b)に示す属性「住所」の抽象化パタン群の抽象化パタンテーブル302bから読み出す場合、抽象化パタンとして、図6(b)における属性「住所」の要素が「東京都」であるレコード3021の「関東地方」「日本」を読み出す。   Next, the record expansion function unit 102 reads the abstract pattern group of the read record from the abstract pattern group 302 (S103). For example, when the abstract pattern of “Tokyo” of the attribute “address” of the record is read from the abstract pattern table 302b of the abstract pattern group of the attribute “address” shown in FIG. 6B, the "Kanto region" and "Japan" of the record 3021 in which the element of the attribute "address" is "Tokyo" is read.

次に、レコード拡張機能部102は、当該レコードに、取得した抽象化パタンの各要素を追加する(S104)。例えば、図5のレコード3011が当該レコードである場合、S103で抽象化パタンのレコード3021から読出した要素である「関東地方」「日本」を追加する。これにより、置換による匿名化時の置換先の値の候補を含むレコードが生成される。   Next, the record extension function unit 102 adds each element of the acquired abstraction pattern to the record (S104). For example, when the record 3011 in FIG. 5 is the relevant record, the elements “Kanto region” and “Japan” that are read from the record 3021 of the abstraction pattern in S103 are added. As a result, a record including the candidate for the value of the replacement destination at the time of anonymization by replacement is generated.

次に、レコード拡張機能部102は、レコードの各属性に対して乱数生成部104から取得したそれぞれ乱数を一つずつ追加する(S105)。例えば、図5のレコード3011が当該レコードである場合、三つの属性に対して、異なる三つの乱数を取得し、そのレコードに追加する。このように属性毎に一つ乱数を付与することにより、すべての要素(カラム)に乱数を付与する場合に比べてレコードのデータサイズを小さくすることができる。   Next, the record extension function unit 102 adds one random number acquired from the random number generation unit 104 to each attribute of the record (S105). For example, when the record 3011 in FIG. 5 is the record, three different random numbers are acquired for three attributes and added to the record. By adding one random number to each attribute in this way, the data size of a record can be made smaller than in the case where random numbers are added to all elements (columns).

次に、レコード拡張機能部102は、属性の置換、乱数の付与をおこなったレコードを拡張患者データテーブル303のレコードとして出力する(S106)。例えば、図5のレコード3011が当該レコードである場合、S103〜S105により生成したレコードは、図7の3031に示すように、属性「氏名」に追加された乱数を示す属性「氏名1」の値が「5EF4BE」、属性「氏名」の元の値を示す属性「氏名2」の値が「日立太郎」、属性「住所」に追加された乱数を示す属性「住所1」の値が「A754B9」、属性「住所」の元の値を示す属性「住所2」の値が「東京都」、属性「住所」に追加された抽象化パタンの第一の要素を示す属性「住所3」の値が「関東地方」、属性「住所」に追加された抽象化パタンの第二の要素を示す属性「住所4」の値が「日本」、属性「性別」に追加された乱数を示す属性「性別1」の値が「770E67」、属性「性別」の元の値を示す属性「性別2」の値が「男性」となる。   Next, the record expansion function unit 102 outputs the record in which the attribute is replaced and the random number is added, as a record of the expanded patient data table 303 (S106). For example, when the record 3011 in FIG. 5 is the record, the record generated in S103 to S105 is the value of the attribute “name 1” indicating the random number added to the attribute “name”, as indicated by 3031 in FIG. Is "5EF4BE", the value of the attribute "Name 2" indicating the original value of the attribute "Name" is "Hitachi Taro", and the value of the attribute "Address 1" indicating the random number added to the attribute "Address" is "A754B9" , The value of the attribute “address 2” indicating the original value of the attribute “address” is “Tokyo”, and the value of the attribute “address 3” indicating the first element of the abstraction pattern added to the attribute “address” is "Kanto region", the attribute "address 4" showing the second element of the abstract pattern added to the attribute "address" has the value "Japan", and the attribute "gender 1" showing a random number added to the attribute "gender 1" "770E67" and the value of the attribute "sex 2" indicating the original value of the attribute "sex" is "male".

次に、レコード拡張機能部102は、変数mの値を1インクリメントする(S107)。   Next, the record extension function unit 102 increments the value of the variable m by 1 (S107).

最後に、レコード拡張機能部102は、変数mの値と患者データのレコード数Nを比較し、mがN以下の場合には(S108:No)、S102〜S107の処理を実行し、mがNより大きい場合には(S108:Yes)、処理を終了する。   Finally, the record expansion function unit 102 compares the value of the variable m with the number N of records of the patient data, and when m is N or less (S108: No), the processes of S102 to S107 are executed, and m is If it is larger than N (S108: Yes), the process ends.

次に、図12Aおよび図12Bを用いて署名検証処理について説明する。
これは、図10のS02とS09に該当する処理であり、匿名化データ提供サーバ1の署名生成部106および匿名化データ利用者端末2の署名生成部204で実施される両者の共通の処理である。本実施形態においては、匿名化データ提供サーバ1の署名生成部106は、拡張患者データを入力としてデジタル署名値を出力し、一方、匿名化データ利用者端末2の署名生成部204は、匿名化データを入力としてデジタル署名値を出力する。
Next, the signature verification process will be described with reference to FIGS. 12A and 12B.
This is a process corresponding to S02 and S09 in FIG. 10, and is a common process performed by the signature generation unit 106 of the anonymized data providing server 1 and the signature generation unit 204 of the anonymized data user terminal 2. is there. In the present embodiment, the signature generation unit 106 of the anonymized data providing server 1 inputs the extended patient data and outputs a digital signature value, while the signature generation unit 204 of the anonymized data user terminal 2 anonymizes. Outputs a digital signature value with data as input.

以下では、署名検証処理が匿名化データ提供サーバ1の署名生成部106で行われるものとするが、匿名化データ利用者端末2の署名生成部204での署名検証処理も同様である。   In the following, the signature verification process is performed by the signature generation unit 106 of the anonymized data providing server 1, but the signature verification process by the signature generation unit 204 of the anonymized data user terminal 2 is also the same.

先ず、署名生成部106は、対象データから、レコード数N、属性数nを取得する(S201)。なお、本フローチャートで使用する変数i,j,t,q,k,l,mの初期値はすべて1とする。   First, the signature generation unit 106 acquires the number of records N and the number of attributes n from the target data (S201). The initial values of the variables i, j, t, q, k, l, m used in this flowchart are all 1.

次に、署名生成部106は、対象データから、レコードを一つ読み出す(S202)。例えば、対象データが図7の拡張患者データテーブル303の場合、読み出すレコードは、レコード3031となる。また、対象データが図9の匿名化データ305の場合、読み出す対象レコードはレコード3052となる。   Next, the signature generation unit 106 reads one record from the target data (S202). For example, when the target data is the expanded patient data table 303 in FIG. 7, the record to be read is the record 3031. If the target data is the anonymized data 305 in FIG. 9, the target record to be read is the record 3052.

次に、署名生成部106は、読み出した当該レコードの1番目の要素が、当該レコードが削除されていることを示す“Delete_R”である場合(S203:Yes)には、S204の処理を実行し、それ以外の場合(S203:Noの場合)は、S205の処理を実行する(S203)。例えば、当該レコードが匿名化データ305のレコード3051である場合には、レコードの1番目の要素が“Delete_R”であるため、次にS204の処理を実行する。一方、当該レコードが拡張患者データテーブル303のレコード3031の場合には、レコードの1番目の要素が“5EF4BE”であるため、次にS205の処理を実行する。   Next, if the first element of the read record is “Delete_R” indicating that the record is deleted (S203: Yes), the signature generation unit 106 executes the process of S204. Otherwise (S203: No), the process of S205 is executed (S203). For example, when the record is the record 3051 of the anonymized data 305, the first element of the record is “Delete_R”, and thus the process of S204 is executed. On the other hand, when the record is the record 3031 of the expanded patient data table 303, the first element of the record is “5EF4BE”, and therefore the process of S205 is executed next.

次に、署名生成部106は、当該レコードの2番目の要素の値をi番目(iは、属性のカウンタ)のレコードのハッシュ値Hriの値とし、次にS215の処理を実行し(S204)、次にS216の処理を実行する。例えば、当該レコードが匿名化データ305のレコード3051である場合、その2番目の要素の値“22891F”をHriの値とする。   Next, the signature generation unit 106 sets the value of the second element of the record as the hash value Hri of the i-th (i is an attribute counter) record, and then executes the process of S215 (S204). Then, the process of S216 is executed. For example, when the record is the record 3051 of the anonymized data 305, the value of the second element “22891F” is set as the value of Hri.

次に、署名生成部106は、当該レコードのi番目の属性Aiの要素数を取得しEinとする(S205)。例えば、拡張患者データテーブル303のレコード3031の1番目の属性「氏名」をA1とした場合、拡張された二つの属性「氏名1」「氏名2」から構成されるため、Einの値は“2”となる。   Next, the signature generation unit 106 acquires the number of elements of the i-th attribute Ai of the record and sets it as Ein (S205). For example, when the first attribute “name” of the record 3031 of the extended patient data table 303 is A1, it is composed of two extended attributes “name 1” and “name 2”, so the value of Ein is “2”. "It becomes.

次に、署名生成部106は、属性Aiの1番目の要素が、“Delete_A”である場合には(S206:“Delete_A”)、次にS207の処理を実行し、“Replace”である場合には(S206:“Replace”)、次にS208の処理を実行し、いずれでもない場合(S206:Otherwise)には、次にS209の処理を実行する(S206)。例えば、当該レコードが匿名化データ305のレコード3052、当該属性Aiが「氏名」である場合、1番目の要素が属性「氏名1」の“Delete_A”であるため、次にS207の処理を実行する。また例えば、当該レコードが匿名化データ305のレコード3052、当該属性Aiが「住所」である場合、1番目の要素が属性「住所1」の“Replace”であるため、次にS208の処理を実行する。また例えば、当該レコードが拡張患者データテーブル303の3031、当該属性Aiが「氏名」である場合、1番目の要素が属性「氏名1」の“5EF4BE”であるため、次にS209の処理を実行する。   Next, when the first element of the attribute Ai is “Delete_A” (S206: “Delete_A”), the signature generation unit 106 executes the process of S207, and when it is “Replace”. (S206: “Replace”), next executes the process of S208, and if neither (S206: Other), next executes the process of S209 (S206). For example, when the record is the record 3052 of the anonymized data 305 and the attribute Ai is “name”, the first element is “Delete_A” of the attribute “name 1”, and thus the process of S207 is executed next. . Further, for example, when the record is the record 3052 of the anonymized data 305 and the attribute Ai is “address”, the first element is “Replace” of the attribute “address 1”, and therefore the process of S208 is executed next. To do. Further, for example, when the record is 3031 of the extended patient data table 303 and the attribute Ai is “name”, the first element is “5EF4BE” of the attribute “name 1”, so the process of S209 is executed next. To do.

次に、署名生成部106は、当該属性Aiの2番目の要素の値をハッシュ値Hriの値とし(S207)、次にS216の処理を実行する。例えば、当該レコードが匿名化データ305のレコード3052、当該属性Aiが「氏名」である場合、2番目の要素の属性「氏名2」の値である“465FC4”をHriの値とする。   Next, the signature generation unit 106 sets the value of the second element of the attribute Ai as the value of the hash value Hri (S207), and then executes the process of S216. For example, if the record is a record 3052 of the anonymized data 305 and the attribute Ai is “name”, the value of the attribute “name2” of the second element “465FC4” is set as the value of Hri.

次に、署名生成部106は、当該属性Aiの2番目の要素の値をハッシュ値Hriの値とし、次にS210の処理を実行する(S208)。例えば、当該レコードが匿名化データ305のレコード3052、当該属性Aiが「住所」である場合、2番目の要素の属性「住所2」の値である“B0D8C7”をHriの値とする。   Next, the signature generation unit 106 sets the value of the second element of the attribute Ai as the hash value Hri, and then executes the processing of S210 (S208). For example, when the record is a record 3052 of the anonymized data 305 and the attribute Ai is “address”, “B0D8C7” which is the value of the attribute “address 2” of the second element is set as the value of Hri.

次に、署名生成部106は、変数j(jは、要素のカウンタ)の値を1インクリメントする(S210)。   Next, the signature generation unit 106 increments the value of the variable j (j is an element counter) by 1 (S210).

次に、署名生成部106は、当該属性Aiのj番目の要素Aijと(j+1)番目の要素Ai(j+1)を入力として、ハッシュ値生成部105からハッシュ値を取得し、当該レコードのハッシュ値Hriとする(S209)。例えば、当該レコードが拡張患者データテーブル303のレコード3031、当該属性Aiが「氏名」、i=1、j=1である場合、当該属性Aiのj番目の要素は属性「氏名1」の値“5EF4BE”、(j+1)番目の要素は属性「氏名2」の値“日立太郎”となり、この二つの値をハッシュ値生成部105に入力して得たハッシュ値“A8E0C2”をHriの値とする。   Next, the signature generation unit 106 receives the j-th element Aij and the (j + 1) -th element Ai (j + 1) of the attribute Ai as input, acquires the hash value from the hash value generation unit 105, and obtains the hash value of the record. Hri (S209). For example, if the record is a record 3031 of the extended patient data table 303, and the attribute Ai is “name”, i = 1, j = 1, the j-th element of the attribute Ai is the value of the attribute “name 1” “ 5EF4BE ", the (j + 1) th element becomes the value" Hitachi Taro "of the attribute" name 2 ", and the hash value" A8E0C2 "obtained by inputting these two values to the hash value generation unit 105 is the value of Hri. ..

次に、署名生成部106は、当該属性Aiのj番目の要素の値が“−”(Null)である場合(S212:Yes)には、次にS213の処理を実行し、それ以外の場合(S212:No)には、次にS212の処理を実行する。例えば、当該レコードが匿名化データ305のレコード3051、当該属性Aiが「住所」、j番目の要素が属性「住所1」の値“−”である場合、次にS213の処理を実行する。   Next, if the value of the j-th element of the attribute Ai is "-" (Null) (S212: Yes), the signature generation unit 106 next executes the process of S213, and otherwise. If (S212: No), then the process of S212 is executed. For example, if the record is the record 3051 of the anonymized data 305, the attribute Ai is “address”, and the jth element is the value “−” of the attribute “address 1”, then the process of S213 is executed.

次に、署名生成部106は、変数jの値を1インクリメントし、次に、S213の処理を実行する(S212)。   Next, the signature generation unit 106 increments the value of the variable j by 1, and then executes the process of S213 (S212).

次に、署名生成部106は、当該属性Aiの要素数Einと変数jの値を比較し、Einがjより大きい場合(S213:Yes)には、次にS216の処理を実行し、Einがj以下の場合(S213:No)には、次にS214の処理を実行する。   Next, the signature generation unit 106 compares the number of elements Ein of the attribute Ai with the value of the variable j, and if Ein is larger than j (S213: Yes), next executes the process of S216, and Ein is If j or less (S213: No), the process of S214 is executed next.

次に、署名生成部106は、当該属性Aiのj番目の要素Aijおよびその時点の当該レコードのハッシュ値Hriを入力として、ハッシュ値生成部105から新たなハッシュ値を取得して、新たなHriとする(S214)。例えば、当該レコードが拡張患者データテーブル303のレコード3031、当該属性Aiが「住所」、j=3であり、当該属性Aiの3番目の要素は属性「住所3」の値、“関東地方”、その時点のHriの値を“B7EF14”である場合、“関東地方”および“B7EF14”をハッシュ値生成部105に入力して得た“7C648B”を新たなHriの値とする。   Next, the signature generation unit 106 receives the j-th element Aij of the attribute Ai and the hash value Hri of the record at that time as an input, acquires a new hash value from the hash value generation unit 105, and acquires a new Hri. (S214). For example, the record is a record 3031 of the extended patient data table 303, the attribute Ai is “address”, j = 3, and the third element of the attribute Ai is the value of the attribute “address 3”, “Kanto region”, When the Hri value at that time is “B7EF14”, “7C648B” obtained by inputting “Kanto region” and “B7EF14” into the hash value generation unit 105 is set as a new Hri value.

次に、署名生成部106は、変数jの値を1インクリメントし、次に、S211の処理を実行する(S215)。   Next, the signature generation unit 106 increments the value of the variable j by 1, and then executes the process of S211 (S215).

次に、署名生成部106は、S215では、変数iの値を1インクリメントし、次にS217の処理を実行する(S216)。   Next, the signature generation unit 106 increments the value of the variable i by 1 in S215, and then executes the process of S217 (S216).

次に、署名生成部106は、属性数nと変数iを比較し、iがn以下の場合(S217:Yes)には、次にS203の処理を実行し、iがnより大きい場合(S217:No)には、次にS218の処理を実行する。   Next, the signature generation unit 106 compares the number of attributes n with the variable i. When i is n or less (S217: Yes), the process of S203 is executed next, and when i is larger than n (S217). : No), the process of S218 is executed next.

次に、nとq(qは、属性のカウンタ)を比較し、nがqより大きい場合(S218:Yes)には、次にS219を実行し、nがq以下の場合(S218:No)には、次にS221を実行する。   Next, n is compared with q (q is an attribute counter), and when n is larger than q (S218: Yes), S219 is executed next, and when n is equal to or smaller than q (S218: No). Then, S221 is executed next.

次に、署名生成部106は、ハッシュ値Hrqとハッシュ値Hr(q+1)を入力として、ハッシュ値を生成し、新たなHr(q+1)とする(S219)。   Next, the signature generation unit 106 inputs the hash value Hrq and the hash value Hr (q + 1), generates a hash value, and sets it as a new Hr (q + 1) (S219).

次に、qを1インクリメントし(S220)、S218に戻る。   Next, q is incremented by 1 (S220), and the process returns to S218.

次に、署名生成部106は、ハッシュ値HRt(tは、レコードのカウンタ)に、ハッシュ値Hrn(これは、n≧2のとき、Hr(q+1)の値に等しいことに注意)の値を代入する(S221)。   Next, the signature generation unit 106 sets the hash value HRt (t is a record counter) to the hash value Hrn (note that this is equal to the value of Hr (q + 1) when n ≧ 2). Substitute (S221).

次に、署名生成部106は、変数tの値を、1インクリメントし、変数iおよび変数jの値を1として、次にS218の処理を実行する(S217)。   Next, the signature generation unit 106 increments the value of the variable t by 1, sets the values of the variable i and the variable j to 1, and then executes the process of S218 (S217).

次に、署名生成部106は、対象データのレコード数Nと変数tの値を比較し、tがN以下の場合(S223:No)には、次にS202〜S222の処理を実行し、tがNより大きい場合(S223:Yes)には、次に図12BのS251の処理を実行する。   Next, the signature generation unit 106 compares the number N of records of the target data with the value of the variable t, and when t is N or less (S223: No), next executes the processes of S202 to S222, and t If is larger than N (S223: Yes), then the process of S251 of FIG. 12B is executed.

以降の過程は、レコードハッシュ値からなる二分木構造のハッシュ木(Hash Tree)からルートのハッシュ値を生成する過程である。   The subsequent process is a process of generating a root hash value from a hash tree having a binary tree structure composed of record hash values.

次に、署名生成部106は、レコードハッシュ値HRiの残項目数としてm(mは、レコードの処理の残項目数のカウンタ)の値を対象データのレコード数Nとし、次にS252の処理を実行する(図12BのS251)。   Next, the signature generation unit 106 sets the value of m (m is a counter of the number of remaining items of the record processing) as the number of remaining items of the record hash value HRi as the number of records N of the target data, and then performs the processing of S252. It is executed (S251 in FIG. 12B).

次に、署名生成部106は、残項目数mと変数lの値を比較し、等しくない場合(S252:No)には、次にS253の処理を実行し、等しい場合(S252:Yes)には、次にS260の処理を実行する。   Next, the signature generation unit 106 compares the number of remaining items m with the value of the variable l, and when they are not equal (S252: No), the process of S253 is executed next, and when they are equal (S252: Yes). Next executes the processing of S260.

次に、署名生成部106は、S253では、k番目(kは、レコードのカウンタ)のレコードのハッシュ値HRkと(k+1)番目のハッシュ値HR(k+1)を入力として、ハッシュ値生成部105から新たなハッシュ値を取得し、l番目(lは、レコードのカウンタ)のレコードハッシュ値HRlの新たな値とする(S253)。例えば、k=1、l=1の場合、HR1とHR2を入力としてハッシュ値生成部105から新たに取得したハッシュ値を、HR1の新たな値とする。   Next, in step S <b> 253, the signature generation unit 106 receives the hash value HRk and the (k + 1) th hash value HR (k + 1) of the kth (k is a record counter) record from the hash value generation unit 105. A new hash value is acquired and set as a new value of the 1st (l is a record counter) record hash value HRl (S253). For example, when k = 1 and l = 1, the hash value newly acquired from the hash value generation unit 105 with HR1 and HR2 as input is set as the new value of HR1.

次に、署名生成部106は、残項目数mの値が2以外の場合(S254:No)には、次にS255の処理を実行し、残項目数mの値が2である場合(S254:Yes)には、次にS260の処理を実行する。   Next, if the value of the remaining item number m is other than 2 (S254: No), the signature generation unit 106 next executes the process of S255, and if the value of the remaining item number m is 2 (S254). : Yes), the process of S260 is executed next.

次に、署名生成部106は、2k+1を新たなkの値とし、lの値を1インクリメントする(S255)。   Next, the signature generation unit 106 sets 2k + 1 as a new value of k and increments the value of l by 1 (S255).

次に、署名生成部106は、残項目数mと変数kの値を比較し、mがkよりも大きい場合(S256:Yes)には、次にS253の処理を実行し、mがk以下の場合(S256:No)には、次にS257の処理を実行する。   Next, the signature generation unit 106 compares the number of remaining items m with the value of the variable k, and when m is larger than k (S256: Yes), next executes the process of S253, where m is less than or equal to k. In the case of (S256: No), the process of S257 is then executed.

次に、署名生成部106は、残項目数mと変数kの値を比較し、mとkが異なる場合(S257:No)には、次にS258の処理を実行し、mとkが等しい場合(S257:Yes)には、次にS259の処理を実行する。   Next, the signature generation unit 106 compares the number of remaining items m with the value of the variable k, and when m and k are different (S257: No), next executes the process of S258, and m and k are equal. In the case (S257: Yes), the process of S259 is executed next.

署名生成部106は、(m/2+m%2)の値を新たな残項目数mの値とし、kおよびlの値を1として、次にS253の処理を実行する(S258)。ここで、m%2は、mを2で割った剰余を表す。   The signature generation unit 106 sets the value of (m / 2 + m% 2) as the value of the new remaining item number m, sets the values of k and l to 1, and then executes the processing of S253 (S258). Here, m% 2 represents a remainder obtained by dividing m by 2.

次に、署名生成部106は、Hrlの新しい値としてHrkの値を代入する(S259)。   Next, the signature generation unit 106 substitutes the value of Hrk as a new value of Hrl (S259).

次に、署名生成部106は、その時点のHrlの値を対象データの全体ハッシュ値Hdの値とする(S260)。   Next, the signature generation unit 106 sets the value of Hrl at that time as the value of the entire hash value Hd of the target data (S260).

最後に、署名生成部106は、HdからRSAなどのデジタル署名アルゴリズムにより署名値δを生成して出力し(S261)、処理を終了する。なお、デジタル署名アルゴリズムは、既存のアルゴリズムを利用することができる。   Finally, the signature generation unit 106 generates and outputs the signature value δ from Hd by a digital signature algorithm such as RSA (S261), and ends the processing. An existing algorithm can be used as the digital signature algorithm.

以上説明した署名生成処理により、図13〜図16を用いて後述する検証可能匿名化処理が施された匿名化データに対しては、匿名化処理後であっても、匿名化前の拡張患者データが同一である場合は、拡張患者データに対して生成される署名の値と匿名化データに対して生成される署名の値が同一となるため、匿名化の正当性を検証することが可能となる。   With respect to the anonymized data that has been subjected to the verifiable anonymization process described below with reference to FIGS. 13 to 16 by the signature generation process described above, even after the anonymization process, the extended patient before anonymization When the data is the same, the signature value generated for the extended patient data and the signature value generated for the anonymized data are the same, so the validity of the anonymization can be verified. Becomes

次に、図13を用いて検証可能匿名化処理について説明する。
これは、図10のS07に該当する処理である。
Next, the verifiable anonymization process will be described with reference to FIG.
This is a process corresponding to S07 of FIG.

先ず、匿名化データ提供サーバ1の匿名化処理機能部103は、Webサーバ機能部101から送信された患者データ名に対応する拡張患者データを拡張患者データテーブル303から読み出す(S301)。例えば、図10のS06において、対応する拡張患者データとして、図7の拡張患者データテーブル303のデータを取得する。   First, the anonymization processing function unit 103 of the anonymized data providing server 1 reads out the extended patient data corresponding to the patient data name transmitted from the Web server function unit 101 from the extended patient data table 303 (S301). For example, in S06 of FIG. 10, the data of the extended patient data table 303 of FIG. 7 is acquired as the corresponding extended patient data.

次に、匿名化処理機能部103は、Webサーバ機能部101から送信された匿名化条件を読出す(S302)。例えば、本実施形態では、以下の三つの匿名化条件を読み出すものとする。   Next, the anonymization processing function unit 103 reads the anonymization condition transmitted from the Web server function unit 101 (S302). For example, in this embodiment, the following three anonymization conditions are read.

匿名化条件1:属性「住所」が“日本”以外のレコードを削除
匿名化条件2:属性「氏名」を削除
匿名化条件3:属性「住所」を“都道府県名”から“地方名”に置換
Anonymization condition 1: Delete records where attribute "address" is other than "Japan" Anonymization condition 2: Delete attribute "name" Anonymization condition 3: Change attribute "address" from "prefecture name" to "regional name" Replacement

次に、匿名化処理機能部103は、レコードを削除する匿名化条件がある場合には、単にレコードを削除するのではなく、対象レコード全体のハッシュ化を拡張患者データに対して行うレコード削除処理を実行する(S303)。例えば、本実施形態の場合、匿名化条件1がレコードを削除する匿名化条件であるため、拡張患者データテーブル303から読み出した拡張患者データに対して、レコード削除処理を実行する。なお、レコード削除処理の詳細は、後に、図14を用いて後述する。   Next, if there is an anonymization condition for deleting a record, the anonymization processing function unit 103 does not simply delete the record, but performs hashing of the entire target record for the extended patient data. Is executed (S303). For example, in the case of the present embodiment, since the anonymization condition 1 is an anonymization condition for deleting a record, the record deletion process is executed on the extended patient data read from the extended patient data table 303. The details of the record deletion process will be described later with reference to FIG.

次に、匿名化処理機能部103は、属性を削除する匿名化条件がある場合、単に属性を削除にするのでなく、対象属性全体のハッシュ化を拡張患者データに対して行う属性削除処理を実行する(S304)。例えば、本実施形態の場合、匿名化条件2が属性「氏名」を削除する匿名化条件であるため、拡張患者データに対して属性削除処理を実行する。なお、属性削除処理の詳細は、図15を用いて後述する。   Next, if there is an anonymization condition for deleting an attribute, the anonymization processing function unit 103 executes an attribute deletion process of performing hashing of the entire target attribute on the extended patient data instead of simply deleting the attribute. Yes (S304). For example, in the case of the present embodiment, since the anonymization condition 2 is the anonymization condition for deleting the attribute “name”, the attribute deletion process is executed on the extended patient data. The details of the attribute deletion process will be described later with reference to FIG.

次に、匿名化処理機能部103は、属性の要素を置換する匿名化条件がある場合、単に、属性の要素の置換するのでなく、対象属性の一部の要素のハッシュ化を拡張患者データに対して実行する属性置換処理を実行する(S305)。例えば、本実施形態の場合、匿名化条件3が属性「住所」の要素を“都道府県名”から“地方名”に置換する匿名化条件であるため、各条患者データに対して属性置換処理を実行する。なお、属性置換処理の詳細は、図16を用いて後述する。   Next, if there is an anonymization condition that replaces the attribute element, the anonymization processing function unit 103 does not simply replace the attribute element, but rather hashes some elements of the target attribute to the extended patient data. The attribute replacement process to be executed is executed (S305). For example, in the case of the present embodiment, the anonymization condition 3 is an anonymization condition for replacing the element of the attribute “address” from “prefecture name” to “regional name”, and therefore attribute replacement processing is performed on each article patient data. To execute. The details of the attribute replacement process will be described later with reference to FIG.

最後に、匿名化処理機能部103は、S303〜S305の処理を実行後の拡張患者データを匿名化データ305としてファイルに出力し(S306)、Webサーバ機能部101へ送信し、処理を終了する。   Finally, the anonymization processing function unit 103 outputs the extended patient data after executing the processing of S303 to S305 to the file as the anonymization data 305 (S306), transmits it to the Web server function unit 101, and ends the processing. ..

次に、図14を用いてレコード削除処理について説明する。
これは、図13のS303に該当する処理である。
Next, the record deletion process will be described with reference to FIG.
This is a process corresponding to S303 of FIG.

先ず、匿名化データ提供サーバ1の匿名化処理機能部103は、レコード削除の匿名化条件を読み出す。例えば、本実施形態の場合、匿名化条件1を読み出す(S401)。なお、変数i,j,tの初期値を1とする(匿名化条件1:属性「住所」が“日本”以外のレコードを削除)。   First, the anonymization processing function unit 103 of the anonymized data providing server 1 reads the anonymization condition for record deletion. For example, in the case of the present embodiment, the anonymization condition 1 is read (S401). The initial values of the variables i, j, and t are set to 1 (anonymization condition 1: records in which the attribute "address" is other than "Japan" are deleted).

次に、匿名化処理機能部103は、拡張患者データから削除対象のレコード群Rdを特定し、Rdのレコード数をN,Rdの属性の属性数をnとする。例えば、本実施形態では、図7の拡張患者データテーブル303から読み出した拡張患者データから、属性「住所」が“日本”以外の“アメリカ”であるレコード3032をRdとし、N=1、n=3(属性「氏名」「住所」「性別」)とする(S402)。   Next, the anonymization processing function unit 103 identifies the record group Rd to be deleted from the extended patient data, and sets the number of records of Rd to N and the number of attributes of the attribute of Rd to n. For example, in the present embodiment, from the extended patient data read from the extended patient data table 303 of FIG. 7, the record 3032 whose attribute “address” is “America” other than “Japan” is Rd, and N = 1, n = 3 (attribute “name” “address” “sex”) (S402).

次に、匿名化処理機能部103は、削除対象のレコード群Rdからt番目(tは、レコードのカウンタ)のレコードを一つ読み出す。例えば、本実施形態では、S402でRdとして特定したレコード3032を読み出す(S403)。   Next, the anonymization processing function unit 103 reads one t-th (t is a record counter) record from the record group Rd to be deleted. For example, in the present embodiment, the record 3032 identified as Rd in S402 is read (S403).

次に、匿名化処理機能部103は、読み出した当該レコードのi番目(iは、属性のカウンタ)の属性Aiの要素数Einを取得する。例えば、当該レコードがレコード3032、i=1の場合、1番目の属性「氏名」の要素数2をEinの値とする(S404)。   Next, the anonymization processing function unit 103 acquires the number of elements Ein of the i-th (i is an attribute counter) attribute Ai of the read record. For example, when the record is the record 3032 and i = 1, the number of elements 2 of the first attribute “name” is set as the value of Ein (S404).

次に、匿名化処理機能部103は、属性Aiのj番目の要素Aijと(j+1)番目の要素Ai(j+1)をハッシュ値生成部105に入力してハッシュ値を取得し、レコードハッシュ値Hriの値とする。例えば、当該レコードがレコード3032、属性Aiが属性「氏名」かつj=1の場合、属性「氏名」の1番目の要素“741DC3”と2番目の要素“Tom”をハッシュ値生成部105に入力してハッシュ値を取得し、Hriの値とする(S405)。   Next, the anonymization processing function unit 103 inputs the jth element Aij and the (j + 1) th element Ai (j + 1) of the attribute Ai to the hash value generation unit 105 to acquire the hash value, and then the record hash value Hri. Value of. For example, when the record is the record 3032, the attribute Ai is the attribute “name” and j = 1, the first element “741DC3” and the second element “Tom” of the attribute “name” are input to the hash value generation unit 105. Then, the hash value is acquired and used as the value of Hri (S405).

次に、匿名化処理機能部103は、Einと変数jの値を比較し、Einがjよりも大きい場合(S406:Yes)には、次にS407の処理を実行し、Einがj以下の場合(S406:No)には、次にS410の処理を実行する(S409)。   Next, the anonymization processing function unit 103 compares Ein with the value of the variable j, and when Ein is larger than j (S406: Yes), next executes the processing of S407 so that Ein is equal to or less than j. In that case (S406: No), the process of S410 is then executed (S409).

次に、匿名化処理機能部103は、jの値を1インクリメントする(S407)。   Next, the anonymization processing function unit 103 increments the value of j by 1 (S407).

次に、匿名化処理機能部103は、属性Aiの番目の要素Aijとその時点のHriの値をハッシュ値生成部105に入力して新たなハッシュ値を取得し、新たなHriの値とする(S408)。   Next, the anonymization processing function unit 103 inputs the th element Aij of the attribute Ai and the Hri value at that time to the hash value generation unit 105 to acquire a new hash value, and sets it as a new Hri value. (S408).

次に、匿名化処理機能部103は、Einと変数jの値を比較し、Einがjよりも大きい場合(S409:Yes)には、次にS407の処理を実行し、Einがj以下の場合(S09:No)には、次にS410の処理を実行する。   Next, the anonymization processing function unit 103 compares Ein with the value of the variable j, and when Ein is larger than j (S409: Yes), next executes the processing of S407, and Ein is equal to or less than j. In this case (S09: No), the process of S410 is executed next.

次に、匿名化処理機能部103は、変数iの値を1インクリメントし、次にS411の処理を実行する(S410)。   Next, the anonymization processing function unit 103 increments the value of the variable i by 1, and then executes the processing of S411 (S410).

次に、匿名化処理機能部103は、S411では、属性数nと変数iの値を比較し、nがiよりも小さい場合(S411:No)には、次にS404の処理を実行し、nがi以上の場合(S411:Yes)には、次にS412の処理を実行する。   Next, in S411, the anonymization processing function unit 103 compares the number of attributes n with the value of the variable i, and when n is smaller than i (S411: No), next executes the processing of S404, When n is i or more (S411: Yes), the process of S412 is performed next.

次に、nとk(kは、属性のカウンタ)を比較し、nがkより大きい場合(S412:Yes)には、次にS413を実行し、nがkより大きくない場合(S412:No)には、次にS415を実行する。   Next, n is compared with k (k is an attribute counter), and when n is larger than k (S412: Yes), S413 is executed next, and when n is not larger than k (S412: No). ), Then S415 is executed.

次に、匿名化処理機能部103は、ハッシュ値Hrkとハッシュ値Hr(k+1)を入力として、ハッシュ値を生成し、新たなHr(k+1)とする(S413)。   Next, the anonymization processing function unit 103 receives the hash value Hrk and the hash value Hr (k + 1), generates a hash value, and sets it as a new Hr (k + 1) (S413).

次に、kを1インクリメントし(S414)、S412に戻る。   Next, k is incremented by 1 (S414), and the process returns to S412.

次に、匿名化処理機能部103は、変数tの値(tは、レコードのカウンタ)を1インクリメントし、変数iおよび変数jの値を1とする(S415)。   Next, the anonymization processing function unit 103 increments the value of the variable t (t is a record counter) by 1 and sets the values of the variable i and the variable j to 1 (S415).

次に、匿名化処理機能部103は、削除対象の当該レコードの1番目の要素の値をレコードが削除されたことを示すラベルである“Delete_R”とし、当該レコードの2番目の要素の値をその時点のレコードハッシュ値Hrn(これは、n≧2のとき、Hr(k+1)の値に等しいことに注意)とし、当該レコードの3番目以降の要素の値をすべて値なしを示す“−”(Null)として、次にS414の処理を実行する(S416)。例えば、当該レコードが図7のレコード3032の場合、本処理の結果は、図9のレコード3051に示す1番目の要素が「Delete_R」、2番目の要素が「22891f」というレコードハッシュ値、3番目以降の要素がすべて「−」とする。   Next, the anonymization processing function unit 103 sets the value of the first element of the record to be deleted to “Delete_R”, which is a label indicating that the record has been deleted, and sets the value of the second element of the record to the value. The record hash value Hrn at that point (note that this is equal to the value of Hr (k + 1) when n ≧ 2), and all the values of the third and subsequent elements of the record are “-” indicating no value. Then, as (Null), the process of S414 is executed (S416). For example, when the record is the record 3032 of FIG. 7, the result of this processing is that the first element shown in the record 3051 of FIG. 9 is “Delete_R”, the second element is the record hash value “22891f”, and the third All the following elements are "-".

最後に、匿名化処理機能部103は、Rdのレコード数Nと変数tの値を比較し、Nがt以上の場合(S417:No)には、次にS403以降の処理を実行し、Nがt未満の場合(S417:Yes)には、処理を終了する。   Finally, the anonymization processing function unit 103 compares the number of records N of Rd with the value of the variable t, and when N is t or more (S417: No), next executes the processing of S403 and thereafter, N If is less than t (S417: Yes), the process ends.

次に、図15を用いて属性削除処理について説明する。
これは、図13のS304に該当する処理である。
Next, the attribute deletion process will be described with reference to FIG.
This is the process corresponding to S304 of FIG.

先ず、匿名化データ提供サーバ1の匿名化処理機能部103は、属性削除の匿名化条件を読み出す(S501)。例えば、本実施形態の場合、匿名化条件2を読み出す(匿名化条件2: 属性「氏名」を削除)。なお、変数i,j,tの初期値を1とする。   First, the anonymization processing function unit 103 of the anonymized data providing server 1 reads out anonymization conditions for attribute deletion (S501). For example, in the case of the present embodiment, the anonymization condition 2 is read (anonymization condition 2: the attribute “name” is deleted). The initial values of the variables i, j, and t are 1.

次に、匿名化処理機能部103は、拡張患者データのレコード数をN、属性数をnとし、削除対象の属性群をAdとし、Adの属性数をanとする。例えば、拡張患者データが、図7に示された拡張患者データテーブル303のデータの場合、N=4、n=3、Adの要素は、属性「氏名」、Adの属性数an=1とする(S502)。   Next, the anonymization processing function unit 103 sets the number of records of the extended patient data to N, the number of attributes to n, the attribute group to be deleted to Ad, and the number of attributes of Ad to an. For example, when the extended patient data is the data of the extended patient data table 303 shown in FIG. 7, the elements of N = 4, n = 3, and Ad have the attribute “name” and the number of attributes of Ad an = 1. (S502).

次に、匿名化処理機能部103は、拡張患者データのt番目(tは、レコードのカウンタ)のレコードを読み出す(S503)。   Next, the anonymization processing function unit 103 reads the t-th (t is a record counter) record of the extended patient data (S503).

次に、匿名化処理機能部103は、Adから属性を一つ読み出しAdiとする(iは、属性のカウンタ)(S504)。   Next, the anonymization processing function unit 103 reads one attribute from Ad and sets it as Adi (i is an attribute counter) (S504).

次に、匿名化処理機能部103は、属性Adiの要素数を、Einの値とする(S505)。   Next, the anonymization processing function unit 103 sets the number of elements of the attribute Adi as the value of Ein (S505).

次に、匿名化処理機能部103は、属性Adiのj番目の要素Adijと(j+1)番目の要素Adi(j+1)をハッシュ値生成部105に入力して、新たなハッシュ値を取得し、属性ハッシュ値Haの値とする(S506)。例えば、当該レコードが図7のレコード3031、属性Adiが属性「氏名」、j=1である場合、1番目の要素「5EF4BE」と2番目の要素「日立太郎」をハッシュ値生成部105に入力して、新たなハッシュ値“465FC4”取得し、Haの値とする。   Next, the anonymization processing function unit 103 inputs the j-th element Adj and the (j + 1) -th element Adi (j + 1) of the attribute Adi to the hash value generation unit 105 to acquire a new hash value, The hash value Ha is set as the value (S506). For example, when the record is the record 3031 of FIG. 7, the attribute Adi is the attribute “name”, and j = 1, the first element “5EF4BE” and the second element “Hitachi Taro” are input to the hash value generation unit 105. Then, a new hash value “465FC4” is acquired and set as the value of Ha.

次に、匿名化処理機能部103は、Einと変数jの値を比較し、Einがjより大きい場合(S507:Yes)には、次にS508の処理を実行し、Einがj以下の場合(S507:No)には、次にS510の処理を実行する。   Next, the anonymization processing function unit 103 compares Ein with the value of the variable j, and when Ein is larger than j (S507: Yes), next executes the processing of S508, and when Ein is j or less. In (S507: No), the process of S510 is executed next.

次に、匿名化処理機能部103は、変数jの値を1インクリメントする(S508)。   Next, the anonymization processing function unit 103 increments the value of the variable j by 1 (S508).

次に、匿名化処理機能部103は、属性Adiのj番目の要素AdijとHaをハッシュ値生成部105に入力して、新たにハッシュ値を取得し、それを新たなHaの値とする(S509)。   Next, the anonymization processing function unit 103 inputs the j-th element Adj and Ha of the attribute Adi to the hash value generation unit 105, acquires a new hash value, and sets it as a new Ha value ( S509).

次に、匿名化処理機能部103は、Einと変数jの値を比較し、Einがjより大きい場合(S510:Yes)には、次にS508の処理を実行し、Einがj以下の場合(S510:No)には、次にS511の処理を実行する。   Next, the anonymization processing function unit 103 compares Ein with the value of the variable j, and when Ein is larger than j (S510: Yes), next executes the processing of S508, and when Ein is j or less. In (S510: No), the process of S511 is executed next.

次に、匿名化処理機能部103は、S511では、当該レコードの属性Adiの1番目の要素の値を属性が削除されたことを示すラベルである“Delete_A”とし、2番目の要素の値をその時点の属性ハッシュ値Haとし、3番目以降の要素の値を“−”(Null)とする(S511)。例えば、当該レコードが図7のレコード3031、削除対象の属性が「氏名」である場合、本処理の結果、図9のレコード3052に示すように、属性「氏名」の1番目の要素である「氏名1」の値が“Delete_A”とし、属性「氏名」の2番目の要素である「氏名2」の値がその時点の属性ハッシュ値Haの値である“465FC4”とし、属性「氏名」には3番以降の要素がないため“−”の値は使用しない。   Next, in step S511, the anonymization processing function unit 103 sets the value of the first element of the attribute Adi of the record as “Delete_A”, which is a label indicating that the attribute has been deleted, and sets the value of the second element to the value of the second element. The attribute hash value Ha at that time is set, and the values of the third and subsequent elements are set to "-" (Null) (S511). For example, if the record is record 3031 in FIG. 7 and the attribute to be deleted is “name”, as a result of this processing, as shown in record 3052 in FIG. 9, the first element of the attribute “name” is “ The value of "Name 1" is "Delete_A", the value of "Name 2" which is the second element of the attribute "Name" is "465FC4" which is the value of the attribute hash value Ha at that time, and is the attribute "Name". Does not use the value of "-" because there is no element after 3.

次に、匿名化処理機能部103は、変数iの値を1インクリメントする(S512)。   Next, the anonymization processing function unit 103 increments the value of the variable i by 1 (S512).

次に、匿名化処理機能部103は、Adの属性数anと変数iの値を比較し、anがi以上の場合(S513:No)には、次にS504の処理を実行し、anがiより小さい場合(S513:Yes)には、次にS514の処理を実行する。   Next, the anonymization processing function unit 103 compares the attribute number an of Ad with the value of the variable i, and when an is greater than or equal to i (S513: No), next executes the processing of S504, and an is If it is smaller than i (S513: Yes), then the process of S514 is executed.

次に、匿名化処理機能部103は、変数tの値を1インクリメントし、変数iおよび変数jの値を1とする(S514)。   Next, the anonymization processing function unit 103 increments the value of the variable t by 1 and sets the values of the variable i and the variable j to 1 (S514).

最後に、匿名化処理機能部103は、拡張患者データのレコード数Nと変数tの値を比較し、Nがt以上の場合(S515:No)には、次にS503以降の処理を実行し、Nがt未満の場合(S515:Yes)には、属性削除処理を終了する。   Finally, the anonymization processing function unit 103 compares the record number N of the extended patient data with the value of the variable t, and when N is t or more (S515: No), next executes the processing of S503 and thereafter. , N is less than t (S515: Yes), the attribute deletion process ends.

次に、図16を用いて属性置換処理について説明する。
これは、図13のS305に該当する処理である。
Next, the attribute replacement process will be described with reference to FIG.
This is a process corresponding to S305 in FIG.

先ず、匿名化データ提供サーバ1の匿名化処理機能部103は、属性置換の匿名化条件を読み出す(S601)。例えば、本実施形態の場合、匿名化条件3を読み出す(匿名化条件3 属性「住所」を“都道府県名”(住所2)から“地方名”(住所3)に置換)。なお、変数i,j,tの初期値を1とする。   First, the anonymization processing function unit 103 of the anonymized data providing server 1 reads out anonymization conditions for attribute replacement (S601). For example, in the case of this embodiment, the anonymization condition 3 is read out (the anonymization condition 3 attribute “address” is replaced from “prefecture name” (address 2) with “regional name” (address 3)). The initial values of the variables i, j, and t are 1.

次に、匿名化処理機能部103は、拡張患者データのレコード数をN,属性数をnとし、置換対象の属性群をAr、Arの属性数をrnとする。例えば、拡張患者データが拡張患者データテーブル303のデータの場合、N=4、n=3、Arの要素は属性「住所」、Arの属性数rn=1とする(S602)。   Next, the anonymization processing function unit 103 sets the number of records of the extended patient data to N, the number of attributes to n, the attribute group to be replaced to Ar, and the number of attributes of Ar to rn. For example, when the extended patient data is the data of the extended patient data table 303, N = 4, n = 3, the element of Ar has the attribute “address”, and the number of attributes of Ar rn = 1 (S602).

次に、匿名化処理機能部103は、拡張患者データのt番目(tは、レコードのカウンタ)のレコードを読み出す(S603)。   Next, the anonymization processing function unit 103 reads the t-th (t is a record counter) record of the extended patient data (S603).

次に、匿名化処理機能部103は、Arから属性を一つ読み出し、Ari(iは、属性のカウンタ)とする(S604)。   Next, the anonymization processing function unit 103 reads out one attribute from Ar and sets it as Ari (i is an attribute counter) (S604).

次に、匿名化処理機能部103は、属性Ariの置換対象となる要素数をEirの値とする(S605)。例えば、属性Arが「住所」の場合、“都道府県名”(住所2)を置換するため、Eir=2とする。   Next, the anonymization processing function unit 103 sets the number of elements to be replaced for the attribute Ari as the value of Eir (S605). For example, when the attribute Ar is “address”, “Prefecture name” (address 2) is replaced, and thus Eir = 2.

次に、匿名化処理機能部103は、属性Ariのj番目(jは、要素のカウンタ)の要素Arijと(j+1)番目の要素Ari(j+1)をハッシュ値生成部105に入力して、新たなハッシュ値を取得し、属性ハッシュ値Haの値とする(S606)。例えば、当該レコードが図7のレコード3031、属性Ariが属性「住所」、j=1である場合、1番目の要素「住所1」の値“A754B9”と2番目の要素「住所2」の値“東京都”をハッシュ値生成部105に入力して得た新たなハッシュ値“B0D8C7”をHaの値とする。   Next, the anonymization processing function unit 103 inputs the jth (j is an element counter) element Arij and the (j + 1) th element Ari (j + 1) of the attribute Ari to the hash value generation unit 105, and A unique hash value is acquired and used as the value of the attribute hash value Ha (S606). For example, when the record is the record 3031 of FIG. 7, the attribute Ari is the attribute “address”, and j = 1, the value “A754B9” of the first element “address 1” and the value of the second element “address 2” The new hash value “B0D8C7” obtained by inputting “Tokyo” into the hash value generation unit 105 is set as the value of Ha.

次に、匿名化処理機能部103は、Eirと変数j+1の値を比較し、Eirがj+1より大きい場合(Yes:S607)には、次にS608の処理を実行し、Eirがj以下の場合(No:S607)には、次にS611の処理を実行する。   Next, the anonymization processing function unit 103 compares Eir with the value of the variable j + 1, and when Eir is larger than j + 1 (Yes: S607), next executes the processing of S608, and when Eir is j or less. In (No: S607), the process of S611 is executed next.

次に、匿名化処理機能部103は、変数jの値を1インクリメントする(S608)。   Next, the anonymization processing function unit 103 increments the value of the variable j by 1 (S608).

次に、匿名化処理機能部103は、属性Ariのj番目の要素ArijとHaをハッシュ値生成部105に入力して新たなハッシュ値を取得し、それを新たなHaの値とする(S609)。   Next, the anonymization processing function unit 103 inputs the j-th element Arij and Ha of the attribute Ari to the hash value generation unit 105 to acquire a new hash value, and sets it as a new Ha value (S609). ).

次に、匿名化処理機能部103は、Eirと変数jの値を比較し、Eirがj+1より大きい場合(S610:Yes)には、次にS608の処理を実行し、Eirがj+1以下の場合(S610:No)には、次にS611の処理を実行する。   Next, the anonymization processing function unit 103 compares the value of Eir with the value of the variable j, and when Eir is larger than j + 1 (S610: Yes), next executes the processing of S608, and when Eir is j + 1 or less. In (S610: No), the process of S611 is executed next.

次に、匿名化処理機能部103は、当該レコードの属性Ariの1番目の要素の値を属性が置換されたことを示すラベルである“Replace”とし、2番目の要素の値をその時点の属性ハッシュ値Haとし、Eirが3より大きい場合は属性Ariの3番目からEir番目までの要素の値を“−”(Null)として、次にS612の処理を実行する(S611)。例えば、当該レコードが図7のレコード3031、置換対象の属性が「住所」である場合、本処理の結果、図9のレコード3052に示すように、属性「住所」の1番目の要素である「住所1」の値が”Replace“とし、2番目の要素である「住所2」の値がその時点の属性ハッシュ値Haの値である“B0D8C7”とする。   Next, the anonymization processing function unit 103 sets the value of the first element of the attribute Ari of the record as “Replace”, which is a label indicating that the attribute has been replaced, and sets the value of the second element at that time. If the attribute hash value Ha is set and Eir is larger than 3, the values of the third to Eirth elements of the attribute Ari are set to "-" (Null), and then the processing of S612 is executed (S611). For example, if the record is record 3031 in FIG. 7 and the attribute to be replaced is “address”, as a result of this processing, as shown in record 3052 in FIG. 9, it is the first element of the attribute “address”. The value of "address 1" is "Replace", and the value of the second element "address 2" is "B0D8C7" which is the value of the attribute hash value Ha at that time.

次に、匿名化処理機能部103は、変数iの値を1インクリメントする(S612)。   Next, the anonymization processing function unit 103 increments the value of the variable i by 1 (S612).

次に、匿名化処理機能部103は、Arの属性数rnと変数iの値を比較し、rnがi以上の場合(S613:No)には、次にS604の処理を実行し、rnがiより小さい場合(S613:Yes)には、次にS614の処理を実行する(S613)。   Next, the anonymization processing function unit 103 compares the number of attributes rn of Ar and the value of the variable i, and when rn is i or more (S613: No), next executes the processing of S604, where rn is If it is smaller than i (S613: Yes), then the process of S614 is executed (S613).

次に、匿名化処理機能部103は、変数tの値(tは、レコードのカウンタ)を1インクリメントし、変数iおよび変数jの値を1とする(S614)。   Next, the anonymization processing function unit 103 increments the value of the variable t (t is a record counter) by 1 and sets the values of the variable i and the variable j to 1 (S614).

最後に、匿名化処理機能部103は、拡張データのレコード数Nと変数tの値を比較し、Nがt以上の場合(S615:No)には、次にS603以降の処理を実行し、Nがt未満の場合(S615:Yesの場合)には、属性置換処理を終了する。   Finally, the anonymization processing function unit 103 compares the record number N of the extended data with the value of the variable t, and when N is t or more (S615: No), next executes the processing of S603 and thereafter, When N is less than t (S615: Yes), the attribute replacement process ends.

次に、図17を用いて署名検証処理について説明する。
これは、図10のS09に該当する処理である。
Next, the signature verification process will be described with reference to FIG.
This is a process corresponding to S09 in FIG.

先ず、匿名化データ利用者端末2の署名検証処理部202は、図10のS108において、匿名化データ利用者端末2の主メモリ502またはハードディスクドライブ530に保存された匿名化データ305および検証用の署名値である署名値311を読み出す(S701、S702)。   First, in S108 of FIG. 10, the signature verification processing unit 202 of the anonymized data user terminal 2 uses the anonymized data 305 and the verification data 305 stored in the main memory 502 or the hard disk drive 530 of the anonymized data user terminal 2 for verification. The signature value 311 which is the signature value is read (S701, S702).

次に、署名検証処理部202は、匿名化データ305を匿名化データ利用者端末2の署名生成部204に入力して、生成された署名値δを取得する(S703)。   Next, the signature verification processing unit 202 inputs the anonymized data 305 to the signature generation unit 204 of the anonymized data user terminal 2 and acquires the generated signature value δ (S703).

最後に、署名検証処理部は、検証用署名値である署名値311とδを比較し、二つの値が同一である場合(S704:Yes)には、匿名化データは、正当なものであると認定され、匿名化データ利用者端末2の表示装置510などによりデータ利用者に“OK”を表示する(S705)。一方、二つの値が異なる場合(S704:No)には、匿名化データは、改竄や取り違えなどの理由による正当なものではない認定され、匿名化データ利用者端末2の表示装置510などによりデータ利用者に“NG”を表示し(S706)、処理を終了する。   Finally, the signature verification processing unit compares the signature value 311 which is the verification signature value with δ, and when the two values are the same (S704: Yes), the anonymized data is valid. The display device 510 of the anonymized data user terminal 2 displays “OK” for the data user (S705). On the other hand, when the two values are different (S704: No), the anonymized data is not authorized due to tampering or a mistake, and the data is displayed by the display device 510 of the anonymized data user terminal 2 or the like. "NG" is displayed to the user (S706), and the process ends.

以上で説明したように、実施形態の匿名化データ提供システムでは、予め対象データの置換候補の値を対象データに追加した上で、単に削除や置換を行うのではなく、署名生成処理の中間処理であるハッシュ化によるハッシュ値への置き換えを行うので、削除や置換などの匿名化処理を施した後でも署名値による匿名化の正当性の検証を可能とすることができる。   As described above, in the anonymized data providing system of the exemplary embodiment, the value of the replacement candidate of the target data is added to the target data in advance, and the intermediate process of the signature generation process is performed instead of simply deleting or replacing. Since the hash value is replaced with the hash value, it is possible to verify the anonymity of the signature value even after the anonymization process such as deletion or replacement.

また、ハッシュ化のプロセスにおいても、元データに対し乱数を追加した上で、各属性の値と乱数を入力値としてハッシュ化を行うことにより、ハッシュ値から元データを特定するために必要な計算量が膨大となるため、匿名化データから元データを復元されるリスクを低減することができる。   Also in the hashing process, after adding a random number to the original data and performing hashing with the value of each attribute and the random number as input values, the calculation necessary to identify the original data from the hash value Since the amount is enormous, the risk of restoring the original data from the anonymized data can be reduced.

また、元データに対し乱数を追加する際に、各属性に一つ乱数を追加した上で、図12Aないし図16に示したアルゴリズムにおいて、各属性内で段階的に乱数を含むハッシュ化を行うので、元データのすべての要素に乱数を追加する場合に比べて、匿名化データのデータサイズを削減することができる。   In addition, when adding a random number to the original data, one random number is added to each attribute, and then hashing including random numbers is performed stepwise within each attribute in the algorithm shown in FIGS. 12A to 16. Therefore, the data size of the anonymized data can be reduced as compared with the case where random numbers are added to all the elements of the original data.

また、ハッシュ化処理を署名生成処理の中間処理と同一としているので、匿名化データの署名検証処理における署名生成処理を減らし、署名検証処理を高速化することができる。   Further, since the hashing process is the same as the intermediate process of the signature generation process, the signature generation process in the signature verification process of the anonymized data can be reduced and the signature verification process can be speeded up.

以上説明したように、本実施形態によれば、医療分野の研究開発等に匿名化データを活用する際に、データの削除や置換等の匿名化処理を施した場合でも匿名化の正当性の検証を可能とするので、不正な匿名化データの利用により研究成果が不正となる事態などを避けることができる。   As described above, according to the present embodiment, when utilizing anonymized data for research and development in the medical field, even if anonymization processing such as data deletion or replacement is performed, the validity of anonymization can be confirmed. Since the verification is possible, it is possible to avoid the situation where the research result is illegal due to the use of illegal anonymized data.

1…匿名化データ提供サーバ、2…匿名化データ利用者端末、3…ネットワーク、102…レコード拡張機能部、103…匿名化処理機能部、105…ハッシュ値生成部、106…署名生成部、110…記憶部、301…患者データテーブル、302…抽象化パタン群、303…拡張患者データテーブル、304…署名データテーブル、305…匿名化データ、201…ブラウザ機能部、202…署名検証処理部、203…ハッシュ値生成部、204…署名生成部、210…記憶部、311…署名値   DESCRIPTION OF SYMBOLS 1 ... Anonymized data providing server, 2 ... Anonymized data user terminal, 3 ... Network, 102 ... Record expansion function part, 103 ... Anonymization processing function part, 105 ... Hash value generation part, 106 ... Signature generation part, 110 Storage unit 301 Patient data table 302 Abstract pattern group 303 Extended patient data table 304 Signature data table 305 Anonymous data 201 Browser function unit 202 Signature verification processing unit 203 ... hash value generation unit, 204 ... signature generation unit, 210 ... storage unit, 311 ... signature value

Claims (6)

情報処理装置により秘密情報を匿名化して利用者に提供する匿名化システムであって、
秘密情報を記憶する秘密情報記憶手段と、
前記秘密情報を抽象化する情報の候補群である抽象化候補群情報記憶手段と、
前記秘密情報に抽象化する情報の候補群を追加した拡張秘密データを記憶する拡張秘密データ記憶手段と、
前記秘密情報から一部の情報を削除または置換した匿名化データを記憶する匿名化データ記憶手段と、
前記秘密情報と前記抽象化候補群情報を用い、前記拡張秘密データを生成する拡張秘密データ生成手段と、
前記拡張秘密データまたは匿名化データを用いて前記秘密情報のハッシュ値を中間値とするデジタル署名を生成する署名生成手段と、
前記拡張秘密データを用いて匿名化データを生成する匿名化手段と、
与えられた匿名化データの正当性を検証する匿名化データ正当性検証手段とを備え、
前記拡張秘密データ生成手段は、前記秘密情報記憶手段により記憶された秘密情報と前記抽象化候補群情報記憶手段により記憶された前記秘密情報を抽象化する情報の候補群を参照して、前記拡張秘密データを生成し、
前記匿名化手段は、前記拡張秘密データに対して、前記署名生成手段の署名生成の中間値と同一のハッシュ値に置き換える処理を実行して、匿名化データを生成し、
前記署名生成手段は、前記拡張秘密データ生成手段より生成された拡張秘密データより、第一の署名値を、前記匿名化手段に生成された匿名化データより、第二の署名値をそれぞれ生成し、
前記匿名化データ正当性検証手段は、前記第一の署名値と前記第二の署名値を比較することにより、与えられた匿名化データの正当性を検証することを特徴とする匿名化システム。
An anonymization system in which confidential information is anonymized by an information processing device and provided to a user.
Secret information storage means for storing secret information,
An abstraction candidate group information storage unit which is a candidate group of information for abstracting the secret information,
Extended secret data storage means for storing extended secret data in which a candidate group of information to be abstracted is added to the secret information,
Anonymized data storage means for storing anonymized data obtained by deleting or replacing some information from the secret information,
Extended secret data generation means for generating the extended secret data using the secret information and the abstraction candidate group information;
Signature generation means for generating a digital signature using the extended secret data or anonymized data as an intermediate value of the hash value of the secret information,
Anonymizing means for generating anonymized data using the extended secret data,
Anonymized data validity verification means for verifying the validity of given anonymized data,
The expanded secret data generation unit refers to a secret information stored in the secret information storage unit and a candidate group of information for abstracting the secret information stored in the abstraction candidate group information storage unit, and refers to the expansion. Generate secret data,
The anonymization means performs a process of replacing the extended secret data with the same hash value as the intermediate value of the signature generation of the signature generation means to generate anonymized data,
The signature generation unit generates a first signature value from the extended secret data generated by the extended secret data generation unit and a second signature value from the anonymization data generated by the anonymization unit. ,
The anonymization data validity verification means verifies the validity of given anonymization data by comparing the first signature value and the second signature value.
さらに、前記拡張秘密データに乱数を追加する乱数生成手段を備え、
前記署名生成手段は、中間値とするハッシュ値を、前記乱数生成手段により生成された乱数を追加した前記拡張秘密データから生成することを特徴とする請求項1記載の匿名化システム。
Furthermore, a random number generating means for adding a random number to the extended secret data is provided,
The anonymization system according to claim 1, wherein the signature generation unit generates a hash value as an intermediate value from the extended secret data to which the random number generated by the random number generation unit is added.
前記乱数生成手段は、前記拡張秘密データの各属性に対して、各々一つの乱数を追加し、
前記署名生成手段は、属性ごとに乱数を入力に含めたハッシュ値の中間値を生成することを特徴とする請求項2記載の匿名化システム。
The random number generation means adds one random number to each attribute of the extended secret data,
The anonymization system according to claim 2, wherein the signature generation unit generates an intermediate value of hash values including random numbers in the input for each attribute.
情報処理装置により秘密情報を匿名化して利用者に提供する匿名化方法であって、
秘密情報を記憶する秘密情報記憶ステップと、
前記秘密情報を抽象化する情報の候補群である抽象化候補群情報記憶ステップと、
前記秘密情報に抽象化する情報の候補群を追加した拡張秘密データを記憶する拡張秘密データ記憶ステップと、
前記秘密情報から一部の情報を削除または置換した匿名化データを記憶する匿名化データ記憶ステップと、
前記秘密情報と前記抽象化候補群情報を用い、前記拡張秘密データを生成する拡張秘密データ生成ステップと、
前記拡張秘密データまたは匿名化データを用いて前記秘密情報のハッシュ値を中間値とするデジタル署名を生成する署名生成ステップと、
前記拡張秘密データを用いて匿名化データを生成する匿名化ステップと、
与えられた匿名化データの正当性を検証する匿名化データ正当性検証ステップとを有し、
前記拡張秘密データ生成ステップにおいて、前記秘密情報記憶ステップより記憶された秘密情報と前記抽象化候補群情報記憶ステップにより記憶された前記秘密情報を抽象化する情報の候補群を参照して、前記拡張秘密データを生成し、
前記匿名化において、前記拡張秘密データに対して、前記署名生成手段の署名生成の中間値と同一のハッシュ値に置き換える処理を実行して、匿名化データを生成し、
前記署名生成ステップにおいて、前記拡張秘密データ生成手段より生成された拡張秘密データより、第一の署名値を、前記匿名化手段に生成された匿名化データより、第二の署名値をそれぞれ生成し、
前記匿名化データ正当性検証ステップにおいて、前記第一の署名値と前記第二の署名値を比較することにより、与えられた匿名化データの正当性を検証することを特徴とする匿名化方法。
A method of anonymizing confidential information by an information processing device and providing it to a user,
A secret information storing step of storing secret information,
An abstraction candidate group information storage step, which is a candidate group of information for abstracting the secret information,
An extended secret data storing step of storing extended secret data in which a candidate group of information to be abstracted is added to the secret information,
Anonymized data storage step of storing anonymized data obtained by deleting or replacing some information from the secret information,
An extended secret data generating step of generating the extended secret data using the secret information and the abstraction candidate group information;
A signature generation step of generating a digital signature using the extended secret data or anonymized data as an intermediate value of the hash value of the secret information,
Anonymizing step of generating anonymized data using the extended secret data,
Anonymized data validity verification step for verifying the validity of given anonymized data,
In the extended secret data generation step, the extension is performed by referring to the secret information stored in the secret information storage step and the candidate group of information for abstracting the secret information stored in the abstraction candidate group information storage step. Generate secret data,
In the anonymization, with respect to the extended secret data, a process of replacing the intermediate value of the signature generation of the signature generation means with the same hash value is executed to generate anonymized data,
In the signature generation step, a first signature value is generated from the extended secret data generated by the extended secret data generation means, and a second signature value is generated from the anonymization data generated by the anonymization means. ,
In the anonymization data validity verification step, the validity of the given anonymization data is verified by comparing the first signature value and the second signature value.
さらに、前記拡張秘密データに乱数を追加する乱数生成ステップを有し、
前記署名生成ステップにおいて、中間値とするハッシュ値を、前記乱数生成手段により生成された乱数を追加した前記拡張秘密データから生成することを特徴とする請求項4記載の匿名化方法。
Further, a random number generation step of adding a random number to the extended secret data,
5. The anonymization method according to claim 4, wherein in the signature generation step, a hash value as an intermediate value is generated from the extended secret data to which the random number generated by the random number generation means is added.
前記乱数生成ステップにおいて、前記拡張秘密データの各属性に対して、各々一つの乱数を追加し、
前記署名生成手段は、属性ごとに乱数を入力に含めたハッシュ値の中間値を生成することを特徴とする請求項5記載の匿名化方法。
In the random number generating step, one random number is added to each attribute of the extended secret data,
The anonymization method according to claim 5, wherein the signature generation means generates an intermediate value of hash values including random numbers in the input for each attribute.
JP2018210777A 2018-11-08 2018-11-08 Anonymization system and anonymization method Active JP7100563B2 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2018210777A JP7100563B2 (en) 2018-11-08 2018-11-08 Anonymization system and anonymization method
PCT/JP2019/041245 WO2020095662A1 (en) 2018-11-08 2019-10-21 Anonymization system and anonymization method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2018210777A JP7100563B2 (en) 2018-11-08 2018-11-08 Anonymization system and anonymization method

Publications (2)

Publication Number Publication Date
JP2020077256A true JP2020077256A (en) 2020-05-21
JP7100563B2 JP7100563B2 (en) 2022-07-13

Family

ID=70612378

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018210777A Active JP7100563B2 (en) 2018-11-08 2018-11-08 Anonymization system and anonymization method

Country Status (2)

Country Link
JP (1) JP7100563B2 (en)
WO (1) WO2020095662A1 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11443064B2 (en) * 2019-10-18 2022-09-13 Salesforce, Inc. Verifiable removal of item of confidential information from data of a record
WO2023181183A1 (en) * 2022-03-23 2023-09-28 日本電気株式会社 Information processing system, data provision device, data manipulation device, data reception device, method, and computer-readable medium

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20240013440A (en) * 2022-07-22 2024-01-30 쿠팡 주식회사 Electronic apparatus for processing data and method thereof

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008294596A (en) * 2007-05-23 2008-12-04 Hitachi Ltd Authenticity assurance system for spreadsheet data
JP2015076035A (en) * 2013-10-11 2015-04-20 ニフティ株式会社 Anonymization device, anonymization method, and anonymization program
JP2016095641A (en) * 2014-11-13 2016-05-26 ニフティ株式会社 Evaluation creation device, evaluation creation method, and evaluation creation program

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008294596A (en) * 2007-05-23 2008-12-04 Hitachi Ltd Authenticity assurance system for spreadsheet data
JP2015076035A (en) * 2013-10-11 2015-04-20 ニフティ株式会社 Anonymization device, anonymization method, and anonymization program
JP2016095641A (en) * 2014-11-13 2016-05-26 ニフティ株式会社 Evaluation creation device, evaluation creation method, and evaluation creation program

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
渡辺 知恵美 ほか: "ブルームフィルタを用いたプライバシ保護検索における攻撃モデルとデータ撹乱法の一検討", 第1回データ工学と情報マネジメントに関するフォーラム DEIMフォーラム 論文集, vol. D4-6, JPN6015006983, 9 May 2009 (2009-05-09), JP, ISSN: 0004803228 *
秦野 康生 ほか: "個人情報保護を考慮した電子文書公開システム", 情報処理学会論文誌, vol. 47, no. 3, JPN6015006528, 15 March 2006 (2006-03-15), JP, pages 667 - 675, ISSN: 0004803229 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11443064B2 (en) * 2019-10-18 2022-09-13 Salesforce, Inc. Verifiable removal of item of confidential information from data of a record
WO2023181183A1 (en) * 2022-03-23 2023-09-28 日本電気株式会社 Information processing system, data provision device, data manipulation device, data reception device, method, and computer-readable medium

Also Published As

Publication number Publication date
WO2020095662A1 (en) 2020-05-14
JP7100563B2 (en) 2022-07-13

Similar Documents

Publication Publication Date Title
US10771240B2 (en) Dynamic blockchain system and method for providing efficient and secure distributed data access, data storage and data transport
US11372980B2 (en) Blockchains for software component vulnerability databases
JP5000457B2 (en) File sharing system and file sharing method
US9703986B1 (en) Decentralized reputation service for synthetic identities
US11126743B2 (en) Sensitive data service access
Naik et al. Your identity is yours: Take back control of your identity using GDPR compatible self-sovereign identity
JP5549596B2 (en) Information processing system, method and program
WO2020095662A1 (en) Anonymization system and anonymization method
US11375015B2 (en) Dynamic routing of file system objects
US20180349619A1 (en) System and Methods for Jurisdiction Independent Data Storage in a Multi-Vendor Cloud Environment
US20230061347A1 (en) Multiple access points for data containers
Sangeetha et al. Multi keyword searchable attribute based encryption for efficient retrieval of health Records in Cloud
US11210404B2 (en) Blockchain-based state verifications of software component vulnerability database for software products
JP2008527477A (en) Method and system for managing patient identification information on a computer network for generating and storing medical data
EP3479274B1 (en) Sensitive data service storage
CN111800460A (en) Data synchronization method, device and equipment of LDAP (lightweight directory Access protocol) service node and storage medium
Ananthi et al. FSS-SDD: fuzzy-based semantic search for secure data discovery from outsourced cloud data
CN110945506B (en) Searchable encryption supporting hybrid indexes
CN112445783A (en) Method, device and server for updating database
JP7482003B2 (en) Information processing system, information processing method and computer
Ahamed Ali et al. A Comprehensive Analysis of Key Management Models in the Cloud: Design, Challenges, and Future Directions
EP3482336A1 (en) Jurisdiction independent data storage in a multi-vendor cloud environment
WO2002084527A1 (en) System and method for facilitating information transformations
JP2024065031A (en) Method, system, and computer program for enhancing and utilizing data using pseudonymous bindings
CN114676096A (en) Index storage method, file searching method, device, electronic equipment and medium

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210531

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20220621

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20220701

R150 Certificate of patent or registration of utility model

Ref document number: 7100563

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150