采用派生密钥增强白盒SM4密码算法的方法及设备技术

技术编号:38589537 阅读:15 留言:0更新日期:2023-08-26 23:29
本发明专利技术公开一种采用派生密钥增强白盒SM4密码算法的方法,方法包括获取工作密钥和变换密钥,分别基于所述工作密钥和所述变换密钥生成第一轮密钥和第二轮密钥;对于每轮的所述第二轮密钥进行派生,生成每轮对应的派生密钥;基于第i轮的运算输入数据与第i轮对应的所述第一轮密钥,得到SM4算法的加密运算中T调用的第i轮输入,生成第i轮融合所述第一轮密钥的S盒;利用第i轮对应的所述派生密钥对第i轮生成的S盒、T调用的第i轮运算输入数据以及T调用的第i轮输出数据分别进行置乱操作,生成密文数据;本发明专利技术增加了白盒密码的冗余度、复杂性和安全性。安全性。安全性。

【技术实现步骤摘要】
采用派生密钥增强白盒SM4密码算法的方法及设备


[0001]本专利技术涉及密码应用
,具体涉及一种采用派生密钥增强白盒SM4密码算法的方法及设备。

技术介绍

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

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

技术实现思路

[0007]本专利技术所要解决的技术问题在于如何提升白盒密码算法中密钥的破解难度。
[0008]本专利技术通过以下技术手段解决上述技术问题的:一方面,本专利技术提出了一种采用派生密钥增强白盒SM4密码算法的方法,所述方法包括:获取工作密钥和变换密钥,分别基于所述工作密钥和所述变换密钥生成第一轮密钥和第二轮密钥;对于每轮的所述第二轮密钥进行派生,生成每轮对应的派生密钥;基于第i轮的运算输入数据与第i轮对应的所述第一轮密钥,得到SM4算法的加密运算中T调用的第i轮输入,生成第i轮融合所述第一轮密钥的S盒;利用第i轮对应的所述派生密钥对第i轮生成的S盒、T调用的第i轮运算输入数据
以及T调用的第i轮输出数据分别进行置乱操作,生成密文数据。
[0009]进一步地,所述工作密钥和所述变换密钥均由量子密钥分发网络生成。
[0010]进一步地,所述分别基于所述工作密钥和所述变换密钥生成第一轮密钥和第二轮密钥,包括:采用SM4算法的轮密钥生成算法对所述工作密钥进行扩展,生成每轮对应的所述第一轮密钥;采用SM4算法的轮密钥生成算法对所述变换密钥进行扩展,生成每轮对应的所述第二轮密钥。
[0011]进一步地,所述对于每轮的所述第二轮密钥进行派生,生成每轮对应的派生密钥,包括:基于每轮预置的随机数对每轮对应的所述第二轮密钥进行派生,生成每轮对应的派生密钥,公式表示为:pkey
i1
= HMAC_SM3(rk
i2
,salt
i1
||i||“parmeter derivation”);pkey
i2
= HMAC_SM3(pkey
i1
,salt
i2
||i||“parmeter derivation”||0);式中,salt
i1
、salt
i2
为第i轮预置的随机数,pkey
i1
、pkey
i2
为采用SM3密码杂凑算法生成的第i轮对应的派生密钥,rk
i2
为第i轮对应的所述第二轮密钥,||表示为串联,“parmeter derivation”为参与变换的固定字符串,HMAC_SM3表示使用SM3算法进行带密钥的杂凑运算HMAC。
[0012]进一步地,所述基于第i轮的运算输入数据与第i轮对应的所述第一轮密钥,得到SM4算法的加密运算中T调用的第i轮输入,生成第i轮融合所述第一轮密钥的S盒,包括:以X=X
i+1
X
i+2
X
i+3
=(a0,a1,a2,a3)作为SM4算法的加密运算中T调用的输入,令rk
i1
=(k
i0
,k
i1
,k
i2
,k
i3
),则有:;生成第i轮融合所述第一轮密钥的S盒为:S
ij
(x)=Sbox(xk
ij
);式中,X为运算输入数据,X
i+1
、X
i+2
、X
i+3
为第i轮运算输入数据包括的输入数据组,为异或操作,a0、a1、a2、a3为组成32比特X的4个8比特分量;rk
i1
为第i轮对应的所述第一轮密钥,k
i0
、k
i1
、k
i2
、k
i3
为所述第i轮对应的所述第一轮密钥包括的四个子密钥;T( )为合成置换函数,由线性变换L和非线性变换τ组成,Sbox( )代表标准S盒,x代表组成第i轮32比特X的4个8比特分量之一a
j
(j=0,1,2,3),k
ij
为第i轮4个子密钥之一k
ij
(j=0,1,2,3)。
[0013]进一步地,所述利用第i轮对应的所述派生密钥对第i轮生成的S盒、T调用的第i轮运算输入数据以及T调用的第i轮输出数据分别进行置乱操作,生成密文数据,包括:利用第i轮对应的所述派生密钥对第i轮生成的S盒进行置乱操作,得到第i轮S盒的查表结果;利用第i轮对应的所述派生密钥对T调用的第i轮运算输入数据X进行置乱操作,得到置乱后T调用的第i轮输入;利用第i轮对应的所述派生密钥,结合第i轮S盒的查表结果与第i轮运算输入数据包括的输入数据组X
i
,对T调用的第i轮输出数据进行置乱操作,生成所述密文数据。
[0014]进一步地,所述利用第i轮对应的所述派生密钥对第i轮生成的S盒进行置乱操作,得到第i轮S盒的查表结果,包括:
根据第i轮对应的所述派生密钥pkey
i1
,生成数组P
i
[32]=pkey
i1
+Rnd
i
,Rnd
i
为256比特位实时产生的随机数;根据所述数组,生成可逆矩阵E
ij
=P
i
[8j,8j+1,...,8j+7],j=0,1,2,3;利用所述可逆矩阵E
ij
对第i轮生成的j个S盒S
ij
进行置乱操作,则置乱后的S本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种采用派生密钥增强白盒SM4密码算法的方法,其特征在于,所述方法包括:获取工作密钥和变换密钥,分别基于所述工作密钥和所述变换密钥生成第一轮密钥和第二轮密钥;对于每轮的所述第二轮密钥进行派生,生成每轮对应的派生密钥;基于第i轮的运算输入数据与第i轮对应的所述第一轮密钥,得到SM4算法的加密运算中T调用的第i轮输入,生成第i轮融合所述第一轮密钥的S盒;利用第i轮对应的所述派生密钥对第i轮生成的S盒、T调用的第i轮运算输入数据以及T调用的第i轮输出数据分别进行置乱操作,生成密文数据。2.如权利要求1所述的采用派生密钥增强白盒SM4密码算法的方法,其特征在于,所述工作密钥和所述变换密钥均由量子密钥分发网络生成。3.如权利要求1所述的采用派生密钥增强白盒SM4密码算法的方法,其特征在于,所述分别基于所述工作密钥和所述变换密钥生成第一轮密钥和第二轮密钥,包括:采用SM4算法的轮密钥生成算法对所述工作密钥进行扩展,生成每轮对应的所述第一轮密钥;采用SM4算法的轮密钥生成算法对所述变换密钥进行扩展,生成每轮对应的所述第二轮密钥。4.如权利要求1所述的采用派生密钥增强白盒SM4密码算法的方法,其特征在于,所述对于每轮的所述第二轮密钥进行派生,生成每轮对应的派生密钥,包括:基于每轮预置的随机数对每轮对应的所述第二轮密钥进行派生,生成每轮对应的派生密钥,公式表示为:pkey
i1 = HMAC_SM3(rk
i2
,salt
i1
||i||“parmeter derivation”);pkey
i2 = HMAC_SM3(pkey
i1
,salt
i2
||i||“parmeter derivation”||0);式中,salt
i1
、salt
i2
为第i轮预置的随机数,pkey
i1
、pkey
i2
为采用SM3密码杂凑算法生成的第i轮对应的派生密钥,rk
i2
为第i轮对应的所述第二轮密钥,||表示为串联,“parmeter derivation”为参与变换的固定字符串,HMAC_SM3表示使用SM3算法进行带密钥的杂凑运算HMAC。5.如权利要求1所述的采用派生密钥增强白盒SM4密码算法的方法,其特征在于,所述基于第i轮的运算输入数据与第i轮对应的所述第一轮密钥,得到SM4算法的加密运算中T调用的第i轮输入,生成第i轮融合所述第一轮密钥的S盒,包括:以X = X
i+1
X
i+2
X
i+3 =(a0,a1,a2,a3)作为SM4算法的加密运算中T调用的输入,令rk
i1
=(k
i0
,k
i1
,k
i2
,k
i3
),则有:;生成第i轮融合所述第一轮密钥的S盒为:S
ij
(x)= Sbox (xk
ij
);式中,X为运算输入数据,X
i+1
、X
i+2
、X
i+3
为第i轮运算输入数据包括的输入数据组,为异或操作,a0、a1、a2、a3为组成32比特X的4个8比特分量;rk
i1
为第i轮对应的所述第一轮密钥,k
i0
、k
i1
、k
i2
、k
i3
为所述第i轮对应的所述第一轮密钥包括的四个子密钥;T( )为合成置换函数,由线性变换L和非线性变换τ组成,Sbox ( )代表标准S盒,x代表组成第i轮32比特X的4个8比特分量之一a
j
,k
ij
为第i轮4个子密钥之一,j=0,1,2,3。
6.如权利要求1所述的采用派生密钥增强白盒SM4密码算法的方法,其特征在于,所述利用第i轮对应的所述派生密钥对第i轮生成的S盒、T调用的第i轮运算输入数据以及T调用的第i轮输出数据分别进行置乱操作,生成密文数据,包括:利用第i轮对应的所述派生密钥对第i轮生成的S盒进行置乱操作,得到第i轮S盒的查表结果;利用第i轮对应的所述派生密钥对T调用的第i轮运算输入数据X进行置乱操作,得到置乱后T调用的第i轮输入;利用第i轮对应的所述派生密钥,结合第i轮S盒的查表结果与第i轮运算输入数据包括的输入数据组X
i
,对T调用的第i轮输出数据进行置乱操作,生成所述密文数据。7.如权利要求6所述的采用派生密钥增强白盒SM4密码算法的方法,其特征在于,所述利用第i轮对应的所述派生密钥对第i轮...

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

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

1