国密算法成员介绍

随着信息化技术的飞速发展,信息安全问题已经影响到日常生活甚至国家安全。摆脱对国外技术和产品的过度依赖,建设行业网络安全环境,增强行业信息系统的“安全可控”能力显得尤为必要和迫切,国家有关机构站在国家安全和长远战略的高度提出了推动国密算法应用实施、加强行业安全可控的要求。
极海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通信中的加解密。
对称加密与非对称加密 ·
      对称加密:指信息的发送方和接收方采用同一个密钥去进行数据的加密和解密。
非对称加密:指需要两个不同的密钥(公开密钥public key、私有密钥private key)进行加解密,如果用公开密钥对数据进行加密,只有对应的私有密钥才能解密;如果用私有密钥对数据进行加密,那么只有对应的公开密钥才能解密。  
 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)cbc(cipher block chaining)  
函数描述
函数
描述
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
注:该性能数据由极海实验室获得。


基于云分析的智能交通大数据架构解决方案
佳能发布的混合式取景器有很好的实用性
低功耗蓝牙模块在医疗保健领域中的创新应用
因价格优势,NVIDIA重新拥抱三星
彪悍的雪地车概念设计 雪地中无畏冲锋
国密算法成员介绍
涂鸦Wi-Fi和BLE SoC开发幻彩灯带(5)----烧录授权
ST推出全球首款采用全非接触式测试技术晶圆
西部数据立足HDD革新,助力企业制胜可持续数字化未来
政府机构的变革性IT战略
5G+计算将构筑无处不在的端边云协同计算形态
雷达数字中频收发器的物理特性
为什么监管机构对数字货币的态度日趋强硬
2024 年最重要的10个人工智能趋势,每个人都必须做好准备
开关电源EMI差模信号等效电路
浅谈精简版安灯系统
基于二维弹道修正引信的卫星定位信号接收机的关键技术及设计
易成新能切入锂电池制造环节 电池材料未达预期
linux的常用命令
关于智能本的ESD保护和防雷击保护设计指引