增强白盒SM4密码算法安全性的方法、设备及系统技术方案

技术编号:39131668 阅读:11 留言:0更新日期:2023-10-23 14:51
本发明专利技术公开一种增强白盒SM4密码算法安全性的方法、设备及系统,包括获取密钥组,所述密钥组中的一个密钥作为工作密钥,其余密钥作为变换密钥;基于所述工作密钥对SM4密码算法的S盒进行变换,形成若干与所述工作密钥相关的派生S盒;基于所述密钥组中的变换密钥生成与所述变换密钥数量相同的轮密钥组;基于所述轮密钥组和所述派生S盒,在每一轮SM4算法的加密运算中对运算输入数据进行处理,生成与所述轮密钥组相关的密文数据;本发明专利技术从复杂度和信息冗余度上提升了白盒密码算法的破解难度。余度上提升了白盒密码算法的破解难度。余度上提升了白盒密码算法的破解难度。

【技术实现步骤摘要】
增强白盒SM4密码算法安全性的方法、设备及系统


[0001]本专利技术涉及密码应用
,具体涉及一种增强白盒SM4密码算法安全性的方法、设备及系统。

技术介绍

[0002]在白盒攻击环境(White

Box Attack Context)中,软件的执行过程对攻击者完全可见,运行在这种环境中的密码软件如果没有对密钥进行特殊的保护,攻击者通过观察或者执行密码软件很容易就可以获得密钥信息。白盒密码就是针对这种情况提出来的,其目的是为了在白盒攻击环境里保护密钥,将密钥信息隐藏在密码软件的执行过程中,防止攻击者在白盒攻击环境中抽取出密钥。目前的大多数SM4白盒密码算法实现,是将扩展和派生后的轮密钥和S盒结合,并进行一定的输入输出变换,将密钥信息隐藏在查表过程中。比如公布号为CN115996113A的专利申请文献中提出将国产分组密码算法SM4以新的查找表技术进行白盒化,并采用国产密码算法SM3进行查找表数据完整性校验以防篡改。而公布号为CN115348101A的专利申请文献中提出利用混沌序列来动态构造S盒、系统参数和固定参数,通过对S盒的内容进行变化来降低数据传输过程中降低被破译的风险。但这些实现存在一定的问题:
[0003](1)只有一支对称密钥参与白盒密码算法的生成过程,复杂度不高,信息冗余度较低,攻击难度较小。
[0004](2)由于S盒以及查表信息都是可以获取的,所以存在一定的密钥析出风险。
[0005](3)和密钥一样,白盒密码算法代码也需要分发,由于数据量较大,分发过程存在风险。

技术实现思路

[0006]本专利技术所要解决的技术问题在于如何从复杂度和信息冗余度上提升白盒密码算法的破解难度。
[0007]本专利技术通过以下技术手段解决上述技术问题的:
[0008]第一方面,本专利技术提出了一种增强白盒SM4密码算法安全性的方法,所述方法包括:
[0009]获取密钥组,所述密钥组中的一个密钥作为工作密钥,其余密钥作为变换密钥;
[0010]基于所述工作密钥对SM4密码算法的S盒进行变换,形成若干与所述工作密钥相关的派生S盒;
[0011]基于所述密钥组中的变换密钥生成与所述变换密钥数量相同的轮密钥组;
[0012]基于所述轮密钥组和所述派生S盒,在每一轮SM4算法的加密运算中对运算输入数据进行处理,生成与所述轮密钥组相关的密文数据。
[0013]进一步地,所述工作密钥和所述变换密钥为量子密钥分发网络生成并在全域同步的新鲜密钥。
[0014]进一步地,所述基于所述工作密钥对SM4密码算法的S盒进行变换,形成若干与所述工作密钥相关的派生S盒,包括:
[0015]令所述工作密钥K0=(K
00
,K
01
,K
02
,K
03
),K
0v
=(k
0v0
,k
0v1
,k
0v2
,k
0v3
),对任意变量x,有:
[0016]Sbox
vu
(x)=Sbox(x

k
0vu
)u=0,1,2,3,v=0,1,2,3
[0017]式中,K
00
、K
01
、K
02
、K
03
为组成所述工作密钥的四个一级子密钥;k
0v0
、k
0v1
、k
0v2
、k
0v3
为组成第v个一级子密钥的二级子密钥;x为组成运算输入数据的分量之一;k
0vu
为第v个一级子密钥的第u个二级子密钥;Sbox()表示标准S盒;Sbox
vu
()表示基于k
0vu
得到的派生S盒;

表示异或操作。
[0018]进一步地,所述基于所述轮密钥组和所述派生S盒,在每一轮SM4算法的加密运算中对运算输入数据进行处理,生成与所述轮密钥组相关的密文数据,包括:
[0019]令SM4算法每轮加密运算的输入数据为(X
j
,X
j+1
,X
j+2
,X
j+3
),X
j+1
、X
j+2
、X
j+3
为输入数据包括的输入数据组,以运算输入数据X=X
j+1 X
j+2 X
j+3
=(a0,a1,a2,a3)作为每轮加密运算中T调用的输入,a0、a1、a2、a3为组成运算输入数据X的4个分量,令rk
ji
=(k
ji0
,k
ji1
,k
ji2
,k
ji3
),其中,rk
ji
为第i个所述变换密钥所对应的第j个轮密钥组,k
ji0
、k
ji1
、k
ji2
、k
ji3
为组成轮密钥组rk
ji
的二级轮密钥,i=1,2,3,4,j=0,1,2,

