增强白盒SM4密码算法安全性的方法、设备及系统与流程

文档序号:35778731发布日期:2023-10-21 13:59阅读:56来源:国知局
增强白盒SM4密码算法安全性的方法、设备及系统与流程

本发明涉及密码应用,具体涉及一种增强白盒sm4密码算法安全性的方法、设备及系统。


背景技术:

1、在白盒攻击环境(white-box attack context)中,软件的执行过程对攻击者完全可见,运行在这种环境中的密码软件如果没有对密钥进行特殊的保护,攻击者通过观察或者执行密码软件很容易就可以获得密钥信息。白盒密码就是针对这种情况提出来的,其目的是为了在白盒攻击环境里保护密钥,将密钥信息隐藏在密码软件的执行过程中,防止攻击者在白盒攻击环境中抽取出密钥。目前的大多数sm4白盒密码算法实现,是将扩展和派生后的轮密钥和s盒结合,并进行一定的输入输出变换,将密钥信息隐藏在查表过程中。比如公布号为cn115996113a的专利申请文献中提出将国产分组密码算法sm4以新的查找表技术进行白盒化,并采用国产密码算法sm3进行查找表数据完整性校验以防篡改。而公布号为cn115348101a的专利申请文献中提出利用混沌序列来动态构造s盒、系统参数和固定参数,通过对s盒的内容进行变化来降低数据传输过程中降低被破译的风险。但这些实现存在一定的问题:

2、(1)只有一支对称密钥参与白盒密码算法的生成过程,复杂度不高,信息冗余度较低,攻击难度较小。

3、(2)由于s盒以及查表信息都是可以获取的,所以存在一定的密钥析出风险。

4、(3)和密钥一样,白盒密码算法代码也需要分发,由于数据量较大,分发过程存在风险。


技术实现思路

1、本发明所要解决的技术问题在于如何从复杂度和信息冗余度上提升白盒密码算法的破解难度。

2、本发明通过以下技术手段解决上述技术问题的:

3、第一方面,本发明提出了一种增强白盒sm4密码算法安全性的方法,所述方法包括:

4、获取密钥组,所述密钥组中的一个密钥作为工作密钥,其余密钥作为变换密钥;

5、基于所述工作密钥对sm4密码算法的s盒进行变换,形成若干与所述工作密钥相关的派生s盒;

6、基于所述密钥组中的变换密钥生成与所述变换密钥数量相同的轮密钥组;

7、基于所述轮密钥组和所述派生s盒,在每一轮sm4算法的加密运算中对运算输入数据进行处理,生成与所述轮密钥组相关的密文数据。

8、进一步地,所述工作密钥和所述变换密钥为量子密钥分发网络生成并在全域同步的新鲜密钥。

9、进一步地,所述基于所述工作密钥对sm4密码算法的s盒进行变换,形成若干与所述工作密钥相关的派生s盒,包括:

10、令所述工作密钥k0=(k00,k01,k02,k03),k0v=(k0v0,k0v1,k0v2,k0v3),对任意变量x,有:

11、sboxvu(x)=sbox(x⊕k0vu)u=0,1,2,3,v=0,1,2,3

12、式中,k00、k01、k02、k03为组成所述工作密钥的四个一级子密钥;k0v0、k0v1、k0v2、k0v3为组成第v个一级子密钥的二级子密钥;x为组成运算输入数据的分量之一;k0vu为第v个一级子密钥的第u个二级子密钥;sbox()表示标准s盒;sboxvu()表示基于k0vu得到的派生s盒;⊕表示异或操作。

13、进一步地,所述基于所述轮密钥组和所述派生s盒,在每一轮sm4算法的加密运算中对运算输入数据进行处理,生成与所述轮密钥组相关的密文数据,包括:

14、令sm4算法每轮加密运算的输入数据为(xj,xj+1,xj+2,xj+3),xj+1、xj+2、xj+3为输入数据包括的输入数据组,以运算输入数据x=xj+1 xj+2 xj+3=(a0,a1,a2,a3)作为每轮加密运算中t调用的输入,a0、a1、a2、a3为组成运算输入数据x的4个分量,令rkji=(kji0,kji1,kji2,kji3),其中,rkji为第i个所述变换密钥所对应的第j个轮密钥组,kji0、kji1、kji2、kji3为组成轮密钥组rkji的二级轮密钥,i=1,2,3,4,j=0,1,2,…,31;

15、将第j轮的一次t调用增加为4次t类型调用,对运算输入数据进行处理,公式表示为:

