国密算法SM3的GmSSL代码实现Demo

目录

1 国密算法简介

2 SM3的代码实现

2.1 SM3-Hash的GmSSL实现接口

2.2 SM3-HMAC的GmSSL实现接口

3 演示Demo

3.1 开发环境

3.2 功能介绍

3.3 下载地址


1 国密算法简介

        国密算法是国家商用密码算法的简称。自2012年以来,国家密码管理局以《中华人民共和国密码行业标准》的方式,陆续公布了SM2/SM3/SM4等密码算法标准及其应用规范。其中“SM”代表“商密”,即用于商用的、不涉及国家秘密的密码技术。其中SM2为基于椭圆曲线密码的公钥密码算法标准,包含数字签名、密钥交换和公钥加密,用于替换RSA/Diffie-Hellman/ECDSA/ECDH等国际算法;SM3为密码哈希算法,用于替代MD5/SHA-1/SHA-256等国际算法;SM4为分组密码,用于替代DES/AES等国际算法;SM9为基于身份的密码算法,可以替代基于数字证书的PKI/CA体系。通过部署国密算法,可以降低由弱密码和错误实现带来的安全风险和部署PKI/CA带来的开销。

序号

算法类型

国密算法

应用范围及描述

对应的国际算法

补充

1

非对称加密

SM2

身份认证,数据签名,密码交换,256位椭圆曲线

RSA、RSA4096

2

对称加密

SM1

128位数据加密,算法不公开,仅以IP核的形式存在于芯片中。智能IC卡、智能密码钥匙、加密卡、加密机。

DES、3DES、AES(128)、AES192、AES256

AES是取代DES的算法

SM4

128位数据加密,相当于AES(128)

3

完整性运算

SM3

256位数据摘要计算,相当于SHA256

SHA1、SHA-256、SHA-384、SHA-512

2 SM3的代码实现

        SM3是中华人民共和国政府采用的一种密码散列函数标准,由国家密码管理局于2010年12月17日发布。相关标准为“GM/T 0004-2012 《SM3密码杂凑算法》”。 在商用密码体系中,SM3主要用于数字签名及验证、消息认证码生成及验证、随机数生成等,其算法公开。据国家密码管理局表示,其安全性及效率与SHA-256相当。

2.1 SM3-Hash的GmSSL实现接口

/************************************************************************************
    功    能:SM3哈希运算
    参    数:data    - [in] 输入数据
             datalen - [in] 输入数据长度
             dgst    - [out] 输出哈希值,32字节
    返    回:void
************************************************************************************/
void sm3_digest(const uint8_t *data, size_t datalen, uint8_t dgst[SM3_DIGEST_SIZE]);

2.2 SM3-HMAC的GmSSL实现接口

/************************************************************************************
    功    能:SM3-hmnac
    参    数:key     - [in] 秘钥
             keylen  - [in] 秘钥长度 
             data    - [in] 输入数据
             datalen - [in] 输入数据长度
             mac     - [out] 输出HMAC值,32字节
    返    回:void
************************************************************************************/
void sm3_hmac(const uint8_t *key, size_t keylen,
              const uint8_t *data, size_t datalen,
              uint8_t mac[SM3_HMAC_SIZE]);

3 演示Demo

3.1 开发环境

  • GmSSL3.1.1

  • Visual Studio 2015

  • Windows 10 Pro x64

3.2 功能介绍

        演示程序主界面如下图所示,包括SM3-Hash和SM3-HMAC等功能。

        支持String(文本)、Hex(十六进制)、Base64等多种数据格式。

3.3 下载地址

        开发环境:

  • Windows 10 pro x64

  • Visual Studio 2015

  • GmSSL3.1.1

        下载地址: 国密算法SM3的GmSSL代码实现Demo

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值