小组成员姓名:20201204 于瀛鹏
20201224 吴卓航
20201228 龙雪江村
指导教师:娄嘉鹏
1 任务简介
1.1 任务内容
寻找密码算法库,调用其中的国密算法,并在国产系统openEuler中调试通过。
1.2 任务要求
(1)使用C、Java、python、Go等多种语言实现。
(2)每个密码算法库实现多种国密算法
2 系统设计
2.1 系统组成
C语言算法库gmssl:实现sm2、sm3、sm4、zuc算法
C语言算法库openssl:实现sm3、sm4算法
C语言算法库cryptopp:实现sm3、sm4算法
Java语言算法库bouncy castle:实现sm2、sm3、sm4算法
Python语言算法库gmssl:实现sm2、sm3、sm4算法
Python语言算法库pysmx:实现sm2、sm3、sm4算法
Go语言算法库tjfoc:实现sm2、sm3、sm4算法
3源代码:
https://gitee.com/Dragonsnow
4课设截图:
gmssl_C_sm2:
gmssl_C_sm3:
gmssl_C_sm4:
gmssl_C_zuc:
openssl_C_sm3:
openssl_C_sm4:
cryptopp_C_sm3:
cryptopp_C_sm4:
bouncy castle_Java_sm2:
bouncy castle_Java_sm3:
bouncy castle_Java_sm4:
gmssl_python_sm2:
gmssl_python_sm3:
gmssl_python_sm4:
pysmx_python_sm2:
pysmx_python_sm3:
pysmx_python_sm4:
tjfoc_Go_sm2&sm3&sm4:
5.课程设计总结
通过本次课程设计实践,我们小组对sm2、sm3、sm4、zuc等国密算法进行了深入研究,对目前国产密码环境与生态进行了初步调查,对gmssl、pysmx、bouncy castle等密码算法库进行了基础学习,基本掌握了算法库的调用操作和具体算法的加密功能。在学习过程中,我们小组成员各司其职,通力合作,虽然遇到了很多问题,但我们通过网上查阅资料,请教同学等方式,一一将其解决,最终成功实现了四个密码算法库的调用。总而言之,本次课设是一次十分难忘的经历,也是我们提高自己学习和实践能力、增强团队合作精神、培养严谨细致的思维方式的一次宝贵的机会。
6.参考资料:
1.国密算法 SM3 消息摘要 杂凑算法 哈希函数 散列函数 python实现完整代码
https://blog.csdn.net/qq_43339242/article/details/123709822?spm=1001.2014.3001.5502;
2.国密算法 SM2 公钥加密 非对称加密 数字签名 密钥协商 python实现完整代码
https://blog.csdn.net/qq_43339242/article/details/123221091;
3.国密算法 SM4 对称加密 分组密码 python实现完整代码
https://blog.csdn.net/qq_43339242/article/details/123607119?spm=1001.2014.3001.5502;
4.python安装Crypto
https://blog.csdn.net/zhinian1204/article/details/124112512;
5.在Linux下安装GmSSL
https://blog.csdn.net/zyhse/article/details/112350363。