,31;
[0020]将第j轮的一次T调用增加为4次T类型调用,对运算输入数据进行处理,公式表示为:
[0021]T4(T3(T2(T1(X rk
j1
) rk
j2
) rk
j3 rk
j4
)
[0022]式中,rk
j1
、rk
j2
、rk
j3
、rk
j4
为不同所述变换密钥对应的第j个轮密钥组;T1()、T2()、T3()、T4()均为合成置换函数,且合成置换函数中的非线性变换τ与所述派生S盒相关; 为异或操作。
[0023]进一步地,所述合成置换函数T1()、T2()、T3()、T4()的公式表示为:
[0024]T1(X rk
j1
)=L(τ1(X rk
j2
))=L(Sbox
00
(a
0 k
j10
),Sbox
01
(a
1 k
j11
),Sbox
02
(a
2 k
j12
),Sbox
03
(a
3 k
j13
))
[0025]生成则T1()变换为:
[0026]T1(X rk
j1
)=L(S
j00
(a0),S
j01
(a1),S
j02
(a2),S
j03
(a3));
[0027]T2(X rk
j2
)=L(τ2(X rk
...

【技术保护点】

【技术特征摘要】
1.一种增强白盒SM4密码算法安全性的方法,其特征在于,所述方法包括:获取密钥组,所述密钥组中的一个密钥作为工作密钥,其余密钥作为变换密钥;基于所述工作密钥对SM4密码算法的S盒进行变换,形成若干与所述工作密钥相关的派生S盒;基于所述密钥组中的变换密钥生成与所述变换密钥数量相同的轮密钥组;基于所述轮密钥组和所述派生S盒,在每一轮SM4算法的加密运算中对运算输入数据进行处理,生成与所述轮密钥组相关的密文数据。2.如权利要求1所述的增强白盒SM4密码算法安全性的方法,其特征在于,所述工作密钥和所述变换密钥为量子密钥分发网络生成并在全域同步的新鲜密钥。3.如权利要求1所述的增强白盒SM4密码算法安全性的方法,其特征在于,所述基于所述工作密钥对SM4密码算法的S盒进行变换,形成若干与所述工作密钥相关的派生S盒,包括:令所述工作密钥K0=(K
00
,K
01
,K
02
,K
03
),K
0v
=(k
0v0
,k
0v1
,k
0v2
,k
0v3
),对任意变量x,有:Sbox
vu
(x)=Sbox(x

k
0vu
)u=0,1,2,3,v=0,1,2,3式中,K
00
、K
01
、K
02
、K
03
为组成所述工作密钥的四个一级子密钥;k
0v0
、k
0v1
、k
0v2
、k
0v3
为组成第v个一级子密钥的二级子密钥;x为组成运算输入数据的分量之一;k
0vu
为第v个一级子密钥的第u个二级子密钥;Sbox()表示标准S盒;Sbox
vu
()表示基于k
0vu
得到的派生S盒;

表示异或操作。4.如权利要求1所述的增强白盒SM4密码算法安全性的方法,其特征在于,所述基于所述轮密钥组和所述派生S盒,在每一轮SM4算法的加密运算中对运算输入数据进行处理,生成与所述轮密钥组相关的密文数据,包括:令SM4算法每轮加密运算的输入数据为(X
j
,X
j+1
,X
j+2
,X
j+3
),X
j+1
、X
j+2
、X
j+3
为输入数据包括的输入数据组,以运算输入数据X=X
j+1 X
j+2 X
j+3
=(a0,a1,a2,a3)作为每轮加密运算中T调用的输入,a0、a1、a2、a3为组成运算输入数据X的4个分量,令rk
ji
=(k
ji0
,k
ji1
,k
ji2
,k
ji3
),其中,rk
ji
为第i个所述变换密钥所对应的轮密钥组,k
ji0
、k
ji1
、k
ji2
、k
ji3
为组成轮密钥rk
ji
的一级轮密钥,i=1,2,3,4,j=0,1,2,

,31;将第j轮的一次T调用增加为4次T类型调用,对运算输入数据进行处理,公式表示为:T4(T3(T2(T1(X rk
j1
)rk
j2
)rk
j3 rk
j4
)式中,rk
j1
、rk
j2
、rk
j3
、rk
j4
为不同所述变换密钥对应的轮密钥组;T1()、T2()、T3()、T4()均为合成置换函数,且合成置换函数中的非线性变换τ与所述派生S盒相关;为异或操作。5.如权利要求4所述的增强白盒SM4密码算法安全性的方法,其特征在于,所述合成置换函数T1()、T2()、T3()、T4()的公式表示为:T1(X rk
j1
)=L(τ1(X rk
j2
))=L(Sbox
00
(a
0 k
j10
),Sbox
01
(a
1 k
j11
),Sbox
02
(a
2 k
j12
),Sbox
03
(a
3 k
j13
))生成则T1()变换为:T1(X rk
j1
)=L(S
j00
(a0),S
j01
(a1),S
j02
(a2),S
j03
(a3));T2(X rk
j2
)=L(τ2(X rk
j2
))=L(Sbox
10
(a
0 k
j20
),Sbox
11
(a
1 k
j21
),Sbox
12
(a2k
j22
),Sbox
13
(a
3 k
j23
))
生成则T2()变换为:T2(X rk
j2
)=L(S
j10
(a0),S
j11
(a1),S
j12
(a2),S
j13
(a3));T3(X rk
j3
)=L(τ3(X rk
j3
))=L(Sbox
20
(a
0 k
j30
),Sbox
21
(a
1 k
j31
),Sbox
22
(a2k
j32
),Sbox
23
(a
3 k
j33
))生成则T3()变换为:T3(X rk
j3
)=L(S
j20
(a0),S<...

【专利技术属性】
技术研发人员:罗俊
申请(专利权)人:中电信量子科技有限公司
类型:发明
国别省市:

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

1