Public-key cryptography (公開鍵暗号)

公開鍵暗号 — または非対称暗号 — は、対となる鍵による暗号システムです。一方の鍵によって行われた変換は、もう一方の鍵によってしか元に戻せません。一方の鍵 (秘密鍵) は秘匿しておき、もう一方の鍵は公開します。

デジタル署名で使用する場合、署名の生成に秘密鍵が使用され、検証に公開鍵が使用されます。つまり、誰でも署名を検証することができますが、対応する秘密鍵の所有者のみが署名を生成することができます。

暗号化に使用する場合、暗号化に公開鍵が使用され、復号に秘密鍵が使用されます。これによって、公開鍵暗号システムは暗号化の鍵を公開することができる点で共通鍵暗号より有利です。秘密鍵の所有者に向けたメッセージを誰でも暗号化することができますが、秘密鍵の所有者のみが復号することができます。ただし、ふつうは共通鍵暗号よりもずっと低速で、暗号化できるメッセージの大きさも鍵の大きさに比例するので、長いメッセージには向きません。

結果的に、暗号化システムはメッセージの暗号化には共通鍵暗号を使用し、共通鍵を暗号化するために公開鍵を使用します。この組み合わせは両方のシステムの利点を与えることができます。

よく使われる公開鍵暗号システムには、 RSA (署名と暗号化の両方)、 DSA (署名用)、 Diffie-Hellman (鍵の合意用) などがあります。