楕円曲線暗号
楕円曲線を用いて暗号化することを、楕円曲線暗号(Elliptic Curve Cryptography:ECC)と呼びます。
bitcoinではこの暗号方式を用いることで秘密鍵から公開鍵を生成します。
また楕円曲線暗号を使用して電子署名がされる一連の流れは「楕円曲線電子署名アルゴリズム」と呼ばれています。
これはその名の通り、電子署名アルゴリズム(Digital Signature Algorithm:DSA)において楕円曲線暗号を用いるものであり、bitcoinの電子証明にも利用されています。
Secp256k1
簡単に言ってしまえば点の集合です。どんな点の集合かと言いますと、以下の式に従う点の集合です。
どのような点の集合になるか実装してみました。
bitcoinでは
で求められる点のどれか一つが公開鍵になります。