(57)【要約】      （修正有）【課題】匿名性を高精度で評価できる匿名性評価装置、匿名性評価方法および匿名性評価プログラムを提供する。【解決手段】匿名性評価装置１００の受付部１３１は、複数の属性が与えられたエントリの集合であるパーソナルデータの入力を受け付ける。設定部１３２は、属性の組み合わせごとに設定された観察の容易さを表す観察容易性の最大値を、受け付けたパーソナルデータのエントリごとの個人を特定できる可能性を示す特定性の最大特定性と設定する。設定部はさらに、観察容易性の最小値を特定性の最小特定性と設定する。更新部１３３は、観察容易性が高い属性の組み合わせ順に、エントリごとに該エントリの匿名性を示すｋ−匿名性を求める。更新部はまた、属性の組み合わせにおける観察容易性に基づいて、エントリごとの最大特定性を更新し、属性の組み合わせにおけるｋ−匿名性に基づいて、エントリごとの最小特定性を更新する。【選択図】図１
2019028794.tif 000002
【特許請求の範囲】
【請求項１】
複数の属性が与えられたエントリの集合であるパーソナルデータの入力を受け付ける受付部と、
前記属性の組み合わせごとに設定された観察の容易さを表す観察容易性の最大値を、受け付けた前記パーソナルデータの前記エントリごとの個人を特定できる可能性を示す特定性の最大特定性と設定し、前記観察容易性の最小値を前記特定性の最小特定性と設定する設定部と、
前記観察容易性が高い前記属性の組み合わせ順に、前記エントリごとに該エントリの匿名性を示すｋ−匿名性を求め、前記属性の組み合わせにおける前記観察容易性に基づいて、前記エントリごとの前記最大特定性を更新し、前記属性の組み合わせにおける前記ｋ−匿名性に基づいて、前記エントリごとの前記最小特定性を更新する更新部と、
を有することを特徴とする匿名性評価装置。
【請求項２】
前記設定部は、前記属性の全属性の組み合わせにおける前記各エントリのうち、前記ｋ−匿名性が２以上である前記エントリについて、前記観察容易性の最小値と、前記属性の全属性の組み合わせにおける前記ｋ−匿名性とに基づいて、前記最小特定性を設定する、
ことを特徴とする請求項１に記載の匿名性評価装置。
【請求項３】
前記更新部は、前記属性の組み合わせにおける前記観察容易性と、前記エントリごとの前記ｋ−匿名性とに基づいて前記特定性を算出し、算出した前記特定性が前記最小特定性よりも大きい値である場合に、算出した前記特定性を用いて前記エントリごとの前記最小特定性を更新する、
ことを特徴とする請求項１または２に記載の匿名性評価装置。
【請求項４】
前記観察容易性が高い前記属性の組み合わせ順は、前記属性の数が少ない組み合わせほど、前記観察容易性が高いとする順番である、
ことを特徴とする請求項１〜３のいずれか１つに記載の匿名性評価装置。
【請求項５】
前記更新部は、前記各エントリについて、前記最大特定性と前記最小特定性とが同じ値になった場合に、該値を該エントリにおける前記特定性として決定する、
ことを特徴とする請求項１〜４のいずれか１つに記載の匿名性評価装置。
【請求項６】
さらに、前記エントリごとに、更新された前記最大特定性および前記最小特定性を出力する出力制御部を有する、
ことを特徴とする請求項１〜５のいずれか１つに記載の匿名性評価装置。
【請求項７】
前記受付部は、処理の中止要求を受け付け、
前記更新部は、前記各エントリについて、前記最大特定性と前記最小特定性とが同じ値になった場合に、該値を該エントリにおける前記特定性として決定し、
前記出力制御部は、前記中止要求が受け付けられた時点における、前記各エントリの前記最大特定性および前記最小特定性、または、決定された前記特定性を出力する、
ことを特徴とする請求項６に記載の匿名性評価装置。
【請求項８】
複数の属性が与えられたエントリの集合であるパーソナルデータの入力を受け付け、
前記属性の組み合わせごとに設定された観察の容易さを表す観察容易性の最大値を、受け付けた前記パーソナルデータの前記エントリごとの個人を特定できる可能性を示す特定性の最大特定性と設定し、前記観察容易性の最小値を前記特定性の最小特定性と設定し、
前記観察容易性が高い前記属性の組み合わせ順に、前記エントリごとに該エントリの匿名性を示すｋ−匿名性を求め、前記属性の組み合わせにおける前記観察容易性に基づいて、前記エントリごとの前記最大特定性を更新し、前記属性の組み合わせにおける前記ｋ−匿名性に基づいて、前記エントリごとの前記最小特定性を更新する、
処理をコンピュータが実行することを特徴とする匿名性評価方法。
【請求項９】
複数の属性が与えられたエントリの集合であるパーソナルデータの入力を受け付け、
前記属性の組み合わせごとに設定された観察の容易さを表す観察容易性の最大値を、受け付けた前記パーソナルデータの前記エントリごとの個人を特定できる可能性を示す特定性の最大特定性と設定し、前記観察容易性の最小値を前記特定性の最小特定性と設定し、
前記観察容易性が高い前記属性の組み合わせ順に、前記エントリごとに該エントリの匿名性を示すｋ−匿名性を求め、前記属性の組み合わせにおける前記観察容易性に基づいて、前記エントリごとの前記最大特定性を更新し、前記属性の組み合わせにおける前記ｋ−匿名性に基づいて、前記エントリごとの前記最小特定性を更新する、
処理をコンピュータに実行させることを特徴とする匿名性評価プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、匿名性評価装置、匿名性評価方法および匿名性評価プログラムに関する。
【背景技術】
【０００２】
各行に個人の情報を格納したパーソナルデータを、プライバシーに配慮しつつ多くの情報が残るように変換したい要望がある。このようなパーソナルデータの変換は匿名化と呼ばれる。匿名化されたパーソナルデータは、例えば、プライバシーに配慮しつつ第三者に販売されることで、利活用範囲を広げることができる。ところが、匿名性と有用性とは、トレードオフの関係であるので、価値の高いパーソナルデータに匿名化するには、不必要に匿名性を高めることを防ぐことが求められる。このため、匿名性を出来るだけ正確に把握することが求められる。匿名性を把握する手法としては、例えば、匿名性を行単位で定量化するｋ−匿名性と呼ばれる手法がある。ｋ−匿名性は、各行の度数（度数分布）を求め、度数（ｋ値）が大きいほど匿名性が高いとする手法である。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】国際公開第２０１６／０６７５６６号
【特許文献２】特開２０１１−２０９８００号公報
【特許文献３】国際公開第２０１１／１４２３２７号
【非特許文献】
【０００４】
【非特許文献１】Latanya  Sweeney.  k-anonymity:  a  model  for  protecting  privacy.  Int.J.Uncertain.  Fuzziness  Knowl.-Based  Syst.,  Vol.10,  October  2002,  pp.557-570.
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、ｋ−匿名性を用いる場合、準識別子（以下、ＱＩともいう。）として設定した属性（列）の集合について、各行の度数（ｋ値）を求めることで、匿名性を定量化するが、適切なＱＩを決定することは難しい。これに対し、例えば、全ての属性をＱＩとすると、匿名性の度数（ｋ値）の精度が荒くなり、匿名性の評価を高精度で行うことが困難である。
【０００６】
一つの側面では、匿名性を高精度で評価できる匿名性評価装置、匿名性評価方法および匿名性評価プログラムを提供することにある。
【課題を解決するための手段】
【０００７】
一つの態様では、匿名性評価装置は、受付部と、設定部と、更新部とを有する。受付部は、複数の属性が与えられたエントリの集合であるパーソナルデータの入力を受け付ける。設定部は、前記属性の組み合わせごとに設定された観察の容易さを表す観察容易性の最大値を、受け付けた前記パーソナルデータの前記エントリごとの個人を特定できる可能性を示す特定性の最大特定性と設定する。設定部は、前記観察容易性の最小値を前記特定性の最小特定性と設定する。更新部は、前記観察容易性が高い前記属性の組み合わせ順に、前記エントリごとに該エントリの匿名性を示すｋ−匿名性を求める。更新部は、前記属性の組み合わせにおける前記観察容易性に基づいて、前記エントリごとの前記最大特定性を更新する。更新部は、前記属性の組み合わせにおける前記ｋ−匿名性に基づいて、前記エントリごとの前記最小特定性を更新する。
【発明の効果】
【０００８】
匿名性を高精度で評価できる。
【図面の簡単な説明】
【０００９】
【図１】図１は、実施例の匿名性評価装置の構成の一例を示すブロック図である。
【図２】図２は、パーソナルデータの一例を示す図である。
【図３】図３は、ｋ−匿名性の一例を示す図である。
【図４】図４は、ｋ−匿名性の他の一例を示す図である。
【図５】図５は、属性組み合わせを用いた観察容易性に基づく特定性の算出の一例を示す図である。
【図６】図６は、ｋ≧２の行をｋ＝１の行よりも特定性を高くしたい場合の一例を示す図である。
【図７】図７は、観察容易性記憶部の一例を示す図である。
【図８】図８は、特定性範囲リスト記憶部の一例を示す図である。
【図９】図９は、最小特定性および最大特定性の設定の一例を示す図である。
【図１０】図１０は、特定性範囲リストの更新の一例を示す図である。
【図１１】図１１は、特定性範囲リストの更新の一例を示す図である。
【図１２】図１２は、特定性範囲リストの更新の一例を示す図である。
【図１３】図１３は、特定性範囲リストの更新の一例を示す図である。
【図１４】図１４は、特定性範囲リストの更新の一例を示す図である。
【図１５】図１５は、特定性範囲リストの更新の一例を示す図である。
【図１６】図１６は、特定性範囲リストの更新の一例を示す図である。
【図１７】図１７は、処理の途中における特定性の比較の一例を示す図である。
【図１８】図１８は、処理が完了した場合における特定性の比較の一例を示す図である。
【図１９】図１９は、実施例の匿名性評価処理の一例を示すフローチャートである。
【図２０】図２０は、匿名性評価プログラムを実行するコンピュータの一例を示す図である。
【発明を実施するための形態】
【００１０】
以下、図面に基づいて、本願の開示する匿名性評価装置、匿名性評価方法および匿名性評価プログラムの実施例を詳細に説明する。なお、本実施例により、開示技術が限定されるものではない。また、以下の実施例は、矛盾しない範囲で適宜組みあわせてもよい。
【実施例】
【００１１】
図１は、実施例の匿名性評価装置の構成の一例を示すブロック図である。図１に示す匿名性評価装置１００は、複数の属性が与えられたエントリの集合であるパーソナルデータの入力を受け付ける。匿名性評価装置１００は、属性の組み合わせごとに設定された観察の容易さを表す観察容易性の最大値を、受け付けたパーソナルデータのエントリごとの個人を特定できる可能性を示す特定性の最大特定性と設定する。また、匿名性評価装置１００は、観察容易性の最小値を特定性の最小特定性と設定する。匿名性評価装置１００は、観察容易性が高い属性の組み合わせ順に、エントリごとに該エントリの匿名性を示すｋ−匿名性を求める。匿名性評価装置１００は、属性の組み合わせにおける観察容易性に基づいて、エントリごとの最大特定性を更新する。また、匿名性評価装置１００は、属性の組み合わせにおけるｋ−匿名性に基づいて、エントリごとの最小特定性を更新する。これにより、匿名性評価装置１００は、匿名性を高精度で評価できる。
【００１２】
ここで、図２から図６を用いて、パーソナルデータの匿名性および特定性について説明する。図２は、パーソナルデータの一例を示す図である。図２に示すデータ２０は、パーソナルデータの一例である。データ２０は、例えば、各行に個人の情報を格納した２次元表データである。データ２０は、例えば、属性（列）として、「年齢」、「性別」、「職業」、「学歴」、「年収区分」といった項目を有する。なお、「行番号」は、説明のために設けたものであり、データ２０には含まれないものとする。なお、匿名性評価装置１００は、データ２０の入力を受け付けた際に、行番号を付与してもよい。
【００１３】
データ２０には、特定の個人を識別することができる記述はないが、匿名性が完全であるとはいえない。例えば、攻撃者は、属性｛年齢，性別，職業，学歴｝＝｛８０，女，会社員，高卒｝という特定の個人Ｘさんを知っているとする。また、攻撃者は、例えば属性の希少さに基づいて、データ２０にＸさんのデータが含まれていることを知っている場合、Ｘさんのデータが行番号「５」のデータであると特定できる。すなわち、データ２０の行番号「５」は、Ｘさんのデータであると特定できるため、匿名性が破られていることになる。そうすると、攻撃者は、行番号「５」を参照することで、Ｘさんの属性｛年収区分｝＝｛高｝について新たに知ることができる。Ｘさんが年収区分を攻撃者に知られたくない場合には、行番号「５」が特定できることはプライバシーの問題となる。すなわち、行番号「５」のデータは、プライバシー問題になりうる程度には匿名性が低いといえる。
【００１４】
一方、データ２０の行番号「１」，「２」は、同じデータであり、特定の個人を識別することはできず、行番号「５」のデータより匿名性が高いと考えられる。このような場合に、匿名性を行単位で定量化することで、より適切な匿名化とすることが考えられる。例えば、データ２０の行番号「１」，「２」は、既に匿名性が高いのでそのままとし、行番号「５」は、さらに匿名化するといったことが考えられる。
【００１５】
図３は、ｋ−匿名性の一例を示す図である。図３の例は、データ２０について、匿名性を行単位で定量化する１つの方式であるｋ−匿名性を算出したものである。ｋ−匿名性を用いる場合には、準識別子（ＱＩ）を属性｛年齢，性別，職業｝に指定した場合、行番号「１」，「２」および行番号「３」，「４」は、いずれも度数（ｋ値）が「２」（ｋ＝２）となり、行番号「５」は、度数（ｋ値）が「１」（ｋ＝１）となる。なお、度数（ｋ値）が「２」とは、同一行数が「２」であることを示し、度数（ｋ値）が「１」とは、同一行数が「１」であることを示す。このため、行番号「５」の匿名性は、他の行よりも低いこととなる。なお、以下の説明では、準識別子の指定について、ＱＩ＝｛年齢，性別，職業｝といった形式で表す場合がある。
【００１６】
また、ｋ−匿名性を用いる場合には、一般に観察されやすい属性を準識別子に指定することが求められるが、各属性を観察されやすいか否かの２つに分類することは難しい。これに対して、全属性を準識別子とする場合には、各属性を分類せずに済むが、得られたｋ−匿名性は指標としての精度が荒くなってしまう。
【００１７】
図４は、ｋ−匿名性の他の一例を示す図である。図４には、データ２０について、ＱＩ＝全属性とした場合の各行の度数（ｋ値）を示す。図４の例では、行番号「３」，「４」，「５」が、いずれも度数はｋ＝１となり同じ値に定量化されている。ところが、行番号「３」，「４」と、行番号「５」とでは、識別するための属性が異なるため、本来であれば、行番号「３」，「４」と、行番号「５」とは、度数が異なる場合がある。なお、行番号「３」，「４」を識別するには、属性｛学歴｝を用いればよく、行番号「５」を識別するには、属性｛年齢，職業｝を用いればよい。また、外部からの観察されやすさについては、属性｛学歴｝と、属性｛年齢，職業｝とを比較すると、属性｛年齢，職業｝の方が観察されやすい。従って、匿名性は、例えば、行番号「３」，「４」よりも行番号「５」の方が低くなるとした方が好ましい。
【００１８】
なお、以下の説明では、１つまたは複数の属性の組み合わせを属性組み合わせと表現し、属性組み合わせの観察されやすさを観察容易性という。また、以下の説明では、匿名性を定量化するために、匿名性と逆の関係である特定性を定量化する。すなわち、匿名性は、求めた特定性の大小を反転することで求めることができる。つまり、特定性が高いとは匿名性が低いことを表し、特定性が低いとは匿名性が高いことを表す。
【００１９】
図５は、属性組み合わせを用いた観察容易性に基づく特定性の算出の一例を示す図である。図５の例は、属性組み合わせを変更しながら各行の度数（ｋ値）を繰り返し求め、ｋ＝１となる行を探索し、そのときのＱＩの観察容易性を用いて特定性を定量化する場合である。なお、特定性は、例えば「０」〜「１」の範囲で定量化するものとする。すなわち、特定性は、「１」に近いほど特定されやすいことを示す。つまり、特定性の値域は、区間［０，１］の範囲で表すことができる。
【００２０】
図５の表２１は、例えば、予め設定した属性組み合わせごとの観察容易性を、観察容易性が高い順に並べたものである。なお、表２１の「組み合わせ番号」は、観察容易性が高い順に対応している。また、観察容易性が高い順とは、機微性の低い属性ほど高く、集合サイズが小さい属性組み合わせほど高くしたものである。なお、機微性は、ユーザによって定義され、例えば、全属性＝｛年齢，性別，職業，学歴，年収区分｝とした場合、機微性は｛年齢：１，性別：１，職業：１，学歴：２，年収区分：３｝とすることができる。ここで、機微性は、数字が大きいほど機微性が高いことを示す。
【００２１】
表２１の観察容易性を用いて、データ２０の各行の度数（ｋ値）を求めると、組み合わせ番号「１」〜「４」では、ｋ＝１とならず、組み合わせ番号「５」のＱＩ＝｛年齢，職業｝でデータ２０の行番号「５」がｋ＝１となる。従って、行番号「５」の特定性は、ＱＩ＝｛年齢，職業｝の観察容易性である「０．９」と算出できる。すなわち、データ２０の行番号「５」は、特定性が「０．９」であると定量化できる。また、残りの行については、組み合わせ番号「６」以降について同様の処理を実行し、それぞれ特定性を定量化することができる。
【００２２】
しかしながら、図５に示す特定性の定量化では、データ２０の各行について、度数（ｋ値）がｋ＝１となるＱＩで探索されるまで定量化されないため、処理の途中で特定性を出力したい場合、定量化されていない行が存在する。図５に示す特定性の定量化は、計算量が多いため、例えば、締め切り日時が存在する場合等、処理の途中で特定性を出力したい場合に未計算の行が発生する。なお、計算量は、最も多い場合には、属性数の指数関数で表されることになる。この場合には、処理が途中であるので、度数（ｋ値）がｋ＝１となる属性組み合わせが見つかっていない行についての匿名性の情報が得られない。
【００２３】
例えば、特定性をリスクとして金額に変換する場合を考える。この例では、まず、最後まで計算できれば５万円の行が１行と、５００円の行が１０００行との合計５５万円のリスクがあるとする。このとき、５万円の行の計算が終了し、５００円の行の計算を行う前に処理を打ち切ると、リスクが正しい計算結果の１／１１である５万円と低い値となる。また、リスクの上限値も不明のままとなる。
【００２４】
また、図５に示す特定性の定量化では、度数（ｋ値）がｋ≧２となる行であっても、属性によっては特定性が高くなる場合に対応することが難しい。図６は、ｋ≧２の行をｋ＝１の行よりも特定性を高くしたい場合の一例を示す図である。データ２０の行番号「３」は、図５に示す表２１より、ＱＩ＝｛学歴｝の観察容易性は「０．４」、ＱＩ＝｛職業｝の観察容易性は「１」である。また、データ２０の行番号「３」は、ＱＩ＝｛学歴｝とすると、枠２２に示すようにｋ＝１となり、この場合の特定性は「０．４」となる。また、データ２０の行番号「３」は、ＱＩ＝｛職業｝とすると、枠２３に示すように、行番号「３」，「４」がともに「無職」であるのでｋ＝２となる。ここで、例えば、ｋ＝２の行の特定性は、０．５倍に補正するものとすると、行番号「３」の特定性は、１×０．５＝０．５となる。ところが、図５に示す特定性の定量化では、ｋ＝２の場合に特定性を算出しないので、行番号「３」について、ＱＩ＝｛学歴｝（ｋ＝１）の特定性「０．４」よりもＱＩ＝｛職業｝（ｋ＝２）の特定性「０．５」の方が、特定性が高いと出力することが難しい。すなわち、行番号「３」は、学歴で一意に特定できる場合より、職業で二意に特定できる場合の方が、特定性が高いと出力するべきであるが、図５に示す特定性の定量化では、そうならないこととなる。
【００２５】
本実施例では、このような処理の途中における特定性の出力、および、ｋ≧２の場合における特定性の出力に対応することで、処理が途中で中断された場合やｋ≧２の場合においても匿名性を高精度で評価することができる。
【００２６】
次に、図１の説明に戻って、匿名性評価装置１００の構成について説明する。図１に示すように、匿名性評価装置１００は、入力部１１０と、表示部１１１と、操作部１１２と、記憶部１２０と、制御部１３０とを有する。なお、匿名性評価装置１００は、図１に示す機能部以外にも既知のコンピュータが有する各種の機能部、例えば各種の入力デバイスや音声出力デバイス等の機能部を有することとしてもかまわない。匿名性評価装置１００の一例としては、据置型のパーソナルコンピュータを採用できる。匿名性評価装置１００には、上記の据置型のパーソナルコンピュータのみならず、可搬型のパーソナルコンピュータを匿名性評価装置１００として採用することもできる。また、匿名性評価装置１００は、可搬型の端末としては、上記の可搬型のパーソナルコンピュータの他にも、例えば、タブレット端末を採用することもできる。
【００２７】
入力部１１０は、例えば、光学ディスク、ＵＳＢ（Universal  Serial  Bus）メモリ、ＳＤメモリカード等の外部記憶媒体に対する媒体アクセス装置等によって実現される。入力部１１０は、外部記憶媒体に記憶されたパーソナルデータおよび観察容易性情報を読み取って、読み取ったパーソナルデータおよび観察容易性情報を制御部１３０に出力する。
【００２８】
表示部１１１は、各種情報を表示するための表示デバイスである。表示部１１１は、例えば、表示デバイスとして液晶ディスプレイ等によって実現される。表示部１１１は、制御部１３０から入力された出力画面等の各種画面を表示する。
【００２９】
操作部１１２は、匿名性評価装置１００のユーザから各種操作を受け付ける入力デバイスである。操作部１１２は、例えば、入力デバイスとして、キーボードやマウス等によって実現される。操作部１１２は、ユーザによって入力された操作を操作情報として制御部１３０に出力する。なお、操作部１１２は、入力デバイスとして、タッチパネル等によって実現されるようにしてもよく、表示部１１１の表示デバイスと、操作部１１２の入力デバイスとは、一体化されるようにしてもよい。
【００３０】
記憶部１２０は、例えば、ＲＡＭ（Random  Access  Memory）、フラッシュメモリ等の半導体メモリ素子、ハードディスクや光ディスク等の記憶装置によって実現される。記憶部１２０は、パーソナルデータ記憶部１２１と、観察容易性記憶部１２２と、特定性範囲リスト記憶部１２３とを有する。また、記憶部１２０は、制御部１３０での処理に用いられる情報を記憶する。
【００３１】
パーソナルデータ記憶部１２１は、匿名性評価の対象となるパーソナルデータを記憶する。パーソナルデータは、複数の属性が与えられたエントリの集合である。パーソナルデータ記憶部１２１は、例えば、図２に示すデータ２０のように、「行番号」、「年齢」、「性別」、「職業」、「学歴」、「年収区分」といった項目を有する。なお、「行番号」は、元のパーソナルデータにない場合には付加してもよいし、「行番号」が識別可能なデータ構造であれば、項目としてはなくてもよい。また、パーソナルデータ記憶部１２１は、他の属性に対応する項目を有してもよい。パーソナルデータ記憶部１２１は、例えば、エントリごとに１レコードとして記憶する。
【００３２】
「行番号」は、パーソナルデータのエントリの番号、つまりレコード番号を示す情報である。「年齢」は、パーソナルデータのエントリに対応する人物の年齢を示す情報である。「性別」は、パーソナルデータのエントリに対応する人物の性別を示す情報である。「職業」は、パーソナルデータのエントリに対応する人物の職業を示す情報である。「学歴」は、パーソナルデータのエントリに対応する人物の学歴を示す情報である。「年収区分」は、パーソナルデータのエントリに対応する人物の年収区分を示す情報である。
【００３３】
図１の説明に戻って、観察容易性記憶部１２２は、属性組み合わせと観察容易性とを対応付けて記憶する。図７は、観察容易性記憶部の一例を示す図である。図７に示すように、観察容易性記憶部１２２は、「組み合わせ番号」、「属性組み合わせ」、「観察容易性」といった項目を有する。観察容易性記憶部１２２は、例えば、属性組み合わせごとに１レコードとして記憶する。
【００３４】
「組み合わせ番号」は、属性組み合わせを識別する識別子である。また、「組み合わせ番号」は、特定性の算出処理（特定性の範囲の更新処理）における、準識別子（ＱＩ）に指定する属性組み合わせの選択の順番に対応する。「属性組み合わせ」は、準識別子（ＱＩ）に指定する属性の１つまたは複数の組み合わせを示す情報である。「観察容易性」は、対応する属性組み合わせにおける観察されやすさを示す情報である。「観察容易性」は、例えば、属性の機微性に基づいて設定することができる。また、「観察容易性」は、例えば「０」〜「１」の範囲で定量化して表すことができる。なお、観察容易性についても、特定性と同様に、区間［０，１］の範囲で表すことができる。
【００３５】
図７の例では、属性組み合わせは、３１通りあり、各属性組み合わせと対応する観察容易性が、観察容易性の降順にソートされている。また、観察容易性が高い属性の組み合わせ順は、属性の数が少ない組み合わせほど、観察容易性が高いとする順番である。なお、観察容易性記憶部１２２に記憶される観察容易性の情報は、入力部１１０を介して入力されてもよいし、予め辞書として観察容易性記憶部１２２に記憶されるようにしてもよい。また、観察容易性は、次に優先度が高い属性組み合わせについて、属性数を増加させる等により、動的に算出するようにしてもよい。さらに、観察容易性は、例えば、Ａ⊂Ｂの関係の任意の２つの属性組み合わせ｛Ａ，Ｂ｝について、Ａの観察容易性はＢの観察容易性より高いという制約に従う。
【００３６】
図１の説明に戻って、特定性範囲リスト記憶部１２３は、パーソナルデータのエントリ（行番号）ごとに算出された特定性の範囲を記憶する。図８は、特定性範囲リスト記憶部の一例を示す図である。図８に示すように、特定性範囲リスト記憶部１２３は、「行番号」、「最小特定性」、「最大特定性」といった項目を有する。特定性範囲リスト記憶部１２３は、例えば、行番号ごとに１レコードとして記憶する。
【００３７】
「行番号」は、パーソナルデータのエントリを識別する識別子である。「最小特定性」は、そのエントリの個人を特定できる可能性を示す特定性の範囲のうち、最小値を示す情報である。「最大特定性」は、特定性の範囲のうち、最大値を示す情報である。すなわち、特定性範囲リスト記憶部１２３は、パーソナルデータのエントリごとに、特定性の範囲を記憶する。なお、最小特定性と最大特定性とが同じ値である場合には、当該エントリの特定性がその値に決定されたことを示す。
【００３８】
図１の説明に戻って、制御部１３０は、例えば、ＣＰＵ（Central  Processing  Unit）やＭＰＵ（Micro  Processing  Unit）等によって、内部の記憶装置に記憶されているプログラムがＲＡＭを作業領域として実行されることにより実現される。また、制御部１３０は、例えば、ＡＳＩＣ（Application  Specific  Integrated  Circuit）やＦＰＧＡ（Field  Programmable  Gate  Array）等の集積回路により実現されるようにしてもよい。制御部１３０は、受付部１３１と、設定部１３２と、更新部１３３と、出力制御部１３４とを有し、以下に説明する情報処理の機能や作用を実現または実行する。なお、制御部１３０の内部構成は、図１に示した構成に限られず、後述する情報処理を行う構成であれば他の構成であってもよい。
【００３９】
受付部１３１は、入力部１１０からパーソナルデータおよび観察容易性情報が入力されると、入力されたパーソナルデータおよび観察容易性情報を受け付ける。なお、受付部１３１は、観察容易性について観察容易性記憶部１２２に予め辞書を記憶して用いる場合には、観察容易性情報については、受け付けなくてもよい。すなわち、受付部１３１は、複数の属性が与えられたエントリの集合であるパーソナルデータの入力を受け付ける。受付部１３１は、受け付けたパーソナルデータおよび観察容易性情報を、それぞれパーソナルデータ記憶部１２１および観察容易性記憶部１２２に記憶するとともに、算出開始指示を設定部１３２に出力する。また、受付部１３１は、入力部１１０から処理の中止要求を受け付ける。受付部１３１は、受け付けた中止要求を更新部１３３に出力する。
【００４０】
設定部１３２は、受付部１３１から算出開始指示が入力されると、観察容易性記憶部１２２を参照し、属性組み合わせが全属性の場合における属性組み合わせおよび観察容易性と、先頭の組み合わせ番号の属性組み合わせにおける観察容易性とを取得する。設定部１３２は、パーソナルデータ記憶部１２１を参照し、取得した全属性の属性組み合わせに基づいて、エントリごとに全属性をＱＩとした場合のｋ−匿名性を算出する。
【００４１】
設定部１３２は、各エントリについて全属性でのｋ−匿名性を算出すると、取得した全属性の観察容易性と、算出した全属性でのｋ−匿名性とに基づいて、各エントリの最小特定性を設定する。すなわち、設定部１３２は、エントリごとに、全属性でのｋ−匿名性を用いて補正した全属性の観察容易性を最小特定性として設定する。つまり、特定性が全属性を用いないと特定できない場合は、特定できる場合の中で最も特定性が低いことから、この場合の観察容易性を最小特定性とすることができる。ここで、観察容易性の補正には、例えば、最小特定性＝観察容易性×２１−ｋといった式を用いることができる。なお、観察容易性を補正して特定性を算出する式は、度数（ｋ値）を計上した属性組み合わせの観察容易性に比例する式であれば、他の式であってもよい。
【００４２】
また、設定部１３２は、取得した先頭の組み合わせ番号の属性組み合わせにおける観察容易性、つまり、選択される順番が１番である属性組み合わせの観察容易性を各エントリの最大特定性として設定する。すなわち、設定部１３２は、観察容易性の最大値を各エントリの最大特定性として設定する。つまり、設定部１３２は、各エントリの最小特定性および最大特定性に基づいて、特定性範囲リスト記憶部１２３に記憶される特定性範囲リストに初期値を設定する。設定部１３２は、特定性範囲リストに初期値を設定すると、更新部１３３に対して更新指示を出力する。
【００４３】
言い換えると、設定部１３２は、属性の組み合わせごとに設定された観察の容易さを表す観察容易性の最大値を、受け付けたパーソナルデータのエントリごとの個人を特定できる可能性を示す特定性の最大特定性と設定する。また、設定部１３２は、観察容易性の最小値を特定性の最小特定性と設定する。また、設定部１３２は、属性の全属性の組み合わせにおける各エントリのうち、ｋ−匿名性が２以上であるエントリについて、観察容易性の最小値と、属性の全属性の組み合わせにおけるｋ−匿名性とに基づいて、最小特定性を設定する。
【００４４】
ここで、図９を用いて特定性範囲リストへの初期値の設定について説明する。図９は、最小特定性および最大特定性の設定の一例を示す図である。設定部１３２は、図９の表２４に示すように、観察容易性のうち、全属性の場合における属性組み合わせおよび観察容易性「０．１」と、先頭の組み合わせ番号の属性組み合わせにおける観察容易性「１」とを取得する。設定部１３２は、取得した全属性の属性組み合わせに基づいて、パーソナルデータであるデータ２０のエントリ（行番号）ごとに、表２５に示すように全属性でのｋ−匿名性を算出する。表２５の例では、行番号「１」、「２」はｋ＝２、行番号「３」〜「５」はｋ＝１となっている。なお、表２５では、行番号は省略している。
【００４５】
設定部１３２は、最小特定性＝観察容易性×２１−ｋという式を用いて、各エントリの最小特定性を求めると、特定性範囲リスト３０に示すように、行番号「１」、「２」は、最小特定性＝０．１×２１−２＝０．１×２−１より、「０．０５」と求めることができる。また、行番号「３」〜「５」は、最小特定性＝０．１×２１−１より、「０．１」と求めることができる。また、設定部１３２は、先頭の組み合わせ番号の属性組み合わせにおける観察容易性「１」に基づいて、各エントリの最大特定性は、それぞれ「１」であると求めることができる。設定部１３２は、求めた各エントリの最小特定性および最大特定性を、それぞれ特定性範囲リスト３０の初期値として設定する。
【００４６】
すなわち、特定性範囲リスト３０の初期値は、特定性が一意に決まっていない、つまり、特定性の範囲が収束していないが、各エントリの特定性が最小特定性と最大特定性との間に存在することを範囲で示している。また、更新部１３３では、特定性範囲リスト３０の最小特定性および最大特定性で表される範囲を狭めていくことで、特定性の精度を向上させる。
【００４７】
図１の説明に戻って、更新部１３３は、設定部１３２から更新指示が入力されると、特定性範囲リストの更新を開始する。更新部１３３は、まず、パーソナルデータの匿名性を評価する匿名性評価処理について、受付部１３１から中止要求が入力されたか否か、つまり中止要求があるか否かを判定する。更新部１３３は、中止要求があると判定した場合には、特定性範囲リストの更新を中止し、現在の特定性範囲リストを出力するように、リスト出力指示を出力制御部１３４に出力する。更新部１３３は、中止要求がないと判定した場合には、引き続き特定性範囲リストの更新を実行し、出力要求があるか否かを判定する。
【００４８】
更新部１３３は、出力要求があると判定した場合には、現在の特定性範囲リストを出力するように、リスト出力指示を出力制御部１３４に出力し、未処理の属性組み合わせがあるか否かの判定処理に進む。更新部１３３は、出力要求がないと判定した場合には、リスト出力指示を出力制御部１３４に出力せずに、未処理の属性組み合わせがあるか否かの判定処理に進む。
【００４９】
更新部１３３は、未処理の属性組み合わせがあるか否かを判定する。すなわち、更新部１３３は、例えば、属性数をｃとすると、全属性も含めて属性組み合わせは２ｃ−１通りあるので、２ｃ−１通りの属性組み合わせについて処理を実行したか否かを判定する。更新部１３３は、未処理の属性組み合わせがないと判定した場合には、特定性範囲リストを出力するように、リスト出力指示を出力制御部１３４に出力する。
【００５０】
更新部１３３は、未処理の属性組み合わせがあると判定した場合には、次に優先度が高い属性組み合わせを選択する。なお、属性組み合わせの優先度は、観察容易性記憶部１２２の観察容易性の降順にソートされている属性組み合わせについて、組み合わせ番号が若い属性組み合わせほど、優先度が高い属性組み合わせであるとしている。また、観察容易性がより大きい属性組み合わせでｋ＝１となる行は、特定性がより大きいため、観察容易性が大きい順に探索することで、ｋ＝１となる行を見つけ次第、その行について特定性の算出を完了できることとなる。なお、観察容易性は、その制約から組み合わせる属性が増加するほど小さくなる傾向がある。
【００５１】
更新部１３３は、選択された属性組み合わせに基づいて、特定性範囲リストを更新する。具体的には、更新部１３３は、選択された属性組み合わせに対応する観察容易性が、特定性範囲リストの最大特定性よりも小さい値であるか否かを判定する。更新部１３３は、観察容易性が最大特定性よりも小さい値である場合には、特定性範囲リストの最大特定性を当該観察容易性で更新する。更新部１３３は、観察容易性が最大特定性以上の値である場合には、特定性範囲リストの最大特定性を更新しない。
【００５２】
更新部１３３は、選択された属性組み合わせに基づいて、パーソナルデータのエントリごとにｋ−匿名性を算出する。更新部１３３は、選択された属性組み合わせに対応する観察容易性と、算出したｋ−匿名性とに基づいて、エントリごとの特定性を算出する。なお、ここでの特定性の算出は、例えば、特定性＝観察容易性×２１−ｋといった式で算出できる。更新部１３３は、算出した各エントリの特定性が、特定性範囲リストの最小特定性よりも大きい値であるか否かを判定する。更新部１３３は、算出した特定性が最小特定性よりも大きい値であるエントリについて、当該エントリの最小特定性を算出した特定性で更新する。また、更新部１３３は、算出した特定性が最小特定性以下の値であるエントリについては、当該エントリの最小特定性を更新しない。なお、更新部１３３は、特定性範囲リストの最小特定性および最大特定性の値が同じ値であるエントリについては、既に特定性が一点に特定できているので、更新に関する処理は省略する。
【００５３】
更新部１３３は、特定性範囲リストを更新すると、全てのエントリの特定性が一点に決定したか否かを判定する。更新部１３３は、全てのエントリの特定性が一点に決定していないと判定した場合には、引き続き、特定性範囲リストの更新を実行する。すなわち、更新部１３３は、探索により特定性の範囲を狭められることが判明する度に、特定性範囲リストの更新を実行する。更新部１３３は、全てのエントリの特定性が一点に決定したと判定した場合には、特定性範囲リストを出力するように、リスト出力指示を出力制御部１３４に出力する。
【００５４】
言い換えると、更新部１３３は、観察容易性が高い属性の組み合わせ順に、エントリごとに該エントリの匿名性を示すｋ−匿名性を求める。また、更新部１３３は、属性の組み合わせにおける観察容易性に基づいて、エントリごとの最大特定性を更新する。また、更新部１３３は、属性の組み合わせにおけるｋ−匿名性に基づいて、エントリごとの最小特定性を更新する。
【００５５】
また、更新部１３３は、属性の組み合わせにおける観察容易性と、エントリごとのｋ−匿名性とに基づいて特定性を算出し、算出した特定性が最小特定性よりも大きい値である場合に、算出した特定性を用いてエントリごとの最小特定性を更新する。また、更新部１３３は、各エントリについて、最大特定性と最小特定性とが同じ値になった場合に、該値を該エントリにおける特定性として決定する。
【００５６】
出力制御部１３４は、更新部１３３からリスト出力指示が入力されると、特定性範囲リスト記憶部１２３から特定性範囲リストを取得する。出力制御部１３４は、取得した特定性範囲リストに基づいて出力画面を生成する。出力制御部１３４は、生成した出力画面を表示部１１１に出力して表示させる。つまり、出力制御部１３４は、特定性範囲リストを表示部１１１に表示させる。なお、出力制御部１３４は、全てのエントリの特定性が一点に決定した場合には、特定性範囲リストのうち、最大特定性を出力せずに最小特定性のみを出力するようにしてもよい。
【００５７】
すなわち、出力制御部１３４は、エントリごとに、更新された最大特定性および最小特定性を出力する。また、出力制御部１３４は、中止要求が受け付けられた時点における、各エントリの最大特定性および最小特定性、または、決定された特定性を出力する。
【００５８】
ここで、図１０から図１６を用いて特定性範囲リストの更新について説明する。図１０から図１６は、特定性範囲リストの更新の一例を示す図である。なお、以下の説明では、パーソナルデータとして、図２のデータ２０を用いる場合を一例として説明する。更新部１３３は、図１０に示すように、組み合わせ番号「１」の属性組み合わせ｛年齢｝を選択する。更新部１３３は、特定性範囲リスト３０ａおよび表３１ａに示すように、選択された属性組み合わせ｛年齢｝に対応する観察容易性「１」が、特定性範囲リスト３０ａの最大特定性よりも小さい値であるか否かを判定する。更新部１３３は、観察容易性「１」と各エントリの最大特定性「１」とが同じ値であるので、特定性範囲リスト３０ａの最大特定性は更新しない。
【００５９】
更新部１３３は、選択された属性組み合わせ｛年齢｝に基づいて、表３１ａに示すように、データ２０のエントリごとにｋ−匿名性を算出する。更新部１３３は、選択された属性組み合わせ｛年齢｝に対応する観察容易性「１」と、算出したｋ−匿名性とに基づいて、エントリごとの特定性を算出する。なお、特定性の算出には、特定性＝観察容易性×２１−ｋという式を用いている。更新部１３３は、算出した各エントリの特定性が、特定性範囲リスト３０ａの各エントリに対応する最小特定性よりも大きい値であるか否かを判定する。更新部１３３は、算出した特定性が最小特定性よりも大きい値である行番号「１」〜「５」の各エントリについて、各エントリの最小特定性を算出した特定性で更新する。すなわち、更新部１３３は、特定性範囲リスト３０ａに示すように、行番号「１」，「２」について「０．０５」から「０．５」に更新し、行番号「３」〜「５」について「０．１」から「０．２５」に更新する。
【００６０】
更新部１３３は、図１１に示すように、組み合わせ番号「２」の属性組み合わせ｛性別｝を選択する。更新部１３３は、特定性範囲リスト３０ｂおよび表３１ｂに示すように、選択された属性組み合わせ｛性別｝に対応する観察容易性「１」が、特定性範囲リスト３０ｂの最大特定性よりも小さい値であるか否かを判定する。更新部１３３は、観察容易性「１」と各エントリの最大特定性「１」とが同じ値であるので、特定性範囲リスト３０ｂの最大特定性は更新しない。
【００６１】
更新部１３３は、選択された属性組み合わせ｛性別｝に基づいて、表３１ｂに示すように、データ２０のエントリごとにｋ−匿名性を算出する。更新部１３３は、選択された属性組み合わせ｛性別｝に対応する観察容易性「１」と、算出したｋ−匿名性とに基づいて、エントリごとの特定性を算出する。更新部１３３は、算出した各エントリの特定性が、特定性範囲リスト３０ｂの各エントリに対応する最小特定性よりも大きい値であるか否かを判定する。更新部１３３は、各エントリの算出した特定性と最小特定性とが同じ値であるので、特定性範囲リスト３０ｂの最小特定性は更新しない。
【００６２】
更新部１３３は、図１２に示すように、組み合わせ番号「３」の属性組み合わせ｛職業｝を選択する。更新部１３３は、特定性範囲リスト３０ｃおよび表３１ｃに示すように、選択された属性組み合わせ｛職業｝に対応する観察容易性「１」が、特定性範囲リスト３０ｃの最大特定性よりも小さい値であるか否かを判定する。更新部１３３は、観察容易性「１」と各エントリの最大特定性「１」とが同じ値であるので、特定性範囲リスト３０ｃの最大特定性は更新しない。
【００６３】
更新部１３３は、選択された属性組み合わせ｛職業｝に基づいて、表３１ｃに示すように、データ２０のエントリごとにｋ−匿名性を算出する。更新部１３３は、選択された属性組み合わせ｛職業｝に対応する観察容易性「１」と、算出したｋ−匿名性とに基づいて、エントリごとの特定性を算出する。更新部１３３は、算出した各エントリの特定性が、特定性範囲リスト３０ｃの各エントリに対応する最小特定性よりも大きい値であるか否かを判定する。更新部１３３は、算出した特定性が最小特定性よりも大きい値である行番号「３」，「４」の各エントリについて、各エントリの最小特定性を算出した特定性で更新する。すなわち、更新部１３３は、特定性範囲リスト３０ｃに示すように、行番号「３」，「４」について「０．２５」から「０．５」に更新し、行番号「１」，「２」，「５」については、算出した特定性と最小特定性とが同じ値であるので、最小特定性は更新しない。
【００６４】
更新部１３３は、図１３に示すように、組み合わせ番号「４」の属性組み合わせ｛年齢，性別｝を選択する。更新部１３３は、特定性範囲リスト３０ｄおよび表３１ｄに示すように、選択された属性組み合わせ｛年齢，性別｝に対応する観察容易性「０．９」が、特定性範囲リスト３０ｄの最大特定性よりも小さい値であるか否かを判定する。更新部１３３は、観察容易性「０．９」が最大特定性「１」よりも小さい値であるので、特定性範囲リスト３０ｄの各エントリの最大特定性を観察容易性で更新する。
【００６５】
更新部１３３は、選択された属性組み合わせ｛年齢，性別｝に基づいて、表３１ｄに示すように、データ２０のエントリごとにｋ−匿名性を算出する。更新部１３３は、選択された属性組み合わせ｛年齢，性別｝に対応する観察容易性「０．９」と、算出したｋ−匿名性とに基づいて、エントリごとの特定性を算出する。更新部１３３は、算出した各エントリの特定性が、特定性範囲リスト３０ｄの各エントリに対応する最小特定性よりも大きい値であるか否かを判定する。更新部１３３は、各エントリの算出した特定性が最小特定性よりも小さい値であるので、特定性範囲リスト３０ｄの最小特定性は更新しない。
【００６６】
更新部１３３は、図１４に示すように、組み合わせ番号「５」の属性組み合わせ｛年齢，職業｝を選択する。更新部１３３は、特定性範囲リスト３０ｅおよび表３１ｅに示すように、選択された属性組み合わせ｛年齢，職業｝に対応する観察容易性「０．９」が、特定性範囲リスト３０ｅの最大特定性よりも小さい値であるか否かを判定する。更新部１３３は、観察容易性「０．９」と各エントリの最大特定性「０．９」とが同じ値であるので、特定性範囲リスト３０ｅの最大特定性は更新しない。
【００６７】
更新部１３３は、選択された属性組み合わせ｛年齢，職業｝に基づいて、表３１ｅに示すように、データ２０のエントリごとにｋ−匿名性を算出する。更新部１３３は、選択された属性組み合わせ｛年齢，職業｝に対応する観察容易性「０．９」と、算出したｋ−匿名性とに基づいて、エントリごとの特定性を算出する。更新部１３３は、算出した各エントリの特定性が、特定性範囲リスト３０ｅの各エントリに対応する最小特定性よりも大きい値であるか否かを判定する。更新部１３３は、算出した特定性が最小特定性よりも大きい値である行番号「５」のエントリについて、エントリの最小特定性を算出した特定性で更新する。すなわち、更新部１３３は、特定性範囲リスト３０ｅに示すように、行番号「５」について「０．２５」から「０．９」に更新し、行番号「１」〜「４」については、算出した特定性が最小特定性よりも小さい値であるので、最小特定性は更新しない。なお、更新部１３３は、行番号「５」について、枠３２で示すように、最小特定性と最大特定性とが同じ値「０．９」となったので、特定性が「０．９」であると決定する。
【００６８】
更新部１３３は、図１５に示すように、組み合わせ番号「７」の属性組み合わせ｛年齢，性別，職業｝を選択する。なお、組み合わせ番号「６」の属性組み合わせ｛性別，職業｝については、特定性範囲リスト３０ｅが更新されないので、説明を省略している。更新部１３３は、特定性範囲リスト３０ｆおよび表３１ｆに示すように、選択された属性組み合わせ｛年齢，性別，職業｝に対応する観察容易性「０．８」が、特定性範囲リスト３０ｆの最大特定性よりも小さい値であるか否かを判定する。更新部１３３は、観察容易性「０．８」が最大特定性「０．９」よりも小さい値であるので、特定性範囲リスト３０ｆの行番号「１」〜「４」の各エントリの最大特定性を観察容易性で更新する。なお、更新部１３３は、特定性が決定された行番号「５」のエントリについては、当該判定および特定性範囲リストの更新は行わない。
【００６９】
更新部１３３は、選択された属性組み合わせ｛年齢，性別，職業｝に基づいて、表３１ｆに示すように、データ２０のエントリごとにｋ−匿名性を算出する。更新部１３３は、選択された属性組み合わせ｛年齢，性別，職業｝に対応する観察容易性「０．８」と、算出したｋ−匿名性とに基づいて、エントリごとの特定性を算出する。なお、特定性が決定された行番号「５」のエントリについては、ｋ−匿名性および特定性の算出は行わない。更新部１３３は、算出した各エントリの特定性が、特定性範囲リスト３０ｆの各エントリに対応する最小特定性よりも大きい値であるか否かを判定する。更新部１３３は、各エントリの算出した特定性が最小特定性よりも小さい値であるので、特定性範囲リスト３０ｆの最小特定性は更新しない。
【００７０】
更新部１３３は、図１６に示すように、組み合わせ番号「８」の属性組み合わせ｛学歴｝を選択する。更新部１３３は、特定性範囲リスト３０ｇおよび表３１ｇに示すように、選択された属性組み合わせ｛学歴｝に対応する観察容易性「０．４」が、特定性範囲リスト３０ｇの最大特定性よりも小さい値であるか否かを判定する。更新部１３３は、観察容易性「０．４」が最大特定性「０．８」よりも小さい値であり、観察容易性「０．４」が最小特定性「０．５」よりも小さい値であるので、特定性範囲リスト３０ｇの行番号「１」〜「４」の各エントリの最大特定性を最小特定性で更新する。すなわち、更新部１３３は、観察容易性≦最小特定性の関係である場合には、最大特定性を最小特定性で更新する。つまり、更新部１３３は、行番号「１」〜「４」について、観察容易性が最小特定性以下であるので、特定性が「０．５」であると決定する。これは、これらのエントリについては、これ以降の処理で最小特定性が上方修正される可能性がないためである。なお、更新部１３３は、特定性が決定された行番号「５」のエントリについては、当該判定および特定性範囲リストの更新は行わない。更新部１３３は、以上の処理によって、データ２０の全てのエントリについて特定性を決定することができる。
【００７１】
次に、図１７および図１８を用いて、図５に示す特定性の定量化と、本実施例における特定性の定量化との比較について説明する。図１７は、処理の途中における特定性の比較の一例を示す図である。図１７では、図５に示す特定性の定量化、つまり各行がｋ＝１となるまで計算を行う場合と、本実施例の場合とにおける、組み合わせ番号「４」の直後に匿名性評価の処理を打ち切った場合の特定性を比較する。なお、用いるパーソナルデータは、図２のデータ２０であるとする。また、各行がｋ＝１となるまで計算を行う場合は、全ての属性が同じである２つ以上のエントリがある場合には、度数（ｋ値）がそれらのエントリの数、つまりｋ≧２となるまで計算を行う場合も含まれる。
【００７２】
図１７の表３３は、各行がｋ＝１となるまで計算を行う場合における各エントリの特定性を示す。表３３に示すように、全てのエントリについて「０（未計算）」となっている。これに対して、本実施例の場合における特定性範囲リスト３０ｄでは、行番号「１」〜「４」の各エントリは、特定性が「０．５」〜「０．９」の範囲、行番号「５」のエントリは、特定性が「０．２５」〜「０．９」の範囲であると算出できている。従って、本実施例では、各行がｋ＝１となるまで計算を行う場合と比較して、観察容易性が高い属性組み合わせから探索するため、匿名性評価の結果の精度が高いことがわかる。
【００７３】
図１８は、処理が完了した場合における特定性の比較の一例を示す図である。図１８では、図５に示す特定性の定量化、つまり各行がｋ＝１となるまで計算を行う場合と、本実施例の場合とにおける、組み合わせ番号「８」以降まで匿名性評価の処理を行って処理が完了した場合の特定性を比較する。なお、用いるパーソナルデータは、図２のデータ２０であるとする。また、各行がｋ＝１となるまで計算を行う場合は、全ての属性が同じである２つ以上のエントリがある場合には、度数（ｋ値）がそれらのエントリの数、つまりｋ≧２となるまで計算を行う場合も含まれる。
【００７４】
図１８の表３４は、各行がｋ＝１となるまで計算を行う場合における各エントリの特定性を示す。表３４に示すように、行番号「１」，「２」のエントリは、すべての属性が同じであるので一意に特定できずｋ＝２となるため、枠３５で示すように特定性は「０」、つまり特定性を定量化出来なかった状態となっている。また、行番号「３」，「４」の各エントリは、それぞれ特定性が「０．４」と決定されている。また、行番号「５」のエントリは、特定性が「０．９」と決定されている。これに対して、本実施例の場合における特定性範囲リスト３０ｇでは、行番号「１」〜「４」の各エントリは、特定性が「０．５」と決定されている。また、行番号「５」のエントリは、特定性が「０．９」と決定されている。従って、本実施例では、各行がｋ＝１となるまで計算を行う場合と比較して、ｋ≧２となるエントリ（行）の特定性も定量化することができる。
【００７５】
続いて、実施例の匿名性評価装置１００の動作について説明する。図１９は、実施例の匿名性評価処理の一例を示すフローチャートである。
【００７６】
受付部１３１は、入力部１１０からパーソナルデータが入力されると、入力されたパーソナルデータを受け付ける（ステップＳ１）。なお、受付部１３１は、入力部１１０からパーソナルデータとともに観察容易性情報が入力される場合には、入力されたパーソナルデータおよび観察容易性情報を受け付ける。受付部１３１は、受け付けたパーソナルデータをパーソナルデータ記憶部１２１に記憶する。また、受付部１３１は、観察容易性情報を受け付けた場合には、受け付けた観察容易性情報を観察容易性記憶部１２２に記憶する。受付部１３１は、パーソナルデータを記憶すると、算出開始指示を設定部１３２に出力する。
【００７７】
設定部１３２は、受付部１３１から算出開始指示が入力されると、パーソナルデータ記憶部１２１および観察容易性記憶部１２２を参照し、各エントリの最小特定性および最大特定性を設定する。すなわち、設定部１３２は、各エントリの最小特定性および最大特定性に基づいて、特定性範囲リストに初期値を設定する（ステップＳ２）。設定部１３２は、特定性範囲リストに初期値を設定すると、更新部１３３に対して更新指示を出力する。
【００７８】
更新部１３３は、設定部１３２から更新指示が入力されると、特定性範囲リストの更新を開始する。更新部１３３は、匿名性評価処理について、中止要求があるか否かを判定する（ステップＳ３）。更新部１３３は、中止要求があると判定した場合には（ステップＳ３：肯定）、特定性範囲リストの更新を中止し、現在の特定性範囲リストを出力するように、リスト出力指示を出力制御部１３４に出力する。
【００７９】
出力制御部１３４は、特定性範囲リストの更新が中止された状態で更新部１３３からリスト出力指示が入力されると、特定性範囲リスト記憶部１２３から特定性範囲リストを取得して出力画面を生成する。出力制御部１３４は、生成した出力画面、つまり現在の特定性範囲リストを表示部１１１に出力して表示させ（ステップＳ４）、匿名性評価処理を終了する。
【００８０】
一方、更新部１３３は、中止要求がないと判定した場合には（ステップＳ３：否定）、引き続き特定性範囲リストの更新を実行し、出力要求があるか否かを判定する（ステップＳ５）。更新部１３３は、出力要求があると判定した場合には（ステップＳ５：肯定）、現在の特定性範囲リストを出力するように、リスト出力指示を出力制御部１３４に出力する。
【００８１】
出力制御部１３４は、特定性範囲リストの更新が実行中の状態で更新部１３３からリスト出力指示が入力されると、特定性範囲リスト記憶部１２３から特定性範囲リストを取得して出力画面を生成する。出力制御部１３４は、生成した出力画面、つまり現在の特定性範囲リストを表示部１１１に出力して表示させ（ステップＳ６）、ステップＳ７に進む。
【００８２】
更新部１３３は、出力要求がないと判定した場合には（ステップＳ５：否定）、リスト出力指示を出力制御部１３４に出力せずに、ステップＳ７に進む。
【００８３】
更新部１３３は、未処理の属性組み合わせがあるか否かを判定する（ステップＳ７）。更新部１３３は、未処理の属性組み合わせがないと判定した場合には（ステップＳ７：否定）、特定性範囲リストを出力するように、リスト出力指示を出力制御部１３４に出力し、ステップＳ１１に進む。
【００８４】
更新部１３３は、未処理の属性組み合わせがあると判定した場合には（ステップＳ７：肯定）、次に優先度が高い属性組み合わせを選択する（ステップＳ８）。更新部１３３は、選択された属性組み合わせに基づいて、特定性範囲リストを更新する（ステップＳ９）。更新部１３３は、特定性範囲リストを更新すると、全てのエントリの特定性が一点に決定したか否かを判定する（ステップＳ１０）。更新部１３３は、全てのエントリの特定性が一点に決定していないと判定した場合には（ステップＳ１０：否定）、ステップＳ３に戻り、引き続き特定性範囲リストの更新を実行する。
【００８５】
更新部１３３は、全てのエントリの特定性が一点に決定したと判定した場合には（ステップＳ１０：肯定）、特定性範囲リストを出力するように、リスト出力指示を出力制御部１３４に出力し、ステップＳ１１に進む。
【００８６】
出力制御部１３４は、未処理の属性組み合わせがない、または、全てのエントリの特定性が一点に決定したとして更新部１３３からリスト出力指示が入力されると、特定性範囲リスト記憶部１２３から特定性範囲リストを取得して出力画面を生成する。出力制御部１３４は、生成した出力画面、つまり、匿名性評価が完了した特定性範囲リストを表示部１１１に出力して表示させ（ステップＳ１１）、匿名性評価処理を終了する。これにより、匿名性評価装置１００は、匿名性を高精度で評価できる。
【００８７】
このように、匿名性評価装置１００は、複数の属性が与えられたエントリの集合であるパーソナルデータの入力を受け付ける。また、匿名性評価装置１００は、属性の組み合わせごとに設定された観察の容易さを表す観察容易性の最大値を、受け付けたパーソナルデータのエントリごとの個人を特定できる可能性を示す特定性の最大特定性と設定する。また、匿名性評価装置１００は、観察容易性の最小値を特定性の最小特定性と設定する。また、匿名性評価装置１００は、観察容易性が高い属性の組み合わせ順に、エントリごとに該エントリの匿名性を示すｋ−匿名性を求める。また、匿名性評価装置１００は、属性の組み合わせにおける観察容易性に基づいて、エントリごとの最大特定性を更新する。また、匿名性評価装置１００は、属性の組み合わせにおけるｋ−匿名性に基づいて、エントリごとの最小特定性を更新する。その結果、匿名性評価装置１００は、匿名性を高精度で評価できる。
【００８８】
また、匿名性評価装置１００は、属性の全属性の組み合わせにおける各エントリのうち、ｋ−匿名性が２以上であるエントリについて、観察容易性の最小値と、属性の全属性の組み合わせにおけるｋ−匿名性とに基づいて、最小特定性を設定する。その結果、ｋ−匿名性が２以上であるエントリについても特定性の定量化、つまり匿名性の定量化を行うことができる。
【００８９】
また、匿名性評価装置１００は、属性の組み合わせにおける観察容易性と、エントリごとのｋ−匿名性とに基づいて特定性を算出し、算出した特定性が最小特定性よりも大きい値である場合に、算出した特定性を用いてエントリごとの最小特定性を更新する。その結果、匿名性評価装置１００は、各エントリの特定性の範囲について、最小特定性側を狭めていくことができる。
【００９０】
また、匿名性評価装置１００では、観察容易性が高い属性の組み合わせ順は、属性の数が少ない組み合わせほど、観察容易性が高いとする順番である。その結果、匿名性評価装置１００は、観察しやすい可能性が高い属性、つまり観察の条件が緩い属性から匿名性評価を行うことができる。
【００９１】
また、匿名性評価装置１００は、各エントリについて、最大特定性と最小特定性とが同じ値になった場合に、該値を該エントリにおける特定性として決定する。その結果、匿名性評価装置１００は、当該エントリの特定性を一意に決定できる。
【００９２】
また、匿名性評価装置１００は、エントリごとに、更新された最大特定性および最小特定性を出力する。その結果、匿名性評価装置１００は、パーソナルデータのエントリごとに匿名性を評価できる。
【００９３】
また、匿名性評価装置１００は、処理の中止要求を受け付ける。また、匿名性評価装置１００は、各エントリについて、最大特定性と最小特定性とが同じ値になった場合に、該値を該エントリにおける特定性として決定する。また、匿名性評価装置１００は、中止要求が受け付けられた時点における、各エントリの最大特定性および最小特定性、または、決定された特定性を出力する。その結果、匿名性評価装置１００は、匿名性評価処理が中断された場合でも、その時点における各エントリの匿名性を評価できる。
【００９４】
なお、上記実施例では、パーソナルデータの一例として、年齢、性別、職業、学歴および年収区分の各属性を持つデータを用いたが、これに限定されない。例えば、医療機関の診察結果、店舗等における会員登録の情報、および、各種アンケート結果等に対して適用してもよい。
【００９５】
また、図示した各部の各構成要素は、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各部の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況等に応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。例えば、設定部１３２と更新部１３３とを統合してもよい。また、図示した各処理は、上記の順番に限定されるものではなく、処理内容を矛盾させない範囲において、同時に実施してもよく、順序を入れ替えて実施してもよい。
【００９６】
さらに、各装置で行われる各種処理機能は、ＣＰＵ（またはＭＰＵ、ＭＣＵ（Micro  Controller  Unit）等のマイクロ・コンピュータ）上で、その全部または任意の一部を実行するようにしてもよい。また、各種処理機能は、ＣＰＵ（またはＭＰＵ、ＭＣＵ等のマイクロ・コンピュータ）で解析実行されるプログラム上、またはワイヤードロジックによるハードウェア上で、その全部または任意の一部を実行するようにしてもよいことは言うまでもない。
【００９７】
ところで、上記の実施例で説明した各種の処理は、予め用意されたプログラムをコンピュータで実行することで実現できる。そこで、以下では、上記の実施例と同様の機能を有するプログラムを実行するコンピュータの一例を説明する。図２０は、匿名性評価プログラムを実行するコンピュータの一例を示す図である。
【００９８】
図２０に示すように、コンピュータ２００は、各種演算処理を実行するＣＰＵ２０１と、データ入力を受け付ける入力装置２０２と、モニタ２０３とを有する。また、コンピュータ２００は、記憶媒体からプログラム等を読み取る媒体読取装置２０４と、各種装置と接続するためのインタフェース装置２０５と、他の情報処理装置等と有線または無線により接続するための通信装置２０６とを有する。また、コンピュータ２００は、各種情報を一時記憶するＲＡＭ２０７と、ハードディスク装置２０８とを有する。また、各装置２０１〜２０８は、バス２０９に接続される。
【００９９】
ハードディスク装置２０８には、図１に示した受付部１３１、設定部１３２、更新部１３３および出力制御部１３４の各処理部と同様の機能を有する匿名性評価プログラムが記憶される。また、ハードディスク装置２０８には、パーソナルデータ記憶部１２１、観察容易性記憶部１２２、特定性範囲リスト記憶部１２３、および、匿名性評価プログラムを実現するための各種データが記憶される。入力装置２０２は、例えば、コンピュータ２００のユーザから操作情報等の各種情報の入力を受け付ける。モニタ２０３は、例えば、コンピュータ２００のユーザに対して出力画面等の各種画面を表示する。媒体読取装置２０４は、記憶媒体からパーソナルデータおよび観察容易性情報を読み取る。インタフェース装置２０５は、例えば印刷装置等が接続される。通信装置２０６は、例えば、図示しないネットワークと接続され、他の情報処理装置と各種情報をやりとりする。
【０１００】
ＣＰＵ２０１は、ハードディスク装置２０８に記憶された各プログラムを読み出して、ＲＡＭ２０７に展開して実行することで、各種の処理を行う。また、これらのプログラムは、コンピュータ２００を図１に示した受付部１３１、設定部１３２、更新部１３３および出力制御部１３４として機能させることができる。
【０１０１】
なお、上記の匿名性評価プログラムは、必ずしもハードディスク装置２０８に記憶されている必要はない。例えば、コンピュータ２００が読み取り可能な記憶媒体に記憶されたプログラムを、コンピュータ２００が読み出して実行するようにしてもよい。コンピュータ２００が読み取り可能な記憶媒体は、例えば、ＣＤ−ＲＯＭやＤＶＤディスク、ＵＳＢメモリ等の可搬型記録媒体、フラッシュメモリ等の半導体メモリ、ハードディスクドライブ等が対応する。また、公衆回線、インターネット、ＬＡＮ等に接続された装置にこの匿名性評価プログラムを記憶させておき、コンピュータ２００がこれらから匿名性評価プログラムを読み出して実行するようにしてもよい。
【符号の説明】
【０１０２】
１００  匿名性評価装置
１１０  入力部
１１１  表示部
１１２  操作部
１２０  記憶部
１２１  パーソナルデータ記憶部
１２２  観察容易性記憶部
１２３  特定性範囲リスト記憶部
１３０  制御部
１３１  受付部
１３２  設定部
１３３  更新部
１３４  出力制御部
【図１】
2019028794.tif 000003
【図２】
2019028794.tif 000004
【図３】
2019028794.tif 000005
【図４】
2019028794.tif 000006
【図５】
2019028794.tif 000007
【図６】
2019028794.tif 000008
【図７】
2019028794.tif 000009
【図８】
2019028794.tif 000010
【図９】
2019028794.tif 000011
【図１０】
2019028794.tif 000012
【図１１】
2019028794.tif 000013
【図１２】
2019028794.tif 000014
【図１３】
2019028794.tif 000015
【図１４】
2019028794.tif 000016
【図１５】
2019028794.tif 000017
【図１６】
2019028794.tif 000018
【図１７】
2019028794.tif 000019
【図１８】
2019028794.tif 000020
【図１９】
2019028794.tif 000021
【図２０】
2019028794.tif 000022