sm2数字签名算法python实现
2022-09-27 18:00:09 7KB sm2 数字签名 密码算法 python
1
在goldboar写的SM2签名及验签函数( http://download.csdn.net/detail/goldboar/3833072)的基础上,改写的一个纯粹用来做SM2签名验证的函数,编译时需要用到OpenSSL的头文件和库文件(libeay32.lib或libeay32.dll),与goldboar的程序区别如下: 1.仅用于做验签,不能签名; 2.验签使用外部传入的SM2公钥,SM2公钥以(x,y)坐标形式传入; 3.签名也是以(r,s)坐标形式传入; 4.增加了一些内存清理语句,内存泄漏有改善; 5.goldboar的程序中使用的ECC参数是示例参数,不是GM/T 0003.5-2012规范中定义的参数,这里的验签函数中采用的是规范中定义的参数。 6.将一些对椭圆曲线参数的验证操作放入 _DEBUG 宏限制的范围内。因为参数是规范推荐的,已经过验证,所以在程序中无需再验证。将这些验证语句放入 _DEBUG 宏限制的范围内以后,如果编译 release 版本时就不会包含这些验证语句,效率可以有一点提升。
2022-07-05 15:28:59 5KB SM2 数字签名
1
基于国产密码算法 SM2 数字签名标准,设计了一种代理保护代理签名方案。通过对代理授权机制的设计,实现了对代理签名者的保护;通过对 SM2 数字签名算法的改进,实现了代理者代表原始签名者的代理签名;安全分析表明,设计的算法具有可验证性、可识别性、可区分性、不可否认性和强不可伪造性。最后,利用C语言及Polarssl库对该方案进行了实现,并与SM2数字签名进行了性能比较。分析表明,该算法在性能上具有较好的可用性。
1
在goldboar写的SM2签名及验签函数( http://download.csdn.net/detail/goldboar/3833072)的基础上,改写的一个纯粹用来做SM2签名验证的函数,编译时需要用到OpenSSL的头文件和库文件(libeay32.lib或libeay32.dll),与goldboar的程序区别如下: 1.仅用于做验签,不能签名; 2.验签使用外部传入的SM2公钥,SM2公钥以(x,y)坐标形式传入; 3.签名也是以(r,s)坐标形式传入; 4.增加了一些内存清理语句,内存泄漏有改善; 5.goldboar的程序中使用的ECC参数是示例参数,不是GM/T 0003.5-2012规范中定义的参数,这里的验签函数中采用的是规范中定义的参数。 6.将一些对椭圆曲线参数的验证操作放入 _DEBUG 宏限制的范围内。因为参数是规范推荐的,已经过验证,所以在程序中无需再验证。将这些验证语句放入 _DEBUG 宏限制的范围内以后,如果编译 release 版本时就不会包含这些验证语句,效率可以有一点提升。
2019-12-21 19:52:00 5KB SM2 数字签名
1