【Miracl密码库】国密算法SM2复现
国密算法SM2的官方文档描述
http://www.gmbz.org.cn/main/postDetail.html?id=20180724110812
这是2018-07-24公布的文件《GM/T 0003-2012 SM2椭圆曲线公钥密码算法标准英文文本发布》
本文利用Miracl密码库实现SM2算法,参考GitHub源码完成
https://github.com/lookingforfanyunfei/SMX_Test/tree/master/SMX_Test
该源码项目给出了不同环境下的SM2密码实现,本文在Macbook环境下实现,采用的是arm64参数。
用Miracl密码库实现SM2密码算法,可以学习到椭圆曲线上的双线性配对运算,以及Miracl密码库提供的大数运算规则。
以下是SM2密码实现的过程
1、加入几个字节转化函数
在GitHub项目中,这三个函数有static关键字修饰,这里去掉,否则报错
下面看这三个函数的功能实现
bytes2hex将字符串转换为十六进制字符串,hex2bytes将十六进制字符串转换为字符串,dump_byte直接输出字符串的十六进制字符串。
2、功能函数
功能:生成指定长度随机数
随机数187179559的十六进制表示即0b282227,用dump_byte函数打印。
3、SM2的推荐参数设定
SM2标准推荐的ECC椭圆曲线参数


太长了,懒得复制了,移步去公众号看吧!