Dsa

“openssl 速度”的輸出中:ecdsap、ecdsak 和 ecdsab 有什麼區別?字母 P/K/B 指的是什麼?

  • November 20, 2019

openssl speed在您的電腦上測試不同協議的速度:

$ openssl speed something
Error: bad option or value

Available values:
...
ecdsap160 ecdsap192 ecdsap224 ecdsap256 ecdsap384 ecdsap521
ecdsak163 ecdsak233 ecdsak283 ecdsak409 ecdsak571
ecdsab163 ecdsab233 ecdsab283 ecdsab409 ecdsab571
...

對於 ECDSA 選項,有上述可用密碼列表(可能此列表在不同的 PC 上有所不同)。

什麼是ecdsapvs ecdsakvs ecdsab 算法末尾的字母**、和是什麼意思?P``K``B``ECDSA**

第一:如果您正在尋找簽名方案,請忘記所有這些;我推薦 Ed25519。 它也使用橢圓曲線,它在RFC 8032中標準化,並且有廣泛可用的實現。它比您列出的任何簽名方案都更安全、更快、更簡單:ECDSA 是一種古老的設計,其中提到的大多數或所有曲線都不能滿足現代曲線安全標準。

考慮到這一點,回答您提出的問題:

  • 命名法 $ \mathrm{ecdsa}tn $ , 對於一個類型 $ t \in {\mathrm p, \mathrm k, \mathrm b} $ 和號碼 $ n $ ,主要對應於 NIST 曲線上的 ECDSA $ t{\operatorname-}n $ 在FIPS 186-4中定義,在大約 $ 2^n $ 元素。例如,ecdsap256 使用 NIST Curve P-256,或簡稱為 NIST P-256。在 FIPS 186-4 之前,曲線也出現在SECG 標準中。其中一條曲線,ecdsap160 使用的 secp160r1,沒有出現在 FIPS 186-4 中,可能是因為它提供的安全性太低。

(據稱用於選擇曲線的方法是在 ANSI X9.62 中規定的,其中一些曲線也出現在其中,並且可能還出現在 IEEE P1363 中,但是自尊的無政府主義者 cypherpunk 有錢掏出一份副本像這樣的官僚標準?)

  • 欄位大小 $ 2^n $ 意味著 Pollard 的最高預期成本 $ \rho $ 計算你,防御者,可以期望的離散對數大約是 $ \sqrt{2^n\pi/4} \approx 2^{n/2} $ ; 有關素數、欄位大小、曲線形狀和曲線順序的更多資訊,請參閱前面問題的答案,有關其他安全標準的更多資訊,請參閱SafeCurves
  • 字母pkb代表具有不同屬性的不同類型的曲線。出於好奇,我包含了完整的血腥細節,而不是因為您應該區分這些標準 - 和以前一樣,理想情況下,您將只使用 Ed25519,它使用曲線 edwards25519,根本不在此列表中。

p曲線是素數場上的曲線 $ \mathbb Z/p\mathbb Z $ 據稱隨機生成的*參數。** 它們都有短的 Weierstrass 形式 $ y^2 = x^3 - 3x + b $ 對於一個係數 $ b $ 選自不明種子。

使用素數域而不是擴展域,特別是二元擴展域,是橢圓曲線最保守的選擇。使用最廣泛的可能是 NIST P-256,也稱為 secp256r1。

除了在素數上定義之外,所有這些曲線都具有素數順序,這意味著曲線上的元素數(在域中具有座標而不是擴展)是素數。因此**,所有這些曲線都無法通過 SafeCurve**,因為它們不能接受用於快速常數時間標量乘法的蒙哥馬利階梯,或用於快速常數時間算術的完整 Edwards 公式,這需要至少 4 的輔因子;他們並不死板。其中一些還因為其他原因未能通過 SafeCurve。

  • ecdsap160:secp160r1,定義在$$ 1 $$, §2.4.2, p. 10、過特徵場 $ p = 2^{160} - 2^{31} - 1 $ 經過 $ y^2 = x^3 - 3 x + b $ , 在哪裡 $ b $ 是 1C97BEFC 54BD7A8B 65ACF89F 81D4D4AD C565FA45,據稱由 ANSI X9.62 Annex A.3.3 程序從無法解釋的種子 1053CDE4 2C14D696 E6768756 1517533B F3F83345 生成。

