暗号化の基礎

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(整数)
難しさの根拠QG から k を求めることが計算上不可能
主な用途鍵交換ECDH)、デジタル署名(ECDSA / EdDSA)

RSAとECCの鍵長比較(同等安全レベル)

セキュリティ強度RSA鍵長ECC鍵長ECC優位倍率
80ビット相当1,024 bit160 bit約6倍
112ビット相当2,048 bit224 bit約9倍
128ビット相当3,072 bit256 bit約12倍
192ビット相当7,680 bit384 bit約20倍
256ビット相当15,360 bit521 bit約29倍

覚え方:「ECC=エコな暗号」

ECC は Eco(エコ)な暗号!
短い鍵・少ない計算量・小さい通信量の「3エコ」で、電池や帯域が貴重なスマホ・IoTの味方。


主なECCアルゴリズム

ECCは「楕円曲線をどう使うか」によって複数のアルゴリズムに派生しています。

アルゴリズム名正式名称用途
ECDHElliptic Curve Diffie-Hellman鍵交換(TLSのセッション鍵生成など)
ECDHEECDH Ephemeral鍵交換+前方秘匿性(TLS 1.3標準)
ECDSAElliptic Curve DSAデジタル署名(コード署名・TLS証明書)
EdDSAEdwards-curve DSA高速・安全な署名(Ed25519が代表)

代表的な楕円曲線の種類

曲線名鍵長特徴・主な用途
P-256 (secp256r1)256 bitNISTが標準化。TLS・PKIで最も普及
P-384 (secp384r1)384 bit政府・金融など高セキュリティ向け
Curve25519255 bit高速・サイドチャネル攻撃に強い。SSHやSignalで利用
secp256k1256 bitBitcoin・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と次世代暗号の比較

公開鍵暗号の比較マップ RSA 素因数分解の困難性 ECC 楕円曲線離散対数問題 耐量子暗号(PQC) 格子問題など RSA ECC PQC (例:CRYSTALS) 鍵長(128bit強度) 3072 bit 256 bit ✓ 800〜1200 bit 処理速度 遅い 速い ✓ 中程度 量子コンピュータ耐性 なし ✗ なし ✗ あり ✓ 現在の普及度 非常に高い 高い・急増中 ✓ 標準化中(2024〜) 主な用途 TLS・SSH・証明書 TLS1.3・SSH・仮想通貨 将来のTLS・政府システム ⚠ 将来への注意点 量子コンピュータが実用化されると、RSA・ECCは理論上解読可能になる(Shorのアルゴリズム)。 NISTは2024年に耐量子暗号(PQC)を標準化。中長期的な移行計画が必要。

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 4492TLSにおける楕円曲線暗号(ECC)拡張
RFC 5480ECCの公開鍵をX.509証明書で使うための構文
RFC 6090楕円曲線暗号の基礎的アルゴリズム
RFC 7748Curve25519 / Curve448の鍵交換アルゴリズム(X25519 / X448)
RFC 8032EdDSA署名アルゴリズム(Ed25519 / Ed448)
RFC 8422TLS 1.2でのECC利用(RFC 4492を更新)
NIST FIPS 186-5デジタル署名標準(ECDSA含む曲線を規定)

関連用語