GmSSL是一个开源的密码工具箱,支持SM2/SM3/SM4/SM9/ZUC等国密(国家商用密码)算法、SM2国密数字证书及基于SM2证书的SSL/TLS安全通信协议,支持国密硬件密码设备,提供符合国密规范的编程接口与命令行工具,可以用于构建PKI/CA、安全通信、数据加密等符合国密标准的安全应用。GmSSL项目是OpenSSL项目的分支,并与OpenSSL保持接口兼容。因此GmSSL可以替代应用中的OpenSSL组件,并使应用自动具备基于国密的安全能力。GmSSL项目采用对商业应用友好的类BSD开源许可证,开源且可以用于闭源的商业应用。

为了保障商用密码的安全性,国家商用密码管理办公室制定了一系列密码标准,包括SM1(SCB2)、SM2、SM3、SM4、SM7、SM9、祖冲之密码算法(ZUC)那等等。其中SM1、SM4、SM7、祖冲之密码(ZUC)是对称算法;SM2、SM9是非对称算法;SM3是哈希算法。目前,这些算法已广泛应用于各个领域中。其中SM1、SM7算法不公开,调用该算法时,需要通过加密芯片的接口进行调用。

•   SM2:基于椭圆曲线密码(ECC)的公钥密码算法标准,提供数字签名,密钥交换,公钥加密,用于替换RSA/ECDSA/ECDH 等国际算法

•   SM3:消息摘要算法,哈希结果为 256 bits,用于替换 MD5/SHA1/SHA256 等国际算法

•   SM4:对称加密算法,密钥长度和分组长度均为 128 bits,主要用于无线局域网标准,用于替换 DES/AES 等算法

•   国密证书:这里的国密证书指的是使用国密算法(SM2-with-SM3)的标准 X509 格式证书,证书使用 SM3 作为哈希算法,使用 SM2 作为数字签名算法

•   国密 SSL:采用国密算法,符合国密标准的安全传输协议,也就是 SSL/TLS 协议的国密版本

GmSSL的编译与安装

GmSSL工程使用典型的Makefile管理工程,采用典型的linux C/C++程序编译安装方法

即可编译安装。

./config

make

make test

make install

编译后三个功能组件:

  1. Libcrypto: 加密
  2. Libssl: ssl功能
  3. Openssl工具

Gmssl使用

gmssl help 可以查看具体的命令, 可以看到gmssl在原来openssl的基础上,提供了国密的算法的支持。

Gmssl sms4 -help 子命令的使用方法

1)gmssl version

2) 对称加解密SM4

加密

gmssl sms4 -e -in <yourfile> -out <yourfile>.sms4

解密(标准输出到屏幕,可以重定向)

gmssl sms4 -d -in <yourfile>.sms4

3) 生成SM3摘要

gmssl sm3 <yourfile>

gmssl sm3 /etc/fstab

输出:SM3(/etc/fstab)= fa221b32c629777672765ba50b085e94ec65e5e49815bc7c5d4da011f6e69939

4)sm4 加解密

A)生成SM2私钥

gmssl sm2 -genkey -sms4 -out sm2.pem

B)导出SM2公钥

gmssl sm2 -in sm2.pem -pubout -out sm2Pub.pem

C)加密解密

gmssl sm2utl -encrypt -in testfile -pubin -inkey  sm2Pub.pem -out jiami.out

gmssl sm2utl -decrypt -in jiami.out -inkey sm2.pem -out testfile.out

相关文献或者资源:

  1. http://gmssl.org/
  2. https://github.com/guanzhi/GmSSL
  3. https://www.gmssl.cn/gmssl/index.jsp