Pollard 的預期成本 $ \rho $ 計算這條曲線中的離散對數大約是 $ 2^{80} $ 曲線添加,這在今天是一個合理的成本,†因此它沒有得到 NIST 的認可,並且遠遠低於 SafeCurves 的要求 $ 2^{100} $ 波拉德的費用 $ \rho $ .

  • ecdsap192:secp192r1,又名NIST P-192,定義於$$ 2 $$, §2.2.2, p. 6$$ 3 $$, §D.1.2.1, p. 90 , 過素領域的特徵 $ p = 2^{192} - 2^{64} - 1 $ 經過 $ y^2 = x^3 - 3x + b $ 在哪裡 $ b $ 是 64210519 E59C80E7 0FA7E9AB 72243049 FEB8DEEC C146B9B1,據稱由 ANSI X9.62 附錄 A.3.3 程序從無法解釋的種子 3045AE6F C8422F64 ED579528 D38120EA E12196D5 生成。

Pollard 的預期成本 $ \rho $ 計算這條曲線中的離散對數大約是 $ 2^{96} $ 曲線添加,雖然它得到了 NIST 的認可,但它沒有達到 SafeCurves 規定的稍高的標準。

  • ecdsap224:secp224r1,又名NIST P-224,定義於$$ 2 $$, §2.3.2, p. 8$$ 3 $$, §D.1.2.1, p. 90 , 過素領域的特徵 $ p = 2^{224} - 2^{96} + 1 $ 經過 $ y^2 = x^2 - 3x + b $ 在哪裡 $ b $ 是 B4050A85 0C04B3AB F5413256 5044B0B7 D7BFD8BA 270B3943 2355FFB4,據稱由 ANSI X9.62 附錄 A.3.3 程序從無法解釋的種子 BD713447 99D5C7FC DC45B59F A3B9AB8F 6A948BC5 生成。

Pollard 的預期成本 $ \rho $ 計算這條曲線中的離散對數大約是 $ 2^{112} $ 曲線加法。它還未能通過 SafeCurves,因為它的扭曲具有沒有特別大的素因數的複合順序,從而啟用了Lim-Lee 小子群攻擊的變體,因此在使用它的協議中需要額外的點驗證複雜性。

  • ecdsap256:secp256r1,又名NIST P-256,定義於$$ 2 $$, §2.4.2, p. 9$$ 3 $$, §D.1.2.3, p. 91 , 過特徵場 $ p = 2^{224} (2^{32} - 1) + 2^{192} + 2^{96} - 1 $ 經過 $ y^2 = x^3 - 3x + b $ 在哪裡 $ b $ 是 5AC635D8 AA3A93E7 B3EBBD55 769886BC 651D06B0 CC53B0F6 3BCE3C3E 27D2604B,據稱是由 ANSI X9.62 Annex A.3.3 程序從不明種子 C49D3608 86E70493 6A6678E1 139D26B709E8 生成的

Pollard 的預期成本 $ \rho $ 計算這條曲線中的離散對數大約是 $ 2^{128} $ 曲線加法。

  • ecdsap384:secp384r1,又名NIST P-384,定義於$$ 2 $$, §2.5.1, p. 10$$ 3 $$, §D.1.2.4, p. 91 , 過特徵場 $ p = 2^{384} - 2^{128} - 2^{96} - 2^{32} - 1 $ 經過 $ y^2 = x^3 - 3x + b $ 在哪裡 $ b $ is B3312FA7 E23EE7E4 988E056B E3F82D19 181D9C6E FE814112 0314088F 5013875A C656398D 8A2ED19D 2A85C8ED D3EC2AEF, allegedly generated by the ANSI X9.62 Annex A.3.3 procedure from the unexplained seed A335926A A319A27A 1D00896A 6773A482 7ACDAC73.

Pollard 的預期成本 $ \rho $ 計算這條曲線中的離散對數大約是 $ 2^{192} $ 曲線加法。

  • ecdsap521:secp521r1,又名NIST P-521,定義於$$ 2 $$, §2.6.1, p. 11$$ 3 $$, §D.1.2.5, p. 92 , 過特徵場 $ p = 2^{521} - 1 $ 經過 $ y^2 = x^3 - 3x + b $ 在哪裡 $ b $ is 0051 953EB961 8E1C9A1F 929A21A0 B68540EE A2DA725B 99B315F3 B8B48991 8EF109E1 56193951 EC7E937B 1652C0BD 3BB1BF07 3573DF88 3D2C34F1 EF451FD4 6B503F00, allegedly generated by the ANSI X9.62 Annex A.3.3 procedure from the unexplained seed D09E8800 291CB853 96CC6717 393284AA A0DA64BA.

