国密算法成员介绍

描述

随着信息化技术的飞速发展,信息安全问题已经影响到日常生活甚至国家安全。摆脱对国外技术和产品的过度依赖,建设行业网络安全环境,增强行业信息系统的“安全可控”能力显得尤为必要和迫切,国家有关机构站在国家安全和长远战略的高度提出了推动国密算法应用实施、加强行业安全可控的要求。

极海APM32F407系列MCU,结合当前环境要求,设计出了支持国密算法(SM2,SM3,SM4)的IP, 符合国家密码管理局认定和公布的密码算法标准及其应用规范,并凭借显著的性能优势,已应用至新能源、工业控制、医疗设备等众多领域。

 国密算法成员介绍 ·

     国密算法(国家商用密码算法),是国家密码管理局指定的自主可控的国产算法,包含SM1,SM2,SM3,SM4,SM7,SM9,ZUC(祖冲之算法)等。

 

SM1

分组加密算法(算法不公开),安全保密强度跟 AES 相当,仅以IP核的形式存在于芯片中,需要通过加密芯片的接口进行调用。

 

SM2

非对称加密算法(算法公开),基于椭圆曲线密码(ECC)的公钥密码算法标准,适用签名/验签,加解密,密钥交换,信息加密,登录认证等。可替代RSA/DH/ECDSA/ECDH等国际算法。

 

SM3

是一种密码杂凑算法,其算法公开。适用于数字签名和验证、消息认证码的生成与杂凑算法(算法公开),适用数字签名/验证、消息认证码的生成/验证,以及随机数摘要的生成,可满足电子认证服务系统等应用需求。可替代MD5/SHA-1/SHA-2等国际算法。验证以及随机数的生成,可以满足电子认证服务系统等应用需求。用于替代MD5/SHA-1/SHA-2等国际算法。

 

SM4

是一种分组加密算法,其算法公开。是我国自主设计的分组对称对称加密(算法公开),我国自主设计的分组对称密码算法,与AES算法具有相同的密钥长度、分组长度,即128bit,适用无线区域网标准。可替代DES/AES等国际算法。密码算法,与AES算法具有相同的密钥长度、分组长度,都是128bit。用于替代DES/AES等国际算法。

 

SM7

分组加密算法(算法不公开)。适用于非接IC卡应用包括身份识别类应用,票务类应用,支付与通卡类应用。

 

SM9

基于标识的非对称密码算法(算法公开)。加密强度等同于3072位密钥的RSA加密算法,适用与身份认证(云技术,电子邮件,智能终端,互联网等),可替代基于数字证书的PKI/CA体系。

 

ZUC

流加密算法,可适用于3GPP LTE通信中的加解密。

 

 对称加密与非对称加密 ·

     

对称加密:指信息的发送方和接收方采用同一个密钥去进行数据的加密和解密。

mcumcu非对称加密:指需要两个不同的密钥(公开密钥public key、私有密钥private key)进行加解密,如果用公开密钥对数据进行加密,只有对应的私有密钥才能解密;如果用私有密钥对数据进行加密,那么只有对应的公开密钥才能解密。mcumcu

 

 SM2/SM3/SM4 ·

     

 

在物联网和信息安全领域,主要使用SM2,SM3,SM4对设备进行验证、签名、加密通信,从而实现完整数据的安全传输。极海APM32F407通过软硬结合的方式实现了上述三种国密算法。

 

SM2详解

基于《SM2椭圆曲线公钥密码算法》由软件设计实现。

 

功能特性

抗攻击性强、CPU占用少、内存占用少、网络消耗低、加密速度快。

 

 

SM2

RSA

算法结构

基本椭圆曲线(ECC)

基于特殊的可逆模幂运算

计算复杂度

完全指数级

亚指数级

公钥位数

256bit

2048bit

秘钥生成速度

较RSA算法快百倍以上

解密加密速度

较快

一般

 

安全性:ECC算法的单位安全强度远高于RSA算法,可用较少的计算能力提供比RSA算法更高的安全强度,而所需的密钥长度却远比RSA算法低。目前基于ECC的SM2 证书普遍采用256位密钥长度,加密强度等同于 3072 位 RSA证书,远高于业界普遍采用的2048位RSA证书。此外,为了提高安全强度必须不断增加密钥长度,ECC算法密钥长度增长速度较慢,而RSA算法密钥长度则需呈倍数增长。

对称秘钥长度(bit)

ECC秘钥长度(bit)

RSA秘钥长度(bit)

保密

年限

80

160

1024

2010

122

224

2048

2030

128

256

3072

2040

192

384

7680

2080

256

512

15360

2120

 

高效性:

在TLS握手过程中,更长的密钥意味着必须来回发送更多数据以验证连接,产生更大性能损耗和时间延迟。因此,ECC算法能够以较小的密钥和较少的数据传递建立HTTPS连接,确保相同安全强度的前提下提升连接速度。

 

函数描述

函数

描述

SM2_Cinfig

初始化ECC算法参数,执行其余函数前必须配置此函数。

SM2_Gen_KeyPair

生成一对密钥,公钥(32Bytes)和私钥(64Bytes)

SM2_Encryption

加密明文(1-2048 Bytes),生成密文,输出为:(04 || C1 || C2 || C3).

SM2_Decryption

解密密文(98-2145 Bytes),生成明文。

SM2_Preprocess

签名预处理,输入Message and ID,生成 e: pointer to the H256.

