1:公開鍵暗号方式
RSA、DSA(離散対象数暗号)、ECDSA(楕円曲線暗号)などの方式があります。RSAは、素因数分解を行うことが困難であるという点を利用した方式です。守秘とディジタル署名の量の意に利用できます。DSAとEDCSAはディジタル署名専用の方式です。ECDSAで用いる楕円曲線暗号は、RSAやDSAよりも短い鍵長でで同程度の強度(攻撃者が、秘密鍵を演算処理によって入手することに対する耐性の強さ)が実現できます。現時点(2030年まで)では、RSAや DSAでは2048ビット以上の鍵長の利用が推奨されています。
鍵長が短いと、署名を作成したり、検証したりする時間を短くできます。よって、RSAで署名を作成するよりも、ECDSAで署名を作成する方が良いと考えられています。
2:ハイブリッド暗号方式
ハイブリッド暗号方式は、共通鍵暗号方式と公開鍵暗号方式の利用を組み合わせた方式です。セッション鍵暗号方式とも呼ばれます。電子メールの暗号化(S/MIME)をはじめとして、さまざまな場面で利用されています。暗号化/復号の処理を高速に行うことができ、事前に鍵を取り決めておかなくても暗号通信が可能です。
例:
①Aは、平文(メッセージ文)を暗号化するために自分の共通鍵を作ります。一般的には、乱数を元にして作ります。この共通鍵をセッション鍵と呼びます。
②Aは、Bにセッション鍵を伝えます。そのまま伝えては、第三者にわかっていますから、セッション鍵をBを公開鍵を暗号化してから送ります。
③Bは,Bの秘密鍵で復号し、セッション鍵を入手します。
④Aは、平文をセッション鍵で暗号化してBに送ります。
⑤Bは、セッション鍵で復号して平文を入手します。
ハイブリッド暗号方式では、ヘイブンは共通鍵暗号方式を用いて暗号化します。一方で、セッション鍵は公開鍵暗号方式を用いて暗号化します。平文はサイズが大きいいからですから、高速に暗号化/復号できる共通鍵暗号方式を使おうという趣旨です。一方で、共通鍵暗号方式しか使わないと、相手と事前に鍵を取り決めなくてはならず、面倒です。そこで、公開鍵暗号方式も利用して、セッション鍵を暗号化して相手に送り、事前に鍵を取り決めの手間を省くのです。