OpenSSL/EC GFp 簡單方法
橢圓曲線庫透過單個通用介面提供許多不同的實現。當使用 EC_GROUP_new(參見 EC_GROUP_new)構造麴線時,必須提供實現方法。此處描述的函式都返回指向 **EC_METHOD** 結構的 const 指標,該指標可以傳遞給 EC_GROUP_NEW。重要的是,必須使用與所選曲線形式相匹配的正確實現型別。
對於 F2^m 曲線,只有一種實現選擇,即 EC_GF2_simple_method。
對於 Fp 曲線,最低公分母實現是 EC_GFp_simple_method 實現。所有其他實現都基於此實現。EC_GFp_mont_method 建立在 EC_GFp_simple_method 基礎上,但增加了蒙哥馬利乘法(參見 Bignum)。EC_GFp_nist_method 提供了一個針對 NIST 推薦曲線(NIST 曲線可透過 EC_GROUP_new_by_curve_name 獲取,如 EC_GROUP_new 所述)最佳化的實現。
函式 EC_GFp_nistp224_method、EC_GFp_nistp256_method 和 EC_GFp_nistp521_method 為 NIST P224、P256 和 P521 曲線分別提供了 64 位最佳化實現。但是請注意,這些實現並非在所有平臺上都可用。
EC_METHOD_get_field_type 標識 EC_METHOD 結構支援的欄位型別,可以是 F2^m 或 Fp。如果欄位型別是 Fp,則返回的值為 **NID_X9_62_prime_field**。如果欄位型別是 F2^m,則返回的值為 **NID_X9_62_characteristic_two_field**。這些值在 obj_mac.h 標頭檔案中定義。
所有 EC_GFp* 函式和 EC_GF2m_simple_method 始終返回指向 EC_METHOD 結構的 const 指標。
EC_METHOD_get_field_type 返回一個整數,該整數標識 EC_METHOD 結構支援的欄位型別。