(57)【特許請求の範囲】
【請求項１】
１台以上の暗号化装置、匿名化装置及び復号装置を備えた匿名化システムであって、
前記暗号化装置は、
各項目毎に値を含む個人データを記憶する第１記憶手段と、
大小比較可能な暗号方式における共通鍵を記憶する鍵記憶手段と、
前記個人データに含まれる各項目の値を前記共通鍵に基づいて暗号化する処理により、当該個人データから暗号化データを生成する暗号化手段と、
を備え、
前記匿名化装置は、
前記暗号化装置により生成された前記暗号化データを記憶する第２記憶手段と、
前記第２記憶手段内の前記暗号化データのうちの一部の項目の値を復号せずに匿名化する処理により、当該暗号化データから暗号化匿名化データを生成する匿名化手段と、
を備え、
前記復号装置は、
前記匿名化装置により生成された前記暗号化匿名化データを記憶する第３記憶手段と、
前記共通鍵を格納する鍵格納手段と、
前記鍵格納手段内の共通鍵に基づいて、前記第３記憶手段内の前記暗号化匿名化データを復号する処理により、当該暗号化匿名化データから匿名化データを生成する復号手段と、
を備え、
前記暗号化装置は、前記匿名化する処理に用いる匿名用パラメータであるしきい値を前記共通鍵に基づいて暗号化することにより、暗号化しきい値を生成するしきい値暗号化手段、を備えており、
前記匿名化手段は、前記暗号化データのうちの一部の項目の値と、前記生成された前記暗号化しきい値とを大小比較し、比較結果に応じて当該一部の項目の値を匿名化する処理により、前記暗号化データから前記暗号化匿名化データを生成する
ことを特徴とする匿名化システム。
【請求項２】
１台以上の暗号化装置、匿名化装置及び復号装置を備えた匿名化システムであって、
前記暗号化装置は、
各項目毎に値を含む個人データを記憶する第１記憶手段と、
大小比較可能な暗号方式における共通鍵を記憶する鍵記憶手段と、
前記個人データに含まれる各項目の値を前記共通鍵に基づいて暗号化する処理により、当該個人データから暗号化データを生成する暗号化手段と、
を備え、
前記匿名化装置は、
前記暗号化装置により生成された前記暗号化データを記憶する第２記憶手段と、
前記共通鍵を取得する鍵取得手段と、
前記第２記憶手段内の前記暗号化データのうちの一部の項目の値を復号せずに匿名化する処理により、当該暗号化データから暗号化匿名化データを生成する匿名化手段と、
を備え、
前記復号装置は、
前記匿名化装置により生成された前記暗号化匿名化データを記憶する第３記憶手段と、
前記共通鍵を格納する鍵格納手段と、
前記鍵格納手段内の共通鍵に基づいて、前記第３記憶手段内の前記暗号化匿名化データを復号する処理により、当該暗号化匿名化データから匿名化データを生成する復号手段と、
を備え、
前記匿名化装置は、前記匿名化する処理に用いる匿名用パラメータであるしきい値を前記共通鍵に基づいて暗号化することにより、暗号化しきい値を生成するしきい値暗号化手段、を備えており、
前記匿名化手段は、前記暗号化データのうちの一部の項目の値と、前記生成された前記暗号化しきい値とを大小比較し、比較結果に応じて当該一部の項目の値を匿名化する処理により、前記暗号化データから前記暗号化匿名化データを生成する
ことを特徴とする匿名化システム。
【請求項３】
請求項１又は請求項２に記載の匿名化システムにおいて、
前記匿名化手段は、前記比較結果に応じて前記一部の項目の値を前記暗号化しきい値に置き換えることにより、当該一部の項目の値を匿名化する、匿名化システム。
【請求項４】
請求項１に記載の匿名化システムにおいて、
前記しきい値は、前記匿名化する処理がグルーピングである場合に用いるグループ上限値またはグループ下限値であり、
前記暗号化装置は、前記匿名化する処理がグルーピングである場合に用いるグループ代表値を前記共通鍵に基づいて暗号化することにより、暗号化代表値を生成する代表値暗号化手段、を更に備えており、
前記匿名化手段は、前記比較結果に応じて前記一部の項目の値を前記暗号化代表値に置き換えることにより、当該一部の項目の値を匿名化する、匿名化システム。
【請求項５】
請求項２に記載の匿名化システムにおいて、
前記しきい値は、前記匿名化する処理がグルーピングである場合に用いるグループ上限値またはグループ下限値であり、
前記匿名化装置は、前記匿名化する処理がグルーピングである場合に用いるグループ代表値を前記共通鍵に基づいて暗号化することにより、暗号化代表値を生成する代表値暗号化手段、を更に備えており、
前記匿名化手段は、前記比較結果に応じて前記一部の項目の値を前記暗号化代表値に置き換えることにより、当該一部の項目の値を匿名化する、匿名化システム。
【請求項６】
請求項１乃至請求項５のいずれか一項に記載の匿名化システムにおいて、
前記匿名化データは、前記個人データのうち、前記一部の項目の値が匿名化された値と、前記一部の項目以外の項目の値とを含む情報であり、
前記暗号化匿名化データは、前記暗号化データに含まれる前記一部の項目の暗号化された値が匿名化された値と、前記暗号化データに含まれる前記一部の項目以外の項目の値とを含む情報であることを特徴とする匿名化システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、匿名化システムに関する。
【背景技術】
【０００２】
近年、顧客情報やカルテ情報等の大量の個人データを所有する企業等（以下、データ所有者という）が増加している。データ所有者の幾つかは、大量の個人データに統計的な処理を施して得られる情報をビジネス・顧客の傾向予測や病気の予防等の用途に用い、ビジネス上の新たな知見を得ることや、新たなサービスを始めることを検討している。
【０００３】
しかしながら、個人データを前述した用途に用いる場合、プライバシーを保護するよう、個人データの取扱いに細心の注意を求められる。加えて、データ所有者は、統計処理の専門性が高いことから、統計処理を施す会社またはサービス（以下、データ分析者という）を外部サービスとして利用することになる。このため、データ所有者は、より一層のプライバシー保護や用途の説明及び適切な運用等を実施しなければならない。この種の運用としては、例えば、データ分析者に提供する個人データの情報量を削減するといったことが挙げられる。但し、プライバシー保護の観点から個人データの情報量を削減しすぎると、有益な分析結果が得られない。
【０００４】
よって、多くの場合、個人データの情報量を可能な限り低減せずに、個人の特定を困難又は不可能にする匿名化処理が用いられる。このとき、データ所有者は、大量の個人データに匿名化処理を施し、得られた匿名化データを、統計処理を行う外部のデータ分析者に提供する。
【０００５】
一方、外部サービスの一例として、クラウドコンピューティングサービス（以下、クラウドサービスともいう）がある。近年、クラウドサービスの普及に伴い、大量データを管理する設備がデータ所有者の社内サーバから社外のクラウドサービスに移行しつつある。このときも同様に、データ所有者は、大量の個人データに暗号化処理又は匿名化処理を施し、得られた暗号化データ又は匿名化データをクラウドサービスに管理させる等のセキュリティ対策を講じている。
【０００６】
また、自動販売機、エレベータ、プラント設備等の各機器（情報機器以外の装置）がセンサ、処理装置及び通信装置等を備え、人間の介在なしにネットワークを介して情報交換や遠隔監視・制御等を行うＭ２Ｍ（machine to machine）サービスが普及してきている。このようなＭ２Ｍサービスにおいても、各機器から収集した大量の情報を利用するサービスが今後実現されていくと推測される。
【０００７】
Ｍ２Ｍサービスでは、同様に、収集する情報に含まれる個人データ等にはセキュリティ対策が求められる。一方、セキュリティ対策として、収集した情報に暗号化処理を施すと、得られた暗号化データを分析することができない。これに対し、セキュリティ対策として、収集した情報に匿名化処理を施すと、得られた匿名化データを分析することができる。匿名化データは、個人、機器及び場所情報等を特定できない状態であるものの、統計処理による分析が可能なため、プライバシー保護の観点から好ましい。
【０００８】
匿名化処理の代表的な方法としては、例えば、削除、仮名化、トップコーディング、グルーピング、リサンプリング、ソート、スワッピング、誤差の導入、などが挙げられる（例えば、非特許文献１を参照。）。
【０００９】
ここで、「削除」は、世帯や居住地等のように、個人を直接又は間接的に特定できる識別情報を削除する方法である。
【００１０】
「仮名化」は、氏名等のように、個人を直接的に特定できる識別情報を削除し、別のＩＤや仮名をつける方法である。
【００１１】
「トップコーディング」は、年齢や世帯人数等の属性のように、特に大きい値や小さい値をもつ個人を特定し易くする特殊な属性をまとめる方法である。例えば、特に大きい値や小さい値を、上側しきい値以上、下側しきい値以下というようにまとめる。
【００１２】
「グルーピング」は、年齢等の属性のように、特定の値をグループ分けして、階級区別に変更する方法である。年齢の場合、例えば、特定の値「２３歳」を、階級区別「２０代」に変更する。
【００１３】
「リサンプリング」は、全体から８０％のデータをランダムに抽出して提供する等のように、全てのデータのうちの一部のデータだけをデータ分析者に提供する方法である。
【００１４】
「ソート」は、データのレコードの配列順を並び替えることでランダムにし、個人の特定を不可能にする方法である。
【００１５】
「スワッピング」は、２人分のデータ間における当該２人の年齢の入れ替え又は身長の入れ替えのように、２つのレコードの間で一部の属性の値を入れ替える方法である。
【００１６】
「誤差の導入」は、例えば、身長に誤差を導入するといったように、レコードの一部の属性に誤差を導入する方法である。
【先行技術文献】
【非特許文献】
【００１７】
【非特許文献１】「匿名データの作成・提供に係るガイドライン  別紙2  匿名化処理の技法」、[online]、平成２３年３月２８日、総務省、［平成26年4月25日検索］、インターネット＜ＵＲＬ： http://www.stat.go.jp/index/seido/pdf/35glv4.pdf＞
【発明の概要】
【発明が解決しようとする課題】
【００１８】
以上のような匿名化処理は、通常は特に問題ないが、本発明の検討によれば、以下の（Ａ）データ所有者が暗号化データを外部サービスに保存する場合と、（Ｂ）Ｍ２Ｍサービスが暗号化データを外部サービスに保存する場合と、のいずれの場合においても改良の余地がある。以下、クラウドサービスを外部サービスの一例として述べる。
【００１９】
（Ａ）データ所有者が単純に個人データを暗号化し、得られた暗号化データをクラウドシステムに保存した場合、データ所有者は、暗号化データをダウンロードして復号し、得られた個人データを匿名化し、匿名化データをデータ分析者に提供することになる。ここで、データ所有者は、暗号化データをダウンロードして復号したとき、全ての個人データを得る。この状況は、データ所有者にとってはクラウドシステムを用いる意味があまりないため、好ましくない。なお、データ所有者が全ての個人データを得る状況は、データ所有者が暗号化データを復号しなければ、回避できると推測される。
【００２０】
これに伴い、データ所有者が暗号化データをデータ分析者側で復号可能なように変換してデータ分析者に提供する場合を検討する。この場合、データ所有者が全ての個人データを得る状況を回避できるものの、データ分析者により復号された個人データが匿名化されてないため、プライバシー保護の観点から好ましくない。
【００２１】
また、データ所有者が暗号化データを復号せずに、個人データを匿名化する観点から、クラウドシステムが暗号化データを復号して匿名化する場合を検討する。この場合、復号により得られた個人データがクラウドシステム上に展開されるため、セキュリティの観点から好ましくない。
【００２２】
さらに、データ所有者が個人データを匿名化し、匿名化データを暗号化し、暗号化データをクラウドシステムに保存し、データ分析者がクラウドシステム内の暗号化データをダウンロードして復号する場合を検討する。この場合、クラウドシステム内の暗号化データは、原本の個人データから情報量が削減された匿名化データが暗号化されている。このとき、クラウドシステムとは別に原本の個人データを管理する必要がデータ所有者に生じるため、データ所有者にはクラウドシステムを用いる意味がなく、好ましくない。
【００２３】
（Ｂ）データ所有者は、Ｍ２Ｍサービスの各機器により情報の収集や遠隔監視・制御を行う場合、収集した情報内の個人データから情報量を削減した匿名化データをデータ分析者に提供する必要がある。ここで、データ所有者が個人データを収集してクラウドシステムに保存する場合、データ所有者の負担が大きいため、個人データを収集した機器が当該個人データをクラウドシステムに保存する方が好ましい。但し、個人データを収集した機器が個人データをクラウドシステムに保存する場合でも、セキュリティの観点から、個人データを暗号化して得られた暗号化データをクラウドシステムに保存する必要がある。
【００２４】
しかしながら、このように暗号化データをクラウドシステムに保存した場合、上記（Ａ）と同様に、データ所有者が暗号化データをダウンロードして復号したとき、全ての個人データを得るという、好ましくない状況になる。
【００２５】
なお、クラウドシステムに保存された暗号化データを、データ所有者に復号処理や匿名化処理等の負担をかけずに匿名化してデータ分析者に提供する方法は知られていない。
【００２６】
本発明者の検討によれば、上記（Ａ）及び（Ｂ）の場合の好ましくない状況は、個人データを暗号化して得られた暗号化データを復号せずに匿名化できれば、回避できると推測される。
【００２７】
本発明が解決しようとする課題は、個人データを暗号化して得られた暗号化データを復号せずに匿名化し得る匿名化システムを提供することである。
【課題を解決するための手段】
【００２８】
実施形態の匿名化システムは、１台以上の暗号化装置、匿名化装置及び復号装置を備えている。
【００２９】
前記暗号化装置は、第１記憶手段及び暗号化手段を備えている。
【００３０】
前記第１記憶手段は、各項目毎に値を含む個人データを記憶する。
【００３１】
前記暗号化手段は、前記個人データに含まれる各項目の値を暗号化する処理により、当該個人データから暗号化データを生成する。
【００３２】
前記匿名化装置は、第２記憶手段及び匿名化手段を備えている。
【００３３】
前記第２記憶手段は、前記暗号化装置により生成された前記暗号化データを記憶する。
【００３４】
前記匿名化手段は、前記第２記憶手段内の前記暗号化データのうちの一部の項目の値を復号せずに匿名化する処理により、当該暗号化データから暗号化匿名化データを生成する。
【００３５】
前記復号装置は、第３記憶手段及び復号手段を備えている。
【００３６】
前記第３記憶手段は、前記匿名化装置により生成された前記暗号化匿名化データを記憶する。
【００３７】
前記復号手段は、前記第３記憶手段内の前記暗号化匿名化データを復号する処理により、当該暗号化匿名化データから匿名化データを生成する。
【図面の簡単な説明】
【００３８】
【図１】第１の実施形態に係る匿名化システム及びその周辺構成を示す模式図である。
【図２】同実施形態における変形例の構成を示す模式図である。
【図３】同実施形態における個人データの一例を示す模式図である。
【図４】同実施形態における動作を説明するためのシーケンス図である。
【図５】同実施形態における暗号化データの一例を示す模式図である。
【図６】同実施形態における暗号化匿名化データの一例を示す模式図である。
【図７】同実施形態における変形例の動作を説明するためのシーケンス図である。
【図８】同実施形態における変形例の変形動作を説明するためのシーケンス図である。
【図９】第２の実施形態に係る匿名化システム及びその周辺構成を示す模式図である。
【図１０】同実施形態における動作を説明するためのシーケンス図である。
【図１１】第３の実施形態における動作を説明するためのシーケンス図である。
【図１２】同実施形態における個人データの一例を示す模式図である。
【図１３】同実施形態における暗号化データの一例を示す模式図である。
【図１４】同実施形態における暗号化匿名化データの一例を示す模式図である。
【図１５】第４の実施形態に係る匿名化システム及びその周辺構成を示す模式図である。
【図１６】同実施形態における動作を説明するためのシーケンス図である。
【図１７】第５の実施形態における動作を説明するためのシーケンス図である。
【図１８】同実施形態における個人データの一例を示す模式図である。
【図１９】同実施形態における暗号化データの一例を示す模式図である。
【図２０】同実施形態における暗号化匿名化データの一例を示す模式図である。
【図２１】第６の実施形態における動作を説明するためのシーケンス図である。
【図２２】第７の実施形態における動作を説明するためのシーケンス図である。
【図２３】第９の実施形態に係る匿名化システム及びその周辺構成を示す模式図である。
【図２４】同実施形態における動作を説明するためのシーケンス図である。
【図２５】同実施形態における暗号化データの一例を示す模式図である。
【図２６】同実施形態における暗号化匿名化データの一例を示す模式図である。
【図２７】同実施形態における変形例の構成を示す模式図である。
【図２８】同実施形態における変形例の動作を説明するためのシーケンス図である。
【図２９】同実施形態における変形例の変形動作を説明するためのシーケンス図である。
【図３０】第１０の実施形態に係る匿名化システム及びその周辺構成を示す模式図である。
【図３１】同実施形態における動作を説明するためのシーケンス図である。
【図３２】第１１の実施形態における動作を説明するためのシーケンス図である。
【図３３】同実施形態における暗号化データの一例を示す模式図である。
【図３４】同実施形態における暗号化匿名化データの一例を示す模式図である。
【図３５】第１２の実施形態における動作を説明するためのシーケンス図である。
【図３６】第１３の実施形態における動作を説明するためのシーケンス図である。
【図３７】同実施形態における暗号化データの一例を示す模式図である。
【図３８】同実施形態における暗号化匿名化データの一例を示す模式図である。
【図３９】同実施形態における変形例の動作を説明するためのシーケンス図である。
【図４０】同実施形態における変形例の変形動作を説明するためのシーケンス図である。
【図４１】第１４の実施形態に係る匿名化システム及びその周辺構成を示す模式図である。
【図４２】同実施形態における動作を説明するためのシーケンス図である。
【図４３】各実施形態の概要を説明するための模式図である。
【図４４】各実施形態の概要を説明するための模式図である。
【発明を実施するための形態】
【００３９】
以下、各実施形態について図面を用いて説明するが、その前に、各実施形態に個別に用いられる各種の暗号方式等について述べる。また、各実施形態に用いられる各装置は、それぞれハードウェア構成、又はハードウェア資源とソフトウェアとの組合せ構成のいずれでも実施可能となっている。組合せ構成のソフトウェアとしては、予めネットワーク又は記憶媒体から対応する装置のコンピュータにインストールされ、対応する装置の機能を実現させるためのプログラムが用いられる。
【００４０】
＜各種の暗号方式＞
暗号化したデータを用いて統計処理を行う技術として、暗号化した状態で元のデータに対して、加減算や大小比較といった各種処理を実行可能な方式が知られている。この種の方式としては、例えば、第１の文献（[Paillier]）、第２の文献（[OPE]）、第３の文献（[HLP10]）及び第４の文献（[AN2013-51001]）にそれぞれ記載されている第１乃至第４の方式がある。ここで、各文献（[Paillier]、[OPE]、[HLP10]、[AN2013-51001]）に関する情報は、次の通りである。
【００４１】
[Paillier] Pascal Paillier, Public-Key Cryptosystems Based on Composite Degree Residuosity Classes, EUROCRYPT 1999, pp223-238.
[OPE] A. Boldyreva, N. Chenette, Y. Lee and A. O'Neill. Order-preserving symmetric encryption. In Eurocrypt '09, pp. 224{241. Springer, 2009.
[HLP10] C-Y. Hsu, C-S. Lu, S-C. Pei, “Homomorphic Encryption-based Secure SIFT for Privacy-Preserving Feature Extraction”, Proceedings of SPIE - The International Society for Optical Engineering, 2011.
[AN2013-51001] 特願2013-051001 （出願日：2013年3月13日）。
【００４２】
第１の方式は、暗号化した状態で加減算が可能な暗号方式（以下、準同型暗号と呼ぶ）であり、[Paillier]方式とも呼ぶ。
【００４３】
第２の方式は、暗号文の大小関係と対応する平文の大小関係が一致する順序保存暗号（Order Preserving Encryption）方式であり、[OPE]方式とも呼ぶ。
【００４４】
第３の方式は、準同型暗号で、かつ大小比較が可能な方式であり、[HLP10]方式とも呼ぶ。
【００４５】
第４の方式は、準同型暗号で、かつ大小比較が可能な方式であり、[AN2013-51001]方式とも呼ぶ。
【００４６】
各実施形態では、この種の方式を用いて、暗号化したデータを匿名化する。このとき、元のデータが暗号化された状態のため、匿名化の前に、暗号化したデータを外部に出力できる。従って、暗号化したデータをクラウド等の外部サービスに保管できる。また、暗号化したデータを匿名化して得られた暗号化匿名化データを復号し、匿名化データを得るようにしてもよい。
【００４７】
次に、暗号化した状態で演算を行う各方式の代表的なアルゴリズムについて説明する。
【００４８】
始めに、（加法的な）準同型暗号方式（[Paillier]方式）について述べる。[Paillier]方式の基本的なモデルは、以下の鍵生成、暗号化、暗号文の加算、暗号文の減算、復号の５つの関数（以下、アルゴリズムともいう）からなる。
【００４９】
（鍵生成）KeyGen（１k）→（pkA，skA）
鍵生成アルゴリズムKeyGenは、セキュリティパラメータ１kが入力されると、公開鍵pkAと秘密鍵skAの組（pkA，skA）を出力する。
【００５０】
（暗号化）Enc（pkA，ｍ1）→ＣA,m1
暗号化アルゴリズムEncは、ユーザAの公開鍵pkAと平文m1が入力されると、ユーザA宛の暗号文CA,m1を出力する。
【００５１】
（暗号文の加算）Add（ＣA,m1，ＣA,m2）→ＣA,m1+m2
加算アルゴリズムAddは、ユーザA宛の暗号文CA,m1とCA,m2が入力されると、ユーザA宛の暗号文CA,m1+m2を出力する。
【００５２】
（暗号文の減算）Sub（ＣA,m1，ＣA,m2）→ＣA,m1-m2
減算アルゴリズムSubは、ユーザA宛の暗号文CA,m1とCA,m2が入力されると、ユーザA宛の暗号文CA,m1-m2を出力する。
【００５３】
（復号）Dec（skA，ＣA,m1+m2）→m1+m2
復号アルゴリズムDecは、ユーザAの秘密鍵skAとユーザA宛の暗号文CA,m1+m2が入力されると、平文m1+m2を出力する。
【００５４】
次に、大小比較可能な順序保存暗号方式（[OPE]方式）について述べる。[OPE]方式の基本的なモデルは、以下の鍵生成、暗号化、暗号文の比較、復号の４つの関数（以下、アルゴリズムともいう）からなる。
【００５５】
（鍵生成）KeyGen（１k）→（skA）
鍵生成アルゴリズムKeyGenは、セキュリティパラメータ１kが入力されると、秘密鍵skAを出力する。
【００５６】
（暗号化）Enc（skA，ｍ１）→ＣA,ｍ１
暗号化アルゴリズムEncは、秘密鍵skAと平文m1が入力されると、暗号文CA,m1を出力する。
【数１】
0006309866.tif 000002
【００５７】
暗号文の比較アルゴリズムCompは、暗号文CA,m1とCA,m2が入力されると、m1がm2より大きなときは1を、m1とm2が等しいときは0を、m1がm2よりも小さいときは-1を出力する。
【００５８】
（復号）Dec（skA，ＣA,m1）→ m1
復号アルゴリズムDecは、秘密鍵skAと暗号文CA,m1が入力されると、平文m1を出力する。
【００５９】
次に、（加法的な）準同型暗号方式と大小比較可能な暗号方式（[HLP10]方式、[AN2013-51001]方式）の性質を保持する暗号方式について述べる。この暗号方式の基本的なモデルは、以下の鍵生成、暗号化、暗号文の加算、暗号文の減算、暗号文の比較、復号の６つの関数（以下、アルゴリズムともいう）からなる。
【００６０】
（鍵生成）KeyGen（１k）→（skA）
鍵生成アルゴリズムKeyGenは、セキュリティパラメータ１kが入力されると、秘密鍵skAを出力する。
【００６１】
（暗号化）Enc（skA，ｍ1）→ＣA,m1
暗号化アルゴリズムEncは、秘密鍵skAと平文m1が入力されると、暗号文CA,m1を出力する。
【００６２】
（暗号文の加算）Add（ＣA,m1，ＣA,m2）→ＣA,m1+m2
加算アルゴリズムAddは、暗号文CA,m1とCA,m2が入力されると、暗号文CA,m1+m2を出力する。
【００６３】
（暗号文の減算）Sub（ＣA,m1，ＣA,m2）→ＣA,m1-m2
減算アルゴリズムSubは、暗号文CA,m1とCA,m2が入力されると、暗号文CA,m1-m2を出力する。
【数２】
0006309866.tif 000003
【００６４】
暗号文の比較アルゴリズムCompは、暗号文CA,m1とCA,m2が入力されると、m1がm2より大きなときは1を、m1とm2が等しいときは0を、m1がm2よりも小さいときは-1を出力する。
【００６５】
（復号）Dec（skA，ＣA,m1+m2）→ m1+m2
復号アルゴリズムDecは、秘密鍵skAと暗号文CA,m1+m2が入力されると、平文m1+m2を出力する。
【００６６】
また、上述したモデルに基づく、[AN2013-51001]方式の各関数の具体的なアルゴリズムの一例を述べる。他の方式とは異なり、この[AN2013-51001]方式については、本願出願時に未公開のため、各関数のアルゴリズムの一例を詳細に述べる。
【００６７】
（鍵生成）KeyGen（１k）→（a、gsｖ、g、N、a-1、s、v）
鍵生成アルゴリズムKeyGenは、セキュリティパラメータ１kが入力されると、暗号化鍵a、gsv、g、N、二次演算鍵a-1、s、N、三次演算鍵v、N、及び復号鍵sv、a-1、N（又はs、v、a-1、N）を出力する。
【００６８】
以下、この鍵生成アルゴリズムKeyGenによる鍵生成処理の一例を具体的に述べる。
【００６９】
始めに、鍵生成アルゴリズムKeyGenは、ｐ’＝（ｐ−１）／２，ｑ’＝（ｑ−１）／２が素数となる素数ｐ，ｑを生成する。素数ｐ，ｑは、上記セキュリティパラメータ１kに対応するセキュリティパラメータλに基づいて、合成数Ｎ＝ｐｑのビット数がλ又はλより大きい値となるように生成される。
【００７０】
次に、鍵生成アルゴリズムKeyGenは、パラメータｐｐ’ｑｑ’及びＮを計算する。
【００７１】
次に、鍵生成アルゴリズムKeyGenは、位数がｐｐ’ｑｑ’である乗法群Ｇを生成し、Ｇの元ｇをＧからランダムに選択する。位数がｐｐ’ｑｑ’である乗法群Ｇを生成するには、例えば、ＺＮ2＊の元をＺＮ2＊からランダムに選択し、選択した元を二乗して得られた値をｇとすれば良い。ここで、ＺＮ2＊はＺＮ2かつＮ２と互いに素な整数の集合（＝（Ｚ／Ｎ２Ｚ）＊）であり、合成数Ｎ２に対する乗法群ＺＮ2＊と呼んで良い。ＺＮ2は０以上Ｎ２未満の整数の集合（＝（Ｚ／Ｎ２Ｚ）である。
【数３】
0006309866.tif 000004
【００７２】
次に、鍵生成アルゴリズムKeyGenは、先に計算したパラメータｐｐ’ｑｑ’及びＮに基づき、各鍵の一部ａ，ｓ，ｖを集合｛１，…，ｐｐ’ｑｑ’｝からそれぞれランダムに選択する。
【００７３】
続いて、鍵生成アルゴリズムKeyGenは、ａ・ａ−１ｍｏｄＮ２＝１を満たすａ−１の値と、ｇｓｖの値とを計算する。しかる後、鍵生成アルゴリズムKeyGenは、暗号化鍵ａ，ｇｓｖ，ｇ，Ｎ、二次演算鍵ａ−１，ｓ，Ｎ、三次演算鍵ｖ，Ｎ、、及び復号鍵ｓｖ、ａ-1、Ｎ（又はｓ、ｖ、ａ-1、Ｎ）を出力する。
【００７４】
なお、暗号化鍵は、ａ，ｓｖ，ｇ，Ｎであっても良いし、ａ，ｓ，ｖ，ｇ，Ｎであっても良い。また、ｇ，Ｎ，Ｎ２は暗号化鍵、二次演算鍵、及び三次演算鍵に含めず、公開パラメータとして各装置に対して公開しておいても良い。まとめると、暗号鍵はａ，ｓ，ｖ（又はａ，ｓｖ）を含む。二次演算鍵はａ−１，ｓを含む。三次演算鍵はｖを含む。
【００７５】
これらのことは、後述する各実施形態及び各変形例においても同様である。
【００７６】
以上により、鍵生成処理が完了する。なお、本明細書では、Ｇを乗法群と想定した記法を採用しているが、これに限らず、Ｇを加法群と想定した記法で表すことも可能である。
【００７７】
（暗号化）Enc（ｍ）→Ｃ＝(C1、C2)
暗号化アルゴリズムEncは、暗号化鍵と平文mが入力されると、暗号文C=(C1、C2)を出力する。
【００７８】
以下、この暗号化アルゴリズムEncによる暗号化処理の一例を具体的に述べる。
【００７９】
ここでは、暗号化アルゴリズムEncがｋ（ｋは自然数）個の平文（暗号化対象の数値データ）ｍ１，…，ｍｋを暗号化する例を説明する。各平文ｍｉはＺＮの元である。ＺＮは０以上Ｎ未満の整数の集合（＝（Ｚ／ＮＺ）である。
【００８０】
始めに、暗号化アルゴリズムEncは、ｋ個の乱数ｒ１，…，ｒｋをＺＮ2＊からランダムにそれぞれ選択する。次に、暗号化アルゴリズムEncは、生成した乱数ｒ１，…，ｒｋと、前述した暗号化鍵ａ，ｇｓｖ，ｇ，Ｎとを用いて、次式により平文ｍ１，…，ｍｋを暗号化する。
【数４】
0006309866.tif 000005
【００８１】
これにより、暗号文Ｃｉ（ｉ＝１，…，ｋ）が生成される。なお、暗号化鍵ａは、鍵生成アルゴリズムKeyGenを備えた鍵生成装置が生成しても良く、鍵生成アルゴリズムKeyGenを備えた暗号化装置が生成しても良い。後者の場合、鍵生成装置は、暗号化鍵ｇｓｖ，ｇ，Ｎを暗号化装置に送信し、暗号化装置は、暗号化鍵ａを生成し、また、ａ−１の値を計算する。なお、暗号化装置は、ｐｐ’ｑｑ’の値を知らない場合、暗号化鍵ａをＺＮ2＊の中からランダムに選択すれば良い。
【００８２】
以上により、暗号化処理が完了する。
【００８３】
（暗号文の一次演算処理）Cal1st（C）→Ｘ＝(X1、X2)
一次演算処理アルゴリズムCal1stは、暗号文Cが入力されると、一次演算結果X＝(X1、X2)を出力する。
【００８４】
以下、この一次演算処理アルゴリズムCal1stによる一次演算処理の一例を具体的に述べる。
【００８５】
この例の一次演算処理は、暗号文（暗号化データ）を加減算する処理である。
【００８６】
一次演算処理としては、後述する三次演算処理により次式Ｆの正負が判定される場合を例に挙げて述べる。
【数５】
0006309866.tif 000006
【００８７】
ここで、ｎｉは任意の整数である。また、Ｋは、式Ｆの計算に必要なインデックスｉの集合である。例えば、Ｆ＝２ｍ１−ｍ２の場合、ｎ１＝２，ｎ２＝−１，Ｋ＝｛１，２｝である。また、加減算の式Ｆにおける被減数ｍａと減数ｍｂとの間の大小関係を判定したい場合、例えば、Ｆ＝ｍａ−ｍｂ＝３ｍ２−４ｍ３＋ｍ５とし、ｎ２＝３，ｎ３＝−４，ｎ５＝１，Ｋ＝｛２，３，５｝である。ここで、被減数ｍａは３ｍ２＋ｍ５であり、減数ｍｂは４ｍ３である。また、数値ａ，ｂの大小関係を判定したい場合、Ｆ＝ｍａ−ｍｂ＝ｍ１−ｍ２とし、ｎ１＝１，ｎ２＝−１，Ｋ＝｛１，２｝とすればよい。
【００８８】
一次演算処理アルゴリズムCal1stは、式Ｆの計算に必要な暗号文Ｃｉ（ｉ∈Ｋ）が入力されると、次式により、一次演算結果X＝(X1、X2)を計算する。
【数６】
0006309866.tif 000007
【００８９】
しかる後、一次演算処理アルゴリズムCal1stは、一次演算結果X＝(X1、X2)を出力する。
【００９０】
以上により、一次演算処理が完了する。
【００９１】
（暗号文の二次演算処理）Cal2nd（X）→Ｙ＝(Y1、Y2)
二次演算処理アルゴリズムCal2ndは、1次演算結果Xと二次演算鍵a-1、s、Nが入力されると、二次演算結果Y＝(Y1、Y2)を出力する。
【００９２】
以下、この二次演算処理アルゴリズムCal2ndによる二次演算処理の一例を具体的に述べる。
【００９３】
この例の二次演算処理は、加減算された暗号文（暗号化データ）をランダム化する処理である。
【００９４】
二次演算処理アルゴリズムCal2ndは、パラメータＬ，Ｊ，β，Ｄを生成する。これらのパラメータＬ，Ｊ，β，Ｄを選択する指標については後述する。なお、パラメータＬ，Ｊ，β，Ｄは外部から与えられても良い。
【００９５】
次に、二次演算処理アルゴリズムCal2ndは、β個の乱数ｒ’ｉ（ｉ＝０，…，β−１）を集合｛１，…，Ｌ｝の中からランダムにそれぞれ選択する。ここで、β＝１であっても良いし、β≧２であっても良い。これは他の実施形態や変形例においても同様である。また、乱数ｚを集合｛０，１，…，Ｊ｝の中からランダムに選択する。そして、二次演算処理アルゴリズムCal2ndは、次式に示す乱数Ｒを計算し、乱数Ｒ，ｚを取得する。
【数７】
0006309866.tif 000008
【００９６】
次に、二次演算処理アルゴリズムCal2ndは、前述した二次演算鍵ａ−１，ｓ，Ｎと、一次演算結果X＝(X1、X2)及び乱数Ｒ，ｚとを用いて、次式により、二次演算結果Y＝(Y1、Y2)を計算する。
【数８】
0006309866.tif 000009
【００９７】
しかる後、二次演算処理アルゴリズムCal2ndは、一次演算結果Y＝(Y1、Y2)を出力する。
【００９８】
ここで、各パラメータを選択する指標について説明する。正負判定可能な絶対値の最大値をＤとする。すなわち、０＜Ｆ＜ＤのときＦを正と判定し，−Ｄ＜Ｆ＜０のときＦを負と判定できるようにしたいとする。このとき、二次演算処理アルゴリズムCal2ndは、次式を満たすように、β個の乱数ｒ’ｉを選択する。
【数９】
0006309866.tif 000010
【００９９】
また、二次演算処理アルゴリズムCal2ndは、β個の乱数ｒ’ｉの積であるＲを上記のように選択したとき，Ｒ＜Ｊとなる確率が十分小さくなるようにＪを選択する。
【０１００】
以上により、二次演算処理が完了する。
【０１０１】
（暗号文の三次演算処理）
【数１０】
0006309866.tif 000011
【０１０２】
三次演算処理アルゴリズムCal3rdは、二次演算結果Yと三次演算鍵v、Nが入力されると、正又は負（又は０）を示す判定結果を出力する。
【０１０３】
以下、この三次演算処理アルゴリズムCal3rdによる三次演算処理の一例を具体的に述べる。
【０１０４】
この例の三次演算処理は、ランダム化及び加減算された暗号文（暗号化データ）から加減算の式における被減数と減数との間の大小関係を判定する処理である。
【０１０５】
三次演算処理アルゴリズムCal3rdは、前述した三次演算鍵ｖ，Ｎと、二次演算結果Ｙ１，Ｙ２とを用いて、次式により、Ｗ’を計算する。
【数１１】
0006309866.tif 000012
【０１０６】
Ｗ’がＮの倍数でない場合、以降の計算を行わず、三次演算処理を終了する。そうでない場合（Ｗ’がＮの倍数である場合）、三次演算処理アルゴリズムCal3rdは、次式により、三次演算結果Ｗを計算する。
【数１２】
0006309866.tif 000013
【０１０７】
次に、三次演算処理アルゴリズムCal3rdは、Ｗ＜Ｎ／２ならば式Ｆは正であると判定し、そうでないならば式Ｆは負（又は０）と判定する。
【０１０８】
Ｆ＝Ｍａ−Ｍｂの形で表されるとき、Ｆが正であれば、Ｍａ＞Ｍｂと判定できる。Ｆが負であれば、Ｍａ≦Ｍｂと判定できる。
【０１０９】
しかる後、三次演算処理アルゴリズムCal3rdは、判定結果を出力する。
【０１１０】
以上により、三次演算処理が完了する。
【０１１１】
なお、判定の際に、三次演算処理アルゴリズムCal3rdは、−Ｊ≦Ｗ≦０ならばＦ＝０と判定しても良い。この場合、三次演算処理アルゴリズムCal3rdは、−Ｎ／２＜Ｗ＜−ＪならばＦは負であると判定する。これは他の実施形態や変形例においても同様である。
【０１１２】
ここで、Ｆ＝３ｍ２−４ｍ３＋ｍ５の場合を例に取って、Ｗ＝ＦＲ−ｚとなることを示す。一次演算結果Ｘ１，Ｘ２、二次演算結果Ｙ１，Ｙ２及び三次演算結果Ｗはそれぞれ以下のように表される。
【数１３】
0006309866.tif 000014
【０１１３】
三次演算結果Ｗにおいては、Ｗ＝ＦＲ−ｚであり、ＦＲからｚを引いている。しかしながら、上述したようにＲの値を適切に設定すれば、三次演算処理アルゴリズムCal3rdは、乱数ｚの値に影響を受けることなく、正しくＦの正負判定を行うことができる。
【０１１４】
上述した例では、Ｆ＝Ｍａ−Ｍｂ＝３ｍ２−４ｍ３＋ｍ５であるので、例えば、被減数Ｍａ＝３ｍ２＋ｍ５、減数Ｍｂ＝４ｍ３とおくことにより、被減数（３ｍ２＋ｍ５）と減数（４ｍ３）との間の大小関係を判定できる。また、例えば、被減数Ｍａ＝３ｍ２、減数Ｍｂ＝４ｍ３−ｍ５とみなすことにより、被減数（３ｍ２）と減数（４ｍ３−ｍ５）との間の大小関係を判定することもできる。
【０１１５】
（復号）Dec（C）→ m
復号アルゴリズムDecは、復号鍵sv、a-1、N（又はs、v、a-1、N）と暗号文Cが入力されると、平文mを出力する。
【０１１６】
以下、この復号アルゴリズムDecによる復号処理の一例を具体的に述べる。
【０１１７】
復号アルゴリズムDecは、復号鍵sv、a-1、N（又はs、v、a-1、N）と、暗号文Ｃｉとを用いて、次式によりＤ’を計算する。
【数１４】
0006309866.tif 000015
【０１１８】
Ｄ’がＮの倍数でない場合、以降の計算を行わず、復号処理を終了する。そうでない場合（Ｄ’がＮの倍数である場合）、復号アルゴリズムDecは、次式により、平文ｍｉを計算する。
【数１５】
0006309866.tif 000016
【０１１９】
しかる後、復号アルゴリズムDecは、平文m＝ｍｉ（ｉ＝１，…，ｋ）を出力する。
【０１２０】
以上により、復号処理が完了する。
【０１２１】
一方、データを暗号化する技術として暗号化と復号に同一の鍵を用いる方式も知られている。この種の方式としては、例えば、第５の文献（[AES]）に記載されている第５の方式（以下、[AES]方式とも呼ぶ。）がある。ここで、第５の文献（[AES]）に関する情報は、次の通りである。
【０１２２】
[AES] AES(Advanced Encryption Standard):FIPS-197, http://csrc.nist.gov/publications/fips/fips197/fips-197.pdf
暗号化と復号に同一の鍵を用いる暗号方式（[AES]方式）について述べる。[AES]方式の性質を保持する暗号方式の基本的なモデルは、以下の鍵生成、暗号化、復号の３つの関数（以下、アルゴリズムともいう）からなる。
【０１２３】
（鍵生成）KeyGen（１k）→（skA）
鍵生成アルゴリズムKeyGenは、セキュリティパラメータ１kが入力されると、秘密鍵skAを出力する。
【０１２４】
（暗号化）Enc（skA，ｍ1）→ＣA,m1
暗号化アルゴリズムEncは、秘密鍵skAと平文m1が入力されると、暗号文CA,m1を出力する。
【０１２５】
（復号）Dec（skA，ＣA,m1）→ m1
復号アルゴリズムDecは、秘密鍵skAと暗号文CA,m1が入力されると、平文m1+m2を出力する。
【０１２６】
以上が各実施形態に個別に用いられる各種の暗号方式（[Paillier]方式、[OPE]方式、[HLP10]方式、[AN2013-51001]方式、[AES]方式）の代表的なアルゴリズムである。各実施形態は、図４３又は図４４に示すように、各種の暗号方式（[Paillier]方式、[OPE]方式、…）による暗号化データを復号せずに匿名化処理（仮名化、トップコーディング、…）する形態となっている。なお、図４３は、データ所有者が暗号化データを外部サービスに保存する旨の上記（Ａ）の場合を示している。図４４は、Ｍ２Ｍサービスが暗号化データを外部サービスに保存する旨の上記（Ｂ）の場合を示している。
【０１２７】
＜第１の実施形態：仮名化＞
図１は第１の実施形態に係る匿名化システム及びその周辺構成を示す模式図である。この匿名化システムは、１台以上の暗号化装置１０、匿名化装置２０及び復号装置３０を備え、各装置１０，２０，３０が互いに通信網４０を介して接続されている。通信網４０は統計処理装置５０に接続されている。通信網４０は、例えば、無線ＬＡＮ（Local Area Network）、有線ＬＡＮ、光回線網、電話回線網、イントラネット、イーサネット（登録商標）及びインターネットやこれらの組み合わせである。
【０１２８】
ここで、暗号化装置１０は、暗号パラメータ格納部１１、鍵記憶部１２、一時データ記憶部１３、通信部１４、パラメータ生成部１５、乱数生成部１６、暗号化部１７及び制御部１８を備えている。なお、本実施形態では１台の暗号化装置１０を用いる場合について述べる。複数台の暗号化装置を用いる場合は、第２の実施形態において述べる。
【０１２９】
暗号パラメータ格納部１１、鍵記憶部１２及び一時データ記憶部１３は、図示しないプロセッサから読出／書込可能な記憶装置又は記憶装置の記憶領域として実現可能となっており、それぞれ暗号パラメータ、暗号化鍵及び一時データ等を記憶する。一時データ記憶部１３は、各項目毎に値を含む個人データを記憶する第１記憶手段を構成している。
【０１３０】
通信部１４、パラメータ生成部１５、乱数生成部１６、暗号化部１７及び制御部１８は、例えば、図示しないプロセッサが、後述する暗号化装置１０内の各ステップを含むプログラムを実行することにより実現される機能ブロックとなっている。暗号化部１７は、個人データに含まれる各項目の値を暗号化する処理により、当該個人データから暗号化データを生成する暗号化手段を構成している。また、暗号化部１７は、匿名化する処理に用いる匿名用パラメータを暗号化して暗号化匿名用パラメータを生成するパラメータ暗号化手段、を構成している。なお、匿名用パラメータとしては、例えば、乱数、しきい値、下限値、上限値、代表値、誤差などが適宜、使用可能となっている。本実施形態では、匿名用パラメータとして乱数が用いられる。暗号化匿名用パラメータとしては、例えば、暗号化乱数、暗号化しきい値、暗号化下限値、暗号化上限値、暗号化代表値、暗号化誤差などが適宜、使用可能となっている。本実施形態では、暗号化匿名用パラメータとして暗号化乱数が用いられる。但し、パラメータ暗号化手段は、第１３及び第１４の実施形態に述べるように、必須ではなく省略可能である。
【０１３１】
匿名化部２０は、暗号パラメータ格納部２１、暗号化データ格納部２２、一時データ記憶部２３、通信部２４、乱数生成部２５、匿名化処理部２６、演算部２７、演算結果比較部２８及び制御部２９を備えている。
【０１３２】
暗号パラメータ格納部２１、暗号化データ格納部２２、一時データ記憶部２３は、図示しないプロセッサから読出／書込可能な記憶装置又は記憶装置の記憶領域として実現可能となっており、それぞれ暗号パラメータ、暗号化データ及び一時データ等を記憶する。一時データ記憶部２３は、暗号化装置１０により生成された暗号化データを記憶する第２記憶手段を構成している。
【０１３３】
通信部２４、乱数生成部２５、匿名化処理部２６、演算部２７、演算結果比較部２８及び制御部２９は、例えば、図示しないプロセッサが、後述する匿名化部２０内の各ステップを含むプログラムを実行することにより実現される機能ブロックとなっている。匿名化処理部２６は、第２記憶手段内の暗号化データのうちの一部の項目の値を復号せずに匿名化する処理により、当該暗号化データから暗号化匿名化データを生成する匿名化手段を構成している。匿名化手段は、暗号化装置１０により生成された暗号化匿名用パラメータに基づいて、暗号化データから暗号化匿名化データを生成する機能をもっている。但し、この機能は、第１３及び第１４の実施形態に述べるように、暗号化匿名用パラメータを用いない場合には省略される。
【０１３４】
復号装置３０は、暗号パラメータ格納部３１、秘密鍵格納部３２、一時データ記憶部３３、通信部３４、乱数生成部３５、鍵生成部３６、復号部３７及び制御部３８を備えている。
【０１３５】
暗号パラメータ格納部３１、秘密鍵格納部３２及び一時データ記憶部３３は、図示しないプロセッサから読出／書込可能な記憶装置又は記憶装置の記憶領域として実現可能となっており、それぞれ暗号パラメータ、秘密鍵及び一時データ等を記憶する。一時データ記憶部３３は、匿名化装置２０により生成された暗号化匿名化データを記憶する第３記憶手段を構成している。
【０１３６】
通信部３４、乱数生成部３５、鍵生成部３６、復号部３７及び制御部３８は、例えば、図示しないプロセッサが、後述する復号装置３０内の各ステップを含むプログラムを実行することにより実現される機能ブロックとなっている。復号部３７は、第３記憶手段内の暗号化匿名化データを復号する処理により、当該暗号化匿名化データから匿名化データを生成する復号手段を構成している。ここで、匿名化データは、例えば、個人データのうち、一部の項目の値が匿名化された値と、一部の項目以外の項目の値とを含む情報であってもよい。また例えば、暗号化匿名化データは、暗号化データに含まれる一部の項目の暗号化された値が匿名化された値と、暗号化データに含まれる一部の項目以外の項目の値とを含む情報であってもよい。なお、暗号化匿名化データにおいて、「暗号化データに含まれる一部の項目の暗号化された値が匿名化された値」は、「匿名化データに含まれる一部の項目の値が匿名化された値が暗号化された値」と同じ値に読み替えてもよい。
【０１３７】
統計処理装置５０は、データ格納部５１、通信部５２及び統計処理部５３を備えている。
【０１３８】
データ格納部５１は、図示しないプロセッサから読出／書込可能な記憶装置又は記憶装置の記憶領域として実現可能となっており、匿名化データ及び統計データ等を記憶する。
【０１３９】
通信部５２及び統計処理部５３は、例えば、図示しないプロセッサが、後述する統計処理装置５０内の各ステップを含むプログラムを実行することにより実現される機能ブロックとなっている。
【０１４０】
尚、図１中、各装置１０，２０，３０，５０を１台ずつ備えた場合を示したが、これに限らず、各装置１０，２０，３０，５０は、１台以上の任意の台数を備えてもよい。また、図１中、匿名化装置２０は暗号化データの格納機能（暗号化データ格納部２２）を備え、復号装置３０は鍵生成に関する機能（各部３１，３３〜３６，３８）を備えたが、これに限らず、例えば図２に示すように、当該各機能を他の装置に配置してもよい。このことは、任意の各装置及び任意の各機能についても同様である。
【０１４１】
本実施形態は、個人データの１つである社員番号を暗号化したまま仮名化する技術に関する。
【０１４２】
個人データとは、個人に関する情報であって、氏名、社員番号、年齢、収入、生年月日、その他の情報などのように、単一または複数の組み合わせにより、特定の個人を識別可能な情報をいう。「個人データ」は、「個人情報」又は「個人情報のデータ」等と呼んでもよい。本実施形態では、図３に一例を示すように、名前、社員番号、年齢及び収入といった属性項目の属性値（文字列又は数値）が個人データとして用いられ、当該個人データがテーブルＴ１に格納されている。ここでは、属性項目「名前」の属性値に文字列を用いている。属性項目「社員番号」の属性値に数値を用いている（但し、社員番号はＩＤ情報であるため、文字列と数値の組み合わせを用いてもよい。）。属性項目「年齢」及び「収入」の属性値に数値を用いている。当該テーブルＴ１は、図示した属性項目の属性値として個人データを含んでいるが、これに加え、図示しない他の属性項目の属性値として個人データ以外の情報を含んでもよい。いずれにしても、テーブルＴ１には、個人データが記述されている。また、個人データ以外の情報が属性値になる属性項目としては、例えば、罹患した病名、購入した商品名、アンケートの回答、などが適宜、使用可能となっている。なお、「属性項目」の用語は、単に「属性」又は「項目」と呼んでもよく、「属性情報」又は「項目情報」等と呼んでもよい。同様に、「属性値」の用語は、単に「値」と呼んでもよい。
【０１４３】
個人データの匿名化とは、特定の個人を識別不能とするように個人データを変換する処理のことをいう。匿名化の処理については前述したような方法が知られている。
【０１４４】
これらの定義は、以下の各実施形態や変形例においても同様である。
【０１４５】
次に、本実施形態における匿名化システムの動作について図４のシーケンス図、並びに図３、図５及び図６の模式図を用いて説明する。以下の説明では、（加法的な）準同型暗号方式を用いて匿名化する場合を例に挙げて述べる。
【０１４６】
（事前準備）
ステップＳＴ１において、復号装置３０の鍵生成部３６は、暗号パラメータ格納部３１内のセキュリティパラメータ(1k)に基づいて、準同型暗号方式における鍵ペア（公開鍵pkA、秘密鍵skA）を生成する。
【０１４７】
KeyGen(1k)→（pkA，skA）
なお、鍵生成部３６は、鍵ペアの生成処理において必要な乱数を乱数生成部３５から取得することができる。また、復号装置３０の鍵生成部３６は、生成した鍵ペア（pkA，skA）を秘密鍵格納部３２に保存する。ここで、公開鍵pkAは暗号化鍵であり、秘密鍵skAは復号鍵である。
【０１４８】
ステップＳＴ２において、復号装置３０の制御部３８は、通信部３４により、暗号化装置１０に、暗号化鍵である公開鍵pkAを送付する。暗号化装置１０の制御部１８は、通信部１４により受信した公開鍵pkAを鍵記憶部１２に格納する。
【０１４９】
ステップＳＴ３において、暗号化装置１０の暗号化部１７は、図３に示したテーブルＴ１を一時データ記憶部１３から読み出す。暗号化部１７は、このテーブルＴ１のうち、仮名化対象の属性項目（社員番号）の属性値dataiを、鍵記憶部１２内の公開鍵pkAに基づいてレコード毎に暗号化する。
【０１５０】
Enc（pkA，datai）→ＣA,data_i
なお、暗号化部１７は、暗号化の処理において必要なパラメータ及び乱数を、それぞれ暗号パラメータ格納部１１及び乱数生成部１６から取得することができる。
【０１５１】
同様に、暗号化部１７は、公開鍵pkAに基づいて、テーブルＴ１のうち、仮名化対象の属性項目以外の属性項目の属性値をレコード毎に暗号化する。これにより、テーブルＴ１内の全ての属性項目の属性値が暗号化され、図５に示すように、当該全ての属性項目の属性値が暗号化されたテーブルＴ１ｅが暗号化データとして生成される。
【０１５２】
ステップＳＴ４において、暗号化装置１０の制御部１８は、通信部１４により、テーブルＴ１ｅからなる暗号化データを匿名化装置２０に送付する。
【０１５３】
ステップＳＴ５において、匿名化装置２０は、通信部２４により受信した暗号化データであるテーブルＴ１ｅを一時データ記憶部２３に保管する。
【０１５４】
（匿名化）
ステップＳＴ６において、暗号化装置１０の乱数生成部１６は、仮名化するための匿名用パラメータを乱数Rとして生成する。暗号化部１７は、生成した乱数Rを、鍵記憶部１２内の公開鍵pkAに基づいて準同型暗号方式で暗号化し、暗号化匿名用パラメータである暗号化乱数ＣA,Rを生成する。
【０１５５】
Enc（pkA，R）→ＣA,R
ステップＳＴ７において、暗号化装置１０の制御部１８は、通信部１４により、テーブルＴ１ｅ内の仮名化対象の属性項目（社員番号）と、暗号化乱数ＣA,Rとを匿名化装置２０に送付する。但し、予め匿名化装置２０が公開鍵pkAを取得することにより、暗号化乱数ＣA,Rを匿名化装置２０が予め保持又は生成する場合には、暗号化装置１０による暗号化乱数ＣA,Rの生成及び送付を省略できる。このことは、以下の各実施形態及び変形例でも同様である。
【０１５６】
ステップＳＴ８において、匿名化装置２０は、通信部２４により、当該属性項目（社員番号）及び暗号化乱数ＣA,Rを受信する。匿名化処理部２６は、一時データ記憶部２３内のテーブルＴ１ｅのうち、受信した属性項目（社員番号）に一致する属性項目（社員番号）の属性値ＣA,data_iと、受信した暗号化乱数ＣA,R とをレコード毎に加算する。
【０１５７】
Add（ＣA,data_i，ＣA,R）→ＣA,data_i+R 
すなわち、ステップＳＴ３で暗号化された属性値ＣA,data_iは、暗号化された状態のままで暗号化乱数ＣA,R が加算されることにより、復号されずに匿名化された属性値ＣA,data_i+Rに変換される。
【０１５８】
このように、テーブルＴ１ｅ内の仮名化対象の属性項目（社員番号）の属性値が匿名化され、図６に示すように、匿名化された属性値ＣA,data_i+Rを含むテーブルＴ１ａが暗号化匿名化データとして生成される。
【０１５９】
しかる後、匿名化処理部２６は、テーブルＴ１ａを一時データ記憶部２３に保存する。
【０１６０】
ステップＳＴ９において、匿名化装置２０の制御部２９は、通信部２４により、一時データ記憶部２３内のテーブルＴ１ａからなる暗号化匿名化データを復号装置３０に送付する。
【０１６１】
本実施形態によれば、暗号化データを復号せずに匿名化し、得られた暗号化匿名化データを復号して匿名化データを利用することが可能になる。詳しくは数値で表現されているテーブルＴ１の属性値data_iを、仮名化用の乱数Rによって仮名化することができる。ここで、暗号化装置１０は、仮名化用の暗号化乱数ＣA,Rに基づいて、仮名化前と仮名化後の対応テーブルを作成してもよい。この場合、仮名化したテーブルの属性情報から個人を特定することや、仮名化処理を元に戻すことも可能である。
【０１６２】
しかる後、ステップＳＴ１０において、復号装置３０の制御部３８は、通信部３４により、暗号化匿名化データを受信して一時データ記憶部３３に記憶する。復号部３７は、秘密鍵格納部３２内の復号鍵である秘密鍵skAに基づいて、一時データ記憶部３３内の暗号化匿名化データであるテーブルＴ１ａ内の各属性項目の値を復号し、得られた復号結果のテーブルを得る。
【０１６３】
復号装置３０の制御部３８は、復号結果のテーブルのうち、仮名化対象の属性項目（社員番号）の属性値が匿名化されているか否かを判定する。例えば、匿名化前の属性値の桁数（例、５桁）よりも高い桁数（例、７桁）の暗号化乱数ＣA,Rを加算した場合、当該属性値が高い桁数（例、７桁）であれば、匿名化されていると判定される。また例えば、匿名化された属性項目（社員番号）の属性値について、匿名化前の値と匿名化後の値とが異なる場合には、属性値が匿名化されている旨を判定してもよい。この場合、任意のタイミングで暗号化装置１０が匿名化前の値を復号装置３０に送信しておけばよい。いずれにしても、判定の結果が否の場合には、ステップＳＴ６（又はＳＴ４）から処理をやり直し、好ましい匿名化結果が得られるまで繰り返す。
【０１６４】
ステップＳＴ１１において、復号装置３０の制御部３８は、判定の結果、属性値が匿名化されている場合には、通信部３４により、復号結果のテーブルからなる匿名化データを安全に統計処理装置５０に送付する。
【０１６５】
ステップＳＴ１２において、統計処理装置５０は、通信部５２により受信した匿名化データを用いて統計処理を実行し、得られた統計処理結果をデータ格納部５１に保存する。しかる後、統計処理装置５０は、適宜、この統計処理結果を利用する。
【０１６６】
上述したように本実施形態によれば、個人データに含まれる各項目の値を暗号化する処理により、当該個人データから暗号化データを生成する。暗号化データのうちの一部の項目の値を復号せずに匿名化する処理により、当該暗号化データから暗号化匿名化データを生成する。暗号化匿名化データを復号する処理により、当該暗号化匿名化データから匿名化データを生成する。このような構成により、個人データを暗号化して得られた暗号化データを復号せずに匿名化することができる。
【０１６７】
また、本実施形態によれば、匿名化する処理に用いる匿名用パラメータを暗号化して暗号化匿名用パラメータを生成し、暗号化匿名用パラメータに基づいて、暗号化データから暗号化匿名化データを生成する。このような構成により、匿名用パラメータを調整して匿名化処理をやり直すことにより、好ましい匿名化結果の匿名化データを生成することができる。
【０１６８】
なお、本実施形態では、復号装置３０が鍵生成を実行したが、これに限らず、暗号化装置１０が鍵生成を実行し、本実施形態と同様に適切な装置へ鍵を送付してもよい。
【０１６９】
また、本実施形態は、（加法的な）準同型暗号でかつ大小比較可能な暗号方式でも同様に実施可能となっている。これらの暗号方式を用いる場合、それぞれの暗号方式における暗号アルゴリズムを置き換えることにより、本実施形態を同様に実施して同様の効果を得ることができる。
【０１７０】
本実施形態は、図２に示すように、復号装置３０から鍵生成機能（乱数生成部３５及び鍵生成部３６）を分離した鍵生成装置６０と、匿名化装置２０から保管機能（暗号化データ格納部２２）を分離したデータ保管装置７０とを備えた構成に変形してもよい。この時、既存のデータ保管装置７０に、匿名化装置２０を連携させることで、本実施形態と同様の効果を得ることが可能になる。
【０１７１】
ここで、鍵生成装置６０は、暗号パラメータ格納部６１、一時データ記憶部６２、通信部６３、乱数生成部６４、鍵生成部６５及び制御部６６を備えている。
【０１７２】
暗号パラメータ格納部６１及び一時データ記憶部６２は、図示しないプロセッサから読出／書込可能な記憶装置又は記憶装置の記憶領域として実現可能となっており、それぞれ暗号パラメータ及び一時データ等を記憶する。
【０１７３】
通信部６３、乱数生成部６４、鍵生成部６５及び制御部６６は、例えば、図示しないプロセッサが、後述する鍵生成装置６０内の各ステップを含むプログラムを実行することにより実現される機能ブロックとなっている。
【０１７４】
データ保管装置７０は、例えばクラウドにより実施されて大量データを保管可能な装置（又はシステム）であり、データ格納部７１及び通信部７２を備えている。
【０１７５】
データ格納部７１は、図示しないプロセッサから読出／書込可能な記憶装置又は記憶装置の記憶領域として実現可能となっており、データ等を記憶する。
【０１７６】
通信部７２は、例えば、図示しないプロセッサが、後述するデータ保管装置７０内の各ステップを含むプログラムを実行することにより実現される機能ブロックとなっている。
【０１７７】
図２に示す構成によれば、例えば図７に示すように、前述した各ステップＳＴ１〜ＳＴ１２を各装置１０，２０，３０，５０，６０，７０で分担して実行する。図７中、図４に示したステップと同一のステップを実行する場合には実行する装置の変更の有無によらずに同一のステップ番号を付し、ステップ自体を複数のサブステップに分けて実行する場合にはステップ番号に枝番（−１，−２，−３）を付している。このようなステップ番号の付け方は、以下の各実施形態及び各変形例でも同様である。
【０１７８】
図７は、主に、データ保管装置７０に保存した暗号化データを匿名化装置２０により匿名化し、得られた匿名化データをデータ保管装置７０上で更新し、復号装置３０に送付する場合の動作を説明するためのシーケンス図である。
【０１７９】
この動作においては、具体的には、鍵生成装置６０が鍵ペアを生成及び保存し（ＳＴ１）、暗号化鍵を暗号化装置１０に送付する（ＳＴ２）。暗号化装置１０は、データを暗号化し（ＳＴ３）、得られた暗号化データをデータ保管装置７０に送付する（ＳＴ４）。データ保管装置７０は、暗号化データを保管する（ＳＴ５）。暗号化装置１０は、乱数Rを暗号化し（ＳＴ６）、得られた暗号化乱数ＣA,Rを匿名化装置２０に送付する（ＳＴ７）。データ保管装置７０は、保管した暗号化データを匿名化装置２０に送付する（ＳＴ８−１）。匿名化装置２０は、送付された暗号化データを暗号化乱数ＣA,Rに基づいて復号せずに匿名化（仮名化）し、得られた暗号化匿名化データをデータ保管装置７０に送付する（ＳＴ９−１）。データ保管装置７０は、送付された暗号化匿名化データを保管し（ＳＴ９−２）、当該暗号化匿名化データを復号装置３０に送付する（ＳＴ９−３）。復号装置３０は、例えば復号鍵を鍵生成装置６０に要求する。鍵生成装置６０は、復号鍵を復号装置３０に送付する（ＳＴ１０−１）。復号装置３０は、送付された復号鍵に基づいて、暗号化匿名化データを復号し、得られた匿名化データが匿名化されているか否かを判定（確認）する（ＳＴ１０−２）。判定の結果、否の場合には、ステップＳＴ６からやり直す。判定の結果、匿名化されている場合には、前述したステップＳＴ１１〜ＳＴ１２が実行される。
【０１８０】
このとき、既存のデータ保管装置７０を大きく変えることなく、本実施形態の効果を得ることが可能になる。これは後述する実施形態や変形例においても同様である。
【０１８１】
また例えば、図８は、主に、データ保管装置７０に保存した暗号化データを匿名化装置２０により匿名化し、得られた匿名化データをデータ保管装置７０上では更新せずに、復号装置３０に送付する場合の動作を説明するためのシーケンス図である。この動作は、具体的には、図７に示すステップＳＴ９−１〜ＳＴ９−３に代えて、匿名化装置２０が暗号化匿名化データを復号装置３０に送付するステップＳＴ９を実行する動作である。
【０１８２】
この場合、データ保管装置７０内の暗号化データは、原本データを暗号化した状態のままであり、その状態に対して匿名化した匿名化データを適宜得ることが可能になる。このとき、データ保管装置７０の暗号化データが更新されないことから匿名化前と後の暗号化データを暗号化装置１０又は復号装置３０で管理する必要がなく、データの管理コストを低減することが可能となる。これは後述する実施形態や変形例においても同様である。
【０１８３】
＜第１の実施形態の変形例：仮名化＞
第１の実施形態は、匿名化装置２０が、テーブルＴ１ｅのうち、仮名化対象の属性項目（社員番号）の属性値ＣA,data_iを、レコード毎に異なる暗号化乱数ＣA,Rにより仮名化することができる。
【０１８４】
ここで、復号した匿名化データ（仮名化した社員番号）が漏れ、かつ仮名化対象の１つのレコードの情報（社員番号の原本データ）を知っているユーザが関与したとする。このような状況でも、関与したユーザは、匿名化データの各レコードが異なる暗号化乱数ＣA,Rで仮名化されていることから、他のレコードの情報（社員番号の原本データ）を推測することができない。
【０１８５】
＜第２の実施形態：Ｍ２Ｍ及び仮名化＞
図９は第２の実施形態に係る匿名化システム及びその周辺構成を示す模式図であり、図１及び図２と同一部分には同一符号を付してその詳しい説明を省略し、ここでは異なる部分について主に述べる。以下の各実施形態及び変形例も同様にして重複した部分の説明を省略する。
【０１８６】
第２の実施形態は、暗号化装置１０が個人データを暗号化して匿名化装置２０に預ける第１の実施形態とは異なり、Ｍ２Ｍサービスのように、各機器で取得した個人データを暗号化してなる暗号化データを匿名化装置２０で収集する形態となっている。ここでいう各機器は、各々の暗号化装置（１〜Ｎ）１０に相当する。
【０１８７】
具体的には、第２の実施形態は、図１に示した構成に比べ、暗号化装置１０をＮ台設け、且つ鍵生成装置６０及びパラメータ生成装置８０を更に備えている。但し、パラメータ生成装置８０は、必須ではなく、例えばいずれかの暗号化装置１０がパラメータ（例、乱数R）及び暗号化パラメータ（暗号化乱数ＣA,R）を生成する場合には、省略してもよい。このことは、以下の各実施形態及び各変形例でも同様である。
【０１８８】
ここで、Ｎ台の暗号化装置（１〜Ｎ）１０は、前述した暗号化装置１０のパラメータ生成部１５に代えて、データ取得部１９を備えている。
【０１８９】
パラメータ生成装置８０は、暗号パラメータ格納部８１、鍵記憶部８２、通信部８３、パラメータ生成部８４、乱数生成部８５、暗号化部８６及び制御部８７を備えている。
【０１９０】
暗号パラメータ格納部８１及び鍵記憶部８２は、図示しないプロセッサから読出／書込可能な記憶装置又は記憶装置の記憶領域として実現可能となっており、それぞれ暗号パラメータ及び鍵等を記憶する。
【０１９１】
通信部８３、パラメータ生成部８４、乱数生成部８５、暗号化部８６及び制御部８７は、例えば、図示しないプロセッサが、後述するパラメータ生成装置８０内の各ステップを含むプログラムを実行することにより実現される機能ブロックとなっている。
【０１９２】
次に、本実施形態における匿名化システムの動作について図１０のシーケンス図を用いて説明する。
【０１９３】
（事前準備）
ステップＳＴ１において、鍵生成装置６０の鍵生成部６５は、暗号パラメータ格納部６１内のセキュリティパラメータ(1k)に基づいて、準同型暗号方式における鍵ペア（公開鍵pkA、秘密鍵skA）を生成する。
【０１９４】
KeyGen(1k)→（pkA，skA）
なお、鍵生成部６５は、鍵の生成処理において必要な乱数を乱数生成部６４から取得することができる。また、公開鍵pkAは暗号化鍵であり、秘密鍵skAは復号鍵である。
【０１９５】
ステップＳＴ２において、鍵生成装置６０の制御部６６は、通信部６３により、暗号化鍵である公開鍵pkAを各暗号化装置（１〜Ｎ）１０及びパラメータ生成装置８０に送付する。各暗号化装置（１〜Ｎ）１０の制御部１８は、通信部１４により受信した公開鍵pkAを鍵記憶部１２に格納する。同様に、パラメータ生成装置８０の制御部８７は、通信部８３により受信した公開鍵pkAを鍵記憶部８２に格納する。なお、各暗号化装置（１〜Ｎ）１０は、機器組み立て時に公開鍵pkAを入力して格納してもよく、機器を配置後、ネットワーク経由で公開鍵pkAを受信して格納してもよい。同様に、鍵生成装置６０の制御部６６は、通信部６３により、復号鍵である秘密鍵skAを復号装置３０に送付する。復号装置３０の制御部３８は、通信部３４により受信した秘密鍵ｓAを秘密鍵格納部３２に格納する。
【０１９６】
ステップＳＴ３において、各暗号化装置（１〜Ｎ）１０のデータ取得部１９は、テーブルＴ１からなる個人データを取得して一時データ記憶部１３に記憶する。各暗号化装置（１〜Ｎ）１０の暗号化部１７は、一時データ記憶部１３内のテーブルＴ１のうち、仮名化対象の属性項目（社員番号）の属性値dataiを、鍵記憶部１２内の公開鍵pkAに基づいてレコード毎に暗号化する。
【０１９７】
Enc（pkA，datai）→ＣA,data_i 
同様に、各暗号化装置（１〜Ｎ）１０の暗号化部１７は、公開鍵pkAに基づいて、テーブルＴ１のうち、仮名化対象の属性項目以外の属性項目の属性値をレコード毎に暗号化する。これにより、テーブルＴ１内の全ての属性項目の属性値が暗号化され、当該全ての属性項目の属性値が暗号化されたテーブルＴ１ｅが暗号化データとして生成される。
【０１９８】
ステップＳＴ４において、各暗号化装置（１〜Ｎ）１０の制御部１８は、通信部１４により、テーブルＴ１ｅからなる暗号化データと、テーブルＴ１ｅ内の仮名化対象の属性項目（社員番号）とを匿名化装置２０に送付する。
【０１９９】
ステップＳＴ５において、匿名化装置２０は、通信部２４により、暗号化データであるテーブルＴ１ｅと、テーブルＴ１ｅ内の仮名化対象の属性項目（社員番号）とを受信する。しかる後、匿名化装置２０の制御部２９は、当該テーブルＴ１ｅと、仮名化対象の属性項目（社員番号）とを一時データ記憶部２３に保管する。
【０２００】
このとき、一時データ記憶部２３内のテーブルＴ１ｅは、新たに受信したテーブルＴ１ｅの内容が追加された状態で更新される。なお、これに限らず、匿名化装置２０は、暗号化装置（１〜Ｎ）１０から受信したテーブルＴ１ｅをそれぞれ一時データ記憶部２３に保管し、Ｎ個のテーブルＴ１ｅを集めた内容にテーブルＴ１ｅを更新してもよい。いずれにしても、一時データ記憶部２３内のテーブルＴ１ｅは、暗号化装置（１〜Ｎ）１０から受信したテーブルＴ１ｅを集めた内容に更新される。このことは、以下の各実施形態及び各変形例でも同様である。
【０２０１】
（匿名化）
ステップＳＴ６において、パラメータ生成装置８０の乱数生成部８５は、仮名化するための匿名用パラメータを乱数Rとして生成する。パラメータ生成装置８０の暗号化部８６は、生成した乱数Rを、鍵記憶部８２内の公開鍵pkAに基づいて準同型暗号方式で暗号化し、暗号化匿名用パラメータである暗号化乱数ＣA,Rを生成する。
【０２０２】
Enc（pkA，R）→ＣA,R 
ステップＳＴ７において、パラメータ生成装置８０の制御部８７は、通信部８３により、暗号化乱数ＣA,Rを匿名化装置２０に送付する。但し、暗号化乱数ＣA,Rを匿名化装置２０が予め保持又は生成する場合には、パラメータ生成装置８０による暗号化乱数ＣA,Rの生成及び送付を省略できる。このことは、以下の各実施形態及び変形例でも同様である。
【０２０３】
ステップＳＴ８において、匿名化装置２０は、通信部２４により、暗号化乱数ＣA,Rを受信する。匿名化処理部２６は、一時データ記憶部２３内のテーブルＴ１ｅのうち、ステップＳＴ５で受信した属性項目（社員番号）に一致する属性項目（社員番号）の属性値ＣA,data_iと、受信した暗号化乱数ＣA,R とをレコード毎に加算する。
【０２０４】
Add（ＣA,data_i，ＣA,R）→ＣA,data_i+R 
すなわち、ステップＳＴ３で暗号化された属性値ＣA,data_iは、暗号化された状態のままで暗号化乱数ＣA,R が加算されることにより、復号されずに匿名化された属性値ＣA,data_i+Rに変換される。
【０２０５】
このように、テーブルＴ１ｅ内の仮名化対象の属性項目（社員番号）の属性値が匿名化され、前述同様に、匿名化された属性値ＣA,data_i+Rを含むテーブルＴ１ａが暗号化匿名化データとして生成される。
【０２０６】
しかる後、匿名化処理部２６は、テーブルＴ１ａを一時データ記憶部２３に保存する。
【０２０７】
ステップＳＴ９において、匿名化装置２０の制御部２９は、通信部２４により、一時データ記憶部２３内のテーブルＴ１ａからなる暗号化匿名化データを復号装置３０に送付する。
【０２０８】
以下、前述した通り、ステップＳＴ１０〜ＳＴ１２が実行される。
【０２０９】
上述したように本実施形態によれば、暗号化装置１０を複数台とした場合でも、第１の実施形態と同様の作用効果を得ることができる。
【０２１０】
なお、本実施形態は、（加法的な）準同型暗号でかつ大小比較可能な暗号方式でも同様に実施することが可能である。これら暗号方式を用いる場合は、それぞれの方式における暗号アルゴリズムを置き換えることで同様に実現できる。
【０２１１】
＜第２の実施形態の変形例：仮名化＞
第２の実施形態は、第１の実施形態の変形例と同様に、匿名化装置２０が、テーブルＴ１ｅのうち、仮名化対象の属性項目（社員番号）の属性値ＣA,data_iを、レコード毎に異なる暗号化乱数ＣA,Rにより仮名化することができる。
【０２１２】
これにより、第１の実施形態の変形例と同様の効果を得ることができる。
【０２１３】
＜第３の実施形態：トップコーディング＞
次に、第３の実施形態に係る匿名化システムについて図１を参照しながら説明する。
【０２１４】
第３の実施形態は、暗号化した「社員番号」を仮名化した第１の実施形態とは異なり、暗号化した「収入」をトップコーディングする形態である。
【０２１５】
次に、本実施形態における匿名化システムの動作について図１１のシーケンス図、及び図１２乃至図１４の模式図を用いて説明する。以下の説明では、大小比較可能な暗号方式を用いて匿名化する場合を例に挙げて述べる。
【０２１６】
（事前準備）
ステップＳＴ２１において、復号装置３０の鍵生成部３６は、暗号パラメータ格納部３１内のセキュリティパラメータ(1k)に基づいて、大小比較可能な暗号方式における、復号装置３０自身の鍵（秘密鍵skA）を生成する。
【０２１７】
KeyGen(1k)→（skA）
なお、鍵生成部３６は、鍵の生成処理において必要な乱数を乱数生成部３５から取得することができる。また、鍵生成部３６は、生成した秘密鍵skAを秘密鍵格納部３２に保存する。
【０２１８】
ステップＳＴ２２において、復号装置３０の制御部３８は、通信部３４により、暗号化装置１０に、共通鍵である秘密鍵skAを送付する。暗号化装置１０の制御部１８は、通信部１４により受信した秘密鍵skAを鍵記憶部１２に格納する。
【０２１９】
ステップＳＴ２３において、暗号化装置１０の暗号化部１７は、図１２に示すテーブルＴ１を一時データ記憶部１３から読み出す。暗号化部１７は、このテーブルＴ１のうち、トップコーディング対象の属性項目（収入）の属性値dataiを、鍵記憶部１２内の秘密鍵skAに基づいてレコード毎に暗号化する。
【０２２０】
Enc（skA，datai）→ＣA,data_i 
なお、暗号化部１７は、暗号化の処理において必要なパラメータ及び乱数を、それぞれ暗号パラメータ格納部１１及び乱数生成部１６から取得することができる。
【０２２１】
同様に、暗号化部１７は、秘密鍵skAに基づいて、テーブルＴ１のうち、トップコーディング対象の属性項目以外の属性項目の属性値をレコード毎に暗号化する。これにより、テーブルＴ１内の全ての属性項目の属性値が暗号化され、図１３に示すように、当該全ての属性項目の属性値が暗号化されたテーブルＴ１ｅが暗号化データとして生成される。
【０２２２】
ステップＳＴ２４において、暗号化装置１０の制御部１８は、通信部１４により、テーブルＴ１ｅからなる暗号化データを匿名化装置２０に送付する。
【０２２３】
ステップＳＴ２５において、匿名化装置２０は、通信部２４により受信した暗号化データであるテーブルＴ１ｅを一時データ記憶部２３に保管する。
【０２２４】
（匿名化）
ステップＳＴ２６において、暗号化装置１０のパラメータ生成部１５は、トップコーディングするための匿名用パラメータである、しきい値Tを生成する。暗号化部１７は、生成したしきい値Tを、鍵記憶部１２内の秘密鍵skAに基づいて、大小比較可能な暗号方式で暗号化する。これにより、暗号化匿名用パラメータである暗号化しきい値ＣA,Tが生成される。
【０２２５】
Enc（skA，T）→ＣA,T 
ステップＳＴ２７において、暗号化装置１０の制御部１８は、通信部１４により、テーブルＴ１ｅ内のトップコーディング対象の属性項目（収入）と、暗号化しきい値ＣA,Tとを匿名化装置２０に送付する。但し、匿名化装置２０が秘密鍵skAを予め取得することにより、暗号化しきい値ＣA,Tを匿名化装置２０が予め保持又は生成する場合には、暗号化装置１０による暗号化しきい値ＣA,Tの生成及び送付を省略できる。このことは、以下の各実施形態及び変形例でも同様である。
【０２２６】
ステップＳＴ２８において、匿名化装置２０は、通信部２４により、当該属性項目（収入）及び暗号化しきい値ＣA,Tを受信する。匿名化処理部２６は、一時データ記憶部２３内のテーブルＴ１ｅのうち、受信した属性項目（収入）に一致する属性項目（収入）の属性値ＣA,data_iと、受信した暗号化しきい値ＣA,T とをレコード毎に比較する。
【数１６】
0006309866.tif 000017
【０２２７】
匿名化処理部２６は、比較結果が1の時は、属性値ＣA,data_iを暗号化しきい値ＣA,Tに置き換える。
【０２２８】
すなわち、ステップＳＴ２３で暗号化された属性値ＣA,data_iは、暗号化された状態のままで適宜、暗号化しきい値ＣA,T に置き換えられることにより、復号されずに匿名化された属性値（ＣA,T）に変換される。
【０２２９】
このように、テーブルＴ１ｅ内のトップコーディング対象の属性項目（収入）の属性値が匿名化され、図１４に示すように、匿名化された属性値（ＣA,T）を含むテーブルＴ１ａが暗号化匿名化データとして生成される。
【０２３０】
しかる後、匿名化処理部２６は、テーブルＴ１ａを一時データ記憶部２３に保存する。
【０２３１】
ステップＳＴ２９において、匿名化装置２０の制御部２９は、通信部２４により、一時データ記憶部２３内のテーブルＴ１ａからなる暗号化匿名化データを復号装置３０に送付する。
【０２３２】
本実施形態によれば、暗号化データを復号せずに匿名化し、得られた暗号化匿名化データを復号して匿名化データを利用することが可能になる。詳しくは数値で表現されているテーブルＴ１の属性値data_iを、トップコーディング用のしきい値Tによってトップコーディングすることができる。ここで、匿名化装置２０には、どの属性値（ＣA,data_i）を置き換えたかが分かり、置き換えた暗号文は全部同じ値（ＣA,T）になる。しかしながら、匿名化装置２０には、しきい値T及び元の属性値（data_i）は分からない。
【０２３３】
ここで、暗号化装置１０は、トップコーディング前の暗号化データを保持している場合、トップコーディング前とトップコーディング後の対応テーブルを作成してもよい。元のデータを別途保持していれば、トップコーディングした属性値を元に戻すことも可能である。
【０２３４】
しかる後、ステップＳＴ３０において、復号装置３０の制御部３８は、通信部３４により、暗号化匿名化データを受信して一時データ記憶部３３に記憶する。復号部３７は、秘密鍵格納部３２内の秘密鍵skAに基づいて、一時データ記憶部３３内の暗号化匿名化データであるテーブルＴ１ａ内の各属性項目の値を復号し、得られた復号結果のテーブルを得る。
【０２３５】
復号装置３０の制御部３８は、復号結果のテーブルのうち、トップコーディング対象の属性項目（収入）の属性値が匿名化されているか否かを判定する。例えば、匿名化前の属性値をトップコーディングした場合、当該属性値のいずれかが「以上」又は「以下」の文字列を含んでいれば、匿名化されていると判定される。また例えば、匿名化された属性項目（収入）の属性値について、匿名化前の値と匿名化後の値とが異なる場合には、属性値が匿名化されている旨を判定してもよい。この場合、任意のタイミングで暗号化装置１０が匿名化前の値を復号装置３０に送信しておけばよい。いずれにしても、判定の結果が否の場合には、ステップＳＴ２６（又はＳＴ２４）から処理をやり直し、好ましい匿名化結果が得られるまで繰り返す。
【０２３６】
ステップＳＴ３１において、復号装置３０の制御部３８は、判定の結果、属性値が匿名化されている場合には、通信部３４により、復号結果のテーブルからなる匿名化データを安全に統計処理装置５０に送付する。但し、匿名化データは、復号結果のテーブルのうちの社員番号の属性値を、適宜、匿名化した状態で送付することが好ましい。このことは、以下の各実施形態及び各変形例でも同様である。
【０２３７】
ステップＳＴ３２において、統計処理装置５０は、通信部５２により受信した匿名化データを用いて統計処理を実行し、得られた統計処理結果をデータ格納部５１に保存する。しかる後、統計処理装置５０は、適宜、この統計処理結果を利用する。
【０２３８】
上述したように本実施形態によれば、匿名化処理としてトップコーディングを実行する場合でも、第１の実施形態と同様の作用効果を得ることができる。
【０２３９】
なお、本実施形態は、（加法的な）準同型暗号でかつ大小比較可能な暗号方式でも同様に実施することが可能である。これら暗号方式を用いる場合は、それぞれの方式における暗号アルゴリズムを置き換えることで同様に実現できる。
【０２４０】
＜第４の実施形態：Ｍ２Ｍ及びトップコーディング＞
図１５は第４の実施形態に係る匿名化システム及びその周辺構成を示す模式図である。
【０２４１】
第４の実施形態は、暗号化装置１０が個人データを暗号化して匿名化装置２０に預ける第３の実施形態とは異なり、Ｍ２Ｍサービスのように、各機器で取得した個人データを暗号化してなる暗号化データを匿名化装置２０で収集する形態となっている。ここでいう各機器は、各々の暗号化装置（１〜Ｎ）１０に相当する。
【０２４２】
具体的には、第４の実施形態は、図１に示した構成に比べ、暗号化装置１０をＮ台設け、且つパラメータ生成装置８０を更に備えている。但し、パラメータ生成装置８０は、必須ではなく、例えばいずれかの暗号化装置１０がパラメータ（例、しきい値T）及び暗号化パラメータ（暗号化しきい値ＣA,T）を生成する場合には、省略してもよい。このことは、以下の各実施形態及び各変形例でも同様である。
【０２４３】
ここで、Ｎ台の暗号化装置（１〜Ｎ）１０は、前述した暗号化装置１０のパラメータ生成部１５に代えて、データ取得部１９を備えている。
【０２４４】
パラメータ生成装置８０は、暗号パラメータ格納部８１、鍵記憶部８２、通信部８３、パラメータ生成部８４、乱数生成部８５、暗号化部８６及び制御部８７を備えている。
【０２４５】
暗号パラメータ格納部８１及び鍵記憶部８２は、図示しないプロセッサから読出／書込可能な記憶装置又は記憶装置の記憶領域として実現可能となっており、それぞれ暗号パラメータ及び鍵等を記憶する。
【０２４６】
通信部８３、パラメータ生成部８４、乱数生成部８５、暗号化部８６及び制御部８７は、例えば、図示しないプロセッサが、後述するパラメータ生成装置８０内の各ステップを含むプログラムを実行することにより実現される機能ブロックとなっている。
【０２４７】
次に、本実施形態における匿名化システムの動作について図１６のシーケンス図を用いて説明する。
【０２４８】
（事前準備）
ステップＳＴ２１において、復号装置３０の鍵生成部３６は、暗号パラメータ格納部３１内のセキュリティパラメータ(1k)に基づいて、大小比較可能な暗号方式における復号装置３０自身の鍵（秘密鍵skA）を生成する。
【０２４９】
KeyGen(1k)→（skA）
なお、鍵生成部３６は、鍵の生成処理において必要な乱数を乱数生成部３５から取得することができる。また、鍵生成部３６は、生成した秘密鍵skAを秘密鍵格納部３２に保存する。
【０２５０】
ステップＳＴ２２において、復号装置３０の制御部３８は、通信部３４により、共通鍵である秘密鍵skAを各暗号化装置（１〜Ｎ）１０及びパラメータ生成装置８０に送付する。パラメータ生成装置８０の制御部８７は、通信部８３により受信した秘密鍵skAを鍵記憶部８２に格納する。同様に、各暗号化装置（１〜Ｎ）１０の制御部１８は、通信部１４により受信した秘密鍵skAを鍵記憶部１２に格納する。なお、各暗号化装置（１〜Ｎ）１０は、機器組み立て時に公開鍵pkAを入力して格納してもよく、機器を配置後、ネットワーク経由で公開鍵pkAを受信して格納してもよい。
【０２５１】
ステップＳＴ２３において、各暗号化装置（１〜Ｎ）１０のデータ取得部１９は、テーブルＴ１からなる個人データを取得して一時データ記憶部１３に記憶する。各暗号化装置（１〜Ｎ）１０の暗号化部１７は、一時データ記憶部１３内のテーブルＴ１のうち、トップコーディング対象の属性項目（収入）の属性値dataiを、鍵記憶部１２内の秘密鍵skAに基づいてレコード毎に暗号化する。
【０２５２】
Enc（skA，datai）→ＣA,data_i
同様に、各暗号化装置（１〜Ｎ）１０の暗号化部１７は、秘密鍵skAに基づいて、テーブルＴ１のうち、トップコーディング対象の属性項目以外の属性項目の属性値をレコード毎に暗号化する。これにより、テーブルＴ１内の全ての属性項目の属性値が暗号化され、当該全ての属性項目の属性値が暗号化されたテーブルＴ１ｅが暗号化データとして生成される。
【０２５３】
ステップＳＴ２４において、各暗号化装置（１〜Ｎ）１０の制御部１８は、通信部１４により、テーブルＴ１ｅからなる暗号化データと、テーブルＴ１ｅ内のトップコーディング対象の属性項目（収入）とを匿名化装置２０に送付する。
【０２５４】
ステップＳＴ２５において、匿名化装置２０は、通信部２４により、暗号化データであるテーブルＴ１ｅと、テーブルＴ１ｅ内のトップコーディング対象の属性項目（収入）とを受信する。しかる後、匿名化装置２０の制御部２９は、当該テーブルＴ１ｅと、トップコーディング対象の属性項目（収入）とを一時データ記憶部２３に保管する。一時データ記憶部２３内のテーブルＴ１ｅは、暗号化装置（１〜Ｎ）１０から受信したテーブルＴ１ｅを集めた内容に更新される。
【０２５５】
（匿名化）
ステップＳＴ２６において、パラメータ生成装置８０のパラメータ生成部８４は、トップコーディングするための匿名用パラメータである、しきい値Tを生成する。パラメータ生成装置８０の暗号化部８６は、生成したしきい値Tを、鍵記憶部８２内の秘密鍵skAに基づいて、大小比較可能な暗号方式で暗号化し、暗号化匿名用パラメータである暗号化しきい値ＣA,Tを生成する。
【０２５６】
Enc（skA，T）→ＣA,T 
ステップＳＴ２７において、パラメータ生成装置８０の制御部８７は、通信部８３により、暗号化しきい値ＣA,Tを匿名化装置２０に送付する。但し、暗号化しきい値ＣA,Tを匿名化装置２０が予め保持又は生成する場合には、パラメータ生成装置８０による暗号化乱数ＣA,Rの生成及び送付を省略できる。
【０２５７】
以下、前述した第３の実施形態と同様に、ステップＳＴ２８〜ＳＴ３２が実行される。
【０２５８】
上述したように本実施形態によれば、、暗号化装置１０を複数台とした場合でも、第３の実施形態と同様の作用効果を得ることができる。
【０２５９】
なお、本実施形態は、（加法的な）準同型暗号でかつ大小比較可能な暗号方式でも同様に実施することが可能である。これら暗号方式を用いる場合は、それぞれの方式における暗号アルゴリズムを置き換えることで同様に実現できる。
【０２６０】
ただし、本実施形態では、各機器に秘密鍵skAを格納するが、この秘密鍵skAは暗号化のみならず復号処理もできるため、各機器上で、秘密鍵skAを適切に管理しなければならない。このことは、以下の各実施形態及び各変形例でも同様である。
【０２６１】
＜第５の実施形態：グルーピング＞
次に、第５の実施形態に係る匿名化システムについて図１を参照しながら説明する。
【０２６２】
第５の実施形態は、暗号化した「社員番号」を仮名化した第１の実施形態とは異なり、暗号化した「年齢」をグルーピングする形態である。
【０２６３】
次に、本実施形態における匿名化システムの動作について図１７のシーケンス図、及び図１８乃至図２０の模式図を用いて説明する。以下の説明では、大小比較可能な暗号方式を用いて匿名化する場合を例に挙げて述べる。
【０２６４】
（事前準備）
ステップＳＴ４１において、復号装置３０の鍵生成部３６は、暗号パラメータ格納部３１内のセキュリティパラメータ(1k)に基づいて、大小比較可能な暗号方式における、復号装置３０自身の鍵（秘密鍵skA）を生成する。
【０２６５】
KeyGen(1k)→（skA）
なお、鍵生成部３６は、鍵の生成処理において必要な乱数を乱数生成部３５から取得することができる。また、鍵生成部３６は、生成した秘密鍵skAを秘密鍵格納部３２に保存する。
【０２６６】
ステップＳＴ４２において、復号装置３０の制御部３８は、通信部３４により、暗号化装置１０に、共通鍵である秘密鍵skAを送付する。暗号化装置１０の制御部１８は、通信部１４により受信した秘密鍵skAを鍵記憶部１２に格納する。
【０２６７】
ステップＳＴ４３において、暗号化装置１０の暗号化部１７は、図１８に示すテーブルＴ１を一時データ記憶部１３から読み出す。暗号化部１７は、このテーブルＴ１のうち、グルーピング対象の属性項目（年齢）の属性値dataiを、鍵記憶部１２内の秘密鍵skAに基づいてレコード毎に暗号化する。
【０２６８】
Enc（skA，datai）→ＣA,data_i
なお、暗号化部１７は、暗号化の処理において必要なパラメータ及び乱数を、それぞれ暗号パラメータ格納部１１及び乱数生成部１６から取得することができる。
【０２６９】
同様に、暗号化部１７は、秘密鍵skAに基づいて、テーブルＴ１のうち、グルーピング対象の属性項目以外の属性項目の属性値をレコード毎に暗号化する。これにより、テーブルＴ１内の全ての属性項目の属性値が暗号化され、図１９に示すように、当該全ての属性項目の属性値が暗号化されたテーブルＴ１ｅが暗号化データとして生成される。
【０２７０】
ステップＳＴ４４において、暗号化装置１０の制御部１８は、通信部１４により、テーブルＴ１ｅからなる暗号化データを匿名化装置２０に送付する。
【０２７１】
ステップＳＴ４５において、匿名化装置２０は、通信部２４により受信した暗号化データであるテーブルＴ１ｅを一時データ記憶部２３に保管する。
【０２７２】
（匿名化）
ステップＳＴ４６において、暗号化装置１０のパラメータ生成部１５は、グルーピングするための匿名用パラメータである、グループの下限値L、グループの上限値U及びグループの代表値Mを生成する。暗号化部１７は、生成した下限値L、上限値U及びグループの代表値Mを、鍵記憶部１２内の秘密鍵skAに基づいて、大小比較可能な暗号方式で暗号化する。これにより、暗号化匿名用パラメータである暗号化下限値ＣA,L、暗号化上限値ＣA,U及び暗号化代表値ＣA,Mが生成される。
【０２７３】
Enc（skA，L）→ＣA,L 
Enc（skA，U）→ＣA,U 
Enc（skA，M）→ＣA,M 
ステップＳＴ４７において、暗号化装置１０の制御部１８は、通信部１４により、テーブルＴ１ｅ内のグルーピング対象の属性項目（年齢）と、暗号化下限値ＣA,L、暗号化上限値ＣA,U及び暗号化代表値ＣA,Mとを匿名化装置２０に送付する。但し、匿名化装置２０が秘密鍵skAを予め取得することにより、暗号化下限値ＣA,L、暗号化上限値ＣA,U及び暗号化代表値ＣA,Mを匿名化装置２０が予め保持又は生成する場合には、各値ＣA,L、ＣA,U及びＣA,Mの生成及び送付を省略できる。このことは、以下の各実施形態及び変形例でも同様である。
【０２７４】
ステップＳＴ４８において、匿名化装置２０は、通信部２４により、当該属性項目（年齢）と、暗号化下限値ＣA,L、暗号化上限値ＣA,U及び暗号化代表値ＣA,Mとを受信する。匿名化処理部２６は、一時データ記憶部２３内のテーブルＴ１ｅのうち、受信した属性項目（年齢）に一致する属性項目（年齢）の属性値ＣA,data_iと、受信した暗号化下限値ＣA,L及び暗号化上限値ＣA,U をレコード毎に比較する。
【数１７】
0006309866.tif 000018
【０２７５】
グルーピングしたいテーブルの属性項目（年齢）の属性値ＣA,data_iが暗号化下限値ＣA,L以上で暗号化上限値ＣA,U以下のとき、当該属性値ＣA,data_iを暗号化代表値ＣA,Mに置き換える。ここで、暗号化属性値ＣA,data_iが暗号化下限値ＣA,L以上のときは、第１の比較処理Comp（ＣA,data_i，ＣA,L）の結果が「１」又は「０」の場合に相当する。属性値ＣA,data_iが暗号化上限値ＣA,U以下のときは、第２の比較処理Comp（ＣA,data_i，ＣA,U）の結果が「−１」又は「０」の場合に相当する。
【０２７６】
なお、属性値ＣA,data_iを暗号化代表値ＣA,M に置き換える際に、比較処理Compの結果が０の場合を含めるか否か、などといったグルーピングの方法は、適宜、変更可能となっている。グルーピングの方法は、例えば、用途・目的に応じた一般的な手法を用いてもよく、それら一般的な手法を本実施形態の手法に組み合わせて実施しても良い。
【０２７７】
すなわち、ステップＳＴ４３で暗号化された属性値ＣA,data_iは、暗号化された状態のままで適宜、暗号化代表値ＣA,M に置き換えられることにより、復号されずに匿名化された属性値（ＣA,M）に変換される。
【０２７８】
このように、テーブルＴ１ｅ内のグルーピング対象の属性項目（年齢）の属性値が匿名化され、図２０に示すように、匿名化された属性値（ＣA,M）を含むテーブルＴ１ａが暗号化匿名化データとして生成される。
【０２７９】
しかる後、匿名化処理部２６は、テーブルＴ１ａを一時データ記憶部２３に保存する。
【０２８０】
ステップＳＴ４９において、匿名化装置２０の制御部２９は、通信部２４により、一時データ記憶部２３内のテーブルＴ１ａからなる暗号化匿名化データを復号装置３０に送付する。
【０２８１】
本実施形態によれば、暗号化データを復号せずに匿名化し、得られた暗号化匿名化データを復号して匿名化データを利用することが可能になる。詳しくは数値で表現されているテーブルＴ１の属性値data_iを、各グループの下限値L及び上限値Uを指定することによってグルーピングすることができる。ここで、匿名化装置２０には、どの属性値（ＣA,data_i）を置き換えたかが分かり、置き換えた暗号文は全部同じ値（各グループの暗号化代表値ＣA,M）になる。しかしながら、匿名化装置２０には、グループの下限値L、上限値U、代表値M、及び元の属性値（data_i）は分からない。
【０２８２】
ここで、暗号化装置１０は、グルーピング前の暗号化データを保持している場合、グルーピング前とグルーピング後の対応テーブルを作成してもよい。元のデータを別途保持していれば、グルーピングした属性値を元に戻すことも可能である。
【０２８３】
しかる後、ステップＳＴ５０において、復号装置３０の制御部３８は、通信部３４により、暗号化匿名化データを受信して一時データ記憶部３３に記憶する。復号部３７は、秘密鍵格納部３２内の秘密鍵skAに基づいて、一時データ記憶部３３内の暗号化匿名化データであるテーブルＴ１ａ内の各属性項目の値を復号し、得られた復号結果のテーブルを得る。
【０２８４】
復号装置３０の制御部３８は、復号結果のテーブルのうち、グルーピング対象の属性項目（年齢）の属性値が匿名化されているか否かを判定する。例えば、各グループの代表値が「２０代」、「３０代」、「４０代」等の場合、当該属性値が「代」の文字列を含むときには、匿名化されていると判定される。また例えば、匿名化された属性項目（年齢）の属性値について、匿名化前の値と匿名化後の値とが異なる場合には、属性値が匿名化されている旨を判定してもよい。この場合、任意のタイミングで暗号化装置１０が匿名化前の値を復号装置３０に送信しておけばよい。いずれにしても、判定の結果が否の場合には、ステップＳＴ４６（又はＳＴ４４）から処理をやり直し、好ましい匿名化結果が得られるまで繰り返す。
【０２８５】
以下、前述したステップＳＴ３１〜ＳＴ３２と同様に、ステップＳＴ５１〜ＳＴ５２が実行される。
【０２８６】
上述したように本実施形態によれば、匿名化処理としてグルーピングを実行する場合でも、第１の実施形態と同様の作用効果を得ることができる。
【０２８７】
なお、本実施形態は、（加法的な）準同型暗号でかつ大小比較可能な暗号方式でも同様に実施することが可能である。これら暗号方式を用いる場合は、それぞれの方式における暗号アルゴリズムを置き換えることで同様に実現できる。
【０２８８】
＜第６の実施形態：Ｍ２Ｍ及びグルーピング＞
次に、第６の実施形態に係る匿名化システムについて図１５を参照しながら説明する。
【０２８９】
第６の実施形態は、暗号化装置１０が個人データを暗号化して匿名化装置２０に預ける第５の実施形態とは異なり、Ｍ２Ｍサービスのように、各機器で取得した個人データを暗号化してなる暗号化データを匿名化装置２０で収集する形態となっている。ここでいう各機器は、各々の暗号化装置（１〜Ｎ）１０に相当する。
【０２９０】
次に、本実施形態における匿名化システムの動作について図２１のシーケンス図を用いて説明する。以下の説明では、大小比較可能な暗号方式を用いて匿名化する場合を例に挙げて述べる。
【０２９１】
（事前準備）
ステップＳＴ４１〜ＳＴ４２は、第４の実施形態のステップＳＴ２１〜ＳＴ２２と同様に実行される。但し、鍵生成に用いる暗号方式は、第５の実施形態の大小比較可能な暗号方式を用いる。
【０２９２】
ステップＳＴ４３において、各暗号化装置（１〜Ｎ）１０のデータ取得部１９は、テーブルＴ１からなる個人データを取得して一時データ記憶部１３に記憶する。各暗号化装置（１〜Ｎ）１０の暗号化部１７は、一時データ記憶部１３内のテーブルＴ１のうち、グルーピング対象の属性項目（年齢）の属性値dataiを、鍵記憶部１２内の秘密鍵skAに基づいてレコード毎に暗号化する。
【０２９３】
Enc（skA，datai）→ＣA,data_i
同様に、各暗号化装置（１〜Ｎ）１０の暗号化部１７は、秘密鍵skAに基づいて、テーブルＴ１のうち、グルーピング対象の属性項目以外の属性項目の属性値をレコード毎に暗号化する。これにより、テーブルＴ１内の全ての属性項目の属性値が暗号化され、当該全ての属性項目の属性値が暗号化されたテーブルＴ１ｅが暗号化データとして生成される。
【０２９４】
ステップＳＴ４４において、各暗号化装置（１〜Ｎ）１０の制御部１８は、通信部１４により、テーブルＴ１ｅからなる暗号化データと、テーブルＴ１ｅ内のグルーピング対象の属性項目（年齢）とを匿名化装置２０に送付する。
【０２９５】
ステップＳＴ４５において、匿名化装置２０は、通信部２４により、暗号化データであるテーブルＴ１ｅと、テーブルＴ１ｅ内のグルーピング対象の属性項目（年齢）とを受信する。しかる後、匿名化装置２０の制御部２９は、当該テーブルＴ１ｅと、グルーピング対象の属性項目（年齢）とを一時データ記憶部２３に保管する。一時データ記憶部２３内のテーブルＴ１ｅは、暗号化装置（１〜Ｎ）１０から受信したテーブルＴ１ｅを集めた内容に更新される。
【０２９６】
（匿名化）
ステップＳＴ４６において、パラメータ生成装置８０のパラメータ生成部８４は、グルーピングするための匿名用パラメータである、グループの下限値L、グループの上限値U及びグループの代表値Mを生成する。パラメータ生成装置８０の暗号化部８６は、生成した下限値L、上限値U及びグループの代表値Mを、鍵記憶部８２内の秘密鍵skAに基づいて、大小比較可能な暗号方式で暗号化する。これにより、暗号化匿名用パラメータである暗号化下限値ＣA,L、暗号化上限値ＣA,U及び暗号化代表値ＣA,Mが生成される。
【０２９７】
Enc（skA，L）→ＣA,L 
Enc（skA，U）→ＣA,U 
Enc（skA，M）→ＣA,M 
ステップＳＴ４７において、パラメータ生成装置８０の制御部８７は、通信部８３により、テーブルＴ１ｅ内のグルーピング対象の属性項目（年齢）と、暗号化下限値ＣA,L、暗号化上限値ＣA,U及び暗号化代表値ＣA,Mとを匿名化装置２０に送付する。但し、匿名化装置２０が秘密鍵skAを予め取得することにより、暗号化下限値ＣA,L、暗号化上限値ＣA,U及び暗号化代表値ＣA,Mを匿名化装置２０が予め保持又は生成する場合には、各値ＣA,L、ＣA,U及びＣA,Mの生成及び送付を省略できる。
【０２９８】
以下、前述した第５の実施形態と同様に、ステップＳＴ４８〜ＳＴ５２が実行される。
【０２９９】
上述したように本実施形態によれば、暗号化装置１０を複数台とした場合でも、第５の実施形態と同様の作用効果を得ることができる。
【０３００】
なお、本実施形態は、（加法的な）準同型暗号でかつ大小比較可能な暗号方式でも同様に実施することが可能である。これら暗号方式を用いる場合は、それぞれの方式における暗号アルゴリズムを置き換えることで同様に実現できる。
【０３０１】
＜第７の実施形態：誤差の導入＞
次に、第７の実施形態に係る匿名化システムについて図１、図３、図５及び図６を参照しながら説明する。
【０３０２】
第７の実施形態は、乱数R及び暗号化乱数ＣA,Rを用いた第１の実施形態とは異なり、誤差R及び暗号化誤差ＣA,Rを用いる形態である。すなわち、第７の実施形態は、第１の実施形態における乱数Rを誤差Rとみなし、第１の実施形態と同一の構成（図１）及び処理によって、テーブルＴ１の属性値を匿名化（誤差の導入による仮名化）する構成となっている。このとき、テーブルＴ１は、第１の実施形態と同様に、順次、テーブルＴ１ｅ，Ｔ１ａに変更される（図３、図５及び図６）。
【０３０３】
以上のような構成によれば、図２２に示すように、第１の実施形態と同様の作用効果を得ることができる。また、本実施形態は、第１の実施形態における匿名化（仮名化）に加え、社員番号以外の属性項目（年齢、収入）の暗号化された属性値（ＣA,data_i+R）に暗号化誤差ＣA,Rを導入（加減算）することにより、一層、匿名化を進めることができる。
【０３０４】
＜第７の実施形態の変形例：誤差の導入＞
第７の実施形態の変形例は、第１の実施形態の変形例と同様に、匿名化装置２０が、テーブルＴ１ｅのうち、仮名化対象の属性項目（社員番号）の属性値ＣA,data_iに対し、レコード毎に異なる暗号化誤差ＣA,Rを導入して仮名化することができる。
【０３０５】
これにより、第１の実施形態の変形例と同様の効果を得ることができる。
【０３０６】
また、第７の実施形態の変形例は、仮名化対象の属性項目（社員番号）に加え、誤差の導入対象の属性項目（年齢、収入）の属性値ＣA,data_iに対し、レコード毎に異なる暗号化誤差ＣA,Rを導入して、一層、匿名化を進めることができる
＜第８の実施形態：Ｍ２Ｍ及び誤差の導入＞
次に、第８の実施形態に係る匿名化システムについて図９を参照しながら説明する。
【０３０７】
第８の実施形態は、Ｍ２Ｍに乱数R及び暗号化乱数ＣA,Rを用いた第２の実施形態とは異なり、Ｍ２Ｍに誤差R及び暗号化誤差ＣA,Rを用いる形態である。すなわち、第８の実施形態は、第２の実施形態における乱数Rを誤差Rとみなし、第２の実施形態と同一の処理によって、テーブルの属性値を匿名化（誤差の導入による仮名化）する構成となっている。
【０３０８】
以上のような構成によれば、第２の実施形態と同様の作用効果を得ることができる。また、本実施形態は、第２の実施形態における匿名化（仮名化）に加え、社員番号以外の属性項目（年齢、収入）の暗号化された属性値に暗号化誤差ＣA,Rを導入（加減算）することにより、一層、匿名化を進めることができる。
【０３０９】
＜第８の実施形態の変形例：誤差の導入＞
第８の実施形態の変形例は、第２の実施形態の変形例と同様に、匿名化装置２０が、テーブルＴ１ｅのうち、仮名化対象の属性項目（社員番号）の属性値ＣA,data_iに対し、レコード毎に異なる暗号化誤差ＣA,Rを導入して仮名化することができる。
【０３１０】
これにより、第２の実施形態の変形例と同様の効果を得ることができる。
【０３１１】
また、第８の実施形態の変形例は、仮名化対象の属性項目（社員番号）に加え、誤差の導入対象の属性項目（年齢、収入）の属性値ＣA,data_iに対し、レコード毎に異なる暗号化誤差ＣA,Rを導入して、一層、匿名化を進めることができる。
【０３１２】
＜第９の実施形態：[AN2013-51001]方式でトップコーディング＞
図２３は第９の実施形態に係る匿名化システム及びその周辺構成を示す模式図である。
【０３１３】
第９の実施形態は、[OPE]方式を用いた第３の実施形態とは異なり、[AN2013-51001]方式を用いる形態である。
【０３１４】
これに伴い、第９の実施形態は、図１に示した構成に比べ、匿名化支援装置９０を更に備えている。
【０３１５】
匿名化支援装置９０は、鍵記憶部９１、一時データ記憶部９２、通信部９３、パラメータ生成部９４、乱数生成部９５、演算部９６及び制御部９７を備えている。
【０３１６】
鍵記憶部９１及び一時データ記憶部９２は、図示しないプロセッサから読出／書込可能な記憶装置又は記憶装置の記憶領域として実現可能となっており、それぞれ鍵及び一時データ等を記憶する。
【０３１７】
通信部９３、パラメータ生成部９４、乱数生成部９５、演算部９６及び制御部９７は、例えば、図示しないプロセッサが、後述する匿名化支援装置９０内の各ステップを含むプログラムを実行することにより実現される機能ブロックとなっている。
【０３１８】
また、匿名化装置２０は、図１に示した構成に比べ、鍵記憶部２２０を更に備えている。
【０３１９】
復号装置３０は、図１に示した構成において、秘密鍵格納部３２に代えて、鍵記憶部３２０を備えている。
【０３２０】
次に、本実施形態における匿名化システムの動作について図２４のシーケンス図、並びに図２５及び図２６の模式図を用いて説明する。以下の説明は、[AN2013-51001]の（加法的な）準同型暗号で且つ大小比較可能な暗号方式を用いて匿名化する場合を例に挙げて述べる。
【０３２１】
（事前準備）
ステップＳＴ６１において、復号装置３０の鍵生成部３６は、暗号パラメータ格納部３１内のセキュリティパラメータ(1k)に基づいて、[AN2013-51001]の暗号方式における鍵生成を実行する。これにより、鍵生成部３６は、暗号化鍵a、gsv、g、N、二次演算鍵a-1、s、N、三次演算鍵v、N、及び復号鍵sv、a-1、N（又はs、v、a-1、N）を生成する。
【０３２２】
KeyGen(1k)→（a、gsv、g、N、a-1、s、v）
なお、鍵生成部３６は、鍵の生成処理において必要な乱数を乱数生成部３５から取得することができる。また、鍵生成部３６は、生成した暗号化鍵a、gsv、g、N、二次演算鍵a-1、s、N、三次演算鍵v、N、及び復号鍵sv、a-1、N（又はs、v、a-1、N）を鍵記憶部３２０に保存する。
【０３２３】
ステップＳＴ６２において、復号装置３０の制御部３８は、通信部３４により、暗号化鍵a、gsv、g、Nを暗号化装置１０に送付する。暗号化装置１０の制御部１８は、通信部１４により受信した暗号化鍵a、gsv、g、Nを鍵記憶部１２に格納する。
【０３２４】
ステップＳＴ６３において、復号装置３０の制御部３８は、通信部３４により、三次演算鍵v、Nを匿名化装置２０に送付する。匿名化装置２０の制御部２９は、通信部２４により受信した三次演算鍵v、Nを鍵記憶部２２０に格納する。
【０３２５】
ステップＳＴ６４において、復号装置３０の制御部３８は、通信部３４により、二次演算鍵a-1、s、Nを匿名化支援装置９０に送付する。匿名化支援装置９０の制御部９７は、通信部９３により受信した二次演算鍵a-1、s、Nを鍵記憶部９１に格納する。
【０３２６】
ステップＳＴ６５において、暗号化装置１０の暗号化部１７は、図１２に示したテーブルＴ１を一時データ記憶部１３から読み出す。暗号化部１７は、このテーブルＴ１のうち、トップコーディング対象の属性項目（収入）の属性値dataiを、鍵記憶部１２内の暗号化鍵a、gsv、g、Nに基づいてレコード毎に暗号化する。
【０３２７】
Enc（datai）→Ｃdata_i 
なお、暗号化部１７は、暗号化の処理において必要なパラメータ及び乱数を、それぞれ暗号パラメータ格納部１１及び乱数生成部１６から取得することができる。
【０３２８】
同様に、暗号化部１７は、暗号化鍵a、gsv、g、Nに基づいて、テーブルＴ１のうち、トップコーディング対象の属性項目以外の属性項目の属性値をレコード毎に暗号化する。これにより、テーブルＴ１内の全ての属性項目の属性値が暗号化され、図２５に示すように、当該全ての属性項目の属性値が暗号化されたテーブルＴ１ｅが暗号化データとして生成される。
【０３２９】
ステップＳＴ６６において、暗号化装置１０の制御部１８は、通信部１４により、テーブルＴ１ｅからなる暗号化データを匿名化装置２０に送付する。
【０３３０】
ステップＳＴ６７において、匿名化装置２０は、通信部２４により受信した暗号化データであるテーブルＴ１ｅを一時データ記憶部２３に保管する。
【０３３１】
（匿名化）
ステップＳＴ６８において、暗号化装置１０のパラメータ生成部１５は、トップコーディングするための匿名用パラメータである、しきい値Tを生成する。暗号化部１７は、生成したしきい値Tを、鍵記憶部１２内の暗号化鍵a、gsv、g、Nに基づいて、[AN2013-51001]の暗号方式で暗号化する。これにより、暗号化匿名用パラメータである暗号化しきい値ＣTが生成される。
【０３３２】
Enc（T）→ＣT 
ステップＳＴ６９において、暗号化装置１０の制御部１８は、通信部１４により、テーブルＴ１ｅ内のトップコーディング対象の属性項目（収入）と、暗号化しきい値ＣTとを匿名化装置２０に送付する。但し、匿名化装置２０が暗号化鍵a、gsv、g、Nを予め取得することにより、暗号化しきい値ＣTを匿名化装置２０が予め保持又は生成する場合には、暗号化装置１０による暗号化しきい値ＣTの生成及び送付を省略できる。このことは、以下の各実施形態及び変形例でも同様である。
【０３３３】
ステップＳＴ７０において、匿名化装置２０は、通信部２４により、当該属性項目（収入）及び暗号化しきい値ＣTを受信する。匿名化装置２０の演算部２７は、一時データ記憶部２３内のテーブルＴ１ｅのうち、受信した属性項目（収入）に一致する属性項目（収入）の属性値Ｃdata_iと、受信した暗号化しきい値ＣT とに基づいて、一次演算結果X＝(X1、X2)を生成する。
【０３３４】
ステップＳＴ７１において、匿名化装置２０の制御部２９は、通信部２４により、一次演算結果Xを匿名化支援装置９０に送付する。
【０３３５】
ステップＳＴ７２において、匿名化支援装置９０は、通信部９３により、一次演算結果Xを受信する。匿名化支援装置９０の演算部９６は、受信した一次演算結果Xと、鍵記憶部９１内の二次演算鍵a-1、s、Nとに基づいて、二次演算結果Y＝(Y1、Y2)を生成する。
【０３３６】
ステップＳＴ７３において、匿名化支援装置９０の制御部９７は、通信部９３により、二次演算結果Yを匿名化装置２０に送付する。
【０３３７】
ステップＳＴ７４において、匿名化装置２０は、通信部２４により、二次演算結果Yを受信する。匿名化装置２０の演算部２７は、受信した二次演算結果Yと、鍵記憶部９１内の三次演算鍵v、Nとに基づいて、三次演算結果Wを生成する。
【０３３８】
ステップＳＴ７５において、匿名化装置２０の演算結果比較部２８は、三次演算結果Wと、N/2とを比較し、W＜N/2のときには比較結果を正と判定し、それ以外のときには比較結果を負（又は０）と判定する。判定結果は、演算結果比較部２８から匿名化処理部２６に出力される。
【０３３９】
匿名化装置２０の匿名化処理部２６は、判定結果が正のときには、属性値Ｃdata_iを暗号化しきい値ＣTに置き換える。なお、「判定結果が正のとき」は、「式Ｆ＝Ｃdata_i−ＣT が正のとき」に相当する。「それ以外のとき」は、「式Ｆ＝Ｃdata_i−ＣT が負（又は０）のとき」に相当する。
【０３４０】
すなわち、ステップＳＴ６５で暗号化された属性値Ｃdata_iは、暗号化された状態のままで適宜、暗号化しきい値ＣT に置き換えられることにより、復号されずに匿名化された属性値（ＣT）に変換される。
【０３４１】
このように、テーブルＴ１ｅ内のトップコーディング対象の属性項目（収入）の属性値が匿名化され、図２６に示すように、匿名化された属性値（ＣT）を含むテーブルＴ１ａが暗号化匿名化データとして生成される。
【０３４２】
しかる後、匿名化処理部２６は、テーブルＴ１ａを一時データ記憶部２３に保存する。
【０３４３】
ステップＳＴ７６において、匿名化装置２０の制御部２９は、通信部２４により、一時データ記憶部２３内のテーブルＴ１ａからなる暗号化匿名化データを復号装置３０に送付する。
【０３４４】
本実施形態によれば、暗号化データを復号せずに匿名化し、得られた暗号化匿名化データを復号して匿名化データを利用することが可能になる。詳しくは数値で表現されているテーブルＴ１の属性値data_iを、トップコーディング用のしきい値Tによってトップコーディングすることができる。ここで、匿名化装置２０には、どの属性値（Ｃdata_i）を置き換えたかが分かり、置き換えた暗号文は全部同じ値（ＣT）になる。しかしながら、匿名化装置２０には、しきい値T及び元の属性値（data_i）は分からない。また、暗号化装置１０は、トップコーディング前の暗号化データを保持している場合、トップコーディング前とトップコーディング後の対応テーブルを作成してもよい。元のデータを別途保持していれば、トップコーディングした属性値を元に戻すことも可能である。
【０３４５】
しかる後、ステップＳＴ７６において、復号装置３０の制御部３８は、通信部３４により、暗号化匿名化データを受信して一時データ記憶部３３に記憶する。復号部３７は、鍵記憶部３２０内の復号鍵sv、a-1、N（又はs、v、a-1、N）に基づいて、一時データ記憶部３３内の暗号化匿名化データであるテーブルＴ１ａ内の各属性項目の値を復号し、得られた復号結果のテーブルを得る。
【０３４６】
復号装置３０の制御部３８は、復号結果のテーブルのうち、トップコーディング対象の属性項目（収入）の属性値が匿名化されているか否かを判定する。具体的には、例えば、第３の実施形態と同様にして判定すればよい。判定の結果が否の場合には、ステップＳＴ６８（又はＳＴ６６）から処理をやり直し、好ましい匿名化結果が得られるまで繰り返す。
【０３４７】
以下、第３の実施形態のステップＳＴ３１〜ＳＴ３２と同様に、ステップＳＴ７８〜ＳＴ７９が実行される。
【０３４８】
上述したように本実施形態によれば、[AN2013-51001]方式の暗号方式を用い、匿名化処理としてトップコーディングを実行する場合でも、第１の実施形態と同様の作用効果を得ることができる。
【０３４９】
本実施形態は、図２及び図７に示した変形例と同様に、図２７に示すように、匿名化装置２０による暗号化データ及び暗号化匿名データの保管に代えて、暗号化データ及び暗号化匿名化データを保管するためのデータ保管装置７０を更に備えてもよい。この時既存のデータ保管装置７０に匿名化装置２０を連携させることで、本実施形態と同様の効果を得ることが可能になる。例えば図２８に示すように、ステップＳＴ６６で暗号化データをデータ保管装置７０に送付し、ステップＳＴ６７でデータ保管装置７０が暗号化データを保管してもよい。また、ステップＳＴ７０−１でデータ保管装置７０が暗号化データを匿名化装置２０に送付し、ステップＳＴ７０−２で匿名化装置２０が一次演算結果を生成するようにしてもよい。同様に、ステップＳＴ７６−１で匿名化装置２０が暗号化匿名化データをデータ保管装置７０に送付し、ステップＳ７６−２でデータ保管装置７０が暗号化匿名化データを保管してもよい。また、ステップＳＴ７６−３でデータ保管装置７０が暗号化匿名化データを復号装置３０に送付するようにしてもよい。このとき、既存のデータ保管装置７０を大きく変えることなく、本実施形態の効果を得ることが可能になる。これは後述する実施形態や変形例においても同様である。
【０３５０】
また例えば図８に示した変形例と同様に、図２９に示すように、図２８のステップＳＴ７６−１〜ＳＴ７６−３に代えて、元のステップＳＴ７６を実行するようにしてもよい。この場合、図８に示した動作による効果と同様の効果を得ることができる。
【０３５１】
＜第１０の実施形態：Ｍ２Ｍ、[AN2013-51001]方式及びトップコーディング＞
図３０は第１０の実施形態に係る匿名化システム及びその周辺構成を示す模式図である。
【０３５２】
第１０の実施形態は、暗号化装置１０が個人データを暗号化して匿名化装置２０に預ける第９の実施形態とは異なり、Ｍ２Ｍサービスのように、各機器で取得した個人データを暗号化してなる暗号化データを匿名化装置２０で収集する形態となっている。ここでいう各機器は、各々の暗号化装置（１〜Ｎ）１０に相当する。
【０３５３】
具体的には、第１０の実施形態は、図２３に示した構成に比べ、暗号化装置１０をＮ台設け、且つパラメータ生成装置８０を更に備えている。Ｎ台の暗号化装置（１〜Ｎ）１０及びパラメータ生成装置８０の構成は、それぞれ第４の実施形態と同様である。
【０３５４】
次に、本実施形態における匿名化システムの動作について図３１のシーケンス図を用いて説明する。
【０３５５】
（事前準備）
ステップＳＴ６１は、前述した第９の実施形態と同様に実行される。
【０３５６】
ステップＳＴ６２において、復号装置３０の制御部３８は、通信部３４により、暗号化鍵a、gsv、g、NをＮ台の暗号化装置（１〜Ｎ）１０及びパラメータ生成装置８０に送付する。パラメータ生成装置８０の制御部８７は、通信部８３により受信した暗号化鍵a、gsv、g、Nを鍵記憶部８２に格納する。同様に、暗号化装置１０の制御部１８は、通信部１４により受信した暗号化鍵a、gsv、g、Nを鍵記憶部１２に格納する。なお、各暗号化装置（１〜Ｎ）１０は、機器組み立て時に暗号化鍵a、gsv、g、Nを入力して格納してもよく、機器を配置後、ネットワーク経由で暗号化鍵a、gsv、g、Nを受信して格納してもよい。
【０３５７】
ステップＳＴ６３〜ＳＴ６４は、前述した第９の実施形態と同様に実行される。
【０３５８】
ステップＳＴ６５において、各暗号化装置（１〜Ｎ）１０のデータ取得部１９は、テーブルＴ１からなる個人データを取得して一時データ記憶部１３に記憶する。各暗号化装置１０の暗号化部１７は、一時データ記憶部１３内のテーブルＴ１のうち、トップコーディング対象の属性項目（収入）の属性値dataiを、鍵記憶部１２内の暗号化鍵a、gsv、g、Nに基づいてレコード毎に暗号化する。
【０３５９】
Enc（datai）→Ｃdata_i 
なお、暗号化部１７は、暗号化の処理において必要なパラメータ及び乱数を、それぞれ暗号パラメータ格納部１１及び乱数生成部１６から取得することができる。
【０３６０】
同様に、暗号化部１７は、暗号化鍵a、gsv、g、Nに基づいて、テーブルＴ１のうち、トップコーディング対象の属性項目以外の属性項目の属性値をレコード毎に暗号化する。これにより、テーブルＴ１内の全ての属性項目の属性値が暗号化され、当該全ての属性項目の属性値が暗号化されたテーブルＴ１ｅが暗号化データとして生成される。
【０３６１】
ステップＳＴ６６において、各暗号化装置（１〜Ｎ）１０の制御部１８は、通信部１４により、テーブルＴ１ｅからなる暗号化データと、テーブルＴ１ｅ内のトップコーディング対象の属性項目（収入）とを匿名化装置２０に送付する。
【０３６２】
ステップＳＴ６７において、匿名化装置２０は、通信部２４により、暗号化データであるテーブルＴ１ｅと、テーブルＴ１ｅ内のトップコーディング対象の属性項目（収入）とを受信する。しかる後、匿名化装置２０の制御部２９は、当該テーブルＴ１ｅと、トップコーディング対象の属性項目（収入）とを一時データ記憶部２３に保管する。一時データ記憶部２３内のテーブルＴ１ｅは、暗号化装置（１〜Ｎ）１０から受信したテーブルＴ１ｅを集めた内容に更新される。
【０３６３】
（匿名化）
ステップＳＴ６８において、パラメータ生成装置８０のパラメータ生成部８４は、トップコーディングするための匿名用パラメータである、しきい値Tを生成する。パラメータ生成装置８０の暗号化部８６は、生成したしきい値Tを、鍵記憶部８２内の暗号化鍵a、gsv、g、Nに基づいて、[AN2013-51001]の暗号方式で暗号化する。これにより、暗号化匿名用パラメータである暗号化しきい値ＣTが生成される。
【０３６４】
Enc（T）→ＣT 
ステップＳＴ６９において、パラメータ生成装置８０の制御部８７は、通信部８３により、暗号化しきい値ＣTを匿名化装置２０に送付する。
【０３６５】
以下、前述した第９の実施形態と同様に、ステップＳＴ７０〜ＳＴ７９が実行される。
【０３６６】
上述したように本実施形態によれば、暗号化装置１０を複数台とした場合でも、第９の実施形態と同様の作用効果を得ることができる。
【０３６７】
本実施形態では、第４の実施形態や第６の実施形態とは異なり、機器に秘密鍵そのものは格納しないため、仮に機器から鍵を盗まれても、暗号化したデータを復号または匿名化することはできない。
【０３６８】
＜第１１の実施形態：[AN2013-51001]方式でグルーピング＞
次に、第１１の実施形態に係る匿名化システムについて図２３を参照しながら説明する。
【０３６９】
第１１の実施形態は、暗号化した「収入」をトップコーディングした第９の実施形態とは異なり、暗号化した「年齢」をグルーピングする形態である。
【０３７０】
次に、本実施形態における匿名化システムの動作について図３２のシーケンス図、並びに図３３及び図３４の模式図を用いて説明する。以下の説明では、[AN2013-51001]の暗号方式を用いて匿名化する場合を例に挙げて述べる。
【０３７１】
（事前準備）
ステップＳＴ８１〜ＳＴ８４は、第９の実施形態のステップＳＴ６１〜ＳＴ６４と同様に実行される。
【０３７２】
ステップＳＴ８５において、暗号化装置１０の暗号化部１７は、暗号化前のテーブルＴ１を一時データ記憶部１３から読み出す。暗号化部１７は、このテーブルＴ１のうち、グルーピング対象の属性項目（年齢）の属性値dataiを、鍵記憶部１２内の暗号化鍵a、gsv、g、Nに基づいてレコード毎に暗号化する。
【０３７３】
Enc（datai）→Ｃdata_i 
なお、暗号化部１７は、暗号化の処理において必要なパラメータ及び乱数を、それぞれ暗号パラメータ格納部１１及び乱数生成部１６から取得することができる。
【０３７４】
同様に、暗号化部１７は、暗号化鍵a、gsv、g、Nに基づいて、テーブルＴ１のうち、グルーピング対象の属性項目以外の属性項目の属性値をレコード毎に暗号化する。これにより、テーブルＴ１内の全ての属性項目の属性値が暗号化され、図３３に示すように、当該全ての属性項目の属性値が暗号化されたテーブルＴ１ｅが暗号化データとして生成される。
【０３７５】
ステップＳＴ８５〜ＳＴ８６は、第９の実施形態のステップＳＴ６５〜ＳＴ６６と同様に実行される。
【０３７６】
（匿名化）
ステップＳＴ８８において、暗号化装置１０のパラメータ生成部１５は、グルーピングするための匿名用パラメータである、各グループの下限値L、上限値U及び代表値Mを生成する。暗号化部１７は、生成した下限値L、上限値U及び代表値Mを、鍵記憶部１２内の暗号化鍵a、gsv、g、Nに基づいて、[AN2013-51001]の暗号方式で暗号化する。これにより、暗号化匿名用パラメータである暗号化下限値ＣL、暗号化上限値ＣU及び暗号化代表値ＣMが生成される。
【０３７７】
Enc（L）→ＣL
Enc（U）→ＣU 
Enc（M）→ＣM
ステップＳＴ８９において、暗号化装置１０の制御部１８は、通信部１４により、テーブルＴ１ｅ内のグルーピング対象の属性項目（年齢）と、暗号化下限値ＣL、暗号化上限値ＣU及び暗号化代表値ＣMとを匿名化装置２０に送付する。但し、匿名化装置２０が暗号化鍵a、gsv、g、Nを予め取得することにより、暗号化下限値ＣL、暗号化上限値ＣU及び暗号化代表値ＣMを匿名化装置２０が予め保持又は生成する場合には、各値ＣL、ＣU及びＣMの生成及び送付を省略できる。このことは、以下の各実施形態及び変形例でも同様である。
【０３７８】
ステップＳＴ９０において、匿名化装置２０は、通信部２４により、当該属性項目（年齢）、暗号化下限値ＣL、暗号化上限値ＣU及び暗号化代表値ＣMを受信する。匿名化装置２０の演算部２７は、一時データ記憶部２３内のテーブルＴ１ｅのうち、受信した属性項目（年齢）に一致する属性項目（年齢）の属性値Ｃdata_iと、受信した暗号化下限値ＣL及び暗号化上限値ＣU とに基づいて、一次演算結果XL，XUを生成する。ここで、一次演算結果XL ＝(X1L、X2L)は、下限値Lに関する分析情報である。一次演算結果XU ＝(X1U、X2U)は、上限値Uに関する分析情報である。
【０３７９】
ステップＳＴ９１において、匿名化装置２０の制御部２９は、通信部２４により、一次演算結果XL ,XU を匿名化支援装置９０に送付する。
【０３８０】
ステップＳＴ９２において、匿名化支援装置９０は、通信部９３により、一次演算結果XL ,XU を受信する。匿名化支援装置９０の演算部９６は、受信した一次演算結果XL ,XU と、鍵記憶部９１内の二次演算鍵a-1、s、Nとに基づいて、二次演算結果YL ,YU を生成する。ここで、二次演算結果YL ＝(Y1L、Y2L)は、下限値Lに関する分析情報である。一次演算結果YU ＝(Y1U、Y2U)は、上限値Uに関する分析情報である。
【０３８１】
ステップＳＴ９３において、匿名化支援装置９０の制御部９７は、通信部９３により、二次演算結果YL ,YU を匿名化装置２０に送付する。
【０３８２】
ステップＳＴ９４において、匿名化装置２０は、通信部２４により、二次演算結果YL ,YU を受信する。匿名化装置２０の演算部２７は、受信した二次演算結果YL ,YU と、鍵記憶部９１内の三次演算鍵v、Nとに基づいて、三次演算結果WL ,WU を生成する。ここで、三次演算結果WL は、下限値Lに関する分析情報である。三次演算結果WU は、上限値Uに関する分析情報である。
【０３８３】
ステップＳＴ９５において、匿名化装置２０の演算結果比較部２８は、下限値Lに関する三次演算結果WL と、N/2と比較し、WL ＜N/2のときには比較結果を正と判定し、それ以外のときには比較結果を負（又は０）と判定する。この下限値Lに関する判定結果は、演算結果比較部２８から匿名化処理部２６に出力される。
【０３８４】
同様に、匿名化装置２０の演算結果比較部２８は、上限値Lに関する三次演算結果WU と、N/2と比較し、WU ＜N/2のときには比較結果を正と判定し、それ以外のときには比較結果を負（又は０）と判定する。上限値Uに関する判定結果は、演算結果比較部２８から匿名化処理部２６に出力される。
【０３８５】
しかる後、匿名化装置２０の匿名化処理部２６は、下限値Lに関する判定結果が正で上限値Uに関する判定結果が負（又は０）のときには、属性値Ｃdata_iを暗号化代表値ＣMに置き換える。なお、「下限値Lに関する判定結果が正のとき」は、「式Ｆ＝Ｃdata_i−ＣL が正のとき」に相当する。「上限値Uに関する判定結果が負（又は０）のとき」は、「式Ｆ＝Ｃdata_i−ＣU が負（又は０）のとき」に相当する。すなわち、匿名化処理部２６は、属性値Ｃdata_iが暗号化下限値ＣL を超えて暗号化上限値ＣU 以下の範囲内にあるとき、属性値Ｃdata_iを暗号化代表値ＣMに置き換える。
【０３８６】
これにより、ステップＳＴ８５で暗号化された属性値Ｃdata_iは、暗号化された状態のままで適宜、暗号化代表値ＣM に置き換えられることにより、復号されずに匿名化された属性値（ＣM）に変換される。
【０３８７】
このように、テーブルＴ１ｅ内のグルーピング対象の属性項目（年齢）の属性値が匿名化され、図３４に示すように、匿名化された属性値（ＣM）を含むテーブルＴ１ａが暗号化匿名化データとして生成される。
【０３８８】
しかる後、匿名化処理部２６は、テーブルＴ１ａを一時データ記憶部２３に保存する。
【０３８９】
ステップＳＴ９６において、匿名化装置２０の制御部２９は、通信部２４により、一時データ記憶部２３内のテーブルＴ１ａからなる暗号化匿名化データを復号装置３０に送付する。
【０３９０】
本実施形態によれば、暗号化データを復号せずに匿名化し、得られた暗号化匿名化データを復号して匿名化データを利用することが可能になる。詳しくは数値で表現されているテーブルＴ１の属性値data_iを、各グループの下限値L及び上限値Uを指定することによってグルーピングすることができる。ここで、匿名化装置２０には、どの属性値（Ｃdata_i）を置き換えたかが分かり、置き換えた暗号文は全部同じ値（各グループの暗号化代表値ＣM）になる。しかしながら、匿名化装置２０には、グループの下限値L、上限値U、代表値M、及び元の属性値（data_i）は分からない。
【０３９１】
ここで、暗号化装置１０は、グルーピング前の暗号化データを保持している場合、グルーピング前とグルーピング後の対応テーブルを作成してもよい。元のデータを別途保持していれば、グルーピングした属性値を元に戻すことも可能である。
【０３９２】
しかる後、ステップＳＴ９７において、復号装置３０の制御部３８は、通信部３４により、暗号化匿名化データを受信して一時データ記憶部３３に記憶する。復号部３７は、鍵記憶部３２０内の復号鍵sv、a-1、N（又はs、v、a-1、N）に基づいて、一時データ記憶部３３内の暗号化匿名化データであるテーブルＴ１ａ内の各属性項目の値を復号し、得られた復号結果のテーブルを得る。
【０３９３】
復号装置３０の制御部３８は、復号結果のテーブルのうち、グルーピング対象の属性項目（年齢）の属性値が匿名化されているか否かを判定する。具体的には、例えば、第５の実施形態と同様にして判定すればよい。判定の結果が否の場合には、ステップＳＴ８８（又はＳＴ８６）から処理をやり直し、好ましい匿名化結果が得られるまで繰り返す。
【０３９４】
以下、前述したステップＳＴ５１〜ＳＴ５２と同様に、ステップＳＴ９８〜ＳＴ９９が実行される。
【０３９５】
上述したように本実施形態によれば、[AN2013-51001]方式の暗号方式を用い、匿名化処理としてグルーピングを実行する場合でも、第１の実施形態と同様の作用効果を得ることができる。
【０３９６】
＜第１２の実施形態：Ｍ２Ｍ、[AN2013-51001]方式及びグルーピング＞
次に、第１２の実施形態に係る匿名化システムについて図３０を参照しながら説明する。
【０３９７】
第１２の実施形態は、暗号化装置１０が個人データを暗号化して匿名化装置２０に預ける第１１の実施形態とは異なり、Ｍ２Ｍサービスのように、各機器で取得した個人データを暗号化してなる暗号化データを匿名化装置２０で収集する形態となっている。ここでいう各機器は、各々の暗号化装置（１〜Ｎ）１０に相当する。
【０３９８】
具体的には、第１２の実施形態は、図２３に示した構成に比べ、暗号化装置１０をＮ台設け、且つパラメータ生成装置８０を更に備えている。Ｎ台の暗号化装置（１〜Ｎ）１０及びパラメータ生成装置８０の構成は、それぞれ第４の実施形態と同様である。
【０３９９】
次に、本実施形態における匿名化システムの動作について図３５のシーケンス図を用いて説明する。
【０４００】
（事前準備）
ステップＳＴ８１は、前述した第１１の実施形態と同様に実行される。
【０４０１】
ステップＳＴ８２において、復号装置３０の制御部３８は、通信部３４により、暗号化鍵a、gsv、g、NをＮ台の暗号化装置（１〜Ｎ）１０及びパラメータ生成装置８０に送付する。パラメータ生成装置８０の制御部８７は、通信部８３により受信した暗号化鍵a、gsv、g、Nを鍵記憶部８２に格納する。同様に、暗号化装置１０の制御部１８は、通信部１４により受信した暗号化鍵a、gsv、g、Nを鍵記憶部１２に格納する。なお、各暗号化装置（１〜Ｎ）１０は、機器組み立て時に暗号化鍵a、gsv、g、Nを入力して格納してもよく、機器を配置後、ネットワーク経由で暗号化鍵a、gsv、g、Nを受信して格納してもよい。
【０４０２】
ステップＳＴ８３〜ＳＴ８４は、前述した第１１の実施形態と同様に実行される。
【０４０３】
ステップＳＴ８５において、各暗号化装置（１〜Ｎ）１０のデータ取得部１９は、テーブルＴ１からなる個人データを取得して一時データ記憶部１３に記憶する。各暗号化装置１０の暗号化部１７は、一時データ記憶部１３内のテーブルＴ１のうち、グルーピング対象の属性項目（年齢）の属性値dataiを、鍵記憶部１２内の暗号化鍵a、gsv、g、Nに基づいてレコード毎に暗号化する。
【０４０４】
Enc（datai）→Ｃdata_i 
なお、暗号化部１７は、暗号化の処理において必要なパラメータ及び乱数を、それぞれ暗号パラメータ格納部１１及び乱数生成部１６から取得することができる。
【０４０５】
同様に、暗号化部１７は、暗号化鍵a、gsv、g、Nに基づいて、テーブルＴ１のうち、トップコーディング対象の属性項目以外の属性項目の属性値をレコード毎に暗号化する。これにより、テーブルＴ１内の全ての属性項目の属性値が暗号化され、当該全ての属性項目の属性値が暗号化されたテーブルＴ１ｅが暗号化データとして生成される。
【０４０６】
ステップＳＴ８６において、各暗号化装置（１〜Ｎ）１０の制御部１８は、通信部１４により、テーブルＴ１ｅからなる暗号化データと、テーブルＴ１ｅ内のグルーピング対象の属性項目（年齢）とを匿名化装置２０に送付する。
【０４０７】
ステップＳＴ８７において、匿名化装置２０は、通信部２４により、暗号化データであるテーブルＴ１ｅと、テーブルＴ１ｅ内のグルーピング対象の属性項目（年齢）とを受信する。しかる後、匿名化装置２０の制御部２９は、当該テーブルＴ１ｅと、グルーピング対象の属性項目（年齢）とを一時データ記憶部２３に保管する。一時データ記憶部２３内のテーブルＴ１ｅは、暗号化装置（１〜Ｎ）１０から受信したテーブルＴ１ｅを集めた内容に更新される。
【０４０８】
（匿名化）
ステップＳＴ８８において、パラメータ生成装置８０のパラメータ生成部８４は、グルーピングするための匿名用パラメータである、グループの下限値L、グループの上限値U及びグループの代表値Mを生成する。パラメータ生成装置８０の暗号化部８６は、生成した下限値L、上限値U及びグループの代表値Mを、鍵記憶部８２内の暗号化鍵a、gsv、g、Nに基づいて、[AN2013-51001]の暗号方式で暗号化する。これにより、暗号化匿名用パラメータである暗号化下限値ＣL、暗号化上限値ＣU及び暗号化代表値ＣMが生成される。
【０４０９】
Enc（L）→ＣL 
Enc（U）→ＣU 
Enc（M）→ＣM 
ステップＳＴ８９において、パラメータ生成装置８０の制御部８７は、通信部８３により、テーブルＴ１ｅ内のグルーピング対象の属性項目（年齢）と、暗号化下限値ＣL、暗号化上限値ＣU及び暗号化代表値ＣMとを匿名化装置２０に送付する。
【０４１０】
以下、前述した第１１の実施形態と同様に、ステップＳＴ９０〜ＳＴ９９が実行される。
【０４１１】
上述したように本実施形態によれば、暗号化装置１０を複数台とした場合でも、第１１の実施形態と同様の作用効果を得ることができる。
【０４１２】
本実施形態では、第４の実施形態や第６の実施形態とは異なり、機器に秘密鍵そのものは格納しないため、仮に機器から鍵を盗まれても、暗号化したデータを復号または匿名化することはできない。
【０４１３】
＜第１３の実施形態：削除、リサンプリング、ソート又はスワッピング＞
次に、第１３の実施形態に係る匿名化システムについて図１を参照しながら説明する。
【０４１４】
第１３の実施形態は、暗号化した「社員番号」を仮名化した第１の実施形態とは異なり、暗号化した「社員番号」を削除する形態である。なお、本実施形態は、前述した第１〜第１２の実施形態とは異なり、匿名化する処理に用いる匿名用パラメータを暗号化した暗号化匿名用パラメータ（例、暗号化乱数、暗号化しきい値、暗号化下限値、暗号化上限値、暗号化代表値、暗号化誤差など）を用いない。
【０４１５】
このような本実施形態は、「削除」に代えて、「リサンプリング」、「ソート」又は「スワッピング」を用いる形態に変形可能である。
【０４１６】
次に、本実施形態における匿名化システムの動作について図３６のシーケンス図、並びに図３７及び図３８の模式図を用いて説明する。以下の説明では、[AES]の暗号方式を用いて匿名化する場合を例に挙げて述べる。
【０４１７】
（事前準備）
ステップＳＴ１０１において、復号装置３０の鍵生成部３６は、暗号パラメータ格納部３１内のセキュリティパラメータ(1k)に基づいて、[AES]の暗号方式における鍵（秘密鍵skA）を生成する。
【０４１８】
KeyGen(1k)→（skA）
なお、鍵生成部３６は、鍵の生成処理において必要な乱数を乱数生成部３５から取得することができる。また、鍵生成部３６は、生成した秘密鍵skAを秘密鍵格納部３２に保存する。
【０４１９】
ステップＳＴ１０２において、復号装置３０の制御部３８は、通信部３４により、暗号化装置１０に、共通鍵である秘密鍵skAを送付する。暗号化装置１０の制御部１８は、通信部１４により受信した秘密鍵skAを鍵記憶部１２に格納する。
【０４２０】
ステップＳＴ１０３において、暗号化装置１０の暗号化部１７は、図３に示すテーブルＴ１を一時データ記憶部１３から読み出す。暗号化部１７は、このテーブルＴ１のうち、削除対象の属性項目（社員番号）の属性値dataiを、鍵記憶部１２内の秘密鍵skAに基づいてレコード毎に暗号化する。
【０４２１】
Enc（skA，datai）→ＣA,data_i 
なお、暗号化部１７は、暗号化の処理において必要なパラメータ及び乱数を、それぞれ暗号パラメータ格納部１１及び乱数生成部１６から取得することができる。
【０４２２】
同様に、暗号化部１７は、秘密鍵skAに基づいて、テーブルＴ１のうち、削除対象の属性項目以外の属性項目の属性値をレコード毎に暗号化する。これにより、テーブルＴ１内の全ての属性項目の属性値が暗号化され、図３７に示すように、当該全ての属性項目の属性値が暗号化されたテーブルＴ１ｅが暗号化データとして生成される。
【０４２３】
ステップＳＴ１０４において、暗号化装置１０の制御部１８は、通信部１４により、テーブルＴ１ｅからなる暗号化データを匿名化装置２０に送付する。
【０４２４】
ステップＳＴ１０５において、匿名化装置２０は、通信部２４により受信した暗号化データであるテーブルＴ１ｅを一時データ記憶部２３に保管する。
【０４２５】
（匿名化）
ステップＳＴ１０６において、暗号化装置１０の制御部１８は、通信部１４により、テーブルＴ１ｅ内の削除対象の属性項目（社員番号）を匿名化装置２０に送付する。但し、匿名化装置２０が削除対象の属性項目を予め保持する場合には、暗号化装置１０による削除対象の属性項目の送付を省略できる。このことは、以下の各実施形態及び変形例でも同様である。
【０４２６】
ステップＳＴ１０７において、匿名化装置２０は、通信部２４により、削除対象の属性項目（社員番号）を受信する。匿名化処理部２６は、一時データ記憶部２３内のテーブルＴ１ｅのうち、受信した属性項目（社員番号）に一致する属性項目（社員番号）の列を削除する。すなわち、匿名化処理部２６は、図３７に示したテーブルＴ１ｅから削除対象の属性項目（社員番号）及びその属性値（ＣA,data_i）を削除する。これにより、図３８に示すように、匿名化されたテーブルＴ１ａが暗号化匿名化データとして生成される。
【０４２７】
しかる後、匿名化処理部２６は、テーブルＴ１ａを一時データ記憶部２３に保存する。
【０４２８】
ステップＳＴ１０８において、匿名化装置２０の制御部２９は、通信部２４により、一時データ記憶部２３内のテーブルＴ１ａからなる暗号化匿名化データを復号装置３０に送付する。
【０４２９】
本実施形態によれば、暗号化データを復号せずに匿名化し、得られた暗号化匿名化データを復号して匿名化データを利用することが可能になる。詳しくは数値、文字列などで表現されているテーブルＴ１の属性を削除することが可能になる。ここで、匿名化装置２０には、削除した属性項目（社員番号）及びその属性値（ＣA,data_i）が分かる。しかしながら、匿名化装置２０には、削除した属性項目（社員番号）の元の属性値（data_i）は分からない。
【０４３０】
ここで、暗号化装置１０は、削除前の暗号化データを保持している場合、削除前と削除後の対応テーブルを作成してもよい。元のデータを別途保持していれば、元のデータの属性項目及び属性値から個人を特定することや、削除処理を元に戻すことも可能である。
【０４３１】
しかる後、ステップＳＴ１０９において、復号装置３０の制御部３８は、通信部３４により、暗号化匿名化データを受信して一時データ記憶部３３に記憶する。復号部３７は、秘密鍵格納部３２内の秘密鍵skAに基づいて、一時データ記憶部３３内の暗号化匿名化データであるテーブルＴ１ａ内の各属性項目の値を復号し、得られた復号結果のテーブルを得る。
【０４３２】
復号装置３０の制御部３８は、復号結果のテーブルのうち、削除対象の属性項目（社員番号）の属性値が匿名化されているか否かを判定する。例えば、復号結果のテーブルが、意図した通りに削除対象の属性項目の列を含まなければ、匿名化されていると判定される。この場合、任意のタイミングで暗号化装置１０が削除対象の属性項目を復号装置３０に送信しておけばよい。判定の結果が否の場合には、ステップＳＴ１０４から処理をやり直し、好ましい匿名化結果が得られるまで繰り返す。
【０４３３】
以下、前述したステップＳＴ１１〜ＳＴ１２と同様に、ステップＳＴ１１０〜ＳＴ１１１が実行される。
【０４３４】
上述したように本実施形態によれば、匿名化処理として削除を実行する場合でも、暗号化匿名用パラメータに関する作用効果を除き、第１の実施形態と同様の作用効果を得ることができる。
【０４３５】
本実施形態は、暗号化した属性値を削除する匿名化処理を実行したが、これに代えて、暗号化した属性値をリサンプリング、ソート又はスワッピングする匿名化処理を実行してもよい。この場合、本実施形態を同様に実施して同様の効果を得ることができる。
【０４３６】
また、復号装置３０による鍵生成に代えて、暗号化装置１０による鍵生成を実行してもよい。この場合、暗号化装置１０が復号装置３０に秘密鍵を送付して実施すればよい。
【０４３７】
なお、本実施形態は、[AES]のような暗号化と復号に同一の鍵を用いる暗号方式のみならず、（加法的な）準同型暗号方式、大小比較可能な暗号方式、（加法的な）準同型暗号方式と大小比較可能な暗号方式を保持する暗号方式でも同様に実施可能である。これら暗号方式を用いる場合は、それぞれの方式における暗号アルゴリズムを置き換えることで同様に実現できる。
【０４３８】
また、本実施形態は、図２に示した変形例と同様に、鍵生成装置６０及びデータ保管装置７０を更に備えてもよい。この時既存のデータ保管装置７０に、匿名化装置２０を連携させることで、本実施形態と同様の効果を得ることが可能になる。例えば図３９に示すように、ステップＳＴ１０４で暗号化データをデータ保管装置７０に送付し、ステップＳＴ１０５でデータ保管装置７０が暗号化データを保管してもよい。また、ステップＳＴ１０７−１でデータ保管装置７０が暗号化データを匿名化装置２０に送付し、ステップＳＴ１０７−２で匿名化装置２０が削除対象の属性項目の列を削除するようにしてもよい。同様に、ステップＳＴ１０８−１で匿名化装置２０が暗号化匿名化データをデータ保管装置７０に送付し、ステップＳ１０８−２でデータ保管装置７０が暗号化匿名化データを保管してもよい。また、ステップＳＴ１０８−３でデータ保管装置７０が暗号化匿名化データを復号装置３０に送付するようにしてもよい。このとき、既存のデータ保管装置７０を大きく変えることなく、本実施形態の効果を得ることが可能になる。これは後述する実施形態や変形例においても同様である。
【０４３９】
また例えば図８に示した変形例と同様に、図４０に示すように、図３９のステップＳＴ１０８−１〜ＳＴ１０８−３に代えて、元のステップＳＴ１０８を実行するようにしてもよい。この場合、図８に示した動作による効果と同様の効果を得ることができる。
【０４４０】
＜第１４の実施形態：Ｍ２Ｍと、削除、リサンプリング、ソート又はスワッピング＞
図４１は第１４の実施形態に係る匿名化システム及びその周辺構成を示す模式図である。
【０４４１】
第１４の実施形態は、暗号化装置１０が個人データを暗号化して匿名化装置２０に預ける第１３の実施形態とは異なり、Ｍ２Ｍサービスのように、各機器で取得した個人データを暗号化してなる暗号化データを匿名化装置２０で収集する形態となっている。ここでいう各機器は、各々の暗号化装置（１〜Ｎ）１０に相当する。
【０４４２】
具体的には、第１４の実施形態は、図１に示した構成に比べ、暗号化装置１０をＮ台設け、且つユーザ端末１００を更に備えている。但し、ユーザ端末１００は、必須ではなく、例えばいずれかの暗号化装置１０が削除対象の属性項目（社員番号）を匿名化装置２０に送付する場合には、省略してもよい。このことは、以下の各変形例でも同様である。
【０４４３】
ここで、Ｎ台の暗号化装置（１〜Ｎ）１０の構成は、匿名化処理の方法を除き、前述した第４の実施形態等と同様である。
【０４４４】
ユーザ端末１００は、通常の通信機能を有するコンピュータであり、例えば、記憶部１０１、通信部１０２及び制御部１０３を備えている。
【０４４５】
次に、本実施形態における匿名化システムの動作について図４２のシーケンス図を用いて説明する。以下の説明では、[AES]の暗号方式を用いて匿名化する場合を例に挙げて述べる。
【０４４６】
（事前準備）
ステップＳＴ１０１は、前述した第１３の実施形態と同様に実行される。
【０４４７】
ステップＳＴ１０２において、復号装置３０の制御部３８は、通信部３４により、共通鍵である秘密鍵skAを各暗号化装置（１〜Ｎ）１０に送付する。各暗号化装置（１〜Ｎ）１０の制御部１８は、通信部１４により受信した秘密鍵skAを鍵記憶部１２に格納する。なお、各暗号化装置（１〜Ｎ）１０は、機器組み立て時に公開鍵pkAを入力して格納してもよく、機器を配置後、ネットワーク経由で公開鍵pkAを受信して格納してもよい。
【０４４８】
ステップＳＴ１０３において、各暗号化装置（１〜Ｎ）１０のデータ取得部１９は、図３に示すように、テーブルＴ１からなる個人データを取得して一時データ記憶部１３に記憶する。各暗号化装置（１〜Ｎ）１０の暗号化部１７は、一時データ記憶部１３内のテーブルＴ１のうち、削除対象の属性項目（社員番号）の属性値dataiを、鍵記憶部１２内の秘密鍵skAに基づいてレコード毎に暗号化する。
【０４４９】
Enc（skA，datai）→ＣA,data_i 
なお、暗号化部１７は、暗号化の処理において必要なパラメータ及び乱数を、それぞれ暗号パラメータ格納部１１及び乱数生成部１６から取得することができる。
【０４５０】
同様に、暗号化部１７は、秘密鍵skAに基づいて、テーブルＴ１のうち、削除対象の属性項目以外の属性項目の属性値をレコード毎に暗号化する。これにより、前述同様に、図３７に示すように、全ての属性項目の属性値が暗号化されたテーブルＴ１ｅが暗号化データとして生成される。
【０４５１】
ステップＳＴ１０４において、各暗号化装置（１〜Ｎ）１０の制御部１８は、通信部１４により、テーブルＴ１ｅからなる暗号化データを匿名化装置２０に送付する。
【０４５２】
ステップＳＴ１０５において、匿名化装置２０は、通信部２４により受信した暗号化データであるテーブルＴ１ｅを一時データ記憶部２３に保管する。一時データ記憶部２３内のテーブルＴ１ｅは、暗号化装置（１〜Ｎ）１０から受信したテーブルＴ１ｅを集めた内容に更新される。
【０４５３】
（匿名化）
ステップＳＴ１０６において、ユーザ端末１００の制御部１０３は、通信部１０２により、削除対象の属性項目（社員番号）を匿名化装置２０に送付する。但し、匿名化装置２０が削除対象の属性項目を予め保持する場合には、暗号化装置１０による削除対象の属性項目の送付を省略できる。このことは、以下の各変形例でも同様である。
【０４５４】
以下、ステップＳＴ１０７〜ＳＴ１１１は、前述した第１３の実施形態と同様に実行される。
【０４５５】
上述したように本実施形態によれば、暗号化装置１０を複数台とした場合でも、第１３の実施形態と同様の作用効果を得ることができる。
【０４５６】
ただし、本実施形態では、各機器に秘密鍵skAを格納するが、この秘密鍵skAは暗号化のみならず復号処理もできるため、各機器上で、秘密鍵skAを適切に管理しなければならない。
【０４５７】
また、本実施形態は、暗号化した属性値を削除する匿名化処理に代えて、暗号化した属性値をリサンプリング、ソート又はスワッピングする匿名化処理を実行してもよい。この場合、本実施形態を同様に実施して同様の効果を得ることができる。
【０４５８】
また、本実施形態は、[AES]のような暗号化と復号に同一の鍵を用いる暗号方式のみならず、（加法的な）準同型暗号方式、大小比較可能な暗号方式、（加法的な）準同型暗号方式と大小比較可能な暗号方式を保持する暗号方式でも同様に実施可能である。これら暗号方式を用いる場合は、それぞれの方式における暗号アルゴリズムを置き換えることで同様に実現できる。
【０４５９】
以上説明した少なくとも一つの実施形態によれば、個人データに含まれる各項目の値を暗号化する処理により、当該個人データから暗号化データを生成する。暗号化データのうちの一部の項目の値を復号せずに匿名化する処理により、当該暗号化データから暗号化匿名化データを生成する。暗号化匿名化データを復号する処理により、当該暗号化匿名化データから匿名化データを生成する。このような構成により、個人データを暗号化して得られた暗号化データを復号せずに匿名化することができる。
【０４６０】
なお、上記の各実施形態に記載した手法は、コンピュータに実行させることのできるプログラムとして、磁気ディスク（フロッピー（登録商標）ディスク、ハードディスクなど）、光ディスク（ＣＤ−ＲＯＭ、ＤＶＤなど）、光磁気ディスク（ＭＯ）、半導体メモリなどの記憶媒体に格納して頒布することもできる。
【０４６１】
また、この記憶媒体としては、プログラムを記憶でき、かつコンピュータが読み取り可能な記憶媒体であれば、その記憶形式は何れの形態であっても良い。
【０４６２】
また、記憶媒体からコンピュータにインストールされたプログラムの指示に基づきコンピュータ上で稼働しているＯＳ（オペレーティングシステム）や、データベース管理ソフト、ネットワークソフト等のＭＷ（ミドルウェア）等が上記実施形態を実現するための各処理の一部を実行しても良い。
【０４６３】
さらに、各実施形態における記憶媒体は、コンピュータと独立した媒体に限らず、ＬＡＮやインターネット等により伝送されたプログラムをダウンロードして記憶または一時記憶した記憶媒体も含まれる。
【０４６４】
また、記憶媒体は１つに限らず、複数の媒体から上記の各実施形態における処理が実行される場合も本発明における記憶媒体に含まれ、媒体構成は何れの構成であっても良い。
【０４６５】
なお、各実施形態におけるコンピュータは、記憶媒体に記憶されたプログラムに基づき、上記の各実施形態における各処理を実行するものであって、パソコン等の１つからなる装置、複数の装置がネットワーク接続されたシステム等の何れの構成であっても良い。
【０４６６】
また、各実施形態におけるコンピュータとは、パソコンに限らず、情報処理機器に含まれる演算処理装置、マイコン等も含み、プログラムによって本発明の機能を実現することが可能な機器、装置を総称している。
【０４６７】
なお、本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【０４６８】
１０…暗号化装置、１１，２１，３１，６１，８１…暗号パラメータ格納部、１２，２２０，３２０，８２，９１…鍵記憶部、１３，２３，３３，６２，９２…一時データ記憶部、１４，２４，３４，５２，６３，７２，８３，９３，１０２…通信部、１５，８４，９４…パラメータ生成部、１６，２５，３５，６４，８５，９５…乱数生成部、１７，８６…暗号化部、１８，２９，３８，６６，８７，９７，１０３…制御部、１９…データ取得部、２０…匿名化装置、２２…暗号化データ格納部、２６…匿名化処理部、２７，９６…演算部、２８…演算結果比較部、３０…復号装置、３２…秘密鍵格納部、３３…一時データ記憶部、３６，６５…鍵生成部、３７…復号部、４０…通信網、５０…統計処理装置、５１…データ格納部、５３…統計処理部、６０…鍵生成装置、７０…データ保管装置、７１…データ格納部、８０…パラメータ生成装置、９０…匿名化支援装置、１００…ユーザ端末、１０１…記憶部、Ｔ１，Ｔ１ｅ，Ｔ１ａ…テーブル。
【図１】
0006309866.tif 000019
【図２】
0006309866.tif 000020
【図３】
0006309866.tif 000021
【図４】
0006309866.tif 000022
【図５】
0006309866.tif 000023
【図６】
0006309866.tif 000024
【図７】
0006309866.tif 000025
【図８】
0006309866.tif 000026
【図９】
0006309866.tif 000027
【図１０】
0006309866.tif 000028
【図１１】
0006309866.tif 000029
【図１２】
0006309866.tif 000030
【図１３】
0006309866.tif 000031
【図１４】
0006309866.tif 000032
【図１５】
0006309866.tif 000033
【図１６】
0006309866.tif 000034
【図１７】
0006309866.tif 000035
【図１８】
0006309866.tif 000036
【図１９】
0006309866.tif 000037
【図２０】
0006309866.tif 000038
【図２１】
0006309866.tif 000039
【図２２】
0006309866.tif 000040
【図２３】
0006309866.tif 000041
【図２４】
0006309866.tif 000042
【図２５】
0006309866.tif 000043
【図２６】
0006309866.tif 000044
【図２７】
0006309866.tif 000045
【図２８】
0006309866.tif 000046
【図２９】
0006309866.tif 000047
【図３０】
0006309866.tif 000048
【図３１】
0006309866.tif 000049
【図３２】
0006309866.tif 000050
【図３３】
0006309866.tif 000051
【図３４】
0006309866.tif 000052
【図３５】
0006309866.tif 000053
【図３６】
0006309866.tif 000054
【図３７】
0006309866.tif 000055
【図３８】
0006309866.tif 000056
【図３９】
0006309866.tif 000057
【図４０】
0006309866.tif 000058
【図４１】
0006309866.tif 000059
【図４２】
0006309866.tif 000060
【図４３】
0006309866.tif 000061
【図４４】
0006309866.tif 000062