(57)【要約】【課題】秘匿化されたデータの解読を困難にすること。【解決手段】秘匿化装置１０は、受付部１９ａと、秘匿化部１９ｃと、送信制御部１９ｄとを有する。受付部１９ａは、所定事項を特定可能な第１のデータが秘匿化された第２のデータを含む第３のデータを送信する指示を行うアプリケーションを実行する複数の装置１２ａ，１２ｂ，１２ｃから指示を受け付ける。秘匿化部１９ｃは、指示に応じて、記憶部１８に記憶された第３のデータを取得し、指示を行ったアプリケーションの種別ごとに異なる情報に基づいて、取得した第３のデータに含まれる第２のデータを秘匿化する。送信制御部１９ｄは、第２のデータが秘匿化された第３のデータを、第３のデータを送信する指示を行ったアプリケーションを実行する装置１２ａ，１２ｂ，１２ｃに送信する。【選択図】図１
2014011503.tif 000002
【特許請求の範囲】
【請求項１】
所定事項を特定可能な第１のデータが秘匿化された第２のデータを含む第３のデータを送信する指示を行うアプリケーションを実行する複数の装置から前記指示を受け付ける受付部と、
前記指示に応じて、記憶部に記憶された前記第３のデータを取得し、該指示を行った前記アプリケーションの種別ごとに異なる情報に基づいて、取得した前記第３のデータに含まれる前記第２のデータを秘匿化する秘匿化部と、
前記第２のデータが秘匿化された前記第３のデータを、該第３のデータを送信する指示を行った前記アプリケーションを実行する前記装置に送信する制御部と、
を有することを特徴とする秘匿化装置。
【請求項２】
前記秘匿化部は、複数の前記第３のデータを取得した場合に、取得した複数の第３のデータに含まれる複数の前記第２のデータの中に、同一のデータが複数存在するときには、秘匿結果が異なるように、複数の該同一のデータのそれぞれを秘匿化する
ことを特徴とする請求項１に記載の秘匿化装置。
【請求項３】
前記制御部は、前記秘匿化部により取得された前記第３のデータにおける前記複数の同一のデータのそれぞれの位置を示す情報を、前記第３のデータを送信する指示を行った前記アプリケーションを実行する前記装置に送信する
ことを特徴とする請求項２に記載の秘匿化装置。
【請求項４】
前記秘匿化部は、前記指示に応じて、前記記憶部に記憶された前記第３のデータを取得し、該指示を行った前記アプリケーションの種別に対応するキーを用いて、取得した前記第３のデータに含まれる前記第２のデータに対するハッシュ値を算出し、該第２のデータを該ハッシュ値で置換する
ことを特徴とする請求項１〜３のいずれか１つに記載の秘匿化装置。
【請求項５】
コンピュータに、
所定事項を特定可能な第１のデータが秘匿化された第２のデータを含む第３のデータを送信する指示を行うアプリケーションを実行する複数の装置から前記指示を受け付け、
前記指示に応じて、記憶部に記憶された前記第３のデータを取得し、該指示を行った前記アプリケーションの種別ごとに異なる情報に基づいて、取得した前記第３のデータに含まれる前記第２のデータを秘匿化し、
前記第２のデータが秘匿化された前記第３のデータを、該第３のデータを送信する指示を行った前記アプリケーションを実行する前記装置に送信する
各処理を実行させることを特徴とする秘匿化プログラム。
【請求項６】
コンピュータが、
所定事項を特定可能な第１のデータが秘匿化された第２のデータを含む第３のデータを送信する指示を行うアプリケーションを実行する複数の装置から前記指示を受け付け、
前記指示に応じて、記憶部に記憶された前記第３のデータを取得し、該指示を行った前記アプリケーションの種別ごとに異なる情報に基づいて、取得した前記第３のデータに含まれる前記第２のデータを秘匿化し、
前記第２のデータが秘匿化された前記第３のデータを、該第３のデータを送信する指示を行った前記アプリケーションを実行する前記装置に送信する
各処理を実行することを特徴とする秘匿化方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、秘匿化装置、秘匿化プログラムおよび秘匿化方法に関する。
【背景技術】
【０００２】
従来、サーバなどのある装置から秘匿化されたデータを取得し、取得したデータをデータの種別ごとに記憶装置に記憶させて、取得したデータを種別ごとに統合する統合装置がある。そして、かかる統合装置は、他の装置からの要求に応じて、記憶装置から秘匿化されたデータを取得し、秘匿化されたデータの一部分の秘匿化を解除し、一部分の秘匿化が解除されたデータを、データを要求した装置に送信する。一部分の秘匿化が解除されたデータを受信した装置は、秘匿化が解除された部分の内容を用いて、所定の分析を行う。
【０００３】
図１７は、従来の統合装置を含むシステムの一例を説明するための図である。図１７の例に示すシステム９９は、装置９０ａ、装置９０ｂ、統合装置９１、装置９２ａ、装置９２ｂ、装置９２ｃを有する。装置９０ａ，９０ｂと、統合装置９１とは、ネットワーク９８を介して接続されている。また、統合装置９１と、装置９２ａ，９２ｂ，９２ｃとは、ネットワーク９７を介して接続されている。すなわち、装置９０ａ，９０ｂと、統合装置９１とは、通信可能である。また、統合装置９１と、装置９２ａ，９２ｂ，９２ｃとは、通信可能である。
【０００４】
装置９０ａ，９０ｂは、動物などのペットを販売するペットショップにおけるペットの購入者の購入履歴を示すデータが登録されたＤＢ（Data  Base）９３ａ，９３ｂを有する。図１８は、ＤＢのデータ構造の一例を示す図である。図１８の例に示すＤＢ９３ａ、９３ｂには、データの種別ごとにテーブルが登録される。図１８の例に示すテーブルのレコードには、「名前」、「年齢」、「店名」、「品目」の各項目が含まれる。「名前」の項目には、ペットの購入者の名前が登録される。なお、ペットの購入者の名前は、個人を特定することが可能なデータである。「年齢」の項目には、購入者の年齢が登録される。「店名」の項目には、購入者がペットを購入した店の店名が登録される。「品目」の項目には、購入したペットの種類が登録される。また、図１８の例に示すテーブルは、テーブルに登録されたデータの種別を識別するためのＩＤ（Identification）である種別ＩＤが登録される「種別ＩＤ」の項目を有する。ここで、上述したように、図１８の例に示すテーブルには、ペットの購入者の購入履歴を示すデータが登録されている。このため、図１８の例のテーブルの「種別ＩＤ」の項目には、ペットの購入者の購入履歴を示すデータを識別するための種別ＩＤ「１」が登録されている。
【０００５】
装置９０ａ，９０ｂは、ＤＢ９３ａ，９３ｂのテーブルから１レコードまたは複数のレコードのデータを取得し、取得したデータを秘匿化する。例えば、装置９０ａ，９０ｂは、所定のキーを用いて、所定のハッシュ関数により、取得したレコードの各項目のデータのハッシュ値を算出して、データを秘匿化する。そして、装置９０ａ，９０ｂは、秘匿化したデータに、テーブルの「種別ＩＤ」の項目に登録された種別ＩＤを付加する。続いて、装置９０ａ，９０ｂは、種別ＩＤが付加されたデータを統合装置９１へ送信する。なお、システム９９には、装置９０ａ，９０ｂ以外にも、同様の方法で様々な種別のデータを秘匿化して統合装置９１へ送信する図示しない装置が含まれているものとする。
【０００６】
統合装置９１は、データをデータ種別ごとに統合する。統合装置９１は、複数のデータ種別のそれぞれに対応するテーブル９１ａ，９１ｂ，・・・を有する。図１９は、従来の統合装置が有するテーブルのデータ構造の一例を示す図である。図１９の例が示すテーブル９１ａは、種別ＩＤ「１」が示す種別のデータ、すなわち、ペットの購入者の購入履歴を示すデータのハッシュ値が登録されるテーブルである。
【０００７】
統合装置９１は、装置９０ａ，９０ｂや、上述した図示しない装置から、種別ＩＤが付加されたデータを受信した場合には、受信したデータに付加された種別ＩＤを取得する。そして、統合装置９１は、複数の種別ＩＤのそれぞれに対応する複数のテーブル９１ａ，９１ｂ，・・・のうち、取得した種別ＩＤに対応するテーブルに、受信したデータを登録する。例えば、装置９０ａから種別ＩＤ「１」が付加されたデータを受信した場合には、統合装置９１は、複数の種別ＩＤのそれぞれに対応する複数のテーブル９１ａ，９１ｂ，・・・のうち、種別ＩＤ「１」に対応するテーブル９１ａに、受信したデータを登録する。これにより、種別ＩＤ「１」に対応するテーブル９１ａには、秘匿化されたペットの購入者の購入履歴を示すデータが登録される。
【０００８】
また、統合装置９１は、装置９２ａ，９２ｂ，９２ｃから、分析の対象となるデータの種別ＩＤ、および、分析対象の項目を含む、データ送信を行う旨の指示を受信した場合には、次のような処理を行う。すなわち、統合装置９１は、受信した指示に含まれる種別ＩＤに対応するテーブルに登録された全てのレコードのデータを取得する。例えば、統合装置９１は、受信した指示に含まれる種別ＩＤが「１」である場合には、種別ＩＤ「１」に対応するテーブル９１ａに登録された全てのレコードのデータを取得する。
【０００９】
そして、統合装置９１は、取得した全てのレコードのそれぞれのデータについて、受信した指示に含まれる分析対象の項目のデータの秘匿化を解除する。例えば、統合装置９１は、全てのレコードについて、取得したハッシュ値のデータのうち、分析対象の項目のハッシュ値を、秘匿化された際に用いられたキーと同一のキーを用いて、秘匿化された際に用いられたハッシュ関数と同一のハッシュ関数により、元のデータに戻す。そして、分析対象の項目のデータの秘匿化が解除されたデータを、指示を送信した装置へ送信する。
【００１０】
例えば、統合装置９１は、装置９２ａから、分析の対象となるデータの種別ＩＤ「１」、および、分析対象の項目「品目」を含む、データ送信を行う旨の指示を受信した場合には、次のような処理を行う。すなわち、統合装置９１は、種別ＩＤ「１」に対応するテーブル９１ａに登録された全てのレコードのハッシュ値のデータを取得し、取得したハッシュ値のデータのうち、分析対象の項目「品目」のハッシュ値を、元のデータに戻す。図２０は、従来の統合装置により分析対象の項目「品目」のハッシュ値が元のデータに戻された場合のハッシュ値のデータの一例を示す図である。例えば、種別ＩＤ「１」に対応するテーブル９１ａに登録された全てのレコードのハッシュ値のデータを取得した場合には、図２０の例に示すように、統合装置９１は、分析対象の項目「品目」のハッシュ値「Ａ０１」を、元のデータ「鳥」に戻す。また、統合装置９１は、分析対象の項目「品目」のハッシュ値「Ｂ０２」を、元のデータ「犬」に戻す。また、統合装置９１は、分析対象の項目「品目」のハッシュ値「Ｃ０３」を、元のデータ「カメ」に戻す。また、統合装置９１は、分析対象の項目「品目」のハッシュ値「Ｄ０４」を、元のデータ「猫」に戻す。そして、統合装置９１は、分析対象の項目「品目」のハッシュ値が、元のデータに戻された図２０に示すデータを装置９２ａへ送信する。
【００１１】
また、統合装置９１は、装置９２ｂから、分析の対象となるデータの種別ＩＤ「１」、および、分析対象の項目「店名」を含む、データ送信を行う旨の指示を受信した場合には、次のような処理を行う。すなわち、統合装置９１は、種別ＩＤ「１」に対応するテーブルに登録された全てのレコードのハッシュ値のデータを取得し、取得したハッシュ値のデータのうち、分析対象の項目「店名」のハッシュ値を、元のデータに戻す。図２１は、従来の統合装置により分析対象の項目「店名」のハッシュ値が元のデータに戻された場合のハッシュ値のデータの一例を示す図である。例えば、種別ＩＤ「１」に対応するテーブル９１ａに登録された全てのレコードのハッシュ値のデータを取得した場合には、図２１の例に示すように、統合装置９１は、分析対象の項目「店名」のハッシュ値「○○」を、元のデータ「Ａ店」に戻す。また、統合装置９１は、分析対象の項目「店名」のハッシュ値「××」を、元のデータ「Ｂ店」に戻す。また、統合装置９１は、分析対象の項目「店名」のハッシュ値「△△△」を、元のデータ「Ｄ店」に戻す。そして、統合装置９１は、分析対象の項目「店名」のハッシュ値が、元のデータに戻された図２１に示すデータを装置９２ｂへ送信する。
【００１２】
また、統合装置９１は、装置９２ｃから、分析の対象となるデータの種別ＩＤ「１」、および、分析対象の項目「年齢」を含む、データ送信を行う旨の指示を受信した場合には、次のような処理を行う。すなわち、統合装置９１は、種別ＩＤ「１」に対応するテーブルに登録された全てのレコードのハッシュ値のデータを取得し、取得したハッシュ値のデータのうち、分析対象の項目「年齢」のハッシュ値を、元のデータに戻す。図２２は、従来の統合装置により分析対象の項目「年齢」のハッシュ値が元のデータに戻された場合のハッシュ値のデータの一例を示す図である。例えば、種別ＩＤ「１」に対応するテーブル９１ａに登録された全てのレコードのハッシュ値のデータを取得した場合には、図２２の例に示すように、統合装置９１は、分析対象の項目「年齢」のハッシュ値「１２」を、元のデータ「２２」に戻す。また、統合装置９１は、分析対象の項目「年齢」のハッシュ値「１」を、元のデータ「３２」に戻す。また、統合装置９１は、分析対象の項目「年齢」のハッシュ値「２４」を、元のデータ「４４」に戻す。また、統合装置９１は、分析対象の項目「年齢」のハッシュ値「３３」を、元のデータ「５２」に戻す。そして、統合装置９１は、分析対象の項目「年齢」のハッシュ値が、元のデータに戻された図２２に示すデータを装置９２ｃへ送信する。
【００１３】
装置９２ａ，９２ｂ，９２ｃは、各種の分析を行う装置である。例えば、装置９２ａは、ペットの購入者の購入履歴を示すデータを用いて、購入されたペットの品目ごとの数を集計するためのアプリケーションを実行する。装置９２ａは、かかるアプリケーションを実行することにより、分析の対象となるデータの種別ＩＤ「１」、および、分析対象の項目「品目」を含む、データ送信を行う旨の指示を統合装置９１へ送信する。また、装置９２ａは、統合装置９１から送信された、分析対象の項目「品目」のハッシュ値が、元のデータに戻されたデータを受信した場合には、購入されたペットの品目ごとの数を集計する。
【００１４】
また、装置９２ｂは、ペットの購入者の購入履歴を示すデータを用いて、ペットショップごとの購入されたペットの数を集計するためのアプリケーションを実行する。装置９２ｂは、かかるアプリケーションを実行することにより、分析の対象となるデータの種別ＩＤ「１」、および、分析対象の項目「店名」を含む、データ送信を行う旨の指示を統合装置９１へ送信する。また、装置９２ｂは、統合装置９１から送信された、分析対象の項目「店名」のハッシュ値が、元のデータに戻されたデータを受信した場合には、ペットショップごとの購入されたペットの数を集計する。
【００１５】
また、装置９２ｃは、ペットの購入者の購入履歴を示すデータを用いて、購入者の年齢ごとの購入されたペットの数を集計するためのアプリケーションを実行する。装置９２ｃは、かかるアプリケーションを実行することにより、分析の対象となるデータの種別ＩＤ「１」、および、分析対象の項目「年齢」を含む、データ送信を行う旨の指示を統合装置９１へ送信する。また、装置９２ｃは、統合装置９１から送信された、分析対象の項目「年齢」のハッシュ値が、元のデータに戻されたデータを受信した場合には、ペットの購入者の年齢ごとの購入されたペットの数を集計する。
【００１６】
また、従来、個人情報に含まれる個人を特定可能な情報に対して第１の鍵情報を用いてハッシュ値を生成し、生成したハッシュ値に対して第２の鍵情報を用いて新たにハッシュ値を生成することにより、個人を特定可能な情報を秘匿化する技術がある。
【先行技術文献】
【特許文献】
【００１７】
【特許文献１】特開２０１０−２３７８１１号公報
【特許文献２】特開２００５−３０１９７８号公報
【特許文献３】特開平９−２４５０４３号公報
【特許文献４】特開２００８−２２１４５号公報
【特許文献５】特開平４−２７３３７８号公報
【発明の概要】
【発明が解決しようとする課題】
【００１８】
しかしながら、上記のシステムでは、秘匿化されたデータを解読することが容易であるという問題がある。例えば、図２０〜図２２のそれぞれの例に示すデータを装置９２ａ〜９２ｃのそれぞれが保持している場合に、装置９２ａ〜９２ｃのそれぞれからデータが流出したときには、次のような方法により、流出したデータから人物が特定される可能性がある。すなわち、流出した３つのデータの中から、３つのデータに共通して「名前」の項目に登録された情報、例えば、「Ａ１２３４５」が登録されたレコードを特定し、特定したレコードの中から秘匿化が解除された情報「３２」、「Ｂ店」、「犬」を特定する。これにより、「Ａ１２３４５」という名前が秘匿化された情報が示す人物は、年齢が３２歳で、Ｂ店で犬を購入したことが特定される。そのため、年齢が３２歳で、Ｂ店で犬を購入したという情報から、人物を特定することが容易となる。したがって、上記のシステムでは、秘匿化されたデータを解読することが容易であるという問題がある。
【００１９】
なお、上記のシステムに、個人を特定可能な情報を秘匿化する技術を適用して、「名前」の項目に登録された購入者の名前を秘匿化する方法も考えられる。この方法では、購入者の名前の情報に対して第１の鍵情報を用いてハッシュ値を生成し、生成したハッシュ値に対して第２の鍵情報を用いて新たにハッシュ値を生成する。しかしながら、上述した方法によっても、統合装置から送信された複数のデータの中から、新たに生成されたハッシュ値が登録されたレコードを特定し、特定したレコードの中から秘匿化が解除された情報を特定することができてしまう。そのため、上述した方法によっても、秘匿化されたデータを解読することが容易であるという問題がある。
【００２０】
１つの側面では、本発明は、秘匿化されたデータの解読を困難にすることを目的とする。
【課題を解決するための手段】
【００２１】
一態様の秘匿化装置は、受付部と、秘匿化部と、制御部とを有する。受付部は、所定事項を特定可能な第１のデータが秘匿化された第２のデータを含む第３のデータを送信する指示を行うアプリケーションを実行する複数の装置から指示を受け付ける。秘匿化部は、指示に応じて、記憶部に記憶された第３のデータを取得し、指示を行ったアプリケーションの種別ごとに異なる情報に基づいて、取得した第３のデータに含まれる第２のデータを秘匿化する。制御部は、第２のデータが秘匿化された第３のデータを、第３のデータを送信する指示を行ったアプリケーションを実行する装置に送信する。
【発明の効果】
【００２２】
一態様の秘匿化装置は、秘匿化されたデータの解読を困難にすることができる。
【図面の簡単な説明】
【００２３】
【図１】図１は、実施例１に係る秘匿化装置を含むシステムの構成の一例を示す図である。
【図２】図２は、ＤＢのデータ構造の一例を示す図である。
【図３】図３は、秘匿化装置が有するＤＢに登録されたテーブルのデータ構造の一例を示す図である。
【図４】図４は、秘匿化装置が有するテーブルのデータ構造の一例を示す図である。
【図５】図５は、秘匿化装置により分析対象の項目「品目」のハッシュ値が元のデータに戻された場合のデータの一例を示す図である。
【図６】図６は、秘匿化装置により分析対象の項目「店名」のハッシュ値が元のデータに戻された場合のデータの一例を示す図である。
【図７】図７は、秘匿化装置により分析対象の項目「年齢」のハッシュ値が元のデータに戻された場合のデータの一例を示す図である。
【図８】図８は、秘匿化処理の手順を示すフローチャートである。
【図９】図９は、実施例２に係る秘匿化装置を含むシステムの構成の一例を示す図である。
【図１０】図１０は、ＤＢのデータ構造の一例を示す図である。
【図１１】図１１は、秘匿化装置が有するＤＢに登録されたテーブルのデータ構造の一例を示す図である。
【図１２】図１２は、グループデータのデータ構造の一例を示す図である。
【図１３】図１３は、秘匿化装置により異なるキーが用いられて名前のデータのハッシュ値が生成され、分析対象の項目「売上」のハッシュ値が元のデータに戻された場合のデータの一例を示す図である。
【図１４】図１４は、分析結果の一例を示す図である。
【図１５】図１５は、秘匿化処理の手順を示すフローチャートである。
【図１６】図１６は、秘匿化プログラムを実行するコンピュータを示す図である。
【図１７】図１７は、従来の統合装置を含むシステムの一例を説明するための図である。
【図１８】図１８は、ＤＢのデータ構造の一例を示す図である。
【図１９】図１９は、従来の統合装置が有するテーブルのデータ構造の一例を示す図である。
【図２０】図２０は、従来の統合装置により分析対象の項目「品目」のハッシュ値が元のデータに戻された場合のハッシュ値のデータの一例を示す図である。
【図２１】図２１は、従来の統合装置により分析対象の項目「店名」のハッシュ値が元のデータに戻された場合のハッシュ値のデータの一例を示す図である。
【図２２】図２２は、従来の統合装置により分析対象の項目「年齢」のハッシュ値が元のデータに戻された場合のハッシュ値のデータの一例を示す図である。
【発明を実施するための形態】
【００２４】
以下に、本願の開示する秘匿化装置、秘匿化プログラムおよび秘匿化方法の各実施例を図面に基づいて詳細に説明する。なお、各実施例は開示の技術を限定するものではない。そして、各実施例は、処理内容を矛盾させない範囲で適宜組み合わせることが可能である。
【実施例１】
【００２５】
実施例１に係る秘匿化装置について説明する。図１は、実施例１に係る秘匿化装置を含むシステムの構成の一例を示す図である。図１の例に示すシステム１は、秘匿化装置１０、装置１１ａ，１１ｂ、装置１２ａ，１２ｂ，１２ｃを有する。また、システム１は、装置１１ａ，１１ｂと同様の機能を有する図示しない装置を有する。装置１１ａ，１１ｂおよび上述した図示しない装置と、秘匿化装置１０とは、ネットワーク１３を介して接続されている。また、秘匿化装置１０と、装置１２ａ，１２ｂ，１２ｃとは、ネットワーク１４を介して接続されている。すなわち、装置１１ａ，１１ｂと、秘匿化装置１０とは、通信可能である。また、秘匿化装置１０と、装置１２ａ，１２ｂ，１２ｃとは、通信可能である。
【００２６】
装置１１ａ，１１ｂは、動物などのペットを販売するペットショップにおけるペットの購入者の購入履歴を示すデータが登録されたＤＢ１５ａ，１５ｂを有する。図２は、ＤＢのデータ構造の一例を示す図である。図２の例に示すＤＢ１５ａ，１５ｂには、データの種別ごとにテーブルが登録される。図２の例に示すテーブルのレコードには、「名前」、「年齢」、「店名」、「品目」の各項目が含まれる。「名前」の項目には、ペットの購入者の名前が登録される。なお、ペットの購入者の名前は、個人を特定することが可能なデータである。「年齢」の項目には、購入者の年齢が登録される。「店名」の項目には、購入者がペットを購入した店の店名が登録される。「品目」の項目には、購入したペットの種類が登録される。また、図２の例に示すテーブルには、ＤＢに登録されたデータの種別を識別するためのＩＤである種別ＩＤが登録される「種別ＩＤ」の項目を有する。ここで、上述したように、図２の例に示すＤＢ１５ａ、１５ｂのテーブルには、ペットの購入者の購入履歴を示すデータが登録されている。このため、図２の例のＤＢ１５ａ、１５ｂのテーブルの「種別ＩＤ」の項目には、ペットの購入者の購入履歴を示すデータを識別するための種別ＩＤ「１」が登録されている。
【００２７】
装置１１ａ，１１ｂは、ＤＢ１５ａ，１５ｂのテーブルから１レコードまたは複数のレコードのデータを取得し、取得したデータを秘匿化する。例えば、装置１１ａ，１１ｂは、所定のキーを用いて、所定のハッシュ関数により、取得したレコードの各項目のデータのハッシュ値を算出し、取得したレコードの各項目のデータを算出したハッシュ値のデータに置換して、取得したデータを秘匿化する。そして、装置１１ａ，１１ｂは、秘匿化したデータに、ＤＢ１５ａ，１５ｂのテーブルの「種別ＩＤ」の項目に登録された種別ＩＤを付加する。続いて、装置１１ａ，１１ｂは、種別ＩＤが付加されたデータを秘匿化装置１０へ送信する。なお、システム１には、上述したように、装置１１ａ，１１ｂ以外にも、同様の方法で様々な種別のデータを秘匿化して秘匿化装置１０へ送信する図示しない装置が含まれているものとする。
【００２８】
秘匿化装置１０は、入力部１６、通信部１７、記憶部１８、制御部１９を有する。
【００２９】
入力部１６は、各種の情報を制御部１９へ入力する。例えば、入力部１６は、ユーザからの指示を受け付けて、受け付けた指示を制御部１９へ入力する。入力部１６のデバイスの一例としては、マウスやキーボードなどのユーザの操作を受け付けるデバイスが挙げられる。
【００３０】
通信部１７は、装置間の通信を行うためのインターフェースである。例えば、通信部１７は、装置１１ａ，１１ｂからネットワーク１３を介して秘匿化されたデータを受信すると、受信したデータを制御部１９へ送信する。また、通信部１７は、後述する送信制御部１９ｄから、人物を特定することができる一部分のデータが秘匿化されたデータを受信すると、ネットワーク１４を介して、受信したデータを装置１２ａ〜１２ｃのうち、指示された装置へ送信する。また、通信部１７は、装置１２ａ，１２ｂ，１２ｃから、ネットワーク１４を介して、分析の対象となるデータの種別ＩＤ、アプリケーションＩＤ、および、分析対象の項目を含む、データ送信を行う旨の指示を受信した場合には、次のような処理を行う。すなわち、通信部１７は、受信した指示を制御部１９へ送信する。
【００３１】
記憶部１８は、各種の情報を記憶する。例えば、記憶部１８は、ＤＢ１８ａ、テーブル１８ｂを記憶する。
【００３２】
ＤＢ１８ａには、複数のデータ種別のそれぞれに対応するテーブルが登録される。図３は、秘匿化装置が有するＤＢに登録されたテーブルのデータ構造の一例を示す図である。図３の例は、複数のテーブル１８ａ＿１，１８ａ＿２，・・・を示す。複数のテーブル１８ａ＿１，１８ａ＿２，・・・のそれぞれは、登録されるデータのデータ種別を示す種別ＩＤが登録される項目「種別ＩＤ」を有する。例えば、図３の例では、テーブル１８ａ＿１は、種別ＩＤ「１」が示す種別のデータ、すなわち、ペットの購入者の購入履歴を示すデータのハッシュ値が登録されるテーブルであることを示す。
【００３３】
ＤＢ１８ａに登録されたテーブルには、後述の登録部１９ｂにより、装置１１ａ，１１ｂや、図示しない装置から送信された秘匿化されたデータが登録される。例えば、先の図２の例に示すテーブルに登録されたデータが秘匿化されて、装置１１ａ，１１ｂから秘匿化装置１０に送信された場合には、テーブル１８ａ＿１に、図３の例に示すように、秘匿化されたデータが登録される。
【００３４】
テーブル１８ｂは、ハッシュ値を生成する際に用いられるキーと、アプリケーションを識別するためのＩＤであるアプリケーションＩＤとが対応付けられて登録されたテーブルである。テーブル１８ｂには、複数のアプリケーションのそれぞれに対して、異なるキーが対応付けられて登録される。図４は、秘匿化装置が有するテーブルのデータ構造の一例を示す図である。図４の例では、テーブル１８ｂは、アプリケーションＩＤが登録される項目「アプリケーション」と、ハッシュ値を生成する際に用いられるキーが登録される項目「キー」とを有する。図４は、例えば、アプリケーションＩＤ「Ａ」と、キー「００００１」とが対応付けられてテーブル１８ｂに登録された場合を示す。
【００３５】
記憶部１８は、例えば、フラッシュメモリなどの半導体メモリ素子、または、ハードディスク、光ディスクなどの記憶装置である。なお、記憶部１８は、上記の種類の記憶装置に限定されるものではなく、ＲＡＭ（Random  Access  Memory)、ＲＯＭ（Read  Only  Memory)であってもよい。
【００３６】
制御部１９は、各種の処理手順を規定したプログラムや制御データを格納するための内部メモリを有し、これらによって種々の処理を実行する。図１に示すように、制御部１９は、受付部１９ａと、登録部１９ｂと、秘匿化部１９ｃと、送信制御部１９ｄとを有する。
【００３７】
受付部１９ａは、各種の情報を受け付ける。例えば、受付部１９ａは、秘匿化されたデータが通信部１７から制御部１９へ送信された場合には、送信されたデータを受信する。また、受付部１９ａは、分析の対象となるデータの種別ＩＤ、アプリケーションＩＤ、および、分析対象の項目を含む、データ送信を行う旨の指示が通信部１７から制御部１９へ送信された場合には、次のような処理を行う。すなわち、受付部１９ａは、送信された指示を受信する。
【００３８】
登録部１９ｂは、各種の情報を登録する。例えば、登録部１９ｂは、受付部１９ａにより、種別ＩＤが付加されたデータが受信された場合には、受信したデータに付加された種別ＩＤを取得する。続いて、登録部１９ｂは、取得した種別ＩＤに対応するテーブルが存在するかＤＢ１８ａを検索する。取得した種別ＩＤに対応するテーブルが存在する場合には、登録部１９ｂは、ＤＢ１８ａに登録された複数のテーブルのうち、取得した種別ＩＤに対応するテーブルに、受信したデータを登録する。例えば、装置１１ａから種別ＩＤ「１」が付加されたデータを受信した場合には、秘匿化装置１０は、図３の例に示す複数のテーブル１８ａ＿１，１８ａ＿２，・・・のうち、種別ＩＤ「１」に対応するテーブル１８ａ＿１に、受信したデータを登録する。これにより、種別ＩＤ「１」に対応するテーブル１８ａ＿１には、秘匿化されたペットの購入者の購入履歴を示す、秘匿化されたデータが登録される。
【００３９】
一方、取得した種別ＩＤに対応するテーブルが存在しない場合には、登録部１９ｂは、新たなテーブルを生成し、生成したテーブルの「種別ＩＤ」の項目に、取得した種別ＩＤを登録する。また、登録部１９ｂは、受付部１９ａにより受信されたデータのレコード数分のレコードを、生成したテーブルに追加し、追加されたレコードに、受付部１９ａにより受信されたデータを登録する。
【００４０】
登録部１９ｂは、受付部１９ａにより、種別ＩＤが付加されたデータが受信されるたびに、上述した処理を行って、ＤＢ１８ａのテーブルに秘匿化されたデータを登録する。
【００４１】
秘匿化部１９ｃは、受付部１９ａにより、上述のデータ送信を行う旨の指示が受信された場合には、次のような処理を行う。すなわち、秘匿化部１９ｃは、かかる指示に含まれる種別ＩＤが示すデータ種別に対応するテーブルに登録された秘匿化されたデータを取得する。そして、秘匿化部１９ｃは、指示を行った後述のアプリケーションの種別ごとに秘匿結果が異なるように、取得したデータに含まれる秘匿化された名前のデータを更に秘匿化する。
【００４２】
具体例を挙げて説明する。例えば、秘匿化部１９ｃは、装置１２ａ，１２ｂ，１２ｃから、分析の対象となるデータの種別ＩＤ、アプリケーションＩＤ、および、分析対象の項目を含む、データ送信を行う旨の指示を受信した場合には、次のような処理を行う。すなわち、秘匿化部１９ｃは、指示に含まれる種別ＩＤを取得する。また、秘匿化部１９ｃは、指示に含まれるアプリケーションＩＤを取得する。また、秘匿化部１９ｃは、指示に含まれる分析対象の項目を取得する。
【００４３】
そして、秘匿化部１９ｃは、取得したアプリケーションＩＤに対応するキーが存在するかテーブル１８ｂを検索する。検索の結果、キーが存在する場合には、秘匿化部１９ｃは、取得したアプリケーションＩＤに対応するキーをテーブル１８ｂから取得する。例えば、取得したアプリケーションＩＤが「Ａ」である場合には、秘匿化部１９ｃは、図４の例に示すテーブル１８ｂからキー「００００１」を取得する。一方、検索の結果、キーが存在しない場合には、秘匿化部１９ｃは、テーブル１８ｂに既に登録されたキーと同一のキーとならないように、新たなキーを生成する。そして、秘匿化部１９ｃは、取得したアプリケーションＩＤと、生成したキーとを対応付けてテーブル１８ｂに登録する。
【００４４】
続いて、秘匿化部１９ｃは、取得した種別ＩＤが示すデータ種別に対応するテーブルが存在するかＤＢ１８ａを検索する。検索の結果、テーブルが存在する場合には、秘匿化部１９ｃは、取得した種別ＩＤが示すデータ種別に対応するテーブルの全てのレコードのデータを取得する。例えば、取得した種別ＩＤが「１」である場合には、秘匿化部１９ｃは、図３の例に示すＤＢ１８ａに登録された複数のテーブルの中から、種別ＩＤ「１」に対応するテーブル１８ａ＿１に登録された全てのレコードのデータを取得する。
【００４５】
そして、秘匿化部１９ｃは、取得または生成したキーを用いて、所定のハッシュ関数により、取得した全てのレコードのデータのうち、人物を特定することが可能な一部分のデータのハッシュ値を生成する。例えば、秘匿化部１９ｃは、秘匿化された名前のデータに対して更にハッシュ値を生成する。なお、人物を特定することが可能なデータの一例として、名前のデータを挙げたが、人物を特定することが可能なデータはこれに限られない。秘匿化部１９ｃは、人物の住所やＩＤなど、人物を特定することが可能なデータのハッシュ値であれば、同様の方法で、さらにハッシュ値を生成することができる。
【００４６】
例えば、取得または生成したキーが「００００１」である場合には、秘匿化部１９ｃは、キー「００００１」を用いて、所定のハッシュ関数により、秘匿化された名前のデータ「ａｚｅｉｄ１１」のハッシュ値「ＡＡＡＡＡ」を生成する。また、秘匿化部１９ｃは、秘匿化された名前のデータ「Ａ１２３４５」のハッシュ値「ＢＢＢＢＢ」を生成する。また、秘匿化部１９ｃは、秘匿化された名前のデータ「ｋｄＤｓＤＤ」のハッシュ値「ＣＣＣＣＣ」を生成する。また、秘匿化部１９ｃは、秘匿化された名前のデータ「Ｋｌ３ｌｌｓ３Ｑ」のハッシュ値「ＤＤＤＤＤ」を生成する。
【００４７】
また、例えば、取得または生成したキーが「００００２」である場合には、秘匿化部１９ｃは、キー「００００２」を用いて、所定のハッシュ関数により、秘匿化された名前のデータ「ａｚｅｉｄ１１」のハッシュ値「ＥＥＥＥＥ」を生成する。また、秘匿化部１９ｃは、秘匿化された名前のデータ「Ａ１２３４５」のハッシュ値「ＦＦＦＦＦ」を生成する。また、秘匿化部１９ｃは、秘匿化された名前のデータ「ｋｄＤｓＤＤ」のハッシュ値「ＧＧＧＧＧ」を生成する。また、秘匿化部１９ｃは、秘匿化された名前のデータ「Ｋｌ３ｌｌｓ３Ｑ」のハッシュ値「ＨＨＨＨＨ」を生成する。
【００４８】
また、例えば、取得または生成したキーが「００００３」である場合には、秘匿化部１９ｃは、キー「００００３」を用いて、所定のハッシュ関数により、秘匿化された名前のデータ「ａｚｅｉｄ１１」のハッシュ値「ＩＩＩＩＩ」を生成する。また、秘匿化部１９ｃは、秘匿化された名前のデータ「Ａ１２３４５」のハッシュ値「ＪＪＪＪＪ」を生成する。また、秘匿化部１９ｃは、秘匿化された名前のデータ「ｋｄＤｓＤＤ」のハッシュ値「ＫＫＫＫＫ」を生成する。また、秘匿化部１９ｃは、秘匿化された名前のデータ「Ｋｌ３ｌｌｓ３Ｑ」のハッシュ値「ＬＬＬＬＬ」を生成する。
【００４９】
続いて、秘匿化部１９ｃは、取得した全てのレコードのデータのうち、秘匿化された人物を特定することが可能な一部分のデータを、生成したハッシュ値で置換する。これにより、人物を特定することが可能な一部分のデータは、再び秘匿化される。例えば、上述の取得または生成したキーが「００００１」である場合の例では、秘匿化部１９ｃは、名前のデータ「ａｚｅｉｄ１１」をハッシュ値「ＡＡＡＡＡ」で置換する。また、秘匿化部１９ｃは、名前のデータ「Ａ１２３４５」をハッシュ値「ＢＢＢＢＢ」で置換する。また、秘匿化部１９ｃは、名前のデータ「ｋｄＤｓＤＤ」をハッシュ値「ＣＣＣＣＣ」で置換する。また、秘匿化部１９ｃは、名前のデータ「Ｋｌ３ｌｌｓ３Ｑ」をハッシュ値「ＤＤＤＤＤ」で置換する。このように、秘匿化部１９ｃは、装置１２ａ，１２ｂ，１２ｃで実行されたアプリケーションの種別ごとに異なるキーを用いて、秘匿化された人物を特定することが可能なデータのハッシュ値を生成し、かかるデータをハッシュ値で置換する。そのため、秘匿化部１９ｃによれば、秘匿化された人物を特定することが可能なデータが同一であっても、アプリケーションごとに異なる秘匿結果となるように、秘匿化された人物を特定することが可能なデータを更に秘匿化することができる。それゆえ、秘匿化部１９ｃによれば、秘匿化された人物を特定することが可能なデータが同一であっても、アプリケーションごとに、秘匿結果が異なるため、複数のアプリケーションのデータに共通するような、かかるデータの生成を抑制することができる。したがって、秘匿化部１９ｃによれば、秘匿化されたデータの解読を困難にすることができる。
【００５０】
そして、秘匿化部１９ｃは、人物を特定することが可能な一部分のデータがハッシュ値で置換されたデータについて、受信した指示に含まれる分析対象の項目のデータの秘匿化を解除する。例えば、秘匿化部１９ｃは、人物を特定することが可能な一部分のデータがハッシュ値で置換されたデータについて、次のような処理を行う。すなわち、秘匿化部１９ｃは、分析対象の項目のハッシュ値を、装置１１ａ，１１ｂや図示しない装置により秘匿化された際に用いられたキーと同一のキーを用いて、秘匿化された際に用いられたハッシュ関数と同一のハッシュ関数により、元のデータに戻す。
【００５１】
例えば、秘匿化部１９ｃは、装置１２ａから、分析の対象となるデータの種別ＩＤ「１」、アプリケーションＩＤ「Ａ」、および、分析対象の項目「品目」を含む、データ送信を行う旨の指示が受付部１９ａにより受信された場合には、次のような処理を行う。すなわち、秘匿化部１９ｃは、人物を特定することが可能な一部分のデータがハッシュ値で置換されたデータのうち、分析対象の項目「品目」のハッシュ値を、元のデータに戻す。図５は、秘匿化装置により分析対象の項目「品目」のハッシュ値が元のデータに戻された場合のデータの一例を示す図である。例えば、種別ＩＤ「１」に対応するテーブル１８ａ＿１に登録された全てのレコードのハッシュ値のデータを取得した場合には、図５の例に示すように、秘匿化部１９ｃは、分析対象の項目「品目」のハッシュ値「Ａ０１」を、元のデータ「鳥」に戻す。また、秘匿化部１９ｃは、分析対象の項目「品目」のハッシュ値「Ｂ０２」を、元のデータ「犬」に戻す。また、秘匿化部１９ｃは、分析対象の項目「品目」のハッシュ値「Ｃ０３」を、元のデータ「カメ」に戻す。また、秘匿化部１９ｃは、分析対象の項目「品目」のハッシュ値「Ｄ０４」を、元のデータ「猫」に戻す。
【００５２】
また、秘匿化部１９ｃは、装置１２ｂから、分析の対象となるデータの種別ＩＤ「１」、アプリケーションＩＤ「Ｂ」、および、分析対象の項目「店名」を含む、データ送信を行う旨の指示が受付部１９ａにより受信された場合には、次のような処理を行う。すなわち、秘匿化部１９ｃは、人物を特定することが可能な一部分のデータがハッシュ値で置換されたデータのうち、分析対象の項目「店名」のハッシュ値を、元のデータに戻す。図６は、秘匿化装置により分析対象の項目「店名」のハッシュ値が元のデータに戻された場合のデータの一例を示す図である。例えば、種別ＩＤ「１」に対応するテーブル１８ａ＿１に登録された全てのレコードのハッシュ値のデータを取得した場合には、図６の例に示すように、秘匿化部１９ｃは、分析対象の項目「店名」のハッシュ値「○○」を、元のデータ「Ａ店」に戻す。また、秘匿化部１９ｃは、分析対象の項目「店名」のハッシュ値「××」を、元のデータ「Ｂ店」に戻す。また、秘匿化部１９ｃは、分析対象の項目「店名」のハッシュ値「△△△」を、元のデータ「Ｄ店」に戻す。
【００５３】
また、秘匿化部１９ｃは、装置１２ｃから、分析の対象となるデータの種別ＩＤ「１」、アプリケーションＩＤ「Ｃ」、および、分析対象の項目「年齢」を含む、データ送信を行う旨の指示が受付部１９ａにより受信された場合には、次のような処理を行う。すなわち、秘匿化部１９ｃは、人物を特定することが可能な一部分のデータがハッシュ値で置換されたデータのうち、分析対象の項目「年齢」のハッシュ値を、元のデータに戻す。図７は、秘匿化装置により分析対象の項目「年齢」のハッシュ値が元のデータに戻された場合のデータの一例を示す図である。例えば、種別ＩＤ「１」に対応するテーブル１８ａ＿１に登録された全てのレコードのハッシュ値のデータを取得した場合には、図７の例に示すように、秘匿化部１９ｃは、分析対象の項目「年齢」のハッシュ値「１２」を、元のデータ「２２」に戻す。また、秘匿化部１９ｃは、分析対象の項目「年齢」のハッシュ値「１」を、元のデータ「３２」に戻す。また、秘匿化部１９ｃは、分析対象の項目「年齢」のハッシュ値「２４」を、元のデータ「４４」に戻す。また、秘匿化部１９ｃは、分析対象の項目「年齢」のハッシュ値「３３」を、元のデータ「５２」に戻す。
【００５４】
送信制御部１９ｄは、秘匿化部１９ｃにより人物を特定することが可能な一部分のデータが再秘匿化されたデータを、データを送信する指示を行ったアプリケーションを実行する装置に送信するように制御する。すなわち、送信制御部１９ｄは、分析対象の項目のデータの秘匿化が解除されたデータを、指示を送信した装置へ送信するように、かかるデータを通信部１７へ送信する。例えば、送信制御部１９ｄは、分析対象の項目「品目」のハッシュ値が、元のデータに戻された図５に示すデータを装置１２ａへ送信するように、かかるデータを通信部１７へ送信する。また、送信制御部１９ｄは、分析対象の項目「店名」のハッシュ値が、元のデータに戻された図６に示すデータを装置１２ｂへ送信するように、かかるデータを通信部１７へ送信する。また、送信制御部１９ｄは、分析対象の項目「年齢」のハッシュ値が、元のデータに戻された図７に示すデータを装置１２ｃへ送信するように、かかるデータを通信部１７へ送信する。
【００５５】
制御部１９は、ＡＳＩＣ（Application  Specific  Integrated  Circuit）やＦＰＧＡ（Field  Programmable  Gate  Array）などの集積回路またはＣＰＵ（Central  Processing  Unit）やＭＰＵ（Micro  Processing  Unit）などの電子回路である。
【００５６】
装置１２ａ，１２ｂ，１２ｃは、各種の分析を行う装置である。例えば、装置１２ａは、ペットの購入者の購入履歴を示すデータを用いて、購入されたペットの品目ごとの数を集計するためのアプリケーションを実行する。装置１２ａは、かかるアプリケーションを実行することにより、分析の対象となるデータの種別ＩＤ「１」、アプリケーションＩＤ「Ａ」、および、分析対象の項目「品目」を含む、データ送信を行う旨の指示を秘匿化装置１０へ送信する。また、装置１２ａは、秘匿化装置１０から送信された、分析対象の項目「品目」のハッシュ値が、元のデータに戻されたデータを受信した場合には、購入されたペットの品目ごとの数を集計する。
【００５７】
また、装置１２ｂは、ペットの購入者の購入履歴を示すデータを用いて、ペットショップごとの購入されたペットの数を集計するためのアプリケーションを実行する。装置１２ｂは、かかるアプリケーションを実行することにより、分析の対象となるデータの種別ＩＤ「１」、アプリケーションＩＤ「Ｂ」、および、分析対象の項目「店名」を含む、データ送信を行う旨の指示を秘匿化装置１０へ送信する。また、装置１２ｂは、秘匿化装置１０から送信された、分析対象の項目「店名」のハッシュ値が、元のデータに戻されたデータを受信した場合には、ペットショップごとの購入されたペットの数を集計する。
【００５８】
また、装置１２ｃは、ペットの購入者の購入履歴を示すデータを用いて、購入者の年齢ごとの購入されたペットの数を集計するためのアプリケーションを実行する。装置１２ｃは、かかるアプリケーションを実行することにより、分析の対象となるデータの種別ＩＤ「１」、アプリケーションＩＤ「Ｃ」、および、分析対象の項目「年齢」を含む、データ送信を行う旨の指示を秘匿化装置１０へ送信する。また、装置１２ｃは、秘匿化装置１０から送信された、分析対象の項目「年齢」のハッシュ値が、元のデータに戻されたデータを受信した場合には、ペットの購入者の年齢ごとの購入されたペットの数を集計する。
【００５９】
次に、本実施例に係る秘匿化装置１０が実行する処理の流れを説明する。図８は、秘匿化処理の手順を示すフローチャートである。この秘匿化処理は、例えば、装置１２ａ〜１２ｃから、分析の対象となるデータの種別ＩＤ、アプリケーションＩＤ、および、分析対象の項目を含む、データ送信を行う旨の指示を受信したタイミングで実行される。
【００６０】
図８に示すように、秘匿化部１９ｃは、指示に含まれる種別ＩＤを取得する（Ｓ１０１）。そして、秘匿化部１９ｃは、指示に含まれるアプリケーションＩＤを取得する（Ｓ１０２）。また、秘匿化部１９ｃは、指示に含まれる分析対象の項目を取得する（Ｓ１０３）。
【００６１】
そして、秘匿化部１９ｃは、取得したアプリケーションＩＤに対応するキーが存在するかテーブル１８ｂを検索する（Ｓ１０４）。続いて、秘匿化部１９ｃは、検索の結果、キーが存在するか否かを判定する（Ｓ１０５）。キーが存在する場合（Ｓ１０５肯定）には、秘匿化部１９ｃは、取得したアプリケーションＩＤに対応するキーをテーブル１８ｂから取得する（Ｓ１０８）。一方、キーが存在しない場合（Ｓ１０５否定）には、秘匿化部１９ｃは、テーブル１８ｂに既に登録されたキーと同一のキーとならないように、新たなキーを生成する（Ｓ１０６）。そして、秘匿化部１９ｃは、取得したアプリケーションＩＤと、生成したキーとを対応付けてテーブル１８ｂに登録する（Ｓ１０７）。
【００６２】
その後、秘匿化部１９ｃは、取得した種別ＩＤが示すデータ種別に対応するテーブルが存在するかＤＢ１８ａを検索する（Ｓ１０９）。そして、秘匿化部１９ｃは、検索の結果、テーブルが存在するか否かを判定する（Ｓ１１０）。テーブルが存在しない場合（Ｓ１１０否定）には、処理を終了する。一方、テーブルが存在する場合（Ｓ１１０肯定）には、秘匿化部１９ｃは、取得した種別ＩＤが示すデータ種別に対応するテーブルの全てのレコードのデータを取得する（Ｓ１１１）。
【００６３】
そして、秘匿化部１９ｃは、取得または生成したキーを用いて、所定のハッシュ関数により、取得した全てのレコードのデータのうち、秘匿化された人物を特定することが可能な一部分のデータ、例えば、名前のデータのハッシュ値を生成する（Ｓ１１２）。
【００６４】
続いて、秘匿化部１９ｃは、取得した全てのレコードのデータのうち、秘匿化された人物を特定することが可能な一部分のデータを、生成したハッシュ値で置換する（Ｓ１１３）。そして、秘匿化部１９ｃは、人物を特定することが可能な一部分のデータがハッシュ値で再び秘匿化されたデータについて、受信した指示に含まれる分析対象の項目のデータの秘匿化を解除する（Ｓ１１４）。
【００６５】
その後、送信制御部１９ｄは、分析対象の項目のデータの秘匿化が解除されたデータを、指示を送信した装置へ送信するように、かかるデータを通信部１７へ送信し（Ｓ１１５）、処理を終了する。
【００６６】
上述してきたように、本実施例に係る秘匿化装置１０は、装置１２ａ，１２ｂ，１２ｃで実行されたアプリケーションの種別ごとに異なるキーを用いて、秘匿化された人物を特定することが可能なデータのハッシュ値を生成し、秘匿化された人物を特定することが可能なデータをハッシュ値で置換する。そのため、秘匿化装置１０によれば、秘匿化された人物を特定することが可能なデータが同一であっても、アプリケーションごとに異なる秘匿結果となるように、秘匿化された人物を特定することが可能なデータを秘匿化することができる。それゆえ、秘匿化装置１０によれば、秘匿化された人物を特定することが可能なデータが同一であっても、アプリケーションごとに、秘匿結果が異なるため、複数のアプリケーションのデータに共通してしまうような、秘匿化された人物を特定することが可能なデータの生成を抑制することができる。したがって、秘匿化装置１０によれば、秘匿化されたデータの解読を困難にすることができる。
【００６７】
なお、秘匿化装置１０により、秘匿化された人物を特定することが可能な一部分のデータがハッシュ値で置換されたデータについては、次のような方法で、元のデータに戻すことが可能である。すなわち、かかるデータについては、テーブル１８ｂに登録された対応するキー、および、装置１１ａ，１１ｂや図示しない装置により秘匿化された際に用いられたキーと同一のキーを用いて、元のデータに戻すことが可能である。
【実施例２】
【００６８】
実施例２について説明する。実施例２では、ＤＢ１８ａから取得した全てのレコードの中に含まれる秘匿化された人物を特定することが可能なデータの中に、同一のデータが複数存在する場合に、秘匿結果が異なるように、複数の同一のデータのそれぞれを秘匿化する場合について説明する。
【００６９】
図９は、実施例２に係る秘匿化装置を含むシステムの構成の一例を示す図である。図９に示すように、システム２は、実施例１の装置１１ａ，１１ｂ、秘匿化装置１０、装置１２ａ，１２ｂ，１２ｃに代えて、装置２１ａ，２１ｂ、秘匿化装置２０、装置２２ａ，２２ｂ，２２ｃを有する点が実施例１のシステム１と異なる。なお、以下では、上記の実施例１と同様の機能を果たす各部については図１などと同様の符号を付し、その説明は省略する。
【００７０】
装置２１ａ，２１ｂは、動物などのペットを販売するペットショップにおけるペットの購入者の購入履歴を示すデータが登録されたＤＢ２３ａ，２３ｂを有する。図１０は、ＤＢのデータ構造の一例を示す図である。図１０の例に示すＤＢ２３ａ，２３ｂには、データの種別ごとにテーブルが登録される。図１０の例に示すテーブルのレコードには、「名前」、「日付」、「店名」、「売上」の各項目が含まれる。「日付」の項目には、ペットを購入者が購入した日付が登録される。「売上」の項目には、購入者がペットを購入した際に支払った金額が登録される。また、図１０の例に示すテーブルには、ＤＢに登録されたデータの種別を識別するためのＩＤである種別ＩＤが登録される「種別ＩＤ」の項目を有する。ここで、上述したように、図１０の例に示すＤＢ２３ａ、２３ｂのテーブルには、ペットの購入者の購入履歴を示すデータが登録されている。また、かかるデータは、「名前」、「日付」、「店名」、「売上」の各項目を有する。このため、図１０の例のＤＢ２３ａ、２３ｂのテーブルの「種別ＩＤ」の項目には、「名前」、「日付」、「店名」、「売上」の各項目を有する、ペットの購入者の購入履歴を示すデータを識別するための種別ＩＤ「１１」が登録されている。
【００７１】
装置２１ａ，２１ｂは、ＤＢ２３ａ，２３ｂのテーブルから１レコードまたは複数のレコードのデータを取得し、取得したデータを秘匿化する。例えば、装置２１ａ，２１ｂは、所定のキーを用いて、所定のハッシュ関数により、取得したレコードの各項目のデータのハッシュ値を算出し、取得したレコードの各項目のデータを算出したハッシュ値のデータに置換して、取得したデータを秘匿化する。そして、装置２１ａ，２１ｂは、秘匿化したデータに、ＤＢ２３ａ，２３ｂのテーブルの「種別ＩＤ」の項目に登録された種別ＩＤを付加する。続いて、装置２１ａ，２１ｂは、種別ＩＤが付加されたデータを秘匿化装置１０へ送信する。なお、システム２には、装置２１ａ，２１ｂ以外にも、同様の方法で様々な種別のデータを秘匿化して秘匿化装置２０へ送信する図示しない装置が含まれているものとする。
【００７２】
実施例２に係るＤＢ１８ａについて説明する。図１１は、秘匿化装置が有するＤＢに登録されたテーブルのデータ構造の一例を示す図である。図１１の例は、複数のテーブル１８ａ＿３，１８ａ＿４，・・・を示す。複数のテーブル１８ａ＿３，１８ａ＿４，・・・のそれぞれは、登録されるデータのデータ種別を示す種別ＩＤが登録される項目「種別ＩＤ」を有する。例えば、図１１の例では、テーブル１８ａ＿３は、種別ＩＤ「１１」が示す種別のデータ、すなわち、上述した項目を有する、ペットの購入者の購入履歴を示すデータのハッシュ値が登録されるテーブルであることを示す。
【００７３】
ＤＢ１８ａに登録されたテーブルには、登録部１９ｂにより、装置２１ａ，２１ｂや、図示しない装置から送信された秘匿化されたデータが登録される。例えば、先の図１０の例に示すテーブルに登録されたデータが秘匿化されて、装置２１ａ，２１ｂから秘匿化装置２０に送信された場合には、テーブル１８ａ＿３に、図１１の例に示すように、秘匿化されたデータが登録される。
【００７４】
制御部２４は、各種の処理手順を規定したプログラムや制御データを格納するための内部メモリを有し、これらによって種々の処理を実行する。図９に示すように、制御部２４は、受付部１９ａと、登録部１９ｂと、秘匿化部２４ａと、送信制御部１９ｄとを有する。
【００７５】
秘匿化部２４ａは、受付部１９ａにより、上述のデータ送信を行う旨の指示が受信された場合には、次のような処理を行う。すなわち、秘匿化部２４ａは、かかる指示に含まれる種別ＩＤが示すデータ種別に対応するテーブルに登録された秘匿化されたデータを取得する。そして、秘匿化部２４ａは、指示を行った後述のアプリケーションの種別ごとに秘匿結果が異なるように、取得したデータに含まれる秘匿化された名前のデータを更に秘匿化する。
【００７６】
具体例を挙げて説明する。例えば、秘匿化部２４ａは、装置２２ａ，２２ｂ，２２ｃから、分析の対象となるデータの種別ＩＤ、アプリケーションＩＤ、および、分析対象の項目を含む、データ送信を行う旨の指示を受信した場合には、次のような処理を行う。すなわち、秘匿化部２４ａは、指示に含まれる種別ＩＤを取得する。また、秘匿化部２４ａは、指示に含まれるアプリケーションＩＤを取得する。また、秘匿化部２４ａは、指示に含まれる分析対象の項目を取得する。
【００７７】
そして、秘匿化部２４ａは、取得したアプリケーションＩＤに対応するキーが存在するかテーブル１８ｂを検索する。検索の結果、キーが存在する場合には、秘匿化部２４ａは、取得したアプリケーションＩＤに対応するキーをテーブル１８ｂから取得する。例えば、取得したアプリケーションＩＤが「Ａ」である場合には、秘匿化部２４ａは、図４の例に示すテーブル１８ｂからキー「００００１」を取得する。一方、検索の結果、キーが存在しない場合には、秘匿化部２４ａは、テーブル１８ｂに既に登録されたキーと同一のキーとならないように、新たなキーを生成する。そして、秘匿化部２４ａは、取得したアプリケーションＩＤと、生成したキーとを対応付けてテーブル１８ｂに登録する。
【００７８】
続いて、秘匿化部２４ａは、取得した種別ＩＤが示すデータ種別に対応するテーブルが存在するかＤＢ１８ａを検索する。検索の結果、テーブルが存在する場合には、秘匿化部２４ａは、取得した種別ＩＤが示すデータ種別に対応するテーブルの全てのレコードのデータを取得する。例えば、取得した種別ＩＤが「１１」である場合には、秘匿化部２４ａは、図１１の例に示すＤＢ１８ａに登録された複数のテーブルの中から、種別ＩＤ「１１」に対応するテーブル１８ａ＿３に登録された全てのレコードのデータを取得する。
【００７９】
その後、秘匿化部２４ａは、取得した全てのレコードのデータの中に含まれる秘匿化された人物を特定することが可能なデータの中に、同一のデータが複数存在するか否かを判定する。例えば、テーブル１８＿３に登録された全てのレコードのデータを取得した場合には、秘匿化部２４ａは、秘匿化された人物を特定することが可能なデータの中に、同一のデータ「Ａ１２３４５」が複数存在すると判定する。同一のデータが複数存在する場合には、秘匿化部２４ａは、次のような処理を行う。すなわち、秘匿化部２４ａは、取得または生成したキーを用いて、所定のハッシュ関数により、秘匿化された人物を特定することが可能なデータのうち、かかる同一のデータ以外のデータのハッシュ値を生成する。例えば、同一のデータ「Ａ１２３４５」が複数存在すると判定した場合には、秘匿化部２４ａは、秘匿化された人物を特定することが可能なデータ「ａｚｅｉｄ１１」のハッシュ値「ｊ２ａ９ｆ２ｅ」を算出する。これに加えて、秘匿化部２４ａは、秘匿化された人物を特定することが可能なデータ「ｋｄＤｓＤＤ」のハッシュ値「１３ｋｋｓｏｗ」を算出する。
【００８０】
続いて、秘匿化部２４ａは、複数存在すると判定された同一のデータが登録された複数のレコードのうち、未選択のレコードを１つ選択する。例えば、同一のデータ「Ａ１２３４５」が複数存在すると判定した場合には、秘匿化部２４ａは、全レコードの中から「Ａ１２３４５」が登録された２番目のレコードと４番目のレコードのうち、未選択の２番目のレコードを選択する。そして、秘匿化部２４ａは、取得した全レコードに対する選択したレコードの位置を示すオフセットを特定する。かかるオフセットの一例としては、選択したレコードが何番目であるかを示す値が挙げられる。例えば、２番目のレコードを選択した場合には、秘匿化部２４ａは、オフセット「２」を特定する。そして、秘匿化部２４ａは、取得または生成したキーを用いて、所定のハッシュ関数により、選択したレコードの上記の同一のデータに対して更にハッシュ値を生成する。例えば、２番目のレコードを選択した場合には、秘匿化部２４ａは、取得または生成したキーを用いて、所定のハッシュ関数により、選択したレコードの同一のデータ「Ａ１２３４５」に対して更にハッシュ値「ａ１２３４５」を生成する。
【００８１】
そして、秘匿化部２４ａは、複数存在すると判定された同一のデータが登録された複数のレコードのうち、未選択のレコードがあるか否かを判定する。未選択のレコードがある場合には、秘匿化部２４ａは、未選択のレコードを１つ選択する。例えば、同一のデータ「Ａ１２３４５」が複数存在すると判定した場合には、秘匿化部２４ａは、全レコードの中から「Ａ１２３４５」が登録された２番目のレコードと４番目のレコードのうち、未選択の４番目のレコードを選択する。そして、秘匿化部２４ａは、取得した全レコードに対する選択したレコードの位置を示すオフセットを特定する。例えば、４番目のレコードを選択した場合には、秘匿化部２４ａは、オフセット「４」を特定する。続いて、秘匿化部２４ａは、テーブル１８ｂに既に登録されたキー、および、既に生成したキーがある場合には生成したキーと同一のキーとならないように、新たなキーを生成する。そして、秘匿化部２４ａは、新たに生成したキーを用いて、所定のハッシュ関数により、選択したレコードの上記の同一のデータに対して更にハッシュ値を生成する。例えば、４番目のレコードを選択した場合には、秘匿化部２４ａは、新たに生成したキーを用いて、所定のハッシュ関数により、次のような処理を行う。すなわち、秘匿化部２４ａは、選択したレコードの同一のデータ「Ａ１２３４５」に対して更にハッシュ値「ｃ９４ｅｒｓｙ」を生成する。このような処理を、秘匿化部２４ａは、未選択のレコードがないと判定するまで、繰り返し行う。これにより、秘匿化された人物を特定することが可能なデータの中に、同一のデータが複数存在する場合に、秘匿結果が異なるように、複数の同一のデータのそれぞれを秘匿化することができる。
【００８２】
そして、未選択のレコードがないと判定した場合には、秘匿化部２４ａは、グループＩＤを生成し、グループＩＤおよび特定されたオフセットを含むグループデータを生成する。図１２は、グループデータのデータ構造の一例を示す図である。図１２の例が示すグループデータには、グループＩＤ「ＡＡ」およびオフセット「２，４」が含まれる。
【００８３】
また、取得した全てのレコードのデータの中に含まれる秘匿化された人物を特定することが可能なデータの中に、同一のデータが複数存在しないと判定した場合、および、グループデータを生成した場合には、秘匿化部２４ａは、次のような処理を行う。すなわち、秘匿化部２４ａは、取得または生成したキーを用いて、所定のハッシュ関数により、取得した全てのレコードのデータのうち、人物を特定することが可能な一部分のデータのハッシュ値、例えば、秘匿化された名前のデータに対して更にハッシュ値を生成する。なお、人物を特定することが可能なデータの一例として、名前のデータを挙げたが、人物を特定することが可能なデータはこれに限られない。秘匿化部２４ａは、人物の住所やＩＤなど、人物を特定することが可能なデータのハッシュ値であれば、同様の方法で、さらにハッシュ値を生成することができる。
【００８４】
続いて、秘匿化部２４ａは、取得した全てのレコードのデータのうち、秘匿化された人物を特定することが可能な一部分のデータを、生成したハッシュ値で置換する。これにより、人物を特定することが可能な一部分のデータは、再び秘匿化される。このように、秘匿化部２４ａは、装置２２ａ，２２ｂ，２２ｃで実行されたアプリケーションの種別ごとに異なるキーを用いて、秘匿化された人物を特定することが可能なデータのハッシュ値を生成し、かかるデータをハッシュ値で置換する。そのため、秘匿化部２４ａによれば、秘匿化された人物を特定することが可能なデータが同一であっても、アプリケーションごとに異なる秘匿結果となるように、秘匿化された人物を特定することが可能なデータを更に秘匿化することができる。それゆえ、秘匿化部２４ａによれば、秘匿化された人物を特定することが可能なデータが同一であっても、アプリケーションごとに、秘匿結果が異なるため、複数のアプリケーションのデータに共通するような、かかるデータの生成を抑制することができる。したがって、秘匿化部２４ａによれば、秘匿化されたデータの解読を困難にすることができる。
【００８５】
そして、秘匿化部２４ａは、人物を特定することが可能な一部分のデータがハッシュ値で置換されたデータについて、受信した指示に含まれる分析対象の項目のデータの秘匿化を解除する。例えば、秘匿化部２４ａは、人物を特定することが可能な一部分のデータがハッシュ値で置換されたデータについて、次のような処理を行う。すなわち、秘匿化部２４ａは、分析対象の項目のハッシュ値を、装置２１ａ，２１ｂや図示しない装置により秘匿化された際に用いられたキーと同一のキーを用いて、秘匿化された際に用いられたハッシュ関数と同一のハッシュ関数により、元のデータに戻す。
【００８６】
例えば、秘匿化部２４ａは、装置２２ａから、分析の対象となるデータの種別ＩＤ「１１」、アプリケーションＩＤ「Ａ」、および、分析対象の項目「売上」を含む、データ送信を行う旨の指示が受付部１９ａにより受信された場合には、次のような処理を行う。すなわち、秘匿化部２４ａは、人物を特定することが可能な一部分のデータがハッシュ値で置換されたデータのうち、分析対象の項目「売上」のハッシュ値を、元のデータに戻す。図１３は、秘匿化装置により異なるキーが用いられて名前のデータのハッシュ値が生成され、分析対象の項目「売上」のハッシュ値が元のデータに戻された場合のデータの一例を示す図である。例えば、種別ＩＤ「１１」に対応するテーブル１８ａ＿３に登録された全てのレコードのハッシュ値のデータを取得した場合には、図１３の例に示すように、秘匿化部２４ａは、分析対象の項目「売上」のハッシュ値「Ａ０１」を、元のデータ「２００」に戻す。また、秘匿化部２４ａは、分析対象の項目「売上」のハッシュ値「Ｂ０２」を、元のデータ「１００」に戻す。また、秘匿化部２４ａは、分析対象の項目「売上」のハッシュ値「Ｃ０３」を、元のデータ「３００」に戻す。また、秘匿化部２４ａは、分析対象の項目「売上」のハッシュ値「Ｄ０４」を、元のデータ「５００」に戻す。
【００８７】
送信制御部１９ｄは、秘匿化部２４ａにより人物を特定することが可能な一部分のデータが再秘匿化されたデータを、データを送信する指示を行ったアプリケーションを実行する装置に送信するように制御する。すなわち、送信制御部１９ｄは、分析対象の項目のデータの秘匿化が解除されたデータを、指示を送信した装置へ送信するように、かかるデータを通信部１７へ送信する。例えば、送信制御部１９ｄは、分析対象の項目「売上」のハッシュ値が、元のデータに戻された図１３に示すデータを装置２２ａへ送信するように、かかるデータを通信部１７へ送信する。また、送信制御部１９ｄは、秘匿化部２４ｄによりグループデータが生成された場合には、生成されたグループデータについても、指示を送信した装置へ送信するように、かかるグループデータを通信部１７へ送信する。
【００８８】
制御部２４は、ＡＳＩＣやＦＰＧＡなどの集積回路またはＣＰＵやＭＰＵなどの電子回路である。
【００８９】
装置２２ａ，２２ｂ，２２ｃは、各種の分析を行う装置である。例えば、装置２２ａは、ペットの購入者の購入履歴を示すデータを用いて、購入者ごとの売上を集計するためのアプリケーションを実行する。装置２２ａは、かかるアプリケーションを実行することにより、分析の対象となるデータの種別ＩＤ「１１」、アプリケーションＩＤ「Ａ」、および、分析対象の項目「売上」を含む、データ送信を行う旨の指示を秘匿化装置２０へ送信する。また、装置２２ａは、秘匿化装置２０から送信された、分析対象の項目「売上」のハッシュ値が、元のデータに戻されたデータを受信した場合には、購入者ごとの売上を集計する。これに加えて、装置２２ａは、秘匿化装置２０からグループデータが送信された場合には、グループデータに含まれるオフセットの位置が示すレコードが示す売上について、同一人物の売上として集計する。これにより、同一人物であっても、再秘匿された結果、異なるハッシュ値が生成された場合であっても、同一人物の分析を行うことができる。例えば、図１２の例に示すグループデータおよび図１３の例に示すデータを装置２２が受信した場合には、装置２２は、オフセット「２，４」が示す、図１３の例に示すデータの２番目のレコードの売上「１００」と４番目のレコードの売上「５００」とが同一人物「ａ１２３４５」の売上として集計する。図１４は、分析結果の一例を示す図である。図１４の例では、人物「ａ１２３４５」の売上の分析結果として売上「６００」を算出した場合が示されている。
【００９０】
次に、本実施例に係る秘匿化装置２０が実行する処理の流れを説明する。図１５は、秘匿化処理の手順を示すフローチャートである。この秘匿化処理は、例えば、装置２２ａ〜２２ｃから、分析の対象となるデータの種別ＩＤ、アプリケーションＩＤ、および、分析対象の項目を含む、データ送信を行う旨の指示を受信したタイミングで実行される。
【００９１】
図１５に示すように、Ｓ１１１の次に、秘匿化部２４ａは、取得した全てのレコードのデータの中に含まれる秘匿化された人物を特定することが可能なデータの中に、同一のデータが複数存在するか否かを判定する（Ｓ２０１）。同一のデータが複数存在する場合（Ｓ２０１肯定）には、秘匿化部２４ａは、次のような処理を行う。すなわち、秘匿化部２４ａは、取得または生成したキーを用いて、所定のハッシュ関数により、秘匿化された人物を特定することが可能なデータのうち、かかる同一のデータ以外のデータのハッシュ値を生成する（Ｓ２０２）。
【００９２】
続いて、秘匿化部２４ａは、複数存在すると判定された同一のデータが登録された複数のレコードのうち、未選択のレコードを１つ選択する（Ｓ２０３）。そして、秘匿化部２４ａは、取得した全レコードに対する選択したレコードの位置を示すオフセットを特定する（Ｓ２０４）。そして、秘匿化部２４ａは、取得または生成したキーを用いて、所定のハッシュ関数により、選択したレコードの上記の同一のデータに対して更にハッシュ値を生成する（Ｓ２０５）。
【００９３】
そして、秘匿化部２４ａは、複数存在すると判定された同一のデータが登録された複数のレコードのうち、未選択のレコードがあるか否かを判定する（Ｓ２０６）。未選択のレコードがある場合（Ｓ２０６肯定）には、秘匿化部２４ａは、未選択のレコードを１つ選択する（Ｓ２０７）。そして、秘匿化部２４ａは、取得した全レコードに対する選択したレコードの位置を示すオフセットを特定する（Ｓ２０８）。続いて、秘匿化部２４ａは、テーブル１８ｂに既に登録されたキー、および、既に生成したキーがある場合には生成したキーと同一のキーとならないように、新たなキーを生成する（Ｓ２０９）。そして、秘匿化部２４ａは、新たに生成したキーを用いて、所定のハッシュ関数により、選択したレコードの上記の同一のデータに対して更にハッシュ値を生成し（Ｓ２１０）、Ｓ２０６に戻る。
【００９４】
一方、未選択のレコードがないと判定した場合（Ｓ２０６否定）には、秘匿化部２４ａは、グループＩＤを生成する（Ｓ２１１）。続いて、秘匿化部２４ａは、グループＩＤおよび特定されたオフセットを含むグループデータを生成し（Ｓ２１２）、Ｓ１１３へ進む。
【００９５】
上述してきたように、本実施例に係る秘匿化装置２０は、装置２２ａ，２２ｂ，２２ｃで実行されたアプリケーションの種別ごとに異なるキーを用いて、秘匿化された人物を特定することが可能なデータのハッシュ値を生成し、秘匿化された人物を特定することが可能なデータをハッシュ値で置換する。そのため、秘匿化装置２０によれば、秘匿化された人物を特定することが可能なデータが同一であっても、アプリケーションごとに異なる秘匿結果となるように、秘匿化された人物を特定することが可能なデータを秘匿化することができる。それゆえ、秘匿化装置２０によれば、秘匿化された人物を特定することが可能なデータが同一であっても、アプリケーションごとに、秘匿結果が異なるため、複数のアプリケーションのデータに共通してしまうような、秘匿化された人物を特定することが可能なデータの生成を抑制することができる。したがって、秘匿化装置２０によれば、秘匿化されたデータの解読を困難にすることができる。
【００９６】
また、秘匿化装置２０は、秘匿化された人物を特定することが可能なデータの中に、同一のデータが複数存在する場合に、秘匿結果が異なるように、複数の同一のデータのそれぞれを秘匿化することができる。これにより、秘匿化されたデータの解読をより困難にすることができる。
【００９７】
なお、秘匿化装置２０により、秘匿化された人物を特定することが可能な一部分のデータがハッシュ値で置換されたデータについては、次のような方法で、元のデータに戻すことが可能である。すなわち、かかるデータについては、テーブル１８ｂに登録された対応するキー、および、装置２１ａ，２１ｂや図示しない装置により秘匿化された際に用いられたキーと同一のキーを用いて、元のデータに戻すことが可能である。
【００９８】
さて、これまで開示の装置に関する実施例について説明したが、本発明は上述した実施例以外にも、種々の異なる形態にて実施されてよいものである。そこで、以下では、本発明に含まれる他の実施例を説明する。
【００９９】
例えば、秘匿化装置１０，２０が物理サーバである場合について例示したが、開示の装置はこれに限定されない。例えば、物理サーバがＶＭを稼働させ、ＶＭが秘匿化装置１０，２０が実行する処理と同様の処理を行うようにしてもよい。
【０１００】
また、実施例において説明した各処理のうち、自動的に行われるものとして説明した処理の全部または一部を手動的に行うこともできる。また、本実施例において説明した各処理のうち、手動的に行われるものとして説明した処理の全部または一部を公知の方法で自動的に行うこともできる。
【０１０１】
また、各種の負荷や使用状況などに応じて、各実施例において説明した各処理の各ステップでの処理を任意に細かくわけたり、あるいはまとめたりすることができる。また、ステップを省略することもできる。
【０１０２】
また、各種の負荷や使用状況などに応じて、各実施例において説明した各処理の各ステップでの処理の順番を変更できる。
【０１０３】
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的状態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。
【０１０４】
［秘匿化プログラム］
また、上記の実施例で説明した秘匿化装置１０，２０の各種の処理は、あらかじめ用意されたプログラムをパーソナルコンピュータやワークステーションなどのコンピュータシステムで実行することによって実現することもできる。そこで、以下では、図１６を用いて、上記の各実施例で説明した秘匿化装置または管理サーバと同様の機能を有する秘匿化プログラムを実行するコンピュータの一例を説明する。図１６は、秘匿化プログラムを実行するコンピュータを示す図である。
【０１０５】
図１６に示すように、コンピュータ３００は、ＣＰＵ（Central  Processing  Unit）３１０、ＲＯＭ（Read  Only  Memory）３２０、ＨＤＤ（Hard  Disk  Drive）３３０、ＲＡＭ（Random  Access  Memory）３４０を有する。また、コンピュータ３００は、入力装置３６０、通信装置３７０を有する。これら３１０、３２０、３３０、３４０、３６０、３７０の各符号が示す各機器は、バス３５０を介して接続される。
【０１０６】
ＲＯＭ３２０には、ＯＳなどの基本プログラムが記憶されている。また、ＨＤＤ３３０には、上記の各実施例で示す受付部、登録部、秘匿化部および送信制御部と同様の機能を発揮する秘匿化プログラム３３０ａが予め記憶される。なお、秘匿化プログラムについては、適宜分離しても良い。また、ＨＤＤ３３０には、ＤＢ、テーブルが設けられる。これらＤＢ、テーブルは、上述したＤＢ１８ａ、テーブル１８ｂに対応する。
【０１０７】
そして、ＣＰＵ３１０が、秘匿化プログラム３３０ａをＨＤＤ３３０から読み出して実行する。
【０１０８】
そして、ＣＰＵ３１０は、ＤＢ、テーブルを読み出してＲＡＭ３４０に格納する。さらに、ＣＰＵ３１０は、ＲＡＭ３４０に格納されたＤＢ、テーブルを用いて、秘匿化プログラム３３０ａを実行する。なお、ＲＡＭ３４０に格納される各データは、常に全てのデータがＲＡＭ３３０に格納されなくともよい。処理に用いられるデータがＲＡＭ３４０に格納されれば良い。
【０１０９】
なお、上記した秘匿化プログラム３３０ａについては、必ずしも最初からＨＤＤ３３０に記憶させておく必要はない。
【０１１０】
例えば、コンピュータ３００に挿入されるフレキシブルディスク（ＦＤ）、ＣＤ−ＲＯＭ、ＤＶＤディスク、光磁気ディスク、ＩＣカードなどの「可搬用の物理媒体」にプログラムを記憶させておく。そして、コンピュータ３００がこれらからプログラムを読み出して実行するようにしてもよい。  
【０１１１】
さらには、公衆回線、インターネット、ＬＡＮ、ＷＡＮなどを介してコンピュータ３００に接続される「他のコンピュータ（またはサーバ）」などにプログラムを記憶させておく。そして、コンピュータ３００がこれらからプログラムを読み出して実行するようにしてもよい。
【符号の説明】
【０１１２】
１０      秘匿化装置
１８      記憶部
１８ａ    ＤＢ
１８ｂ    テーブル
１９      制御部
１９ａ    受付部
１９ｂ    登録部
１９ｃ    秘匿化部
１９ｄ    送信制御部
【図１】
2014011503.tif 000003
【図２】
2014011503.tif 000004
【図３】
2014011503.tif 000005
【図４】
2014011503.tif 000006
【図５】
2014011503.tif 000007
【図６】
2014011503.tif 000008
【図７】
2014011503.tif 000009
【図８】
2014011503.tif 000010
【図９】
2014011503.tif 000011
【図１０】
2014011503.tif 000012
【図１１】
2014011503.tif 000013
【図１２】
2014011503.tif 000014
【図１３】
2014011503.tif 000015
【図１４】
2014011503.tif 000016
【図１５】
2014011503.tif 000017
【図１６】
2014011503.tif 000018
【図１７】
2014011503.tif 000019
【図１８】
2014011503.tif 000020
【図１９】
2014011503.tif 000021
【図２０】
2014011503.tif 000022
【図２１】
2014011503.tif 000023
【図２２】
2014011503.tif 000024