(57)【要約】［課題］異なる公開鍵を用いて暗号化された暗号化データに対して、暗号化したまま統計処理を行う技術を提供すること。［解決手段］準同型暗号の公開鍵および秘密鍵を保持する鍵保持手段と、分散復号可能な暗号化情報を生成する全体公開鍵を取得する全体公開鍵取得手段と、公開鍵により暗号化された暗号化データを、分散復号可能な再暗号化データに変換するプロキシ鍵を生成するプロキシ鍵生成手段と、プロキシ鍵を用いて、公開鍵により暗号化された暗号化データを再暗号化データに変換する再暗号化手段と、１つ以上の公開鍵によりそれぞれ暗号化された１つ以上の暗号化データが再暗号化手段によりそれぞれ変換された１つ以上の再暗号化データに対して、準同型性を利用した演算を施すことにより、元のデータに関する統計情報に復号可能な暗号化統計データを生成する暗号化統計データ生成手段と、を備える。
2014010202.tif 000002
【特許請求の範囲】
【請求項１】
準同型性を有する暗号方式の公開鍵および秘密鍵を保持する鍵保持手段と、
１つ以上の分散復号用秘密鍵によって分散復号可能な暗号化情報を生成する全体公開鍵を取得する全体公開鍵取得手段と、
前記公開鍵を用いて暗号化された暗号化データを、前記１つ以上の分散復号用秘密鍵によって分散復号可能な再暗号化データに変換するプロキシ鍵を、前記秘密鍵と、前記全体公開鍵とに基づいて生成するプロキシ鍵生成手段と、
前記プロキシ鍵を用いて、前記公開鍵により暗号化された暗号化データを、前記再暗号化データに変換する再暗号化手段と、
１つ以上の前記公開鍵によりそれぞれ暗号化された１つ以上の暗号化データが前記再暗号化手段によりそれぞれ変換された１つ以上の前記再暗号化データに対して、前記準同型性を利用した演算を施すことにより、１つ以上の前記暗号化データが暗号化される前の元のデータに関する統計情報に復号可能な暗号化統計データを生成する暗号化統計データ生成手段と、
を備えた暗号化統計処理システム。
【請求項２】
前記プロキシ鍵生成手段は、乱数を生成することにより、前記公開鍵によって暗号化された暗号化データを、１つ以上の前記乱数に基づき生成されうる統合用秘密鍵によって復号可能な統合用再暗号化データに変換する統合用変換鍵を、前記１つ以上の乱数および前記秘密鍵に基づいて生成し、生成した統合用変換鍵と、前記乱数を前記全体公開鍵により暗号化した乱数暗号化情報とを含む情報を、前記プロキシ鍵として生成し、
前記再暗号化手段は、前記統合用変換鍵を用いて前記暗号化データを前記統合用再暗号化データに変換するとともに、１つ以上の前記乱数暗号化情報に基づいて、前記統合用秘密鍵が前記全体公開鍵で暗号化された統合用秘密鍵暗号化情報を生成し、前記統合用再暗号化データと、前記統合用秘密鍵暗号化情報とを含む情報を、前記再暗号化データとして生成し、
前記暗号化統計データ生成手段は、１つ以上の前記再暗号化データに含まれる前記統合用再暗号化データに対して前記準同型性を利用した演算を施した結果である統合用再暗号化データ演算結果と、前記統合用秘密鍵暗号化情報とを含む情報を、前記暗号化統計データとして生成することを特徴とする請求項１に記載の暗号化統計処理システム。
【請求項３】
分散復号用公開鍵および分散復号用秘密鍵を保持する分散復号用鍵保持手段と、
１つ以上の前記分散復号用秘密鍵によって分散復号可能な暗号化情報を生成する全体公開鍵を用いて請求項１または請求項２に記載の暗号化統計処理システムによって生成される暗号化統計データを、前記分散復号用秘密鍵を用いて部分復号することにより部分復号結果を出力する分散復号手段と、
１つ以上の前記分散復号手段によって得られた部分復号結果に基づいて、１つ以上の前記暗号化データが暗号化される前の元のデータに関する前記統計情報を取得する統計情報復号手段と、
を備えた復号システム。
【請求項４】
前記暗号化統計処理システムによって生成された前記暗号化統計データは、前記統合用秘密鍵暗号化情報を含み、
前記分散復号手段は、前記統合用秘密鍵暗号化情報を、前記分散復号用秘密鍵を用いて復号することにより前記部分復号結果を生成し、
前記統計情報復号手段は、１つ以上の前記部分復号結果に基づく復号結果として前記統合用秘密鍵を取得し、取得した統合用秘密鍵を用いて前記暗号化統計データに含まれる前記統合用再暗号化データ演算結果を復号することにより、前記元のデータに関する前記統計情報を取得することを特徴とする請求項３に記載の復号システム。
【請求項５】
準同型性を有する暗号方式の公開鍵および秘密鍵を保持する鍵保持手段と、
１つ以上の分散復号用秘密鍵によって分散復号可能な暗号化情報を生成する全体公開鍵を取得する全体公開鍵取得手段と、
前記公開鍵を用いて暗号化された暗号化データを、前記１つ以上の分散復号用秘密鍵によって分散復号可能な再暗号化データに変換するプロキシ鍵を、前記秘密鍵と、前記全体公開鍵とに基づいて生成するプロキシ鍵生成手段と、
を備えた鍵生成装置。
【請求項６】
請求項５に記載の鍵生成装置によって生成されたプロキシ鍵を用いて、前記公開鍵により暗号化された暗号化データを、前記再暗号化データに変換する再暗号化手段を備えたプロキシ装置。
【請求項７】
１つ以上の請求項５に記載の鍵生成装置に保持される前記公開鍵によりそれぞれ暗号化された１つ以上の暗号化データが、前記１つ以上の鍵生成装置にそれぞれ対応する１つ以上の請求項６に記載のプロキシ装置によってそれぞれ変換された１つ以上の前記再暗号化データに対して、前記準同型性を利用した演算を施すことにより、１つ以上の前記暗号化データが暗号化される前の元のデータに関する統計情報に復号可能な暗号化統計データを生成する暗号化統計データ生成手段を備えた暗号化統計データ生成装置。
【請求項８】
１つ以上の分散復号用秘密鍵によって分散復号可能な暗号化情報を生成する全体公開鍵を取得し、
準同型性を有する暗号方式の公開鍵を用いて暗号化された暗号化データを、前記１つ以上の分散復号用秘密鍵によって分散復号可能な再暗号化データに変換するプロキシ鍵を、前記公開鍵に対応する秘密鍵と、前記全体公開鍵とに基づいて生成し、
前記プロキシ鍵を用いて、前記公開鍵により暗号化された暗号化データを、前記再暗号化データに変換し、
１つ以上の前記公開鍵によりそれぞれ暗号化された１つ以上の暗号化データがそれぞれ変換された１つ以上の前記再暗号化データに対して、前記準同型性を利用した演算を施すことにより、１つ以上の前記暗号化データが暗号化される前の元のデータに関する統計情報に復号可能な暗号化統計データを生成する、暗号化統計処理方法。
【請求項９】
請求項８に記載の暗号化統計処理方法が実行されることにより生成される暗号化統計データを、前記分散復号用秘密鍵を用いて部分復号することにより部分復号結果を出力し、
１つ以上の前記部分復号結果に基づいて、１つ以上の前記暗号化データが暗号化される前の元のデータに関する前記統計情報を取得する、復号方法。
【請求項１０】
コンピュータを、
１つ以上の分散復号用秘密鍵によって分散復号可能な暗号化情報を生成する全体公開鍵を取得する全体公開鍵取得手段と、
準同型性を有する暗号方式の公開鍵を用いて暗号化された暗号化データを、前記１つ以上の分散復号用秘密鍵によって分散復号可能な再暗号化データに変換するプロキシ鍵を、前記公開鍵に対応する秘密鍵と、前記全体公開鍵とに基づいて生成するプロキシ鍵生成手段と、
前記プロキシ鍵を用いて、前記公開鍵により暗号化された暗号化データを、前記再暗号化データに変換する再暗号化手段と、
１つ以上の前記公開鍵によりそれぞれ暗号化された１つ以上の暗号化データがそれぞれ変換された１つ以上の前記再暗号化データに対して、前記準同型性を利用した演算を施すことにより、１つ以上の前記暗号化データが暗号化される前の元のデータに関する統計情報に復号可能な暗号化統計データを生成する暗号化統計データ生成手段と、
として動作させる暗号化統計処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、暗号化データに対する統計処理を行う技術に関する。
【背景技術】
【０００２】
近年、クラウドサービスにおけるセキュリティの重要性が広く認識されている。クラウドサービスの一例として、ユーザにお勧めの商品に関する情報を提供するリコメンデーションサービスがある。このようなサービスでは、例えば、ユーザから提供される情報がクラウド上のデータベースに収集される。収集された情報から統計データが求められる。そして、統計データに基づくサービスが行われる。このようなサービスにおいて、ユーザから提供される情報には、ユーザの購買情報や属性（年齢、性別、職業、居住地域など）のような個人情報が含まれることが多い。【０００３】
一方、クラウド上のデータベースは、誰により、どこで、どのように管理されているか明確でないことが多い。そのため、ユーザは、クラウド上のデータベースに対して、セキュリティに対する不安を抱いていると言われている。すなわち、ユーザは、クラウド上のデータベースの管理者を信頼できない場合が多い。このような場合、データベース内のデータに対するアクセス権限を利用した情報漏えい対策は、意味をなさない。【０００４】
そこで、クラウド上のデータベースの管理者にもユーザの情報が分からないように、データを暗号化することが考えられる。データは、ユーザから提供される情報をサービス提供者のみが復号できるように暗号化される。そして、暗号化されたデータが、クラウド上のデータベースに保管される。この場合、例えば、クラウド上のデータベースに、準同型暗号方式を用いて暗号化されたデータを保存しておく。そのようにすると、データベースに記憶された暗号化データに対して、データが暗号化されたまま統計処理を行うことができる。このように暗号化したままで統計処理された結果の暗号化データは、元のデータの統計データに復号可能である。【０００５】
準同型暗号方式に関する技術の例が、非特許文献１に記載されている。非特許文献１に記載の準同型暗号方式では、ある公開鍵を用いて暗号化された複数の暗号化データに対して、データが暗号化されたまま、秘密鍵を用いずに、平文に関する統計処理を行うことが可能である。
【先行技術文献】
【非特許文献】
【０００６】
【非特許文献１】一色寿幸、尾花賢、森岡澄夫、佐古和恵、「準同型性を有する暗号方式のFPGA実装について」、2011年暗号と情報セキュリティシンポジウム（SCIS2011）、2011年
【発明の概要】
【発明が解決しようとする課題】
【０００７】
非特許文献１に記載の準同型暗号方式では、統計処理が可能となる暗号化データは、すべて同じ公開鍵で暗号化されている必要がある。したがって、この関連技術は、統計処理を行いたい対象の暗号化データの少なくとも一部が、異なる公開鍵で暗号化されている場合、暗号化したまま統計処理を行うことができない。【０００８】
統計処理を行いたい対象の暗号化データの少なくとも一部が異なる公開鍵で暗号化されている場合、例えば、統計処理を行いたい対象であるすべての暗号化データを取り出し、復号し、統計処理を行う方法が考えられる。しかし、この方法では、すべての暗号化データをサービス提供者側にダウンロードしなくてはならない。従って、利便性や通信コストの観点で問題がある。また、クラウド環境では、サービス提供者側の計算資源が少ないことが想定される。このため、統計処理は、なるべくクラウド側の装置で行うことが望まれている。さらには、統計処理対象の暗号化データが一度復号されるため、サービス提供者側の装置からのデータの漏洩を防がなくてはならない。そのため、情報漏洩対策にコストがかかるという問題も生じる。【０００９】
本発明は、上述の課題を解決するためになされたもので、異なる公開鍵を用いて暗号化された暗号化データに対して、暗号化したまま統計処理を行う技術を提供することを主な目的とする。
【課題を解決するための手段】
【００１０】
本発明の暗号化統計処理システムは、準同型性を有する暗号方式の公開鍵および秘密鍵を保持する鍵保持手段と、１つ以上の分散復号用秘密鍵によって分散復号可能な暗号化情報を生成する全体公開鍵を取得する全体公開鍵取得手段と、前記公開鍵を用いて暗号化された暗号化データを、前記１つ以上の分散復号用秘密鍵によって分散復号可能な再暗号化データに変換するプロキシ鍵を、前記秘密鍵と、前記全体公開鍵とに基づいて生成するプロキシ鍵生成手段と、前記プロキシ鍵を用いて、前記公開鍵により暗号化された暗号化データを、前記再暗号化データに変換する再暗号化手段と、１つ以上の前記公開鍵によりそれぞれ暗号化された１つ以上の暗号化データが前記再暗号化手段によりそれぞれ変換された１つ以上の前記再暗号化データに対して、前記準同型性を利用した演算を施すことにより、１つ以上の前記暗号化データが暗号化される前の元のデータに関する統計情報に復号可能な暗号化統計データを生成する暗号化統計データ生成手段と、を備える。
【００１１】
本発明の鍵生成装置は、準同型性を有する暗号方式の公開鍵および秘密鍵を保持する鍵保持手段と、１つ以上の分散復号用秘密鍵によって分散復号可能な暗号化情報を生成する全体公開鍵を取得する全体公開鍵取得手段と、前記公開鍵を用いて暗号化された暗号化データを、前記１つ以上の分散復号用秘密鍵によって分散復号可能な再暗号化データに変換するプロキシ鍵を、前記秘密鍵と、前記全体公開鍵とに基づいて生成するプロキシ鍵生成手段と、を備える。
本発明の暗号化統計処理方法は、１つ以上の分散復号用秘密鍵によって分散復号可能な暗号化情報を生成する全体公開鍵を取得し、準同型性を有する暗号方式の公開鍵を用いて暗号化された暗号化データを、前記１つ以上の分散復号用秘密鍵によって分散復号可能な再暗号化データに変換するプロキシ鍵を、前記公開鍵に対応する秘密鍵と、前記全体公開鍵とに基づいて生成し、前記プロキシ鍵を用いて、前記公開鍵により暗号化された暗号化データを、前記再暗号化データに変換し、１つ以上の前記公開鍵によりそれぞれ暗号化された１つ以上の暗号化データがそれぞれ変換された１つ以上の前記再暗号化データに対して、前記準同型性を利用した演算を施すことにより、１つ以上の前記暗号化データが暗号化される前の元のデータに関する統計情報に復号可能な暗号化統計データを生成する。
【００１２】
本発明の暗号化統計処理プログラムは、コンピュータを、１つ以上の分散復号用秘密鍵によって分散復号可能な暗号化情報を生成する全体公開鍵を取得する全体公開鍵取得手段と、準同型性を有する暗号方式の公開鍵を用いて暗号化された暗号化データを、前記１つ以上の分散復号用秘密鍵によって分散復号可能な再暗号化データに変換するプロキシ鍵を、前記公開鍵に対応する秘密鍵と、前記全体公開鍵とに基づいて生成するプロキシ鍵生成手段と、前記プロキシ鍵を用いて、前記公開鍵により暗号化された暗号化データを、前記再暗号化データに変換する再暗号化手段と、１つ以上の前記公開鍵によりそれぞれ暗号化された１つ以上の暗号化データがそれぞれ変換された１つ以上の前記再暗号化データに対して、前記準同型性を利用した演算を施すことにより、１つ以上の前記暗号化データが暗号化される前の元のデータに関する統計情報に復号可能な暗号化統計データを生成する暗号化統計データ生成手段と、して動作させる。【００１３】
なお、本発明は、上述した暗号化統計処理プログラムが格納された、コンピュータで読み取り可能な記録媒体によっても実現できる。
【発明の効果】
【００１４】
本発明には、異なる公開鍵を用いて暗号化された暗号化データに対して、暗号化したまま統計処理を行う技術を提供することができるという効果がある。
【図面の簡単な説明】
【００１５】
【図１】図１は、本発明の第１の実施の形態の暗号化統計処理システムの構成を示すブロック図である。
【図２】図２は、本発明の第１の実施の形態の暗号化統計処理システムのハードウェア構成図である。
【図３】図３は、本発明の第１の実施の形態の暗号化統計処理システムの機能ブロック図である。
【図４】図４は、本発明の第１の実施の形態の暗号化統計処理システムのプロキシ鍵生成動作を説明するフローチャートである。
【図５】図５は、本発明の第１の実施の形態の暗号化統計処理システムの暗号化統計データ生成動作を説明するフローチャートである。
【図６】図６は、本発明の第２の実施の形態の復号システムの構成を示すブロック図である。
【図７】図７は、本発明の第２の実施の形態の復号システムのハードウェア構成図である。
【図８】図８は、本発明の第２の実施の形態の復号システムの機能ブロック図である。
【図９】図９は、本発明の第２の実施の形態の復号システムの復号動作を説明するフローチャートである。
【図１０】図１０は、本発明の第３の実施の形態の暗号化統計処理システムおよび復号システムの構成を示すブロック図である。
【図１１】図１１は、本発明の第３の実施の形態の暗号化統計処理システムおよび復号システムの機能ブロック図である。
【図１２】図１２は、本発明の第３の実施の形態における全体公開鍵生成動作を説明するフローチャートである。
【図１３】図１３は、本発明の第３の実施の形態の暗号化統計処理システムのプロキシ鍵生成動作を説明するフローチャートである。
【図１４】図１４は、本発明の第３の実施の形態の暗号化統計処理システムの暗号化統計データ生成動作を説明するフローチャートである。
【図１５】図１５は、本発明の第３の実施の形態の復号システムの復号動作を説明するフローチャートである。
【発明を実施するための形態】
【００１６】
以下、本発明の実施の形態について、図面を参照して詳細に説明する。
【００１７】
（第１の実施の形態）
図１は、本発明の第１の実施の形態の暗号化統計処理システム１の構成を表すブロック図である。なお、図１において、実線で囲まれた図形は、暗号化統計処理システム１の構成要素を表す。そして、破線で囲まれた図形は、暗号化統計処理システム１の外部に接続される装置を表す。図１において、暗号化統計処理システム１は、Ｎ（Ｎは１以上の整数）個の鍵生成装置１００＿１〜１００＿Ｎと、Ｎ個のプロキシ装置２００＿１〜２００＿Ｎと、暗号化統計データ生成装置３００とを含む。Ｎ個の鍵生成装置１００＿１〜１００＿Ｎは、総称して鍵生成装置１００とも記述される。Ｎ個のプロキシ装置２００＿１〜２００＿Ｎは、総称してプロキシ装置２００とも記述される。
【００１８】
また、鍵生成装置１００＿ｉおよびプロキシ装置２００＿ｉ（ｉ＝１〜Ｎ）は、互いに通信が可能であるように接続されている。また、プロキシ装置２００＿ｉおよび暗号化統計データ生成装置３００は、互いに通信が可能であるように接続されている。
【００１９】
また、鍵生成装置１００は、外部のデータ登録装置７００に、互いに通信が可能であるように接続されている。ここで、データ登録装置７００は、鍵生成装置１００によって公開されている公開鍵を用いて、登録対象のデータを暗号化して暗号化データを生成し、生成された暗号化データを後述の暗号化データ記憶装置８００に登録する装置である。
【００２０】
また、プロキシ装置２００＿ｉ（ｉ＝１〜Ｎ）は、外部の暗号化データ記憶装置８００＿ｉに、互いに通信が可能であるように接続されている。ここで、暗号化データ記憶装置８００＿ｉは、鍵生成装置１００＿ｉによって公開されている公開鍵を用いて暗号化された暗号化データを記憶する装置である。
【００２１】
また、暗号化統計データ生成装置３００は、外部の暗号化統計データ記憶装置９００に、互いに通信が可能であるように接続されている。ここで、暗号化統計データ記憶装置９００は、統計情報が暗号化された暗号化統計データを記憶する装置である。
【００２２】
また、図１において、通信が必要となる各装置間は、インターネット、ＬＡＮ（Local Area Network）、公衆回線網、無線通信網またはこれらの組合せ等によって構成されるネットワークを介して、通信が可能であるように接続される。また、これらの各装置間の少なくとも一部は、他の各装置間を接続するネットワークとは異なるネットワークによって接続されていてもよい。
【００２３】
また、図１には、Ｎ個の鍵生成装置１００と、Ｎ個のプロキシ装置２００と、Ｎ個の暗号化データ記憶装置８００と、１つの暗号化統計データ生成装置３００と、１つの暗号化統計データ記憶装置９００とが示されている。しかし、本発明の暗号化統計処理システムが備える各装置の数および接続される各装置の数は、図１の数に限定されない。
【００２４】
次に、図２は、暗号化統計処理システム１を構成する各装置のハードウェア構成を表す図である。図２において、鍵生成装置１００は、ＣＰＵ（Central Processing Unit）１００１と、ＲＡＭ（Random Access Memory）１００２と、ＲＯＭ（Read Only Memory）１００３と、ハードディスク等の記憶装置１００４と、ネットワークインタフェース１００５とを備えたコンピュータ装置によって構成されている。
【００２５】
ＲＯＭ１００３および記憶装置１００４には、コンピュータ装置を本実施の形態の鍵生成装置１００として機能させるコンピュータプログラムおよび各種データが格納されている。
【００２６】
ＣＰＵ１００１は、ＲＯＭ１００３および記憶装置１００４に記憶されたコンピュータプログラムおよび各種データをＲＡＭ１００２にロードし、ロードされたコンピュータプログラムを実行する。
【００２７】
ネットワークインタフェース１００５は、ネットワークを介して他の装置との通信を行うモジュールである。
【００２８】
プロキシ装置２００は、ＣＰＵ２００１と、ＲＡＭ２００２と、ＲＯＭ２００３と、ハードディスク等の記憶装置２００４と、ネットワークインタフェース２００５とを備えたコンピュータ装置によって構成されている。
【００２９】
ＲＯＭ２００３および記憶装置２００４には、コンピュータ装置を本実施の形態のプロキシ装置２００として機能させるコンピュータプログラムおよび各種データが格納されている。
【００３０】
ＣＰＵ２００１は、ＲＯＭ２００３および記憶装置２００４に記憶されたコンピュータプログラムおよび各種データをＲＡＭ２００２にロードし、ロードされたコンピュータプログラムを実行する。
【００３１】
ネットワークインタフェース２００５は、ネットワークを介して他の装置との通信を行うモジュールである。
【００３２】
暗号化統計データ生成装置３００は、ＣＰＵ３００１と、ＲＡＭ３００２と、ＲＯＭ３００３と、ハードディスク等の記憶装置３００４と、ネットワークインタフェース３００５とを備えたコンピュータ装置によって構成されている。
【００３３】
ＲＯＭ３００３および記憶装置３００４には、コンピュータ装置を本実施の形態の暗号化統計データ生成装置３００として機能させるコンピュータプログラムおよび各種データが格納されている。
【００３４】
ＣＰＵ３００１は、ＲＯＭ３００３および記憶装置３００４に記憶されたコンピュータプログラムおよび各種データをＲＡＭ３００２にロードし、ロードされたコンピュータプログラムを実行する。
【００３５】
ネットワークインタフェース３００５は、ネットワークを介して他の装置との通信を行うモジュールである。
【００３６】
なお、暗号化統計処理システム１を構成する各装置のハードウェア構成は、上述の構成に限定されない。
【００３７】
次に、暗号化統計処理システム１を構成する各装置の機能ブロックについて、図３を参照して説明する。図３は、暗号化統計処理システム１を構成する各装置の機能ブロックを表すブロック図である。
【００３８】
まず、鍵生成装置１００の機能ブロックについて説明する。図３において、鍵生成装置１００は、鍵保持部１０１と、全体公開鍵取得部１０２と、プロキシ鍵生成部１０３とを含む。ここで、鍵保持部１０１は、記憶装置１００４によって実現される。また、全体公開鍵取得部１０２およびプロキシ鍵生成部１０３は、ネットワークインタフェース１００５と、ＲＯＭ１００３および記憶装置１００４に記憶されたコンピュータプログラムおよび各種データをＲＡＭ１００２に読み込んで実行するＣＰＵ１００１とによって実現される。なお、鍵生成装置１００の各機能ブロックのハードウェア構成は、上述の構成に限定されない。
【００３９】
鍵保持部１０１は、公開鍵およびその公開鍵のペアである秘密鍵を記憶する。この公開鍵および秘密鍵は、準同型性を有する公開鍵暗号方式において用いられる鍵である。また、公開鍵は、外部から取得可能であるように保持されている。秘密鍵は、外部から取得できないように保持されている。鍵保持部１０１に保持される公開鍵および秘密鍵は、鍵生成装置１００において生成されたものであってもよいし、他の装置から取得されたものであってもよい。
【００４０】
全体公開鍵取得部１０２は、全体公開鍵を取得する。全体公開鍵は、１つ以上の分散復号用秘密鍵を用いて分散復号可能な暗号化情報を生成するための公開鍵である。分散復号は、１つの暗号化された情報に対して、１つ以上の分散復号用秘密鍵を用いて復号途中のデータ（部分復号結果）をそれぞれ生成し、これらの部分復号結果に基づいて、完全に復号されたデータを求める復号方式である。このような全体公開鍵は、一般に知られている技術を用いて生成可能である。例えば、このような全体公開鍵は、上述の１つ以上の分散復号用秘密鍵のそれぞれのペアである１つ以上の分散復号用公開鍵から生成可能である。そこで、全体公開鍵取得部１０２は、このような全体公開鍵を、他の装置によって公開されている１つ以上の分散復号用公開鍵に基づいて生成してもよい。あるいは、全体公開鍵取得部１０２は、１つ以上の分散復号用公開鍵に基づいて他の装置によって生成され公開される全体公開鍵を取得してもよい。
【００４１】
プロキシ鍵生成部１０３は、鍵保持部１０１に保持される公開鍵を用いて暗号化された暗号化データを、上述の１つ以上の分散復号用秘密鍵を用いて分散復号可能な再暗号化データに変換するためのプロキシ鍵を生成する。プロキシ鍵は、ある公開鍵pk_Aを用いて暗号化された暗号化データを、その公開鍵pk_Aとは異なる公開鍵pk_Bのペアである秘密鍵sk_Bを用いて復号可能な暗号化データに変換するための鍵である。このようなプロキシ鍵は、秘密鍵sk_Aと、公開鍵pk_Bとに基づいて生成可能であることが知られている。すなわち、この場合、プロキシ鍵生成部１０３は、鍵保持部１０１に保持される秘密鍵と、全体公開鍵とを用いて、プロキシ鍵を生成可能である。なお、このようなプロキシ鍵の生成技術として、例えば、参考文献Ａ（G. Ateniese, K. Fu, M. Green, and S. Hohenberger, "Improved Proxy Re-Encryption Schemes with Applications to Secure Distributed Storage", ACMTransactions on Information and System Security （TISSEC）, 2006.）に記載された技術が適用できる。
【００４２】
次に、プロキシ装置２００の機能ブロックについて説明する。図３において、プロキシ装置２００は、再暗号化部２０１を含む。ここで、再暗号化部２０１は、ネットワークインタフェース２００５と、ＣＰＵ２００１とによって実現される。ＣＰＵ２００１は、ＲＯＭ２００３および記憶装置２００４に記憶された前述のコンピュータプログラムおよび各種データをＲＡＭ２００２にロードし、ロードされたコンピュータプログラムを実行する。なお、再暗号化部２０１のハードウェア構成は、上述の構成に限定されない。
【００４３】
再暗号化部２０１は、鍵生成装置１００のプロキシ鍵生成部１０３によって生成されたプロキシ鍵を用いて、そのプロキシ鍵を生成した鍵生成装置１００の鍵保持部１０１に保持される公開鍵により暗号化された暗号化データを、再暗号化データに変換する。例えば、このようなプロキシ鍵を用いた再暗号化技術として、上述の参考文献Ａに記載された技術が適用可能である。
【００４４】
次に、暗号化統計データ生成装置３００の機能ブロックについて説明する。図３において、暗号化統計データ生成装置３００は、暗号化統計データ生成部３０１を含む。ここで、暗号化統計データ生成部３０１は、ネットワークインタフェース３００５と、ＲＯＭ３００３および記憶装置３００４に記憶されたコンピュータプログラムおよび各種データをＲＡＭ３００２に読み込んで実行するＣＰＵ３００１とによって実現される。ＣＰＵ３００１は、ＲＯＭ３００３および記憶装置３００４に記憶されたコンピュータプログラムおよび各種データをＲＡＭ３００２にロードし、ロードされたコンピュータプログラムを実行する。なお、暗号化統計データ生成部３０１のハードウェア構成は、上述の構成に限定されない。
【００４５】
暗号化統計データ生成部３０１は、Ｎ個の暗号化データ記憶装置８００にそれぞれ記憶されている暗号化データがＮ個のプロキシ装置２００によってそれぞれ変換された再暗号化データに対して、準同型性を利用した演算を施す。ここで、これらの再暗号化データは、異なる公開鍵によって暗号化された暗号化データが、同一の全体公開鍵に対応する１つ以上の分散復号用秘密鍵を用いて復号可能な情報に再暗号化されたデータである。したがって、暗号化統計データ生成部３０１は、これらの再暗号化データに対して準同型性を利用した演算を行うことが可能である。そして、暗号化統計データ生成部３０１は、演算結果を暗号化統計データとする。つまり、このような暗号化統計データは、再暗号化データが再暗号化される前の暗号化データの元の平文に関する統計情報が全体公開鍵により暗号化された情報に相当する。
【００４６】
また、暗号化統計データ生成部３０１は、生成した暗号化統計データを、暗号化統計データ記憶装置９００に記憶させる。
【００４７】
以上のように構成された暗号化統計処理システム１の動作について、図４〜図５を参照して説明する。なお、以下の説明において参照する図面では、鍵生成装置１００＿ｉ（ｉ＝１〜Ｎ）は、第ｉの鍵生成装置とも記述される。プロキシ装置２００＿ｉ（ｉ＝１〜Ｎ）は、第ｉのプロキシ装置とも記述される。また、鍵生成装置１００＿ｉの鍵保持部１０１に保持されている公開鍵はspk_iと記述される。鍵生成装置１００＿ｉの鍵保持部１０１に保持されている秘密鍵はssk_iと記述される。また、暗号化データ記憶装置８００＿ｉには、公開鍵spk_iを用いてそれぞれ暗号化されたn_i（n_iは１以上の整数）個の暗号化データENC ( spk_i , M_{i,1} ) 〜 ENC ( spk_i , M_{i,n_i} )が記憶されている。ここで、ENCは、準同型性を有する暗号化アルゴリズムを表す。また、M_{i,j｝は、公開鍵spk_iによって暗号化されたｊ番目の平文を表す。また、１つ以上の分散復号用秘密鍵を用いて分散復号可能な情報を生成するための全体公開鍵gpkは、外部の装置により公開されている。
【００４８】
まず、図４は、暗号化統計処理システム１のプロキシ鍵生成動作を表すフローチャートである。
【００４９】
図４では、まず、鍵生成装置１００＿ｉの全体公開鍵取得部１０２は、全体公開鍵gpkを取得する（ステップＳ１）。
【００５０】
次に、鍵生成装置１００＿ｉのプロキシ鍵生成部１０３は、鍵生成装置１００＿ｉの鍵保持部１０１に保持される秘密鍵ssk_i、および、ステップＳ１で取得された全体公開鍵gpkを用いて、プロキシ鍵rk_iを生成する（ステップＳ２）。プロキシ鍵rk_iは、公開鍵spk_iを用いて暗号化された暗号化データを、全体公開鍵gpkに関係する１つ以上の分散復号用秘密鍵を用いて分散復号可能な、再暗号化データに変換するための鍵である。
【００５１】
次に、鍵生成装置１００＿ｉのプロキシ鍵生成部１０３は、生成したプロキシ鍵rk_iを、プロキシ装置２００＿ｉに対して送信する（ステップＳ３）。
【００５２】
以上で、暗号化統計処理システム１は、プロキシ鍵生成動作を終了する。
【００５３】
次に、図５は、暗号化統計処理システム１の暗号化統計データ生成動作を表すフローチャートである。
【００５４】
図５において、プロキシ装置２００＿ｉの再暗号化部２０１は、プロキシ鍵rk_iを取得する（ステップＳ１１）。
【００５５】
次に、プロキシ装置２００＿ｉの再暗号化部２０１は、公開鍵spk_iで暗号化された暗号化データの集合 { ENC ( spk_i , M_{i,j} ) } ( j = 1 〜 n_i ) を、暗号化データ記憶装置８００＿ｉから取得する（ステップＳ１２）。
【００５６】
次に、プロキシ装置２００＿ｉの再暗号化部２０１は、プロキシ鍵rk_iを用いて、暗号化データの集合 { ENC ( spk_i , M_{i,j} ) } を、再暗号化データの集合 { ENC ( gpk , M_{i,j} ) } に変換する（ステップＳ１３）。
【００５７】
次に、プロキシ装置２００＿ｉの再暗号化部２０１は、再暗号化データの集合｛ENC（gpk，M_{i,j｝）｝を、暗号化統計データ生成装置３００に送信する（ステップＳ１４）。
【００５８】
次に、暗号化統計データ生成装置３００の暗号化統計データ生成部３０１は、プロキシ装置２００＿１〜２００＿Ｎから、再暗号化データの各集合 { ENC ( gpk , M_{1,j} ) } ( j = 1 〜 n_1 ) 〜 { ENC ( gpk , M_{N,j} ) } ( j = 1 〜 n_N ) を受信する（ステップＳ１５）。以降、これらの再暗号化データのＮ個の集合は、まとめて、再暗号化データの集合{ ENC ( gpk , M_{1,1} )，…， ENC ( gpk , M_{N,n_N} ) } とも記述される。
【００５９】
次に、暗号化統計データ生成部３０１は、再暗号化データの集合 { ENC ( gpk , M_{1,1} ），…， ENC ( gpk , M_{N,n_N} ) } に基づいて、暗号化統計データ ENC ( gpk , S ) を生成する（ステップＳ１６）。
【００６０】
ここで、Sは、平文M_{1,1} 〜 M_{N,n_N} に対して統計処理を施した統計データを表す。例えば、S = M_{1,1}＋M_{1,2}＋…＋M_{N, n_N} であれば、Sは、M_{1,1} 〜 M_{N,n_N}の総和を表す。ENCが準同型性を有する暗号化アルゴリズムであることを利用して、暗号化統計データ生成部３０１は、再暗号化データの集合 { ENC ( gpk , M_{1,1} ) ，…， { ENC ( gpk , M_{N,n_N} ) }を復号することなく、上述のＳで表される総和が暗号化された暗号化統計データENC ( gpk , S )を求めることが可能である。また、例えば、S = n ( M_{1,1}^2＋…＋M_{N,n_N} )^2 )−( ( M_{1,1}＋…＋M_{Ｎ,n_N} ) )^2であれば、SはM_{1,1} 〜 M_{N,n_N}の分散を表す。ただし、nは、平文M_{1,1} 〜 M_{N,n_N}の個数を表す。また、a^bは、aのb乗を表す。この場合も、暗号化統計データ生成部３０１は、再暗号化データの集合 { ENC ( gpk , M_{1,1} ) 〜 ENC ( gpk , M_{N,n_N} ) } を復号することなく、上述のＳで表される分散が暗号化された暗号化統計データENC ( gpk , S )を求めることが可能である。
【００６１】
次に、暗号化統計データ生成部３０１は、生成した暗号化統計データENC ( gpk , S )を、暗号化統計データ記憶装置９００に記憶させる（ステップＳ１７）。
【００６２】
以上で、暗号化統計処理システム１は、暗号化統計データ生成動作を終了する。
【００６３】
次に、本発明の第１の実施の形態の効果について述べる。
【００６４】
本発明の第１の実施の形態の暗号化統計処理システムは、異なる公開鍵を用いて暗号化された暗号化データに対して、データが暗号化されたまま統計処理を行うことができる。
【００６５】
その理由は、プロキシ鍵生成部１０３が、プロキシ鍵を、鍵保持部１０１に保持される秘密鍵と、全体公開鍵とに基づいて生成するからである。プロキシ鍵は、鍵保持部１０１に保持される公開鍵を用いて暗号化された暗号化データを、１つ以上の分散復号用秘密鍵によって分散復号可能な再暗号化データに変換するための鍵である。全体公開鍵取得部１０２が、１つ以上の分散復号用秘密鍵によって分散復号可能な情報を生成するための全体公開鍵を取得する。そして、再暗号化部２０１が、鍵保持部１０１に保持される公開鍵を用いて暗号化された暗号化データを、プロキシ鍵を用いて再暗号化データに変換するからである。これにより、１つ以上の異なる公開鍵を用いて暗号化された暗号化データは、各公開鍵に基づいて生成されたプロキシ鍵により、同一の全体公開鍵を用いて暗号化された情報に相当する再暗号化データに変換される。そして、暗号化統計データ生成部３０１が、そのような再暗号化データに対して、準同型性を利用した演算を施す。このことにより、暗号化統計データ生成部３０１は、暗号化データを元のデータに復号することなく、元のデータに関する統計情報が暗号化された情報に相当する暗号化統計データを生成するからである。
【００６６】
このように、本発明の第１の実施の形態の暗号化統計処理システム１は、例えば復号システムによって公開される全体公開鍵を用いて、異なる公開鍵を用いて暗号化された暗号化データに対して暗号化したまま統計処理を行う。このことにより、本発明の第１の実施の形態の暗号化統計処理システム１は、そのような復号システムによって分散復号可能な暗号化統計データを生成することができる。したがって、本実施の形態は、暗号化データを生成するための公開鍵を用いたサービスを行うサービス提供者側と、統計データを利用したい統計データ利用者が異なる場合にも好適である。
【００６７】
（第２の実施の形態）
次に、本発明の第２の実施の形態について図面を参照して詳細に説明する。本実施の形態では、本発明の第１の実施の形態の暗号化統計処理システム１によって生成された暗号化統計データを復号する復号システムについて説明する。なお、本実施の形態の説明において参照する各図面において、本発明の第１の実施の形態と同一の構成には同一の符号を付して本実施の形態における詳細な説明を省略する。
【００６８】
まず、図６は、本発明の第２の実施の形態の復号システム２の構成を表すブロック図である。なお、図６において、実線で囲まれた図形は、復号システム２の構成要素を表す。そして、破線で囲まれた図形は、復号システム２の外部に接続される装置を表す。図６において、復号システム２は、Ｌ（Ｌは１以上の整数）個の分散復号装置４００＿１〜４００＿Ｌと、統計情報復号装置５００とを含む。以下、Ｌ個の分散復号装置４００＿１〜４００＿Ｌは、総称して分散復号装置４００とも記述される。
【００６９】
また、図６において、分散復号装置４００および統計情報復号装置５００は、互いに通信が可能であるように接続されている。また、分散復号装置４００および統計情報復号装置５００は、外部の暗号化統計データ記憶装置９００とそれぞれ通信が可能であるように接続されている。ここで、暗号化統計データ記憶装置９００は、本発明の第１の実施の形態の暗号化統計処理システム１によって生成された暗号化統計データを記憶する装置である。
【００７０】
また、図６において、通信が必要となる各装置間は、インターネット、ＬＡＮ、公衆回線網、無線通信網またはこれらの組合せ等によって構成されるネットワークを介して、通信が可能であるように接続される。また、これらの各装置間の少なくとも一部は、他の各装置間を接続するネットワークとは異なるネットワークによって接続されていてもよい。
【００７１】
また、図６には、Ｌ個の分散復号装置４００と、１つの統計情報復号装置５００と、１つの暗号化統計データ記憶装置９００とが示されている。しかし、本発明の復号システムが備える各装置の数および接続される各装置の数は、図６の数に限定されない。
【００７２】
次に、図７は、復号システム２を構成する各装置のハードウェア構成を表すブロック図である。
【００７３】
図７において、分散復号装置４００は、ＣＰＵ４００１と、ＲＡＭ４００２と、ＲＯＭ４００３と、ハードディスク等の記憶装置４００４と、ネットワークインタフェース４００５とを備えたコンピュータ装置によって構成されている。
【００７４】
ＲＯＭ４００３および記憶装置４００４には、コンピュータ装置を本実施の形態の分散復号装置４００として機能させるコンピュータプログラムおよび各種データが記憶されている。
【００７５】
ＣＰＵ４００１は、ＲＯＭ４００３および記憶装置４００４に記憶されたコンピュータプログラムおよび各種データをＲＡＭ４００２にロードし、ロードされたコンピュータプログラムを実行する。
【００７６】
ネットワークインタフェース４００５は、ネットワークを介して他の装置との通信を行うモジュールである。
【００７７】
統計情報復号装置５００は、ＣＰＵ５００１と、ＲＡＭ５００２と、ＲＯＭ５００３と、ハードディスク等の記憶装置５００４と、ネットワークインタフェース５００５とを備えたコンピュータ装置によって構成されている。
【００７８】
ＲＯＭ５００３および記憶装置５００４には、コンピュータ装置を本実施の形態の統計情報復号装置５００として機能させるためのコンピュータプログラムおよび各種データが記憶されている。
【００７９】
ＣＰＵ５００１は、ＲＯＭ５００３および記憶装置５００４に記憶されたコンピュータプログラムおよび各種データをＲＡＭ５００２にロードし、ロードされたコンピュータプログラムを実行する。
【００８０】
ネットワークインタフェース５００５は、ネットワークを介して他の装置との通信を行うモジュールである。
【００８１】
次に、復号システム２を構成する各装置の機能ブロックについて、図８を参照して説明する。図８は、復号システム２を構成する各装置の機能ブロックを表すブロック図である。
【００８２】
まず、分散復号装置４００の各機能ブロックについて説明する。図８において、分散復号装置４００は、分散復号用鍵保持部４０１と、分散復号部４０２とを含む。ここで、分散復号用鍵保持部４０１は、記憶装置４００４によって実現される。また、分散復号部４０２は、ネットワークインタフェース４００５と、ＣＰＵ４００１とによって実現される。ＣＰＵ４００１は、ＲＯＭ４００３および記憶装置４００４に記憶された前述のコンピュータプログラムおよび各種データをＲＡＭ４００２にロードし、ロードされたコンピュータプログラムを実行する。なお、分散復号装置４００の各機能ブロックのハードウェア構成は、上述の構成に限定されない。
【００８３】
分散復号用鍵保持部４０１は、分散復号用公開鍵および分散復号用秘密鍵を記憶している。ここで、この分散復号用公開鍵および分散復号用秘密鍵は、分散復号可能な公開鍵暗号方式において用いられる鍵である。この分散復号用公開鍵は、他の装置が取得できるように保持される。また、分散復号用秘密鍵は、他の装置が取得できないよう保持されている。
【００８４】
分散復号部４０２は、暗号化統計データ記憶装置９００に記憶された暗号化統計データを、分散復号用秘密鍵を用いて復号することにより部分復号結果を生成する。ここで、暗号化統計データ記憶装置９００には、本発明の第１の実施の形態の暗号化統計処理システム１によって生成された暗号化統計データが記憶されている。暗号化統計処理システム１は、Ｌ個の分散復号装置４００に保持される分散復号用秘密鍵によって分散復号可能な情報を生成するための全体公開鍵を用いて、暗号化統計データを生成する。
【００８５】
なお、分散復号装置４００は、その分散復号装置４００が公開する分散復号用公開鍵と、他の分散復号装置４００が公開する他の分散復号用公開鍵とに基づいて、暗号化統計処理システム１によって用いられる上述の全体公開鍵を生成してもよい。そして、分散復号装置４００は、生成した全体公開鍵を公開してもよい。
【００８６】
次に、統計情報復号装置５００の機能ブロックについて説明する。図８において、統計情報復号装置５００は、統計情報復号部５０１を有する。ここで、統計情報復号部５０１は、ネットワークインタフェース５００５と、ＣＰＵ５００１とによって構成される。ＣＰＵ５００１は、ＲＯＭ５００３および記憶装置５００４に記憶された前述のコンピュータプログラムおよび各種データをＲＡＭ５００２にロードし、ロードされたコンピュータプログラムを実行する。なお、統計情報復号部５０１のハードウェア構成は、上述の構成に限定されない。
【００８７】
統計情報復号部５０１は、Ｌ個の分散復号装置４００によって得られたＬ個の部分復号結果に基づいて、暗号化統計データの完全な復号結果を取得する。これにより、統計情報復号部５０１は、本発明の第１の実施の形態の暗号化統計処理システム１に接続される暗号化データ記憶装置８００に記憶されている暗号化データが暗号化される前の元のデータに関する統計情報を取得する。
【００８８】
以上のように構成された復号システム２の復号動作について、図９を参照して説明する。
【００８９】
なお、以下の説明において参照する図面では、分散復号装置４００＿ｉ（ｉ＝１〜Ｌ）は、第ｉの分散復号装置とも記述される。また、分散復号装置４００＿ｉの分散復号用鍵保持部４０１に保持されている分散復号用公開鍵は、dpk_iと記述される。分散復号用秘密鍵は、dsk_iと記述される。また、全体公開鍵gpkが、Ｌ個の分散復号用公開鍵dpk_iに基づき生成され、公開されている。また、暗号化統計データ記憶装置９００には、本発明の第１の実施の形態の暗号化統計処理システム１によって生成された、全体公開鍵gpkに関連する暗号化統計データENC ( gpk , S )が記憶されている。
【００９０】
図９では、まず、分散復号装置４００＿ｉの分散復号部４０２は、暗号化統計データ記憶装置９００から、暗号化統計データENC ( gpk , S )を取得する（ステップＳ２１）。
【００９１】
次に、分散復号装置４００＿ｉの分散復号部４０２は、分散復号用鍵保持部４０１に保持された分散復号用秘密鍵dsk_iを用いて、暗号化統計データENC ( gpk , S )を部分復号し、部分復号結果RESULT_iを生成する（ステップＳ２２）。
【００９２】
次に、分散復号装置４００＿ｉの分散復号部４０２は、部分復号結果RESULT_iを、統計情報復号装置５００に送信する（ステップＳ２３）。
【００９３】
次に、統計情報復号装置５００の統計情報復号部５０１は、分散復号装置４００＿１〜４００＿Ｌから、Ｌ個の部分復号結果RESULT_1〜RESULT_Lを受信する（ステップＳ２４）。
【００９４】
次に、統計情報復号部５０１は、Ｌ個の部分復号結果RESULT_1〜RESULT_Lに基づいて、復号結果Ｓを取得する（ステップＳ２５）。
【００９５】
以上で、復号システム２は動作を終了する。
【００９６】
次に、本発明の第２の実施の形態の効果について説明する。
【００９７】
本発明の第２の実施の形態の復号システムは、異なる公開鍵を用いて暗号化された暗号化データが暗号化されたまま統計処理された暗号化統計データを、元のデータに関する統計情報に復号することができる。
【００９８】
その理由は、分散復号用鍵保持部が、分散復号用公開鍵および分散復号用秘密鍵を保持しておき、分散復号用公開鍵を公開しておくからである。このことにより、これらの１つ以上の分散復号用秘密鍵を用いて分散復号可能な暗号化情報を生成するための全体公開鍵の生成が可能である。これにより、異なる公開鍵を用いて暗号化された暗号化データは、そのような全体公開鍵を用いて暗号化された情報に相当する再暗号化データに変換される。暗号化データは、復号されることなく再暗号化データのまま統計処理されて、暗号化統計データが生成される。そして、分散復号部が、そのような暗号化統計データに対して、分散復号用秘密鍵を用いて部分復号を行うことにより部分復号結果を生成する。そして、統計情報復号部が、１つ以上の部分復号結果に基づいて完全な復号結果を得る。すなわち、本実施の形態の復号システムは、暗号化統計データを分散復号することにより、復号結果として、異なる公開鍵を用いて暗号化された暗号化データの元のデータに対する統計情報を得ることができる。
【００９９】
（第３の実施の形態）
次に、本発明の第３の実施の形態について図面を参照して詳細に説明する。なお、本実施の形態の説明において参照する各図面において、本発明の第１および第２の実施の形態と同一の構成には同一の符号を付して本実施の形態における詳細な説明を省略する。
【０１００】
まず、図１０は、本発明の第３の実施の形態の暗号化統計処理システム３および復号システム４の構成を表すブロック図である。なお、図１０において、実線で囲まれた図形は、暗号化統計処理システム３または復号システム４の構成要素を表す。そして、破線で囲まれた図形は、暗号化統計処理システム３および復号システム４の外部に接続される装置を表す。図１０において、暗号化統計処理システム３は、Ｎ個の鍵生成装置１３０＿１〜１３０＿Ｎと、Ｎ個のプロキシ装置２３０＿１〜２３０＿Ｎと、暗号化統計データ生成装置３３０とを備える。Ｎ個の鍵生成装置１３０＿１〜１３０＿Ｎは、以下、総称して鍵生成装置１３０とも記述される。Ｎ個のプロキシ装置２３０＿１〜２３０＿Ｎは、以下、総称してプロキシ装置２３０とも記述される。また、暗号化統計処理システム３を構成する各装置のハードウェア構成は、図２を参照して説明した本発明の第１の実施の形態の暗号化統計処理システム１を構成する各装置と同様に構成可能である。
【０１０１】
また、図１０において、復号システム４は、Ｌ個の分散復号装置４３０＿１〜４３０＿Ｌと、統計情報復号装置５３０とを備える。Ｌ個の分散復号装置４３０＿１〜４３０＿Ｌは、以下、総称して分散復号装置４３０とも記述される。また、復号システム４を構成する各装置のハードウェア構成は、図７を参照して説明した本発明の第２の実施の形態の復号システム２を構成する各装置と同様に構成可能である。
【０１０２】
また、図１０において、鍵生成装置１３０、プロキシ装置２３０および暗号化統計データ生成装置３３０は、本発明の第１の実施の形態における鍵生成装置１００、プロキシ装置２００および暗号化統計データ生成装置３００と同様に、互いに通信が可能であるように接続される。さらに、鍵生成装置１３０、プロキシ装置２３０および暗号化統計データ生成装置３３０は、外部のデータ登録装置７００、外部の暗号化データ記憶装置８００および外部の暗号化統計データ記憶装置９００とそれぞれ通信が可能であるように接続されている。
【０１０３】
また、図１０において、分散復号装置４３０および統計情報復号装置５３０は、本発明の第２の実施の形態における分散復号装置４００および統計情報復号装置５００と同様に、互いに通信が可能であるように接続される。さらに、分散復号装置４３０および統計情報復号装置５３０は、外部の暗号化統計データ記憶装置９００と、それぞれ通信が可能であるように接続されている。
【０１０４】
また、図１０において、通信が必要となる各装置間は、インターネット、ＬＡＮ、公衆回線網、無線通信網またはこれらの組合せ等によって構成されるネットワークを介して、通信が可能であるように接続される。また、これらの各装置間の少なくとも一部は、他の各装置間を接続するネットワークとは異なるネットワークによって接続されていてもよい。
【０１０５】
また、図１０には、Ｎ個の鍵生成装置１３０と、Ｎ個のプロキシ装置２３０と、Ｎ個の暗号化データ記憶装置８００と、１つの暗号化統計データ生成装置３３０と、１つの暗号化統計データ記憶装置９００とが示されている。しかし、本発明の暗号化統計処理システムが備える各装置の数および接続される各装置の数は、図１０の例に限定されない。また、図１０には、Ｌ個の分散復号装置４３０と、１つの統計情報復号装置５３０とが示されている。しかし、本発明の復号システムが備える各装置の数および接続される各装置の数は、図１０の例に限定されない。
【０１０６】
次に、暗号化統計処理システム３および復号システム４を構成する各装置の機能ブロックについて、図１１を参照して説明する。図１１は、暗号化統計処理システム３および復号システム４を構成する各装置の機能ブロックを表すブロック図である。
【０１０７】
まず、鍵生成装置１３０の各機能ブロックについて説明する。図１１において、鍵生成装置１３０は、本発明の第１の実施の形態における鍵生成装置１００に対して、プロキシ鍵生成部１０３に替えてプロキシ鍵生成部１３３を備える点が異なる。
【０１０８】
プロキシ鍵生成部１３３は、そのプロキシ鍵生成部１３３が含まれる鍵生成装置１３０で生成された乱数、他の鍵生成装置１３０で生成された他の乱数、および、鍵保持部１０１に保持される秘密鍵に基づいて、統合用変換鍵を生成する。プロキシ鍵生成部１３３による統合用変換鍵の生成に使用される秘密鍵を保持する鍵保持部１０１は、そのプロキシ鍵生成部１３３を含む鍵生成装置１３０の鍵保持部１０１である。統合用変換鍵は、鍵保持部１０１に保持される公開鍵によって暗号化された暗号化データを、統合用秘密鍵によって復号可能な統合用再暗号化データに変換するための鍵である。統合用秘密鍵は、統合用秘密鍵を生成するプロキシ鍵生成部１３３が含まれる鍵生成装装置１３０で生成された乱数および他の鍵生成装置１３０で生成された他の乱数に基づき生成されうる秘密鍵である。このために、例えばプロキシ鍵生成部１３３が、乱数を生成する。プロキシ鍵生成部１３３は、さらに、他の鍵生成装置１３０のプロキシ鍵生成部１３３によって生成された他の乱数に関する情報を取得する。
【０１０９】
また、プロキシ鍵生成部１３３は、そのプロキシ鍵生成部１３３が含まれる鍵生成装置１３０で生成された乱数を、前述の全体公開鍵により暗号化して乱数暗号化情報を生成する。そして、プロキシ鍵生成部１３３は、統合用変換鍵および乱数暗号化情報を含む情報を、プロキシ鍵として生成する。
【０１１０】
また、プロキシ鍵生成部１３３は、プロキシ装置２３０によって公開される後述のプロキシ公開鍵を用いて、上述の統合用変換鍵および乱数暗号化情報を含むプロキシ鍵を生成してもよい。具体的には、プロキシ鍵生成部１３３は、そのプロキシ鍵生成部１３３が含まれる鍵生成装置１３０で生成された乱数を、その鍵生成装置１３０に関連付けられたプロキシ装置２３０によって公開されるプロキシ公開鍵を用いて暗号化してもよい。また、プロキシ鍵生成部１３３は、他の鍵生成装置１３０によって生成された他の乱数を、同一のプロキシ公開鍵を用いて暗号してもよい。そして、プロキシ鍵生成部１３３は、それらの暗号化された乱数を表す情報と、自装置の秘密鍵とに基づいて、前述の統合用変換鍵がプロキシ公開鍵により暗号化された情報に相当する統合用変換鍵暗号化情報を生成してもよい。この場合、プロキシ鍵生成部１３３は、統合用変換鍵暗号化情報および乱数暗号化情報を含む情報を、プロキシ鍵として生成する。例えば、プロキシ鍵生成部１３３は、そのプロキシ鍵生成部１３３が含まれる鍵生成装置１３０が生成した乱数を、Ｎ個のプロキシ装置２３０によって公開されるＮ個のプロキシ公開鍵を用いてそれぞれ暗号化したＮ個の暗号化情報を生成すればよい。そして、プロキシ鍵生成部１３３は、生成した各情報を、暗号化に用いたプロキシ公開鍵に関係する他の鍵生成装置１３０に送信すればよい。これにより、プロキシ鍵生成部１３３は、Ｎ個の乱数が同一のプロキシ公開鍵を用いて暗号化された情報を取得可能となる。
【０１１１】
次に、プロキシ装置２３０の各機能ブロックについて説明する。図１１において、プロキシ装置２３０は、本発明の第１の実施の形態におけるプロキシ装置２００に対して、再暗号化部２０１に替えて再暗号化部２３１を備え、さらに、プロキシ鍵保持部２３２を備える点が異なる。ここで、プロキシ鍵保持部２３２は、記憶装置２００４によって構成される。
【０１１２】
プロキシ鍵保持部２３２は、プロキシ公開鍵およびプロキシ秘密鍵を記憶している。プロキシ公開鍵およびプロキシ秘密鍵は、準同型性を有する公開暗号化方式において用いられる公開鍵および秘密鍵である。このプロキシ公開鍵は、他の装置が取得できるように保持される。また、プロキシ秘密鍵は、他の装置が取得できないよう保持されている。
【０１１３】
再暗号化部２３１は、Ｎ個の鍵生成装置１３０によって生成されたＮ個のプロキシ鍵に含まれるＮ個の乱数暗号化情報に基づいて、統合用秘密鍵暗号化情報を生成する。ここで、Ｎ個の各乱数暗号化情報は、各鍵生成装置１３０によって生成された乱数が全体公開鍵によって暗号化された情報である。そこで、例えば、再暗号化部２３１は、Ｎ個の各乱数暗号化情報に対して準同型性を利用した演算を施すことにより、各乱数暗号化情報を復号することなく、これらの乱数に基づき生成されうる統合用秘密鍵に復号可能な統合用秘密鍵暗号化情報を得ることができる。
【０１１４】
また、再暗号化部２３１は、統合用変換鍵を用いて、暗号化データを、統合用再暗号化データに変換する。その統合用変換鍵は、再暗号化部２３１が含まれるプロキシ装置２３０に関連付けられた鍵生成装置１３０によって生成されたプロキシ鍵に含まれる統合用変換鍵である。また、暗号化データは、その鍵生成装置１３０により公開される公開鍵によって暗号化された暗号化データである。プロキシ鍵に前述の統合用変換鍵暗号化情報が含まれる場合、再暗号化部２３１は、プロキシ鍵保持部２３２に保持されるプロキシ秘密鍵を用いて統合用変換鍵暗号化情報を復号することにより、統合用変換鍵を取得すればよい。そして、再暗号化部２３１は、この統合用再暗号化データと、前述の統合用秘密鍵暗号化情報とを含む情報を、再暗号化データとして出力する。
【０１１５】
次に、暗号化統計データ生成装置３３０の機能ブロックについて説明する。図１１において、暗号化統計データ生成装置３３０は、本発明の第１の実施の形態における暗号化統計データ生成装置３００に対して、暗号化統計データ生成部３０１に替えて暗号化統計データ生成部３３１を備える点が異なる。
【０１１６】
暗号化統計データ生成部３３１は、プロキシ装置２３０から出力される再暗号化データに含まれる統合用再暗号化データに対して、準同型性を利用した演算を施す。そして、暗号化統計データ生成部３３１は、その演算結果である統合用再暗号化データ演算結果と、再暗号化データに含まれる統合用秘密鍵暗号化情報とを含む情報を、暗号化統計データとして生成する。このような暗号化統計データに含まれる統合用秘密鍵暗号化情報は、１つ以上の分散復号用秘密鍵を用いて分散復号されることにより統合用秘密鍵に復号可能である。また、このような暗号化統計データに含まれる統合用再暗号化データ演算結果は、そのような統合用秘密鍵により統計情報に復号可能である。したがって、このような暗号化統計データは、１つ以上の分散復号用秘密鍵を用いて統計情報に復号可能であるといえる。
【０１１７】
次に、分散復号装置４３０の各機能ブロックについて説明する。図１１において、分散復号装置４３０は、本発明の第２の実施の形態における分散復号装置４００に対して、分散復号部４０２に替えて分散復号部４３２を備える点が異なる。
【０１１８】
分散復号部４３２は、暗号化統計データ記憶装置９００に記憶される暗号化統計データに含まれる統合用秘密鍵暗号化情報に対して、自装置の分散復号用鍵保持部４０１に保持される分散復号用秘密鍵を用いて部分復号を行うことにより、部分復号結果を生成する。
【０１１９】
次に、統計情報復号装置５３０の機能ブロックについて説明する。図１１において、統計情報復号装置５３０は、本発明の第２の実施の形態における統計情報復号装置５００に対して、統計情報復号部５０１に替えて統計情報復号部５３１を備える点が異なる。
【０１２０】
統計情報復号部５３１は、Ｌ個の分散復号装置４３０から出力されるＬ個の部分復号結果に基づいて、暗号化統計データに含まれる統合用秘密鍵暗号化情報の完全な復号結果として統合用秘密鍵を取得する。そして、統計情報復号部５３１は、取得した統合用秘密鍵を用いて、暗号化統計データに含まれる統合用再暗号化データ演算結果を復号する。これにより、統計情報復号部５３１は、暗号化データ記憶装置８００に記憶されている暗号化データが暗号化される前のデータに関する統計情報を取得することになる。
【０１２１】
以上のように構成された暗号化統計処理システム３および復号システム４の動作について、図面を参照して説明する。ここでは、本実施の形態においてエルガマル暗号方式を適用した場合の例を中心に動作の説明を行う。
【０１２２】
初めに、本実施の形態で用いるエルガマル暗号方式について説明する。エルガマル暗号は鍵生成、暗号化、および、復号の３つの処理からなる公開鍵暗号方式である。以降、簡単のため、整数をpで割った余りの集合をZ_pと記載する。
【０１２３】
＜鍵生成＞エルガマル暗号の鍵生成のアルゴリズムは、セキュリティパラメータkを入力として、公開鍵（p,g,y）、秘密鍵（x）を出力する確率的アルゴリズムである。その鍵生成は、以下の通り行われる。
【０１２４】
１：k ビットの素数 p を生成する。
【０１２５】
２：Z_p の生成元 g をランダムに生成する。
【０１２６】
３：Z_p からランダムに x を選び、y=g^x を計算する。
【０１２７】
４：（p, g, y）を公開鍵、xを秘密鍵として出力する。
【０１２８】
＜暗号化＞エルガマル暗号の暗号化のアルゴリズムは、メッセージM∈Z_pおよび公開鍵（p,g,y）を入力として、暗号文C=（c_1, c_2）を出力する確率的アルゴリズムである。その暗号化は、以下の通り行われる。
【０１２９】
１：Z_pからランダムにrを選ぶ。
【０１３０】
２：c_1=y^r, c_2=g^M・g^rを計算する。ここで、“・”は、群上で定義された掛け算を表す演算子である。
【０１３１】
３：C=（c_1, c_2）を出力する。
【０１３２】
＜復号＞エルガマル暗号の復号のアルゴリズムは、暗号文C=（c_1, c_2）および秘密鍵xを入力として、平文Mを出力する決定的アルゴリズムである。その復号は、以下の通り行われる。
【０１３３】
１：P=c_2/（c_1）^{1/x｝ を計算する。
【０１３４】
２：g^M=Pを満たす M を見つける。
【０１３５】
３：Mを出力する。
【０１３６】
このようなエルガマル暗号は、プロキシ再暗号化機能および加法準同型性を有するために、一般的に広く知られたエルガマル暗号とは異なる。しかし、このようなエルガマル暗号が、通常のエルガマル暗号と同等の安全性を有することを、数学的に証明可能である。以降、このようなエルガマル暗号方式を採用した場合の具体例を中心に、暗号化統計処理システム３および復号システム４の動作について説明する。
【０１３７】
なお、以下の動作の説明において、N個の各鍵生成装置１３０＿ｉの鍵保持部１０１には、互いに異なる公開鍵spk_i=(p,g,y_i)および秘密鍵ssk_i=(x_i)が既に記憶されている。
【０１３８】
ただし、各公開鍵spk_iの生成に用いられた素数pおよびZ_p の生成元gは、共通である。例えば、鍵生成装置１３０＿ｉは、共通のpおよびgを用いて、上述したエルガマル暗号の鍵生成処理を実行することにより、公開鍵spk_i=(p,g,y_i)および秘密鍵ssk_i=(x_i)を生成してもよい。そして、鍵生成装置１３０＿ｉは、生成された公開鍵spk_iと秘密鍵ssk_iを、鍵保持部１０１に保持させておいてもよい。そして、公開鍵spk_iは、公開され、外部から取得可能である。
【０１３９】
また、以下の動作の説明において、Ｎ個の各プロキシ装置２３０＿ｉのプロキシ鍵保持部２３２には、プロキシ公開鍵ppk_i=(p,g,y_{p,i})およびプロキシ秘密鍵psk_i=(x_{p,i})が既に記憶されている。
【０１４０】
ただし、各プロキシ公開鍵ppk_iの生成には、上述の各公開鍵spk_iの生成に用いられた共通の素数pおよびZ_p の生成元gと同一のものが用いられている。例えば、プロキシ装置２３０＿ｉは、このような共通のpおよびgを用いて、上述したエルガマル暗号の鍵生成処理を実行することにより、プロキシ公開鍵ppk_i=(p,g,y_{p,i})およびプロキシ秘密鍵psk_i=(x_{p,i})を生成してもよい。そして、プロキシ装置２３０＿ｉは、生成されたプロキシ公開鍵ppk_iとプロキシ秘密鍵psk_iを、プロキシ鍵保持部２３２に保持させておいてもよい。そして、プロキシ公開鍵ppk_iは、公開され、外部から取得可能である。
【０１４１】
また、以下の動作の説明において、Ｌ個の各分散復号装置４３０＿ｉの分散復号用鍵保持部４０１には、分散復号用公開鍵dpk_i=(p,g,y_{d,i})および分散復号用秘密鍵dsk_i=(x_{d,i})が既に記憶されている。
【０１４２】
ただし、各分散公開鍵dpk_iの生成には、上述の各公開鍵spk_iの生成に用いられた共通の素数pおよびZ_p の生成元gと同一のものが用いられている。例えば、分散復号装置４３０＿ｉは、このような共通のpおよびgを用いて、上述したエルガマル暗号の鍵生成処理を実行することにより、分散復号用公開鍵dpk_i=(p,g,y_{d,i})および分散復号用秘密鍵dsk_i=(x_{d,i})を生成してもよい。そして、分散復号装置４３０＿ｉは、生成された分散復号用公開鍵dpk_iと分散復号用秘密dsk_i鍵を、分散復号用鍵保持部４０１に保持させておいてもよい。そして、分散復号用公開鍵dpk_iは、公開され、外部から取得可能である。
【０１４３】
また、以下の動作の説明において、N個の暗号化データ記憶装置８００＿ｉには、それぞれ平文M_{i,j} ( j = 1 〜 n_i ) が公開鍵spk_iによって暗号化された暗号化データの集合 { ENC(spk_i, M_{i,j}) }が既に記憶されている。ただし、暗号化データ記憶装置８００＿ｉに記憶された暗号化データの数はn_i個である。なお、このような暗号化データは、データ登録装置７００によって、公開鍵spk_iおよび登録したいデータM_{i,j}を入力として、上述のエルガマル暗号の暗号化処理が実行されることにより、生成される。
【０１４４】
まず、全体公開鍵の生成動作について説明する。図１２は、全体公開鍵の生成動作を表す図である。ここでは、分散復号装置４３０＿ｉが、全体公開鍵を生成し、公開するものとして説明を行う。
【０１４５】
図１２では、まず、分散復号装置４３０＿ｉは、他の分散復号装置４３０＿ｉと通信することにより、分散復号用公開鍵dpk_1〜dpk_Nを取得する（ステップＳ１０１）。
【０１４６】
次に、分散復号装置４３０＿ｉは、N個の分散復号用公開鍵dpk_1〜dpk_Nに基づいて、全体公開鍵gpkを生成する。そして、分散復号装置４３０＿ｉは、生成された全体公開鍵gpkを公開する（ステップＳ１０２）。
【０１４７】
具体的には、分散復号装置４３０＿ｉは、y_{d}=y_{d,1}(・)…(・)y_{d,N} を計算する。ここで、“(・)”は、二項演算子であり、暗号化アルゴリズムENCがその演算に関して準同型性を有する二項演算子を表す。一般に、演算子“(・)”は、ENCの暗号に応じて定まる。そして、分散復号装置４３０＿ｉは、(p,g,y_{d})を全体公開鍵gpkとして公開する。
【０１４８】
以上で、分散復号装置４３０＿ｉは、全体公開鍵gpkの生成動作を終了する。なお、このような全体公開鍵gpkの生成動作は、Ｌ個全ての分散復号装置４３０によって実行される必要はない。全体公開鍵gpkの生成動作は、少なくとも１つの分散復号装置４３０によって実行されればよい。あるいは、鍵生成装置１３０、暗号化統計データ生成装置３３０、統計情報復号装置５３０等の装置が、全体公開鍵gpkの生成処理を行ってもよい。
【０１４９】
次に、暗号化統計処理システム３のプロキシ鍵生成動作について説明する。図１３は、暗号化統計処理システム３のプロキシ鍵生成動作を表す図である。
【０１５０】
図１３では、まず、鍵生成装置１３０＿ｉの全体公開鍵取得部１０２は、全体公開鍵gpkを取得する（ステップＳ２０１）。ここでは、全体公開鍵取得部１０２は、図１２に示す動作を実行した装置（例えば、分散復号装置４３０＿ｉ）により公開されている全体公開鍵gpkを取得すればよい。
【０１５１】
次に、プロキシ鍵生成部１３３は、そのプロキシ鍵生成部１３３が含まれる鍵生成装置１３０＿ｉの鍵保持部１０１に保持されている秘密鍵ssk_i=(x_i)を取得する（ステップＳ２０２）。
【０１５２】
次に、プロキシ鍵生成部１３３は、乱数h_iを生成する（ステップＳ２０３）。具体的には、プロキシ鍵生成部１３３は、Z_pからランダムにh_iを選択する。
【０１５３】
次に、プロキシ鍵生成部１３３は、生成した乱数h_iをプロキシ公開鍵ppk_iで暗号化した情報と、他の鍵生成装置１３０＿ｊ（ｊ＝１〜Ｎ、ただし、ｊ≠ｉ）によって生成された乱数h_jが同一のプロキシ公開鍵ppk_iで暗号化された情報とを取得する（ステップＳ２０４）。
【０１５４】
具体的には、鍵生成装置１３０＿ｉのプロキシ鍵生成部１３３は、次のように動作することにより、これらのＮ個の乱数がプロキシ公開鍵ppk_iで暗号化された情報を取得すればよい。
【０１５５】
・鍵生成装置１３０＿ｉのプロキシ鍵生成部１３３は、プロキシ装置２３０＿１〜２３０＿Ｎによって公開されているプロキシ公開鍵ppk_1〜ppk_Nをそれぞれ用いて乱数h_i を暗号化し、ENC(ppk_1, h_i) ，…，ENC(ppk_N, h_i)を生成する。
【０１５６】
・次に、鍵生成装置１３０＿ｉのプロキシ鍵生成部１３３は、生成したENC(ppk_j, h_i) （j＝1〜N、ただし、j≠i）を、それぞれ他の鍵生成装置１３０＿ｊに送信する。
【０１５７】
・次に、鍵生成装置１３０＿ｉのプロキシ鍵生成部１３３は、他の鍵生成装置１３０＿ｊから、乱数h_jがプロキシ公開鍵ppk_iで暗号化されたENC(ppk_i, h_j)をそれぞれ受信する。
【０１５８】
このようにして、ステップＳ２０４において、鍵生成装置１３０＿ｉのプロキシ鍵生成部１３３は、乱数h_1〜h_Nが、同一のプロキシ公開鍵ppk_iで暗号化された情報ENC(ppk_i, h_1)，…，ENC(ppk_i,h_N)を取得する。
【０１５９】
次に、鍵生成装置１３０＿ｉのプロキシ鍵生成部１３３は、乱数h_1〜h_Nが同一のプロキシ公開鍵ppk_iで暗号化された情報と、ステップＳ２０２で取得した自装置の秘密鍵ssk_iに基づいて、統合用変換鍵暗号化情報ENC(ppk_i,rk-1_i)を生成する（ステップＳ２０５）。ここで、rk-1_iは、統合用変換鍵を表す。
【０１６０】
ここで、前述のように、統合用変換鍵暗号化情報は、統合用変換鍵rk-1_iが、プロキシ公開鍵ppk_iにより暗号化された情報である。また、前述のように、統合用変換鍵rk-1_iは、公開鍵spk_iを用いて暗号化された暗号化データを、統合用秘密鍵により復号可能な統合用再暗号化データに変換するための情報である。
【０１６１】
具体的には、鍵生成装置１３０＿ｉは、次のように動作することにより、統合用変換鍵暗号化情報を生成する。ここでは、統合用変換鍵暗号化情報は、ENC(ppk_i,h_j)=(c_{1,j}, c_{2,j})と記述される。
【０１６２】
・まず、鍵生成装置１３０＿ｉのプロキシ鍵生成部１３３は、C_{1,i}=c_{1,1}(・)…(・)c_{1,N}、C_{2,i}=c_{2,1}(・)…(・)c_{2,N}を計算する。
【０１６３】
・次に、鍵生成装置１３０＿ｉのプロキシ鍵生成部１３３は、C’_{1,i}=C_{1,i}^{1/ssk_i}, C’_{2,i}=C_{2,i}^{1/ssk_i} を計算する。
【０１６４】
・次に、鍵生成装置１３０＿ｉのプロキシ鍵生成部１３３は、(C’_{1,i}, C’_{2,i})を統合用変換鍵暗号化情報ENC(ppk_i,rk-1_i)とする。
【０１６５】
このようにして、ステップＳ２０５において、鍵生成装置１３０＿ｉのプロキシ鍵生成部１３３は、統合用変換鍵暗号化情報ENC(ppk_i,rk-1_i)を生成する。
【０１６６】
次に、鍵生成装置１３０＿ｉのプロキシ鍵生成部１３３は、ステップＳ２０５で生成した統合用変換鍵暗号化情報ENC(ppk_i,rk-1_i)を、プロキシ鍵の一部として、プロキシ装置２３０＿ｉに送信する（ステップＳ２０６）。
【０１６７】
次に、鍵生成装置１３０＿ｉのプロキシ鍵生成部１３３は、ステップＳ２０３で生成した乱数h_iに対して、全体公開鍵gpkを用いてエルガマル暗号の暗号化処理を実行することにより、乱数暗号化情報ENC(gpk, h_i)を計算する（ステップＳ２０７）。
【０１６８】
次に、鍵生成装置１３０＿ｉのプロキシ鍵生成部１３３は、ステップＳ２０７で生成した乱数暗号化情報ENC(gpk, h_i)を、プロキシ鍵の一部として、プロキシ装置２３０＿１〜プロキシ装置２３０＿Ｎにそれぞれ送信する（ステップＳ２０８）。
【０１６９】
次に、プロキシ装置２３０＿ｉの再暗号化部２３１は、ステップＳ２０６で鍵生成装置１３０＿ｉから送信された統合用変換鍵暗号化情報ENC(ppk_i,rk-1_i)に対して、プロキシ秘密鍵psk_iを用いてエルガマル暗号の復号処理を実行する。このことにより、再暗号化部２３１は、統合用変換鍵rk-1_iを得る（ステップＳ２０９）。
【０１７０】
次に、プロキシ装置２３０＿ｉの再暗号化部２３１は、ステップＳ２０８で鍵生成装置１３０＿１〜鍵生成装置１３０＿Ｎからそれぞれ送信された乱数暗号化情報ENC(gpk,h_1)，…，ENC(gpk, h_N)に対して、準同型性を利用した演算を施す。このことにより、再暗号化部２３１は、統合用秘密鍵暗号化情報を生成する（ステップＳ２１０）。
【０１７１】
具体的には、プロキシ装置２３０＿ｉの再暗号化部２３１は、ENC(gpk,h_i)=(c_{1,i}, c_{2,i})として、以下の通り動作する。
【０１７２】
・まず、プロキシ装置２３０＿ｉの再暗号化部２３１は、C_1=c_{1,1}(・)…(・)c_{1,N}、C_2=c_{2,1}(・)…(・)c_{2,N}を計算する。
【０１７３】
・次に、プロキシ装置２３０＿ｉの再暗号化部２３１は、(C_1, C_2) を、統合用秘密鍵暗号化情報ENC(gpk, H)とする。ここで、Hは、統合用秘密鍵を表す。
【０１７４】
以上で、暗号化統計処理システム３はプロキシ鍵生成動作を終了する。
【０１７５】
なお、プロキシ鍵生成動作のステップＳ２０９で得られた統合用変換鍵rk-1_iおよびステップＳ２１０で得られた統合用秘密鍵暗号化情報ENC(gpk,H)は、次に説明する暗号化統計データ生成動作において用いられる。
【０１７６】
次に、暗号化統計処理システム３の暗号化統計データ生成動作について説明する。図１４は、暗号化統計処理システム３の暗号化統計データ生成動作を表す図である。
【０１７７】
図１４では、まず、プロキシ装置２３０＿ｉの再暗号化部２３１は、図１３のプロキシ鍵生成動作により得られたプロキシ鍵の統合用変換鍵rk-1_iおよび統合用秘密鍵暗号化情報ENC(gpk,H)を取得する（ステップＳ３０１）。
【０１７８】
次に、プロキシ装置２３０＿ｉの再暗号化部２３１は、公開鍵spk_iで暗号化された暗号化データの集合{ENC(spk_i, M_{i,j})}（ j = 1 〜 n_i ）を、暗号化データ記憶装置８００＿ｉから取得する（ステップＳ３０２）。
【０１７９】
次に、プロキシ装置２３０＿ｉの再暗号化部２３１は、統合用変換鍵rk-1_iを用いて、暗号化データの集合{ENC(spk_i, M_{i,j})}を、統合用再暗号化データの集合に変換する。
【０１８０】
具体的には、プロキシ装置２３０＿ｉの再暗号化部２３１は、各暗号化データENC(spk_i, M_{i,j})=(c_1, c_2)=({y_i}^r, g^{M_{i,j}}g^{r})に対して、以下の通り再暗号化を実行する。
【０１８１】
・まず、 プロキシ装置２３０＿ｉの再暗号化部２３１は、c_1’=c_1^{rk-1_i}を計算する。
【０１８２】
・次に、プロキシ装置２３０＿ｉの再暗号化部２３１は、(c_1’, c_2)を、統合用再暗号化データENC(gH , M_{i,j}) とする。ここで、gHは、前述の統合用秘密鍵Ｈに対応する統合用公開鍵を表す。すなわち、このようにして計算された(c_1’, c_2)は、統合用秘密鍵Ｈを用いて平文M_{i,j}に復号可能な統合用再暗号化データである。
【０１８３】
このようにして、ステップＳ３０３において、プロキシ装置２３０＿ｉの再暗号化部２３１は、統合用再暗号化データの集合{ENC(gH, M_{i,1})，…，ENC(gH,M_{i,n_i})}を生成する。
【０１８４】
次に、プロキシ装置２３０＿ｉの再暗号化部２３１は、ステップＳ３０３で生成した統合用再暗号化データの集合と、統合用秘密鍵暗号化情報ENC(gpk,H)とを含む情報を、再暗号化データの集合ENC_i(gpk, M)として、暗号化統計データ生成装置３３０に送信する（ステップＳ３０４）。
【０１８５】
具体的には、プロキシ装置２３０＿ｉの再暗号化部２３１は、再暗号化データの集合としてENC_i(gpk,M)＝{ENC(gH, M_{i,1})，…，ENC(gH,M_{i,n_i}), ENC(gpk, H)}を送信すればよい。すなわち、ステップＳ３０３〜Ｓ３０４により、プロキシ装置２３０＿ｉの再暗号化部２３１は、暗号化データの集合{ENC(spk_i, M_{i,j})}を、再暗号化データの集合ENC_i(gpk,M)に変換したことになる。
【０１８６】
次に、暗号化統計データ生成装置３３０の暗号化統計データ生成部３３１は、プロキシ装置２３０＿１〜２３０＿ＮからＮ個の再暗号化データの集合ENC_1(gpk, M)，…，ENC_N(gpk,M)を受信する（ステップＳ３０５）。
【０１８７】
次に、暗号化統計データ生成部３３１は、Ｎ個の再暗号化データの集合に含まれる統合用再暗号化データ対して、準同型性を利用した演算を施すことにより、統合用再暗号化データ演算結果を生成する（ステップＳ３０６）。
【０１８８】
具体的には、暗号化統計データ生成部３３１は、次のように動作してもよい。ただし、ENC_i(gpk,M)に含まれるENC(gH, M_{i,j})を(c_{1,j}, c_{2,j})と記す。
【０１８９】
・まず、暗号化統計データ生成部３３１は、再暗号化データの各集合ENC_i(gpk,M)に対して、C_{1,i}=c_{1,1}(・)…(・)c_{1,n_i}, C_{2,i}=c_{2,1}(・)…(・)c_{2,n_i}を計算する。これにより、Ｎ個の部分暗号化統計データENC_i(gH, S_i)=(C_{1,i}, C_{2,i})が得られる。ここで、部分暗号化統計データENC_i(gH, S_i)は、平文M_{i,1}〜M_{i,n_i}に関する統計情報を統合用秘密鍵Ｈによって復号可能な部分的な暗号化統計情報（部分暗号化統計データ）である。
【０１９０】
・次に、暗号化統計データ生成部３３１は、さらに、C_1=C_{1,1}(・)…(・)C_{1,N}、C_2=C_{2,1}(・)…(・)C_{2,N}を計算する。
【０１９１】
・次に、暗号化統計データ生成部３３１は、(C_1, C_2)を統合用再暗号化データ演算結果ENC(gH, S)とする。すなわち、統合用再暗号化データ演算結果ENC(gH, S)は、統合用秘密鍵Ｈを用いて平文M_{1,1}〜M_{N,n_N}に関する統計情報に復号可能な情報である。このようにして、ステップＳ３０６において、暗号化統計データ生成部３３１は、統合用再暗号化データ演算結果を生成する。
【０１９２】
次に、暗号化統計データ生成部３３１は、統合用再暗号化データ演算結果ENC(gH, S)と、統合用秘密鍵暗号化情報ENC(gpk, H)とを含む情報を暗号化統計データとして、暗号化統計データ記憶装置９００に記憶させる（ステップＳ３０７）。
【０１９３】
このようにして生成された暗号化統計データには、統合用秘密鍵Ｈを用いて平文M_{1,1}〜M_{N,n_N}に関する統計情報に復号可能な統合用再暗号化データ演算結果と、統合用秘密鍵Ｈが全体公開鍵gpkで暗号化された統合用秘密鍵暗号化情報とが含まれている。すなわち、このような再暗号化データの集合は、全体公開鍵に対応する１つ以上の分散復号用秘密鍵により分散復号可能なデータであるといえる。
【０１９４】
以上で、暗号化統計処理システム３は暗号化統計データ生成動作を終了する。
【０１９５】
次に、復号システム４の復号動作について説明する。図１５は、復号システム４の復号動作を表す図である。
【０１９６】
図１５では、まず、分散復号装置４３０＿ｉの分散復号部４３２は、暗号化統計データ記憶装置９００から、暗号化統計データに含まれる統合用秘密鍵暗号化情報ENC(gpk,H)=(C_1, C_2)を受信する（ステップＳ４０１）。
【０１９７】
次に、分散復号装置４３０＿ｉの分散復号部４３２は、自装置の分散復号用秘密鍵dsk_iを用いて、統合用秘密鍵暗号化情報ENC(gpk,H)を部分復号し、部分復号結果を生成する。
【０１９８】
具体的には、分散復号装置４３０＿ｉの分散復号部４３２は、C’_{i,1}=C_1^{1/dsk_i}を計算する。そして、分散復号装置４３０＿ｉの分散復号部４３２は、(C’_{i,1}, C_2)を部分復号結果 PRESULT_iとする。
【０１９９】
次に、分散復号装置４３０＿ｉの分散復号部４３２は、部分復号結果PRESULT_iを、統計情報復号装置５３０に送信する（ステップＳ４０３）。
【０２００】
次に、統計情報復号装置５３０の統計情報復号部５３１は、分散復号装置４３０＿１〜４３０＿Ｌから部分復号結果PRESULT_1〜PRESULT_Lを受信する（ステップＳ４０４）。
【０２０１】
次に、統計情報復号部５３１は、Ｌ個の部分復号結果PRESULT_1〜PRESULT_Lに基づいて、復号結果として統合用秘密鍵Ｈを得る（ステップＳ４０５）。
【０２０２】
具体的には、統計情報復号部５３１は、PRESULT_i=(C’_{i,1}, C_2) として、以下の通り動作する。
【０２０３】
・まず、統計情報復号部５３１は、 C’_1=C’_{1,1}(・)…(・)C’_{N,1}を計算する。
【０２０４】
・次に、統計情報復号部５３１は、M’= C_2/C’_1 を計算する。
【０２０５】
・次に、統計情報復号部５３１は、g^H=M’を満たすHを探索する。得られたHが統合用秘密鍵である。
【０２０６】
次に、統計情報復号部５３１は、暗号化統計データ記憶装置９００から、暗号化統計データに含まれる統合用再暗号化データ演算結果ENC(gH, S)を受信する（ステップＳ４０６）。
【０２０７】
次に、統計情報復号部５３１は、ステップＳ４０５で得られた統合用秘密鍵Ｈを用いて、統合用再暗号化データ演算結果を復号することにより、元のデータに対する統計情報を得る（ステップＳ４０７）。
【０２０８】
具体的には、統計情報復号部５３１は、統合用秘密鍵Ｈを用いて、統合用再暗号化データ演算結果ENC(gH, S)に対して、エルガマル暗号の復号処理を実行する。得られた平文Sを復号結果として出力する。
【０２０９】
以上で、復号システム４は、復号動作を終了する。
【０２１０】
なお、本実施の形態において、暗号化統計データ生成装置３３０の暗号化統計データ生成部３３１は、Ｎ個の再暗号化データの各集合について部分暗号化統計データを求める。そして、暗号化統計データ生成部３３１は、求めたＮ個の部分暗号化統計データに基づいて暗号化統計データを求める。このような部分暗号化統計データを求める処理は、プロキシ装置２３０の再暗号化部２３１が行ってもよい。この場合、再暗号化部２３１は、データ登録装置７００によって暗号化データ記憶装置８００に新たな暗号化データが登録される度に、再暗号化処理および部分暗号化統計データの生成処理を行っておくようにしてもよい。この場合、例えば、プロキシ装置２３０は、このような部分暗号化統計データを、暗号化データ記憶装置８００に記憶しておく。そして、暗号化統計データ生成装置３３０の暗号化統計データ生成部３３１は、これらのN個の部分暗号化統計データから、暗号化統計データを求めるようにしてもよい。あるいは、本実施の形態において、暗号化統計データ生成装置３３０の暗号化統計データ生成部３３１は、再暗号化データのＮ個の集合に含まれる再暗号化データから、部分暗号化統計データを求めることなく、暗号化統計データを求めてもよい。
【０２１１】
また、本実施の形態において、全体公開鍵の生成処理を、分散復号装置４３０が行う例について説明したが、鍵生成装置１３０が全体公開鍵を生成してもよい。あるいは、本実施の形態の暗号化統計処理システムおよび復号システムの内部または外部の任意の装置が、分散復号装置が公開する分散復号用公開鍵に基づいて全体公開鍵を生成し公開してもよい。
【０２１２】
また、本実施の形態において、統合用秘密鍵暗号化情報の生成処理を、プロキシ装置が行う例について説明したが、統合用秘密鍵暗号化情報の生成処理は、例えば、暗号化統計データ生成装置が行ってもよい。
【０２１３】
また、本実施の形態において、エルガマル暗号を適用する例を中心に説明したが、準同型性および再暗号化機能を有するその他の暗号方式も適用可能である。
【０２１４】
次に、本発明の第３の実施の形態の効果について述べる。
【０２１５】
本発明の第３の実施の形態の暗号化統計処理システムには、より多様な暗号方式において、異なる公開鍵を用いて暗号化された暗号化データに対する暗号化したままの統計処理が可能であるという効果がある。
【０２１６】
その理由は、第３の実施の形態の暗号化統計処理システムの各部が以下のように動作するからである。プロキシ鍵生成部が乱数を生成する。プロキシ鍵生成部は、前記公開鍵によって暗号化された暗号化データを、生成した乱数を含む１つ以上の乱数に基づき生成されうる統合用秘密鍵によって復号可能な統合用再暗号化データに変換するための統合用変換鍵を生成する。プロキシ鍵生成部は、生成した統合用変換鍵と、前述の乱数を全体公開鍵により暗号化した乱数暗号化情報とを含む情報を、プロキシ鍵として生成する。そして、再暗号化部が、そのような統合用変換鍵を用いて暗号化データに対する再暗号化を行って統合用再暗号化データを生成する。再暗号化部は、１つ以上の乱数暗号化情報に基づいて、統合用秘密鍵が全体公開鍵で暗号化された情報に相当する統合用秘密鍵暗号化情報を生成する。そして、暗号化統計データ生成部が、１つ以上の異なる公開鍵を用いて暗号化された暗号化データが変換された統合用再暗号化データに対して、準同型性を利用した演算を施す。暗号化統計データ生成部は、その演算結果である統合用再暗号化データ演算結果と、統合用秘密鍵暗号化情報とを含む情報を、暗号化統計データとして生成する。これにより、暗号化統計処理システムが採用する暗号方式の暗号化データから復号システムが採用する暗号方式の暗号化データへの再暗号化が難しい場合にも、以下の効果が得られる。すなわち、異なる公開鍵を用いて暗号化された暗号化データを、同一の統合用秘密鍵を用いて復号可能な統合用再暗号化データに変換することができる。従って、統合用再暗号化データに対して暗号化したまま統計演算を行うことが可能となる。そして、そのようにして得られた統合用再暗号化データ演算結果と、統合用秘密鍵暗号化情報とを含む暗号化統計データは、全体公開鍵で暗号化された情報を復号可能な復号システムにより復号可能である。すなわち、復号システムは、分散復号用秘密鍵を用いて統合用秘密鍵暗号化情報を分散復号することにより統合用秘密鍵を得ることができる。その結果、復号システムは、統合用秘密鍵を用いて統合用再暗号化データ演算結果を復号して統計データを得ることが可能となる。
【０２１７】
また、本発明の第３の実施の形態の復号システムには、暗号化統計データを復号する際に用いる暗号方式として、より多様な暗号方式を適用できると言う効果がある。その暗号化データは、異なる公開鍵を用いて暗号化された暗号化データに対して暗号化したまま統計処理が行われることにより生成されたデータである。
【０２１８】
その理由は、本発明の第３の実施の形態の復号システムの各部が以下のように動作するからである。分散復号部が、暗号化統計データに含まれる統合用秘密鍵暗号化情報を、分散復号用秘密鍵を用いて復号することにより部分復号結果を生成する。統計情報復号部が、１つ以上の部分復号結果に基づく復号結果として統合用秘密鍵を取得する。統計情報復号部は、取得した統合用秘密鍵を用いて、暗号化統計データに含まれる統合用再暗号化データ演算結果を復号する。このことにより、統計情報復号部は、元のデータに関する統計情報を取得する。これにより、本実施の形態の復号システムは、暗号化統計処理システムが採用する暗号方式の暗号化データから復号システムが採用する暗号方式の暗号化データへの再暗号化が難しい場合にも、以下の効果が得られる。すなわち、異なる公開鍵を用いて暗号化された暗号化データが暗号化されたまま統計処理された統合用再暗号化データ演算結果を復号するための統合用秘密鍵を、分散復号して取得することが可能となる。
【０２１９】
なお、上述した本発明の各実施の形態において、鍵生成装置は、公開鍵を用いたサービスを提供するサービス提供者側の装置に適用可能である。この場合、データ登録装置は、サービス提供者側の装置が公開する公開鍵を用いてデータを暗号化して登録するユーザ端末であってもよい。また、プロキシ装置は、サービス提供者によって信頼されうる管理者側の装置に適用可能である。また、暗号化統計データ生成装置は、クラウドデータベースを運営するデータベース管理者側の装置に適用可能である。この場合、暗号化統計データ記憶装置は、クラウドデータベースを実現するために使用される。また、分散復号装置および統計情報復号装置は、統計データを利用したい統計データ利用者側の装置に適用可能である。このように構成することにより、サービス提供者側の装置は、サービスで用いるユーザのデータを、自身が公開する公開鍵を用いて暗号化してクラウドデータベースに保存することができる。そして、クラウドデータベース管理者側の装置は、異なるサービスの異なる公開鍵を用いて暗号化された暗号化データに対して、暗号化したまま統計処理を施してデータベースに記憶させることができる。そして、統計データ利用者側の装置は、そのような暗号化統計データを復号するための分散復号用秘密鍵に関連付けられる分散復号用公開鍵を公開されていれば、そのような暗号化統計データを分散復号することによって統計データを取得することが可能となる。したがって、サービス提供者側の装置は、ユーザのデータの統計情報を提供するために、暗号化データを一旦復号して統計データを算出する処理を行う必要がない。その結果、サービス提供者側の装置の負荷が軽減される。さらに、サービス提供者側の装置が、暗号化データを一旦復号する必要がないので、ユーザのデータの漏洩防止対策が必要ない。また、クラウドデータベース側の装置は、そのような統計データの算出処理を、暗号化データを元のデータに復号することなく行うことができる。その結果、クラウドデータベース管理者に対して元のデータが漏洩することもない。
【０２２０】
また、上述した本発明の各実施の形態の説明において、暗号化統計処理システムおよび復号システムの各機能ブロックは、異なる装置（すなわち、鍵生成装置、プロキシ装置、暗号化統計データ生成装置、分散復号装置、および、統計情報復号装置）に分散されていた。しかし、これらの機能ブロックは、１つのコンピュータ装置によって構成されていてもよい。あるいは、これらの機能ブロックは、本発明の各実施の形態とは異なる組み合わせで複数の装置に分散されていてもよい。
【０２２１】
例えば、Ｎ個の鍵生成装置の少なくとも一部または全部が、同一のコンピュータ装置によって実現されていてもよい。また、Ｎ個のプロキシ装置の少なくとも一部または全部のが、同一のコンピュータ装置によって実現されていてもよい。また、Ｌ個の分散復号装置の少なくとも一部または全部が、同一のコンピュータ装置によって実現されていてもよい。また、統計情報復号装置は、いずれかの分散復号装置と同一のコンピュータ装置によって実現されていてもよい。また、Ｎ個の暗号化データ記憶装置の少なくとも一部または全部が、同一のコンピュータ装置によって実現されていてもよい。また、Ｎ個の暗号化データ記憶装置の少なくとも一部または全部が、物理的に同一の記憶装置によって実現されていてもよい。また、暗号化統計処理システムの少なくとも一部の機能ブロックと、復号システムの少なくとも一部の機能ブロックとが同一のコンピュータ装置に配置されてもよい。また、暗号化統計処理システムが１つのコンピュータ装置によって実現され、復号システムが１つのコンピュータ装置によって実現されていてもよい。
【０２２２】
また、上述した本発明の各実施の形態において、各フローチャートを参照して説明した各装置の動作を、本発明のコンピュータプログラムとしてコンピュータ装置の記憶装置（記憶媒体）に格納しておき、係るコンピュータプログラムを当該ＣＰＵが読み出して実行するようにしてもよい。そして、このような場合において、本発明は、係るコンピュータプログラムのコードあるいはそのコードが格納された記憶媒体によって実現される。
【０２２３】
また、本発明の一実施形態において、本発明の復号システムは、分散復号用公開鍵および分散復号用秘密鍵を保持する分散復号用鍵保持手段と、１つ以上の前記分散復号用秘密鍵によって分散復号可能な暗号化情報を生成する全体公開鍵を用いて前記暗号化統計処理システムによって生成される暗号化統計データを、前記分散復号用秘密鍵を用いて部分復号することにより部分復号結果を出力する分散復号手段と、１つ以上の前記分散復号手段によって得られた部分復号結果に基づいて、１つ以上の前記暗号化データが暗号化される前の元のデータに関する前記統計情報を取得する統計情報復号手段と、を備える。
【０２２４】
また、本発明の一実施形態において、本発明のプロキシ装置は、前記鍵生成装置によって生成されたプロキシ鍵を用いて、前記公開鍵により暗号化された暗号化データを、前記再暗号化データに変換する再暗号化手段を備える。
【０２２５】
また、本発明の一実施形態において、本発明の暗号化統計データ生成装置は、１つ以上の前記鍵生成装置に保持される前記公開鍵によりそれぞれ暗号化された１つ以上の暗号化データが、前記１つ以上の鍵生成装置にそれぞれ対応する１つ以上の前記プロキシ装置によってそれぞれ変換された１つ以上の前記再暗号化データに対して、前記準同型性を利用した演算を施すことにより、１つ以上の前記暗号化データが暗号化される前の元のデータに関する統計情報に復号可能な暗号化統計データを生成する暗号化統計データ生成手段を備える。
【０２２６】
また、本発明の一実施形態において、本発明の復号方法は、前記暗号化統計処理方法が実行されることにより生成される暗号化統計データを、前記分散復号用秘密鍵を用いて部分復号することにより部分復号結果を出力し、１つ以上の前記部分復号結果に基づいて、１つ以上の前記暗号化データが暗号化される前の元のデータに関する前記統計情報を取得する。
【０２２７】
また、上述した各実施の形態は、適宜組み合わせて実施されることが可能である。
【０２２８】
また、本発明は、上述した各実施の形態に限定されず、様々な態様で実施されることが可能である。
【０２２９】
以上、実施形態を参照して本願発明を説明したが、本願発明は上記実施形態に限定されものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
【０２３０】
また、上述した各実施の形態の一部又は全部は、以下の付記のようにも記載されうるが、以下には限られない。
【０２３１】
（付記１）
準同型性を有する暗号方式の公開鍵および秘密鍵を保持する鍵保持手段と、
１つ以上の分散復号用秘密鍵によって分散復号可能な暗号化情報を生成する全体公開鍵を取得する全体公開鍵取得手段と、
前記公開鍵を用いて暗号化された暗号化データを、前記１つ以上の分散復号用秘密鍵によって分散復号可能な再暗号化データに変換するプロキシ鍵を、前記秘密鍵と、前記全体公開鍵とに基づいて生成するプロキシ鍵生成手段と、
前記プロキシ鍵を用いて、前記公開鍵により暗号化された暗号化データを、前記再暗号化データに変換する再暗号化手段と、
１つ以上の前記公開鍵によりそれぞれ暗号化された１つ以上の暗号化データが前記再暗号化手段によりそれぞれ変換された１つ以上の前記再暗号化データに対して、前記準同型性を利用した演算を施すことにより、１つ以上の前記暗号化データが暗号化される前の元のデータに関する統計情報に復号可能な暗号化統計データを生成する暗号化統計データ生成手段と、
を備えた暗号化統計処理システム。
【０２３２】
（付記２）
前記プロキシ鍵生成手段は、乱数を生成することにより、前記公開鍵によって暗号化された暗号化データを、１つ以上の前記乱数に基づき生成されうる統合用秘密鍵によって復号可能な統合用再暗号化データに変換する統合用変換鍵を、前記１つ以上の乱数および前記秘密鍵に基づいて生成し、生成した統合用変換鍵と、前記乱数を前記全体公開鍵により暗号化した乱数暗号化情報とを含む情報を、前記プロキシ鍵として生成し、
前記再暗号化手段は、前記統合用変換鍵を用いて前記暗号化データを前記統合用再暗号化データに変換するとともに、１つ以上の前記乱数暗号化情報に基づいて、前記統合用秘密鍵が前記全体公開鍵で暗号化された統合用秘密鍵暗号化情報を生成し、前記統合用再暗号化データと、前記統合用秘密鍵暗号化情報とを含む情報を、前記再暗号化データとして生成し、
前記暗号化統計データ生成手段は、１つ以上の前記再暗号化データに含まれる前記統合用再暗号化データに対して前記準同型性を利用した演算を施した結果である統合用再暗号化データ演算結果と、前記統合用秘密鍵暗号化情報とを含む情報を、前記暗号化統計データとして生成することを特徴とする付記１に記載の暗号化統計処理システム。
【０２３３】
（付記３）
前記再暗号化手段は、プロキシ公開鍵およびプロキシ秘密鍵を保持し、
前記プロキシ鍵生成手段は、前記プロキシ公開鍵を用いて前記１つ以上の乱数がそれぞれ暗号化された情報と、前記秘密鍵とに基づいて、前記プロキシ秘密鍵を用いて前記統合用変換鍵に復号可能な統合用変換鍵暗号化情報を生成することにより、前記統合用変換鍵暗号化情報および前記乱数暗号化情報を含む情報を、前記プロキシ鍵として生成し、
前記再暗号化手段は、前記プロキシ鍵に含まれる前記統合用変換鍵暗号化情報を、前記プロキシ秘密鍵を用いて復号することにより前記統合用変換鍵を取得し、取得した統合用変換鍵を用いて、前記暗号化データを前記統合用再暗号化データに変換することを特徴とする付記２に記載の暗号化統計処理システム。
【０２３４】
（付記４）
分散復号用公開鍵および分散復号用秘密鍵を保持する分散復号用鍵保持手段と、
１つ以上の前記分散復号用秘密鍵によって分散復号可能な暗号化情報を生成する全体公開鍵を用いて付記１から付記３のいずれか１つに記載の暗号化統計処理システムによって生成される暗号化統計データを、前記分散復号用秘密鍵を用いて部分復号することにより部分復号結果を出力する分散復号手段と、
１つ以上の前記分散復号手段によって得られた部分復号結果に基づいて、１つ以上の前記暗号化データが暗号化される前の元のデータに関する前記統計情報を取得する統計情報復号手段と、
を備えた復号システム。
【０２３５】
（付記５）
前記暗号化統計処理システムによって生成された前記暗号化統計データに前記統合用秘密鍵暗号化情報が含まれるとき、
前記分散復号手段は、前記統合用秘密鍵暗号化情報を、前記分散復号用秘密鍵を用いて復号することにより前記部分復号結果を生成し、
前記統計情報復号手段は、１つ以上の前記部分復号結果に基づく復号結果として前記統合用秘密鍵を取得し、取得した統合用秘密鍵を用いて前記暗号化統計データに含まれる前記統合用再暗号化データ演算結果を復号することにより、前記元のデータに関する前記統計情報を取得することを特徴とする付記４に記載の復号システム。
【０２３６】
（付記６）
準同型性を有する暗号方式の公開鍵および秘密鍵を保持する鍵保持手段と、
１つ以上の分散復号用秘密鍵によって分散復号可能な暗号化情報を生成する全体公開鍵を取得する全体公開鍵取得手段と、
前記公開鍵を用いて暗号化された暗号化データを、前記１つ以上の分散復号用秘密鍵によって分散復号可能な再暗号化データに変換するプロキシ鍵を、前記秘密鍵と、前記全体公開鍵とに基づいて生成するプロキシ鍵生成手段と、
を備えた鍵生成装置。
【０２３７】
（付記７）
付記６に記載の鍵生成装置によって生成されたプロキシ鍵を用いて、前記公開鍵により暗号化された暗号化データを、前記再暗号化データに変換する再暗号化手段を備えたプロキシ装置。
【０２３８】
（付記８）
１つ以上の付記６に記載の鍵生成装置に保持される前記公開鍵によりそれぞれ暗号化された１つ以上の暗号化データが、前記１つ以上の鍵生成装置にそれぞれ対応する１つ以上の付記７に記載のプロキシ装置によってそれぞれ変換された１つ以上の前記再暗号化データに対して、前記準同型性を利用した演算を施すことにより、１つ以上の前記暗号化データが暗号化される前の元のデータに関する統計情報に復号可能な暗号化統計データを生成する暗号化統計データ生成手段を備えた暗号化統計データ生成装置。
【０２３９】
（付記９）
分散復号用公開鍵および分散復号用秘密鍵を保持する分散復号用鍵保持手段と、
自装置に保持される前記分散復号用秘密鍵を含む１つ以上の前記分散復号用秘密鍵を用いて分散復号可能な暗号化情報を生成する全体公開鍵を用いて付記１から付記３のいずれか１つに記載の暗号化統計処理システムによって生成される暗号化統計データを、前記分散復号用秘密鍵を用いて部分復号することにより部分復号結果を出力する分散復号手段と、
を備えた分散復号装置。
【０２４０】
（付記１０）
１つ以上の付記９に記載の分散復号装置によってそれぞれ得られた前記部分復号結果に基づいて、１つ以上の前記暗号化データが暗号化される前の元のデータに関する前記統計情報を取得する統計情報復号手段を備えた統計情報復号装置。
【０２４１】
（付記１１）
１つ以上の分散復号用秘密鍵によって分散復号可能な暗号化情報を生成する全体公開鍵を取得し、
準同型性を有する暗号方式の公開鍵を用いて暗号化された暗号化データを、前記１つ以上の分散復号用秘密鍵によって分散復号可能な再暗号化データに変換するプロキシ鍵を、前記公開鍵に対応する秘密鍵と、前記全体公開鍵とに基づいて生成し、
前記プロキシ鍵を用いて、前記公開鍵により暗号化された暗号化データを、前記再暗号化データに変換し、
１つ以上の前記公開鍵によりそれぞれ暗号化された１つ以上の暗号化データがそれぞれ変換された１つ以上の前記再暗号化データに対して、前記準同型性を利用した演算を施すことにより、１つ以上の前記暗号化データが暗号化される前の元のデータに関する統計情報に復号可能な暗号化統計データを生成する、暗号化統計処理方法。
【０２４２】
（付記１２）
付記１１に記載の暗号化統計処理方法が実行されることにより生成される暗号化統計データを、前記分散復号用秘密鍵を用いて部分復号することにより部分復号結果を出力し、
１つ以上の前記部分復号結果に基づいて、１つ以上の前記暗号化データが暗号化される前の元のデータに関する前記統計情報を取得する、復号方法。
【０２４３】
（付記１３）
コンピュータを、
１つ以上の分散復号用秘密鍵によって分散復号可能な暗号化情報を生成する全体公開鍵を取得する全体公開鍵取得手段と、
準同型性を有する暗号方式の公開鍵を用いて暗号化された暗号化データを、前記１つ以上の分散復号用秘密鍵によって分散復号可能な再暗号化データに変換するプロキシ鍵を、前記公開鍵に対応する秘密鍵と、前記全体公開鍵とに基づいて生成するプロキシ鍵生成手段と、
前記プロキシ鍵を用いて、前記公開鍵により暗号化された暗号化データを、前記再暗号化データに変換する再暗号化手段と、
１つ以上の前記公開鍵によりそれぞれ暗号化された１つ以上の暗号化データがそれぞれ変換された１つ以上の前記再暗号化データに対して、前記準同型性を利用した演算を施すことにより、１つ以上の前記暗号化データが暗号化される前の元のデータに関する統計情報に復号可能な暗号化統計データを生成する暗号化統計データ生成手段と、
として動作させる暗号化統計処理プログラム。
【０２４４】
（付記１４）
コンピュータを、
付記１３に記載の暗号化統計処理プログラムが実行されることにより生成される暗号化統計データを、前記分散復号用秘密鍵を用いて部分復号することにより部分復号結果を出力する分散復号手段と、
１つ以上の前記部分復号結果に基づいて、１つ以上の前記暗号化データが暗号化される前の元のデータに関する前記統計情報を取得する統計情報復号手段と、
として動作させる復号プログラム。
【０２４５】
この出願は、２０１２年７月１２日に出願された日本出願特願２０１２−１５６０４１を基礎とする優先権を主張し、その開示の全てをここに取り込む。
【符号の説明】
【０２４６】
１、３    暗号化統計処理システム
２、４    復号システム
１００、１３０    鍵生成装置
１０１    鍵保持部
１０２    全体公開鍵取得部
１０３、１３３    プロキシ鍵生成部
２００、２３０    プロキシ装置
２０１、２３１    再暗号化部
２３２    プロキシ鍵保持部
３００、３３０    暗号化統計データ生成装置
３０１、３３１    暗号化統計データ生成部
４００、４３０    分散復号装置
４０１    分散復号用鍵保持部
４０２、４３２    分散復号部
５００、５３０    統計情報復号装置
５０１、５３１    統計情報復号部
７００    データ登録装置
８００    暗号化データ記憶装置
９００    暗号化統計データ記憶装置
【図１】
2014010202.tif 000003
【図２】
2014010202.tif 000004
【図３】
2014010202.tif 000005
【図４】
2014010202.tif 000006
【図５】
2014010202.tif 000007
【図６】
2014010202.tif 000008
【図７】
2014010202.tif 000009
【図８】
2014010202.tif 000010
【図９】
2014010202.tif 000011
【図１０】
2014010202.tif 000012
【図１１】
2014010202.tif 000013
【図１２】
2014010202.tif 000014
【図１３】
2014010202.tif 000015
【図１４】
2014010202.tif 000016
【図１５】
2014010202.tif 000017
【国際調査報告】
2014010202.tif 000018
2014010202.tif 000019