国密算法和GmSSL介绍
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
编译后三个功能组件:
- Libcrypto: 加密
- Libssl: ssl功能
- 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
相关文献或者资源:
- http://gmssl.org/
- https://github.com/guanzhi/GmSSL
- https://www.gmssl.cn/gmssl/index.jsp
国密算法和GmSSL介绍相关推荐
- 国密算法:利用python进行sm2非对称算法的实现,国密算法库gmssl的使用
我们继续来进行国密算法的演示. 本篇演示sm2非对称算法的实现,国密算法库gmssl的使用. 一 sm2算法的特点: sm2: 即椭圆曲线公钥密码算法,是由国家密码管理局发布的: 非对称加密算法,即有 ...
- 国密算法:利用python进行sm3 hash算法,计算hash值,国密算法库gmssl的使用
本篇介绍利用gmssl算法库中的sm3模块来进行hash值的计算. 一 sm3 hash算法的特点: sm3用于计算一个消息的hash值: 几乎无法被逆向,即通过hash值无法推断出原始消息: sm3 ...
- 【国密】利用gmssl生成SM2证书nginx访问
之前我们项目的证书都是rsa的,这次本意是希望能升级到国密,但是理想过于丰满 一.GMSSL安装 # 下载 wget https://github.com/guanzhi/GmSSL/archive/ ...
- php生成国密验证,PHP+gmssl命令行实现国密加解密
1. 国密介绍 国密算法是我国自主研发创新的一套数据加密处理系列算法.从SM1-SM4分别实现了对称.非对称.摘要等算法功能.特别适合应用于嵌入式物联网等相关领域,完成身份认证和数据加解密等功能.当然 ...
- 国密SSL通信协议详细介绍与抓包分析
最近研究有关SSL协议的物联网安全协议,看了很多资料并且结合TASSL在ubuntu上跑了一个简单的demo,因此有了一些自己的理解,那么就详细讲解一下我所知道的SSL,相信这一篇文章就可以让你全面了 ...
- 技术解析:一文看懂 Anolis OS 国密生态 | 龙蜥专场
简介: Anolis OS国密是社区在Anolis OS上做的国密技术解决方案. 编者注:本文系两位演讲者整理,他们在2021年阿里云开发者大会的「开源操作系统社区和生态分论坛」上带了分享,演讲主题为 ...
- 技术解析:一文看懂 Anolis OS 国密生态|龙蜥专场
编者注:本文系两位演讲者整理,他们在2021年阿里云开发者大会的「开源操作系统社区和生态分论坛」上带了分享,演讲主题为<国密技术开发与实践>.Anolis OS 国密是社区在 Anolis ...
- 技术解析:一文看懂 Anolis OS 国密生态
编者注:本文系两位演讲者整理,他们在2021年阿里云开发者大会的「开源操作系统社区和生态分论坛」上带了分享,演讲主题为<国密技术开发与实践>.为国内的基础软件生态添砖加瓦. 作者分别是阿里 ...
- 国密局公开SM2和SM3算法或预示中国商密算法将走向开放
临近2010年年底的时候,在国密局的网站上公布了基于椭圆曲线ECC的SM2公开密钥国密算法和SM3杂凑算法.加上原来的SM1商密对称算法,中国定义的算法终于开始成熟并且以一个大方的姿态展示出来了. 此 ...
- 揭秘 AnolisOS 国密生态,想要看懂这一篇就够了
此文原系 2021 年阿里云开发者大会,开源操作系统社区和生态分论坛,题为<国密技术开发与实践>的分享会后解读. AnolisOS 国密是社区在 AnolisOS 上做的国密技术解决方案, ...
最新文章
- C++ std::function<void(int)> 和 std::function<void()> 作为函数参数的注意事项
- 成都Uber优步司机奖励政策(1月7日)
- Linux内核编译学习1
- 工程搭建:搭建子工程之搭建实体类模块和lombok插件
- Hangfire在ASP.NET CORE中的简单实现
- linux文件大小和目录,查看Linux目录和文件大小
- Kubernetes-DaemonSet(六)
- codeforces798C - Mike and gcd problem (数论+思维)
- ReactNative字体大小不随系统字体大小变化而变化
- H5搜索页调起软键盘
- 把Alexa工具条改装成木马
- 生成大量随机数(c语言)
- html5音乐播放器网页底部,jQuery+html5网页底部固定mp3音乐播放器代码
- 腾讯云默认操作系统被安装的软件
- DSP48E功能描述
- excel如何生成各种图
- APISpace 汉字转五笔API
- C++编程的精品文章整理
- VB 2010 (20)多态性
- C语言如何动态申请空间(一维和二维)
热门文章
- UltraISO 9.7.0.3476中文完美破解安装版
- 网站推广 seo优化 教程102条
- Bing翻译和Google翻译的比较
- loadrunner 11下载及破解
- PYQT5:基于QsciScintilla的代码编辑器分析10--语法高亮颜色选择
- Zookeeper-watcher机制源码分析(一)
- 数据权限设计研究-行数据权限
- iPhone应用炫酷的下拉更新效果
- jvisualvm监控java,配置 jvisualvm 监控Java虚拟机
- python写界面c这算法_OpenCV算法精解:基于Python与C.pdf