概要
楕円曲線暗号(ECC:Elliptic Curve Cryptography)は、楕円曲線上の離散対数問題の困難性に基づく公開鍵暗号です。RSAと比較して短い鍵長で同等の安全性を実現できるため、スマートフォン・IoT・TLS 1.3 で広く採用されています。SC試験では鍵長の比較・ECDH と ECDSA の使い分け・前方秘匿性(PFS)との関係が頻出です。
仕組みと動作原理
ECCの鍵長とRSAの比較
| 安全性レベル | RSA鍵長 | ECC鍵長 | 備考 |
|---|---|---|---|
| 112ビット安全性 | 2048ビット | 224ビット | 現在の最低基準 |
| 128ビット安全性 | 3072ビット | 256ビット | TLS 1.3の標準(P-256) |
| 192ビット安全性 | 7680ビット | 384ビット | 高セキュリティ用途 |
| 256ビット安全性 | 15360ビット | 521ビット | 最高レベル |
RSA 3072ビット ≈ ECC 256ビット という大幅な効率化が可能です。
ECDH(Elliptic Curve Diffie-Hellman)
鍵交換プロトコルです。安全でない通信路を通じて共通鍵を確立します。
1. Alice:秘密鍵 a、公開鍵 A = a×G を生成
2. Bob:秘密鍵 b、公開鍵 B = b×G を生成
3. Alice:共通秘密 = a×B = a×b×G
4. Bob:共通秘密 = b×A = b×a×G
(G:楕円曲線上のベースポイント)
ECDHE(Ephemeral):セッションごとに新しい鍵ペアを生成。前方秘匿性(PFS)を実現します。TLS 1.3 では ECDHE のみが使用可能です。
ECDSA(Elliptic Curve Digital Signature Algorithm)
デジタル署名アルゴリズムです。メッセージの真正性と完全性を保証します。
| 用途 | 説明 |
|---|---|
| TLSサーバ証明書の署名 | ECDSAまたはRSA署名 |
| JWTの署名方式 | ES256(ECDSA + SHA-256) |
| コード署名 | ソフトウェア配布の改ざん防止 |
前方秘匿性(PFS:Perfect Forward Secrecy)
過去のセッション鍵が漏洩しても、過去の通信内容が解読されない性質です。
| 方式 | PFS | 理由 |
|---|---|---|
| RSA鍵交換(静的) | ✗ | サーバ秘密鍵1つで全セッションを復号可能 |
| ECDHE | ○ | セッションごとに鍵ペアを生成・破棄 |
| DHE | ○ | 同上(DH版) |
TLS 1.3 は PFS を強制するため、ECDHE のみ利用可能です。
代表的な楕円曲線
| 曲線名 | 鍵長 | 採用状況 |
|---|---|---|
| P-256(secp256r1) | 256ビット | TLS・FIDO2 標準 |
| P-384(secp384r1) | 384ビット | 高セキュリティ用途 |
| X25519 | 256ビット | TLS 1.3 推奨・高速 |
| Ed25519 | 256ビット | SSH・OpenPGP |
SC試験での頻出ポイント
- ECCがRSAより短い鍵長でよい理由:楕円曲線離散対数問題はRSAの素因数分解より計算困難性が高い
- ECDHとECDSAの違い:ECDH は鍵交換(共通鍵の生成)、ECDSA はデジタル署名(認証・改ざん検知)
- TLS 1.3でECDHEが必須な理由:PFS(前方秘匿性)を保証するため
- ECDHE の “E” の意味:Ephemeral(一時的)。セッションごとに鍵ペアを生成・破棄する
- 量子コンピュータとECC:Shorのアルゴリズムで楕円曲線離散対数問題も解かれる恐れがあるため、耐量子暗号(PQC)への移行が検討されている
よくある誤問・ひっかけパターン
誤り① 「ECCはRSAより鍵長が長い」→ 誤。同等の安全性ならECCの鍵長はRSAより大幅に短い。
誤り② 「ECDHで鍵交換した共通鍵はサーバの公開鍵で暗号化されている」→ 誤。ECDH は数学的演算で共通秘密を導出するため、暗号化を使いません。
誤り③ 「ECCは量子コンピュータに対して安全」→ 誤。ShorのアルゴリズムでECCも脆弱になります。RSAと同様に耐量子暗号への移行が必要です。
関連用語
- 公開鍵暗号(RSA)とデジタル署名 — ECCはRSAの代替として採用が進む
- ハッシュ関数とMAC — ECDSAはハッシュ値に署名する
- TLS(Transport Layer Security) — TLS 1.3でECDHEを標準採用
重要キーワード
| 用語 | 説明 |
|---|---|
| 楕円曲線離散対数問題 | ECCの安全性の根拠となる数学的困難問題 |
| ECDH | 楕円曲線Diffie-Hellman鍵交換。共通鍵を安全に確立する |
| ECDHE | ECDHのEphemeral版。前方秘匿性(PFS)を実現 |
| ECDSA | 楕円曲線デジタル署名アルゴリズム |
| 前方秘匿性(PFS) | 秘密鍵が将来漏洩しても過去の通信が解読されない性質 |
| P-256 | 256ビットの標準的な楕円曲線。TLS・FIDO2で広く使用 |