Pollard 的預期成本 $ \rho $ 計算這條曲線中的離散對數大約是 $ 2^{259} $ 曲線加法。SafeCurves 沒有對其進行評估,大概是因為 E-521 曲線比梅森素數要好得多 $ 2^{521} - 1 $ ,但事實證明它以更高的安全級別通過了與 NIST P-256 和 NIST P-384 相同的所有標準:嵌入度 $ (\ell - 1)/4 $ ; CM判別式 $ {>}2^{100} $ ; 不死板(可操作但並非微不足道);沒有蒙哥馬利梯子;扭曲嵌入度 $ (\ell’ - 1)/6 $ , 扭轉輔因子 $ 5\cdot7\cdot69697531\cdot635884237 = 1551184646225159645 $ , 素數扭曲子群階 $ \ell’ \approx 2^{460.57} $ ; 沒有愛德華茲加法。

k曲線是二元擴展域上的曲線 $ \operatorname{GF}(2^m) $ 具有一種特殊的性質,稱為Koblitz 曲線。** 具體來說,每個指數 $ m $ 的場大小是素數,並且每條曲線都有 Weierstrass 形式 $ y^2 + xy = x^3 + ax^2 + b $ 在哪裡 $ a, b \in {0,1} $ , 選擇使得 Frobenius 映射 $ \varphi\colon (x, y) \mapsto (x^{2^m}, y^{2^m}) $ (可以通過位移有效地計算)具有跡線 1,其結果是 $ [2^m]P = \varphi(P) - \varphi^2(P) $ ,使得標量乘法的評估特別便宜,正如Koblitz 在 1992 年指出的那樣,曲線類以他命名。

二進制橢圓曲線對離散對數的安全性沒有得到很好的理解(特別參見§10.2,‘A subexponential algorithm for elliptic curves over $ \mathbb F_{2^n} $ ?’,第。18),所以所有這些曲線都失敗了 SafeCurves

正如Gallant、Lambert 和 Vanstone 在 2001 年提出的那樣,名為 Koblitz 曲線的曲線類別有時被認為包括任何具有有效內同態以加速計算的曲線,而不僅僅是二元曲線。比特幣使用的 secp256k1 是質數 Koblitz 曲線的一個例子。這些內同性使一些人緊張,但不知道會破壞安全性。

b曲線是二元擴展場上的曲線 $ \operatorname{GF}(2^m) $ 據稱隨機生成的*參數。** 他們都有魏爾斯特拉斯形式 $ y^2 + xy = x^3 + x^2 + b $ 對於一個係數 $ b $ 選自不明種子。

與二元 Koblitz 曲線不同,所謂的隨機二元曲線既沒有剛性形式,也沒有允許有效實現的特殊結構。就像二元 Koblitz 曲線一樣,它們是二元的,因此人們對它們的安全性知之甚少。

  • ecdsab163:sect163r2,又名NIST B-163,定義於$$ 2 $$, §3.2.3, p. 18$$ 3 $$, §D.1.3.1.2, p. 94 , 在二進制域上 $ \operatorname{GF}(2^{163}) $ 經過 $ y^2 + xy = x^3 + x^2 + b $ , 在哪裡 $ b $ 是 02 0A601907 B8C953CA 1481EB10 512F7874 4A3205FD,據稱是由 ANSI X9.62 Annex A.3.3 程序從無法解釋的種子 85E25BFE 5C86226C DB12016F 7553F9D0 E693A268 生成的。

