详解SM4|我国SM4密码算法被纳入国际标准

安全侠2021-07-23 18:50:13

SM4算法被纳入国际标准

2021年6月25日,我国SM4分组密码算法作为国际标准ISO/IEC 18033-3:2010/AMD1:2021《信息技术 安全技术 加密算法 第3部分:分组密码 补篇1:SM4》,由国际标准化组织ISO/IEC正式发布。

SM4作为ISO/IEC标准发布标志着我国商用密码算法国际标准体系进一步完善,展现了我国先进的密码科技水平和国际标准化能力,对提升我国商用密码产业发展、推动商用密码更好服务“一带一路”建设具有重要意义。

我国密码算法国际标准化进程

    《密码法》第二十三条第一款规定:国家推动参与商用密码国际标准化活动,参与制定商用密码国际标准,推进商用密码中国标准与国外标准之间的转化运用。

    我国高度重视商用密码国际标准化工作,大力推进以我国自主设计研制的SM系列密码算法为代表的中国商用密码标准纳入国际标准,积极参与国际标准化活动,加强国际交流合作。

01

   2011年9月,我国设计的祖冲之(ZUC)算法纳入国际第三代合作伙伴计划组织(3GPP)的4G移动通信标准,用于移动通信系统空中传输信道的信息加密和完整性保护,这是我国密码算法首次成为国际标准。

  2017年,SM2和SM9数字签名算法正式成为ISO/IEC国际标准。

   2018年,SM3算法正式成为ISO/IEC国际标准。

   2020年4月,ZUC序列密码算法正式成为ISO/IEC国际标准。

   2021年2月,SM9标识加密算法正式成为ISO/IEC国际标准。

   2021年6月,SM4分组密码算法正式成为ISO/IEC国际标准。

02

我国商用密码国际标准体系已初步成型,为密码在全球范围的发展与应用提供了中国方案,贡献了中国智慧。

SM4加密算法详解

1、SM4分组密码算法概述

(1)SM4密码算法是我国自主设计的分组对称密码算法,用于实现数据的加密/解密运算,以保证数据和信息的机密性。

(2)该算法的分组长度为128比特,密钥长度为128比特。

(3)加密算法与密钥扩展算法都采用32轮非线性迭代结构。

(4)SM4通过加密密钥生成轮密钥,通过轮密钥进行加解密运算。

(5)数据解密和数据加密的算法结构相同,只是轮密钥的使用顺序相反,解密轮密钥是加密轮密钥的逆序。

2、SM4分组密码算法优点

   SM4 算法具有安全高效的特点,在设计和实现方面具有以下优势:

① 在设计上实现了资源重用,密钥扩展过程和加密过程类似。

② 加密过程与解密过程相同,只是轮密钥使用顺序正好相反,它不仅适用于软件编程实现,更适合硬件芯片实现。 

③ 轮变换使用的模块包括异或运算、8比特输入8比特输出的S盒,还有一个32比特输入的线性置换,非常适合 32 位处理器的实现。 

    通过对 SM4 密码算法的安全性分析结果表明:SM4 算法的 S 盒设计具有较高的安全特性,线性置换的分支数达到了最优,可以抵抗差分分析、线性分析、代数攻击等密码分析方法。    

    在安全性上,SM4 算法的密钥长度是 128 比特,其安全性与 AES-128 是相当的(AES还支持更高的安全强度)。在实现效率方面,由于SM4 密钥扩展和加密算法基本相同,且解密时可以使用同样的程序,只需将密钥的顺序倒置即可,因此 SM4 算法实现起来较为简单;而AES算法的加密算法与解密算法不一致,实现起来更复杂一些。

3、SM4预备知识

3.1 SM4术语解释

1:字与字节:字节是内存的基本单位,一个字节由8个比特组成,一个字等于4个字节,由32个比特组成。

2:⊕:32比特异或运算

3:<<<i:循环左移i比特运算

4:s盒:固定的8比特输入8比特输出置换,记为Sbox(.)。

输入“EF”,则经S盒后的值为表中第E行和第F列的值,Sbox(EF)=84

3.2轮函数F

    采用非线性迭代结构,以字为单位进行加密运算,称一次迭代运算为一轮变换。轮函数F为:


3.3合成置换T

   T:从一个字转换为另一个字,是一个可逆变换,由非线性变换τ和线性变换L复合而成,即T(.)=L(τ(.))。

(1)非线性变换τ:τ由4个并行的S盒构成。设输入为A=(a0,a1,a2,a3),其中a0,a1,a2,a3均为字节类型,输出为B=(b0,b1,b2,b3),其中b0,b1,b2,b3均为字节类型,则:

    非线性就是离散的,无规律的,没有公式可以描述的。

(2)线性变换L:非线性变换τ的输出是线性变换L的输入。设输入为B,B是一个字,输出为C,C是一个字,则:

