实验一-密码引擎-商用密码算法实现2-交叉测试(选做)
2022/4/23 9:13:44
本文主要是介绍实验一-密码引擎-商用密码算法实现2-交叉测试(选做),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
实验一-密码引擎-商用密码算法实现2-交叉测试(选做)
任务详情
把自己实现的商用密码算法SM2,SM3,SM4与OpenSSL交叉验证
-
自己实现的SM3算法的结果与OpenSSL的结果比对是否一致
-
自己实现的SM4算法加密的,OpenSSL的SM4算法解密,或者相反
-
自己实现的SM2算法签名,OpenSSL的SM2算法验签,或者相反
1 提交代码链接和运行结果截图
2 记录实现过程中的问题和解决方案
3 推荐发博客提交链接
码云链接
https://gitee.com/ruiruiruiruirui/xx/tree/master/smx
一、自己实现的SM3算法的结果与OpenSSL的结果比对是否一致
在Ubuntu下编程计算我的学号的sm3哈希值
gcc *.c -o 20191220sm3
在windows下使用openssl计算
dgst -sm3 20191220.txt
发现结果并不一样,其实是要用-m32 生成32位机器的汇编代码
输入指令
gcc -m32 *.c -o 20191220sm3
编译运行
得到一样的sm3哈希值
二、自己实现的SM4算法加密的,OpenSSL的SM4算法解密,或者相反
在Ubuntu中原文密钥和加密后如下
用openssl重现SM4加密,加密的原文和密钥均为0123456789abcdeffedcba9876543210
将原文改成十六进制文件再进行操作,使用winhex
openssl enc -sm4-ecb -in 20191220sm4_1.txt -K 0123456789abcdeffedcba9876543210 -out 20191220sm4_2.txt
查看20191220sm4_2.txt
加密成功
进行解密
openssl enc -d -sm4-ecb -in 20191220sm4_2.txt -nopad -K 0123456789abcdeffedcba9876543210 -out 20191220sm4_4.txt
解密成功
但是多出了一行,分析后认为是文件结束符也被加密了
所以在指令中再加入参数 -nopad 不使用补齐
加密
openssl enc -sm4-ecb -in 20191220sm4_1.txt -nopad -K 0123456789abcdeffedcba9876543210 -out 20191220sm4_3.txt
再进行解密
openssl enc -d -sm4-ecb -in 20191220sm4_3.txt -nopad -K 0123456789abcdeffedcba9876543210 -out 20191220sm4_4.txt
成功解密
三、自己实现的SM2算法签名,OpenSSL的SM2算法验签,或者相反
这篇关于实验一-密码引擎-商用密码算法实现2-交叉测试(选做)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-05-15鸿蒙生态设备数量超8亿台
- 2024-05-13TiDB + ES:转转业财系统亿级数据存储优化实践
- 2024-05-09“2024鸿蒙零基础快速实战-仿抖音App开发(ArkTS版)”实战课程已上线
- 2024-05-09聊聊如何通过arthas-tunnel-server来远程管理所有需要arthas监控的应用
- 2024-05-09log4j2这么配就对了
- 2024-05-09nginx修改Content-Type
- 2024-05-09Redis多数据源,看这篇就够了
- 2024-05-09Google Chrome驱动程序 124.0.6367.62(正式版本)去哪下载?
- 2024-05-09有没有大佬知道这种数据应该怎么抓取呀?
- 2024-05-09这种运行结果里的10.100000001,怎么能最快改成10.1?