Secp256k1

提供: tezos-wiki
移動先: 案内検索

thumb | secp256k1の楕円曲線「y 2 </ sup> = x 3 </ sup> + 7」のグラフです。 secp256k1は実際にZ p </ sub>フィールド上に定義されているので、そのグラフは実際にはこのようなものではなくランダムな散乱点のように見えます。

'secp256k1' はBitcoinで使用されるECDSAカーブのパラメータを指し、 "効率的な暗号化のための標準(SEC)"(Certicom Research、http://www.secg。 org / sec2-v2.pdf)。

bitcoinが普及する前にsecp256k1はほとんど使用されていませんでしたが、いくつかの素晴らしい特性のため人気が高まっています。最も一般的に使用される曲線はランダム構造ですが、特に効率的な計算を可能にする特別な非ランダムな方法でsecp256k1が構築されています。その結果、インプリメンテーションが十分に最適化されていると、他のカーブよりも30%以上高速になることがよくあります。また、一般的なNISTカーブとは異なり、secp256k1の定数は予測可能な方法で選択されているため、カーブの作成者が任意の種類のバックドアをカーブに挿入した可能性が大幅に低下します。

技術的な詳細[編集]

「基準」から抜粋して:

Koblitz曲線secp256k1に関連するF "' p </ sub>"上の楕円曲線領域パラメータが指定される 有限体F p </ sub> は次のように定義される。

  • = FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFE FFFFFC2F
  • = 2 256 </ sup> - 2 32 -9 - 8 - 7 </ sup > 2 6 </ sup> - 4 </ sup> - 1

F "' p </ sub>' '上の曲線" E ":" y 2 </ sup> = x 3 </ sup> + ax + b "によって定義されます:

  • a = 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
  • b = 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000007

圧縮された形の基点Gは、

  • = 02 79BE667E F9DCBBAC 55A06295 CE870B07 029BFCDB 2DCE28D9 59F2815B 16F81798

非圧縮形式では次のようになります。

  • G '= 04 79BE667E F9DCBBAC 55A06295 CE870B07 029BFCDB 2DCE28D9 59F2815B 16F81798 483ADA77 26A3C465 5DA4FBFC 0E1108A8 FD17B448 A6855419 9C47D08F FB10D4B8

最後に、「G」と補因子の順序「n」は次のとおりです。

  • n '= FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFE BAAEDCE6 AF48A03B BFD25E8C D0364141
  • h = 01

プロパティ[編集]

  • secp256k1は特性 p を持ち、それはプライムフィールドℤ "'p" </ sub>で定義されます。一般的に使用されている他のカーブには特性 2 があり、バイナリガロアフィールドGF(2 n </ sup>) 'で定義されていますが、secp256k1はその1つではありません。
  • 'a'定数がゼロであるため、カーブ方程式の ax 項は常にゼロであるため、カーブ方程式は y 2 </ sup> = x 3 < / 7 + 7

関連項目[編集]

es:Secp256k1

Category:技術