(57)【特許請求の範囲】
【請求項１】
個人情報を匿名化するための個人情報匿名化装置は、
属性ごとの属性値から成る個人情報タプルを各個人について含んだ個人管理情報と、各属性の属性値をどのように曖昧化するかを規定する一般化階層と、前記一般化階層の節点集合として規定される各属性の曖昧化方針における複数の属性に関する直積集合の各要素についてのその時点までに頻度取得を終えた個人情報の頻度情報と、頻度取得を終えた個人情報について開示可能な前記直積集合とを記憶する記憶手段と、
前記直積集合間に定義される半順序において最下位に位置づけられる１つ以上の直積集合について前記記憶手段に格納された個人情報の前記直積集合の各要素に相当する頻度をカウントし、前記直積集合に含まれるすべての要素の頻度が所定のしきい値よりも大きいときには前記直積集合に係る頻度情報を前記半順序で隣接上位にある直積集合についての頻度情報をカウントするように変更し、前記変更前の直積集合を開示可能として前記記憶手段に記憶し、記憶された前記開示可能な直積集合によって規定される再符号化を行うことで、同一の値のタプルを有する個人の総数が所定のしきい値以上となるように、各個人情報タプルを匿名化する匿名化手段とを有することを特徴とする個人情報匿名化装置。
【請求項２】
前記匿名化手段が、過去に出力した匿名化データを作成するうえで利用した再符号化方針を規定する直積集合よりも、前記半順序において上位に位置づけられる直積集合によって規定される再符号化方針を用いて再符号化を行うことを特徴とする請求項１記載の個人情報匿名化装置。
【請求項３】
前記記憶手段が個人情報の頻度情報を記憶する際に、同時にその頻度を構成する個人へのポインタなどの識別情報を記憶する、ことを特徴とする請求項１及び２のいずれかに記載の個人情報匿名化装置。
【請求項４】
ＣＰＵと記憶装置を有する計算機における個人情報匿名化方法であって、
前記ＣＰＵは、
前記記憶装置に記憶した属性の属性値をどのように曖昧化するかを規定する一般化階層と、一般化階層の節点集合として規定される各属性の曖昧化方針における複数の属性に関する直積集合の各要素についてのその時点までに頻度取得を終えた個人情報の頻度情報と、頻度取得を終えた個人情報について開示可能な前記直積集合とを参照し、
属性ごとの属性値から成る個人情報タプルを各個人について含んだ個人管理情報における各個人情報タプルを、前記直積集合間に定義される半順序において最下位に位置づけられる１つ以上の直積集合の各要素について、前記個人管理情報に含まれる頻度をカウントし、前記直積集合に含まれるすべての要素の頻度が所定のしきい値よりも大きいときには前記直積集合に係る頻度情報を前記半順序で隣接上位にある直積集合についての頻度情報をカウントするように変更し、前記変更前の直積集合を開示可能として、前記開示可能な直積集合によって規定される再符号化を行うことで、同一の値のタプルを有する個人の総数が所定のしきい値以上となるように匿名化する、ことを特徴とする個人情報匿名化方法。
【請求項５】
個人情報を匿名化するための個人情報匿名化装置は、
匿名化の対象となる個人情報を含む個人管理情報と、匿名化を規定する一般化階層と、複数の属性に関する頻度情報と、前記属性の直積集合とを記憶する記憶手段と、
前記一般化階層に従った前記属性の直積集合の要素に対応した前記頻度情報に基づいて、前記個人管理情報の匿名化を行なう匿名化手段とを有し、
前記匿名化手段は、
前記直積集合間に定義される半順序において最下位に位置づけられる１つ以上の直積集合について前記記憶手段に格納された個人情報の前記直積集合の各要素に相当する頻度をカウントし、前記直積集合に含まれるすべての要素の頻度が所定のしきい値よりも大きいときには前記直積集合に係る頻度情報を前記半順序で隣接上位にある直積集合についての頻度情報をカウントするように変更し、前記変更前の直積集合を開示可能として前記記憶手段に記憶する件数カウント手段と、
記憶された前記開示可能な直積集合によって規定される再符号化を行うことで、同一の値のタプルを有する個人の総数が所定のしきい値以上となるように、各個人情報タプルを匿名化する再符号化手段とを有することを特徴とする個人情報匿名化装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、個人情報の匿名化に関するものである。
【背景技術】
【０００２】
個人にまつわる膨大なデータの集積化が進む昨今、個人情報を扱う企業にとってはプライバシへの配慮が必要不可欠なものになっている。個人情報取り扱い事業者は、少なくとも個人情報の保護に関する法律（以下、保護法）や関係法令の遵守が必須となっている。保護法は、個人情報の収集や利用等に対して、管理対応を義務付けており、さらにその具体的な措置を各省庁のガイドラインが規定している。
【０００３】
これらのガイドラインが規定する管理措置の１つに個人情報の匿名化がある。例えば、厚生労働省は医療に関する個人情報の第三者提供、学会発表、医療事故報告等において、特段の必要がない限りはこれを匿名化することを求めている。また、経済産業省でも個人情報の匿名化を第三者提供時の望ましい措置として挙げている。
【０００４】
最も単純な個人情報匿名化の処理は、個人を識別可能な情報を当該個人情報から取り除くこと、または曖昧にすることである。前者の例としては、氏名や住所を取り除く処理が、後者の例としては住所を都道府県単位に変換する、年齢を１０歳刻みに変換するなどの処理が該当する。以降、曖昧化対象をその度合いに応じて木構造で表現したものを一般化階層と呼ぶ。
【０００５】
しかし、上述の匿名化処理を行っても、個人に関する複数の属性を組み合わせることで個人を識別できてしまう場合がある。例えば、都道府県単位の住所と１０歳刻みの年齢でも極稀な組み合わせであれば個人を特定できる。このように、匿名化では、より確実に識別可能性を除去することが望まれる。
【０００６】
識別可能性を除去するための技術として、しきい値を設定し、個人情報データに含まれる任意の属性値の組み合わせがデータ中にしきい値以上存在することを保証した匿名データを生成する匿名化技術がある。本発明もこの種の匿名化技術に属する。この種の匿名化技術は、特許文献１や非特許文献１に記載されている。
【０００７】
特許文献１には、属性に対して開示したい優先順位をつけ、上記しきい値件数以上の同一属性地の組み合わせがデータ中に存在するような複数の匿名化データに対し評価ポイントを算出し、評価ポイントを最小化するよう匿名化を行う方法が記されている。
【０００８】
非特許文献１には、一般化階層を用いて個人情報データ中の属性値を曖昧にすることで、開示したデータ中に出現する任意の属性値の組み合わせが少なくともしきい値件数出現することを保証する方法が記載されている。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特開２０１１−１１３２８５号公報
【非特許文献】
【００１０】
【非特許文献１】K． LeFevre， D． J． DeWitt， and R． Ramakrishnan，“Incognito: Efficient Full-Domain K-Anonymity，”2005 ACM SIGMOD International Conf． Management of Data，pp．49‐60，2005
【発明の概要】
【発明が解決しようとする課題】
【００１１】
特許文献１、及び非特許文献１の技術は、複数件数ある個人情報をまとめて一度に処理することで匿名化データを得る静的な匿名化を実現する。しかし、近年のデータはクラウドコンピューティングなどの情報技術の発展により、時々刻々と蓄積されるようなものが増加している。このように件数が増加したデータを再度匿名化する場合、従来の技術を用いると、初めから全件匿名化し直すより外はなかった。
【００１２】
したがって、本発明の目的は、増加する個人の個人情報を、できるだけ増分だけを処理することでオンライン（ここでオンラインとは、個人情報の増分を中心に参照することを指す）の適切な匿名化を行うことにある。
【課題を解決するための手段】
【００１３】
個人情報匿名化手段が、記憶手段と、匿名化手段を有する。記憶手段が、個人管理情報と、個人管理情報を構成する各属性値をどのように曖昧化（匿名化）するかを規定する一般化階層情報と、一般化階層情報によって規定される属性値の組み合わせが個人管理情報内に含まれる個人について何件含まれるかを表す頻度情報と、複数の匿名化された個人情報に対応する、異なる個人の数が所定のしきい値以上であることを規定した匿名化方針を記憶する。匿名化手段が、記憶された頻度情報を利用することで高速に匿名化方針を更新し、更新された匿名化方針に従って各個人情報を匿名化する。
【発明の効果】
【００１４】
増加する個人情報の増分を中心に処理することで、オンラインの高速な匿名化処理を適切に行うことができる。
【図面の簡単な説明】
【００１５】
【図１】本発明の実施例１及び２に係る個人情報匿名化装置が適用された計算機の構成例を示す。
【図２】実施例１及び２に係る個人情報テーブル１３１の一例を示す。
【図３】実施例１及び２に係る最小同値件数情報１３３の一例を示す。
【図４Ａ】実施例１及び２に係る一般化階層テーブル群１３４の一例を示す。
【図４Ｂ】実施例１及び２に係る一般化階層テーブル群１３４の一例を示す。
【図４Ｃ】実施例１及び２に係る一般化階層テーブル群１３４の一例を示す。
【図５Ａ】図４Ｂに示される一般化階層をストレージに格納するための模式図を示す。
【図５Ｂ】図４Ｂに示される一般化階層をメモリに格納するための模式図を示す。
【図６Ａ】実施例１及び実施例２に係る頻度情報テーブル群１３５の一例を示す。
【図６Ｂ】実施例１及び実施例２に係る頻度情報テーブル群１３５の一例を示す。
【図７】実施例１に係る匿名化方針テーブル１３６の一例を示す。
【図８】実施例１に係る匿名化データテーブル１３２の一例を示す。
【図９】実施例１及び実施例２に係る計算機１００が実行する処理の全体の流れの一例を示す。
【図１０Ａ】実施例１及び実施例２に係る計算機１００が実行する処理の全体の流れの一例を示す。
【図１０Ｂ】実施例１及び実施例２に係る計算機１００が実行する処理全体の流れの一例を示す。
【図１１】実施例１及び実施例２に係る計算機１００が実行する処理全体の流れの一部の一例を示す。
【図１２】図９、図１０Ａ、及び図１１のＳ９０２の詳細な流れの一例を示す。
【図１３】図９、図１０ＢのＳ９０３の詳細な流れの一例を示す。
【図１４】図１３のＳ１３０２の詳細な流れの一例を示す。
【図１５Ａ】Ｓ１３０２の詳細な流れの一例を示す。
【図１５Ｂ】図１５Ａに示すＳ１３０２の詳細な流れを実現するうえで、利用者に問い合わせを行い結果を取得するために表示する画面の一例を示す。
【図１６】実施例２で問題とするリスクの一例を示す。
【図１７】実施例２に係る図９、図１０Ａ、及び図１１のＳ９０２の詳細な流れの一例を示す。
【発明を実施するための形態】
【００１６】
以下，本発明の幾つかの実施例を、図面を参照して詳細に説明する。
【００１７】
なお、以下の説明では「ｘｘｘテーブル」の表現にて各種情報を説明することがあるが、各種情報は、テーブル以外のデータ構造で表現されていてもよい。データ構造に依存しないことを示すために「ｘｘｘテーブル」を「ｘｘｘ情報」と呼ぶこともある。
【００１８】
また、以下の説明では、要素を特定するためにＩＤ（識別子）として「＃」が使用されるが、識別情報として名前など「＃」以外のものが使用されてもよい。
【００１９】
また、以下の説明では、「プログラム」がプロセッサ（たとえばＣＰＵ(Central Processing Unit)）によって実行されることで発揮される機能を、処理を意味するものとして説明することがあるが、定められた処理を、適宜に記憶資源（たとえばメモリ）及び／または通信インタフェース装置（たとえば通信ポート）を用いながら行うため、処理の主体がプロセッサとされてもよい。プロセッサは、プロセッサが行う処理の一部または全部を行うハードウェア回路を含んでもよい。コンピュータプログラムは、プログラムソースから各計算機にインストールされてもよい。プログラムソースは、たとえば、プログラム配布サーバまたは記憶メディアであってもよい。
【００２０】
また、以下のすべての実施例は、主に電子的な形態の個人情報を保護する技術にある。以下のすべての実施例において、個人情報として個人（小学生）の性別、学年、得意科目からなるデータをサンプルとして利用する。しかし、本発明の適用できる個人情報はこれに限られるものではない。以下のすべての実施例において、個人情報の匿名化とは、情報主体（情報提供の個人）を一意に識別できないように上記の個人情報（性別、学年、得意科目）を変換する処理をいう。また、再符号化とは、個人情報に含まれる、個人を構成する各属性（性別、学年、得意科目）の属性値をより曖昧な概念（匿名化された値）へと置き換える（匿名化を行なう）ことをいう。以下のすべての実施例において、元の個人情報に含まれる属性値を置き換えた曖昧な概念（匿名化された値）を準属性値と呼ぶことがある。また、説明の簡単のため、準属性値を含めて属性値と呼ぶことがある。以下では、「曖昧化」と「匿名化」とは同じことを意味する。また、「一般化階層」とは曖昧化対象をその度合いに応じて木構造で表現したものである。
＜実施例１＞
図１は、本発明の実施例１に係る個人情報匿名化装置が適用された計算機の構成例を示す。
【００２１】
計算機１００は、情報処理装置であり、たとえばＰＣ（Personal Computer）、サーバあるいはワークステーションである。計算機１００は、ＣＰＵ（Central Processing Unit）１０１、メモリ１０２、ストレージ１０３、入力装置１０４、出力装置１０５及び通信装置１０６を有する。これらはすべて、バスなどの内部通信線１０７によって互いに接続されている。
【００２２】
ストレージ１０３は、たとえばＣＤ−Ｒ（Compact Disc Recordable）やＤＶＤ−ＲＡＭ（Digital Versatile Disk Random Access Memory）、シリコンディスクなどの記憶メディア及び当該記憶メディアの駆動装置、ＨＤＤ（Hard Disk Drive）などである。ストレージ１０３は、個人情報テーブル１３１、匿名化データテーブル１３２、最小同値件数情報１３３、一般化階層テーブル群１３４、頻度情報テーブル群１３５、匿名化方針テーブル１３６、及びプログラム１５１を記憶する。
（本発明における匿名化の概要）
個人情報テーブル１３１は、個人に関する情報（本実施例では小学生の性別、学年、得意科目から成る）を格納する。時間がたつにつれて件数が増大することを想定している。
【００２３】
匿名化データテーブル１３２は、個人情報テーブル１３１が有する個人情報を匿名化した結果を格納する。
【００２４】
最小同値件数情報１３３は、複数の匿名化された個人情報に対応する、異なる個人の数のしきい値を格納する。
【００２５】
一般化階層テーブル群１３４は、１つの属性の曖昧化の方法を規定する一般化階層を表す１つの一般化階層構造を、全ての属性について格納する。
【００２６】
頻度情報テーブル群１３５は、オンラインの匿名化を実現するために、属性値あるいは準属性値の組み合わせが、個人情報テーブル１３１に含まれている個人情報のうち、すでに頻度取得処理を行った個人情報に何件出現したかを表す頻度情報を格納する。
【００２７】
匿名化方針テーブル１３６は、オンラインの匿名化を実現するために、すでに頻度取得処理を行った個人情報について、どの属性値あるいは準属性値であれば開示可能であるかを規定する情報を格納する。
【００２８】
プログラム１５１は後述する機能を実現するためのものである。
【００２９】
入力装置１０４は、たとえばキーボード、マウス、スキャナ、マイクなどである。出力装置１０５は、ディスプレイ装置、プリンタ、スピーカなどである。入力装置１０４及び出力装置が一体になっていてもよい（例えば、タッチパネル型のディスプレイ装置）。
【００３０】
通信装置１０６は、たとえばＬＡＮ（Local Area Network）ボードなどであり、通信ネットワーク（図示略）と接続することができる。
【００３１】
ＣＰＵ１０１は、メモリ１０２上にプログラム１５１をロードし、実行することにより、件数カウント部１２１と再符号化部１２２を実現する。
【００３２】
件数カウント部１２１は、個人情報テーブル１３１、最小同値件数情報１３３、一般化階層テーブル群１３４、及び頻度情報テーブル群１３５を入力とし、オンラインの匿名化を実現するために必要な属性値あるいは準属性値の組み合わせの頻度情報を算出し、これを頻度情報テーブル群１３６に出力し、さらに新たに開示可能と算出された属性値あるいは準属性値の組み合わせを匿名化方針テーブル１３６に出力する。なお、頻度情報テーブル群１３６及び／または匿名化方針テーブル１３６に出力した情報を、出力装置１０５に出力してもよい。
【００３３】
再符号化部１２２は、個人情報テーブル１３１、匿名化方針テーブル１３６、及び必要に応じて一般化階層テーブル群１３４を入力とし、個人情報テーブル１３１に含まれるデータのうち、以前に匿名化を行った部分から増加した部分、または全部を再符号化し、匿名化データテーブル１３２に出力する。なお、再符号化により得られた結果を、出力装置１０５を介して出力してもよい。
【００３４】
次に上述した各テーブルの詳細を説明する。
【００３５】
図２は、個人情報テーブル１３１の一例を示す。テーブル１３１における、ある個人のある属性を１つのセルと呼ぶ。例えば、個人＃４の学年を示す「３」が１つのセルである。
【００３６】
個人情報テーブル１３１は複数のレコードを有する。各レコードは、どの個人の情報であるかを識別するＩＤである「＃」２０１、及びその個人を説明する、属性「性別」２０２、属性「学年」２０３、属性「得意科目」２０４、の属性値により構成される。なお、ＩＤ「＃」２０１は、本実施例を説明するため、個人を特定する目的で付した番号であり、必ずしも必要とされるものではない。図２の例は、１８人の個人に係る個人情報が蓄積された場合を示したものであり、本実施例では、時間を経るにしたがって件数が増大していく場合を想定している。
【００３７】
なお、属性「性別」２０２はＭ（Ｍａｌｅ）、Ｆ（Ｆｅｍａｌｅ）のいずれかの属性値を持つ。属性「学年」２０３は１，２，３，４，５，６のいずれかの属性値を持つ。属性「得意科目」２０４は国語、算数、理科、社会のいずれかの属性値を持つ。
【００３８】
図３は、最小同値件数情報１３３の一例を示す。
【００３９】
以降で、属性値の組み合わせを属性値タプル(tuple)と呼ぶ。図３の例によれば、最小同値件数３０１が２件である。最小同値件数３０１は、すべての属性（ここでは、性別、学年、得意科目）を説明する任意の属性値タプルに対して、その属性値タプルで説明される個人の総数が０または最小同値件数３０１以上となる情報（匿名化された情報）を公開してもその属性値タプルに該当する個人を一意に特定することが困難だとみなされる値である。このような特徴を持つ情報を、最小同値件数３０１を「ｋ」という一般の値で表し、ｋ−匿名性を持つと呼ぶ。ｋ−匿名性を持つデータを生成する技術をｋ−匿名化と呼び、本実施例はｋ−匿名化に関わるから、最小同値件数３０１の値を、以下では単に「ｋ」と説明することがある。
【００４０】
なお、最小同値件数３０１、即ちｋの値は２件に限定されず、任意の値でよい。本実施例ではｋ＝２の場合を説明する。すなわち、行う匿名化は２−匿名化であり、匿名化されたデータは２−匿名性を持つ。
【００４１】
図４Ａ，図４Ｂ、図４Ｃは一般化階層テーブル群１３４の概念図の一例を示す。
【００４２】
図４Ａ、図４Ｂ、図４Ｃの各図がそれぞれ、「性別」、「学年」及び「得意科目」のそれぞれの属性に対応する一般化階層の例を示す。一般化階層は、このようにｋ−匿名化を行う対象と指定する属性各々について１つずつ定義されるものである。
【００４３】
図４Ａは性別に対する一般化階層の例を示す。属性値Ｍ、Ｆがより曖昧な概念として準属性値「＊」と再符号化される可能性があることを示す。ここで、すべての属性について「＊」は完全に情報を失った（全く情報を持たない）準属性値に対する符号として使用されており、特段「＊」に限る必要はない。このような符号を欠損値と呼ぶ。
【００４４】
図４Ｂは学年に対する一般化階層の例を示す。属性値「１」４０２、属性値「２」４０３はまず準属性値「低」４０１（低学年を意味する）または欠損値「＊」に再符号化される可能性があり、この順に情報が曖昧になる。なお、一般に一般化階層は木構造として表現される。階層の上位ほど曖昧の度合いが高くなる。
【００４５】
木構造は複数の節点と枝から構成される。枝は節点間の親子関係を示す。枝は矢線を用いて表され、矢線の根側の節点が親であり、矢側の節点が子である。たとえば、節点４０１と節点４０２の関係において、節点４０１が親であり、節点４０２が子である。子を持たない節点を葉と呼び、親を持たない節点を根と呼ぶ。節点４０２や節点４０３は葉である。節点４０１及び（＊）のように根でもなく、葉でない節点は内部節点と呼ばれる。すなわち、葉は属性値に相当し、内部節点は準属性値に相当する。親をたどることで行き着くことの可能な節点を祖先と呼び、子をたどることで行き着くことのできる節点を子孫と呼ぶ。すなわち、各属性値は祖先にあたる準属性値に再符号化される可能性がある。
【００４６】
木構造の各節点には深さを定義できる。根の深さを０とし、根の子は深さ１、深さ１の節点の子は深さ２、というように根から何個の子をたどれば当該の節点に行き着くかの個数として節点の深さを定義できる。例えば図４Ｂにおける節点４０１と節点４０２の深さはそれぞれ１と２である。
【００４７】
図４Ｃは得意科目に対する一般化階層の例を示し、上記と同様である。
【００４８】
図５Ａは、一般化階層をストレージ上に格納する方法の一例を示す。
【００４９】
ストレージ上にはリレーショナルデータベースなどを用いて情報が保存される。リレーショナルデータベース上のテーブルとして、図４Ｂに示した一般化階層をストレージ上に保存する一例が図５Ａである。
【００５０】
保存されるテーブルは、１つのレコードが節点と親で構成される複数のレコードから成る。たとえばレコード５０１は節点「１」の親が節点「低」であることを示し、レコード５０２は同様に節点「２」の親が節点「低」であることを示している。レコード５０３は節点「＊」の親が存在しないことを「ＮＵＬＬ」として表しており、このことから、節点「＊」が根であることがわかる。
【００５１】
なお、任意の木構造が図５Ａに示した方法でストレージ上に保存方法である。しかし、ストレージ上に保存する方法はこの方法に限られるものではない。
【００５２】
図５Ｂは、一般化階層をメモリ上に管理する方法の一例を示す。
【００５３】
データ構造５１０は、節点４０１を管理するデータ構造の一例である。データ構造５１０は自身のポインタ５１１と、親を指し示すポインタ５１２と、子のポインタのリスト５１３と、自身のラベル（属性値あるいは準属性値）５１４から成る。例えば、根の場合には親を指し示すポインタ５１２がＮＵＬＬとなり、葉の場合には子のポインタのリスト５１３が空リストとなる。
【００５４】
なお、任意の木構造が図５Ｂに示した方法でメモリ上に管理できる。しかし、メモリに管理する方法はこの方法に限られるものではない。
【００５５】
頻度情報テーブルの詳細な説明を行う前に、本明細書に記載の匿名化についていくつかの説明を行う。本実施例では、ある属性の再符号化は必ず全ての属性が同一の深さの準属性値に再符号化されるものとする。たとえば、図２に示される個人情報の例において＃１の個人が学年＝４、＃５の個人が学年＝１であるが、この個人情報を匿名化した結果が＃１の個人は学年＝４、＃５の個人は学年＝低、となることはないものとする。すなわち、例えば学年の例では、匿名化された情報は {１、２、３、４、５、６} の集合に含まれるいずれかの値を持つか、{低, 中, 高} の値のいずれかを持つか、すべて{＊}の値を持つか、のいずれかである。これらの集合は上記のとおり深さで定義できるため、これらの集合を簡単のためそれぞれ、学年＿２、学年＿１、学年＿０のように、[属性]＿[深さ]の形で記述するものとする。すなわち、本実施例においては、性別について性別＿０＝{＊}と性別＿１＝{Ｍ, Ｆ}が再符号化先の候補集合であり、得意科目については得意科目＿０＝{＊}、得意科目＿１＝{文系, 理系}、得意科目＿２＝{国語、社会、算数、理科}が再符号化先の候補集合である。
【００５６】
なお、全ての属性値を同じ深さの準属性値にしか再符号化しないという制約（これを「制約Ａ」とする）は、実施例の説明の単純化のために採用するものであるが、本発明の適用の上では制約Ａよりも制約を緩めた以下の制約（これを「制約Ｂ」とする）さえ持てばなんら不都合は生じない。制約Ｂは、再符号化先のすべての候補として定義される再符号化先候補集合Ｓが以下の点を満たすことである。「その属性の任意の葉Ｌに対して、ＬまたはＬの祖先である内部節点がただ１つだけＳの中に含まれる。」なお、本実施例のように制約Ａを課した再符号化の方法を階層限定方法と称し、上記のような制約Ｂを課した一般的な再符号化の方法を階層非限定方法と称し、以降の説明において階層非限定方法についての特段の説明の追加が必要な場合には、その旨を記すものとする。
【００５７】
属性ｚについて、再符号化先を表す候補集合の全体族をＡｚで表す。すなわち、階層限定方式の場合にはｚ＝得意科目の場合には、Ａｚ＝{得意科目＿０、得意科目＿１、得意科目２}である。即ち、Ａｚ＝｛｛＊｝、｛文系、理系｝、｛国語、社会、算数、理科｝｝であり、候補のそれぞれは同じ深さの属性値で構成される。階層非限定方法の場合には、Ａｚ＝{{＊}、{文系、理系}、{文系、算数、理科}、{国語、社会、理系}、{国語、社会、算数、理科}}となり、深さが異なる属性値の組合せも候補集合となる。
【００５８】
集合Ａが束構造を持つとは、その集合が半順序を持ち、任意の２要素ａ１、ａ２がその半順序において上限、下限を持つことをいう。「半順序」とは、全てのａ、ｂに対してはａ≦ｂ又はｂ≦ａが成り立たない順序関係であり、半順序関係を有するａ、ｂとしては例えば、ベクトルや複素数がある。後半の条件については説明を省略する。半順序とはその集合の任意の２要素が比較可能なわけではないことを意味する。Ａのある２つの要素ａ１、ａ２についてこれらが比較可能である時、ａ１＞ａ２のように記載し、ａ１はａ２の上位である、ａ２はａ１の下位である、と呼ぶことにする。この半順序「＞」について、Ａの２つの要素ａ１、ａ２がａ１＞ａ２の関係を見たし、ａ１＞ａ３、ａ３＞ａ２なるａ３がＡに存在しないとき、ａ１とａ２は隣接している、と呼ぶことにする。すなわち、ａ１はａ２の隣接上位であり、ａ２はａ１の隣接下位である。
【００５９】
Ａｚに束構造を定義する。半順序は、Ａｚの２つの要素ａ１、ａ２について、ａ１のすべての要素がａ２のいずれかの要素の子孫である時ａ１＞ａ２のように自然に定義される。属性ｚ＝得意科目の場合を例示する。階層限定方法の場合には、得意科目＿２＞得意科目＿１＞得意科目＿０であり、この場合、半順序は全順序（任意の２つの要素が比較可能である）をなす。
【００６０】
階層非限定方法の場合には、隣接関係にある順序のみを示すと、{＊}＜{文系,理系}、{文系、理系}＜{文系、算数、理科}、{文系、理系}＜{国語、社会、理系}、{文系、算数、理科}＜{国語、社会、算数、理科}、{国語、社会、理系}＜{国語、社会、算数、理科}である。｛文系｝＜｛国語、社会｝かつ｛理系｝＜｛算数、理科｝であるため、{文系、算数、理科}と{国語、社会、理系}は比較できない。
【００６１】
属性全体の集合をＺとする。すなわち、本実施例ではＺ＝{性別、学年、得意科目}である。このとき、直積集合は、２つの集合に含まれる要素の全ての積を要素とする集合である。例えば、説明のために、属性全体の集合ＺをＺ＝｛性別、学年｝と簡略化し、ｚ１＝性別、ｚ２＝学年とすると、集合Ａｚ１＝｛性別＿０、性別＿１｝及びＡｚ２＝｛学年＿０、学年＿１、学年＿２｝の直積集合Ｔは、（×）を直積記号として、Ｔ＝Ａｚ１（×）Ａｚ２と表され、集合Ｔに含まれる要素は、Ｔ＝｛（性別＿０、学年＿０）、（性別＿０、学年＿１）、（性別＿０、学年＿２）、（性別＿１、学年＿０）、（性別＿１、学年＿１）、（性別＿１、学年＿２）｝となる。
【００６２】
階層限定方法に限って例を挙げると、Ｔの要素は、（性別＿０、学年＿１、得意科目＿１）のように異なるすべての属性の再符号化先候補集合のタプルとして表されるものである。Ｔの各要素は、実際の匿名化方針を示す。例えば、（性別＿０、学年＿１、得意科目＿１）は、性別についてはすべて欠損値に置き換え、学年については「低、中、高」のいずれかの準属性値に置き換え、得意科目については「文系、理系」のいずれかの準属性値に置き換えるという再符号化を行うことを意味する。なお、性別＿０のように深さ０の再符号化先候補集合を含む場合はそれを取り除いて（性別＿０、学年＿１、得意科目＿１）＝（学年＿１、得意科目＿１）のように同一視を行う。これは、後にＴの各要素に対して頻度のカウント処理を行うが、（性別＿０、学年＿１、得意科目＿１）に相当する再符号化を行った時の各属性値あるいは準属性値のタプルの数え上げと、属性「性別」を無視し、属性「学年」「得意科目」に限って（学年＿１、得意科目＿１）に相当する再符号化を行った時の各属性値あるいは準属性値のタプルの数え上げは完全に同義となるためである。これは、深さ０の場合には完全に情報を失ってしまうため、その属性の値が増えたところで全く情報が増えない、即ち属性値の組み合わせのバリエーションが増えないためである。これは、階層非限定方法の場合も同様であり、再符号化先候補集合の{＊}の場合に相当する。
【００６３】
次に、集合Ｔに自然に定義される束構造を説明する。Ｔの２要素ｔ１、ｔ２に対して、すべての属性についてｔ１の再符号化先集合のほうがｔ２の再符号化先集合よりも上位にあるとき、ｔ１＞ｔ２と定義する。例えば、（性別＿１、学年＿１）＝（性別＿１、学年＿１、得意科目＿０）＞（性別＿１、学年＿０、得意科目＿０）＝（性別＿１）であるが、（性別＿１、学年＿１）＝（性別＿１、学年＿１、得意科目＿０）と（性別＿１、得意科目＿１）＝（性別＿１、学年＿０、得意科目＿１）は比較できない。即ち、Ｔの要素が上位になるほど、各属性の開示レベルがより詳細化される。
【００６４】
この半順序定義にしたがって、Ｔのある要素に対して隣接上位、あるいは隣接下位の要素を列挙するのは容易である。たとえば、階層限定方法の場合には、ある１つの属性のみ再符号化先候補集合の深さが１つだけ深く、ほかの属性については同じ深さであるものが隣接上位であり、同様に、ある１つの属性のみ再符号化先候補集合の深さが１つだけ浅く、ほかの属性については同じ深さであるものが隣接下位である。例えば、（学年＿１、得意科目＿１）の隣接上位は（性別＿１、学年＿１、得意科目＿１）、（学年＿２、得意科目＿１）、（学年＿１、得意科目＿２）の３つであり、隣接下位は（得意科目＿１）、（学年＿１）の２つである。
（処理に必要な各種テーブル）
図６Ａは、頻度情報テーブル群１３５の一例を示したものである。
【００６５】
図６Ａの例は図２に示される個人情報の例のうち、図２に示す個人情報を１２件目までを処理した場合の頻度情報テーブル群１３５の例を示している。具体的には、Ｔの要素でその要素の示す匿名化方針に従って再符号化を行ってもｋ−匿名性（ここではｋ＝２）を満たさないＴの要素の中で、最下位に位置する要素（束構造は半順序で構成されるために、複数存在しうる）について、カウント処理を行なった結果を示したもので、束の要素１つが頻度情報テーブル群１３５の１つのテーブルに相当する。ここでは、（学年＿２）に相当するテーブル６０１、（得意科目＿２）に相当するテーブル６０２、（性別＿１、学年＿１）に相当するテーブル６０３、（学年＿１、得意科目＿１）に相当するテーブル６０４から構成される。これら頻度情報テーブル群１３５を構成する１つ１つのテーブルは頻度表と呼ばれる。
【００６６】
頻度表がＴの要素ｔに対応するものであるとき、頻度表の各レコードは要素ｔの示す匿名化方針を実行したときに再符号化される実際の属性値または準属性値のタプルと、再符号化を行った時にそのタプルに再符号化される個人情報の件数（頻度）を保存する。例えば、ｔ＝（性別＿１、学年＿１）であるテーブル６０３の場合、すべての属性値または準属性値のタプル（Ｍ、低）、（Ｍ、中）、（Ｍ、高）、（Ｆ、低）、（Ｆ、中）、（Ｆ、高）とそれに対応する頻度の組がレコードとなる。（Ｍ，低）に再符号化される個人情報は１件しかなく、１２件目までの個人情報では（性別＿１、学年＿１、得意科目＿０）の方針による匿名化は２−匿名性を満たさないことがわかる。頻度表テーブル１３５に含まれる頻度表は、ｋ−匿名性を満たさないＴの要素に関するものである。したがって、頻度表テーブル１３５にｔに関する頻度表が含まれているときには、ｔの上位にあるすべての匿名化方針はｋ−匿名性を満足しない（頻度を取得しても意味をなさない）ことに注意する。
【００６７】
なお、明らかにその属性値または準属性値のタプルを持つ個人が存在しないとわかっている場合には、初めからカウント対象に含めなくてもよい。この場合、その属性値または準属性値のタプルに対応するレコードは頻度情報テーブル群１３５に含めない。
【００６８】
このように、Ｔのすべての要素について頻度をカウントするのではなく、効率よくカウントを行うことで、処理の高速化、及びメモリやストレージに保管するデータの少容量化を実現できる。
【００６９】
図６Ｂは頻度情報テーブル群１３５に含まれる頻度表の別の一例を示したものである。
【００７０】
図６Ｂの例は、頻度表６０３の別の一例を示している。この例の場合、属性値または準属性値のタプルの頻度とともに、その属性値または準属性値のタプルを保有する個人の＃（対応個人カラム）を記憶しておくものである。これにより、頻度表更新時の更新速度を高速化することが望まれる。詳細は図１２を参照した頻度表更新の説明の際に言及する。
【００７１】
図７は、匿名化方針テーブル１３６の一例を示す。
【００７２】
匿名化方針テーブル１３６は、開示レベル７０１と開示フラグ７０２の組み合わせで構成される。開示レベルはｋ−匿名性を満たすＴの要素を示すものであり、開示フラグは直前に実行した匿名化の際に採用した匿名化方針を保存しておくものである。直前に実行した匿名化は「Ｔｒｕｅ」であり、それ以外は「Ｆａｌｓｅ」である。図７に示す例も、個人情報を１２件目まで匿名化処理したのちの匿名化方針テーブル１３６の状態を示したものであり、１２件目までは（性別＿１、学年＿０、得意科目＿１）の匿名化方針に則り再符号化をなされたことがわかる。
【００７３】
図８は、上記の匿名化によるその匿名化結果が保存された匿名化データテーブル１３２の一例を示す。
（各処理の説明）
図９は、実施例１に係る計算機１００が実行する処理の全体の流れの一例を示す。
【００７４】
図９の処理の流れは、時々刻々と蓄積されるデータを１件１件待ちながらこれをオンラインで匿名化処理を繰り返すスキームである。
【００７５】
まず、Ｓ９０１で件数カウント部１２１が、個人情報テーブル１３１を監視し、新規データが入力されたらそのＩＤ＃を取得の上、Ｓ９０２に移行する。個人情報テーブル１３１監視の最中に終了命令を受けた場合には、処理を終了する。
【００７６】
Ｓ９０２では、件数カウント部１２１が件数カウント処理を行う。詳細は後述するが、件数カウント処理は開始＃と終了＃を引数にとり、図９の処理例ではこれらの両方を監視して取得したＩＤ＃とする。
【００７７】
Ｓ９０３では、再符号化部１２２が再符号化処理を行う。詳細は後述するが、再符号化処理は開始＃と終了＃を引数にとり、図９の処理例ではこれらの両方を監視して取得したＩＤ＃とする。Ｓ９０３を終えたのち、再度Ｓ９０１の新規データの入力待ちを行う。
【００７８】
図１０Ａと図１０Ｂは、実施例１に係る計算機１００が実行する処理全体の流れの別の一例を示す。データが所定の量だけ集まった段階でＳ９０２及びＳ９０３を行なうこともできる。
【００７９】
図１０Ａ及び図１０Ｂでは、件数カウント処理Ｓ９０２と再符号化処理Ｓ９０３を別のタイミングで行う場合である。例えば、１００件データが蓄積された段階で、図１０Ａの処理の流れを用いて件数カウント部１２１が件数カウント処理を行い（開始＃は１、終了＃は１００）、さらに１００件データ蓄積された段階で、再度図１０Ａの処理の流れを用いて件数カウント部１２１が件数カウント処理を再度行う（開始＃は１０１、終了＃は２００）。その終了後に、図１０Ｂの流れを用いて再符号化部１２２が再符号化処理を行い（開始＃は１、終了＃は２００）、匿名化データを得るといった運用が可能である。
【００８０】
また、図１１に示すように、件数カウント部１２１が個人情報テーブル１３１を監視しながら、新規データが追加されるたびに件数カウント処理を行っており、任意のタイミングで図１０Ｂに示す流れを用いて、再符号化部１２２が再符号化処理を行い匿名化データを得るといった運用も可能である。この運用は、比較的高負荷と考えられる件数カウント処理をオンラインで行っておきながら、匿名化データを得たいタイミングで低負荷な再符号化処理を行うという点で、処理負荷の軽減が期待できる。
【００８１】
図１２は、件数カウント部１２１が行う件数カウント処理Ｓ９０２の詳細な流れの一例を示す。すなわち、図１２の各処理を行う主体は件数カウント部１２１であり、図１２の各処理の説明については主語を省略する場合、動作の主体は件数カウント部１２１である。
【００８２】
Ｓ１２０１では、引数である開始＃が１であるかどうかを判定する。開始＃が１である場合（Ｔｒｕｅ）には、Ｓ１２０２に移行し、そうでない場合（Ｆａｌｓｅ）にはＳ１２０３に移行する。
【００８３】
Ｓ１２０２では、Ｔの要素のうち全属性が階層０である要素に対して、頻度表を作成し、頻度情報テーブル群１３５に格納する。すなわち、個人情報テーブル１３１の例の場合には、匿名化方針（性別＿０、学年＿０、得意科目＿０）に対応する頻度表を作成し、レコードは（＊、＊、＊）に対する頻度０を初期値として格納する。頻度表を作成後、Ｓ１２０３に移行する。
【００８４】
Ｓ１２０３では、頻度情報テーブル群１３５に格納されたそれぞれの頻度表が示す匿名化方針に従って、個人情報テーブル１３１の開始＃から終了＃までの個人情報を実際に匿名化した場合の、各属性値タプルの出現頻度を、頻度表に格納されている頻度に加算し、新たにその属性値タプルの出現頻度として頻度表に格納する。
【００８５】
Ｓ１２０４では、頻度情報テーブル群１３５に含まれる頻度表で、すべての属性値タプルが最小同値件数３０１に格納されたｋ値（本実施例では２）以上となっているものが存在するかどうかを判定する。存在する場合（Ｔｒｕｅ）には、Ｓ１２０５に移行し、存在しない場合（Ｆａｌｓｅ）には、処理を終了する。
【００８６】
Ｓ１２０５では、Ｓ１２０４で判定した条件に合致する頻度表を１つ取得し、この頻度表の匿名化方針を説明する再符号化先候補集合のタプルをｔ（ｔはＴの要素）とおき、ｔに関する頻度表を頻度情報テーブル群１３５から消去する。
【００８７】
Ｓ１２０６では、Ｔの束構造上でｔの隣接上位であるタプルで、そのすべての下位タプルが頻度情報テーブル群に含まれていないものが存在するかどうかを判定する。存在する場合（Ｔｒｕｅ）にはＳ１２０７に移行し、存在しない場合（Ｆａｌｓｅ）にはＳ１２０８に移行する。
【００８８】
Ｓ１２０７では、Ｓ１２０６の判定条件に合致するタプルｓを取得し、sで規定される匿名化方針に則り、個人情報テーブル１３１に含まれる＃１から終了＃までの個人情報を匿名化したときの、すべての属性値タプルについて頻度情報を取得し、頻度表を作成した後、頻度情報テーブル群１３５に格納する。そののち、Ｓ１２０６の判定を再度行う。
【００８９】
なお、頻度表の形態として、図６Ｂを用いて説明したように「対応個人」のカラムを有し、その属性値または準属性値タプルを保有するような個人との対応付けを記憶している場合には、Ｓ１２０７の処理を高速化することが可能である。これは、ｔの隣接上位のタプルとはｔの有する唯一の属性について、一段階だけ開示レベルを詳細化したものにすぎないため、対応個人についてその唯一の属性がどの属性値あるいは準属性値をもつかをカウントするだけでよいためである。例えば、図６Ｂの例で、（性別＿１、学年＿１）の頻度表を、その隣接上位である（性別＿１、学年＿２）についての頻度表に置き換える際には、例えば、（性別＿１、学年＿１）で（Ｍ、高）を保有した３名の個人＃３，７，９について、各々の学年＿２が５であるか６であるかさえ確認すれば、（Ｍ、５）の頻度が１であり（Ｍ、６）の頻度が２であることがすぐに計算できる。
【００９０】
Ｓ１２０８では、匿名化方針ｔを開示レベル７０１として、匿名化方針テーブル１３６にレコード追加する。なお、開示フラグ７０２はＦａｌｓｅとする。そののち、再度Ｓ１２０４の判定処理を行う。
【００９１】
図１３は、再符号化部１２２が再符号化処理Ｓ９０３を行う詳細の流れの一例を示す。すなわち、図１３のすべての処理の主体は再符号化部１２２であり、以降、図１３の各処理の主語を省略する場合は、再符号化部１２２が動作の主体であるものとする。
【００９２】
Ｓ１３０１では、匿名化方針テーブル１３６から、開示フラグ７０２がＴｒｕｅである唯一のタプル（開示レベル７０１）を取得し、これをｔ（ｔはＴの要素）とおく。
【００９３】
Ｓ１３０２では、匿名化方針テーブルから何らかの方法で実際に匿名化を行う開示レベル７０１を１つ取得し、これをｓ（ｓはＴの要素）とおく。何らかの方法は、ランダム等何でもよいが、１つの選び方を後に詳細に説明する。
【００９４】
Ｓ１３０３では、ｓとｔが等価であるか否かを判定する。等価である場合（Ｔｒｕｅ）にはＳ１３０４に移行する。等価でない場合（Ｆａｌｓｅ）にはＳ１３０７に移行する。
【００９５】
Ｓ１３０４では、ｓの開示フラグ７０２をＴｒｕｅにし、ｔの開示フラグ７０２をＦａｌｓｅにする。
【００９６】
Ｓ１３０５では、匿名化データテーブル１３２に保存されたデータを一度すべて消去し、個人情報テーブル１３１に含まれる＃１から終了＃までの個人の個人情報を、ｓで規定される匿名化方針に則り再符号化した後、匿名化データテーブル１３２に格納する。
【００９７】
Ｓ１３０６では、Ｔの束構造上でｔの上位タプルとなるものが匿名化方針テーブル１３６に含まれている場合にはｔの情報（ｔに関わるレコード）を匿名化方針テーブル１３６から消去する。Ｓ１３０６終了ののち、処理を終了する。
【００９８】
Ｓ１３０７では、個人情報テーブル１３１に含まれる開始＃から終了＃までの個人の個人情報を、ｔで規定される匿名化方針に則り再符号化の上、匿名化データテーブル１３２に追加格納する。Ｓ１３０７終了ののち、処理を終了する。
【００９９】
図１４は、再符号化部１２２が匿名化方針テーブルが複数有するレコードの中から実際に匿名化を行う開示レベルを１つ選択する図１３の処理Ｓ１３０２の一例を、詳細に示す。すなわち、図１４のすべての処理を行う主体は再符号化部１２２であり、図１４に関わる以下の説明で主語を省略した場合には、動作の主体は再符号化部１２２である。
【０１００】
図１４での開示レベルの選択方針は、その匿名化方針にしたがって匿名化を行った場合に損失する情報量を評価し、それが最も小さい匿名化データが有用性が高いという観点から、最も損失情報量の小さい匿名化方針を選択するものである。
【０１０１】
Ｓ１４０１では、匿名化方針テーブル１３６に含まれる開示レベル７０１に従って再符号化を行う際に損失する情報量を、テーブルに含まれるすべての開示レベルについて計算をする。ある開示レベルに則り再符号化を行った際に損失する情報量の評価方法はさまざまであるが、例えば一般化階層上で元の個人情報からいくつ深さを上がったかを全セルについて足し合わせた値や、情報エントロピーを用いた評価などがある。
【０１０２】
Ｓ１４０２では、Ｓ１４０１で算出した損失情報量が最も小さくなるような開示レベル７０１を返却（出力）し、処理を終了する。
【０１０３】
図１５Ａは再符号化部１２２が匿名化方針テーブルが複数有するレコードの中から実際に匿名化を行う開示レベルを１つ選択する処理Ｓ１３０２の方法の別の一例を示す。すなわち、図１５Ａのすべての処理を行う主体は再符号化部１２２であり、図１５Ａに関わる以下の説明で主語を省略した場合には、動作の主体は再符号化部１２２である。
【０１０４】
Ｓ１５０１では匿名化方針テーブル１３６に含まれているすべての開示レベルの中でどの開示レベルに沿って匿名化を行うかを、計算機１００の実現する匿名化装置の利用者に問い合わせるため、出力装置１０５に出力する。
【０１０５】
Ｓ１５０２では、Ｓ１５０１で利用者に問い合わせた結果を入力として待機し、入力された開示レベルの選択結果を返却し、終了する。
【０１０６】
図１５Ｂは、再符号化部１２２がＳ１５０１及びＳ１５０２で、利用者に匿名化方針テーブル１３６の中でどの開示レベルを選択するかを問い合わせるために、出力装置１０５に出力する内容の一例を示す。
【０１０７】
具体的には、図１５Ｂは出力装置１０５としてディスプレイを利用し利用者に問い合わせを行う画面の一例であり、匿名化方針テーブル１３６の内容、例えばすなわちどの深さまで開示可能かを示すレコードのすべてを表示の上、利用者がラジオボタン１５１１で所望の開示レベルを選択の上、決定ボタン１５１２で決定することによって、再符号化部１２２に開示レベルを伝達することを可能とする。
【０１０８】
以上のように、本実施例に係る計算機１００の１つの特徴は、最小同値件数情報１３３で規定される制約を満足しながら開示可能なレベルを、個人情報の増加分に対してだけ効率的に頻度情報を記憶することを達成する件数カウント方法と、件数カウント方法が計算した開示可能なレベルに沿って再符号化を行う再符号化方法を有することにある。
＜実施例２＞
以下、本発明の実施例２を説明する。その際、実施例１との相違点を主に説明し、実施例１との共通点については説明を省略あるいは簡略する。具体的には、例えば、実施例２を説明する場合、上述の実施例１と重複する構成に対しては同じ符号を付与して説明を省略する。また、実施例１と同じ動作に対しては、同じ符号を付与して説明を省略する。
【０１０９】
実施例２の１つの特徴は、同一、あるいは増加した個人情報に対して別々の匿名化を行うことにより生成された別々の匿名化データの両方を参照することで、個人に関するより詳細な情報が開示されてしまうリスクを回避できることである。
【０１１０】
上記のリスクについて、図１６を参照して説明する。
【０１１１】
個人情報テーブル１６０１は、性別１６１１、文系理系の別１６１２、アンケートに対する「○」または「×」の回答１６１３から構成される。アンケートとは、例えば、「あなたは国語が好きですか？」といった質問を想定している。この個人情報テーブルの上で属性「性別」１６１１、属性「文理」１６１２を匿名化の対象とし、属性「アンケートの答え」１６１３については個人を特定するような要素ではないため、匿名化の必要なしと判断したものと仮定する。このとき、ｋ＝２とし、２−匿名化を行った２つの結果が匿名化情報テーブル１６０２と匿名化情報テーブル１６０３である。これら２つの情報を照らし合わせることで、元の個人情報テーブル１６０１を完全に復元できてしまう。また、仮に匿名化の対象としなかった属性「アンケートの答え」１６１３が個人情報テーブル１６０１及び匿名化情報テーブル１６０２、１６０３に含まれていなかったとしても、情報を最も落とさない形で２−匿名化しているという知識があれば、同様に匿名化情報テーブル１６０２，１６０３から元の個人情報テーブル１６０１を完全に復元できてしまう。
【０１１２】
本発明の実施例２に係る個人情報匿名化装置が適用された計算機の構成例は実施例１のものと完全に同一であり、実施例２に係る計算機１００が実行する処理の全体の流れも実施例１のものと同一である。
【０１１３】
図１７は、実施例２を実現する、件数カウント部１２１が行う件数カウント処理Ｓ９０２の詳細な流れの一例を示す。
【０１１４】
実施例１を実現する、件数カウント部１２１が行う件数カウント処理Ｓ９０２との違いは、Ｓ１２０８がＳ１７０１に置き換わっただけである。したがって、Ｓ１７０１についてのみの説明を行う。
【０１１５】
件数カウント部１２１は、Ｓ１７０１において、匿名化方針テーブルで開示フラグがＴｒｕｅの開示レベル（すでに作成した匿名化データの開示レベル）をｓとするとき、ｔがｓの上位タプルであるときのみ、ｔを匿名化方針テーブルに追加する。これにより、開示候補を保存するテーブルである、匿名化方針テーブル１３６に保存されるレコードが実際に開示されている開示レベルのＴ上で上位にあるものに制限される。言い換えれば、すべての属性について、現在開示中よりも情報が詳細化する方向（一般化階層上で、より深い方向）に開示レベルが動くので、上記のようなリスクを回避することを達成できる。
【０１１６】
なお、実施例２では、匿名化方針テーブル１３６に書き込む対象を制限することで上記リスクの回避を達成したが、書き込み自体は制限せずに、例えば、匿名化方針テーブル１３６に「開示の可否」といったカラムを追加し、このカラムを用いて、開示方針を制御してもよい。このようにすることで、実際にｋ−匿名性を満足するすべての開示レベルを保存しておくことができる。
【０１１７】
また、実施例２の場合、実際にそれまでに匿名化データを生成した開示レベルによって、将来の開示レベルが制限されていく。そこで、Ｔに含まれる全ての要素について頻度情報を取得／保存しておく必要は必ずしもない。この場合、匿名化方針テーブル１３６で開示フラグがＴｒｕｅの開示レベルｔ（すなわち、ｔによって規定される準属性値集合に再符号化を行ったデータをすでに作成済みであるということ）によって、Ｔの束構造を小さくすることを行ってもよい。
【０１１８】
その１つの方法例は、Ｔ上でｔの上位に位置づけられる要素のみからなる束構造を改めてＴとおく方法である。
【０１１９】
もう１つの方法例は、Ｔ上でｔの上位に位置づけられる要素と、全属性集合の真部分集合に関する再符号化先候補集合で構成される要素（すなわち、この真部分集合に含まれない属性については、再符号化先候補が欠損値であるということ）のみからなる束構造を改めてＴと置く方法である。これにより、より低次元の属性集合でｋ−匿名性を満たしているかどうかを評価することにより、より上位に位置づけられる開示レベルに対する頻度のカウント処理を抑制できるので、高速化及び頻度情報テーブル群１３４に保存するデータの容量の削減を期待できる。
【０１２０】
以上のように、実施例２の１つの特徴は、複数作成される匿名化データを結び付けることによって、より詳細な情報が開示されてしまうリスクを回避できる点である。これにより、実施例１よりもさらに安全な個人情報匿名化装置を提供可能とする。
【０１２１】
以上、本発明のいくつかの実施例を説明したが、これらは、本発明の説明のための例示であって、本発明の範囲をこれらの実施例にのみ限定する趣旨ではない。すなわち、本発明は、ほかの種々の形態でも実施することが可能である。例えば、上記した実施例は本発明をわかりやすく説明するために詳細に説明したものであり、必ずしも説明したすべての構成を備えるものに限定されるものではない。また、ある実施例の構成の一部を他の実施例の構成に置き換えることが可能であり、また、ある実施例の構成に他の実施例の構成を加えることも可能である。また、各実施例の構成の一部について、ほかの構成の追加・削除・置換をすることが可能である。
【０１２２】
また、上記の各構成、機能、処理部、処理手段などはそれらの一部または全部を、例えば集積回路で設計するなどによりハードウェアで実現してもよい。また、上記の各構成、機能などは、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することによりソフトウェアで実現してもよい。各機能を実現するプログラム、テーブル、ファイルなどの情報は、メモリや、ハードディスク、ＳＳＤ（Solid State Drive）などの記憶装置、またはＩＣカード、ＳＤカード、ＤＶＤなどの記憶媒体に置くことができる。
【０１２３】
また、制御線や情報線は説明上必要と考えられるものを示しており、製品上必ずしもすべての制御線や情報線を示しているとは限らない。実際にはほとんどすべての構成が相互に接続されているものと考えてもよい。
【符号の説明】
【０１２４】
１００：計算機、１０１：ＣＰＵ、１０２：メモリ、１２１：件数カウント部、１２２：再符号化部、１０３：ストレージ、１３１：個人情報テーブル、１３２：匿名化データテーブル、１３３：最小同値件数情報、１３４：一般化階層テーブル群、１３５：頻度情報テーブル群、１３６：匿名化方針テーブル、１５１：プログラム、１０４：入力装置、１０５：出力装置、１０６：通信装置、１０７：内部通信線。
【図１】
0005626733.tif 000002
【図２】
0005626733.tif 000003
【図３】
0005626733.tif 000004
【図４Ａ】
0005626733.tif 000005
【図４Ｂ】
0005626733.tif 000006
【図４Ｃ】
0005626733.tif 000007
【図５Ａ】
0005626733.tif 000008
【図５Ｂ】
0005626733.tif 000009
【図６Ａ】
0005626733.tif 000010
【図６Ｂ】
0005626733.tif 000011
【図７】
0005626733.tif 000012
【図８】
0005626733.tif 000013
【図９】
0005626733.tif 000014
【図１０Ａ】
0005626733.tif 000015
【図１０Ｂ】
0005626733.tif 000016
【図１１】
0005626733.tif 000017
【図１２】
0005626733.tif 000018
【図１３】
0005626733.tif 000019
【図１４】
0005626733.tif 000020
【図１５Ａ】
0005626733.tif 000021
【図１５Ｂ】
0005626733.tif 000022
【図１６】
0005626733.tif 000023
【図１７】
0005626733.tif 000024