初识国密

作者: Ashton | 来源:发表于2020-04-14 21:14 被阅读0次

国内搞产业区块链,国密是几乎绕不开的一个坎儿,于是就皮毛了解了一下。

0x01 什么是国密

国密是国家商用密码的简称,是国家密码局认定的国产密码算法。通常用 GM/SM 来表示,GM 就是国密的拼音首字母,SM 就是商密两个字的拼音首字母。

说起来商用密码的应用领域十分广泛,主要用于对不涉及国家秘密内容但又具有敏感性的内部信息、行政事务信息、经济信息等进行加密保护。比如:商用密码可用于企业门禁管理、企业内部的各类敏感信息的传输加密、存储加密,防止非法第三方获取信息内容;也可用于各种安全认证、网上银行、数字签名等。

但事实上也就国内有国家标准要求的地方用用了。

因为国密标准是由国家密码局认定和发布的,很自然的就想去官方网站去看看。国家密码局的官网是 http://www.oscca.gov.cn/sca/index.shtml,和其它政府网站一样,望着满屏的信息,就是找不到我所想要的,比如国密算法标准和规范文档,网站上只有发布文档的公告,但找不到获取方法。

后来发现还有个“密码行业标准化技术委员会”,国密相关的文档可以在 http://www.gmbz.org.cn/main/bzlb.html 找到。

万能的 github 上也已经有人收集规整了一套相关标准和规范文档:https://github.com/guanzhi/GM-Standards

0x02 常用国密

常用的国密有 SM2/SM3/SM4/SM9
SM2为基于椭圆曲线密码的公钥密码算法标准,包含数字签名、密钥交换和公钥加密,用于替换RSA/Diffie-Hellman/ECDSA/ECDH等国际算法。
SM3为密码哈希算法,用于替代MD5/SHA-1/SHA-256等国际算法。
SM4为分组密码,用于替代DES/AES等国际算法。
SM9为基于身份的密码算法,可以替代基于数字证书的PKI/CA体系。

0x03 相关代码库

GmSSL 应该是对国密实现最为完全的开源代码库了,C 语言实现
https://github.com/guanzhi/GmSSL/

下面是苏州同济区块链研究院有限公司的一个开源实现,只是实现了 SM2/SM3/SM4 等少数标准,用的 Go 语言
https://github.com/tjfoc/gmsm

看到一个项目用到了这个库,就在这里列一下,Go 语言实现
https://github.com/ZZMarquis/gm

Java 语言实现版本
https://github.com/PopezLotado/SM2Java

相关文章

  • 初识国密

    国内搞产业区块链,国密是几乎绕不开的一个坎儿,于是就皮毛了解了一下。 0x01 什么是国密 国密是国家商用密码的简...

  • fabric国密支持

    介绍 本文主要介绍fabric国密改造要点、国密改造已完成版本、国密改造后的使用方法,同时,会给出完成国密改造的版...

  • 国密

    https://github.com/liuqun/GmSSL/blob/master/ssl/ssl_locl.h

  • 安卓版,国密网站通信, JSSE,SM2,国密证书,国密http

    介绍:开源国密通信纯 Java JSSE 实现,国密https网站访问,安卓版 HttpsURLConnectio...

  • 国密算法

    国密即国家密码局认定的国产密码算法。主要有SM1,SM2,SM3,SM4。密钥长度和分组长度均为128位。SM1 ...

  • 国密加密

    背景 先对内容进行签名,保证数据完整性(sm3杂凑之后再使用sm2签名) 再对内容进行加密,保证数据传输过程中的安...

  • SM 国密证书

    国密 P7 签名

  • 致心密入门学人

    1. 对心密有兴趣的师兄,要对心密法门做一些基本了解,可以先浏览“心密资料整理网”---“初识心密”栏目的内容。网...

  • 国密SSL VPN握手抓包分析

    准备工作 Windows PC电脑;国密SSL VPN客户端(浏览器);Wireshark客户端(需支持国密协议版...

  • 姜国密传

    “一千年前,姜国民女“离”以刺绣民动天下,被姜王纳入皇宫为后。次年,产子龙阳,五年后,产女名葵。越十年,杨...

网友评论

    本文标题:初识国密

    本文链接:https://www.haomeiwen.com/subject/vujxvhtx.html