实验一-密码引擎-商用密码算法实现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-交叉测试(选做)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2025-01-11cursor试用出现:Too many free trial accounts used on this machine 的解决方法
- 2025-01-11百万架构师第十四课:源码分析:Spring 源码分析:深入分析IOC那些鲜为人知的细节|JavaGuide
- 2025-01-11不得不了解的高效AI办公工具API
- 2025-01-102025 蛇年,J 人直播带货内容审核团队必备的办公软件有哪 6 款?
- 2025-01-10高效运营背后的支柱:文档管理优化指南
- 2025-01-10年末压力山大?试试优化你的文档管理
- 2025-01-10跨部门协作中的进度追踪重要性解析
- 2025-01-10总结 JavaScript 中的变体函数调用方式
- 2025-01-10HR团队如何通过数据驱动提升管理效率?6个策略
- 2025-01-10WBS实战指南:如何一步步构建高效项目管理框架?