OpenSSL密码库算法笔记——第5.3.4章 椭圆曲线点群的补充说明

 

在§5.3.3设置椭圆曲线特征等函数中会遇到编码函数ec_GFp_mont_field_encode和解码函数ec_GFp_mont_field_decode,其实这两个函数是在做大整数和Montgomery整数之间的转换,它们与前面提到的符号to_montfrom_mont是一个意思。

ec_GFp_mont_field_encode(group, r, a)

BN_to_montgomery(r, a, group->field_data1)

r to_mont(a)   

表示将大整数a转化成Montgomery整数r

ec_GFp_mont_field_decode(group, r, a)

BN_from_montgomery(r, a, group->field_data1)

r from_mont(a)      

表示将Montgomery整数a转化成大整数r

        to_montfrom_mont是我们自己定义的见名识意的简单记号,而另外的四个函数ec_GFp_mont_field_encodeec_GFp_mont_field_decodeBN_to_montgomery和BN_from_montgomery是代码中定义了的函数。BN_to_montgomery和BN_from_montgomery的详细介绍请参见§3.2.3ec_GFp_mont_field_encodeec_GFp_mont_field_decode的详细介绍马上给出。

───────────────────────────────────────

int ec_GFp_mont_field_encode(const EC_GROUP *group, BIGNUM *r, const BIGNUM *a)       

功能:    利用群特征将大整数a转化成Montgomery整数r

输入:    groupa

输出:    r

返回:    1【正常】or 0【出错】

出处:    ecp_mont.c

备注:    其作用等价于        r to_mont(a)

也等价于        BN_to_montgomery(r, a, group->field_data1);

───────────────────────────────────────

        接下来是解码函数ec_GFp_mont_field_decode的详细解释。

───────────────────────────────────────

int ec_GFp_mont_field_decode(const EC_GROUP *group, BIGNUM *r, const BIGNUM *a)       

功能:    利用群特征将Montgomery型数a转化成大整数r

输入:    groupa

输出:    r

返回:    1【正常】or 0【出错】

出处:    ecp_mont.c

备注:    其作用等价于        r from_mont(a)

也等价于        BN_from_montgomery(r, a, group->field_data1);

───────────────────────────────────────

你可能感兴趣的:(openssl)