(57)【特許請求の範囲】
【請求項１】
個票データと、匿名化にかかるパラメータとを受け入れて、前記個票データのレコードの各属性に含まれるデータの中から、前記パラメータをもとに、ｋ−匿名性を満たさないデータを抑制するとともに、前記個票データのレコードの各属性に含まれるデータの中から無作為に抽出されたデータを抑制する匿名化部と、
前記匿名化部によりデータが抑制された個票データを出力する出力部と、
を有することを特徴とするデータ秘匿装置。
【請求項２】
前記匿名化部は、前記属性の中の第１の属性おいて、前記ｋ−匿名性を満たさないデータを抑制するとともに、前記個票データのレコードの各属性に含まれるデータの中から無作為に抽出されたデータを抑制し、さらに前記第１の属性とは異なる第２の属性において前記ｋ−匿名性を満たさないデータを抑制するとともに、前記個票データのレコードの各属性に含まれるデータの中から無作為に抽出されたデータを抑制する再帰処理を行って、前記各属性に含まれるデータを抑制する
ことを特徴とする請求項１に記載のデータ秘匿装置。
【請求項３】
前記匿名化部は、前記レコードの数の増加に応じて前記無作為に抽出される確率を小さくする
ことを特徴とする請求項１または２に記載のデータ秘匿装置。
【請求項４】
コンピュータに、
個票データと、匿名化にかかるパラメータとを受け入れて、前記個票データのレコードの各属性に含まれるデータの中から、前記パラメータをもとに、ｋ−匿名性を満たさないデータを抑制するとともに、前記個票データのレコードの各属性に含まれるデータの中から無作為に抽出されたデータを抑制し、
前記抑制されたデータを出力する
処理を実行させることを特徴とするデータ秘匿プログラム。
【請求項５】
コンピュータが、
個票データと、匿名化にかかるパラメータとを受け入れて、前記個票データのレコードの各属性に含まれるデータの中から、前記パラメータをもとに、ｋ−匿名性を満たさないデータを抑制するとともに、前記個票データのレコードの各属性に含まれるデータの中から無作為に抽出されたデータを抑制し、
前記抑制されたデータを出力する
処理を実行することを特徴とするデータ秘匿方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、データ秘匿装置、データ秘匿プログラムおよびデータ秘匿方法に関する。
【背景技術】
【０００２】
各行（レコード）に各人の情報を格納した表などの個票データを、各人のプライバシー保護に配慮しつつ、多くの情報が残るように変換し、市場分析などで二次活用したい場合がある。この個票データの変換時におけるプライバシー保護の手法として、情報の匿名化を行うｋ−匿名化がある。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００８−３３４１１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、上記の従来技術では、ある人の情報が含まれているか否かを決められないようにする存在性の保護までは考慮されておらず、プライバシー保護が十分ではないという問題がある。
【０００５】
例えば、Ｘ社が顧客から個票データを集め、集めた個票データをＹ社に販売し、Ｙ社が個票データを分析した知識を市場分析等に役立てる状況を例に説明する。
【０００６】
例えば、個票データには、顧客を識別するＩＤ（Identification  Data）とともに、住所、趣味、疾患などの個人情報が含まれている。
【０００７】
Ｘ社が集めた個票データをＹ社に販売するとき、Ｘ社は顧客に配慮し、顧客のプライバシーが侵害されうるデータはＹ社等の他社に提供したくないものとする。一方、Ｙ社はＸ社顧客の個々の情報は必要ないが、統計的な情報はでき得る限り正確に得たいものとする。
【０００８】
このような要請を満たす変換方法として、属性ごとの統計化がある。例えば、個票データの「趣味」の属性について、趣味＝｛サッカー：５，ペンタク：２｝などど、度数分布の情報に変換する方法である。Ｙ社は、この度数分布の情報を見ても誰がどの趣味を持っているかは判らないが、全体的な趣味の傾向を把握できる。
【０００９】
しかしながら、この属性ごとの統計化では、属性間の関係が判らない。例えば、Ｙ社が「住所」と「趣味」との相関を分析したいと考えているとき、「住所」と「趣味」との統計データを別々に入手しても、その属性間の相関を分析することは困難である。したがって、Ｘ社は、属性間の関係を分析できるような変換を行うものとする。
【００１０】
この属性間の関係を分析できる変換方法として、無名化がある。図１５は、無名化を説明する説明図であり、個票データの無名化の例である。図１５に示すように、無名化では、個票データに含まれる行の識別子などの属性（図示例では「ＩＤ」）を削除する。Ｙ社は、無名化後の個票データをもとに、各属性の関係を分析することができる。
【００１１】
しかしながら、無名化だけではプライバシー保護の観点からは不十分な場合がある。例えば、次の状況を考える。
・ＩＤ＝Ｐ４の人は、自分の疾患を他人（Ｙ社）に知られたくないと思っている。
・Ｙ社はＩＤ＝Ｐ４の人を知っており、その人がＢ市で唯一の「ペンタク」好きであることを知っている。
【００１２】
これらの状況が成立した場合、図１５に例示した無名化では、プライバシー保護が十分とは言えない。なぜならば、Ｙ社は４行目（（住所，趣味）＝（Ｂ市，ペンタク）である唯一の行）がＩＤ＝Ｐ４の人のデータであると特定でき、その人の「疾患」が「早老症」であると判る。しかしながら、このＹ社が知り得る情報は、ＩＤ＝Ｐ４の人が知られたくないとする情報であるためである。したがって、Ｘ社は、ｋ（＞１）人未満の人について詳細な情報をＹ社が持っている場合を想定した変換を行うものとする。
【００１３】
このように、ｋ（＞１）人未満の人について詳細な情報を有する場合を想定した上で、属性間の関係を分析できる変換方法として、ｌ−多様性を達成するｋ−匿名化（以下、ｋ−匿名化）がある。
【００１４】
ｋ−匿名化は、ＱＩ（Quasi-Identifier）、ＳＡ（Aensitive-Attribute）などを入力として受け付け、ＱＩ値が近い行同士をグループ化し（例えば同じ値に変換し）、各グループのＳＡ値が多様性を持つようにする。ＳＡは各人（行情報提供者）がみだりに知られたくないデータの列であり、ＱＩは他人でも容易に知ることができるデータの列集合（１つ以上の列）である。多様性とは、ＳＡ値の度数分布について判定できる性質であり、例えば、度数分布の偏りが小さいことを判定できる性質である。
【００１５】
図１６は、ｋ−匿名化を説明する説明図である。具体的には、図１６は、図１５に例示した個票データに対し、ＱＩ＝｛住所，趣味｝、ＳＡ＝疾患とし、多様性を「値が２種類以上あること」としてｋ＝２で匿名化した例である。図１６に示すように、「住所」を一般化することで、ＱＩが同じグループ２つに水平方向に分割している。そして、両グループのＳＡ値は多様性を満たしている。すなわち、どのグループにＳＡ値の度数分布も、２種類以上の値がある。
【００１６】
したがって、ｋ−匿名化の例では、属性間の関係を分析できる上、プライバシー保護にも配慮されている。例えば、ｋ−匿名化後の個票データを受けたＹ社は、ＩＤ＝Ｐ４の人の行を｛４，５｝行目のいずれかに絞り込めず、したがって、その疾患も｛早老症，異食症｝のいずれかに絞り込むことは困難である。このように、ｋ−匿名化は、属性間の関係を分析できる上、プライバシー保護にも配慮した変換方法である。
【００１７】
しかしながら、ｋ−匿名化では、存在性の保護を考慮しないアルゴリズムであることから、プライバシー保護は不十分な場合が生じ得る。ここで、存在性の保護とは、ある人の情報（行）が表に含まれているか否かを決められないようにすることを言う。例えば、Ｙ社が政令市に住むペンタク好きの人を知っていた場合、その人は、図１６の例には含まれないことが判る。よって、図１６の例では、存在性が保護されているとは言えない。
【００１８】
例えば、図１６の表が「診療を受けた年収５００万円以下の住民」といったデータである場合、Ｙ社が知り得る人が表に含まれないことが判るということは、その人の年収が５００万円を超える高収入であることが判ることになる。よって、存在性が保護されていない場合は、プライバシー保護が不十分であると言える。
【００１９】
１つの側面では、個人の存在性の秘匿を可能とするデータ秘匿装置、データ秘匿プログラムおよびデータ秘匿方法を提供することを目的とする。
【課題を解決するための手段】
【００２０】
第１の案では、データ秘匿装置は、匿名化部と、出力部とを有する。匿名化部は、個票データと、匿名化にかかるパラメータとを受け入れて、個票データのレコードの各属性に含まれるデータの中から、パラメータをもとに、ｋ−匿名性を満たさないデータを抑制するとともに、個票データのレコードの各属性に含まれるデータの中から無作為に抽出されたデータを抑制する。出力部は、匿名化部によりデータが抑制された個票データを出力する。
【発明の効果】
【００２１】
本発明の１実施態様によれば、個人の存在性を秘匿することができる。
【図面の簡単な説明】
【００２２】
【図１】図１は、実施形態にかかるデータ秘匿装置の構成を示すブロック図である。
【図２】図２は、個票データを説明する説明図である。
【図３】図３は、変換規則を説明する説明図である。
【図４】図４は、変換結果を説明する説明図である。
【図５】図５は、データ秘匿装置の動作例を示すフローチャートである。
【図６】図６は、ｋ−匿名化処理の一例を示すフローチャートである。
【図７】図７は、再帰的処理の一例を示すフローチャートである。
【図８】図８は、表データの一例を説明する説明図である。
【図９】図９は、表データの一例を説明する説明図である。
【図１０】図１０は、表データの一例を説明する説明図である。
【図１１】図１１は、表データの一例を説明する説明図である。
【図１２】図１２は、変換規則の一例を説明する説明図である。
【図１３】図１３は、変換規則の一例を説明する説明図である。
【図１４】図１４は、データ秘匿プログラムを実行するコンピュータの一例を示す説明図である。
【図１５】図１５は、無名化を説明する説明図である。
【図１６】図１６は、ｋ−匿名化を説明する説明図である。
【発明を実施するための形態】
【００２３】
以下、図面を参照して、実施形態にかかるデータ秘匿装置、データ秘匿プログラムおよびデータ秘匿方法を説明する。実施形態において同一の機能を有する構成には同一の符号を付し、重複する説明は省略する。なお、以下の実施形態で説明するデータ秘匿装置、データ秘匿プログラムおよびデータ秘匿方法は、一例を示すに過ぎず、実施形態を限定するものではない。また、以下の各実施形態は、矛盾しない範囲内で適宜組みあわせてもよい。
【００２４】
図１は、実施形態にかかるデータ秘匿装置１の構成を示すブロック図である。図１に示すように、データ秘匿装置１は、ＰＣ（Personal  Computer）等の情報処理装置であり、制御部１０と、記憶部２０とを有する。
【００２５】
制御部１０は、各種の処理手順などを規定したプログラムおよび所要データを格納するための内部メモリを有し、これらによって種々の処理を実行する。制御部１０は、匿名化部１１および出力部１２を有する。
【００２６】
匿名化部１１は、個票データ２１と、匿名化にかかるパラメータとを受け入れて、個票データ２１のレコードの各属性に含まれるデータの中から、受け入れたパラメータをもとに、ｋ−匿名性を満たさないデータを抑制する。また、匿名化部１１は、個票データ２１のレコードの各属性に含まれるデータの中から無作為に（例えば、ランダムに）抽出されたデータを抑制する。具体的には、匿名化部１１は、個票データ２１のデータを抑制する変換規則２２を作成して出力する。
【００２７】
このように、匿名化部１１は、個票データ２１のレコードの各属性に含まれるデータの中から、ｋ−匿名性を満たさないデータを抑制するとともに、個票データ２１のレコードの各属性に含まれるデータの中から無作為に（例えば、ランダムに）抽出されたデータを抑制する。よって、匿名化部１１によりデータの抑制された個票データ２１は、無作為に抽出されたデータの抑制によって、ある人が含まれていないことの推定が不確定となり、個人の存在性を秘匿することができる。
【００２８】
出力部１２は、匿名化部１１によりデータが抑制された個票データを出力する。具体的には、出力部１２は、匿名化部１１により作成された変換規則２２を個票データ２１に適用することで、データが抑制された個票データを出力する。なお、出力部１２の出力は、ファイルなどの他、ディスプレイ（図示しない）への表示や、通信機器（図示しない）を介して接続する他の装置への通信による出力等であってもよい。
【００２９】
記憶部２０は、制御部１０による各種処理に必要なデータおよびプログラムを格納する。例えば、記憶部２０は、個票データ２１および変換規則２２を記憶する。
【００３０】
個票データ２１は、各行（レコード）に各人の情報を格納した表データである。図２は、個票データ２１を説明する説明図である。図２に示すように、個票データ２１の各行には、人を識別するＩＤの他、住所、趣味、疾患などの属性（列）ごとに、その属性を示す値が格納されている。
【００３１】
変換規則２２は、個票データ２１の変換にかかる規則を記述した情報である。具体的には、変換規則２２（Ｆ）は、個票データ２１（Ｔ）から別の個票データ（ＴＦ）への写像（Ｆ：Ｔ→ＴＦ）とし、特定の値を持つ行を、別の値に変換する規則（ｆ）の集まりである。
【００３２】
図３は、変換規則２２を説明する説明図である。図３に示すように、変換規則２２における規則（ｆ）は、行ごとに記述される。規則（ｆ）は、例えば、「変換前の値→変換後の値」と表現する。一例としては、｛住所：Ａ市，趣味：サッカー，疾患：風邪｝→｛住所：＊，趣味：サッカー，疾患：風邪｝などとなる。なお、「＊」は、値が不明であることを意味する属性値である。各規則における個数は、その規則を適用する回数を示す。なお、図３における規則（ｆ）の表記は一例であり、写像（Ｆ：Ｔ→ＴＦ）を示すものであれば何れであってもよい。
【００３３】
図３に例示した変換規則２２を用いた変換では、個票データ２１（Ｔ）の各行について、変換前の値が等しい行が変換規則２２にある場合、その変換規則２２の行をｆとする。そして、Ｔにおいてｆの変換前の値と等しい行を、ｆの変換後の値に変換し、ｆの個数を１つ減ずる。そして、変換規則２２において個数が０となった行は削除する。なお、個票データ２１（Ｔ）の各行について、変換前の値が等しい行が変換規則２２にない場合、そのＴにおける行の変換は行わないものとする。
【００３４】
図４は、変換結果２３を説明する説明図である。図４に示すように、変換結果２３は、図２に例示した個票データ２１（Ｔ）を、図３に例示した変換規則２２（Ｆ）をもとに変換した結果（ＴＦ）である。
【００３５】
次に、匿名化部１１における匿名化処理の詳細を説明する。図５は、データ秘匿装置１の動作例を示すフローチャートである。
【００３６】
図５に示すように、匿名化部１１における匿名化処理が開始されると、匿名化部１１は、匿名化の対象となる表データ、各列の欠損値、列順序、匿名化パラメータ、抑制行数、各列のランダム性値の入力を受け入れる（Ｓ１）。
【００３７】
具体的には、匿名化部１１は、記憶部２０に記憶された個票データ２１を読み出して、匿名化の対象となる表データ（Ｔ）として受け入れる。また、匿名化部１１は、記憶部２０に予め記憶されたパラメータの読出しや、入力装置（例えばキーボード）の入力操作などをもとに、各列の欠損値、列順序、匿名化パラメータ、抑制行数、各列のランダム性値の入力を受け入れる。
【００３８】
各列の欠損値（Ｍ）は、表データ（Ｔ）における列名（属性名）から欠損値への写像（Ｍ：ｃ→ｍ）とし、例えば、Ｍ（住所）＝Ｍ（趣味）＝Ｍ（疾患）＝「＊」とする。欠損値とは、値が不明であることを意味する属性値「＊」である。ある属性値の欠損値化は、その属性値が一般化され、抑制されていることに相当する。
【００３９】
列順序（Ｃ）は、処理を行う順に並べた列名（属性名）のリストとし、例えば、Ｃ＝｛住所，趣味，疾患｝とする。匿名化パラメータ（ｋ）は、同じような属性の人が、必ずｋ人以上いる状態とするｋ−匿名化についてのパラメータであり、例えば、ｋ＝２とする。抑制行数（ｓ）は、抑制を行う行の行数であり、例えば、ｓ＝１とする。
【００４０】
各列のランダム性値（Ｒ）は、列名（属性名）からランダム性への写像（Ｒ：ｃ→ｒ）とし、例えば、Ｒ（住所）＝Ｒ（趣味）＝Ｒ（疾患）＝０．２とする。ランダム性は、乱数の影響の程度を与える範囲（０，１）のパラメータであり、その値が大きく（１に近く）なると乱数の影響が強くなる。
【００４１】
例えば、図２の個票データ２１の例では、Ｍ（ｃ）＝＊（ｃは任意）とし、Ｃ＝｛住所，趣味，疾患｝、ｋ＝２、ｓ＝１およびＲ（ｃ）＝０．２とする。
【００４２】
次いで、匿名化部１１は、表データの次の列（ｃ）を選択し、欠損値（ｍ）およびランダム性値（ｒ）のそれぞれを取得する（Ｓ２）。具体的には、Ｃ＝｛住所，趣味，疾患｝より最初の要素を参照し、ｃ＝住所となる。また、Ｓ１において受け入れた値をもとに、ｍ＝Ｍ（ｃ）＝＊、ｒ＝Ｒ（ｃ）＝０．２となる。
【００４３】
次いで、匿名化部１１は、Ｓ２において選択した列（ｃ）について、乱数を用いたｋ−匿名化処理を行う（Ｓ３）。このｋ−匿名化処理の詳細は後述する。ｋ−匿名化処理の結果として、匿名化部１１は、選択した列（ｃ）について、ｋ−匿名性を満たさないために抑制される行である行抑制行群（Ｗ）および抑制行群（Ｘ）と、ｋ−匿名性を満たすグループ群（Ｇ）とを得る。なお、行抑制行群（Ｗ）は行自体を抑制する行群であり、抑制行群（Ｘ）は選択された列（ｃ）の値を抑制する行群である。
【００４４】
例えば、行抑制行群Ｗ＝［Ｔ（７）］、抑制行群Ｘ＝［Ｔ（４），Ｔ（５），Ｔ（６）］、ｋ−匿名性を満たすグループ群Ｇ＝｛［Ｔ（１），Ｔ（２），Ｔ（３）］｝を得たものとする。ここで、Ｔ（ｎ）は、表データＴのｎ行目（ｎ≧１）のデータとする。例えば、図２の個票データ２１（Ｔ）の例では、Ｔ（１）＝Ｔ（２）＝｛住所：Ａ市，趣味：サッカー，疾患：胃腸炎｝である。ここで、得られた行抑制行群Ｗ、抑制行群Ｘを欠損値化する規則を生成した場合は、列（ｃ）単独で考えた場合のｋ−匿名性が達成できることとなる。なお、ｋ−匿名化処理において、Ｗの要素数はｓの値となるが、その他の内容は、乱数の作用により、ｋ−匿名化処理を呼び出す度に変わる可能性がある。
【００４５】
次いで、匿名化部１１は、ｋ−匿名性を満たす各グループについて、グループ群（Ｇ）から要素を順次取り出してＳ４〜Ｓ７のループ処理を行うことで、ｋ−匿名化処理を再帰的に行う。具体的には、グループ群Ｇ＝｛［Ｔ（１），Ｔ（２），Ｔ（３）］｝であることから、ｋ−匿名化処理を再帰的に行う表データ（Ｔ’）をＴ’＝［Ｔ（１），Ｔ（２），Ｔ（３）］とする。
【００４６】
次いで、匿名化部１１は、選択した列（ｃ）の次の列（ｃ’）について、抑制する列集合（Ｄ）を空（Ｄ＝｛｝）として、再帰的処理を行う（Ｓ５）。例えば、列の要素がＣ＝｛住所，趣味，疾患｝であり、選択した列（ｃ）がｃ＝住所である場合は、ｃ’＝趣味とする。この再帰的処理の詳細は後述する。
【００４７】
再帰的処理の結果として、匿名化部１１は、余った行群（Ｅ：Ｅ＝［Ｔ（３）］）を得たものとする。この再帰的処理により得られるＴ’−Ｅの行群により、Ｃについてｋ−匿名性が達成される規則を生成できる。この再帰的処理では、［Ｔ（１），Ｔ（２）］は、Ｔ（１）＝Ｔ（２）であることから、元々Ｃについてｋ＝２のｋ−匿名性を満たしているので、変換規則は生成されないこととなる。また、再帰的処理の呼び出し結果についても、乱数の作用により、呼び出す度に変わる可能性がある。
【００４８】
次いで、匿名化部１１は、余った行群（Ｅ）を抑制行群（Ｘ）に追加する（Ｓ６）。例えば、抑制行群Ｘ＝［Ｔ（４），Ｔ（５），Ｔ（６）］であり、余った行群Ｅ＝［Ｔ（３）］である場合は、Ｘ＝［Ｔ（３），Ｔ（４），Ｔ（５），Ｔ（６）］となる。
【００４９】
ループ処理（Ｓ４〜Ｓ７）に次いで、匿名化部１１は、抑制行数がｋ以上であるか否かを判定し（Ｓ８）、ｋ以上である場合（Ｓ８：ＹＥＳ）はＳ９へ処理を進め、ｋ以上でない場合（Ｓ８：ＮＯ）はＳ１０へ処理を進める。例えば、Ｘ＝［Ｔ（３），Ｔ（４），Ｔ（５），Ｔ（６）］である場合、｜Ｘ｜＝４≧ｋ＝２であることから、匿名化部１１はＳ９へ処理を進める。
【００５０】
Ｓ９において、匿名化部１１は、選択した列（ｃ）の次の列（ｃ’）について、抑制行群をＴ’として、再帰的処理を行う。例えば、列の要素がＣ＝｛住所，趣味，疾患｝であり、選択した列（ｃ）がｃ＝住所である場合は、ｃ’＝趣味とする。そして、Ｔ’＝Ｘ、Ｄ＝｛ｃ｝＝｛住所｝とし、Ｔ’、ｃ’を用いて再帰的処理を行う。
【００５１】
この再帰的処理の結果として、匿名化部１１は、余った行群（Ｅ：Ｅ＝［］）を得たものとする。この再帰的処理により得られるＴ’−Ｅの行群により、Ｃについてｋ−匿名性が達成される規則を生成できる。
【００５２】
Ｓ１０において、匿名化部１１は、抑制行群（Ｘ）を余った行群（Ｅ）として扱うこととする。
【００５３】
Ｓ９、Ｓ１０に次いで、匿名化部１１は、余った行群（Ｅ）を行抑制行群（Ｗ）に追加する（Ｓ１１）。前述したＳ９の例では、余った行群Ｅ＝［］なので、Ｗは変化せず、Ｗ＝［Ｔ（７）］となる。
【００５４】
次いで、匿名化部１１は、行抑制行群（Ｗ）について、各列を欠損値化して行抑制を行う変換規則を生成し、変換規則２２（Ｆ）に追加する（Ｓ１２）。次いで、匿名化部１１は、変換規則２２（Ｆ）を出力する（Ｓ１３）。すなわち、匿名化部１１は、図３に例示した変換規則２２を出力する。
【００５５】
ここで、ｋ−匿名化処理の詳細を説明する。図６は、ｋ−匿名化処理の一例を示すフローチャートである。
【００５６】
図６に示すように、ｋ−匿名化処理が開始されると、匿名化部１１は、匿名化の対象となる表データ（Ｔ）、欠損値（ｍ）、列（ｃ）、匿名化パラメータ（ｋ）、抑制行数（ｓ）および各列のランダム性値（ｒ）の入力を受け入れる（Ｓ１０１）。例えば、Ｓ２の後のｋ−匿名化処理では、Ｓ２において選択した列についてのｍ＝＊、ｃ＝住所、ｋ＝２、ｓ＝１、ｒ＝０．２の値を受け入れる。
【００５７】
次いで、匿名化部１１は、選択された列（要素）で行をグループ化し、ｋ行未満の行と、欠損値の行とを、選択された列の値を抑制する抑制行群（Ｘ）としてまとめる（Ｓ１０２）。具体的には、図２の個票データ２１（Ｔ）の例において、ｃ＝住所でグループ化すると、｛Ａ市：［Ｔ（１），Ｔ（２），Ｔ（３）］，Ｂ市：［Ｔ（４）］，Ｃ市：［Ｔ（５）］，Ｄ市：［Ｔ（６），Ｔ（７）］となる。このうち、ｋ＝２行未満となる行は｛Ｂ市、Ｃ市｝であり、値がｍ＝＊の行はないので、Ｘ＝［Ｔ（４），Ｔ（５）］となる。
【００５８】
次いで、匿名化部１１は、抑制行数（ａ）をａ←ｃｅｉｌ（ｌｏｇｒｕ−１）により算出する（Ｓ１０３）。ここで、ｃｅｉｌは天井関数であり、ｕは範囲（０，１）の一様乱数である。乱数ｕ＝０．１を得たとすると，ａ＝ｃｅｉｌ（ｌｏｇ０．２０．１−１）＝１となる。なお、抑制行数（ａ）の算出式は、大きな行数ほど得られる確率が小さくなるような算出式であれば、何れであってもよく、特に限定しない。
【００５９】
次いで、匿名化部１１は、｜Ｘ｜＜ｓであるか否かを判定し（Ｓ１０４）、｜Ｘ｜＜ｓである場合（Ｓ１０４：ＹＥＳ）はＳ１０５へ処理を進め、｜Ｘ｜＜ｓでない場合（Ｓ１０４：ＮＯ）はＳ１０６へ処理を進める。例では、ｓはｓ＝１であり、ＸはＸ＝［Ｔ（４），Ｔ（５）］である。よって、｜Ｘ｜＝２≧ｓ＝１なので、Ｓ１０４の条件は成立せずに、匿名化部１１はＳ１０６へ処理を進める。
【００６０】
Ｓ１０５において、匿名化部１１は、抑制行数（ａ）をａ←ａ＋ｓ−｜Ｘ｜とし、Ｓ１０６へ処理を進める。例えば、前述した例でｓ＝３の場合、｜Ｘ｜＜ｓであるのでＳ１０５に処理が進み、ａ＝２となる。
【００６１】
Ｓ１０６において、匿名化部１１は、ｋ行以上のグループ群から抑制行群以上を削除（ｋ行未満になったグループも削除）し、抑制行群（Ｘ）に追加する。例えば、ｋ行以上のグループ群は｛Ａ市：［Ｔ（１），Ｔ（２），Ｔ（３）］，Ｄ市：［Ｔ（６），Ｔ（７）］｝であり、ここからａ＝１行をＸに移す。具体的には、まず値を乱数により選び、Ｄ市が選ばれたとする。次にＤ市の行を乱数により選び、Ｔ（６）が選ばれたとする。また、Ｄ市グループは、Ｔ（６）を削除すると行数がｋ未満となるので、その結果、同グループの全ての行を抑制行群（Ｘ）に移す。ここで、ａ行以上を移したので、これ以上は移さないものとする。この結果、Ｘ＝［Ｔ（４），Ｔ（５），Ｔ（６），Ｔ（７）］となる。また、ｋ−匿名性を満たすグループ群は、Ａ市を要素とするＧ＝｛［Ｔ（１），Ｔ（２），Ｔ（３）］｝となる。
【００６２】
次いで、匿名化部１１は、抑制行群（Ｘ）から乱数を使い行を削除し、その削除した行を行抑制行群（Ｗ）とする（Ｓ１０７）。具体的には、ｓ＝１行を乱数により選び、Ｘ＝［Ｔ（４），Ｔ（５），Ｔ（６），Ｔ（７）］からＴ（７）が選ばれたものとする。この場合、Ｘ＝［Ｔ（４），Ｔ（５），Ｔ（６）］とし、行抑制行群Ｗ＝［Ｔ（７）］とする。
【００６３】
次いで、匿名化部１１は、Ｓ１０１〜Ｓ１０７の処理により得られた行抑制行群（Ｗ）、抑制行群（Ｘ）、ｋ−匿名性を満たす各グループ（Ｇ）を出力する（Ｓ１０８）。具体的には、上述した例では、Ｗ＝［Ｔ（７）］，Ｘ＝［Ｔ（４），Ｔ（５），Ｔ（６）］，Ｇ＝｛［Ｔ（１），Ｔ（２），Ｔ（３）］｝を出力する。
【００６４】
次に、再帰的処理の詳細を説明する。図７は、再帰的処理の一例を示すフローチャートである。
【００６５】
図７に示すように、匿名化部１１における再帰的処理が開始されると、匿名化部１１は、処理の対象となる表データ、各列の欠損値、列順序、列、匿名化パラメータ、各列のランダム性値、抑制する列集合（Ｄ）の入力を受け入れる（Ｓ２０１）。
【００６６】
次いで、匿名化部１１は、列（ｃ）はあるか否かを判定し（Ｓ２０２）、ある場合（Ｓ２０２：ＹＥＳ）はＳ２０３へ処理を進め、ない場合（Ｓ２０２：ＮＯ）はＳ２１３へ処理を進める。
【００６７】
Ｓ２０３において、匿名化部１１は、Ｓ２０１で受け入れた値より、欠損値（ｍ）、ランダム性値（ｒ）をそれぞれ取得する。
【００６８】
次いで、匿名化部１１は、ｓ＝０でｋ−匿名化処理を呼び出して実行する（Ｓ２０４）。次いで、匿名化部１１は、ｋ−匿名性を満たす各グループについて、グループ群（Ｇ）から要素を順次取り出してＳ２０５〜Ｓ２０８のループ処理を行うことで、ｋ−匿名化処理を再帰的に行う。
【００６９】
このループ処理において、匿名化部１１は、選択した列（ｃ）の次の列（ｃ’）について、再帰的処理を行い（Ｓ２０６）、余った行群（Ｅ）を得る。次いで、匿名化部１１は、余った行群（Ｅ）を抑制行群（Ｘ）に追加する（Ｓ２０７）。そして、匿名化部１１は、グループ群（Ｇ）の要素がない場合、Ｓ２０５〜Ｓ２０８のループ処理を終了し、Ｓ２０９へ処理を進める。
【００７０】
Ｓ２０９において、匿名化部１１は、抑制行数がｋ以上であるか否かを判定し、ｋ以上である場合（Ｓ２０９：ＹＥＳ）はＳ２１０へ処理を進め、ｋ以上でない場合（Ｓ２０９：ＮＯ）はＳ２１１へ処理を進める。
【００７１】
Ｓ２１０において、匿名化部１１は、選択した列（ｃ）の次の列（ｃ’）について、抑制行群をＴ’とし、抑制する列集合（Ｄ）に選択した列（ｃ）を追加したものを新たな列集合（Ｄ）として、再帰的処理を行う。この再帰的処理の結果として、匿名化部１１は、余った行群（Ｅ）を得て、Ｓ２１２へ処理を進める。
【００７２】
Ｓ２１１において、匿名化部１１は、抑制行群（Ｘ）を余った行群（Ｅ）として扱うこととし、Ｓ２１２へ処理を進める。Ｓ２１２において、匿名化部１１は、余った行群（Ｅ）を出力し、処理を終了する。
【００７３】
Ｓ２１３において、匿名化部１１は、列集合（Ｄ）が空であるか否かを判定し、空である場合（Ｓ２１３：ＹＥＳ）はＳ２１５へ処理を進め、空でない場合（Ｓ２１３：ＮＯ）はＳ２１４へ処理を進める。Ｓ２１４において、匿名化部１１は、表データについて、列集合（Ｄ）に対応する列を抑制する変換規則を生成し、Ｓ２１５へ処理を進める。Ｓ２１５において、匿名化部１１は、余った行群（Ｅ）として空集合（［］）を出力し、処理を終了する。
【００７４】
ここで、いくつかの表データを例示して再帰的処理をより具体的に説明する。
【００７５】
図８〜図１１は、表データの一例を説明する説明図である。Ｓ２０１では、一例として、図８に示すような表データ（Ｔ’）を処理の対象として受け入れるものとする。また、Ｍ（ｃ）＝＊（ｃは任意）、Ｃ＝｛住所，趣味，疾患｝、ｃ＝趣味、ｋ＝２、Ｒ（ｃ）＝０．２（ｃは任意）、Ｄ＝｛｝の入力を受け入れるものとする。
【００７６】
Ｓ２０２では、ｃ＝趣味であるので、Ｓ２０３へ処理を進める。Ｓ２０３において、匿名化部１１は、Ｓ２０１で受け入れた値より、欠損値（ｍ）、ランダム性値（ｒ）をそれぞれ取得する。ここでは、ｍ＝Ｍ（ｃ）＝＊、ｒ＝Ｒ（ｃ）＝０．２となる。
【００７７】
次いで、Ｓ２０４では、ｋ−匿名化処理を呼び出し、行抑制行群Ｗ＝［］、抑制行群Ｘ＝［］、ｋ−匿名性を満たすグループ群Ｇ＝｛［Ｔ（１），Ｔ（２），Ｔ（３）］｝を得たものとする。
【００７８】
次いでＳ２０５〜Ｓ２０８のループ処理では、グループ群Ｇ＝｛［Ｔ（１），Ｔ（２），Ｔ（３）］｝であることから、ｋ−匿名化処理を再帰的に行う表データ（Ｔ’）をＴ’＝［Ｔ（１），Ｔ（２），Ｔ（３）］とする。
【００７９】
Ｓ２０６の再帰的処理では、列の要素がＣ＝｛住所，趣味，疾患｝であり、ｃ＝趣味であるので、ｃ’＝疾患とする。この再帰的処理の結果として、匿名化部１１は、余った行群（Ｅ：Ｅ＝［Ｔ（３）］）を得る。Ｓ２０７では、余った行群Ｅ＝［Ｔ（３）］であるので、Ｘ＝［Ｔ（３）］となる。なお、グループ群（Ｇ）に次の要素はないので、Ｓ２０５〜Ｓ２０８のループ処理を終了し、Ｓ２０９へ処理を進める。
【００８０】
Ｓ２０９では、｜Ｘ｜＝［Ｔ（３）］＝１＜ｋ＝２のため、Ｓ２１１へ処理を進める。これにより、Ｓ２１１、Ｓ２１２を経て、余った行群として［Ｔ（３）］を出力する。
【００８１】
次に、Ｓ２０１において、図８に示すような表データ（Ｔ’）を処理の対象として受け入れ、Ｍ（ｃ）＝＊（ｃは任意）、Ｃ＝｛住所，趣味，疾患｝、ｃ＝疾患、ｋ＝２、Ｒ（ｃ）＝０．２（ｃは任意）、Ｄ＝｛｝の入力を受け入れる場合を説明する。
【００８２】
この場合、Ｓ２０２では、ｃ＝疾患であるので、Ｓ２０３へ処理を進める。Ｓ２０３では、Ｓ２０１で受け入れた値より、ｍ＝Ｍ（ｃ）＝＊、ｒ＝Ｒ（ｃ）＝０．２となる。
【００８３】
次いで、Ｓ２０４では、ｋ−匿名化処理を呼び出し、行抑制行群Ｗ＝［］、抑制行群Ｘ＝［Ｔ（３）］、ｋ−匿名性を満たすグループ群Ｇ＝｛［Ｔ（１），Ｔ（２）］｝を得たものとする。
【００８４】
次いでＳ２０５〜Ｓ２０８のループ処理では、グループ群Ｇ＝｛［Ｔ（１），Ｔ（２）］｝であることから、ｋ−匿名化処理を再帰的に行う表データ（Ｔ’）をＴ’＝［Ｔ（１），Ｔ（２）］とする。
【００８５】
Ｓ２０６の再帰的処理では、列の要素がＣ＝｛住所，趣味，疾患｝であり、ｃ＝疾患であるので、ｃ’＝（該当なし）とする。この再帰的処理の結果として、匿名化部１１は、余った行群（Ｅ：Ｅ＝［］）を得る。Ｓ２０７では、Ｘ＝［Ｔ（３）］にＥ＝［］を追加し、Ｘ＝［Ｔ（３）］となる。なお、グループ群（Ｇ）に次の要素はないので、Ｓ２０５〜Ｓ２０８のループ処理を終了し、Ｓ２０９へ処理を進める。
【００８６】
Ｓ２０９では、｜Ｘ｜＝［Ｔ（３）］＝１＜ｋ＝２のため、Ｓ２１１へ処理を進める。これにより、Ｓ２１１、Ｓ２１２を経て、余った行群として［Ｔ（３）］を出力する。
【００８７】
次に、Ｓ２０１において、図９に示すような表データ（Ｔ’）を処理の対象として受け入れ、Ｍ（ｃ）＝＊（ｃは任意）、Ｃ＝｛住所，趣味，疾患｝、ｃ＝（該当なし）、ｋ＝２、Ｒ（ｃ）＝０．２（ｃは任意）、Ｄ＝｛｝の入力を受け入れる場合を説明する。
【００８８】
この場合、Ｓ２０２では、ｃ＝（該当なし）であるので、Ｓ２１３へ処理を進める。Ｓ２１３では、Ｄ＝｛｝であるので、Ｓ２１５へ処理を進め、余った行群（Ｅ）として空集合（［］）を出力する。
【００８９】
次に、Ｄが空（｛｝）でない場合の処理例を説明する。具体的には、Ｓ２０１において、図１０に示すような表データ（Ｔ’）を処理の対象として受け入れ、Ｍ（ｃ）＝＊（ｃは任意）、Ｃ＝｛住所，趣味，疾患｝、ｃ＝趣味、ｋ＝２、Ｒ（ｃ）＝０．２（ｃは任意）、Ｄ＝｛住所｝の入力を受け入れるものとする。
【００９０】
この場合、Ｓ２０２では、ｃ＝趣味であるので、Ｓ２０３へ処理を進める。Ｓ２０３では、Ｓ２０１で受け入れた値より、ｍ＝Ｍ（ｃ）＝＊、ｒ＝Ｒ（ｃ）＝０．２となる。
【００９１】
次いで、Ｓ２０４では、ｓ＝０でｋ−匿名化処理を呼び出し、行抑制行群Ｗ＝［］、抑制行群Ｘ＝［］、ｋ−匿名性を満たすグループ群Ｇ＝｛［Ｔ（１），Ｔ（４）］，［Ｔ（２），Ｔ（３）］｝を得たものとする。
【００９２】
次いでＳ２０５〜Ｓ２０８のループ処理では、グループ群Ｇ＝｛［Ｔ（１），Ｔ（４）］，［Ｔ（２），Ｔ（３）］｝であることから、ｋ−匿名化処理を再帰的に行う表データ（Ｔ’）をＴ’＝［Ｔ（１），Ｔ（４）］とする。
【００９３】
Ｓ２０６の再帰的処理では、列の要素がＣ＝｛住所，趣味，疾患｝であり、ｃ＝趣味であるので、ｃ’＝疾患とする。この再帰的処理の結果として、匿名化部１１は、余った行群（Ｅ：Ｅ＝［］）を得る。Ｓ２０７では、余った行群Ｅ＝［］であるので、Ｘ＝［］となる。なお、グループ群（Ｇ）に次の要素［Ｔ（２），Ｔ（３）］があるのでＳ２０５へ処理を戻し、ｋ−匿名化処理を再帰的に行う表データ（Ｔ’）をＴ’＝［Ｔ（２），Ｔ（３）］とする。
【００９４】
Ｓ２０６の再帰的処理ではｃ’＝疾患とし、この再帰的処理の結果として、匿名化部１１は、余った行群（Ｅ：Ｅ＝［］）を得る。Ｓ２０７では、余った行群Ｅ＝［］であるので、Ｘ＝［］となる。なお、グループ群（Ｇ）に次の要素はないので、Ｓ２０５〜Ｓ２０８のループ処理を終了し、Ｓ２０９へ処理を進める。
【００９５】
Ｓ２０９では、｜Ｘ｜＝［］＝０＜ｋ＝２のため、Ｓ２１１へ処理を進める。これにより、Ｓ２１１、Ｓ２１２を経て、余った行群として［］を出力する。
【００９６】
次に、Ｓ２０１において、図１１に示すような表データ（Ｔ’）を処理の対象として受け入れ、Ｍ（ｃ）＝＊（ｃは任意）、Ｃ＝｛住所，趣味，疾患｝、ｃ＝疾患、ｋ＝２、Ｒ（ｃ）＝０．２（ｃは任意）、Ｄ＝｛住所｝の入力を受け入れる場合を説明する。
【００９７】
この場合、Ｓ２０２では、ｃ＝疾患であるので、Ｓ２０３へ処理を進める。Ｓ２０３では、Ｓ２０１で受け入れた値より、ｍ＝Ｍ（ｃ）＝＊、ｒ＝Ｒ（ｃ）＝０．２となる。
【００９８】
次いで、Ｓ２０４では、ｓ＝０でｋ−匿名化処理を呼び出し、行抑制行群Ｗ＝［］、抑制行群Ｘ＝［Ｔ（１），Ｔ（２）］、ｋ−匿名性を満たすグループ群Ｇ＝｛｝を得たものとする。
【００９９】
Ｓ２０５〜Ｓ２０８のループ処理では、グループ群（Ｇ）に要素はないので、処理を終了し、Ｓ２０９へ処理を進める。Ｓ２０９では、｜Ｘ｜＝［Ｔ（１），Ｔ（２）］＝２≧ｋ＝２のため、Ｓ２１０へ処理を進める。
【０１００】
Ｓ２１０では、Ｃからｃ＝疾患の次の要素を参照し、ｃ’＝（該当なし）となる。そして、Ｔ’＝Ｘ、Ｄ’＝Ｄ∪｛ｃ｝＝｛住所，疾患｝とし、Ｔ’、ｃ’、Ｄ’を用いて再帰的処理を行う。この再帰的処理の結果として、匿名化部１１は、余った行群（Ｅ：Ｅ＝［］）を得る。Ｓ２１２では、余った行群Ｅ＝［］を出力する。
【０１０１】
次に、Ｓ２０１において、図１１に示すような表データ（Ｔ’）を処理の対象として受け入れ、Ｍ（ｃ）＝＊（ｃは任意）、Ｃ＝｛住所，趣味，疾患｝、ｃ＝（該当なし）、ｋ＝２、Ｒ（ｃ）＝０．２（ｃは任意）、Ｄ＝｛住所，疾患｝の入力を受け入れる場合を説明する。
【０１０２】
この場合、Ｓ２０２では、ｃ＝（該当なし）であるので、Ｓ２１３へ処理を進める。Ｓ２１３では、Ｄ＝｛住所，疾患｝であるので、Ｓ２１４へ処理を進める。Ｓ２１４では、Ｄ＝｛住所，疾患｝に対応する列を抑制する変換規則を生成する。抑制とは、その列の値をＭを使って欠損値化することである。例えば、Ｔ（１）については、｛住所：Ｂ市，趣味：ペタンク，疾患：早老症｝→｛住所：＊，趣味：ペタンク，疾患：＊｝という変換規則を生成する。
【０１０３】
図１２、図１３は、変換規則の一例を説明する説明図である。図１１の例では、上述した再帰的処理により、図１２のような変換規則が生成される。同様に、図１０の例では、上述した再帰的処理により、図１３のような変換規則が生成される。
【０１０４】
このように、主に最初の列に対する処理（例えば、図５）では、それ以外の列に対する再帰的処理（例えば、図７）に比べ、ｓ行以上を行抑制する点に違いがある。具体的には、Ｓ３においてｓ行の行抑制を決め、Ｓ１１において全体でｋ−匿名性を満たさなかった行の行抑制を決めている。よって、必ずｓ行以上を抑制することで、ある人が含まれていないことの推定を必ず不確定にする効果がある。
【０１０５】
また、図５のＳ４〜Ｓ７、図７のＳ２０５〜Ｓ２０８は、列（ｃ）でｋ−匿名性を満たすグループ内で、全体でｋ−匿名性を満たさなかった行を、あきらめて行抑制するのではなく、列を抑制した行同士でのｋ−匿名化を試行するための処理である。これにより、抑制量を減らす効果がある。
【０１０６】
また、図６のＳ１０３では、抑制行数（ａ）を乱数を使って決めていることで、抑制した値の元の値の推定を難しくしている。例えば、決定的なアルゴリズムによって変換された場合は、個人の存在を推定できてしまうかも知れない。具体的には、「趣味」がペタンクな人がＢ市またはＣ市という非政令市にしか住んでいないという知識があるＹ社が図１７の表を見た場合、「趣味」がペタンクで「住所」がＢ市である唯一の人が表に含まれていることが推定できる。しかしながら、データ秘匿装置１のように、もともとｋ−匿名性があっても、無作為にデータが抑制される可能性のあるアルゴリズムが使われていれば、その推定は不確定になる。
【０１０７】
また、データ秘匿装置１では、抑制行数（ａ）をｃｅｉｌ（ｌｏｇｒｕ−１）のように、大きなａほど得られる確率が小さくなるような式で算出することで、抑制数を少なくできる。この結果、表の変換度合いを小さくすることができる。
【０１０８】
以上のように、データ秘匿装置１の匿名化部１１は、個票データ２１と、匿名化にかかるパラメータとを受け入れて、個票データ２１のレコードの各属性に含まれるデータの中から、パラメータをもとに、ｋ−匿名性を満たさないデータを抑制する。また、匿名化部１１は、個票データ２１のデータの中から無作為に抽出されたデータを抑制する。データ秘匿装置１の出力部１２は、匿名化部１１によりデータが抑制された個票データを出力する。このため、データ秘匿装置１により秘匿化された出力部１２は、ある人が含まれていないことの推定が不確定となり、個人の存在性を秘匿することができる。
【０１０９】
また、匿名化部１１は、属性の中のある属性おいて、ｋ−匿名性を満たさないデータを抑制するとともに、データの中から無作為に抽出されたデータを抑制する。そして、匿名化部１１は、さらに別の属性においてｋ−匿名性を満たさないデータを抑制するとともに、データの中から無作為に抽出されたデータを抑制する再帰処理を行って、各属性に含まれるデータを抑制する。これにより、匿名化部１１は、抑制量を減らすことができる。
【０１１０】
また、匿名化部１１は、レコードの数の増加に応じて無作為に抽出される確率を小さくすることで、抑制数を少なくできる。
【０１１１】
また、図示した各部の各構成要素は、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各部の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況等に応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。例えば、上記の実施形態の匿名化部１１、出力部１２などのそれぞれを統合してもよい。
【０１１２】
さらに、各装置で行われる各種処理機能は、ＣＰＵ（またはＭＰＵ、ＭＣＵ（Micro  Controller  Unit）等のマイクロ・コンピュータ）上で、その全部または任意の一部を実行するようにしてもよい。また、各種処理機能は、ＣＰＵ（またはＭＰＵ、ＭＣＵ等のマイクロ・コンピュータ）で解析実行されるプログラム上、またはワイヤードロジックによるハードウェア上で、その全部または任意の一部を実行するようにしてもよいことは言うまでもない。
【０１１３】
ところで、上記の実施形態で説明した各種の処理は、予め用意されたプログラムをコンピュータで実行することで実現できる。そこで、以下では、上記の実施例と同様の機能を有するプログラムを実行するコンピュータの一例を説明する。図１４は、データ秘匿プログラムを実行するコンピュータ３００の一例を示す説明図である。
【０１１４】
図１４が示すように、コンピュータ３００は、各種演算処理を実行するＣＰＵ３０１と、データ入力を受け付ける入力装置３０２と、モニタ３０３とを有する。また、コンピュータ３００は、記憶媒体からプログラム等を読み取る媒体読取装置３０４と、各種装置と接続するためのインタフェース装置３０５と、他の装置と有線または無線により接続するための通信装置３０６とを有する。また、コンピュータ３００は、各種情報を一時記憶するＲＡＭ３０７と、ハードディスク装置３０８とを有する。また、各装置３０１〜３０８は、バス３０９に接続される。
【０１１５】
ハードディスク装置３０８には、上記の実施形態で説明した各処理部と同様の機能を有するデータ秘匿プログラムが記憶される。また、ハードディスク装置３０８には、データ秘匿プログラムを実現するための各種データが記憶される。入力装置３０２は、例えばユーザからの入力を受け付ける。モニタ３０３は、ユーザからの入力を受け付ける際の操作画面を表示したり、各種情報を表示する。インタフェース装置３０５は、例えば印刷装置等が接続される。通信装置３０６は、例えば外部機器やネットワークに接続される。
【０１１６】
ＣＰＵ３０１は、ハードディスク装置３０８に記憶された各プログラムを読み出して、ＲＡＭ３０７に展開して実行することで、各種の処理を行う。また、これらのプログラムは、コンピュータ３００を上記の実施形態で説明した各処理部と同様に機能させることができる。
【０１１７】
なお、上記のデータ秘匿プログラムは、必ずしもハードディスク装置３０８に記憶されている必要はない。例えば、コンピュータ３００が読み取り可能な記憶媒体に記憶されたプログラムを、コンピュータ３００が読み出して実行するようにしてもよい。コンピュータ３００が読み取り可能な記憶媒体は、例えば、ＣＤ−ＲＯＭやＤＶＤディスク、ＵＳＢ（Universal  Serial  Bus）メモリ等の可搬型記録媒体、フラッシュメモリ等の半導体メモリ、ハードディスクドライブ等が対応する。また、公衆回線、インターネット、ＬＡＮ等に接続された装置にこのデータ秘匿プログラムを記憶させておき、コンピュータ３００がこれらからデータ秘匿プログラムを読み出して実行するようにしてもよい。
【符号の説明】
【０１１８】
１…データ秘匿装置
１０…制御部
１１…匿名化部
１２…出力部
２０…記憶部
２１…個票データ
２２…変換規則
２３…変換結果
３００…コンピュータ
３０１…ＣＰＵ
３０２…入力装置
３０３…モニタ
３０４…媒体読取装置
３０５…インタフェース装置
３０６…通信装置
３０７…ＲＡＭ
３０８…ハードディスク装置
３０９…バス
【図１】
0006413769.tif 000002
【図２】
0006413769.tif 000003
【図３】
0006413769.tif 000004
【図４】
0006413769.tif 000005
【図５】
0006413769.tif 000006
【図６】
0006413769.tif 000007
【図７】
0006413769.tif 000008
【図８】
0006413769.tif 000009
【図９】
0006413769.tif 000010
【図１０】
0006413769.tif 000011
【図１１】
0006413769.tif 000012
【図１２】
0006413769.tif 000013
【図１３】
0006413769.tif 000014
【図１４】
0006413769.tif 000015
【図１５】
0006413769.tif 000016
【図１６】
0006413769.tif 000017