ECC(楕円曲線暗号) いーしーしー(だえんきょくせんあんごう)
楕円曲線暗号公開鍵暗号鍵長TLSデジタル署名ECDSA
ECCって何?RSAと何が違うの?
簡単に言うとこんな感じ!
ECCは「短い鍵でも超強い暗号」を実現する技術だよ!RSAが「大きな数の素因数分解」を使うのに対して、ECCは「楕円曲線上の点の計算」という別の難問を使うんだ。同じ安全レベルなら鍵の長さが約1/10で済むから、スマホやIoT機器みたいにリソースが少ない環境でも速くて軽く動けるってこと!
ECC(楕円曲線暗号)とは
ECC(Elliptic Curve Cryptography)、日本語で「楕円曲線暗号」は、楕円曲線上の点の演算を利用した公開鍵暗号方式です。1985年にニール・コブリッツとビクター・ミラーによって独立に提案され、現在ではTLS(HTTPS通信)やSSH、スマートカード、仮想通貨など幅広い場面で使われています。
公開鍵暗号の世界では長らくRSA(大きな数の素因数分解の難しさを利用)が主流でしたが、安全性を高めるために鍵を長くしなければならず、処理が重くなるという課題がありました。ECCは「楕円曲線上の離散対数問題」と呼ばれる数学的な難問を利用することで、RSAの約1/10の鍵長で同等の安全性を達成できます。
実務上は「鍵が短い=処理が速い・通信オーバーヘッドが少ない」を意味します。スマートフォン・IoTデバイス・TLSハンドシェイクの高速化など、現代のインターネット基盤を支える重要な暗号技術として位置づけられています。
ECCの仕組みと特徴
ECCの核心は「楕円曲線上の点を何回足しても、元の点と回数を逆算するのは計算上ほぼ不可能」という性質(楕円曲線離散対数問題)にあります。
| 項目 | 内容 |
|---|---|
| 数学的基盤 | 楕円曲線上の離散対数問題(ECDLP) |
| 公開鍵 | 楕円曲線上の点 Q = k × G(G: ベースポイント) |
| 秘密鍵 | スカラー値 k(整数) |
| 難しさの根拠 | Q と G から k を求めることが計算上不可能 |
| 主な用途 | 鍵交換(ECDH)、デジタル署名(ECDSA / EdDSA) |
RSAとECCの鍵長比較(同等安全レベル)
| セキュリティ強度 | RSA鍵長 | ECC鍵長 | ECC優位倍率 |
|---|---|---|---|
| 80ビット相当 | 1,024 bit | 160 bit | 約6倍 |
| 112ビット相当 | 2,048 bit | 224 bit | 約9倍 |
| 128ビット相当 | 3,072 bit | 256 bit | 約12倍 |
| 192ビット相当 | 7,680 bit | 384 bit | 約20倍 |
| 256ビット相当 | 15,360 bit | 521 bit | 約29倍 |
覚え方:「ECC=エコな暗号」
ECC は Eco(エコ)な暗号!
短い鍵・少ない計算量・小さい通信量の「3エコ」で、電池や帯域が貴重なスマホ・IoTの味方。
主なECCアルゴリズム
ECCは「楕円曲線をどう使うか」によって複数のアルゴリズムに派生しています。
| アルゴリズム名 | 正式名称 | 用途 |
|---|---|---|
| ECDH | Elliptic Curve Diffie-Hellman | 鍵交換(TLSのセッション鍵生成など) |
| ECDHE | ECDH Ephemeral | 鍵交換+前方秘匿性(TLS 1.3標準) |
| ECDSA | Elliptic Curve DSA | デジタル署名(コード署名・TLS証明書) |
| EdDSA | Edwards-curve DSA | 高速・安全な署名(Ed25519が代表) |
代表的な楕円曲線の種類
| 曲線名 | 鍵長 | 特徴・主な用途 |
|---|---|---|
| P-256 (secp256r1) | 256 bit | NISTが標準化。TLS・PKIで最も普及 |
| P-384 (secp384r1) | 384 bit | 政府・金融など高セキュリティ向け |
| Curve25519 | 255 bit | 高速・サイドチャネル攻撃に強い。SSHやSignalで利用 |
| secp256k1 | 256 bit | Bitcoin・Ethereum等の仮想通貨で利用 |
歴史と背景
- 1976年 ― ディフィー・ヘルマンが公開鍵暗号の概念を提唱。鍵共有問題を解決
- 1977年 ― RSAが発明。以後20年以上、公開鍵暗号の代名詞に
- 1985年 ― ニール・コブリッツ(ワシントン大)とビクター・ミラー(IBM)がECCをそれぞれ独立して提案
- 1999年 ― ANSI X9.62でECDSAが標準化
- 2000年 ― NISTが楕円曲線の推奨曲線(P-256等)を標準化
- 2005年 ― NSA「スイートB」にECCを採用。政府・軍用途で公式利用が広まる
- 2006年 ― TLS拡張でECC対応が規格化(RFC 4492)
- 2013年 ― NSAのバックドア疑惑(Dual_EC_DRBG問題)でNIST曲線への懸念が高まる
- 2016年 ― Curve25519 / Ed25519が RFC 7748 / RFC 8032 で標準化され急速に普及
- 2018年 ― TLS 1.3でECDHEが実質必須となり、ECCが現代TLSの中心に
RSA・ECCと次世代暗号の比較
ECCが使われている身近な場面
HTTPS通信(TLS 1.3)
└─ 鍵交換: ECDHE (P-256 または X25519)
└─ 証明書署名: ECDSA
SSH接続
└─ 鍵ペア: Ed25519 (EdDSA) が現在の推奨
スマートフォン
└─ Apple Pay / Google Pay の決済認証
└─ iMessage / Signal の暗号化通信
仮想通貨
└─ Bitcoin: secp256k1 + ECDSA
└─ Ethereum: secp256k1 + ECDSA
関連する規格・RFC
| 規格・RFC番号 | 内容 |
|---|---|
| RFC 4492 | TLSにおける楕円曲線暗号(ECC)拡張 |
| RFC 5480 | ECCの公開鍵をX.509証明書で使うための構文 |
| RFC 6090 | 楕円曲線暗号の基礎的アルゴリズム |
| RFC 7748 | Curve25519 / Curve448の鍵交換アルゴリズム(X25519 / X448) |
| RFC 8032 | EdDSA署名アルゴリズム(Ed25519 / Ed448) |
| RFC 8422 | TLS 1.2でのECC利用(RFC 4492を更新) |
| NIST FIPS 186-5 | デジタル署名標準(ECDSA含む曲線を規定) |
関連用語
- RSA暗号 — 素因数分解を利用した公開鍵暗号。ECCと並ぶ代表格
- 公開鍵暗号 — ECCが属する暗号方式のカテゴリ
- TLS — HTTPS通信を支えるプロトコル。TLS 1.3ではECCが実質標準
- デジタル署名 — ECDSAやEdDSAによる署名で改ざん検知・本人確認に使う
- PKI(公開鍵基盤) — 証明書を管理する仕組み。ECC証明書の発行・検証に関係
- ディフィー・ヘルマン鍵交換 — ECDHのベースとなった鍵交換プロトコル
- 耐量子暗号(PQC) — 量子コンピュータ後のECC代替候補
- SSH — Ed25519(EdDSA)が推奨鍵アルゴリズムとして広く使われる