(57)【要約】【課題】数値属性値を含むデータを匿名化する。【解決手段】本方法は、各々機密属性値と数値属性値とを含む各データブロックについて、当該データブロックに含まれる数値属性値に基づき数値属性に応じて定義される距離が閾値以内となるデータブロックの集合を生成し、各データブロックについて、当該データブロックと当該データブロックについて生成された集合に含まれるデータブロックとの機密属性値の度数分布が、所定の条件を満たしているか判断し、度数分布が所定の条件を満たしているデータブロックについては、当該データブロックについて生成された集合に含まれるデータブロックの数値属性値から第２の数値属性値を生成し、度数分布が所定の条件を満たしているデータブロックにおける数値属性値を、当該データブロックについて生成した第２の数値属性値で置換する処理を含む。【選択図】図４
2014109934.tif 000002
【特許請求の範囲】
【請求項１】
各々機密属性値と数値属性値とを含む複数のデータブロックを格納するデータ格納部に格納された前記複数のデータブロックの各々について、当該データブロックに含まれる数値属性値に基づき数値属性に応じて定義される距離が閾値以内となるデータブロックの集合を生成し、
前記複数のデータブロックの各々について、当該データブロックと当該データブロックについて生成された前記集合に含まれるデータブロックとの機密属性値の度数分布が、所定の条件を満たしているか判断し、
前記度数分布が前記所定の条件を満たしているデータブロックについては、当該データブロックについて生成された前記集合に含まれるデータブロックの数値属性値から第２の数値属性値を生成し、
前記度数分布が前記所定の条件を満たしているデータブロックにおける数値属性値を、当該データブロックについて生成した前記第２の数値属性値で置換する
処理を含み、コンピュータにより実行される匿名化データ生成方法。
【請求項２】
前記度数分布が前記所定の条件を満たさないデータブロックについては削除する処理
をさらに含む請求項１記載の匿名化データ生成方法。
【請求項３】
前記集合を生成する処理は、
前記複数のデータブロックの各々について、前記閾値に基づき決定される複数の領域のうち当該データブロックの数値属性値が入る領域の識別子を特定し、
前記複数のデータブロックの各々について、当該データブロックについて特定された識別子に基づき、距離を算出すべき候補データブロックを抽出し、
前記複数のデータブロックの各々について、当該データブロックについて抽出された前記候補データブロックの各々との前記距離が前記閾値以内であるか判断する
処理を含む請求項１又は２記載の匿名化データ生成方法。
【請求項４】
前記第２の数値属性値で前記数値属性値が置換されたデータブロックから前記機密属性値を削除する
処理をさらに含む請求項１乃至３のいずれか１つ記載の匿名化データ生成方法。
【請求項５】
前記数値属性値が、位置データを含み、
前記数値属性に応じて定義される距離が、空間における距離、ユークリッド距離又はマンハッタン距離である
請求項１乃至４のいずれか１つ記載の匿名化データ生成方法。
【請求項６】
前記数値属性値が、時刻データを含み、
前記数値属性に応じて定義される距離が、時間間隔を含む
請求項５記載の匿名化データ生成方法。
【請求項７】
前記所定の条件が、前記機密属性値が所定種類以上であるという条件、又は度数が多い順に上位所定個数の各機密属性値について１つ上位の度数の所定倍以上の度数があるという条件を含む
請求項１乃至６のいずれか１つ記載の匿名化データ生成方法。
【請求項８】
前記第２の数値属性値を生成する処理が、
前記集合のうち処理に係るデータブロックと同一の機密属性値を有するデータブロックを除外したデータブロック群のうち最も距離が短いデータブロックの数値属性値と前記データブロック群の数値属性値の統計量とから第２の数値属性値を生成する
処理を含む請求項１乃至７のいずれか１つ記載の匿名化データ生成方法。
【請求項９】
前記統計量が平均値であり、
前記第２の数値属性値を、前記最も距離が短いデータブロックの数値属性値と前記データブロック群の数値属性値の平均値との間の数値属性値を乱数で特定する
請求項８記載の匿名化データ生成方法。
【請求項１０】
前記第２の数値属性値で前記数値属性値が置換されたデータブロックに対して、当該データブロックが存在しうる範囲を表すデータを付加する
処理をさらに含む請求項１乃至９のいずれか１つ記載の匿名化データ生成方法。
【請求項１１】
各々機密属性値と数値属性値とを含む複数のデータブロックを格納するデータ格納部に格納された前記複数のデータブロックの各々について、当該データブロックに含まれる数値属性値に基づき数値属性に応じて定義される距離が閾値以内となるデータブロックの集合を生成し、
前記複数のデータブロックの各々について、当該データブロックと当該データブロックについて生成された前記集合に含まれるデータブロックとの機密属性値の度数分布が、所定の条件を満たしているか判断し、
前記度数分布が前記所定の条件を満たしているデータブロックについては、当該データブロックについて生成された前記集合に含まれるデータブロックの数値属性値から第２の数値属性値を生成し、
前記度数分布が前記所定の条件を満たしているデータブロックにおける数値属性値を、当該データブロックについて生成した前記第２の数値属性値で置換する
処理を、コンピュータに実行させるための匿名化データ生成プログラム。
【請求項１２】
各々機密属性値と数値属性値とを含む複数のデータブロックを格納するデータ格納部に格納された前記複数のデータブロックの各々について、当該データブロックに含まれる数値属性値に基づき数値属性に応じて定義される距離が閾値以内となるデータブロックの集合を生成する手段と、
前記複数のデータブロックの各々について、当該データブロックと当該データブロックについて生成された前記集合に含まれるデータブロックとの機密属性値の度数分布が、所定の条件を満たしているか判断する手段と、
前記度数分布が前記所定の条件を満たしているデータブロックについては、当該データブロックについて生成された前記集合に含まれるデータブロックの数値属性値から第２の数値属性値を生成する手段と、
前記度数分布が前記所定の条件を満たしているデータブロックにおける数値属性値を、当該データブロックについて生成した前記第２の数値属性値で置換する手段と、
を有する情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本技術は、情報の匿名化技術に関する。
【背景技術】
【０００２】
数値データを含むレコード群を、各レコードの機密情報（例えば識別子（ＩＤとも呼ぶ））を秘密にして、他者に開示又は提供したい場合がある。このとき、ＩＤを削除して開示又は提供しても、特性の強い数値を有するレコードについては他者がＩＤを推定できてしまう場合がある。
【０００３】
例えば、車両の位置データの収集者Ａが、車両の運転者や所有者等と紐付いたＩＤを秘匿化した形で、交通状況調査機関Ｂ等に位置データを提供する場合を考える。
【０００４】
例えば、収集者Ａが収集した車両の位置データが図１に示すようなデータであるとする。このように、ＩＤがc1，c2，c3の３種類の車両の位置データが、全部で５レコードある。なお、Ｘは緯度、Ｙは経度を表す。ＩＤは車両のＩＤであっても良いし、使用者（使用事業者）のＩＤであってもよい。図１に示すようなレコードを、地図上にプロットすると、図２のようになるとする。
【０００５】
交通状況調査機関Ｂは、図１及び図２のようなデータを、道路の改良計画や保守計画に活用できる。例えば、図２の東西方向の幹線道路は速度超過の車が多いことがわかり、道路に速度超過を減らす施策をしたり、点検の頻度を多めにしたりする計画を立てる場合がある。
【０００６】
また、収集者Ａは図１に示すようなデータを交通状況調査機関Ｂに提供する場合であっても、交通状況調査機関ＢにはＩＤを秘密にするものとする。例えば、収集者Ａは位置データ提供者との間で、匿名化しない限り他者に提供しないという契約を結んでいる状況が考えられる。位置データ提供者は、使用した車両が、進入禁止区域への進入や速度超過など、違法や危険な運転をした可能性があり、そのことを収集者Ａ以外に知られたくないなどの理由で、匿名化を希望することが考えられる。
【０００７】
一方、交通状況調査機関ＢにとってはＩＤがなくても良い場合もある。車両の運転者や使用事業者を知らなくても上で述べたような交通状況調査はできるためである。従って、収集者Ａは図１に示すようなデータに対し、いわゆる匿名化という、ＩＤの推定を困難にする変換を行って、変換後のデータを開示又は提供することになる。
【０００８】
収集者Ａによる単純な匿名化方式として、ＩＤを削除する方式がある。図１に示したデータからＩＤを削除したデータを交通状況調査機関Ｂが見ても、どのレコードが誰のレコードなのかそのままでは分からない。しかし、位置の値からＩＤを推定できるレコードがあるという問題がある。
【０００９】
図１に示したデータからＩＤを削除したデータを図２のように地図上にプロットすると、３レコード目（Ｘ，Ｙ）＝（８，７）は「c1 駐車場」内であることが分かる。すなわち、ＩＤが削除されたデータしか見られない場合であっても、３レコード目のＩＤがc1である可能性が高いことが分かり、十分に匿名化されているとは言い難い。
【００１０】
同様に、２レコード目（Ｘ，Ｙ）＝（１４，１２）も、公道上ではあるが「c1 駐車場」に行く車両以外の車両が通ることはまずなさそうな地点なので、c1のレコードだと推定できてしまう。このレコードの速度は「４０」であり、この地点の法定最高速度が「３０」だとすると、c1が違法行為をしていたことが知られてしまう。
【００１１】
このように、単にＩＤを削除するだけでは十分に匿名化できないレコードがある。
【００１２】
なお、単にＩＤを削除するだけではなく、確率的にデータを攪乱することで匿名化する技術があるが、位置データが大きく変化するレコードがあるため、交通状況調査機関Ｂでの調査に支障をきたす可能性があるという問題がある。また、変更する確率を小さくすると交通状況調査機関Ｂでの調査への悪影響は少なくなるが、例えば図１に示したデータにおける２レコード目や３レコード目がそのまま提供される確率も大きくなり、匿名化が不十分になってしまう。
【００１３】
さらに、ｋ−匿名化技術を用いて複数のレコードをグループ化して匿名化する技術が存在するが、これらを単純に図１に示したデータに適用しても、必ずしも十分な匿名化がなされるわけではない。
【先行技術文献】
【特許文献】
【００１４】
【特許文献１】特開２０１１−１００１１６号公報
【特許文献２】特開２０１１−１２８８６２号公報
【特許文献３】特開２０１２−０２２３１５号公報
【非特許文献】
【００１５】
【非特許文献１】L. Sweeney. Achieving k-Anonymity Privacy Protection using Generalization and Suppression. International Journal on Uncertainty, Fuzziness and Knowledge-based Systems, Vol. 10, No. 5, pp. 571-588, 2002.
【非特許文献２】K. LeFevre, D. J. DeWitt, R. Ramakrishnan. Incognito: Efficient Full-Domain k-Anonymity. In Proceedings of the 2005 ACM SIGMOD International Conference on Management of Data, pp. 49-60, 2005.
【非特許文献３】K. LeFevre, D. J. DeWitt, R. Ramakrishnan. Mondrian Multidimensional k-Anonymity. In Proceedings of the 22nd International Conference on Data Engineering, pp. 25-, 2006.
【非特許文献４】A. Machanavajjhala, J. Gehrke, D. Kifer, M. Venkitasubramaniam. l-Diversity: Privacy Beyond k-Anonymity. ACM Transactions on Knowledge Discovery from Data, Vol. 1, Issue 1, Article No. 3, 2007.
【発明の概要】
【発明が解決しようとする課題】
【００１６】
従って、本技術の目的は、一側面によれば、数値属性値を含むデータを匿名化するための技術を提供することである。
【課題を解決するための手段】
【００１７】
本技術に係る匿名化データ生成方法は、（Ａ）各々機密属性値と数値属性値とを含む複数のデータブロックを格納するデータ格納部に格納された複数のデータブロックの各々について、当該データブロックに含まれる数値属性値に基づき数値属性に応じて定義される距離が閾値以内となるデータブロックの集合を生成し、（Ｂ）複数のデータブロックの各々について、当該データブロックと当該データブロックについて生成された集合に含まれるデータブロックとの機密属性値の度数分布が、所定の条件を満たしているか判断し、（Ｃ）度数分布が所定の条件を満たしているデータブロックについては、当該データブロックについて生成された集合に含まれるデータブロックの数値属性値から第２の数値属性値を生成し、（Ｄ）度数分布が所定の条件を満たしているデータブロックにおける数値属性値を、当該データブロックについて生成した第２の数値属性値で置換する処理を含む。
【発明の効果】
【００１８】
数値属性値を含むデータを匿名化できるようになる。
【図面の簡単な説明】
【００１９】
【図１】図１は、匿名化すべきデータの一例を示す図である。
【図２】図２は、地図上にデータをプロットした例を示す図である。
【図３】図３は、実施の形態に係る情報処理装置の機能ブロック図である。
【図４】図４は、実施の形態に係るメインの処理フローを示す図である。
【図５】図５は、グループ化処理の処理フローを示す図である。
【図６】図６は、本実施の形態の概要を説明するための図である。
【図７】図７は、本実施の形態の概要を説明するための図である。
【図８】図８は、グループデータ格納部に格納されるデータの一例を示す図である。
【図９】図９は、度数分布パターンへの合致判定処理の処理フローを示す図である。
【図１０】図１０は、第２データ格納部に格納される補助データの一例を示す図である。
【図１１】図１１は、度数分布パターンへの合致判定処理の処理フローを示す図である。
【図１２】図１２は、第２データ格納部に格納されるデータの一例を示す図である。
【図１３】図１３は、第２データ格納部に格納されるデータの一例を示す図である。
【図１４】図１４は、変換後データ生成処理の処理フローを示す図である。
【図１５】図１５は、第２データ格納部に格納されるデータの一例を示す図である。
【図１６】図１６は、変換後データ生成処理を説明するための図である。
【図１７】図１７は、変換後データ生成処理を説明するための図である。
【図１８】図１８は、変換後データ生成処理を説明するための図である。
【図１９】図１９は、データ変換処理の処理フローを示す図である。
【図２０】図２０は、匿名化データ格納部に格納されるデータの一例を示す図である。
【図２１】図２１は、出力例を示す図である。
【図２２】図２２は、コンピュータの機能ブロック図である。
【発明を実施するための形態】
【００２０】
図３に、本技術の実施の形態に係る情報処理装置１００の構成例を示す。本情報処理装置１００は、第１データ格納部１１と、グループ化部１２と、設定データ格納部１３と、グループデータ格納部１４と、判定部１５と、生成部１６と、第２データ格納部１７と、変換処理部１８と、匿名化データ格納部１９と、出力部２０とを有する。
【００２１】
第１データ格納部１１は、例えば図１に示すような匿名化すべきデータを格納する。設定データ格納部１３は、いずれの列が機密情報（ここではＩＤ）であるかを指定するデータと、距離及び時間についての閾値データと、匿名化の条件となる度数分布パターンと、指定された変換方法のデータとを格納する。
【００２２】
グループ化部１２は、設定データ格納部１３に格納されているデータに従って、第１データ格納部１１に格納されているレコードをグループ化する処理を実行する。なお、グループ化は、距離を算出する対象となるレコードを限定することで、処理の高速化を図るために実行される。グループデータ格納部１４は、グループ化部１２の処理結果を格納する。
【００２３】
判定部１５は、第１データ格納部１１に格納されているレコードのうち、グループデータ格納部１４を用いて、設定データ格納部１３に格納されている条件を満たすレコードを特定し、生成部１６に対して、当該レコードの位置データ及び時刻データ（すなわち数値属性値）の変換後の位置データ及び時刻データを生成させる。生成部１６は、判定部１５の指示に応じて、設定データ格納部１３に格納されている変換方法のデータに従って変換後の位置データ及び時刻データを生成する。第２データ格納部１７には、判定部１５及び生成部１６の処理結果が格納される。
【００２４】
変換処理部１８は、第２データ格納部１７に格納されているデータ及び設定データ格納部１３に格納されているデータを用いて、第１データ格納部１１に格納されているレコードに対して処理を行って、処理結果を匿名化データ格納部１９に格納する。出力部２０は、匿名化データ格納部１９に格納されているデータを、例えば要求に従って出力する。
【００２５】
次に、図３に示した情報処理装置１００の処理内容について、図４乃至図２１を用いて説明する。まず、グループ化部１２は、設定データ格納部１３に格納されているデータに従って、第１データ格納部１１に格納されているレコードに対してグループ化処理を実行し、処理結果をグループデータ格納部１４に格納する（図４：ステップＳ１）。グループ化処理については、図５乃至図８を用いて説明する。
【００２６】
グループ化部１２は、設定データ格納部１３に格納されているデータに基づき、グループＩＤ生成関数を生成する（図５：ステップＳ１１）。
【００２７】
本実施の形態では、図６に示すように、あるレコードの位置データ及び時刻データと距離の閾値から特定される所定の範囲Ａ内に含まれる複数のレコードが、所定の度数分布パターンに合致しているか否かを判断する。しかし、１のレコードに対して他の全てのレコードが所定の範囲Ａ内であるか判断すると処理時間が長くなる。そこで、位置データについて定義された距離の閾値（ｔｈ１，ｔｈ２）及び時刻データについて定義された距離（すなわち時間差）の閾値（ｔｈ３）の幅で時空間を領域分割して（例えば図７）、各レコードがいずれの領域に包含されるかを特定する。この領域をグループと呼ぶ。この場合、直ぐ隣の領域（斜め隣の領域も含む）以外の領域に含まれるレコードが、処理に係るレコードについての所定の範囲内Ａに入ることはない。このようにして各レコードが所属する領域が特定されていれば、具体的に所定の範囲内Ａ内にあるか否かを判定することになるレコードの数を限定できるようになる。
【００２８】
従って、本実施の形態では、以下のようなグループＩＤ生成関数を生成する。なお、時刻データについて定義された距離の閾値が０：０１であり、位置データについて定義された距離の閾値が１２であるものとする。
ｆ（Ｒ）＝（floor(時刻／０：０１），floor(Ｘ／１２)，floor(Ｙ／１２)）
ここでfloor（Ｑ／Ｓ）は、ＱをＳの倍数に近い値に切り捨てる関数である。また、ｆ（Ｒ）は、時刻、緯度Ｘ及び経度Ｙを含むレコードＲのグループＩＤを算出する関数である。
【００２９】
そして、グループ化部１２は、空のグループ表を生成する(ステップＳ１３）。その後、グループ化部１２は、第１データ格納部１１において未処理のレコードを１つ特定する（ステップＳ１５）。さらに、グループ化部１２は、グループＩＤ生成関数により、特定されたレコードのグループＩＤを生成する（ステップＳ１７）。
【００３０】
例えばｆ（４行目レコード）＝（floor(0:03/0:01)，floor(23/12)，floor(7/12)）＝（３，１，０）が得られる。
【００３１】
そして、グループ化部１２は、グループＩＤに対応付けてレコード番号をグループ表に登録する（ステップＳ１９）。グループＩＤが登録されていない場合には、グループＩＤをグループ表に登録した上で、レコード番号をも登録する。
【００３２】
図１に示すようなデータについてこのような処理を実行すれば、図８に示すようなグループ表が生成され、グループデータ格納部１４に格納される。図８の例では、グループＩＤ毎に、当該グループに属するレコード番号が登録されるようになっている。但し、図８の例では、全てのレコードが異なるグループに所属する例を示している。
【００３３】
その後、グループ化部１２は、第１データ格納部１１において未処理のレコードが存在するか判断する（ステップＳ２１）。未処理のレコードが存在する場合には、処理はステップＳ１５に戻る。一方、未処理のレコードが存在しない場合には、処理は呼出元の処理に戻る。
【００３４】
このようにすれば、位置データ及び時刻データについて定義されている閾値を加味した形でグループ分けが行われて、以下の処理の効率化が図られる。
【００３５】
図４の処理の説明にもどって、判定部１５等は、度数分布パターンへの合致判定処理を実行する（ステップＳ３）。度数分布パターンへの合致判定処理については、図９乃至図２０を用いて説明する。
【００３６】
判定部１５は、第１データ格納部１１に格納されているレコードのうち未処理のレコードを１つ特定する（図９：ステップＳ３１）。また、判定部１５は、特定されたレコードＲのグループＩＤを、グループデータ格納部１４から取得する（ステップＳ３３）。例えば図１におけるデータの第４レコードを処理する場合には、図８から分かるように（３，１，０）が得られる。
【００３７】
その後、判定部１５は、取得されたグループＩＤの全近隣グループＩＤについて、レコード番号集合の和集合を生成する（ステップＳ３５）。近隣グループＩＤは、グループＩＤの各要素を、−１，０，＋１のいずれかを足したグループＩＤである。（３，１，０）であれば、以下の２７グループＩＤが特定される。
(2, 0, -1), (2, 0, 0), (2, 0, 1), (3, 0, -1) , (3, 0, 0), (3, 0, 1) , (4, 0, -1) , (4, 0, 0), (4, 0, 1), (2, 1, -1), (2, 1, 0), (2, 1, 1), (3, 1, -1) , (3, 1, 0), (3, 1, 1) , (4, 1, -1) , (4, 1, 0), (4, 1, 1), (2, 2, -1), (2, 2, 0), (2, 2, 1), (3, 2, -1) , (3, 2, 0), (3, 2, 1) , (4, 2, -1) , (4, 2, 0), (4, 2, 1)
【００３８】
この中で、（２，１，１）についてはレコード番号「２」が得られ、（３，１，０）についてはレコード番号「４」が得られ、（４，０，０）についてはレコード番号「３」が得られ、（４，１，０）についてレコード番号「５」が得られる。
【００３９】
そして、判定部１５は、生成された和集合から、未処理のレコードを１つ特定する（ステップＳ３７）。例えば、レコード番号「２」のレコードが特定されたものとする。
【００４０】
その後、判定部１５は、レコードＲ（レコード番号「４」のレコード）と、特定されたレコードとの距離を算出する（ステップＳ３９）。
【００４１】
本実施の形態では、空間についての距離にはユークリッド距離を用いる。よって、空間における距離は、｛（１４−２３）2＋（１２−７）2｝1/2＝（１０６）1/2となる。但し、マンハッタン距離を用いても良い。さらに、時間についての距離（ここでは時間差）は、｜０：０２−０：０３｜＝０．０１となる。時空間の距離を、予め定められている距離算出式に応じて算出するようにしても良い。
【００４２】
なお、例えば第２データ格納部１７に、図１０に示すようなデータを格納しておく。図１０の例では、レコードの組み合わせ毎に、空間距離及び時間距離を登録する。後の処理で再利用するためである。空間距離だけを後に再利用するのであれば、空間距離だけ格納しておく場合もある。
【００４３】
処理は端子Ａを介して図１１の処理に移行して、判定部１５は、ステップＳ３９で算出された距離が閾値以内であるか判断する（ステップＳ４１）。例えば、空間距離についての閾値が１２で時間距離についての閾値が０：０１である場合には、レコード番号「２」のレコードは上で述べた計算からすると距離が閾値以内であると判定される。
【００４４】
一方、例えば図１におけるデータの第３レコードと第４レコードとの時間距離は｜０：０４−０：０３｜＝０：０１であるが、空間距離は｛（８−２３）2＋（７−７）2｝1/2＝１５となるので、距離が閾値以内とは言えない。
【００４５】
距離が閾値以内であると判断された場合には、判定部１５は、レコードＲに対応付けて、特定されたレコードのレコード番号を登録する（ステップＳ４３）。例えば、図１２に示すようなデータが、第２データ格納部１７に格納される。図１２の例では、図１に示されたデータのコピーと、第４レコードに対応付けて、レコード番号「２」がレコード番号集合の要素として登録されている。そして処理はステップＳ４５に移行する。一方、ステップＳ４１で距離が閾値以内ではないと判断された場合には、処理はステップＳ４５に移行する。
【００４６】
そして、判定部１５は、和集合において未処理のレコードが存在するか判断する（ステップＳ４５）。和集合に未処理のレコードが存在する場合には、処理は端子Ｂを介して図９のステップＳ３７にもどる。一方、和集合に未処理のレコードが存在しない場合には、処理はステップＳ４７に移行する。
【００４７】
ここまで処理を実行すると、第４レコードについての距離についての判定処理が完了することになり、第２レコード、第４レコード及び第５レコードが、距離が閾値以内であることが判定され、レコード番号集合は｛２，４，５｝となる。なお、他のレコードについて処理すると、図１３に示すように、距離が閾値以内であると判定されたレコード番号集合が得られる。
【００４８】
その後、判定部１５は、レコードＲに対応付けられているレコード番号集合についてＩＤの度数分布が、設定データ格納部１３に格納されている度数分布パターンに合致するか否かを判定する（ステップＳ４７）。本実施の形態では、ｌ多様性、すなわちＩＤがｌ種類以上含まれているという度数分布パターン、又は度数が多い順に上位ｌ種類のＩＤについて、１つ上位の度数のｂ（ｂは１以下の実数）倍以上の度数が存在するという度数分布パターンのいずれか指定された度数分布パターンに合致するか判断する。
【００４９】
例えばｌ＝３でｂ＝０．５であるとする。この場合、第４レコードについては、レコード番号集合に３つのレコード番号が登録されており、第２レコードのＩＤはc1であり、第４レコードのＩＤはc2であり、第５レコードのＩＤはc3であるので、度数分布は｛c1:1，c2:1，c3:1｝であるから、３つのＩＤについて１つ上位の度数の０．５倍以上の度数が存在するのが分かる。従って、指定度数分布パターンに合致することが分かる。
【００５０】
一方、レコード番号集合に３以上のレコード番号が含まれないレコードについては指定度数分布パターンに合致しないことになる。図１３の場合、例えば第１レコード及び第３レコードの場合、指定度数分布パターンに合致しない。また、第２レコードの場合、度数分布は｛c1:2，c3:1｝であるから、ｌ＝３の条件を満たさないので、指定度数分布パターンに合致しない。
【００５１】
その後、指定度数分布パターンに度数分布が合致すると判定されると（ステップＳ４９：Ｙｅｓルート）、判定部１５は、処理対象のレコードＲのレコード番号及びレコード番号集合に含まれるレコードのデータを生成部１６に出力して、生成部１６に対して変換後データ生成処理を実行させる（ステップＳ５１）。変換後データ生成処理については、図１４乃至図１８を用いて説明する。なお、生成部１６は、設定データ格納部１３に格納されている変換方法のデータに従って以下の処理を実施する。すなわち、別の変換方法が指定された場合には、異なる処理が行われる。
【００５２】
生成部１６は、レコード番号集合から、レコードＲと同一のＩＤを有するレコードのレコード番号を削除する（ステップＳ６１）。レコード番号集合｛２，４，５｝の場合、レコード番号「４」のＩＤ「c2」と同じＩＤを有するレコードのレコード番号が削除され、｛２，５｝というレコード番号集合になる。
【００５３】
また、生成部１６は、ステップＳ６１で処理されたレコード番号集合に含まれるレコードのうち、レコードＲに空間距離が最も近いレコードＮＰを特定する（ステップＳ６３）。例えば、図１０に示すようなデータを保持しておけば、空間距離が最も近いレコードＮＰが特定される。なお、空間距離が同じレコードが複数存在する場合には、時間距離に基づきＮＰを選択するようにしても良い。
【００５４】
さらに、生成部１６は、レコード番号集合に含まれるレコードについての位置及び時刻の平均値ＡＰを算出する（ステップＳ６５）。上で述べた例では、（時刻，Ｘ，Ｙ）＝（０：０３，１６．５，７．５）が得られる。
【００５５】
そして、生成部１６は、ＮＰとＡＰを結ぶ線分上の点をランダムに選択することで、変換後データＣＲを生成し、レコードＲに対応付けて第２データ格納部１７に格納する（ステップＳ６７）。なお、この際、空間距離の閾値等をも併せて登録する。例えば、図１５のようなデータが、第２データ格納部１７に格納される。図１５の例では、ＩＤと、時刻と、緯度経度Ｘ及びＹと、速度と、変換後データＣＲと、空間距離閾値とが登録されるようになっている。なお、度数分布パターンに合致するのは上で述べたように第４レコード及び第５レコードのみであり、両者とも、ステップＳ６７では、ＣＲ＝ＡＰとなっている例を示している。
【００５６】
ＩＤが異なるレコードの平均値を取ることは、特性の強い数値をより特性の弱い数値に変換する効果がある。ただし、平均値は可逆性が強く、どのレコードも削除されなかった場合は元のデータを復元し得るという問題がある。乱数成分を入れる、すなわちＮＰとＡＰを結ぶ線分上の点をランダムに１つ選択することで、この問題を緩和する効果が得られる。
【００５７】
なお、端点の１つとしてＮＰ（空間的に近い点）としているのは、特性の強い点があったことをできるだけ推定されないようにするためである。具体的には、特性の強い点は空間的に孤立しがちで、そのＮＰは特性の強い点になりにくいため、特性の強い点の近くに変換されにくくなる。
【００５８】
例えば図１６に示すようなレコード分布の状況において、レコードＲ１及びＲ２を円で示した距離範囲内で変換するとする。なお、各×が１レコードの空間位置を表しており、「c1」乃至「c3」はそれぞれのレコードのＩＤを示す。
【００５９】
上で述べた処理をレコードＲ１について実施すると、ＩＤがc1のレコードは除外されるので、ＩＤがc2及びc3のレコードから、図１７に示すようにＮＰを特定し、ＡＰを算出することになる。レコードＲ１は、空間的に孤立した傾向があるが、ＮＰ−ＡＰ間でＣＲを選択するとすると、変換によってその傾向が緩和されていることが分かる。すなわち、多くのレコードが存在する道路上のレコードに変換される。
【００６０】
一方、レコードＲ２についてＮＰを特定し、ＡＰを算出すると、図１８のようになる。レコードＲ２は、レコードＲ１とＩＤが異なるレコードのうちＲ１から最も近いレコード（すなわちレコードＲ１のＮＰ）であるが、変換によってもレコードＲ１に近づき過ぎず多くのレコードが存在する道路上に残ることがわかる。
【００６１】
このように、孤立傾向のあるレコードを他のＩＤのレコード側に引き寄せることで、特性の強い点が推定しにくくなる。一方、孤立傾向のないレコードも、孤立したレコード側に大きく引き寄せられるわけではないので、孤立傾向のあるレコードを推定し易くするわけではない。
【００６２】
図１１の処理の説明に戻って、ステップＳ５１の後に又はステップＳ４９で指定度数分布パターンに合致しない場合には、判定部１５は、第１データ格納部１１において未処理のレコードが存在するか判断する（ステップＳ５３）。未処理のレコードが存在しない場合には、処理は呼出元の処理に戻る。一方、未処理のレコードが存在する場合には、処理は端子Ｃを介して図９のステップＳ３１に戻る。
【００６３】
図１５に示されているように、指定度数分布パターンに合致する度数分布が得られたレコードに対しては、ＣＲ及び空間距離閾値が登録される。
【００６４】
図４の処理の説明に戻って、変換処理部１８は、第２データ格納部１７に格納されているデータを用いて、第１データ格納部１１に格納されているデータに対して、データ変換処理を実行する（ステップＳ５）。このデータ変換処理については、図１９及び図２０を用いて説明する。
【００６５】
変換処理部１８は、第１データ格納部１１における未処理のレコードを１つ特定する（ステップＳ７１）。そして、変換処理部１８は、特定されたレコードに対して、第２データ格納部１７において変換後データＣＲが設定されているか判断する（ステップＳ７３）。特定されたレコードに対して変換後データＣＲが設定されていない場合には、変換処理部１８は、特定されたレコードを削除する（ステップＳ７５）。そして処理はステップＳ７９に移行する。
【００６６】
一方、特定されたレコードに対して変換後データＣＲが設定されている場合には、変換処理部１８は、特定されたレコードの位置及び時刻を、変換後データＣＲの位置及び時刻で置換して、匿名化データ格納部１９に格納する（ステップＳ７７）。なお、この際、空間距離閾値の値も付加する。
【００６７】
そして、変換処理部１８は、第１データ格納部１１において未処理のレコードが存在しているか判断する（ステップＳ７９）。未処理のレコードが存在する場合には処理はステップＳ７１に戻る。
【００６８】
このような処理を実行すると、例えば図２０に示すようなデータが、匿名化データ格納部１９に格納される。図２０の例では、ＩＤと、変換後の時刻と、変換後の緯度経度Ｘ及びＹと、速度と、空間距離閾値とを含む。上の例では、第４及び第５レコードのみが格納されることになる。
【００６９】
さらに、変換処理部１８は、匿名化データ格納部１９に格納されているデータから、設定データ格納部１３において指定されている機密属性値であるＩＤを削除する（ステップＳ８１）。これによって、匿名化がなされたことになる。そして処理は呼出元の処理に戻る。
【００７０】
そして、図４の処理の説明に戻って、出力部２０は、匿名化データ格納部１９に格納されているデータを、表示装置などの出力装置に出力するか、又は要求に応じて他のコンピュータなどに出力する（ステップＳ７）。
【００７１】
例えば、図２１に示すような表示がなされる。図２１では、匿名化データ格納部１９に格納されているレコードを×印で、地図データ上に示した例を示している。この例では、便宜的にＩＤを示しているが、ＩＤは削除されているので出力されることはない。また、c1駐車場や当該駐車場に続く道にはレコードが存在していないように示されている。これによって、ＩＤが推定される恐れも少なくなっている。なお、図２１において円は、c3のレコードに設定されている空間距離閾値を示している。これによって、真の値が存在する範囲を提示することができる。例えば、c3をユーザが選択した場合には、図２１に示すように表示し、c2をユーザが選択した場合には、c2を中心とした空間距離閾値の円を提示することで、c2の真の値が存在する範囲を提示するようにしても良い。
【００７２】
以上のような処理を実行することで、数値属性値を含むデータを、ＩＤなどの機密情報を推定できないようにした上で匿名化することができるようになる。
【００７３】
以上本技術の実施の形態を説明したが、本技術はこれに限定されるわけではない。例えば、機能ブロック図は、一例であって、プログラムモジュール構成とは一致しない場合もある。処理フローについても、処理結果が変わらない限りにおいて、処理ステップの順番を入れ替えたり、並列処理しても良い場合がある。
【００７４】
なお、空間距離と時間距離とを分けて取り扱う場合を示したが、統合した距離を取り扱うようにしても良い。
【００７５】
なお、上で述べた情報処理装置１００は、例えばコンピュータ装置であって、図２２に示すように、メモリ２５０１とＣＰＵ２５０３とハードディスク・ドライブ（ＨＤＤ）２５０５と表示装置２５０９に接続される表示制御部２５０７とリムーバブル・ディスク２５１１用のドライブ装置２５１３と入力装置２５１５とネットワークに接続するための通信制御部２５１７とがバス２５１９で接続されている。オペレーティング・システム（ＯＳ：Operating System）及び本実施例における処理を実施するためのアプリケーション・プログラムは、ＨＤＤ２５０５に格納されており、ＣＰＵ２５０３により実行される際にはＨＤＤ２５０５からメモリ２５０１に読み出される。ＣＰＵ２５０３は、アプリケーション・プログラムの処理内容に応じて表示制御部２５０７、通信制御部２５１７、ドライブ装置２５１３を制御して、所定の動作を行わせる。また、処理途中のデータについては、主としてメモリ２５０１に格納されるが、ＨＤＤ２５０５に格納されるようにしてもよい。本技術の実施例では、上で述べた処理を実施するためのアプリケーション・プログラムはコンピュータ読み取り可能なリムーバブル・ディスク２５１１に格納されて頒布され、ドライブ装置２５１３からＨＤＤ２５０５にインストールされる。インターネットなどのネットワーク及び通信制御部２５１７を経由して、ＨＤＤ２５０５にインストールされる場合もある。このようなコンピュータ装置は、上で述べたＣＰＵ２５０３、メモリ２５０１などのハードウエアとＯＳ及びアプリケーション・プログラムなどのプログラムとが有機的に協働することにより、上で述べたような各種機能を実現する。
【００７６】
以上述べた本実施の形態をまとめると、以下のようになる。
【００７７】
本実施の形態に係る匿名化データ生成方法は、（Ａ）各々機密属性値と数値属性値とを含む複数のデータブロックを格納するデータ格納部に格納された複数のデータブロックの各々について、当該データブロックに含まれる数値属性値に基づき数値属性に応じて定義される距離が閾値以内となるデータブロックの集合を生成し、（Ｂ）複数のデータブロックの各々について、当該データブロックと当該データブロックについて生成された集合に含まれるデータブロックとの機密属性値の度数分布が、所定の条件を満たしているか判断し、（Ｃ）度数分布が所定の条件を満たしているデータブロックについては、当該データブロックについて生成された集合に含まれるデータブロックの数値属性値から第２の数値属性値を生成し、（Ｄ）度数分布が所定の条件を満たしているデータブロックにおける数値属性値を、当該データブロックについて生成した第２の数値属性値で置換する処理を含む。
【００７８】
このようにすれば、数値属性値から機密属性値を推定しづらくなるため、適切なデータ匿名化が行われる。なお、本匿名化データ生成方法は、（Ｅ）度数分布が所定の条件を満たさないデータブロックについては削除する処理をさらに含むようにしても良い。
【００７９】
上で述べた集合を生成する処理は、（ａ１）複数のデータブロックの各々について、閾値に基づき決定される複数の領域のうち当該データブロックの数値属性値が入る領域の識別子を特定し、（ａ２）複数のデータブロックの各々について、当該データブロックについて特定された識別子に基づき、距離を算出すべき候補データブロックを抽出し、（ａ３）複数のデータブロックの各々について、当該データブロックについて抽出された候補データブロックの各々との距離が閾値以内であるか判断する処理を含むようにしても良い。
【００８０】
このような処理を行えば、処理の高速化が図られる。
【００８１】
また、本匿名化データ生成方法が、第２の数値属性値で数値属性値が置換されたデータブロックから機密属性値を削除する処理をさらに含むようにしても良い。完全な匿名化がなされる。
【００８２】
さらに、上で述べた数値属性値が、位置データを含む場合がある。この場合、数値属性に応じて定義される距離が、空間における距離、ユークリッド距離又はマンハッタン距離である場合もある。位置データを適切に処理できるようになる。
【００８３】
また、上で述べた数値属性値が、時刻データを含む場合もある。この場合、数値属性に応じて定義される距離が、時間間隔を含む場合もある。このように、空間距離と時間距離とを分けて距離を算出する場合もある。
【００８４】
また、上で述べた所定の条件が、機密属性値が所定種類以上であるという条件、又は度数が多い順に上位所定個数の各機密属性値について１つ上位の度数の所定倍以上の度数があるという条件を含む場合がある。これによって機密属性値を推定しづらくすることができる。
【００８５】
さらに、上で述べた第２の数値属性値を生成する処理が、上記集合のうち処理に係るデータブロックと同一の機密属性値を有するデータブロックを除外したデータブロック群のうち最も距離が短いデータブロックの数値属性値とデータブロック群の数値属性値の統計量とから第２の数値属性値を生成する処理を含むようにしても良い。これによって、特性の強いデータブロックの影響を抑制することができるようになる。
【００８６】
なお、上で述べた統計量が平均値である場合もある。この場合、第２の数値属性値を、最も距離が短いデータブロックの数値属性値とデータブロック群の数値属性値の平均値との間の数値属性値を乱数で特定するようにしても良い。これによって、匿名化が十分に図られるようになる。
【００８７】
なお、本匿名化データ生成方法は、第２の数値属性値で数値属性値が置換されたデータブロックに対して、当該データブロックが存在しうる範囲を表すデータを付加する処理をさらに含むようにしても良い。これによって、データブロックが存在する可能性のある範囲をも把握できるようになる。
【００８８】
なお、上で述べたような処理をコンピュータに実施させるためのプログラムを作成することができ、当該プログラムは、例えばフレキシブル・ディスク、ＣＤ−ＲＯＭなどの光ディスク、光磁気ディスク、半導体メモリ（例えばＲＯＭ）、ハードディスク等のコンピュータ読み取り可能な記憶媒体又は記憶装置に格納される。なお、処理途中のデータについては、ＲＡＭ等の記憶装置に一時保管される。
【００８９】
以上の実施例を含む実施形態に関し、さらに以下の付記を開示する。
【００９０】
（付記１）
各々機密属性値と数値属性値とを含む複数のデータブロックを格納するデータ格納部に格納された前記複数のデータブロックの各々について、当該データブロックに含まれる数値属性値に基づき数値属性に応じて定義される距離が閾値以内となるデータブロックの集合を生成し、
前記複数のデータブロックの各々について、当該データブロックと当該データブロックについて生成された前記集合に含まれるデータブロックとの機密属性値の度数分布が、所定の条件を満たしているか判断し、
前記度数分布が前記所定の条件を満たしているデータブロックについては、当該データブロックについて生成された前記集合に含まれるデータブロックの数値属性値から第２の数値属性値を生成し、
前記度数分布が前記所定の条件を満たしているデータブロックにおける数値属性値を、当該データブロックについて生成した前記第２の数値属性値で置換する
処理を含み、コンピュータにより実行される匿名化データ生成方法。
【００９１】
（付記２）
前記度数分布が前記所定の条件を満たさないデータブロックについては削除する処理
をさらに含む付記１記載の匿名化データ生成方法。
【００９２】
（付記３）
前記集合を生成する処理は、
前記複数のデータブロックの各々について、前記閾値に基づき決定される複数の領域のうち当該データブロックの数値属性値が入る領域の識別子を特定し、
前記複数のデータブロックの各々について、当該データブロックについて特定された識別子に基づき、距離を算出すべき候補データブロックを抽出し、
前記複数のデータブロックの各々について、当該データブロックについて抽出された前記候補データブロックの各々との前記距離が前記閾値以内であるか判断する
処理を含む付記１又は２記載の匿名化データ生成方法。
【００９３】
（付記４）
前記第２の数値属性値で前記数値属性値が置換されたデータブロックから前記機密属性値を削除する
処理をさらに含む付記１乃至３のいずれか１つ記載の匿名化データ生成方法。
【００９４】
（付記５）
前記数値属性値が、位置データを含み、
前記数値属性に応じて定義される距離が、空間における距離、ユークリッド距離又はマンハッタン距離である
付記１乃至４のいずれか１つ記載の匿名化データ生成方法。
【００９５】
（付記６）
前記数値属性値が、時刻データを含み、
前記数値属性に応じて定義される距離が、時間間隔を含む
付記５記載の匿名化データ生成方法。
【００９６】
（付記７）
前記所定の条件が、前記機密属性値が所定種類以上であるという条件、又は度数が多い順に上位所定個数の各機密属性値について１つ上位の度数の所定倍以上の度数があるという条件を含む
付記１乃至６のいずれか１つ記載の匿名化データ生成方法。
【００９７】
（付記８）
前記第２の数値属性値を生成する処理が、
前記集合のうち処理に係るデータブロックと同一の機密属性値を有するデータブロックを除外したデータブロック群のうち最も距離が短いデータブロックの数値属性値と前記データブロック群の数値属性値の統計量とから第２の数値属性値を生成する
処理を含む付記１乃至７のいずれか１つ記載の匿名化データ生成方法。
【００９８】
（付記９）
前記統計量が平均値であり、
前記第２の数値属性値を、前記最も距離が短いデータブロックの数値属性値と前記データブロック群の数値属性値の平均値との間の数値属性値を乱数で特定する
付記８記載の匿名化データ生成方法。
【００９９】
（付記１０）
前記第２の数値属性値で前記数値属性値が置換されたデータブロックに対して、当該データブロックが存在しうる範囲を表すデータを付加する
処理をさらに含む付記１乃至９のいずれか１つ記載の匿名化データ生成方法。
【０１００】
（付記１１）
各々機密属性値と数値属性値とを含む複数のデータブロックを格納するデータ格納部に格納された前記複数のデータブロックの各々について、当該データブロックに含まれる数値属性値に基づき数値属性に応じて定義される距離が閾値以内となるデータブロックの集合を生成し、
前記複数のデータブロックの各々について、当該データブロックと当該データブロックについて生成された前記集合に含まれるデータブロックとの機密属性値の度数分布が、所定の条件を満たしているか判断し、
前記度数分布が前記所定の条件を満たしているデータブロックについては、当該データブロックについて生成された前記集合に含まれるデータブロックの数値属性値から第２の数値属性値を生成し、
前記度数分布が前記所定の条件を満たしているデータブロックにおける数値属性値を、当該データブロックについて生成した前記第２の数値属性値で置換する
処理を、コンピュータに実行させるための匿名化データ生成プログラム。
【０１０１】
（付記１２）
各々機密属性値と数値属性値とを含む複数のデータブロックを格納するデータ格納部に格納された前記複数のデータブロックの各々について、当該データブロックに含まれる数値属性値に基づき数値属性に応じて定義される距離が閾値以内となるデータブロックの集合を生成する手段と、
前記複数のデータブロックの各々について、当該データブロックと当該データブロックについて生成された前記集合に含まれるデータブロックとの機密属性値の度数分布が、所定の条件を満たしているか判断する手段と、
前記度数分布が前記所定の条件を満たしているデータブロックについては、当該データブロックについて生成された前記集合に含まれるデータブロックの数値属性値から第２の数値属性値を生成する手段と、
前記度数分布が前記所定の条件を満たしているデータブロックにおける数値属性値を、当該データブロックについて生成した前記第２の数値属性値で置換する手段と、
を有する情報処理装置。
【符号の説明】
【０１０２】
１１  第１データ格納部
１２  グループ化部
１３  設定データ格納部
１４  グループデータ格納部
１５  判定部
１６  生成部
１７  第２データ格納部
１８  変換処理部
１９  匿名化データ格納部
２０  出力部
【図１】
2014109934.tif 000003
【図２】
2014109934.tif 000004
【図３】
2014109934.tif 000005
【図４】
2014109934.tif 000006
【図５】
2014109934.tif 000007
【図６】
2014109934.tif 000008
【図７】
2014109934.tif 000009
【図８】
2014109934.tif 000010
【図９】
2014109934.tif 000011
【図１０】
2014109934.tif 000012
【図１１】
2014109934.tif 000013
【図１２】
2014109934.tif 000014
【図１３】
2014109934.tif 000015
【図１４】
2014109934.tif 000016
【図１５】
2014109934.tif 000017
【図１６】
2014109934.tif 000018
【図１７】
2014109934.tif 000019
【図１８】
2014109934.tif 000020
【図１９】
2014109934.tif 000021
【図２０】
2014109934.tif 000022
【図２１】
2014109934.tif 000023
【図２２】
2014109934.tif 000024