Secp256k1
'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 。
関連項目[編集]
- secp256k1のようなもの(Pieter WuilleによるBitcoinスタック交換の回答)