(57)【要約】【課題】データ群に含まれるデータのうち、データ間の所定の条件を満たさないと判定されるデータの量を抑制すること。【解決手段】情報処理装置６は、コンピュータに、第１のデータ群に含まれるデータについて、所定の関係を持つデータの個数を計数する。また、情報処理装置６は、計数した個数がＮ（Ｎは自然数）個以上である場合には、所定の関係を持つ、複数のデータを出力先に出力する。また、情報処理装置６は、第１のデータ群、および、第１のデータ群と異なる第２のデータ群に含まれるデータについて、所定の関係を持つデータの個数を計数する。また、情報処理装置６は、第１のデータ群および第２のデータ群に含まれるデータについて計数した所定の関係を持つデータの個数が、Ｎ個以上である場合には、所定の関係を持つ、複数のデータのうち、第２のデータ群に含まれるデータを出力先に出力する。【選択図】図７
2014016675.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータに、
第１のデータ群に含まれるデータについて、所定の関係を持つデータの個数を計数し、
計数した個数がＮ（Ｎは自然数）個以上である場合には、該所定の関係を持つ、複数のデータを出力先に出力するように制御し、
前記第１のデータ群、および、前記第１のデータ群と異なる第２のデータ群に含まれるデータについて、所定の関係を持つデータの個数を計数し、
前記第１のデータ群および前記第２のデータ群に含まれるデータについて計数した前記所定の関係を持つデータの個数が、前記Ｎ個以上である場合には、前記所定の関係を持つ、複数のデータのうち、前記第２のデータ群に含まれるデータを前記出力先に出力するように制御する、
各処理を実行させることを特徴とする制御プログラム。
【請求項２】
前記コンピュータに、
前記第１のデータ群に含まれるデータについて計数した前記所定の関係を持つデータの個数が前記Ｎ個未満である場合には、該所定の関係を持つ、複数のデータを匿名化し、
匿名化された複数のデータを前記出力先に出力するように制御し、
前記第１のデータ群および前記第２のデータ群に含まれるデータについて計数した前記所定の関係を持つデータの個数が、前記Ｎ個未満である場合には、前記所定の関係を持つ、複数のデータのうち、前記第２のデータ群に含まれるデータを匿名化し、
匿名化されたデータを前記出力先に出力するように制御する、
各処理をさらに実行させることを特徴とする請求項１に記載の制御プログラム。
【請求項３】
前記第１のデータ群に含まれるデータについて、所定の関係を持つデータの個数を計数する処理は、第１のデータ群に含まれる所定の関係を持つデータの個数を計数し、計数した個数と、該所定の関係を持つデータとを対応付けて記憶部に格納し、
前記第１のデータ群および前記第２のデータ群に含まれるデータについて、所定の関係を持つデータの個数を計数する処理は、前記記憶部に格納された前記データおよび前記第２のデータ群に含まれるデータと前記所定の関係を持つ、前記第２のデータ群に含まれるデータの個数を計数し、計数した個数に基づいて、前記所定の関係を持つデータと対応付けて前記記憶部に格納された個数の値を更新する、
ことを特徴とする請求項１または２に記載の制御プログラム。
【請求項４】
前記第１のデータ群に含まれるデータについて、所定の関係を持つデータの個数を計数する処理は、前記第１のデータ群に含まれる所定の関係を持つデータの組み合わせごとに異なる識別子を、前記第１のデータ群に含まれるデータのそれぞれに対応付けて記憶部に格納し、前記記憶部に格納された識別子を計数することで、前記第１のデータ群に含まれるデータについて、前記所定の関係を持つデータの個数を計数し、
前記第１のデータ群および前記第２のデータ群に含まれるデータについて、所定の関係を持つデータの個数を計数する処理は、前記記憶部に格納された前記データおよび前記第２のデータ群に含まれるデータと前記所定の関係を持つデータの組み合わせごとに異なる識別子を、前記第２のデータ群に含まれるデータのそれぞれに対応付けて前記記憶部に格納し、前記記憶部に格納された識別子を計数することで、前記第１のデータ群および前記第２のデータ群に含まれるデータについて、前記所定の関係を持つデータの個数を計数する、
ことを特徴とする請求項１または２に記載の制御プログラム。
【請求項５】
前記コンピュータに、
前記第１のデータ群または前記第２のデータ群に含まれる更新対象のデータが更新された場合には、更新される前の前記更新対象のデータについて前記所定の関係を持つデータの個数を計数し、
更新される前の前記更新対象のデータについて計数した前記所定の関係を持つデータの個数がＮ−１である場合には、該更新される前の前記更新対象のデータと前記所定の関係を持つデータについて匿名化する指示を前記出力先に出力するように制御する、
処理をさらに実行させることを特徴とする請求項１〜４のいずれか１つに記載の制御プログラム。
【請求項６】
前記コンピュータに、
更新された後の前記更新対象のデータについて前記所定の関係を持つデータの個数を計数し、
更新された後の前記更新対象のデータについて計数した前記所定の関係を持つデータの個数がＮである場合には、該更新された後のデータと前記所定の関係を持つデータについて匿名化を解除する指示を前記出力先に出力するように制御する、
処理をさらに実行させることを特徴とする請求項２〜５のいずれか１つに記載の制御プログラム。
【請求項７】
前記コンピュータに、
更新された後の前記更新対象のデータについて計数した前記所定の関係を持つデータの個数がＮ以上である場合には、更新された後の前記更新対象のデータを前記出力先に出力するように制御する、
処理をさらに実行させることを特徴とする請求項６に記載の制御プログラム。
【請求項８】
前記コンピュータに、
更新された後の前記更新対象のデータについて計数した前記所定の関係を持つデータの個数がＮ未満である場合には、更新された後の前記更新対象のデータを匿名化し、
匿名化されたデータを前記出力先に出力するように制御する、
処理をさらに実行させることを特徴とする請求項６または７に記載の制御プログラム。
【請求項９】
前記コンピュータに、
前記第１のデータ群または前記第２のデータ群に含まれるデータが削除された場合には、削除されたデータについて前記所定の関係を持つデータの個数を計数し、
削除されたデータについて計数した前記所定の関係を持つデータの個数がＮ−１である場合には、削除されたデータと前記所定の関係を持つデータについて匿名化する指示を前記出力先に出力するように制御する、
処理をさらに実行させることを特徴とする請求項１〜８のいずれか１つに記載の制御プログラム。
【請求項１０】
前記所定の関係は、一方のデータの所定部分と他方のデータの所定部分とが共通する関係を含む、
ことを特徴とする請求項１〜９のいずれか１つに記載の制御プログラム。
【請求項１１】
第１のデータ群に含まれるデータについて、所定の関係を持つデータの個数を計数する第１の計数部と、
前記第１の計数部により計数された個数がＮ（Ｎは自然数）個以上である場合には、該所定の関係を持つ、複数のデータを出力先に出力する第１の出力部と、
前記第１のデータ群、および、前記第１のデータ群と異なる第２のデータ群に含まれるデータについて、所定の関係を持つデータの個数を計数する第２の計数部と、
前記第２の計数部により計数された個数が、前記Ｎ個以上である場合には、前記所定の関係を持つ、複数のデータのうち、前記第２のデータ群に含まれるデータを前記出力先に出力する第２の出力部と、
を有することを特徴とする情報処理装置。
【請求項１２】
複数のデータを含む第１のデータ群、および、第１のデータ群とは異なる複数のデータを含む第２のデータ群を出力する出力部を有する第１のサーバと、
前記第１のサーバから前記第１のデータ群が出力された場合に、前記第１のデータ群に含まれるデータについて、所定の関係を持つデータの第１の個数を計数するとともに、前記第１のサーバから前記第２のデータ群が出力された場合に、前記第１のデータ群および前記第２のデータ群に含まれるデータについて、所定の関係を持つデータの第２の個数を計数する計数部と、
前記第１の個数がＮ（Ｎは自然数）個以上である場合には、前記第１のデータ群に含まれるデータについて前記所定の関係を持つ、複数のデータを出力するとともに、前記第２の個数が前記Ｎ個以上である場合には、前記第１のデータ群および前記第２のデータ群に含まれるデータについて前記所定の関係を持つ複数のデータのうち、前記第２のデータ群に含まれるデータを出力する出力部と、を有する情報処理装置と、
前記情報処理装置から出力されたデータに基づいて所定の処理を実行する処理実行部を有する第２のサーバと、
を有するシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、制御プログラム、情報処理装置およびシステムに関する。
【背景技術】
【０００２】
近年、クラウドコンピューティングの利用が増加している。そして、クラウドコンピューティングにおいて、企業内の情報を社外に公開する場合、個人を特定することが可能な情報を、匿名化により、個人を特定することが困難とする処理が行われる。個人を特定することが困難となるように匿名化する技術の一例としては、個人を特定することが可能な情報をあいまいにしたり、あるいは、個人を特定することが可能な情報を除去したりする技術がある（例えば特許文献１、特許文献２および特許文献３参照）。個人を特定することが困難となるように匿名化する技術の他の例としては、個人を特定することが可能な数値を、仮名の文字に変換する技術がある。
【０００３】
図５１は、匿名化の技術の一例を説明するための図である。図５１の例の左側には、匿名化される個人情報が示されている。例えば、図５１の例に示す匿名化される個人情報は、健康診断などの情報である。図５１の例の匿名化される個人情報には、「名前」、「身長」、「体重」、「年齢」の各種の項目が含まれている。「名前」の項目には、人物の名前が登録される。「身長」の項目には、「名前」の項目に名前が登録された人物の身長が登録される。「体重」の項目には、「名前」の項目に名前が登録された人物の体重が登録される。「年齢」の項目には、「名前」の項目に名前が登録された人物の年齢が登録される。
【０００４】
図５１の例の左側に示す個人情報に対して匿名化を行うと図５１の例の右側に示すような匿名化データとなる。図５１の例に示す匿名化データは、個人情報の「名前」の項目に登録された情報が破棄され、「身長」、「体重」、「年齢」の項目に登録された情報があいまいにされた場合を示す。
【０００５】
また、個人情報を匿名化データに加工しても、他の情報と照合して個人を特定できる（以下、容易照合性という）場合がある。例えば、図５１の例に示す匿名化データの場合では、名前が「Ａ」である人物の身長が「１７５ｃｍ」であるという情報と匿名化データとを照合しても、身長が「１７５ｃｍ」に該当する匿名化データのレコードが２件であるため、いずれのレコードであるのかが特定できない。同様に、名前が「Ｂ」である人物の身長が「１７３ｃｍ」であるという情報と匿名化データとを照合しても、身長が「１７３ｃｍ」に該当する匿名化データのレコードが２件であるため、いずれのレコードであるのかが特定できない。しかしながら、名前が「Ｃ」である人物の身長が「１８２ｃｍ」であるという情報と匿名化データとを照合した場合には、身長が「１８２ｃｍ」に該当する匿名化データのレコードが１件であるため、レコードが特定できてしまう。また、名前が「Ｄ」である人物の身長が「１６９ｃｍ」であるという情報と匿名化データとを照合した場合には、身長が「１６９ｃｍ」に該当する匿名化データのレコードが１件であるため、レコードが特定できてしまう。
【０００６】
ここで、「容易照合性」があるか否かの客観的な基準がなく、安全に匿名化データを利用できるか否かの判断を行うことは、難しい。この「容易照合性」には以下に示すような観点がある。
（１）他の情報と容易に照合できる環境にあるか否か。
（２）他の情報と照合した結果、個人を識別できるか否か。
【０００７】
（１）に示した観点については、データ管理（参照権限、参照範囲、情報漏洩対策）も含めた対策を行って容易照合性が否定されることになるので、匿名化データを生成するソフトウェアの仕様だけで判断はできない。（２）に示した観点は、個人識別可能性とも呼ばれる。匿名化データを生成する際に、個人を識別するリスクのあるレコードを破棄するといった加工を行うことで、より安全な匿名化データを生成できる。これにより、他の情報と容易に照合できる場合や、個人を識別する情報が他で漏えいした場合においても、個人を特定することが困難であるため、安全に匿名化データを利用させることができる。
【０００８】
匿名化データに加工する技術には、例えば、個人情報と照合することで個人の特定につながる情報を判断して除き、匿名化データに加工する技術がある。
【０００９】
また、匿名化データ自身におけるレコードの重複から個人識別可能性を検証してデータ加工する技術も存在する（例えば、特許文献４参照）。これは、匿名化データにおけるレコードの重複数がＮ件以上であれば、個人情報と照合した結果がＮ件以上となるため匿名化データから個人は識別できないという法則を利用している。
【００１０】
具体的には、図５２に示すような処理が実施される。図５２の左側に示す匿名化データは３レコードを含んでおり、上の２行は同一であって２件以上の場合には個人識別可能性がないことが確認されるため［ＯＫ］として検証済の匿名化データに加えられる。一方、ＡＢＣＤというレコードについては１行しかないので、個人識別可能性があり［ＮＧ］と判定される。そうすると、例えばＡＢＣＤの一部の属性値Ｂ及びＣをＸに変換してしまい、ＡＸＸＤというレコードを検証済みの匿名化データに加える。一方、ＡＢＣＤというレコード自体については破棄してしまう。このような処理方法は、１つのデータベースにおいて既に蓄積済みのレコードを処理する場合には有効である。
【先行技術文献】
【特許文献】
【００１１】
【特許文献１】特開２００７−２８７１０２号公報
【特許文献２】特開２００７−２１９６３６号公報
【特許文献３】特開２００７−１４１１９２号公報
【特許文献４】特開２００９−１８１２０７号公報
【発明の概要】
【発明が解決しようとする課題】
【００１２】
しかしながら、様々な業務システムから適宜収集されるデータを匿名化して、匿名化したデータを活用する他のシステムに出力するような場合には問題がある。例えば、図５２の左側に示すような３レコードがまず収集されて、この３レコードについて上で述べたような処理を実施すると、図５２の右側に示すようなデータが他のシステムに出力される。その後、図５３の左側に示すような３レコードが新たに収集されて上で述べたような処理を新たな３レコードに実施すると、上２行は同一であって個人識別可能性がないということが確認されＯＫとして検証済みの匿名化データに加えられる。しかしながら、ＡＢＣＤというレコードについては１行しかないので、個人識別可能性があり［ＮＧ］と判定される。そうすると、一部の属性値Ｂ及びＣをＸに変換してしまい、ＡＸＸＤというレコードを検証済みの匿名化データに加えることになる。そして、ＡＢＣＤというレコード自体については破棄してしまう。このように、ＡＢＣＤというレコードは２度出現しているが、収集タイミングが異なっているので、検証済みの匿名化データには「ＡＸＸＤ」というレコードが２度登録されてしまう。これでは、ＡＢＣＤという情報は失われてしまい、他のシステムにおける統計処理などに支障を来すようになる。統計処理などに支障を来す原因の１つとしては、収集したデータ群に含まれるデータのうち、「データの一致」というデータ間の所定の条件を満たさないと判定されるデータの量が多いことが挙げられる。
【００１３】
１つの側面では、データ群に含まれるデータのうち、データ間の所定の条件を満たさないと判定されるデータの量を抑制することを目的とする。
【課題を解決するための手段】
【００１４】
開示の一態様による制御プログラムは、コンピュータに、第１のデータ群に含まれるデータについて、所定の関係を持つデータの個数を計数する処理を実行させる。また、制御プログラムは、計数した個数がＮ（Ｎは自然数）個以上である場合には、所定の関係を持つ、複数のデータを出力先に出力するように制御する処理をコンピュータに実行させる。また、制御ブログラムは、第１のデータ群、および、第１のデータ群と異なる第２のデータ群に含まれるデータについて、所定の関係を持つデータの個数を計数する処理をコンピュータに実行させる。また、制御プログラムは、第１のデータ群および第２のデータ群に含まれるデータについて計数した所定の関係を持つデータの個数が、Ｎ個以上である場合には、次のような処理をコンピュータに実行させる。すなわち、制御プログラムは、所定の関係を持つ、複数のデータのうち、第２のデータ群に含まれるデータを出力先に出力するように制御する処理をコンピュータに実行させる。
【発明の効果】
【００１５】
データ群に含まれるデータのうち、データ間の所定の条件を満たさないと判定されるデータの量を抑制することができる。
【図面の簡単な説明】
【００１６】
【図１】図１は、実施例１に係るシステムの構成の一例を示す図である。
【図２Ａ】図２Ａは、実施例１に係るシステムの情報処理装置が実行する処理の一例を説明するための図である。
【図２Ｂ】図２Ｂは、実施例１に係るシステムの情報処理装置が実行する処理の一例を説明するための図である。
【図２Ｃ】図２Ｃは、実施例１に係るシステムの情報処理装置が実行する処理の一例を説明するための図である。
【図３】図３は、サーバから情報処理装置へ送信するデータのデータ構造の一例を示す図である。
【図４】図４は、更新データの一例を示す図である。
【図５】図５は、削除データの一例を示す図である。
【図６】図６は、情報処理装置からサーバに送信されるデータのデータ構造の一例を示す図である。
【図７】図７は、実施例１に係る情報処理装置の機能構成の一例を示す図である。
【図８】図８は、匿名化データのデータ構造の一例を示す図である。
【図９】図９は、定義データのデータ構造の一例を示す図である。
【図１０】図１０は、重複数ＴＢＬのデータ構造の一例を示す図である。
【図１１】図１１は、ＮＧデータＴＢＬのデータ構造の一例を示す図である。
【図１２】図１２は、ＩＤＴＢＬのデータ構造の一例を示す図である。
【図１３】図１３は、更新された重複数ＴＢＬの一例を示す図である。
【図１４】図１４は、レコードが追加されたＮＧデータＴＢＬの一例を示す図である。
【図１５】図１５は、更新後のデータの一例を示す図である。
【図１６】図１６は、実施例１の情報処理装置が実行する処理の一例を説明するための図である。
【図１７】図１７は、実施例１の情報処理装置が実行する処理の一例を説明するための図である。
【図１８】図１８は、実施例１の情報処理装置が実行する処理の一例を説明するための図である。
【図１９】図１９は、実施例１の情報処理装置が実行する処理の一例を説明するための図である。
【図２０】図２０は、実施例１の情報処理装置が実行する処理の一例を説明するための図である。
【図２１】図２１は、実施例１の情報処理装置が実行する処理の一例を説明するための図である。
【図２２】図２２は、実施例１に係る制御処理の手順を示すフローチャートである。
【図２３】図２３は、実施例１に係るデータ検証処理の手順を示すフローチャートである。
【図２４】図２４は、実施例１に係るデータ配布処理の手順を示すフローチャートである。
【図２５】図２５は、実施例１に係る更新制御処理の手順を示すフローチャートである。
【図２６】図２６は、実施例１に係る第１の重複数取得処理の手順を示すフローチャートである。
【図２７】図２７は、実施例１に係る第１の匿名化依頼処理の手順を示すフローチャートである。
【図２８】図２８は、実施例１に係る更新依頼処理の手順を示すフローチャートである。
【図２９】図２９は、実施例１に係る削除制御処理の手順を示すフローチャートである。
【図３０】図３０は、実施例１に係る第２の重複数取得処理の手順を示すフローチャートである。
【図３１】図３１は、実施例１に係る第２の匿名化依頼処理の手順を示すフローチャートである。
【図３２】図３２は、実施例２に係る情報処理装置の機能構成の一例を示す図である。
【図３３】図３３は、グループＩＤＴＢＬのデータ構造の一例を示す図である。
【図３４】図３４は、ＮＧＩＤＴＢＬのデータ構造の一例を示す図である。
【図３５】図３５は、グループＩＤ紐付ＴＢＬのデータ構造の一例を示す図である。
【図３６】図３６は、実施例２に係る情報処理装置が実行する処理の一例を説明するための図である。
【図３７】図３７は、グループＩＤ紐付ＴＢＬの登録内容の一例を示す図である。
【図３８】図３８は、グループＩＤ紐付ＴＢＬの登録内容の一例を示す図である。
【図３９】図３９は、実施例２に係る情報処理装置が実行する処理の一例を説明するための図である。
【図４０】図４０は、実施例２に係る制御処理の手順を示すフローチャートである。
【図４１】図４１は、実施例２に係るデータ検証処理の手順を示すフローチャートである。
【図４２】図４２は、実施例２に係るデータ配布処理の手順を示すフローチャートである。
【図４３】図４３は、実施例２に係る更新制御処理の手順を示すフローチャートである。
【図４４】図４４は、実施例２に係る第１の重複数取得処理の手順を示すフローチャートである。
【図４５】図４５は、実施例２に係る第１の匿名化依頼処理の手順を示すフローチャートである。
【図４６】図４６は、実施例２に係る更新依頼処理の手順を示すフローチャートである。
【図４７】図４７は、実施例２に係る削除制御処理の手順を示すフローチャートである。
【図４８】図４８は、実施例２に係る第２の重複数取得処理の手順を示すフローチャートである。
【図４９】図４９は、実施例２に係る第２の匿名化依頼処理の手順を示すフローチャートである。
【図５０】図５０は、制御プログラムを実行するコンピュータを示す図である。
【図５１】図５１は、匿名化の技術の一例を説明するための図である。
【図５２】図５２は、従来技術の一例を説明するための図である。
【図５３】図５３は、従来技術の一例を説明するための図である。
【発明を実施するための形態】
【００１７】
以下に、本願の開示する制御プログラム、情報処理装置およびシステムの各実施例を図面に基づいて詳細に説明する。なお、各実施例は開示の技術を限定するものではない。また、各実施例において開示された技術を組み合わせることもできる。
【実施例１】
【００１８】
実施例１に係るシステムについて説明する。図１は、実施例１に係るシステムの構成の一例を示す図である。図１の例に示すシステム１は、ソースシステム内のサーバ２、サーバ３、ターゲットシステム内のサーバ４、サーバ５、情報処理装置６、および、クライアント装置１０を有する。システム１におけるサーバ２、サーバ３、サーバ４、サーバ５、情報処理装置６およびクライアント装置１０の台数は、図１の例に示す台数に限られず、任意の台数を採用できる。サーバ２およびサーバ３と、情報処理装置６とは、ネットワーク９０を介して接続されている。すなわち、サーバ２およびサーバ３と、情報処理装置６とは、互いに通信可能である。また、サーバ４およびサーバ５と、情報処理装置６とは、ネットワーク９１を介して接続されている。すなわち、サーバ４およびサーバ５と、情報処理装置６とは、互いに通信可能である。また、情報処理装置６とクライアント装置１０とは、接続されており、互いに通信可能である。なお、情報処理装置６と、サーバ２〜５およびクライアント装置１０とは、有線に限らず、無線など任意の通信網を介して接続することができる。
【００１９】
図２Ａ〜２Ｃは、実施例１に係るシステムの情報処理装置が実行する処理の一例を説明するための図である。情報処理装置６は、ソースシステムのサーバ２およびサーバ３からデータを収集する。そして、情報処理装置６は、収集したデータを匿名化する。そして、情報処理装置６は、匿名化したデータに対して以下で説明する処理を実行した上で、ターゲットシステムのサーバ４およびサーバ５に配布する。例えば、情報処理装置６は、３件のレコードを収集した場合には、収集したレコードを匿名化し、図２Ａの例に示すように、匿名化データ８０を生成する。ここで、匿名化データ８０は、匿名化のためのデータ変換処理が実行されたデータであり、属性値が対応する値域に変換されたり、仮名文字化されたり、レコードの一部の属性が破棄されたりしたデータである。図２Ａの例では、匿名化データ８０は、ＡＢＣＤという属性値を含む２件のレコードと、ＥＦＧＨという属性値を含む１件のレコードとを有する。
【００２０】
そして、情報処理装置６は、匿名化データ８０のレコードの重複数を計数する。続いて、情報処理装置６は、計数した結果を、情報処理装置６内に設けられた、レコードの重複数のカウンタである重複数テーブル（Table：TBL）８ｄに登録する。以下の説明では、「テーブル」、「Ｔａｂｌｅ」を、「ＴＢＬ」と略記する。図２Ａの例に示すように、情報処理装置６は、ＡＢＣＤという属性値を含むレコードの重複数「２」を、重複数ＴＢＬ８ｄに登録する。また、情報処理装置６は、ＥＦＧＨという属性値を含むレコードの重複数「１」を、重複数ＴＢＬ８ｄに登録する。
【００２１】
続いて、情報処理装置６は、匿名化データ８０の各レコードについて、個人が識別される可能性が高いレコードであるか否か検証する。例えば、情報処理装置６は、図２Ａの例に示すように、重複数ＴＢＬ８ｄを参照し、各レコードについて、重複数がＮ（Ｎは自然数）以上であるか否かを判定する。以下、Ｎの値が「２」である場合について説明する。情報処理装置６は、重複数がＮ以上となるＡＢＣＤという属性値を含む２件のレコードについては、「ＯＫ」、すなわち、個人が識別される可能性が低いと判定し、２回目の匿名化を行わずにサーバ４およびサーバ５に配布する。
【００２２】
一方、情報処理装置６は、重複数がＮ未満となるＥＦＧＨという属性値を含む１件のレコードについては、「ＮＧ」、すなわち、個人が識別される可能性が高いと判定し、２回目の匿名化を行った上で、サーバ４およびサーバ５に配布する。この結果、図２Ａの例に示すように、サーバ４およびサーバ５には、検証済みの匿名化データ８２が蓄積される。なお、図２Ａの例に示すように、検証済みの匿名化データ８２には、２回目の匿名化が行われた結果、ＥＦＧＨという属性値からＦＧという属性値が破棄されたレコード８２ａが含まれている。
【００２３】
そして、情報処理装置６は、新たに、サーバ２またはサーバ３から２件のレコードを収集した場合には、収集したレコードを匿名化し、図２Ｂの例に示すように、匿名化データ８３を生成する。図２Ｂの例では、匿名化データ８３は、ＥＦＧＨという属性値を含む１件のレコードと、ＩＪＫＬという属性値を含む１件のレコードとを有する。
【００２４】
そして、情報処理装置６は、匿名化データ８３のレコードの重複数を計数する。続いて、情報処理装置６は、計数した結果を、重複数ＴＢＬ８ｄに反映する。すなわち、図２Ｂの例に示すように、情報処理装置６は、重複数ＴＢＬ８ｄのＥＦＧＨという属性値を含むレコードの重複数を「１」から「２」に更新し、ＩＪＫＬという属性値を含むレコードの重複数として「１」を登録する。
【００２５】
続いて、情報処理装置６は、匿名化データ８３の各レコードについて、個人が識別される可能性が高いレコードであるか否か検証する。例えば、情報処理装置６は、図２Ｂの例に示すように、重複数ＴＢＬ８ｄを参照し、各レコードについて、重複数がＮ以上であるか否かを判定する。情報処理装置６は、重複数がＮ以上となるＥＦＧＨという属性値を含むレコードについては、「ＯＫ」と判定し、２回目の匿名化を行わずにサーバ４およびサーバ５に配布する。また、ＥＦＧＨという属性値を含むレコードについては、個人が識別される可能性が低くなったため、情報処理装置６は、サーバ４およびサーバ５に蓄積されたレコード８２ａの２回目の匿名化を解除するための指示をサーバ４およびサーバ５に送信する。これにより、図２Ｂに示すように、サーバ４およびサーバ５は、レコード８２ａの２回目の匿名化を解除する。すなわち、サーバ４およびサーバ５は、破棄されたＦＧという属性値をレコード８２ａに登録する。
【００２６】
情報処理装置６は、上述したような処理を行うことで、収集したデータ群に含まれるデータのうち、「データの一致」というデータ間の所定の条件を満たさないと判定されるデータの量を抑制することができる。この結果、より多くのレコードが、ターゲットシステムのサーバ４およびサーバ５において統計処理などの所定の処理を行う際に有効に用いられるようになる。
【００２７】
一方、情報処理装置６は、重複数がＮ未満となるＩＪＫＬというレコードについては、「ＮＧ」、すなわち、個人が識別される可能性が高いと判定し、２回目の匿名化を行った上で、サーバ４およびサーバ５に配布する。この結果、図２Ｂの例に示すように、サーバ４およびサーバ５には、検証済みの匿名化データ８２が蓄積される。なお、図２Ｂの例に示すように、検証済みの匿名化データ８２には、２回目の匿名化が行われた結果、ＩＪＫＬという属性値からＪＫという属性値が破棄されたレコード８２ｂが含まれている。
【００２８】
ここで、サーバ２およびサーバ３は、ユーザからの指示などによって、自身のデータベースに格納されているデータの更新や削除を行う。例えば、ｅｆｇｈという属性値を含むレコードをａｂｃｄという属性値を含むレコードに更新する指示をユーザから受け付けた場合、サーバ２およびサーバ３は次の処理を行う。すなわち、サーバ２およびサーバ３は、自身のデータベースに格納されているｅｆｇｈという属性値を含むレコードをａｂｃｄという属性値を含むレコードに更新する。なお、この場合における更新前のｅｆｇｈという属性値を含むレコードは、図２Ａの例に示す匿名化データ８０のＥＦＧＨという属性値を含むレコードに対して匿名化が行われる前のレコードに対応する。また、ａｂｃｄという属性値を含むレコードは、匿名化が行われるとＡＢＣＤという属性値を含むレコードとなる。そして、サーバ２およびサーバ３は、ｅｆｇｈという属性値を含むレコードをａｂｃｄという属性値を含むレコードに更新したことを示す更新データを情報処理装置６に送信する。
【００２９】
情報処理装置６は、ｅｆｇｈという属性値を含むレコードをａｂｃｄという属性値を含むレコードに更新したことを示す更新データを受信した場合には、次のような処理を行う。すなわち、情報処理装置６は、受信した更新データが示す更新に基づいて、サーバ４およびサーバ５に蓄積されたレコードを更新するようにサーバ４およびサーバ５に指示を送信する。ここで、情報処理装置６が受信した更新データは、サーバ４およびサーバ５に蓄積されたＥＦＧＨという属性値を含むレコードをＡＢＣＤという属性値を含むレコードに更新することを意味する。すなわち、情報処理装置６が受信した更新データは、サーバ４およびサーバ５に蓄積されたデータ群に含まれるＥＦＧＨという属性値を含むレコードを１件削除し、ＡＢＣＤという属性値を含むレコードを１件追加することを意味する。このため、更新データを受信した情報処理装置６は、図２Ｃの例に示すように、重複数ＴＢＬ８ｄのＥＦＧＨという属性値を含むレコードの重複数を「２」から「１」に更新し、ＡＢＣＤという属性値を含むレコードの重複数を「２」から「３」に更新する。
【００３０】
そして、情報処理装置６は、図２Ｃの例に示すように、重複数ＴＢＬ８ｄを参照し、更新前のＥＦＧＨという属性値を含むレコードおよび更新後のＡＢＣＤという属性値を含むレコードについて、重複数がＮ以上であるか否かを判定する。そして、情報処理装置６は、重複数がＮ以上となるＡＢＣＤという属性値を含むレコードについては、「ＯＫ」と判定し、ＥＦＧＨという属性値を含むレコードをＡＢＣＤという属性値を含むレコードに更新する指示をサーバ４およびサーバ５に配布する。これにより、図２Ｃに示すように、サーバ４およびサーバ５は、検証済みの匿名化データ８２に含まれるＥＦＧＨという属性値を含むレコード８２ｃをＡＢＣＤという属性値を含むレコードに更新する。
【００３１】
また、情報処理装置６は、重複数がＮ未満となるＥＦＧＨという属性値を含む１件のレコードについては、「ＮＧ」と判定する。ここで、ＥＦＧＨという属性値を含む１件のレコードは、今回の更新によって、重複数が「Ｎ」から「Ｎ−１」となった。すなわち、サーバ４およびサーバ５に蓄積されたＥＦＧＨという属性値を含むレコードは、２回目の匿名化が行われていないレコードであり、今回の更新によって、個人が識別される可能性が高くなった。そのため、情報処理装置６は、重複数がＮ未満となるＥＦＧＨという属性値を含む１件のレコードに対して２回目の匿名化を行う。そして、情報処理装置６は、ＥＦＧＨという属性値を含むレコードを、ＥＦＧＨという属性値からＦＧの属性値が破棄された２回目の匿名化後のレコードに更新する指示をサーバ４およびサーバ５に送信する。これにより、図２Ｃに示すように、サーバ４およびサーバ５は、レコード８２ａをＥＦＧＨという属性値からＦＧの属性値が破棄された２回目の匿名化後のレコードに更新する。
【００３２】
上述してきたように、情報処理装置６は、更新に係る情報である更新データを受信した場合に、更新前後のレコードについて重複数がＮ以上であるか否かを判定し、判定結果に応じて各種の処理を行う。このように、情報処理装置６によれば、更新データを受信するだけで、サーバ４およびサーバ５に蓄積されたデータを更新させることができる。したがって、情報処理装置６によれば、更新されたレコード全体を受信しなくても、更新データを受信するだけで簡易な処理で、サーバ４およびサーバ５に蓄積されたデータを更新させることができる。
【００３３】
また、情報処理装置６によれば、サーバ４およびサーバ５に蓄積されたレコードのうち、更新によって新たに個人が識別される可能性が高くなったレコードについては匿名化させることができる。また、情報処理装置６によれば、サーバ４およびサーバ５に蓄積されたレコードのうち、更新によって新たに個人が識別される可能性が低くなったレコードについては匿名化を解除させることができる。
【００３４】
図１の説明に戻り、サーバ２は、データベース（Data  Base）２ａ、および、出力部２ｂを有する。以下の説明では、「データベース」を「ＤＢ」と略記する。ＤＢ２ａは、人の氏名や住所などの個人情報のような個人が識別される可能性が高いデータを記憶する。出力部２ｂは、ＤＢ２ａに記憶されたデータ等をネットワーク９０を介して情報処理装置６に送信する。
【００３５】
サーバ２から情報処理装置６へ送信するデータのデータ構造の一例について説明する。図３は、サーバ２から情報処理装置６へ送信するデータのデータ構造の一例を示す図である。図３の例に示すデータのレコードには、「個人ＩＤ（Identification）」、「氏名」、「性別」、「年齢」、「身長」、「体重」の各項目が含まれる。「個人ＩＤ」の項目には、個人を識別するためのＩＤ（個人ＩＤ）が登録される。「氏名」の項目には、「個人ＩＤ」の項目に登録された個人ＩＤが示す人物の氏名が登録される。「性別」の項目には、「個人ＩＤ」の項目に登録された個人ＩＤが示す人物の性別が登録される。「年齢」の項目には、「個人ＩＤ」の項目に登録された個人ＩＤが示す人物の年齢が登録される。「身長」の項目には、「個人ＩＤ」の項目に登録された個人ＩＤが示す人物の身長が登録される。「体重」の項目には、「個人ＩＤ」の項目に登録された個人ＩＤが示す人物の体重が登録される。なお、「Ｎｏ」の項目に登録された番号は、レコードの識別を容易にするために便宜上付加したもので、実際には含まれない。図３の例のデータにおける番号が「１」のレコードは、個人ＩＤ「１０９８」が示す人物の氏名が「Ａ」であり、性別が「男」であり、年齢が「２９歳」であり、身長が「１６９ｃｍ」であり、体重が「６２ｋｇ」であることを示す。このように、番号が「１」のレコードには、個人が識別される可能性が高い情報が登録されている。また、図３の例に示すように、他の番号のレコードについても、同様に、個人が識別される可能性が高い情報が登録されている。
【００３６】
また、サーバ２のユーザが、ＤＢ２ａに記憶されたデータを更新する指示をサーバ２に入力した場合には、サーバ２は、指示に基づいてＤＢ２ａに記憶されたデータを更新する。そして、サーバ２の出力部２ｂは、更新内容を示すデータである更新データをネットワーク９０を介して情報処理装置６に送信する。図４は、更新データの一例を示す図である。図４の例が示す更新データは、先の図３の例に示す個人ＩＤ「１０９８」を有するレコードの「年齢」の項目に登録された値を「３０」に更新したことを示す。
【００３７】
また、サーバ２のユーザが、ＤＢ２ａに記憶されたデータを削除する指示をサーバ２に入力した場合には、サーバ２は、指示に基づいてＤＢ２ａに記憶されたデータを削除する。そして、サーバ２の出力部２ｂは、削除内容を示すデータである削除データをネットワーク９０を介して情報処理装置６に送信する。図５は、削除データの一例を示す図である。図５の例が示す削除データは、先の図３の例に示す個人ＩＤ「１０９８」を有するレコードを削除したことを示す。
【００３８】
サーバ３は、ＤＢ３ａ、および、出力部３ｂを有する。ＤＢ３ａは、人の氏名や住所などの個人情報のような個人が識別される可能性が高いデータを記憶する。出力部３ｂは、ＤＢ３ａに記憶されたデータ等をネットワーク９０を介して情報処理装置６に送信する。例えば、出力部３ｂは、先の図３の例に示すデータをネットワーク９０を介して情報処理装置６に送信する。
【００３９】
また、サーバ３のユーザが、ＤＢ３ａに記憶されたデータを更新する指示をサーバ３に入力した場合には、サーバ３は、指示に基づいてＤＢ３ａに記憶されたデータを更新する。そして、サーバ３の出力部３ｂは、更新データをネットワーク９０を介して情報処理装置６に送信する。
【００４０】
また、サーバ３のユーザが、ＤＢ３ａに記憶されたデータを削除する指示をサーバ３に入力した場合には、サーバ３は、指示に基づいてＤＢ３ａに記憶されたデータを削除する。そして、サーバ３の出力部３ｂは、削除データをネットワーク９０を介して情報処理装置６に送信する。
【００４１】
上述したように、サーバ２およびサーバ３は、レコードが更新された場合に、更新されたレコード全体を情報処理装置６に送信するのではなく、更新されたレコード全体よりもデータサイズが小さい更新データを情報処理装置６に送信する。これにより、情報処理装置６は、より少ない情報量でサーバ２およびサーバ３で更新された内容を把握することができる。
【００４２】
また、サーバ２およびサーバ３は、レコードが削除された場合に、削除されたレコード全体を情報処理装置６に送信するのではなく、削除されたレコード全体よりもデータサイズが小さい削除データを情報処理装置６に送信する。これにより、情報処理装置６は、より少ない情報量でサーバ２およびサーバ３で削除されたレコードを把握することができる。
【００４３】
サーバ４は、ＤＢ４ａ、および、処理実行部４ｂを有する。サーバ４は、ネットワーク９１を介して情報処理装置６から送信されたデータを受信し、受信したデータをＤＢ４ａに蓄積する。処理実行部４ｂは、データを受信したタイミングとは非同期に、図示しない他の装置からの要求に応じて、ＤＢ４ａに蓄積されたデータを用いて、統計処理などの所定の処理を実行する。
【００４４】
情報処理装置６からサーバ４に送信されるデータのデータ構造の一例について説明する。図６は、情報処理装置６からサーバ４に送信されるデータのデータ構造の一例を示す図である。図６の例に示すデータのレコードには、「性別」、「年齢」、「身長」、「体重」、「レコード管理ＩＤ」の各項目が含まれる。「レコード管理ＩＤ」の項目には、レコード管理ＩＤが登録される。後述するが、レコード管理ＩＤは、情報処理装置６において、個人ＩＤごとに、個人ＩＤに対応して生成されるＩＤである。また、レコード管理ＩＤは、サーバ４およびサーバ５に蓄積されたデータの更新や削除を情報処理装置６が実行させる処理を行う場合に用いられる。
【００４５】
また、「性別」の項目には、「レコード管理ＩＤ」の項目に登録されたレコード管理ＩＤに対応する個人ＩＤが示す人物の性別が登録される。「年齢」の項目には、例えば、「レコード管理ＩＤ」の項目に登録されたレコード管理ＩＤに対応する個人ＩＤが示す人物の年齢があいまいにされた値、または、年齢の情報が破棄された「ｎｕｌｌ」の情報が登録される。「身長」の項目には、例えば、「レコード管理ＩＤ」の項目に登録されたレコード管理ＩＤに対応する個人ＩＤが示す人物の身長があいまいにされた値、または、身長の情報が破棄された「ｎｕｌｌ」の情報が登録される。「体重」の項目には、例えば、「レコード管理ＩＤ」の項目に登録されたレコード管理ＩＤに対応する個人ＩＤが示す人物の体重があいまいにされた値、または、体重の情報が破棄された「ｎｕｌｌ」の情報が登録される。
【００４６】
図６の例のデータにおける番号が「１」のレコードは、レコード管理ＩＤ「ａａａ０１」に対応する個人ＩＤが示す人物の性別が「男」であり、年齢が「２０〜２９歳」であり、身長が「１６０〜１６９ｃｍ」であり、体重が「６０〜６９ｋｇ」であることを示す。このように、番号が「１」のレコードには、性別以外の各種情報があいまい化された情報が登録されている。また、図６の例のデータにおける番号が「４」のレコードは、レコード管理ＩＤ「ａａａ０４」に対応する個人ＩＤが示す人物の性別が「男」であり、年齢、身長、体重が不明であることを示す。このように、番号が「４」のレコードには、性別に関する情報が登録されているが、年齢、身長、体重に関する情報は登録されていない。
【００４７】
サーバ５は、ＤＢ５ａ、および、処理実行部５ｂを有する。サーバ５は、ネットワーク９１を介して情報処理装置６から送信されたデータを受信し、受信したデータをＤＢ５ａに蓄積する。処理実行部５ｂは、データを受信したタイミングとは非同期に、図示しない他の装置からの要求に応じて、ＤＢ５ａに蓄積されたデータを用いて、統計処理などの所定の処理を実行する。なお、情報処理装置６からサーバ５に送信されるデータは、情報処理装置６からサーバ４に送信されるデータと同様である。例えば、情報処理装置６からサーバ５へは、先の図６の例に示したデータが送信される。
【００４８】
図１の説明に戻り、クライアント装置１０は、ユーザの操作によって、情報処理装置６に各種処理を実行するための指示を送信する。また、クライアント装置１０は、ユーザの操作によって、後述する定義データ８ｃを生成し、生成した定義データ８ｃを情報処理装置６に送信して、情報処理装置６に定義データ８ｃを記憶させる。
【００４９】
情報処理装置６は、ソースシステムのサーバ２およびサーバ３からデータを収集する。そして、情報処理装置６は、収集したデータを匿名化する。そして、情報処理装置６は、匿名化したデータに対して各種の処理を実行した上で、ターゲットシステムのサーバ４およびサーバ５に配布する。
【００５０】
図７は、実施例１に係る情報処理装置の機能構成の一例を示す図である。図７の例に示すように、情報処理装置６は、通信部７、記憶部８、制御部９を有する。
【００５１】
通信部７は、サーバ２〜５およびクライアント装置１０との通信を行うためのインターフェースである。例えば、通信部７は、サーバ２からネットワーク９０を介して各種のデータを受信した場合には、受信したデータを制御部９へ送信する。同様に、通信部７は、サーバ３からネットワーク９０を介して各種のデータを受信した場合には、受信したデータを制御部９へ送信する。また、通信部７は、後述の配布制御部９ｅから各種のデータを受信した場合には、受信したデータをネットワーク９１を介してサーバ４およびサーバ５に送信する。
【００５２】
記憶部８は、各種の情報を記憶する。例えば、記憶部８は、収集データ８ａ、匿名化データ８ｂ、定義データ８ｃ、重複数ＴＢＬ８ｄ、ＮＧデータＴＢＬ８ｅ、配布済データＴＢＬ８ｆ、ＩＤＴＢＬ８ｇを記憶する。
【００５３】
収集データ８ａは、後述の収集部９ａが収集したデータである。例えば、収集データ８ａは、先の図３に示すデータである。
【００５４】
匿名化データ８ｂは、後述の匿名化部９ｃにより、後述の更新された匿名化の対象のデータに対して匿名化が行われたデータである。図８は、匿名化データのデータ構造の一例を示す図である。図８の例の匿名化データ８ｂは、図３に示すデータが更新された後述の匿名化の対象のデータに対して匿名化が行われた場合の匿名化後のデータである。図８の例に示す匿名化データ８ｂは、更新された匿名化の対象のデータに対して後述の匿名化部９ｃにより、「氏名」の項目が破棄され、「年齢」、「身長」および「体重」の項目の登録内容をあいまいにする処理が行われたデータである。
【００５５】
定義データ８ｃは、後述の匿名化部９ｃなどにより匿名化される対象の項目、後述の検証部９ｄなどにより検証される対象の項目、および、後述の検証部９ｄなどにより検証が行われる際に用いられるレコードの重複数の閾値を含む。定義データ８ｃは、クライアント装置１０のユーザの操作によりクライアント装置１０が生成したデータである。定義データ８ｃは、後述の管理部９ｈにより記憶部８に格納される。図９は、定義データのデータ構造の一例を示す図である。図９の例が示す定義データ８ｃは、後述の検証部９ｄなどにより検証が行われる際に用いられるレコードの重複数の閾値「２」を含む。
【００５６】
また、図９の例に示す定義データ８ｃは、「項目名」、「検証」および「匿名化」の項目を有する。「項目名」の項目には、匿名化の対象のデータに含まれる項目の名称が登録される。図９の例では、定義データの「項目名」に、「性別」、「年齢」、「身長」、「体重」、「レコード管理ＩＤ」の各項目の名称が登録された場合が示されている。
【００５７】
「検証」の項目には、「ＹＥＳ」または「ＮＯ」が登録される。図９の例が示す定義データ８ｃは、「項目名」に名称が登録された各項目のうち、「検証」の項目に「ＹＥＳ」が登録された項目を検証することを示す。すなわち、図９の例が示す定義データ８ｃは、「検証」の項目に「ＹＥＳ」が登録された「性別」、「年齢」、「身長」および「体重」の項目を検証することを示す。
【００５８】
「匿名化」の項目には、「ＹＥＳ」または「ＮＯ」が登録される。図９の例が示す定義データ８ｃは、「ＹＥＳ」が登録された項目の登録内容を匿名化することを示す。図９の例が示す定義データ８ｃは、「項目名」に名称が登録された各項目のうち、「匿名化」の項目に「ＹＥＳ」または「ＮＯ」が登録された項目以外の項目を破棄することを示す。図９の例が示す定義データ８ｃは、「匿名化」の項目に「ＹＥＳ」が登録された「年齢」、「身長」および「体重」の項目を匿名化することを示す。また、図９の例が示す定義データ８ｃは、その他の項目、例えば、「氏名」を破棄することを示す。
【００５９】
重複数ＴＢＬ８ｄには、レコードの重複数が登録される。図１０は、重複数ＴＢＬのデータ構造の一例を示す図である。図１０の例が示す重複数ＴＢＬ８ｄのレコードは、上述の定義データ８ｃにおいて、「項目名」に名称が登録された各項目のうち「検証」の項目に「ＹＥＳ」が登録された「性別」、「年齢」、「身長」および「体重」の項目と、「重複数」の項目とを有する。例えば、図１０の例が示す重複数ＴＢＬ８ｄの１番目のレコードは、性別「男」、年齢「２０〜２９」、身長「１７０〜１７９」、体重「６０〜６９」のレコードの重複数が「１」であることを示す。
【００６０】
ＮＧデータＴＢＬ８ｅには、重複数ＴＢＬ８ｄに登録されたレコードのうち、重複数がＮ未満のレコードの項目の登録内容と、対応するレコード管理ＩＤとが登録される。図１１は、ＮＧデータＴＢＬのデータ構造の一例を示す図である。図１１の例が示すＮＧデータＴＢＬ８ｅのレコードは、重複数ＴＢＬ８ｄの「重複数」以外の「性別」、「年齢」、「身長」および「体重」の項目と、「レコード管理ＩＤ」の項目とを有する。図１１の例が示すＮＧデータＴＢＬ８ｅは、重複数の閾値Ｎを「２」とした場合に、図１０の例に示す重複数ＴＢＬ８ｄにおいて重複数が２未満のレコード、すなわち、「１」であるレコードの登録内容と、対応するレコード管理ＩＤとが登録されている場合を示す。
【００６１】
配布済データＴＢＬ８ｆには、サーバ４およびサーバ５に送信されるデータが格納される。配布済データＴＢＬ８ｆに格納されるデータの一例としては、先の図６の例に示すデータが挙げられる。
【００６２】
ＩＤＴＢＬ８ｇには、個人ＩＤとレコード管理ＩＤとが対応付けて登録される。図１２は、ＩＤＴＢＬのデータ構造の一例を示す図である。図１２の例が示すＩＤＴＢＬ８ｇのレコードは、「個人ＩＤ」および「レコード管理ＩＤ」の項目を有する。「個人ＩＤ」の項目には、個人ＩＤが登録される。「レコード管理ＩＤ」の項目には、レコード管理ＩＤが登録される。例えば、図１２の例が示すＩＤＴＢＬ８ｇの１番目のレコードは、個人ＩＤ「１０９８」に対応するレコード管理ＩＤが「ａａａ０１」であることを示す。
【００６３】
記憶部８は、例えば、フラッシュメモリなどの半導体メモリ素子、または、ハードディスク、光ディスクなどの記憶装置である。なお、記憶部８は、上記の種類の記憶装置に限定されるものではなく、Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ（ＲＡＭ）、Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ（ＲＯＭ）であってもよい。
【００６４】
制御部９は、各種の処理手順を規定したプログラムや制御データを格納するための内部メモリを有し、これらによって種々の処理を実行する。図７に示すように、制御部９は、収集部９ａと、判別部９ｂと、匿名化部９ｃと、検証部９ｄと、配布制御部９ｅと、更新制御部９ｆと、削除制御部９ｇと、管理部９ｈとを有する。
【００６５】
収集部９ａは、ネットワーク９０を介してサーバ２およびサーバ３から送信される各種のデータを収集する。例えば、収集部９ａは、ネットワーク９０を介してサーバ２およびサーバ３から送信される図３の例に示すような匿名化の対象のデータを収集する。また、収集部９ａは、ネットワーク９０を介してサーバ２およびサーバ３から送信される更新データを収集する。また、収集部９ａは、ネットワーク９０を介してサーバ２およびサーバ３から送信される削除データを収集する。
【００６６】
判別部９ｂは、収集部９ａにより収集されたデータの種類を判別する。例えば、判別部９ｂは、収集部９ａにより収集されたデータが、匿名化の対象のデータ、更新データ、削除データのいずれであるのかを判別する。また、判別部９ｂは、収集部９ａにより収集されたデータが、匿名化の対象のデータであると判別した場合には、匿名化の対象のデータに含まれる個人ＩＤを取得する。例えば、図３の例に示すデータを匿名化の対象のデータであると判別した場合には、判別部９ｂは、次のような処理を行う。すなわち、判別部９ｂは、匿名化の対象のデータに含まれる個人ＩＤ「１０９８」、「１２３４」、「３２１０」、「３４５６」、「５４３２」、「５４７８」、「７６５４」、「７８９０」、「９０１２」、「９８７６」を取得する。そして、判別部９ｂは、取得した個人ＩＤを識別することができるＩＤであるレコード管理ＩＤを個人ＩＤごとに生成する。例えば、個人ＩＤ「１０９８」、「１２３４」、「３２１０」、「３４５６」、「５４３２」、「５４７８」、「７６５４」、「７８９０」、「９０１２」、「９８７６」を取得した場合には、判別部９ｂは、次のような処理を行う。すなわち、判別部９ｂは、レコード管理ＩＤ「ａａａ０１」、「ａａａ０２」、「ａａａ０３」、「ａａａ０４」、「ａａａ０５」、「ａａａ０６」、「ａａａ０７」、「ａａａ０８」、「ａａａ０９」、「ａａａ１０」を生成する。
【００６７】
そして、判別部９ｂは、匿名化の対象のデータに含まれる個人ＩＤを破棄し、匿名化の対象のデータにレコード管理ＩＤを登録して、匿名化の対象のデータを更新する。例えば、判別部９ｂは、匿名化の対象のデータの各レコードに含まれる個人ＩＤ「１０９８」、「１２３４」、「３２１０」、「３４５６」、「５４３２」、「５４７８」、「７６５４」、「７８９０」、「９０１２」、「９８７６」のそれぞれを破棄する。そして、判別部９ｂは、各レコードのそれぞれに、レコード管理ＩＤ「ａａａ０１」、「ａａａ０２」、「ａａａ０３」、「ａａａ０４」、「ａａａ０５」、「ａａａ０６」、「ａａａ０７」、「ａａａ０８」、「ａａａ０９」、「ａａａ１０」を付加する。下記で説明する処理では、更新された匿名化の対象のデータが用いられる。
【００６８】
これにより、サーバ４およびサーバ５に送信されるデータには、個人ＩＤではなくレコード管理ＩＤが含まれるようになる。サーバ４およびサーバ５に送信されるデータに個人ＩＤが含まれるような場合には、サーバ４およびサーバ５に蓄積されたデータの個人ＩＤから個人が識別される可能性が高い。しかしながら、個人ＩＤではなく、個人が識別される可能性が低いレコード管理ＩＤを含むデータが、サーバ４およびサーバ５に蓄積された場合には、蓄積されたデータのレコード管理ＩＤから個人が識別される可能性は低い。このため、本実施例によれば、送信したデータから個人が識別されるような事象の発生を抑制することができる。
【００６９】
そして、判別部９ｂは、ＩＤＴＢＬ８ｇに、取得した個人ＩＤと、生成したレコード管理ＩＤとを対応付けて登録する。このようにして、判別部９ｂは、ＩＤＴＢＬ８ｇを更新する。例えば、判別部９ｂは、図１２に示すように、取得した個人ＩＤと生成したレコード管理ＩＤとを対応付けてＩＤＴＢＬ８ｇに登録する。
【００７０】
匿名化部９ｃは、各種のデータを匿名化する。例えば、匿名化部９ｃは、匿名化の対象のデータが判別部９ｂにより更新された場合には、定義データ８ｃを参照し、更新された匿名化の対象のデータの各項目の登録内容の中から、定義データ８ｃが示す破棄する項目の登録内容を破棄する。具体例を挙げて説明すると、匿名化部９ｃは、例えば、図９に示す定義データ８ｃが記憶部８に記憶されている場合には、かかる定義データ８ｃの「匿名化」の項目に「ＹＥＳ」が登録された「年齢」、「身長」および「体重」の項目を参照する。そして、匿名化部９ｃは、更新された匿名化の対象のデータの各項目の登録内容のうち、「氏名」の項目の登録内容を破棄する。
【００７１】
そして、匿名化部９ｃは、更新された匿名化の対象のデータの各項目の登録内容のうち破棄されなかった項目の登録内容の中から、定義データ８ｃが示す匿名化する項目の登録内容を匿名化する。例えば、匿名化部９ｃは、更新された匿名化の対象のデータに対しては、サーバ４およびサーバ５において統計処理に用いることができるように匿名化を行う。具体例を挙げて説明する。匿名化部９ｃは、更新された匿名化の対象のデータの「年齢」、「身長」および「体重」の項目の登録内容に対しては、統計処理に用いることができるように、匿名化の対象のデータに含まれる値を、値が属する値域に変換する匿名化を行う。そして、匿名化部９ｃは、匿名化の結果得られた匿名化データ８ｂを記憶部８に格納する。
【００７２】
図３に示すデータが判別部９ｂにより匿名化の対象のデータと判別され、匿名化の対象のデータが更新され、図９に示す定義データ８ｃを参照した場合には、次のような処理を行う。すなわち、匿名化部９ｃは、更新された匿名化の対象のデータの「氏名」の項目の登録内容を破棄し、「年齢」、「身長」および「体重」の項目の登録内容をあいまいにして、図８の例に示す匿名化データ８ｂを生成する。そして、匿名化部９ｃは、生成した匿名化データ８ｂを記憶部８に格納する。
【００７３】
検証部９ｄは、検証対象のレコードの重複数がＮ以上であるか否かを判定することにより、検証対象のレコードが、個人が識別される可能性が高いレコードであるかまたは低いレコードであるか検証する。
【００７４】
一態様としては、検証部９ｄは、匿名化部９ｃにより匿名化データ８ｂが生成された場合には、定義データ８ｃに登録された重複数の閾値「Ｎ」を参照する。例えば、図９に示す定義データ８ｃが記憶部８に記憶されている場合には、検証部９ｄは、定義データ８ｃの重複数の閾値「２」を参照する。以下、定義データ８ｃに、重複数の閾値として「２」が登録されている場合について説明するが、定義データ８ｃに登録される重複数の閾値「Ｎ」の値は自然数であれば任意の値を採用することができる。
【００７５】
次に、検証部９ｄは、定義データ８ｃが示す検証する項目を参照する。例えば、図９に示す定義データ８ｃが記憶部８に記憶されている場合には、検証部９ｄは、定義データ８ｃの「検証」の項目に「ＹＥＳ」が登録された「性別」、「年齢」、「身長」および「体重」の項目を参照する。
【００７６】
そして、検証部９ｄは、下記に説明する検証部９ｄが実行する処理が未処理であるレコードがなくなるまで、未処理のレコードに対して下記に説明する処理を行う。すなわち、検証部９ｄは、まず、新たに生成され記憶部８に格納された匿名化データ８ｂを記憶部８から取得し、取得した匿名化データ８ｂの未処理のレコードを１つ選択する。例えば、図８に示す匿名化データ８ｂが新たに匿名化部９ｃにより生成され記憶部８に格納された場合には、検証部９ｄは、匿名化データ８ｂを記憶部８から取得し、番号が「１」のレコードを選択する。
【００７７】
続いて、検証部９ｄは、選択したレコードの各項目の登録内容のうち、検証する項目の登録内容の組み合わせを含むレコードがあるか、重複数ＴＢＬ８ｄを検索する。例えば、図８に示す匿名化データ８ｂの番号が「１」のレコードを選択した場合には、検証部９ｄは、検証する項目の登録内容「男」、「２０〜２９」、「１６０〜１６９」、「６０〜６９」の組み合わせを含むレコードがあるか、重複数ＴＢＬ８ｄを検索する。
【００７８】
検索の結果、検証する項目の登録内容の組み合わせを含むレコードが得られた場合には、検証部９ｄは、得られたレコードの「重複数」の項目に登録された値を１つインクリメントする。例えば、検証する項目の登録内容「男」、「２０〜２９」、「１６０〜１６９」、「６０〜６９」の組み合わせを含むレコードが図１０に示す重複数ＴＢＬ８ｄに対する検索の結果得られた場合には、検証部９ｄは、次のような処理を行う。すなわち、検証部９ｄは、検証する項目の登録内容「男」、「２０〜２９」、「１６０〜１６９」、「６０〜６９」の組み合わせを含む重複数ＴＢＬ８ｄの５番目のレコードの重複数「２」を「３」に更新する。
【００７９】
一方、検索の結果、検証する項目の登録内容の組み合わせが得られなかった場合には、検証部９ｄは、次のような処理を行う。すなわち、検証部９ｄは、検証する項目の登録内容の組み合わせが登録された１件のレコードを生成し、生成したレコードを重複数ＴＢＬ８ｄに追加し、追加したレコードの「重複数」の項目に「１」を登録する。このようにして、検証部９ｄは、重複数ＴＢＬ８ｄを更新する。
【００８０】
そして、検証部９ｄは、重複数ＴＢＬ８ｄの検証する項目の登録内容の組み合わせを含むレコードの「重複数」の項目に登録された重複数が、参照した重複数の閾値「Ｎ」以上であるか否かを判定する。
【００８１】
重複数が「Ｎ」未満である場合には、選択したレコードが、個人が識別される可能性が高いレコードであるため、検証部９ｄは、選択したレコードをＮＧデータＴＢＬ８ｅに登録する。そして、検証部９ｄは、取得した匿名化データ８ｂのレコードの中に、未処理のレコードがあるか否かを判定し、未処理のレコードがある場合には、未処理のレコードを１つ選択し、選択した未処理のレコードに対して上述した処理を再び行う。
【００８２】
一方、重複数が「Ｎ」以上である場合には、検証部９ｄは、重複数ＴＢＬ８ｄのレコードの「重複数」の項目に登録された重複数が、参照した重複数の閾値「Ｎ」であるか否かを判定する。重複数が「Ｎ」である場合には、選択したレコードが新たにサーバ２またはサーバ３から送信されたことによって、選択したレコードが、個人が識別される可能性が高いレコードではなくなったため、検証部９ｄは、次のような処理を行う。すなわち、検証部９ｄは、ＮＧデータＴＢＬ８ｅに登録されたレコードであって、選択したレコードの「レコード管理ＩＤ」以外の項目の登録内容を有するレコードを特定し、特定したレコードをＮＧデータＴＢＬ８ｅから削除する。そして、検証部９ｄは、選択したレコードを、個人が識別される可能性が低い「ＯＫ」に分類する。例えば、検証部９ｄは、制御部９の内部メモリに展開されたＯＫリストに、選択したレコードを登録する。そして、検証部９ｄは、取得した匿名化データ８ｂのレコードの中に、未処理のレコードがあるか否かを判定し、未処理のレコードがある場合には、未処理のレコードを１つ選択し、選択した未処理のレコードに対して上述した処理を再び行う。なお、検証部９ｄは、計数部の一例である。
【００８３】
配布制御部９ｅは、匿名化が行われたデータをサーバ４およびサーバ５にネットワーク９１を介して配布する。一態様としては、配布制御部９ｅは、まず、匿名化部９ｃにより新たに記憶部８に格納された匿名化データ８ｂのレコードの中に、検証部９ｄにより新たにＮＧデータＴＢＬ８ｅに登録されたレコードがあるか否かを判定する。
【００８４】
新たにＮＧデータＴＢＬ８ｅに登録されたレコードがある場合には、配布制御部９ｅは、定義データ８ｃが示す匿名化する項目を参照する。例えば、図９に示す定義データ８ｃが記憶部８に記憶されている場合には、配布制御部９ｅは、次のような処理を行う。すなわち、配布制御部９ｅは、定義データ８ｃの「匿名化」の項目に「ＹＥＳ」が登録された「年齢」、「身長」および「体重」の項目を参照する。そして、配布制御部９ｅは、新たにＮＧデータＴＢＬ８ｅに登録されたレコードのうち、未処理のレコードを１つ選択する。そして、配布制御部９ｅは、選択したレコードの各項目の登録内容の中から、定義データ８ｃが示す匿名化する項目の登録内容を匿名化する。例えば、配布制御部９ｅは、個人が識別される可能性が低減されるように、登録内容を破棄して各項目に「ｎｕｌｌ」を登録する匿名化を行う。具体例を挙げて説明すると、配布制御部９ｅは、図６に示すデータの番号が「３」のレコードが示すように、「年齢」、「身長」、「体重」の項目の登録内容を「ｎｕｌｌ」に設定する。そして、配布制御部９ｅは、新たにＮＧデータＴＢＬ８ｅに登録されたレコードのうち、未処理のレコードがあるか否かを判定し、未処理のレコードがある場合には、未処理のレコードを１つ選択し、上述した処理を行う。このようにして、配布制御部９ｅは、新たにＮＧデータＴＢＬ８ｅに登録された全てのレコードの匿名化を行う匿名化処理を行う。なお、配布制御部９ｅにおいて行われた匿名化は、統計処理に用いることができるように先の匿名化部９ｃにより行われた匿名化を「１回目の匿名化」とすると、「２回目の匿名化」となる。また、「２回目の匿名化」を配布制御部９ｅに代えて匿名化部９ｃが行うこともできる。
【００８５】
そして、配布制御部９ｅは、匿名化部９ｃにより「ＯＫ」と分類されたレコードがある場合には、かかるレコードを配布済データＴＢＬ８ｆに格納する。これに加えて、配布制御部９ｅは、２回目の匿名化が行われたレコードがある場合には、２回目の匿名化のレコードも配布済データＴＢＬ８ｆに格納する。続いて、配布制御部９ｅは、新たに配布済データＴＢＬ８ｆに格納したデータを取得し、取得したデータがサーバ４およびサーバ５に送信されるように、取得したデータを通信部７に出力する。これにより、例えば、図６の例に示すようなデータがサーバ４およびサーバ５に送信される。なお、配布制御部９ｅは、出力部の一例である。
【００８６】
図７の説明に戻り、更新制御部９ｆは、更新データを受信した場合に、サーバ４およびサーバ５に蓄積されたデータのうち、新たに識別される可能性が高くなったレコードや新たに識別される可能性が低くなったデータが更新されるように制御する。
【００８７】
一態様としては、更新制御部９ｆは、サーバ２およびサーバ３から送信された更新データを受信すると、更新データに含まれる個人ＩＤを取得し、取得した個人ＩＤに対応するレコード管理ＩＤをＩＤＴＢＬ８ｇから取得する。例えば、図４の例に示す更新データを受信した場合には、更新制御部９ｆは、更新データに含まれる個人ＩＤ「１０９８」を取得し、図１２の例に示すＩＤＴＢＬ８ｇから、個人ＩＤ「１０９８」に対応するレコード管理ＩＤ「ａａａ０１」を取得する。
【００８８】
続いて、更新制御部９ｆは、更新制御部９ｆが取得したレコード管理ＩＤを有する更新の対象のレコードを情報処理装置６に送信する指示をサーバ４またはサーバ５に送信させるべく、かかる指示を通信部７に送信する。これにより、更新制御部９ｆが取得したレコード管理ＩＤを有する更新の対象のレコードを情報処理装置６に送信する指示がサーバ４またはサーバ５に送信される。かかる指示を受信したサーバ４またはサーバ５は、ＤＢ４ａまたはＤＢ５ａに蓄積されたレコードの中から、指示が示すレコードを検索し、検索の結果得られたレコードをネットワーク９１を介して情報処理装置６に送信する。これにより、情報処理装置６の更新制御部９ｆは、取得したレコード管理ＩＤを有する更新の対象のレコードを得ることができる。例えば、ＤＢ４ａまたはＤＢ５ａに蓄積されたデータが図６の例に示すデータであり、更新制御部９ｆがレコード管理ＩＤ「ａａａ０１」を有する更新の対象のレコードを送信する指示を通信部７に送信した場合には、更新制御部９ｆは、次のレコードを取得する。すなわち、更新制御部９ｆは、図６の例に示す番号が「１」のレコードを取得する。
【００８９】
続いて、更新制御部９ｆは、取得したレコードの「レコード管理ＩＤ」以外の項目の登録内容を有するレコードを重複数ＴＢＬ８ｄのレコードの中から検索し、検索の結果得られたレコードの「重複数」の項目に登録された値を１つデクリメントする。例えば、図６の例に示す、番号が「１」のレコード（「男」、「２０〜２９」、「１６０〜１６９」、「６０〜６９」、「ａａａ０１」の各登録内容を有するレコード）を取得した場合に、更新制御部９ｆは、次のような処理を行う。すなわち、更新制御部９ｆは、「男」、「２０〜２９」、「１６０〜１６９」、「６０〜６９」の登録内容を有するレコードを図１０の例に示す重複数ＴＢＬ８ｄのレコードの中から検索する。そして、更新制御部９ｆは、検索の結果得られた図１０の例に示す重複数ＴＢＬ８ｄの５番目のレコードの「重複数」の項目に登録された値「２」を「１」に更新する。図１３は、更新された重複数ＴＢＬの一例を示す図である。この結果、図１０の例に示す重複数ＴＢＬ８ｄの登録内容は、図１３の例に示す重複数ＴＢＬ８ｄの登録内容に更新される。なお、重複数が「Ｎ」から「Ｎ−１」に更新された場合には、更新制御部９ｆが取得したレコードが、個人が識別される可能性が高いレコードとなったことを意味する。
【００９０】
続いて、更新制御部９ｆは、取得したレコードの重複数を更新後の重複数ＴＢＬ８ｄから取得する。例えば、図６の例に示す番号が「１」のレコードを取得した場合には、更新制御部９ｆは、図１３の例に示す更新後の重複数ＴＢＬ８ｄの５番目のレコードの重複数「１」を取得する。
【００９１】
その後、更新制御部９ｆは、定義データ８ｃに登録された重複数の閾値「Ｎ」を参照し、取得した重複数が、重複数の閾値「Ｎ」を１つデクリメントした値「Ｎ−１」であるか否かを判定する。ここで、Ｎ＝２の場合に、例えば、更新制御部９ｆは、図１３の例に示す更新後の重複数ＴＢＬ８ｄの５番目のレコードの重複数「１」を取得したときには、取得した重複数「１」が、「Ｎ−１」であると判定する。
【００９２】
取得した重複数が「Ｎ−１」である場合には、更新制御部９ｆは、個人が識別される可能性が低いレコードとなるようにサーバ４およびサーバ５に蓄積された対応するレコードを更新するように制御する。例えば、更新制御部９ｆは、サーバ４またはサーバ５に蓄積されたレコード管理ＩＤのうち、次のようなレコード管理ＩＤを情報処理装置６に送信する指示をサーバ４またはサーバ５に送信するべく、かかる指示を通信部７に送信する。すなわち、更新制御部９ｆが取得したレコードの「レコード管理ＩＤ」以外の項目の登録内容を有するレコードに含まれるレコード管理ＩＤであって、更新制御部９ｆが取得済みのレコード管理ＩＤ以外のレコード管理ＩＤを送信する指示を通信部７に送信する。例えば、図６の例に示す、番号が「１」のレコード（「男」、「２０〜２９」、「１６０〜１６９」、「６０〜６９」、「ａａａ０１」の各登録内容を有するレコード）を取得した場合には、更新制御部９ｆは、次のような処理を行う。すなわち、更新制御部９ｆは、「男」、「２０〜２９」、「１６０〜１６９」、「６０〜６９」の登録内容を有するレコードに含まれるレコード管理ＩＤであって「ａａａ０１」以外のレコード管理ＩＤを情報処理装置６に送信する指示を通信部７に送信する。これにより、かかる指示がサーバ４またはサーバ５に送信され、指示を受信したサーバ４またはサーバ５は、ＤＢ４ａまたはＤＢ５ａから指示が示すレコード管理ＩＤを取得し、取得したレコード管理ＩＤを情報処理装置６に送信する。例えば、「男」、「２０〜２９」、「１６０〜１６９」、「６０〜６９」の登録内容を有するレコードに含まれる、「ａａａ０１」以外のレコード管理ＩＤを送信する指示を受信し、ＤＢ４ａに図６に示すデータが蓄積されている場合、サーバ４は次の処理を行う。すなわち、サーバ４は、レコード管理ＩＤ「ａａａ０６」を情報処理装置６に送信する。このようにして、更新制御部９ｆは、サーバ４またはサーバ５から新たにレコード管理ＩＤを取得する。
【００９３】
そして、更新制御部９ｆは、更新制御部９ｆが取得したレコードの「レコード管理ＩＤ」以外の項目の登録内容と、新たに取得したレコード管理ＩＤとを含むレコードを生成し、生成したレコードをＮＧデータＴＢＬ８ｅに登録する。例えば、更新制御部９ｆは、「男」、「２０〜２９」、「１６０〜１６９」、「６０〜６９」の登録内容と、新たに取得したレコード管理ＩＤ「ａａａ０６」とを含むレコードを生成し、レコードを図１４の例に示すようにＮＧデータＴＢＬ８ｅに追加する。図１４は、レコードが追加されたＮＧデータＴＢＬの一例を示す図である。
【００９４】
そして、更新制御部９ｆは、ＮＧデータＴＢＬ８ｅに新たに登録したレコードを取得し、定義データ８ｃを参照し、定義データ８ｃが示す匿名化する項目の登録内容を匿名化する。例えば、更新制御部９ｆは、取得したレコードに対して、匿名化する項目の登録内容を破棄するように匿名化を行う。具体例を挙げて説明する。更新制御部９ｆは、レコードの「年齢」、「身長」および「体重」の項目の登録内容を破棄して、各項目に「ｎｕｌｌ」を登録する匿名化を行う。例えば、更新制御部９ｆは、「男」、「ｎｕｌｌ」、「ｎｕｌｌ」、「ｎｕｌｌ」、「ａａａ０６」の登録内容が各項目に登録されたレコードを生成する。このようにして、更新制御部９ｆは、取得したレコードの匿名化を行う。なお、更新制御部９ｆに代えて匿名化部９ｃが、取得したレコードの匿名化を行うこともできる。
【００９５】
そして、更新制御部９ｆは、配布済データＴＢＬ８ｆのレコードの中から、更新制御部９ｆが新たに取得したレコード管理ＩＤを有するレコードを特定する。そして、更新制御部９ｆは、特定したレコードの検証対象の項目の登録内容が、匿名化されたレコードの検証対象の項目の登録内容となるように、配布済データＴＢＬ８ｆを更新する。例えば、更新制御部９ｆは、図６に示すデータが配布済データＴＢＬ８ｆに登録されている場合には、レコード管理ＩＤ「ａａａ０６」を有するレコードの登録内容を、図１５に示すように「男」、「ｎｕｌｌ」、「ｎｕｌｌ」、「ｎｕｌｌ」に更新する。図１５は、更新後のデータの一例を示す図である。
【００９６】
続いて、更新制御部９ｆは、配布済データＴＢＬ８ｆにおいて新たに更新されたレコード（匿名化されたレコード）を取得し、取得したレコードをサーバ４およびサーバ５に送信するべく、取得したレコードを通信部７に出力する。これにより、例えば、図１５の例に示すレコード管理ＩＤ「ａａａ０６」のレコードがサーバ４およびサーバ５に送信される。図１５の例に示すレコード管理ＩＤ「ａａａ０６」のレコードを受信したサーバ４およびサーバ５のそれぞれは、ＤＢ４ａ、ＤＢ５ａのそれぞれに蓄積されたレコードのうち、レコード管理ＩＤ「ａａａ０６」のレコードを特定する。そして、サーバ４およびサーバ５のそれぞれは、特定したレコードを、受信したレコードで更新する。これにより、新たに個人が識別される可能性が高くなったサーバ４およびサーバ５のレコードは、個人が識別される可能性が低くなるように更新される。このようにして、更新制御部９ｆは、取得した重複数が「Ｎ−１」である場合には、新たに個人が識別される可能性が高くなったサーバ４およびサーバ５のレコードを、個人が識別される可能性が低くなるように更新する。
【００９７】
また、更新制御部９ｆは、取得した重複数の値に関わらず、下記で説明するような処理を行う。例えば、更新制御部９ｆは、まず、取得した更新の対象のレコードの登録内容を、更新データが示す更新内容で更新する。図１６、図１７は、実施例１の情報処理装置が実行する処理の一例を説明するための図である。例えば、更新制御部９ｆは、図４の例に示す更新データを受信し、図１６の例に示す更新の対象のレコードを取得した場合には、図１７の例に示すように、更新データに含まれる更新内容に基づいて、「年齢」の項目に登録された年齢を「３０」に更新する。
【００９８】
そして、更新制御部９ｆは、定義データ８ｃを参照し、更新されたレコードの登録内容のうち、定義データ８ｃが示す匿名化する項目の登録内容を匿名化する。例えば、更新制御部９ｆは、更新されたレコードに対しては、匿名化する項目の登録内容をあいまいにするように匿名化を行う。図１８は、実施例１の情報処理装置が実行する処理の一例を説明するための図である。例えば、更新制御部９ｆは、図１８に示すように、レコードの「年齢」、「身長」および「体重」の項目の登録内容をあいまいにして、匿名化を行う。これにより、匿名化されたレコードが生成される。なお、更新制御部９ｆは、匿名化する項目の登録内容であっても、すでにあいまいにされている登録内容については、匿名化を省略する。
【００９９】
続いて、更新制御部９ｆは、匿名化されたレコードの「レコード管理ＩＤ」以外の項目の登録内容を有するレコードを重複数ＴＢＬ８ｄのレコードの中から検索する。検索の結果レコードが得られた場合には、更新制御部９ｆは、得られたレコードの「重複数」の項目に登録された値を１つインクリメントする。図１９は、実施例１の情報処理装置が実行する処理の一例を説明するための図である。例えば、図１８の例に示すレコードの「レコード管理ＩＤ」以外の項目の登録内容を有するレコードが、先の図１３の例に示すように、重複数ＴＢＬ８ｄの４番目のレコードに登録されていた場合には、更新制御部９ｆは、次のような処理を行う。すなわち、更新制御部９ｆは、図１９に示すように、重複数ＴＢＬ８ｄの４番目のレコードの「重複数」の項目に登録された値「１」を「２」に更新する。なお、重複数が「Ｎ−１」から「Ｎ」に更新された場合には、匿名化されたレコードの「レコード管理ＩＤ」以外の項目の登録内容を有するサーバ４およびサーバ５に蓄積された全てのレコードが、個人が識別される可能性が低いレコードとなったことを意味する。
【０１００】
一方、検索の結果レコードが得られなかった場合には、更新制御部９ｆは、重複数ＴＢＬ８ｄに新たなレコードを追加する。そして、更新制御部９ｆは、追加されたレコードの「重複数」以外の各項目に、匿名化されたレコードの登録内容を登録する。続いて、更新制御部９ｆは、追加されたレコードの「重複数」の項目に「１」を登録する。  
【０１０１】
続いて、更新制御部９ｆは、匿名化されたレコードに対応する重複数ＴＢＬ８ｄのレコードの重複数を取得する。例えば、更新制御部９ｆは、図１９の例に示す更新後の重複数ＴＢＬ８ｄの４番目のレコードの重複数「２」を取得する。
【０１０２】
次に、更新制御部９ｆは、取得した重複数が、重複数の閾値「Ｎ」以上であるか否かを判定する。このようにして、更新制御部９ｆは、検証対象のレコードの重複数がＮ以上であるか否かを判定することにより、検証対象のレコードが、個人が識別される可能性が高いレコードであるか検証する。なお、更新制御部９ｆが行う検証を、検証部９ｄが行うこともできる。
【０１０３】
取得した重複数が、重複数の閾値「Ｎ」未満である場合には、更新制御部９ｆは、匿名化されたレコードをＮＧデータＴＢＬ８ｅに登録する。そして、更新制御部９ｆは、新たにＮＧデータＴＢＬ８ｅに登録されたレコードの各項目の登録内容の中から、定義データ８ｃが示す匿名化する項目の登録内容を匿名化する。例えば、更新制御部９ｆは、個人が識別される可能性が低減されるように、登録内容を破棄して各項目に「ｎｕｌｌ」を登録する匿名化を行う。このようにして、更新制御部９ｆは、新たにＮＧデータＴＢＬ８ｅに登録されたレコードの匿名化を行う匿名化処理を行う。このようにして、更新制御部９ｆは、レコードの匿名化を行う。なお、更新制御部９ｆに代えて匿名化部９ｃが、このようなレコードの匿名化を行うこともできる。
【０１０４】
そして、更新制御部９ｆは、配布済データＴＢＬ８ｆのレコードの中から、更新制御部９ｆが新たに匿名化したレコードのレコード管理ＩＤを有するレコードを検索する。続いて、更新制御部９ｆは、検索の結果得られたレコードの検証対象の項目の登録内容が、新たに匿名化したレコードの検証対象の項目の登録内容となるように、配布済データＴＢＬ８ｆを更新する。
【０１０５】
続いて、更新制御部９ｆは、配布済データＴＢＬ８ｆにおいて新たに更新されたレコード（匿名化されたレコード）を取得し、取得したレコードをサーバ４およびサーバ５に送信するべく、取得したレコードを通信部７に出力する。これにより、匿名化されたレコードがサーバ４およびサーバ５に送信される。匿名化されたレコードを受信したサーバ４およびサーバ５のそれぞれは、ＤＢ４ａ、ＤＢ５ａのそれぞれに蓄積されたレコードのうち、受信したレコードに含まれるレコード管理ＩＤと、レコード管理ＩＤが一致するレコードを特定する。そして、サーバ４およびサーバ５のそれぞれは、特定したレコードを、受信したレコードで更新する。
【０１０６】
一方、取得した重複数が、重複数の閾値「Ｎ」以上である場合には、更新制御部９ｆは、取得した重複数が、重複数の閾値「Ｎ」であるか否かを判定する。
【０１０７】
取得した重複数が、重複数の閾値「Ｎ」である場合、更新制御部９ｆは、ＮＧデータＴＢＬ８ｅを参照し、新たに匿名化されたレコードの「レコード管理ＩＤ」以外の項目の登録内容と一致する登録内容を有するレコードのレコード管理ＩＤを取得する。例えば、更新制御部９ｆは、図１８に示すような匿名化されたレコードを生成した場合、図１４に示すＮＧデータＴＢＬ８ｅから、ＮＧデータＴＢＬ８ｅの５番目のレコードのレコード管理ＩＤ「ａａａ１０」を取得する。
【０１０８】
そして、更新制御部９ｆは、ＮＧデータＴＢＬ８ｅに登録されたレコードのうち、取得したレコード管理ＩＤを有するレコードを特定し、特定したレコードを削除する。例えば、更新制御部９ｆは、図１４に示すＮＧデータＴＢＬ８ｅから、５番目のレコードを削除する。
【０１０９】
そして、更新制御部９ｆは、配布済データＴＢＬ８ｆのレコードの中から、更新制御部９ｆが新たに取得したレコード管理ＩＤを有するレコードを特定する。続いて、更新制御部９ｆは、特定したレコードの検証対象の項目の登録内容が、新たに匿名化されたレコードの検証対象の項目の登録内容となるように、配布済データＴＢＬ８ｆを更新する。図２０は、実施例１に係る情報処理装置が実行する処理の一例を示す図である。例えば、更新制御部９ｆは、図１５に示すデータが配布済データＴＢＬ８ｆに登録されている場合に、レコード管理ＩＤ「ａａａ１０」を取得したときには、次のような処理を行う。すなわち、更新制御部９ｆは、配布済データＴＢＬ８ｆのレコード管理ＩＤ「ａａａ１０」を有するレコードの登録内容を、図２０に示すように、「男」、「３０〜３９」、「１６０〜１６９」、「６０〜６９」の登録内容に更新する。
【０１１０】
続いて、更新制御部９ｆは、配布済データＴＢＬ８ｆにおいて新たに更新されたレコードを取得し、取得したレコードをサーバ４およびサーバ５に送信するべく、取得したレコードを通信部７に出力する。これにより、例えば、図２０の例に示すレコード管理ＩＤ「ａａａ１０」のレコードがサーバ４およびサーバ５に送信される。図２０の例に示すレコード管理ＩＤ「ａａａ１０」のレコードを受信したサーバ４およびサーバ５のそれぞれは、ＤＢ４ａ、ＤＢ５ａのそれぞれに蓄積されたレコードのうち、レコード管理ＩＤ「ａａａ１０」のレコードを特定する。そして、サーバ４およびサーバ５のそれぞれは、特定したレコードを、受信したレコードで更新する。これにより、新たに個人が識別される可能性が低くなったサーバ４およびサーバ５のレコードは、統計処理などの各種の処理に用いられることが可能となるように更新される。このようにして、更新制御部９ｆは、取得した重複数が「Ｎ」である場合には、新たに個人が識別される可能性が低くなったサーバ４およびサーバ５のレコードを、統計処理などの各種の処理に用いられることが可能となるように更新する。
【０１１１】
また、更新制御部９ｆは、重複数が「Ｎ」であるか否かの判定結果に関わらず、重複数が「Ｎ」以上である場合には、次の処理を行う。すなわち、更新制御部９ｆは、配布済データＴＢＬ８ｆのレコードのうち、更新制御部９ｆが新たに匿名化したレコードのレコード管理ＩＤを有するレコードを特定する。そして、更新制御部９ｆは、特定したレコードの検証対象の項目の登録内容が、新たに匿名化したレコードの検証対象の項目の登録内容となるように、配布済データＴＢＬ８ｆを更新する。図２１は、実施例１に係る情報処理装置が実行する処理の一例を示す図である。例えば、更新制御部９ｆは、図２０に示すデータが配布済データＴＢＬ８ｆに登録されている場合に、図１８の例に示す匿名化されたレコードを生成したときには、次のような処理を行う。すなわち、更新制御部９ｆは、配布済データＴＢＬ８ｆのレコード管理ＩＤ「ａａａ０１」を有するレコードの年齢の登録内容を、図２１に示すように、「３０〜３９」に更新する。
【０１１２】
続いて、更新制御部９ｆは、配布済データＴＢＬ８ｆにおいて新たに更新されたレコードを取得し、取得したレコードをサーバ４およびサーバ５に送信するべく、取得したレコードを通信部７に出力する。これにより、例えば、図２１の例に示すレコード管理ＩＤ「ａａａ０１」のレコードがサーバ４およびサーバ５に送信される。図２１の例に示すレコード管理ＩＤ「ａａａ０１」のレコードを受信したサーバ４およびサーバ５のそれぞれは、ＤＢ４ａ、ＤＢ５ａのそれぞれに蓄積されたレコードのうち、レコード管理ＩＤ「ａａａ０１」のレコードを特定する。そして、サーバ４およびサーバ５のそれぞれは、特定したレコードを、受信したレコードで更新する。このようにして、更新制御部９ｆは、サーバ４およびサーバ５のレコードを更新データに基づいて更新することができる。
【０１１３】
図７の説明に戻り、削除制御部９ｇは、削除データを受信した場合に、サーバ４およびサーバ５に蓄積されたデータのうち、新たに識別される可能性が高くなったレコードが更新されるように制御する。
【０１１４】
一態様としては、削除制御部９ｇは、サーバ２およびサーバ３から送信された削除データを受信すると、削除データに含まれる個人ＩＤを取得し、取得した個人ＩＤに対応するレコード管理ＩＤをＩＤＴＢＬ８ｇから取得する。例えば、図５の例に示す削除データを受信した場合には、削除制御部９ｇは、削除データに含まれる個人ＩＤ「１０９８」を取得し、図１２の例に示すＩＤＴＢＬ８ｇから、個人ＩＤ「１０９８」に対応するレコード管理ＩＤ「ａａａ０１」を取得する。
【０１１５】
続いて、削除制御部９ｇは、削除制御部９ｇが取得したレコード管理ＩＤを有する削除の対象のレコードを情報処理装置６に送信する指示をサーバ４またはサーバ５に送信するべく、かかる指示を通信部７に送信する。これにより、削除制御部９ｇが取得したレコード管理ＩＤを有する更新の対象のレコードを情報処理装置６に送信する指示がサーバ４またはサーバ５に送信される。かかる指示を受信したサーバ４またはサーバ５は、ＤＢ４ａまたはＤＢ５ａに蓄積されたレコードの中から、指示が示すレコードを検索し、検索の結果得られたレコードをネットワーク９１を介して情報処理装置６に送信する。これにより、情報処理装置６の削除制御部９ｇは、取得したレコード管理ＩＤを有する削除の対象のレコードを得ることができる。例えば、ＤＢ４ａまたはＤＢ５ａに蓄積されたデータが図６の例に示すデータであり、削除制御部９ｇがレコード管理ＩＤ「ａａａ０１」を有する削除の対象のレコードを送信する指示を通信部７に送信した場合には、削除制御部９ｇは、次のレコードを取得する。すなわち、削除制御部９ｇは、図６の例に示す番号が「１」のレコードを取得する。
【０１１６】
続いて、削除制御部９ｇは、取得したレコードの「レコード管理ＩＤ」以外の項目の登録内容を有するレコードを重複数ＴＢＬ８ｄのレコードの中から検索し、検索の結果得られたレコードの「重複数」の項目に登録された値を１つデクリメントする。例えば、図６の例に示す、番号が「１」のレコード（「男」、「２０〜２９」、「１６０〜１６９」、「６０〜６９」、「ａａａ０１」の各登録内容を有するレコード）を取得した場合に、削除制御部９ｇは、次のような処理を行う。すなわち、削除制御部９ｇは、「男」、「２０〜２９」、「１６０〜１６９」、「６０〜６９」の登録内容を有するレコードを図１０の例に示す重複数ＴＢＬ８ｄのレコードの中から検索する。そして、削除制御部９ｇは、検索の結果得られた図１０の例に示す重複数ＴＢＬ８ｄの５番目のレコードの「重複数」の項目に登録された値「２」を、「１」に更新する。この結果、図１０の例に示す重複数ＴＢＬ８ｄの登録内容は、図１３の例に示す重複数ＴＢＬ８ｄの登録内容に更新される。なお、重複数が「Ｎ」から「Ｎ−１」に更新された場合には、削除制御部９ｇが取得したレコードが、個人が識別される可能性が高いレコードとなったことを意味する。
【０１１７】
続いて、削除制御部９ｇは、取得したレコードの重複数を更新後の重複数ＴＢＬ８ｄから取得する。例えば、図６の例に示す番号が「１」のレコードを取得した場合には、削除制御部９ｇは、図１３の例に示す更新後の重複数ＴＢＬ８ｄの５番目のレコードの重複数「１」を取得する。
【０１１８】
その後、削除制御部９ｇは、定義データ８ｃに登録された重複数の閾値「Ｎ」を参照し、取得した重複数が、重複数の閾値「Ｎ」を１つデクリメントした値「Ｎ−１」であるか否かを判定する。ここで、Ｎ＝２の場合に、例えば、削除制御部９ｇは、図１３の例に示す更新後の重複数ＴＢＬ８ｄの５番目のレコードの重複数「１」を取得したときには、取得した重複数「１」が、「Ｎ−１」であると判定する。
【０１１９】
取得した重複数が「Ｎ−１」である場合には、削除制御部９ｇは、個人が識別される可能性が低いレコードとなるようにサーバ４およびサーバ５に蓄積された対応するレコードを更新するように制御する。例えば、削除制御部９ｇは、サーバ４またはサーバ５に蓄積されたレコード管理ＩＤのうち、次のようなレコード管理ＩＤを情報処理装置６に送信する指示をサーバ４またはサーバ５に送信するべく、かかる指示を通信部７を送信する。すなわち、削除制御部９ｇが取得したレコードの「レコード管理ＩＤ」以外の項目の登録内容を有するレコードに含まれるレコード管理ＩＤであって、削除制御部９ｇが取得済みのレコード管理ＩＤ以外のレコード管理ＩＤを送信する指示を通信部７に送信する。例えば、図６の例に示す、番号が「１」のレコード（「男」、「２０〜２９」、「１６０〜１６９」、「６０〜６９」、「ａａａ０１」の各登録内容を有するレコード）を取得した場合には、削除制御部９ｇは、次のような処理を行う。すなわち、削除制御部９ｇは、「男」、「２０〜２９」、「１６０〜１６９」、「６０〜６９」の登録内容を有するレコードに含まれるレコード管理ＩＤであって「ａａａ０１」以外のレコード管理ＩＤを情報処理装置６に送信する指示を通信部７に送信する。これにより、かかる指示がサーバ４またはサーバ５に送信され、指示を受信したサーバ４またはサーバ５は、ＤＢ４ａまたはＤＢ５ａから指示が示すレコード管理ＩＤを取得し、取得したレコード管理ＩＤを情報処理装置６に送信する。例えば、「男」、「２０〜２９」、「１６０〜１６９」、「６０〜６９」の登録内容を有するレコードに含まれる、「ａａａ０１」以外のレコード管理ＩＤを送信する指示を受信し、ＤＢ４ａに図６に示すデータが蓄積されている場合、サーバ４は次の処理を行う。すなわち、サーバ４は、レコード管理ＩＤ「ａａａ０６」を情報処理装置６に送信する。このようにして、削除制御部９ｇは、サーバ４またはサーバ５から新たにレコード管理ＩＤを取得する。
【０１２０】
そして、削除制御部９ｇは、削除制御部９ｇが取得したレコードの「レコード管理ＩＤ」以外の項目の登録内容と、新たに取得したレコード管理ＩＤとを含むレコードを生成し、生成したレコードをＮＧデータＴＢＬ８ｅに登録する。例えば、削除制御部９ｇは、「男」、「２０〜２９」、「１６０〜１６９」、「６０〜６９」の登録内容と、新たに取得したレコード管理ＩＤ「ａａａ０６」とを含むレコードを生成し、レコードを図１４の例に示すようにＮＧデータＴＢＬ８ｅに追加する。
【０１２１】
そして、削除制御部９ｇは、ＮＧデータＴＢＬ８ｅに新たに登録したレコードを取得し、定義データ８ｃを参照し、定義データ８ｃが示す匿名化する項目の登録内容を匿名化する。例えば、削除制御部９ｇは、取得したレコードに対して、匿名化する項目の登録内容を破棄するように匿名化を行う。具体例を挙げて説明する。削除制御部９ｇは、レコードの「年齢」、「身長」および「体重」の項目の登録内容を破棄して、各項目に「ｎｕｌｌ」を登録する匿名化を行う。例えば、削除制御部９ｇは、「男」、「ｎｕｌｌ」、「ｎｕｌｌ」、「ｎｕｌｌ」、「ａａａ０６」の登録内容が各項目に登録されたレコードを生成する。このようにして、削除制御部９ｇは、レコードの匿名化を行う。なお、削除制御部９ｇに代えて匿名化部９ｃが、レコードの匿名化を行うこともできる。
【０１２２】
そして、削除制御部９ｇは、配布済データＴＢＬ８ｆのレコードのうち、削除制御部９ｇが新たに取得したレコード管理ＩＤを有するレコードを特定する。続いて、削除制御部９ｇは、特定したレコードの検証対象の項目の登録内容が、匿名化されたレコードの検証対象の項目の登録内容となるように、配布済データＴＢＬ８ｆを更新する。例えば、削除制御部９ｇは、図６に示すデータが配布済データＴＢＬ８ｆに登録されている場合には、レコード管理ＩＤ「ａａａ０６」を有するレコードの登録内容を、図１５に示すように「男」、「ｎｕｌｌ」、「ｎｕｌｌ」、「ｎｕｌｌ」に更新する。
【０１２３】
続いて、削除制御部９ｇは、配布済データＴＢＬ８ｆにおいて新たに更新されたレコード（匿名化されたレコード）を取得し、取得したレコードがサーバ４およびサーバ５に送信されるように、取得したレコードを通信部７に出力する。これにより、例えば、図１５の例に示すレコード管理ＩＤ「ａａａ０６」のレコードがサーバ４およびサーバ５に送信される。図１５の例に示すレコード管理ＩＤ「ａａａ０６」のレコードを受信したサーバ４およびサーバ５のそれぞれは、ＤＢ４ａ、ＤＢ５ａのそれぞれに蓄積されたレコードのうち、レコード管理ＩＤ「ａａａ０６」のレコードを特定する。そして、サーバ４およびサーバ５のそれぞれは、特定したレコードを受信したレコードで更新する。これにより、新たに個人が識別される可能性が高くなったサーバ４およびサーバ５のレコードは、個人が識別される可能性が低くなるように更新される。このようにして、削除制御部９ｇは、取得した重複数が「Ｎ−１」である場合には、新たに個人が識別される可能性が高くなったサーバ４およびサーバ５のレコードを、個人が識別される可能性が低くなるように更新する。
【０１２４】
また、削除制御部９ｇは、取得した重複数の値に関わらず、下記で説明するような処理を行う。例えば、削除制御部９ｇは、配布済データＴＢＬ８ｆのレコードのうち、削除データに含まれる個人ＩＤに対応するレコード管理ＩＤを有するレコードを特定し、特定したレコードを削除する。
【０１２５】
続いて、削除制御部９ｇは、削除データに含まれる個人ＩＤに対応するレコード管理ＩＤを含むレコードを削除する指示をサーバ４およびサーバ５に送信すべく、かかる指示を通信部７に送信する。すなわち、削除制御部９ｇは、削除データが示すレコードを削除する指示を通信部７に送信する。これにより、かかる指示がサーバ４およびサーバ５に送信される。指示を受信したサーバ４およびサーバ５のそれぞれは、ＤＢ４ａ、ＤＢ５ａのそれぞれに蓄積されたレコードのうち、指示が示すレコード管理ＩＤを含むレコードを特定し、特定したレコードを削除する。
【０１２６】
図７の説明に戻り、管理部９ｈは、クライアント装置１０から送信された定義データ８ｃを受信すると、受信した定義データ８ｃを記憶部８に格納する。
【０１２７】
制御部９は、Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ（ＡＳＩＣ）などの集積回路である。また、制御部９は、Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ（ＦＰＧＡ）であってもよい。また、制御部９は、Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ（ＣＰＵ）などの電子回路であってもよい。さらに、制御部９は、Ｍｉｃｒｏ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ（ＭＰＵ）であってもよい。
【０１２８】
次に、本実施例に係る情報処理装置が実行する処理の流れを説明する。図２２は、実施例１に係る制御処理の手順を示すフローチャートである。
【０１２９】
図２２に示すように、収集部９ａは、ネットワーク９０を介してサーバ２およびサーバ３から送信される各種のデータを収集する（Ｓ１０１）。
【０１３０】
続いて、判別部９ｂは、収集部９ａにより収集されたデータの種類が、匿名化の対象のデータであるか否かを判定する（Ｓ１０２）。匿名化の対象のデータである場合（Ｓ１０２肯定）には、判別部９ｂは、匿名化の対象のデータに含まれる個人ＩＤを取得し、取得した個人ＩＤに対応するレコード管理ＩＤを生成する。そして、判別部９ｂは、匿名化の対象のデータに含まれる取得した個人ＩＤを破棄し、匿名化の対象のデータにレコード管理ＩＤを登録して、匿名化の対象のデータを更新する（Ｓ１０３）。
【０１３１】
そして、判別部９ｂは、ＩＤＴＢＬ８ｇに、取得した個人ＩＤと、生成したレコード管理ＩＤとを対応付けて登録して、ＩＤＴＢＬ８ｇを更新する（Ｓ１０４）。
【０１３２】
続いて、匿名化部９ｃは、定義データ８ｃを参照し、更新された匿名化の対象のデータの各項目の登録内容の中から、定義データ８ｃが示す破棄する項目の登録内容を破棄する。そして、匿名化部９ｃは、更新された匿名化の対象のデータの各項目の登録内容のうち破棄されなかった項目の登録内容の中から、定義データ８ｃが示す匿名化する項目の登録内容を匿名化する。そして、匿名化部９ｃは、匿名化の結果得られた匿名化データ８ｂを記憶部８に格納する（Ｓ１０５）。
【０１３３】
そして、検証部９ｄは、データ検証処理を実行する（Ｓ１０６）。図２３は、実施例１に係るデータ検証処理の手順を示すフローチャートである。図２３に示すように、検証部９ｄは、定義データ８ｃに登録された重複数の閾値「Ｎ」を参照する（Ｓ２０１）。
【０１３４】
次に、検証部９ｄは、定義データ８ｃが示す検証する項目を参照する（Ｓ２０２）。そして、検証部９ｄは、新たに生成され記憶部８に格納された匿名化データ８ｂを記憶部８から取得し、取得した匿名化データ８ｂの未処理のレコードを１つ選択する（Ｓ２０３）。
【０１３５】
続いて、検証部９ｄは、選択したレコードの各項目の登録内容の中から、検証する項目の登録内容の組み合わせを特定し、特定した登録内容の組み合わせを含むレコードがあるか、重複数ＴＢＬ８ｄを検索する。検索の結果、検証する項目の登録内容の組み合わせを含むレコードが得られた場合には、検証部９ｄは、得られたレコードの「重複数」の項目に登録された値を１つインクリメントして、重複数ＴＢＬ８ｄを更新する。一方、検索の結果、検証する項目の登録内容の組み合わせが得られなかった場合には、検証部９ｄは、検証する項目の登録内容の組み合わせが登録された１件のレコードを生成し、生成したレコードを重複数ＴＢＬ８ｄに追加する。そして、検証部９ｄは、追加したレコードの「重複数」の項目に「１」を登録する。このようにして、検証部９ｄは、重複数ＴＢＬ８ｄを更新する（Ｓ２０４）。
【０１３６】
そして、検証部９ｄは、重複数ＴＢＬ８ｄの検証する項目の登録内容の組み合わせを含むレコードの「重複数」の項目に登録された重複数が、参照した重複数の閾値「Ｎ」以上であるか否かを判定する（Ｓ２０５）。
【０１３７】
重複数が「Ｎ」以上でない、すなわち、重複数が「Ｎ」未満である場合（Ｓ２０５否定）には、選択したレコードが、個人が識別される可能性が高いレコードであるため、検証部９ｄは、選択したレコードをＮＧデータＴＢＬ８ｅに登録する（Ｓ２０６）。そして、検証部９ｄは、取得した匿名化データ８ｂのレコードの中に、未処理のレコードがあるか否かを判定する（Ｓ２０７）。未処理のレコードがある場合（Ｓ２０７肯定）には、Ｓ２０３に戻り、検証部９ｄは、未処理のレコードを１つ選択して上述した処理を再び行う。
【０１３８】
一方、重複数が「Ｎ」以上である場合（Ｓ２０５肯定）には、検証部９ｄは、重複数ＴＢＬ８ｄのレコードの「重複数」の項目に登録された重複数が、参照した重複数の閾値「Ｎ」であるか否かを判定する（Ｓ２０８）。重複数が「Ｎ」でない場合（Ｓ２０８否定）には、Ｓ２１０へ進む。重複数が「Ｎ」である場合（Ｓ２０８肯定）には、選択したレコードが新たにサーバ２またはサーバ３から送信されたことによって、選択したレコードが、個人が識別される可能性が高いレコードではなくなったため、検証部９ｄは、次のような処理を行う。すなわち、検証部９ｄは、ＮＧデータＴＢＬ８ｅに登録されたレコードであって、選択したレコードの「レコード管理ＩＤ」以外の項目の登録内容を有するレコードを特定し、特定したレコードをＮＧデータＴＢＬ８ｅから削除する（Ｓ２０９）。そして、検証部９ｄは、選択したレコードを、個人が識別される可能性が低い「ＯＫ」に分類し（Ｓ２１０）、Ｓ２０７へ進む。未処理のレコードがない場合（Ｓ２０７否定）には、検証部９ｄは、処理結果を内部メモリに格納し、リターンする。
【０１３９】
図２２の説明に戻り、配布制御部９ｅは、データ配布処理を実行し（Ｓ１０７）、処理を終了する。図２４は、実施例１に係るデータ配布処理の手順を示すフローチャートである。図２４に示すように、配布制御部９ｅは、匿名化部９ｃにより新たに記憶部８に格納された匿名化データ８ｂのレコードの中に、検証部９ｄにより新たにＮＧデータＴＢＬ８ｅに登録されたレコードがあるか否かを判定する（Ｓ３０１）。新たにＮＧデータＴＢＬ８ｅに登録されたレコードがない場合（Ｓ３０１否定）には、Ｓ３０６へ進む。
【０１４０】
一方、新たにＮＧデータＴＢＬ８ｅに登録されたレコードがある場合（Ｓ３０１肯定）には、配布制御部９ｅは、定義データ８ｃが示す匿名化する項目を参照する（Ｓ３０２）。そして、配布制御部９ｅは、新たにＮＧデータＴＢＬ８ｅに登録されたレコードのうち、未処理のレコードを１つ選択する（Ｓ３０３）。そして、配布制御部９ｅは、選択したレコードの各項目の登録内容の中から、定義データ８ｃが示す匿名化する項目の登録内容を匿名化する（Ｓ３０４）。
【０１４１】
そして、配布制御部９ｅは、新たにＮＧデータＴＢＬ８ｅに登録されたレコードのうち、未処理のレコードがあるか否かを判定する（Ｓ３０５）。未処理のレコードがある場合（Ｓ３０５肯定）には、配布制御部９ｅは、Ｓ３０３に戻り、未処理のレコードを１つ選択し、上述した処理を再び行う。
【０１４２】
未処理のレコードがない場合（Ｓ３０５否定）には、配布制御部９ｅは、匿名化部９ｃにより「ＯＫ」と分類されたレコードがある場合には、かかるレコードを配布済データＴＢＬ８ｆに格納する。これに加えて、配布制御部９ｅは、２回目の匿名化が行われたレコードがある場合には、２回目の匿名化のレコードも配布済データＴＢＬ８ｆに格納する（Ｓ３０６）。続いて、配布制御部９ｅは、新たに配布済データＴＢＬ８ｆに格納したデータを取得し、取得したデータがサーバ４およびサーバ５に送信されるように、取得したデータを通信部７に出力し（Ｓ３０７）、処理結果を内部メモリに格納し、リターンする。
【０１４３】
図２２の説明に戻り、匿名化の対象のデータでない場合（Ｓ１０２否定）には、判別部９ｂは、収集部９ａにより収集されたデータの種類が、更新データであるか否かを判定する（Ｓ１０８）。更新データである場合（Ｓ１０８肯定）には、更新制御部９ｆは、更新制御処理を実行し（Ｓ１０９）、処理を終了する。
【０１４４】
図２５は、実施例１に係る更新制御処理の手順を示すフローチャートである。図２５に示すように、更新制御部９ｆは、第１の重複数取得処理を実行する（Ｓ４０１）。
【０１４５】
図２６は、実施例１に係る第１の重複数取得処理の手順を示すフローチャートである。図２６に示すように、更新制御部９ｆは、更新データに含まれる個人ＩＤを取得し、取得した個人ＩＤに対応するレコード管理ＩＤをＩＤＴＢＬ８ｇから取得する（Ｓ５０１）。
【０１４６】
続いて、更新制御部９ｆは、更新制御部９ｆが取得したレコード管理ＩＤを有する更新の対象のレコードを情報処理装置６に送信する指示をサーバ４またはサーバ５に送信すべく、かかる指示を通信部７に送信する。そして、更新制御部９ｆは、サーバ４またはサーバ５から、更新対象のレコードを取得する（Ｓ５０２）。
【０１４７】
続いて、更新制御部９ｆは、取得したレコードの「レコード管理ＩＤ」以外の項目の登録内容を有するレコードを重複数ＴＢＬ８ｄのレコードの中から検索する。そして、更新制御部９ｆは、検索の結果得られたレコードの「重複数」の項目に登録された値を１つデクリメントして、重複数ＴＢＬ８ｄを更新する（Ｓ５０３）。
【０１４８】
続いて、更新制御部９ｆは、取得したレコードの重複数を更新後の重複数ＴＢＬ８ｄから取得し（Ｓ５０４）、処理結果を内部メモリに格納し、リターンする。
【０１４９】
図２５の説明に戻り、更新制御部９ｆは、定義データ８ｃに登録された重複数の閾値「Ｎ」を参照し、取得した重複数が、重複数の閾値「Ｎ」を１つデクリメントした値「Ｎ−１」であるか否かを判定する（Ｓ４０２）。
【０１５０】
取得した重複数が「Ｎ−１」でない場合（Ｓ４０２否定）には、Ｓ４０４へ進む。一方、取得した重複数が「Ｎ−１」である場合（Ｓ４０２肯定）には、更新制御部９ｆは、第１の匿名化依頼処理を実行する（Ｓ４０３）。
【０１５１】
図２７は、実施例１に係る第１の匿名化依頼処理の手順を示すフローチャートである。図２７に示すように、更新制御部９ｆは、サーバ４またはサーバ５に蓄積されたレコード管理ＩＤのうち、次のようなレコード管理ＩＤを情報処理装置６に送信する指示をサーバ４またはサーバ５に送信すべく、かかる指示を通信部７に送信する。すなわち、更新制御部９ｆが取得したレコードの「レコード管理ＩＤ」以外の項目の登録内容を有するレコードに含まれるレコード管理ＩＤであって、更新制御部９ｆが取得済みのレコード管理ＩＤ以外のレコード管理ＩＤを送信する指示を通信部７に送信する。このようにして、更新制御部９ｆは、サーバ４またはサーバ５から新たにレコード管理ＩＤを取得する（Ｓ６０１）。
【０１５２】
そして、更新制御部９ｆは、更新制御部９ｆが取得したレコードの「レコード管理ＩＤ」以外の項目の登録内容と、新たに取得したレコード管理ＩＤとを含むレコードを生成し、生成したレコードをＮＧデータＴＢＬ８ｅに登録する（Ｓ６０２）。
【０１５３】
そして、更新制御部９ｆは、ＮＧデータＴＢＬ８ｅに新たに登録したレコードを取得し、定義データ８ｃを参照し、定義データ８ｃが示す匿名化する項目の登録内容を匿名化する（Ｓ６０３）。
【０１５４】
そして、更新制御部９ｆは、配布済データＴＢＬ８ｆのレコードの中から、更新制御部９ｆが新たに取得したレコード管理ＩＤを有するレコードを特定する。続いて、更新制御部９ｆは、特定したレコードの検証対象の項目の登録内容が、匿名化されたレコードの検証対象の項目の登録内容となるように、配布済データＴＢＬ８ｆを更新する（Ｓ６０４）。
【０１５５】
続いて、更新制御部９ｆは、配布済データＴＢＬ８ｆにおいて新たに更新されたレコード（匿名化されたレコード）を取得し、取得したレコードがサーバ４およびサーバ５に送信されるように、取得したレコードを通信部７に出力する（Ｓ６０５）。そして、更新制御部９ｆは、処理結果を内部メモリに格納し、リターンする。
【０１５６】
図２５の説明に戻り、更新制御部９ｆは、更新依頼処理を実行し（Ｓ４０４）、処理結果を内部メモリに格納し、リターンする。
【０１５７】
図２８は、実施例１に係る更新依頼処理の手順を示すフローチャートである。図２８に示すように、更新制御部９ｆは、取得した更新の対象のレコードの登録内容を、更新データが示す更新内容で更新して、更新後のレコードを生成する（Ｓ７０１）。
【０１５８】
そして、更新制御部９ｆは、定義データ８ｃを参照し、更新されたレコードの登録内容のうち、定義データ８ｃが示す匿名化する項目の登録内容を匿名化する（Ｓ７０２）。続いて、更新制御部９ｆは、匿名化されたレコードの「レコード管理ＩＤ」以外の項目の登録内容を有するレコードを重複数ＴＢＬ８ｄのレコードの中から検索する。検索の結果、レコードが得られた場合には、更新制御部９ｆは、得られたレコードの「重複数」の項目に登録された値を１つインクリメントする。一方、検索の結果、レコードが得られなかった場合には、更新制御部９ｆは、重複数ＴＢＬ８ｄに新たなレコードを追加する。そして、更新制御部９ｆは、追加されたレコードの「重複数」以外の各項目に、匿名化されたレコードの登録内容を登録する。続いて、更新制御部９ｆは、追加されたレコードの「重複数」の項目に「１」を登録する。このようにして、更新制御部９ｆは、重複数ＴＢＬ８ｄを更新する（Ｓ７０３）。
【０１５９】
続いて、更新制御部９ｆは、匿名化されたレコードに対応する重複数ＴＢＬ８ｄのレコードの重複数を取得し、取得した重複数が、重複数の閾値「Ｎ」以上であるか否かを判定する（Ｓ７０４）。取得した重複数が、重複数の閾値「Ｎ」未満である場合（Ｓ７０４否定）には、更新制御部９ｆは、匿名化されたレコードをＮＧデータＴＢＬ８ｅに登録する（Ｓ７０５）。
【０１６０】
そして、更新制御部９ｆは、新たにＮＧデータＴＢＬ８ｅに登録されたレコードの各項目の登録内容の中から、定義データ８ｃが示す匿名化する項目の登録内容を匿名化する（Ｓ７０６）。
【０１６１】
そして、更新制御部９ｆは、配布済データＴＢＬ８ｆのレコードの中から、更新制御部９ｆが新たに匿名化したレコードのレコード管理ＩＤを有するレコードを検索する。続いて、更新制御部９ｆは、検索の結果得られたレコードの検証対象の項目の登録内容が、新たに匿名化したレコードの検証対象の項目の登録内容となるように、配布済データＴＢＬ８ｆを更新する（Ｓ７０７）。
【０１６２】
続いて、更新制御部９ｆは、配布済データＴＢＬ８ｆにおいて新たに更新されたレコード（匿名化されたレコード）を取得し、取得したレコードがサーバ４およびサーバ５に送信されるように、取得したレコードを通信部７に出力する（Ｓ７０８）。そして、更新制御部９ｆは、処理結果を内部メモリに格納し、リターンする。
【０１６３】
一方、取得した重複数が、重複数の閾値「Ｎ」以上である場合（Ｓ７０４肯定）には、更新制御部９ｆは、取得した重複数が、重複数の閾値「Ｎ」であるか否かを判定する（Ｓ７０９）。取得した重複数が、重複数の閾値「Ｎ」でない場合（Ｓ７０９否定）には、Ｓ７１４へ進む。
【０１６４】
一方、取得した重複数が、重複数の閾値「Ｎ」である場合（Ｓ７０９肯定）には、更新制御部９ｆは、次のような処理を行う。すなわち、更新制御部９ｆは、ＮＧデータＴＢＬ８ｅを参照し、新たに匿名化されたレコードの「レコード管理ＩＤ」以外の項目の登録内容と一致する登録内容を有するレコードのレコード管理ＩＤを取得する（Ｓ７１０）。
【０１６５】
そして、更新制御部９ｆは、ＮＧデータＴＢＬ８ｅに登録されたレコードのうち、取得したレコード管理ＩＤを有するレコードを特定し、特定したレコードを削除する（Ｓ７１１）。そして、更新制御部９ｆは、配布済データＴＢＬ８ｆのレコードのうち、新たに取得したレコード管理ＩＤを有するレコードを特定する。続いて、更新制御部９ｆは、特定したレコードの検証対象の項目の登録内容が、新たに匿名化されたレコードの検証対象の項目の登録内容となるように、配布済データＴＢＬ８ｆを更新する（Ｓ７１２）。続いて、更新制御部９ｆは、配布済データＴＢＬ８ｆにおいて新たに更新されたレコードを取得し、取得したレコードがサーバ４およびサーバ５に送信されるように、取得したレコードを通信部７に出力する（Ｓ７１３）。
【０１６６】
続いて、更新制御部９ｆは、配布済データＴＢＬ８ｆのレコードのうち、更新制御部９ｆが新たに匿名化したレコードのレコード管理ＩＤを有するレコードを特定する。そして、更新制御部９ｆは、特定したレコードの検証対象の項目の登録内容が、新たに匿名化したレコードの検証対象の項目の登録内容となるように、配布済データＴＢＬ８ｆを更新する（Ｓ７１４）。続いて、更新制御部９ｆは、配布済データＴＢＬ８ｆにおいて新たに更新されたレコードを取得し、取得したレコードがサーバ４およびサーバ５に送信されるように、取得したレコードを通信部７に出力する（Ｓ７１５）。そして、更新制御部９ｆは、処理結果を内部メモリに格納し、リターンする。
【０１６７】
図２２の説明に戻り、更新データでない場合（Ｓ１０８否定）には、判別部９ｂは、収集部９ａにより収集されたデータの種類が、削除データであるか否かを判定する（Ｓ１１０）。削除データでない場合（Ｓ１１０否定）には、処理を終了する。一方、削除データである場合（Ｓ１１０肯定）には、削除制御部９ｇは、削除制御処理を実行し（Ｓ１１１）、処理を終了する。
【０１６８】
図２９は、実施例１に係る削除制御処理の手順を示すフローチャートである。図２９に示すように、削除制御部９ｇは、第２の重複数取得処理を実行する（Ｓ８０１）。
【０１６９】
図３０は、実施例１に係る第２の重複数取得処理の手順を示すフローチャートである。図３０に示すように、削除制御部９ｇは、削除データに含まれる個人ＩＤを取得し、取得した個人ＩＤに対応するレコード管理ＩＤをＩＤＴＢＬ８ｇから取得する（Ｓ９０１）。
【０１７０】
続いて、削除制御部９ｇは、削除制御部９ｇが取得したレコード管理ＩＤを有する削除の対象のレコードを情報処理装置６に送信する指示をサーバ４またはサーバ５に送信すべく、かかる指示を通信部７に送信する。これにより、削除制御部９ｇは、取得したレコード管理ＩＤを有する削除の対象のレコードを取得する（Ｓ９０２）。
【０１７１】
続いて、削除制御部９ｇは、取得したレコードの「レコード管理ＩＤ」以外の項目の登録内容を有するレコードを重複数ＴＢＬ８ｄのレコードの中から検索し、検索の結果得られたレコードの「重複数」の項目に登録された値を１つデクリメントする。このようにして、削除制御部９ｇは、重複数ＴＢＬ８ｄを更新する（Ｓ９０３）。
【０１７２】
続いて、削除制御部９ｇは、取得したレコードの重複数を更新後の重複数ＴＢＬ８ｄから取得し（Ｓ９０４）、処理結果を内部メモリに格納し、リターンする。
【０１７３】
図２９の説明に戻り、削除制御部９ｇは、定義データ８ｃに登録された重複数の閾値「Ｎ」を参照し、取得した重複数が、重複数の閾値「Ｎ」を１つデクリメントした値「Ｎ−１」であるか否かを判定する（Ｓ８０２）。取得した重複数が、「Ｎ−１」でない場合（Ｓ８０２否定）には、Ｓ８０４へ進む。
【０１７４】
一方、取得した重複数が「Ｎ−１」である場合（Ｓ８０２肯定）には、削除制御部９ｇは、実施例１に係る第２の匿名化依頼処理を実行する（Ｓ８０３）。図３１は、実施例１に係る第２の匿名化依頼処理の手順を示すフローチャートである。図３１に示すように、削除制御部９ｇは、サーバ４またはサーバ５に蓄積されたレコードのレコード管理ＩＤのうち、次のようなレコード管理ＩＤを情報処理装置６に送信する指示をサーバ４またはサーバ５に送信すべく、かかる指示を通信部７に送信する。すなわち、削除制御部９ｇが取得したレコードの「レコード管理ＩＤ」以外の項目の登録内容を有するレコードに含まれるレコード管理ＩＤであって、削除制御部９ｇが取得済みのレコード管理ＩＤ以外のレコード管理ＩＤを送信する指示を通信部７に送信する。これにより、削除制御部９ｇは、サーバ４またはサーバ５から新たにレコード管理ＩＤを取得する（Ｓ１００１）。
【０１７５】
そして、削除制御部９ｇは、削除制御部９ｇが取得したレコードの「レコード管理ＩＤ」以外の項目の登録内容と、新たに取得したレコード管理ＩＤとを含むレコードを生成し、生成したレコードをＮＧデータＴＢＬ８ｅに登録する（Ｓ１００２）。
【０１７６】
そして、削除制御部９ｇは、ＮＧデータＴＢＬ８ｅに新たに登録したレコードを取得し、定義データ８ｃを参照し、定義データ８ｃが示す匿名化する項目の登録内容を匿名化する（Ｓ１００３）。
【０１７７】
そして、削除制御部９ｇは、配布済データＴＢＬ８ｆのレコードのうち、削除制御部９ｇが新たに取得したレコード管理ＩＤを有するレコードを特定する。続いて、削除制御部９ｇは、特定したレコードの検証対象の項目の登録内容が、匿名化されたレコードの検証対象の項目の登録内容となるように、配布済データＴＢＬ８ｆを更新する（Ｓ１００４）。
【０１７８】
続いて、削除制御部９ｇは、配布済データＴＢＬ８ｆにおいて新たに更新されたレコード（匿名化されたレコード）を取得し、取得したレコードがサーバ４およびサーバ５に送信されるように、取得したレコードを通信部７に出力する（Ｓ１００５）。そして、削除制御部９ｇは、処理結果を内部メモリに格納し、リターンする。
【０１７９】
図２９の説明に戻り、削除制御部９ｇは、配布済データＴＢＬ８ｆのレコードのうち、削除制御部９ｇが取得した削除の対象のレコードと一致するレコードを特定し、特定したレコードを削除する（Ｓ８０４）。
【０１８０】
続いて、削除制御部９ｇは、削除制御部９ｇが取得したレコード管理ＩＤを含むレコードを削除する指示をサーバ４およびサーバ５に送信するように、通信部７を制御し（Ｓ８０５）、処理結果を内部メモリに格納し、リターンする。
【０１８１】
上述してきたように、本実施例の情報処理装置６は、収集したデータに含まれるレコードについて、所定の関係を持つレコード、例えば、検証する項目の登録内容の組み合わせが一致するレコードの個数を計数する。そして、情報処理装置６は、計数した個数がＮ個以上である場合には、所定の関係を持つ、複数のレコードをサーバ４およびサーバ５に出力する。そして、新たにデータを収集した場合には、情報処理装置６は、前回収集したデータ、および、新たに収集したデータに含まれるレコードについて、所定の関係を持つレコードの個数を計数する。続いて、情報処理装置６は、前回収集したデータ、および、新たに収集したデータに含まれるレコードについて計数した所定の関係を持つレコードの個数が、Ｎ個以上である場合には、次の処理を行う。すなわち、情報処理装置６は、所定の関係を持つ複数のレコードのうち、新たに収集したデータに含まれるレコードをサーバ４およびサーバ５に出力する。したがって、情報処理装置６によれば、収集したデータに含まれるレコードのうち、「レコードの一致」というレコード間の所定の条件を満たさないと判定されるレコードの量を抑制することができる。この結果、より多くのレコードが、ターゲットシステムのサーバ４およびサーバ５において統計処理などの所定の処理を行う際に有効に用いられるようになる。
【０１８２】
また、情報処理装置６は、収集したデータに含まれるレコードについて計数した所定の関係を持つレコードの個数がＮ個未満である場合には、次の処理を行う。すなわち、情報処理装置６は、所定の関係を持つ複数のレコードに対して、匿名化する項目の登録内容を破棄する匿名化を行い、匿名化された複数のレコードをサーバ４およびサーバ５に出力する。そして、新たにデータを収集した場合には、情報処理装置６は、前回収集したデータおよび新たに収集したデータに含まれるレコードについて計数した所定の関係を持つレコードの個数が、Ｎ個未満であるときには、次の処理を行う。すなわち、情報処理装置６は、所定の関係を持つ複数のレコードのうち、新たに収集したデータに含まれるレコードに対して、匿名化する項目の登録内容を破棄する匿名化を行い、匿名化されたレコードをサーバ４およびサーバ５に出力する。したがって、情報処理装置６によれば、所定の関係を持つレコードの個数がＮ個未満であるレコードについては、個人が識別される可能性が低くなるように匿名化した上で、サーバ４およびサーバ５に送信することができる。
【０１８３】
また、情報処理装置６は、収集したデータに含まれる所定の関係を持つレコードの個数を計数し、計数した個数と、所定の関係を持つレコードとを対応付けて重複数ＴＢＬ８ｄに登録する。そして、新たにデータを収集した場合には、情報処理装置６は、次のような処理を行う。すなわち、情報処理装置６は、重複数ＴＢＬ８ｄに登録されたレコードおよび新たに収集したデータのレコードと所定の関係を持つ新たに収集したデータに含まれるレコードの個数を計数し、計数した個数に基づいて、重複数ＴＢＬ８ｄの個数の値を更新する。したがって、情報処理装置６によれば、レコードごとに個数が登録される重複数ＴＢＬ８ｄのような少ない情報量のテーブルを用いて、出力済みのレコードも考慮して、所定の関係を持つレコードの個数を計数することができる。
【０１８４】
また、情報処理装置６は、前回収集したデータまたは新たに収集したデータに含まれる更新対象のレコードが更新された場合には、更新される前の更新対象のレコードについて所定の関係を持つレコードの個数を計数する。そして、情報処理装置６は、更新される前の更新対象のレコードについて計数した所定の関係を持つレコードの個数がＮ−１である場合には、次のような処理を行う。すなわち、情報処理装置６は、更新される前の更新対象のレコードと所定の関係を持つレコードについて、登録内容を破棄するなどの匿名化を行う指示をサーバ４およびサーバ５に出力する。したがって、情報処理装置６によれば、レコードの更新によって、サーバ４およびサーバ５に蓄積されたレコードであって、個人を識別する可能性が高くなったレコードを、個人を識別する可能性が低くなるように更新させることができる。
【０１８５】
また、情報処理装置６は、更新された後の更新対象のレコードについて所定の関係を持つレコードの個数を計数する。そして、情報処理装置６は、更新された後の更新対象のレコードについて計数した所定の関係を持つデータの個数がＮである場合には、更新された後のレコードと所定の関係を持つレコードについて匿名化を解除する指示をサーバ４またはサーバ５に出力する。したがって、情報処理装置６によれば、レコードの更新によって、サーバ４およびサーバ５に蓄積されたレコードであって、個人を識別する可能性が低くなったレコードを、統計処理などの各種の処理において用いられるように、更新させることができる。
【０１８６】
また、情報処理装置６は、更新された後の更新対象のレコードについて計数した所定の関係を持つレコードの個数がＮ以上である場合には、更新された後の更新対象のレコードをサーバ４およびサーバ５に出力する。また、情報処理装置６は、更新された後の更新対象のレコードについて計数した所定の関係を持つレコードの個数がＮ未満である場合には、更新された後の更新対象のレコードを匿名化する。そして、情報処理装置６は、匿名化されたレコードをサーバ４およびサーバ５に出力する。
【０１８７】
また、情報処理装置６は、前回収集したデータまたは新たに収集したデータに含まれるレコードが削除された場合には、削除されたレコードについて所定の関係を持つレコードの個数を計数する。そして、情報処理装置６は、削除されたレコードについて計数した所定の関係を持つレコードの個数がＮ−１である場合には、削除されたデータと所定の関係を持つレコードについて匿名化する指示をサーバ４およびサーバ５に出力する。したがって、情報処理装置６によれば、レコードの削除によって、サーバ４およびサーバ５に蓄積されたレコードであって、個人を識別する可能性が高くなったレコードを、個人を識別する可能性が低くなるように更新させることができる。
【実施例２】
【０１８８】
さて、上記の実施例１では、重複数ＴＢＬ８ｄ、ＮＧデータＴＢＬ８ｅを用いて各種の処理を行う場合を例示したが、開示の情報処理装置はこれに限定されない。そこで、実施例２では、後述するグループＩＤ紐付ＴＢＬ１９ｃ、ＮＧＩＤＴＢＬ１９ｂ、グループＩＤＴＢＬ１９ａを用いて各種の処理を行う場合について説明する。
【０１８９】
図３２は、実施例２に係る情報処理装置の機能構成の一例を示す図である。図３２に示すように、情報処理装置１８は、通信部７、記憶部１９および制御部２０を有する。かかる記憶部１９は、図７に示す実施例１に係る記憶部８と比較して、グループＩＤ紐付ＴＢＬ１９ｃ、ＮＧＩＤＴＢＬ１９ｂおよびグループＩＤＴＢＬ１９ａを記憶する点が異なる。また、かかる制御部２０は、図７に示す実施例１に係る制御部９と比較して、検証部２０ｄ、配布制御部２０ｅ、更新制御部２０ｆおよび削除制御部２０ｇを有する点が異なる。なお、以下では、上記の実施例１と同様の機能を果たす各部については図７と同様の符号を付し、その説明は省略する。また、実施例２に係るシステムの構成については、実施例１に係るシステムの構成と同様であるので、説明を省略する。
【０１９０】
サーバ２およびサーバ３は、例えば、実施例１と同様に、図３の例に示すデータを情報処理装置１８に送信する。また、情報処理装置１８は、実施例１と同様に、図６の例に示すデータをサーバ４およびサーバ５に送信する。
【０１９１】
グループＩＤＴＢＬ１９ａには、レコードが属するグループのグループＩＤが登録される。図３３は、グループＩＤＴＢＬのデータ構造の一例を示す図である。図３３の例が示すグループＩＤＴＢＬ１９ａのレコードは、定義データ８ｃにおいて、「項目名」に名称が登録された項目のうち「検証」の項目に「ＹＥＳ」が登録された「性別」、「年齢」、「身長」、「体重」の項目と、「グループＩＤ」の項目とを有する。例えば、図３３の例が示すグループＩＤＴＢＬ１９ａの１番目のレコードは、性別「男」、年齢「２０〜２９」、身長「１７０〜１７９」、体重「６０〜６９」のレコードが属するグループのグループＩＤが「ｇｒｐ１」であることを示す。なお、同一のグループには、検証対象の項目の登録内容が一致するレコードが属する。すなわち、検証対象の項目の登録内容が一致するレコードについては、グループＩＤＴＢＬ１９ａに登録されるグループＩＤが一致することとなる。本実施例に係る情報処理装置６は、グループＩＤＴＢＬ１９ａに登録されたグループＩＤを計数することで、レコードの重複数を計数する。
【０１９２】
ＮＧＩＤＴＢＬ１９ｂには、重複数がＮ未満のレコードに含まれるレコード管理ＩＤが登録される。図３４は、ＮＧＩＤＴＢＬのデータ構造の一例を示す図である。図３４の例が示すＮＧＩＤＴＢＬ１９ｂのレコードは、「レコード管理ＩＤ」の項目を有する。図３４の例が示すＮＧＩＤＴＢＬ１９ｂは、重複数がＮ未満のレコードに含まれるレコード管理ＩＤが登録されている場合を示す。
【０１９３】
グループＩＤ紐付ＴＢＬ１９ｃには、レコード管理ＩＤとグループＩＤとが対応付けて登録される。図３５は、グループＩＤ紐付ＴＢＬのデータ構造の一例を示す図である。図３５の例が示すグループＩＤ紐付ＴＢＬ１９ｃは、「レコード管理ＩＤ」、「グループＩＤ」の項目を有する。「レコード管理ＩＤ」の項目には、レコード管理ＩＤが登録される。「グループＩＤ」の項目には、「レコード管理ＩＤ」の項目に登録されたレコード管理ＩＤを含むレコードが属するグループのグループＩＤが登録される。図３５のグループＩＤ紐付ＴＢＬ１９ｃの１番目のレコードは、レコード管理ＩＤ「ａａａ０１」を含むレコードは、グループＩＤ「ｇｒｐ５」が示すグループに属することを示す。
【０１９４】
記憶部１９は、例えば、フラッシュメモリなどの半導体メモリ素子、または、ハードディスク、光ディスクなどの記憶装置である。なお、記憶部１９は、上記の種類の記憶装置に限定されるものではなく、Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ（ＲＡＭ）、Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ（ＲＯＭ）であってもよい。
【０１９５】
制御部２０は、各種の処理手順を規定したプログラムや制御データを格納するための内部メモリを有し、これらによって種々の処理を実行する。図３２に示すように、制御部２０は、収集部９ａと、判別部９ｂと、匿名化部９ｃと、検証部２０ｄと、配布制御部２０ｅと、更新制御部２０ｆと、削除制御部２０ｇと、管理部９ｈとを有する。
【０１９６】
収集部９ａ、判別部９ｂ、匿名化部９ｃおよび管理部９はは、実施例１と同様の構成であるため、説明を省略する。
【０１９７】
検証部２０ｄは、検証対象のレコードの重複数がＮ以上であるか否かを判定することにより、検証対象のレコードが、個人が識別される可能性が高いレコードであるか検証する。
【０１９８】
一態様としては、検証部２０ｄは、匿名化部９ｃにより匿名化データ８ｂが生成された場合には、定義データ８ｃに登録された重複数の閾値「Ｎ」を参照する。例えば、図９に示す定義データ８ｃが記憶部８に記憶されている場合には、検証部２０ｄは、定義データ８ｃの重複数の閾値「２」を参照する。以下、定義データ８ｃに、重複数の閾値として「２」が登録されている場合について説明するが、定義データ８ｃに登録される重複数の閾値「Ｎ」の値は自然数であれば任意の値を採用することができる。
【０１９９】
次に、検証部２０ｄは、定義データ８ｃが示す検証する項目を参照する。例えば、図９に示す定義データ８ｃが記憶部８に記憶されている場合には、検証部２０ｄは、定義データ８ｃの「検証」の項目に「ＹＥＳ」が登録された「性別」、「年齢」、「身長」および「体重」の項目を参照する。
【０２００】
そして、検証部２０ｄは、下記に説明する検証部２０ｄが実行する処理が未処理であるレコードがなくなるまで、未処理のレコードに対して下記に説明する処理を行う。すなわち、検証部２０ｄは、まず、新たに生成され記憶部８に格納された匿名化データ８ｂを記憶部８から取得し、取得した匿名化データ８ｂの未処理のレコードを１つ選択する。例えば、図８に示す匿名化データ８ｂが新たに匿名化部９ｃにより生成され記憶部８に格納された場合には、検証部２０ｄは、匿名化データ８ｂを記憶部８から取得し、番号が「１」のレコードを選択する。
【０２０１】
続いて、検証部２０ｄは、選択したレコードの各項目の登録内容のうち、検証する項目の登録内容の組み合わせを取得する。例えば、図８に示す匿名化データ８ｂの番号が「１」のレコードを選択した場合には、検証部２０ｄは、検証する項目の登録内容「男」、「２０〜２９」、「１６０〜１６９」、「６０〜６９」の組み合わせを取得する。
【０２０２】
そして、検証部２０ｄは、取得した登録内容の組み合わせに対応するグループＩＤがあるか、グループＩＤＴＢＬ１９ａを検索する。検索の結果、取得した登録内容の組み合わせに対応するグループＩＤが得られた場合には、検証部２０ｄは、得られたグループＩＤと、選択したレコードに含まれるレコード管理ＩＤとを対応付けて、グループＩＤ紐付ＴＢＬ１９ｃに登録する。例えば、検証部２０ｄは、登録内容「男」、「２０〜２９」、「１６０〜１６９」、「６０〜６９」の組み合わせに対応するグループＩＤがあるか、図３３に示すグループＩＤＴＢＬ１９ａを検索した場合には、グループＩＤ「ｇｒｐ１」を得る。そして、検証部２０ｄは、得られたグループＩＤ「ｇｒｐ１」と、選択した番号が「１」のレコードのレコード管理ＩＤ「ａａａ０１」とを対応付けてグループＩＤ紐付ＴＢＬ１９ｃに登録して、グループＩＤ紐付ＴＢＬ１９ｃを更新する。
【０２０３】
一方、検索の結果、取得した登録内容の組み合わせに対応するグループＩＤが得られなかった場合には、検証部２０ｄは、新規のグループＩＤを生成する。そして、検証部２０ｄは、生成した新規のグループＩＤと、取得した登録内容の組み合わせとを対応付けて、グループＩＤＴＢＬ１９ａに登録する。すなわち、検証部２０ｄは、グループＩＤＴＢＬ１９ａに、生成した新規のグループＩＤと、取得した登録内容の組み合わせとを含むレコードを追加する。そして、検証部２０ｄは、生成した新規のグループＩＤと、選択したレコードに含まれるレコード管理ＩＤとを対応付けてグループＩＤ紐付ＴＢＬ１９ｃに登録し、グループＩＤ紐付ＴＢＬ１９ｃを更新する。
【０２０４】
グループＩＤ紐付ＴＢＬ１９ｃが更新された場合には、検証部２０ｄは、更新後のグループＩＤ紐付ＴＢＬ１９ｃに登録されたグループＩＤであって、検証部２０ｄが得たグループＩＤ、または、生成した新規のグループＩＤの個数を計数する。例えば、検証部２０ｄは、グループＩＤＴＢＬ１９ａに対して検索を行った結果、グループＩＤ「ｇｒｐ５」が得られた場合に、更新後のグループＩＤ紐付ＴＢＬ１９ｃの登録内容が図３５に示す内容であるときには、次のような処理を行う。すなわち、検証部２０ｄは、図３５の例に示す登録内容から、グループＩＤ「ｇｒｐ５」の個数「２」を計数する。このようにして、検証部２０ｄは、選択したレコードの重複数を算出する。
【０２０５】
そして、検証部２０ｄは、選択したレコードの重複数が、参照した重複数の閾値「Ｎ」以上であるか否かを判定する。
【０２０６】
重複数が「Ｎ」未満である場合には、選択したレコードが、個人が識別される可能性が高いレコードであるため、検証部２０ｄは、選択したレコードに含まれるレコード管理ＩＤをＮＧＩＤＴＢＬ１９ｂに登録する。図３６は、実施例２に係る情報処理装置が実行する処理の一例を説明するための図である。例えば、選択したレコードに含まれるレコード管理ＩＤが「ａａａ０６」である場合には、検証部２０ｄは、図３６に示すように、ＮＧＩＤＴＢＬ１９ｂにレコード管理ＩＤ「ａａａ０６」を登録する。
【０２０７】
一方、重複数が「Ｎ」以上である場合には、検証部２０ｄは、選択したレコードの重複数が、参照した重複数の閾値「Ｎ」であるか否かを判定する。重複数が「Ｎ」である場合には、選択したレコードが新たにサーバ２またはサーバ３から送信されたことによって、選択したレコードが、個人が識別される可能性が高いレコードではなくなったため、検証部２０ｄは、次のような処理を行う。すなわち、検証部２０ｄは、得られたグループＩＤ、または、新規のグループＩＤに対応する全てのレコード管理ＩＤをグループＩＤ紐付ＴＢＬ１９ｃから取得し、取得した全てのレコード管理ＩＤをＮＧＩＤＴＢＬ１９ｂから削除する。そして、検証部２０ｄは、選択したレコードを、個人が識別される可能性が低い「ＯＫ」に分類する。例えば、検証部２０ｄは、制御部２０の内部メモリに展開されたＯＫリストに、選択したレコードを登録する。そして、検証部２０ｄは、取得した匿名化データ８ｂのレコードの中に、未処理のレコードがあるか否かを判定し、未処理のレコードがある場合には、未処理のレコードを１つ選択し、選択した未処理のレコードに対して上述した処理を再び行う。
【０２０８】
配布制御部２０ｅは、匿名化が行われたデータをサーバ４およびサーバ５にネットワーク９１を介して配布する。一態様としては、配布制御部２０ｅは、まず、匿名化部９ｃにより新たに記憶部８に格納された匿名化データ８ａのレコードのレコード管理ＩＤの中に、検証部２０ｄにより新たにＮＧＩＤＴＢＬ１９ｂに登録されたレコード管理ＩＤがあるか否かを判定する。
【０２０９】
新たにＮＧＩＤＴＢＬ１９ｂに登録されたレコード管理ＩＤがある場合には、配布制御部２０ｅは、定義データ８ｃが示す匿名化する項目を参照する。例えば、図９に示す定義データ８ｃが記憶部１９に記憶されている場合には、配布制御部２０ｅは、次のような処理を行う。すなわち、配布制御部２０ｅは、定義データ８ｃの「匿名化」の項目に「ＹＥＳ」が登録された「年齢」、「身長」および「体重」の項目を参照する。そして、配布制御部２０ｅは、新たにＮＧＩＤＴＢＬ１９ｂに登録されたレコード管理ＩＤのうち、未処理のレコード管理ＩＤを１つ選択する。そして、配布制御部２０ｅは、選択したレコード管理ＩＤを含む匿名化データ８ｂのレコードを取得し、取得したレコードの各項目の登録内容の中から、定義データ８ｃが示す匿名化する項目の登録内容を匿名化する。例えば、配布制御部２０ｅは、個人が識別される可能性が低減されるように、登録内容を破棄して各項目に「ｎｕｌｌ」を登録する匿名化を行う。具体例を挙げて説明すると、配布制御部２０ｅは、図６に示すデータの番号が「３」のレコードが示すように、「年齢」、「身長」、「体重」の項目の登録内容を「ｎｕｌｌ」に設定する。そして、配布制御部２０ｅは、新たにＮＧＩＤＴＢＬ１９ｂに登録されたレコード管理ＩＤのうち、未処理のレコード管理ＩＤがあるか否かを判定し、未処理のレコード管理ＩＤがある場合には、未処理のレコード管理ＩＤを１つ選択し、上述した処理を行う。このようにして、配布制御部２０ｅは、新たにＮＧＩＤＴＢＬ１９ｂに登録された全てのレコード管理ＩＤに対応する匿名化データ８ｂのレコードの匿名化を行う匿名化処理を行う。なお、配布制御部２０ｅにおいて行われた匿名化は、統計処理に用いることができるように匿名化部９ｃにより行われた匿名化を「１回目の匿名化」とすると、「２回目の匿名化」となる。また、「２回目の匿名化」を配布制御部２０ｅに代えて匿名化部９ｃが行うこともできる。
【０２１０】
そして、配布制御部２０ｅは、匿名化部９ｃにより「ＯＫ」と分類されたレコードがある場合には、かかるレコードを配布済データＴＢＬ８ｆに格納する。これに加えて、配布制御部２０ｅは、２回目の匿名化が行われたレコードがある場合には、２回目の匿名化のレコードも配布済データＴＢＬ８ｆに格納する。続いて、配布制御部２０ｅは、新たに配布済データＴＢＬ８ｆに格納したデータを取得し、取得したデータがサーバ４およびサーバ５に送信されるように、取得したデータを通信部７に出力する。これにより、例えば、図６の例に示すようなデータがサーバ４およびサーバ５に送信される。
【０２１１】
図３２の説明に戻り、更新制御部２０ｆは、更新データを受信した場合に、サーバ４およびサーバ５に蓄積されたデータのうち、新たに識別される可能性が高くなったレコードや新たに識別される可能性が低くなったデータが更新されるように制御する。
【０２１２】
一態様としては、更新制御部２０ｆは、サーバ２およびサーバ３から送信された更新データを受信すると、更新データに含まれる個人ＩＤを取得し、取得した個人ＩＤに対応するレコード管理ＩＤをＩＤＴＢＬ８ｇから取得する。例えば、図４の例に示す更新データを受信した場合には、更新制御部２０ｆは、更新データに含まれる個人ＩＤ「１０９８」を取得し、図１２の例に示すＩＤＴＢＬ８ｇから、個人ＩＤ「１０９８」に対応するレコード管理ＩＤ「ａａａ０１」を取得する。
【０２１３】
続いて、更新制御部２０ｆは、取得したレコード管理ＩＤに対応するグループＩＤをグループＩＤ紐付ＴＢＬ１９ｃから取得する。例えば、更新制御部２０ｆは、図３５に示すグループＩＤ紐付ＴＢＬ１９ｃから、レコード管理ＩＤ「ａａａ０１」に対応するグループＩＤ「ｇｒｐ５」を取得する。次に、更新制御部２０ｆは、取得したレコード管理ＩＤを含むレコードをグループＩＤ紐付ＴＢＬ１９ｃから削除する。例えば、更新制御部２０ｆは、図３５に示すグループＩＤ紐付ＴＢＬ１９ｃから、レコード管理ＩＤ「ａａａ０１」を含むレコードを削除する。この結果、グループＩＤ紐付ＴＢＬ１９ｃの登録内容は、図３７に示す登録内容となる。なお、図３７は、グループＩＤ紐付ＴＢＬの登録内容の一例を示す図である。そして、更新制御部２０ｆは、グループＩＤ紐付ＴＢＬ１９ｃを参照し、取得したグループＩＤの個数を計数することにより、取得したグループＩＤが示すグループに属するレコードの重複数を算出する。例えば、更新制御部２０ｆは、グループＩＤ「ｇｒｐ５」を取得し、図３７に示すグループＩＤ紐付ＴＢＬ１９ｃを参照した場合には、グループＩＤ「ｇｒｐ５」の個数「１」を算出する。すなわち、更新制御部２０ｆは、グループＩＤ「ｇｒｐ５」が示すグループに属するレコードの重複数「１」を算出する。なお、重複数が「Ｎ−１」である場合には、更新制御部２０ｆが取得したグループＩＤに属するレコードが、個人が識別される可能性が高いレコードとなったことを意味する。
【０２１４】
その後、更新制御部２０ｆは、定義データ８ｃに登録された重複数の閾値「Ｎ」を参照し、算出した重複数が、重複数の閾値「Ｎ」を１つデクリメントした値「Ｎ−１」であるか否かを判定する。ここで、Ｎ＝２の場合に、例えば、更新制御部２０ｆは、取得したグループＩＤに属するレコードの重複数「１」を算出したときには、算出した重複数「１」が、「Ｎ−１」であると判定する。
【０２１５】
算出した重複数が「Ｎ−１」である場合には、更新制御部２０ｆは、個人が識別される可能性が低いレコードとなるようにサーバ４およびサーバ５に蓄積された対応するレコードを更新するように制御する。例えば、更新制御部２０ｆは、取得したグループＩＤに対応するレコード管理ＩＤを、グループＩＤ紐付ＴＢＬ１９ｃから取得する。具体例を挙げて説明すると、更新制御部２０ｆは、図３７に示すグループＩＤ紐付ＴＢＬ１９ｃから、グループＩＤ「ｇｒｐ５」に対応するレコード管理ＩＤ「ａａａ０６」を取得する。そして、更新制御部２０ｆは、取得したレコード管理ＩＤをＮＧＩＤＴＢＬ１９ｂに登録する。例えば、更新制御部２０ｆは、取得したレコード管理ＩＤ「ａａａ０６」を図３４に示すＮＧＩＤＴＢＬ１９ｂに登録する。この結果、ＮＧＩＤＴＢＬ１９ｂの登録内容は、図３６に示す登録内容となる。
【０２１６】
そして、更新制御部２０ｆは、取得したグループＩＤに対応する検証対象の項目の登録内容を、グループＩＤＴＢＬ１９ａから取得する。例えば、更新制御部２０ｆは、図３３に示すグループＩＤＴＢＬ１９ａから、グループＩＤ「ｇｒｐ５」に対応する「男」、「２０〜２９」、「１６０〜１６９」、「６０〜６９」の登録内容を取得する。そして、更新制御部２０ｆは、取得した登録内容と、新たに取得したレコード管理ＩＤとを含むレコードを生成する。例えば、更新制御部２０ｆは、「男」、「２０〜２９」、「１６０〜１６９」、「６０〜６９」の登録内容と、新たに取得したレコード管理ＩＤ「ａａａ０６」とを含むレコードを生成する。そして、更新制御部２０ｆは、定義データ８ｃを参照し、生成したレコードに対して、定義データ８ｃが示す匿名化する項目の登録内容を匿名化する。例えば、更新制御部２０ｆは、生成したレコードに対して、匿名化する項目の登録内容を破棄するように匿名化を行う。具体例を挙げて説明する。更新制御部２０ｆは、レコードの「年齢」、「身長」および「体重」の項目の登録内容を破棄して、各項目に「ｎｕｌｌ」を登録する匿名化を行う。例えば、更新制御部２０ｆは、「男」、「ｎｕｌｌ」、「ｎｕｌｌ」、「ｎｕｌｌ」、「ａａａ０６」の登録内容が各項目に登録された、匿名化されたレコードを生成する。このようにして、更新制御部２０ｆは、生成したレコードの匿名化を行う。なお、更新制御部２０ｆに代えて匿名化部９ｃが、生成したレコードの匿名化を行うこともできる。
【０２１７】
そして、更新制御部２０ｆは、配布済データＴＢＬ８ｆのレコードの中から、更新制御部２０ｆが新たに取得したレコード管理ＩＤを有するレコードを特定する。そして、更新制御部２０ｆは、特定したレコードの検証対象の項目の登録内容が、匿名化されたレコードの検証対象の項目の登録内容となるように、配布済データＴＢＬ８ｆを更新する。例えば、更新制御部２０ｆは、図６に示すデータが配布済データＴＢＬ８ｆに登録されている場合には、レコード管理ＩＤ「ａａａ０６」を有するレコードの登録内容を、図１５に示すように「男」、「ｎｕｌｌ」、「ｎｕｌｌ」、「ｎｕｌｌ」に更新する。
【０２１８】
続いて、更新制御部２０ｆは、配布済データＴＢＬ８ｆにおいて新たに更新されたレコード（匿名化されたレコード）を取得し、取得したレコードがサーバ４およびサーバ５に送信されるように、取得したレコードを通信部７に出力する。これにより、例えば、図１５の例に示すレコード管理ＩＤ「ａａａ０６」のレコードがサーバ４およびサーバ５に送信される。図１５の例に示すレコード管理ＩＤ「ａａａ０６」のレコードを受信したサーバ４およびサーバ５のそれぞれは、ＤＢ４ａ、ＤＢ５ａのそれぞれに蓄積されたレコードのうち、レコード管理ＩＤ「ａａａ０６」のレコードを特定する。そして、サーバ４およびサーバ５のそれぞれは、特定したレコードを、受信したレコードで更新する。これにより、新たに個人が識別される可能性が高くなったサーバ４およびサーバ５のレコードは、個人が識別される可能性が低くなるように更新される。このようにして、更新制御部２０ｆは、算出した重複数が「Ｎ−１」である場合には、新たに個人が識別される可能性が高くなったサーバ４およびサーバ５のレコードを、個人が識別される可能性が低くなるように更新する。
【０２１９】
また、更新制御部２０ｆは、算出した重複数の値に関わらず、下記で説明するような処理を行う。例えば、更新制御部２０ｆは、更新データに含まれる個人ＩＤに対応するレコード管理ＩＤと、取得したグループＩＤに対応する検証対象の項目の登録内容とを含むレコードを生成する。具体例を挙げて説明すると、更新制御部２０ｆは、図４に示す更新データに含まれる個人ＩＤ「１０９８」に対応するレコード管理ＩＤ「ａａａ０１」と、次のような登録内容とを含むレコードを生成する。すなわち、更新制御部２０ｆは、グループＩＤ「ｇｒｐ５」に対応する登録内容「男」、「２０〜２９」、「１６０〜１６９」、「６０〜６９」をも含むレコードを生成する。この結果、図１６の例に示すようなレコードが生成される。そして、更新制御部２０ｆは、生成したレコードの登録内容を、更新データが示す更新内容で更新する。例えば、更新制御部２０ｆは、図４の例に示す更新データを受信し、図１６の例に示すレコードを生成した場合には、図１７の例に示すように、更新データに含まれる更新内容に基づいて、「年齢」の項目に登録された年齢を「３０」に更新する。
【０２２０】
そして、更新制御部２０ｆは、定義データ８ｃを参照し、更新されたレコードの登録内容のうち、定義データ８ｃが示す匿名化する項目の登録内容を匿名化する。例えば、更新制御部２０ｆは、更新されたレコードに対して、匿名化する項目の登録内容をあいまいにするように匿名化を行う。一例としては、更新制御部２０ｆは、図１８に示すように、レコードの「年齢」、「身長」および「体重」の項目の登録内容をあいまいにして、匿名化を行う。これにより、匿名化されたレコードが生成される。
【０２２１】
続いて、更新制御部２０ｆは、匿名化したレコードの各項目の登録内容のうち、検証する項目の登録内容の組み合わせを取得する。例えば、図１８に示すようにレコードを匿名化した場合には、更新制御部２０ｆは、検証する項目の登録内容「男」、「３０〜３９」、「１６０〜１６９」、「６０〜６９」の組み合わせを取得する。
【０２２２】
そして、更新制御部２０ｆは、取得した登録内容の組み合わせに対応するグループＩＤがあるか、グループＩＤＴＢＬ１９ａを検索する。検索の結果、取得した登録内容の組み合わせに対応するグループＩＤが得られた場合には、更新制御部２０ｆは、得られたグループＩＤと、匿名化したレコードに含まれるレコード管理ＩＤとを対応付けて、グループＩＤ紐付ＴＢＬ１９ｃに登録する。例えば、更新制御部２０ｆは、登録内容「男」、「３０〜３９」、「１６０〜１６９」、「６０〜６９」の組み合わせに対応するグループＩＤがあるか、図３３に示すグループＩＤＴＢＬ１９ａを検索した場合には、グループＩＤ「ｇｒｐ４」を得る。そして、更新制御部２０ｆは、得られたグループＩＤ「ｇｒｐ４」と、匿名化したレコードに含まれるレコード管理ＩＤ「ａａａ０１」とを対応付けて、図３８に示すように、グループＩＤ紐付ＴＢＬ１９ｃに登録して、グループＩＤ紐付ＴＢＬ１９ｃを更新する。なお、図３８は、グループＩＤ紐付ＴＢＬの登録内容の一例を示す図である。
【０２２３】
一方、検索の結果、取得した登録内容の組み合わせに対応するグループＩＤが得られなかった場合には、更新制御部２０ｆは、新規のグループＩＤを生成する。そして、更新制御部２０ｆは、生成した新規のグループＩＤと、取得した登録内容の組み合わせとを対応付けて、グループＩＤＴＢＬ１９ａに登録する。すなわち、更新制御部２０ｆは、グループＩＤＴＢＬ１９ａに、生成した新規のグループＩＤと、取得した登録内容の組み合わせとを含むレコードを追加する。そして、更新制御部２０ｆは、生成した新規のグループＩＤと、選択したレコードに含まれるレコード管理ＩＤとを対応付けてグループＩＤ紐付ＴＢＬ１９ｃに登録し、グループＩＤ紐付ＴＢＬ１９ｃを更新する。
【０２２４】
グループＩＤ紐付ＴＢＬ１９ｃが更新された場合には、更新制御部２０ｆは、更新後のグループＩＤ紐付ＴＢＬ１９ｃに登録されたグループＩＤであって、更新制御部２０ｆが得たグループＩＤ、または、生成した新規のグループＩＤの個数を計数する。例えば、更新制御部２０ｆは、グループＩＤＴＢＬ１９ａに対して検索を行った結果、グループＩＤ「ｇｒｐ４」が得られ、更新後のグループＩＤ紐付ＴＢＬ１９ｃの登録内容が図３８に示す内容である場合には、次のような処理を行う。すなわち、更新制御部２０ｆは、図３８の例に示す登録内容から、グループＩＤ「ｇｒｐ４」の個数「２」を計数する。このようにして、更新制御部２０ｆは、得られたグループＩＤ、または、生成した新規のグループＩＤが示すグループに属するレコードの重複数を算出する。
【０２２５】
そして、更新制御部２０ｆは、得られたグループＩＤ、または、生成した新規のグループＩＤが示すグループに属するレコードの重複数が、参照した重複数の閾値「Ｎ」以上であるか否かを判定する。
【０２２６】
重複数が「Ｎ」未満である場合には、得られたグループＩＤ、または、生成した新規のグループＩＤが示すグループに属するレコードが、個人が識別される可能性が高いレコードであるため、更新制御部２０ｆは、次のような処理を行う。すなわち、更新制御部２０ｆは、更新データに含まれる個人ＩＤに対応するレコード管理ＩＤをＮＧＩＤＴＢＬ１９ｂに登録する。
【０２２７】
そして、更新制御部２０ｆは、定義データ８ｃを参照し、新たに匿名化されたレコードに対して、定義データ８ｃが示す匿名化する項目の登録内容を匿名化する。例えば、更新制御部２０ｆは、匿名化されたレコードに対して、匿名化する項目の登録内容を破棄するように匿名化を行う。このようにして、更新制御部２０ｆは、匿名化されたレコードに対して２回目の匿名化を行う。なお、更新制御部２０ｆに代えて匿名化部９ｃが、２回目の匿名化を行うこともできる。
【０２２８】
そして、更新制御部２０ｆは、配布済データＴＢＬ８ｆのレコードの中から、更新データに含まれる個人ＩＤに対応するレコード管理ＩＤを有するレコードを特定する。そして、更新制御部２０ｆは、特定したレコードの検証対象の項目の登録内容が、匿名化されたレコードの検証対象の項目の登録内容となるように、配布済データＴＢＬ８ｆを更新する。
【０２２９】
続いて、更新制御部２０ｆは、配布済データＴＢＬ８ｆにおいて新たに更新されたレコード（匿名化されたレコード）を取得し、取得したレコードがサーバ４およびサーバ５に送信されるように、取得したレコードを通信部７に出力する。これにより、例えば、取得したレコードがサーバ４およびサーバ５に送信される。かかるレコードを受信したサーバ４およびサーバ５のそれぞれは、ＤＢ４ａ、ＤＢ５ａのそれぞれに蓄積されたレコードのうち、受信したレコードに含まれるレコード管理ＩＤを有するレコードを特定する。そして、サーバ４およびサーバ５のそれぞれは、特定したレコードを、受信したレコードで更新する。これにより、サーバ４およびサーバ５のレコードは、更新データに基づいて更新される。
【０２３０】
一方、重複数が「Ｎ」以上である場合には、更新制御部２０ｆは、得られたグループＩＤ、または、生成した新規のグループＩＤが示すグループに属するレコードの重複数が、参照した重複数の閾値「Ｎ」であるか否かを判定する。重複数が「Ｎ」である場合には、レコードが更新されたことによって、更新されたレコードが属するグループに属する全てのレコードが、個人が識別される可能性が高いレコードではなくなったため、更新制御部２０ｆは、次のような処理を行う。すなわち、更新制御部２０ｆは、得られたグループＩＤ、または、新規のグループＩＤに対応する全てのレコード管理ＩＤをグループＩＤ紐付ＴＢＬ１９ｃから取得する。そして、更新制御部２０ｆは、取得した全てのレコード管理ＩＤのうち、更新データに含まれるレコード管理ＩＤ以外のレコード管理ＩＤをＮＧＩＤＴＢＬ１９ｂから削除する。図３９は、実施例２に係る情報処理装置が実行する処理の一例を説明するための図である。例えば、更新制御部２０ｆは、図３８に示すグループＩＤ紐付ＴＢＬ１９ｃから、グループＩＤ「ｇｒｐ４」に対応する全てのレコード管理ＩＤ「ａａａ０１」、「ａａａ１０」を取得する。そして、更新制御部２０ｆは、レコード管理ＩＤ「ａａａ０１」、「ａａａ１０」のうち、更新データに含まれるレコード管理ＩＤ「ａａａ０１」以外のレコード管理ＩＤ「ａａａ１０」をＮＧＩＤＴＢＬ１９ｂから削除する。この結果、ＮＧＩＤＴＢＬ１９ｂは、例えば、図３６に示す登録内容から、図３９に示す登録内容に更新される。
【０２３１】
そして、更新制御部２０ｆは、配布済データＴＢＬ８ｆのレコードの中から、更新制御部２０ｆが新たに取得したレコード管理ＩＤのうち更新データに含まれるレコード管理ＩＤ以外のレコード管理ＩＤを有するレコードを検索する。例えば、更新制御部２０ｆは、新たに取得したレコード管理ＩＤ「ａａａ０１」、「ａａａ１０」のうち、更新データに含まれるレコード管理ＩＤ「ａａａ０１」以外のレコード管理ＩＤ「ａａａ１０」を有するレコードを検索する。続いて、更新制御部２０ｆは、検索の結果得られたレコードの検証対象の項目の登録内容が、新たに匿名化したレコードの検証対象の項目の登録内容となるように、配布済データＴＢＬ８ｆを更新する。例えば、更新制御部２０ｆは、配布済データＴＢＬ８ｆのレコード管理ＩＤ「ａａａ０１」を有するレコードの登録内容「男」、「ｎｕｌｌ」、「ｎｕｌｌ」、「ｎｕｌｌ」を、次のように更新する。すなわち、更新制御部２０ｆは、匿名化したレコードの登録内容「男」、「３０〜３９」、「１６０〜１６９」、「６０〜６９」に更新する。
【０２３２】
続いて、更新制御部２０ｆは、配布済データＴＢＬ８ｆにおいて新たに更新されたレコード（匿名化されたレコード）を取得し、取得したレコードがサーバ４およびサーバ５に送信されるように、取得したレコードを通信部７に出力する。これにより、例えば、図２０の例に示すレコード管理ＩＤ「ａａａ１０」のレコードがサーバ４およびサーバ５に送信される。図２０の例に示すレコード管理ＩＤ「ａａａ１０」のレコードを受信したサーバ４およびサーバ５のそれぞれは、ＤＢ４ａ、ＤＢ５ａのそれぞれに蓄積されたレコードのうち、レコード管理ＩＤ「ａａａ１０」のレコードを特定する。そして、サーバ４およびサーバ５のそれぞれは、特定したレコードを、受信したレコードで更新する。これにより、新たに個人が識別される可能性が低くなったサーバ４およびサーバ５のレコードは、統計処理などの各種の処理に用いられることが可能となるように更新される。このようにして、更新制御部２０ｆは、重複数が「Ｎ」である場合には、新たに個人が識別される可能性が低くなったサーバ４およびサーバ５のレコードを、統計処理などの各種の処理に用いられることが可能となるように更新する。
【０２３３】
また、更新制御部２０ｆは、重複数が「Ｎ」であるか否かの判定結果に関わらず、重複数が「Ｎ」以上である場合には、次の処理を行う。すなわち、更新制御部２０ｆは、配布済データＴＢＬ８ｆのレコードのうち、更新制御部２０ｆが新たに匿名化したレコードのレコード管理ＩＤを有するレコードを特定する。そして、更新制御部２０ｆは、特定したレコードの検証対象の項目の登録内容が、新たに匿名化したレコードの検証対象の項目の登録内容となるように、配布済データＴＢＬ８ｆを更新する。例えば、更新制御部２０ｆは、図２０に示すデータが配布済データＴＢＬ８ｆに登録されている場合に、図１８の例に示す匿名化されたレコードを生成した場合には、次のような処理を行う。すなわち、更新制御部２０ｆは、配布済データＴＢＬ８ｆのレコード管理ＩＤ「ａａａ０１」を有するレコードの年齢の登録内容を、図２１に示すように、「３０〜３９」に更新する。
【０２３４】
続いて、更新制御部２０ｆは、配布済データＴＢＬ８ｆにおいて新たに更新されたレコードを取得し、取得したレコードがサーバ４およびサーバ５に送信されるように、取得したレコードを通信部７に出力する。これにより、例えば、図２１の例に示すレコード管理ＩＤ「ａａａ０１」のレコードがサーバ４およびサーバ５に送信される。図２１の例に示すレコード管理ＩＤ「ａａａ０１」のレコードを受信したサーバ４およびサーバ５のそれぞれは、ＤＢ４ａ、ＤＢ５ａのそれぞれに蓄積されたレコードのうち、レコード管理ＩＤ「ａａａ０１」のレコードを特定する。そして、サーバ４およびサーバ５のそれぞれは、特定したレコードを、受信したレコードで更新する。このようにして、更新制御部２０ｆは、サーバ４およびサーバ５のレコードを更新データに基づいて更新することができる。
【０２３５】
図３２の説明に戻り、削除制御部２０ｇは、削除データを受信した場合に、サーバ４およびサーバ５に蓄積されたデータのうち、新たに識別される可能性が高くなったレコードが更新されるように制御する。
【０２３６】
一態様としては、削除制御部２０ｇは、サーバ２およびサーバ３から送信された削除データを受信すると、削除データに含まれる個人ＩＤを取得し、取得した個人ＩＤに対応するレコード管理ＩＤをＩＤＴＢＬ８ｇから取得する。例えば、図５の例に示す削除データを受信した場合には、削除制御部２０ｇは、削除データに含まれる個人ＩＤ「１０９８」を取得し、図１２の例に示すＩＤＴＢＬ８ｇから、個人ＩＤ「１０９８」に対応するレコード管理ＩＤ「ａａａ０１」を取得する。
【０２３７】
続いて、削除制御部２０ｇは、取得したレコード管理ＩＤに対応するグループＩＤをグループＩＤ紐付ＴＢＬ１９ｃから取得する。例えば、削除制御部２０ｇは、図３５に示すグループＩＤ紐付ＴＢＬ１９ｃから、レコード管理ＩＤ「ａａａ０１」に対応するグループＩＤ「ｇｒｐ５」を取得する。次に、削除制御部２０ｇは、取得したレコード管理ＩＤを含むレコードをグループＩＤ紐付ＴＢＬ１９ｃから削除する。例えば、削除制御部２０ｇは、図３５に示すグループＩＤ紐付ＴＢＬ１９ｃから、レコード管理ＩＤ「ａａａ０１」を含むレコードを削除する。この結果、グループＩＤ紐付ＴＢＬ１９ｃの登録内容は、図３７に示す登録内容となる。そして、削除制御部２０ｇは、グループＩＤ紐付ＴＢＬ１９ｃを参照し、取得したグループＩＤの個数を計数することにより、取得したグループＩＤが示すグループに属するレコードの重複数を算出する。例えば、削除制御部２０ｇは、グループＩＤ「ｇｒｐ５」を取得し、図３７に示すグループＩＤ紐付ＴＢＬ１９ｃを参照した場合には、グループＩＤ「ｇｒｐ５」の個数「１」を算出する。すなわち、削除制御部２０ｇは、グループＩＤ「ｇｒｐ５」が示すグループに属するレコードの重複数「１」を算出する。なお、重複数が「Ｎ−１」である場合には、削除制御部２０ｇが取得したグループＩＤに属するレコードが、個人が識別される可能性が高いレコードとなったことを意味する。
【０２３８】
その後、削除制御部２０ｇは、定義データ８ｃに登録された重複数の閾値「Ｎ」を参照し、算出した重複数が、重複数の閾値「Ｎ」を１つデクリメントした値「Ｎ−１」であるか否かを判定する。ここで、Ｎ＝２の場合に、例えば、削除制御部２０ｇは、取得したグループＩＤに属するレコードの重複数「１」を算出したときには、算出した重複数「１」が、「Ｎ−１」であると判定する。
【０２３９】
算出した重複数が「Ｎ−１」である場合には、削除制御部２０ｇは、個人が識別される可能性が低いレコードとなるようにサーバ４およびサーバ５に蓄積された対応するレコードを更新するように制御する。例えば、削除制御部２０ｇは、取得したグループＩＤに対応するレコード管理ＩＤを、グループＩＤ紐付ＴＢＬ１９ｃから取得する。具体例を挙げて説明すると、削除制御部２０ｇは、図３７に示すグループＩＤ紐付ＴＢＬ１９ｃから、グループＩＤ「ｇｒｐ５」に対応するレコード管理ＩＤ「ａａａ０６」を取得する。そして、削除制御部２０ｇは、取得したレコード管理ＩＤをＮＧＩＤＴＢＬ１９ｂに登録する。例えば、削除制御部２０ｇは、取得したレコード管理ＩＤ「ａａａ０６」を図３４に示すＮＧＩＤＴＢＬ１９ｂに登録する。この結果、ＮＧＩＤＴＢＬ１９ｂの登録内容は、図３６に示す登録内容となる。
【０２４０】
そして、削除制御部２０ｇは、取得したグループＩＤに対応する検証対象の項目の登録内容を、グループＩＤＴＢＬ１９ａから取得する。例えば、削除制御部２０ｇは、図３３に示すグループＩＤＴＢＬ１９ａから、グループＩＤ「ｇｒｐ５」に対応する「男」、「２０〜２９」、「１６０〜１６９」、「６０〜６９」の登録内容を取得する。そして、削除制御部２０ｇは、取得した登録内容と、新たに取得したレコード管理ＩＤとを含むレコードを生成する。例えば、削除制御部２０ｇは、「男」、「２０〜２９」、「１６０〜１６９」、「６０〜６９」の登録内容と、新たに取得したレコード管理ＩＤ「ａａａ０６」とを含むレコードを生成する。そして、削除制御部２０ｇは、定義データ８ｃを参照し、生成したレコードに対して、定義データ８ｃが示す匿名化する項目の登録内容を匿名化する。例えば、削除制御部２０ｇは、生成したレコードに対して、匿名化する項目の登録内容を破棄するように匿名化を行う。具体例を挙げて説明する。削除制御部２０ｇは、レコードの「年齢」、「身長」および「体重」の項目の登録内容を破棄して、各項目に「ｎｕｌｌ」を登録する匿名化を行う。例えば、削除制御部２０ｇは、「男」、「ｎｕｌｌ」、「ｎｕｌｌ」、「ｎｕｌｌ」、「ａａａ０６」の登録内容が各項目に登録された、匿名化されたレコードを生成する。このようにして、削除制御部２０ｇは、生成したレコードの匿名化を行う。なお、削除制御部２０ｇに代えて匿名化部９ｃが、生成したレコードの匿名化を行うこともできる。
【０２４１】
そして、削除制御部２０ｇは、配布済データＴＢＬ８ｆのレコードの中から、削除制御部２０ｇが新たに取得したレコード管理ＩＤを有するレコードを特定する。そして、削除制御部２０ｇは、特定したレコードの検証対象の項目の登録内容が、匿名化されたレコードの検証対象の項目の登録内容となるように、配布済データＴＢＬ８ｆを更新する。例えば、削除制御部２０ｇは、図６に示すデータが配布済データＴＢＬ８ｆに登録されている場合には、レコード管理ＩＤ「ａａａ０６」を有するレコードの登録内容を、図１５に示すように「男」、「ｎｕｌｌ」、「ｎｕｌｌ」、「ｎｕｌｌ」に更新する。
【０２４２】
続いて、削除制御部２０ｇは、配布済データＴＢＬ８ｆにおいて新たに更新されたレコード（匿名化されたレコード）を取得し、取得したレコードがサーバ４およびサーバ５に送信されるように、取得したレコードを通信部７に出力する。これにより、例えば、図１５の例に示すレコード管理ＩＤ「ａａａ０６」のレコードがサーバ４およびサーバ５に送信される。図１５の例に示すレコード管理ＩＤ「ａａａ０６」のレコードを受信したサーバ４およびサーバ５のそれぞれは、ＤＢ４ａ、ＤＢ５ａのそれぞれに蓄積されたレコードのうち、レコード管理ＩＤ「ａａａ０６」のレコードを特定する。そして、サーバ４およびサーバ５のそれぞれは、特定したレコードを、受信したレコードで更新する。これにより、新たに個人が識別される可能性が高くなったサーバ４およびサーバ５のレコードは、個人が識別される可能性が低くなるように更新される。このようにして、削除制御部２０ｇは、算出した重複数が「Ｎ−１」である場合には、新たに個人が識別される可能性が高くなったサーバ４およびサーバ５のレコードを、個人が識別される可能性が低くなるように更新する。
【０２４３】
また、削除制御部２０ｇは、取得した重複数の値に関わらず、下記で説明するような処理を行う。例えば、削除制御部２０ｇは、配布済データＴＢＬ８ｆのレコードのうち、削除データに含まれる個人ＩＤに対応するレコード管理ＩＤを有するレコードを特定し、特定したレコードを削除する。
【０２４４】
続いて、削除制御部２０ｇは、削除データに含まれる個人ＩＤに対応するレコード管理ＩＤを含むレコードを削除する指示をサーバ４およびサーバ５に送信すべく、かかる指示を通信部７に送信する。すなわち、削除制御部２０ｇは、削除データが示すレコードを削除する指示を通信部７に送信する。これにより、かかる指示がサーバ４およびサーバ５に送信される。指示を受信したサーバ４およびサーバ５のそれぞれは、ＤＢ４ａ、ＤＢ５ａのそれぞれに蓄積されたレコードのうち、指示が示すレコード管理ＩＤを含むレコードを特定し、特定したレコードを削除する。
【０２４５】
制御部２０は、ＡＳＩＣなどの集積回路である。また、制御部２０は、ＦＰＧＡであってもよい。また、制御部２０は、ＣＰＵなどの電子回路であってもよい。さらに、制御部２０は、ＭＰＵであってもよい。
【０２４６】
次に、本実施例に係る情報処理装置が実行する処理の流れを説明する。図４０は、実施例２に係る制御処理の手順を示すフローチャートである。
【０２４７】
図４０に示すように、収集部９ａは、ネットワーク９０を介してサーバ２およびサーバ３から送信される各種のデータを収集する（Ｓ１０１）。
【０２４８】
続いて、判別部９ｂは、収集部９ａにより収集されたデータの種類が、匿名化の対象のデータであるか否かを判定する（Ｓ１０２）。匿名化の対象のデータである場合（Ｓ１０２肯定）には、判別部９ｂは、匿名化の対象のデータに含まれる個人ＩＤを取得し、取得した個人ＩＤに対応するレコード管理ＩＤを生成する。そして、判別部９ｂは、取得した個人ＩＤを破棄し、匿名化の対象のデータにレコード管理ＩＤを登録して、匿名化の対象のデータを更新する（Ｓ１０３）。
【０２４９】
そして、判別部９ｂは、ＩＤＴＢＬ８ｇに、取得した個人ＩＤと、生成したレコード管理ＩＤとを対応付けて登録して、ＩＤＴＢＬ８ｇを更新する（Ｓ１０４）。
【０２５０】
続いて、匿名化部９ｃは、定義データ８ｃを参照し、更新された匿名化の対象のデータの各項目の登録内容の中から、定義データ８ｃが示す破棄する項目の登録内容を破棄する。そして、匿名化部９ｃは、更新された匿名化の対象のデータの各項目の登録内容のうち破棄されなかった項目の登録内容の中から、定義データ８ｃが示す匿名化する項目の登録内容を匿名化する。そして、匿名化部９ｃは、匿名化の結果得られた匿名化データ８ｂを記憶部８に格納する（Ｓ１０５）。そして、検証部２０ｄは、データ検証処理を実行する（Ｓ１１０６）。
【０２５１】
図４１は、実施例２に係るデータ検証処理の手順を示すフローチャートである。図４１に示すように、検証部２０ｄは、定義データ８ｃに登録された重複数の閾値「Ｎ」を参照する（Ｓ１２０１）。そして、検証部２０ｄは、定義データ８ｃが示す検証する項目を参照する（Ｓ１２０２）。
【０２５２】
続いて、検証部２０ｄは、新たに生成され記憶部８に格納された匿名化データ８ｂを記憶部８から取得し、取得した匿名化データ８ｂの未処理のレコードを１つ選択する（Ｓ１２０３）。そして、検証部２０ｄは、選択したレコードの各項目の登録内容のうち、検証する項目の登録内容の組み合わせを取得する（Ｓ１２０４）。
【０２５３】
その後、検証部２０ｄは、取得した登録内容の組み合わせに対応するグループＩＤがあるか、グループＩＤＴＢＬ１９ａを検索する（Ｓ１２０５）。検索の結果、取得した登録内容の組み合わせに対応するグループＩＤが得られた場合（Ｓ１２０５肯定）には、検証部２０ｄは、次のような処理を行う。すなわち、検証部２０ｄは、得られたグループＩＤと、選択したレコードに含まれるレコード管理ＩＤとを対応付けて、グループＩＤ紐付ＴＢＬ１９ｃに登録して、グループＩＤ紐付ＴＢＬ１９ｃを更新する（Ｓ１２０８）。
【０２５４】
一方、検索の結果、取得した登録内容の組み合わせに対応するグループＩＤが得られなかった場合（Ｓ１２０５否定）には、検証部２０ｄは、新規のグループＩＤを生成する（Ｓ１２０６）。そして、検証部２０ｄは、生成した新規のグループＩＤと、取得した登録内容の組み合わせとを対応付けて、グループＩＤＴＢＬ１９ａに登録する（Ｓ１２０７）。そして、検証部２０ｄは、生成した新規のグループＩＤと、選択したレコードに含まれるレコード管理ＩＤとを対応付けてグループＩＤ紐付ＴＢＬ１９ｃに登録し、グループＩＤ紐付ＴＢＬ１９ｃを更新する（Ｓ１２０８）。
【０２５５】
続いて、検証部２０ｄは、更新後のグループＩＤ紐付ＴＢＬ１９ｃに登録されたグループＩＤであって、検証部２０ｄが得たグループＩＤ、または、生成した新規のグループＩＤの個数を計数して、選択したレコードの重複数を算出する（Ｓ１２０９）。
【０２５６】
そして、検証部２０ｄは、選択したレコードの重複数が、参照した重複数の閾値「Ｎ」以上であるか否かを判定する（Ｓ１２１０）。
【０２５７】
重複数が「Ｎ」未満である場合（Ｓ１２１０否定）には、検証部２０ｄは、選択したレコードに含まれるレコード管理ＩＤをＮＧＩＤＴＢＬ１９ｂに登録する（Ｓ１２１１）。そして、検証部２０ｄは、取得した匿名化データ８ｂのレコードのうち、未処理のレコードがあるか否かを判定する（Ｓ１２１２）。未処理のレコードがある場合（Ｓ１２１２肯定）には、検証部２０ｄは、Ｓ１２０３に戻り、未処理のレコードを１つ選択して、上述した処理を再び行う。一方、未処理のレコードがない場合（Ｓ１２１２否定）には、検証部２０ｄは、処理結果を内部メモリに格納し、リターンする。
【０２５８】
一方、重複数が「Ｎ」以上である場合（Ｓ１２１０肯定）には、検証部２０ｄは、選択したレコードの重複数が、参照した重複数の閾値「Ｎ」であるか否かを判定する（Ｓ１２１３）。重複数が「Ｎ」でない場合（Ｓ１２１３否定）には、検証部２０ｄは、Ｓ１２１５に進む。一方、重複数が「Ｎ」である場合（Ｓ１２１３肯定）には、検証部２０ｄは、次の処理を行う。すなわち、検証部２０ｄは、得られたグループＩＤ、または、新規のグループＩＤに対応する全てのレコード管理ＩＤをグループＩＤ紐付ＴＢＬ１９ｃから取得し、取得した全てのレコード管理ＩＤをＮＧＩＤＴＢＬ１９ｂから削除する（Ｓ１２１４）。
【０２５９】
そして、検証部２０ｄは、選択したレコードを、個人が識別される可能性が低い「ＯＫ」に分類し（Ｓ１２１５）、Ｓ１２１２に進む。
【０２６０】
図４０の説明に戻り、配布制御部２０ｅは、データ配布処理を実行する（Ｓ１１０７）。図４２は、実施例２に係るデータ配布処理の手順を示すフローチャートである。図４２に示すように、配布制御部２０ｅは、匿名化部９ｃにより新たに記憶部８に格納された匿名化データ８ａのレコードのレコード管理ＩＤの中に、検証部２０ｄにより新たにＮＧＩＤＴＢＬ１９ｂに登録されたレコード管理ＩＤがあるか否かを判定する（Ｓ１３０１）。匿名化データ８ａのレコードのレコード管理ＩＤの中に、ＮＧＩＤＴＢＬ１９ｂに登録されたレコード管理ＩＤがない場合（Ｓ１３０１否定）には、配布制御部２０ｅは、Ｓ１３０６へ進む。一方、匿名化データ８ａのレコードのレコード管理ＩＤの中に、ＮＧＩＤＴＢＬ１９ｂに登録されたレコード管理ＩＤがない場合（Ｓ１３０１肯定）には、配布制御部２０ｅは、次のような処理を行う。すなわち、配布制御部２０ｅは、定義データ８ｃが示す匿名化する項目を参照する（Ｓ１３０２）。
【０２６１】
そして、配布制御部２０ｅは、新たにＮＧＩＤＴＢＬ１９ｂに登録されたレコード管理ＩＤのうち、未処理のレコード管理ＩＤを１つ選択する（Ｓ１３０３）。そして、配布制御部２０ｅは、選択したレコード管理ＩＤを含む匿名化データ８ｂのレコードを取得し、取得したレコードの各項目の登録内容の中から、定義データ８ｃが示す匿名化する項目の登録内容を匿名化する（Ｓ１３０４）。そして、配布制御部２０ｅは、新たにＮＧＩＤＴＢＬ１９ｂに登録されたレコード管理ＩＤのうち、未処理のレコード管理ＩＤがあるか否かを判定する（Ｓ１３０５）。未処理のレコード管理ＩＤがある場合（Ｓ１３０５肯定）には、配布制御部２０ｅは、Ｓ１３０３に戻り、未処理のレコード管理ＩＤを１つ選択し、上述した処理を再び行う。
【０２６２】
一方、未処理のレコード管理ＩＤがない場合（Ｓ１３０５否定）には、配布制御部２０ｅは、次のような処理を行う。すなわち、配布制御部２０ｅは、匿名化部９ｃにより「ＯＫ」と分類されたレコードがある場合には、かかるレコードを配布済データＴＢＬ８ｆに格納する。これに加えて、配布制御部２０ｅは、２回目の匿名化が行われたレコードがある場合には、２回目の匿名化のレコードも配布済データＴＢＬ８ｆに格納する（Ｓ１３０６）。続いて、配布制御部２０ｅは、新たに配布済データＴＢＬ８ｆに格納したデータを取得し、取得したデータがサーバ４およびサーバ５に送信されるように、取得したデータを通信部７に出力する（Ｓ１３０７）。そして、配布制御部２０ｅは、処理結果を内部メモリに格納し、リターンする。
【０２６３】
図４０の説明に戻り、匿名化の対象のデータでない場合（Ｓ１０２否定）には、判別部９ｂは、収集部９ａにより収集されたデータの種類が、更新データであるか否かを判定する（Ｓ１０８）。更新データである場合（Ｓ１０８肯定）には、更新制御部２０ｆは、更新制御処理を実行し（Ｓ１１０９）、処理を終了する。
【０２６４】
図４３は、実施例２に係る更新制御処理の手順を示すフローチャートである。図４３に示すように、更新制御部２０ｆは、第１の重複数取得処理を実行する（Ｓ１４０１）。
【０２６５】
図４４は、実施例２に係る第１の重複数取得処理の手順を示すフローチャートである。図４４に示すように、更新制御部２０ｆは、更新データに含まれる個人ＩＤを取得し、取得した個人ＩＤに対応するレコード管理ＩＤをＩＤＴＢＬ８ｇから取得する（Ｓ１５０１）。
【０２６６】
続いて、更新制御部２０ｆは、取得したレコード管理ＩＤに対応するグループＩＤをグループＩＤ紐付ＴＢＬ１９ｃから取得する（Ｓ１５０２）。次に、更新制御部２０ｆは、取得したレコード管理ＩＤを含むレコードをグループＩＤ紐付ＴＢＬ１９ｃから削除する（Ｓ１５０３）。そして、更新制御部２０ｆは、グループＩＤ紐付ＴＢＬ１９ｃを参照し、取得したグループＩＤの個数を計数することにより、取得したグループＩＤが示すグループに属するレコードの重複数を算出し（Ｓ１５０４）、処理結果を内部メモリに格納し、リターンする。
【０２６７】
図４３の説明に戻り、更新制御部２０ｆは、定義データ８ｃに登録された重複数の閾値「Ｎ」を参照し、算出した重複数が、重複数の閾値「Ｎ」を１つデクリメントした値「Ｎ−１」であるか否かを判定する（Ｓ１４０２）。
【０２６８】
取得した重複数が「Ｎ−１」でない場合（Ｓ１４０２否定）には、更新制御部２０ｆは、Ｓ１４０４へ進む。一方、取得した重複数が「Ｎ−１」である場合（Ｓ１４０２肯定）には、更新制御部２０ｆは、第１の匿名化依頼処理を実行する（Ｓ１４０３）。
【０２６９】
図４５は、実施例２に係る第１の匿名化依頼処理の手順を示すフローチャートである。図４５に示すように、更新制御部２０ｆは、取得したグループＩＤに対応するレコード管理ＩＤを、グループＩＤ紐付ＴＢＬ１９ｃから取得する（Ｓ１６０１）。そして、更新制御部２０ｆは、取得したレコード管理ＩＤをＮＧＩＤＴＢＬ１９ｂに登録する（Ｓ１６０２）。
【０２７０】
そして、更新制御部２０ｆは、取得したグループＩＤに対応する検証対象の項目の登録内容を、グループＩＤＴＢＬ１９ａから取得し、取得した登録内容と、新たに取得したレコード管理ＩＤとを含むレコードを生成する。続いて、更新制御部２０ｆは、定義データ８ｃを参照し、生成したレコードに対して、定義データ８ｃが示す匿名化する項目の登録内容を匿名化する（Ｓ１６０３）。
【０２７１】
そして、更新制御部２０ｆは、配布済データＴＢＬ８ｆのレコードの中から、更新制御部２０ｆが新たに取得したレコード管理ＩＤを有するレコードを特定する。続いて、更新制御部２０ｆは、特定したレコードの検証対象の項目の登録内容が、匿名化されたレコードの検証対象の項目の登録内容となるように、配布済データＴＢＬ８ｆを更新する（Ｓ１６０４）。
【０２７２】
その後、更新制御部２０ｆは、配布済データＴＢＬ８ｆにおいて新たに更新されたレコード（匿名化されたレコード）を取得し、取得したレコードがサーバ４およびサーバ５に送信されるように、取得したレコードを通信部７に出力する（Ｓ１６０５）。そして、更新制御部２０ｆは、処理結果を内部メモリに格納し、リターンする。
【０２７３】
図４３の説明に戻り、更新制御部２０ｆは、更新依頼処理を実行し（Ｓ１４０４）、処理結果を内部メモリに格納し、リターンする。
【０２７４】
図４６は、実施例２に係る更新依頼処理の手順を示すフローチャートである。図４６に示すように、更新制御部２０ｆは、更新データに含まれる個人ＩＤに対応するレコード管理ＩＤと、取得したグループＩＤに対応する検証対象の項目の登録内容とを含むレコードを生成する。そして、更新制御部２０ｆは、生成したレコードの登録内容を、更新データが示す更新内容で更新する（Ｓ１７０１）。
【０２７５】
そして、更新制御部２０ｆは、定義データ８ｃを参照し、更新されたレコードの登録内容のうち、定義データ８ｃが示す匿名化する項目の登録内容を匿名化する（Ｓ１７０２）。続いて、更新制御部２０ｆは、匿名化したレコードの各項目の登録内容のうち、検証する項目の登録内容の組み合わせを取得する（Ｓ１７０３）。
【０２７６】
そして、更新制御部２０ｆは、取得した登録内容の組み合わせに対応するグループＩＤがあるか、グループＩＤＴＢＬ１９ａを検索する（Ｓ１７０４）。検索の結果、取得した登録内容の組み合わせに対応するグループＩＤが得られた場合（Ｓ１７０４肯定）には、更新制御部２０ｆは、次のような処理を行う。すなわち、更新制御部２０ｆは、得られたグループＩＤと、匿名化したレコードに含まれるレコード管理ＩＤとを対応付けて、グループＩＤ紐付ＴＢＬ１９ｃに登録する（Ｓ１７０７）。そして、更新制御部２０ｆは、Ｓ１７０８に進む。
【０２７７】
一方、検索の結果、取得した登録内容の組み合わせに対応するグループＩＤが得られなかった場合（Ｓ１７０４否定）には、更新制御部２０ｆは、新規のグループＩＤを生成する（Ｓ１７０５）。そして、更新制御部２０ｆは、生成した新規のグループＩＤと、取得した登録内容の組み合わせとを対応付けて、グループＩＤＴＢＬ１９ａに登録する（Ｓ１７０６）。そして、更新制御部２０ｆは、生成した新規のグループＩＤと、選択したレコードに含まれるレコード管理ＩＤとを対応付けてグループＩＤ紐付ＴＢＬ１９ｃに登録する（Ｓ１７０７）。
【０２７８】
そして、更新制御部２０ｆは、更新後のグループＩＤ紐付ＴＢＬ１９ｃに登録されたグループＩＤであって、更新制御部２０ｆが得たグループＩＤ、または、生成した新規のグループＩＤの個数を計数して、重複数を算出する（Ｓ１７０８）。
【０２７９】
そして、更新制御部２０ｆは、得られたグループＩＤ、または、生成した新規のグループＩＤが示すグループに属するレコードの重複数が、参照した重複数の閾値「Ｎ」以上であるか否かを判定する（Ｓ１７０９）。
【０２８０】
重複数が「Ｎ」未満である場合（Ｓ１７０９否定）には、更新制御部２０ｆは、更新データに含まれる個人ＩＤに対応するレコード管理ＩＤをＮＧＩＤＴＢＬ１９ｂに登録する（Ｓ１７１０）。
【０２８１】
そして、更新制御部２０ｆは、定義データ８ｃを参照し、新たに匿名化されたレコードに対して、定義データ８ｃが示す匿名化する項目の登録内容を匿名化する（Ｓ１７１１）。
【０２８２】
そして、更新制御部２０ｆは、配布済データＴＢＬ８ｆのレコードの中から、更新データに含まれる個人ＩＤに対応するレコード管理ＩＤを有するレコードを特定する。そして、更新制御部２０ｆは、特定したレコードの検証対象の項目の登録内容が、匿名化されたレコードの検証対象の項目の登録内容となるように、配布済データＴＢＬ８ｆを更新する（Ｓ１７１２）。
【０２８３】
続いて、更新制御部２０ｆは、配布済データＴＢＬ８ｆにおいて新たに更新されたレコード（匿名化されたレコード）を取得し、取得したレコードがサーバ４およびサーバ５に送信されるように、取得したレコードを通信部７に出力する（Ｓ１７１３）。そして、更新制御部２０ｆは、処理結果を内部メモリに格納し、リターンする。
【０２８４】
一方、重複数が「Ｎ」以上である場合（Ｓ１７０９肯定）には、更新制御部２０ｆは、次のような処理を行う。すなわち、更新制御部２０ｆは、得られたグループＩＤ、または、生成した新規のグループＩＤが示すグループに属するレコードの重複数が、参照した重複数の閾値「Ｎ」であるか否かを判定する（Ｓ１７１４）。重複数が「Ｎ」である場合（Ｓ１７１４肯定）には、更新制御部２０ｆは、得られたグループＩＤ、または、新規のグループＩＤに対応する全てのレコード管理ＩＤをグループＩＤ紐付ＴＢＬ１９ｃから取得する（Ｓ１７１５）。そして、更新制御部２０ｆは、取得した全てのレコード管理ＩＤのうち、更新データに含まれるレコード管理ＩＤ以外のレコード管理ＩＤをＮＧＩＤＴＢＬ１９ｂから削除する（Ｓ１７１６）。
【０２８５】
そして、更新制御部２０ｆは、配布済データＴＢＬ８ｆのレコードの中から、更新制御部２０ｆが新たに取得したレコード管理ＩＤのうち更新データに含まれるレコード管理ＩＤ以外のレコード管理ＩＤを有するレコードを検索する。続いて、更新制御部２０ｆは、検索の結果得られたレコードの検証対象の項目の登録内容が、新たに匿名化したレコードの検証対象の項目の登録内容となるように、配布済データＴＢＬ８ｆを更新する（Ｓ１７１７）。
【０２８６】
続いて、更新制御部２０ｆは、配布済データＴＢＬ８ｆにおいて新たに更新されたレコード（匿名化されたレコード）を取得し、取得したレコードがサーバ４およびサーバ５に送信されるように、取得したレコードを通信部７に出力する（Ｓ１７１８）。
【０２８７】
そして、更新制御部２０ｆは、配布済データＴＢＬ８ｆのレコードのうち、更新制御部２０ｆが新たに匿名化したレコードのレコード管理ＩＤを有するレコードを特定する。そして、更新制御部２０ｆは、特定したレコードの検証対象の項目の登録内容が、新たに匿名化したレコードの検証対象の項目の登録内容となるように、配布済データＴＢＬ８ｆを更新する（Ｓ１７１９）。
【０２８８】
続いて、更新制御部２０ｆは、配布済データＴＢＬ８ｆにおいて新たに更新されたレコードを取得し、取得したレコードがサーバ４およびサーバ５に送信されるように、取得したレコードを通信部７に出力する（Ｓ１７２０）。そして、更新制御部２０ｆは、処理結果を内部メモリに格納し、リターンする。
【０２８９】
図４０の説明に戻り、更新データでない場合（Ｓ１０８否定）には、判別部９ｂは、収集部９ａにより収集されたデータの種類が、削除データであるか否かを判定する（Ｓ１１０）。削除データでない場合（Ｓ１１０否定）には、処理を終了する。一方、削除データである場合（Ｓ１１０肯定）には、削除制御部２０ｇは、削除制御処理を実行し（Ｓ１１１１）、処理を終了する。
【０２９０】
図４７は、実施例２に係る削除制御処理の手順を示すフローチャートである。図４７に示すように、削除制御部２０ｇは、第２の重複数取得処理を実行する（Ｓ１８０１）。
【０２９１】
図４８は、実施例２に係る第２の重複数取得処理の手順を示すフローチャートである。図４８に示すように、削除制御部２０ｇは、削除データに含まれる個人ＩＤを取得し、取得した個人ＩＤに対応するレコード管理ＩＤをＩＤＴＢＬ８ｇから取得する（Ｓ１９０１）。
【０２９２】
続いて、削除制御部２０ｇは、取得したレコード管理ＩＤに対応するグループＩＤをグループＩＤ紐付ＴＢＬ１９ｃから取得する（Ｓ１９０２）。次に、削除制御部２０ｇは、取得したレコード管理ＩＤを含むレコードをグループＩＤ紐付ＴＢＬ１９ｃから削除する（Ｓ１９０３）。そして、削除制御部２０ｇは、グループＩＤ紐付ＴＢＬ１９ｃを参照し、取得したグループＩＤの個数を計数することにより、取得したグループＩＤが示すグループに属するレコードの重複数を算出する（Ｓ１９０４）。そして、削除制御部２０ｇは、処理結果を内部メモリに格納し、リターンする。
【０２９３】
図４７の説明に戻り、削除制御部２０ｇは、定義データ８ｃに登録された重複数の閾値「Ｎ」を参照し、算出した重複数が、重複数の閾値「Ｎ」を１つデクリメントした値「Ｎ−１」であるか否かを判定する（Ｓ１８０２）。取得した重複数が、「Ｎ−１」でない場合（Ｓ１８０２否定）には、Ｓ１８０４へ進む。
【０２９４】
一方、取得した重複数が「Ｎ−１」である場合（Ｓ１８０２肯定）には、削除制御部２０ｇは、第２の匿名化依頼処理を実行する（Ｓ１８０３）。図４９は、実施例２に係る第２の匿名化依頼処理の手順を示すフローチャートである。図４９に示すように、削除制御部２０ｇは、取得したグループＩＤに対応するレコード管理ＩＤを、グループＩＤ紐付ＴＢＬ１９ｃから取得する（Ｓ２００１）。そして、削除制御部２０ｇは、取得したレコード管理ＩＤをＮＧＩＤＴＢＬ１９ｂに登録する（Ｓ２００２）。
【０２９５】
そして、削除制御部２０ｇは、取得したグループＩＤに対応する検証対象の項目の登録内容を、グループＩＤＴＢＬ１９ａから取得し、取得した登録内容と、新たに取得したレコード管理ＩＤとを含むレコードを生成する。そして、削除制御部２０ｇは、定義データ８ｃを参照し、生成したレコードに対して、定義データ８ｃが示す匿名化する項目の登録内容を匿名化する（Ｓ２００３）。
【０２９６】
そして、削除制御部２０ｇは、配布済データＴＢＬ８ｆのレコードの中から、削除制御部２０ｇが新たに取得したレコード管理ＩＤを有するレコードを特定する。そして、削除制御部２０ｇは、特定したレコードの検証対象の項目の登録内容が、匿名化されたレコードの検証対象の項目の登録内容となるように、配布済データＴＢＬ８ｆを更新する（Ｓ２００４）。
【０２９７】
続いて、削除制御部２０ｇは、配布済データＴＢＬ８ｆにおいて新たに更新されたレコード（匿名化されたレコード）を取得し、取得したレコードがサーバ４およびサーバ５に送信されるように、取得したレコードを通信部７に出力する（Ｓ２００５）。そして、削除制御部２０ｇは、処理結果を内部メモリに格納し、リターンする。
【０２９８】
図４７の説明に戻り、削除制御部２０ｇは、配布済データＴＢＬ８ｆのレコードのうち、削除データに含まれる個人ＩＤに対応するレコード管理ＩＤを有するレコードを特定し、特定したレコードを削除する（Ｓ１８０４）。
【０２９９】
続いて、削除制御部２０ｇは、削除データに含まれる個人ＩＤに対応するレコード管理ＩＤを含むレコードを削除する指示をサーバ４およびサーバ５に送信すべく、かかる指示を通信部７に送信する（Ｓ１８０５）。そして、削除制御部２０ｇは、処理結果を内部メモリに格納し、リターンする。
【０３００】
上述してきたように、本実施例の情報処理装置１８は、収集したデータに含まれるレコードについて、所定の関係を持つレコード、例えば、検証する項目の登録内容の組み合わせが一致するレコードの個数を計数する。そして、情報処理装置１８は、計数した個数がＮ個以上である場合には、所定の関係を持つ、複数のレコードをサーバ４およびサーバ５に出力する。そして、新たにデータを収集した場合には、情報処理装置１８は、前回収集したデータ、および、新たに収集したデータに含まれるレコードについて、所定の関係を持つレコードの個数を計数する。続いて、情報処理装置１８は、前回収集したデータ、および、新たに収集したデータに含まれるレコードについて計数した所定の関係を持つレコードの個数が、Ｎ個以上である場合には、次の処理を行う。すなわち、情報処理装置１８は、所定の関係を持つ複数のレコードのうち、新たに収集したデータに含まれるレコードをサーバ４およびサーバ５に出力する。したがって、情報処理装置１８によれば、収集したデータに含まれるレコードのうち、「レコードの一致」というレコード間の所定の条件を満たさないと判定されるレコードの量を抑制することができる。この結果、より多くのレコードが、ターゲットシステムのサーバ４およびサーバ５において統計処理などの所定の処理を行う際に有効に用いられるようになる。
【０３０１】
また、情報処理装置１８は、収集したデータに含まれるレコードについて計数した所定の関係を持つレコードの個数がＮ個未満である場合には、次の処理を行う。すなわち、情報処理装置１８は、所定の関係を持つ複数のレコードに対して、匿名化する項目の登録内容を破棄する匿名化を行い、匿名化された複数のレコードをサーバ４およびサーバ５に出力する。そして、新たにデータを収集した場合には、情報処理装置１８は、前回収集したデータおよび新たに収集したデータに含まれるレコードについて計数した所定の関係を持つレコードの個数が、Ｎ個未満であるときには、次の処理を行う。すなわち、情報処理装置１８は、所定の関係を持つ複数のレコードのうち、新たに収集したデータに含まれるレコードに対して、匿名化する項目の登録内容を破棄する匿名化を行い、匿名化されたレコードをサーバ４およびサーバ５に出力する。したがって、情報処理装置１８によれば、所定の関係を持つレコードの個数がＮ個未満であるレコードについては、個人が識別される可能性が低くなるように匿名化した上で、サーバ４およびサーバ５に送信することができる。
【０３０２】
また、情報処理装置１８は、収集したデータに含まれる所定の関係を持つレコードの組み合わせごとに異なるグループＩＤを、収集したデータに含まれるレコードのそれぞれに対応付けてグループＩＤＴＢＬ１９ａやグループＩＤ紐付ＴＢＬ１９ｃに登録する。そして、情報処理装置１８は、グループＩＤ紐付ＴＢＬ１９ｃに登録されたグループＩＤを計数することで、収集したデータに含まれるレコードについて、所定の関係を持つレコードの個数を計数する。また、情報処理装置１８は、新たにデータを収集した場合に、前回収集したデータおよび新たに収集したデータに含まれるレコードについて、所定の関係を持つレコードの個数を計数する際に、次のような処理を行う。すなわち、情報処理装置１８は、グループＩＤＴＢＬ１９ａに登録されたレコードおよび新たに収集したデータに含まれるレコードと所定の関係を持つレコードの組み合わせごとに異なるグループＩＤを用いて、次のような処理を行う。すなわち、情報処理装置１８は、かかるグループＩＤを、新たに収集したデータに含まれるレコードのそれぞれに対応付けてグループＩＤＴＢＬ１９ａやグループＩＤ紐付ＴＢＬ１９ｃに登録する。そして、情報処理装置１８は、グループＩＤ紐付ＴＢＬ１９ｃに登録されたグループＩＤを計数することで、前回収集したデータおよび新たに収集したデータに含まれるレコードについて、所定の関係を持つデータの個数を計数する。
【０３０３】
また、情報処理装置１８は、前回収集したデータまたは新たに収集したデータに含まれる更新対象のレコードが更新された場合には、更新される前の更新対象のレコードについて所定の関係を持つレコードの個数を計数する。そして、情報処理装置１８は、更新される前の更新対象のレコードについて計数した所定の関係を持つレコードの個数がＮ−１である場合には、次のような処理を行う。すなわち、情報処理装置１８は、更新される前の更新対象のレコードと所定の関係を持つレコードについて、登録内容を破棄するなどの匿名化を行う指示をサーバ４およびサーバ５に出力する。したがって、情報処理装置１８によれば、レコードの更新によって、サーバ４およびサーバ５に蓄積されたレコードであって、個人を識別する可能性が高くなったレコードを、個人を識別する可能性が低くなるように更新させることができる。
【０３０４】
また、情報処理装置１８は、更新された後の更新対象のレコードについて所定の関係を持つレコードの個数を計数する。そして、情報処理装置１８は、更新された後の更新対象のレコードについて計数した所定の関係を持つデータの個数がＮである場合には、更新された後のレコードと所定の関係を持つレコードについて匿名化を解除する指示をサーバ４またはサーバ５に出力する。したがって、情報処理装置１８によれば、レコードの更新によって、サーバ４およびサーバ５に蓄積されたレコードであって、個人を識別する可能性が低くなったレコードを、統計処理などの各種の処理において用いられるように、更新させることができる。
【０３０５】
また、情報処理装置１８は、更新された後の更新対象のレコードについて計数した所定の関係を持つレコードの個数がＮ以上である場合には、更新された後の更新対象のレコードをサーバ４およびサーバ５に出力する。また、情報処理装置１８は、更新された後の更新対象のレコードについて計数した所定の関係を持つレコードの個数がＮ未満である場合には、更新された後の更新対象のレコードを匿名化する。そして、情報処理装置１８は、匿名化されたレコードをサーバ４およびサーバ５に出力する。
【０３０６】
また、情報処理装置１８は、前回収集したデータまたは新たに収集したデータに含まれるレコードが削除された場合には、削除されたレコードについて所定の関係を持つレコードの個数を計数する。そして、情報処理装置１８は、削除されたレコードについて計数した所定の関係を持つレコードの個数がＮ−１である場合には、削除されたデータと所定の関係を持つレコードについて匿名化する指示をサーバ４およびサーバ５に出力する。したがって、情報処理装置１８によれば、レコードの削除によって、サーバ４およびサーバ５に蓄積されたレコードであって、個人を識別する可能性が高くなったレコードを、個人を識別する可能性が低くなるように更新させることができる。
【０３０７】
また、情報処理装置１８は、グループＩＤと対応付けてレコードの検証する項目の登録内容を記憶する。このため、情報処理装置１８は、記憶されたグループＩＤおよび登録内容を用いてサーバ４またはサーバ５から更新対象のレコードや削除対象のレコードを取得することなく、サーバ４またはサーバ５のレコードの更新や削除を制御することができる。
【０３０８】
さて、これまで開示のシステムに関する実施例について説明したが、本発明は上述した実施例以外にも、種々の異なる形態にて実施されてよいものである。そこで、以下では、本発明に含まれる他の実施例を説明する。
【０３０９】
例えば、上述した更新制御処理、削除制御処理などの各種の処理は、クライアント端末１０からユーザによる処理を実行する指示が情報処理装置６、１８に入力された場合に実行することもできる。
【０３１０】
また、実施例において説明した各処理のうち、自動的に行われるものとして説明した処理の全部または一部を手動的に行うこともできる。また、本実施例において説明した各処理のうち、手動的に行われるものとして説明した処理の全部または一部を公知の方法で自動的に行うこともできる。
【０３１１】
また、各種の負荷や使用状況などに応じて、各実施例において説明した各処理の各ステップでの処理を任意に細かくわけたり、あるいはまとめたりすることができる。また、ステップを省略することもできる。
【０３１２】
また、各種の負荷や使用状況などに応じて、各実施例において説明した各処理の各ステップでの処理の順番を変更できる。
【０３１３】
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的状態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。
【０３１４】
［制御プログラム］
また、上記の実施例で説明した情報処理装置６、１８の各種の処理は、あらかじめ用意された制御プログラムをパーソナルコンピュータやワークステーションなどのコンピュータシステムで実行することによって実現することもできる。そこで、以下では、図５０を用いて、上記の各実施例で説明した情報処理装置６、１８と同様の機能を有する制御プログラムを実行するコンピュータの一例を説明する。図５０は、制御プログラムを実行するコンピュータを示す図である。
【０３１５】
図５０に示すように、コンピュータ３００は、ＣＰＵ３１０、ＲＯＭ３２０、Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ（ＨＤＤ）３３０、ＲＡＭ３４０、通信装置３５０を有する。ＣＰＵ３１０、ＲＯＭ３２０、ＨＤＤ３３０、ＲＡＭ３４０、通信装置３５０は、バス３６０を介して接続される。
【０３１６】
ＲＯＭ３２０は、ＯＳなどの基本プログラムを記憶する。また、ＨＤＤ３３０は、上記の各実施例で示す収集部９ａ、判別部９ｂ、匿名化部９ｃ、検証部９ｄ、２０ｄ、配布制御部９ｅ、２０ｅ、更新制御部９ｆ、２０ｆ、削除制御部９ｇ、２０ｇ、管理部９ｈと同様の機能を発揮する制御プログラム３３０ａを記憶する。なお、制御プログラム３３０ａについては、適宜分離しても良い。また、ＨＤＤ３３０には、収集データ、匿名化データ、定義データ、重複数ＴＢＬ、ＮＧデータＴＢＬ、配布済データＴＢＬ、ＩＤＴＢＬ、グループＩＤＴＢＬ、グループＩＤ紐付ＴＢＬ、ＮＧＩＤＴＢＬが設けられる。収集データ、匿名化データ、定義データ、重複数ＴＢＬ、ＮＧデータＴＢＬ、配布済データＴＢＬは、上述した収集データ８ａ、匿名化データ８ｂ、定義データ８ｃ、重複数ＴＢＬ８ｄ、ＮＧデータＴＢＬ８ｅ、配布済データＴＢＬ８ｆに対応する。また、ＩＤＴＢＬ、グループＩＤＴＢＬ、グループＩＤ紐付ＴＢＬ、ＮＧＩＤＴＢＬは、上述したＩＤＴＢＬ８ｇ、グループＩＤＴＢＬ１９ａ、グループＩＤ紐付ＴＢＬ１９ｃ、ＮＧＩＤＴＢＬ１９ｂに対応する。
【０３１７】
そして、ＣＰＵ３１０が、制御プログラム３３０ａをＨＤＤ３３０から読み出して実行する。
【０３１８】
そして、ＣＰＵ３１０は、収集データ、匿名化データ、定義データ、重複数ＴＢＬ、ＮＧデータＴＢＬ、配布済データＴＢＬ、ＩＤＴＢＬ、グループＩＤＴＢＬ、グループＩＤ紐付ＴＢＬ、ＮＧＩＤＴＢＬを読み出してＲＡＭ３４０に格納する。さらに、ＣＰＵ３１０は、ＲＡＭ３４０に格納された各種のデータを用いて、制御プログラム３３０ａを実行する。なお、ＲＡＭ３４０に格納されるデータは、常に全てのデータがＲＡＭ３３０に格納されなくともよい。処理に用いられるデータがＲＡＭ３４０に格納されれば良い。
【０３１９】
なお、上記した制御プログラム３３０ａについては、必ずしも最初からＨＤＤ３３０に記憶させておく必要はない。
【０３２０】
例えば、コンピュータ３００に挿入されるフレキシブルディスク（ＦＤ）、ＣＤ−ＲＯＭ、ＤＶＤディスク、光磁気ディスク、ＩＣカードなどの「可搬用の物理媒体」に制御プログラム３３０ａを記憶させておく。そして、コンピュータ３００がこれらから制御プログラム３３０ａを読み出して実行するようにしてもよい。  
【０３２１】
さらには、公衆回線、インターネット、ＬＡＮ、ＷＡＮなどを介してコンピュータ３００に接続される「他のコンピュータ（またはサーバ）」などに制御プログラム３３０ａを記憶させておく。そして、コンピュータ３００がこれらからプログラム３３０ａを読み出して実行するようにしてもよい。
【符号の説明】
【０３２２】
１        システム
２        サーバ
３        サーバ
４        サーバ
５        サーバ
６        情報処理装置
８        記憶部
８ａ      収集データ
８ｂ      匿名化データ
８ｃ      定義データ
８ｄ      重複数ＴＢＬ
８ｅ      ＮＧデータＴＢＬ
８ｆ      配布済データＴＢＬ
８ｇ      ＩＤＴＢＬ
９        制御部
９ａ      収集部
９ｂ      判別部
９ｃ      匿名化部
９ｄ      検証部
９ｅ      配布制御部
９ｆ      更新制御部
９ｇ      削除制御部
９ｈ      管理部
【図１】
2014016675.tif 000003
【図２Ａ】
2014016675.tif 000004
【図２Ｂ】
2014016675.tif 000005
【図２Ｃ】
2014016675.tif 000006
【図３】
2014016675.tif 000007
【図４】
2014016675.tif 000008
【図５】
2014016675.tif 000009
【図６】
2014016675.tif 000010
【図７】
2014016675.tif 000011
【図８】
2014016675.tif 000012
【図９】
2014016675.tif 000013
【図１０】
2014016675.tif 000014
【図１１】
2014016675.tif 000015
【図１２】
2014016675.tif 000016
【図１３】
2014016675.tif 000017
【図１４】
2014016675.tif 000018
【図１５】
2014016675.tif 000019
【図１６】
2014016675.tif 000020
【図１７】
2014016675.tif 000021
【図１８】
2014016675.tif 000022
【図１９】
2014016675.tif 000023
【図２０】
2014016675.tif 000024
【図２１】
2014016675.tif 000025
【図２２】
2014016675.tif 000026
【図２３】
2014016675.tif 000027
【図２４】
2014016675.tif 000028
【図２５】
2014016675.tif 000029
【図２６】
2014016675.tif 000030
【図２７】
2014016675.tif 000031
【図２８】
2014016675.tif 000032
【図２９】
2014016675.tif 000033
【図３０】
2014016675.tif 000034
【図３１】
2014016675.tif 000035
【図３２】
2014016675.tif 000036
【図３３】
2014016675.tif 000037
【図３４】
2014016675.tif 000038
【図３５】
2014016675.tif 000039
【図３６】
2014016675.tif 000040
【図３７】
2014016675.tif 000041
【図３８】
2014016675.tif 000042
【図３９】
2014016675.tif 000043
【図４０】
2014016675.tif 000044
【図４１】
2014016675.tif 000045
【図４２】
2014016675.tif 000046
【図４３】
2014016675.tif 000047
【図４４】
2014016675.tif 000048
【図４５】
2014016675.tif 000049
【図４６】
2014016675.tif 000050
【図４７】
2014016675.tif 000051
【図４８】
2014016675.tif 000052
【図４９】
2014016675.tif 000053
【図５０】
2014016675.tif 000054
【図５１】
2014016675.tif 000055
【図５２】
2014016675.tif 000056
【図５３】
2014016675.tif 000057