楕円曲線暗号とは
楕円曲線暗号(Elliptic Curve Cryptography, ECC)は、楕円曲線上の離散対数問題に基づく公開鍵暗号方式です。1985年にNeal Koblitzと Victor Millerによって独立に提案されました。RSAと比較して、はるかに短い鍵長で同等のセキュリティを実現できます。
ECCの利点
- 短い鍵長:256ビットECC ≈ 3072ビットRSA
- 高速:処理速度が速い
- 小さな署名/暗号文:帯域幅の節約
- IoTに最適:リソース制限のあるデバイス向き
主要な曲線
| 曲線 | ビット数 | 用途 |
|---|---|---|
| P-256(secp256r1) | 256 | TLS、Web PKI |
| P-384 | 384 | 高セキュリティ |
| Curve25519 | 256 | SSH、TLS 1.3 |
| secp256k1 | 256 | Bitcoin |
AIエンジニアとしての実体験
from cryptography.hazmat.primitives.asymmetric import ec
# ECDSA鍵ペア生成
private_key = ec.generate_private_key(ec.SECP256R1())
public_key = private_key.public_key()
# ECDH鍵交換
shared_key = private_key.exchange(ec.ECDH(), peer_public_key)
