ECC secp256k1 (Bitcoin 楕円曲線)(イーシーシー)
NSA / SECG 2000年策定の楕円曲線。Bitcoin / Ethereum 等で使用される暗号通貨標準曲線、256bit でRSA 3072bit 相当のセキュリティ。
概要
ECC (Elliptic Curve Cryptography) は1985年Neal Koblitz / Victor Miller が独立に提唱した、楕円曲線数学に基づく公開鍵暗号。同一セキュリティ強度でRSA より短い鍵長 (256bit ECC = 3072bit RSA 相当) で実現できるため、SSH / TLS / 暗号通貨で広範採用。secp256k1 は2000年SECG (Standards for Efficient Cryptography Group・Certicom 主導) が標準化した特定の256bit 楕円曲線で、Bitcoin (2009) / Ethereum 等の暗号通貨業界で圧倒的シェア。
secp256k1 曲線
方程式: y² = x³ + 7 (mod p)
p (素数) = 2^256 - 2^32 - 977
基点 G (Generator):
Gx = 79BE667E F9DCBBAC 55A06295 CE870B07
029BFCDB 2DCE28D9 59F2815B 16F81798
Gy = 483ADA77 26A3C465 5DA4FBFC 0E1108A8
FD17B448 A6855419 9C47D08F FB10D4B8
n (位数) ≈ 2^256
「k」(Koblitz curve) は「Koblitz 曲線」の意・特殊な数学的構造で計算高速化可能。
ECC 主要曲線
| 曲線 | 規格 | bit | 主要用途 |
|---|---|---|---|
| secp256k1 | SEC 2 | 256 | Bitcoin / Ethereum |
| secp256r1 (P-256) | NIST FIPS 186 | 256 | TLS / SSL |
| secp384r1 (P-384) | NIST | 384 | 高セキュリティTLS |
| secp521r1 (P-521) | NIST | 521 | NSA Suite B |
| Curve25519 | Daniel Bernstein | 256 | SSH (Ed25519) / WireGuard / Signal |
| Curve448 | RFC 7748 | 448 | TLS 1.3 高セキュリティ |
| brainpoolP256r1 | ECC Brainpool | 256 | EU 政府 |
ECC vs RSA 鍵長比較
同一セキュリティ強度:
| RSA | ECC | セキュリティbit |
|---|---|---|
| 1024 | 160 | 80 |
| 2048 | 224 | 112 |
| 3072 | 256 | 128 |
| 7680 | 384 | 192 |
| 15360 | 521 | 256 |
ECC は鍵長1/10 程度・署名速度3-10倍・帯域効率優位。
Bitcoin / Ethereum で secp256k1
Bitcoin Address 生成
1. 秘密鍵 (256bit ランダム)
2. 公開鍵 = 秘密鍵 × G (楕円曲線スカラ倍)
3. 公開鍵 → SHA-256 → RIPEMD-160 → Bitcoin Address
ECDSA 署名
Bitcoin の全Transaction はECDSA on secp256k1:
- 署名サイズ: 64-72 byte
- 検証速度: 数千件/秒
- 鍵漏洩で過去全Tx 改竄可能なリスクなし (Forward Secrecy)
Ethereum
EthereumもECDSA on secp256k1 採用、Wallet Address・Transaction 署名・Smart Contract 認証で利用。
NIST P-256 vs secp256k1
| 項目 | P-256 (secp256r1) | secp256k1 |
|---|---|---|
| 規格 | NIST FIPS 186 | SEC 2 |
| 曲線方程式 | y² = x³ - 3x + b | y² = x³ + 7 |
| 主要用途 | TLS / Government | 暗号通貨 |
| 構造 | Generic | Koblitz (高速化) |
| NSA 関連疑惑 | 「Dual_EC_DRBG」事件で疑念 | なし |
| 普及度 | TLS 80%+ | 暗号通貨100% |
NIST 曲線にはNSA が定数選択した経緯あり、信頼性議論。secp256k1 はBitcoin で「政府関与なし」「実績10年+」が信頼の根拠。
主要採用
| プロトコル | ECC 曲線 |
|---|---|
| TLS 1.2/1.3 | P-256 / P-384 / X25519 |
| SSH (ed25519) | Curve25519 |
| WireGuard | Curve25519 |
| Signal Protocol | Curve25519 |
| Bitcoin | secp256k1 |
| Ethereum | secp256k1 |
| Apple iMessage | Curve25519 |
| マイナンバーカード | P-256 |
| 米Smart Card / PIV | P-256/P-384 |
関連用語との違い
- vs RSA: 短鍵 + 高速
- vs Ed25519: secp256k1 暗号通貨 / Ed25519 SSH
- vs PQC: 古典楕円曲線 / 量子耐性
FAQ
Q1: secp256k1 はなぜ Bitcoin 標準? A: Satoshi Nakamoto 選択・NSA 関与疑念なし・10年実績・Koblitz構造による高速化。
Q2: 量子コンピュータで? A: Shor アルゴリズムで ECC 全曲線が破られる。RSA 同様の脅威・PQC 移行が業界課題。Bitcoin は今後Lattice / Hash ベース署名移行を議論中。
Q3: Curve25519 推奨される理由? A: Daniel Bernstein 設計でNSA関与なし・実装容易・高速 / 安全マージン高。新規実装ではX25519 / Ed25519 が推奨される。