国密算法和GmSSL介绍相关推荐

  1. 国密算法:利用python进行sm2非对称算法的实现,国密算法库gmssl的使用

    我们继续来进行国密算法的演示. 本篇演示sm2非对称算法的实现,国密算法库gmssl的使用. 一 sm2算法的特点: sm2: 即椭圆曲线公钥密码算法,是由国家密码管理局发布的: 非对称加密算法,即有 ...

  2. 国密算法:利用python进行sm3 hash算法,计算hash值,国密算法库gmssl的使用

    本篇介绍利用gmssl算法库中的sm3模块来进行hash值的计算. 一 sm3 hash算法的特点: sm3用于计算一个消息的hash值: 几乎无法被逆向,即通过hash值无法推断出原始消息: sm3 ...

  3. 【国密】利用gmssl生成SM2证书nginx访问

    之前我们项目的证书都是rsa的,这次本意是希望能升级到国密,但是理想过于丰满 一.GMSSL安装 # 下载 wget https://github.com/guanzhi/GmSSL/archive/ ...

  4. php生成国密验证,PHP+gmssl命令行实现国密加解密

    1. 国密介绍 国密算法是我国自主研发创新的一套数据加密处理系列算法.从SM1-SM4分别实现了对称.非对称.摘要等算法功能.特别适合应用于嵌入式物联网等相关领域,完成身份认证和数据加解密等功能.当然 ...

  5. 国密SSL通信协议详细介绍与抓包分析

    最近研究有关SSL协议的物联网安全协议,看了很多资料并且结合TASSL在ubuntu上跑了一个简单的demo,因此有了一些自己的理解,那么就详细讲解一下我所知道的SSL,相信这一篇文章就可以让你全面了 ...

  6. 技术解析:一文看懂 Anolis OS 国密生态 | 龙蜥专场

    简介: Anolis OS国密是社区在Anolis OS上做的国密技术解决方案. 编者注:本文系两位演讲者整理,他们在2021年阿里云开发者大会的「开源操作系统社区和生态分论坛」上带了分享,演讲主题为 ...

  7. 技术解析:一文看懂 Anolis OS 国密生态|龙蜥专场

    编者注:本文系两位演讲者整理,他们在2021年阿里云开发者大会的「开源操作系统社区和生态分论坛」上带了分享,演讲主题为<国密技术开发与实践>.Anolis OS 国密是社区在 Anolis ...

  8. 技术解析:一文看懂 Anolis OS 国密生态

    编者注:本文系两位演讲者整理,他们在2021年阿里云开发者大会的「开源操作系统社区和生态分论坛」上带了分享,演讲主题为<国密技术开发与实践>.为国内的基础软件生态添砖加瓦. 作者分别是阿里 ...

  9. 国密局公开SM2和SM3算法或预示中国商密算法将走向开放

    临近2010年年底的时候,在国密局的网站上公布了基于椭圆曲线ECC的SM2公开密钥国密算法和SM3杂凑算法.加上原来的SM1商密对称算法,中国定义的算法终于开始成熟并且以一个大方的姿态展示出来了. 此 ...

  10. 揭秘 AnolisOS 国密生态,想要看懂这一篇就够了

    此文原系 2021 年阿里云开发者大会,开源操作系统社区和生态分论坛,题为<国密技术开发与实践>的分享会后解读. AnolisOS 国密是社区在 AnolisOS 上做的国密技术解决方案, ...

最新文章

  1. C++ std::function<void(int)> 和 std::function<void()> 作为函数参数的注意事项
  2. 成都Uber优步司机奖励政策(1月7日)
  3. Linux内核编译学习1
  4. 工程搭建:搭建子工程之搭建实体类模块和lombok插件
  5. Hangfire在ASP.NET CORE中的简单实现
  6. linux文件大小和目录,查看Linux目录和文件大小
  7. Kubernetes-DaemonSet(六)
  8. codeforces798C - Mike and gcd problem (数论+思维)
  9. ReactNative字体大小不随系统字体大小变化而变化
  10. H5搜索页调起软键盘
  11. 把Alexa工具条改装成木马
  12. 生成大量随机数(c语言)
  13. html5音乐播放器网页底部,jQuery+html5网页底部固定mp3音乐播放器代码
  14. 腾讯云默认操作系统被安装的软件
  15. DSP48E功能描述
  16. excel如何生成各种图
  17. APISpace 汉字转五笔API
  18. C++编程的精品文章整理
  19. VB 2010 (20)多态性
  20. C语言如何动态申请空间(一维和二维)

热门文章

  1. UltraISO 9.7.0.3476中文完美破解安装版
  2. 网站推广 seo优化 教程102条
  3. Bing翻译和Google翻译的比较
  4. loadrunner 11下载及破解
  5. PYQT5:基于QsciScintilla的代码编辑器分析10--语法高亮颜色选择
  6. Zookeeper-watcher机制源码分析(一)
  7. 数据权限设计研究-行数据权限
  8. iPhone应用炫酷的下拉更新效果
  9. jvisualvm监控java,配置 jvisualvm 监控Java虚拟机
  10. python写界面c这算法_OpenCV算法精解:基于Python与C.pdf