16、t4(t3(t2(t1(x rkj1) rkj2) rkj3 rkj4)

17、式中,rkj1、rkj2、rkj3、rkj4为不同所述变换密钥对应的第j个轮密钥组;t1()、t2()、t3()、t4()均为合成置换函数,且合成置换函数中的非线性变换τ与所述派生s盒相关;为异或操作。

18、进一步地,所述合成置换函数t1()、t2()、t3()、t4()的公式表示为:

19、t1(x rkj1)=l(τ1(x rkj2))=l(sbox00(a0 kj10),sbox01(a1 kj11),sbox02(a2 kj12),sbox03(a3 kj13))

20、生成则t1()变换为:

21、t1(x rkj1)=l(sj00(a0),sj01(a1),sj02(a2),sj03(a3));

22、t2(x rkj2)=l(τ2(x rkj2))=l(sbox10(a0 kj20),sbox11(a1 kj21),sbox12(a2 kj22),sbox13(a3 kj23))

23、生成则t2()变换为:

24、t2(x rkj2)=l(sj10(a0),sj11(a1),sj12(a2),sj13(a3));

25、t3(x rkj3)=l(τ3(x rkj3))=l(sbox20(a0 kj30),sbox21(a1 kj31),sbox22(a2kj32),sbox23(a3 kj33))

26、生成则t3()变换为:

27、t3(x rkj3)=l(sj20(a0),sj21(a1),sj22(a2),sj23(a3));

28、t4(x rkj4)=l(τ4(x rkj4))=l(sbox30(a0 kj40),sbox31(a1 kj41),sbox32(a2kj42),sbox33(a3 kj43))

29、生成则t4()变换为:

30、t4(x rkj4)=l(sj30(a0),sj31(a1),sj32(a2),sj33(a3));

31、式中,l为线性变换;τ1()、τ2()、τ3()、τ4()为非线性变换;sbox00~sbox03,sbox10~sbox13,sbox20~sbox23,sbox30~sbox33为所述派生s盒;sji`n为基于派生s盒在第j轮结合变换密钥进行二次派生产生的轮s盒(轮次j=0,1,2,…,31,i`=0,1,2,3,i`对应于ti`+1(即上述t1-t4),n=0,1,2,3,n对应于每个ti`+1的4个轮s盒)。

32、进一步地,在所述生成与所述轮密钥组相关的s盒之后,所述方法还包括:

33、对第j轮加密运算生成的与所述轮密钥组相关的s盒sji`n进行置乱操作,得到第j轮s盒的查表结果,j=0,1,2,…,31,i`=0,1,2,3,n=0,1,2,3;

34、对第j轮t调用的运算输入数据进行输入置乱操作,得到置乱后t调用的输入;

35、对第j轮t调用的输出数据进行输出置乱操作,得到输出xj+4作为所述密文数据。

36、进一步地,所述对第j轮加密运算生成的与所述轮密钥组相关的s盒sji`n进行置乱操作,得到第j轮s盒的查表结果,包括:

37、利用可逆矩阵ejin对s盒sji`n进行置乱操作,置乱后的s盒s`ji`n=ejin·sji`n,ejin为有限域gf(2)的8×8比特位可逆矩阵;

38、令第j轮置乱后的s盒查表后的输出为z,则第j轮s盒的查表结果为vj=(qj·l)zt,其中,qj·l为可逆矩阵qj与线性变换l的结合,t表示矩阵转置符号。

39、进一步地,所述对第j轮t调用的运算输入数据进行输入置乱操作,得到置乱后t调用的输入,公式表示为:

40、x=x`j+1 x`j+2 x`j+3=(mj+1·xj+1) (mj+2·xj+2) (mj+3·xj+3)

41、式中,mj+m=pj+m-1·ej1-1·ej2-1·ej3-1·ej4-1,pj+m(x)=aj+m(x)αm,aj+m为可逆矩阵,αm为常量,m=1,2,3,eji=diag(eji0,eji1,eji2,eji3),i=1,2,3,4。

42、进一步地,所述对第j轮t调用的输出数据进行输出置乱操作,得到输出xj+4作为所述密文数据,包括:

43、对第j轮s盒的查表结果vj进行可逆仿射变换,得到y`=(pj+4 α'm)·qj-1·vj;

44、对第j轮置乱后t调用的输入进行可逆仿射变换,得到x`=(pj+4 α”m)pj-1·xj;

45、对第j轮t调用的输出数据进行输出置乱操作,得到置乱后的输出数据xj+4=x` y`作为所述密文数据;

46、其中,vj为第j轮s盒的查表结果,qj为可逆矩阵,α′m和α″m为常量,pj+4和pj为数组且在轮变换中统一排序并有所交叉。

47、第二方面,本发明还提出了一种增强白盒sm4密码算法安全性的设备,包括:

48、密钥获取模块,用于获取密钥组,所述密钥组中的一个密钥作为工作密钥,其余密钥作为变换密钥;

49、s盒派生模块,用于基于所述工作密钥对sm4密码算法的s盒进行变换,形成若干与所述工作密钥相关的派生s盒;

50、密钥变换模块,用于基于所述密钥组中的变换密钥生成与所述变换密钥数量相同的轮密钥组;

51、加密运算模块,用于基于所述轮密钥组和所述派生s盒,在每一轮sm4算法的加密运算中对运算输入数据进行处理,生成与所述轮密钥组相关的密文数据。

52、第三方面,本发明还提出了一种白盒密码程序代码安全分发系统,所述系统包括量子密钥分发网络,所述量子密钥分发网络中各量子网络节点连接有对应的代码生成点,所述代码生成点中存储的白盒密码程序代码采用上所述方法生成,每个代码生成点经安全存储介质连接有对应的通信参与方以为通信参与方充注白盒密码程序代码,所述通信参与方采用所述白盒密码程序代码进行数据加解密通信。

53、本发明的优点在于:

54、(1)本发明首先利用一个工作密钥对sm4密码算法的s盒进行变换,形成若干与工作密钥相关的派生s盒,再根据变换密钥生成的轮密钥组和派生s盒,在每一轮sm4算法的加密运算中对运算输入数据进行处理,生成每一轮每一次t类型调用中τ变换中与轮密钥组相关的s盒,通过多支共享的变换密钥生成一套白盒密码算法代码,实现对明文数据的加密,从复杂度和信息冗余度上提升白盒密码算法的破解难度。

55、(2)通过qkd(quantum key distribution,量子密钥分发网络)和白盒代码生成点实现跨域的远程白盒密码算法安全分发,提升了白盒密码分发过程的安全性,降低了代码分发过程的复杂性和资源消耗。

56、本发明附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1