27

国密算法SM2加解密_签名验签图形化例子

 3 years ago
source link: http://mp.weixin.qq.com/s?__biz=MzUxMTk4MzY3MA%3D%3D&%3Bmid=2247484587&%3Bidx=1&%3Bsn=329eca4a132f1a3499859754abd8f902
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

点击上方蓝字可直接关注!方便下次阅读。如果对你有帮助,麻烦点个在看或点个赞,感谢~

国密SM2概述

对国密算法有了解的朋友看到SM2可能会先想到非对称加密,之前的 SM4 是对称加密。 SM4 加解密使用的是同一个秘钥,而 SM2 使用的是非对称加密——公钥和私钥。公钥加密私钥解密。将密钥对中的私钥自己留存,在发送的消息中携带公钥;私钥 32 位、公钥 64 位,公钥前 32 字节称为 X 、后 32 字节称为 Y ,公钥存储方式分为压缩和非压缩。

签名和验签

主要为了防止消息被篡改,使用到了SM3。关于签名和验签,可以搜索更多的说明,加深理解。

使用Qt写的例子

juuMnyf.png!mobile

从上到下依次是私钥、公钥、明文、密文。

由于使用的国密算法是用C语言写的,所以需要和 Qt 所使用的类型做一些转换。

下面列一些使用到的接口:

私钥和公钥是自己填入的。

①create hash dgst
SM3_Hash()


②create random
sdt_random_gen()


③ecc sign
sdt_ecc_sign()


④ecc verify
sdt_ecc_verify()


⑤ecc encrypt
sdt_ecc_encrypt()


⑥ecc decrypt
sdt_ecc_decrypt()

vQnUvmR.png!mobile

使用的是别人写好的程序,主要是熟悉一些流程。

多思考、多总结。

今天就说到这里吧。

具体的程序可在公众号后台留言获取。

MZzeIjR.png!mobile


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK