← 一覧へ
セキュリティ・個人情報
#ECC#ECDSA#ECDH#Curve25519#공개키암호
最終更新 · 2026-11-04

楕円曲線暗号(ECC, Elliptic Curve Cryptography)

1. 概要

定義: 楕円曲線暗号(ECC)とは、有限体上で定義された楕円曲線の点が成すアーベル群(abelian group)のスカラー倍演算を基礎とし、「楕円曲線離散対数問題(ECDLP)」の計算的困難性に安全性を置く公開鍵暗号方式である。

公開鍵暗号は、1976年にDiffieとHellmanが鍵交換の概念を提示し、1977年にRSAが素因数分解の難問を活用したことで実用化された。 しかしRSAと有限体上の離散対数(DH, DSA)は、安全性を高めようとすると鍵長を急激に拡大しなければならないという構造的限界を抱えている。 準指数時間(sub-exponential time)で動作する数体ふるい(Number Field Sieve)のようなアルゴリズムが存在するため、攻撃コストを上げるにはモジュラスを2048, 3072, 4096ビットへと増やし続けなければならず、これは演算量・帯域・記憶容量の負担に直結する。

ECCは、まさにこの「鍵長と性能のジレンマ」を解決するため、1985年にNeal KoblitzとVictor Millerが独立に提案した。 楕円曲線群上の離散対数問題(ECDLP)には、いまだ準指数時間アルゴリズムが知られておらず、一般的な攻撃はPollard's rhoのように完全指数時間(fully exponential、群の大きさnに対し約√n)にとどまる。 その結果、同じ安全性強度をはるかに短い鍵で達成できる——たとえば256ビットのECCが約3072ビットのRSAと同等の128ビット安全性強度を提供するというのがNIST SP 800-57の勧告である。

このような効率性ゆえに、ECCはスマートカード・IoT・モバイルのように演算・電力・帯域が制約された環境で事実上の標準となり、TLS 1.3・SSH・ビットコイン・パスポート電子チップ(ICAO)など現代のセキュリティ基盤の中核を占めている。 本答案では、ECCの数学的基礎と群構造、中核プリミティブ(ECDH・ECDSA)と動作手順、RSAとの比較および曲線標準、そして耐量子暗号(PQC)移行という最新動向と技術士の観点からの考慮事項を論述する。

2. 数学的基礎と全体構造

2.1 楕円曲線と点の群(ぐん)構造

ECCの出発点は、有限体上で定義された楕円曲線である。 素数体GF(p)上では一般にワイエルシュトラス(Weierstrass)形式 y² = x³ + ax + b (mod p) を用い、判別式条件 4a³ + 27b² ≠ 0 を満たして特異点を持たないようにしなければならない。 この曲線上のすべての点に「無限遠点(point at infinity, O)」という単位元を加えると、点の集合は加法演算について閉じており、結合法則・単位元・逆元をすべて満たすアーベル群を成す。

ここで重要な直観は、ECCの安全性が「曲線そのもの」ではなく「この群上で定義された加法構造」から生じるという点である。 2点P, Qを加える幾何学的規則(2点を通る直線が曲線と交わる第三の点をx軸対称にしたもの)は有限体上でモジュラ算術に置き換えられ、この規則が暗号的に「容易な方向」と「困難な方向」を分ける非対称性を生み出す。 すなわち点加法・スカラー倍は効率的に計算できるが、その逆演算(離散対数)は現実的に解けないという一方向性が暗号の根幹となる。

2.2 ECC全体構造概念図

flowchart TB
  subgraph MATH["数学的基礎"]
    FF["有限体 GF(p) または GF(2^m)"]
    EC["楕円曲線 y^2 = x^3 + ax + b"]
    GRP["点のアーベル群(加法·逆元·単位元 O)"]
  end
  subgraph PARAM["ドメインパラメータ"]
    CURVE["曲線係数 a,b / 素数 p"]
    BASE["基準点 G(生成元)"]
    ORDER["位数 n·cofactor h"]
  end
  subgraph HARD["難問"]
    ECDLP["ECDLP: Q=kG から k の復元は不可能"]
  end
  subgraph PRIMS["暗号プリミティブ"]
    ECDH["ECDH 鍵交換"]
    ECDSA["ECDSA 電子署名"]
    ECIES["ECIES 公開鍵暗号化"]
  end
  FF --> EC --> GRP
  GRP --> BASE
  CURVE --> BASE --> ORDER
  ORDER --> ECDLP
  ECDLP --> ECDH
  ECDLP --> ECDSA
  ECDLP --> ECIES

