JP6433448B2 - 暗号化システム、暗号化方法、及び暗号化プログラム - Google Patents

暗号化システム、暗号化方法、及び暗号化プログラム Download PDF

Info

Publication number
JP6433448B2
JP6433448B2 JP2016045780A JP2016045780A JP6433448B2 JP 6433448 B2 JP6433448 B2 JP 6433448B2 JP 2016045780 A JP2016045780 A JP 2016045780A JP 2016045780 A JP2016045780 A JP 2016045780A JP 6433448 B2 JP6433448 B2 JP 6433448B2
Authority
JP
Japan
Prior art keywords
key
signature
encryption
information processing
unit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2016045780A
Other languages
English (en)
Other versions
JP2017163326A (ja
Inventor
暖 山本
暖 山本
聡 屋代
聡 屋代
大介 鬼頭
大介 鬼頭
圭 北原
圭 北原
航平 佐々木
航平 佐々木
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2016045780A priority Critical patent/JP6433448B2/ja
Publication of JP2017163326A publication Critical patent/JP2017163326A/ja
Application granted granted Critical
Publication of JP6433448B2 publication Critical patent/JP6433448B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明は、暗号化システム、暗号化方法、及び暗号化プログラムに関する。
通信路の秘匿性を保証するため、すなわち通信路上を流れる情報を盗聴の脅威から守るための方法として、暗号化技術、例えば公開鍵暗号技術が知られている。また、通信路の真正性を保証するため、すなわち通信路上を流れる情報を改ざんや成りすましの脅威から守るための方法として、電子署名技術が知られている。さらに、秘匿性と真正性を同時に保証する技術として、公開鍵暗号技術と電子署名技術を応用した、署名付き暗号化(signcryption)技術が知られている。
署名付き暗号化技術の代表的な構成法としては、Sign-then-Encrypt方式、及びEncrypt-then-Sign方式の2つがよく知られている(非特許文献1参照)。Sign-then-Encrypt方
式は、メッセージに電子署名を付加した後、メッセージと電子署名のペアを公開鍵暗号方式により暗号化する方式である。また、Encrypt-then-Sign方式は、メッセージを公開鍵
暗号で暗号化した後に、当該暗号化によって得られた暗号文に対して電子署名を付加する方式である。
また、ある受信者に宛てて生成された暗号文、すなわち、当該受信者の秘密鍵を用いて復号可能な暗号文を、送信途中で復号することなく(当該受信者の秘密鍵を直接用いることなく)、別の受信者の秘密鍵で復号可能な暗号文に変換できるようにするため、例えば送信者と受信者の間に介在する装置(以下、プロキシという)等が、送信者からの上記暗号文に上記変換を行う(再暗号化する)という、プロキシ再暗号化技術(proxy re-encryption)が知られている(例えば特許文献1、非特許文献2参照)。プロキシ再暗号化技
術を応用することで、クラウド上での安全なデータ共有が可能となる。
また、ある送信者が電子署名を付与したメッセージ、すなわち、当該送信者の公開鍵を用いて検証可能なメッセージ及び電子署名のペアを、送信途中で新たな電子署名を付与することなく(別の送信者の秘密鍵を直接用いることなく)、別の送信者の公開鍵を用いて検証可能なメッセージ及び電子署名のペアに変換するべく、プロキシが上記変換を行う(再署名する)という、プロキシ再署名技術(proxy re-signature)が知られている(例えば非特許文献3参照)。プロキシ再署名技術を応用することで、クラウド上で、代理人による代理申請や代理契約を実現することが可能となる。
国際公開第2012/147869号
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方式を用いても、再暗号化と再署名を両立させるような技術を構成することはできなかった。
本発明は、このような事情に鑑みてなされたものであり、再暗号化及び再署名を行うことが可能な暗号化システム、暗号化方法、及び暗号化プログラムを提供することを目的とする。
前述の課題を解決するための本発明の一つは、それぞれプロセッサ及びメモリを有し、互いに通信可能に接続されている第1の情報処理システム及び第2の情報処理システムを含んで構成される暗号化システムであって、前記第1の情報処理システムは、互いに対応する、第1の鍵、及び第2の鍵を生成する鍵生成部と、電子署名を生成するための鍵である署名生成鍵を記憶する署名生成鍵記憶部と、前記記憶している署名生成鍵に基づき、前記生成した第1の鍵の電子署名である第1電子署名を生成する第1署名生成部と、前記生成した第2の鍵に基づき、暗号化対象のデータの電子署名である第2電子署名を生成する第2署名生成部と、前記暗号化対象のデータ、及び前記生成した第2電子署名を、前記第2の情報処理システムが生成した、暗号化に用いる鍵である暗号化鍵に基づき暗号化して暗号化データを生成する暗号化部と、前記第1の鍵、前記生成した第1電子署名、及び前記生成した暗号化データを送信する送信部とを備え、前記第2の情報処理システムは、前記第1の鍵、前記第1電子署名、及び前記暗号化データを受信する受信部と、前記受信した第1電子署名の正当性を、前記署名生成鍵に対応する鍵である署名検証鍵と前記受信した第1の鍵とに基づき検証する第1署名検証部と、前記受信した暗号化データを、前記暗号化鍵に対応する鍵である復号鍵に基づき、前記暗号化対象のデータ及び前記第2電子署名に復号する復号部と、前記復号した第2電子署名の正当性を、前記復号した暗号化対象のデータ及び前記受信した第1の鍵に基づき検証する第2署名検証部と、前記第1電子署名、及び前記第2電子署名が正当であると検証された場合に、前記復号した暗号化対象の
データを出力する出力部とを備える。
本発明によれば、再暗号化及び再署名を行うことができる。
図1は、本発明の第1実施形態による暗号化システムの構成の一例を説明する図である。 図2は、第1実施形態に係る、暗号化システム10を構成する各情報処理装置のハードウェア構成の一例を説明する図である。 図3は、送信側装置100が備える機能の一例を説明する図である。 図4は、送信側鍵生成装置150が備える機能の一例を説明する図である。 図5は、再署名鍵生成装置170が備える機能の一例を説明する図である。 図6は、受信側装置300が備える機能の一例を説明する図である。 図7は、受信側鍵生成装置350が備える機能の一例を説明する図である。 図8は、再暗号化鍵生成装置370が備える機能の一例を説明する図である。 図9は、中継装置500が備える機能の一例を説明する図である。 図10は、再暗号化鍵管理テーブル503の一例を示す図である。 図11は、再署名鍵管理テーブル504の一例を示す図である。 図12は、再暗号化装置600が備える機能の一例を説明する図である。 図13は、再署名装置700が備える機能の一例を説明する図である。 図14は、再暗号化再署名処理S10の概要を説明するフローチャートである。 図15は、再署名鍵生成処理S100、及び再暗号化鍵生成処理S200の一例を説明するシーケンス図である。 図16は、署名付き暗号化処理S300、直接送信処理S400、及び中継送信処理S500の一例を説明するシーケンス図である。 図17は、第1実施形態の送信側装置100に対応する装置である、第2実施形態に係る送信側装置1100が備える機能の一例を説明する図である。 図18は、第1実施形態の受信側装置300に対応する装置である、第2実施形態に係る受信側装置1300が備える機能の一例を説明する図である。 図19は、第1実施形態の再暗号化装置600に対応する装置である、第2実施形態に係る再暗号化装置1600が備える機能の一例を説明する図である。
以下、図面を用いて本発明の実施の形態について説明する。なお、これにより本発明が限定されるものではない。
(第1実施形態)
以下に本発明の第1実施形態について図面を用いて詳細に説明する。
<システム構成>
図1は、第1実施形態の暗号化システムの構成の一例を説明する図である。同図に示すように、暗号化システム10は、複数の情報処理装置(コンピュータ)を含んで構成されており、具体的には、複数の、第1の情報処理システム50(50(1)、50(2))と、複数の、第2の情報処理システム60(60(1)、60(2))と、第3の情報処理システム70とを含んで構成されている。なお、(1)、(2)の符号は、それぞれ2組例示されている第1の情報処理システム50、第2の情報処理システム60を区別する必要がある場合に適宜用いることとする。
第1の情報処理システム50(1)は、送信側装置100、送信側鍵生成装置150、及び再署名鍵生成装置170の各情報処理装置を含んで構成されている。第1の情報処理システム50は、暗号化対象のデータ(以下、暗号化対象データ、もしくはメッセージという)を暗号化し、暗号化したデータ(以下、暗号化データという)を生成する。そして第1の情報処理システム50は、この生成した暗号化データを送信する。また、第1の情報処理システム50は、上記メッセージの電子署名を生成して送信する。
送信側装置100と送信側鍵生成装置150との間、及び、送信側装置100と再署名鍵生成装置170との間は、例えば、LAN(Local Area Network)、WAN(Wide Area Network)、専用線、インターネット等の通信線11を介して通信できるように接続さ
れている。送信側装置100は、送信側鍵生成装置150及び再署名鍵生成装置170から、暗号化や署名に関する鍵の提供を受ける。
第1の情報処理システム50(2)は、送信側装置200、送信側鍵生成装置250、及び再署名鍵生成装置270の各情報処理装置を含んで構成されている。送信側装置200、送信側鍵生成装置250、及び再署名鍵生成装置270の構成は、それぞれ、送信側装置100、送信側鍵生成装置150、及び再署名鍵生成装置170と同様である。
第2の情報処理システム60(1)は、受信側装置300、受信側鍵生成装置350、及び再暗号化鍵生成装置370の各情報処理装置を含んで構成されている。第2の情報処理システム60は、第1の情報処理システム50から送信された暗号化データを受信して復号する。また、第2の情報処理システム60は、第1の情報処理システム50が生成した電子署名を検証する。また、第2の情報処理システム60は、暗号化データに再暗号化処理を施したデータ(以下、再暗号化データという)を受信する。また、第2の情報処理システム60は、第1の情報処理システム50が生成した電子署名に再署名処理を施した電子署名(以下、再電子署名という)を受信する。
受信側装置300と受信側鍵生成装置350との間、及び、受信側装置300と再暗号化鍵生成装置370との間は、例えばLAN(Local Area Network)、WAN(Wide Area Network)、専用線、インターネット等の通信線21を介して通信可能に接続されてい
る。受信側装置300は、受信側鍵生成装置350、及び再暗号化鍵生成装置370から、暗号化や署名に関する鍵の提供を受ける。
第2の情報処理システム60(2)は、受信側装置400、受信側鍵生成装置450、及び再暗号化鍵生成装置470の各情報処理装置を含んで構成されている。受信側装置400、受信側鍵生成装置450、及び再暗号化鍵生成装置470の構成は、それぞれ、受信側装置300、受信側鍵生成装置350、及び再暗号化鍵生成装置370の構成と同様である。
第3の情報処理システム70(以下、プロキシともいう)は、中継装置500、再暗号化装置600、及び再署名装置700の各情報処理装置を含んで構成されている。第3の情報処理システム70は、第1の情報処理システム50が生成した暗号化データに基づき、暗号化データに再暗号化処理を施したデータである再暗号化データを生成する。また、第3の情報処理システム70は、第1の情報処理システム50が生成した電子署名に基づき、電子署名に再署名処理を施した電子署名である再電子署名を生成する。
中継装置500と再暗号化装置600との間、及び、中継装置500と再署名装置700との間は、例えば、LAN(Local Area Network)、WAN(Wide Area Network)、
専用線、インターネット等の通信線51を介して通信可能に接続されている。中継装置5
00は、第2の情報処理システム60からの要求に基づき、再暗号化装置600に対して、再暗号化に関する処理を委託する。また、中継装置500は、第1の情報処理システム50からの要求に基づき、再署名装置700に対して、再署名に関する処理を委託する。
なお、本実施形態では、説明を簡易化するため、送信側装置、送信側鍵生成装置、再署名鍵生成装置、受信側装置、受信側鍵生成装置、及び再暗号化鍵生成装置がそれぞれ2台ずつ存在するような構成を例示しているが、各装置の台数はこれに限定されるものではない。
<ハードウェア構成>
次に、暗号化システム10を構成する前記の情報処理装置のハードウェア構成を説明する。
図2は、第1実施形態に係る、暗号化システム10を構成する各情報処理装置のハードウェア構成の一例を説明する図である。同図に示すように、暗号化システム10における各情報処理装置900は、一般的なコンピュータの構成を有する。すなわち、情報処理装置900は、CPU(Central Processing Unit)等のプロセッサからなる制御装置90
1と、RAM(Random Access Memory)、ROM(Read Only Memory)、及びNVRAM(Non-Volatile RAM)等のメモリからなる主記憶装置902と、ハードディスクやSSD(Solid State Drive)等の記憶装置からなる補助記憶装置903と、NIC(Network Interface Card)等の、他の情報処理装置と通信するための通信装置904と、モニタ(
ディスプレイ)等からなる出力装置905と、キーボード、マウス、タッチパネル等からなる入力装置906と、CD-ROMやDVD-ROM等の可搬性を有する記憶媒体908から情報を読み取る読取装置907とを含んで構成される。
<機能>
続いて、各情報処理装置が備える機能について説明する。まず、第1の情報処理システム50を構成する情報処理装置が備える機能について説明する。
図3は、送信側装置100が備える機能の一例を説明する図である。なお、送信側装置200もこれと同様の機能を有する。
同図に示すように、送信側装置100は、鍵生成部101、署名鍵記憶部102、入力部103、送信先指定部104、第1署名生成部105、第2署名生成部、及び暗号化部107、及び送信部108を備える。送信側装置100は、メッセージに対して署名付き暗号化処理を実行し、得られた署名付き暗号文を直接に、又は中継装置500を介して、受信側装置300や受信側装置400に送信する。
鍵生成部101は、互いに対応する第1の鍵及び第2の鍵のペアを生成する。本実施形態では、鍵生成部101は、ワンタイム署名方式の鍵生成アルゴリズムに基づき、第1の鍵としてワンタイム署名用の公開鍵(以下、opkともいう)を生成し、第2の鍵としてワンタイム署名用の秘密鍵(以下、oskともいう)を生成するものとする。
具体的には、鍵生成部101は、第1署名生成部105の処理に先立って、第1の鍵及び第2の鍵のペアを生成するものとする。
なお、第1の鍵及び第2の鍵が生成されるタイミングは、第1署名生成部105又は第2署名生成部106の実行に関係なく、所定のタイミング、もしくは所定の周期であってもよい。
なお、第1の鍵(opk)は第1署名生成部105及び送信部108への入力として利用される。また、第2の鍵(osk)は第2署名生成部106への入力として利用される。
署名鍵記憶部102(以下、署名生成鍵記憶部ともいう)は、電子署名を生成するための鍵である、署名生成鍵を記憶する。署名生成鍵は、署名用(署名生成用。以下同じ。)の秘密鍵(以下、skSともいう)を含む。なお、skSは、第1署名生成部105への入力として利用される。また、skSは、他の情報処理装置に送信されることの無いよう、安全な記憶領域に格納されることが必要であり、例えば、HSM(Hardware Security Module)等の装置に記憶される。
入力部103は、暗号化対象のデータ(すなわち、メッセージ。以下、mともいう。)の入力を、入力装置906等への入力を介して受け付ける。なお、メッセージ(m)は、第2署名生成部106及び暗号化部107への入力として利用される。
送信先指定部104は、メッセージの送信先である第2の情報処理システム60の識別子(以下、Rという)を指定する(取得する)と共に、指定した送信先が生成した、暗号化に用いる鍵(以下、暗号化鍵、もしくはpkRともいう。詳細は後述する。)を記憶する。本実施形態では、送信先指定部104は、受信側鍵生成装置350が生成した公開鍵(以下、pkR1ともいう)を記憶しているものとする。
第1署名生成部105は、プロキシ再署名方式の署名生成アルゴリズムを実装した機能部であり、署名鍵記憶部102が記憶している署名生成鍵に基づき、鍵生成部101が生成した第1の鍵の電子署名である第1電子署名を生成する。
すなわち、第1署名生成部105は、署名鍵記憶部102が記憶している送信者の署名用の秘密鍵(skS)と、鍵生成部101が生成した第1の鍵(opk)とを取得すると、上記署名生成アルゴリズムにしたがって第1電子署名(以下、s1ともいう)を生成する。なお、skSは上記署名生成アルゴリズムにおける署名用の秘密鍵として利用されており、opkは、上記署名生成アルゴリズムにおける署名対象のデータとして利用されている。生成されたs1は、送信部108への入力として利用される。
第2署名生成部106は、ワンタイム署名方式の署名生成アルゴリズムを実装した機能部であり、鍵生成部101が生成した第2の鍵に基づき、暗号化対象のデータ(メッセージ)の電子署名である第2電子署名を生成する。すなわち、第2署名生成部106は、鍵生成部101が生成した第2の鍵(osk)と、入力部103に入力されたメッセージ(m)とを取得すると、上記署名生成アルゴリズムにしたがって第2電子署名(以下、s2ともいう)を生成する。なお、oskは上記署名生成アルゴリズムにおける署名用の秘密鍵として利用されており、mは上記署名生成アルゴリズムにおける署名対象のメッセージとして利用されている。
暗号化部107は、プロキシ再暗号化方式の暗号化アルゴリズムを実装した機能部であり、暗号化対象のデータ、及び第2署名生成部106が生成した第2電子署名を、送信先である第2の情報処理システム60(具体的には、受信側装置300又は受信側装置400)が生成した鍵である暗号化鍵に基づき暗号化して暗号化データを生成する。
すなわち、暗号化部107は、送信先指定部104が記憶している暗号化鍵(pkR)と、第2署名生成部106が生成した第2電子署名(s2)と、入力部103に入力されたメッセージ(m)とを取得すると、上記暗号化アルゴリズムにしたがって、暗号化データ(以下、cともいう)を生成する。なお、pkRは上記暗号化アルゴリズムにおける暗
号化用の公開鍵として利用されており、s2及びmは、上記暗号化アルゴリズムにおける、暗号化対象のデータとして利用されている。生成されたcは、送信部108への入力として利用される。
送信部108は、鍵生成部101、第1署名生成部105、及び暗号化部107が生成したデータを、第2の情報処理システム60に送信する。具体的には、例えば、送信部108は、鍵生成部101が生成した第1の鍵(opk)と、第1署名生成部105が生成した第1電子署名(s1)と、暗号化部107が生成した暗号化データ(c)とを取得すると、取得したこれらを署名付き暗号文(以下、(c,opk,s1)ともいう)とし、この署名付き暗号文を、送信先指定部104が取得した識別子(R)が示す送信先に送信する。なお、この送信には、例えば、TCP/IP(Transmission Control Protocol/Internet Protocol)やHTTP(Hypertext Transfer Protocol)等の汎用的なプロトコルを利用する。
次に、送信側鍵生成装置150、及び再署名鍵生成装置170が備える機能について説明する。
図4は、送信側鍵生成装置150が備える機能の一例を説明する図である。同図に示すように、送信側鍵生成装置150は、署名鍵生成部151を含んで構成される。
署名鍵生成部151は、プロキシ再署名方式の鍵生成アルゴリズムを実装した機能部である。すなわち、署名鍵生成部151は、署名用の秘密鍵(skS)と検証用の公開鍵(pkS)とのペア(skS,pkS)を生成する。このペアは、前記のように署名鍵記憶部102に格納される。
送信側鍵生成装置250も、送信側鍵生成装置150と同様に、署名生成鍵を生成する。そこで、以下では、送信側鍵生成装置150が生成した署名用の秘密鍵をskS1といい、送信側鍵生成装置150が生成した検証用の公開鍵を、pkS1という。また、送信側鍵生成装置250が生成した署名用の秘密鍵をskS2といい、送信側鍵生成装置250が生成した検証用の公開鍵をpkS2という。
図5は、再署名鍵生成装置170が備える機能の一例を説明する図である。同図に示すように、再署名鍵生成装置170は、再署名鍵生成部171を含んで構成される。
再署名鍵生成部171は、プロキシ再署名方式の再署名鍵生成アルゴリズムを実装した機能部であり、署名検証用の公開鍵と、自身の第1の情報処理システム50と異なる他の第1の情報処理システム50(例えば、第1の情報処理システム50(2))が生成した署名生成鍵(以下、他署名生成鍵という)とに基づき、再署名鍵(現在の電子署名を別の電子署名に変換する(又は新たに別の電子署名を生成する)ためのデータ。以下同じ。)を生成する。具体的には、例えば、再署名鍵生成部171は、送信側鍵生成装置150が生成した検証用の公開鍵(pkS1)と、送信側鍵生成装置250が生成した署名用の秘密鍵(skS2)とを取得すると、送信側装置100が生成した暗号化データの電子署名を送信側装置200が生成した暗号化データの電子署名に変換する(送信側装置200が検証可能とする。すなわち、再署名する。)ための再署名鍵(以下、rskS1S2という)を生成する。
なお、送信側鍵生成装置150と、第1署名生成部105と、再署名鍵生成装置170と、後述する第1署名検証部303と、後述する署名検証部602とは、同一のプロキシ再署名方式に基づく処理を行う。すなわち、送信側鍵生成装置150が実装する鍵生成アルゴリズムと、第1署名生成部105が実装する署名生成アルゴリズムと、第1署名検証
部303が実装する署名検証アルゴリズムと、署名検証部602が実装する署名検証アルゴリズムと、再署名鍵生成装置170が実装する再署名鍵生成アルゴリズムとは、同一のプロキシ再署名方式に属するアルゴリズムである。
また、第1署名鍵生成部101と、第2署名生成部106と、後述する第2署名検証部305とは、同一の署名方式に基づく処理を行う。すなわち、第1署名鍵生成部101が実装する鍵生成アルゴリズムと、第2署名生成部106が実装する署名生成アルゴリズムと、第2署名検証部305が実装する署名検証アルゴリズムとは、同一の署名方式に属するアルゴリズムである。したがって、第1署名鍵生成部101が出力した、第1の鍵(opk)及び第2の鍵(osk)のペアのうち、oskは第2署名生成部106が電子署名を生成する際に必要な署名用の秘密鍵として利用され、opkは、第2署名検証部305が電子署名の検証用の公開鍵として利用される。
また、暗号化部107と、後述する復号部304と、後述する暗号化鍵生成部351と、後述する再暗号化鍵生成部371と、後述する再暗号化部603とは同一のプロキシ再暗号化方式に基づき機能する。すなわち、暗号化部107が実装する暗号化アルゴリズムと、復号部304が実装する復号アルゴリズムと、暗号化鍵生成部351が実装する鍵生成アルゴリズムと、再暗号化鍵生成部371が実装する再暗号化鍵生成アルゴリズムと、再暗号化部603が実装する再暗号化アルゴリズムとは、同一のプロキシ再暗号化方式に属するアルゴリズムである。
以上が第1の情報処理システム50における各情報処理装置の説明である。
続いて、第2の情報処理システム60を構成する情報処理装置が備える機能について説明する。
まず、受信側装置300が備える機能について説明する。受信側装置300は、送信側装置100から、中継装置500を介して新たな署名付き暗号文を受信し、又は、中継装置500を介さずに送信側装置100から直接、署名付き暗号文を受信する。そして、受信側装置300は、受信した署名付き暗号文について、署名の検証及び復号を行い、メッセージを取得する。
図6は、受信側装置300が備える機能の一例を説明する図である。同図に示すように、受信側装置300は、受信部301、暗号化鍵記憶部302、第1署名検証部303、復号部304、第2署名検証部305、及び出力部306を備える。
受信部301は、第1の鍵、第1電子署名、及び暗号化データを受信する。具体的には、例えば、受信部301は、送信側装置100又は中継装置500から送信された署名付き暗号文(c,opk,s1)を受信する。また、受信部301は、送信側鍵生成装置150又は送信側鍵生成装置250が生成した検証用の公開鍵(pkS)を受信する。なお、受信したpkS及びs1は、第1署名検証部303への入力として利用される。また、受信したopkは、第1署名検証部303及び第2署名検証部305への入力として利用される。また、受信したcは、復号部304への入力として利用される。なお、これらの受信には、例えば、TCP/IPやHTTP等の汎用的なプロトコルを利用する。
暗号化鍵記憶部302は、前記の暗号化鍵(pkR)を記憶する。
また、暗号化鍵記憶部302は、暗号化鍵(pkR)に対応する鍵である復号鍵(以下、skRともいう)を記憶する。本実施形態では、skRは秘密鍵であり、暗号化鍵記憶部302は、受信側鍵生成装置350が生成した復号鍵(以下、skR1ともいう)を記
憶しているものとする。なお、受信側装置400の記憶部も同様に、復号鍵として、受信側鍵生成装置450が生成した復号鍵(以下、skR2ともいう)を記憶しているものとする。なお、skRは、復号部304への入力として利用される。
なお、復号鍵は、他の情報処理装置に送信されないように、安全な記憶領域に格納されることが必要である。安全な記憶領域の確保には、例えば、HSM(Hardware Security Module)等の装置を利用する。
第1署名検証部303は、プロキシ再署名方式の署名検証アルゴリズムを実装した機能部であり、受信部301が受信した第1電子署名の正当性を、署名生成鍵に対応する鍵である署名検証鍵と受信部301が受信した第1の鍵とに基づき検証する。具体的には、第1署名検証部303は、受信部301が生成した公開鍵(pkS)と、第1電子署名(s1)と、検証鍵(opk)とを取得すると、上記署名検証アルゴリズムにしたがって検証結果(検証成功を示す"T"または検証失敗を示す"F")を出力する。なお、pkSは上記署名検証アルゴリズムにおける検証用の公開鍵として利用されており、opkは上記署名検証アルゴリズムにおける検証に用いるメッセージとして利用されており、s1は上記署名検証アルゴリズムにおける検証対象の電子署名として利用されている。出力された"T"又は"F"は、出力部306への入力として利用される。
復号部304は、プロキシ再暗号化方式の復号アルゴリズムを実装した機能部であり、受信部301が受信した暗号化データを、暗号化鍵に対応する鍵である復号鍵に基づき、暗号化対象のデータ及び第2電子署名に復号する。具体的には、復号部304は、暗号化鍵記憶部302が記憶している復号用の秘密鍵(skR)と、受信部301が受信した暗号化データ(c)とを取得すると、上記復号アルゴリズムにしたがって暗号化データ(c)を復号する。復号に成功した場合、復号部304は、第2電子署名(s2)とメッセージ(m)とを出力する。一方、復号に失敗した場合は、復号部304は、失敗を示すエラーコードを出力する。なお、skRは、上記復号アルゴリズムにおける復号用の秘密鍵として利用されており、cは上記復号アルゴリズムにおける復号対象のデータとして利用されている。また、復号部304の出力は、出力部306への入力として利用される。
第2署名検証部305は、ワンタイム署名方式の署名検証アルゴリズムを実装した機能部であり、復号部304が復号した第2電子署名の正当性を、復号部304が復号した暗号化対象のデータ及び受信部301が受信した第1の鍵に基づき検証する。具体的には、第2署名検証部305は、復号部304が出力した第2電子署名(s2)及びメッセージ(m)と、受信部301が受信した検証用の公開鍵(opk)とを取得すると、上記署名検証アルゴリズムにしたがって検証結果(検証成功を示す"T"、又は検証失敗を示す"F")を出力する。
出力部306は、第1電子署名、及び第2電子署名が正当であると検証された場合に、復号部304が復号した暗号化対象のデータを出力する。
具体的には、出力部306は、第1署名検証部303の署名検証結果と、復号部304が出力したメッセージ(m)又はエラーコードと、第2署名検証部305の署名検証結果とを取得する。そして出力部306は、上記2つの署名検証結果のいずれかが検証失敗を示す"F"をあった場合、もしくは、エラーコードが出力された場合には、その旨の情報を出力装置905に出力する。これにより、受信側装置300の利用者に、受信した署名付き暗号文に問題(不正な書き換え等)があったことを示す。一方、上記2つの署名検証結果双方が"T"であり、かつエラーコードが出力されなかった場合には、出力部306は、復号部304が出力したメッセージ(m)を出力装置905に出力する。これにより、受信側装置300の利用者に、検証が成功したことを示す。すなわち、復号部304が出力
したメッセージ(m)は、公開鍵(pkS)に対応する、第1の情報処理システム50から送信された正当なメッセージ(データ)であることが保証される。
なお、本実施形態では、出力部306は、第1署名検証部303の署名検証結果と、復号部304の復号結果と、第2署名検証部305の署名検証結果とが全て生成又は出力されるまで待機することを前提とするが、出力部306は、上記いずれかの結果がエラーを示した場合に、他の結果の生成又は出力を待たずして、直ちにエラーコードを出力するようにしてもよい。
次に、受信側鍵生成装置350、及び再暗号化鍵生成装置370の機能について説明する。
図7は、受信側鍵生成装置350が備える機能の一例を説明する図である。同図に示すように、受信側鍵生成装置350は、暗号化鍵生成部351を含んで構成されている。
暗号化鍵生成部351は、プロキシ再暗号化方式の鍵生成アルゴリズムを実装しており、暗号化鍵に対応する鍵である復号鍵(skR)を生成する。本実施形態では、復号鍵(skR)は秘密鍵であり、暗号化鍵生成部351は、上記プロキシ再暗号化方式のアルゴリズムの実行に用いる、秘密鍵である復号鍵(skR)と、公開鍵である暗号化鍵(pkR)のペアを生成するものとする。このペアは、暗号化鍵記憶部302に格納される。
図8は、再暗号化鍵生成装置370が備える機能の一例を説明する図である。同図に示すように、再暗号化鍵生成装置370は、再暗号化鍵生成部371を含んで構成されている。
再暗号化鍵生成部371は、プロキシ再暗号化方式の再暗号化鍵生成アルゴリズムを実装した機能部であり、暗号化データを、自身が属する第2の情報処理システム60とは異なる他の第2の情報処理システム60で復号可能なデータに再暗号化するための鍵である再暗号化鍵を、他の第2の情報処理システム60が生成した暗号化鍵に基づき生成する。具体的には、再暗号化鍵生成部371は、受信側鍵生成装置350が生成した復号鍵(以下、skR1ともいう)と、受信側鍵生成装置450が生成した暗号化鍵(以下、pkR2ともいう)とを取得すると、受信側装置300が復号可能な署名付き暗号文を受信側装置400が復号可能な署名付き暗号文に変換(再暗号化)するための再暗号化鍵(以下、rekR1R2ともいう)を生成する。
以上が、受信側装置300に機能についての説明である。なお、受信側装置400も受信側装置300と同様の機能を有するので、説明は省略する。
続いて、中継装置500が備える機能について説明する。
中継装置500は、送信側装置100又は送信側装置200(以下、送信元装置という)からの依頼を受けて、署名付き暗号文(c,opk,s1)の再暗号化処理、すなわち、署名付き暗号文(c,opk,s1)に含まれる暗号化データ(c)を変換(再暗号化)した新たな署名付き暗号文(以下、この新たな署名付き暗号文を(c',opk,s1
)ともいう)を生成する処理を行う。また、中継装置500は、送信元装置からの依頼を受けて、再署名処理、すなわち、新たな署名生成鍵に基づく新たな電子署名を署名付き暗号文(c,opk,s1)に付加した新たな署名付き暗号文(以下、この新たな署名付き暗号文を(c,opk,s'1)ともいう)を生成する処理を行う。
図9は、中継装置500が備える機能の一例を説明する図である。同図に示すように、中継装置500は、受信部501、鍵記憶部502、委託処理部505、及び送信部50
6を備える。
受信部501は、第1の情報処理システム50が送信した署名付き暗号文(c,opk,s1)と、pkSと、第2の情報処理システム60の識別子(R)とを受信する。具体的には、例えば、受信部501は、署名付き暗号文(c,opk,s1)と、送信側鍵生成装置150が生成した検証用の公開鍵(pkS1)と、受信側装置300の識別子(以下、R1という)とを受信する。なお、受信した(c,opk,s1)、pkS、及びRは、委託処理部505への入力として利用される。なお、この受信には、例えば、TCP/IPやHTTP等の汎用的なプロトコルを利用する。
鍵記憶部502は、再暗号及び再署名に用いる鍵に関する情報を記憶する。具体的には、例えば、鍵記憶部502は、再暗号化鍵生成装置370が生成した再暗号化鍵(rekR1R2)と、再署名鍵生成装置170が生成した再署名鍵(rskS1S2)とを記憶する。
ここで、鍵記憶部502が記憶する情報(テーブル)について説明する。
図10は、鍵記憶部502が記憶するテーブルのうち、再暗号鍵に関する情報を格納したテーブル(以下、再暗号化鍵管理テーブル503という)の一例を示す図である。同図に示すように、再暗号化鍵管理テーブル503は、再暗号化前送信先5031、再暗号化後送信先5032、及び再暗号化鍵5033の各項目を有する、少なくとも1つ以上のレコードを含んで構成される。再暗号化前送信先5031には、受信部501が受信した署名付き暗号文(再暗号化前の署名付き暗号文)を復号可能な装置の識別子(例えば、受信側装置300の識別子(R1)。もしくは、送信側装置100を表す文字列等でもよい。)が格納され、再暗号化後送信先5032には、再暗号化された新たな署名付き暗号文(再暗号化後の署名付き暗号文)を復号可能な装置の識別子(例えば、受信側装置400を示す識別子(以下、R2という)。もしくは、受信側装置400を表す文字列等でもよい。)が格納され、再暗号化鍵5033には、再暗号化鍵(例えば、rekR1R2)もしくは再暗号化鍵を表すハッシュ値等が格納される。
図11は、鍵記憶部502が記憶するテーブルのうち、再署名鍵に関する情報を格納したテーブル(以下、再署名鍵管理テーブル504という)の一例を示す図である。同図に示すように、再署名鍵管理テーブル504は、再署名前送信元5041、再署名後送信元5042、及び再署名鍵5043の各項目を有する、少なくとも1つ以上のレコードを含んで構成される。再署名前送信元5041には、受信部501が受信した署名付き暗号文の電子署名を生成した装置(以下、再署名前装置という)を特定する情報が格納され、再署名後送信元5042には、再署名された新たな署名付き暗号文の電子署名を生成した装置(以下、再署名後装置という)を特定する情報が格納され、再署名鍵5043には、再署名前送信元5041が示す装置が生成した署名付き暗号文の電子署名を再署名後送信元5042が示す装置が生成した署名付き暗号文の電子署名に変換する(再署名する)ための鍵である再署名鍵(例えば、送信側装置100が生成した署名付き暗号文の電子署名を送信側装置200が生成した署名付き暗号文の電子署名に変換するための再署名鍵(以下、rskS1S2ともいう)を特定する情報が格納される。本実施形態では、再署名前送信元5041には、送信側装置100が生成した署名検証用の公開鍵、もしくはこれを表すハッシュ値(以下、pkS1ともいう)が格納され、再署名後送信元5042には、送信側装置200が生成した署名検証用の公開鍵、もしくはこれを表すハッシュ値(以下、pkS2ともいう)が格納されるものとする。
委託処理部505は、受信部501が受信した署名付き暗号文(c,opk,s1)を、鍵記憶部502が記憶している情報に従って再暗号化するように、再暗号化装置600に依頼する。また、委託処理部505は、受信部501が受信した署名付き暗号文(c,
opk,s1)を、鍵記憶部502が記憶している情報に従って再署名するように、再署名装置700に依頼する。
具体的には、例えば、委託処理部505は以下の処理を行う。
まず、委託処理部505は、再暗号化鍵管理テーブル503のレコードのうち、受信部501が受信した受信側装置300の識別子(R1)が再暗号化前送信先5031に格納されているレコードを取得し、取得したレコードにおける再暗号化後送信先5032の内容(受信側装置400を示す識別子(R2))と、再暗号化鍵5033の内容(受信側装置300が復号可能な署名付き暗号文を受信側装置400が復号可能な署名付き暗号文に変換(再暗号化)するための再暗号化鍵(rekR1R2))とを取得する。そして委託処理部505は、再暗号化装置600に対して、(c,opk,s1)と、pkS1と、rekR1R2とを送信することにより再暗号化を依頼する。
この依頼の結果、委託処理部505が再暗号化装置600からエラーコードを受信した場合は、送信側装置100に対して中継処理の失敗を意味するエラーコードを送信する。一方、委託処理部505が再暗号化装置600から(c',opk,s1)を受信した場
合は、委託処理部505は、以下に説明する再署名処理を実行する。
すなわち、再署名処理では、まず委託処理部505は、再署名鍵管理テーブル504のレコードのうち、受信部501が受信した、送信側鍵生成装置150が生成した検証用の公開鍵(pkS1)の内容が再署名前送信元5041に格納されているレコードを取得し、取得したレコードの、再署名後送信元5042の内容(送信側鍵生成装置250が生成した検証用の公開鍵(pkS2))と、再署名鍵5043の内容(送信側装置100が生成した暗号化データの電子署名を送信側装置200が生成した暗号化データの電子署名に変換する(再署名する)ための再署名鍵(rskS1S2))とを取得する。そして委託処理部505は、再署名装置700に対して、署名付き暗号文(c,opk,s1)と、pkS1と、pkS2と、rskS1S2とを送信することにより、再署名処理を依頼する。
この依頼の結果、委託処理部505が、再署名装置700からエラーコードを受信した場合は、送信側装置100に対して中継の失敗を意味するエラーコードを送信する。一方、委託処理部505が、再署名装置700から(c,opk,s'1)を受信した場合は
、送信部506に対して、再暗号化データ(c')と、第1の鍵(opk)と、後述する
再電子署名(以下、s'1ともいう)とを結合したデータ(以下、(c',opk,s'1
)という)と、送信側鍵生成装置250が生成した検証用の公開鍵(pkS2)と、受信側装置400を示す識別子(R2)とを送信する。
送信部506は、委託処理部505から送信された(c',opk,s'1)、及びpkS2を、R2が示す装置(受信側装置400)へ送信する。なお、送信部506は、前記説明した委託処理部505の処理の途中で何らかのエラーが発生した場合には、そのエラーコードを、署名付き暗号文(c,opk,s1)を送信してきた第1の情報処理システム50(具体的には、送信側装置100)に送信する。
なお、以上に説明したように、本実施形態では、委託処理部505は、再暗号化処理を実行した後に再署名処理を実行するものとしたが、これとは逆に、委託処理部505は、再署名処理を実行した後に再暗号化処理を実行するようにしてもよい。また、委託処理部505は、再暗号化処理のみを実行して再署名処理は実行しないようにしてもよいし、再署名処理のみを実行して再暗号化処理は実行しないようにしてもよい。
また、委託処理部505は、署名付き暗号文(c,opk,s1)を送信してきた第1
の情報処理システム50(例えば、送信側装置100)から、実行すべき再署名処理や再暗号化処理についての指示(例えば、再署名鍵や再暗号化鍵を示す情報)を受信した場合には、当該指示に従って、再暗号化装置600に対する再暗号化処理の委託や、再署名装置700に対する再署名処理の委託を実行するようにしてもよい。
また、本実施形態では、再署名鍵管理テーブル504の各レコードの再署名前送信元5041及び再署名後送信元5042には、それぞれ1つの装置の情報が格納されるものとしているが、再署名前送信元5041には1つの装置の情報(例えば、pkS1)が格納されるのに対して、再署名後送信元5042に複数の装置の情報を格納するようにしてもよい。また、本実施形態では、再暗号化鍵管理テーブル503の各レコードの再暗号化前送信先5031及び再暗号化後送信先5032にはそれぞれ1つの装置の情報が格納されるものとしているが、再暗号化前送信先5031には1つの装置の情報(例えば、R1)が格納されるのに対して再暗号化後送信先5032には複数の装置の情報が格納されるようにしてもよい。
以上が中継装置500が備える機能についての説明である。続いて、再暗号化装置600が備える機能について説明する。
再暗号化装置600は、中継装置500からの委託を受けて、署名付き暗号文(c,opk,s1)に対する再暗号化処理を実行する。
図12は、再暗号化装置600が備える機能の一例を説明する図である。同図に示すように、再暗号化装置600は、受信部601、署名検証部602、再暗号化部603、及び送信部604を備える。
受信部601は、中継装置500から送信された署名付き暗号文(c,opk,s1)と、署名検証用の公開鍵(pkS)と、再暗号化鍵(例えば、rekR1R2)とを受信する。受信したopk、及びs1は、署名検証部602および送信部604への入力として利用される。また、受信したpkSは署名検証部602への入力として利用される。また、受信したc、及び再暗号化鍵(例えば、rekR1R2)は、再暗号化部603への入力として利用される。なお、これらの受信には、例えば、TCP/IPやHTTP等の汎用的なプロトコルを利用する。
署名検証部602は、プロキシ再署名方式の署名検証アルゴリズムを実装した機能部であり、受信部601が受信した検証用の公開鍵(pkS)と、s1(第1電子署名)と、opk(第1の鍵)とを取得すると、上記署名検証アルゴリズムにしたがって検証結果(検証成功を示す"T"、又は検証失敗を示す"F")を出力する。なお、pkSは上記署名検証アルゴリズムにおける検証用の公開鍵として利用され、opkは上記署名検証アルゴリズムにおける検証対象のデータとして利用され、s1は上記署名検証アルゴリズムにおける検証対象の電子署名として利用される。出力された検証結果("T"、又は"F")は送信部604への入力として利用される。
再暗号化部603は、プロキシ再暗号化方式の再暗号化アルゴリズムを実装した機能部であり、再暗号化鍵生成部371が生成した再暗号化鍵に基づき、再暗号化データを生成して送信する。具体的には、例えば、再暗号化部603は、受信部601が受信したc(暗号化データ)と、再暗号化鍵(例えば、rekR1R2)とを取得すると、上記再暗号化アルゴリズムにしたがって再暗号化データ(以下、c'ともいう)を生成し、又は再暗
号化の失敗を示すエラーコードを出力する。すなわち、再暗号化に成功した場合、再暗号化部603は、再暗号化データ(c')を生成し、一方、再暗号化に失敗した場合は、エ
ラーコードを出力する。なお、再暗号化鍵(例えば、rekR1R2)は上記再暗号化ア
ルゴリズムにおける再暗号化鍵として利用され、cは上記再暗号化アルゴリズムにおける再暗号化対象のデータとして利用される。また、再暗号化部603が生成したデータは送信部604に入力される。
送信部604は、受信部601が受信したopk、及びs1と、署名検証部602が出力した検証結果("T"、又は"F")と、再暗号化部603が出力した再暗号化データ(c')又はエラーコードとを取得する。この際、送信部604は、検証結果として"F"を取
得したか、もしくはエラーコードを取得した場合には、中継装置500へ所定のエラーコードを送信し、再暗号化処理に失敗したことを示す。一方、送信部604は、検証結果として"T"を取得し、かつエラーコードを取得しなかった場合には、中継装置500に、c'、opk、及びs1を結合した新たな署名付き暗号文(c',opk,s1)を送信する。なお、以上のデータの送信には、例えば、TCP/IPやHTTP等の汎用的なプロトコルを利用する。
なお、本実施形態では、送信部604は、署名検証部602が出力した検証結果と、再暗号化部603の再暗号化結果とを全て取得するまで他の処理を行わないものとするが、送信部604は、そのような待機をせず、"F"もしくはエラーコードを取得した時点で、直ちにエラーコードを出力してもよい。
以上が再暗号化装置600が備える機能についての説明である。続いて、再署名装置700が備える機能について説明する。
再署名装置700は、中継装置500からの委託を受けて、署名付き暗号文に対して再署名処理を実行する。
図13は、再署名装置700が備える機能の一例を説明する図である。同図に示すように、再署名装置700は、受信部701、再署名部702、及び送信部703を備える。
受信部701は、中継装置500から送信された暗号化データ(c)と、第1の鍵(opk)と、第1電子署名(s1)と、署名検証用の公開鍵と、再署名鍵とを受信する。具体的には、例えば、受信部701は、署名付き暗号文(c,opk,s1)と、送信側鍵生成装置150が生成した検証用の公開鍵(pkS1)と、送信側鍵生成装置250が生成した検証用の公開鍵(pkS2)と、rskS1S2とを受信する。なお、受信したopkは、再署名部702、及び送信部703への入力として利用される。また、受信したs1、署名検証用の公開鍵、及び再署名鍵は、再署名部702への入力として利用される。また、受信したcは送信部703への入力として利用される。なお、これらのデータの受信には、例えば、TCP/IPやHTTP等の汎用的なプロトコルを利用する。
再署名部702は、プロキシ再署名方式の再署名アルゴリズムを実装した機能部であり、再署名鍵生成部171が生成した再署名鍵に基づき、新たな第1電子署名である再電子署名(s'1)を生成する。具体的には、例えば、再署名部702は、受信部701が受
信したrskS1S2と、pkS1と、pkS2と、第1電子署名(s1)と、第1の鍵(opk)とを取得すると、上記再署名アルゴリズムにしたがってs'1を生成し、又は
エラーコードを出力する。なお、受信した再署名鍵は上記再署名アルゴリズムにおける再署名鍵として利用され、pkS1は上記再署名アルゴリズムにおける、検証用の公開鍵として利用され、pkS2は上記再署名アルゴリズムにおける、検証用の公開鍵として利用され、opkは上記再署名アルゴリズムにおける検証対象のデータとして利用され、s1は上記再署名アルゴリズムにおける再署名の対象となる電子署名として利用される。
再署名に成功した場合、再署名部702は、再電子署名(s'1)を出力する。一方、
再署名に失敗した場合は、再署名部702は、再署名の失敗を示すエラーコードを出力する。出力されたs'1、又はエラーコードは、送信部703への入力として利用される。
送信部703は、受信部701が受信したc、及びopkと、再署名部702が生成した再電子署名(s'1)又はエラーコードとを取得する。なお、再署名部702がエラー
コードを出力した場合、送信部703は、中継装置500に、再署名処理に失敗したことを示すエラーコードを送信する。一方、送信部703は、エラーコードを出力しなかった場合、中継装置500に、暗号化データ(c)、第1の鍵(opk)、及び再電子署名(s'1)を結合した、新たな署名付き暗号文(c,opk,s'1)を送信する。なお、これらのデータの送信には、例えば、TCP/IPやHTTP等の汎用的なプロトコルを利用する。
以上が、再署名装置700についての説明である。
なお、以上に説明した各情報処理装置の機能は、各情報処理装置のハードウエアによって、各情報処理装置の制御装置901が、主記憶装置902、補助記憶装置903、又は記憶媒体908に格納されているプログラム(各種の動作を行うためのコードから構成される)を読み出して実行することにより実現される。また、他の情報処理装置から、ネットワーク20等を介して取得したものであってもよい。
<処理説明>
次に、暗号化システム10で行われるデータ処理について説明する。
本実施形態では、第1の情報処理システム50(1)(具体的には、送信側装置100)が生成した署名付き暗号文を、第1の情報処理システム50(2)(具体的には、送信側装置200)が生成した署名付き暗号文に変換する(すなわち、第1の情報処理システム50(2)が検証可能とする)再署名処理と、第1の情報処理システム50(1)が生成した、第2の情報処理システム60(1)(具体的には、受信側装置300)が検証可能な署名付き暗号文を、第2の情報処理システム60(2)(具体的には、受信側装置400)が検証可能な署名付き暗号文に変換する再暗号化処理とを含む処理(以下、再暗号化再署名処理という)について説明する。
図14、及び図15は、再暗号化再署名処理の一例を説明する図である。
なお、再暗号化再署名処理が行われる前に、送信側鍵生成装置150は、送信側装置100の利用者(以下、第1の送信者ともいう)の入力等に基づき、署名用の秘密鍵(skS1)と検証用の公開鍵(pkS1)とを生成し、生成したこれらを送信側装置100の署名鍵記憶部102へ格納しているものとする。また、送信側鍵生成装置250も同様に、送信側装置200の利用者(以下、第2の送信者ともいう)の入力等に基づき、署名用の秘密鍵(skS2)と検証用の公開鍵(pkS2)とを生成し、生成したこれらを送信側装置200に格納しているものとする。また、受信側装置300の利用者(以下、第1の受信者ともいう)の入力等に基づき、受信側鍵生成装置350は、復号用の秘密鍵(skR1)と公開鍵(pkR1)とを生成し、生成したこれらを受信側装置300に格納しているものとする。また、受信側装置400の利用者(以下、第2の受信者ともいう)の入力等に基づき、受信側鍵生成装置450も同様に、復号用の秘密鍵(skR2)と公開鍵(pkR2)とを生成し、生成したこれらを受信側装置400の暗号化鍵記憶部に格納しているものとする。
図14は、再暗号化再署名処理S10の概要を説明するフローチャートである。同図に示すように、再暗号化再署名処理S10は、(1)再署名鍵の生成に係る処理(以下、再署名鍵生成処理S100という)と、(2)再暗号化鍵の生成に係る処理(以下、再暗号化鍵生成処理S200という)と、(3)署名付き暗号文の生成に係る処理(以下、署名付き暗号化処理S300という)と、(4)署名付き暗号文を中継装置500を介さずに
第2の情報処理システム60に送信する処理(以下、直接送信処理S400という)、又は(5)署名付き暗号文を中継装置500を介して第2の情報処理システム60に送信する処理(以下、中継送信処理S500という)とを、この順に実行する。
なお、再暗号化再署名処理S10は、必ずしもこの順に処理が実行される必要はない。例えば、(1)再署名鍵生成処理S100と(2)再暗号化鍵生成処理S200は、この逆の順序で実行されてもよい。また、(1)再署名鍵生成処理S100や(2)再暗号化鍵生成処理S200は、(3)署名付き暗号化処理S300や(4)直接送信処理S400の後に実行されてもよい。また、いくつかの処理は省略されてもよい。例えば、(4)直接送信処理S400と(5)中継送信処理S500は、両方が実行されてもよいし、どちらか一方のみが実行されてもよい。
図15は、再署名鍵生成処理S100、及び再暗号化鍵生成処理S200の一例を説明するシーケンス図である。
再署名鍵生成処理S100は、以下の通りである。同図に示すように、送信側装置100は、署名鍵記憶部102に格納されている、送信側鍵生成装置150が生成した検証用の公開鍵(pkS1)を送信側装置200へ送信する(S01)。なお、送信側装置200はpkS1を送信側装置100から受信するのではなく、例えば第1の送信者等が管理する、pkS1が記憶されている記憶装置(リポジトリ)から取得するようにしてもよい。
送信側装置200は、検証用の公開鍵(pkS1)と、暗号化鍵記憶部202に格納されている、送信側鍵生成装置250が生成した署名用の秘密鍵(skS2)とを再署名鍵生成装置270へ送信する(S02)。
再署名鍵生成装置270は、送信側装置200から送信されたpkS1、及びskS2から、送信側装置100が生成した署名付き暗号文を送信側装置200の生成した署名付き暗号文として検証可能となるような署名に変換する(再署名する)ための再署名鍵(rskS1S2)を生成し、生成したrskS1S2を送信側装置200へ送信する(S03)。具体的には、再署名鍵生成装置270が、再署名鍵生成アルゴリズムに基づいて、pkS1及びskS2から再署名鍵(rskS1S2)を生成し、生成したrskS1S2を送信側装置200に送信する。
送信側装置200は、再署名鍵生成装置270から送信されたrskS1S2と、送信側装置100から送信された検証用の公開鍵(pkS1)と、送信側鍵生成装置250が生成した検証用の公開鍵(pkS2)とを中継装置500に送信する(S04)。
中継装置500は、送信側装置200から送信されたrskS1S2を、pkS1及びpkS2と共に、鍵記憶部502へ格納する(S05)。
以上により、中継装置500は、送信側装置100の検証用の公開鍵(pkS1)で検証可能な署名付き暗号文を、送信側装置200の検証用の公開鍵(pkS2)で検証可能な署名付き暗号文に変換する、すなわち再署名することができる。
(2)再暗号化鍵生成処理S200は、以下の通りである。
S06に示すように、受信側装置400は、受信側鍵生成装置450が生成した公開鍵(pkR2)を受信側装置300に送信する。なお、受信側装置300は、pkR2を受信側装置400から受信するのではなく、例えば第2の受信者等が管理する、pkR2が記憶されている記憶装置(リポジトリ)から取得するようにしてもよい。
受信側装置300は、公開鍵(pkR2)と、受信側鍵生成装置350が生成した復号用の秘密鍵(skR1)とを、再暗号化鍵生成装置370へ送信する(S07)。
再暗号化鍵生成装置370は、受信側装置300から送信されたskR1及びpkR2に基づき、受信側装置300が復号可能な署名付き暗号文を受信側装置400が復号可能な署名付き暗号文に変換(再暗号化)するための再暗号化鍵(rekR1R2)を生成し、生成したrekR1R2を受信側装置300に送信する(S08)。具体的には、再暗号化鍵生成部371が、再暗号化鍵生成アルゴリズムに従って、skR1及びpkR2に基づきrekR1R2を生成し、生成したrekR1R2を受信側装置300に送信する。
受信側装置300は、再暗号化鍵生成装置370から送信されたrekR1R2を、受信側装置400から送信された公開鍵(pkR2)と、受信側鍵生成装置350が生成した公開鍵(pkR1)と共に中継装置500に送信する(S09)。
中継装置500は、受信側装置300から送信されたrekR1R2を、pkR1及びpkR2と共に鍵記憶部502に格納する(S10)。
以上により、中継装置500は、受信側鍵生成装置350が生成した復号用の秘密鍵(skR1)で復号可能な署名付き暗号文を、受信側鍵生成装置450が生成した復号用の秘密鍵(skR2)で復号可能な署名付き暗号文に変換する、すなわち再暗号化することができる。
図16は、署名付き暗号化処理S300、直接送信処理S400、及び中継送信処理S500の一例を説明するシーケンス図である。
(3)署名付き暗号化処理S300は、以下の通りである。
図16に示すように、送信側装置100は、メッセージ(m)を、受信側鍵生成装置350が生成した公開鍵(pkR1)、及び送信側鍵生成装置150が生成した署名用の秘密鍵(skS1)を用いて電子署名を生成し、かつ暗号化することで、署名付き暗号文(c,opk,s1)を生成する(S11)。
具体的には、例えば、まず送信側装置100の利用者が、入力装置906等により、入力部103にmを入力すると共に、送信先指定部104にpkR1を入力する。
次に、署名鍵生成部101が、opk及びoskを生成する。そして、第1署名生成部105が、skS1を署名用の秘密鍵とし、opkを署名対象のメッセージとして、プロキシ再署名方式の署名生成アルゴリズムに従って、第1電子署名(s1)を生成する。
次に、第2署名生成部106が、oskを署名用の秘密鍵とし、mを署名対象のメッセージとして、ワンタイム署名方式の署名生成アルゴリズムに従って、第2電子署名(s2)を生成する。
そして、暗号化部107は、pkR1を暗号化用の公開鍵とし、s2及びmを暗号化対象のデータとして、プロキシ再暗号化方式の暗号化アルゴリズムに従って、暗号化データ(c)を生成する。
(4)署名付き暗号文の直接送信処理S400は、以下の通りである。
図16に示すように、送信側装置100の送信部108は、S11で生成した署名付き
暗号文(c,opk,s1)を、送信側鍵生成装置150が生成した検証用の公開鍵(pkS1)と共に、受信側装置300に送信する(S12)。
受信側装置300は、送信側装置100から受信した署名付き暗号文(c,opk,s1)の検証及び復号処理を実行することにより、メッセージ(m)を取得するか、もしくはエラーコードを出力する(S13)。
具体的には、まず、受信部301が、(c,opk,s1)及びpkS1を受信する。次に、第1署名検証部303が、pkS1を検証用の公開鍵とし、opkを検証対象のデータとし、s1を検証対象の電子署名として、プロキシ再署名方式の署名検証アルゴリズムに従って、検証結果("T"または"F")を出力する。なお、検証失敗が"F"であった場合には、例えば、出力部306はエラーコードを出力し、本処理を終えてもよい。
次に、復号部304が、skR1を復号用の秘密鍵とし、cを復号対象の暗号化データとして、プロキシ再暗号化方式の復号アルゴリズムを実行することでm及びs2を生成し、もしくは、復号失敗を示すエラーコードを出力する。なお、エラーコードが出力された場合、出力部306はそのエラーコードを出力し、本処理を終えてもよい。
次に、第2署名検証部305が、opkを検証用の公開鍵とし、mを検証対象のメッセージとし、s2を検証対象の電子署名として、ワンタイム署名方式の署名検証アルゴリズムを実行することで、検証結果("T"または"F")を出力する。
検証結果が"F"であるか、または復号部304がエラーコードを出力した場合には、第2署名検証部305は、エラーコードを出力する。これにより、受信側装置300の利用者に、受信した署名付き暗号文に問題があったことを示す。なお、検証結果が"F"であった場合、出力部306が、エラーコードを出力し、本処理を終えてもよい。
一方、検証結果がいずれも"T"であり、かつ、復号部304がエラーコードを出力しなかった場合には、第2署名検証部305は、復号部304が出力したメッセージ(m)を出力する。これにより、受信側装置300の利用者にその旨を提示する。
以上の処理により、メッセージ(m)は、送信元の公開鍵(pkS1)に対応する、送信側装置100から送られた正当なデータであることが保証される。
(5)中継送信処理S500は、以下の通りである。
図16に示すように、送信側装置100の送信部108は、S11で生成した署名付き暗号文(c,opk,s1)を、送信側鍵生成装置150が生成した検証用の公開鍵(pkS1)及び受信側装置300の識別子(R1)と共に、中継装置500に送信する(S14)。
中継装置500の委託処理部505は、再暗号化鍵管理テーブル503を参照し、受信部501が受信した識別子(R1)が再暗号化前送信先5031に格納されているレコードを取得し、取得したレコードにおける再暗号化後送信先5032の識別子(R2)と、再暗号化鍵5033のrekR1R2とを取得する。次に、委託処理部505は、再暗号化装置600に対して、(c,opk,s1)、pkS1、及びrekR1R2を送信することにより、再暗号化処理を依頼する(S15)。
再暗号化装置600は、中継装置500から受信した署名付き暗号文(c,opk,s1)に対して再暗号化処理を実行し、再暗号化後の署名付き暗号文(c',opk,s1
)を生成する(S16)。
具体的には、まず、受信部601は、署名付き暗号文(c,opk,s1)と、pkS1と、rekR1R2とを受信する。次に、第1署名検証部602は、pkS1を検証用公開鍵とし、opkを検証対象メッセージとし、s1を検証対象の電子署名として、プロキシ再署名方式の署名検証アルゴリズムに従って、検証結果("T"または"F")を出力する。なお、検証結果が検証の失敗を示す"F"であった場合、送信部604は、中継装置500へエラーコードを送信し、本処理を終えてもよい。
次に、再暗号化部603が、rekR1R2を再暗号化鍵とし、cを再暗号化対象のデータとして、プロキシ再暗号化方式の再暗号化アルゴリズムに従って、再暗号化データ(c')を生成し、もしくは再暗号化の失敗を示すエラーコードを出力する。なお、エラー
コードが出力された場合には、送信部604は、中継装置500へそのエラーコードを送信し、本処理を終えてもよい。
最後に、送信部604は、検証結果が"F"であったか、もしくは再暗号化部603がエラーコードを出力した場合には、中継装置500にエラーコードを送信し、再暗号化処理に失敗したことを示す。一方、検証結果が"T"であり、かつ再暗号化部603がエラーコードを出力しなかった場合、送信部604は、中継装置500に(c',opk,s1)
を送信する(S17)。
中継装置500の委託処理部505は、再暗号化装置600から、再暗号化後の署名付き暗号文(c',opk,s1)を受信すると、再署名鍵管理テーブル504から、送信
側鍵生成装置150が生成した検証用の公開鍵(pkS1)が再署名前送信元5041に格納されているレコードを取得し、取得したレコードにおける、再署名後送信元5042の公開鍵(pkS2)と、再署名鍵5043の再署名鍵(rskS1S2)とを取得する。次に、委託処理部505は、再署名装置700に対して、(c',opk,s1)と、
pkS1と、pkS2と、rskS1S2とを送信することにより、再署名処理を依頼する(S18)。
再署名装置700は、中継装置500から受信した再暗号化後の署名付き暗号文(c'
,opk,s1)に対して再署名処理を実行し、再暗号化後かつ再署名後の署名付き暗号文(c',opk,s'1)を生成する(S19)。
具体的には、まず、受信部701は、中継装置500から送信された署名付き暗号文(c',opk,s1)と、送信側鍵生成装置150が生成した検証用の公開鍵(pkS1
)と、送信側鍵生成装置250が生成した検証用の公開鍵(pkS2)と、再署名鍵(rskS1S2)とを受信する。次に、再署名部702が、rskS1S2を再署名鍵とし、pkS1を再署名前の電子署名の検証用の公開鍵とし、pkS2を再署名後の電子署名の検証用の公開鍵とし、opkを検証対象のデータとし、s1を再署名前の電子署名として、プロキシ再署名方式の再署名アルゴリズムに従って、再電子署名(s'1)を生成し
、もしくはエラーコードを出力する。なお、エラーコードが出力された場合には、送信部703は中継装置500にそのエラーコードを送信し、本処理を終えてもよい。一方、エラーコードが出力されなければ、送信部703は中継装置500に、(c',opk,s'1)を送信する(S20)。
中継装置500の委託処理部505は、(c',opk,s'1)を受信すると、送信部506を介して、(c',opk,s'1)及びpkS2を、識別子がR2である受信側装置400に送信する(S21)。
受信側装置400は、中継装置500から受信した(c',opk,s'1)の検証及び
復号処理を実行し、メッセージ(m)を生成するか、もしくはエラーコードを出力する(S22)。
具体的には、まず、受信側装置400が(c',opk,s'1)、及びpkS2を受信する。次に、受信側装置400が、pkS2を検証用の公開鍵とし、opkを検証対象のデータとし、s'1を検証対象の電子署名として、プロキシ再署名方式の署名検証アルゴ
リズムに従って、検証結果("T"または"F")を出力する。なお、検証結果が検証失敗を示す"F"であった場合には、受信側装置400はエラーコードを出力し、本処理を終えてもよい。
次に、受信側装置400は、skR2を復号用の秘密鍵とし、c'を復号対象のデータ
として、プロキシ再暗号化方式の復号アルゴリズムに従って、m及びs2を生成し、もしくは復号失敗を示すエラーコードを出力する。なお、エラーコードが出力された場合には、受信側装置400はそのエラーコードを出力し、本処理を終えてもよい。
次に、受信側装置400は、opkを検証用の公開鍵とし、mを検証対象のメッセージとし、s2を検証対象の電子署名として、ワンタイム署名方式の署名検証アルゴリズムに従って、検証結果("T"または"F")を出力する。なお、検証結果が検証失敗を示す"F"であった場合には、受信側装置400はエラーコードを出力し、本処理を終えてもよい。
このように、署名検証結果のいずれかが検証失敗を示す"F"であるか、またはエラーコードが出力された場合には、受信側装置400がエラーコードを出力することで、受信した署名付き暗号文に問題があったことを利用者に示す。
一方、検証結果のいずれも"T"であり、かつエラーコードが出力されなかった場合、受信側装置400は、生成されたメッセージ(m)を受信側装置400に出力することにより、利用者に提示する。
以上により、受信側装置400が受信したメッセージ(m)は、送信元の装置の公開鍵(pkS2)に対応する、送信側装置200から送られた正当なデータであることが保証される。
以上が第1実施形態における暗号化システム10の処理手順についての説明である。
以上に説明したように、本実施形態の暗号化システム10によれば、第1の情報処理システム50は、暗号化対象のデータ及び第2電子署名(s2)を暗号化鍵に基づき暗号化して第2の情報処理システム60に送信し、一方、第2の情報処理システム60は、暗号化鍵(pkR)に対応する鍵である復号鍵(skR)に基づき暗号化したデータ及び第2電子署名を復号し、第2電子署名が正当であると検証した場合に、復号した暗号化対象のデータを出力する。これにより、暗号化対象のデータを確実に暗号化し、かつ正当性のある電子署名(第2電子署名)がなされている場合にのみ、そのデータを復号して出力することができる。また、本実施形態の暗号化システム10は、第1の鍵(opk)の電子署名である第1電子署名(s1)が正当であると検証された場合にのみ、復号されたデータを出力するので、第1の鍵が何らかの事情で不正に書き換えられた場合には復号を行わない。このように、本実施形態の暗号化システム10によれば、暗号化対象のデータを確実に暗号化し、また、安全に正しく復号することができる。
特に、本実施形態の暗号化システム10は、暗号化データと、暗号化対象のデータの電子署名が別々のデータとして第1の情報処理システム50から送信されるので、再署名再暗号化が可能となる。すなわち従来のSign-then-Encrypt方式を利用した再署名再暗号化
で生じるような不都合、すなわち、暗号文の中に電子署名が包まれているため、プロキシはその暗号文を復号して電子署名を取得することができないという不都合を回避でき、また、Encrypt-then-Sign方式とも根本的に異なるので、再署名再暗号化が可能となる。
また、本実施形態の暗号化システム10によれば、再署名鍵生成部171が新たな署名生成鍵(再署名鍵)に基づき再電子署名を生成し、第1署名検証部303が再電子署名の正当性を検証するので、例えば、再電子署名が不正に書き換えられた場合には復号は行われない。すなわち、本実施形態の暗号化システム10によれば、再署名を正しくかつ安全に行うことができる。
また、本実施形態の暗号化システム10によれば、再暗号化鍵生成部371が再暗号化鍵を生成し、再暗号化部603が再暗号化データを送信し、前記の第2の情報処理システム60とは異なる他の第2の情報処理システム60が、再暗号化データを暗号化データとして受信し、その暗号化データを受信して再暗号化鍵に基づき復号するので、鍵に基づく再暗号化を行うことができる。これにより、再暗号化を正しくかつ安全に行うことができる。
また、本実施形態の暗号化システム10によれば、再暗号化部603は、第1電子署名の正当性が第1の鍵に基づき検証された場合に再暗号化データを生成して送信するので、暗号化データと第1電子署名とが正当に対応している場合にのみ再暗号化を受信側の装置に提供することができる。これにより、第1電子署名に不正な書き換え等が行われていないことを確認することができるので、再暗号化がより安全に行われる。
また、本実施形態の暗号化システム10では、第3の情報処理システム70(プロキシ)が第1の情報処理システム50から第1電子署名を受信し、新たな第1電子署名を生成して第2の情報処理システム60に送信するので、いわゆるプロキシ再署名が可能となる。
また、本実施形態の暗号化システム10では、第3の情報処理システム70が(プロキシ)が第1の情報処理システム50から暗号化データを受信し、生成された再暗号化データを第2の情報処理システム60に送信するので、いわゆるプロキシ再暗号化が可能となる。
このように、本実施形態の暗号化システム10によれば、再署名再暗号化、特にプロキシ再署名再暗号化を実現することができる。
(第2実施形態)
次に、第2実施形態に係る暗号化システムについて、図面を用いて詳細に説明する。
本実施形態では、タグベースプロキシ再暗号化方式が用いられる。タグベースプロキシ再暗号化方式では、鍵生成アルゴリズム、再暗号化鍵生成アルゴリズム、暗号化アルゴリズム、復号アルゴリズム、及び再暗号化アルゴリズムが採用される。
タグベースプロキシ再暗号化方式は、プロキシ再暗号化方式の暗号化アルゴリズム、復号アルゴリズム、及び再暗号化アルゴリズムに従って生成されたデータに加えて、「タグ」と呼ばれる任意のビット列を利用するものである。具体的には、例えば、非特許文献2に記載のプロキシ再暗号化方式におけるしきい値暗号方式を、タグベースのしきい値暗号方式に置き換えることで実現する。
<システム構成及びハードウェア構成>
本実施形態の暗号化システムのシステム構成及びハードウェア構成は、図1、図2に例示した第1実施形態と同様である。
<機能>
次に、本実施形態の暗号化システムにおける各情報処理装置が備える機能について説明する。図17及び図18は、第2実施形態に係る暗号化システムにおける各情報処理装置が備える機能を説明する図である。
まず、第1実施形態の送信側装置100に対応する、本実施形態に係る送信側装置が備える機能について説明する。
図17は、第1実施形態の送信側装置100に対応する装置である、第2実施形態に係る送信側装置1100が備える機能の一例を説明する図である。同図に示すように、送信側装置1100は、第1実施形態の送信側装置100における暗号化部107の代わりに、タグ付き暗号化部1107を備える。その他の機能は、第1実施形態における送信側装置100と同様である。
タグ付き暗号化部1107は、タグベースプロキシ再暗号化方式の暗号化アルゴリズムを実装した機能部であり、送信先指定部104が記憶している暗号化に用いる公開鍵(pkR)と、鍵生成部101が生成した第1の鍵(opk)と、第2署名生成部106が生成した第2電子署名(s2)と、入力部103に入力されたメッセージ(m)とを取得すると、上記タグベースプロキシ再暗号化方式の暗号化アルゴリズムにしたがって、暗号化データ(c)を生成する。なお、pkRは上記暗号化アルゴリズムにおける暗号化用の公開鍵として利用され、opkは上記暗号化アルゴリズムにおけるタグとして利用され、s2及びmは、上記暗号化アルゴリズムにおける暗号化対象のデータとして利用されている。生成されたcは、送信部108への入力として利用される。
第1実施形態における送信側装置200に対応する、本実施形態の送信側装置の機能は、送信側装置1100と同様である。
次に、受信側装置300に対応する、本実施形態に係る受信側装置が備える機能について説明する。
図18は、第1実施形態の受信側装置300に対応する装置である、第2実施形態に係る受信側装置1300が備える機能の一例を説明する図である。同図に示すように、受信側装置1300は、第1実施形態の受信側装置300における復号部304の代わりに、タグ付き復号部1304を備える。その他の機能は、第1実施形態における受信側装置300と同様である。
タグ付き復号部1304は、タグベースプロキシ再暗号化方式の復号アルゴリズムを実装した機能部であり、暗号化鍵記憶部302が記憶している復号用の秘密鍵(skR)と、受信部301が受信した第1の鍵(opk)及び暗号化データ(c)とを取得すると、上記タグベースプロキシ再暗号化方式の復号アルゴリズムにしたがって暗号化データ(c)を復号する。なお、skRは復号アルゴリズムにおける復号用の秘密鍵として利用され、opkは復号アルゴリズムにおけるタグとして利用され、cは復号アルゴリズムにおける復号対象の暗号化データとして利用される。復号に成功した場合、タグ付き復号部1304は、第2電子署名(s2)とメッセージ(m)とを出力する。一方、復号に失敗した場合、タグ付き復号部1304は、失敗を示すエラーコードを出力する。タグ付き復号部1304の出力は、出力部306への入力として利用される。
第1実施形態における受信側装置400に対応する、本実施形態の受信側装置の機能は、受信側装置1300と同様である。
次に、第1実施形態における再暗号化装置600に対応する、本実施形態に係る再暗号化装置が備える機能について説明する。
図19は、第1実施形態の再暗号化装置600に対応する装置である、第2実施形態に係る再暗号化装置1600が備える機能の一例を説明する図である。同図に示すように、再暗号化装置1600は、第1実施形態の再暗号化装置600における再暗号化部603の代わりに、タグ付き再暗号化部1603を備える。その他の機能は、第1実施形態における再暗号化装置600と同様である。
タグ付き再暗号化部1603は、タグベースプロキシ再暗号化方式の再暗号化アルゴリズムを実装した機能部であり、受信部601が受信した第2の鍵(opk)及び暗号化データ(c)と、再暗号化鍵(rekR1R2)とを取得すると、上記タグベースプロキシ再暗号化方式の再暗号化アルゴリズムにしたがって再暗号化データ(c')を生成し、も
しくはエラーコードを出力する。なお、rekR1R2は上記再暗号化アルゴリズムにおける再暗号化鍵として利用され、opkは上記再暗号化アルゴリズムにおけるタグとして利用され、cは上記再暗号化アルゴリズムにおける再暗号化対象のデータとして利用される。再暗号化に成功した場合、タグ付き再暗号化部1603は、再暗号化データ(c')
を出力する。一方、再暗号化に失敗した場合、タグ付き再暗号化部1603は、失敗を示すエラーコードを出力する。タグ付き再暗号化部1603の出力は、送信部604への入力として利用される。
このように、本実施形態の暗号化システムによれば、第1の鍵(opk)を「タグ」として用いて暗号化対象のデータの暗号化を行い、また、再暗号化においても同様に、第1の鍵(opk)を「タグ」として用いて再暗号化を行い、さらに復号においても、第1の鍵(opk)を「タグ」として用いて復号を行う。これにより、再暗号化、及び復号の際に第1の鍵(opk)が書き換えられた場合には、これを検出することができる。
すなわち、本実施形態の暗号化システムにおいては、署名付き暗号文(c,opk,s1)に含まれるopkがタグとしてcに関連付けられているため、署名付き暗号文(c,opk,s1)におけるopkが異なる値opk'に差し替えられて不正な署名付き暗号
文(c,opk',s1)が生成されたとしても、再暗号化処理または復号処理の際にそ
の差し替えを検出し、エラーとして扱うことが可能となる。これにより、再暗号化をより安全に行うことができる。
以上、本発明を実施するための形態などについて具体的に説明したが、本発明はこれに限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能である。
例えば、本実施形態では、第1の情報処理システム50や第2の情報処理システム60が、再署名や再暗号化に関する処理を、中継装置500を介して委託するものとしたが、中継装置500を介することなく、直接、再署名装置700や再暗号化装置600に対して処理を委託するようにしてもよい。
10 暗号化システム、50 第1の情報処理システム、60 第2の情報処理システム、70 第3の情報処理システム、100 送信側装置、150 送信側鍵生成装置、170 再署名鍵生成装置、200 送信側装置、250 送信側鍵生成装置、270 再署名鍵生成装置、300 受信側装置、350 受信側鍵生成装置、370 再暗号化鍵生成装置、400 受信側装置、450 受信側鍵生成装置、470 再暗号化鍵生成装
置、500 中継装置、600 再暗号化装置、700 再署名装置、S10 再暗号化再署名処理、S100 再署名鍵生成処理、S200 再暗号化鍵生成処理、S300 署名付き暗号化処理、S400 直接送信処理、S500 中継送信処理

Claims (15)

  1. それぞれプロセッサ及びメモリを有し、互いに通信可能に接続されている第1の情報処理システム及び第2の情報処理システムを含んで構成される暗号化システムであって、
    前記第1の情報処理システムは、
    互いに対応する、第1の鍵、及び第2の鍵を生成する鍵生成部と、
    電子署名を生成するための鍵である署名生成鍵を記憶する署名生成鍵記憶部と、
    前記記憶している署名生成鍵に基づき、前記生成した第1の鍵の電子署名である第1電子署名を生成する第1署名生成部と、
    前記生成した第2の鍵に基づき、暗号化対象のデータの電子署名である第2電子署名を生成する第2署名生成部と、
    前記暗号化対象のデータ、及び前記生成した第2電子署名を、前記第2の情報処理システムが生成した、暗号化に用いる鍵である暗号化鍵に基づき暗号化して暗号化データを生成する暗号化部と、
    前記第1の鍵、前記生成した第1電子署名、及び前記生成した暗号化データを送信する送信部とを備え、
    前記第2の情報処理システムは、
    前記第1の鍵、前記第1電子署名、及び前記暗号化データを受信する受信部と、
    前記受信した第1電子署名の正当性を、前記署名生成鍵に対応する鍵である署名検証鍵と前記受信した第1の鍵とに基づき検証する第1署名検証部と、
    前記受信した暗号化データを、前記暗号化鍵に対応する鍵である復号鍵に基づき、前記暗号化対象のデータ及び前記第2電子署名に復号する復号部と、
    前記復号した第2電子署名の正当性を、前記復号した暗号化対象のデータ及び前記受信した第1の鍵に基づき検証する第2署名検証部と、
    前記第1電子署名、及び前記第2電子署名が正当であると検証された場合に、前記復号した暗号化対象のデータを出力する出力部とを備える、
    暗号化システム。
  2. 請求項1に記載の暗号化システムであって、
    前記署名生成鍵と、前記第1の情報処理システムと異なる他の前記第1の情報処理システムが生成した前記署名生成鍵である他署名生成鍵とに基づき、新たな前記署名生成鍵である再署名鍵を生成する再署名鍵生成部と、
    前記生成した再署名鍵に基づき、新たな前記第1電子署名である再電子署名を生成する再署名部とを備え、
    前記第1署名検証部は、前記再電子署名の正当性を、前記署名生成鍵に対応する鍵、及び前記他署名生成鍵に対応する鍵を共に前記署名検証鍵として、前記第1の鍵に基づき検証する、
    暗号化システム。
  3. 請求項1に記載の暗号化システムであって、
    前記暗号化データを、前記第2の情報処理システムとは異なる他の前記第2の情報処理システムで復号可能なデータに再暗号化するための鍵である再暗号化鍵を、前記他の前記第2の情報処理システムが生成した前記暗号化鍵に基づき生成する再暗号化鍵生成部と、
    前記生成した再暗号化鍵に基づき、前記生成した暗号化データを再暗号化したデータである再暗号化データを生成して送信する再暗号化部とを備え、
    前記他の第2の情報処理システムの前記受信部は、前記送信された再暗号化データを前記暗号化データとして受信し、
    前記他の第2の情報処理システムの前記復号部は、前記受信した暗号化データを、前記再暗号化鍵に対応する鍵に基づき、前記暗号化対象のデータ及び前記第2電子署名に復号する、
    暗号化システム。
  4. 請求項3に記載の暗号化システムであって、
    前記再暗号化部は、前記第1電子署名の正当性を、前記署名生成鍵に対応する鍵である署名検証鍵及び前記第1の鍵に基づき検証し、前記第1電子署名の正当性が検証された場合に、前記再暗号化データを生成して送信する
    暗号化システム。
  5. 請求項1に記載の暗号化システムであって、前記鍵生成部は、第1署名生成部が実行される前に前記第1の鍵及び前記第2の鍵を生成する、暗号化システム。
  6. 請求項1に記載の暗号化システムであって、
    前記第2の鍵は、前記第1の情報処理システムが記憶している秘密鍵であり、
    前記署名生成鍵は、前記第1の情報処理システムが記憶している秘密鍵であり、
    前記復号鍵は、前記第2の情報処理システムが記憶している秘密鍵である、
    暗号化システム。
  7. 請求項2に記載の暗号化システムであって、
    前記暗号化システムはさらに、第3の情報処理システムを含んで構成され、
    前記送信部は、前記生成した第1電子署名を前記第3の情報処理システムに送信し、
    前記第3の情報処理システムは、前記再署名部を備え、
    前記生成した第1電子署名を受信し、
    前記再署名部により生成された、前記受信した第1電子署名とは異なる前記新たな第1電子署名を前記第2の情報処理システムに送信する、
    暗号化システム。
  8. 請求項3に記載の暗号化システムであって、
    前記暗号化システムはさらに、第3の情報処理システムを含んで構成され、
    前記送信部は、前記生成した暗号化データを前記第3の情報処理システムに送信し、
    前記第3の情報処理システムは、前記再暗号化部を備え、
    前記生成した暗号化データを受信し、
    前記暗号化部により生成された前記暗号化データを前記第2の情報処理システムに送信する、
    暗号化システム。
  9. 請求項3に記載の暗号化システムであって、
    前記第1の鍵は、所定のビット列から構成されるデータであり、
    前記暗号化部は、前記第1の鍵、前記暗号化対象のデータ、及び前記生成した第2電子署名を、前記第2の情報処理システムが生成した、暗号化に用いる鍵である暗号化鍵に基づき暗号化して暗号化データを生成し、
    前記再暗号化部は、前記第1の鍵、及び前記生成した再暗号化鍵に基づき、前記再暗号化データを生成して送信し、
    前記復号部は、前記受信した暗号化データを、前記暗号化鍵に対応する鍵である復号鍵、及び前記第1の鍵に基づき、前記暗号化対象のデータ及び前記第2電子署名に復号する、
    暗号化システム。
  10. 請求項1に記載の暗号化システムであって、
    前記暗号化システムはさらに、第3の情報処理システムを含んで構成され、
    前記第2の鍵は、前記第1の情報処理システムが記憶している秘密鍵であり、
    前記署名生成鍵は、前記第1の情報処理システムが記憶している秘密鍵であり、
    前記復号鍵は、前記第2の情報処理システムが記憶している秘密鍵であり、
    前記署名生成鍵と、前記第1の情報処理システムと異なる他の前記第1の情報処理システムが生成した前記署名生成鍵である他署名生成鍵とに基づき、新たな前記署名生成鍵である再署名鍵を生成する再署名鍵生成部と、
    前記生成した再署名鍵に基づき、新たな前記第1電子署名である再電子署名を生成する再署名部と、
    前記暗号化データを、前記第2の情報処理システムとは異なる他の前記第2の情報処理システムで復号可能なデータに再暗号化するための鍵である再暗号化鍵を、前記他の前記第2の情報処理システムが生成した前記暗号化鍵に基づき生成する再暗号化鍵生成部と、
    前記生成した再暗号化鍵に基づき、前記生成した暗号化データを再暗号化したデータである再暗号化データを生成して送信する再暗号化部とを備え、
    前記鍵生成部は、第1署名生成部が実行される前に前記第1の鍵及び前記第2の鍵を生成し、
    前記送信部は、前記生成した第1電子署名を前記第3の情報処理システムに送信し、
    前記送信部は、前記生成した暗号化データを前記第3の情報処理システムに送信し、
    前記第1署名検証部は、前記再電子署名の正当性を、前記署名生成鍵に対応する鍵、及び前記他署名生成鍵に対応する鍵を共に前記署名検証鍵として、前記第1の鍵に基づき検証し、
    前記再暗号化部は、前記第1電子署名の正当性を、前記署名生成鍵に対応する鍵である署名検証鍵及び前記第1の鍵に基づき検証し、前記第1電子署名の正当性が検証された場合に、前記再暗号化データを生成して送信し、
    前記他の第2の情報処理システムの前記受信部は、前記送信された再暗号化データを前記暗号化データとして受信し、
    前記他の第2の情報処理システムの前記復号部は、前記受信した暗号化データを、前記再暗号化鍵に対応する鍵に基づき、前記暗号化対象のデータ及び前記第2電子署名に復号し、
    前記第3の情報処理システムは、
    前記再署名部を備え、
    前記生成した第1電子署名を受信し、
    前記再署名部により生成された、前記受信した第1電子署名とは異なる前記新たな第1電子署名を前記第2の情報処理システムに送信し、
    前記再暗号化部を備え、
    前記生成した暗号化データを受信し、
    前記暗号化部により生成された前記暗号化データを前記第2の情報処理システムに送信する、
    暗号化システム。
  11. それぞれプロセッサ及びメモリを有し、互いに通信可能に接続されている第1の情報処理システム及び第2の情報処理システムを含んで構成される暗号化システムにおける暗号化方法であって、
    前記第1の情報処理システムが、
    互いに対応する、第1の鍵、及び第2の鍵を生成し、
    電子署名を生成するための鍵である署名生成鍵を記憶し、
    前記記憶している署名生成鍵に基づき、前記生成した第1の鍵の電子署名である第1電子署名を生成し、
    前記生成した第2の鍵に基づき、暗号化対象のデータの電子署名である第2電子署名を生成し、
    前記暗号化対象のデータ、及び前記生成した第2電子署名を、前記第2の情報処理システムが生成した、暗号化に用いる鍵である暗号化鍵に基づき暗号化して暗号化データを生
    成し、
    前記第1の鍵、前記生成した第1電子署名、及び前記生成した暗号化データを送信し、
    前記第2の情報処理システムが、
    前記第1の鍵、前記第1電子署名、及び前記暗号化データを受信し、
    前記受信した第1電子署名の正当性を、前記署名生成鍵に対応する鍵である署名検証鍵と前記受信した第1の鍵とに基づき検証し、
    前記受信した暗号化データを、前記暗号化鍵に対応する鍵である復号鍵に基づき、前記暗号化対象のデータ及び前記第2電子署名に復号し、
    前記復号した第2電子署名の正当性を、前記復号した暗号化対象のデータ及び前記受信した第1の鍵に基づき検証し、
    前記第1電子署名、及び前記第2電子署名が正当であると検証された場合に、前記復号した暗号化対象のデータを出力する、
    暗号化方法。
  12. 請求項11に記載の暗号化方法であって、
    前記署名生成鍵と、前記第1の情報処理システムと異なる他の前記第1の情報処理システムが生成した前記署名生成鍵である他署名生成鍵とに基づき、新たな前記署名生成鍵である再署名鍵を生成し、
    前記生成した再署名鍵に基づき、新たな前記第1電子署名である再電子署名を生成し、
    前記第1署名検証部は、前記再電子署名の正当性を、前記署名生成鍵に対応する鍵、及び前記他署名生成鍵に対応する鍵を共に前記署名検証鍵として、前記第1の鍵に基づき検証する、
    暗号化方法。
  13. 請求項11に記載の暗号化方法であって、
    前記暗号化データを、前記第2の情報処理システムとは異なる他の前記第2の情報処理システムで復号可能なデータに再暗号化するための鍵である再暗号化鍵を、前記他の前記第2の情報処理システムが生成した前記暗号化鍵に基づき生成し、
    前記生成した再暗号化鍵に基づき、前記生成した暗号化データを再暗号化したデータである再暗号化データを生成して送信し、
    前記他の第2の情報処理システムの前記受信部は、前記送信された再暗号化データを前記暗号化データとして受信し、
    前記他の第2の情報処理システムの前記復号部は、前記受信した暗号化データを、前記再暗号化鍵に対応する鍵に基づき、前記暗号化対象のデータ及び前記第2電子署名に復号する、
    暗号化方法。
  14. それぞれプロセッサ及びメモリを有し、互いに通信可能に接続されている第1の情報処理システム及び第2の情報処理システムを含んで構成される暗号化システムにおいて、
    前記第1の情報処理システムに、
    互いに対応する、第1の鍵、及び第2の鍵を生成する鍵生成機能と、
    電子署名を生成するための鍵である署名生成鍵を記憶する署名生成鍵記憶機能と、
    前記記憶している署名生成鍵に基づき、前記生成した第1の鍵の電子署名である第1電子署名を生成する第1署名生成機能と、
    前記生成した第2の鍵に基づき、暗号化対象のデータの電子署名である第2電子署名を生成する第2署名生成機能と、
    前記暗号化対象のデータ、及び前記生成した第2電子署名を、前記第2の情報処理システムが生成した、暗号化に用いる鍵である暗号化鍵に基づき暗号化して暗号化データを生成する暗号化機能と、
    前記第1の鍵、前記生成した第1電子署名、及び前記生成した暗号化データを送信する
    送信機能とを実行させ、
    前記第2の情報処理システムに、
    前記第1の鍵、前記第1電子署名、及び前記暗号化データを受信する受信機能と、
    前記受信した第1電子署名の正当性を、前記署名生成鍵に対応する鍵である署名検証鍵と前記受信した第1の鍵とに基づき検証する第1署名検証機能と、
    前記受信した暗号化データを、前記暗号化鍵に対応する鍵である復号鍵に基づき、前記暗号化対象のデータ及び前記第2電子署名に復号する復号機能と、
    前記復号した第2電子署名の正当性を、前記復号した暗号化対象のデータ及び前記受信した第1の鍵に基づき検証する第2署名検証機能と、
    前記第1電子署名、及び前記第2電子署名が正当であると検証された場合に、前記復号した暗号化対象のデータを出力する出力機能とを実行させる、
    暗号化プログラム。
  15. 請求項14に記載の暗号化プログラムであって、
    前記暗号化システムに、
    前記署名生成鍵と、前記第1の情報処理システムと異なる他の前記第1の情報処理システムが生成した前記署名生成鍵である他署名生成鍵とに基づき、新たな前記署名生成鍵である再署名鍵を生成する再署名鍵生成機能と、
    前記生成した再署名鍵に基づき、新たな前記第1電子署名である再電子署名を生成する再署名生成機能と、
    前記暗号化データを、前記第2の情報処理システムとは異なる他の前記第2の情報処理システムで復号可能なデータに再暗号化するための鍵である再暗号化鍵を、前記他の前記第2の情報処理システムが生成した前記暗号化鍵に基づき生成する再暗号化鍵生成機能と、
    前記生成した再暗号化鍵に基づき、前記生成した暗号化データを再暗号化したデータである再暗号化データを生成して送信する再暗号化機能とをさらに実行させ、
    前記第1署名検証機能は、前記再電子署名の正当性を、前記署名生成鍵に対応する鍵、及び前記他署名生成鍵に対応する鍵を共に前記署名検証鍵として、前記第1の鍵に基づき検証する機能であり、
    前記他の第2の情報処理システムの前記受信機能は、前記送信された再暗号化データを前記暗号化データとして受信する機能であり、
    前記他の第2の情報処理システムの前記復号機能は、前記受信した暗号化データを、前記再暗号化鍵に対応する鍵に基づき、前記暗号化対象のデータ及び前記第2電子署名に復号する機能である、
    暗号化プログラム。
JP2016045780A 2016-03-09 2016-03-09 暗号化システム、暗号化方法、及び暗号化プログラム Active JP6433448B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2016045780A JP6433448B2 (ja) 2016-03-09 2016-03-09 暗号化システム、暗号化方法、及び暗号化プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2016045780A JP6433448B2 (ja) 2016-03-09 2016-03-09 暗号化システム、暗号化方法、及び暗号化プログラム

Publications (2)

Publication Number Publication Date
JP2017163326A JP2017163326A (ja) 2017-09-14
JP6433448B2 true JP6433448B2 (ja) 2018-12-05

Family

ID=59853255

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016045780A Active JP6433448B2 (ja) 2016-03-09 2016-03-09 暗号化システム、暗号化方法、及び暗号化プログラム

Country Status (1)

Country Link
JP (1) JP6433448B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7323807B2 (ja) 2020-01-20 2023-08-09 富士通株式会社 検証方法、プログラム、および情報処理装置
CN115102740A (zh) * 2022-06-15 2022-09-23 腾讯科技(深圳)有限公司 通信方法、装置、设备、存储介质及程序产品

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2950212B1 (fr) * 2009-09-15 2011-10-14 Ingenico Sa Procede de signature cryptographique de messages a securite renforcee, procede de verification de signature, dispositifs et produits programmes d'ordinateur correspondants.
JP5389212B2 (ja) * 2012-03-28 2014-01-15 株式会社東芝 再暗号文検証プログラム、再暗号化装置及び再暗号化システム

Also Published As

Publication number Publication date
JP2017163326A (ja) 2017-09-14

Similar Documents

Publication Publication Date Title
US11271730B2 (en) Systems and methods for deployment, management and use of dynamic cipher key systems
CN113259329B (zh) 一种数据不经意传输方法、装置、电子设备及存储介质
CN114282928A (zh) 基于区块链系统结合钱包管理系统的加密密钥存储和转移
JP6363032B2 (ja) 鍵付替え方向制御システムおよび鍵付替え方向制御方法
US11316671B2 (en) Accelerated encryption and decryption of files with shared secret and method therefor
GB2543726B (en) Password-based generation and management of secret cryptographic keys
US9130744B1 (en) Sending an encrypted key pair and a secret shared by two devices to a trusted intermediary
US20180063105A1 (en) Management of enciphered data sharing
US20210112039A1 (en) Sharing of encrypted files without decryption
Bhandari et al. A framework for data security and storage in Cloud Computing
US20210144002A1 (en) Secondary Channel Authentication of Public Keys
JP6433448B2 (ja) 暗号化システム、暗号化方法、及び暗号化プログラム
Hussien et al. Scheme for ensuring data security on cloud data storage in a semi-trusted third party auditor
JP4781896B2 (ja) 暗号化メッセージ送受信方法、送信者装置、受信者装置、鍵サーバ、および暗号化メッセージ送受信システム
KR101793528B1 (ko) 무인증서 공개키 암호 시스템
Paverd et al. Omnishare: Encrypted cloud storage for the multi-device era
JP5932709B2 (ja) 送信側装置および受信側装置
JP2005167635A (ja) 装置、及び、データ送受信方法
JP5643251B2 (ja) 秘密情報通知システム、秘密情報通知方法、プログラム
US20240154944A1 (en) Encrypted data communication and gateway device for encrypted data communication
JP2018107625A (ja) データ配信システム、データ生成装置、仲介装置、データ配信方法、及びプログラム
Parsovs Security of the proposed Mobile-ID document decryption feature
Farooq et al. A cryptographic security framework for hybrid Cloud‐Internet of Things network
Roos Lecture Notes: Computer Networks CSE1405 Cryptography and Network Security
Khan et al. In-Depth Analysis of Cryptographic Algorithms for Cloud-Database Security

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180214

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20181003

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20181030

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20181106

R150 Certificate of patent or registration of utility model

Ref document number: 6433448

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150