非対称鍵暗号
このレッスンでは、今日の多くの安全なネットワーク通信の基盤を成す非対称鍵暗号について学びます。
レッスンを終えると、次の内容を理解できるようになります:
- 非対称鍵暗号とは何か
- 鍵交換やデジタル署名を含む、非対称鍵暗号の利用方法
- 非対称鍵暗号全般のセキュリティ
- RSA、DSA、楕円曲線アルゴリズムとそのセキュリティの詳細
- アルゴリズムの実際の動作を示すPythonコード例
- 古典コンピューターおよび量子コンピューターからこれらのアルゴリズムへの脅威
非対称鍵暗号入門
前回のレッスンで学んだように、対称鍵暗号は情報保護において非常に高速かつ効率的ですが、いくつかの限界があります:
- 安全な情報交換を希望する当事者の数が増えるにつれて、必要な鍵の数は組み合わせ爆発的に増大します。送信者と受信者の間でこれらの鍵を安全に配布するメカニズムは提供されていません。
- 否認防止の仕組みがありません。いかなる当事者もメッセージを復号または暗号化でき、メッセージが受信されたこと、あるいはその発信元を保証する方法がありません。
これら両方の問題の解決策が、非対称鍵暗号(AKC)、別名公開鍵暗号(PKC)によって提供されており、それゆえに現代のデジタルセキュリティの礎となっています。
非対称鍵暗号(AKC)では、公開鍵と秘密鍵の一対の鍵を使用します。公開鍵と秘密鍵は暗号学的に連携しており、通常は特殊な数学的アルゴリズムを使って同時に鍵ペアとして生成されます。公開鍵はその名が示す通り自由に配布されることを意図している一方、秘密鍵は鍵ペアを生成した当事者によって秘密に保たれます。非対称鍵ペアを使った通信のセキュリティは、秘密鍵が機密に保たれている限り保証されます。
図1. 非対称鍵暗号化
AKCは以下のような有用な機能を提供します:
- 暗号化と復号 による通信の機密性の確保。
- デジタル署名 による真正性、完全性、否認防止の保証。
- 安全な鍵交換 による対称暗号システムの後続利用の促進。