上図のように、ECC体系は(1)有限体上の楕円曲線群という数学的土台、(2)すべての参加者が共有するドメインパラメータ(曲線係数・素数p・基準点G・位数n)、(3)ECDLP難問、(4)その上に載るECDH・ECDSA・ECIESなどのプリミティブの4層で構成される。 特にドメインパラメータの品質が安全性を左右し、基準点Gの位数nは十分に大きい素数でなければならず、cofactor hは小さくなければならず、パラメータが改竄されていないことを検証可能に(verifiably random)生成することでバックドアの懸念を遮断できる。

2.3 中核演算——スカラー倍とECDLP

ECCのすべての演算は、結局スカラー倍(scalar multiplication) Q = kG、すなわち基準点Gをk回加えることに帰着する。 この演算は二進展開と「double-and-add」技法によりO(log k)回の点加法で計算されるため、kが256ビットでも数百回の群演算で終わる。 逆に公開点QとGだけを知るときにスカラーkを逆算する問題がまさにECDLPであり、最良の汎用攻撃でさえ約√n ≈ 2^128規模の演算を要し、現実的に計算不可能である。

この非対称性を数値で見ると説得力が明確になる。 256ビット曲線の群位数はおよそ2^256であり、Pollard's rho攻撃のコストは約2^128と宇宙的規模の演算量である。 一方、正当な利用者のスカラー倍は256回前後のdouble-and-addで数マイクロ秒以内に終わるため、「正当な計算は安価で攻撃は天文学的」という公開鍵暗号の理想的構造が成立する。

3. 中核プリミティブと動作手順

3.1 ECDH——鍵交換

ECDH(Elliptic Curve Diffie-Hellman)は、公開チャネルで二者が共有秘密を安全に合意するプロトコルである。 各自が秘密鍵(スカラー)a, bと公開鍵A=aG, B=bGを作り、公開鍵のみを交換した後、相手の公開鍵に自分の秘密鍵を掛けると a·B = a(bG) = b(aG) = b·A = abG という同一の点に到達する。 盗聴者はA, B, Gは見えるが、abGを計算するにはECDLPを解かねばならないため、共有秘密を知ることはできない。

sequenceDiagram
  participant A as Alice
  participant N as "公開チャネル(盗聴可能)"
  participant B as Bob
  A->>A: 秘密鍵 a を選択、公開鍵 A=aG を計算
  B->>B: 秘密鍵 b を選択、公開鍵 B=bG を計算
  A->>N: 公開鍵 A を送信
  N->>B: A を伝達
  B->>N: 公開鍵 B を送信
  N->>A: B を伝達
  A->>A: 共有点 S=a*B=abG
  B->>B: 共有点 S=b*A=abG
  Note over A,B: 同一の S から KDF でセッション鍵を導出

実務では、セッションごとに一時(ephemeral)鍵対を用いるECDHEが標準であるが、これは前方秘匿性(Forward Secrecy)を提供するためである。 すなわちサーバの長期秘密鍵が後に漏洩しても、過去セッションの一時鍵はすでに破棄されているため、過去のトラフィックを復号できない。 TLS 1.3が静的RSA・静的DH鍵交換を排除しECDHEを事実上義務化したことが代表例であり、これは「いま収穫し後で復号する(Harvest Now, Decrypt Later)」脅威への防御でもある。

3.2 ECDSA——電子署名

ECDSA(Elliptic Curve Digital Signature Algorithm)は、DSAを楕円曲線群へ移した署名方式である。 署名者はメッセージハッシュeと一時乱数kでR=kGを求めそのx座標をrとし、s = k⁻¹(e + r·d) (mod n)を計算して(r, s)を署名として出す(dは秘密鍵)。 検証者は公開鍵Q=dGと(r, s)でRを再構成し、x座標がrと一致するかを確認する。