還有一條類似的曲線 sect163r1,由ANSI X9.62 附錄 A.3.3 程序的變體生成。

  • ecdsab233:sect233r1,又名NIST B-233,定義於$$ 2 $$, §3.3.2, p. 19$$ 3 $$, §D.1.3.2.2, p. 95 , 在二進制域上 $ \operatorname{GF}(2^{233}) $ 經過 $ y^2 + xy = x^3 + x^2 + b $ , 在哪裡 $ b $ 是 0066 647EDE6C 332C7F8C 0923BB58 213B333B 20E9CE42 81FE115F 7D8F90AD,據稱是由 ANSI X9.62 Annex A.3.3 程序從無法解釋的種子 74D59FF0 7F6B413D 0EA14B34 4B20A2DBBC049 生成的。
  • ecdsab283:sect283r1,又名NIST B-283,定義於$$ 2 $$, §3.5.2, p. 22$$ 3 $$, §D.1.3.3.2, p. 97 , 在二進制域上 $ \operatorname{GF}(2^{283}) $ 經過 $ y^2 + xy = x^3 + x^2 + b $ , 在哪裡 $ b $ 是 027B680A C8B8596D A5A4AF8A 19A0303F CA97FD76 45309FA2 A581485A F6263E31 3B79A2F5,據稱是由 ANSI X9.62 附錄 A.3.3 程序從無法解釋的種子 77E2B073 70EB0F83 2A6DD584BE.DBBFC88CD068B4BE.
  • ecdsab409:sect409r1,又名NIST B-409,定義於$$ 2 $$, §3.6.2, p. 24$$ 3 $$, §D.1.3.4.2, p. 98 , 在二進制域上 $ \operatorname{GF}(2^{409}) $ 經過 $ y^2 + xy = x^3 + x^2 + b $ , 在哪裡 $ b $ is 0021A5C2 C8EE9FEB 5C4B9A75 3B7B476B 7FD6422E F1F3DD67 4761FA99 D6AC27C8 A9A197B2 72822F6C D57A55AA 4F50AE31 7B13545F, allegedly generated by the ANSI X9.62 Annex A.3.3 procedure from the unexplained seed 4099B5A4 57F9D69F 79213D09 4C4BCD4D 4262210B.
  • ecdsab571:sect571r1,又名NIST B-571,定義於$$ 2 $$, §3.7.2, p. 26$$ 3 $$, §D.1.3.5.2, p. 100 , 在二進制域上 $ \operatorname{GF}(2^{571}) $ 經過 $ y^2 + xy = x^3 + x^2 + b $ , 在哪裡 $ b $ is 02F40E7E 2221F295 DE297117 B7F3D62F 5C6A97FF CB8CEFF1 CD6BA8CE 4A9A18AD 84FFABBD 8EFA5933 2BE7AD67 56A66E29 4AFD185A 78FF12AA 520E4DE7 39BACA0C 7FFEFF7F 2955727A, allegedly generated by the ANSI X9.62 Annex A.3.3 procedure from the unexplained seed 2AA058F7 3A0E33AB 486B0F61 0410C53A 7F132310.

參考:

  1. 推薦的橢圓曲線域參數,高效密碼學標準:SEC 2,Certicom Research,1.0 版,2001-09-20。
  2. 推薦的橢圓曲線域參數,高效密碼學標準:SEC 2,Certicom Research,2.0 版,2010-01-27。
  3. 數字簽名標準 (DSS)。聯邦資訊處理標準:FIPS PUB 186-4,美國國家標準與技術研究院,2013 年 7 月。
  4. Neil Koblitz,“具有良好密碼特性的 CM 曲線”,Joan Feigenbaum 編輯,密碼學進展論文集—CRYPTO 1991,Springer LNCS 576,1991,第 279-287 頁。
  5. CH Lim 和 PJ Lee,“使用素數子組對基於離散對數方案的密鑰恢復攻擊”,Burton S. Kaliski, Jr. 編輯,密碼學進展—CRYPTO 1997,Springer LNCS 1294,1997 ,第 249-263 頁。
  6. Stephen D. Galbraith 和 Pierrick Gaudry,“橢圓曲線離散對數問題的最新進展”,IACR Cryptology ePrint 存檔:報告 2015/1022,2015-10-22。
  7. Robert P. Gallant、Robert J. Lambert 和 Scott A. Vanstone,“具有有效內同態的橢圓曲線上的更快點乘法”,Joe Kilian 編著,Proceedings of Advances in Cryptology—CRYPTO 2001,Springer LNCS 2139,pp。 190–200。

  • NIST聲稱沒有關於種子來源的文件,在這些文件中,素數場上的曲線參數是偽隨機選擇的。我還沒有驗證他們是否遵循了 ANSI X9.62 Annex A.3.3 程序。另見bada55 曲線SafeCurves 對剛性的評論。
    注意:這不是後門的證據。(相比之下,Dual_EC_DRBG顯然被設計為有一個密碼學家迅速辨識的後門——後門甚至在“密鑰託管”這個不太微妙的委婉說法下獲得了專利。)這只是作者不認為的證據。很難激發人們對沒有後門的信心。

†為了比較,今天的比特幣網路計算超過 $ 2^{80} $ 一天內的 SHA-256 評估。

引用自:https://crypto.stackexchange.com/questions/59964