(57)【要約】【課題】再暗号化処理の処理時間を短縮することを課題とする。【解決手段】暗号化サーバは、第１のユーザの秘密鍵および公開鍵の組み合わせと暗号化対象のデータとを用いて算出される補助情報が付加された、第１のユーザの公開鍵を用いて暗号化された暗号化データを受信する。そして、暗号化サーバは、暗号化データに付加される補助情報と、第２のユーザの公開鍵と、第２のユーザの公開鍵で暗号化された第１のユーザの秘密鍵に関する暗号化情報とを用いて、暗号化データを再暗号化した再暗号化データを生成する。【選択図】図２
2015184490.tif 000002
【特許請求の範囲】
【請求項１】
第１のユーザの秘密鍵および公開鍵の組み合わせと暗号化対象のデータとを用いて算出される補助情報が付加された、前記第１のユーザの公開鍵を用いて暗号化された暗号化データを受信する受信部と、
前記暗号化データに付加される補助情報と、第２のユーザの公開鍵と、前記第２のユーザの公開鍵で暗号化された前記第１のユーザの秘密鍵に関する暗号化情報とを用いて、前記暗号化データを再暗号化した再暗号化データを生成する生成部と
を有することを特徴とする暗号化装置。
【請求項２】
前記第１のユーザの公開鍵および共通鍵と、前記第２のユーザの公開鍵および共通鍵は、格子次元を表す第１パラメータと、任意の素数である第２パラメータと、第２パラメータより小さい任意の素数である第３パラメータとを有する鍵パラメータで生成され、前記第２のユーザに対応する第２パラメータは、前記第１のユーザに対応する第２パラメータよりも大きい素数であることを特徴とする請求項１に記載の暗号化装置。
【請求項３】
コンピュータが、
第１のユーザの秘密鍵および公開鍵の組み合わせと暗号化対象のデータとを用いて算出される補助情報が付加された、前記第１のユーザの公開鍵を用いて暗号化された暗号化データを受信し、
前記補助情報と、第２のユーザの公開鍵と、前記第２のユーザの公開鍵で暗号化された前記第１のユーザの秘密鍵の暗号化情報とを用いて、前記暗号化データを再暗号化した再暗号化データを生成する
処理を含んだことを特徴とする暗号化方法。
【請求項４】
第１のユーザの公開鍵を用いてデータを暗号化する暗号化部と、
前記第１のユーザの秘密鍵と公開鍵の組み合わせと、暗号化前の前記データとを用いて補助情報を算出する算出部と、
前記暗号化部によって生成された暗号化データに、前記算出部によって算出された前記補助情報を付加して、暗号化装置に送信する送信部と
を有することを特徴とする情報処理装置。
【請求項５】
第１のユーザが利用する第１の情報処理装置と、第２のユーザが利用する第２の情報処置装置と、暗号化装置とを有する暗号化システムにおいて、
前記第１の情報処理装置は、
前記第１のユーザの公開鍵を用いてデータを暗号化する暗号化部と、
前記第１のユーザの秘密鍵と公開鍵の組み合わせと、暗号化前の前記データとを用いて補助情報を算出する算出部と、
前記暗号化部によって生成された暗号化データに、前記算出部によって算出された前記補助情報を付加して、暗号化サーバ装置に送信する送信部とを有し、
前記暗号化装置は、
前記補助情報が付加された前記暗号化データを受信する受信部と、
前記補助情報と、前記第２のユーザの公開鍵と、前記第２のユーザの公開鍵で暗号化された前記第１のユーザの秘密鍵に関する暗号化情報とを用いて、前記暗号化データを再暗号化した再暗号化データを生成する生成部とを有し、
前記第２の情報処理装置は、
前記暗号化装置から前記再暗号化データを取得する取得部と、
前記取得部によって取得された前記再暗号化データを、前記第２のユーザの秘密鍵で復号する復号化部と
を有することを特徴とする暗号化システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、暗号化装置、暗号化方法、情報処理装置および暗号化システムに関する。
【背景技術】
【０００２】
現在、個人情報や機密情報を保護する規制が強化される一方で、それらの情報を利用したサービスの市場が拡大しつつある。また、個人情報や機密情報を保護したままデータの利活用ができる秘匿化技術が利用されている。秘匿化技術の中には、データ種別やサービス要件に応じて、暗号技術や統計技術を使った技術がある。
【０００３】
暗号技術を用いた秘匿化技術として準同型暗号技術が知られている。準同型暗号技術は、暗号化と復号とで一対の異なる鍵を用いる公開鍵暗号方式の１つであり、暗号化したままデータを操作できる暗号技術である。例えば、平文ｍ１及びｍ２に対して、加算又は乗法に関する準同型暗号方式の暗号化関数をＥとすると、以下の式（１）又は（２）の性質が成り立つ。
（１）Ｅ（ｍ１）＋Ｅ（ｍ２）＝Ｅ（ｍ１＋ｍ２）
（２）Ｅ（ｍ１）＊Ｅ（ｍ２）＝Ｅ（ｍ１＊ｍ２）
（１）式が成り立つものを加算について準同型と呼び、（２）式が成り立つものを乗算について準同型と呼ぶ。
【０００４】
準同型暗号方式を用いれば、暗号文の加算や乗算により、暗号文を復号することなく、加算や乗算を行った演算結果の暗号文を得ることができる。この準同型暗号の性質は、電子投票や電子現金などの分野やクラウドコンピューティング分野において利用される。なお、準同型暗号方式としては、乗算に利用されるＲＳＡ（Rivest  Shamir  Adleman）暗号方式や加算に利用されるAdditive  ElGamal暗号方式が代表的である。
【０００５】
近年では、加算と乗算の両方に利用することができる準同型暗号方式が知られており、加算と乗算の両方に利用でき、かつ、処理性能と暗号データサイズの両面で実用的な準同型暗号方式も知られている。
【０００６】
ここで、一例として準同型暗号方式について説明する。まず、暗号鍵生成について、主に３つの鍵生成パラメータ（ｎ，ｑ，ｔ）を用意する。ｎは２冪の整数で格子次元と呼ばれ、ｑは素数、ｔは素数ｑよりも小さい整数とする。暗号鍵生成の手順としては、まず秘密鍵として各係数が非常に小さいｎ次元の多項式ｓｋをランダムに生成する。なお、各係数の小ささは、あるパラメータσで制限される。次に、各係数がｑより小さいｎ次元多項式ａ１と各係数が非常に小さいｎ次元多項式ｅをランダムに生成する。
【０００７】
そこで、ａ０＝−（ａ１＊ｓｋ＋ｔ＊ｅ）を計算し、組（ａ０，ａ１）を公開鍵ｐｋと定義する。但し、ａ０の多項式計算時において、ｎ次以上の多項式に対してｘｎ＝−１，ｘｎ＋１＝−ｘ，．．．と計算することで、絶えずｎ次より小さい多項式を計算する。さらに、多項式の係数については、素数ｑで割った余りを出力する。なお、このような演算を行う空間を、学術的にはＲｑ：＝Ｆｑ［ｘ］／（ｘｎ＋１）と表すことが多い。
【０００８】
次に、各係数がｔより小さいｎ次多項式で表される平文データｍと公開鍵ｐｋ＝（ａ０，ａ１）に対して、各係数が非常に小さい３つのｎ次元多項式ｕ，ｆ，ｇをランダムに生成し、平文データｍの暗号データＥ（ｍ，ｐｋ）＝（ｃ０，ｃ１）を次のように定義する。（ｃ０，ｃ１）については、ｃ０＝ａ０＊ｕ＋ｔ＊ｇ＋ｍ、ｃ１＝ａ１＊ｕ＋ｔ＊ｆと計算する。なお、これらの計算も空間Ｒｑ上での演算を行う。
【０００９】
そして、２つの暗号文Ｅ（ｍ１，ｐｋ）＝（ｃ０，ｃ１）と、Ｅ（ｍ２，ｐｋ）＝（ｄ０，ｄ１）に対して、暗号加算Ｅ（ｍ１，ｐｋ）＋Ｅ（ｍ２，ｐｋ）を（ｃ０＋ｄ０，ｃ１＋ｄ１）と計算し、暗号乗算Ｅ（ｍ１，ｐｋ）＊Ｅ（ｍ２，ｐｋ）を（ｃ０＋ｄ０，ｃ０＊ｄ１＋ｃ１＊ｄ０，ｃ１＊ｄ１）と計算する。このように暗号乗算を行うと、暗号文のデータサイズが２成分ベクトルから３成分ベクトルになることに注意する。
【００１０】
最後に、復号処理であるが、暗号文ｃ＝（ｃ０，ｃ１，ｃ２，．．．）に対して（ここでは複数の暗号乗算などの暗号操作により暗号文データの成分が増大したと仮定している）、秘密鍵ｓｋを用いてＤｅｃ（ｃ，ｓｋ）＝［ｃ０＋ｃ１＊ｓｋ＋ｃ２＊ｓｋ2＋・・・］ｑ  ｍｏｄ  ｔを計算することで、復号する。ここで、［ｚ］ｑの値は、整数ｚをｑで割った余りｗを計算し、ｗ＜ｑならば［ｚ］ｑ＝ｗを出力し、ｗ≧ｑの場合には［ｚ］ｑ＝ｗ−ｑを出力する。さらに、ａ  ｍｏｄ  ｔは整数ａをｔで割った余りを意味する。
【００１１】
以下、分かりやすくするために数値例を示しておく。
秘密鍵ｓｋ＝Mod（Mod（4，1033）＊ｘ3＋Mod（4，1033）＊ｘ2＋Mod（1，1033）*ｘ，ｘ4＋１）
公開鍵ｐｋ＝（ａ０，ａ１）
ａ０＝Mod（Mod（885，1033）＊ｘ3＋Mod（519，1033）＊ｘ2＋Mod（621，1033）＊ｘ＋Mod（327，1033），ｘ4＋１）
ａ１＝Mod（Mod（661，1033）＊ｘ3＋Mod（625，1033）＊ｘ2＋Mod（861，1033）＊ｘ＋Mod（311，1033），ｘ4＋１）
Ｅ（ｍ，ｐｋ）＝（ｃ０，ｃ１）
平文データｍ＝３＋２ｘ＋２ｘ2＋２ｘ3とする。
ｃ０＝Mod（Mod（822，1033）＊ｘ3＋Mod（1016，1033）＊ｘ2＋Mod（292，1033）＊ｘ＋Mod（243，1033），ｘ4＋１）
ｃ１＝Mod（Mod（840，1033）＊ｘ3＋Mod（275，1033）＊ｘ2＋Mod（628，1033）＊ｘ＋Mod（911，1033），ｘ4＋１）
【００１２】
なお、上記値において、鍵生成パラメータ（ｎ，ｑ，ｔ）については、（４，１０３３，２０）と設定した。さらに、Mod（ａ，ｑ）は整数ａを素数ｑで割った余りを意味し、Mod（ｆ（ｘ），ｘ４＋１）は多項式ｆ（ｘ）を多項式ｘ4＋１で割った余りの多項式を意味する。但し、ｘ４＝−１、ｘ５＝ｘ，．．．などを意味するものとする。
【００１３】
上述した準同型暗号方式を秘匿計算に利用した場合、データを提供する各ユーザは、データを分析する分析者が生成した共通の公開鍵を用いてデータを暗号化し、暗号化データを分析装置に格納する。分析装置は、暗号化データを暗号化されたままで分析する。分析者は、分析装置によって分析されたデータを自身の秘密鍵で復号することで、分析結果を得る。
【００１４】
また、クラウドコンピューティングの普及により、秘匿計算における暗号化データを複数の分析者が共有で利用することもあり、暗号鍵を付け替える再暗号化を用いた秘匿計算が普及している。
【００１５】
例えば、データを提供する各ユーザは、自身の公開鍵で暗号化した暗号化データを分析装置に格納する。分析装置は、分析者の公開鍵で暗号化された各ユーザの秘密鍵を用いて、暗号化データを分析者用の鍵に付け替える、すなわち、再暗号する。分析装置は、分析者の鍵で再暗号化された暗号化データを暗号化されたままで分析する。分析者は、分析装置によって分析されたデータを自身の秘密鍵で復号することで、分析結果を得る。
【先行技術文献】
【特許文献】
【００１６】
【特許文献１】特開２００８−１７６１９３号公報
【特許文献２】特開２０１２−２２０８３４号公報
【特許文献３】特開２０１２−２３７８８１号公報
【非特許文献】
【００１７】
【非特許文献１】C.  Gentry,  “Fully  Homomorphic  encryption  using  ideal  lattices”,  STOC  2009，ACM，pp.169−178，  2009．
【非特許文献２】K.  Lauter，M．Naehrig  and  V．Vaikuntanathan，  “Can  Homomorphic  Encryption  be  Practical？”，In  ACM  workshop  on  Cloud  Computing  Security  Workshop−CCSW  2011，  ACM，  pp.113−124，2011．
【発明の概要】
【発明が解決しようとする課題】
【００１８】
しかしながら、上記準同型暗号方式における再暗号化処理では、複雑な暗号化処理や復号化処理が多いこともあり、処理に時間がかかる。例えば、クラウドシステム上などに設置される分析装置では、別の暗号鍵で暗号化されたデータをそのままの状態で分析した後、分析者の暗号鍵でさらに暗号化するので、データに対する各処理を暗号化されたまま状態で実行することになり、処理コストがかかる。
【００１９】
１つ側面では、再暗号化処理の処理時間を短縮できる暗号化装置、暗号化方法、情報処理装置および暗号化システムを提供することを目的とする。
【課題を解決するための手段】
【００２０】
第１の案では、暗号化装置は、第１のユーザの秘密鍵および公開鍵の組み合わせと暗号化対象のデータとを用いて算出される補助情報が付加された、前記第１のユーザの公開鍵を用いて暗号化された暗号化データを受信する受信部を有する。暗号化装置は、前記暗号化データに付加される補助情報と、第２のユーザの公開鍵と、前記第２のユーザの公開鍵で暗号化された前記第１のユーザの秘密鍵に関する暗号化情報とを用いて、前記暗号化データを再暗号化した再暗号化データを生成する生成部を有する。
【発明の効果】
【００２１】
１実施形態によれば、再暗号化処理の処理時間を短縮できる。
【図面の簡単な説明】
【００２２】
【図１】図１は、実施例１に係るシステムの全体構成例を示す図である。
【図２】図２は、実施例１に係る各装置の機能構成を示す機能ブロック図である。
【図３】図３は、実施例１に係るシステムが実行する処理のシーケンス図である。
【図４】図４は、実施例１に係る再暗号化を説明する図である。
【図５】図５は、ハードウェア構成例を示す図である。
【発明を実施するための形態】
【００２３】
以下に、本願の開示する暗号化装置、暗号化方法、情報処理装置および暗号化システムの実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。
【実施例１】
【００２４】
［全体構成図］
図１は、実施例１に係るシステムの全体構成例を示す図である。図１に示すように、このシステムは、ユーザ端末１０、ユーザ端末２０、分析者端末３０、暗号化サーバ４０を有するクラウドコンピューティングを用いた暗号化システムである。なお、図１に示す装置の台数等は、例示であり、図示したものに限定されない。
【００２５】
ユーザ端末１０およびユーザ端末２０は、演算データや測定データなどの平文を暗号化した暗号化データを生成して暗号化サーバ４０に格納する端末であり、例えばパーソナルコンピュータ、汎用サーバ、スマートフォンなどである。
【００２６】
分析者端末３０は、ユーザ端末１０やユーザ端末２０が生成した暗号化データを用いた分析処理を暗号化サーバ４０に要求し、分析結果を暗号化サーバ４０から取得する装置であり、例えばパーソナルコンピュータ、汎用サーバ、スマートフォンなどである。分析の例としては、様々な処理を適用することができるが、例えば暗号化データの加算や乗算などが挙げられる。
【００２７】
暗号化サーバ４０は、各ユーザ端末や分析者端末３０がアクセス可能なクラウドシステム５上に設置されるサーバ装置である。暗号化サーバ４０は、各ユーザ端末が生成した暗号化データを分析者の鍵で再暗号化し、再暗号化したデータを暗号化したまま分析する。
【００２８】
このようなシステムにおいて、各ユーザ端末は、自身の公開鍵を用いて暗号化された暗号化データを暗号化サーバ４０に送信する。このとき、各ユーザ端末は、自身の秘密鍵と公開鍵の組み合わせと、暗号化データの暗号前のデータとを用いて算出される補助情報を暗号化データに付加して暗号化サーバ４０に送信する。また、各ユーザ端末は、自身の秘密鍵を分析者端末３０の公開鍵で暗号化した暗号化情報を暗号化サーバ４０に送信する。
【００２９】
暗号化サーバ４０は、分析者端末３０から分析要求を受信すると、各ユーザ端末から取得した各暗号化データを分析者の公開鍵で再暗号化する。すなわち、暗号化サーバ４０は、各暗号化データの付加されている各補助情報と、分析者端末３０の公開鍵と、各ユーザ端末から取得した暗号化情報とを用いて、各暗号化データの再暗号化を実行する。続いて、暗号化サーバ４０は、再暗号化データを暗号化したまま分析して、分析再暗号化データを生成する。その後、分析者端末３０は、暗号化サーバ４０が生成した分析再暗号化データを取得し、自身の秘密鍵で復号して、分析結果を得る。
【００３０】
このように、各ユーザ端末は、データを暗号化する際に、再暗号化する際に用いる補助情報を生成し、暗号化データとともに補助情報を暗号化サーバ４０に送信する。暗号化サーバ４０は、暗号化データを再暗号化する際に、補助情報を用いて再暗号化する。この結果、再暗号化処理を簡略化でき、再暗号化処理の処理時間を短縮できる。
【００３１】
［装置の構成］
次に、図１に示したシステムを構成する各装置の機能構成について説明する。ここでは、ユーザ端末１０、分析者端末３０、暗号化サーバ４０について具体的に説明する。図２は、実施例１に係る各装置の機能構成を示す機能ブロック図である。なお、ユーザ端末２０は、ユーザ端末１０と同様の構成を有するので、詳細な説明は省略する。
【００３２】
（ユーザ端末の機能構成）
図２に示すように、ユーザ端末１０は、通信処理部１１、鍵情報ＤＢ１２、鍵配信部１３、暗号処理部１４、補助情報生成部１５、送信部１６を有する。なお、鍵配信部１３、暗号処理部１４、補助情報生成部１５、送信部１６は、プロセッサが実行するプロセスや電子回路が有する回路の一例である。
【００３３】
通信処理部１１は、クラウドシステム５上の暗号化サーバ４０との通信を制御する処理部であり、例えばネットワークインタフェースカードなどである。例えば、通信処理部１１は、暗号化データや補助情報を暗号化サーバ４０に送信する。また、通信処理部１１は、暗号化サーバ４０との間でＷｅｂセッションなどを確立して、各種データの送受信を実行する。
【００３４】
鍵情報ＤＢ１２は、ユーザ端末１０を使用するユーザの公開鍵および秘密鍵を記憶するデータベースである。例えば、鍵情報ＤＢ１２は、鍵パラメータ（ｎ，ｑ１，ｔ）で生成された公開鍵ｐｋ１および秘密鍵ｓｋ１を格納する。なお、鍵情報ＤＢ１２は、ハードディスクや半導体メモリ等の記憶装置に格納される。
【００３５】
鍵配信部１３は、鍵情報ＤＢ１２に記憶される秘密鍵を、分析者端末３０の公開鍵で暗号化した暗号化情報を生成し、生成した暗号化情報を暗号化サーバ４０に送信する処理部である。例えば、鍵配信部１３は、分析者の公開鍵ｐｋで暗号化された秘密鍵ｓｋ１の暗号化情報Ｅ（ｓｋ１，ｐｋ）＝（ｃ０´，ｃ１´）を生成して、暗号化サーバ４０に送信する。なお、分析者の公開鍵ｐｋおよび秘密鍵ｓｋは、所定の秘匿計算が可能な鍵であり、鍵パラメータ（ｎ，ｑ，ｔ）で生成されたものとする。ここで、ｑ＞ｑ１とする。
【００３６】
暗号処理部１４は、分析対象となる暗号化前のデータを暗号化する処理部である。具体的には、暗号処理部１４は、暗号化前のデータに対して、鍵情報ＤＢ１２に記憶される公開鍵を用いて準同型暗号化処理を実行し、暗号化データを生成する。例えば、暗号処理部１４は、平文情報ｍに対して準同型暗号化処理を実行し、暗号データＥｎｃ（ｍ，ｐｋ１）＝（ｃ０，ｃ１）を生成する。
【００３７】
補助情報生成部１５は、データを暗号化する際に、再暗号化する際に用いる補助情報を生成する処理部である。具体的には、補助情報生成部１５は、鍵情報ＤＢ１２に記憶される自身の秘密鍵と公開鍵の組み合わせと、暗号化データの暗号前のデータとを用いて補助情報を算出する。例えば、補助情報生成部１５は、ξ＝  Ｌｉｆｔ（ｃ０）＋Ｌｉｆｔ（ｃ１）＊Ｌｉｆｔ（ｓｋ１）−ｍ  ｍｏｄ  ｔを計算する。ただし、Ｌｉｆｔ（ａ）は暗号文の基礎空間を定める環Ｒｑ１＝Ｆｑ１［x］／（ｘｎ＋１）の元ａの環Ｒ＝Ｚ［ｘ］／（ｘｎ＋１）への自然な持ち上げ写像とする。
【００３８】
送信部１６は、補助情報を付加した暗号化データを暗号化サーバ４０に送信する処理部である。具体的には、送信部１６は、暗号化や補助情報の生成が完了すると、暗号処理部１４から暗号化データＥｎｃ（ｍ，ｐｋ１）を取得し、補助情報生成部１５から補助情報ξを取得する。そして、送信部１６は、補助情報付き暗号化データ（Ｅｎｃ（ｍ，ｐｋ１），ξ）を暗号化サーバ４０に送信する。
【００３９】
（暗号化サーバの機能構成）
図２に示すように、暗号化サーバ４０は、通信処理部４１、鍵情報ＤＢ４２、暗号文ＤＢ４３、再暗号文ＤＢ４４、鍵取得部４５、暗号データ取得部４６、再暗号処理部４７、分析実行部４８を有する。
【００４０】
なお、鍵情報ＤＢ４２、暗号文ＤＢ４３、再暗号文ＤＢ４４は、ハードディスクや半導体メモリ等の記憶装置に格納される。鍵取得部４５、暗号データ取得部４６、再暗号処理部４７、分析実行部４８は、プロセッサが実行するプロセスや電子回路が有する回路の一例である。
【００４１】
通信処理部４１は、ユーザ端末１０や分析者端末３０との通信を制御する処理部であり、例えばネットワークインタフェースカードなどである。例えば、通信処理部４１は、暗号化データ、暗号化情報、各種要求等を受信する。また、通信処理部４１は、各端末との間でＷｅｂセッションなどを確立して、各種データの送受信を実行する。
【００４２】
鍵情報ＤＢ４２は、各ユーザ端末や分析者端末３０の鍵情報を記憶するデータベースである。例えば、鍵情報ＤＢ４２は、分析者の公開鍵ｐｋ、ユーザ端末１０から取得された暗号化情報Ｅ（ｓｋ１，ｐｋ）、ユーザ端末２０から取得された暗号化情報Ｅ（ｓｋ２，ｐｋ）を記憶する。なお、ユーザ端末２０の鍵情報は、鍵パラメータ（ｎ，ｑ２，ｔ）で生成された公開鍵ｐｋ２および秘密鍵ｓｋ２とし、ｑ＞ｑ２とする。
【００４３】
暗号文ＤＢ４３は、各ユーザ端末から取得された、補助情報付き暗号化データを記憶するデータベースである。例えば、暗号文ＤＢ４３は、ユーザ端末１０から取得された補助情報付き暗号化データ（Ｅｎｃ（ｍ，ｐｋ１），ξ）などを記憶する。
【００４４】
再暗号文ＤＢ４４は、分析者端末の公開鍵で再暗号化された再暗号化データを記憶するデータベースである。例えば、再暗号文ＤＢ４４は、平文情報ｍのｐｋ１による暗号文Ｅｎｃ（ｍ，ｐｋ１）の分析者の公開鍵ｐｋによる再暗号化文として、Ｅｎｃ（ｍ，ｐｋ）＝（ｄ０，ｄ１）を記憶する。
【００４５】
鍵取得部４５は、各端末から鍵に関する情報を取得して鍵情報ＤＢ４２に格納する処理部である。例えば、鍵取得部４５は、分析者端末３０から公開鍵を取得する。また、鍵取得部４５は、ユーザ端末１０から、分析者の公開鍵ｐｋで暗号化された秘密鍵ｓｋ１の暗号化情報Ｅ（ｓｋ１，ｐｋ）を取得する。鍵取得部４５は、ユーザ端末２０から、分析者の公開鍵ｐｋで暗号化された秘密鍵ｓｋ２の暗号化情報Ｅ（ｓｋ２，ｐｋ）を取得する。
【００４６】
暗号データ取得部４６は、各ユーザ端末から補助情報付きの暗号化データを取得して、暗号文ＤＢ４３に格納する処理部である。例えば、暗号データ取得部４６は、ユーザ端末１０から補助情報付き暗号化データ（Ｅｎｃ（ｍ，ｐｋ１），ξ）を取得して、暗号文ＤＢ４３に格納する。
【００４７】
再暗号処理部４７は、分析者端末３０から分析要求を受信すると、再暗号化処理を実行する処理部である。具体的には、再暗号処理部４７は、暗号文ＤＢ４３に記憶される各暗号化データを分析者の鍵情報で再暗号化して、再暗号文ＤＢ４４に格納する。その後、再暗号処理部４７は、再暗号化が完了したことを分析実行部４８に通知する。
【００４８】
例えば、再暗号処理部４７は、上述した補助情報付き暗号文（Ｅｎｃ（ｍ，ｐｋ１），ξ）に対して、補助情報を利用した再暗号化処理として、「ｄ０＝Ｃ０＋ξ＋ｃ１＊Ｃ０´」および「ｄ１＝ｃ１＊ｃ１´」を計算する。ただし、上記の計算は、新しく生成された鍵（分析者の鍵）に対応する暗号文空間の環Ｒｑ＝Ｆｑ［ｘ］／（ｘｎ＋１）上で計算する。ｃ０やｃ１などは、環Ｒｑ１の元であるが、環Ｒｑの部分空間の元として計算する。
【００４９】
そこで、再暗号処理部４７は、平文情報ｍのｐｋ１による暗号データＥｎｃ（ｍ，ｐｋ１）のｐｋによる再暗号化データとして、Ｅｎｃ（ｍ，ｐｋ）＝（ｄ０，ｄ１）と定義する。この再暗号化文は、分析者の秘密鍵ｓｋで復号すると、元の平文情報ｍが復元することが可能となる。
【００５０】
分析実行部４８は、分析処理を実行する処理部である。例えば、分析実行部４８は、再暗号処理部４７から再暗号化が終了したことが通知されると、再暗号文ＤＢ４４に記憶される再暗号化データを暗号化されたまま加算や乗算などの分析処理を実行して、分析再暗号化データを生成して分析者端末３０に送信する。なお、分析処理は、必ずしも実行される処理ではない。例えば、分析実行部４８は、再暗号文ＤＢ４４に記憶される再暗号化データを読み出して、そのまま分析者端末３０に送信することもできる。
【００５１】
（分析者端末の機能構成）
図２に示すように、分析者端末３０は、通信処理部３１、鍵情報ＤＢ３２、鍵配信部３３、分析要求部３４、復号処理部３５を有する。なお、鍵配信部３３、分析要求部３４、復号処理部３５は、プロセッサが実行するプロセスや電子回路が有する回路の一例である。
【００５２】
通信処理部３１は、クラウドシステム５上の暗号化サーバ４０との通信を制御する処理部であり、例えばネットワークインタフェースカードなどである。例えば、通信処理部３１は、鍵情報を暗号化サーバ４０に送信する。また、通信処理部３１は、分析後の分析再暗号化データを暗号化サーバ４０から受信する。また、通信処理部３１は、暗号化サーバ４０との間でＷｅｂセッションなどを確立して、各種データの送受信を実行する。
【００５３】
鍵情報ＤＢ３２は、分析者端末３０を使用するユーザの公開鍵および秘密鍵を記憶するデータベースである。例えば、鍵情報ＤＢ３２は、鍵パラメータ（ｎ，ｑ，ｔ）で生成された、所定の秘匿計算が可能な公開鍵ｐｋおよび秘密鍵ｓｋを格納する。なお、鍵情報ＤＢ３２は、ハードディスクや半導体メモリ等の記憶装置に格納される。
【００５４】
鍵配信部３３は、鍵情報ＤＢ３２に記憶される公開鍵を、暗号化サーバ４０に送信する処理部である。例えば、鍵配信部３３は、分析者の公開鍵ｐｋを暗号化サーバ４０に送信する。分析要求部３４は、暗号化サーバ４０に対して、加算や乗算などの分析処理を要求する処理部である。
【００５５】
復号処理部３５は、暗号化サーバ４０から受信した分析再暗号化データを復号する処理部である。例えば、復号処理部３５は、分析後の再暗号化データＥｎｃ（ｍ，ｐｋ）＝（ｄ０，ｄ１）を暗号化サーバ４０から受信する。そして、復号処理部３５は、鍵情報ＤＢ３２に記憶される自身の秘密鍵ｓｋを用いて、再暗号化データＥｎｃ（ｍ，ｐｋ）＝（ｄ０，ｄ１）を復号し、平文情報ｍを復元する。
【００５６】
なお、ここでは、ユーザ端末１０が送信した暗号化データの元の平文情報を得る例を説明したが、これに限定されるものではない。例えば、各再暗号化データを加算した結果として分析再暗号化データＥｎｃ（Ｔ，ｐｋ）が得られた場合には、同様の手法でＥｎｃ（Ｔ，ｐｋ）を復号することで平文情報Ｔを得ることができる。
【００５７】
（数値例）
上記に示した再暗号化処理として、ユーザ端末１０の公開鍵ｐｋ１で暗号化した平文情報ｍの暗号文Ｅｎｃ（ｍ，ｐｋ１）の秘密鍵ｓｋ１の復号処理は、［ｃ０＋ｃ１＊ｓｋ１］ｑ１  ｍｏｄ  ｔと計算される。ところが補助情報ξの構成方法から、この復号処理は、Ｌｉｆｔ（ｃ０）＋Ｌｉｆｔ（ｃ１）＊Ｌｉｆｔ（ｓｋ１）−ｍ  ｍｏｄ  ｔでも計算することが可能となる。
【００５８】
そこでユーザ端末１０の、秘密鍵ｓｋ１を分析者の公開鍵ｐｋで暗号化したＥｎｃ（ｓｋ１，ｐｋ）＝（ｃ０´，ｃ１´）の情報を用いて、上記の復号処理をｐｋ上の暗号文で暗号操作すると、上記の再暗号化処理そのものになる。つまり、実施例で開示する再暗号化処理は、補助情報により復号処理を簡略化すると共に、その簡略化した復号処理を準同型暗号操作で評価した処理を行う。ここで、上記で説明した補助情報を利用した再暗号化処理の数値例を示す。
【００５９】
初期の鍵パラメータ、すなわち、上記例ではユーザ端末１０の鍵パラメータを（ｎ，ｑ１，ｔ）＝（4，1033，20)としたとき、初期の鍵ペア、上記例ではユーザ端末１０の鍵ペア（ｐｋ１，ｓｋ１）は以下のように生成される。
ｐｋ１＝（ａ０，ａ１）、ａ０＝Mod（Mod（885，q）＊x3＋Mod（519，q）＊x2＋Mod（621，q）＊ｘ＋Mod（327，q），x4＋1）、ａ１＝Mod（Mod（661，q）＊x3＋Mod（625，q）＊x2＋Mod（861，q）＊x＋Mod（311，q），x4＋1）
ｓｋ１＝Mod（Mod（4，q）＊x3＋Mod（4，q）＊x2＋Mod（1，q）＊x，x4＋1）
【００６０】
次に、平文ｍ＝3＋2x＋2x2＋2x3に対応する補助情報付き暗号文（Ｅｎｃ（ｍ，ｐｋ１），ξ）は以下のように計算される。
Ｅｎｃ（ｍ，ｐｋ１）＝（ｃ０，ｃ１）、ｃ０＝Mod（Mod（822，q）＊x3＋Mod（1016，q）＊x2＋Mod（292，q）＊x＋Mod（243，q），x4＋1）、ｃ１＝Mod（Mod（840，q）＊x3＋Mod（275，q）＊x2＋Mod（628，q）＊x＋Mod（911，q），x4＋1）
ξ=12＋19x＋14x2＋9x3
【００６１】
新しい鍵パラメータ、すなわち上記例では分析者の鍵パラメータ（ｎ，ｑ，ｔ）＝（4，1073741827，20）から生成された新しい鍵ペア、すなわち上記例では分析者の鍵ペア（ｐｋ，ｓｋ）は以下のように得られる。
ｐｋ＝（ｂ０，ｂ１）、ｂ０＝Mod（Mod（175962546，q）＊x3＋Mod（371803344，q）＊x2＋Mod（218138672，q）＊x＋Mod（224156285，q），x4＋1）、ｂ１＝Mod（Mod（476812016，q）＊x3＋Mod（135271255，q）＊x2＋Mod（610902088，q）＊x＋Mod（561030593，q），x4＋1）
ｓｋ＝Mod（Mod（4，q）＊ｘ＋Mod（3，q），x4＋1）
【００６２】
そして、平文ｍの公開鍵ｐｋによる再暗号化文（Ｅｎｃ（ｍ，ｐｋ）＝（ｄ０＋ｄ１）は以下のように計算される。
秘密鍵ｓｋ１のｐｋ暗号文（ｃ０´，ｃ１´）、ｃ０´＝Mod（Mod（855259453，q）＊x3＋Mod（249061504，q）＊x2＋Mod（785050327，q）＊x＋Mod（271540493，q），x4＋1）、ｃ１´＝Mod（Mod（914225662，q）＊x3＋Mod（442693250，q）＊x2＋Mod（142585746，q）＊x＋Mod（770540096，q），x4＋1）
ｄ０＝Mod（Mod（850335203，q）＊x3＋Mod（1000403695，q）＊x2＋Mod（1066115807，q）＊x＋Mod（243516610，q），x4＋1）
ｄ１＝Mod（Mod（965623301，q）＊x3＋Mod（137137351，q）＊x2＋Mod（184084287，q）＊x＋Mod（132274992，q），x4＋1）
【００６３】
以上より、上記で計算された平文情報ｍのｐｋによる再暗号化文Ｅｎｃ（ｍ，ｐｋ）はｐｋに対応する秘密鍵ｓｋで元の平文情報ｍに復元できる。
【００６４】
［処理の流れ］
図３は、実施例１に係るシステムが実行する処理のシーケンス図である。図３に示すように、分析者端末３０は、所定の秘匿計算が可能な共通鍵および公開鍵を生成し（Ｓ１０１）、公開鍵をユーザ端末１０と暗号化サーバ４０に配信する（Ｓ１０２からＳ１０４）。続いて、ユーザ端末１０は、受信した分析者の公開鍵を鍵情報ＤＢ１２等の記憶装置に格納し（Ｓ１０５）、同様に、暗号化サーバ４０は、受信した分析者の公開鍵を鍵情報ＤＢ４２等に格納する（Ｓ１０６）。
【００６５】
そして、ユーザ端末１０は、通常の準同期型暗号化を実行して暗号化データを生成する（Ｓ１０７）。具体的には、ユーザ端末１０は、自身の公開鍵を用いて分析対象のユーザを暗号化する。
【００６６】
続いて、ユーザ端末１０は、自身の秘密鍵と公開鍵の組み合わせと、暗号化データの暗号前のデータとを用いて、補助情報を算出する（Ｓ１０８）。そして、ユーザ端末１０は、補助情報を付加した暗号化データを暗号化サーバ４０に送信する（Ｓ１０９とＳ１１０）。暗号化サーバ４０は、補助情報付きの暗号化データを暗号文ＤＢ４３に格納する（Ｓ１１１）。
【００６７】
そして、ユーザ端末１０は、自身の秘密鍵を分析者の公開鍵で暗号化し（Ｓ１１２）、暗号化した秘密鍵の情報である暗号化情報を暗号化サーバ４０に送信する（Ｓ１１３とＳ１１４）。
【００６８】
その後、分析者端末３０は、暗号化サーバ４０に分析要求を送信する（Ｓ１１５とＳ１１６）。分析要求を受信した暗号化サーバ４０は、暗号化データに付加される補助情報と、分析者の公開鍵と、Ｓ１１４で受信したユーザ端末１０の秘密鍵についての暗号化情報とを用いて、暗号化データの再暗号化を実行する（Ｓ１１７）。続いて、暗号化サーバ４０は、生成した再暗号化データを再暗号文ＤＢ４４に格納する（Ｓ１１８）。そして、暗号化サーバ４０は、要求された分析処理を実行する（Ｓ１１９）。
【００６９】
その後、分析者端末３０は、暗号化サーバ４０から分析後の再暗号化データを取得し（Ｓ１２０とＳ１２１）、自身の秘密鍵を用いて復号して、分析結果を取得する（Ｓ１２２）。
【００７０】
［再暗号化の説明］
次に、実施例１に係る再暗号化の全体的な流れを説明する。図４は、実施例１に係る再暗号化を説明する図である。
【００７１】
図４に示すように、ユーザ端末１０は、自身の公開鍵ｐｋ１と秘密鍵ｓｋ１とを保持し、ユーザ端末２０は、自身の公開鍵ｐｋ２と秘密鍵ｓｋ２とを保持し、分析者端末３０は、自身の公開鍵ｐｋと秘密鍵ｓｋとを保持する。
【００７２】
クラウドシステム５上の暗号化サーバ４０は、分析者の公開鍵ｐｋと、分析者の公開鍵ｐｋで暗号化されたユーザ端末１０の秘密鍵ｓｋ１に関する暗号化情報と、分析者の公開鍵ｐｋで暗号化されたユーザ端末２０の秘密鍵ｓｋ２に関する暗号化情報とを保持する。
【００７３】
ユーザ端末１０は、平文を自身の公開鍵ｐｋ１で暗号化した暗号化データ１に、自身の鍵ペアの情報や平文等から生成した補助情報１を付加して、暗号化サーバ４０に送信する。同様に、ユーザ端末２０は、平文を自身の公開鍵ｐｋ２で暗号化した暗号化データ２に、自身の鍵ペアの情報や平文等から生成した補助情報２を付加して、暗号化サーバ４０に送信する。
【００７４】
暗号化サーバ４０は、暗号化データ１に付加される補助情報１と、分析者の公開鍵ｐｋと、分析者の公開鍵ｐｋで暗号化されたユーザ端末１０の秘密鍵ｓｋ１に関する暗号化情報とを用いて、暗号化データ１を再暗号化して再暗号データ１を生成する。同様に、暗号化サーバ４０は、暗号化データ２に付加される補助情報２と、分析者の公開鍵ｐｋと、分析者の公開鍵ｐｋで暗号化されたユーザ端末１０の秘密鍵ｓｋ２に関する暗号化情報とを用いて、暗号化データ２を再暗号化して再暗号データ２を生成する。
【００７５】
そして、暗号化サーバ４０は、再暗号化データ１および再暗号化データ２を暗号化されたまま用いて分析処理を実行し、分析後の再暗号化データを生成する。その後、分析者端末３０は、分析後の再暗号化データを取得し、自身の秘密鍵で復号して分析結果を得る。
【００７６】
［効果］
このように、実施例１に係るシステムでは、データを暗号化する際に、再暗号化に必要な補助情報を付与し、再暗号化の処理の際には、補助情報を利用した処理を行うことで、処理コストを削減する。
【００７７】
したがって、実施例１に係るシステムでは、準同型暗号における再暗号化処理コストを大幅に削減することができる。具体的には、通常の再暗号化の際に用いる暗号化乗算回数は１万回以上であるのに対し、実施例１で説明した補助情報を利用した再暗号化処理では、暗号化乗算回数は２回となり、従来の処理に比べて数千倍程度の高速化効果が可能となる。
【実施例２】
【００７８】
さて、これまで本発明の実施例について説明したが、本発明は上述した実施例以外にも、種々の異なる形態にて実施されてよいものである。
【００７９】
（システム）
また、本実施例において説明した各処理のうち、自動的におこなわれるものとして説明した処理の全部または一部を手動的におこなうこともできる。あるいは、手動的におこなわれるものとして説明した処理の全部または一部を公知の方法で自動的におこなうこともできる。この他、上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
【００８０】
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散や統合の具体的形態は図示のものに限られない。つまり、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。さらに、各装置にて行なわれる各処理機能は、その全部または任意の一部が、ＣＰＵおよび当該ＣＰＵにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
【００８１】
（ハードウェア）
図５は、ハードウェア構成例を示す図である。図１に示した各装置は同様のハードウェア構成を有するので、ここでは暗号化サーバ４０を例にして説明する。
【００８２】
図５に示すように、暗号化サーバ４０は、通信インタフェース４０ａ、ＨＤＤ（ハードディスクドライブ）４０ｂ、メモリ４０ｃ、プロセッサ４０ｄを有する。また、図５に示した各部は、バス等で相互に接続される。
【００８３】
通信インタフェース４０ａは、他の装置との通信を制御するインタフェースであり、例えばネットワークインタフェースカードである。ＨＤＤ４０ｂは、図２等に示した機能を動作させるプログラムやＤＢを記憶する。
【００８４】
プロセッサ４０ｄは、図２等に示した各処理部と同様の処理を実行するプログラムをＨＤＤ４０ｂ等から読み出してメモリ４０ｃに展開することで、図２等で説明した各機能を実行するプロセスを動作させる。
【００８５】
すなわち、このプロセスは、暗号化サーバ４０が有する各処理部と同様の機能を実行する。具体的には、プロセッサ４０ｄは、鍵取得部４５、暗号データ取得部４６、再暗号処理部４７、分析実行部４８等と同様の機能を有するプログラムをＨＤＤ４０ｂ等から読み出す。そして、プロセッサ４０ｄは、鍵取得部４５、暗号データ取得部４６、再暗号処理部４７、分析実行部４８と同様の処理を実行するプロセスを実行する。
【００８６】
このように暗号化サーバ４０は、プログラムを読み出して実行することでアルバム作成方法を実行する情報処理装置として動作する。また、暗号化サーバ４０は、媒体読取装置によって記録媒体から上記プログラムを読み出し、読み出された上記プログラムを実行することで上記した実施例と同様の機能を実現することもできる。なお、この他の実施例でいうプログラムは、暗号化サーバ４０によって実行されることに限定されるものではない。例えば、他のコンピュータまたはサーバがプログラムを実行する場合や、これらが協働してプログラムを実行するような場合にも、本発明を同様に適用することができる。
【符号の説明】
【００８７】
１０  ユーザ端末
１１  通信処理部
１２  鍵情報ＤＢ
１３  鍵配信部
１４  暗号処理部
１５  補助情報生成部
１６  送信部
２０  ユーザ端末
３０  分析者端末
３１  通信処理部
３２  鍵情報ＤＢ
３３  鍵配信部
３４  分析要求部
３５  復号処理部
４０  暗号化サーバ
４１  通信処理部
４２  鍵情報ＤＢ
４３  暗号文ＤＢ
４４  再暗号文ＤＢ
４５  鍵取得部
４６  暗号データ取得部
４７  再暗号処理部
４８  分析実行部
【図１】
2015184490.tif 000003
【図２】
2015184490.tif 000004
【図３】
2015184490.tif 000005
【図４】
2015184490.tif 000006
【図５】
2015184490.tif 000007