GmSSL安装及配置

GmSSL安装

在网站上进行下载对应系统的GmSSL安装包

网址如下:
GmSSL下载地址

选择这两个包中的任意一个都可以。

随后将其解压生成对应的文件夹:GmSSL-3.0.0

进行安装

正常的安装一般都是使用make命令,但这里由于没有makefile,只有CMakeLists文件

故我们使用cmake . 指令进行安装

随后我们可以看到生成了一个Makefile

随后使用make命令

然后我们可以使用gmssl version进行验证是否安装成功

这里我们可以看到它找不到库

在网上通过查阅资料后了解需要配置软连接,配置如下:

ln -s “gmssl文件路径”/lib/libgmssl.so.3 /usr/lib64/libgmssl.so.3
ln -s “gmssl文件路径”/lib/libcrypto.so.3 /usr/lib64/libcrypto.so.3

然后再执行 gmssl version就成功啦

算法实现

sm2实现签名验签

首先为了避免文件过多繁杂,我们创建一个sm2文件夹
随后进入文件夹

生成公私钥对

使用指令gmssl sm2keygen -pass 1325 -out sm2.pem -pubout sm2pub.pem进行分配公私钥对

指令详解
  • pass 生成的SM2私钥的加密口令
  • out 生成的SM2私钥
  • pubout 生成的SM2公钥

签名及验签

首先创建一个待签名源文件origin.txt
其内容如下

随后使用指令gmssl sm2sign -key sm2.pem -pass 1325 -in origin.txt -out sm2.sig进行签名

指令详解
  • key SM2私钥
  • pass SM2私钥的加密口令
  • id 指定签名使用的的ID(可选项,默认为1234567812345678)
  • in 待签名文件
  • out SM2签名结果

使用 gmssl sm2verify -pubkey sm2pub.pem -in origin.txt -sig sm2.sig进行验签

指令详解
  • pubkey 公钥
  • cert 数字证书
  • id 签名值使用的ID
  • in 待验证的原始数据
  • sig 待验证的签名值

sm2实现加密解密

加密

使用以下指令进行加密
gmssl sm2encrypt -pubkey sm2pub.pem -in origin.txt -out sm2.der

解密

使用以下指令解密

使用以下指令进行加密
gmssl sm2decrypt -key sm2.pem -pass 1325 -in sm2.der

sm3实现

计算摘要值

使用指令进行计算摘要值echo -n 20201325xjr | gmssl sm3

正确性验证

在网上的在线加密工具中进行计算后发现和gmssl计算结果相同,正确性得以验证。

sm4实现

生成密钥

使用KEY和IV进行生产对称密钥

这里的KEY就是对应sm4的对称密钥

使用CBC模式进行加密解密

echo 20201325xjr | gmssl sm4 -cbc -encrypt -key $KEY -iv $IV -out sm4.cbc
gmssl sm4 -cbc -decrypt -key $KEY -iv $IV -in sm4.cbc

使用CTR模式进行加解密

echo 20201307lcy | gmssl sm4 -ctr -encrypt -key $KEY -iv $IV -out sm4.ctr
gmssl sm4 -ctr -decrypt -key $KEY -iv $IV -in sm4.ctr

指令详解

  • key SM4加密解密使用的长度为128bit的key,使用16进制表示
  • iv SM4加密使用的IV
  • encrypt 进行加密
  • decrypt 进行解密
  • cbc 使用CBC模式
  • ctr 使用CTR模式
  • in 待加密/解密数据
  • out 加密/解密结果

ZUC实现

生成密钥

KEY=20201325202013252020132520201325
IV=20201325202013252020132520201325

加解密

echo 20201307 | gmssl zuc -key $KEY -iv $IV -out zuc.bin
gmssl zuc -key $KEY -iv $IV -in zuc.bin

指令详解

  • key ZUC算法使用的长度为128bit的key,使用16进制表示
  • iv ZUC使用的IV
  • in 待加密/解密数据
  • out 加密/解密结果

sm9实现

生成SM9算法的主公钥和主私钥

gmssl sm9sign -key alice.pem -pass 1325 -in origin.txt  -out hello.sig
gmssl sm9keygen -alg sm9sign -in sign_msk.pem -inpass 1325 -id alice -out alice.pem -outpass 1325

加解密

gmssl sm9sign -key alice.pem -pass 1325 -in origin.txt  -out hello.sig
gmssl sm9verify -pubmaster sign_mpk.pem -id alice -in origin.txt -sig hello.sig

posted @ 2022-12-04 17:41  20201325my  阅读(3158)  评论(0编辑  收藏  举报