GmSSL3.0密码算法库
GmSSL3.0密码算法库
一、开发背景
GmSSL 3.0版本具有更快、更小、更安全的特点,相比于GmSSL 2.0我们主要从以下方向进行改进:
采用CMake替代目前基于Perl的构建系统
支持Linux/Windows/macOS/Android/iOS等主流操作系统,移除对嵌入式OS等其他系统的支持
支持X86/ARM/RISC-V,针对上述平台64位指令集做汇编层面的优化
将C语言标准由目前的C89更新为最新的C99或C11,及部分GCC特性,移除对Perl的依赖
移除不安全的算法和协议,仅支持国密算法和主流国际算法,提升对AEAD、TLS 1.3等新标准的默认支持力度
提升密码算法抗木马、抗侧信道攻击的安全性
降低运行时堆内存的使用量,降低总体二进制代码体积
提供特定于国密算法和协议的统一的多语言(支持Rust/Java/Go/PHP)封装
保持和OpenSSL最新版本的兼容性,实现GmSSL和OpenSSL在同一个软件中的共存
二、功能
GmSSL是一个开源的密码工具箱,支持SM2/SM3/SM4/SM9/ZUC等国密(国家商用密码)算法、SM2国密数字证书及基于SM2证书的SSL/TLS安全通信协议,支持国密硬件密码设备,提供符合国密规范的编程接口与命令行工具,可以用于构建PKI/CA、安全通信、数据加密等符合国密标准的安全应用。GmSSL项目是OpenSSL项目的分支,并与OpenSSL保持接口兼容。因此GmSSL可以替代应用中的OpenSSL组件,并使应用自动具备基于国密的安全能力。GmSSL项目采用对商业应用友好的类BSD开源许可证,开源且可以用于闭源的商业应用。