mirror of
https://github.com/emmansun/gmsm.git
synced 2025-05-10 19:16:18 +08:00
Updated Home (markdown)
parent
9e7991190b
commit
8459603aeb
1
Home.md
1
Home.md
@ -14,6 +14,7 @@
|
||||
* p256_asm.go中p256Inverse的改造,因为有经验,比较顺利。
|
||||
* 然后,测试两个多倍点算法ScalarMult/ScalarBaseMult的正确性,通过和elliptic.CurveParams默认实现结果比较来鉴定。到此,sm2的加解密已经可以验证了!
|
||||
* 最后,修改实现`(curve p256Curve) Inverse(k *big.Int) *big.Int`,这个是第一次改造,费了点功夫,这个方法以及CombinedMult方法在签名和验签中有用,能提高性能。
|
||||
* 持续优化蒙哥马利约简,主要是根据P这个素数的特性,对`T3=T+(T mod 2^64)*P,T = T3 / 2^64`,努力减少乘法。
|
||||
|
||||
这个实现的性能,据我测试,在amd64下,加解密大概是elliptic.CurveParams默认实现性能的**50**倍,大概是那个纯golang 32位实现的性能的**10**倍。签名和验签我没做性能测试,不过应该也有很大提高。这个性能已经和SM2基于NIST P256曲线实现的性能相当接近了,考虑到SM2 256曲线的参数复杂度,这个性能算是不错的了。
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user