ECDSAで最も致命的な実務上の落とし穴は、一時乱数kの再利用・予測である。 異なる二つの署名で同じkを用いると連立方程式により秘密鍵dがそのまま露出するが、実際に2010年ソニーのプレイステーション3がkを固定定数として用いたために署名用秘密鍵が抽出され、任意コード署名が可能になった事件があった。 このため近年では、メッセージと秘密鍵からkを決定論的に導出するRFC 6979や、そもそも乱数脆弱性を設計的に排除したEdDSA(Ed25519)が推奨される。

3.3 曲線標準とパラメータ

ECCはどの曲線を用いるかによって安全性と性能が大きく分かれる。 代表的な標準は以下のとおりであり、単なる性能だけでなく「実装安全性(定数時間演算が容易か)」と「パラメータ信頼性(検証可能乱数か)」が選択基準となる。

曲線 安全性強度(近似) 特徴·用途 考慮点
NIST P-256(secp256r1) 128ビット TLS·公的認証標準、ハードウェア支援が豊富 パラメータ生成の透明性に論争
secp256k1 128ビット ビットコイン·イーサリアム署名 非標準構造、特定の最適化が可能
Curve25519 128ビット X25519鍵交換、高速·実装安全 定数時間·誤り耐性設計
Ed25519 128ビット EdDSA署名、乱数脆弱性を排除 SSH·最新プロトコルで拡散
P-384 / Curve448 192ビット以上 高安全·長期秘匿 性能コストの増加

この表では、NIST P-256とCurve25519の対比が特に重要である。 両者とも128ビット安全性強度を提供するが、P-256は生成過程に説明されない定数(seed)があり、バックドアの可能性が完全には排除されないという批判がある一方、Curve25519・Ed25519は生成根拠が透明でモンゴメリ/ツイステッドエドワーズ形式であるため、定数時間実装と副チャネル耐性が容易で信頼を得た。 その結果、Signal・WireGuard・OpenSSH・TLS 1.3など現代のプロトコルはCurve25519系統を第一候補として採用する傾向にある。

4. RSAとの比較および適用事例

ECCとRSAはいずれも公開鍵暗号であるが、安全性の根拠と効率特性が根本的に異なる。 RSAは素因数分解の難問に基づき鍵が大きくなるほど準指数攻撃に追われる一方、ECCは指数的困難度のECDLPに基づき鍵増加に対し安全性が急峻に上昇する。

区分 RSA ECC 差が生じる理由
基盤難問 素因数分解(IFP) 楕円曲線離散対数(ECDLP) ECDLPには準指数アルゴリズムが不在
128ビット安全の鍵長 約3072ビット 約256ビット 攻撃アルゴリズム複雑度の差
署名生成速度 遅い 速い 短い鍵·少ない演算量
署名検証速度 速い 相対的に遅い RSA指数eが小さい(65537)
帯域·記憶 大きい 小さい 鍵·署名サイズが小さい
実装難易度 比較的単純 複雑(副チャネルに注意) 群演算·定数時間実装が必要

この比較における実務的含意は「用途に応じた最適点が異なる」ということである。 たとえばJWT検証をサーバが大量に実行するAPIゲートウェイでは検証が速いRSAが有利となりうるが、多数のモバイル端末が各自署名を生成・交換する環境では生成が速く送信量の小さいECCが圧倒的に有利である。 実際にアップルSecure Enclave・アンドロイドStrongBoxのようなモバイルセキュリティチップ、電子パスポート(ICAO Doc 9303)の能動認証、ビットコインの取引署名(secp256k1)などは、制約環境・大量トランザクションという共通点ゆえにECCを採用した。 TLS測定事例でも、ECDHE+ECDSAの組合せはRSA鍵交換に比べハンドシェイク遅延とCPU使用を有意に下げると報告される(具体的数値は環境により相異)。

