xlcetc / cryptogm

An implement of china crypto standards, including sm2,sm3 ,sm4 and sm9 algorithms.
Other
38 stars 14 forks source link

结果验证 #3

Closed b1gcat closed 1 year ago

b1gcat commented 2 years ago

请问 本项目涉及的算法,例如sm9 是否有官方的数据来对比验证计算结果是否正确呢?

3q

triplewz commented 2 years ago

可以参考GM-Standards里面文档给的例子,进行自测和验证,如果是商用软件的话可以请测评机构进行商密测评。

YLINR commented 2 years ago

可以参考GM-Standards里面文档给的例子,进行自测和验证,如果是商用软件的话可以请测评机构进行商密测评。

  • sm3、sm4算法、参数比较固定,比较容易验证,按标准文档的例子测试即可,不过这个算法库提供了对称加密的ecb和cbc模式,方便开发使用,这个目前国密标准也没有强制要求;
  • sm2算法其实里面有一些参数也不确定,比如uid,目前是用的标准文档中的例子“1234567812345678”,但是标准中也没有强制要求一定要用这个,所以想要验证的话没有非常确定的数据,目前是和大部分国密算法库采用相同的实现方式,基本也能通过国密的测评;
  • sm9算法主要是双线性配对实现的方式,其实标准文档里也没有强制要求的,算法库实现方式和标准文档的方式略有不同,但如果想要显示相同结果,需要做一些转化即可。

请问sm9 的签名结果与官方文档测试的最终结果不一致要怎么转为一致呢?

triplewz commented 2 years ago

不一致指什么不一致?结果不一样还是格式不一样呢?

YLINR commented 2 years ago

不一致指什么不一致?结果不一样还是格式不一样呢?

结果不一致 image 实现的签名算法输出结果与上图不一致

triplewz commented 2 years ago

由于bn曲线扩域方式不一样, 结果确实会不一样。

triplewz commented 1 year ago

对于国密算法,可以参考另外开源项目gmsm