BlueXIII's Blog

热爱技术,持续学习

0%


title: 国密预研

参考文档

参考书籍

《图解密码技术 第三版》

链接: 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

https://www.bouncycastle.org/

主流密码算法库,包含国密

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版本