GmSSL 和 Tongsuo(铜锁)是目前最主流的两个国密算法开源库,它们在核心定位、API 兼容性、合规认证和性能优化上各有侧重。
GmSSL 与 Tongsuo (铜锁) 核心特性对比
特性维度 GmSSL Tongsuo (铜锁)
核心定位 独立、轻量、纯国密密码库 兼容OpenSSL的通用基础密码库
API 兼容性 独立 API,与 OpenSSL 不兼容 兼容 OpenSSL API ,可无缝替换
国密协议支持 完整支持 TLCP(国密 SSL) 完整支持 TLCP 及双证书模式
高级算法 SM2/SM3/SM4/SM9/ZUC 全支持 在支持全系列国密基础上,增加了半同态、零知识证明等前沿密码学特性
硬件支持 支持 SKF/SDF 等标准接口的国产硬件 同样支持,并针对部分国产密码卡提供了适配
合规认证 无官方商用密码产品认证 已获得国密局商用密码产品认证 (GM/T 0028 安全一级)
性能亮点 SM2 签名性能在 Intel 平台约 1.7万次/秒 64位平台SM2优化后,签名性能提升241%-286%
社区与维护 北京大学团队维护,文档资料较丰富 蚂蚁集团发起,后捐赠给开放原子开源基金会,社区治理结构完善
典型场景 嵌入式设备、国产操作系统、纯国密新系统 金融、政务系统国密改造、高并发服务、前沿密码技术探索
核心定位与 API 兼容性:迁移成本 vs 轻量独立
两者的根本区别在于设计理念,这会直接影响你项目的迁移成本和长期维护。
GmSSL:轻量独立,适合新项目
独立API,代码清爽:GmSSL的设计初衷是提供一个纯粹的国密工具箱,因此它从底层就构建了自己独立的API体系,与OpenSSL不兼容。这使得它的代码库更小、更聚焦,没有历史包袱。
高迁移成本:如果你的现有项目使用了OpenSSL,迁移到GmSSL需要重写所有调用密码功能的代码,工作量较大。这通常被认为适合从零开始的纯国密新系统。
Tongsuo:API兼容,迁移成本极低
兼容OpenSSL API:Tongsuo是基于OpenSSL的分支开发的,这意味着它保留了与OpenSSL高度兼容的API接口。
“零成本”替换:对于已有大量代码基于OpenSSL的项目,只需要重新链接Tongsuo库,替换掉原有的OpenSSL,理论上即可获得国密能力,代码改动量极小。这使得它成为大量存量系统进行国密改造的首选。
合规认证:Tongsuo 拥有显著优势
在需要过等保、密评的政府、金融等领域,密码库的合规认证是硬性要求。这一点上,Tongsuo拥有GmSSL无法比拟的优势。
Tongsuo:拥有官方商用密码产品认证
Tongsuo是国内首个通过国家密码管理局商用密码检测中心认证的开源密码库,符合GM/T 0028《密码模块安全技术要求》安全一级标准。
它已集齐了Android、iOS和Linux三大主流平台的商用密码认证资质。使用Tongsuo意味着你的项目在合规性审查时,底层密码模块是“自带资质”的。
GmSSL:无官方认证,但技术合规
GmSSL本身并没有获得官方的商用密码产品认证证书。虽然许多产品通过集成GmSSL来获得认证,但这需要产品厂商自己去完成集成和认证流程。
从技术上讲,GmSSL的实现严格遵循国密标准,并提供配置选项,可以仅启用国密算法和协议,以满足密码产品型号检测的要求。
性能表现:各有所长
两者在性能优化上各有侧重,都提供了相当不错的性能数据。
GmSSL:在Intel平台上签名性能突出
根据基准测试,GmSSL在Intel Core i7平台上,SM2签名性能可以达到约 17,311次/秒。
Tongsuo:通过深度优化实现跨越式提升
Tongsuo对SM2算法在64位平台上进行了深度优化。官方数据显示,优化后的签名性能较基线版本提高了241%到286%,峰值性能可达约 2.3万次/秒。
在最新的8.5.0版本中,Tongsuo也对AES-GCM、SM4-GCM等算法进行了性能优化,相较8.4.0版本,性能最高可提升一倍。
社区与维护:GmSSL 历史悠久 vs Tongsuo 治理完善
GmSSL:由北京大学关志副研究员团队开发,是国密算法库领域的“老将”,自2014年起便开始运营,积累了大量用户和社区资料,中文文档和案例相对丰富。维护频率相对稳定。
Tongsuo:起源于蚂蚁集团,后捐赠给开放原子开源基金会。项目管理委员会(PMC)的成立使项目治理更加中立和开放。背后有蚂蚁集团的持续投入,版本迭代活跃,平均每15天就能合并一个PR,响应速度较快。
使用场景与选型建议
基于以上对比,你可以根据自身项目的具体情况进行选择:
1. 首选 Tongsuo 的场景
存量系统国密改造:如果你的项目已经基于OpenSSL,Tongsuo的API兼容性可以最大程度地降低改造成本和风险。
金融、政务等强合规项目:这类项目需要过等保、密评,Tongsuo自带的官方商用密码认证证书是不可或缺的优势。
高并发服务端应用:Tongsuo在SM2算法上的深度性能优化,特别适合对签名验签性能有极高要求的场景。
需要前沿密码技术:如果你的项目需要零知识证明、同态加密等前沿能力,Tongsuo提供了更丰富的支持。
2. 首选 GmSSL 的场景
嵌入式或国产操作系统环境:GmSSL定位轻量,代码库简洁,对嵌入式设备和统信UOS等国产操作系统支持良好。
从零开始的纯国密新系统:如果项目无需考虑与OpenSSL的兼容性,GmSSL独立的API设计更加清晰,没有历史包袱,是构建新系统的理想选择。
对SM9/ZUC等算法有明确需求:GmSSL同样支持SM9/ZUC等所有国密算法,虽然Tongsuo也支持,但GmSSL的“纯国密”定位可能让它在这些非核心算法上更加专注。
结总
总的来说,这是一场“迁移成本”与“独立纯净”之间的权衡。
Tongsuo 更像是“升级版”,它通过兼容OpenSSL生态,大大降低了国密改造的准入门槛,加上合规认证的优势,使其成为存量系统改造和追求合规的项目的事实上的首选。
GmSSL 则像是“原生的国密构建者”,它保持了国密算法库的独立性和纯净性,在需要轻量部署、或与OpenSSL生态隔离的特定场景下,依然具有很强的生命力。
用户阅读与参考下面的文章,也许有帮助。
官方文档与社区:
GmSSL: [https://github.com/guanzhi/GmSSL](https://github.com/guanzhi/GmSSL)
Tongsuo: [https://github.com/Tongsuo-Project/Tongsuo](https://github.com/Tongsuo-Project/Tongsuo)
权威资料:
国家密码管理局官方标准:SM2, SM3, SM4, GM/T 0028, GM/T 0024
[Tongsuo官方合规声明](https://www.yuque.com/tsdoc/misc/st247r05s8b5dtct)