SM2_Signature

签名,输入e值,生成signature.R(32Bytes)signature.S(32Bytes)

SM2_Verify

验签,返回验签结果(SM2_VERIFY_SUCESS)

注:

1. 密文输出顺序为 C1,C2,C3(旧标准),C1,C3,C2(新标准GM/T 0009-2012)。

2. 04为压缩标识(1Byte),C1为公钥xy分量(64Bytes),C2为加密数据(与明文长度一致),C3为摘要值(32Bytes)。

 

性能描述

芯片型号:APM32F407IGT6

验证平台:Keil_V5.29

验证方法:循环执行1000次

驱动版本:APM32F4xx_SM_DriverV1.0

操作

明文长度(Byte)

时间(s)

平均时间(ms)

SM2_Gen_KeyPair

2048

3.89465367

3.89

SM2_Encryption

2048

0.21780688

0.21

SM2_Decryption

2048

22.01989933

22

SM2_Preprocess

2048

1.73319654

1.7

SM2_Signature

2048

4.10555868

4.1

SM2_Verify

2048

7.90497210

7.9

注:该性能数据由极海实验室获得。

 

SM3详解

基于GM/T0004-2012《SM3密码杂凑算法》由硬件设计实现。

 

功能特性

在商用密码体系中,SM3主要用于数字签名及验证、消息认证码生成及验证、随机数生成等,其安全性及效率与 SHA-256 相当。

 

 

消息长度(bit)

块大小(bit)

RSA秘钥长度(bit)

摘要长度(bit)

SHA-1

<2^64

512

32

160

SHA-224

<2^64

512

32

224

SHA-256

<2^64

512

32

256

SM3

<2^64

512

32

256

SHA-384

<2^128

1024

64

384

SHA-512

<2^128

1024

64

512

SHA-512/224

<2^128

1024

64

224

SHA-512/256

<2^128

1024

64

256

 

函数描述

函数

描述

SM3_Config

初始化SM3参数,初始化模式(IVinit),存储模式(endian)

SM3_Update

更新SM3计算值(内部调用,仅SM2使用)

SM3_Final

计算最后信息块(内部调用,仅SM2使用)

SM3_Calc

输入:消息,输出:摘要值(32Bytes)

 

性能描述

芯片型号:APM32F407IGT6

验证平台:Keil_V5.29

验证方法:循环执行1000次

驱动版本:APM32F4xx_SM_DriverV1.0

操作

明文长度(Byte)

时间(s)

平均时间(ms)

SM3_Calc

512

0.36011912

0.36

SM3_Calc

1024

0.53363102

0.53

SM3_Calc

2048

0.88014293

0.88

SM3_Calc

4096

1.57265483

1.57

注:该性能数据由极海实验室获得。

 

SM4详解

基于GM/T0002-2012《SM4分组密码算法》由硬件设计实现。

 

功能特性

该算法的分组长度为128bits,密钥长度为128bits。与DES和AES算法类似,加密算法与密钥扩展算法都采用32轮非线性迭代结构。

 

 

SM4

DES

算法结构

基本轮函数加迭代,包含非线性变换。

使用标准的算术和逻辑运算,先代替后置换,不包含非线性变换。

计算轮数

32轮

16轮(TDES 16轮*3)

秘钥长度

128bit

64bit(TDES 128bit)

实现性能

软件和硬件实现都快

软件实现慢,硬件实现快。

安全性

较高

较低(TDES 较高)

 

加解密模式

功能

描述

ECB

电子密码本模式

每个明文块对应固定的密文块。

优点:并行运算,速度快,易标准化,适合短数据加密。

缺点:不能隐藏数据格式,抗攻击性弱(重放,替换,删除)

CBC

密码分组链接模式

每个明文快与前一个密文块异或后再进行加密。

优点:隐藏数据格式,抗攻击性强,适合报文完整性和用户身份认证。

缺点:不能并行加密,易出现错误传播。

 

ECB(Electronic Codebook)mcuCBC(Cipher Block Chaining)mcu

 

函数描述

函数

描述

SM4_ECB 

ECB加解密模式,输入明文长度必须为128bits倍数,无IV参数。

SM4_CBC

CBC加解密模式,输入明文长度必须为128bits倍数,IV参数为16 Bytes。

注:

1.  IV:初始化向量(Initialization Vector) 使用 CBC 模式时需输入该参数。

2.  由于加密第一个明文分组时,不存在前一个密文分组,所以要事先准备好一个分组长度的 IV 变量来替代前一个密文分组。

 

性能描述

芯片型号:APM32F407IGT6

验证平台:Keil_V5.29验证方法:循环执行1000次

驱动版本:APM32F4xx_SM_DriverV1.0

操作

明文长度(Byte)

时间(s)

平均时间(ms)

SM4_ECB_Encryption

256

0.05038697

0.05

SM4_ECB_Decryption

256

0.05357748

0.05

SM4_CBC_Encryption

256

0.05200602

0.05

SM4_CBC_Decryption

256

0.05523221

0.05

SM4_ECB_Encryption

1024

0.18686316

0.18

SM4_ECB_Decryption

1024

0.21655959

0.21

SM4_CBC_Encryption

1024

0.18520844

0.18

SM4_CBC_Decryption

1024

0.21491673

0.21

注:该性能数据由极海实验室获得。

 

审核编辑 :李倩

 


打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分