一种针对SM4密码算法减轮故障分析检测方法技术

技术编号:33997136 阅读:22 留言:0更新日期:2022-07-02 11:10
本发明专利技术公开了一种针对SM4密码算法减轮故障分析检测方法,包括以下步骤:S1:对SM4密码算法前4轮的轮输出故障检测分析时,获取SM4密码算法前4轮的轮输出;S2:根据SM4密码算法前4轮的轮输出推出前4轮的轮密钥,根据SM4密钥扩展算法,逆向计算出初始密钥。采用上述分析方法不仅实现了针对SM4约减轮故障分析检测,而且降低还原完整密钥所需的次数,增强了检测效率和成功率。率和成功率。率和成功率。

【技术实现步骤摘要】
一种针对SM4密码算法减轮故障分析检测方法


[0001]本专利技术涉及密码算法分析检测领域,尤其涉及一种针对SM4密码算法减轮故障分析检测方法。

技术介绍

[0002]一般情况下,运行密码算法的硬件设备或软件程序均能正确地执行各种密码算法,但在有些情况下,密码密码运算模块可能会出现寄存器错误或运算错误,利用这些错误行为或者信息来恢复密钥的方法称为密码错误分析。密码设备大都基于电子技术实现,接口也相对简单,较易受到外界干扰,这使得故障错误分析已经成为最有效的旁路分析方法之一,也是检测机构和设计企业对密码产品安全检测的方法之一。
[0003]故障检测就是密码芯片的工作条件发生变化时,密码芯片加密产生了错误的输出,密码运算模块可能会出现寄存器错误或运算,利用这些错误行为或者信息来恢复密钥的方法称为密码错误分析。密码设备大都基于电子技术实现,接口也相对简单,较易受到外界干扰,这使得错误分析已经成为最有效的旁路分析方法之一,也是检测机构和设计企业对密码产品安全检测的方法之一。
[0004]SM4算法是分组长度和密钥长度均为128bit,加密算法和解密算法均为32轮的非线性迭代密码算法,其加密算法和解密算法结构相同,只是运算时轮密钥使用的顺序相反,解密轮密钥是加密轮密钥的逆序。SM4加密算法的详细流程如图1所示。
[0005]在图1中X
i
∈Z
232
(Z
2e
表示ebit的向量集(Z
2e
)),明文输入为(X0,X1,X2,X3),密文输出为(Y0,Y1,Y2,Y3),其中X
i
、X
i+1
、X
i+2
和X
i+3
为轮迭代运算函数F的输入,rk
i
∈Z
232
每轮的轮密钥,i∈{ 0,1,2,

,31}。
[0006]从加密的流程可以看出,轮迭代函数F包括的运算有异或、非线性变换τ和线性变换L,轮迭代函数的表达式为:X
i+4
=F(X
i
,X
i+1
,X
i+2
,X
i+3
,rk
i
)=X
i

T(X
i+1

X
i+2

X
i+3

rk
i
) ,在该表达式中,T表示合成置换,是由非线性变换τ和线性变换L复合而成,迭代函数F的详细的流程如图2所示,在整个SM4密码算法的加解密过程中,一共要执行32轮这样的轮迭代函数F。
[0007]令res
i
=T(X
i+1

X
i+2

X
i+3

rk
i
),则:X
i+4
=F(X
i
,X
i+1
,X
i+2
,X
i+3
,rk
i
)= X
i

T(X
i+1

X
i+2

X
i+3

rk
i
)变为:X
i+4
=F(X
i
,X
i+1
,X
i+2
,X
i+3
,rk
i
)= X
i

res
i
非线性变换τ是由4个并行S盒子构成,每个S盒子为固定的8bit输入8bit输出的置换,记为Sbox(.)。
[0008]设输入为A
i
=a
i,0
||a
i,1
||a
i,2
||a
i,3
=X
i+1

X
i+2

X
i+3

rk
i
,其中a
i,j
∈Z
232
,表示第i轮第j(j∈{0,1,2,3 })个S盒子的输入,||表示两个数据bit的拼接,输出为B
i
=b
i,0
||b
i,1
||b
i,2
||b
i,3
,b
i,j
表示第i轮、第j个S盒子的输出,则非线性变换τ为:B
i
=τ(A
i
)=Sbox(a
i,0
)||Sbox(a
i,1
)||Sbox(a
i,2
)||Sbox(a
i,3
)线性变换L的描述如下所示,
C
i
=L(B
i
)=B
i

(B
i
<<<2)

(B
i
<<<10)

(B
i
<<<18)

(B
i
<<<24)在该式中,C
i
∈Z
232
,B
i
∈Z
232
,C
i
为线性变换L的输出,B
i
为线性变换L的输入,同时也是非线性变换τ的输出。
[0009]SM4的密钥扩展算法:轮密钥由加密密钥通过密钥扩展算法生成,其结构与加密变换类似。设加密密钥为MK=(MK0,MK1, MK2, MK3),i=0,1,2,3。令K
i
∈Z
232
,i=0,1,

,35,轮密钥rk
i
∈Z
232
,i=0,1,

,31,则轮密钥生成方法如下式所示:(K0,K1, K2, K3)=( MK0⊕
FK0,MK1⊕
FK1, MK2⊕
FK2, MK3⊕
FK3)rk
i
=K
i+4
=K
i

T`( K
i+1

K
i+2

K
i+3

CK
i
)其中,T`变换与加密变换中的T变换基本相同,只是其中的线性变换L必须修改为以下L`:L

(B)=B

(B&lt;&lt;&lt;13)<本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种针对SM4密码算法减轮故障分析检测方法,其特征在于,所述方法包括以下步骤:S1:对SM4密码算法前4轮的轮输出故障检测时, 获取SM4密码算法前4轮的轮输出;S2:根据SM4密码算法前4轮的轮输出推出前4轮的轮密钥,根据SM4密钥扩展算法,逆向计算出初始密钥。2.根据权利要求1所述的针对SM4密码算法减轮故障分析检测方法,其特征在于,所述S1具体包括以下步骤:S11:选择故障分析检测的位置为前4轮,选择完成之后设定sum=4,集合R={2,3,4,5};S12:...

【专利技术属性】
技术研发人员:习伟姚浩兰天吴震杜之波王敏向春玲
申请(专利权)人:华大半导体有限公司成都信息工程大学成都芯安尤里卡信息科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1