公開鍵暗号(RSA・ECC) こうかいかぎあんごう(あーるえすえー・いーしーしー)
RSAECC公開鍵秘密鍵非対称暗号楕円曲線暗号
公開鍵暗号(RSA・ECC)について教えて
公開鍵暗号(RSA・ECC)とは
公開鍵暗号(非対称暗号) とは、暗号化に使う鍵と復号に使う鍵が数学的に対になっているが異なる暗号方式です。一方の鍵(公開鍵)は誰にでも公開し、もう一方(秘密鍵)は自分だけが持ちます。
RSA(Rivest–Shamir–Adleman) は1977年に開発された最初の実用的な公開鍵暗号で、「大きな数の素因数分解が困難」という数学的問題を安全性の根拠とします。現在でも広く使われていますが、鍵長が長く(2048〜4096ビット)処理が重い欠点があります。
ECC(Elliptic Curve Cryptography:楕円曲線暗号) は「楕円曲線上の離散対数問題」を根拠とする暗号で、RSAよりはるかに短い鍵長(256ビット)で同等の安全性を実現します。TLS 1.3やSSHでのシェアが急速に拡大しています。
RSAとECCの比較
| 比較項目 | RSA | ECC |
|---|---|---|
| 安全性の根拠 | 素因数分解の困難さ | 楕円曲線上の離散対数問題 |
| 等価セキュリティの鍵長 | 2048ビット(112ビット相当) | 224ビット(112ビット相当) |
| 処理速度 | 遅い(鍵長が長いため) | 速い(鍵が短い) |
| モバイル・IoT適性 | 低い | 高い |
| 量子コンピュータへの耐性 | 脆弱(Shorのアルゴリズムで解読可能) | 脆弱(同様) |
| 普及状況 | 既存システムで広く使われる | TLS 1.3、SSH等で主流になりつつある |
ECCの代表的な曲線
| 曲線名 | 鍵長 | 主な用途 |
|---|---|---|
| P-256 (secp256r1) | 256ビット | TLS、JWT、コードサイニング |
| P-384 (secp384r1) | 384ビット | 政府・医療向け高セキュリティ用途 |
| X25519 | 255ビット | TLS 1.3の鍵交換(ECDH) |
| Ed25519 | 255ビット | SSH署名、TLS証明書署名 |
歴史と背景
- 1976年:Diffie-Hellmanが公開鍵暗号の概念を提唱(「New Directions in Cryptography」論文)
- 1977年:RSAがMIT研究者3名によって発明
- 1985年:ECCがKoblitzとMillerによって独立して提案
- 2004年頃:ECCが実用的な実装として普及し始める(特にSSL/TLS)
- 2015年:NSAが政府向け暗号スイートにECCを指定
- 2022年頃〜:NISTがポスト量子暗号(PQC)の標準化を進め、RSA/ECCの後継候補を選定中
公開鍵暗号の動作フロー
関連する規格・RFC
| 規格・RFC番号 | 内容 |
|---|---|
| RFC 8017 | PKCS #1: RSA Cryptography Specifications |
| RFC 5480 | ECCのSubjectPublicKeyInfo形式 |
| FIPS 186-5 | NISTのデジタル署名標準(DSS):ECDSA含む |
| RFC 7748 | X25519(楕円Diffie-Hellman鍵交換) |
関連用語
- 共通鍵暗号(AES) — 実際の通信ではAESと組み合わせて使う
- デジタル署名 — 秘密鍵で署名・公開鍵で検証する仕組み
- PKI — 公開鍵を安全に配布するための基盤
- ポスト量子暗号 — RSA/ECCの後継として研究される暗号技術