k-匿名性(ケーとくめいせい)は、匿名化されたデータのもつ特性の1つである。k-匿名性の概念が最初に登場したのはラタニア・スウィーニー(英語版)とPierangela Samarati(英語版)が1998年に発表した論文中で[1]、「個人の特徴をフィールド構造にしたデータが与えられたとき、実用性を残しつつそのデータの個人が再特定されないという科学的な証明が与えられた公開データを作成する」という問題を解決する試みにおいてである[2][3][4]。個人情報が含まれている公開データの情報で少なくともk-1人を区別することができないとき、公開データはk-匿名性をもつという。k-匿名性を満たす匿名データを作成するための様々な手法やプログラムが米国において特許を得ている(Patent 7,269,578)[5]。
k-匿名化問題において、データベースはn行m列の表形式である。それぞれの行はデータベースに収載された、ある特定の個人を表している。なお、それぞれの値が全て異なった値である必要はない。各列の値はその行の人の属性値である。「名前」「識別番号(ID)」など個人をはっきり指し示す属性を識別子と呼ぶのに対し、「年齢」「性別」「居住地」など単体では特定できないが、組み合わせることによって個人の特定が可能になる属性を「準識別子(quasi-identifier)」と呼ぶ。また、「年収」や「持病」など人に知られたくない属性を「センシティブ属性」(もしくは「要配慮属性」)と呼ぶ。
下の表は匿名化されていない日本の愛知県名古屋市にある架空の病院の患者の一覧である。
このデータには6つの属性と10人分のデータが含まれている。あるkの値に対してk-匿名性を達成するための処理は主に2つある。
- 抑制: この処理では、ある属性の一定の値をアスタリスク「*」で置換する。その列の全てないし一部の値が「*」に置換される。下の匿名化した表においては、「名前」のすべての値と「宗教」のすべての値を「*」で置換した。
- 一般化: この処理では、個々の属性値を広い範囲に置換する。たとえば、年齢の「19歳」は「10代」に、「23歳」は「20代」にといった具合である。
以下に匿名化した表を示す。
さらに見る 名前, 年齢 ...
識別子 |
準識別子 |
センシティブ属性 |
名前 | 年齢 | 性別 | 居住県 | 宗教 | 病気 |
* | 20代 | 女 | 静岡県 | * | ガン |
* | 20代 | 女 | 愛知県 | * | ウイルス感染症 |
* | 20代 | 女 | 静岡県 | * | ガン |
* | 20代 | 男 | 岐阜県 | * | 結核 |
* | 20代 | 女 | 愛知県 | * | 心血管疾患 |
* | 20代 | 男 | 岐阜県 | * | 結核 |
* | 10代 | 男 | 愛知県 | * | ガン |
* | 20代 | 男 | 岐阜県 | * | 心血管疾患 |
* | 10代 | 男 | 愛知県 | * | 心血管疾患 |
* | 10代 | 男 | 愛知県 | * | ウイルス感染症 |
閉じる
同一の準識別子の組み合わせをもつ同値類は4つある。
さらに見る 同値類, 名前 ...
|
識別子 |
準識別子 |
センシティブ属性 |
同値類 | 名前 | 年齢 | 性別 | 居住県 | 宗教 | 病気 |
A | * | 20代 | 女 | 静岡県 | * | ガン |
* | 20代 | 女 | 静岡県 | * | ガン |
B | * | 20代 | 女 | 愛知県 | * | ウイルス感染症 |
* | 20代 | 女 | 愛知県 | * | 心血管疾患 |
C | * | 20代 | 男 | 岐阜県 | * | 結核 |
* | 20代 | 男 | 岐阜県 | * | 結核 |
* | 20代 | 男 | 岐阜県 | * | 心血管疾患 |
D | * | 10代 | 男 | 愛知県 | * | ガン |
* | 10代 | 男 | 愛知県 | * | 心血管疾患 |
* | 10代 | 男 | 愛知県 | * | ウイルス感染症 |
閉じる
このデータは「年齢」「性別」「居住県」において2−匿名性を達成している。なぜならば、これらの属性の組み合わせではどの組み合わせにおいても2人以上になるためである。どの準識別子の組み合わせでも、k-匿名性を満たすデータセットにおいてはk人以上のレコードが該当する[6]。
MeyersonとWilliamsは2004年に最適なk-匿名化はNP困難な問題であることを示したが、2005年にBayardo、Agrawalにより示されたk-最適化のようなヒューリスティックな解法はしばしば良い結果を生み出す[7][8]。
概ねO(log k)の計算量であるという証明のある、k-匿名化問題を解くことができる実用的な近似アルゴリズムがKenigとTassaによって示された[9]。
k-匿名化はランダム性を含まないため、攻撃者は個人に対して害意のある推測が可能である。たとえば19歳の愛知県在住の鈴木が上のリストに含まれていることを知っている場合、彼の疾患がガン、心血管疾患、ウイルス感染症のいずれかであるといえる。
k-匿名化は高次元のデータの匿名化には良い方法ではない[10]。例として、4つの時空間点があれば携帯電話の単一性(, k-匿名性 のとき)は95%の割合で満たされるということが示されている[11]。
k-匿名性は不釣合な抑制やそのデータを代表するものではないものによる一般化により、データの結果を歪めることもある
[12]。k-匿名化における抑制や一般化のアルゴリズムを改めることで、こういった歪曲を避けられる[13]。
また、k-匿名性には以下のような再識別を可能にする欠陥が知られている[14]。
同種攻撃
同値類内のすべてのレコードの機密属性が同じ時に成立する攻撃である。攻撃者がある人がリストに含まれていることを知っており、その人の同値類を正しく特定できた場合、攻撃者は機密属性を入手できる。たとえば静岡県在住の伊藤が上のリストに含まれていることを知っている場合、同値類Aであることがわかるため、彼女の病気がガンであることがわかる。
背景知識攻撃
攻撃者がなんらかの背景知識を持っているときに成立する攻撃である。攻撃者がある人がリストに含まれていることを知っており、その人の同値類を正しく特定でき、背景知識によって機密属性を絞り込めた時、攻撃者は機密属性を入手できる。たとえば岐阜県在住の高橋が上のリストに含まれていることを知っている場合、同値類Cであることがわかる。また彼が明らかに結核ではないと攻撃者が知っている場合、彼の病気が心血管疾患であることがわかる。
出典
Roberto J. Bayardo; Rakesh Agrawal (2005). “Data Privacy through Optimal k-anonymization”. ICDE '05 Proceedings of the 21st International Conference on Data Engineering: 217–28. doi:10.1109/ICDE.2005.42. ISBN 0-7695-2285-8. ISSN 1084-4627. https://www.cs.auckland.ac.nz/research/groups/ssg/pastbib/pastpapers/bayardo05data.pdf. "Data de-identification reconciles the demand for release of data for research purposes and the demand for privacy from individuals. This paper proposes and evaluates an optimization algorithm for the powerful de-identification procedure known as k-anonymization. A k-anonymized dataset has the property that each record is indistinguishable from at least k - 1 others. Even simple restrictions of optimized k-anonymity are NP-hard, leading to significant computational challenges. We present a new approach to exploring the space of possible anonymizations that tames the combinatorics of the problem, and develop data-management strategies to reduce reliance on expensive operations such as sorting. Through experiments on real census data, we show the resulting algorithm can find optimal k-anonymizations under two representative cost measures and a wide range of k. We also show that the algorithm can produce good anonymizations in circumstances where the input data or input parameters preclude finding an optimal solution in reasonable time. Finally, we use the algorithm to explore the effects of different coding approaches and problem variations on anonymization quality and performance. To our knowledge, this is the first result demonstrating optimal k-anonymization of a nontrivial dataset under a general model of the problem."
Adam Meyerson; Ryan Williams (2004). “On the Complexity of Optimal K-Anonymity”. PODS '04 Proceedings of the twenty-third ACM SIGMOD-SIGACT-SIGART symposium on Principles of database systems (New York, NY: ACM): 223–8. doi:10.1145/1055558.1055591. ISBN 158113858X. http://www.stanford.edu/~rrwill/kanon-pods04.pdf. "The technique of k-anonymization has been proposed in the literature as an alternative way to release public information, while ensuring both data privacy and data integrity. We prove that two general versions of optimal k-anonymization of relations are NP-hard, including the suppression version which amounts to choosing a minimum number of entries to delete from the relation. We also present a polynomial time algorithm for optimal k-anonymity that achieves an approximation ratio independent of the size of the database, when k is constant. In particular, it is a O(k log k)-approximation where the constant in the big-O is no more than 4. However, the runtime of the algorithm is exponential in k. A slightly more clever algorithm removes this condition, but is a O(k logm)-approximation, where m is the degree of the relation. We believe this algorithm could potentially be quite fast in practice."
Kenig, Batya; Tassa, Tamir (2012). “A practical approximation algorithm for optimal k-anonymity”. Data Mining and Knowledge Discovery 25: 134–168.
Angiuli, Olivia; Jim Waldo (June 2016). “Statistical Tradeoffs between Generalization and Suppression in the De-Identification of Large-Scale Data Sets”. IEEE Computer Society Intl Conference on Computers, Software, and Applications.