GmSSL概述
GmSSL是一个开源密码工具箱,支持诸如SM2/SM3/SM4/SM9/ZUC等国家秘密(国家商用密码)算法、SM2国家秘密数字证书和基于SM2证书的SSL/TLS安全通信协议GmSSL项目提供符合国家标准的编程接口和命令行工具,可用于构建PKI/CA和安全保护,是OpenSSL项目的一个分支,并保持与OpenSSL的接口兼容性。 因此,GmSSL可以替换APP应用中的OpenSSL组件并使APP应用自动具有基于国家机密的安全能力。 GmSSL项目采用业务APP友好型BSD开源许可证,可用于开源和封闭的业务APP应用。
GmSSL项目由北京大学关志副研究员密码学研究组开发维护,项目源代码托管在GitHub上。 自2014年发布以来,GmSSL已在多个项目和产品中获得部署和应用,获得2015年度“一铭杯”中国Linux软件大赛二等奖(年度最高奖)和开源中国密码类推荐项目。 GmSSL项目的核心目标是通过开源密码技术推动国内网络空间的安全建设
GmSSL的主要特性支持所有公开的国家秘密算法,如SM2/SM3/SM4/SM9/ZUC
支持国密SM2双证书SSL工具包和国密SM9标识密码工具包
在主流处理器上高效实现4.5万次SM2签名
支持动态访问具有SKF/SDF接口的硬件密码模块
支持阈值签名、秘密共享、白盒密码等高级安全功能
支持多语言接口绑定和REST服务接口,如Java、Go和PHP
国密算法综述
国密算法是国家商用密码算法的简称。 2012年以来,国家密码管理局以《中华人民共和国密码行业标准》方式,相继推出了SM2/SM3/SM4等密码算法标准及其应用规范。 其中“SM”表示“商密”,即商用、不涉及国家秘密的密码技术。
SM2是基于椭圆曲线密码的公钥密码算法的标准,包含用于替换RSA/Diffie-Hellman/ECDSA/ECDH等国际算法的数字签名、密钥交换和公钥密码。
SM3是一种密码散列算法,用于代替MD5/SHA-1/SHA-256等国际算法。
SM4是组密码,用于代替DES/AES等国际算法。
ZUC算法(祖冲算法集)是我国学者自主设计的加密和完整性算法,包括祖冲算法、加密算法128-EEA3和完整性算法128-EIA3,由国际组织3GPP第三处理器4G无线通信
SM9是一种基于身份的加密算法,可以代替基于数字证书的PKI/CA体系。 部署国家秘密算法可以降低由于实现弱密码和错误而带来的安全风险和部署PKI/CA所带来的开销。
麻利
快速指南介绍了GmSSL编译、安装和GmSSL命令行工具的基本命令。
下载源代码(zip )并将其解压缩到当前工作目录$ unzip GmSSL-master.zip
编译和安装$./config no-safno-SDF no-SKF no-sof no-zuc
$ make
$ sudo make install
安装后,可以运行gmssl命令行工具检查gmssl版本是否成功
GmSSL 2.0 - OpenSSL 1.1.0d
SM4加密文件$ gmssl sms4 -e -in -out .sms4
企业ms4-cbcencryptionpassword :验证-企业ms4-cbcencryptionpassword 3360
解密$ gmssl sms4 -d -in .sms4
企业ms4-cbcdecryptionpassword :
生成的SM3说明$GMSSLsm3sm3(Yourfile )=66 c7f 0f 462 eee DD9D1 F2 d 46 BDC 10 E4 e 24167 c 4875 cf2a 2297 da 02 b 8f 4b A8 e 0
生成SM2密钥并签署$ gmsslgenpkey-algorithmec-pkeyoptec _ param gen _ curve 3360 s m2p 256 v 1
-out signkey.pem
$ gmsslpkeyutl-sign-pkeyoptec _ scheme : sm2-inkey sign key.PEM
-in -out .sig