支持国密算法和标准的OpenSSL分支 GmSSL

Apache Licene 2.0
C/C++
跨平台
2016-05-09
SimonZhao

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()。

加载中

评论(8)

SimonZhao
SimonZhao 软件作者
支持国产加密算法的开发与应用
一壶浊酒
加油啊 。现在的版本,距离国密的标准,相差甚远。建议那些开发者们,先把SM2\SM3\SM4,以及国密SSL 先搞定了,再进行类似祖冲之之类的算法。 祖冲之算法,毕竟用的少。
PGSmith
PGSmith
您好,编译安装Gmssl需要什么环境?我这边遇到一个错误/usr/bin/ld:crypto.map:1620: syntax error in VERSION script,您看一下如何解决?
S
StormNight
good 好东西
clouddyy
clouddyy
好牛的分支 #GmSSL#
好了_是我
好了_是我
国密3 #GmSSL#
功夫在墙外
功夫在墙外
应该每个国家都搞一个OpenSSL分支嘛 #GmSSL#
张寒枫
张寒枫
啥时候出个JAVA版的国密库 #GmSSL#

暂无资讯

暂无问答

国密算法SM2/3/4实现

# 相关信息 ## 国家密码管理局发布的标准 - SM2:http://www.oscca.gov.cn/News/201012/News_1197.htm - SM3:http://www.oscca.gov.cn/News/201012/News_1199.htm - SM4的没找到 ## 开源实现...

2016/11/24 10:22
1K
0

没有更多内容

加载失败,请刷新页面

没有更多内容

返回顶部
顶部