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