Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
JP7754282B2 - 情報処理システム、データ提供装置、データ加工装置、データ受領装置、方法及びプログラム - Google Patents
[go: Go Back, main page]

JP7754282B2 - 情報処理システム、データ提供装置、データ加工装置、データ受領装置、方法及びプログラム - Google Patents

情報処理システム、データ提供装置、データ加工装置、データ受領装置、方法及びプログラム

Info

Publication number
JP7754282B2
JP7754282B2 JP2024508905A JP2024508905A JP7754282B2 JP 7754282 B2 JP7754282 B2 JP 7754282B2 JP 2024508905 A JP2024508905 A JP 2024508905A JP 2024508905 A JP2024508905 A JP 2024508905A JP 7754282 B2 JP7754282 B2 JP 7754282B2
Authority
JP
Japan
Prior art keywords
data
hash value
processing
attribute
processed
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.)
Active
Application number
JP2024508905A
Other languages
English (en)
Other versions
JPWO2023181183A5 (ja
JPWO2023181183A1 (ja
Inventor
光 土田
春菜 福田
健吾 森
寿幸 一色
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.)
NEC Corp
Original Assignee
NEC Corp
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 NEC Corp filed Critical NEC Corp
Publication of JPWO2023181183A1 publication Critical patent/JPWO2023181183A1/ja
Publication of JPWO2023181183A5 publication Critical patent/JPWO2023181183A5/ja
Application granted granted Critical
Publication of JP7754282B2 publication Critical patent/JP7754282B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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 OR CALCULATING; 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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0869Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
    • 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
    • H04L9/3236Cryptographic 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 using cryptographic hash functions
    • 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
    • H04L9/3247Cryptographic 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 involving digital signatures

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • General Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Storage Device Security (AREA)

Description

本開示は、情報処理システム、データ提供装置、データ加工装置、データ受領装置、方法及びプログラムに関する。
近年、個人情報の適切な保護を前提とした匿名加工情報(匿名化データ)の利活用が進みつつある。研究者等が匿名化データを利用する場合、データが不当に改変されていないこと(データの正当性)は、データの利活用結果の正当性を保証するために重要となる。すなわち、不正なデータを利用した場合、データから得られる知見も不正となり、データに基づく施策やサービスが不適切となるおそれがある。電子データに対して、データが改変されていないことを検証可能な技術として、デジタル署名技術がある。しかしながら、単純にデジタル署名を適用した場合、データに匿名化処理を施すと、データが改変されたこととなるので、正当性を検証できないおそれがある。
このような技術に関連し、非特許文献1は、データに対する匿名化処理の正当性検証技術として、墨塗り署名技術を応用した匿名化の正当性検証方式を開示する。非特許文献1は、署名作成者、匿名加工者、検証者間でやり取りするデータを削減可能な方法を開示する。非特許文献1にかかる技術では、元データとは別に、元データの属性値それぞれに対応する乱数を示す乱数データ及び一般化階層木を管理し、それぞれの情報を参照しながら署名生成、匿名加工及び署名検証の処理を行う。
冨樫由美子他、「匿名化の正当性を検証可能な匿名化署名方式の提案」、Computer Security Symposium 2021、26-29 October 2021
非特許文献1にかかる技術では、「あるセルの値が加工されるとき,そのセルの値と同じ属性値を持つ同属性の他のセルについても同様の加工がおこなわれる」という制限を加えることで、伝送されるデータ量を抑制している。つまり、非特許文献1にかかる技術では、ある属性について、異なるレコード(セル)であっても同じ属性値に対しては同じ加工を施す必要がある、という制約がある。しかしながら、ある属性の同じ属性値であっても、レコードごとに異なる加工を施すことが必要な場合もある。したがって、このような同じ属性値に対する加工の制約を除去することが望まれる。
本開示の目的は、このような課題を解決するためになされたものであり、データに対する加工の制約を課すことなしに、伝送されるデータ量を抑制することが可能なシステム、装置、方法及びプログラムを提供することにある。
本開示にかかる情報処理システムは、少なくとも1つの属性に関する複数のデータで構成されるデータセットを提供するデータ提供装置と、前記複数のデータのうちの少なくとも一部のデータを加工するデータ加工装置と、一部のデータが加工された前記データセットを受領するデータ受領装置と、を有し、
前記データ提供装置は、前記属性のそれぞれについて加工ルールを設定する加工ルール設定手段と、前記加工ルールにおいて加工の対象とされた属性に関する加工対象データがとり得る複数の属性値に対応する状態に対して所定の乱数を設定する乱数設定手段と、前記複数のデータそれぞれに対応する署名用ハッシュ値を算出する署名用ハッシュ値算出手段と、前記署名用ハッシュ値を用いてデジタル署名を生成する署名生成手段と、前記データセットと、前記デジタル署名と、前記乱数とを、前記データ加工装置に送信する第1の送信手段と、を有し、前記署名用ハッシュ値算出手段は、前記加工対象データについて、当該加工対象データと当該加工対象データに対応する属性値について設定された前記乱数とを用いて得られたデータ列に対して先頭ハッシュ値を算出し、当該加工対象データと当該先頭ハッシュ値とを組み合わせたデータ列に対して中間ハッシュ値を算出し、当該中間ハッシュ値を用いて、当該加工対象データに対応する署名用ハッシュ値を算出し、
前記データ加工装置は、前記加工対象データに対して加工を施すための処理を行う加工処理手段と、前記加工対象データそれぞれに対応する加工後ハッシュ値を算出する加工後ハッシュ値算出手段と、前記加工対象データに対して加工が施されたデータセットと、前記加工対象データに対応する前記加工後ハッシュ値と、前記デジタル署名とを、前記データ受領装置に送信する第2の送信手段と、を有し、前記加工後ハッシュ値算出手段は、加工が施された前記加工対象データについて、加工前の当該加工対象データと加工前の当該加工対象データに対応する属性値について設定された前記乱数とを用いて得られたデータ列に対して先頭ハッシュ値を算出し、加工前の当該加工対象データと当該先頭ハッシュ値とを組み合わせたデータ列に対して中間ハッシュ値を算出し、当該中間ハッシュ値を用いて、加工後の当該加工対象データに対応する加工後ハッシュ値を算出し、
前記データ受領装置は、前記加工対象データに対して加工が施されたデータセットと、前記加工後ハッシュ値とを用いて、前記複数のデータそれぞれに対応する検証用ハッシュ値を算出する検証用ハッシュ値算出手段と、前記検証用ハッシュ値と前記デジタル署名とに対して検証を行う検証手段と、を有する。
また、本開示にかかるデータ提供装置は、少なくとも1つの属性に関する複数のデータで構成されるデータセットにおける前記属性のそれぞれについて加工ルールを設定する加工ルール設定手段と、前記加工ルールにおいて加工の対象とされた属性に関する加工対象データがとり得る複数の属性値に対応する状態に対して所定の乱数を設定する乱数設定手段と、前記複数のデータそれぞれに対応する署名用ハッシュ値を算出する署名用ハッシュ値算出手段と、前記署名用ハッシュ値を用いてデジタル署名を生成する署名生成手段と、前記データセットと、前記デジタル署名と、前記乱数とを、前記複数のデータのうちの少なくとも一部のデータを加工するデータ加工装置に送信する送信手段と、を有し、前記署名用ハッシュ値算出手段は、前記加工対象データについて、当該加工対象データと当該加工対象データに対応する属性値について設定された前記乱数とを用いて得られたデータ列に対して先頭ハッシュ値を算出し、当該加工対象データと当該先頭ハッシュ値とを組み合わせたデータ列に対して中間ハッシュ値を算出し、当該中間ハッシュ値を用いて、当該加工対象データに対応する署名用ハッシュ値を算出する。
また、本開示にかかるデータ加工装置は、少なくとも1つの属性に関する複数のデータで構成されるデータセットを提供するデータ提供装置において前記属性のそれぞれについて設定された加工ルールにおいて加工の対象とされた属性に関する加工対象データに対して加工を施すための処理を行う加工処理手段と、前記加工対象データそれぞれに対応する加工後ハッシュ値を算出する加工後ハッシュ値算出手段と、前記加工対象データに対して加工が施されたデータセットと、前記加工対象データに対応する前記加工後ハッシュ値と、前記データ提供装置において生成されたデジタル署名とを、一部のデータが加工された前記データセットを受領するデータ受領装置に送信する送信手段と、を有し、前記加工後ハッシュ値算出手段は、加工が施された前記加工対象データについて、加工前の当該加工対象データと加工前の当該加工対象データに対応する属性値について設定された乱数とを用いて得られたデータ列に対して先頭ハッシュ値を算出し、加工前の当該加工対象データと当該先頭ハッシュ値とを組み合わせたデータ列に対して中間ハッシュ値を算出し、当該中間ハッシュ値を用いて、加工後の当該加工対象データに対応する加工後ハッシュ値を算出する。
また、本開示にかかるデータ受領装置は、少なくとも1つの属性に関する複数のデータで構成されるデータセットを提供するデータ提供装置において前記属性のそれぞれについて設定された加工ルールにおいて加工の対象とされた属性に関する加工対象データに対して加工が施されたデータセットと、前記複数のデータのうちの少なくとも一部のデータを加工するデータ加工装置において算出され前記加工対象データそれぞれに対応する加工後ハッシュ値とを用いて、前記複数のデータそれぞれに対応する検証用ハッシュ値を算出する検証用ハッシュ値算出手段と、前記検証用ハッシュ値と、前記データ提供装置において生成されたデジタル署名とに対して検証を行う検証手段と、を有する。
また、本開示にかかる情報処理方法は、少なくとも1つの属性に関する複数のデータで構成されるデータセットを提供するデータ提供装置によって、前記属性のそれぞれについて加工ルールを設定し、前記加工ルールにおいて加工の対象とされた属性に関する加工対象データがとり得る複数の属性値に対応する状態に対して所定の乱数を設定し、前記加工対象データについて、当該加工対象データと当該加工対象データに対応する属性値について設定された前記乱数とを用いて得られたデータ列に対して先頭ハッシュ値を算出し、当該加工対象データと当該先頭ハッシュ値とを組み合わせたデータ列に対して中間ハッシュ値を算出し、当該中間ハッシュ値を用いて、当該加工対象データに対応する署名用ハッシュ値を算出することにより、前記複数のデータそれぞれに対応する署名用ハッシュ値を算出し、前記署名用ハッシュ値を用いてデジタル署名を生成し、前記データセットと、前記デジタル署名と、前記乱数とを、前記複数のデータのうちの少なくとも一部のデータを加工するデータ加工装置に送信し、
前記データ加工装置によって、前記加工対象データに対して加工を施すための処理を行い、加工が施された前記加工対象データについて、加工前の当該加工対象データと加工前の当該加工対象データに対応する属性値について設定された乱数とを用いて得られたデータ列に対して先頭ハッシュ値を算出し、加工前の当該加工対象データと当該先頭ハッシュ値とを組み合わせたデータ列に対して中間ハッシュ値を算出し、当該中間ハッシュ値を用いて、加工後の当該加工対象データに対応する加工後ハッシュ値を算出することにより、前記加工対象データそれぞれに対応する加工後ハッシュ値を算出し、前記加工対象データに対して加工が施されたデータセットと、前記加工対象データに対応する前記加工後ハッシュ値と、前記デジタル署名とを、一部のデータが加工された前記データセットを受領するデータ受領装置に送信し、
前記データ受領装置によって、前記加工対象データに対して加工が施されたデータセットと、前記加工後ハッシュ値とを用いて、前記複数のデータそれぞれに対応する検証用ハッシュ値を算出し、前記検証用ハッシュ値と前記デジタル署名とに対して検証を行う。
また、本開示にかかるデータ提供方法は、少なくとも1つの属性に関する複数のデータで構成されるデータセットにおける前記属性のそれぞれについて加工ルールを設定し、前記加工ルールにおいて加工の対象とされた属性に関する加工対象データがとり得る複数の属性値に対応する状態に対して所定の乱数を設定し、前記加工対象データについて、当該加工対象データと当該加工対象データに対応する属性値について設定された前記乱数とを用いて得られたデータ列に対して先頭ハッシュ値を算出し、当該加工対象データと当該先頭ハッシュ値とを組み合わせたデータ列に対して中間ハッシュ値を算出し、当該中間ハッシュ値を用いて、当該加工対象データに対応する署名用ハッシュ値を算出することにより、前記複数のデータそれぞれに対応する署名用ハッシュ値を算出し、前記署名用ハッシュ値を用いてデジタル署名を生成し、前記データセットと、前記デジタル署名と、前記乱数とを、前記複数のデータのうちの少なくとも一部のデータを加工するデータ加工装置に送信する。
また、本開示にかかるデータ加工方法は、少なくとも1つの属性に関する複数のデータで構成されるデータセットを提供するデータ提供装置において前記属性のそれぞれについて設定された加工ルールにおいて加工の対象とされた属性に関する加工対象データに対して加工を施すための処理を行い、加工が施された前記加工対象データについて、加工前の当該加工対象データと加工前の当該加工対象データに対応する属性値について設定された乱数とを用いて得られたデータ列に対して先頭ハッシュ値を算出し、加工前の当該加工対象データと当該先頭ハッシュ値とを組み合わせたデータ列に対して中間ハッシュ値を算出し、当該中間ハッシュ値を用いて、加工後の当該加工対象データに対応する加工後ハッシュ値を算出することにより、前記加工対象データそれぞれに対応する加工後ハッシュ値を算出し、前記加工対象データに対して加工が施されたデータセットと、前記加工対象データに対応する前記加工後ハッシュ値と、前記データ提供装置において生成されたデジタル署名とを、一部のデータが加工された前記データセットを受領するデータ受領装置に送信する。
また、本開示にかかるデータ受領方法は、少なくとも1つの属性に関する複数のデータで構成されるデータセットを提供するデータ提供装置において前記属性のそれぞれについて設定された加工ルールにおいて加工の対象とされた属性に関する加工対象データに対して加工が施されたデータセットと、前記複数のデータのうちの少なくとも一部のデータを加工するデータ加工装置において算出され前記加工対象データそれぞれに対応する加工後ハッシュ値とを用いて、前記複数のデータそれぞれに対応する検証用ハッシュ値を算出し、前記検証用ハッシュ値と、前記データ提供装置において生成されたデジタル署名とに対して検証を行う。
また、本開示にかかる第1のプログラムは、少なくとも1つの属性に関する複数のデータで構成されるデータセットにおける前記属性のそれぞれについて加工ルールを設定するステップと、前記加工ルールにおいて加工の対象とされた属性に関する加工対象データがとり得る複数の属性値に対応する状態に対して所定の乱数を設定するステップと、前記加工対象データについて、当該加工対象データと当該加工対象データに対応する属性値について設定された前記乱数とを用いて得られたデータ列に対して先頭ハッシュ値を算出し、当該加工対象データと当該先頭ハッシュ値とを組み合わせたデータ列に対して中間ハッシュ値を算出し、当該中間ハッシュ値を用いて、当該加工対象データに対応する署名用ハッシュ値を算出することにより、前記複数のデータそれぞれに対応する署名用ハッシュ値を算出するステップと、前記署名用ハッシュ値を用いてデジタル署名を生成するステップと、前記データセットと、前記デジタル署名と、前記乱数とを、前記複数のデータのうちの少なくとも一部のデータを加工するデータ加工装置に送信するステップと、をコンピュータに実行させる。
また、本開示にかかる第2のプログラムは、少なくとも1つの属性に関する複数のデータで構成されるデータセットを提供するデータ提供装置において前記属性のそれぞれについて設定された加工ルールにおいて加工の対象とされた属性に関する加工対象データに対して加工を施すための処理を行うステップと、加工が施された前記加工対象データについて、加工前の当該加工対象データと加工前の当該加工対象データに対応する属性値について設定された乱数とを用いて得られたデータ列に対して先頭ハッシュ値を算出し、加工前の当該加工対象データと当該先頭ハッシュ値とを組み合わせたデータ列に対して中間ハッシュ値を算出し、当該中間ハッシュ値を用いて、加工後の当該加工対象データに対応する加工後ハッシュ値を算出することにより、前記加工対象データそれぞれに対応する加工後ハッシュ値を算出するステップと、前記加工対象データに対して加工が施されたデータセットと、前記加工対象データに対応する前記加工後ハッシュ値と、前記データ提供装置において生成されたデジタル署名とを、一部のデータが加工された前記データセットを受領するデータ受領装置に送信するステップと、をコンピュータに実行させる。
また、本開示にかかる第3のプログラムは、少なくとも1つの属性に関する複数のデータで構成されるデータセットを提供するデータ提供装置において前記属性のそれぞれについて設定された加工ルールにおいて加工の対象とされた属性に関する加工対象データに対して加工が施されたデータセットと、前記複数のデータのうちの少なくとも一部のデータを加工するデータ加工装置において算出され前記加工対象データそれぞれに対応する加工後ハッシュ値とを用いて、前記複数のデータそれぞれに対応する検証用ハッシュ値を算出するステップと、前記検証用ハッシュ値と、前記データ提供装置において生成されたデジタル署名とに対して検証を行うステップと、をコンピュータに実行させる。
本開示によれば、データに対する加工の制約を課すことなしに、伝送されるデータ量を抑制することが可能なシステム、装置、方法及びプログラムを提供できる。
比較例にかかる技術を説明するための図である。 比較例にかかる技術を説明するための図である。 比較例にかかる技術を説明するための図である。 実施の形態1にかかる情報処理システムの構成を示す図である。 実施の形態1にかかるデータ提供装置の構成を示す図である。 実施の形態1にかかるデータ加工装置の構成を示す図である。 実施の形態1にかかるデータ受領装置の構成を示す図である。 実施の形態1にかかる情報処理システムによって実行される情報処理方法を示すフローチャートである。 実施の形態1にかかるデータ提供装置によって実行されるデータ提供処理を示すフローチャートである。 実施の形態1にかかるデータ加工装置によって実行されるデータ加工処理を示すフローチャートである。 実施の形態1にかかるデータ受領装置によって実行されるデータ受領処理を示すフローチャートである。 実施の形態2にかかる情報処理システムにおける処理の流れを説明するための図である。 実施の形態2にかかる加工ルール設定部の処理を説明するための図である。 実施の形態2にかかる一般化階層木を例示する図である。 実施の形態2にかかる乱数表を例示する図である。 実施の形態2にかかるデータ加工装置の処理を説明するための図である。 実施の形態3にかかる情報処理システムにおける処理の流れを説明するための図である。 実施の形態3にかかるデータ加工装置の処理を説明するための図である。 実施の形態4にかかる情報処理システムにおける処理の流れを説明するための図である。 実施の形態4にかかる一般化階層木を例示する図である。 実施の形態4にかかるデータ加工装置の処理を説明するための図である。 本実施の形態にかかる適用例を説明するための図である。 各実施形態に係る装置およびシステムを実現可能な計算処理装置のハードウェア構成例を概略的に示すブロック図である。
(本実施の形態の概要)
本実施の形態の説明に先立って、本実施の形態の概要について説明する。なお、以下、本実施の形態を説明するが、以下の実施形態は請求の範囲にかかる発明を限定するものではない。また、実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。また、以下の説明において、使用されるインデックス(英文字)は、本明細書全体で共通のものとは限らない。
まず、匿名加工を伴う署名検証にかかる基本的なデータの流れについて説明する。例えば、元データ(データセット)は、1つ以上のレコードで構成されている。レコードは、データのまとまりの単位である。元データが医療データである場合、レコードは、ある患者に関する1つ以上のデータを含む。また、例えば、元データは、1つ以上の属性で構成されている。属性は、データの種類を示す。属性は、例えば、各レコードに対応する氏名、住所、年齢、性別等を含む。また、例えば、元データは、行及び列を有するテーブル形式で構成されていてもよい。この場合、各行がレコードに対応し、各列が属性に対応し得る。テーブル形式の各セルに対応する各データは、属性に対応する属性値を有する。属性が「住所」である場合、属性値は、例えば「東京」、「神奈川」及び「大阪」等を示し得る。
また、元データ(データセット)を提供するデータ提供者は、乱数を用いて元データに対して署名(電子署名;デジタル署名)を作成し、元データ及び署名をデータ加工者に送る。データ加工者は、元データに対して加工(匿名加工)を行い、加工後のデータ及び署名を、データ受領者に送る。加工(匿名加工)には、例えば、「削除」及び「一般化」がある。「削除」は、データ(属性値)を削除する加工である。「一般化」は、属性値を一般化(抽象化)する加工である。データ受領者(データ検証者)は、加工後のデータと署名とを用いて署名検証を行い、加工後のデータの正当性を検証する。データ受領者は、正当性が検証された加工後のデータを利活用できる。
ここで、本実施の形態について説明する前に、比較例について説明する。
図1~図3は、比較例にかかる技術を説明するための図である。比較例は、非特許文献1にかかる技術に対応する。図1は、比較例において使用されるデータを示す。図1に示すように、比較例では、元データD1、乱数データDr、及び一般化階層木Trが使用される。
元データD1では、行ごとに1つのレコードが構成されている。図1の例では、元データD1は、5個のレコードを有する。また、元データD1は、1つ以上の属性を有する。図1の例では、元データD1は、属性「住所」を有する。1行目の属性値は「東京」であり、2行目の属性値は「東京」であり、3行目の属性値は「神奈川」であり、4行目の属性値は「神奈川」であり、5行目の属性値は「大阪」である。
乱数データDrは、各属性について、とり得る属性値に対応する乱数を示している。図1に例示する乱数データDrは、属性「住所」の各属性値に対応する乱数を示している。「東京」に対応する乱数はRであり、「神奈川」に対応する乱数はRであり、「大阪」に対応する乱数はRである。比較例においては、乱数データDrを予め準備しておくことにより、伝送されるデータ量を抑制するようにしている。また、比較例において、乱数データDrは、データ提供者、データ加工者及びデータ受領者によって用いられ得る。
一般化階層木Trは、階層構造(ツリー構造)を有し、対応する属性の属性値を一般化(抽象化)するルールを示す。図1には、属性「住所」に対応する一般化階層木Trが示されている。一般化階層木Trにおいて、階層構造の上のノードであるほど、より一般化(抽象化)された属性値が配置され、階層構造の下のノードであるほど、より一般化(抽象化)されていない属性値が配置されている。階層構造の最も下の階層(階層「1」)である葉ノードには、最も抽象度の低い(最も一般化されていない)属性値が配置されている。一方、階層構造の最も上の階層(階層「l」)である根ノードには、最も抽象度の高い(最も一般化されている)属性値が配置されている。なお、lは、一般化階層木Trの高さを示す。図1に例示する一般化階層木Trでは、l=3である。
図1に例示した一般化階層木Trでは、階層「1」である葉ノードは、「東京都」又は「神奈川県」等の「都道府県名」に対応する。また、階層「2」である中間ノードは、より抽象度の高い「関東(地方)」又は「近畿(地方)」等の「地方名」に対応する。また、階層「3」である根ノードは、最も抽象度の高い「日本」という「国名」に対応する。比較例において、一般化階層木Trは、データ提供者、データ加工者及びデータ受領者によって用いられる。
ここで、上述したように、比較例については、「あるセルの値が加工されるとき、そのセルの値と同じ属性値を持つ同属性の他のセルについても同様の加工がおこなわれる」という制限を加えることで、データ量を抑制している。つまり、比較例では、ある属性について、異なるレコード(セル)であっても同じ属性値に対しては同じ加工を施す必要がある、という制約がある。
図2は、比較例にかかる、削除の加工を行う場合について説明するための図である。(a)の署名生成時においては、データ提供者は、各セルについて、対応する属性値と当該属性値に対応する乱数とを結合したデータのハッシュ値を、当該セルのハッシュ値とする。ただし、同じ属性中に複数の同じ属性値が存在する場合、データ提供者は、当該属性値に対応する乱数から新たな乱数を生成し、ハッシュ値の計算に用いる。例えば、属性値Aに対する乱数がRであり、属性中に属性値Aが3回出現する場合、各属性値に対してそれぞれR,R+1,R+2の乱数を結合する。このようにして、データ提供者は、各属性に対応するハッシュ値H2を算出する。そして、ハッシュ値H2から1つのハッシュ値を算出し、そのハッシュ値に対する署名を生成する。
また、(b)の匿名化(削除加工)時においては、データ加工者は、署名生成者が設定した匿名加工方針の範囲で、データ利用者の要望に応じた匿名加工を実施する。加工処理が行われない属性については、元データの値が匿名化データとして検証者に提供される。このことは、図3の場合も同様である。
また、データ加工者は、削除対象に対して、署名生成時と同様に、削除対象の属性値と対応する乱数とを結合したデータのハッシュ値を、当該属性の属性値に置換する。属性内に同じ属性値が複数含まれる場合は、データ加工者は、当該属性値に対応する乱数から新たな乱数を生成し、ハッシュ値の計算に用いる。図2の例では、属性値「神奈川」が削除対象となっている。データ受領者(データ検証者)には、匿名化データD2、及び、削除対象である属性値「神奈川」とその乱数とが削除された乱数データDr2が提供される。
また、(c)の署名検証時においては、データ受領者(データ検証者)は、乱数データDr2において匿名化データD2における各属性値に対する乱数が存在する場合(加工が行われていない場合)は、署名生成時と同様にハッシュ値計算を行う。図2の例では、属性値「東京」及び属性値「大阪」については、署名生成時と同様にハッシュ値計算が行われる。一方、乱数データDr2において匿名化データD2における各属性値に対する乱数が存在しない場合(加工(削除)が行われている場合)、データ受領者は、匿名化データD2の値をそのまま、そのセルに対応するハッシュ値とする。図2の例では、属性値「神奈川」については、匿名化データD2の値をそのまま、そのセルのハッシュ値とする。
このようにして、データ受領者は、匿名化データD2に対応するハッシュ値H2’を算出する。そして、データ受領者は、ハッシュ値H2’から1つのハッシュ値を算出する。そして、データ受領者は、元データD1に対応するハッシュ値H2に関する署名を検証鍵で復号した値と、匿名化データD2に対応するハッシュ値H2’と一致するか否かを判定することで、匿名化データD2の正当性を検証する。両者が一致すれば匿名化データD2の検証は成功し、両者が一致しなければ匿名化データD2の検証は失敗する。
図3は、比較例にかかる、一般化の加工を行う場合について説明するための図である。(a)の署名生成時においては、データ提供者は、各セルについて、「属性値と乱数とを結合したデータのハッシュ値を、一般化階層木Trにおける1つ上の階層の属性値に対する乱数として使用する」というルールで一般化を繰り返す。そして、データ提供者は、最上位階層と対応する乱数とを結合したデータのハッシュ値を、当該セルのハッシュ値とする。
例えば、1行目の属性値「東京」のセルでは、データ提供者は、属性値「東京」とそれに対応する乱数Rとを結合したデータのハッシュ値「E31843」を、属性値「東京」の1つ上の階層の属性値「関東」に対応する乱数として使用する。そして、データ提供者は、属性値「関東」とそれに対応する乱数「E31843」とを結合したデータのハッシュ値「084BF6」を、属性値「関東」の1つ上の階層の属性値「日本」に対応する乱数として使用する。
そして、データ提供者は、最上位階層の属性値「日本」とそれに対応する乱数「084BF6」とを結合したデータのハッシュ値「6BE6D3」を、1行目の属性「住所」のセルに対応するハッシュ値とする。ただし、削除の場合と同様に、同じ属性中に複数の同じ属性値が存在する場合、データ提供者は、当該属性値に対応する乱数から新たな乱数を生成し、ハッシュ値の計算に用いる。このようにして、データ提供者は、各属性に対応するハッシュ値H3を算出する。そして、ハッシュ値H3から1つのハッシュ値を算出し、そのハッシュ値に対する署名を生成する。
また、(b)の匿名化(一般化加工)時においては、データ加工者は、一般化処理対象に対して、署名生成時と同様にして、一般化を行う。つまり、データ加工者は、各セルについて、「属性値と乱数とを結合したデータのハッシュ値を、一般化階層木Trにおける1つ上の階層の属性値に対する乱数として使用する」というルールで一般化を繰り返す。そして、データ加工者は、一般化後の属性値とその属性値に対応する乱数とを生成する。
図3の例では、属性値「東京」及び属性値「神奈川」を属性値「関東」に一般化している。データ加工者は、一般化後の属性値とそれに対応する乱数とを対応付けた匿名化データD3を生成する。なお、一般化されない属性値「大阪」のセルについては、匿名化データD3において、属性値「大阪」と乱数Rとが対応付けられている。乱数Rは、乱数データDrにおいて属性値「大阪」に対応する乱数である。データ受領者(データ検証者)には、匿名化データD3と一般化後の一般化階層木が提供される。一般化後の一般化階層木では、一般化される前の属性値が削除されている。
また、(c)の署名検証時においては、データ受領者(データ検証者)は、匿名化データD3において、各属性値について匿名化データD3に乱数が存在する場合(加工が行われていない場合)は、署名生成時と同様にハッシュ値計算を行う。図3の例では、属性値「大阪」については、署名生成時と同様にハッシュ値計算が行われる。一方、匿名化データD3に乱数列(ハッシュ値)が対応付けられている場合、加工が行われている。この場合、データ受領者は、当該属性の属性値と対応付けられている乱数列(ハッシュ値)と一般化階層木とを用いて、最上位階層と対応する乱数とを結合したデータのハッシュ値を計算する。
例えば、1行目の属性値「関東」のセルでは、データ受領者は、属性値「関東」とそれに対応する乱数「E31843」とを結合したデータのハッシュ値「084BF6」を、属性値「関東」の1つ上の階層の属性値「日本」に対応する乱数として使用する。そして、データ受領者は、最上位階層の属性値「日本」とそれに対応する乱数「084BF6」とを結合したデータのハッシュ値「6BE6D3」を、1行目の属性「住所」のセルに対応するハッシュ値とする。
このようにして、データ受領者は、匿名化データD3に対応するハッシュ値H3’を算出する。そして、データ受領者は、ハッシュ値H3’から1つのハッシュ値を算出する。そして、データ受領者は、元データD1に対応するハッシュ値H3に関する署名を検証鍵で復号した値と、匿名化データD3に対応するハッシュ値H3’と一致するか否かを判定することで、匿名化データD3の正当性を検証する。両者が一致すれば匿名化データD3の検証は成功し、両者が一致しなければ匿名化データD3の検証は失敗する。
上述したように、比較例においては、「ある属性について、異なるレコード(セル)であっても同じ属性値に対しては同じ加工を施す必要がある」、という制約がある。しかしながら、ある属性の同じ属性値であっても、レコードごとに異なる加工を施すことが必要な場合もある。したがって、このような制約を除去することが望まれる。
ここで、比較例において、上記の制約を遵守せずに加工を行うことを考える。例えば、図2の例においては、属性値「神奈川」を有する全てのレコードについて、「削除」の加工を行うとしている。これに対し、3行目のレコードについては属性値「神奈川」に対し「削除」の加工を行い、4行目のレコードについては属性値「神奈川」に対し「削除」の加工を行わないとする。
この場合、データ加工者は、3行目のレコードについては上述したように属性値「神奈川」に対し「削除」の加工を行う。一方、データ加工者は、匿名化データD2において、4行目のレコードについては属性値「神奈川」のままとする。そして、乱数データDr2において、属性値「神奈川」とその乱数とが削除されないようにする。つまり、データ受領者に、乱数データDrが提供される。
この場合、データ受領者は、上述したように、3行目のセルについては、匿名化データD2の値をそのままセルのハッシュ値とする。一方、4行目のセルについては、提供された乱数データDrの乱数Rを用いて、署名生成時と同様にハッシュ値計算が行われる。このとき、3行目のセルについて生成されたハッシュ値と4行目のセルについて生成されたハッシュ値とでは、生成される際に使用された乱数が同じRである。したがって、Rを用いて、3行目のセルの元の値が推測されるおそれがある。したがって、データ受領者に、3行目のセルの元データの属性値が「神奈川」であったことが知られてしまうおそれがある。この原因は、データ受領者が、削除された属性値「神奈川」に対応する乱数Rを知ってしまったからである。一方、データ受領者に乱数Rを提供しなければ、データ受領者は、4行目のセルのハッシュ値を生成することができない。したがって、署名検証を適切に行うことができない。
このことは、図3に示した「一般化」の加工の場合であっても起こり得る。すなわち、図3において1行目の属性値「東京」を属性値「関東」に一般化し、2行目の属性値「東京」については一般化を行わないとする。この場合、2行目のレコードについては属性値「東京」に対応する乱数Rが匿名化データD3に含まれ得るので、1行目のセルの元データの属性値が「東京」であることが、データ受領者に知られてしまうおそれがある。したがって、比較例(非特許文献1)では、「ある属性について、異なるレコード(セル)であっても同じ属性値に対しては同じ加工を施す必要がある」、という制約が必要である。
これに対し、本実施の形態では、以下に説明するように、各属性値に対応する乱数を予め設定しておくことで伝送されるデータ量を抑制し、この乱数がデータ受領者に提供されないようにしている。したがって、本実施の形態では、データに対する加工の制約を課すことなしに、伝送されるデータ量を抑制することが可能となる。
(実施の形態1)
以下、実施の形態について、図面を参照しながら説明する。説明の明確化のため、以下の記載及び図面は、適宜、省略、及び簡略化がなされている。また、各図面において、同一の要素には同一の符号が付されており、必要に応じて重複説明は省略されている。
図4は、実施の形態1にかかる情報処理システム10の構成を示す図である。情報処理システム10は、データ提供装置100と、データ加工装置200と、データ受領装置300とを有する。データ提供装置100、データ加工装置200及びデータ受領装置300は、物理的に別個であるが、一体であってもよい。データ提供装置100、データ加工装置200及びデータ受領装置300は、有線又は無線を介して互いに通信可能に接続されている。データ提供装置100は、上述したデータ提供者によって管理され得る。データ加工装置200は、上述したデータ加工者によって管理され得る。データ受領装置300は、上述したデータ受領者によって管理され得る。
情報処理システム10は、上述した装置によって、提供されるデータ(データセット)に対して署名を生成し、少なくとも一部のデータを加工(匿名化)し、一部のデータが加工されたデータセットに対して署名を検証する。詳しくは後述する。なお、情報処理システム10は、デジタル署名(電子署名)を行うためのデジタル署名システム(署名システム又は電子署名システム)、データを加工するためのデータ加工システム、又は、署名を検証するための署名検証システム(検証システム)としても機能し得る。
図5は、実施の形態1にかかるデータ提供装置100の構成を示す図である。データ提供装置100は、構成要素として、加工ルール設定部110と、乱数設定部120と、署名用ハッシュ値算出部130と、署名生成部140と、送信部150とを有する。加工ルール設定部110は、加工ルール設定手段としての機能を有する。乱数設定部120は、乱数設定手段としての機能を有する。署名用ハッシュ値算出部130は、署名用ハッシュ値算出手段(第1のハッシュ値算出手段又は第1の算出手段)としての機能を有する。署名生成部140は、署名生成手段としての機能を有する。送信部150は、送信手段(第1の送信手段)としての機能を有する。
データ提供装置100は、データ提供者によって、少なくとも1つの属性に関する複数のデータで構成されるデータセットを入力される。そして、データ提供装置100は、データセットを提供する。データセットは、上述したように、1つ以上のレコード及び1つ以上の属性で構成されている。また、上述したように、データセットは、例えば行及び列のテーブル形式で構成されていてもよい。そして、各行がレコードに対応し、各列が属性に対応し得る。データセットは、例えば複数の患者の医療データであるが、これに限られない。また、データ提供装置100は、提供されるデータ(データセット)に対してデジタル署名を生成する。なお、データ提供装置100は、デジタル署名(電子署名)を生成する署名生成装置としても機能し得る。
データ提供装置100は、例えばコンピュータ等の情報処理装置によって実現可能である。つまり、データ提供装置100は、CPU(Central Processing Unit)などの演算装置と、メモリ又はディスクなどの記憶装置とを有している。データ提供装置100は、例えば、記憶装置に格納されたプログラムを演算装置が実行することで、上記の各構成要素を実現する。このことは、後述する他の実施の形態においても同様である。また、各構成要素の機能については後述する。
図6は、実施の形態1にかかるデータ加工装置200の構成を示す図である。データ加工装置200は、構成要素として、加工処理部210と、加工後ハッシュ値算出部220と、送信部230とを有する。加工処理部210は、加工処理手段としての機能を有する。加工後ハッシュ値算出部220は、加工後ハッシュ値算出手段(第2のハッシュ値算出手段又は第2の算出手段)としての機能を有する。送信部230は、送信手段(第2の送信手段)としての機能を有する。
データ加工装置200は、データ提供装置100からデータセット及びデジタル署名を含む情報を取得(受信)する。そして、データ加工装置200は、データ提供装置100によって提供されるデータセットの複数のデータのうちの少なくとも一部のデータを加工する。なお、データ加工装置200は、データの匿名化(匿名加工)を行う匿名化装置としても機能し得る。
データ加工装置200は、例えばコンピュータ等の情報処理装置によって実現可能である。つまり、データ加工装置200は、CPUなどの演算装置と、メモリ又はディスクなどの記憶装置とを有している。データ加工装置200は、例えば、記憶装置に格納されたプログラムを演算装置が実行することで、上記の各構成要素を実現する。このことは、後述する他の実施の形態においても同様である。また、各構成要素の機能については後述する。
図7は、実施の形態1にかかるデータ受領装置300の構成を示す図である。データ受領装置300は、構成要素として、検証用ハッシュ値算出部310と、検証部320とを有する。検証用ハッシュ値算出部310は、検証用ハッシュ値算出手段としての機能を有する。検証部320は、検証手段(署名検証手段)としての機能を有する。
データ受領装置300は、データ加工装置200から一部のデータが加工されたデータセット及びデジタル署名を取得(受信)する。そして、データ受領装置300は、一部のデータが加工されたデータセットに対して、署名の検証を行う。なお、データ受領装置300は、署名の検証を行う署名検証装置(検証装置)としても機能し得る。
データ受領装置300は、例えばコンピュータ等の情報処理装置によって実現可能である。つまり、データ受領装置300は、CPUなどの演算装置と、メモリ又はディスクなどの記憶装置とを有している。データ受領装置300は、例えば、記憶装置に格納されたプログラムを演算装置が実行することで、上記の各構成要素を実現する。このことは、後述する他の実施の形態においても同様である。また、各構成要素の機能については後述する。
図8は、実施の形態1にかかる情報処理システム10によって実行される情報処理方法を示すフローチャートである。情報処理システム10によって情報処理方法は、デジタル署名方法(署名方法又は電子署名方法)、データ加工システム、又は、署名検証方法(検証方法)としても実現され得る。
情報処理システム10は、データ提供処理を行う(ステップS100)。具体的には、情報処理システム10のデータ提供装置100は、少なくとも1つの属性に関する複数のデータで構成されるデータセットを提供する。このとき、データ提供装置100は、上述したように、提供されるデータ(データセット)に対して署名生成処理を行う。S100の処理の詳細については後述する。
情報処理システム10は、データ加工処理を行う(ステップS200)。具体的には、情報処理システム10のデータ加工装置200は、データ提供装置100からデータセット及びデジタル署名を含む情報を取得する。そして、データ加工装置200は、データセットの複数のデータのうちの少なくとも一部のデータを加工する。S200の処理の詳細については後述する。
情報処理システム10は、データ受領処理を行う(ステップS300)。具体的には、情報処理システム10のデータ受領装置300は、データ加工装置200から、一部のデータが加工されたデータセット及びデジタル署名を取得する。そして、データ受領装置300は、一部のデータが加工されたデータセットに対して、署名の検証(検証処理)を行う。S300の処理の詳細については後述する。
図9は、実施の形態1にかかるデータ提供装置100によって実行されるデータ提供処理(S100)を示すフローチャートである。図9のフローチャートは、データ提供方法を示しているが、デジタル署名方法(署名方法又は電子署名方法)を示しているとも言える。
データ提供装置100は、加工ルールを設定する(ステップS102)。具体的には、加工ルール設定部110は、データセット(元データ)を構成する複数のデータの属性のそれぞれについて加工ルールを設定する。なお、加工ルール設定部110は、ユーザ(データ提供者)の操作に応じて、加工ルールを設定してもよい。つまり、加工ルール設定部110は、ユーザによって任意に決められた加工ルールを設定してもよい。データ加工処理(S200)において、加工ルールに従って実行された加工は、正当な加工(匿名化)であると言える。一方、加工ルールに従わないで実行された加工は、不正な加工であると言える。
ここで、加工ルールは、少なくとも各属性が加工(匿名化)の対象とされるか否かを指定してもよい。例えば、加工ルールは、属性「住所」を加工対象とし、属性「名前」及び属性「年齢」を加工対象としないと指定してもよい。なお、データ加工処理(S200)において、加工対象とされた属性の全てのデータの属性値が加工される必要はない。
また、加工ルールは、加工の対象とされた属性それぞれについて設定された、加工前の属性値及び加工後の属性値を含む状態にそれぞれ対応する階層を有する階層構造を含んでもよい。この階層構造は、例えば、上述した一般化階層木であるが、これに限られない。なお、「加工後の属性値を含む状態」は、「削除」の加工によりデータ(属性値)が削除された状態を含む。加工ルールが階層構造を含む場合、データ加工処理(S200)において、階層構造に沿った加工であれば、正当な加工(匿名化)であると言える。
データ提供装置100は、乱数を設定する(ステップS104)。具体的には、乱数設定部120は、加工ルールにおいて加工の対象とされた属性に関する加工対象データがとり得る複数の属性値に対応する状態に対して所定の乱数を設定する。例えば属性「住所」を加工対象である場合、乱数設定部120は、属性値「東京」、属性値「神奈川」及び属性値「大阪」等について、乱数を設定する。この乱数は、後述する署名用ハッシュ値の算出及びデータ加工装置200における加工後ハッシュ値の算出で使用される。一方、この乱数は、後述するデータ受領装置300における検証用ハッシュ値の算出では使用されない。つまり、この乱数は、データ受領装置300には送信されない。
データ提供装置100は、署名用ハッシュ値を算出する(ステップS110)。具体的には、署名用ハッシュ値算出部130は、データセットの複数のデータそれぞれに対応する署名用ハッシュ値を算出する。ここで、署名用ハッシュ値は、データセットの複数のデータそれぞれに対応し、デジタル署名を生成するために使用されるハッシュ値である。詳しくは後述する。
さらに具体的には、署名用ハッシュ値算出部130は、加工対象データについて、当該加工対象データと当該加工対象データに対応する属性値について設定された乱数とを用いて得られたデータ列に対して先頭ハッシュ値を算出する。また、署名用ハッシュ値算出部130は、当該加工対象データと当該先頭ハッシュ値とを組み合わせたデータ列に対して中間ハッシュ値を算出する。そして、署名用ハッシュ値算出部130は、当該中間ハッシュ値を用いて、当該加工対象データに対応する署名用ハッシュ値を算出する。
なお、先頭ハッシュ値は、データセットの各データのうち加工対象データ(つまり加工前のデータ)の属性値に対応するハッシュ値である。詳しくは後述する。また、中間ハッシュ値は、署名用ハッシュ値が算出されるまでに使用されるハッシュ値である。言い換えると、中間ハッシュ値とは、加工対象データが加工により取り得る状態(属性値)に対応するハッシュ値である。そして、先頭ハッシュ値は、加工対象データに対応する中間ハッシュ値に対応する。詳しくは後述する。ここで、本実施の形態では、先頭ハッシュ値から署名用ハッシュ値に至るまで、ハッシュチェーンが構成される。ハッシュチェーンの先頭のハッシュ値が先頭ハッシュ値に対応し、ハッシュチェーンの末尾のハッシュ値が署名用ハッシュ値に対応する。また、末尾のハッシュ値(署名用ハッシュ値)以外のハッシュ値が中間ハッシュ値に対応する。つまり、ハッシュチェーンにおいて、先頭ハッシュ値と署名用ハッシュ値(末尾のハッシュ値)との間に、中間ハッシュ値が存在し得る。
ここで、加工ルールに階層構造が含まれる場合、署名用ハッシュ値算出部130は、加工対象データと先頭ハッシュ値とを組み合わせたデータ列に対して、加工対象データの属性値の階層構造における上の階層の状態に対応する中間ハッシュ値を算出してもよい。したがって、中間ハッシュ値それぞれには、何らかの対応する加工後の属性値を含む状態が、存在し得る。なお、このような処理が繰り返されることにより、ハッシュチェーンが構成され得る。
また、署名用ハッシュ値算出部130は、加工対象でない属性について、データごとに、対応する属性値に対して算出されたハッシュ値を、そのデータに対応する署名用ハッシュ値として算出してもよい。また、署名用ハッシュ値算出部130は、当該加工対象データと当該加工対象データに対応する属性値について設定された乱数と当該加工対象データを識別するインデックスとを用いて得られたデータ列に対して先頭ハッシュ値を算出してもよい。詳しくは後述する。ここで、当該加工対象データを識別するインデックスは、例えば、上述したレコードのインデックスであってもよい。つまり、このインデックスは、テーブル形式のデータセットの行番号であってもよい。これにより、属性値が互いに同じ複数の加工対象データについて、算出される先頭ハッシュ値が異なるようにすることができる。
データ提供装置100は、署名を生成する(ステップS122)。具体的には、署名生成部140は、複数のデータそれぞれに対応する署名用ハッシュ値を用いてデジタル署名を生成する。例えば、署名生成部140は、レコードごとに対応するデータの署名用ハッシュ値を結合したデータ列に対してハッシュ値を算出し、得られたハッシュ値と秘密鍵を用いて、デジタル署名を生成してもよい。詳しくは後述する。
データ提供装置100は、情報を送信する(ステップS124)、具体的には、送信部150は、データセットと、デジタル署名と、乱数とを、データ加工装置200に送信する。詳しくは後述する。なお、データ提供装置100は、情報をデータ加工装置200に送信する前に、送信する情報を、一時的に格納してもよい。
図10は、実施の形態1にかかるデータ加工装置200によって実行されるデータ加工処理(S200)を示すフローチャートである。データ加工装置200は、加工処理を行う(ステップS202)。具体的には、加工処理部210は、加工対象の属性に対応する加工対象データに対して加工(匿名化)を施すための処理を行う。なお、加工処理部210は、ユーザ(データ加工者)の操作に応じて、加工を行ってもよい。つまり、加工対象データそれぞれについてどのような加工を施すかは、ユーザ(データ加工者)が任意に決めてもよい。
データ加工装置200は、加工後ハッシュ値を算出する(ステップS210)。具体的には、加工後ハッシュ値算出部220は、加工対象データに対応する加工後ハッシュ値を算出する。ここで、加工後ハッシュ値は、加工対象データ(属性値)それぞれに対応する中間ハッシュ値である。加工後ハッシュ値は、加工対象データと対になってデータ受領装置300に提供される。加工後ハッシュ値は、加工が施された加工対象データ(加工後の属性値)、及び、加工が施されていない加工対象データ(元データの属性値)に対応し得る。つまり、加工対象データに加工が施された場合、加工後ハッシュ値は、加工が施された加工対象データ(加工後の属性値)に対応し得る。また、加工対象データに加工が施されていない場合、加工後ハッシュ値は、加工が施されていない加工対象データ(元データの属性値)に対応し得る。加工後ハッシュ値は、後述するように、データ受領装置300において、検証用ハッシュ値の生成に使用され得る。
ここで、加工後ハッシュ値算出部220は、加工が施された加工対象データについて、加工前の当該加工対象データと加工前の当該加工対象データに対応する属性値について設定された乱数とを用いて得られたデータ列に対して先頭ハッシュ値を算出する。また、加工後ハッシュ値算出部220は、加工前の当該加工対象データと当該先頭ハッシュ値とを組み合わせたデータ列に対して中間ハッシュ値を算出する。そして、加工後ハッシュ値算出部220は、当該中間ハッシュ値を用いて、加工後の当該加工対象データに対応する加工後ハッシュ値を算出する。詳しくは後述する。
ここで、上述したように、加工ルールに階層構造が含まれてもよい。この場合、加工後ハッシュ値算出部220は、加工前の加工対象データと先頭ハッシュ値とを組み合わせたデータ列に対して、加工前の加工対象データの属性値の階層構造における上の階層の状態に対応する中間ハッシュ値を算出してもよい。詳しくは後述する。
また、加工後ハッシュ値算出部220は、加工ルールにおいて加工の対象とされた属性のうち加工が施されなかった属性値について、以下のように加工後ハッシュ値を算出してもよい。すなわち、加工後ハッシュ値算出部220は、当該属性値と当該属性値について設定された乱数とを用いて得られたデータ列に対して算出された先頭ハッシュ値を、加工後ハッシュ値として算出してもよい。詳しくは後述する。これにより、加工ルールにおいて加工の対象とされた属性のうち加工が施されなかった属性値についても、乱数をデータ受領装置300に提供しなくても、検証用ハッシュ値を算出することができる。
また、加工後ハッシュ値算出部220は、当該加工対象データと当該加工対象データに対応する属性値について設定された乱数と当該加工対象データを識別するインデックスとを用いて得られたデータ列に対して先頭ハッシュ値を算出してもよい。詳しくは後述する。ここで、当該加工対象データを識別するインデックスは、例えば、上述したレコードのインデックスであってもよい。つまり、このインデックスは、テーブル形式のデータセットの行番号であってもよい。これにより、属性値が互いに同じ複数の加工対象データについて、算出される先頭ハッシュ値が異なるようにすることができる。また、加工後ハッシュ値算出部220は、互いに同じレコードの加工対象データそれぞれについて、データ提供装置100で算出される先頭ハッシュ値と同じ先頭ハッシュ値を算出することができる。
データ加工装置200は、情報を送信する(ステップS222)。具体的には、送信部230は、加工対象データに対して加工が施されたデータセットと、加工対象データに対応する加工後ハッシュ値と、デジタル署名とを、データ受領装置300に送信する。詳しくは後述する。なお、データ加工装置200は、情報をデータ受領装置300に送信する前に、送信する情報を、一時的に格納してもよい。
図11は、実施の形態1にかかるデータ受領装置300によって実行されるデータ受領処理(S300)を示すフローチャートである。図11のフローチャートは、データ受領方法を示しているが、署名検証方法(検証方法)を示しているとも言える。
データ受領装置300は、検証用ハッシュ値を算出する(ステップS310)。具体的には、検証用ハッシュ値算出部310は、加工対象データに対して加工が施されたデータセットと、加工後ハッシュ値とを用いて検証用ハッシュ値を算出する。なお、検証用ハッシュ値は、加工対象データそれぞれと、加工対象でないデータそれぞれに対応し、加工が施されたデータセットからデジタル署名に対応するハッシュ値と比較(照合)されるハッシュ値を算出するために用いられる。詳しくは後述する。
データ受領装置300は、署名検証を行う(ステップS322)。具体的には、検証部320は、検証用ハッシュ値とデジタル署名とに対して検証を行う。例えば、検証部320は、レコードごとに対応するデータの検証用ハッシュ値を結合したデータ列に対してハッシュ値H’を算出する。また、検証部320は、デジタル署名と検証鍵とハッシュ値H’とを用いて、デジタル署名を検証してもよい。これにより、加工が施されたデータセットの正当性を検証することができる。
実施の形態1にかかる情報処理システム10において、データ提供装置100は、加工ルールにおいて加工の対象とされた属性に関する加工対象データがとり得る複数の属性値に対応する状態に対して所定の乱数を設定する。また、データ提供装置100は、加工対象データについて、当該加工対象データと対応する属性値について設定された乱数とを用いて得られたデータ列に対して先頭ハッシュ値を算出する。また、データ提供装置100は、当該加工対象データと当該先頭ハッシュ値とを組み合わせたデータ列に対して中間ハッシュ値を算出する。そして、データ提供装置100は、当該中間ハッシュ値を用いて、当該加工対象データに対応する署名用ハッシュ値を算出する。
また、データ加工装置200は、加工が施された加工対象データについて、加工前の当該加工対象データと対応する属性値について設定された乱数とを用いて得られたデータ列に対して先頭ハッシュ値を算出する。また、データ加工装置200は、加工前の当該加工対象データと当該先頭ハッシュ値とを組み合わせたデータ列に対して中間ハッシュ値を算出する。そして、データ加工装置200は、当該中間ハッシュ値を用いて、加工後の当該加工対象データに対応する加工後ハッシュ値を算出する。
実施の形態1にかかる情報処理システム10は、予め設定された乱数を使用してデジタル署名を生成しているので、伝送されるデータ量を抑制することができる。また、実施の形態1にかかる情報処理システム10は、上記のような構成によって、乱数がデータ受領装置300(データ受領者)に提供されないようにしている。したがって、「ある属性について、異なるレコード(セル)であっても同じ属性値に対しては同じ加工を施す必要がある」という制約を課す必要がなくなる。したがって、本実施の形態では、データに対する加工の制約を課すことなしに、伝送されるデータ量を抑制することが可能となる。
(実施の形態2)
次に、実施の形態2について説明する。説明の明確化のため、以下の記載及び図面は、適宜、省略、及び簡略化がなされている。また、各図面において、同一の要素には同一の符号が付されており、必要に応じて重複説明は省略されている。なお、実施の形態2にかかるシステム構成については、実施の形態1のシステム構成と実質的に同様であるので、説明を省略する。つまり、実施の形態2にかかる情報処理システム10は、データ提供装置100と、データ加工装置200と、データ受領装置300とを有する。実施の形態2は、上述した実施の形態1の構成を、「一般化」の加工(匿名化)を行う場合に適用したものに対応する。なお、以下、表記の都合上、「x」を「x_y」と記載することがある。
図12は、実施の形態2にかかる情報処理システム10における処理の流れを説明するための図である。図12は、属性「氏名」及び属性「住所」の2つの属性の列を有するデータセットを加工(一般化)する例を示している。そして、属性「氏名」の列は、データ加工装置200(データ加工者)による加工の対象外の属性の列とする。一方、属性「住所」は、データ加工装置200(データ加工者)による加工(一般化)の対象の属性の列とする。つまり、データセットには、加工対象の属性の列と、加工対象ではない属性の列とが混在している。
ここで、一般化の加工は、図1に例示した一般化階層木Trに沿って行われるとする。上述したように、一般化階層木Trでは、上の階層であるほど、属性値が一般化(抽象化)されている。なお、一般化階層木Trは、データ提供装置100(データ提供者)によって設定される。また、各ノードは、隣接する親ノードを1つのみ有するとする。言い換えると、各ノードの1つ上の階層は1つのみであるとする。
データ提供装置100からデータ加工装置200に、元データ(平文)であるデータセットDa1が提供される。氏名「AA」のレコードにおいて、属性「住所」の属性値は「東京」である。氏名「BB」のレコードにおいて、属性「住所」の属性値は「東京」である。氏名「CC」のレコードにおいて、属性「住所」の属性値は「神奈川」である。なお、元データのデータセットDa1では、属性「住所」の属性値の階層は、全てのレコードで揃っているものとする。図12の例では、元データのデータセットDa1における属性「住所」の属性値の階層は、一般化階層木Trの最も下の階層「1」(都道府県名)となっている。
データ加工装置200は、氏名「AA」のレコードの属性「住所」の属性値「東京」を、属性値「関東」に一般化(匿名化)する。また、データ加工装置200は、氏名「BB」のレコードの属性「住所」の属性値「東京」を、属性値「東京」のままとし、一般化しない。また、データ加工装置200は、氏名「CC」のレコードの属性「住所」の属性値「神奈川」を、属性値「日本」に一般化(匿名化)する。データ加工装置200は、このようにして、匿名化データDa2を生成し、データ受領装置300(データ受領者)に送信する。
なお、本実施の形態では、一般化する対象の属性の列について、一般化後の階層が異なる場合がある。図12の例では、氏名「AA」のレコードの属性「住所」の属性値「東京」は、1つ上の階層に一般化されている。また、氏名「BB」のレコードの属性「住所」の属性値「東京」は、一般化されていない。氏名「CC」のレコードの属性「住所」の属性値「神奈川」は、2つ上の階層に一般化されている。
さらに、本実施の形態では、比較例と異なり、同じ属性値でも、レコードによって一般化後の階層が異なる場合があり得る。図12の例では、属性値「東京」について、氏名「AA」のレコードでは1つ上の階層の属性値「関東」に一般化されたのに対し、氏名「BB」のレコードでは属性値「東京」のままであり、一般化されていない。
実施の形態1の場合と同様に、実施の形態2にかかるデータ提供装置100は、署名生成処理(S100)を行い、データ加工装置200は、データ加工処理(S200)を行い、データ受領装置300は、検証処理(S300)を行う。以下、これらの処理について説明する。
<署名生成処理>
まず、一般化の加工を行う際の署名生成処理(S100)について説明する。データ提供装置100において、加工ルール設定部110は、データセット(元データ)を構成する複数のデータの属性のそれぞれについて加工ルールを設定する(S102)。まず、加工ルール設定部110は、データセットの各列(各属性)に対して、加工(一般化)の対象か否かを決定する。
図13は、実施の形態2にかかる加工ルール設定部110の処理を説明するための図である。図13に示すように、元データであるデータセットは、テーブル形式(行列形式)で構成されている。そして、各行が各レコードに対応し、各列が各属性に対応する。また、行のインデックスをiとし、列のインデックスをjとする。そして、i行j列の属性値をaijとする。
加工ルール設定部110は、加工対象(一般化の対象)ではない属性を設定する。また、加工ルール設定部110は、加工対象(一般化の対象)とする属性を設定する。ここで、加工対象ではない属性の列の集合をCとし、加工対象の属性の列の集合をC’とする。この場合、各列は、c∈C、cj’∈C’となる。つまり、加工対象の属性の列のインデックスをj’とする。
また、加工ルール設定部110は、加工対象の属性の列cj’に関して、一般化階層木Tj’を設定する。つまり、加工ルール設定部110は、加工の対象とされた属性それぞれについて、加工前の属性値を一般化するルールを示し、上の階層ほど一般化された属性値を示す階層構造を有する一般化階層木を設定する。なお、一般化階層木Tj’は、加工対象の属性の列ごとに設定され得る。ここで、一般化階層木Tj’の高さをlj’とする。
図14は、実施の形態2にかかる一般化階層木Tj’を例示する図である。図14は、cj’が属性「住所」の列である場合の一般化階層木Tj’を例示している。この例では、一般化階層木Tj’の高さはlj’=3である。また、階層「1」(葉ノード)は、属性値「東京」,「神奈川」,「大阪」等の「都道府県名」に対応する。また、階層「2」(中間ノード)は、より抽象度の高い属性値「関東」,「近畿(地方)」等の「地方名」に対応する。また、階層「3」(根ノード)は、最も抽象度の高い「日本」という「国名」に対応する。
乱数設定部120は、加工ルールにおいて加工(一般化)の対象とされた属性に関する加工対象データがとり得る複数の属性値に対応する状態に対して所定の乱数を設定する(S104)。つまり、乱数設定部120は、加工対象データが元データにおいてとり得る複数の属性値に対応する状態に対して所定の乱数を設定する。そして、乱数設定部120は、各属性値について設定された乱数を示す乱数表を生成する。つまり、乱数設定部120は、列cj’に対して、乱数表Rj’を生成する。乱数表Rj’は、加工対象の属性の列ごとに生成され得る。
図15は、実施の形態2にかかる乱数表を例示する図である。図15の例では、cj’が取り得る階層「1」の属性値vについて、乱数rが設定されている。このように、乱数表Rj’では、各列において、各属性値について乱数が設定されている。
署名用ハッシュ値算出部130は、データセットの複数のデータそれぞれに対応する署名用ハッシュ値を算出する(S110)。署名用ハッシュ値算出部130は、加工対象でない属性の列cの属性値aijに対して、行i(レコード)ごとに、ハッシュ関数Hを用いて、以下の式(1)を用いてハッシュ値hijを算出する。算出されたハッシュ値が、加工対象でない属性についての署名用ハッシュ値に対応する。
・・・(1)
また、署名用ハッシュ値算出部130は、加工対象である属性の列cj’に対して、行i(レコード)ごとに、乱数表Rj’を用いて、以下の式(2)~(3)を用いて、行i列cj’に関する加工対象データに対応する署名用ハッシュ値hij’を算出する。ここで、属性値aij’は、一般化階層木Tj’における階層「1」の属性値であるとする。また、属性値aij’の階層kにおける親ノードの属性値をp_(k,aij’)とする。なお、p_(1,aij’)=aij’である。
図14の一般化階層木Tj’の例では、p_(1,aij’)=aij’=「東京」のとき、p_(2,aij’)=「関東」、p_(3,aij’)=「日本」である。したがって、p_(k,aij’)は、属性値aij’の自身の階層以上の階層kの属性値であると言える。また、階層kの属性値に対応する中間ハッシュ値をhij’,kとする。
署名用ハッシュ値算出部130は、以下の式(2)を用いて、属性値aij’に対応する先頭ハッシュ値hij’,1を算出する。
・・・(2)
式(2)に示すように、先頭ハッシュ値hij’,1は、属性値aij’と、対応する乱数r_aij’に行番号iを加算した値とを結合したデータ列に対して得られたハッシュ値である。つまり、先頭ハッシュ値hij’,1は、属性値aij’と、属性値aij’について設定された乱数と、属性値aij’のインデックスiとを用いて得られたデータ列に対して算出されたハッシュ値である。図14の一般化階層木Tj’の例では、属性値aij’=「東京」と属性値「東京」に対応する乱数にiを加算した値とを結合したデータ列に対して得られたハッシュ値を、属性値「東京」に対応する先頭ハッシュ値hij’,1とする。
なお、乱数にiを加算することで、属性値が同じレコードであっても、算出される先頭ハッシュ値がレコードごとに異なるようにすることができる。なお、式(2)では、属性値aij’と、乱数r_aij’に行番号iを加算した値とを結合したデータ列のハッシュ値を計算するとしたが、これに限られない。属性値aij’と、乱数r_aij’に(i-1)を加算した値とを結合したデータ列のハッシュ値であってもよい。あるいは、属性値aij’と、乱数r_aij’に(2×i)を加算した値とを結合したデータ列のハッシュ値であってもよい。このことは、他の実施の形態でも同様である。
ここで、属性値aij’と対応する乱数r_aij’とを用いて得られたデータ列でハッシュ値を算出することで、乱数r_aij’が秘匿されることとなる。したがって、先頭ハッシュ値hij’,1は、乱数r_aij’を秘匿するためのハッシュ値であると言える。つまり、本実施の形態では、先頭ハッシュ値hij’,1を算出することによって、予め設定された乱数を使用しながらも、その乱数をデータ受領者に対して秘匿することができる。このことは、他の実施の形態でも同様である。
次に、署名用ハッシュ値算出部130は、以下の式(3)を用いて、一般化階層木Tj’の各階層の属性値に対応する中間ハッシュ値を算出する。
・・・(3)
式(3)は、階層kの属性値p_(k,aij’)とそれに対応する中間ハッシュ値hij’,kとを結合したデータのハッシュ値を、階層(k+1)の属性値p_((k+1),aij’)に対応する中間ハッシュ値hij’,k+1として算出することを示している。つまり、署名用ハッシュ値算出部130は、中間ハッシュ値と当該中間ハッシュ値に対応する階層の属性値とを組み合わせたデータ列に対して、当該属性値の階層構造における上の階層の状態に対応する中間ハッシュ値を算出する。
なお、式(3)において、k=1の場合は以下の式(4)のようになる。ここで、上述したように、p_(1,aij’)=aij’である。したがって、本実施の形態では、比較例と異なり、データセット(元データ)の属性値aij’が、先頭ハッシュ値を算出する式(2)と、1つ上の階層の属性値に対応する中間ハッシュ値を算出する式(3)(式(4))との2回使用される。
・・・(4)
図14の一般化階層木Tj’の例では、署名用ハッシュ値算出部130は、属性値「東京」とそれに対応する先頭ハッシュ値(中間ハッシュ値)hij’,1とを結合したデータのハッシュ値を、属性値「関東」に対応する中間ハッシュ値hij’,2として算出する。また、署名用ハッシュ値算出部130は、属性値「関東」とそれに対応する中間ハッシュ値hij’,2とを結合したデータのハッシュ値を、属性値「日本」に対応する中間ハッシュ値hij’,3として算出する。
そして、署名用ハッシュ値算出部130は、最上位階層lj’の属性値p_(lj’,aij’)とそれに対応する中間ハッシュ値h_(i,j’,lj’)とを結合したデータのハッシュ値h_(i,j’,lj’+1)を算出する。このハッシュ値h_(i,j’,lj’+1)を、行i列cj’に対応する加工対象データに対応する署名用ハッシュ値hij’とする。すなわち、以下の式(5)が成り立つ。
・・・(5)
つまり、署名用ハッシュ値算出部130は、階層構造における最も上の階層の属性値と当該属性値に対応する中間ハッシュ値とを組み合わせたデータ列に対して算出されたハッシュ値を、署名用ハッシュ値として算出する。図14の一般化階層木Tj’の例では、署名用ハッシュ値算出部130は、属性値「日本」とそれに対応する中間ハッシュ値hij’,3とを結合したデータのハッシュ値hij’,4を、行i列cj’に対応する署名用ハッシュ値hij’として算出する。
なお、階層k=1から最上位階層k=lj’まで式(3)の計算を繰り返すことで、以下の式(6)で示すように、一般化階層木Tj’に沿ってハッシュチェーンが構成される。
・・・(6)
式(6)に示すハッシュチェーンは、順に、階層k=1の属性値に対応する中間ハッシュ値(先頭ハッシュ値)、階層k=2の属性値に対応する中間ハッシュ値、・・・、階層k=lj’の属性値に対応する中間ハッシュ値、及び末尾のハッシュ値で構成される。図14の一般化階層木Tj’の例では、属性値「東京」に対応する中間ハッシュ値(先頭ハッシュ値)、属性値「関東」に対応する中間ハッシュ値、属性値「日本」に対応する中間ハッシュ値、及び末尾のハッシュ値で構成される。なお、末尾のハッシュ値は、署名用ハッシュ値に対応する。言い換えると、式(2)~式(3)は、一般化階層木Tj’に沿って、先頭ハッシュ値から末尾のハッシュ値まで中間ハッシュ値を算出することを表している。
署名生成部140は、複数のデータそれぞれに対応する署名用ハッシュ値を用いてデジタル署名を生成する(S122)。具体的には、署名生成部140は、各行iに対して、以下のようにハッシュ値hを算出する。すなわち、署名生成部140は、以下の式(7)のように、各行iについて、各列j(列cj’)のデータに対応する署名用ハッシュ値を全て連結して、ハッシュ値hを算出する。
・・・(7)
また、署名生成部140は、算出されたハッシュ値hに対して、デジタル署名アルゴリズムにより、データ提供者の秘密鍵を用いて、デジタル署名σを生成する。例えば、署名生成部140は、RSA署名方式又はDSA(Digital Signature Algorithm)署名方式等により、ハッシュ値hと秘密鍵とを用いて、署名σを生成してもよい。なお、この例では行ごと(レコードごと)に署名を生成したが、データ全体に対して署名を生成してもよい。この場合、署名生成部140は、全てのiについてのhの組(集合)である{h}についてまとめてハッシュ値hを算出し、hに対して署名σを生成してもよい。なお、{x}は、iについてのxの集合を示す。これらのことは、他の実施の形態でも同様である。
送信部150は、少なくともデータセットと、デジタル署名と、乱数とを、データ加工装置200に送信する。具体的には、送信部150は、C及びC’の情報を含む元データ(データセット)と、各行の署名{σ}と、加工対象の各列の一般化階層木{Tj’}と、加工対象の各列の乱数表{Rj’}とを、データ加工装置200に送信する。
<データ加工処理>
次に、一般化の加工を行う際のデータ加工処理(S200)について説明する。データ加工装置200において、加工処理部210は、加工対象の属性に対応する加工対象データに対して一般化の加工(匿名化)を施すための処理を行う(S202)。データ加工者は、データ提供装置100から送信された一般化階層木Tj’に従って、一般化の加工対象である属性の列の各属性値に対して、一般化の加工を行う。図14の例では、例えば、属性値「東京」のセルについては、属性値「関東」又は属性値「日本」に一般化するか、又は一般化せずに属性値「東京」のままとする。また、例えば属性値「大阪」のセルについては、属性値「近畿」又は属性値「日本」に一般化するか、又は一般化せずに属性値「大阪」のままとする。
加工処理部210は、加工対象である属性の列cj’について、属性値aij’を属性値p_(kij’,aij’)に変更する。つまり、加工処理部210は、行i列cj’のセルに、属性値p_(kij’,aij’)をセットする。ここで、属性値p_(kij’,aij’)は、属性値aij’を一般化して、一般化階層木Tj’の階層kij’の属性値としたものを示す。例えば、aij’=「東京」を属性値「関東」に一般化する場合、kij’=2であり、p_(2,aij’)=「関東」である。なお、属性値aij’を一般化しない場合、kij’=1であり、p_(1,aij’)=aij’である。
加工後ハッシュ値算出部220は、加工対象である属性の列について、加工後ハッシュ値を算出する(S210)。具体的には、加工後ハッシュ値算出部220は、上述した式(2)及び以下の式(8)を用いて、属性値aij’の加工後の属性値p_(kij’,aij’)に対応する中間ハッシュ値h_(i,j’,kij’)を算出する。式(8)は、式(3)の計算を一般化後の階層kij’まで行うことに対応する。この中間ハッシュ値h_(i,j’,kij’)が、加工後ハッシュ値に対応する。
・・・(8)
したがって、加工後ハッシュ値算出部220は、中間ハッシュ値と当該中間ハッシュ値に対応する階層の属性値とを組み合わせたデータ列に対して、当該属性値の前記階層構造における上の階層の属性値に対応する中間ハッシュ値を算出する。そして、加工後ハッシュ値算出部220は、加工後の当該加工対象データに対応する属性値に対応する中間ハッシュ値を、加工後の当該加工対象データに対応する加工後ハッシュ値として算出する。
但し、式(8)は、属性値が一般化される場合に使用され、一般化されない場合は使用されない。属性値aij’が一般化されない場合、加工後ハッシュ値算出部220は、式(2)を用いて、p_(1,aij’)=aij’に対応する先頭ハッシュ値である中間ハッシュ値hi,j’,1を算出する。この中間ハッシュ値hi,j’,1が、加工後ハッシュ値に対応する。つまり、加工後ハッシュ値算出部220は、加工の対象とされた属性のうち加工が施されなかった属性値について、当該属性値と当該属性値について設定された乱数とを用いて得られたデータ列に対して算出された先頭ハッシュ値を加工後ハッシュ値として算出する。
図14の一般化階層木Tj’の例では、属性値「東京」をkij’=2に対応する属性値「関東」に一般化する場合、加工後ハッシュ値算出部220は、式(2)を用いて、p_(1,aij’)=aij’=「東京」に対応する先頭ハッシュ値hi,j’,1を算出する。そして、加工後ハッシュ値算出部220は、式(8)を用いて、p_(2,aij’)=「関東」に対応する加工後ハッシュ値(中間ハッシュ値)hi,j’,2を算出する。一方、属性値「東京」を一般化しない場合、加工後ハッシュ値算出部220は、式(2)を用いて、p_(1,aij’)=aij’=「東京」に対応する加工後ハッシュ値(先頭ハッシュ値)hi,j’,1を算出する。
加工後ハッシュ値算出部220は、行i列cj’のセルに、属性値p_(kij’,aij’)に対応する中間ハッシュ値h_(i,j’,kij’)をセットする。この中間ハッシュ値h_(i,j’,kij’)が、加工後ハッシュ値に対応する。加工後ハッシュ値によって、先頭ハッシュ値から加工後の属性値に対応するハッシュ値までのハッシュチェーンが構成される。
図16は、実施の形態2にかかるデータ加工装置200の処理を説明するための図である。例えば、加工対象の列cj’について、行i=1の属性値a1j’のセルに、以下の式(9)で示すような、加工後の(又は加工されなかった)属性値p_(k1j’,a1j’)と、これに対応する加工後ハッシュ値h_(1,j’,k1j’)との組がセットされる。
・・・(9)
同様に、加工対象の列cj’について、行iの属性値aij’のセルに、以下の式(10)で示すような、加工後の(又は加工されなかった)属性値p_(kij’,aij’)と、これに対応する加工後ハッシュ値h_(i,j’,kij’)との組がセットされる。
・・・(10)
なお、データ加工者が、列cj’の属性値に対して、一般化階層木Tj’に従わない不正な加工をした場合、上述したハッシュチェーンが壊れることとなる。つまり、上記の式(6)に示したような適切なハッシュチェーンが、データ加工装置200で構成されないこととなる。したがって、後の署名検証で不正が検知される。
送信部230は、加工対象データに対して加工が施されたデータセット(匿名化データ)と、加工対象データに対応する加工後ハッシュ値と、デジタル署名とを、データ受領装置300に送信する(S222)。具体的には、送信部230は、C及びC’の情報を含み、加工対象の列cj’のセル(i,cj’)(行i,列cj’のセル)に対して、式(10)で示したような属性値と加工後ハッシュ値との組がセットされたデータセットを、データ受領装置300に送信する。つまり、送信部230は、加工対象の列cj’のセル(i,cj’)について、式(10)で示したような加工後の(又は加工されなかった)属性値と加工後ハッシュ値との組を、データ受領装置300に送信する。
また、送信部230は、各行の署名{σ}と、加工対象の各列の一般化階層木{Tj’}とを、データ受領装置300に送信する。なお、送信部230は、乱数表{Rj’}をデータ受領装置300に送信しない。すなわち、加工の対象とされた属性のうち加工が施されなかった属性値については、先頭ハッシュ値が、加工後ハッシュ値として、データ受領装置300に送信される。これにより、データ受領装置300に乱数を送信しなくても、データ受領装置300において署名検証を行うことができる。したがって、比較例と異なり、データ加工装置200は、データ受領装置300に乱数を送信しない。
<検証処理>
次に、一般化の加工を行う際の検証処理(S300)について説明する。データ受領装置300において、検証用ハッシュ値算出部310は、検証用ハッシュ値を算出する(S310)。具体的には、検証用ハッシュ値算出部310は、加工対象でない属性の列cの属性値aijに対して、行i(レコード)ごとに、上記の式(1)を用いてハッシュ値hijを算出する。算出されたハッシュ値が、加工対象でない属性についての検証用ハッシュ値に対応する。
また、検証用ハッシュ値算出部310は、加工対象である属性の列cj’に対して、行i(レコード)ごとに、一般化階層木Tj’を用いて、以下のように、検証用ハッシュ値hij’を算出する。検証用ハッシュ値算出部310は、セル(i,cj’)にセットされている、加工後の(又は加工されなかった)属性値p_(kij’,aij’)と、これに対応する加工後ハッシュ値h_(i,j’,kij’)との組(上記の式(10)に示す)を抽出する。
次に、検証用ハッシュ値算出部310は、以下の式(11)を用いて、一般化階層木Tj’の各階層の属性値に対応する中間ハッシュ値を算出する。なお、p_(k,p_(kij’,aij’))は、一般化階層木Tj’において、属性値p_(kij’,aij’)の階層kにおける親ノードの属性値である。なお、k=kij’のとき、p_(kij’,p_(kij’,aij’))=p_(kij’,aij’)である。
・・・(11)
式(11)は、初期値k=kij’で、抽出された属性値p_(kij’,aij’)と加工後ハッシュ値h_(i,j’,kij’)とを結合したデータのハッシュ値を、階層kij’の1つ上の階層の属性値に対応する中間ハッシュ値として算出することを示している。つまり、検証用ハッシュ値算出部310は、加工後ハッシュ値と当該加工後ハッシュ値に対応する加工後の加工対象データの属性値とを組み合わせたデータ列に対して、当該属性値の階層構造における上の階層の属性値に対応する中間ハッシュ値を算出する。なお、式(11)は、式(3)と初期値が異なる。
また、式(11)は、階層kの属性値p_(k,p_(kij’,aij’))とそれに対応する中間ハッシュ値hij’,kとを結合したデータのハッシュ値を、階層(k+1)の属性値p_((k+1),p_(kij’,aij’))に対応する中間ハッシュ値hij’,k+1として算出することを示している。つまり、検証用ハッシュ値算出部310は、中間ハッシュ値と当該中間ハッシュ値に対応する階層の属性値とを組み合わせたデータ列に対して、当該属性値の階層構造における上の階層の状態に対応する中間ハッシュ値を算出する。
図14の一般化階層木Tj’の例において、aij’=「東京」が属性値「関東」に一般化されている場合、式(11)において、初期値k=kij’=2である。したがって、p_(kij’,aij’)=p_(2,aij’)=「関東」である。したがって、検証用ハッシュ値算出部310は、属性値「関東」とそれに対応する加工後ハッシュ値hi,j’,2とを結合したデータのハッシュ値を、属性値「日本」に対応する中間ハッシュ値hi,j’,3として算出する。
そして、検証用ハッシュ値算出部310は、最上位階層lj’の属性値p_(lj’,p_(kij’,aij’))と対応する中間ハッシュ値h_(i,j’,lj’)とを結合したデータのハッシュ値h_(i,j’,lj’+1)を算出する。このハッシュ値h_(i,j’,lj’+1)を、行i列cj’に対応する加工対象データに対応する検証用ハッシュ値hij’とする。つまり、以下の式(12)が成り立つ。
・・・(12)
つまり、検証用ハッシュ値算出部310は、階層構造における最も上の階層の属性値と当該属性値に対応する中間ハッシュ値とを組み合わせたデータ列に対して算出されたハッシュ値を、検証用ハッシュ値として算出する。図14の一般化階層木Tj’の例では、検証用ハッシュ値算出部310は、属性値「日本」とそれに対応する中間ハッシュ値hij’,3とを結合したデータのハッシュ値hij’,4を、行i列cj’に対応する検証用ハッシュ値hij’として算出する。
検証部320は、署名検証を行う(S322)。つまり、検証部320は、検証用ハッシュ値とデジタル署名とに対して検証を行う。具体的には、検証部320は、各行i(レコード)に対して、以下の式(13)のように、各列j(列cj’)のデータに対応する検証用ハッシュ値を全て連結して、ハッシュ値h’を算出する。そして、全ての行i(レコード)についてハッシュ値h’を算出して、{h’}を得る。
・・・(13)
そして、検証部320は、得られた{h’}と、データ提供装置100から送信された署名{σ}とから、データ提供者の検証鍵を用いて、デジタル署名における検証アルゴリズムにより、署名を検証する。検証部320は、例えば、上述したRSA又はDSA等における検証アルゴリズムにより、署名{σ}と{h’}と検証鍵とを用いて、署名を検証する。これにより、検証部320は、データ加工装置200から提供された加工後のデータセットの正当性を検証する。これらのことは、他の実施の形態でも同様である。
検証に成功した場合、データ加工者による不正な加工は発生しておらず、かつ、データ加工者から渡されたデータはデータ提供者のデータを元にしたものだと分かる。一方、検証に失敗した場合,データ加工者による不正な加工があったか、あるいは、データ提供者のデータを元にしたもの以外の偽データが含まれている可能性があることが分かる。このことは、他の実施の形態でも同様である。
(実施の形態3)
次に、実施の形態3について説明する。説明の明確化のため、以下の記載及び図面は、適宜、省略、及び簡略化がなされている。また、各図面において、同一の要素には同一の符号が付されており、必要に応じて重複説明は省略されている。なお、実施の形態3にかかるシステム構成については、実施の形態1のシステム構成と実質的に同様であるので、説明を省略する。つまり、実施の形態3にかかる情報処理システム10は、データ提供装置100と、データ加工装置200と、データ受領装置300とを有する。実施の形態3は、上述した実施の形態1の構成を、「削除」の加工(匿名化)を行う場合に適用したものに対応する。
図17は、実施の形態3にかかる情報処理システム10における処理の流れを説明するための図である。図17は、属性「氏名」及び属性「住所」の2つの属性の列を有するデータセットを加工(削除)する例を示している。図12の場合と同様に、属性「氏名」の列は、データ加工装置200(データ加工者)による加工の対象外の属性の列とする。一方、属性「住所」は、データ加工装置200(データ加工者)による加工(削除)の対象の属性の列とする。なお、実施の形態3では、一般化を行うわけではないので、一般化階層木は不要である。
データ提供装置100からデータ加工装置200に、元データ(平文)であるデータセットDb1が提供される。データセットDb1は、図12に例示したデータセットDa1と実質的に同じである。データ加工装置200は、氏名「BB」のレコードの属性「住所」の属性値「東京」を削除(匿名化)する。また、データ加工装置200は、氏名「AA」のレコードの属性「住所」の属性値「東京」を、属性値「東京」のままとし、削除しない。また、データ加工装置200は、氏名「CC」のレコードの属性「住所」の属性値「神奈川」を、属性値「神奈川」のままとし、削除しない。データ加工装置200は、このようにして、匿名化データDb2を生成し、データ受領装置300(データ受領者)に送信する。
なお、本実施の形態では、削除する対象の属性の列について、削除後の状態が異なる場合がある。図17の例では、氏名「AA」のレコードの属性「住所」の属性値「東京」は、削除されていない。また、氏名「BB」のレコードの属性「住所」の属性値「東京」は、削除されている。氏名「CC」のレコードの属性「住所」の属性値「神奈川」は、削除されていない。
さらに、本実施の形態では、比較例と異なり、同じ属性値でも、レコードによって削除後の状態が異なる場合があり得る。図17の例では、属性値「東京」について、氏名「AA」のレコードでは削除されていないのに対し、氏名「BB」のレコードでは属性値「東京」は削除されている。
実施の形態1の場合と同様に、実施の形態3にかかるデータ提供装置100は、署名生成処理(S100)を行い、データ加工装置200は、データ加工処理(S200)を行い、データ受領装置300は、検証処理(S300)を行う。以下、これらの処理について説明する。
<署名生成処理>
まず、削除の加工を行う際の署名生成処理(S100)について説明する。データ提供装置100において、加工ルール設定部110は、一般化の場合と同様に、データセット(元データ)を構成する複数のデータの属性のそれぞれについて加工ルールを設定する(S102)。まず、加工ルール設定部110は、一般化の場合と同様に、図13で例示したように、データセットの各列(各属性)に対して、加工(削除)の対象か否かを決定する。つまり、加工ルール設定部110は、加工の対象とされた属性それぞれについて、加工前の属性値を削除するルールを設定する。
そして、加工ルール設定部110は、加工対象(削除の対象)ではない属性を設定する。また、加工ルール設定部110は、加工対象(削除の対象)とする属性を設定する。ここで、加工対象ではない属性の列の集合をCとし、加工対象の属性の列の集合をC’とする。この場合、各列は、c∈C、cj’∈C’となる。つまり、加工対象の属性の列のインデックスをj’とする。なお、削除の加工の場合は、加工ルール設定部110は、一般化階層木を設定しなくてもよい。
乱数設定部120は、加工ルールにおいて加工(削除)の対象とされた属性に関する加工対象データがとり得る複数の属性値に対応する状態に対して所定の乱数を設定する(S104)。つまり、乱数設定部120は、加工対象データが元データにおいてとり得る複数の属性値に対応する状態に対して所定の乱数を設定する。そして、乱数設定部120は、図15に例示したように、各属性値について設定された乱数を示す乱数表を生成する。つまり、乱数設定部120は、列cj’に対して、乱数表Rj’を生成する。乱数表Rj’は、加工対象の属性の列ごとに生成され得る。
署名用ハッシュ値算出部130は、データセットの複数のデータそれぞれに対応する署名用ハッシュ値を算出する(S110)。署名用ハッシュ値算出部130は、加工対象でない属性の列cの属性値aijに対して、行i(レコード)ごとに、ハッシュ関数Hを用いて、上記の式(1)を用いてハッシュ値hijを算出する。算出されたハッシュ値が、加工対象でない属性についての署名用ハッシュ値に対応する。
また、署名用ハッシュ値算出部130は、加工対象である属性の列cj’に対して、行i(レコード)ごとに、乱数表Rj’を用いて、以下の式(14)~(15)を用いて、行i列cj’に対応する加工対象データに対応する署名用ハッシュ値hij’を算出する。
署名用ハッシュ値算出部130は、以下の式(14)を用いて、属性値aij’に対応する先頭ハッシュ値hij’,1を算出する。
・・・(14)
式(14)に示すように、先頭ハッシュ値hij’,1は、属性値aij’と、対応する乱数r_aij’に行番号iを加算した値とを結合したデータ列に対して得られたハッシュ値である。なお、式(14)は、上記の式(2)と実質的に同じ式である。
次に、署名用ハッシュ値算出部130は、以下の式(15)を用いて、ハッシュ値hij’,2を算出する。
・・・(15)
式(15)は、属性値aij’とこれに対応する先頭ハッシュ値hij’,1とを結合したデータのハッシュ値hij’,2を算出することを示している。そして、このハッシュ値hij’,2を、行i列cj’に対応する加工対象データに対応する署名用ハッシュ値hij’とする。つまり、以下の式(16)が成り立つ。
・・・(16)
つまり、署名用ハッシュ値算出部130は、属性値aij’とこれに対応する先頭ハッシュ値hij’,1とを結合したデータのハッシュ値を、署名用ハッシュ値として算出する。言い換えると、署名用ハッシュ値算出部130は、加工対象データについて、当該加工対象データと当該先頭ハッシュ値とを組み合わせたデータ列に対して算出されたハッシュ値を、署名用ハッシュ値として算出する。
なお、式(14)及び式(15)の計算により、以下の式(17)で示すようなハッシュチェーンが構成される。
・・・(17)
式(17)に示すハッシュチェーンは、順に、元の属性値に対応するハッシュ値(先頭ハッシュ値)、削除後の状態に対応する末尾のハッシュ値で構成される。なお、末尾のハッシュ値は、署名用ハッシュ値に対応する。なお、削除の加工では、一般化階層木は必要ないが、削除の加工に関するハッシュ値を、高さ「1」の階層に沿って算出すると捉えてもよい。
署名生成部140は、複数のデータそれぞれに対応する署名用ハッシュ値を用いてデジタル署名を生成する(S122)。具体的には、署名生成部140は、各行iに対して、実施の形態2の場合と実質的に同様にして、ハッシュ値hを算出する。すなわち、署名生成部140は、上記の式(7)のように、各行iについて、各列j(列cj’)のデータに対応する署名用ハッシュ値を全て連結して、ハッシュ値hを算出する。また、署名生成部140は、実施の形態2の場合と実質的に同様にして、算出されたハッシュ値hに対して、デジタル署名アルゴリズムにより、データ提供者の秘密鍵を用いて、デジタル署名σを生成する。
送信部150は、少なくともデータセットと、デジタル署名と、乱数とを、データ加工装置200に送信する。具体的には、送信部150は、C及びC’の情報を含む元データ(データセット)と、各行の署名{σ}と、加工対象の各列の乱数表{Rj’}とを、データ加工装置200に送信する。
<データ加工処理>
次に、削除の加工を行う際のデータ加工処理(S200)について説明する。データ加工装置200において、加工処理部210は、加工対象の属性に対応する加工対象データに対して削除の加工(匿名化)を施すための処理を行う(S202)。データ加工者は、削除の加工対象である属性の列の各属性値に対して、削除の加工を行う。
加工後ハッシュ値算出部220は、加工対象である属性の列について、加工後ハッシュ値を算出する(S210)。具体的には、加工後ハッシュ値算出部220は、上述した式(14)及び式(15)を用いて、属性値aij’の加工後の状態に対応する中間ハッシュ値を算出する。この中間ハッシュ値が、加工後ハッシュ値に対応する。
ここで、属性値aij’を削除する場合、加工後ハッシュ値算出部220は、式(14)及び式(15)を用いて、属性値aij’を削除した状態に対応する中間ハッシュ値hi,j’,2を算出する。この中間ハッシュ値hi,j’,2が、加工後ハッシュ値に対応する。つまり、加工後ハッシュ値算出部220は、削除の加工が施された当該加工対象データについて、当該加工対象データと当該先頭ハッシュ値とを組み合わせたデータ列に対して算出されたハッシュ値を、加工後ハッシュ値として算出する。
一方、属性値aij’を削除しない場合、加工後ハッシュ値算出部220は、式(14)を用いて、属性値aij’に対応する先頭ハッシュ値である中間ハッシュ値hi,j’,1を算出する。この中間ハッシュ値hi,j’,1が、加工後ハッシュ値に対応する。つまり、加工後ハッシュ値算出部220は、加工の対象とされた属性のうち加工が施されなかった属性値について、当該属性値と当該属性値について設定された乱数とを用いて得られたデータ列に対して算出された先頭ハッシュ値を加工後ハッシュ値として算出する。
図18は、実施の形態3にかかるデータ加工装置200の処理を説明するための図である。加工後ハッシュ値算出部220は、行i列cj’のセルについて、属性値aij’を削除する場合、削除した状態に対応する加工後ハッシュ値である中間ハッシュ値hi,j’,2をセットする。図18の例では、行「1」のセルについて属性値a1j’を削除するので、削除した状態に対応する加工後ハッシュ値である中間ハッシュ値h1,j’,2がセットされる。一方、加工後ハッシュ値算出部220は、行i列cj’のセルについて、属性値aij’を削除しない場合、属性値aij’と、対応する加工後ハッシュ値(中間ハッシュ値)である先頭ハッシュ値hi,j’,1との組(aij’,hi,j’,1)がセットされる。
なお、データ加工者が、列cj’の属性値に対して、削除のルールに従わない不正な加工をした場合、上述したハッシュチェーンが壊れることとなる。つまり、上記の式(17)に示したような適切なハッシュチェーンが、データ加工装置200で構成されないこととなる。したがって、後の署名検証で不正が検知される。
送信部230は、加工対象データに対して加工が施されたデータセット(匿名化データ)と、加工対象データに対応する加工後ハッシュ値と、デジタル署名とを、データ受領装置300に送信する(S222)。具体的には、送信部230は、C及びC’の情報を含み、加工対象の列cj’のセル(i,cj’)(行i,列cj’のセル)に対して、図18に例示したような属性値と加工後ハッシュ値との組がセットされたデータセットを、データ受領装置300に送信する。つまり、送信部230は、加工対象の列cj’のセル(i,cj’)について、加工後の(又は加工しなかった)属性値と加工後ハッシュ値との組を、データ受領装置300に送信する。
また、送信部230は、各行の署名{σ}を、データ受領装置300に送信する。なお、送信部230は、乱数表{Rj’}をデータ受領装置300に送信しない。すなわち、加工の対象とされた属性のうち加工が施されなかった属性値については、先頭ハッシュ値が、加工後ハッシュ値として、データ受領装置300に送信される。これにより、データ受領装置300に乱数を送信しなくても、データ受領装置300において署名検証を行うことができる。したがって、データ受領装置300に乱数を送信しない。
<検証処理>
次に、削除の加工を行う際の検証処理(S300)について説明する。データ受領装置300において、検証用ハッシュ値算出部310は、検証用ハッシュ値を算出する(S310)。具体的には、検証用ハッシュ値算出部310は、加工対象でない属性の列cの属性値aijに対して、行i(レコード)ごとに、上記の式(1)を用いてハッシュ値hijを算出する。算出されたハッシュ値が、加工対象でない属性についての検証用ハッシュ値に対応する。
また、検証用ハッシュ値算出部310は、加工対象である属性の列cj’に対して、行i(レコード)ごとに、以下のように、検証用ハッシュ値hij’を算出する。検証用ハッシュ値算出部310は、セル(i,cj’)について属性値が削除されている場合、このセルにセットされている加工後ハッシュ値hi,j’,2を抽出する。そして、検証用ハッシュ値算出部310は、この加工後ハッシュ値hi,j’,2を、検証用ハッシュ値hij’とする。つまり、以下の式(18)が成り立つ。つまり、検証用ハッシュ値算出部310は、削除の加工が施された加工対象データについて、当該加工対象データに対応する加工後ハッシュ値を、検証用ハッシュ値として算出する。
・・・(18)
一方、検証用ハッシュ値算出部310は、セル(i,cj’)について属性値が削除されていない場合、このセルにセットされている属性値aij’と、これに対応する加工後ハッシュ値hi,j’,1との組(aij’,hi,j’,1)を抽出する。そして、検証用ハッシュ値算出部310は、以下の式(19)のようにして、検証用ハッシュ値hij’を算出する。
・・・(19)
式(19)は、属性値aij’とこれに対応する先頭ハッシュ値hij’,1とを結合したデータのハッシュ値を、検証用ハッシュ値hij’として算出することを示している。なお、式(19)の右辺は、ハッシュ値hij’,2に対応する。
検証部320は、署名検証を行う(S322)。つまり、検証部320は、検証用ハッシュ値とデジタル署名とに対して検証を行う。具体的には、検証部320は、各行i(レコード)に対して、上記の式(13)のように、各列j(列cj’)のデータに対応する検証用ハッシュ値を全て連結して、ハッシュ値h’を算出する。そして、全ての行i(レコード)についてハッシュ値h’を算出して、{h’}を得る。そして、実施の形態2の場合と同様に、検証部320は、得られた{h’}と、データ提供装置100から送信された署名{σ}とから、データ提供者の検証鍵を用いて、デジタル署名における検証アルゴリズムにより、署名を検証する。
(実施の形態4)
次に、実施の形態4について説明する。説明の明確化のため、以下の記載及び図面は、適宜、省略、及び簡略化がなされている。また、各図面において、同一の要素には同一の符号が付されており、必要に応じて重複説明は省略されている。なお、実施の形態4にかかるシステム構成については、実施の形態1のシステム構成と実質的に同様であるので、説明を省略する。つまり、実施の形態4にかかる情報処理システム10は、データ提供装置100と、データ加工装置200と、データ受領装置300とを有する。実施の形態4は、上述した実施の形態1の構成を、「一般化」及び「削除」の加工(匿名化)を行う場合に適用したものに対応する。言い換えると、実施の形態4では、「一般化」の加工を「削除」の加工にまで拡張している。
図19は、実施の形態4にかかる情報処理システム10における処理の流れを説明するための図である。図19は、属性「氏名」及び属性「住所」の2つの属性の列を有するデータセットを加工(一般化及び削除)する例を示している。そして、属性「氏名」の列は、データ加工装置200(データ加工者)による加工の対象外の属性の列とする。一方、属性「住所」は、データ加工装置200(データ加工者)による加工(一般化及び削除)の対象の属性の列とする。つまり、データセットには、加工対象の属性の列と、加工対象ではない属性の列とが混在している。そして、加工対象である1つの属性の列において、一般化及び削除の加工がなされ得る。つまり、同じ列において、一般化がなされるレコードと削除がなされるレコードといずれの加工もなされないレコードとが混在し得る。
データ提供装置100からデータ加工装置200に、元データ(平文)であるデータセットDc1が提供される。データセットDc1は、図12に例示したデータセットDa1と実質的に同じである。データ加工装置200は、氏名「AA」のレコードの属性「住所」の属性値「東京」を、属性値「関東」に一般化(匿名化)する。また、データ加工装置200は、氏名「BB」のレコードの属性「住所」の属性値「東京」を、属性値「東京」のままとし、加工しない。また、データ加工装置200は、氏名「CC」のレコードの属性「住所」の属性値「神奈川」を削除(匿名化)する。データ加工装置200は、このようにして、匿名化データDc2を生成し、データ受領装置300(データ受領者)に送信する。
なお、本実施の形態では、一般化及び削除の対象の属性の列について、一般化後の階層が異なる場合がある。図19の例では、氏名「AA」のレコードの属性「住所」の属性値「東京」は、1つ上の階層に一般化されている。また、氏名「BB」のレコードの属性「住所」の属性値「東京」は、一般化されていない。氏名「CC」のレコードの属性「住所」の属性値「神奈川」は、削除されている。
さらに、本実施の形態では、比較例と異なり、同じ属性値でも、レコードによって一般化後の階層が異なる場合があり得る。図19の例では、属性値「東京」について、氏名「AA」のレコードでは1つ上の階層の属性値「関東」に一般化されたのに対し、氏名「BB」のレコードでは属性値「東京」のままであり、一般化されていない。
実施の形態1の場合と同様に、実施の形態4にかかるデータ提供装置100は、署名生成処理(S100)を行い、データ加工装置200は、データ加工処理(S200)を行い、データ受領装置300は、検証処理(S300)を行う。以下、これらの処理について説明する。
<署名生成処理>
まず、一般化及び削除の加工を行う際の署名生成処理(S100)について説明する。データ提供装置100において、加工ルール設定部110は、実施の形態2と同様に、データセット(元データ)を構成する複数のデータの属性のそれぞれについて加工ルールを設定する(S102)。まず、加工ルール設定部110は、実施の形態2と同様に、図13で例示したように、データセットの各列(各属性)に対して、加工(一般化及び削除)の対象か否かを決定する。つまり、加工ルール設定部110は、加工の対象とされた属性それぞれについて、加工前の属性値を加工するルールを設定する。
そして、加工ルール設定部110は、加工対象ではない属性を設定する。また、加工ルール設定部110は、加工対象とする属性を設定する。ここで、加工対象ではない属性の列の集合をCとし、加工対象の属性の列の集合をC’とする。この場合、各列は、c∈C、cj’∈C’となる。つまり、加工対象の属性の列のインデックスをj’とする。
加工ルール設定部110は、加工対象の属性の列cj’に関して、一般化階層木Tj’を設定する。つまり、加工ルール設定部110は、加工の対象とされた属性それぞれについて、加工前の属性値を加工(一般化及び削除)するルールを示す一般化階層木Tj’を設定する。ここで、実施の形態4では、一般化階層木Tj’は、上の階層ほど一般化された属性値を示し、さらに、最も上の階層が、属性値を削除する状態を示す階層構造を有する。つまり、加工ルール設定部110は、一般化階層木において最も一般化された階層である上から2番目の階層のさらに上の階層に、加工対象データの属性値を削除する状態を設定する。したがって、実施の形態4では、「削除」の加工は、最も一般化された属性値をさらに一般化した状態にすることに対応し得る。なお、一般化階層木Tj’は、加工対象の属性の列ごとに設定され得る。ここで、一般化階層木Tj’の高さをlj’とする。
図20は、実施の形態4にかかる一般化階層木Tj’を例示する図である。図20は、cj’が属性「住所」の列である場合の一般化階層木Tj’を例示している。この例では、一般化階層木Tj’の高さはlj’=4である。また、階層「1」(葉ノード)は、属性値「東京」,「神奈川」,「大阪」等の「都道府県名」に対応する。また、階層「2」(中間ノード)は、より抽象度の高い属性値「関東」,「近畿(地方)」等の「地方名」に対応する。また、階層「3」(中間ノード)は、最も抽象度の高い「日本」という「国名」に対応する。また、階層「4」(根ノード)は、属性値が削除された状態に対応する。なお、階層「4」の状態は、「削除まで一般化した状態」ともいえる。
乱数設定部120は、加工ルールにおいて加工の対象とされた属性に関する加工対象データがとり得る複数の属性値に対応する状態に対して所定の乱数を設定する(S104)。つまり、乱数設定部120は、加工対象データが元データにおいてとり得る複数の属性値に対応する状態に対して所定の乱数を設定する。そして、乱数設定部120は、図15に例示したように、各属性値について設定された乱数を示す乱数表を生成する。つまり、乱数設定部120は、列cj’に対して、乱数表Rj’を生成する。乱数表Rj’は、加工対象の属性の列ごとに生成され得る。
署名用ハッシュ値算出部130は、データセットの複数のデータそれぞれに対応する署名用ハッシュ値を算出する(S110)。署名用ハッシュ値算出部130は、加工対象でない属性の列cの属性値aijに対して、行i(レコード)ごとに、ハッシュ関数Hを用いて、上記の式(1)を用いてハッシュ値hijを算出する。算出されたハッシュ値が、加工対象でない属性についての署名用ハッシュ値に対応する。
また、署名用ハッシュ値算出部130は、加工対象である属性の列cj’に対して、行i(レコード)ごとに、乱数表Rj’を用いて、以下の式(20)~(22)を用いて、行i列cj’に対応する加工対象データに対応する署名用ハッシュ値hij’を算出する。ここで、属性値aij’は、一般化階層木Tj’における階層「1」の属性値であるとする。また、属性値aij’の階層kにおける親ノードの属性値をp_(k,aij’)とする。なお、p_(1,aij’)=aij’である。図20の一般化階層木Tj’の例では、p_(1,aij’)=aij’=「東京」、p_(2,aij’)=「関東」、p_(3,aij’)=「日本」である。また、階層kの状態(属性値、又は属性値が削除された状態)に対応する中間ハッシュ値をhij’,kとする。
署名用ハッシュ値算出部130は、以下の式(20)を用いて、属性値aij’に対応する先頭ハッシュ値hij’,1を算出する。
・・・(20)
式(20)に示すように、先頭ハッシュ値hij’,1は、属性値aij’と、対応する乱数r_aij’に行番号iを加算した値とを結合したデータ列に対して得られたハッシュ値である。なお、式(20)は、上記の式(2)と実質的に同じ式である。
次に、署名用ハッシュ値算出部130は、以下の式(21)を用いて、一般化階層木Tj’の各階層の属性値に対応する中間ハッシュ値を算出する。
・・・(21)
式(21)は、階層kの属性値p_(k,aij’)とそれに対応する中間ハッシュ値hij’,kとを結合したデータのハッシュ値を、階層(k+1)の属性値p_((k+1),aij’)に対応する中間ハッシュ値hij’,k+1として算出することを示している。つまり、署名用ハッシュ値算出部130は、中間ハッシュ値と当該中間ハッシュ値に対応する階層の状態(属性値)とを組み合わせたデータ列に対して、当該状態(属性値)の階層構造における上の階層の状態(属性値)に対応する中間ハッシュ値を算出する。
なお、式(21)において、k=1の場合は上記の式(4)のようになる。ここで、上述したように、p_(1,aij’)=aij’である。したがって、本実施の形態では、データセット(元データ)の属性値aij’が、先頭ハッシュ値を算出する式(20)と、1つ上の階層の状態(属性値)に対応する中間ハッシュ値を算出する式(21)(式(4))との2回使用される。
また、式(21)において、k=lj’-1のとき、最も上の階層に対応する状態(属性値が削除された状態)に対応する中間ハッシュ値h_(i,j’,lj’)が算出される。すなわち、上から2番目の階層の属性値p_((lj’-1),aij’)(図20の例では「日本」)とその属性値に対応する中間ハッシュ値h_(i,j’,lj’-1)とを結合したデータに対して、中間ハッシュ値h_(i,j’,lj’)が算出される。
また、署名用ハッシュ値算出部130は、以下の式(22)を用いて、最上位階層lj’の状態(属性値が削除された状態)に対応する中間ハッシュ値h_(i,j’,lj’)のハッシュ値h_(i,j’,lj’+1)を算出する。なお、中間ハッシュ値h_(i,j’,lj’)に対応する属性値は存在しない(属性値が削除されている)ので、式(22)の右辺では、ハッシュ値の算出の際に属性値を結合していない。
・・・(22)
このハッシュ値h_(i,j’,lj’+1)を、行i列cj’に対応する加工対象データに対応する署名用ハッシュ値hij’とする。つまり、以下の式(23)が成り立つ。
・・・(23)
つまり、署名用ハッシュ値算出部130は、階層構造における最も上の階層の状態に対応する中間ハッシュ値に対して算出されたハッシュ値を、署名用ハッシュ値として算出する。また、署名用ハッシュ値算出部130は、階層構造における上から2番目の階層の属性値と当該属性値に対応する中間ハッシュ値とを組み合わせたデータ列に対して算出された中間ハッシュ値に対して算出されたハッシュ値を、署名用ハッシュ値として算出する。
図20の一般化階層木Tj’の例では、署名用ハッシュ値算出部130は、式(21)により、上から2番目の階層(k=lj’-1)の属性値「日本」と対応する中間ハッシュ値hij’,3とを結合したデータについて、中間ハッシュ値hij’,4を算出する。そして、署名用ハッシュ値算出部130は、式(22)により、中間ハッシュ値hij’,4に対してハッシュ値hij’,5を算出する。式(23)により、このハッシュ値hij’,5が、行i列cj’に対応する署名用ハッシュ値hij’とされる。
なお、階層k=1から最上位階層k=lj’まで上記の式(20)~式(23)の計算を行うことで、以下の式(24)で示すように、一般化階層木Tj’に沿ってハッシュチェーンが構成される。
・・・(24)
式(24)に示すハッシュチェーンは、以下のように構成される。すなわち、順に、階層k=1の属性値に対応する先頭ハッシュ値、階層k=2の属性値に対応する中間ハッシュ値、・・・、階層k=lj’-1の属性値に対応する中間ハッシュ値、階層k=lj’の状態に対応する中間ハッシュ値、及び末尾のハッシュ値である。図20の一般化階層木の例では、ハッシュチェーンは、属性値「東京」に対応する先頭ハッシュ値、属性値「関東」に対応する中間ハッシュ値、属性値「日本」に対応する中間ハッシュ値、「削除」に対応する中間ハッシュ値、及び末尾のハッシュ値で構成される。なお、末尾のハッシュ値は、署名用ハッシュ値に対応する。言い換えると、式(20)~式(22)は、一般化階層木Tj’に沿って、先頭ハッシュ値から末尾のハッシュ値まで中間ハッシュ値を算出することを表している。
署名生成部140は、複数のデータそれぞれに対応する署名用ハッシュ値を用いてデジタル署名を生成する(S122)。具体的には、署名生成部140は、各行iに対して、実施の形態2の場合と実質的に同様にして、ハッシュ値hを算出する。すなわち、署名生成部140は、上記の式(7)のように、各行iについて、各列j(列cj’)のデータに対応する署名用ハッシュ値を全て連結して、ハッシュ値hを算出する。また、署名生成部140は、実施の形態2の場合と実質的に同様にして、算出されたハッシュ値hに対して、デジタル署名アルゴリズムにより、データ提供者の秘密鍵を用いて、デジタル署名σを生成する。
送信部150は、少なくともデータセットと、デジタル署名と、乱数とを、データ加工装置200に送信する。具体的には、送信部150は、C及びC’の情報を含む元データ(データセット)と、各行の署名{σ}と、加工対象の各列の一般化階層木{Tj’}と、加工対象の各列の乱数表{Rj’}とを、データ加工装置200に送信する。
<データ加工処理>
次に、一般化及び削除の加工を行う際のデータ加工処理(S200)について説明する。データ加工装置200において、加工処理部210は、加工対象の属性に対応する加工対象データに対して一般化又は削除の加工(匿名化)を施すための処理を行う(S202)。データ加工者は、データ提供装置100から送信された一般化階層木Tj’に従って、加工対象である属性の列の各属性値に対して、一般化又は削除の加工を行う。図20の例では、例えば、属性値「東京」のセルについては、属性値「関東」又は属性値「日本」に一般化するか、一般化せずに属性値「東京」のままとするか、又は属性値を削除する。属性値「大阪」のセルについては、属性値「近畿」又は属性値「日本」に一般化するか、一般化せずに属性値「大阪」のままとするか、又は属性値を削除する。
加工処理部210は、加工対象である属性の列cj’について、属性値を削除しない場合、属性値aij’を属性値p_(kij’,aij’)に変更する。つまり、加工処理部210は、行i列cj’のセルに、属性値p_(kij’,aij’)をセットする。ここで、kij’=1,・・・,lj’-1である。なお、kij’=lj’のとき、属性値が削除されているため、属性値p_(kij’,aij’)は存在しない。
ここで、属性値p_(kij’,aij’)は、属性値aij’を一般化して、一般化階層木Tj’の階層kij’の属性値としたものを示す。例えば、aij’=「東京」を属性値「関東」に一般化する場合、kij’=2であり、p_(2,aij’)=「関東」である。なお、属性値aij’を一般化しない場合、kij’=1であり、p_(1,aij’)=aij’である。
加工後ハッシュ値算出部220は、加工対象である属性の列について、加工後ハッシュ値を算出する(S210)。具体的には、加工後ハッシュ値算出部220は、一般化の加工が行われる場合、上述した式(20)及び以下の式(25)を用いて、属性値aij’の加工後の属性値p_(kij’,aij’)に対応する中間ハッシュ値h_(i,j’,kij’)を算出する。式(25)は、式(21)の計算を一般化後の階層kij’-1まで行うことに対応する。この中間ハッシュ値h_(i,j’,kij’)が、加工後ハッシュ値に対応する。なお、kij’ =2,・・・,lj’-1である。
・・・(25)
したがって、加工後ハッシュ値算出部220は、中間ハッシュ値と当該中間ハッシュ値に対応する階層の属性値とを組み合わせたデータ列に対して、当該属性値の前記階層構造における上の階層の属性値に対応する中間ハッシュ値を算出する。そして、加工後ハッシュ値算出部220は、当該加工対象データに対し一般化の加工が施された場合、加工後の当該加工対象データに対応する属性値に対応する中間ハッシュ値を、加工後の当該加工対象データに対応する加工後ハッシュ値として算出する。
但し、式(25)は、属性値が加工(一般化又は削除)される場合に使用され、加工されない場合は使用されない。属性値aij’が加工されない場合、加工後ハッシュ値算出部220は、式(20)を用いて、p_(1,aij’)=aij’に対応する先頭ハッシュ値である中間ハッシュ値hi,j’,1を算出する。この中間ハッシュ値hi,j’,1が、加工後ハッシュ値に対応する。つまり、加工後ハッシュ値算出部220は、加工の対象とされた属性のうち加工が施されなかった属性値について、当該属性値と当該属性値について設定された乱数とを用いて得られたデータ列に対して算出された先頭ハッシュ値を加工後ハッシュ値として算出する。
また、加工後ハッシュ値算出部220は、削除の加工が行われる場合、上述した式(20)及び式(21)を用いて、階層lj’の、属性値aij’を削除した状態に対応する中間ハッシュ値h_(i,j’,lj’)を算出する。この中間ハッシュ値h_(i,j’,lj’)が、加工後ハッシュ値に対応する。つまり、加工後ハッシュ値算出部220は、当該加工対象データに対し削除の加工が施された場合、階層構造における最も上の階層の状態に対応する中間ハッシュ値を、加工後の当該加工対象データに対応する加工後ハッシュ値として算出する。言い換えると、加工後ハッシュ値算出部220は、階層構造における上から2番目の階層の属性値と当該属性値に対応する中間ハッシュ値とを組み合わせたデータ列に対して算出された中間ハッシュ値を、加工後ハッシュ値として算出する。
図20の一般化階層木Tj’の例では、属性値「東京」を属性値「関東」に一般化する場合、加工後ハッシュ値算出部220は、式(20)を用いて、p_(1,aij’)=aij’=「東京」に対応する先頭ハッシュ値hi,j’,1を算出する。そして、加工後ハッシュ値算出部220は、式(25)を用いて、p_(2,aij’)=「関東」に対応する加工後ハッシュ値(中間ハッシュ値)hi,j’,2を算出する。一方、属性値「東京」を加工しない場合、加工後ハッシュ値算出部220は、式(20)を用いて、p_(1,aij’)=aij’=「東京」に対応する加工後ハッシュ値である先頭ハッシュ値hi,j’,1を算出する。また、属性値「東京」を削除する場合、加工後ハッシュ値算出部220は、式(20)を用いて、p_(1,aij’)=aij’=「東京」に対応する先頭ハッシュ値hi,j’,1を算出する。そして、加工後ハッシュ値算出部220は、式(21)を用いて、削除の状態に対応する加工後ハッシュ値(中間ハッシュ値)h_(i,j’,lj’)を算出する。
加工後ハッシュ値算出部220は、一般化の加工が施された又は加工が施されなかった行i列cj’のセルに、属性値p_(kij’,aij’)に対応する中間ハッシュ値h_(i,j’,kij’)をセットする。また、加工後ハッシュ値算出部220は、削除の加工が施された行i列cj’のセルに、中間ハッシュ値h_(i,j’,lj’)をセットする。これらの中間ハッシュ値h_(i,j’,kij’)及びh_(i,j’,lj’)が、加工後ハッシュ値に対応する。加工後ハッシュ値によって、先頭ハッシュ値から加工後の属性値に対応するハッシュ値までのハッシュチェーンが構成される。
図21は、実施の形態4にかかるデータ加工装置200の処理を説明するための図である。行iに対しては、一般化の加工が施されている、又は加工が施されていない。また、行i’に対しては、削除の加工が施されている。
この場合、加工対象の列cj’について、行iの属性値aij’のセルに、上記の式(10)で示すような、一般化された(又は加工されなかった)属性値p_(kij’,aij’)と、これに対応する加工後ハッシュ値h_(i,j’,kij’)との組がセットされる。一方、加工対象の列cj’について、行i’の属性値ai’j’セルに、削除した状態に対応する加工後ハッシュ値である中間ハッシュ値h_(i’,j’,lj’)がセットされる。
なお、データ加工者が、列cj’の属性値に対して、一般化階層木Tj’に従わない不正な加工をした場合、ハッシュチェーンが壊れることとなる。つまり、上記の式(24)に示したような適切なハッシュチェーンが、データ加工装置200で構成されないこととなる。したがって、後の署名検証で不正が検知される。
送信部230は、C及びC’の情報を含み加工対象データに対して加工が施されたデータセット(匿名化データ)と、加工対象データに対応する加工後ハッシュ値と、デジタル署名とを、データ受領装置300に送信する(S222)。具体的には、送信部230は、加工対象の列cj’のセル(i,cj’)(行i,列cj’のセル)に対して、属性値と加工後ハッシュ値との組、又は削除された状態に対応する加工後ハッシュ値がセットされたデータセットを、データ受領装置300に送信する。
また、送信部230は、各行の署名{σ}と、加工対象の各列の一般化階層木{Tj’}とを、データ受領装置300に送信する。なお、送信部230は、乱数表{Rj’}をデータ受領装置300に送信しない。すなわち、加工の対象とされた属性のうち加工が施されなかった属性値については、先頭ハッシュ値を加工後ハッシュ値として、データ受領装置300に送信される。これにより、データ受領装置300に乱数を送信しなくても、データ受領装置300において署名検証を行うことができる。したがって、データ受領装置300に乱数を送信しない。
<検証処理>
次に、一般化及び削除の加工を行う際の検証処理(S300)について説明する。データ受領装置300において、検証用ハッシュ値算出部310は、検証用ハッシュ値を算出する(S310)。具体的には、検証用ハッシュ値算出部310は、加工対象でない属性の列cの属性値aijに対して、行i(レコード)ごとに、上記の式(1)を用いてハッシュ値hijを算出する。算出されたハッシュ値が、加工対象でない属性についての検証用ハッシュ値に対応する。
また、検証用ハッシュ値算出部310は、加工対象である属性の列cj’に対して、行i(レコード)ごとに、一般化階層木Tj’を用いて、以下のように、検証用ハッシュ値hij’を算出する。まず、一般化の加工が施されている又は加工が施されていないセルについて説明する。検証用ハッシュ値算出部310は、セル(i,cj’)にセットされている、加工後の(又は加工されなかった)属性値p_(kij’,aij’)と、これに対応する加工後ハッシュ値h_(i,j’,kij’)との組を抽出する。
検証用ハッシュ値算出部310は、以下の式(26)を用いて、一般化階層木Tj’の各階層の属性値に対応する中間ハッシュ値を算出する。なお、p_(k,p_(kij’,aij’))は、一般化階層木Tj’において、属性値p_(kij’,aij’)の階層kにおける親ノードの属性値である。なお、k=kij’のとき、p_(kij’,p_(kij’,aij’))=p_(kij’,aij’)である。
・・・(26)
式(26)は、初期値k=kij’で、抽出された属性値p_(kij’,aij’)と加工後ハッシュ値h_(i,j’,kij’)とを結合したデータのハッシュ値を、階層kij’の1つ上の階層の属性値に対応する中間ハッシュ値として算出することを示している。つまり、検証用ハッシュ値算出部310は、加工後ハッシュ値と当該加工後ハッシュ値に対応する加工後の加工対象データの属性値とを組み合わせたデータ列に対して、当該属性値の階層構造における上の階層の属性値に対応する中間ハッシュ値を算出する。なお、式(26)は、式(21)と初期値が異なる。また、式(26)は、式(11)と最終値が異なる。
また、式(26)は、階層kの属性値p_(k,p_(kij’,aij’))とそれに対応する中間ハッシュ値hij’,kとを結合したデータのハッシュ値を、階層(k+1)の属性値p_((k+1),p_(kij’,aij’))に対応する中間ハッシュ値hij’,k+1として算出することを示している。つまり、検証用ハッシュ値算出部310は、中間ハッシュ値と当該中間ハッシュ値に対応する階層の属性値とを組み合わせたデータ列に対して、当該属性値の階層構造における上の階層の状態に対応する中間ハッシュ値を算出する。
また、式(26)において、k=lj’-1のとき、最も上の階層に対応する状態(属性値が削除された状態)に対応する中間ハッシュ値h_(i,j’,lj’)が算出される。すなわち、上から2番目の階層の属性値p_((lj’-1),aij’)(図20の例では「日本」)とその属性値に対応する中間ハッシュ値h_(i,j’,lj’-1)とを結合したデータに対して、中間ハッシュ値h_(i,j’,lj’)が算出される。
また、検証用ハッシュ値算出部310は、以下の式(27)を用いて、最上位階層lj’の状態(属性値が削除された状態)に対応する中間ハッシュ値h_(i,j’,lj’)に対するハッシュ値h_(i,j’,lj’+1)を算出する。
・・・(27)
このハッシュ値h_(i,j’,lj’+1)を、行i列cj’に対応する加工対象データに対応する検証用ハッシュ値hij’とする。つまり、以下の式(28)が成り立つ。つまり、検証用ハッシュ値算出部310は、階層構造における最も上の階層の状態に対応する中間ハッシュ値に対して算出されたハッシュ値を、検証用ハッシュ値として算出する。
・・・(28)
図20の一般化階層木Tj’の例において、aij’=「東京」が属性値「関東」に一般化されている場合、初期値k=kij’=2である。したがって、p_(kij’,aij’)=p_(2,aij’)=「関東」である。したがって、検証用ハッシュ値算出部310は、属性値「関東」とそれに対応する加工後ハッシュ値hi,j’,2とを結合したデータのハッシュ値を、属性値「日本」に対応する中間ハッシュ値hi,j’,3として算出する。検証用ハッシュ値算出部310は、属性値「日本」とそれに対応する加工後ハッシュ値hi,j’,3とを結合したデータのハッシュ値を、「削除」に対応する中間ハッシュ値hi,j’,4として算出する。そして、検証用ハッシュ値算出部310は、「削除」に対応する中間ハッシュ値hi,j’,4に対するハッシュ値hi,j’,5を、検証用ハッシュ値hij’として算出する。
次に、削除の加工が施されているセルについて説明する。検証用ハッシュ値算出部310は、セル(i,cj’)にセットされている、「削除」に対応する加工後ハッシュ値h_(i,j’,lj’)を抽出する。そして、検証用ハッシュ値算出部310は、上記の式(27)により、加工後ハッシュ値h_(i,j’,lj’)に対するハッシュ値h_(i,j’,lj’+1)を算出する。
このハッシュ値h_(i,j’,lj’+1)を、行i列cj’に対応する加工対象データに対応する検証用ハッシュ値hij’とする。つまり、上記の式(28)が成り立つ。つまり、検証用ハッシュ値算出部310は、削除の加工が施された加工対象データについて、当該加工対象データに対応する加工後ハッシュ値に対して算出されたハッシュ値を、検証用ハッシュ値として算出する。
検証部320は、署名検証を行う(S322)。つまり、検証部320は、検証用ハッシュ値とデジタル署名とに対して検証を行う。具体的には、検証部320は、各行i(レコード)に対して、上記の式(13)のように、各列j(列cj’)のデータに対応する検証用ハッシュ値を全て連結して、ハッシュ値h’を算出する。そして、全ての行i(レコード)についてハッシュ値h’を算出して、{h’}を得る。そして、実施の形態2の場合と同様に、検証部320は、得られた{h’}と、データ提供装置100から送信された署名{σ}とから、データ提供者の検証鍵を用いて、デジタル署名における検証アルゴリズムにより、署名を検証する。
実施の形態2又は実施の形態3では、属性(列)ごとに、「一般化」及び「削除」のどちらの加工を行うかを設定する必要があった。これに対し、実施の形態4にかかる情報処理システム10では、一般化階層木を拡張したので、一般化階層木を設定された列については、「一般化」及び「削除」の両方の加工を行うことができる。したがって、各列に対して、「一般化」又は「削除」のいずれか一方を設定しなければならないといったことが不要となる。さらに、同じ列について「一般化」及び「削除」の両方の加工を行うことできるので、その列(属性)について、柔軟な加工を行うことが可能となる。
なお、実施の形態4では、一般化階層木の階層の数(高さ)が多くなるので、実施の形態2及び実施の形態3の場合と比較して、ハッシュ関数の計算負荷が増大する可能性がある。逆に言えば、実施の形態2及び実施の形態3では、実施の形態4の場合と比較して、ハッシュ関数の計算負荷を軽減することができる。また、実施の形態4の場合では、「削除」の加工を行った列について設定された一般化階層木がデータ受領装置300に提供される。したがって、「削除」の加工を行った場合であっても、削除前の属性値が、一般化階層木の階層「1」の属性値のいずれかであることは、データ受領者に知られる可能性がある。これに対し、実施の形態3の場合では、一般化階層木がデータ受領装置300に提供されないので、「削除」の加工を行った場合に、削除前の属性値をデータ受領者に知られることを抑制することが可能となる。
(適用例)
図22は、本実施の形態にかかる適用例を説明するための図である。上述した本実施の形態では、各属性について、加工を施す対象であるか否かを設定している。したがって、加工を施す対象でない属性#1については、SHA256等の一般的なハッシュ関数のアルゴリズムを用いて、ハッシュ値を算出している(式(1)参照)」。また、加工を施す対象である属性#2については、上述したハッシュチェーンを適用して、ハッシュ値(署名用ハッシュ値等)を算出している。
ここで、上述した実施の形態にかかる加工(一般化又は削除)については、一般化階層木に従った加工又は単に属性値を削除する加工を行う必要がある。一方、属性#3については、任意の加工を施したいという要望があり得る。この場合、属性#3に対しては、カメレオンハッシュを適用してもよい。つまり、属性#3に対しては、属性値#13~#m3についてカメレオンハッシュによりハッシュ値を算出してもよい。なお、カメレオンハッシュとデジタル署名とを組み合わせることで、カメレオンハッシュの生成に用いた公開鍵に対応する秘密鍵を持つ主体のみにより平文の変更が可能となる墨塗署名アルゴリズムを構成できる。たとえば、カメレオンハッシュの生成に用いた公開鍵に対応する秘密鍵をデータ加工者のみが所有することで、署名の正当性を維持したままデータ加工者のみがデータに対する匿名加工を実現できる。
この場合、署名を生成する際に、式(7)において、属性#1については、一般的なハッシュ関数により署名用ハッシュ値hi1を算出し、属性#2については上述したハッシュチェーンにより署名用ハッシュ値hi2を算出する。さらに、属性#3についてはカメレオンハッシュ関数により署名用ハッシュ値hi3を算出する。そして、式(7)に示すように、各属性について生成された署名用ハッシュ値を連結して、ハッシュ値hを算出してもよい。このようにすることで、ある属性については任意の加工が可能となるので、加工の柔軟性が、より高くなり得る。
(ハードウェア構成例)
上述した各実施形態に係る装置およびシステムを、1つの計算処理装置(情報処理装置、コンピュータ)を用いて実現するハードウェア資源の構成例について説明する。但し、各実施形態に係る装置(データ提供装置、データ加工装置及びデータ受領装置)は、物理的または機能的に少なくとも2つの計算処理装置を用いて実現されてもよい。また、各実施形態に係る装置は、専用の装置として実現されてもよいし、汎用の情報処理装置で実現されてもよい。
図23は、各実施形態に係る装置およびシステムを実現可能な計算処理装置のハードウェア構成例を概略的に示すブロック図である。計算処理装置1000は、CPU1001、揮発性記憶装置1002、ディスク1003、不揮発性記録媒体1004、及び、通信IF1007(IF:Interface)を有する。したがって、各実施形態に係る装置は、CPU1001、揮発性記憶装置1002、ディスク1003、不揮発性記録媒体1004、及び、通信IF1007を有しているといえる。計算処理装置1000は、入力装置1005及び出力装置1006に接続可能であってもよい。計算処理装置1000は、入力装置1005及び出力装置1006を備えていてもよい。また、計算処理装置1000は、通信IF1007を介して、他の計算処理装置、及び、通信装置と情報を送受信することができる。
不揮発性記録媒体1004は、コンピュータが読み取り可能な、たとえば、コンパクトディスク(Compact Disc)、デジタルバーサタイルディスク(Digital Versatile Disc)である。また、不揮発性記録媒体1004は、USB(Universal Serial Bus)メモリ、ソリッドステートドライブ(Solid State Drive)等であってもよい。不揮発性記録媒体1004は、電源を供給しなくても係るプログラムを保持し、持ち運びを可能にする。なお、不揮発性記録媒体1004は、上述した媒体に限定されない。また、不揮発性記録媒体1004の代わりに、通信IF1007及び通信ネットワークを介して、係るプログラムが供給されてもよい。
揮発性記憶装置1002は、コンピュータが読み取り可能であって、一時的にデータを記憶することができる。揮発性記憶装置1002は、DRAM(dynamic random Access memory)、SRAM(static random Access memory)等のメモリ等である。
すなわち、CPU1001は、ディスク1003に格納されているソフトウェアプログラム(コンピュータ・プログラム:以下、単に「プログラム」と称する)を、実行する際に揮発性記憶装置1002にコピーし、演算処理を実行する。CPU1001は、プログラムの実行に必要なデータを揮発性記憶装置1002から読み取る。表示が必要な場合、CPU1001は、出力装置1006に出力結果を表示する。外部からプログラムを入力する場合、CPU1001は、入力装置1005からプログラムを取得する。CPU1001は、上述した図5~図7に示される各構成要素の機能(処理)に対応するプログラムを解釈し実行する。CPU1001は、上述した各実施形態において説明した処理を実行する。言い換えると、上述した図5~図7に示される各構成要素の機能は、ディスク1003又は揮発性記憶装置1002に格納されたプログラムを、CPU1001が実行することによって実現され得る。
すなわち、各実施形態は、上述したプログラムによっても成し得ると捉えることができる。さらに、上述したプログラムが記録されたコンピュータが読み取り可能な不揮発性の記録媒体によっても、上述した各実施形態は成し得ると捉えることができる。
(変形例)
なお、本発明は上記実施形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。例えば、上述したフローチャートにおいて、各処理(ステップ)の順序は、適宜、変更可能である。また、複数ある処理(ステップ)のうちの1つ以上は、省略されてもよい。
また、上述した実施の形態では、各属性に対して「一般化」又は「削除」の加工を行うとしたが、このような構成に限られない。各属性に対して、本実施の形態が適用可能な任意の加工を行うことが可能である。
上述の例において、プログラムは、コンピュータに読み込まれた場合に、実施形態で説明された1又はそれ以上の機能をコンピュータに行わせるための命令群(又はソフトウェアコード)を含む。プログラムは、非一時的なコンピュータ可読媒体又は実体のある記憶媒体に格納されてもよい。限定ではなく例として、コンピュータ可読媒体又は実体のある記憶媒体は、random-access memory(RAM)、read-only memory(ROM)、フラッシュメモリ、solid-state drive(SSD)又はその他のメモリ技術、CD-ROM、digital versatile disk(DVD)、Blu-ray(登録商標)ディスク又はその他の光ディスクストレージ、磁気カセット、磁気テープ、磁気ディスクストレージ又はその他の磁気ストレージデバイスを含む。プログラムは、一時的なコンピュータ可読媒体又は通信媒体上で送信されてもよい。限定ではなく例として、一時的なコンピュータ可読媒体又は通信媒体は、電気的、光学的、音響的、またはその他の形式の伝搬信号を含む。
以上、実施の形態を参照して本願発明を説明したが、本願発明は上記によって限定されるものではない。本願発明の構成や詳細には、発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
上記の実施形態の一部又は全部は、以下の付記のようにも記載されうるが、以下には限られない。
(付記1)
少なくとも1つの属性に関する複数のデータで構成されるデータセットを提供するデータ提供装置と、
前記複数のデータのうちの少なくとも一部のデータを加工するデータ加工装置と、
一部のデータが加工された前記データセットを受領するデータ受領装置と、
を有し、
前記データ提供装置は、
前記属性のそれぞれについて加工ルールを設定する加工ルール設定手段と、
前記加工ルールにおいて加工の対象とされた属性に関する加工対象データがとり得る複数の属性値に対応する状態に対して所定の乱数を設定する乱数設定手段と、
前記複数のデータそれぞれに対応する署名用ハッシュ値を算出する署名用ハッシュ値算出手段と、
前記署名用ハッシュ値を用いてデジタル署名を生成する署名生成手段と、
前記データセットと、前記デジタル署名と、前記乱数とを、前記データ加工装置に送信する第1の送信手段と、
を有し、
前記署名用ハッシュ値算出手段は、前記加工対象データについて、当該加工対象データと当該加工対象データに対応する属性値について設定された前記乱数とを用いて得られたデータ列に対して先頭ハッシュ値を算出し、当該加工対象データと当該先頭ハッシュ値とを組み合わせたデータ列に対して中間ハッシュ値を算出し、当該中間ハッシュ値を用いて、当該加工対象データに対応する署名用ハッシュ値を算出し、
前記データ加工装置は、
前記加工対象データに対して加工を施すための処理を行う加工処理手段と、
前記加工対象データそれぞれに対応する加工後ハッシュ値を算出する加工後ハッシュ値算出手段と、
前記加工対象データに対して加工が施されたデータセットと、前記加工対象データに対応する前記加工後ハッシュ値と、前記デジタル署名とを、前記データ受領装置に送信する第2の送信手段と、
を有し、
前記加工後ハッシュ値算出手段は、加工が施された前記加工対象データについて、加工前の当該加工対象データと加工前の当該加工対象データに対応する属性値について設定された前記乱数とを用いて得られたデータ列に対して先頭ハッシュ値を算出し、加工前の当該加工対象データと当該先頭ハッシュ値とを組み合わせたデータ列に対して中間ハッシュ値を算出し、当該中間ハッシュ値を用いて、加工後の当該加工対象データに対応する加工後ハッシュ値を算出し、
前記データ受領装置は、
前記加工対象データに対して加工が施されたデータセットと、前記加工後ハッシュ値とを用いて、前記複数のデータそれぞれに対応する検証用ハッシュ値を算出する検証用ハッシュ値算出手段と、
前記検証用ハッシュ値と前記デジタル署名とに対して検証を行う検証手段と、
を有する、
情報処理システム。
(付記2)
前記加工ルールは、加工の対象とされた属性それぞれについて設定された、加工前の属性値及び加工後の属性値を含む状態にそれぞれ対応する階層を有する階層構造を含み、
前記署名用ハッシュ値算出手段は、前記加工対象データについて、当該加工対象データと対応する先頭ハッシュ値とを組み合わせたデータ列に対して、加工対象データの属性値の前記階層構造における上の階層の状態に対応する中間ハッシュ値を算出し、
前記加工後ハッシュ値算出手段は、加工が施された前記加工対象データについて、加工前の当該加工対象データと対応する先頭ハッシュ値とを組み合わせたデータ列に対して、加工前の当該加工対象データの属性値の前記階層構造における上の階層の状態に対応する中間ハッシュ値を算出する、
付記1に記載の情報処理システム。
(付記3)
前記加工ルール設定手段は、加工の対象とされた属性それぞれについて、加工前の属性値を一般化するルールを示し、上の階層ほど一般化された属性値を示す階層構造を有する一般化階層木を設定し、
前記第1の送信手段及び前記第2の送信手段は、前記一般化階層木を送信する、
付記2に記載の情報処理システム。
(付記4)
前記署名用ハッシュ値算出手段は、中間ハッシュ値と当該中間ハッシュ値に対応する階層の属性値とを組み合わせたデータ列に対して、当該属性値の前記階層構造における上の階層の状態に対応する中間ハッシュ値を算出し、前記階層構造における最も上の階層の属性値と当該属性値に対応する中間ハッシュ値とを組み合わせたデータ列に対して算出されたハッシュ値を、前記署名用ハッシュ値として算出し、
前記加工後ハッシュ値算出手段は、中間ハッシュ値と当該中間ハッシュ値に対応する階層の属性値とを組み合わせたデータ列に対して、当該属性値の前記階層構造における上の階層の属性値に対応する中間ハッシュ値を算出し、加工後の当該加工対象データに対応する属性値に対応する中間ハッシュ値を、加工後の当該加工対象データに対応する前記加工後ハッシュ値として算出し、
前記検証用ハッシュ値算出手段は、前記加工後ハッシュ値と当該加工後ハッシュ値に対応する加工後の前記加工対象データの属性値とを組み合わせたデータ列に対して、当該属性値の前記階層構造における上の階層の属性値に対応する中間ハッシュ値を算出し、前記階層構造における最も上の階層の属性値と当該属性値に対応する中間ハッシュ値とを組み合わせたデータ列に対して算出されたハッシュ値を、前記検証用ハッシュ値として算出する、
付記3に記載の情報処理システム。
(付記5)
前記加工ルール設定手段は、前記一般化階層木において属性値が最も一般化された階層である上から2番目の階層のさらに上の階層に、当該加工対象データの属性値を削除する状態を設定する、
付記3に記載の情報処理システム。
(付記6)
前記署名用ハッシュ値算出手段は、中間ハッシュ値と当該中間ハッシュ値に対応する階層の状態とを組み合わせたデータ列に対して、当該状態の前記階層構造における上の階層の状態に対応する中間ハッシュ値を算出し、前記階層構造における最も上の階層の状態に対応する中間ハッシュ値に対して算出されたハッシュ値を、前記署名用ハッシュ値として算出し、
前記加工後ハッシュ値算出手段は、中間ハッシュ値と当該中間ハッシュ値に対応する階層の属性値とを組み合わせたデータ列に対して、当該属性値の前記階層構造における上の階層の状態に対応する中間ハッシュ値を算出し、
当該加工対象データに対し一般化の加工が施された場合、加工後の当該加工対象データに対応する属性値に対応する中間ハッシュ値を、加工後の当該加工対象データに対応する前記加工後ハッシュ値として算出し、
当該加工対象データに対し削除の加工が施された場合、前記階層構造における最も上の階層の状態に対応する中間ハッシュ値を、加工後の当該加工対象データに対応する前記加工後ハッシュ値として算出し、
前記検証用ハッシュ値算出手段は、
一般化の加工が施された前記加工対象データについて、前記加工後ハッシュ値と当該加工後ハッシュ値に対応する加工後の前記加工対象データの属性値とを組み合わせたデータ列に対して、当該属性値の前記階層構造における上の階層の状態に対応する中間ハッシュ値を算出し、前記階層構造における最も上の階層の状態に対応する中間ハッシュ値に対して算出されたハッシュ値を、前記検証用ハッシュ値として算出し、
削除の加工が施された前記加工対象データについて、当該加工対象データに対応する前記加工後ハッシュ値に対して算出されたハッシュ値を、前記検証用ハッシュ値として算出する、
付記5に記載の情報処理システム。
(付記7)
前記加工ルール設定手段は、加工の対象とされた属性それぞれについて、加工前の属性値を削除する加工ルールを設定し、
前記署名用ハッシュ値算出手段は、前記加工対象データについて、当該加工対象データと当該先頭ハッシュ値とを組み合わせたデータ列に対して算出されたハッシュ値を、前記署名用ハッシュ値として算出し、
前記加工後ハッシュ値算出手段は、削除の加工が施された当該加工対象データについて、当該加工対象データと対応する先頭ハッシュ値とを組み合わせたデータ列に対して算出されたハッシュ値を、前記加工後ハッシュ値として算出し、
前記検証用ハッシュ値算出手段は、削除の加工が施された前記加工対象データについて、当該加工対象データに対応する前記加工後ハッシュ値を、前記検証用ハッシュ値として算出する、
付記1又は2に記載の情報処理システム。
(付記8)
前記加工後ハッシュ値算出手段は、前記加工ルールにおいて加工の対象とされた属性のうち加工が施されなかった属性値について、当該属性値と当該属性値について設定された前記乱数とを用いて得られたデータ列に対して算出された先頭ハッシュ値を、前記加工後ハッシュ値として算出する、
付記1から7のいずれか1項に記載の情報処理システム。
(付記9)
前記署名用ハッシュ値算出手段は、前記加工対象データについて、当該加工対象データと当該加工対象データに対応する属性値について設定された前記乱数と当該加工対象データを識別するインデックスとを用いて得られたデータ列に対して先頭ハッシュ値を算出し、
前記加工後ハッシュ値算出手段は、前記加工対象データについて、当該加工対象データと当該加工対象データに対応する属性値について設定された前記乱数と当該加工対象データを識別するインデックスとを用いて得られたデータ列に対して先頭ハッシュ値を算出する、
付記1から8のいずれか1項に記載の情報処理システム。
(付記10)
少なくとも1つの属性に関する複数のデータで構成されるデータセットにおける前記属性のそれぞれについて加工ルールを設定する加工ルール設定手段と、
前記加工ルールにおいて加工の対象とされた属性に関する加工対象データがとり得る複数の属性値に対応する状態に対して所定の乱数を設定する乱数設定手段と、
前記複数のデータそれぞれに対応する署名用ハッシュ値を算出する署名用ハッシュ値算出手段と、
前記署名用ハッシュ値を用いてデジタル署名を生成する署名生成手段と、
前記データセットと、前記デジタル署名と、前記乱数とを、前記複数のデータのうちの少なくとも一部のデータを加工するデータ加工装置に送信する送信手段と、
を有し、
前記署名用ハッシュ値算出手段は、前記加工対象データについて、当該加工対象データと当該加工対象データに対応する属性値について設定された前記乱数とを用いて得られたデータ列に対して先頭ハッシュ値を算出し、当該加工対象データと当該先頭ハッシュ値とを組み合わせたデータ列に対して中間ハッシュ値を算出し、当該中間ハッシュ値を用いて、当該加工対象データに対応する署名用ハッシュ値を算出する、
データ提供装置。
(付記11)
前記加工ルールは、加工の対象とされた属性それぞれについて設定された、加工前の属性値及び加工後の属性値を含む状態にそれぞれ対応する階層を有する階層構造を含み、
前記署名用ハッシュ値算出手段は、前記加工対象データについて、当該加工対象データと対応する先頭ハッシュ値とを組み合わせたデータ列に対して、加工対象データの属性値の前記階層構造における上の階層の状態に対応する中間ハッシュ値を算出する、
付記10に記載のデータ提供装置。
(付記12)
前記加工ルール設定手段は、加工の対象とされた属性それぞれについて、加工前の属性値を一般化するルールを示し、上の階層ほど一般化された属性値を示す階層構造を有する一般化階層木を設定し、
前記送信手段は、前記一般化階層木を前記データ加工装置に送信する、
付記11に記載のデータ提供装置。
(付記13)
前記署名用ハッシュ値算出手段は、中間ハッシュ値と当該中間ハッシュ値に対応する階層の属性値とを組み合わせたデータ列に対して、当該属性値の前記階層構造における上の階層の状態に対応する中間ハッシュ値を算出し、前記階層構造における最も上の階層の属性値と当該属性値に対応する中間ハッシュ値とを組み合わせたデータ列に対して算出されたハッシュ値を、前記署名用ハッシュ値として算出する、
付記12に記載のデータ提供装置。
(付記14)
前記加工ルール設定手段は、前記一般化階層木において属性値が最も一般化された階層である上から2番目の階層のさらに上の階層に、当該加工対象データの属性値を削除する状態を設定する、
付記12に記載のデータ提供装置。
(付記15)
前記署名用ハッシュ値算出手段は、中間ハッシュ値と当該中間ハッシュ値に対応する階層の状態とを組み合わせたデータ列に対して、当該状態の前記階層構造における上の階層の状態に対応する中間ハッシュ値を算出し、前記階層構造における最も上の階層の状態に対応する中間ハッシュ値に対して算出されたハッシュ値を、前記署名用ハッシュ値として算出する、
付記14に記載のデータ提供装置。
(付記16)
前記加工ルール設定手段は、加工の対象とされた属性それぞれについて、加工前の属性値を削除する加工ルールを設定し、
前記署名用ハッシュ値算出手段は、前記加工対象データについて、当該加工対象データと当該先頭ハッシュ値とを組み合わせたデータ列に対して算出されたハッシュ値を、前記署名用ハッシュ値として算出する、
付記10又は11に記載のデータ提供装置。
(付記17)
前記署名用ハッシュ値算出手段は、前記加工対象データについて、当該加工対象データと当該加工対象データに対応する属性値について設定された前記乱数と当該加工対象データを識別するインデックスとを用いて得られたデータ列に対して先頭ハッシュ値を算出する、
付記10から16のいずれか1項に記載のデータ提供装置。
(付記18)
少なくとも1つの属性に関する複数のデータで構成されるデータセットを提供するデータ提供装置において前記属性のそれぞれについて設定された加工ルールにおいて加工の対象とされた属性に関する加工対象データに対して加工を施すための処理を行う加工処理手段と、
前記加工対象データそれぞれに対応する加工後ハッシュ値を算出する加工後ハッシュ値算出手段と、
前記加工対象データに対して加工が施されたデータセットと、前記加工対象データに対応する前記加工後ハッシュ値と、前記データ提供装置において生成されたデジタル署名とを、一部のデータが加工された前記データセットを受領するデータ受領装置に送信する送信手段と、
を有し、
前記加工後ハッシュ値算出手段は、加工が施された前記加工対象データについて、加工前の当該加工対象データと加工前の当該加工対象データに対応する属性値について設定された乱数とを用いて得られたデータ列に対して先頭ハッシュ値を算出し、加工前の当該加工対象データと当該先頭ハッシュ値とを組み合わせたデータ列に対して中間ハッシュ値を算出し、当該中間ハッシュ値を用いて、加工後の当該加工対象データに対応する加工後ハッシュ値を算出する、
データ加工装置。
(付記19)
前記加工ルールは、加工の対象とされた属性それぞれについて設定された、加工前の属性値及び加工後の属性値を含む状態にそれぞれ対応する階層を有する階層構造を含み、
前記加工後ハッシュ値算出手段は、加工が施された前記加工対象データについて、加工前の当該加工対象データと対応する先頭ハッシュ値とを組み合わせたデータ列に対して、加工前の当該加工対象データの属性値の前記階層構造における上の階層の状態に対応する中間ハッシュ値を算出する、
付記18に記載のデータ加工装置。
(付記20)
前記送信手段は、前記データ提供装置において設定された一般化階層木であって、加工の対象とされた属性それぞれについて、加工前の属性値を一般化するルールを示し、上の階層ほど一般化された属性値を示す階層構造を有する一般化階層木を、前記データ受領装置に送信する、
付記19に記載のデータ加工装置。
(付記21)
前記加工後ハッシュ値算出手段は、中間ハッシュ値と当該中間ハッシュ値に対応する階層の属性値とを組み合わせたデータ列に対して、当該属性値の前記階層構造における上の階層の属性値に対応する中間ハッシュ値を算出し、加工後の当該加工対象データに対応する属性値に対応する中間ハッシュ値を、加工後の当該加工対象データに対応する前記加工後ハッシュ値として算出する、
付記20に記載のデータ加工装置。
(付記22)
前記一般化階層木において、属性値が最も一般化された階層である上から2番目の階層のさらに上の階層に、当該加工対象データの属性値を削除する状態が設定されている、
付記20に記載のデータ加工装置。
(付記23)
前記加工後ハッシュ値算出手段は、中間ハッシュ値と当該中間ハッシュ値に対応する階層の属性値とを組み合わせたデータ列に対して、当該属性値の前記階層構造における上の階層の状態に対応する中間ハッシュ値を算出し、
当該加工対象データに対し一般化の加工が施された場合、加工後の当該加工対象データに対応する属性値に対応する中間ハッシュ値を、加工後の当該加工対象データに対応する前記加工後ハッシュ値として算出し、
当該加工対象データに対し削除の加工が施された場合、前記階層構造における最も上の階層の状態に対応する中間ハッシュ値を、加工後の当該加工対象データに対応する前記加工後ハッシュ値として算出する、
付記22に記載のデータ加工装置。
(付記24)
加工の対象とされた属性それぞれについて、加工前の属性値を削除する加工ルールが設定されており、
前記加工後ハッシュ値算出手段は、削除の加工が施された当該加工対象データについて、当該加工対象データと対応する先頭ハッシュ値とを組み合わせたデータ列に対して算出されたハッシュ値を、前記加工後ハッシュ値として算出する、
付記18又は19に記載のデータ加工装置。
(付記25)
前記加工後ハッシュ値算出手段は、前記加工ルールにおいて加工の対象とされた属性のうち加工が施されなかった属性値について、当該属性値と当該属性値について設定された前記乱数とを用いて得られたデータ列に対して算出された先頭ハッシュ値を、前記加工後ハッシュ値として算出する、
付記18から24のいずれか1項に記載のデータ加工装置。
(付記26)
前記加工後ハッシュ値算出手段は、前記加工対象データについて、当該加工対象データと当該加工対象データに対応する属性値について設定された乱数と当該加工対象データを識別するインデックスとを用いて得られたデータ列に対して先頭ハッシュ値を算出する、
付記18から25のいずれか1項に記載のデータ加工装置。
(付記27)
少なくとも1つの属性に関する複数のデータで構成されるデータセットを提供するデータ提供装置において前記属性のそれぞれについて設定された加工ルールにおいて加工の対象とされた属性に関する加工対象データに対して加工が施されたデータセットと、前記複数のデータのうちの少なくとも一部のデータを加工するデータ加工装置において算出され前記加工対象データそれぞれに対応する加工後ハッシュ値とを用いて、前記複数のデータそれぞれに対応する検証用ハッシュ値を算出する検証用ハッシュ値算出手段と、
前記検証用ハッシュ値と、前記データ提供装置において生成されたデジタル署名とに対して検証を行う検証手段と、
を有するデータ受領装置。
(付記28)
前記加工ルールは、加工の対象とされた属性それぞれについて設定された、加工前の属性値及び加工後の属性値を含む状態にそれぞれ対応する階層を有する階層構造を含む、
付記27に記載のデータ受領装置。
(付記29)
前記検証用ハッシュ値算出手段は、前記データ提供装置において設定された一般化階層木であって、加工の対象とされた属性それぞれについて、加工前の属性値を一般化するルールを示し、上の階層ほど一般化された属性値を示す階層構造を有する一般化階層木を用いて、前記検証用ハッシュ値を算出する、
付記28に記載のデータ受領装置。
(付記30)
前記検証用ハッシュ値算出手段は、前記加工後ハッシュ値と当該加工後ハッシュ値に対応する加工後の前記加工対象データの属性値とを組み合わせたデータ列に対して、当該属性値の前記階層構造における上の階層の属性値に対応する中間ハッシュ値を算出し、前記階層構造における最も上の階層の属性値と当該属性値に対応する中間ハッシュ値とを組み合わせたデータ列に対して算出されたハッシュ値を、前記検証用ハッシュ値として算出する、
付記29に記載のデータ受領装置。
(付記31)
前記一般化階層木において、属性値が最も一般化された階層である上から2番目の階層のさらに上の階層に、当該加工対象データの属性値を削除する状態が設定されている、
付記29に記載のデータ受領装置。
(付記32)
前記検証用ハッシュ値算出手段は、
一般化の加工が施された前記加工対象データについて、前記加工後ハッシュ値と当該加工後ハッシュ値に対応する加工後の前記加工対象データの属性値とを組み合わせたデータ列に対して、当該属性値の前記階層構造における上の階層の状態に対応する中間ハッシュ値を算出し、前記階層構造における最も上の階層の状態に対応する中間ハッシュ値に対して算出されたハッシュ値を、前記検証用ハッシュ値として算出し、
削除の加工が施された前記加工対象データについて、当該加工対象データに対応する前記加工後ハッシュ値に対して算出されたハッシュ値を、前記検証用ハッシュ値として算出する、
付記31に記載のデータ受領装置。
(付記33)
加工の対象とされた属性それぞれについて、加工前の属性値を削除する加工ルールが設定されており、
前記検証用ハッシュ値算出手段は、削除の加工が施された前記加工対象データについて、当該加工対象データに対応する前記加工後ハッシュ値を、前記検証用ハッシュ値として算出する、
付記27又は28に記載のデータ受領装置。
(付記34)
少なくとも1つの属性に関する複数のデータで構成されるデータセットを提供するデータ提供装置によって、
前記属性のそれぞれについて加工ルールを設定し、
前記加工ルールにおいて加工の対象とされた属性に関する加工対象データがとり得る複数の属性値に対応する状態に対して所定の乱数を設定し、
前記加工対象データについて、当該加工対象データと当該加工対象データに対応する属性値について設定された前記乱数とを用いて得られたデータ列に対して先頭ハッシュ値を算出し、当該加工対象データと当該先頭ハッシュ値とを組み合わせたデータ列に対して中間ハッシュ値を算出し、当該中間ハッシュ値を用いて、当該加工対象データに対応する署名用ハッシュ値を算出することにより、前記複数のデータそれぞれに対応する署名用ハッシュ値を算出し、
前記署名用ハッシュ値を用いてデジタル署名を生成し、
前記データセットと、前記デジタル署名と、前記乱数とを、前記複数のデータのうちの少なくとも一部のデータを加工するデータ加工装置に送信し、
前記データ加工装置によって、
前記加工対象データに対して加工を施すための処理を行い、
加工が施された前記加工対象データについて、加工前の当該加工対象データと加工前の当該加工対象データに対応する属性値について設定された乱数とを用いて得られたデータ列に対して先頭ハッシュ値を算出し、加工前の当該加工対象データと当該先頭ハッシュ値とを組み合わせたデータ列に対して中間ハッシュ値を算出し、当該中間ハッシュ値を用いて、加工後の当該加工対象データに対応する加工後ハッシュ値を算出することにより、前記加工対象データそれぞれに対応する加工後ハッシュ値を算出し、
前記加工対象データに対して加工が施されたデータセットと、前記加工対象データに対応する前記加工後ハッシュ値と、前記デジタル署名とを、一部のデータが加工された前記データセットを受領するデータ受領装置に送信し、
前記データ受領装置によって、
前記加工対象データに対して加工が施されたデータセットと、前記加工後ハッシュ値とを用いて、前記複数のデータそれぞれに対応する検証用ハッシュ値を算出し、
前記検証用ハッシュ値と前記デジタル署名とに対して検証を行う、
情報処理方法。
(付記35)
少なくとも1つの属性に関する複数のデータで構成されるデータセットにおける前記属性のそれぞれについて加工ルールを設定し、
前記加工ルールにおいて加工の対象とされた属性に関する加工対象データがとり得る複数の属性値に対応する状態に対して所定の乱数を設定し、
前記加工対象データについて、当該加工対象データと当該加工対象データに対応する属性値について設定された前記乱数とを用いて得られたデータ列に対して先頭ハッシュ値を算出し、当該加工対象データと当該先頭ハッシュ値とを組み合わせたデータ列に対して中間ハッシュ値を算出し、当該中間ハッシュ値を用いて、当該加工対象データに対応する署名用ハッシュ値を算出することにより、前記複数のデータそれぞれに対応する署名用ハッシュ値を算出し、
前記署名用ハッシュ値を用いてデジタル署名を生成し、
前記データセットと、前記デジタル署名と、前記乱数とを、前記複数のデータのうちの少なくとも一部のデータを加工するデータ加工装置に送信する、
データ提供方法。
(付記36)
少なくとも1つの属性に関する複数のデータで構成されるデータセットを提供するデータ提供装置において前記属性のそれぞれについて設定された加工ルールにおいて加工の対象とされた属性に関する加工対象データに対して加工を施すための処理を行い、
加工が施された前記加工対象データについて、加工前の当該加工対象データと加工前の当該加工対象データに対応する属性値について設定された乱数とを用いて得られたデータ列に対して先頭ハッシュ値を算出し、加工前の当該加工対象データと当該先頭ハッシュ値とを組み合わせたデータ列に対して中間ハッシュ値を算出し、当該中間ハッシュ値を用いて、加工後の当該加工対象データに対応する加工後ハッシュ値を算出することにより、前記加工対象データそれぞれに対応する加工後ハッシュ値を算出し、
前記加工対象データに対して加工が施されたデータセットと、前記加工対象データに対応する前記加工後ハッシュ値と、前記データ提供装置において生成されたデジタル署名とを、一部のデータが加工された前記データセットを受領するデータ受領装置に送信する、
データ加工方法。
(付記37)
少なくとも1つの属性に関する複数のデータで構成されるデータセットを提供するデータ提供装置において前記属性のそれぞれについて設定された加工ルールにおいて加工の対象とされた属性に関する加工対象データに対して加工が施されたデータセットと、前記複数のデータのうちの少なくとも一部のデータを加工するデータ加工装置において算出され前記加工対象データそれぞれに対応する加工後ハッシュ値とを用いて、前記複数のデータそれぞれに対応する検証用ハッシュ値を算出し、
前記検証用ハッシュ値と、前記データ提供装置において生成されたデジタル署名とに対して検証を行う、
データ受領方法。
(付記38)
少なくとも1つの属性に関する複数のデータで構成されるデータセットにおける前記属性のそれぞれについて加工ルールを設定するステップと、
前記加工ルールにおいて加工の対象とされた属性に関する加工対象データがとり得る複数の属性値に対応する状態に対して所定の乱数を設定するステップと、
前記加工対象データについて、当該加工対象データと当該加工対象データに対応する属性値について設定された前記乱数とを用いて得られたデータ列に対して先頭ハッシュ値を算出し、当該加工対象データと当該先頭ハッシュ値とを組み合わせたデータ列に対して中間ハッシュ値を算出し、当該中間ハッシュ値を用いて、当該加工対象データに対応する署名用ハッシュ値を算出することにより、前記複数のデータそれぞれに対応する署名用ハッシュ値を算出するステップと、
前記署名用ハッシュ値を用いてデジタル署名を生成するステップと、
前記データセットと、前記デジタル署名と、前記乱数とを、前記複数のデータのうちの少なくとも一部のデータを加工するデータ加工装置に送信するステップと、
をコンピュータに実行させるプログラムが格納された非一時的なコンピュータ可読媒体。
(付記39)
少なくとも1つの属性に関する複数のデータで構成されるデータセットを提供するデータ提供装置において前記属性のそれぞれについて設定された加工ルールにおいて加工の対象とされた属性に関する加工対象データに対して加工を施すための処理を行うステップと、
加工が施された前記加工対象データについて、加工前の当該加工対象データと加工前の当該加工対象データに対応する属性値について設定された乱数とを用いて得られたデータ列に対して先頭ハッシュ値を算出し、加工前の当該加工対象データと当該先頭ハッシュ値とを組み合わせたデータ列に対して中間ハッシュ値を算出し、当該中間ハッシュ値を用いて、加工後の当該加工対象データに対応する加工後ハッシュ値を算出することにより、前記加工対象データそれぞれに対応する加工後ハッシュ値を算出するステップと、
前記加工対象データに対して加工が施されたデータセットと、前記加工対象データに対応する前記加工後ハッシュ値と、前記データ提供装置において生成されたデジタル署名とを、一部のデータが加工された前記データセットを受領するデータ受領装置に送信するステップと、
をコンピュータに実行させるプログラムが格納された非一時的なコンピュータ可読媒体。
(付記40)
少なくとも1つの属性に関する複数のデータで構成されるデータセットを提供するデータ提供装置において前記属性のそれぞれについて設定された加工ルールにおいて加工の対象とされた属性に関する加工対象データに対して加工が施されたデータセットと、前記複数のデータのうちの少なくとも一部のデータを加工するデータ加工装置において算出され前記加工対象データそれぞれに対応する加工後ハッシュ値とを用いて、前記複数のデータそれぞれに対応する検証用ハッシュ値を算出するステップと、
前記検証用ハッシュ値と、前記データ提供装置において生成されたデジタル署名とに対して検証を行うステップと、
をコンピュータに実行させるプログラムが格納された非一時的なコンピュータ可読媒体。
10 情報処理システム
100 データ提供装置
110 加工ルール設定部
120 乱数設定部
130 署名用ハッシュ値算出部
140 署名生成部
150 送信部
200 データ加工装置
210 加工処理部
220 加工後ハッシュ値算出部
230 送信部
300 データ受領装置
310 検証用ハッシュ値算出部
320 検証部

Claims (40)

  1. 少なくとも1つの属性に関する複数のデータで構成されるデータセットを提供するデータ提供装置と、
    前記複数のデータのうちの少なくとも一部のデータを加工するデータ加工装置と、
    一部のデータが加工された前記データセットを受領するデータ受領装置と、
    を有し、
    前記データ提供装置は、
    前記属性のそれぞれについて加工ルールを設定する加工ルール設定手段と、
    前記加工ルールにおいて加工の対象とされた属性に関する加工対象データがとり得る複数の属性値に対応する状態に対して所定の乱数を設定する乱数設定手段と、
    前記複数のデータそれぞれに対応する署名用ハッシュ値を算出する署名用ハッシュ値算出手段と、
    前記署名用ハッシュ値を用いてデジタル署名を生成する署名生成手段と、
    前記データセットと、前記デジタル署名と、前記乱数とを、前記データ加工装置に送信する第1の送信手段と、
    を有し、
    前記署名用ハッシュ値算出手段は、前記加工対象データについて、当該加工対象データと当該加工対象データに対応する属性値について設定された前記乱数とを用いて得られたデータ列に対して先頭ハッシュ値を算出し、当該加工対象データと当該先頭ハッシュ値とを組み合わせたデータ列に対して中間ハッシュ値を算出し、当該中間ハッシュ値を用いて、当該加工対象データに対応する署名用ハッシュ値を算出し、
    前記データ加工装置は、
    前記加工対象データに対して加工を施すための処理を行う加工処理手段と、
    前記加工対象データそれぞれに対応する加工後ハッシュ値を算出する加工後ハッシュ値算出手段と、
    前記加工対象データに対して加工が施されたデータセットと、前記加工対象データに対応する前記加工後ハッシュ値と、前記デジタル署名とを、前記データ受領装置に送信する第2の送信手段と、
    を有し、
    前記加工後ハッシュ値算出手段は、加工が施された前記加工対象データについて、加工前の当該加工対象データと加工前の当該加工対象データに対応する属性値について設定された前記乱数とを用いて得られたデータ列に対して先頭ハッシュ値を算出し、加工前の当該加工対象データと当該先頭ハッシュ値とを組み合わせたデータ列に対して中間ハッシュ値を算出し、当該中間ハッシュ値を用いて、加工後の当該加工対象データに対応する加工後ハッシュ値を算出し、
    前記データ受領装置は、
    前記加工対象データに対して加工が施されたデータセットと、前記加工後ハッシュ値とを用いて、前記複数のデータそれぞれに対応する検証用ハッシュ値を算出する検証用ハッシュ値算出手段と、
    前記検証用ハッシュ値と前記デジタル署名とに対して検証を行う検証手段と、
    を有する、
    情報処理システム。
  2. 前記加工ルールは、加工の対象とされた属性それぞれについて設定された、加工前の属性値及び加工後の属性値を含む状態にそれぞれ対応する階層を有する階層構造を含み、
    前記署名用ハッシュ値算出手段は、前記加工対象データについて、当該加工対象データと対応する先頭ハッシュ値とを組み合わせたデータ列に対して、加工対象データの属性値の前記階層構造における上の階層の状態に対応する中間ハッシュ値を算出し、
    前記加工後ハッシュ値算出手段は、加工が施された前記加工対象データについて、加工前の当該加工対象データと対応する先頭ハッシュ値とを組み合わせたデータ列に対して、加工前の当該加工対象データの属性値の前記階層構造における上の階層の状態に対応する中間ハッシュ値を算出する、
    請求項1に記載の情報処理システム。
  3. 前記加工ルール設定手段は、加工の対象とされた属性それぞれについて、加工前の属性値を一般化するルールを示し、上の階層ほど一般化された属性値を示す階層構造を有する一般化階層木を設定し、
    前記第1の送信手段及び前記第2の送信手段は、前記一般化階層木を送信する、
    請求項2に記載の情報処理システム。
  4. 前記署名用ハッシュ値算出手段は、中間ハッシュ値と当該中間ハッシュ値に対応する階層の属性値とを組み合わせたデータ列に対して、当該属性値の前記階層構造における上の階層の状態に対応する中間ハッシュ値を算出し、前記階層構造における最も上の階層の属性値と当該属性値に対応する中間ハッシュ値とを組み合わせたデータ列に対して算出されたハッシュ値を、前記署名用ハッシュ値として算出し、
    前記加工後ハッシュ値算出手段は、中間ハッシュ値と当該中間ハッシュ値に対応する階層の属性値とを組み合わせたデータ列に対して、当該属性値の前記階層構造における上の階層の属性値に対応する中間ハッシュ値を算出し、加工後の当該加工対象データに対応する属性値に対応する中間ハッシュ値を、加工後の当該加工対象データに対応する前記加工後ハッシュ値として算出し、
    前記検証用ハッシュ値算出手段は、前記加工後ハッシュ値と当該加工後ハッシュ値に対応する加工後の前記加工対象データの属性値とを組み合わせたデータ列に対して、当該属性値の前記階層構造における上の階層の属性値に対応する中間ハッシュ値を算出し、前記階層構造における最も上の階層の属性値と当該属性値に対応する中間ハッシュ値とを組み合わせたデータ列に対して算出されたハッシュ値を、前記検証用ハッシュ値として算出する、
    請求項3に記載の情報処理システム。
  5. 前記加工ルール設定手段は、前記一般化階層木において属性値が最も一般化された階層である上から2番目の階層のさらに上の階層に、当該加工対象データの属性値を削除する状態を設定する、
    請求項3に記載の情報処理システム。
  6. 前記署名用ハッシュ値算出手段は、中間ハッシュ値と当該中間ハッシュ値に対応する階層の状態とを組み合わせたデータ列に対して、当該状態の前記階層構造における上の階層の状態に対応する中間ハッシュ値を算出し、前記階層構造における最も上の階層の状態に対応する中間ハッシュ値に対して算出されたハッシュ値を、前記署名用ハッシュ値として算出し、
    前記加工後ハッシュ値算出手段は、中間ハッシュ値と当該中間ハッシュ値に対応する階層の属性値とを組み合わせたデータ列に対して、当該属性値の前記階層構造における上の階層の状態に対応する中間ハッシュ値を算出し、
    当該加工対象データに対し一般化の加工が施された場合、加工後の当該加工対象データに対応する属性値に対応する中間ハッシュ値を、加工後の当該加工対象データに対応する前記加工後ハッシュ値として算出し、
    当該加工対象データに対し削除の加工が施された場合、前記階層構造における最も上の階層の状態に対応する中間ハッシュ値を、加工後の当該加工対象データに対応する前記加工後ハッシュ値として算出し、
    前記検証用ハッシュ値算出手段は、
    一般化の加工が施された前記加工対象データについて、前記加工後ハッシュ値と当該加工後ハッシュ値に対応する加工後の前記加工対象データの属性値とを組み合わせたデータ列に対して、当該属性値の前記階層構造における上の階層の状態に対応する中間ハッシュ値を算出し、前記階層構造における最も上の階層の状態に対応する中間ハッシュ値に対して算出されたハッシュ値を、前記検証用ハッシュ値として算出し、
    削除の加工が施された前記加工対象データについて、当該加工対象データに対応する前記加工後ハッシュ値に対して算出されたハッシュ値を、前記検証用ハッシュ値として算出する、
    請求項5に記載の情報処理システム。
  7. 前記加工ルール設定手段は、加工の対象とされた属性それぞれについて、加工前の属性値を削除する加工ルールを設定し、
    前記署名用ハッシュ値算出手段は、前記加工対象データについて、当該加工対象データと当該先頭ハッシュ値とを組み合わせたデータ列に対して算出されたハッシュ値を、前記署名用ハッシュ値として算出し、
    前記加工後ハッシュ値算出手段は、削除の加工が施された当該加工対象データについて、当該加工対象データと対応する先頭ハッシュ値とを組み合わせたデータ列に対して算出されたハッシュ値を、前記加工後ハッシュ値として算出し、
    前記検証用ハッシュ値算出手段は、削除の加工が施された前記加工対象データについて、当該加工対象データに対応する前記加工後ハッシュ値を、前記検証用ハッシュ値として算出する、
    請求項1又は2に記載の情報処理システム。
  8. 前記加工後ハッシュ値算出手段は、前記加工ルールにおいて加工の対象とされた属性のうち加工が施されなかった属性値について、当該属性値と当該属性値について設定された前記乱数とを用いて得られたデータ列に対して算出された先頭ハッシュ値を、前記加工後ハッシュ値として算出する、
    請求項1から7のいずれか1項に記載の情報処理システム。
  9. 前記署名用ハッシュ値算出手段は、前記加工対象データについて、当該加工対象データと当該加工対象データに対応する属性値について設定された前記乱数と当該加工対象データを識別するインデックスとを用いて得られたデータ列に対して先頭ハッシュ値を算出し、
    前記加工後ハッシュ値算出手段は、前記加工対象データについて、当該加工対象データと当該加工対象データに対応する属性値について設定された前記乱数と当該加工対象データを識別するインデックスとを用いて得られたデータ列に対して先頭ハッシュ値を算出する、
    請求項1から8のいずれか1項に記載の情報処理システム。
  10. 少なくとも1つの属性に関する複数のデータで構成されるデータセットにおける前記属性のそれぞれについて加工ルールを設定する加工ルール設定手段と、
    前記加工ルールにおいて加工の対象とされた属性に関する加工対象データがとり得る複数の属性値に対応する状態に対して所定の乱数を設定する乱数設定手段と、
    前記複数のデータそれぞれに対応する署名用ハッシュ値を算出する署名用ハッシュ値算出手段と、
    前記署名用ハッシュ値を用いてデジタル署名を生成する署名生成手段と、
    前記データセットと、前記デジタル署名と、前記乱数とを、前記複数のデータのうちの少なくとも一部のデータを加工するデータ加工装置に送信する送信手段と、
    を有し、
    前記署名用ハッシュ値算出手段は、前記加工対象データについて、当該加工対象データと当該加工対象データに対応する属性値について設定された前記乱数とを用いて得られたデータ列に対して先頭ハッシュ値を算出し、当該加工対象データと当該先頭ハッシュ値とを組み合わせたデータ列に対して中間ハッシュ値を算出し、当該中間ハッシュ値を用いて、当該加工対象データに対応する署名用ハッシュ値を算出する、
    データ提供装置。
  11. 前記加工ルールは、加工の対象とされた属性それぞれについて設定された、加工前の属性値及び加工後の属性値を含む状態にそれぞれ対応する階層を有する階層構造を含み、
    前記署名用ハッシュ値算出手段は、前記加工対象データについて、当該加工対象データと対応する先頭ハッシュ値とを組み合わせたデータ列に対して、加工対象データの属性値の前記階層構造における上の階層の状態に対応する中間ハッシュ値を算出する、
    請求項10に記載のデータ提供装置。
  12. 前記加工ルール設定手段は、加工の対象とされた属性それぞれについて、加工前の属性値を一般化するルールを示し、上の階層ほど一般化された属性値を示す階層構造を有する一般化階層木を設定し、
    前記送信手段は、前記一般化階層木を前記データ加工装置に送信する、
    請求項11に記載のデータ提供装置。
  13. 前記署名用ハッシュ値算出手段は、中間ハッシュ値と当該中間ハッシュ値に対応する階層の属性値とを組み合わせたデータ列に対して、当該属性値の前記階層構造における上の階層の状態に対応する中間ハッシュ値を算出し、前記階層構造における最も上の階層の属性値と当該属性値に対応する中間ハッシュ値とを組み合わせたデータ列に対して算出されたハッシュ値を、前記署名用ハッシュ値として算出する、
    請求項12に記載のデータ提供装置。
  14. 前記加工ルール設定手段は、前記一般化階層木において属性値が最も一般化された階層である上から2番目の階層のさらに上の階層に、当該加工対象データの属性値を削除する状態を設定する、
    請求項12に記載のデータ提供装置。
  15. 前記署名用ハッシュ値算出手段は、中間ハッシュ値と当該中間ハッシュ値に対応する階層の状態とを組み合わせたデータ列に対して、当該状態の前記階層構造における上の階層の状態に対応する中間ハッシュ値を算出し、前記階層構造における最も上の階層の状態に対応する中間ハッシュ値に対して算出されたハッシュ値を、前記署名用ハッシュ値として算出する、
    請求項14に記載のデータ提供装置。
  16. 前記加工ルール設定手段は、加工の対象とされた属性それぞれについて、加工前の属性値を削除する加工ルールを設定し、
    前記署名用ハッシュ値算出手段は、前記加工対象データについて、当該加工対象データと当該先頭ハッシュ値とを組み合わせたデータ列に対して算出されたハッシュ値を、前記署名用ハッシュ値として算出する、
    請求項10又は11に記載のデータ提供装置。
  17. 前記署名用ハッシュ値算出手段は、前記加工対象データについて、当該加工対象データと当該加工対象データに対応する属性値について設定された前記乱数と当該加工対象データを識別するインデックスとを用いて得られたデータ列に対して先頭ハッシュ値を算出する、
    請求項10から16のいずれか1項に記載のデータ提供装置。
  18. 少なくとも1つの属性に関する複数のデータで構成されるデータセットを提供するデータ提供装置において前記属性のそれぞれについて設定された加工ルールにおいて加工の対象とされた属性に関する加工対象データに対して加工を施すための処理を行う加工処理手段と、
    前記加工対象データそれぞれに対応する加工後ハッシュ値を算出する加工後ハッシュ値算出手段と、
    前記加工対象データに対して加工が施されたデータセットと、前記加工対象データに対応する前記加工後ハッシュ値と、前記データ提供装置において生成されたデジタル署名とを、一部のデータが加工された前記データセットを受領するデータ受領装置に送信する送信手段と、
    を有し、
    前記加工後ハッシュ値算出手段は、加工が施された前記加工対象データについて、加工前の当該加工対象データと加工前の当該加工対象データに対応する属性値について設定された乱数とを用いて得られたデータ列に対して先頭ハッシュ値を算出し、加工前の当該加工対象データと当該先頭ハッシュ値とを組み合わせたデータ列に対して中間ハッシュ値を算出し、当該中間ハッシュ値を用いて、加工後の当該加工対象データに対応する加工後ハッシュ値を算出する、
    データ加工装置。
  19. 前記加工ルールは、加工の対象とされた属性それぞれについて設定された、加工前の属性値及び加工後の属性値を含む状態にそれぞれ対応する階層を有する階層構造を含み、
    前記加工後ハッシュ値算出手段は、加工が施された前記加工対象データについて、加工前の当該加工対象データと対応する先頭ハッシュ値とを組み合わせたデータ列に対して、加工前の当該加工対象データの属性値の前記階層構造における上の階層の状態に対応する中間ハッシュ値を算出する、
    請求項18に記載のデータ加工装置。
  20. 前記送信手段は、前記データ提供装置において設定された一般化階層木であって、加工の対象とされた属性それぞれについて、加工前の属性値を一般化するルールを示し、上の階層ほど一般化された属性値を示す階層構造を有する一般化階層木を、前記データ受領装置に送信する、
    請求項19に記載のデータ加工装置。
  21. 前記加工後ハッシュ値算出手段は、中間ハッシュ値と当該中間ハッシュ値に対応する階層の属性値とを組み合わせたデータ列に対して、当該属性値の前記階層構造における上の階層の属性値に対応する中間ハッシュ値を算出し、加工後の当該加工対象データに対応する属性値に対応する中間ハッシュ値を、加工後の当該加工対象データに対応する前記加工後ハッシュ値として算出する、
    請求項20に記載のデータ加工装置。
  22. 前記一般化階層木において、属性値が最も一般化された階層である上から2番目の階層のさらに上の階層に、当該加工対象データの属性値を削除する状態が設定されている、
    請求項20に記載のデータ加工装置。
  23. 前記加工後ハッシュ値算出手段は、中間ハッシュ値と当該中間ハッシュ値に対応する階層の属性値とを組み合わせたデータ列に対して、当該属性値の前記階層構造における上の階層の状態に対応する中間ハッシュ値を算出し、
    当該加工対象データに対し一般化の加工が施された場合、加工後の当該加工対象データに対応する属性値に対応する中間ハッシュ値を、加工後の当該加工対象データに対応する前記加工後ハッシュ値として算出し、
    当該加工対象データに対し削除の加工が施された場合、前記階層構造における最も上の階層の状態に対応する中間ハッシュ値を、加工後の当該加工対象データに対応する前記加工後ハッシュ値として算出する、
    請求項22に記載のデータ加工装置。
  24. 加工の対象とされた属性それぞれについて、加工前の属性値を削除する加工ルールが設定されており、
    前記加工後ハッシュ値算出手段は、削除の加工が施された当該加工対象データについて、当該加工対象データと対応する先頭ハッシュ値とを組み合わせたデータ列に対して算出されたハッシュ値を、前記加工後ハッシュ値として算出する、
    請求項18又は19に記載のデータ加工装置。
  25. 前記加工後ハッシュ値算出手段は、前記加工ルールにおいて加工の対象とされた属性のうち加工が施されなかった属性値について、当該属性値と当該属性値について設定された前記乱数とを用いて得られたデータ列に対して算出された先頭ハッシュ値を、前記加工後ハッシュ値として算出する、
    請求項18から24のいずれか1項に記載のデータ加工装置。
  26. 前記加工後ハッシュ値算出手段は、前記加工対象データについて、当該加工対象データと当該加工対象データに対応する属性値について設定された乱数と当該加工対象データを識別するインデックスとを用いて得られたデータ列に対して先頭ハッシュ値を算出する、
    請求項18から25のいずれか1項に記載のデータ加工装置。
  27. 少なくとも1つの属性に関する複数のデータで構成されるデータセットを提供するデータ提供装置において前記属性のそれぞれについて設定された加工ルールにおいて加工の対象とされた属性に関する加工対象データに対して加工が施されたデータセットと、前記複数のデータのうちの少なくとも一部のデータを加工するデータ加工装置において算出され前記加工対象データそれぞれに対応する加工後ハッシュ値とを用いて、前記複数のデータそれぞれに対応する検証用ハッシュ値を算出する検証用ハッシュ値算出手段と、
    前記検証用ハッシュ値と、前記データ提供装置において生成されたデジタル署名とに対して検証を行う検証手段と、
    を有するデータ受領装置。
  28. 前記加工ルールは、加工の対象とされた属性それぞれについて設定された、加工前の属性値及び加工後の属性値を含む状態にそれぞれ対応する階層を有する階層構造を含む、
    請求項27に記載のデータ受領装置。
  29. 前記検証用ハッシュ値算出手段は、前記データ提供装置において設定された一般化階層木であって、加工の対象とされた属性それぞれについて、加工前の属性値を一般化するルールを示し、上の階層ほど一般化された属性値を示す階層構造を有する一般化階層木を用いて、前記検証用ハッシュ値を算出する、
    請求項28に記載のデータ受領装置。
  30. 前記検証用ハッシュ値算出手段は、前記加工後ハッシュ値と当該加工後ハッシュ値に対応する加工後の前記加工対象データの属性値とを組み合わせたデータ列に対して、当該属性値の前記階層構造における上の階層の属性値に対応する中間ハッシュ値を算出し、前記階層構造における最も上の階層の属性値と当該属性値に対応する中間ハッシュ値とを組み合わせたデータ列に対して算出されたハッシュ値を、前記検証用ハッシュ値として算出する、
    請求項29に記載のデータ受領装置。
  31. 前記一般化階層木において、属性値が最も一般化された階層である上から2番目の階層のさらに上の階層に、当該加工対象データの属性値を削除する状態が設定されている、
    請求項29に記載のデータ受領装置。
  32. 前記検証用ハッシュ値算出手段は、
    一般化の加工が施された前記加工対象データについて、前記加工後ハッシュ値と当該加工後ハッシュ値に対応する加工後の前記加工対象データの属性値とを組み合わせたデータ列に対して、当該属性値の前記階層構造における上の階層の状態に対応する中間ハッシュ値を算出し、前記階層構造における最も上の階層の状態に対応する中間ハッシュ値に対して算出されたハッシュ値を、前記検証用ハッシュ値として算出し、
    削除の加工が施された前記加工対象データについて、当該加工対象データに対応する前記加工後ハッシュ値に対して算出されたハッシュ値を、前記検証用ハッシュ値として算出する、
    請求項31に記載のデータ受領装置。
  33. 加工の対象とされた属性それぞれについて、加工前の属性値を削除する加工ルールが設定されており、
    前記検証用ハッシュ値算出手段は、削除の加工が施された前記加工対象データについて、当該加工対象データに対応する前記加工後ハッシュ値を、前記検証用ハッシュ値として算出する、
    請求項27又は28に記載のデータ受領装置。
  34. 少なくとも1つの属性に関する複数のデータで構成されるデータセットを提供するデータ提供装置によって、
    前記属性のそれぞれについて加工ルールを設定し、
    前記加工ルールにおいて加工の対象とされた属性に関する加工対象データがとり得る複数の属性値に対応する状態に対して所定の乱数を設定し、
    前記加工対象データについて、当該加工対象データと当該加工対象データに対応する属性値について設定された前記乱数とを用いて得られたデータ列に対して先頭ハッシュ値を算出し、当該加工対象データと当該先頭ハッシュ値とを組み合わせたデータ列に対して中間ハッシュ値を算出し、当該中間ハッシュ値を用いて、当該加工対象データに対応する署名用ハッシュ値を算出することにより、前記複数のデータそれぞれに対応する署名用ハッシュ値を算出し、
    前記署名用ハッシュ値を用いてデジタル署名を生成し、
    前記データセットと、前記デジタル署名と、前記乱数とを、前記複数のデータのうちの少なくとも一部のデータを加工するデータ加工装置に送信し、
    前記データ加工装置によって、
    前記加工対象データに対して加工を施すための処理を行い、
    加工が施された前記加工対象データについて、加工前の当該加工対象データと加工前の当該加工対象データに対応する属性値について設定された乱数とを用いて得られたデータ列に対して先頭ハッシュ値を算出し、加工前の当該加工対象データと当該先頭ハッシュ値とを組み合わせたデータ列に対して中間ハッシュ値を算出し、当該中間ハッシュ値を用いて、加工後の当該加工対象データに対応する加工後ハッシュ値を算出することにより、前記加工対象データそれぞれに対応する加工後ハッシュ値を算出し、
    前記加工対象データに対して加工が施されたデータセットと、前記加工対象データに対応する前記加工後ハッシュ値と、前記デジタル署名とを、一部のデータが加工された前記データセットを受領するデータ受領装置に送信し、
    前記データ受領装置によって、
    前記加工対象データに対して加工が施されたデータセットと、前記加工後ハッシュ値とを用いて、前記複数のデータそれぞれに対応する検証用ハッシュ値を算出し、
    前記検証用ハッシュ値と前記デジタル署名とに対して検証を行う、
    情報処理方法。
  35. 少なくとも1つの属性に関する複数のデータで構成されるデータセットにおける前記属性のそれぞれについて加工ルールを設定し、
    前記加工ルールにおいて加工の対象とされた属性に関する加工対象データがとり得る複数の属性値に対応する状態に対して所定の乱数を設定し、
    前記加工対象データについて、当該加工対象データと当該加工対象データに対応する属性値について設定された前記乱数とを用いて得られたデータ列に対して先頭ハッシュ値を算出し、当該加工対象データと当該先頭ハッシュ値とを組み合わせたデータ列に対して中間ハッシュ値を算出し、当該中間ハッシュ値を用いて、当該加工対象データに対応する署名用ハッシュ値を算出することにより、前記複数のデータそれぞれに対応する署名用ハッシュ値を算出し、
    前記署名用ハッシュ値を用いてデジタル署名を生成し、
    前記データセットと、前記デジタル署名と、前記乱数とを、前記複数のデータのうちの少なくとも一部のデータを加工するデータ加工装置に送信する、
    データ提供方法。
  36. 少なくとも1つの属性に関する複数のデータで構成されるデータセットを提供するデータ提供装置において前記属性のそれぞれについて設定された加工ルールにおいて加工の対象とされた属性に関する加工対象データに対して加工を施すための処理を行い、
    加工が施された前記加工対象データについて、加工前の当該加工対象データと加工前の当該加工対象データに対応する属性値について設定された乱数とを用いて得られたデータ列に対して先頭ハッシュ値を算出し、加工前の当該加工対象データと当該先頭ハッシュ値とを組み合わせたデータ列に対して中間ハッシュ値を算出し、当該中間ハッシュ値を用いて、加工後の当該加工対象データに対応する加工後ハッシュ値を算出することにより、前記加工対象データそれぞれに対応する加工後ハッシュ値を算出し、
    前記加工対象データに対して加工が施されたデータセットと、前記加工対象データに対応する前記加工後ハッシュ値と、前記データ提供装置において生成されたデジタル署名とを、一部のデータが加工された前記データセットを受領するデータ受領装置に送信する、
    データ加工方法。
  37. 少なくとも1つの属性に関する複数のデータで構成されるデータセットを提供するデータ提供装置において前記属性のそれぞれについて設定された加工ルールにおいて加工の対象とされた属性に関する加工対象データに対して加工が施されたデータセットと、前記複数のデータのうちの少なくとも一部のデータを加工するデータ加工装置において算出され前記加工対象データそれぞれに対応する加工後ハッシュ値とを用いて、前記複数のデータそれぞれに対応する検証用ハッシュ値を算出し、
    前記検証用ハッシュ値と、前記データ提供装置において生成されたデジタル署名とに対して検証を行う、
    データ受領方法。
  38. 少なくとも1つの属性に関する複数のデータで構成されるデータセットにおける前記属性のそれぞれについて加工ルールを設定するステップと、
    前記加工ルールにおいて加工の対象とされた属性に関する加工対象データがとり得る複数の属性値に対応する状態に対して所定の乱数を設定するステップと、
    前記加工対象データについて、当該加工対象データと当該加工対象データに対応する属性値について設定された前記乱数とを用いて得られたデータ列に対して先頭ハッシュ値を算出し、当該加工対象データと当該先頭ハッシュ値とを組み合わせたデータ列に対して中間ハッシュ値を算出し、当該中間ハッシュ値を用いて、当該加工対象データに対応する署名用ハッシュ値を算出することにより、前記複数のデータそれぞれに対応する署名用ハッシュ値を算出するステップと、
    前記署名用ハッシュ値を用いてデジタル署名を生成するステップと、
    前記データセットと、前記デジタル署名と、前記乱数とを、前記複数のデータのうちの少なくとも一部のデータを加工するデータ加工装置に送信するステップと、
    をコンピュータに実行させるプログラム。
  39. 少なくとも1つの属性に関する複数のデータで構成されるデータセットを提供するデータ提供装置において前記属性のそれぞれについて設定された加工ルールにおいて加工の対象とされた属性に関する加工対象データに対して加工を施すための処理を行うステップと、
    加工が施された前記加工対象データについて、加工前の当該加工対象データと加工前の当該加工対象データに対応する属性値について設定された乱数とを用いて得られたデータ列に対して先頭ハッシュ値を算出し、加工前の当該加工対象データと当該先頭ハッシュ値とを組み合わせたデータ列に対して中間ハッシュ値を算出し、当該中間ハッシュ値を用いて、加工後の当該加工対象データに対応する加工後ハッシュ値を算出することにより、前記加工対象データそれぞれに対応する加工後ハッシュ値を算出するステップと、
    前記加工対象データに対して加工が施されたデータセットと、前記加工対象データに対応する前記加工後ハッシュ値と、前記データ提供装置において生成されたデジタル署名とを、一部のデータが加工された前記データセットを受領するデータ受領装置に送信するステップと、
    をコンピュータに実行させるプログラム。
  40. 少なくとも1つの属性に関する複数のデータで構成されるデータセットを提供するデータ提供装置において前記属性のそれぞれについて設定された加工ルールにおいて加工の対象とされた属性に関する加工対象データに対して加工が施されたデータセットと、前記複数のデータのうちの少なくとも一部のデータを加工するデータ加工装置において算出され前記加工対象データそれぞれに対応する加工後ハッシュ値とを用いて、前記複数のデータそれぞれに対応する検証用ハッシュ値を算出するステップと、
    前記検証用ハッシュ値と、前記データ提供装置において生成されたデジタル署名とに対して検証を行うステップと、
    をコンピュータに実行させるプログラム。
JP2024508905A 2022-03-23 2022-03-23 情報処理システム、データ提供装置、データ加工装置、データ受領装置、方法及びプログラム Active JP7754282B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2022/013549 WO2023181183A1 (ja) 2022-03-23 2022-03-23 情報処理システム、データ提供装置、データ加工装置、データ受領装置、方法及びコンピュータ可読媒体

Publications (3)

Publication Number Publication Date
JPWO2023181183A1 JPWO2023181183A1 (ja) 2023-09-28
JPWO2023181183A5 JPWO2023181183A5 (ja) 2024-11-08
JP7754282B2 true JP7754282B2 (ja) 2025-10-15

Family

ID=88100461

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2024508905A Active JP7754282B2 (ja) 2022-03-23 2022-03-23 情報処理システム、データ提供装置、データ加工装置、データ受領装置、方法及びプログラム

Country Status (3)

Country Link
US (1) US20250202711A1 (ja)
JP (1) JP7754282B2 (ja)
WO (1) WO2023181183A1 (ja)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020077256A (ja) 2018-11-08 2020-05-21 株式会社日立製作所 匿名化システムおよび匿名化方法
JP2021077223A (ja) 2019-11-12 2021-05-20 富士通株式会社 通信プログラム、通信方法および通信装置
JP2021081777A (ja) 2019-11-14 2021-05-27 株式会社日立製作所 組織間の情報連携を制御するシステム
WO2021245806A1 (ja) 2020-06-02 2021-12-09 日本電気株式会社 署名検証システム、署名検証方法、およびプログラム

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020077256A (ja) 2018-11-08 2020-05-21 株式会社日立製作所 匿名化システムおよび匿名化方法
JP2021077223A (ja) 2019-11-12 2021-05-20 富士通株式会社 通信プログラム、通信方法および通信装置
JP2021081777A (ja) 2019-11-14 2021-05-27 株式会社日立製作所 組織間の情報連携を制御するシステム
WO2021245806A1 (ja) 2020-06-02 2021-12-09 日本電気株式会社 署名検証システム、署名検証方法、およびプログラム

Also Published As

Publication number Publication date
WO2023181183A1 (ja) 2023-09-28
JPWO2023181183A1 (ja) 2023-09-28
US20250202711A1 (en) 2025-06-19

Similar Documents

Publication Publication Date Title
US10050968B2 (en) Method, apparatus, and system for access control of shared data
CN112166578A (zh) 用于控制对资源的访问的令牌的存储、生成和验证的改进系统和方法
Fu et al. DIPOR: An IDA-based dynamic proof of retrievability scheme for cloud storage systems
US11263200B2 (en) Methods and devices for data traversal
US20200204560A1 (en) Blockchain user account data
US10789376B2 (en) Blockchain authorization
JP7100563B2 (ja) 匿名化システムおよび匿名化方法
Chen et al. Verifiable dynamic ranked search with forward privacy over encrypted cloud data
US20210359852A1 (en) Auditing for events
KR102716337B1 (ko) 프라이버시 보호가 가능한 블록체인 기반의 영지식 검증 방법
JP7754282B2 (ja) 情報処理システム、データ提供装置、データ加工装置、データ受領装置、方法及びプログラム
JP6685968B2 (ja) データ管理システム、データ管理方法及びデータ管理プログラム
CN111737276B (zh) 一种修改区块链数据的方法和系统
CN115145925B (zh) 一种结果集的信任度提升方法、支持溯源方法与系统
Badertscher et al. Composable and robust outsourced storage
Wang et al. An alternative approach to public cloud data auditing supporting data dynamics
WO2021245806A1 (ja) 署名検証システム、署名検証方法、およびプログラム
US20250209205A1 (en) Information processing system, data providing apparatus, data processing apparatus, data receiving apparatus, method, and computer readable medium
US11943344B2 (en) Mutation processing for events
JP2024536271A (ja) ブロックチェーントランザクションからのコンテンツの編集
Almarwani et al. Release-aware encryption adjustment query processing for document database
CN119249500B (zh) 数据管理方法及装置、电子设备及存储介质
Zhao et al. Privacy-preserving TPA Auditing Scheme Based on Skip List for Cloud Storage.
KR102694766B1 (ko) 위치 정보를 기반으로 문서 파일을 관리하기 위한 문서 관리 서비스 서버 및 그 동작 방법
US20210359851A1 (en) Query and projection processing for events

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20240903

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20240903

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: 20250902

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20250915

R150 Certificate of patent or registration of utility model

Ref document number: 7754282

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150