目录
- 1 在Ubuntu中使用OpenSSL用SM4算法加密上述文件,然后用龙脉eKey解密,提交代码和运行结果截图
- 2 在Ubuntu中基于OpenSSL产生一对公私钥对(SM2算法)
- 3 在Ubuntu中使用OpenSSL用SM3算法计算上述文件的Hash值,然后用OpenSSL SM2算法计算Hash值的签名,用龙脉eKey进行验签,提交代码和运行结果截图
- 4 加分项:在Windows中重现上述过程
1 在Ubuntu中使用OpenSSL用SM4算法加密上述文件,然后用龙脉eKey解密,提交代码和运行结果截图
2 在Ubuntu中基于OpenSSL产生一对公私钥对(SM2算法)
2.1 创建EC参数和原始私钥文件
openssl ecparam -out ec_param.pem -name SM2 -param_enc explicit -genkey
生成完成后可以查看一下EC私钥信息
然后验证一下参数:
openssl ecparam -in ec_param.pem -check
2.2 将原始的私钥文件,转换为pkcs8格式:
openssl pkcs8 -topk8 -inform PEM -in ec_param.pem -outform pem -nocrypt -out pri_key_pkcs8.pem
2.3 利用原始的私钥,生成对应的公钥:
openssl ec -in ec_param.pem -pubout -out pub_key.pem
至此SM2的秘钥对已经生成结束,pri_key_pkcs8.pem是SM2私钥,而pub_key.pem是公钥。
3 在Ubuntu中使用OpenSSL用SM3算法计算上述文件的Hash值,然后用OpenSSL SM2算法计算Hash值的签名,用龙脉eKey进行验签,提交代码和运行结果截图
对20201324.txt生成摘要
openssl dgst -sm3 20201324.txt
把摘要值放进dgst.txt中:
echo "20201324" | openssl dgst -sm3 -out dgst.txt
用sm2的私钥进行签名
openssl dgst -sha1 -sign ec_param.pem -out sign1.txt dgst.txt
4 加分项:在Windows中重现上述过程
安装
生成秘钥key和公钥
openssl enc -sm4-cbc -in 20201324.txt -a -out encrypt.txt
在windows下中使用OpenSSL用SM4算法加密上述文件
在Ubuntu中基于OpenSSL产生一对公私钥对(SM2算法)
openssl ecparam -out ec_param.pem -name SM2 -param_enc explicit -genkey
openssl ecparam -in ec_param.pem -check
openssl pkcs8 -topk8 -inform PEM -in ec_param.pem -outform pem -nocrypt -out openssl pri_key_pkcs8.pem
我的好像因为编码问题不能查看(也可能装的是light-opnessl功能不全内存真顶不住了啊),但从结果来看应该没问题