4-2 GmSSL实现混合密码系统(Ubuntu,SM2和SM4)

这是一期实践内容。

此次实验通过结合SM2非对称加密SM4对称加密技术,展示了一种安全的数据加密和解密流程。它不仅增强了数据传输和存储的安全性,确保了只有授权用户才能访问敏感信息,而且通过密钥管理和访问控制,体现了加密技术在保护数据隐私和完整性方面的重要性。实验流程的实践操作有助于加深对加密原理的理解,并提高了在现实世界中应用加密技术解决安全问题的能力。


1 目标

  • 生成SM2密钥对(公钥和私钥)
  • 生成一个对称密钥(SM4密钥)
  • 使用SM2公钥加密对称密钥
  • 使用对称密钥加密文件
  • 使用SM2私钥解密对称密钥
  • 使用解密后的对称密钥解密文件

2 步骤

2.1安装GmSSL

sudo apt-get update
sudo apt-get install -y cmake gcc g++
git clone https://github.com/guanzhi/GmSSL.git
cd GmSSL
mkdir build && cd build
cmake ..
make
sudo make install

安装完成后确保GmSSL安装成功的命令:

gmssl version

具体实践过程见下
在这里插入图片描述
在这里插入图片描述在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.2生成SM2密钥对

使用3.1.2版本GmSSL适用命令行生成密钥对

sudo gmssl sm2keygen -pass 1234 -out sm2_private_key.pem -pubout sm2_public_key.pem
echo hello | sudo gmssl sm2encrypt -pubkey sm2_public_key.pem -out sm2.der#加密操作
echo hello | sudo gmssl sm2decrypt -key sm2_private_key.pem -pass 1234 -in sm2.der#解密操作

在这里插入图片描述
在这里插入图片描述
查看生成的SM2私钥和公钥内容如下:
在这里插入图片描述

2.3生成对称SM4密钥

gmssl rand -out sm4_key.bin -outlen 16
echo "This is a test file for encryption using SM4" > test.txt\
#使用SM4加密test.txt
gmssl sm4_ecb -in test.txt -out test.txt.enc -key sm4_key.bin
#使用SM2加密sm4_key.bin
gmssl sm2encrypt -pubkey sm2_public_key.pem -in sm4_key.bin -out sm4_key.enc

可参考以下执行过程
在这里插入图片描述

2.4 解密

#解密sm4_key.bin
gmssl sm2decrypt -in sm4_key.enc -out sm4_key.bin -key sm2_private_key.pem -pass yourpassword
#解密test.txt.enc
gmssl sm4_ecb -decrypt -in test.txt.enc -out decrypted_test.txt -key sm4_key.bin

在这里插入图片描述
在这里插入图片描述

  • 9
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值