Elliptic Curve Cryptography (ECC)とは?
Elliptic Curve Cryptography (ECC)は、曲線上の点に関する数学を使ってデータを暗号化・復号する公開鍵暗号の方式です。小さな鍵サイズで高い安全性を提供するため、ウォレットは高速に動き、スマートフォンの負担も小さく済みます。コンパクトな鍵で重厚な安全性を実現するイメージです。
「Elliptic Curve Cryptography (ECC)は新しくて危険だ」──実際はそうではありません。何十年も研究されており、Bitcoin、Ethereum、Signal、そしてブラウザ内でも使われています。むしろ数学自体は古典的で、実装や運用が現代的です。
Elliptic Curve Cryptography (ECC)の仕組み
トランザクションを送信するときに頭に描ける簡単な流れを示します:
- 手順 1: ウォレットが既知の曲線と公開の基点を選びます。同時に非常に大きな乱数を生成し、それが秘密鍵になります。
- 手順 2: その点に秘密鍵を掛け算して公開鍵を得ます。例:Bitcoinは曲線 secp256k1 を使うため、アドレスの見た目があのようになります。
- 手順 3: 資金の所有を証明するため、ウォレットが署名を作成します。多くは ECDSA で、誰でも公開鍵と照合できます。
- 手順 4: 両者が暗号化やステルス送信のための共有秘密を得たい場合、ECDHを使うことで秘密鍵をさらさずに導出できます。
- 手順 5: ノードが計算を検証します。問題なければトランザクションは進みます。単純な考え方ですが深い数学があります。
はい、それだけです。
なぜElliptic Curve Cryptography (ECC)が重要か
これが単なる数学の話以上である理由は何か?
- 利点: 同等の安全性で鍵が小さいため、検証が速く、ウォレットが軽く、オンチェーンの負荷も低くなります。
- 比較: RSA (Rivest–Shamir–Adleman)やDSAと比べると、ECCは効率的で省リソースです。ネットワークが拡大するときにこの点は重要になります。
- 適用範囲: ウォレット、取引所、dApp、ハードウェアキーで出会う機会が多いです。Elliptic Curve Cryptography (ECC)は現代の暗号安全策の標準です。
自前で暗号実装を作らないでください。監査済みのライブラリ、標準曲線、決定論的署名を使い、ノンスが繰り返されないようにしましょう。ノンスの再利用一回で秘密鍵が漏れることがあります。実に簡単な話です。
Elliptic Curve Cryptography (ECC)の主要な特徴
好まれる理由となる特徴:
- コンパクト: 強い安全性を保ちながら鍵が短く、携帯端末やスマートコントラクトに優しい。
- 安全性: 力点はElliptic Curve Discrete Logarithm Problem (ECDLP)にあり、解くのは難しいと考えられています。
- 速度: 検証が速く、ブロック処理が滞らず手数料も抑えられます。
- 応用性: 同じ数学で署名や鍵共有など複数の用途に使えます。
派生形式
よく見かける主な種類:
- ECDSA: 多くのチェーンで使われる代表的な署名方式で、アドレス所有の証明に用いられます。
- ECDH: 二者間で暗号化やステルスアドレス用の共有秘密を作る方式です。
- EdDSA: 高速でノンス管理が安全な近年の方式で、新しいチェーンで人気があります。
Elliptic Curve Cryptography (ECC)の署名は新しく予測不能なノンスを前提とします。再利用や乱数の質が低いと秘密鍵が露見する恐れがあります。また秘密鍵を失うと回復は不可能です。
例
BTCを送るとき、ウォレットはElliptic Curve Cryptography (ECC)で署名を作り、ノードはその署名を公開鍵と照合してからトランザクションをブロックに組み込みます。
豆知識
Bitcoinで使われる曲線 secp256k1 は当時のアカデミックな主流ではありませんでしたが、採用と普及により象徴的になりました。ロレックスとRedditのスレッドが出会ったような話です。
まとめ
一言で言うとElliptic Curve Cryptography (ECC): 鍵が小さく、数学は強力で、署名により秘密を明かさずに所有を示せます。