4、加解密算法

    定义反序变换R为:R(A0,A1,A2,A3)=(A3,A2,A1,A0)。所有A均为字,即:unsigned int。

    设明文输入为(X0,X1,X2,X3),所有Xi均属于字,整体为一个具有4个元素的字数组,密文输出为(Y0,Y1,Y2,Y3),所有Yi均属于字,整体为一个具有4个元素的字数组,轮密钥为rk0,rk1,rk2...rk31,所有rki均属于字,整体为一个具有32个元素的字数组。

    则本算法的加密变换为:

    i的取值0,1,2...31

    算法的解密变换与加密变换结构相同,不同的仅是轮密钥的使用顺序。

    加密时轮密钥的使用顺序为:(rk0,rk1,..., rk31);

    解密时轮密钥的使用顺序为:(rk31,rk30,..., rk0)

5、密钥扩展算法

    本算法中加密算法的轮密钥由加密密钥通过密钥扩展算法生成。

    加密密钥MK=(MK0,MK1,MK2,MK3),MKi均属于32比特的字,i=0,1,2,3;

    令Ki属于32比特的字,i=0,1,…, 35,轮密钥为rki属于32比特的字,i=0,1,2...31。则轮密钥生成方法为:

    首先,

    然后对i=0,1,2,...,31:

(1)T’变换与加密算法轮函数中的T基本相同,只将其中的线性变换L修改为以下L’:

(2)系统参数FK的取值,采用16进制表示为:FK0=(A3B1BAC6), FK1=(56AA3350), FK2=(677D9197), FK3=(B27022DC)

(3)固定参数CK的取值方法为:设ck(i,j)为CKi的第j字节(i=0,1,...,31; j=0,1,2,3),即Cki=(ck(i,0), ck(i,1), ck(i,2), ck(i,3)),四个元素均为字节。则ck(i,j)=(4i+j)x7 (mod 256)。32个固定参数CKi详见GB/T 32907-2016《信息安全技术 SM4分组密码算法》。

加密芯片密码算法
本作品采用《CC 协议》,转载必须注明作者和本文链接
很早以前就从影视作品中看到这样的一幕--美国总统、国务卿、参谋长等高官坐在五角大楼办公室里面,现场指挥飞机用导弹攻击地面目标,同时直观看到攻击后的结果,然后一起开心鼓掌微笑···。现实中真的能做到还是仅仅存在于电影电视作品?通过仔细分析美军现役密码装备特点与设计实现思路, 可以确信美军真的能做到, 美军 C5ISR 真的就是这样设计的,美军是如何做到的?值得我们分析分析。
通过上述层层保护的结构,满足了密钥管理中的“分层结构,逐层保护”的安全原则。高安全等级密码模块密钥体系GB/T 37092中的密码模块安全等级安全一级安全一级提供了最低等级的安全要求,对非入侵式攻击测试没有要求。安全四级安全四级是本标准中的最高安全等级。
作为一名一直奋战在第一线的网络安全从业人员,作者始终对于一些新业务方向和市场发展保持高度关注。近一段时间以来,特别对商用密码应用安全性评估(简称“密评”)涉及的政策文件、法律法规、技术标准、产品技术、解...
“及时发现、修复漏洞对车联网安全至关重要。其中,身份认证成为影响车联网安全的关键因素。”
分析了国内外物联网安全政策、技术、标准、产业等形势,重点强调了当前我国物联网发展中存在的安全风险,包括大连接环境下的设备风险、物联网网络本身安全风险以及物联网上承载的各类应用安全风险,提出了打造以密码为核心的物联网安全体系 , 加速新技术在物联网安全的应用,以新基建为契机建立物联网领域安全设备泛在化部署新体系,以多层次立体式理念确保物联网安全,呼吁供给侧需求侧建立安全协同新机制,共同促进物联网产业
当前无人机已在军民多个领域广泛使用,发挥着巨大作用。然而,无人机系统作为一个完整的物理信息系统,暴露在不受控的使用环境中,面临着严重的安全威胁。因此,分析无人机系统面临的主要安全威胁,针对无人机及其网络的分布式和移动特性,设计了集无人机平台安全、无线网络安全、应用控制安全、安全保密运维与支撑于一体的无人机系统安全保密体系架构,同时论述了涉及的关键技术,可为无人机安全防护整体解决方案提供借鉴。
在当前迅猛发展的信息化时代,信息数据已经成为核心资产,个人隐私与数据安全越来越受到重视。不管是个人、企业还是国家,都高度关注个人隐私和数据安全保护工作。若要在最大程度上保障数据隐私和安全,采用安全芯片是一种行之有效的手段。
以网络安全为代表的非传统安全威胁持续蔓延,使得网络空间安全风险叠加倍增,威胁挑战日益严峻,安全形势不容乐观。为贯彻落实法律要求,国家密码管理局发布了《商用密码应用安全性评估试点机构目录》,在全国范围遴选了一批优质技术服务资源,支撑商用密码应用安全性评估工作加快实施。
安全侠
暂无描述