# hggm - 国密算法 SM2 SM3 SM4 SM9 ZUC Python实现完整代码 **Repository Path**: DaLangYangFan_admin/hggm ## Basic Information - **Project Name**: hggm - 国密算法 SM2 SM3 SM4 SM9 ZUC Python实现完整代码 - **Description**: 国密算法 SM2公钥密码 SM3杂凑算法 SM4分组密码 SM9标识密码 ZUC序列密码 Python代码完整实现 效率高于所有公开的Python国密算法库 - **Primary Language**: Python - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 19 - **Created**: 2025-04-02 - **Last Updated**: 2025-04-02 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # hggm - 国密算法 SM2 SM3 SM4 SM9 ZUC Python实现完整代码 #### 介绍 国密算法 SM2公钥密码 SM3杂凑算法 SM4分组密码 SM9标识密码 ZUC(祖冲之密码)序列密码 Python代码完整实现 效率高于所有公开的Python国密算法库 #### 软件架构 根目录里的hggm_test.py是测试文件,对实现的所有功能进行正确性与性能测试,并与gmssl、pysmx和Crypto相应实现做对比,可作为代码使用的范例; /hggm 目录里的是高效实现版本,依赖的库较多(新版的SM2代码已经不依赖Crypto库); /hggm/slow 目录里的是低速版本,纯Python实现,基本不依赖第三方Python库,适合教学 #### 安装教程 1.复制代码文件到Python工程中 2.以测试代码为参考调用相应函数 要完整运行测试代码hggm_test.py,还需注意依赖库的安装: (1)Crypto老版本没有int * EccPoint实现,最新版本(3.14.1)缺SHA256和ARC4的链接库,3.10.1版本是没有上述问题的(pip install pycryptodome==3.10.1) 若已安装其他版本Crypto,可在命令行输入: pip uninstall pycryptodome pip install pycryptodome==3.10.1 (2)还需安装①gmssl(SM9测试用到的gmssl不是通过"pip install gmssl"安装的版本,需要到 https://github.com/gongxian-ding/gmssl-python 下载源代码放到本代码同目录)和②pysmx(pip install snowland-smx) (3)hggm_test.py第16行(from pysmx.SM2 import Sign, Verify, Encrypt, Decrypt, kG, sm2_G)会报错,找到Python第三方库目录\pysmx\SM2_init_.py,在import里添加kG, sm2_G可解决 3.以下论文的相关测试代码在/hggm/SM9_test.py(该代码文件的运行依赖同目录SM3.py): ①国密算法SM9的性能优化方法 ②国密算法SM9的计算性能改进方法 ③基于国密算法SM9的加法同态加密方案 ④基于国密算法SM9的环签名方案 ⑤基于国密算法SM9的可追踪环签名方案 ⑥基于国密算法SM9的签密方案 ⑦基于国密算法SM9的撤销加密方案 #### 使用说明 我的CSDN博客对SM2、SM3、SM4、SM9、ZUC等国密算法有相关说明: 第一篇SM2:https://blog.csdn.net/qq_43339242/article/details/123221091 第二篇SM2:https://blog.csdn.net/qq_43339242/article/details/125738524 第三篇SM2:https://blog.csdn.net/qq_43339242/article/details/132990982 SM3:https://blog.csdn.net/qq_43339242/article/details/123709822 SM4:https://blog.csdn.net/qq_43339242/article/details/123607119 第一篇SM9:https://blog.csdn.net/qq_43339242/article/details/134050809 第二篇SM9:https://blog.csdn.net/qq_43339242/article/details/134330305 ZUC:https://blog.csdn.net/qq_43339242/article/details/124212075 汇总测试:https://blog.csdn.net/qq_43339242/article/details/123981081 #### 参与贡献 1. Fork 本仓库 2. 新建 Feat_xxx 分支 3. 提交代码 4. 新建 Pull Request #### 特技 1. 使用 Readme\_XXX.md 来支持不同的语言,例如 Readme\_en.md, Readme\_zh.md 2. Gitee 官方博客 [blog.gitee.com](https://blog.gitee.com) 3. 你可以 [https://gitee.com/explore](https://gitee.com/explore) 这个地址来了解 Gitee 上的优秀开源项目 4. [GVP](https://gitee.com/gvp) 全称是 Gitee 最有价值开源项目,是综合评定出的优秀开源项目 5. Gitee 官方提供的使用手册 [https://gitee.com/help](https://gitee.com/help) 6. Gitee 封面人物是一档用来展示 Gitee 会员风采的栏目 [https://gitee.com/gitee-stars/](https://gitee.com/gitee-stars/)