A.2. 公開鍵の暗号化
公開鍵暗号は、多くの暗号アルゴリズムや暗号システムで採用されている暗号化アプローチで、対称鍵アルゴリズムの代わりに、あるいは対称鍵アルゴリズムに加えて、非対称鍵アルゴリズムを使用することを特徴としています。公開鍵 - 秘密鍵暗号の手法を用いることで、これまで知られていなかった通信の保護やメッセージの認証の方法が数多く実用化されました。対称鍵アルゴリズムを使用する場合に必要とされる、1 つ以上の秘密鍵のセキュアな初期交換は必要ありません。これは、デジタル署名の作成にも使用できます。[9]
公開鍵暗号は、世界中で広く使われている基本的な技術であり、Transport Layer Security (TLS) (SSL の後継)、PGP、GPG などのインターネット標準の基礎となるアプローチです。[10]
公開鍵暗号化で使用される際立った手法は、非対称鍵アルゴリズムの使用です。この場合、メッセージの暗号化に使用される鍵は、メッセージの復号化に使用される鍵と同じではありません。各ユーザーには、公開鍵と秘密鍵の暗号鍵のペアがあります。秘密鍵は秘密にされ、公開鍵は広く配布されます。メッセージは受信者の公開鍵で暗号化され、対応する秘密鍵によってのみ復号化されます。鍵は数学的に関連付けられていますが、秘密鍵を公開鍵から実現可能な形で (つまり、実際のまたは予測された実践で) 導出することはできません。このようなアルゴリズムの発見により、1970 年代半ば以降、暗号技術に革命的な変化が起きました。[11]
一方、対称鍵アルゴリズムは、そのバリエーションが数千年にわたって使用されており、暗号化と復号化の両方に、送信者と受信者が共有する単一の秘密鍵 (これも非公開にする必要があるため、一般的な用語のあいまいさを考慮します) を使用します。対称暗号化スキームを使用するには、送信側と受信側が事前に鍵を安全に共有する必要があります。[12]
対称鍵アルゴリズムは、ほとんどの場合、計算量がはるかに少ないため、鍵交換アルゴリズムを使用して鍵を交換し、その鍵と対称鍵アルゴリズムを使用してデータを送信することが一般的となっています。たとえば、PGP およびスキームの SSL/TLS ファミリーはこれを行うため、ハイブリッド暗号化システムと呼ばれます。[13]
A.2.1. Diffie-Hellman
Diffie-Hellman 鍵交換 (D-H) は、互いに関する予備知識がない 2 者が、安全でない通信チャネルを介して共有秘密鍵を共同で確立できるようにする暗号化プロトコルです。その後、この鍵を使用し、対称鍵暗号を使用する後続の通信を暗号化できます。[14]
A.2.1.1. Diffie-Hellman の歴史
このスキームは、1976 年に Whitfield Diffie と Martin Hellman によって初めて公開されました。しかし、これとは別にその数年前に、英国の信号情報機関である GCHQ 内で Malcolm J. Williamson が考案していたことが後に判明しましたが、機密扱いとなっていました。2002 年、Hellman は、公開鍵暗号の発明に貢献した Ralph Merkle の功績を称えて、このアルゴリズムを Diffie-Hellman-Merkle 鍵交換と呼ぶことを提案しました (Hellman, 2002)。[15]
Diffie-Hellman 鍵合意自体は匿名 (非認証) の鍵合意プロトコルですが、さまざまな認証済みプロトコルの基礎を提供し、Transport Layer Security の一時的モード (暗号スイートに応じて EDH または DHE と呼ばれる) では、Perect Forward Secrecy を提供するために使用されています。[16]
米国現在失効している米国特許 4,200,770 号には、アルゴリズムに関する説明のほか、Hellman、Diffie、および Merkle の名前が発明者として記載されています。[17]
A.2.2. RSA
暗号化において、RSA (最初に公発した Rivest、Shamir、Adleman の 3 氏の略) は公開鍵暗号化のアルゴリズムの 1 つです。これは、署名と暗号化に適していることが確認された最初のアルゴリズムであり、公開鍵暗号化における最初の大きな進歩の 1 つでした。RSA は、電子商取引プロトコルで広く使用されており、十分に長いキーと最新の実装を使用すれば安全であると考えられています。
A.2.3. DSA
DSA (Digital Signature Algorithm) は、デジタル署名の標準で、米国連邦政府が策定したデジタル署名の標準です。DSA は署名のみを目的としており、暗号化アルゴリズムではありません。[18]
A.2.4. SSL/TLS
Transport Layer Security (TLS) とその前進である Secure Sockets Layer (SSL) は、インターネットなどのネットワーク上の通信にセキュリティーを提供する暗号プロトコルである。TLS と SSL は、トランスポート層でネットワーク接続のセグメントをエンドツーエンドで暗号化します。
このプロトコルのいくつかのバージョンは、Web ブラウジング、電子メール、インターネットファクス、インスタントメッセージ、VoIP (Voice-over-IP) などのアプリケーションで広く使用されています。[19]
A.2.5. Cramer-Shoup 暗号システム
Cramer-Shoup システムは、非対称鍵暗号化アルゴリズムであり、標準的な暗号化の仮定を使用して、適応的選択暗号文攻撃に対して安全であることが証明された最初の効率的なスキームでした。その安全性は、決定論的な Diffie-Hellman の仮定が計算不可能であること (広く仮定されているが、証明されていない) に基づいています。1998 年に Ronald Cramer と Victor Shoup によって開発されたこの暗号システムは、ElGamal 暗号システムを拡張したものです。非常に順応性が高い ElGamal とは対照的に、Cramer-Shoup は、賢い攻撃者に対しても非順応性を確保するために要素を追加しています。この非順応性は、衝突耐性のあるハッシュ関数と追加の計算を使用することで実現され、ElGamal の 2 倍の暗号文が生成されます。[20]
A.2.6. ElGamal 暗号
暗号化では、ElGamal 暗号化システムは、Diffie-Hellman キー合意に基づく公開キー暗号化用の非対称キー暗号化アルゴリズムです。これは、1985 年に Taher ElGamal によって記述されました。ElGamal 暗号は、無料の GNU Privacy Guard ソフトウェア、最近の PGP バージョン、およびその他の暗号システムで使用されています。[21]
[20]
"Cramer-Shoup 暗号システム" Wikipedia.24 February 2010 http://en.wikipedia.org/wiki/Cramer–Shoup_cryptosystem
[21]
"ElGamal encryption" Wikipedia.24 February 2010 http://en.wikipedia.org/wiki/ElGamal_encryption