Skip to content
Zhi Guan edited this page Feb 13, 2017 · 9 revisions

关于GmSSL项目

自2010年起,国家密码管理局逐步公开了包括SM2公钥密码、SM3密码杂凑算法和SM4分组密码在内的多个商用密码算法的相关标准,为国产商用密码算法的广泛应用奠定了基础。但是,由于国产算法标准缺乏成熟并且开源的参考实现,试图采用国产算法的开源软件开发者只能求助于互联网上的零散代码片段或自行开发,为软件的安全性和可靠性带来了隐患,也阻碍了国产密码算法的进一步推广。面对国内应用开发者对开源国产密码算法实现的迫切需求,北京大学信息安全实验室自2014年起建立了支持国密算法的OpenSSL项目分支——GmSSL,在支持国际密码标准的基础上,完整地实现了国密SM2、SM3、SM4算法及其多种工作模式和复合方案,为开源软件开发者提供了稳定的开发接口和成熟的算法实现,是目前唯一完整支持国产密码算法标准的C语言开源密码库。

GmSSL是在OpenSSL项目基础上扩展了对国密算法的完整支持。OpenSSL密码工具箱是开源软件领域应用最广泛的基础密码库,是很多开源软件和安全协议的基础,也是国内外很多商业软件的重要组成部分。OpenSSL的EVP API是是C语言密码应用开发的事实标准之一,国内外的很多商业和开源软件普遍通过EVP API集成OpenSSL密码库,这也是GmSSL选择在OpenSSL的接口标准上做扩展的主要原因。GmSSL在C语言和命令行两个接口上实现了对OpenSSL的无缝扩展,并实现对OpenSSL的完全兼容。基于OpenSSL的已有密码应用只需要极小的修改(例如在调用初始化函数时用国密算法名称字符串替代国际标准算法名称字符串)就可以用GmSSL替代OpenSSL,并用国密算法替代国际标准算法,实现应用代码的移植。

项目代码在2014年末开始托管在GitHub ,并通过项目Wiki提供了丰富的文档和示例代码。为了便于商业软件安全地采用GmSSL,GmSSL保持了和OpenSSL相似的BSD/Apache风格的许可证,因此闭源软件或者商业软件可以安全地在产品中采用GmSSL的代码。2015年8月GmSSL的主要算法实现完成后,开始受到国内开发人员关注,其中不乏国内信息安全领域知名公司的技术研发人员。GmSSL项目由北京大学密码领域专业团队提供稳定的开发、支持和维护,项目的长期目标是推动国产密码算法在国内互联网和开源领域的广泛应用,提高国内商用非涉密领域的安全保障水平。

Clone this wiki locally