5. (深化) 耐量子暗号移行と最新動向

ECCの最大の構造的脅威は量子コンピュータである。 十分に大きい誤り耐性量子コンピュータが登場すれば、ShorアルゴリズムがECDLPを多項式時間で解いてしまうため、ECCはRSAとともに根本的に無力化される。 むしろ鍵の短いECCはRSAより少ない量子ビットで攻撃可能であり、量子脅威の観点ではECCが先に破られうるという分析もある。

これに従いNISTは2024年に耐量子暗号(PQC)標準FIPS 203(ML-KEM)・FIPS 204(ML-DSA)・FIPS 205(SLH-DSA)を確定し、移行ロードマップ(NIST IR 8547草案など)ではRSA・ECCのような量子脆弱アルゴリズムを2030年頃に勧告廃止、2035年頃に使用不可へと段階的に押し出す方向を提示している(詳細日程は原文確認が必要)。 ただしPQCがまだ十分に検証されていないという懸念から、当面はハイブリッド方式が現実的解法として定着しつつある。 たとえばTLSでX25519とML-KEMを結合したX25519MLKEM768鍵交換は、二つのうち一方だけ安全でも全体が安全となるよう設計され、既存のECC生態系との互換性を維持しつつ量子脅威に備える——グーグル・クラウドフレアなどがすでに大規模に展開している。

もう一つの流れは、ECC自体の実装安全性強化である。 ECCは数学的には安全でも副チャネル攻撃(電力・タイミング分析)や乱数脆弱性により秘密鍵が漏洩する事故が繰り返されたため、定数時間演算・決定論的乱数(RFC 6979)・EdDSA採用・安全な曲線(Curve25519)選択が「実装ガバナンス」の中核として浮上した。 すなわちアルゴリズム選択に劣らず「どう実装したか」が実際の安全性を左右するという認識が成熟している。

6. 考慮事項および示唆(技術士の観点)

  • 移行戦略(暗号アジリティ): 量子脅威が確実視される以上、ECCをコードのあちこちにハードコードせず、アルゴリズムを方針・設定で交換可能に設計する暗号アジリティ(Crypto-Agility)を先行させるべきである。CBOMでECC使用状況をインベントリ化し、ハイブリッド鍵交換から段階的に適用するのが現実的である。
  • トレードオフ: ECCは短い鍵・低い帯域・速い署名生成という利点があるが、群演算が複雑で実装誤り・副チャネル攻撃に脆弱であり、署名検証はRSAより遅いことがある。用途(大量検証 vs 制約端末)に応じてRSA・ECC・PQCを選択的に組み合わせる設計が望ましい。
  • 実装·運用リスク: ECDSAの一時乱数k再利用は秘密鍵の全面露出に直結するため、決定論的署名(RFC 6979)やEdDSAを採用し、ハードウェアセキュリティモジュール(HSM)・Secure Enclaveで鍵を隔離すべきである。曲線選択時には性能だけでなくパラメータ信頼性と定数時間実装の容易さ(Curve25519系統)を併せて評価する。
  • 標準·規制対応: NIST SP 800-57・FIPS 186の承認曲線と各国の規制を遵守しつつ、PQC移行ロードマップ(2030/2035)を考慮し、長期秘匿性が要求される資産にはハイブリッド移行を前倒しすべきである。
  • 展望と連携技術: ECCは短期的にはハイブリッドPQCの一軸として共存し、中長期的にはML-KEM・ML-DSAへ置き換えられていくが、短い鍵という利点ゆえにIoT・ブロックチェーンなど制約環境では当面は中核的地位を維持する見通しである。ゼロトラストのワークロード認証、DID(分散アイデンティティ)、TLS 1.3などと緊密に連携する。

参考資料


一言まとめ: ECCは有限体楕円曲線群のスカラー倍とECDLP難問を用い、RSAよりはるかに短い鍵で同等の安全性強度を達成する公開鍵暗号であり、ECDH・ECDSAを通じてTLS・モバイル・ブロックチェーンの根幹を成すが、量子コンピュータの脅威に応じてハイブリッドPQC移行が進行中である。