基于国产密码算法的开源OpenSSL密码库

SSL(Secure Sockets Layer)是安全套接层协议的缩写,用于在互联网上提供加密传输,而OpenSSL是一个安全套接层的密码库,是基于密码学的安全开发包,它提供了SSL协议、主要密码算法、常用密钥和证书封装管,并提供大量应用程序供测试或其它目的使用。OpenSSL在国内应用极其广泛,但一直以来只提供国际通用密码算法,并没有真正嵌入国产密码算法。

随着国产密码算法的大力推广,大量使用OpenSSL开源库所开发的应用系统也需要进行国密改造,这就要求OpenSSL能够尽快支持狗产密码算法。但将OpenSSL开源库中国际通用密码算法替换为国产密码算法十分复杂,既要完全符合OpenSSL开源库体系,又要满足国产密码算法应用相关国家标准、行业标准规范的要求。

国内一家密码专业公司江南天安经过长时间研究与研发,终于在2017年上半年推出了支持国产密码算法的OpenSSL开源库,命名为TaSSL,在国际开源OpenSSL基础上融入了SM2、SM3、SM4国密算法,按照国密SSL标准实现了基于国密双证书体系和国产密码算法的SSL安全通讯服务,并兼容原有OpenSSL的架构体系,彻底解决了国内商用密码体系无法构建基于OpenSSL应用的实际问题,这将大大促进OpenSSL相关各类应用系统的国密改造进程和国产密码算法应用。

国产密码算法的应用推广已经有了很大突破,但由于密码本身的技术难度使得非密码行业公司难以深入理解和使用国产密码算法,也难以找到比较完善、系统、可靠的算法实现,而TaSSL可以帮助应用厂商在原有OpenSSL的技术架构体系下轻松应用国产密码算法,大大降低了使用难度。

TaSSL作为支持国密算法的开源OpenSSL,遵循了GMT 0003-2012 《SM2椭圆曲线公钥密码算法》、GMT 0002-2012 《SM4分组密码算法》、GMT 0004-2012 《SM3密码杂凑算法》、GMT 0024-2014《SSL VPN技术规范》、GMT 0025-2014《SSL VPN 网关产品规范》等密码行业标准,这也意味着各相关厂商,对国密相关标准的学习有了源代码级的参考和借鉴,也将在软件开发层面促进国产密码算法相关标准的普及。

11月3日,在第55次ISO/IEC联合技术委员会信息安全技术分委员会(SC27)德国柏林会议上,含有我国SM2与SM9数字签名算法的ISO/IEC14888-3/AMD1《带附录的数字签名第3部分:基于离散对数的机制-补篇1》得到一致通过,成为ISO/IEC国际标准,进入标准发布阶段。TaSSL在技术上的开源,也将随着我国密码算法的国际化发展进程,在应用开发领域进一步推动我国国产密码算法的国际化。

密码是国之重器,是国家的重要战略资源,是保护网络安全的核心技术和基础支撑” 。OpenSSL国产密码算法的开源,解决了国内众多企业在业务系统中使用国产密码算法的难题,同时,也为促进国密算法在各行业中的应用推广开启了新的篇章。

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
GmSSL (http://gmssl.org) 是支持国密算法和标准的OpenSSL分支,增加了对国密SM2/SM3/SM4算法和ECIES、CPK、ZUC算法的支持,实现了这些算法与EVP API和命令行工具的集成。GmSSL由北京大学信息安全实验室(http://infosec.pku.edu.cn)开发和维护。 GmSSL的libcrypto密码增加的密码算法包括: SM2是国密椭圆曲线公钥密码标准,其中包含数字签名、公钥加密和密钥交换三个具体方案,以及一个256比特素域上的推荐椭圆曲线参数。GmSSL内置了SM2的推荐曲线参数,实现了SM2的签名算法和公钥加密算法。 SM3是国密密码杂凑算法标准,输出的杂凑值长度为256比特。 SM4是国密分组密码标准,又名SMS4,其分组长度和密钥长度均为128比特。GmSSL实现了SMS4密码及SMS4的ECB、CBC、CFB、OFB等工作模式。 X9.63 KDF是密钥派生函数国际标准之一,ECIES和SM2公钥加密方案依赖该算法,GmSSL实现了X9.63 KDF,并用于支持ECIES和SM2公钥加密。 ECIES (Elliptic Curve Integrated Encryption Scheme)是椭圆曲线公钥加密的国际标准,可用于加密数据。 CPK是由南相浩和陈钟设计的基于身份的密码。GmSSL实现了CPK的系统建立和密钥生成算法,生成的密钥可以用于DSA、ECDH、ECDSA、ECIES、SM2等公钥密码算法。 ZUC(祖冲之算法)是由我国设计的序列密码,以32位字为单位输出密钥流,其密钥长度和IV长度均为128比特。GmSSL的ZUC算法处于开发中。 GmSSL提供命令行工具gmssl,可用于生成SM2签名、SM3摘要、HMAC-SM3消息认证码,支持SM4和ZUC数据加解密。 $ echo -n abc | gmssl dgst -sm3 66c7f0f462eeedd9d1f2d46bdc10e4e24167c4875cf2f7a2297da02b8f4ba8e0     显示SM2推荐椭圆曲线域参数 $ gmssl ecparam -text -noout -name sm2p256v1 -param_enc explicit     在代码目录./certs/sm2/目录中给出了SM2证书的例子,可以用gmssl工具进行解析 $ gmssl x509 -text -noout -in certs/sm2/sm2-x509.pem $ gmssl pkcs7 -print_certs -in certs/sm2/sm2-pkcs7.pem     GmSSL新增的EVP对象包括EVP_sm3()、EVP_sm4_ecb()、EVP_sm4_cbc()、EVP_sm4_ofb()、EVP_sm4_cfb()和EVP_zuc()。 标签:GmSSL

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值