(57)【特許請求の範囲】
【請求項１】
それぞれプロセッサ及びメモリを有し、互いに通信可能に接続されている第１の情報処理システム及び第２の情報処理システムを含んで構成される暗号化システムであって、
前記第１の情報処理システムは、
互いに対応する、第１の鍵、及び第２の鍵を生成する鍵生成部と、
電子署名を生成するための鍵である署名生成鍵を記憶する署名生成鍵記憶部と、
前記記憶している署名生成鍵に基づき、前記生成した第１の鍵の電子署名である第１電子署名を生成する第１署名生成部と、
前記生成した第２の鍵に基づき、暗号化対象のデータの電子署名である第２電子署名を生成する第２署名生成部と、
前記暗号化対象のデータ、及び前記生成した第２電子署名を、前記第２の情報処理システムが生成した、暗号化に用いる鍵である暗号化鍵に基づき暗号化して暗号化データを生成する暗号化部と、
前記第１の鍵、前記生成した第１電子署名、及び前記生成した暗号化データを送信する送信部とを備え、
前記第２の情報処理システムは、
前記第１の鍵、前記第１電子署名、及び前記暗号化データを受信する受信部と、
前記受信した第１電子署名の正当性を、前記署名生成鍵に対応する鍵である署名検証鍵と前記受信した第１の鍵とに基づき検証する第１署名検証部と、
前記受信した暗号化データを、前記暗号化鍵に対応する鍵である復号鍵に基づき、前記暗号化対象のデータ及び前記第２電子署名に復号する復号部と、
前記復号した第２電子署名の正当性を、前記復号した暗号化対象のデータ及び前記受信した第１の鍵に基づき検証する第２署名検証部と、
前記第１電子署名、及び前記第２電子署名が正当であると検証された場合に、前記復号した暗号化対象のデータを出力する出力部とを備える、
暗号化システム。
【請求項２】
請求項１に記載の暗号化システムであって、
前記署名生成鍵と、前記第１の情報処理システムと異なる他の前記第１の情報処理システムが生成した前記署名生成鍵である他署名生成鍵とに基づき、新たな前記署名生成鍵である再署名鍵を生成する再署名鍵生成部と、
前記生成した再署名鍵に基づき、新たな前記第１電子署名である再電子署名を生成する再署名部とを備え、
前記第１署名検証部は、前記再電子署名の正当性を、前記署名生成鍵に対応する鍵、及び前記他署名生成鍵に対応する鍵を共に前記署名検証鍵として、前記第１の鍵に基づき検証する、
暗号化システム。
【請求項３】
請求項１に記載の暗号化システムであって、
前記暗号化データを、前記第２の情報処理システムとは異なる他の前記第２の情報処理システムで復号可能なデータに再暗号化するための鍵である再暗号化鍵を、前記他の前記第２の情報処理システムが生成した前記暗号化鍵に基づき生成する再暗号化鍵生成部と、
前記生成した再暗号化鍵に基づき、前記生成した暗号化データを再暗号化したデータである再暗号化データを生成して送信する再暗号化部とを備え、
前記他の第２の情報処理システムの前記受信部は、前記送信された再暗号化データを前記暗号化データとして受信し、
前記他の第２の情報処理システムの前記復号部は、前記受信した暗号化データを、前記再暗号化鍵に対応する鍵に基づき、前記暗号化対象のデータ及び前記第２電子署名に復号する、
暗号化システム。
【請求項４】
請求項３に記載の暗号化システムであって、
前記再暗号化部は、前記第１電子署名の正当性を、前記署名生成鍵に対応する鍵である署名検証鍵及び前記第１の鍵に基づき検証し、前記第１電子署名の正当性が検証された場合に、前記再暗号化データを生成して送信する
暗号化システム。
【請求項５】
請求項１に記載の暗号化システムであって、前記鍵生成部は、第１署名生成部が実行される前に前記第１の鍵及び前記第２の鍵を生成する、暗号化システム。
【請求項６】
請求項１に記載の暗号化システムであって、
前記第２の鍵は、前記第１の情報処理システムが記憶している秘密鍵であり、
前記署名生成鍵は、前記第１の情報処理システムが記憶している秘密鍵であり、
前記復号鍵は、前記第２の情報処理システムが記憶している秘密鍵である、
暗号化システム。
【請求項７】
請求項２に記載の暗号化システムであって、
前記暗号化システムはさらに、第３の情報処理システムを含んで構成され、
前記送信部は、前記生成した第１電子署名を前記第３の情報処理システムに送信し、
前記第３の情報処理システムは、前記再署名部を備え、
前記生成した第１電子署名を受信し、
前記再署名部により生成された、前記受信した第１電子署名とは異なる前記新たな第１電子署名を前記第２の情報処理システムに送信する、
暗号化システム。
【請求項８】
請求項３に記載の暗号化システムであって、
前記暗号化システムはさらに、第３の情報処理システムを含んで構成され、
前記送信部は、前記生成した暗号化データを前記第３の情報処理システムに送信し、
前記第３の情報処理システムは、前記再暗号化部を備え、
前記生成した暗号化データを受信し、
前記暗号化部により生成された前記暗号化データを前記第２の情報処理システムに送信する、
暗号化システム。
【請求項９】
請求項３に記載の暗号化システムであって、
前記第１の鍵は、所定のビット列から構成されるデータであり、
前記暗号化部は、前記第１の鍵、前記暗号化対象のデータ、及び前記生成した第２電子署名を、前記第２の情報処理システムが生成した、暗号化に用いる鍵である暗号化鍵に基づき暗号化して暗号化データを生成し、
前記再暗号化部は、前記第１の鍵、及び前記生成した再暗号化鍵に基づき、前記再暗号化データを生成して送信し、
前記復号部は、前記受信した暗号化データを、前記暗号化鍵に対応する鍵である復号鍵、及び前記第１の鍵に基づき、前記暗号化対象のデータ及び前記第２電子署名に復号する、
暗号化システム。
【請求項１０】
請求項１に記載の暗号化システムであって、
前記暗号化システムはさらに、第３の情報処理システムを含んで構成され、
前記第２の鍵は、前記第１の情報処理システムが記憶している秘密鍵であり、
前記署名生成鍵は、前記第１の情報処理システムが記憶している秘密鍵であり、
前記復号鍵は、前記第２の情報処理システムが記憶している秘密鍵であり、
前記署名生成鍵と、前記第１の情報処理システムと異なる他の前記第１の情報処理システムが生成した前記署名生成鍵である他署名生成鍵とに基づき、新たな前記署名生成鍵である再署名鍵を生成する再署名鍵生成部と、
前記生成した再署名鍵に基づき、新たな前記第１電子署名である再電子署名を生成する再署名部と、
前記暗号化データを、前記第２の情報処理システムとは異なる他の前記第２の情報処理システムで復号可能なデータに再暗号化するための鍵である再暗号化鍵を、前記他の前記第２の情報処理システムが生成した前記暗号化鍵に基づき生成する再暗号化鍵生成部と、
前記生成した再暗号化鍵に基づき、前記生成した暗号化データを再暗号化したデータである再暗号化データを生成して送信する再暗号化部とを備え、
前記鍵生成部は、第１署名生成部が実行される前に前記第１の鍵及び前記第２の鍵を生成し、
前記送信部は、前記生成した第１電子署名を前記第３の情報処理システムに送信し、
前記送信部は、前記生成した暗号化データを前記第３の情報処理システムに送信し、
前記第１署名検証部は、前記再電子署名の正当性を、前記署名生成鍵に対応する鍵、及び前記他署名生成鍵に対応する鍵を共に前記署名検証鍵として、前記第１の鍵に基づき検証し、
前記再暗号化部は、前記第１電子署名の正当性を、前記署名生成鍵に対応する鍵である署名検証鍵及び前記第１の鍵に基づき検証し、前記第１電子署名の正当性が検証された場合に、前記再暗号化データを生成して送信し、
前記他の第２の情報処理システムの前記受信部は、前記送信された再暗号化データを前記暗号化データとして受信し、
前記他の第２の情報処理システムの前記復号部は、前記受信した暗号化データを、前記再暗号化鍵に対応する鍵に基づき、前記暗号化対象のデータ及び前記第２電子署名に復号し、
前記第３の情報処理システムは、
前記再署名部を備え、
前記生成した第１電子署名を受信し、
前記再署名部により生成された、前記受信した第１電子署名とは異なる前記新たな第１電子署名を前記第２の情報処理システムに送信し、
前記再暗号化部を備え、
前記生成した暗号化データを受信し、
前記暗号化部により生成された前記暗号化データを前記第２の情報処理システムに送信する、
暗号化システム。
【請求項１１】
それぞれプロセッサ及びメモリを有し、互いに通信可能に接続されている第１の情報処理システム及び第２の情報処理システムを含んで構成される暗号化システムにおける暗号化方法であって、
前記第１の情報処理システムが、
互いに対応する、第１の鍵、及び第２の鍵を生成し、
電子署名を生成するための鍵である署名生成鍵を記憶し、
前記記憶している署名生成鍵に基づき、前記生成した第１の鍵の電子署名である第１電子署名を生成し、
前記生成した第２の鍵に基づき、暗号化対象のデータの電子署名である第２電子署名を生成し、
前記暗号化対象のデータ、及び前記生成した第２電子署名を、前記第２の情報処理システムが生成した、暗号化に用いる鍵である暗号化鍵に基づき暗号化して暗号化データを生
成し、
前記第１の鍵、前記生成した第１電子署名、及び前記生成した暗号化データを送信し、
前記第２の情報処理システムが、
前記第１の鍵、前記第１電子署名、及び前記暗号化データを受信し、
前記受信した第１電子署名の正当性を、前記署名生成鍵に対応する鍵である署名検証鍵と前記受信した第１の鍵とに基づき検証し、
前記受信した暗号化データを、前記暗号化鍵に対応する鍵である復号鍵に基づき、前記暗号化対象のデータ及び前記第２電子署名に復号し、
前記復号した第２電子署名の正当性を、前記復号した暗号化対象のデータ及び前記受信した第１の鍵に基づき検証し、
前記第１電子署名、及び前記第２電子署名が正当であると検証された場合に、前記復号した暗号化対象のデータを出力する、
暗号化方法。
【請求項１２】
請求項１１に記載の暗号化方法であって、
前記署名生成鍵と、前記第１の情報処理システムと異なる他の前記第１の情報処理システムが生成した前記署名生成鍵である他署名生成鍵とに基づき、新たな前記署名生成鍵である再署名鍵を生成し、
前記生成した再署名鍵に基づき、新たな前記第１電子署名である再電子署名を生成し、
前記第１署名検証部は、前記再電子署名の正当性を、前記署名生成鍵に対応する鍵、及び前記他署名生成鍵に対応する鍵を共に前記署名検証鍵として、前記第１の鍵に基づき検証する、
暗号化方法。
【請求項１３】
請求項１１に記載の暗号化方法であって、
前記暗号化データを、前記第２の情報処理システムとは異なる他の前記第２の情報処理システムで復号可能なデータに再暗号化するための鍵である再暗号化鍵を、前記他の前記第２の情報処理システムが生成した前記暗号化鍵に基づき生成し、
前記生成した再暗号化鍵に基づき、前記生成した暗号化データを再暗号化したデータである再暗号化データを生成して送信し、
前記他の第２の情報処理システムの前記受信部は、前記送信された再暗号化データを前記暗号化データとして受信し、
前記他の第２の情報処理システムの前記復号部は、前記受信した暗号化データを、前記再暗号化鍵に対応する鍵に基づき、前記暗号化対象のデータ及び前記第２電子署名に復号する、
暗号化方法。
【請求項１４】
それぞれプロセッサ及びメモリを有し、互いに通信可能に接続されている第１の情報処理システム及び第２の情報処理システムを含んで構成される暗号化システムにおいて、
前記第１の情報処理システムに、
互いに対応する、第１の鍵、及び第２の鍵を生成する鍵生成機能と、
電子署名を生成するための鍵である署名生成鍵を記憶する署名生成鍵記憶機能と、
前記記憶している署名生成鍵に基づき、前記生成した第１の鍵の電子署名である第１電子署名を生成する第１署名生成機能と、
前記生成した第２の鍵に基づき、暗号化対象のデータの電子署名である第２電子署名を生成する第２署名生成機能と、
前記暗号化対象のデータ、及び前記生成した第２電子署名を、前記第２の情報処理システムが生成した、暗号化に用いる鍵である暗号化鍵に基づき暗号化して暗号化データを生成する暗号化機能と、
前記第１の鍵、前記生成した第１電子署名、及び前記生成した暗号化データを送信する
送信機能とを実行させ、
前記第２の情報処理システムに、
前記第１の鍵、前記第１電子署名、及び前記暗号化データを受信する受信機能と、
前記受信した第１電子署名の正当性を、前記署名生成鍵に対応する鍵である署名検証鍵と前記受信した第１の鍵とに基づき検証する第１署名検証機能と、
前記受信した暗号化データを、前記暗号化鍵に対応する鍵である復号鍵に基づき、前記暗号化対象のデータ及び前記第２電子署名に復号する復号機能と、
前記復号した第２電子署名の正当性を、前記復号した暗号化対象のデータ及び前記受信した第１の鍵に基づき検証する第２署名検証機能と、
前記第１電子署名、及び前記第２電子署名が正当であると検証された場合に、前記復号した暗号化対象のデータを出力する出力機能とを実行させる、
暗号化プログラム。
【請求項１５】
請求項１４に記載の暗号化プログラムであって、
前記暗号化システムに、
前記署名生成鍵と、前記第１の情報処理システムと異なる他の前記第１の情報処理システムが生成した前記署名生成鍵である他署名生成鍵とに基づき、新たな前記署名生成鍵である再署名鍵を生成する再署名鍵生成機能と、
前記生成した再署名鍵に基づき、新たな前記第１電子署名である再電子署名を生成する再署名生成機能と、
前記暗号化データを、前記第２の情報処理システムとは異なる他の前記第２の情報処理システムで復号可能なデータに再暗号化するための鍵である再暗号化鍵を、前記他の前記第２の情報処理システムが生成した前記暗号化鍵に基づき生成する再暗号化鍵生成機能と、
前記生成した再暗号化鍵に基づき、前記生成した暗号化データを再暗号化したデータである再暗号化データを生成して送信する再暗号化機能とをさらに実行させ、
前記第１署名検証機能は、前記再電子署名の正当性を、前記署名生成鍵に対応する鍵、及び前記他署名生成鍵に対応する鍵を共に前記署名検証鍵として、前記第１の鍵に基づき検証する機能であり、
前記他の第２の情報処理システムの前記受信機能は、前記送信された再暗号化データを前記暗号化データとして受信する機能であり、
前記他の第２の情報処理システムの前記復号機能は、前記受信した暗号化データを、前記再暗号化鍵に対応する鍵に基づき、前記暗号化対象のデータ及び前記第２電子署名に復号する機能である、
暗号化プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、暗号化システム、暗号化方法、及び暗号化プログラムに関する。
【背景技術】
【０００２】
通信路の秘匿性を保証するため、すなわち通信路上を流れる情報を盗聴の脅威から守るための方法として、暗号化技術、例えば公開鍵暗号技術が知られている。また、通信路の真正性を保証するため、すなわち通信路上を流れる情報を改ざんや成りすましの脅威から守るための方法として、電子署名技術が知られている。さらに、秘匿性と真正性を同時に保証する技術として、公開鍵暗号技術と電子署名技術を応用した、署名付き暗号化（signcryption）技術が知られている。
【０００３】
署名付き暗号化技術の代表的な構成法としては、Sign-then-Encrypt方式、及びEncrypt-then-Sign方式の２つがよく知られている（非特許文献１参照）。Sign-then-Encrypt方
式は、メッセージに電子署名を付加した後、メッセージと電子署名のペアを公開鍵暗号方式により暗号化する方式である。また、Encrypt-then-Sign方式は、メッセージを公開鍵
暗号で暗号化した後に、当該暗号化によって得られた暗号文に対して電子署名を付加する方式である。
【０００４】
また、ある受信者に宛てて生成された暗号文、すなわち、当該受信者の秘密鍵を用いて復号可能な暗号文を、送信途中で復号することなく（当該受信者の秘密鍵を直接用いることなく）、別の受信者の秘密鍵で復号可能な暗号文に変換できるようにするため、例えば送信者と受信者の間に介在する装置（以下、プロキシという）等が、送信者からの上記暗号文に上記変換を行う（再暗号化する）という、プロキシ再暗号化技術（proxy re-encryption）が知られている（例えば特許文献１、非特許文献２参照）。プロキシ再暗号化技
術を応用することで、クラウド上での安全なデータ共有が可能となる。
【０００５】
また、ある送信者が電子署名を付与したメッセージ、すなわち、当該送信者の公開鍵を用いて検証可能なメッセージ及び電子署名のペアを、送信途中で新たな電子署名を付与することなく（別の送信者の秘密鍵を直接用いることなく）、別の送信者の公開鍵を用いて検証可能なメッセージ及び電子署名のペアに変換するべく、プロキシが上記変換を行う（再署名する）という、プロキシ再署名技術（proxy re-signature）が知られている（例えば非特許文献３参照）。プロキシ再署名技術を応用することで、クラウド上で、代理人による代理申請や代理契約を実現することが可能となる。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】国際公開第２０１２／１４７８６９号
【非特許文献】
【０００７】
【非特許文献１】An, J. H., Dodis, Y., & Rabin, T. (2002, January). On the security of joint signature and encryption. In Advances in Cryptology-EUROCRYPT 2002 (pp. 83-107). Springer Berlin Heidelberg.
【非特許文献２】Hanaoka, G., Kawai, Y., Kunihiro, N., Matsuda, T., Weng, J., Zhang, R., & Zhao, Y. (2012). Generic construction of chosen ciphertext secure proxy re-encryption. In Topics in Cryptology-CT-RSA 2012 (pp. 349-364). Springer Berlin Heidelberg.
【非特許文献３】Libert, B., & Vergnaud, D. (2008, October). Multi-use unidirectional proxy re-signatures. In Proceedings of the 15th ACM conference on Computer and communications security (pp. 511-520). ACM.
【発明の概要】
【発明が解決しようとする課題】
【０００８】
そこで、上記のSign-then-Encrypt方式、又はEncrypt-then-Sign方式を利用してプロキシ再暗号化技術及びプロキシ再署名技術を組み合わせることにより再署名及び再暗号を同時に実現し、これにより、クラウド上での安全なデータ共有と、代理申請や代理契約とを同時に達成することが考えられる。
【０００９】
しかし、これらの組み合わせの技術（以下、プロキシ再署名再暗号化技術（proxy re-Signcryption）という）を正しく実現する場合には、以下のような問題点があった。
【００１０】
まず、Sign-then-Encrypt方式を利用してプロキシ再暗号化技術とプロキシ再署名技術
を組み合わせた場合、プロキシが受信した暗号文の中に電子署名が包まれているため、プロキシはその暗号文を復号して電子署名を取得することができない。その結果、プロキシは再署名をすることができない。
【００１１】
一方、Encrypt-then-Sign方式を適用してプロキシ再暗号化技術とプロキシ再署名技術
を組み合わせた場合、プロキシが受信した電子署名は暗号文に対して付与されているため、プロキシがその暗号文に再暗号化処理を実施すると、暗号文と電子署名との対応関係が失われ、電子署名の正当性が失われてしまう。結果、プロキシは（電子署名の正当性を保ったまま）再暗号化をすることができない。
【００１２】
すなわち、Sign-then-Encrypt方式やEncrypt-then-Sign方式を用いても、再暗号化と再署名を両立させるような技術を構成することはできなかった。
【００１３】
本発明は、このような事情に鑑みてなされたものであり、再暗号化及び再署名を行うことが可能な暗号化システム、暗号化方法、及び暗号化プログラムを提供することを目的とする。
【課題を解決するための手段】
【００１４】
前述の課題を解決するための本発明の一つは、それぞれプロセッサ及びメモリを有し、互いに通信可能に接続されている第１の情報処理システム及び第２の情報処理システムを含んで構成される暗号化システムであって、前記第１の情報処理システムは、互いに対応する、第１の鍵、及び第２の鍵を生成する鍵生成部と、電子署名を生成するための鍵である署名生成鍵を記憶する署名生成鍵記憶部と、前記記憶している署名生成鍵に基づき、前記生成した第１の鍵の電子署名である第１電子署名を生成する第１署名生成部と、前記生成した第２の鍵に基づき、暗号化対象のデータの電子署名である第２電子署名を生成する第２署名生成部と、前記暗号化対象のデータ、及び前記生成した第２電子署名を、前記第２の情報処理システムが生成した、暗号化に用いる鍵である暗号化鍵に基づき暗号化して暗号化データを生成する暗号化部と、前記第１の鍵、前記生成した第１電子署名、及び前記生成した暗号化データを送信する送信部とを備え、前記第２の情報処理システムは、前記第１の鍵、前記第１電子署名、及び前記暗号化データを受信する受信部と、前記受信した第１電子署名の正当性を、前記署名生成鍵に対応する鍵である署名検証鍵と前記受信した第１の鍵とに基づき検証する第１署名検証部と、前記受信した暗号化データを、前記暗号化鍵に対応する鍵である復号鍵に基づき、前記暗号化対象のデータ及び前記第２電子署名に復号する復号部と、前記復号した第２電子署名の正当性を、前記復号した暗号化対象のデータ及び前記受信した第１の鍵に基づき検証する第２署名検証部と、前記第１電子署名、及び前記第２電子署名が正当であると検証された場合に、前記復号した暗号化対象の
データを出力する出力部とを備える。
【発明の効果】
【００１５】
本発明によれば、再暗号化及び再署名を行うことができる。
【図面の簡単な説明】
【００１６】
【図１】図１は、本発明の第１実施形態による暗号化システムの構成の一例を説明する図である。
【図２】図２は、第１実施形態に係る、暗号化システム１０を構成する各情報処理装置のハードウェア構成の一例を説明する図である。
【図３】図３は、送信側装置１００が備える機能の一例を説明する図である。
【図４】図４は、送信側鍵生成装置１５０が備える機能の一例を説明する図である。
【図５】図５は、再署名鍵生成装置１７０が備える機能の一例を説明する図である。
【図６】図６は、受信側装置３００が備える機能の一例を説明する図である。
【図７】図７は、受信側鍵生成装置３５０が備える機能の一例を説明する図である。
【図８】図８は、再暗号化鍵生成装置３７０が備える機能の一例を説明する図である。
【図９】図９は、中継装置５００が備える機能の一例を説明する図である。
【図１０】図１０は、再暗号化鍵管理テーブル５０３の一例を示す図である。
【図１１】図１１は、再署名鍵管理テーブル５０４の一例を示す図である。
【図１２】図１２は、再暗号化装置６００が備える機能の一例を説明する図である。
【図１３】図１３は、再署名装置７００が備える機能の一例を説明する図である。
【図１４】図１４は、再暗号化再署名処理Ｓ１０の概要を説明するフローチャートである。
【図１５】図１５は、再署名鍵生成処理Ｓ１００、及び再暗号化鍵生成処理Ｓ２００の一例を説明するシーケンス図である。
【図１６】図１６は、署名付き暗号化処理Ｓ３００、直接送信処理Ｓ４００、及び中継送信処理Ｓ５００の一例を説明するシーケンス図である。
【図１７】図１７は、第１実施形態の送信側装置１００に対応する装置である、第２実施形態に係る送信側装置１１００が備える機能の一例を説明する図である。
【図１８】図１８は、第１実施形態の受信側装置３００に対応する装置である、第２実施形態に係る受信側装置１３００が備える機能の一例を説明する図である。
【図１９】図１９は、第１実施形態の再暗号化装置６００に対応する装置である、第２実施形態に係る再暗号化装置１６００が備える機能の一例を説明する図である。
【発明を実施するための形態】
【００１７】
以下、図面を用いて本発明の実施の形態について説明する。なお、これにより本発明が限定されるものではない。
【００１８】
（第１実施形態）
以下に本発明の第１実施形態について図面を用いて詳細に説明する。
【００１９】
＜システム構成＞
図１は、第１実施形態の暗号化システムの構成の一例を説明する図である。同図に示すように、暗号化システム１０は、複数の情報処理装置（コンピュータ）を含んで構成されており、具体的には、複数の、第１の情報処理システム５０（５０（１）、５０（２））と、複数の、第２の情報処理システム６０（６０（１）、６０（２））と、第３の情報処理システム７０とを含んで構成されている。なお、（１）、（２）の符号は、それぞれ２組例示されている第１の情報処理システム５０、第２の情報処理システム６０を区別する必要がある場合に適宜用いることとする。
【００２０】
第１の情報処理システム５０（１）は、送信側装置１００、送信側鍵生成装置１５０、及び再署名鍵生成装置１７０の各情報処理装置を含んで構成されている。第１の情報処理システム５０は、暗号化対象のデータ（以下、暗号化対象データ、もしくはメッセージという）を暗号化し、暗号化したデータ（以下、暗号化データという）を生成する。そして第１の情報処理システム５０は、この生成した暗号化データを送信する。また、第１の情報処理システム５０は、上記メッセージの電子署名を生成して送信する。
【００２１】
送信側装置１００と送信側鍵生成装置１５０との間、及び、送信側装置１００と再署名鍵生成装置１７０との間は、例えば、ＬＡＮ（Local Area Network）、ＷＡＮ（Wide Area Network）、専用線、インターネット等の通信線１１を介して通信できるように接続さ
れている。送信側装置１００は、送信側鍵生成装置１５０及び再署名鍵生成装置１７０から、暗号化や署名に関する鍵の提供を受ける。
【００２２】
第１の情報処理システム５０（２）は、送信側装置２００、送信側鍵生成装置２５０、及び再署名鍵生成装置２７０の各情報処理装置を含んで構成されている。送信側装置２００、送信側鍵生成装置２５０、及び再署名鍵生成装置２７０の構成は、それぞれ、送信側装置１００、送信側鍵生成装置１５０、及び再署名鍵生成装置１７０と同様である。
【００２３】
第２の情報処理システム６０（１）は、受信側装置３００、受信側鍵生成装置３５０、及び再暗号化鍵生成装置３７０の各情報処理装置を含んで構成されている。第２の情報処理システム６０は、第１の情報処理システム５０から送信された暗号化データを受信して復号する。また、第２の情報処理システム６０は、第１の情報処理システム５０が生成した電子署名を検証する。また、第２の情報処理システム６０は、暗号化データに再暗号化処理を施したデータ（以下、再暗号化データという）を受信する。また、第２の情報処理システム６０は、第１の情報処理システム５０が生成した電子署名に再署名処理を施した電子署名（以下、再電子署名という）を受信する。
【００２４】
受信側装置３００と受信側鍵生成装置３５０との間、及び、受信側装置３００と再暗号化鍵生成装置３７０との間は、例えばＬＡＮ（Local Area Network）、ＷＡＮ（Wide Area Network）、専用線、インターネット等の通信線２１を介して通信可能に接続されてい
る。受信側装置３００は、受信側鍵生成装置３５０、及び再暗号化鍵生成装置３７０から、暗号化や署名に関する鍵の提供を受ける。
【００２５】
第２の情報処理システム６０（２）は、受信側装置４００、受信側鍵生成装置４５０、及び再暗号化鍵生成装置４７０の各情報処理装置を含んで構成されている。受信側装置４００、受信側鍵生成装置４５０、及び再暗号化鍵生成装置４７０の構成は、それぞれ、受信側装置３００、受信側鍵生成装置３５０、及び再暗号化鍵生成装置３７０の構成と同様である。
【００２６】
第３の情報処理システム７０（以下、プロキシともいう）は、中継装置５００、再暗号化装置６００、及び再署名装置７００の各情報処理装置を含んで構成されている。第３の情報処理システム７０は、第１の情報処理システム５０が生成した暗号化データに基づき、暗号化データに再暗号化処理を施したデータである再暗号化データを生成する。また、第３の情報処理システム７０は、第１の情報処理システム５０が生成した電子署名に基づき、電子署名に再署名処理を施した電子署名である再電子署名を生成する。
【００２７】
中継装置５００と再暗号化装置６００との間、及び、中継装置５００と再署名装置７００との間は、例えば、ＬＡＮ（Local Area Network）、ＷＡＮ（Wide Area Network）、
専用線、インターネット等の通信線５１を介して通信可能に接続されている。中継装置５
００は、第２の情報処理システム６０からの要求に基づき、再暗号化装置６００に対して、再暗号化に関する処理を委託する。また、中継装置５００は、第１の情報処理システム５０からの要求に基づき、再署名装置７００に対して、再署名に関する処理を委託する。
【００２８】
なお、本実施形態では、説明を簡易化するため、送信側装置、送信側鍵生成装置、再署名鍵生成装置、受信側装置、受信側鍵生成装置、及び再暗号化鍵生成装置がそれぞれ２台ずつ存在するような構成を例示しているが、各装置の台数はこれに限定されるものではない。
【００２９】
＜ハードウェア構成＞
次に、暗号化システム１０を構成する前記の情報処理装置のハードウェア構成を説明する。
【００３０】
図２は、第１実施形態に係る、暗号化システム１０を構成する各情報処理装置のハードウェア構成の一例を説明する図である。同図に示すように、暗号化システム１０における各情報処理装置９００は、一般的なコンピュータの構成を有する。すなわち、情報処理装置９００は、ＣＰＵ（Central Processing Unit）等のプロセッサからなる制御装置９０
１と、ＲＡＭ（Random Access Memory）、ＲＯＭ（Read Only Memory）、及びＮＶＲＡＭ（Non-Volatile RAM）等のメモリからなる主記憶装置９０２と、ハードディスクやＳＳＤ（Solid State Drive）等の記憶装置からなる補助記憶装置９０３と、ＮＩＣ（Network Interface Card）等の、他の情報処理装置と通信するための通信装置９０４と、モニタ（
ディスプレイ）等からなる出力装置９０５と、キーボード、マウス、タッチパネル等からなる入力装置９０６と、ＣＤ-ＲＯＭやＤＶＤ-ＲＯＭ等の可搬性を有する記憶媒体９０８から情報を読み取る読取装置９０７とを含んで構成される。
【００３１】
＜機能＞
続いて、各情報処理装置が備える機能について説明する。まず、第１の情報処理システム５０を構成する情報処理装置が備える機能について説明する。
【００３２】
図３は、送信側装置１００が備える機能の一例を説明する図である。なお、送信側装置２００もこれと同様の機能を有する。
【００３３】
同図に示すように、送信側装置１００は、鍵生成部１０１、署名鍵記憶部１０２、入力部１０３、送信先指定部１０４、第１署名生成部１０５、第２署名生成部、及び暗号化部１０７、及び送信部１０８を備える。送信側装置１００は、メッセージに対して署名付き暗号化処理を実行し、得られた署名付き暗号文を直接に、又は中継装置５００を介して、受信側装置３００や受信側装置４００に送信する。
【００３４】
鍵生成部１０１は、互いに対応する第１の鍵及び第２の鍵のペアを生成する。本実施形態では、鍵生成部１０１は、ワンタイム署名方式の鍵生成アルゴリズムに基づき、第１の鍵としてワンタイム署名用の公開鍵（以下、ｏｐｋともいう）を生成し、第２の鍵としてワンタイム署名用の秘密鍵（以下、ｏｓｋともいう）を生成するものとする。
【００３５】
具体的には、鍵生成部１０１は、第１署名生成部１０５の処理に先立って、第１の鍵及び第２の鍵のペアを生成するものとする。
【００３６】
なお、第１の鍵及び第２の鍵が生成されるタイミングは、第１署名生成部１０５又は第２署名生成部１０６の実行に関係なく、所定のタイミング、もしくは所定の周期であってもよい。
【００３７】
なお、第１の鍵（ｏｐｋ）は第１署名生成部１０５及び送信部１０８への入力として利用される。また、第２の鍵（ｏｓｋ）は第２署名生成部１０６への入力として利用される。
【００３８】
署名鍵記憶部１０２（以下、署名生成鍵記憶部ともいう）は、電子署名を生成するための鍵である、署名生成鍵を記憶する。署名生成鍵は、署名用（署名生成用。以下同じ。）の秘密鍵（以下、ｓｋＳともいう）を含む。なお、ｓｋＳは、第１署名生成部１０５への入力として利用される。また、ｓｋＳは、他の情報処理装置に送信されることの無いよう、安全な記憶領域に格納されることが必要であり、例えば、ＨＳＭ（Hardware Security Module）等の装置に記憶される。
【００３９】
入力部１０３は、暗号化対象のデータ（すなわち、メッセージ。以下、ｍともいう。）の入力を、入力装置９０６等への入力を介して受け付ける。なお、メッセージ（ｍ）は、第２署名生成部１０６及び暗号化部１０７への入力として利用される。
【００４０】
送信先指定部１０４は、メッセージの送信先である第２の情報処理システム６０の識別子（以下、Ｒという）を指定する（取得する）と共に、指定した送信先が生成した、暗号化に用いる鍵（以下、暗号化鍵、もしくはｐｋＲともいう。詳細は後述する。）を記憶する。本実施形態では、送信先指定部１０４は、受信側鍵生成装置３５０が生成した公開鍵（以下、ｐｋＲ１ともいう）を記憶しているものとする。
【００４１】
第１署名生成部１０５は、プロキシ再署名方式の署名生成アルゴリズムを実装した機能部であり、署名鍵記憶部１０２が記憶している署名生成鍵に基づき、鍵生成部１０１が生成した第１の鍵の電子署名である第１電子署名を生成する。
【００４２】
すなわち、第１署名生成部１０５は、署名鍵記憶部１０２が記憶している送信者の署名用の秘密鍵（ｓｋＳ）と、鍵生成部１０１が生成した第１の鍵（ｏｐｋ）とを取得すると、上記署名生成アルゴリズムにしたがって第１電子署名（以下、ｓ１ともいう）を生成する。なお、ｓｋＳは上記署名生成アルゴリズムにおける署名用の秘密鍵として利用されており、ｏｐｋは、上記署名生成アルゴリズムにおける署名対象のデータとして利用されている。生成されたｓ１は、送信部１０８への入力として利用される。
【００４３】
第２署名生成部１０６は、ワンタイム署名方式の署名生成アルゴリズムを実装した機能部であり、鍵生成部１０１が生成した第２の鍵に基づき、暗号化対象のデータ（メッセージ）の電子署名である第２電子署名を生成する。すなわち、第２署名生成部１０６は、鍵生成部１０１が生成した第２の鍵（ｏｓｋ）と、入力部１０３に入力されたメッセージ（ｍ）とを取得すると、上記署名生成アルゴリズムにしたがって第２電子署名（以下、ｓ２ともいう）を生成する。なお、ｏｓｋは上記署名生成アルゴリズムにおける署名用の秘密鍵として利用されており、ｍは上記署名生成アルゴリズムにおける署名対象のメッセージとして利用されている。
【００４４】
暗号化部１０７は、プロキシ再暗号化方式の暗号化アルゴリズムを実装した機能部であり、暗号化対象のデータ、及び第２署名生成部１０６が生成した第２電子署名を、送信先である第２の情報処理システム６０（具体的には、受信側装置３００又は受信側装置４００）が生成した鍵である暗号化鍵に基づき暗号化して暗号化データを生成する。
【００４５】
すなわち、暗号化部１０７は、送信先指定部１０４が記憶している暗号化鍵（ｐｋＲ）と、第２署名生成部１０６が生成した第２電子署名（ｓ２）と、入力部１０３に入力されたメッセージ（ｍ）とを取得すると、上記暗号化アルゴリズムにしたがって、暗号化データ（以下、ｃともいう）を生成する。なお、ｐｋＲは上記暗号化アルゴリズムにおける暗
号化用の公開鍵として利用されており、ｓ２及びｍは、上記暗号化アルゴリズムにおける、暗号化対象のデータとして利用されている。生成されたｃは、送信部１０８への入力として利用される。
【００４６】
送信部１０８は、鍵生成部１０１、第１署名生成部１０５、及び暗号化部１０７が生成したデータを、第２の情報処理システム６０に送信する。具体的には、例えば、送信部１０８は、鍵生成部１０１が生成した第１の鍵（ｏｐｋ）と、第１署名生成部１０５が生成した第１電子署名（ｓ１）と、暗号化部１０７が生成した暗号化データ（ｃ）とを取得すると、取得したこれらを署名付き暗号文（以下、（ｃ，ｏｐｋ，ｓ１）ともいう）とし、この署名付き暗号文を、送信先指定部１０４が取得した識別子（Ｒ）が示す送信先に送信する。なお、この送信には、例えば、ＴＣＰ／ＩＰ（Transmission Control Protocol/Internet Protocol）やＨＴＴＰ（Hypertext Transfer Protocol）等の汎用的なプロトコルを利用する。
【００４７】
次に、送信側鍵生成装置１５０、及び再署名鍵生成装置１７０が備える機能について説明する。
【００４８】
図４は、送信側鍵生成装置１５０が備える機能の一例を説明する図である。同図に示すように、送信側鍵生成装置１５０は、署名鍵生成部１５１を含んで構成される。
【００４９】
署名鍵生成部１５１は、プロキシ再署名方式の鍵生成アルゴリズムを実装した機能部である。すなわち、署名鍵生成部１５１は、署名用の秘密鍵（ｓｋＳ）と検証用の公開鍵（ｐｋＳ）とのペア（ｓｋＳ，ｐｋＳ）を生成する。このペアは、前記のように署名鍵記憶部１０２に格納される。
【００５０】
送信側鍵生成装置２５０も、送信側鍵生成装置１５０と同様に、署名生成鍵を生成する。そこで、以下では、送信側鍵生成装置１５０が生成した署名用の秘密鍵をｓｋＳ１といい、送信側鍵生成装置１５０が生成した検証用の公開鍵を、ｐｋＳ１という。また、送信側鍵生成装置２５０が生成した署名用の秘密鍵をｓｋＳ２といい、送信側鍵生成装置２５０が生成した検証用の公開鍵をｐｋＳ２という。
【００５１】
図５は、再署名鍵生成装置１７０が備える機能の一例を説明する図である。同図に示すように、再署名鍵生成装置１７０は、再署名鍵生成部１７１を含んで構成される。
【００５２】
再署名鍵生成部１７１は、プロキシ再署名方式の再署名鍵生成アルゴリズムを実装した機能部であり、署名検証用の公開鍵と、自身の第１の情報処理システム５０と異なる他の第１の情報処理システム５０（例えば、第１の情報処理システム５０（２））が生成した署名生成鍵（以下、他署名生成鍵という）とに基づき、再署名鍵（現在の電子署名を別の電子署名に変換する（又は新たに別の電子署名を生成する）ためのデータ。以下同じ。）を生成する。具体的には、例えば、再署名鍵生成部１７１は、送信側鍵生成装置１５０が生成した検証用の公開鍵（ｐｋＳ１）と、送信側鍵生成装置２５０が生成した署名用の秘密鍵（ｓｋＳ２）とを取得すると、送信側装置１００が生成した暗号化データの電子署名を送信側装置２００が生成した暗号化データの電子署名に変換する（送信側装置２００が検証可能とする。すなわち、再署名する。）ための再署名鍵（以下、ｒｓｋＳ１Ｓ２という）を生成する。
【００５３】
なお、送信側鍵生成装置１５０と、第１署名生成部１０５と、再署名鍵生成装置１７０と、後述する第１署名検証部３０３と、後述する署名検証部６０２とは、同一のプロキシ再署名方式に基づく処理を行う。すなわち、送信側鍵生成装置１５０が実装する鍵生成アルゴリズムと、第１署名生成部１０５が実装する署名生成アルゴリズムと、第１署名検証
部３０３が実装する署名検証アルゴリズムと、署名検証部６０２が実装する署名検証アルゴリズムと、再署名鍵生成装置１７０が実装する再署名鍵生成アルゴリズムとは、同一のプロキシ再署名方式に属するアルゴリズムである。
【００５４】
また、第１署名鍵生成部１０１と、第２署名生成部１０６と、後述する第２署名検証部３０５とは、同一の署名方式に基づく処理を行う。すなわち、第１署名鍵生成部１０１が実装する鍵生成アルゴリズムと、第２署名生成部１０６が実装する署名生成アルゴリズムと、第２署名検証部３０５が実装する署名検証アルゴリズムとは、同一の署名方式に属するアルゴリズムである。したがって、第１署名鍵生成部１０１が出力した、第１の鍵（ｏｐｋ）及び第２の鍵（ｏｓｋ）のペアのうち、ｏｓｋは第２署名生成部１０６が電子署名を生成する際に必要な署名用の秘密鍵として利用され、ｏｐｋは、第２署名検証部３０５が電子署名の検証用の公開鍵として利用される。
【００５５】
また、暗号化部１０７と、後述する復号部３０４と、後述する暗号化鍵生成部３５１と、後述する再暗号化鍵生成部３７１と、後述する再暗号化部６０３とは同一のプロキシ再暗号化方式に基づき機能する。すなわち、暗号化部１０７が実装する暗号化アルゴリズムと、復号部３０４が実装する復号アルゴリズムと、暗号化鍵生成部３５１が実装する鍵生成アルゴリズムと、再暗号化鍵生成部３７１が実装する再暗号化鍵生成アルゴリズムと、再暗号化部６０３が実装する再暗号化アルゴリズムとは、同一のプロキシ再暗号化方式に属するアルゴリズムである。
【００５６】
以上が第１の情報処理システム５０における各情報処理装置の説明である。
【００５７】
続いて、第２の情報処理システム６０を構成する情報処理装置が備える機能について説明する。
【００５８】
まず、受信側装置３００が備える機能について説明する。受信側装置３００は、送信側装置１００から、中継装置５００を介して新たな署名付き暗号文を受信し、又は、中継装置５００を介さずに送信側装置１００から直接、署名付き暗号文を受信する。そして、受信側装置３００は、受信した署名付き暗号文について、署名の検証及び復号を行い、メッセージを取得する。
【００５９】
図６は、受信側装置３００が備える機能の一例を説明する図である。同図に示すように、受信側装置３００は、受信部３０１、暗号化鍵記憶部３０２、第１署名検証部３０３、復号部３０４、第２署名検証部３０５、及び出力部３０６を備える。
【００６０】
受信部３０１は、第１の鍵、第１電子署名、及び暗号化データを受信する。具体的には、例えば、受信部３０１は、送信側装置１００又は中継装置５００から送信された署名付き暗号文（ｃ，ｏｐｋ，ｓ１）を受信する。また、受信部３０１は、送信側鍵生成装置１５０又は送信側鍵生成装置２５０が生成した検証用の公開鍵（ｐｋＳ）を受信する。なお、受信したｐｋＳ及びｓ１は、第１署名検証部３０３への入力として利用される。また、受信したｏｐｋは、第１署名検証部３０３及び第２署名検証部３０５への入力として利用される。また、受信したｃは、復号部３０４への入力として利用される。なお、これらの受信には、例えば、ＴＣＰ／ＩＰやＨＴＴＰ等の汎用的なプロトコルを利用する。
【００６１】
暗号化鍵記憶部３０２は、前記の暗号化鍵（ｐｋＲ）を記憶する。
【００６２】
また、暗号化鍵記憶部３０２は、暗号化鍵（ｐｋＲ）に対応する鍵である復号鍵（以下、ｓｋＲともいう）を記憶する。本実施形態では、ｓｋＲは秘密鍵であり、暗号化鍵記憶部３０２は、受信側鍵生成装置３５０が生成した復号鍵（以下、ｓｋＲ１ともいう）を記
憶しているものとする。なお、受信側装置４００の記憶部も同様に、復号鍵として、受信側鍵生成装置４５０が生成した復号鍵（以下、ｓｋＲ２ともいう）を記憶しているものとする。なお、ｓｋＲは、復号部３０４への入力として利用される。
【００６３】
なお、復号鍵は、他の情報処理装置に送信されないように、安全な記憶領域に格納されることが必要である。安全な記憶領域の確保には、例えば、ＨＳＭ（Hardware Security Module）等の装置を利用する。
【００６４】
第１署名検証部３０３は、プロキシ再署名方式の署名検証アルゴリズムを実装した機能部であり、受信部３０１が受信した第１電子署名の正当性を、署名生成鍵に対応する鍵である署名検証鍵と受信部３０１が受信した第１の鍵とに基づき検証する。具体的には、第１署名検証部３０３は、受信部３０１が生成した公開鍵（ｐｋＳ）と、第１電子署名（ｓ１）と、検証鍵（ｏｐｋ）とを取得すると、上記署名検証アルゴリズムにしたがって検証結果（検証成功を示す"Ｔ"または検証失敗を示す"Ｆ"）を出力する。なお、ｐｋＳは上記署名検証アルゴリズムにおける検証用の公開鍵として利用されており、ｏｐｋは上記署名検証アルゴリズムにおける検証に用いるメッセージとして利用されており、ｓ１は上記署名検証アルゴリズムにおける検証対象の電子署名として利用されている。出力された"Ｔ"又は"Ｆ"は、出力部３０６への入力として利用される。
【００６５】
復号部３０４は、プロキシ再暗号化方式の復号アルゴリズムを実装した機能部であり、受信部３０１が受信した暗号化データを、暗号化鍵に対応する鍵である復号鍵に基づき、暗号化対象のデータ及び第２電子署名に復号する。具体的には、復号部３０４は、暗号化鍵記憶部３０２が記憶している復号用の秘密鍵（ｓｋＲ）と、受信部３０１が受信した暗号化データ（ｃ）とを取得すると、上記復号アルゴリズムにしたがって暗号化データ（ｃ）を復号する。復号に成功した場合、復号部３０４は、第２電子署名（ｓ２）とメッセージ（ｍ）とを出力する。一方、復号に失敗した場合は、復号部３０４は、失敗を示すエラーコードを出力する。なお、ｓｋＲは、上記復号アルゴリズムにおける復号用の秘密鍵として利用されており、ｃは上記復号アルゴリズムにおける復号対象のデータとして利用されている。また、復号部３０４の出力は、出力部３０６への入力として利用される。
【００６６】
第２署名検証部３０５は、ワンタイム署名方式の署名検証アルゴリズムを実装した機能部であり、復号部３０４が復号した第２電子署名の正当性を、復号部３０４が復号した暗号化対象のデータ及び受信部３０１が受信した第１の鍵に基づき検証する。具体的には、第２署名検証部３０５は、復号部３０４が出力した第２電子署名（ｓ２）及びメッセージ（ｍ）と、受信部３０１が受信した検証用の公開鍵（ｏｐｋ）とを取得すると、上記署名検証アルゴリズムにしたがって検証結果（検証成功を示す"Ｔ"、又は検証失敗を示す"Ｆ"）を出力する。
【００６７】
出力部３０６は、第１電子署名、及び第２電子署名が正当であると検証された場合に、復号部３０４が復号した暗号化対象のデータを出力する。
【００６８】
具体的には、出力部３０６は、第１署名検証部３０３の署名検証結果と、復号部３０４が出力したメッセージ（ｍ）又はエラーコードと、第２署名検証部３０５の署名検証結果とを取得する。そして出力部３０６は、上記２つの署名検証結果のいずれかが検証失敗を示す"Ｆ"をあった場合、もしくは、エラーコードが出力された場合には、その旨の情報を出力装置９０５に出力する。これにより、受信側装置３００の利用者に、受信した署名付き暗号文に問題（不正な書き換え等）があったことを示す。一方、上記２つの署名検証結果双方が"Ｔ"であり、かつエラーコードが出力されなかった場合には、出力部３０６は、復号部３０４が出力したメッセージ（ｍ）を出力装置９０５に出力する。これにより、受信側装置３００の利用者に、検証が成功したことを示す。すなわち、復号部３０４が出力
したメッセージ（ｍ）は、公開鍵（ｐｋＳ）に対応する、第１の情報処理システム５０から送信された正当なメッセージ（データ）であることが保証される。
【００６９】
なお、本実施形態では、出力部３０６は、第１署名検証部３０３の署名検証結果と、復号部３０４の復号結果と、第２署名検証部３０５の署名検証結果とが全て生成又は出力されるまで待機することを前提とするが、出力部３０６は、上記いずれかの結果がエラーを示した場合に、他の結果の生成又は出力を待たずして、直ちにエラーコードを出力するようにしてもよい。
【００７０】
次に、受信側鍵生成装置３５０、及び再暗号化鍵生成装置３７０の機能について説明する。
【００７１】
図７は、受信側鍵生成装置３５０が備える機能の一例を説明する図である。同図に示すように、受信側鍵生成装置３５０は、暗号化鍵生成部３５１を含んで構成されている。
【００７２】
暗号化鍵生成部３５１は、プロキシ再暗号化方式の鍵生成アルゴリズムを実装しており、暗号化鍵に対応する鍵である復号鍵（ｓｋＲ）を生成する。本実施形態では、復号鍵（ｓｋＲ）は秘密鍵であり、暗号化鍵生成部３５１は、上記プロキシ再暗号化方式のアルゴリズムの実行に用いる、秘密鍵である復号鍵（ｓｋＲ）と、公開鍵である暗号化鍵（ｐｋＲ）のペアを生成するものとする。このペアは、暗号化鍵記憶部３０２に格納される。
【００７３】
図８は、再暗号化鍵生成装置３７０が備える機能の一例を説明する図である。同図に示すように、再暗号化鍵生成装置３７０は、再暗号化鍵生成部３７１を含んで構成されている。
【００７４】
再暗号化鍵生成部３７１は、プロキシ再暗号化方式の再暗号化鍵生成アルゴリズムを実装した機能部であり、暗号化データを、自身が属する第２の情報処理システム６０とは異なる他の第２の情報処理システム６０で復号可能なデータに再暗号化するための鍵である再暗号化鍵を、他の第２の情報処理システム６０が生成した暗号化鍵に基づき生成する。具体的には、再暗号化鍵生成部３７１は、受信側鍵生成装置３５０が生成した復号鍵（以下、ｓｋＲ１ともいう）と、受信側鍵生成装置４５０が生成した暗号化鍵（以下、ｐｋＲ２ともいう）とを取得すると、受信側装置３００が復号可能な署名付き暗号文を受信側装置４００が復号可能な署名付き暗号文に変換（再暗号化）するための再暗号化鍵（以下、ｒｅｋＲ１Ｒ２ともいう）を生成する。
【００７５】
以上が、受信側装置３００に機能についての説明である。なお、受信側装置４００も受信側装置３００と同様の機能を有するので、説明は省略する。
続いて、中継装置５００が備える機能について説明する。
【００７６】
中継装置５００は、送信側装置１００又は送信側装置２００（以下、送信元装置という）からの依頼を受けて、署名付き暗号文（ｃ，ｏｐｋ，ｓ１）の再暗号化処理、すなわち、署名付き暗号文（ｃ，ｏｐｋ，ｓ１）に含まれる暗号化データ（ｃ）を変換（再暗号化）した新たな署名付き暗号文（以下、この新たな署名付き暗号文を（ｃ'，ｏｐｋ，ｓ１
）ともいう）を生成する処理を行う。また、中継装置５００は、送信元装置からの依頼を受けて、再署名処理、すなわち、新たな署名生成鍵に基づく新たな電子署名を署名付き暗号文（ｃ，ｏｐｋ，ｓ１）に付加した新たな署名付き暗号文（以下、この新たな署名付き暗号文を（ｃ，ｏｐｋ，ｓ'１）ともいう）を生成する処理を行う。
【００７７】
図９は、中継装置５００が備える機能の一例を説明する図である。同図に示すように、中継装置５００は、受信部５０１、鍵記憶部５０２、委託処理部５０５、及び送信部５０
６を備える。
【００７８】
受信部５０１は、第１の情報処理システム５０が送信した署名付き暗号文（ｃ，ｏｐｋ，ｓ１）と、ｐｋＳと、第２の情報処理システム６０の識別子（Ｒ）とを受信する。具体的には、例えば、受信部５０１は、署名付き暗号文（ｃ，ｏｐｋ，ｓ１）と、送信側鍵生成装置１５０が生成した検証用の公開鍵（ｐｋＳ１）と、受信側装置３００の識別子（以下、Ｒ１という）とを受信する。なお、受信した（ｃ，ｏｐｋ，ｓ１）、ｐｋＳ、及びＲは、委託処理部５０５への入力として利用される。なお、この受信には、例えば、ＴＣＰ／ＩＰやＨＴＴＰ等の汎用的なプロトコルを利用する。
【００７９】
鍵記憶部５０２は、再暗号及び再署名に用いる鍵に関する情報を記憶する。具体的には、例えば、鍵記憶部５０２は、再暗号化鍵生成装置３７０が生成した再暗号化鍵（ｒｅｋＲ１Ｒ２）と、再署名鍵生成装置１７０が生成した再署名鍵（ｒｓｋＳ１Ｓ２）とを記憶する。
ここで、鍵記憶部５０２が記憶する情報（テーブル）について説明する。
【００８０】
図１０は、鍵記憶部５０２が記憶するテーブルのうち、再暗号鍵に関する情報を格納したテーブル（以下、再暗号化鍵管理テーブル５０３という）の一例を示す図である。同図に示すように、再暗号化鍵管理テーブル５０３は、再暗号化前送信先５０３１、再暗号化後送信先５０３２、及び再暗号化鍵５０３３の各項目を有する、少なくとも１つ以上のレコードを含んで構成される。再暗号化前送信先５０３１には、受信部５０１が受信した署名付き暗号文（再暗号化前の署名付き暗号文）を復号可能な装置の識別子（例えば、受信側装置３００の識別子（Ｒ１）。もしくは、送信側装置１００を表す文字列等でもよい。）が格納され、再暗号化後送信先５０３２には、再暗号化された新たな署名付き暗号文（再暗号化後の署名付き暗号文）を復号可能な装置の識別子（例えば、受信側装置４００を示す識別子（以下、Ｒ２という）。もしくは、受信側装置４００を表す文字列等でもよい。）が格納され、再暗号化鍵５０３３には、再暗号化鍵（例えば、ｒｅｋＲ１Ｒ２）もしくは再暗号化鍵を表すハッシュ値等が格納される。
【００８１】
図１１は、鍵記憶部５０２が記憶するテーブルのうち、再署名鍵に関する情報を格納したテーブル（以下、再署名鍵管理テーブル５０４という）の一例を示す図である。同図に示すように、再署名鍵管理テーブル５０４は、再署名前送信元５０４１、再署名後送信元５０４２、及び再署名鍵５０４３の各項目を有する、少なくとも１つ以上のレコードを含んで構成される。再署名前送信元５０４１には、受信部５０１が受信した署名付き暗号文の電子署名を生成した装置（以下、再署名前装置という）を特定する情報が格納され、再署名後送信元５０４２には、再署名された新たな署名付き暗号文の電子署名を生成した装置（以下、再署名後装置という）を特定する情報が格納され、再署名鍵５０４３には、再署名前送信元５０４１が示す装置が生成した署名付き暗号文の電子署名を再署名後送信元５０４２が示す装置が生成した署名付き暗号文の電子署名に変換する（再署名する）ための鍵である再署名鍵（例えば、送信側装置１００が生成した署名付き暗号文の電子署名を送信側装置２００が生成した署名付き暗号文の電子署名に変換するための再署名鍵（以下、ｒｓｋＳ１Ｓ２ともいう）を特定する情報が格納される。本実施形態では、再署名前送信元５０４１には、送信側装置１００が生成した署名検証用の公開鍵、もしくはこれを表すハッシュ値（以下、ｐｋＳ１ともいう）が格納され、再署名後送信元５０４２には、送信側装置２００が生成した署名検証用の公開鍵、もしくはこれを表すハッシュ値（以下、ｐｋＳ２ともいう）が格納されるものとする。
【００８２】
委託処理部５０５は、受信部５０１が受信した署名付き暗号文（ｃ，ｏｐｋ，ｓ１）を、鍵記憶部５０２が記憶している情報に従って再暗号化するように、再暗号化装置６００に依頼する。また、委託処理部５０５は、受信部５０１が受信した署名付き暗号文（ｃ，
ｏｐｋ，ｓ１）を、鍵記憶部５０２が記憶している情報に従って再署名するように、再署名装置７００に依頼する。
【００８３】
具体的には、例えば、委託処理部５０５は以下の処理を行う。
まず、委託処理部５０５は、再暗号化鍵管理テーブル５０３のレコードのうち、受信部５０１が受信した受信側装置３００の識別子（Ｒ１）が再暗号化前送信先５０３１に格納されているレコードを取得し、取得したレコードにおける再暗号化後送信先５０３２の内容（受信側装置４００を示す識別子（Ｒ２））と、再暗号化鍵５０３３の内容（受信側装置３００が復号可能な署名付き暗号文を受信側装置４００が復号可能な署名付き暗号文に変換（再暗号化）するための再暗号化鍵（ｒｅｋＲ１Ｒ２））とを取得する。そして委託処理部５０５は、再暗号化装置６００に対して、（ｃ，ｏｐｋ，ｓ１）と、ｐｋＳ１と、ｒｅｋＲ１Ｒ２とを送信することにより再暗号化を依頼する。
【００８４】
この依頼の結果、委託処理部５０５が再暗号化装置６００からエラーコードを受信した場合は、送信側装置１００に対して中継処理の失敗を意味するエラーコードを送信する。一方、委託処理部５０５が再暗号化装置６００から（ｃ'，ｏｐｋ，ｓ１）を受信した場
合は、委託処理部５０５は、以下に説明する再署名処理を実行する。
【００８５】
すなわち、再署名処理では、まず委託処理部５０５は、再署名鍵管理テーブル５０４のレコードのうち、受信部５０１が受信した、送信側鍵生成装置１５０が生成した検証用の公開鍵（ｐｋＳ１）の内容が再署名前送信元５０４１に格納されているレコードを取得し、取得したレコードの、再署名後送信元５０４２の内容（送信側鍵生成装置２５０が生成した検証用の公開鍵（ｐｋＳ２））と、再署名鍵５０４３の内容（送信側装置１００が生成した暗号化データの電子署名を送信側装置２００が生成した暗号化データの電子署名に変換する（再署名する）ための再署名鍵（ｒｓｋＳ１Ｓ２））とを取得する。そして委託処理部５０５は、再署名装置７００に対して、署名付き暗号文（ｃ，ｏｐｋ，ｓ１）と、ｐｋＳ１と、ｐｋＳ２と、ｒｓｋＳ１Ｓ２とを送信することにより、再署名処理を依頼する。
【００８６】
この依頼の結果、委託処理部５０５が、再署名装置７００からエラーコードを受信した場合は、送信側装置１００に対して中継の失敗を意味するエラーコードを送信する。一方、委託処理部５０５が、再署名装置７００から（ｃ，ｏｐｋ，ｓ'１）を受信した場合は
、送信部５０６に対して、再暗号化データ（ｃ'）と、第１の鍵（ｏｐｋ）と、後述する
再電子署名（以下、ｓ'１ともいう）とを結合したデータ（以下、（ｃ'，ｏｐｋ，ｓ'１
）という）と、送信側鍵生成装置２５０が生成した検証用の公開鍵（ｐｋＳ２）と、受信側装置４００を示す識別子（Ｒ２）とを送信する。
【００８７】
送信部５０６は、委託処理部５０５から送信された（ｃ'，ｏｐｋ，ｓ'１）、及びｐｋＳ２を、Ｒ２が示す装置（受信側装置４００）へ送信する。なお、送信部５０６は、前記説明した委託処理部５０５の処理の途中で何らかのエラーが発生した場合には、そのエラーコードを、署名付き暗号文（ｃ，ｏｐｋ，ｓ１）を送信してきた第１の情報処理システム５０（具体的には、送信側装置１００）に送信する。
【００８８】
なお、以上に説明したように、本実施形態では、委託処理部５０５は、再暗号化処理を実行した後に再署名処理を実行するものとしたが、これとは逆に、委託処理部５０５は、再署名処理を実行した後に再暗号化処理を実行するようにしてもよい。また、委託処理部５０５は、再暗号化処理のみを実行して再署名処理は実行しないようにしてもよいし、再署名処理のみを実行して再暗号化処理は実行しないようにしてもよい。
【００８９】
また、委託処理部５０５は、署名付き暗号文（ｃ，ｏｐｋ，ｓ１）を送信してきた第１
の情報処理システム５０（例えば、送信側装置１００）から、実行すべき再署名処理や再暗号化処理についての指示（例えば、再署名鍵や再暗号化鍵を示す情報）を受信した場合には、当該指示に従って、再暗号化装置６００に対する再暗号化処理の委託や、再署名装置７００に対する再署名処理の委託を実行するようにしてもよい。
【００９０】
また、本実施形態では、再署名鍵管理テーブル５０４の各レコードの再署名前送信元５０４１及び再署名後送信元５０４２には、それぞれ１つの装置の情報が格納されるものとしているが、再署名前送信元５０４１には１つの装置の情報（例えば、ｐｋＳ１）が格納されるのに対して、再署名後送信元５０４２に複数の装置の情報を格納するようにしてもよい。また、本実施形態では、再暗号化鍵管理テーブル５０３の各レコードの再暗号化前送信先５０３１及び再暗号化後送信先５０３２にはそれぞれ１つの装置の情報が格納されるものとしているが、再暗号化前送信先５０３１には１つの装置の情報（例えば、Ｒ１）が格納されるのに対して再暗号化後送信先５０３２には複数の装置の情報が格納されるようにしてもよい。
【００９１】
以上が中継装置５００が備える機能についての説明である。続いて、再暗号化装置６００が備える機能について説明する。
【００９２】
再暗号化装置６００は、中継装置５００からの委託を受けて、署名付き暗号文（ｃ，ｏｐｋ，ｓ１）に対する再暗号化処理を実行する。
【００９３】
図１２は、再暗号化装置６００が備える機能の一例を説明する図である。同図に示すように、再暗号化装置６００は、受信部６０１、署名検証部６０２、再暗号化部６０３、及び送信部６０４を備える。
【００９４】
受信部６０１は、中継装置５００から送信された署名付き暗号文（ｃ，ｏｐｋ，ｓ１）と、署名検証用の公開鍵（ｐｋＳ）と、再暗号化鍵（例えば、ｒｅｋＲ１Ｒ２）とを受信する。受信したｏｐｋ、及びｓ１は、署名検証部６０２および送信部６０４への入力として利用される。また、受信したｐｋＳは署名検証部６０２への入力として利用される。また、受信したｃ、及び再暗号化鍵（例えば、ｒｅｋＲ１Ｒ２）は、再暗号化部６０３への入力として利用される。なお、これらの受信には、例えば、ＴＣＰ／ＩＰやＨＴＴＰ等の汎用的なプロトコルを利用する。
【００９５】
署名検証部６０２は、プロキシ再署名方式の署名検証アルゴリズムを実装した機能部であり、受信部６０１が受信した検証用の公開鍵（ｐｋＳ）と、ｓ１（第１電子署名）と、ｏｐｋ（第１の鍵）とを取得すると、上記署名検証アルゴリズムにしたがって検証結果（検証成功を示す"Ｔ"、又は検証失敗を示す"Ｆ"）を出力する。なお、ｐｋＳは上記署名検証アルゴリズムにおける検証用の公開鍵として利用され、ｏｐｋは上記署名検証アルゴリズムにおける検証対象のデータとして利用され、ｓ１は上記署名検証アルゴリズムにおける検証対象の電子署名として利用される。出力された検証結果（"Ｔ"、又は"Ｆ"）は送信部６０４への入力として利用される。
【００９６】
再暗号化部６０３は、プロキシ再暗号化方式の再暗号化アルゴリズムを実装した機能部であり、再暗号化鍵生成部３７１が生成した再暗号化鍵に基づき、再暗号化データを生成して送信する。具体的には、例えば、再暗号化部６０３は、受信部６０１が受信したｃ（暗号化データ）と、再暗号化鍵（例えば、ｒｅｋＲ１Ｒ２）とを取得すると、上記再暗号化アルゴリズムにしたがって再暗号化データ（以下、ｃ'ともいう）を生成し、又は再暗
号化の失敗を示すエラーコードを出力する。すなわち、再暗号化に成功した場合、再暗号化部６０３は、再暗号化データ（ｃ'）を生成し、一方、再暗号化に失敗した場合は、エ
ラーコードを出力する。なお、再暗号化鍵（例えば、ｒｅｋＲ１Ｒ２）は上記再暗号化ア
ルゴリズムにおける再暗号化鍵として利用され、ｃは上記再暗号化アルゴリズムにおける再暗号化対象のデータとして利用される。また、再暗号化部６０３が生成したデータは送信部６０４に入力される。
【００９７】
送信部６０４は、受信部６０１が受信したｏｐｋ、及びｓ１と、署名検証部６０２が出力した検証結果（"Ｔ"、又は"Ｆ"）と、再暗号化部６０３が出力した再暗号化データ（ｃ'）又はエラーコードとを取得する。この際、送信部６０４は、検証結果として"Ｆ"を取
得したか、もしくはエラーコードを取得した場合には、中継装置５００へ所定のエラーコードを送信し、再暗号化処理に失敗したことを示す。一方、送信部６０４は、検証結果として"Ｔ"を取得し、かつエラーコードを取得しなかった場合には、中継装置５００に、ｃ'、ｏｐｋ、及びｓ１を結合した新たな署名付き暗号文（ｃ'，ｏｐｋ，ｓ１）を送信する。なお、以上のデータの送信には、例えば、ＴＣＰ／ＩＰやＨＴＴＰ等の汎用的なプロトコルを利用する。
【００９８】
なお、本実施形態では、送信部６０４は、署名検証部６０２が出力した検証結果と、再暗号化部６０３の再暗号化結果とを全て取得するまで他の処理を行わないものとするが、送信部６０４は、そのような待機をせず、"Ｆ"もしくはエラーコードを取得した時点で、直ちにエラーコードを出力してもよい。
【００９９】
以上が再暗号化装置６００が備える機能についての説明である。続いて、再署名装置７００が備える機能について説明する。
【０１００】
再署名装置７００は、中継装置５００からの委託を受けて、署名付き暗号文に対して再署名処理を実行する。
【０１０１】
図１３は、再署名装置７００が備える機能の一例を説明する図である。同図に示すように、再署名装置７００は、受信部７０１、再署名部７０２、及び送信部７０３を備える。
【０１０２】
受信部７０１は、中継装置５００から送信された暗号化データ（ｃ）と、第１の鍵（ｏｐｋ）と、第１電子署名（ｓ１）と、署名検証用の公開鍵と、再署名鍵とを受信する。具体的には、例えば、受信部７０１は、署名付き暗号文（ｃ，ｏｐｋ，ｓ１）と、送信側鍵生成装置１５０が生成した検証用の公開鍵（ｐｋＳ１）と、送信側鍵生成装置２５０が生成した検証用の公開鍵（ｐｋＳ２）と、ｒｓｋＳ１Ｓ２とを受信する。なお、受信したｏｐｋは、再署名部７０２、及び送信部７０３への入力として利用される。また、受信したｓ１、署名検証用の公開鍵、及び再署名鍵は、再署名部７０２への入力として利用される。また、受信したｃは送信部７０３への入力として利用される。なお、これらのデータの受信には、例えば、ＴＣＰ／ＩＰやＨＴＴＰ等の汎用的なプロトコルを利用する。
【０１０３】
再署名部７０２は、プロキシ再署名方式の再署名アルゴリズムを実装した機能部であり、再署名鍵生成部１７１が生成した再署名鍵に基づき、新たな第１電子署名である再電子署名（ｓ'１）を生成する。具体的には、例えば、再署名部７０２は、受信部７０１が受
信したｒｓｋＳ１Ｓ２と、ｐｋＳ１と、ｐｋＳ２と、第１電子署名（ｓ１）と、第１の鍵（ｏｐｋ）とを取得すると、上記再署名アルゴリズムにしたがってｓ'１を生成し、又は
エラーコードを出力する。なお、受信した再署名鍵は上記再署名アルゴリズムにおける再署名鍵として利用され、ｐｋＳ１は上記再署名アルゴリズムにおける、検証用の公開鍵として利用され、ｐｋＳ２は上記再署名アルゴリズムにおける、検証用の公開鍵として利用され、ｏｐｋは上記再署名アルゴリズムにおける検証対象のデータとして利用され、ｓ１は上記再署名アルゴリズムにおける再署名の対象となる電子署名として利用される。
【０１０４】
再署名に成功した場合、再署名部７０２は、再電子署名（ｓ'１）を出力する。一方、
再署名に失敗した場合は、再署名部７０２は、再署名の失敗を示すエラーコードを出力する。出力されたｓ'１、又はエラーコードは、送信部７０３への入力として利用される。
【０１０５】
送信部７０３は、受信部７０１が受信したｃ、及びｏｐｋと、再署名部７０２が生成した再電子署名（ｓ'１）又はエラーコードとを取得する。なお、再署名部７０２がエラー
コードを出力した場合、送信部７０３は、中継装置５００に、再署名処理に失敗したことを示すエラーコードを送信する。一方、送信部７０３は、エラーコードを出力しなかった場合、中継装置５００に、暗号化データ（ｃ）、第１の鍵（ｏｐｋ）、及び再電子署名（ｓ'１）を結合した、新たな署名付き暗号文（ｃ，ｏｐｋ，ｓ'１）を送信する。なお、これらのデータの送信には、例えば、ＴＣＰ／ＩＰやＨＴＴＰ等の汎用的なプロトコルを利用する。
以上が、再署名装置７００についての説明である。
【０１０６】
なお、以上に説明した各情報処理装置の機能は、各情報処理装置のハードウエアによって、各情報処理装置の制御装置９０１が、主記憶装置９０２、補助記憶装置９０３、又は記憶媒体９０８に格納されているプログラム（各種の動作を行うためのコードから構成される）を読み出して実行することにより実現される。また、他の情報処理装置から、ネットワーク２０等を介して取得したものであってもよい。
【０１０７】
＜処理説明＞
次に、暗号化システム１０で行われるデータ処理について説明する。
本実施形態では、第１の情報処理システム５０（１）（具体的には、送信側装置１００）が生成した署名付き暗号文を、第１の情報処理システム５０（２）（具体的には、送信側装置２００）が生成した署名付き暗号文に変換する（すなわち、第１の情報処理システム５０（２）が検証可能とする）再署名処理と、第１の情報処理システム５０（１）が生成した、第２の情報処理システム６０（１）（具体的には、受信側装置３００）が検証可能な署名付き暗号文を、第２の情報処理システム６０（２）（具体的には、受信側装置４００）が検証可能な署名付き暗号文に変換する再暗号化処理とを含む処理（以下、再暗号化再署名処理という）について説明する。
図１４、及び図１５は、再暗号化再署名処理の一例を説明する図である。
【０１０８】
なお、再暗号化再署名処理が行われる前に、送信側鍵生成装置１５０は、送信側装置１００の利用者（以下、第１の送信者ともいう）の入力等に基づき、署名用の秘密鍵（ｓｋＳ１）と検証用の公開鍵（ｐｋＳ１）とを生成し、生成したこれらを送信側装置１００の署名鍵記憶部１０２へ格納しているものとする。また、送信側鍵生成装置２５０も同様に、送信側装置２００の利用者（以下、第２の送信者ともいう）の入力等に基づき、署名用の秘密鍵（ｓｋＳ２）と検証用の公開鍵（ｐｋＳ２）とを生成し、生成したこれらを送信側装置２００に格納しているものとする。また、受信側装置３００の利用者（以下、第１の受信者ともいう）の入力等に基づき、受信側鍵生成装置３５０は、復号用の秘密鍵（ｓｋＲ１）と公開鍵（ｐｋＲ１）とを生成し、生成したこれらを受信側装置３００に格納しているものとする。また、受信側装置４００の利用者（以下、第２の受信者ともいう）の入力等に基づき、受信側鍵生成装置４５０も同様に、復号用の秘密鍵（ｓｋＲ２）と公開鍵（ｐｋＲ２）とを生成し、生成したこれらを受信側装置４００の暗号化鍵記憶部に格納しているものとする。
【０１０９】
図１４は、再暗号化再署名処理Ｓ１０の概要を説明するフローチャートである。同図に示すように、再暗号化再署名処理Ｓ１０は、（１）再署名鍵の生成に係る処理（以下、再署名鍵生成処理Ｓ１００という）と、（２）再暗号化鍵の生成に係る処理（以下、再暗号化鍵生成処理Ｓ２００という）と、（３）署名付き暗号文の生成に係る処理（以下、署名付き暗号化処理Ｓ３００という）と、（４）署名付き暗号文を中継装置５００を介さずに
第２の情報処理システム６０に送信する処理（以下、直接送信処理Ｓ４００という）、又は（５）署名付き暗号文を中継装置５００を介して第２の情報処理システム６０に送信する処理（以下、中継送信処理Ｓ５００という）とを、この順に実行する。
【０１１０】
なお、再暗号化再署名処理Ｓ１０は、必ずしもこの順に処理が実行される必要はない。例えば、（１）再署名鍵生成処理Ｓ１００と（２）再暗号化鍵生成処理Ｓ２００は、この逆の順序で実行されてもよい。また、（１）再署名鍵生成処理Ｓ１００や（２）再暗号化鍵生成処理Ｓ２００は、（３）署名付き暗号化処理Ｓ３００や（４）直接送信処理Ｓ４００の後に実行されてもよい。また、いくつかの処理は省略されてもよい。例えば、（４）直接送信処理Ｓ４００と（５）中継送信処理Ｓ５００は、両方が実行されてもよいし、どちらか一方のみが実行されてもよい。
【０１１１】
図１５は、再署名鍵生成処理Ｓ１００、及び再暗号化鍵生成処理Ｓ２００の一例を説明するシーケンス図である。
【０１１２】
再署名鍵生成処理Ｓ１００は、以下の通りである。同図に示すように、送信側装置１００は、署名鍵記憶部１０２に格納されている、送信側鍵生成装置１５０が生成した検証用の公開鍵（ｐｋＳ１）を送信側装置２００へ送信する（Ｓ０１）。なお、送信側装置２００はｐｋＳ１を送信側装置１００から受信するのではなく、例えば第１の送信者等が管理する、ｐｋＳ１が記憶されている記憶装置（リポジトリ）から取得するようにしてもよい。
【０１１３】
送信側装置２００は、検証用の公開鍵（ｐｋＳ１）と、暗号化鍵記憶部２０２に格納されている、送信側鍵生成装置２５０が生成した署名用の秘密鍵（ｓｋＳ２）とを再署名鍵生成装置２７０へ送信する（Ｓ０２）。
【０１１４】
再署名鍵生成装置２７０は、送信側装置２００から送信されたｐｋＳ１、及びｓｋＳ２から、送信側装置１００が生成した署名付き暗号文を送信側装置２００の生成した署名付き暗号文として検証可能となるような署名に変換する（再署名する）ための再署名鍵（ｒｓｋＳ１Ｓ２）を生成し、生成したｒｓｋＳ１Ｓ２を送信側装置２００へ送信する（Ｓ０３）。具体的には、再署名鍵生成装置２７０が、再署名鍵生成アルゴリズムに基づいて、ｐｋＳ１及びｓｋＳ２から再署名鍵（ｒｓｋＳ１Ｓ２）を生成し、生成したｒｓｋＳ１Ｓ２を送信側装置２００に送信する。
【０１１５】
送信側装置２００は、再署名鍵生成装置２７０から送信されたｒｓｋＳ１Ｓ２と、送信側装置１００から送信された検証用の公開鍵（ｐｋＳ１）と、送信側鍵生成装置２５０が生成した検証用の公開鍵（ｐｋＳ２）とを中継装置５００に送信する（Ｓ０４）。
【０１１６】
中継装置５００は、送信側装置２００から送信されたｒｓｋＳ１Ｓ２を、ｐｋＳ１及びｐｋＳ２と共に、鍵記憶部５０２へ格納する（Ｓ０５）。
【０１１７】
以上により、中継装置５００は、送信側装置１００の検証用の公開鍵（ｐｋＳ１）で検証可能な署名付き暗号文を、送信側装置２００の検証用の公開鍵（ｐｋＳ２）で検証可能な署名付き暗号文に変換する、すなわち再署名することができる。
【０１１８】
（２）再暗号化鍵生成処理Ｓ２００は、以下の通りである。
Ｓ０６に示すように、受信側装置４００は、受信側鍵生成装置４５０が生成した公開鍵（ｐｋＲ２）を受信側装置３００に送信する。なお、受信側装置３００は、ｐｋＲ２を受信側装置４００から受信するのではなく、例えば第２の受信者等が管理する、ｐｋＲ２が記憶されている記憶装置（リポジトリ）から取得するようにしてもよい。
【０１１９】
受信側装置３００は、公開鍵（ｐｋＲ２）と、受信側鍵生成装置３５０が生成した復号用の秘密鍵（ｓｋＲ１）とを、再暗号化鍵生成装置３７０へ送信する（Ｓ０７）。
【０１２０】
再暗号化鍵生成装置３７０は、受信側装置３００から送信されたｓｋＲ１及びｐｋＲ２に基づき、受信側装置３００が復号可能な署名付き暗号文を受信側装置４００が復号可能な署名付き暗号文に変換（再暗号化）するための再暗号化鍵（ｒｅｋＲ１Ｒ２）を生成し、生成したｒｅｋＲ１Ｒ２を受信側装置３００に送信する（Ｓ０８）。具体的には、再暗号化鍵生成部３７１が、再暗号化鍵生成アルゴリズムに従って、ｓｋＲ１及びｐｋＲ２に基づきｒｅｋＲ１Ｒ２を生成し、生成したｒｅｋＲ１Ｒ２を受信側装置３００に送信する。
【０１２１】
受信側装置３００は、再暗号化鍵生成装置３７０から送信されたｒｅｋＲ１Ｒ２を、受信側装置４００から送信された公開鍵（ｐｋＲ２）と、受信側鍵生成装置３５０が生成した公開鍵（ｐｋＲ１）と共に中継装置５００に送信する（Ｓ０９）。
【０１２２】
中継装置５００は、受信側装置３００から送信されたｒｅｋＲ１Ｒ２を、ｐｋＲ１及びｐｋＲ２と共に鍵記憶部５０２に格納する（Ｓ１０）。
【０１２３】
以上により、中継装置５００は、受信側鍵生成装置３５０が生成した復号用の秘密鍵（ｓｋＲ１）で復号可能な署名付き暗号文を、受信側鍵生成装置４５０が生成した復号用の秘密鍵（ｓｋＲ２）で復号可能な署名付き暗号文に変換する、すなわち再暗号化することができる。
【０１２４】
図１６は、署名付き暗号化処理Ｓ３００、直接送信処理Ｓ４００、及び中継送信処理Ｓ５００の一例を説明するシーケンス図である。
【０１２５】
（３）署名付き暗号化処理Ｓ３００は、以下の通りである。
図１６に示すように、送信側装置１００は、メッセージ（ｍ）を、受信側鍵生成装置３５０が生成した公開鍵（ｐｋＲ１）、及び送信側鍵生成装置１５０が生成した署名用の秘密鍵（ｓｋＳ１）を用いて電子署名を生成し、かつ暗号化することで、署名付き暗号文（ｃ，ｏｐｋ，ｓ１）を生成する（Ｓ１１）。
【０１２６】
具体的には、例えば、まず送信側装置１００の利用者が、入力装置９０６等により、入力部１０３にｍを入力すると共に、送信先指定部１０４にｐｋＲ１を入力する。
【０１２７】
次に、署名鍵生成部１０１が、ｏｐｋ及びｏｓｋを生成する。そして、第１署名生成部１０５が、ｓｋＳ１を署名用の秘密鍵とし、ｏｐｋを署名対象のメッセージとして、プロキシ再署名方式の署名生成アルゴリズムに従って、第１電子署名（ｓ１）を生成する。
【０１２８】
次に、第２署名生成部１０６が、ｏｓｋを署名用の秘密鍵とし、ｍを署名対象のメッセージとして、ワンタイム署名方式の署名生成アルゴリズムに従って、第２電子署名（ｓ２）を生成する。
【０１２９】
そして、暗号化部１０７は、ｐｋＲ１を暗号化用の公開鍵とし、ｓ２及びｍを暗号化対象のデータとして、プロキシ再暗号化方式の暗号化アルゴリズムに従って、暗号化データ（ｃ）を生成する。
【０１３０】
（４）署名付き暗号文の直接送信処理Ｓ４００は、以下の通りである。
図１６に示すように、送信側装置１００の送信部１０８は、Ｓ１１で生成した署名付き
暗号文（ｃ，ｏｐｋ，ｓ１）を、送信側鍵生成装置１５０が生成した検証用の公開鍵（ｐｋＳ１）と共に、受信側装置３００に送信する（Ｓ１２）。
【０１３１】
受信側装置３００は、送信側装置１００から受信した署名付き暗号文（ｃ，ｏｐｋ，ｓ１）の検証及び復号処理を実行することにより、メッセージ（ｍ）を取得するか、もしくはエラーコードを出力する（Ｓ１３）。
【０１３２】
具体的には、まず、受信部３０１が、（ｃ，ｏｐｋ，ｓ１）及びｐｋＳ１を受信する。次に、第１署名検証部３０３が、ｐｋＳ１を検証用の公開鍵とし、ｏｐｋを検証対象のデータとし、ｓ１を検証対象の電子署名として、プロキシ再署名方式の署名検証アルゴリズムに従って、検証結果（"Ｔ"または"Ｆ"）を出力する。なお、検証失敗が"Ｆ"であった場合には、例えば、出力部３０６はエラーコードを出力し、本処理を終えてもよい。
【０１３３】
次に、復号部３０４が、ｓｋＲ１を復号用の秘密鍵とし、ｃを復号対象の暗号化データとして、プロキシ再暗号化方式の復号アルゴリズムを実行することでｍ及びｓ２を生成し、もしくは、復号失敗を示すエラーコードを出力する。なお、エラーコードが出力された場合、出力部３０６はそのエラーコードを出力し、本処理を終えてもよい。
【０１３４】
次に、第２署名検証部３０５が、ｏｐｋを検証用の公開鍵とし、ｍを検証対象のメッセージとし、ｓ２を検証対象の電子署名として、ワンタイム署名方式の署名検証アルゴリズムを実行することで、検証結果（"Ｔ"または"Ｆ"）を出力する。
【０１３５】
検証結果が"Ｆ"であるか、または復号部３０４がエラーコードを出力した場合には、第２署名検証部３０５は、エラーコードを出力する。これにより、受信側装置３００の利用者に、受信した署名付き暗号文に問題があったことを示す。なお、検証結果が"Ｆ"であった場合、出力部３０６が、エラーコードを出力し、本処理を終えてもよい。
【０１３６】
一方、検証結果がいずれも"Ｔ"であり、かつ、復号部３０４がエラーコードを出力しなかった場合には、第２署名検証部３０５は、復号部３０４が出力したメッセージ（ｍ）を出力する。これにより、受信側装置３００の利用者にその旨を提示する。
【０１３７】
以上の処理により、メッセージ（ｍ）は、送信元の公開鍵（ｐｋＳ１）に対応する、送信側装置１００から送られた正当なデータであることが保証される。
【０１３８】
（５）中継送信処理Ｓ５００は、以下の通りである。
図１６に示すように、送信側装置１００の送信部１０８は、Ｓ１１で生成した署名付き暗号文（ｃ，ｏｐｋ，ｓ１）を、送信側鍵生成装置１５０が生成した検証用の公開鍵（ｐｋＳ１）及び受信側装置３００の識別子（Ｒ１）と共に、中継装置５００に送信する（Ｓ１４）。
【０１３９】
中継装置５００の委託処理部５０５は、再暗号化鍵管理テーブル５０３を参照し、受信部５０１が受信した識別子（Ｒ１）が再暗号化前送信先５０３１に格納されているレコードを取得し、取得したレコードにおける再暗号化後送信先５０３２の識別子（Ｒ２）と、再暗号化鍵５０３３のｒｅｋＲ１Ｒ２とを取得する。次に、委託処理部５０５は、再暗号化装置６００に対して、（ｃ，ｏｐｋ，ｓ１）、ｐｋＳ１、及びｒｅｋＲ１Ｒ２を送信することにより、再暗号化処理を依頼する（Ｓ１５）。
【０１４０】
再暗号化装置６００は、中継装置５００から受信した署名付き暗号文（ｃ，ｏｐｋ，ｓ１）に対して再暗号化処理を実行し、再暗号化後の署名付き暗号文（ｃ'，ｏｐｋ，ｓ１
）を生成する（Ｓ１６）。
【０１４１】
具体的には、まず、受信部６０１は、署名付き暗号文（ｃ，ｏｐｋ，ｓ１）と、ｐｋＳ１と、ｒｅｋＲ１Ｒ２とを受信する。次に、第１署名検証部６０２は、ｐｋＳ１を検証用公開鍵とし、ｏｐｋを検証対象メッセージとし、ｓ１を検証対象の電子署名として、プロキシ再署名方式の署名検証アルゴリズムに従って、検証結果（"Ｔ"または"Ｆ"）を出力する。なお、検証結果が検証の失敗を示す"Ｆ"であった場合、送信部６０４は、中継装置５００へエラーコードを送信し、本処理を終えてもよい。
【０１４２】
次に、再暗号化部６０３が、ｒｅｋＲ１Ｒ２を再暗号化鍵とし、ｃを再暗号化対象のデータとして、プロキシ再暗号化方式の再暗号化アルゴリズムに従って、再暗号化データ（ｃ'）を生成し、もしくは再暗号化の失敗を示すエラーコードを出力する。なお、エラー
コードが出力された場合には、送信部６０４は、中継装置５００へそのエラーコードを送信し、本処理を終えてもよい。
【０１４３】
最後に、送信部６０４は、検証結果が"Ｆ"であったか、もしくは再暗号化部６０３がエラーコードを出力した場合には、中継装置５００にエラーコードを送信し、再暗号化処理に失敗したことを示す。一方、検証結果が"Ｔ"であり、かつ再暗号化部６０３がエラーコードを出力しなかった場合、送信部６０４は、中継装置５００に（ｃ'，ｏｐｋ，ｓ１）
を送信する（Ｓ１７）。
【０１４４】
中継装置５００の委託処理部５０５は、再暗号化装置６００から、再暗号化後の署名付き暗号文（ｃ'，ｏｐｋ，ｓ１）を受信すると、再署名鍵管理テーブル５０４から、送信
側鍵生成装置１５０が生成した検証用の公開鍵（ｐｋＳ１）が再署名前送信元５０４１に格納されているレコードを取得し、取得したレコードにおける、再署名後送信元５０４２の公開鍵（ｐｋＳ２）と、再署名鍵５０４３の再署名鍵（ｒｓｋＳ１Ｓ２）とを取得する。次に、委託処理部５０５は、再署名装置７００に対して、（ｃ'，ｏｐｋ，ｓ１）と、
ｐｋＳ１と、ｐｋＳ２と、ｒｓｋＳ１Ｓ２とを送信することにより、再署名処理を依頼する（Ｓ１８）。
【０１４５】
再署名装置７００は、中継装置５００から受信した再暗号化後の署名付き暗号文（ｃ'
，ｏｐｋ，ｓ１）に対して再署名処理を実行し、再暗号化後かつ再署名後の署名付き暗号文（ｃ'，ｏｐｋ，ｓ'１）を生成する（Ｓ１９）。
【０１４６】
具体的には、まず、受信部７０１は、中継装置５００から送信された署名付き暗号文（ｃ'，ｏｐｋ，ｓ１）と、送信側鍵生成装置１５０が生成した検証用の公開鍵（ｐｋＳ１
）と、送信側鍵生成装置２５０が生成した検証用の公開鍵（ｐｋＳ２）と、再署名鍵（ｒｓｋＳ１Ｓ２）とを受信する。次に、再署名部７０２が、ｒｓｋＳ１Ｓ２を再署名鍵とし、ｐｋＳ１を再署名前の電子署名の検証用の公開鍵とし、ｐｋＳ２を再署名後の電子署名の検証用の公開鍵とし、ｏｐｋを検証対象のデータとし、ｓ１を再署名前の電子署名として、プロキシ再署名方式の再署名アルゴリズムに従って、再電子署名（ｓ'１）を生成し
、もしくはエラーコードを出力する。なお、エラーコードが出力された場合には、送信部７０３は中継装置５００にそのエラーコードを送信し、本処理を終えてもよい。一方、エラーコードが出力されなければ、送信部７０３は中継装置５００に、（ｃ'，ｏｐｋ，ｓ'１）を送信する（Ｓ２０）。
【０１４７】
中継装置５００の委託処理部５０５は、（ｃ'，ｏｐｋ，ｓ'１）を受信すると、送信部５０６を介して、（ｃ'，ｏｐｋ，ｓ'１）及びｐｋＳ２を、識別子がＲ２である受信側装置４００に送信する（Ｓ２１）。
【０１４８】
受信側装置４００は、中継装置５００から受信した（ｃ'，ｏｐｋ，ｓ'１）の検証及び
復号処理を実行し、メッセージ（ｍ）を生成するか、もしくはエラーコードを出力する（Ｓ２２）。
【０１４９】
具体的には、まず、受信側装置４００が（ｃ'，ｏｐｋ，ｓ'１）、及びｐｋＳ２を受信する。次に、受信側装置４００が、ｐｋＳ２を検証用の公開鍵とし、ｏｐｋを検証対象のデータとし、ｓ'１を検証対象の電子署名として、プロキシ再署名方式の署名検証アルゴ
リズムに従って、検証結果（"Ｔ"または"Ｆ"）を出力する。なお、検証結果が検証失敗を示す"Ｆ"であった場合には、受信側装置４００はエラーコードを出力し、本処理を終えてもよい。
【０１５０】
次に、受信側装置４００は、ｓｋＲ２を復号用の秘密鍵とし、ｃ'を復号対象のデータ
として、プロキシ再暗号化方式の復号アルゴリズムに従って、ｍ及びｓ２を生成し、もしくは復号失敗を示すエラーコードを出力する。なお、エラーコードが出力された場合には、受信側装置４００はそのエラーコードを出力し、本処理を終えてもよい。
【０１５１】
次に、受信側装置４００は、ｏｐｋを検証用の公開鍵とし、ｍを検証対象のメッセージとし、ｓ２を検証対象の電子署名として、ワンタイム署名方式の署名検証アルゴリズムに従って、検証結果（"Ｔ"または"Ｆ"）を出力する。なお、検証結果が検証失敗を示す"Ｆ"であった場合には、受信側装置４００はエラーコードを出力し、本処理を終えてもよい。
【０１５２】
このように、署名検証結果のいずれかが検証失敗を示す"Ｆ"であるか、またはエラーコードが出力された場合には、受信側装置４００がエラーコードを出力することで、受信した署名付き暗号文に問題があったことを利用者に示す。
【０１５３】
一方、検証結果のいずれも"Ｔ"であり、かつエラーコードが出力されなかった場合、受信側装置４００は、生成されたメッセージ（ｍ）を受信側装置４００に出力することにより、利用者に提示する。
【０１５４】
以上により、受信側装置４００が受信したメッセージ（ｍ）は、送信元の装置の公開鍵（ｐｋＳ２）に対応する、送信側装置２００から送られた正当なデータであることが保証される。
【０１５５】
以上が第１実施形態における暗号化システム１０の処理手順についての説明である。
【０１５６】
以上に説明したように、本実施形態の暗号化システム１０によれば、第１の情報処理システム５０は、暗号化対象のデータ及び第２電子署名（ｓ２）を暗号化鍵に基づき暗号化して第２の情報処理システム６０に送信し、一方、第２の情報処理システム６０は、暗号化鍵（ｐｋＲ）に対応する鍵である復号鍵（ｓｋＲ）に基づき暗号化したデータ及び第２電子署名を復号し、第２電子署名が正当であると検証した場合に、復号した暗号化対象のデータを出力する。これにより、暗号化対象のデータを確実に暗号化し、かつ正当性のある電子署名（第２電子署名）がなされている場合にのみ、そのデータを復号して出力することができる。また、本実施形態の暗号化システム１０は、第１の鍵（ｏｐｋ）の電子署名である第１電子署名（ｓ１）が正当であると検証された場合にのみ、復号されたデータを出力するので、第１の鍵が何らかの事情で不正に書き換えられた場合には復号を行わない。このように、本実施形態の暗号化システム１０によれば、暗号化対象のデータを確実に暗号化し、また、安全に正しく復号することができる。
【０１５７】
特に、本実施形態の暗号化システム１０は、暗号化データと、暗号化対象のデータの電子署名が別々のデータとして第１の情報処理システム５０から送信されるので、再署名再暗号化が可能となる。すなわち従来のSign-then-Encrypt方式を利用した再署名再暗号化
で生じるような不都合、すなわち、暗号文の中に電子署名が包まれているため、プロキシはその暗号文を復号して電子署名を取得することができないという不都合を回避でき、また、Encrypt-then-Sign方式とも根本的に異なるので、再署名再暗号化が可能となる。
【０１５８】
また、本実施形態の暗号化システム１０によれば、再署名鍵生成部１７１が新たな署名生成鍵（再署名鍵）に基づき再電子署名を生成し、第１署名検証部３０３が再電子署名の正当性を検証するので、例えば、再電子署名が不正に書き換えられた場合には復号は行われない。すなわち、本実施形態の暗号化システム１０によれば、再署名を正しくかつ安全に行うことができる。
【０１５９】
また、本実施形態の暗号化システム１０によれば、再暗号化鍵生成部３７１が再暗号化鍵を生成し、再暗号化部６０３が再暗号化データを送信し、前記の第２の情報処理システム６０とは異なる他の第２の情報処理システム６０が、再暗号化データを暗号化データとして受信し、その暗号化データを受信して再暗号化鍵に基づき復号するので、鍵に基づく再暗号化を行うことができる。これにより、再暗号化を正しくかつ安全に行うことができる。
【０１６０】
また、本実施形態の暗号化システム１０によれば、再暗号化部６０３は、第１電子署名の正当性が第１の鍵に基づき検証された場合に再暗号化データを生成して送信するので、暗号化データと第１電子署名とが正当に対応している場合にのみ再暗号化を受信側の装置に提供することができる。これにより、第１電子署名に不正な書き換え等が行われていないことを確認することができるので、再暗号化がより安全に行われる。
【０１６１】
また、本実施形態の暗号化システム１０では、第３の情報処理システム７０（プロキシ）が第１の情報処理システム５０から第１電子署名を受信し、新たな第１電子署名を生成して第２の情報処理システム６０に送信するので、いわゆるプロキシ再署名が可能となる。
【０１６２】
また、本実施形態の暗号化システム１０では、第３の情報処理システム７０が（プロキシ）が第１の情報処理システム５０から暗号化データを受信し、生成された再暗号化データを第２の情報処理システム６０に送信するので、いわゆるプロキシ再暗号化が可能となる。
【０１６３】
このように、本実施形態の暗号化システム１０によれば、再署名再暗号化、特にプロキシ再署名再暗号化を実現することができる。
【０１６４】
（第２実施形態）
次に、第２実施形態に係る暗号化システムについて、図面を用いて詳細に説明する。
【０１６５】
本実施形態では、タグベースプロキシ再暗号化方式が用いられる。タグベースプロキシ再暗号化方式では、鍵生成アルゴリズム、再暗号化鍵生成アルゴリズム、暗号化アルゴリズム、復号アルゴリズム、及び再暗号化アルゴリズムが採用される。
【０１６６】
タグベースプロキシ再暗号化方式は、プロキシ再暗号化方式の暗号化アルゴリズム、復号アルゴリズム、及び再暗号化アルゴリズムに従って生成されたデータに加えて、「タグ」と呼ばれる任意のビット列を利用するものである。具体的には、例えば、非特許文献２に記載のプロキシ再暗号化方式におけるしきい値暗号方式を、タグベースのしきい値暗号方式に置き換えることで実現する。
【０１６７】
＜システム構成及びハードウェア構成＞
本実施形態の暗号化システムのシステム構成及びハードウェア構成は、図１、図２に例示した第１実施形態と同様である。
【０１６８】
＜機能＞
次に、本実施形態の暗号化システムにおける各情報処理装置が備える機能について説明する。図１７及び図１８は、第２実施形態に係る暗号化システムにおける各情報処理装置が備える機能を説明する図である。
【０１６９】
まず、第１実施形態の送信側装置１００に対応する、本実施形態に係る送信側装置が備える機能について説明する。
【０１７０】
図１７は、第１実施形態の送信側装置１００に対応する装置である、第２実施形態に係る送信側装置１１００が備える機能の一例を説明する図である。同図に示すように、送信側装置１１００は、第１実施形態の送信側装置１００における暗号化部１０７の代わりに、タグ付き暗号化部１１０７を備える。その他の機能は、第１実施形態における送信側装置１００と同様である。
【０１７１】
タグ付き暗号化部１１０７は、タグベースプロキシ再暗号化方式の暗号化アルゴリズムを実装した機能部であり、送信先指定部１０４が記憶している暗号化に用いる公開鍵（ｐｋＲ）と、鍵生成部１０１が生成した第１の鍵（ｏｐｋ）と、第２署名生成部１０６が生成した第２電子署名（ｓ２）と、入力部１０３に入力されたメッセージ（ｍ）とを取得すると、上記タグベースプロキシ再暗号化方式の暗号化アルゴリズムにしたがって、暗号化データ（ｃ）を生成する。なお、ｐｋＲは上記暗号化アルゴリズムにおける暗号化用の公開鍵として利用され、ｏｐｋは上記暗号化アルゴリズムにおけるタグとして利用され、ｓ２及びｍは、上記暗号化アルゴリズムにおける暗号化対象のデータとして利用されている。生成されたｃは、送信部１０８への入力として利用される。
【０１７２】
第１実施形態における送信側装置２００に対応する、本実施形態の送信側装置の機能は、送信側装置１１００と同様である。
【０１７３】
次に、受信側装置３００に対応する、本実施形態に係る受信側装置が備える機能について説明する。
【０１７４】
図１８は、第１実施形態の受信側装置３００に対応する装置である、第２実施形態に係る受信側装置１３００が備える機能の一例を説明する図である。同図に示すように、受信側装置１３００は、第１実施形態の受信側装置３００における復号部３０４の代わりに、タグ付き復号部１３０４を備える。その他の機能は、第１実施形態における受信側装置３００と同様である。
【０１７５】
タグ付き復号部１３０４は、タグベースプロキシ再暗号化方式の復号アルゴリズムを実装した機能部であり、暗号化鍵記憶部３０２が記憶している復号用の秘密鍵（ｓｋＲ）と、受信部３０１が受信した第１の鍵（ｏｐｋ）及び暗号化データ（ｃ）とを取得すると、上記タグベースプロキシ再暗号化方式の復号アルゴリズムにしたがって暗号化データ（ｃ）を復号する。なお、ｓｋＲは復号アルゴリズムにおける復号用の秘密鍵として利用され、ｏｐｋは復号アルゴリズムにおけるタグとして利用され、ｃは復号アルゴリズムにおける復号対象の暗号化データとして利用される。復号に成功した場合、タグ付き復号部１３０４は、第２電子署名（ｓ２）とメッセージ（ｍ）とを出力する。一方、復号に失敗した場合、タグ付き復号部１３０４は、失敗を示すエラーコードを出力する。タグ付き復号部１３０４の出力は、出力部３０６への入力として利用される。
【０１７６】
第１実施形態における受信側装置４００に対応する、本実施形態の受信側装置の機能は、受信側装置１３００と同様である。
次に、第１実施形態における再暗号化装置６００に対応する、本実施形態に係る再暗号化装置が備える機能について説明する。
【０１７７】
図１９は、第１実施形態の再暗号化装置６００に対応する装置である、第２実施形態に係る再暗号化装置１６００が備える機能の一例を説明する図である。同図に示すように、再暗号化装置１６００は、第１実施形態の再暗号化装置６００における再暗号化部６０３の代わりに、タグ付き再暗号化部１６０３を備える。その他の機能は、第１実施形態における再暗号化装置６００と同様である。
【０１７８】
タグ付き再暗号化部１６０３は、タグベースプロキシ再暗号化方式の再暗号化アルゴリズムを実装した機能部であり、受信部６０１が受信した第２の鍵（ｏｐｋ）及び暗号化データ（ｃ）と、再暗号化鍵（ｒｅｋＲ１Ｒ２）とを取得すると、上記タグベースプロキシ再暗号化方式の再暗号化アルゴリズムにしたがって再暗号化データ（ｃ'）を生成し、も
しくはエラーコードを出力する。なお、ｒｅｋＲ１Ｒ２は上記再暗号化アルゴリズムにおける再暗号化鍵として利用され、ｏｐｋは上記再暗号化アルゴリズムにおけるタグとして利用され、ｃは上記再暗号化アルゴリズムにおける再暗号化対象のデータとして利用される。再暗号化に成功した場合、タグ付き再暗号化部１６０３は、再暗号化データ（ｃ'）
を出力する。一方、再暗号化に失敗した場合、タグ付き再暗号化部１６０３は、失敗を示すエラーコードを出力する。タグ付き再暗号化部１６０３の出力は、送信部６０４への入力として利用される。
【０１７９】
このように、本実施形態の暗号化システムによれば、第１の鍵（ｏｐｋ）を「タグ」として用いて暗号化対象のデータの暗号化を行い、また、再暗号化においても同様に、第１の鍵（ｏｐｋ）を「タグ」として用いて再暗号化を行い、さらに復号においても、第１の鍵（ｏｐｋ）を「タグ」として用いて復号を行う。これにより、再暗号化、及び復号の際に第１の鍵（ｏｐｋ）が書き換えられた場合には、これを検出することができる。
【０１８０】
すなわち、本実施形態の暗号化システムにおいては、署名付き暗号文（ｃ，ｏｐｋ，ｓ１）に含まれるｏｐｋがタグとしてｃに関連付けられているため、署名付き暗号文（ｃ，ｏｐｋ，ｓ１）におけるｏｐｋが異なる値ｏｐｋ'に差し替えられて不正な署名付き暗号
文（ｃ，ｏｐｋ'，ｓ１）が生成されたとしても、再暗号化処理または復号処理の際にそ
の差し替えを検出し、エラーとして扱うことが可能となる。これにより、再暗号化をより安全に行うことができる。
【０１８１】
以上、本発明を実施するための形態などについて具体的に説明したが、本発明はこれに限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能である。
【０１８２】
例えば、本実施形態では、第１の情報処理システム５０や第２の情報処理システム６０が、再署名や再暗号化に関する処理を、中継装置５００を介して委託するものとしたが、中継装置５００を介することなく、直接、再署名装置７００や再暗号化装置６００に対して処理を委託するようにしてもよい。
【符号の説明】
【０１８３】
１０  暗号化システム、５０  第１の情報処理システム、６０  第２の情報処理システム、７０  第３の情報処理システム、１００  送信側装置、１５０  送信側鍵生成装置、１７０  再署名鍵生成装置、２００  送信側装置、２５０  送信側鍵生成装置、２７０  再署名鍵生成装置、３００  受信側装置、３５０  受信側鍵生成装置、３７０  再暗号化鍵生成装置、４００  受信側装置、４５０  受信側鍵生成装置、４７０  再暗号化鍵生成装
置、５００  中継装置、６００  再暗号化装置、７００  再署名装置、Ｓ１０  再暗号化再署名処理、Ｓ１００  再署名鍵生成処理、Ｓ２００  再暗号化鍵生成処理、Ｓ３００  署名付き暗号化処理、Ｓ４００  直接送信処理、Ｓ５００  中継送信処理
【図１】
0006433448.tif 000002
【図２】
0006433448.tif 000003
【図３】
0006433448.tif 000004
【図４】
0006433448.tif 000005
【図５】
0006433448.tif 000006
【図６】
0006433448.tif 000007
【図７】
0006433448.tif 000008
【図８】
0006433448.tif 000009
【図９】
0006433448.tif 000010
【図１０】
0006433448.tif 000011
【図１１】
0006433448.tif 000012
【図１２】
0006433448.tif 000013
【図１３】
0006433448.tif 000014
【図１４】
0006433448.tif 000015
【図１５】
0006433448.tif 000016
【図１６】
0006433448.tif 000017
【図１７】
0006433448.tif 000018
【図１８】
0006433448.tif 000019
【図１９】
0006433448.tif 000020