title: 国密预研
参考文档
- https://zhuanlan.zhihu.com/p/132352160 国密算法介绍
- https://juejin.cn/post/6844904114879463438 浅谈国密算法
- https://github.com/guanzhi/GM-Standards 中华人民共和国密码行业标准(GM/T)文本
参考书籍
《图解密码技术 第三版》
链接: https://pan.baidu.com/s/1VlIz9uad_PHVB4ikhJzaYg 提取码: k4nw
概念及类比
概念:
- SM1 为对称加密。其加密强度与AES相当。该算法不公开,调用该算法时,需要通过加密芯片的接口进行调用。
- SM2为非对称加密,基于ECC。该算法已公开。由于该算法基于ECC,故其签名速度与秘钥生成速度都快于RSA。ECC 256位(SM2采用的就是ECC 256位的一种)安全强度比RSA 2048位高,但运算速度快于RSA。
- SM3 消息摘要。可以用MD5作为对比理解。该算法已公开。校验结果为256位。
- SM4 无线局域网标准的分组数据算法。对称加密,密钥长度和分组长度均为128位。
类比:
- 对称算法(分组密码算法):AES/DES/SM4
- 非对称算法(公钥密码算法):RSA/SM2
- 摘要算法(杂凑算法):MD5/SHA-I/SM3
选型
直接使用pigx内置的hutool封装库
BouncyCastle
主流密码算法库,包含国密
hutool
https://hutool.cn/docs/#/crypto/%E5%9B%BD%E5%AF%86%E7%AE%97%E6%B3%95%E5%B7%A5%E5%85%B7-SmUtil
基于Bouncy Castle封装
PigX内置hutool及,无需额外引入依赖
GmSSL
http://gmssl.org/docs/java-api.html
只支持国密
java-gm
https://github.com/Hyperledger-TWGC/java-gm
基于Bouncy Castl封装
SM2Java
https://github.com/PopezLotado/SM2Java
基于Bouncy Castl封装
sm-crypto
https://github.com/JuneAndGreen/sm-crypto
前端JS版本