mirror of
https://github.com/emmansun/gmsm.git
synced 2025-05-11 03:26:17 +08:00
Updated Home (markdown)
parent
778c747a65
commit
ee38023570
4
Home.md
4
Home.md
@ -1 +1,5 @@
|
|||||||
最近项目/产品有可能要用到国密商密的SM2加解密及签名验签,看了标准文档,参考了有关实现,发现SM2/SM3本身并不复杂,主要是SM2用到的椭圆曲线优化实现比较有难度。网上大部分Golang的SM2椭圆曲线优化实现,其实大部分都是那个“神兽护体”的基于Golang NIST P256纯Go语言实现版本,并且比较难读。我想要自己实现一遍,切实体会一下实现的难度。
|
最近项目/产品有可能要用到国密商密的SM2加解密及签名验签,看了标准文档,参考了有关实现,发现SM2/SM3本身并不复杂,主要是SM2用到的椭圆曲线优化实现比较有难度。网上大部分Golang的SM2椭圆曲线优化实现,其实大部分都是那个“神兽护体”的基于Golang NIST P256纯Go语言实现版本,并且比较难读。我想要自己实现一遍,切实体会一下实现的难度。
|
||||||
|
|
||||||
|
通过阅读Golang NIST P256那个generic的源码,并且比较NIST P256和SM2 256曲线参数的异同,逐步尝试。
|
||||||
|
* 首先,我要替换掉p256.go中的所有常量,这个过程中遇到的最大难点在于**p256Zero31**的求解。
|
||||||
|
* 其次, 开始解决加法(p256Sum)和减法(p256Diff)的正确性,其难点在于解决进位问题(p256ReduceCarry)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user