GmSSL安装及配置

1|0GmSSL安装

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

网址如下:
GmSSL下载地址

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

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

1|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就成功啦

2|0算法实现

1|0sm2实现签名验签

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

1|0生成公私钥对

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

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

1|0签名及验签

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

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

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

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

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

1|0sm2实现加密解密

1|0加密

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

1|0解密

使用以下指令解密

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

1|0sm3实现

1|0计算摘要值

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

1|0正确性验证

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

1|0sm4实现

1|0生成密钥

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

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

1|0使用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

1|0使用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

1|0指令详解

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

1|0ZUC实现

1|0生成密钥

KEY=20201325202013252020132520201325 IV=20201325202013252020132520201325

1|0加解密

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

1|0指令详解

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

1|0sm9实现

1|0生成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

1|0加解密

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


__EOF__

本文作者userName
本文链接https://www.cnblogs.com/1314xhuan/p/16950284.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!
posted @   20201325my  阅读(3361)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
点击右上角即可分享
微信分享提示