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