(57)【特許請求の範囲】
【請求項１】
複数の属性から成るレコードであって前記属性のうち組み合わせると個人を特定することが可能な準識別子を含む複数の前記レコードから構成されるテーブルについて匿名化を行い、利用者に提供するプライバシー保護装置であって、
前記テーブルの匿名化を行い、同一の前記テーブルから複数の互いに異なる匿名テーブルを生成する匿名テーブル生成手段と、
生成された前記匿名テーブル同士の全ての組み合わせごとにおける、前記匿名テーブル間の類似度を計測する類似度計測手段と、
計測した前記類似度がいずれも閾値未満の組み合わせのみからなる前記匿名テーブルを選択する選択手段と、
を備えるプライバシー保護装置。
【請求項２】
前記類似度は、属性値が一致する前記属性の割合が所定の割合以上である前記レコードの総数と、前記匿名テーブルに含まれる前記レコードの総数との比率で表される、請求項１に記載のプライバシー保護装置。
【請求項３】
前記匿名テーブルの特徴量を算出する特徴量算出手段と、
前記利用者の識別情報と、前記利用者に提供した前記匿名テーブルの前記特徴量とを対応付けてテーブル記憶手段に記憶させるテーブル記憶制御手段と、をさらに備える、請求項１又は２に記載のプライバシー保護装置。
【請求項４】
テーブル記憶制御手段は、前記利用者の識別情報に前記匿名テーブルをさらに対応付けてテーブル記憶手段に記憶させる、請求項３に記載のプライバシー保護装置。
【請求項５】
入力されたテーブルと、前記テーブル記憶手段に記憶された情報とに基づいて、前記入力されたテーブルの利用者を特定する特定手段をさらに備える請求項３又は４に記載のプライバシー保護装置。
【請求項６】
前記選択手段は、選択する前記匿名テーブルの個数が所定の個数以内になるように、前記類似度の低い前記匿名テーブルの組み合わせから順に選択する、請求項１から５のいずれか一項に記載のプライバシー保護装置。
【請求項７】
請求項１に記載のプライバシー保護装置が実行する方法であって、
前記匿名テーブル生成手段が、前記テーブルの匿名化を行い、同一の前記テーブルから複数の互いに異なる匿名テーブルを生成する匿名テーブル生成ステップと、
前記類似度計測手段が、生成された前記匿名テーブル同士の全ての組み合わせごとにおける、前記匿名テーブル間の類似度を計測する類似度計測ステップと、
前記選択手段が、計測した前記類似度がいずれも閾値未満の組み合わせのみからなる前記匿名テーブルを選択する選択ステップと、
を備える方法。
【請求項８】
コンピュータに、請求項７に記載の方法の各ステップを実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プライバシー保護装置、方法及びプログラムに関する。
【背景技術】
【０００２】
従来より、コンピュータ等によって集められたデータは統計処理され、その結果得られた情報が活用されている。例えば、病気と、年代、性別、地域、人種といった情報とを含む大量のデータは統計処理されて、病気の傾向分析や予防対策に用いられている。
【０００３】
このようなデータを提供する場合には、提供者は、プライバシーを慎重に保護し、個々のデータの所有者が特定されないように、データの変形処理を行う必要がある。そのため、今までにも、プライバシーを保護するためのデータの変形処理に関する技術が多く開示されている。例えば、データの一部を一般化やあいまい化することにより、データを組み合わせても個人が特定されないようにするｋ−匿名化手法の技術が開示されている（特許文献１、非特許文献１参照）。
また、匿名化技術を用いて、１つの元のデータからｋ−匿名性を満たす複数の匿名化データを生成することが可能である。提供者は、この特性を利用して、匿名化データを提供する際に、利用者ごとに異なる匿名化データを提供することで、匿名化データの漏洩元を特定することも可能である。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１２−１５９９８２号公報
【非特許文献】
【０００５】
【非特許文献１】Ｂ．Ｆｕｎｇ  ａｎｄ  Ｋ．Ｗａｎｇ  ａｎｄ  Ｐ．Ｙｕ，“Ｔｏｐ−ｄｏｗｎ  ｓｐｅｃｉａｌｉｚａｔｉｏｎ  ｆｏｒ  ｉｎｆｏｒｍａｔｉｏｎ  ａｎｄ  ｐｒｉｖａｃｙ  ｐｒｅｓｅｒｖａｔｉｏｎ”  Ｐｒｏｃ  ｏｆ  ＩＣＤＥ  ２００５  ｐｐ．２０５−２１６
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、不正者は受け取った匿名化データ（以降、匿名化データを匿名テーブルといい、元のデータを元のテーブルという。）の一部を切り出して漏洩させる可能性がある。一部切り出しての漏洩では、その切り出したデータが別の匿名テーブルの一部と一致することにより、漏洩元を特定することが困難になる場合がある。
【０００７】
そこで、提供した匿名テーブルの一部が漏洩した場合にも、他の匿名テーブルと識別可能な匿名テーブルを提供することができる装置が求められている。
【０００８】
本発明は、提供した匿名テーブルの一部が漏洩した場合にも、他の匿名テーブルと識別可能な匿名テーブルを提供することができるプライバシー保護装置、方法及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００９】
具体的には、以下のような解決手段を提供する。
（１）  複数の属性から成るレコードであって前記属性のうち組み合わせると個人を特定することが可能な準識別子を含む複数の前記レコードから構成されるテーブルについて匿名化を行い、利用者に提供するプライバシー保護装置であって、前記テーブルの匿名化を行い、同一の前記テーブルから複数の互いに異なる匿名テーブルを生成する匿名テーブル生成手段と、生成された前記匿名テーブル同士の全ての組み合わせごとにおける、前記匿名テーブル間の類似度を計測する類似度計測手段と、計測した前記類似度がいずれも閾値未満の組み合わせのみからなる前記匿名テーブルを選択する選択手段と、を備えるプライバシー保護装置。
【００１０】
（１）のプライバシー保護装置は、同一のテーブルから複数の互いに異なる匿名テーブルを生成し、生成した匿名テーブル同士の全ての組み合わせごとにおける、匿名テーブル間の類似度を計測し、計測した類似度がいずれも閾値未満の組み合わせのみからなるように匿名テーブルを選択する。
【００１１】
すなわち、（１）のプライバシー保護装置は、互いの類似度がいずれも閾値未満となる匿名テーブルを選択して提供することにより、利用者ごとの匿名テーブル間の差異が顕著になり、利用者の識別性が増すので、提供した匿名テーブルの一部が漏洩した場合にも、他の匿名テーブルと識別可能な匿名テーブルを提供することができる。
【００１２】
（２）  前記類似度は、属性値が一致する前記属性の割合が所定の割合以上である前記レコードの総数と、前記匿名テーブルに含まれる前記レコードの総数との比率で表される、（１）に記載のプライバシー保護装置。
【００１３】
（２）のプライバシー保護装置は、定量化された類似度を計測することにより、識別性の高い匿名テーブル同士を容易に見つけることができる。
【００１４】
（３）  前記匿名テーブルの特徴量を算出する特徴量算出手段と、前記利用者の識別情報と、前記利用者に提供した前記匿名テーブルの前記特徴量とを対応付けてテーブル記憶手段に記憶させるテーブル記憶制御手段と、をさらに備える、（１）又は（２）に記載のプライバシー保護装置。
【００１５】
（３）のプライバシー保護装置は、提供した匿名テーブルの特徴量を利用者に対応付けて記憶させることにより、漏洩した匿名テーブルの特定が容易になる。
【００１６】
（４）  テーブル記憶制御手段は、前記利用者の識別情報に前記匿名テーブルをさらに対応付けてテーブル記憶手段に記憶させる、（３）に記載のプライバシー保護装置。
【００１７】
（４）のプライバシー保護装置は、提供した匿名テーブルを利用者に対応付けて記憶させることにより、匿名テーブルの一部が漏洩した場合であっても、漏洩データと提供した匿名テーブルとの照合ができるので、漏洩した匿名テーブルの利用者を特定することができる。
【００１８】
（５）  入力されたテーブルと、前記テーブル記憶手段に記憶された情報とに基づいて、前記入力されたテーブルの利用者を特定する特定手段をさらに備える（３）又は（４）に記載のプライバシー保護装置。
【００１９】
（５）のプライバシー保護装置は、入力されたテーブルの利用者を自動的に特定することができる。
【００２０】
（６）  前記選択手段は、選択する前記匿名テーブルの個数が所定の個数以内になるように、前記類似度の最も低い前記匿名テーブルの組み合わせから順に選択する、（１）から（５）のいずれか一に記載のプライバシー保護装置。
【００２１】
（６）のプライバシー保護装置は、類似度の最も低い匿名テーブルの組み合わせから順に所定の個数の匿名テーブルを選択することにより、提供した匿名テーブルのより高い識別性を確保することができる。
【００２２】
（７）  （１）に記載のプライバシー保護装置が実行する方法であって、前記匿名テーブル生成手段が、前記テーブルの匿名化を行い、同一の前記テーブルから複数の互いに異なる匿名テーブルを生成する匿名テーブル生成ステップと、前記類似度計測手段が、生成された前記匿名テーブル同士の全ての組み合わせごとにおける、前記匿名テーブル間の類似度を計測する類似度計測ステップと、前記選択手段が、計測した前記類似度がいずれも閾値未満の組み合わせのみからなる前記匿名テーブルを選択する選択ステップと、を備える方法。
【００２３】
（７）の方法は、（１）と同様に、提供した匿名テーブルの一部が漏洩した場合にも、他の匿名テーブルと識別可能な匿名テーブルを提供することができる。
【００２４】
（８）  コンピュータに、（７）に記載の方法の各ステップを実行させるためのプログラム。
【００２５】
（８）のプログラムは、コンピュータに、提供した匿名テーブルの一部が漏洩した場合にも、他の匿名テーブルと識別可能な匿名テーブルを提供できるように機能させることができる。
【発明の効果】
【００２６】
本発明によれば、提供した匿名テーブルの一部が漏洩した場合にも、他の匿名テーブルと識別可能な匿名テーブルを提供することができる。
【図面の簡単な説明】
【００２７】
【図１】本発明の一実施形態に係るプライバシー保護装置の構成を示すブロック図である。
【図２】本発明の一実施形態に係るプライバシー保護装置のテーブル記憶手段の例を示す図である。
【図３】本発明の一実施形態に係るプライバシー保護装置の匿名テーブルの生成処理の例を示すフローチャートである。
【図４】図３に続くフローチャートである。
【図５】本発明の一実施形態に係るプライバシー保護装置の特定処理の例を示すフローチャートである。
【図６】本発明の一実施形態に係るプライバシー保護装置による属性値の階層化の例を示す図である。
【図７】本発明の一実施形態に係るプライバシー保護装置により匿名化される前の元のテーブルの例を示す図である。
【図８】本発明の一実施形態に係るプライバシー保護装置によるトップダウン処理又はボトムアップ処理を説明するための図である。
【図９】本発明の一実施形態に係るプライバシー保護装置によるトップダウン処理とボトムアップ処理との繰り返しを説明するための図である。
【図１０】本発明の一実施形態に係るプライバシー保護装置の匿名テーブルの作成処理の例を示すフローチャートである。
【図１１】本発明の一実施形態に係るプライバシー保護装置の匿名化処理の例を示すフローチャートである。
【図１２】本発明の一実施形態に係るプライバシー保護装置のトップダウン処理の例を示すフローチャートである。
【図１３】図１２に続くフローチャートである。
【図１４】本発明の一実施形態に係るプライバシー保護装置のボトムアップ処理の例を示すフローチャートである。
【発明を実施するための形態】
【００２８】
以下、本発明の実施形態について、図を参照しながら説明する。図１は、本発明の一実施形態に係るプライバシー保護装置１０の構成を示すブロック図である。
プライバシー保護装置１０は、匿名テーブル生成手段１１と、類似度計測手段１２と、選択手段１３と、特徴量算出手段１４と、テーブル記憶制御手段１５と、特定手段１６と、テーブル記憶手段３１とを備える。
【００２９】
プライバシー保護装置１０が匿名化を行うテーブルは、複数の属性から成るレコードであって属性のうち組み合わせると個人を特定することが可能な準識別子を含む複数のレコードから構成される。
例えば、レコードは、匿名化のための加工をしない重要情報（ｓｅｎｓｉｔｉｖｅ  ｉｎｆｏｒｍａｔｉｏｎ）と、準識別子（ｑｕａｓｉ−ｉｄｅｎｔｉｆｉｅｒ）と、匿名化のために削除する削除すべき情報と、を含む（後述する図７参照）。
【００３０】
匿名テーブル生成手段１１は、テーブルの匿名化を行い、同一のテーブルから複数の互いに異なる匿名テーブルを生成する。
具体的には、匿名テーブル生成手段１１は、設定（例えば、匿名化を行うレコードの開始順番や、準識別子の属性の設定等（例えば、重要度の設定、一般化の限界レベルの設定等））に基づいて、テーブルの匿名化を行う。準識別子の属性の設定は、管理者又は提供者により入力される。匿名テーブル生成手段１１は、異なる設定ごとに、同一のテーブルから互いに異なる匿名テーブルを生成する。匿名テーブル生成手段１１は、利用者の数に対して十分大きな数の匿名テーブルを生成し、記憶させる。
重要度の設定のための入力や、テーブルの具体的な匿名化については、匿名テーブルの作成処理の実施例により後述する。
【００３１】
類似度計測手段１２は、匿名テーブル生成手段１１によって生成された匿名テーブル同士の全ての組み合わせごとにおける、匿名テーブル間の類似度を計測する。類似度は、属性値が一致する属性の割合が所定の割合以上であるレコードの総数と、匿名テーブルに含まれるレコードの総数との比率で表される。
すなわち、類似度は、属性値が一致する属性の個数と、準識別子を構成する属性の全個数との割合が所定の割合以上である場合にレコード同士が一致しているとみなされ、例えば、次の式で計算される。
匿名テーブルＴ１とＴ２との類似度：＝一致する属性の割合が所定の割合以上であるレコードの総数／レコードの総数
ここで、匿名テーブルＴ１とＴ２とのレコードの総数は同一であると仮定している。なお、同一でない場合、レコードの総数は、レコードの総数が大きい方の総数としてよく、小さい方でも平均でもよい。
【００３２】
選択手段１３は、匿名テーブル同士の類似度がいずれも閾値未満の組み合わせのみからなるような匿名テーブルを選択する。
具体的には、選択手段１３は、匿名テーブル生成手段１１によって生成された一の匿名テーブルと他の匿名テーブルとの全ての組み合わせにおいて、最高の類似度が閾値以上である場合に、最高の類似度の組み合わせにおける一方の匿名テーブルを削除する。
例えば、選択手段１３は、匿名テーブル１と匿名テーブル２との組み合わせ、・・・、匿名テーブル１と匿名テーブルｎとの組み合わせにおいて、匿名テーブル１と匿名テーブル２との組み合わせが最高の類似度である場合であって最高の類似度が閾値以上である場合に、匿名テーブル２を削除する。次に、選択手段１３は、匿名テーブル３と匿名テーブル１との組み合わせ、匿名テーブル３と匿名テーブル４との組み合わせ、・・・、匿名テーブル３と匿名テーブルｎとの組み合わせにおいて、匿名テーブル３と匿名テーブル４との組み合わせが最高の類似度である場合であって最高の類似度が閾値以上である場合に、匿名テーブル４を削除する。
この例のように、選択手段１３は、最高の類似度が閾値以上である組み合わせにおける一方の匿名テーブルを削除することを繰り返し、残った匿名テーブルの組み合わせにおいて、類似度がいずれも閾値未満の組み合わせのみからなるような匿名テーブルを選択する。
【００３３】
さらに、選択手段１３は、選択する匿名テーブルの個数が所定の個数以内になるように、類似度の低い匿名テーブルの組み合わせから順に選択する。
具体的には、選択手段１３は、匿名テーブル同士の類似度がいずれも閾値未満の組み合わせのみからなるような匿名テーブルの組み合わせのうち、類似度の最も低い匿名テーブルの組み合わせから順に選択し、選択した匿名テーブルの個数が所定の個数以内になるようにする。
【００３４】
特徴量算出手段１４は、選択手段１３によって選択された匿名テーブルの特徴量（例えば、ハッシュ値）を算出する。具体的には、特徴量算出手段１４は、特徴量を算出する関数（例えば、ハッシュ関数）を用いて、匿名テーブルの特徴量（例えば、ハッシュ値）を算出する。
【００３５】
テーブル記憶制御手段１５は、利用者の識別情報と、利用者に提供した匿名テーブルの特徴量（例えば、ハッシュ値）とを対応付けてテーブル記憶手段３１に記憶させる。テーブル記憶制御手段１５は、利用者の識別情報に匿名テーブルをさらに対応付けてテーブル記憶手段３１に記憶させるとしてもよい（後述する図２参照）。利用者の識別情報は、管理者又は提供者等により入力されるとしてよい。
【００３６】
特定手段１６は、入力されたテーブルと、テーブル記憶手段３１に記憶された情報とに基づいて、入力されたテーブルの利用者を特定する。
具体的には、特定手段１６は、入力されたテーブル（例えば、漏洩されたと疑われる匿名テーブル）の特徴量（例えば、ハッシュ値）を求め、求めた特徴量とテーブル記憶手段３１に記憶されている特徴量とを比較し、同一の特徴量に対応付けられた利用者を、入力されたテーブルの利用者として特定する。
さらに、特定手段１６は、入力されたテーブルと、テーブル記憶手段３１に記憶された匿名テーブルとを比較し、入力されたテーブルを含む匿名テーブルに対応付けられた利用者を、入力されたテーブルの利用者として特定するとしてもよい。
【００３７】
図２は、本発明の一実施形態に係るプライバシー保護装置１０のテーブル記憶手段３１の例を示す図である。図２が示すように、テーブル記憶手段３１は、入力された利用者識別情報に、利用者に提供した匿名テーブルと、その匿名テーブルの特徴量（例えば、ハッシュ値）とを対応付けて記憶する。
【００３８】
図３及び図４は、本発明の一実施形態に係るプライバシー保護装置１０の匿名テーブルの生成処理の例を示すフローチャートである。プライバシー保護装置１０は、コンピュータ及びその周辺装置が備えるハードウェア並びに該ハードウェアを制御するソフトウェアによって構成され、以下の処理は、制御部（例えば、ＣＰＵ）が、ＯＳの下で所定のソフトウェアに従い実行する処理である。本処理は、管理者又は提供者による匿名テーブルの生成の要求により起動される。
【００３９】
ステップＳ１１において、ＣＰＵ（匿名テーブル生成手段１１）は、設定（匿名化を行うレコードの開始順番や、準識別子の属性の設定等）を変えて、複数の異なる匿名テーブルを生成する。匿名テーブルの生成は、図１０から図１３で示される。
【００４０】
ステップＳ１２において、ＣＰＵ（類似度計測手段１２）は、一の匿名テーブルと他の匿名テーブルとの組み合わせを全て作成する。
【００４１】
ステップＳ１３において、ＣＰＵ（類似度計測手段１２）は、組み合わせた匿名テーブルの類似度を算出する。
【００４２】
ステップＳ１４において、ＣＰＵ（選択手段１３）は、最大の類似度が閾値以上か否かを判断する。この判断がＹＥＳの場合、ＣＰＵは、処理をステップＳ１５に移し、この判断がＮＯの場合、ＣＰＵは、処理をステップＳ１６に移す。
【００４３】
ステップＳ１５において、ＣＰＵ（選択手段１３）は、最大の類似度の組み合わせのうち一の匿名テーブルに対する他の匿名テーブルを削除する。
【００４４】
ステップＳ１６において、ＣＰＵ（選択手段１３）は、次の匿名テーブルがあるか否かを判断する。この判断がＹＥＳの場合、ＣＰＵは、処理をステップＳ１７に移し、この判断がＮＯの場合、ＣＰＵは、処理をステップＳ１８に移す。
【００４５】
ステップＳ１７において、ＣＰＵ（類似度計測手段１２）は、次の匿名テーブルを一の匿名テーブルとする。その後、ＣＰＵは、処理をステップＳ１２に移す。
【００４６】
ステップＳ１８において、ＣＰＵ（選択手段１３）は、残った匿名テーブルの組み合わせにおいて、類似度がいずれも閾値未満の組み合わせのみからなるか否かを判断する。この判断がＹＥＳの場合、ＣＰＵは、処理をステップＳ１９に移し、この判断がＮＯの場合、ＣＰＵは、処理をステップＳ１２に移す。
【００４７】
ステップＳ１９において、ＣＰＵ（選択手段１３）は、選択する匿名テーブルの個数が所定の個数以内になるように、類似度の最も低い匿名テーブルの組み合わせから順に匿名テーブルを選択する。
【００４８】
ステップＳ２０において、ＣＰＵ（特徴量算出手段１４）は、選択した匿名テーブルの特徴量（例えば、ハッシュ値）を算出する。
【００４９】
ステップＳ２１において、ＣＰＵ（テーブル記憶制御手段１５）は、入力された利用者の識別情報と特徴量（例えば、ハッシュ値）及び匿名テーブルとを対応付けてテーブル記憶手段３１に記憶させる。その後、ＣＰＵは、処理を終了する。
【００５０】
図５は、本発明の一実施形態に係るプライバシー保護装置１０の特定処理の例を示すフローチャートである。本処理は、管理者又は提供者による要求であってテーブルの利用者を特定するための要求により起動される。
【００５１】
ステップＳ３１において、ＣＰＵ（特定手段１６）は、テーブルを入力する。
【００５２】
ステップＳ３２において、ＣＰＵ（特定手段１６）は、テーブル記憶手段３１の特徴量（例えば、ハッシュ値）又は匿名テーブルと照合することにより、入力したテーブルの利用者を特定する。その後、ＣＰＵは、処理を終了する。
【００５３】
［匿名テーブルの作成処理の実施例］
次に、匿名テーブルの作成処理の実施例について説明する。
匿名テーブルの作成処理は、テーブルの加工のときに、そのテーブルを構成する各属性に対して重み（重要度）を設定し、特殊な関数を用いて、加工したテーブルを評価することで、利用者が求める情報を可能な限り保持すると共に匿名化されたテーブルを生成する。
【００５４】
匿名テーブルの作成処理のうち匿名化処理は、トップダウン処理（後述の木構造データに基づいて、属性値の詳細化を行う処理）を実施した後、ボトムアップ処理（後述の木構造データに基づいて、属性値の一般化を行う処理）により逆方向に変形し、さらにトップダウン処理で再度変形する、という処理を繰り返すことにより最適なテーブルを導出する。その際には、匿名化処理は、ｋ−匿名性（ｋ−ａｎｏｎｙｍｉｔｙ）判定に加え、ｌ−多様性（ｌ−ｄｉｖｅｒｓｉｔｙ）判定もしくはｔ−近似性（ｔ−ｃｌｏｓｅｎｅｓｓ）判定も行う。また、匿名化処理は、トップダウン処理において評価ポイントの概算を導入し、不要な処理を削減する。そのうえ、匿名化処理の後、匿名テーブルの作成処理は、評価ポイントが最高となったテーブルについて部分匿名化を実施することにより、さらに情報量の多いテーブルを作成する。
なお、評価ポイントの概算については、２種類の評価関数が用意され、選択制とすることにより異なる特性を持つテーブルの出力が可能である。
【００５５】
すなわち、匿名テーブルの作成処理は、重要度の入力（設定処理）と、匿名化処理におけるトップダウン処理の処理負荷を軽減するための前処理と、評価ポイントの概算を導入したトップダウン処理及びボトムアップ処理を繰り返す匿名化処理と、部分匿名化処理と、を含む。匿名テーブルの作成処理の例として、一般化又は詳細化のための木構造データ、重要度の入力、評価ポイントの算出、前処理、トップダウン処理、ボトムアップ処理、再トップダウン処理、部分匿名化処理、匿名性条件判定、及び匿名テーブル出力ごとに説明する。
【００５６】
［一般化又は詳細化のための木構造データ］
匿名化のための属性値の一般化又は詳細化のための木構造データについて説明する。
属性値が数値データではない場合、属性値の持つ意味の包含関係によって構築された木構造が、属性値の一般化又は詳細化のための上位又は下位ノード探索のために必要である。図６を参照して属性値の階層構造について説明する。図６は、本発明の一実施形態に係るプライバシー保護装置１０による属性値の階層化の例を示す図である。図６の例は、年齢の階層化がレベル０（Ｌ０）からレベル３（Ｌ３）に設定され、それぞれのレベルでの属性値の取り得る値についての木構造を表形式で示している。例えば、図６は、年齢が「６」歳であるレコードが１レベルだけ一般化されると、年齢が「６〜９」に一般化され、さらに１レベルだけ一般化されると、年齢が「少年」に一般化されることを示している。
このように、属性値の上下関係によって構成された階層構造を事前に作成しておく必要がある。すなわち、各属性に対してこのような木構造データを提供者が設定可能とする。数値データに関しては一定の値ごとに階層化できるため、木構造データは必ずしも必要ではない。なお、木構造データの構成に関して既存のソフトウェアを使用できる場合は、使用してもよい。また、木構造データは各レベルのノード数を情報として含んでもよい。
【００５７】
図７は、本発明の一実施形態に係るプライバシー保護装置１０により匿名化される前の元のテーブルの例を示す図である。図７が示すように、元のテーブルは、重要情報と準識別子と削除すべき情報とのいずれかに設定された複数の属性を含む複数のレコードから構成される。準識別子の属性には、重要度（後述する重要度の入力参照）が設定され、一般化の限界を示すレベルが設定される。
【００５８】
［重要度の入力］
匿名化されたテーブルの生成は、利用者によって要求された各属性の重要度に基づいて行われる。重要度は、重要度ポイントの大きい順に属性の優先順位を表し、利用者が最も重視する属性を最上位とする。提供者は、各優先順位に対して、重要度ポイント（数値）を設定する。この値は、一般化を行う属性を選択する際に使用される。
一般化処理においては、優先順位が最下位の属性から順に一般化を行い、ｋ−匿名性を満たしたレベルで終了する。したがって、重要度が最上位の属性ほど、元の情報が保持される確率が高くなる。提供者の入力により、プライバシー保護装置１０は、各属性に対して重要情報（ｓｅｎｓｉｔｉｖｅ  ｉｎｆｏｒｍａｔｉｏｎ）、準識別子（ｑｕａｓｉ−ｉｄｅｎｔｉｆｉｅｒ）、削除すべき情報のうちどの情報であるか、及び優先順位を設定するとしてよい。なお、重要情報に指定された属性の変更は行われない。また、削除すべき情報に指定された情報は一般化の際に自動的に削除される。
【００５９】
［評価ポイントの算出］
評価ポイントを算出する評価関数として以下の２種類の関数を用いる。
【００６０】
【数１】
0006437842.tif 000002
【００６１】
【数２】
0006437842.tif 000003
【００６２】
上記の２つの評価関数を選択する方式とすることにより、以下のような異なる特性を持つテーブルを出力できるようにする。
数式１の評価関数は、準識別子の属性値の種類数の変化と、準識別子の重要度とに依存するので、数式１の評価関数によれば、例えば、属性に偏った匿名化が可能である。
また、数式２の評価関数は、数式１の評価関数に比べて、偏りなく匿名化が可能である。
【００６３】
さらに、νを順序の代わりに、エントロピーを用いることで、さらに特性の異なるテーブルを導出することも可能である。
【００６４】
【数３】
0006437842.tif 000004
【００６５】
次に、テーブルの加工について説明する。
テーブルは、属性ごとに、準識別子か重要情報かが決められ、テーブルを全ての準識別子からなる部分と、全ての重要情報からなる部分とに分割される。
【００６６】
［前処理］
前処理は、それぞれの属性単体を、単体で（ｋ＋ｌ）−匿名性を満たすように一般化する。ｌは、システムのパラメータである。また、前処理は、属性によって提供者が一般化の限界レベルを設定しているものについては、その限界レベルを超えて一般化はしない。
また、属性単体で（ｋ＋ｌ）−匿名性を満たすように一般化したレコードが、ｋ−匿名性を満たさなければ、前処理は、各属性を１レベルだけ一般化して再度チェックを行う。この場合も、前処理は、提供者が設定した限界レベルを超えて一般化はせず、他の属性を一般化することで、（ｋ＋ｌ）−匿名性を達成する。
【００６７】
［トップダウン処理］
トップダウン処理は、以下の手順を行う。
【００６８】
（１）まず、トップダウン処理は、当該テーブルに対してソートを行い、全ての準識別子の属性値が一致するレコードを集めてグループ化を行う。
【００６９】
（２）次に、トップダウン処理は、提供者によって入力された属性の優先順位情報と、ｋ−匿名性及びｌ−多様性判定からのフィードバック結果とを基に、詳細化を行う属性及びグループを選択する。具体的には、トップダウン処理は、提供者によって入力された優先順位が高い（例えば、重要度が大きい）属性から順に詳細化してトップダウン候補テーブルを作成する。
【００７０】
その際には、トップダウン処理は、各属性に対して、詳細化を行った場合に取り得る属性の種類の個数と、提供者によって入力された優先順位（例えば、重要度が大きい順）情報とから、詳細化による評価ポイントの増加分を概算する。トップダウン処理は、この概算結果が大きい順から、詳細化の対象とする。
また、トップダウン処理は、可能性のある詳細化を順番に行ってトップダウン候補テーブルを作成する際に、直前の詳細化を行ったトップダウン候補テーブルの評価ポイントに対して、概算した評価ポイントの増加を考慮しても次に行う詳細化が評価ポイントの上で上回れない場合には、残りの詳細化手順によるトップダウン候補テーブルの作成を行わない。
【００７１】
（３）次に、トップダウン処理は、選択したグループの詳細化を行い、ｋ−匿名性及びｌ−多様性判定をする。具体的には、トップダウン処理は、選択したグループについて、優先順位の高い（例えば、重要度が大きい）属性から順に詳細化（１レベル高い詳細化）を全ての属性について行い、トップダウン候補テーブルを作成する。
（３−１）ｋ−匿名性及びｌ−多様性を満たす場合、トップダウン処理は、トップダウン候補テーブルについて、各属性における同じ属性値の個数を算出し、評価ポイントを導出する。ｋ−匿名性及びｌ−多様性を満たしたトップダウン候補テーブル及びその評価ポイントを保存する。
トップダウン処理は、トップダウン候補テーブルのうち、最も評価ポイントが大きいものを次の処理対象テーブルとして、処理を繰り返す。
【００７２】
（３−２）ｋ−匿名性及びｌ−多様性を満たさなくなった場合、トップダウン処理は、ｋ−匿名性及びｌ−多様性を満たさなくなったトップダウン候補テーブルの中から最も評価ポイントが大きいものをボトムアップ処理に受け渡す。
【００７３】
［ボトムアップ処理］
ボトムアップ処理は、以下の手順を行う。
【００７４】
（１）まず、ボトムアップ処理は、当該テーブルに対してソートを行い、全ての準識別子の属性値が一致するレコードを集めてグループ化を行う。
【００７５】
（２）次に、ボトムアップ処理は、提供者によって入力された属性の優先順位情報と、ｋ−匿名性及びｌ−多様性判定からのフィードバック結果とを基に、一般化を行う属性及びグループを選択する。
【００７６】
（３）次に、ボトムアップ処理は、選択したグループの一般化を行い、ｋ−匿名性及びｌ−多様性判定をする。具体的には、ボトムアップ処理は、選択したグループについて、優先順位の高い（例えば、重要度が大きい）属性から順に一般化（１レベル高い一般化）を全ての属性について行い、ボトムアップ候補テーブルを作成する。
（３−１）ｋ−匿名性及びｌ−多様性を満たす場合、ボトムアップ処理は、ボトムアップ候補テーブルについて、各属性における同じ属性値の個数を算出し、評価ポイントを導出する。ボトムアップ処理は、評価ポイントを比較し、トップダウン処理において保存されたトップダウン候補テーブルの評価ポイントも含めて最大の評価ポイントを得た候補テーブルを匿名テーブルとして保存する。そして、ボトムアップ処理は、その匿名テーブルを再トップダウン処理に受け渡す。
【００７７】
（３−２）ｋ−匿名性及びｌ−多様性を満たさない場合、ボトムアップ処理は、ボトムアップ候補テーブルの中から、上記の保存した匿名テーブルよりも評価ポイントが大きく、かつ、ボトムアップ候補テーブルの中で評価ポイントが最も大きいものを選択し、再度ボトムアップ処理を行い同様の判定を行う。
【００７８】
（３−３）全てのボトムアップ候補テーブルがｋ−匿名性及びｌ−多様性を満たさず、かつ、現在保存されている匿名テーブルの評価ポイントを上回ることができない場合には、ボトムアップ処理は、保存している匿名テーブルを出力し、部分匿名化処理に渡して終了する。
なお、提供者が属性に対して一般化の限界レベルを設定していた場合には、ボトムアップ処理は、限界レベルを超えて一般化は行わない。
【００７９】
［再トップダウン処理］
再トップダウン処理は、トップダウン処理とほぼ同様の手順で行う。
再トップダウン処理は、ボトムアップ処理から渡された候補テーブルの詳細化を行う。詳細化を行ったトップダウン候補テーブルのうち、ｋ−匿名性及びｌ−多様性判定に合格したトップダウン候補テーブルについては、再トップダウン処理は、各属性の属性値の数を算出し、評価ポイントを導出する。再トップダウン処理は、トップダウン候補テーブルのうち、最も評価ポイントが大きいものを次の処理対象テーブルとする。そして、再トップダウン処理は、ｋ−匿名性及びｌ−多様性を満たさなくなるまで、ｋ−匿名性及びｌ−多様性を満たしたトップダウン候補テーブル及びその評価ポイントを保存しながら、処理を繰り返す。ｋ−匿名性及びｌ−多様性を満たさなくなった場合、再トップダウン処理は、ｋ−匿名性及びｌ−多様性を満たさなくなったトップダウン候補テーブルの中から最も評価ポイントが大きいものをボトムアップ処理に受け渡す。
なお、この場合も、評価ポイントが最も大きいトップダウン候補テーブルは、現在保存されている匿名テーブルの評価ポイントよりも評価ポイントが大きくなければならない。現在保存されている匿名テーブルの評価ポイントを上回ることができない場合には、再トップダウン処理は、保存している匿名テーブルを出力し、部分匿名化処理に渡して終了する。
【００８０】
トップダウン候補テーブルについて評価ポイントが一致した場合、再トップダウン処理は、優先順位が高い順から属性を見ていき、一般化のレベルが低い方のトップダウン候補テーブルを採用する。
【００８１】
［部分匿名化処理］
部分匿名化処理は、各属性の詳細化（トップダウン）を一律に行うのではなく、細かいクラスタに分割し、各クラスタがｋ−匿名性及びｌ−多様性を満たすように詳細化を行う。具体的には、部分匿名化処理は、準識別子から構成される属性値の組をグループ化し、クラスタとする。部分匿名化処理は、このクラスタ単位で、ｋ−匿名性及びｌ−多様性を満たすように詳細化処理を実行する。各属性が単純木で構成されている場合、互いのクラスタは独立集合であることが保証されるので、各クラスタが、ｋ−匿名性及びｌ−多様性を満たす限り、部分匿名化処理によって、全体のｋ−匿名性及びｌ−多様性が失われることは無い。すなわち、本プロセスでは、詳細化処理のみを行うので、部分匿名化処理の実行によって、評価ポイントが必ず増加することが保証される。したがって、部分匿名化処理は、評価ポイントの算出を省略することにより、高速化が可能である。また、本プロセスはオプションとし、提供者が望まない場合には処理を省略することも可能とする。部分匿名化処理は、最終的に得られたテーブルを匿名テーブル出力に渡して終了する。
【００８２】
［匿名性条件判定］
ｋ−匿名性及びｌ−多様性判定は、入力されたテーブルの全ての準識別子から構成される情報がｋ−匿名性を満たし、かつ、全ての重要情報から構成される情報がｌ−多様性もしくはｔ−近似性を満たすかどうか判定し、満たす場合はテーブルを匿名テーブル出力に受け渡す。満たさない場合、ｋ−匿名性及びｌ−多様性判定は、満たさなかったグループをフィードバック情報としてトップダウン処理、ボトムアップ処理、再トップダウン処理に返す。以下の表１に各判定条件を示す。
【００８３】
【表１】
0006437842.tif 000005
【００８４】
［匿名テーブル出力］
匿名テーブル出力は、受け取ったテーブルを成形して出力する。受け取ったテーブルはテーブルそのものではなく、各属性の一般化のレベルで与えられている場合がある。このときには、匿名テーブル出力は、元のテーブルも読み込み、各属性について与えられたレベルによる一般化を行った後出力する。
【００８５】
図８及び図９を参照して、上述のトップダウン処理及びボトムアップ処理について説明する。図８は、本発明の一実施形態に係るプライバシー保護装置１０によるトップダウン処理又はボトムアップ処理を説明するための図である。図８において、準識別子の属性の種類が（Ａ，Ｂ，Ｃ）であり、それぞれの属性が一般化又は詳細化のための木構造データ（図６参照）を有し、一般化の限界レベルがそれぞれＡがレベル２、Ｂがレベル３、Ｃがレベル１であるとする。
図８の例が示すように、ボトムアップ処理は、一般化の初期レベル（Ａ０，Ｂ０，Ｃ０）から属性ごとに１レベルの一般化を行って、属性Ａの一般化を行ったテーブル（Ａ１，Ｂ０，Ｃ０）と、属性Ｂの一般化を行ったテーブル（Ａ０，Ｂ１，Ｃ０）と、属性Ｃの一般化を行ったテーブル（Ａ０，Ｂ０，Ｃ１）とを作成する。次に、ボトムアップ処理は、図８の例が示すように、それぞれのテーブルから属性ごとに１レベルの一般化を行って、それぞれのテーブルを作成するが、一般化のレベルが属性ごとの限界レベルを超える場合、限界レベルを超える属性の一般化を行わない。図８は、このようなボトムアップ処理によって、テーブルが一般化される過程を示している。
トップダウン処理は、図８が示すように、ボトムアップ処理とは逆方向に、詳細化の初期レベル（Ａ２，Ｂ３，Ｃ１）から属性ごとに１レベルの詳細化を行って、属性Ａの詳細化を行ったテーブル（Ａ１，Ｂ３，Ｃ１）と、属性Ｂの詳細化を行ったテーブル（Ａ２，Ｂ２，Ｃ１）と、属性Ｃの詳細化を行ったテーブル（Ａ２，Ｂ３，Ｃ０）とを作成する。次に、トップダウン処理は、図８の例が示すように、それぞれのテーブルから属性ごとに１レベルの詳細化を行って、それぞれのテーブルを作成する（レベル０を超えて詳細化はできない）。図８は、このようなトップダウン処理によって、テーブルが詳細化される過程も示している。
そして、図８は、例えば、ボトムアップ処理の一般化の過程の３段階目のテーブルと、トップダウン処理の詳細化の過程の３段階目のテーブルとが、一般化の同じレベルの属性を有するテーブルになり、そのうちの一部がｋ−匿名性を満たす場合を示している。
匿名化処理は、このようなボトムアップ処理による一般化と、トップダウン処理による詳細化とを組み合わせて繰り返し、ｋ−匿名性及びｌ−多様性を満たす適切な匿名テーブルを作成する。
ボトムアップ処理とトップダウン処理とを組み合わせた場合の例を次に説明する。
【００８６】
図９は、本発明の一実施形態に係るプライバシー保護装置１０によるトップダウン処理とボトムアップ処理との繰り返しを説明するための図である。図９において、丸印は、図８のような過程において生成されるテーブルを示し、テーブルからテーブルへの矢印は、下方への矢印がトップダウン処理、上方への矢印がボトムアップ処理を示している。そして、図９の例は、図８のような過程において生成されるテーブルのうち、例えば、前処理が行われて（ｋ＋ｌ）−匿名性を満たすように一般化されたテーブル６０１からトップダウン処理を開始する例である。
図９が示すように、トップダウン処理は、前処理後のテーブル６０１に詳細化を行って、トップダウン候補テーブル６１１，６１２を作成する。
トップダウン処理は、作成したトップダウン候補テーブル６１１，６１２のうち、評価ポイントが最も大きいトップダウン候補テーブル６１１を処理対象として選択し、評価ポイントを保存しながら、詳細化と選択との処理を繰り返す。
そして、詳細化が行き過ぎて、ｋ−匿名性及びｌ−多様性を満たさなくなった場合、トップダウン処理は、ｋ−匿名性及びｌ−多様性を満たさなくなったトップダウン候補テーブル６３１，６３２の中から評価ポイントが最も大きいトップダウン候補テーブル６３２をボトムアップ処理に受け渡す。
ボトムアップ処理は、渡されたトップダウン候補テーブル６３２の一般化を行い、ボトムアップ候補テーブルを作成し、作成したボトムアップ候補テーブルのうち、評価ポイントが最も大きいボトムアップ候補テーブルを処理対象として選択し、評価ポイントを保存しながら、一般化と選択との処理を繰り返す。
そして、ｋ−匿名性及びｌ−多様性を満たすようになった場合、ボトムアップ処理は、トップダウン処理において保存されたトップダウン候補テーブルの評価ポイントも含めて最大の評価ポイントを得たボトムアップ候補テーブル６４１を再トップダウン処理に渡す。
このような処理が繰り返され、ｋ−匿名性及びｌ−多様性を満たす候補テーブル（例えば、候補テーブル６５１）の評価ポイントが、保存されている候補テーブル（例えば、ボトムアップ候補テーブル６４１）の評価ポイントを上回ることができなくなった場合、保存されている、評価ポイントが最高の候補テーブル（例えば、ボトムアップ候補テーブル６４１）は、匿名テーブルとされ、部分匿名化処理が行われて、最適な匿名化したテーブルとして出力テーブル７０１とされる。
【００８７】
図１０は、本発明の一実施形態に係るプライバシー保護装置１０の匿名テーブルの作成処理の例を示すフローチャートである。
【００８８】
ステップＳ１０１において、ＣＰＵは、設定処理をする。より具体的には、ＣＰＵは、属性について、削除される識別子と、準識別子と、重要情報とのいずれかを設定し、設定した準識別子ごとに、一般化を行うための限度を設定し、準識別子ごとに重要度（優先順位）を設定する。
【００８９】
ステップＳ１０２において、ＣＰＵは、前処理をする。より具体的には、ＣＰＵは、テーブルについて、属性単体で（ｋ＋ｌ）−匿名性を満たすように一般化する。
【００９０】
ステップＳ１０３において、ＣＰＵは、匿名化処理（図１１から図１３で示される処理）を実行する。
【００９１】
ステップＳ１０４において、ＣＰＵは、部分匿名化処理をする。より具体的には、ＣＰＵは、準識別子の属性値の組み合わせに基づいてクラスタを形成し、形成したクラスタごとに、ｋ−匿名性及びｌ−多様性を満たすように準識別子の一般化を行って、匿名化を行う。
【００９２】
ステップＳ１０５において、ＣＰＵは、匿名化されたテーブルを成形して出力する。その後、ＣＰＵは、処理を終了する。
【００９３】
図１１は、本発明の一実施形態に係るプライバシー保護装置１０の匿名化処理の例を示すフローチャートである。
【００９４】
ステップＳ３０１において、ＣＰＵは、準識別子の属性値が全て同じレコードをグループ化する。
【００９５】
ステップＳ３０２において、ＣＰＵは、１つのグループを処理対象とする。
【００９６】
ステップＳ３０３において、ＣＰＵは、トップダウン処理（図１２で示される処理）をする。
【００９７】
ステップＳ３０４において、ＣＰＵは、ボトムアップ処理へ渡すべきトップダウン候補テーブルが有るか否かを判断する。この判断がＹＥＳの場合、ＣＰＵは、処理をステップＳ３０５に移し、この判断がＮＯの場合、ＣＰＵは、処理をステップＳ３０７に移す。
【００９８】
ステップＳ３０５において、ＣＰＵは、ボトムアップ処理（図１４で示される処理）をする。
【００９９】
ステップＳ３０６において、ＣＰＵは、トップダウン処理へ渡すべきボトムアップ候補テーブルが有るか否かを判断する。この判断がＹＥＳの場合、ＣＰＵは、処理をステップ３０３に移し、この判断がＮＯの場合、ＣＰＵは、処理をステップＳ３０７に移す。
【０１００】
ステップＳ３０７において、ＣＰＵは、トップダウン処理又はボトムアップ処理によって出力されたグループごとの匿名テーブルを、１つの匿名テーブルにする。
【０１０１】
ステップＳ３０８において、ＣＰＵは、全てのグループについて終了か否かを判断する。この判断がＹＥＳの場合、ＣＰＵは、処理をステップＳ１０４に戻し、この判断がＮＯの場合、ＣＰＵは、処理をステップＳ３０２に移す。
【０１０２】
図１２及び図１３は、本発明の一実施形態に係るプライバシー保護装置１０のトップダウン処理の例を示すフローチャートである。
【０１０３】
ステップＳ４０１において、ＣＰＵは、詳細化する属性の順番を求める。
【０１０４】
ステップＳ４０２において、ＣＰＵは、１つの属性を処理対象としてセットする。
【０１０５】
ステップＳ４０３において、ＣＰＵは、直前の属性による候補テーブルよりも評価ポイントが上回る可能性があるか否かを判断する。この判断がＹＥＳの場合、ＣＰＵは、処理をステップＳ４０４に移し、この判断がＮＯの場合、ＣＰＵは、処理をステップＳ４０７に移す。
【０１０６】
ステップＳ４０４において、ＣＰＵは、各属性ごとにトップダウンによる詳細化を１段階行い、トップダウン候補テーブルを作成する。
【０１０７】
ステップＳ４０５において、ＣＰＵは、ｋ−匿名性及びｌ−多様性を満たすか否かを判断する。この判断がＹＥＳの場合、ＣＰＵは、処理をステップＳ４０６に移し、この判断がＮＯの場合、ＣＰＵは、処理をステップＳ４０７に移す。
【０１０８】
ステップＳ４０６において、ＣＰＵは、候補テーブルの評価ポイントを算出し、トップダウン候補テーブルと共に保存する。
【０１０９】
ステップＳ４０７において、ＣＰＵは、属性について終了か否かを判断する。この判断がＹＥＳの場合、ＣＰＵは、処理をステップ４０８に移し、この判断がＮＯの場合、ＣＰＵは、処理をステップＳ４０２に移す。
【０１１０】
ステップＳ４０８において、ＣＰＵは、ｋ−匿名性及びｌ−多様性を満たすトップダウン候補テーブルがあるか否かを判断する。この判断がＹＥＳの場合、ＣＰＵは、処理をステップ４０９に移し、この判断がＮＯの場合、ＣＰＵは、処理をステップＳ４１０に移す。
【０１１１】
ステップＳ４０９において、ＣＰＵは、算出した評価ポイントが最大のテーブルを抽出する。その後、ＣＰＵは、処理をステップＳ４０１に移す。
【０１１２】
ステップＳ４１０において、ＣＰＵは、再トップダウン処理か否かを判断する。この判断がＹＥＳの場合、ＣＰＵは、処理をステップ４１１に移し、この判断がＮＯの場合、ＣＰＵは、処理をステップＳ４１３に移す。
【０１１３】
ステップＳ４１１において、ＣＰＵは、保存している匿名テーブルの評価ポイントを上回ることができるか否かを判断する。この判断がＹＥＳの場合、ＣＰＵは、処理をステップ４１３に移し、この判断がＮＯの場合、ＣＰＵは、処理をステップＳ４１２に移す。
【０１１４】
ステップＳ４１２において、ＣＰＵは、保存している匿名テーブルを出力する。その後、ＣＰＵは、処理をステップＳ３０４に戻す。
【０１１５】
ステップＳ４１３において、ＣＰＵは、満たさない候補テーブルの中で評価ポイントが最大のトップダウン候補テーブルを抽出してボトムアップ処理へ渡す。その後、ＣＰＵは、処理をステップＳ３０４に戻す。
【０１１６】
図１４は、本発明の一実施形態に係るプライバシー保護装置１０のボトムアップ処理の例を示すフローチャートである。
【０１１７】
ステップＳ５０１において、ＣＰＵは、トップダウン処理から出力されたテーブルを対象とする。
【０１１８】
ステップＳ５０２において、ＣＰＵは、各属性ごとにボトムアップによる一般化を１段階行い、ボトムアップ候補テーブルを作成する。
【０１１９】
ステップＳ５０３において、ＣＰＵは、ボトムアップ候補テーブルの評価ポイントを算出する。
【０１２０】
ステップＳ５０４において、ＣＰＵは、ボトムアップ候補テーブルのうちｋ−匿名性及びｌ−多様性を満たすボトムアップ候補テーブルがあるか否かを判断する。この判断がＹＥＳの場合、ＣＰＵは、処理をステップＳ５０５に移し、この判断がＮＯの場合、ＣＰＵは、処理をステップＳ５０７に移す。
【０１２１】
ステップＳ５０５において、ＣＰＵは、トップダウン候補テーブルを含めて、評価ポイントが最大のテーブルを匿名テーブルとして抽出し、保存する。
【０１２２】
ステップＳ５０６において、ＣＰＵは、匿名テーブルをトップダウン処理に渡す。その後、ＣＰＵは、処理をステップＳ３０６に戻す。
【０１２３】
ステップＳ５０７において、ＣＰＵは、保存している匿名テーブルの評価ポイントを上回ることができるか否かを判断する。この判断がＹＥＳの場合、ＣＰＵは、処理をステップＳ５０９に移し、この判断がＮＯの場合、ＣＰＵは、処理をステップＳ５０８に移す。
【０１２４】
ステップＳ５０８において、ＣＰＵは、保存している匿名テーブルを出力する。その後、ＣＰＵは、処理をステップＳ３０６に戻す。
【０１２５】
ステップＳ５０９において、ＣＰＵは、保存している匿名テーブルよりも評価ポイントが大きく、かつ、ボトムアップ候補テーブルの中で評価ポイントが最も大きい候補テーブルを抽出する。その後、ＣＰＵは、処理をステップＳ５０２に移す。
【０１２６】
本実施形態によれば、プライバシー保護装置１０は、互いの類似度がいずれも閾値未満となる匿名テーブルを選択して提供することにより、利用者ごとの匿名テーブル間の差異が顕著になり、利用者の識別性が増すので、提供した匿名テーブルの一部が漏洩した場合にも、他の匿名テーブルと識別可能な匿名テーブルを提供することができる。
さらに、プライバシー保護装置１０は、定量化された類似度を計測することにより、識別性の高い匿名テーブル同士を容易に見つけることができる。
さらに、プライバシー保護装置１０は、提供した匿名テーブルの特徴量（例えば、ハッシュ値）を利用者に対応付けて記憶させることにより、漏洩した匿名テーブルの特定が容易になる。
さらに、プライバシー保護装置１０は、提供した匿名テーブルを利用者に対応付けて記憶させることにより、匿名テーブルの一部が漏洩した場合であっても、テーブル記憶手段３１により漏洩データと提供した匿名テーブルとの照合ができるので、漏洩した匿名テーブルの利用者を特定することができる。
さらに、プライバシー保護装置１０は、入力されたテーブルの利用者を自動的に特定することができる。
さらに、プライバシー保護装置１０は、類似度の最も低い匿名テーブルの組み合わせから順に所定の個数の匿名テーブルを選択することにより、提供した匿名テーブルのより高い識別性を確保することができる。
【０１２７】
以上、本発明の実施形態について説明したが、本発明は上述した実施形態に限るものではない。また、本発明の実施形態に記載された効果は、本発明から生じる最も好適な効果を列挙したに過ぎず、本発明による効果は、本発明の実施形態に記載されたものに限定されるものではない。
【０１２８】
例えば、選択手段１３において、一の匿名テーブルと他の匿名テーブルとの全ての組み合わせにおいて、最高の類似度が閾値以上である場合に、最高の類似度の組み合わせにおける一方の匿名テーブルを削除するとしたが、これに限られない。選択手段１３は、最初に匿名テーブルの全ての組み合わせを作成し、類似度が閾値以上である組み合わせのうち、閾値以上の組み合わせに出現する度数が多い順に匿名テーブルを削除するとしてもよい。閾値以上の組み合わせを削除する効率がよい場合がある。
【０１２９】
プライバシー保護装置１０による一連の処理は、ソフトウェアにより行うこともできる。一連の処理をソフトウェアによって行う場合には、そのソフトウェアを構成するプログラムが、汎用のコンピュータ等にインストールされる。また、当該プログラムは、コンピュータ読み取り可能な記録媒体（例えば、ＣＤ−ＲＯＭのようなリムーバブルメディア等）に記録されてユーザに配布されてもよいし、ネットワークを介してユーザのコンピュータにダウンロードされることにより配布されてもよい。
【符号の説明】
【０１３０】
１０    プライバシー保護装置
１１    匿名テーブル生成手段
１２    類似度計測手段
１３    選択手段
１４    特徴量算出手段
１５    テーブル記憶制御手段
１６    特定手段
３１    テーブル記憶手段
【図１】
0006437842.tif 000006
【図２】
0006437842.tif 000007
【図３】
0006437842.tif 000008
【図４】
0006437842.tif 000009
【図５】
0006437842.tif 000010
【図６】
0006437842.tif 000011
【図７】
0006437842.tif 000012
【図８】
0006437842.tif 000013
【図９】
0006437842.tif 000014
【図１０】
0006437842.tif 000015
【図１１】
0006437842.tif 000016
【図１２】
0006437842.tif 000017
【図１３】
0006437842.tif 000018
【図１４】
0006437842.tif 000019