一种支持查找表防篡改的白盒SM4密码算法构造方法及装置制造方法及图纸

技术编号:37350455 阅读:21 留言:0更新日期:2023-04-22 21:49
本发明专利技术公开一种支持查找表防篡改的白盒SM4密码算法构造方法及装置,该方法将国产分组密码算法SM4以新的查找表技术进行白盒化,并采用国产密码算法SM3进行查找表数据完整性校验以防篡改。一方面本发明专利技术通过两种安全的密码算法进行结合,提高了算法整体的安全性;另一方面,白盒密码的查找表虽能隐藏密钥信息,但存储与传输过程中可能面临着被敌手篡改的风险,若敌手获取查找表并破解密钥信息,再通过篡改关键数据制作仿造查找表,可影响后续加解密运算流程。本发明专利技术通过对查找表数据的完整性校验,可有效保障查找表的完整性,拓宽了白盒密码的应用领域。盒密码的应用领域。盒密码的应用领域。

【技术实现步骤摘要】
一种支持查找表防篡改的白盒SM4密码算法构造方法及装置


[0001]本专利技术属于信息安全与密码
,具体设计一种支持查找表防篡改的白盒SM4密码算法构造方法及装置,能满足白盒环境安全要求,且具有较高效率。

技术介绍

[0002]专利文献1(公开号:CN113111317A公开日:2021年7月13日)公开了一种基于白盒CLEFIA加密方法的软件篡改检测方法。通过设置黑盒加密参数,再构造3类查找表对白盒加密方法进行更新,判断待检测软件是否发生篡改。该方法考虑了白盒密码算法在软件防篡改方面的使用范围,并取得了良好效果。
[0003]专利文献2(公开号:CN111741374B公开日:2022年10月21日)公开了一种获取白盒查找表的方法、装置、电子设备、存储介质及服务端,该专利技术通过服务端获取白盒查找表中的密钥相关部分再向客户端发送密钥相关部分等步骤,再令客户端根据密钥相关部分与密钥无关部分生成白盒查找表。可减少向客户端发送的白盒查找表中的数据的数据量进而节省网络资源。
[0004]通过对以上文献的分析,可以得知目前的分组密码算法白盒化中查找表技术构造是基于对算法的输入输出映射关系进行混淆,将密钥信息隐藏至查找表中。尽管白盒密码技术可应用于多个领域,但其查找表在存储、传输过程中不可避免的存在着被窃取的风险,因此保证其数据完整性是必要的。本专利技术将SM3算法用于对查找表的数据完整性校验,可根据256位的摘要值进行比较来判断查找表是否被篡改,能够在查找表保护密钥信息的基础上,防止查找表被窃取后信息被篡改,从而增强整体白盒化SM4算法的安全性,使得SM4算法更具保密性,很大程度上保护了密钥信息不被泄漏,也能保障其中的密钥信息不被篡改,且不影响算法整体的加解密运算效率与原始算法的输出结果。

技术实现思路

[0005]本专利技术设计了一种支持查找表防篡改的白盒SM4密码算法构造方法及装置,设计时结合了SM3算法的数据完整性校验技术可防止查找表关键信息被篡改。
[0006]本专利技术的技术方案如下:
[0007]一种支持查找表防篡改的白盒SM4密码算法构造方法及装置,加密步骤如下:
[0008]步骤S1:SM4分组密码算法轮函数加密流程。加密之前首先对于明文数据进行预处理,将128位的明文数据按位拆分为4组数据,每组长度为32位,即X=(X0,X1,X2,X3);部分明文数据与密钥rk
i
进行异或,将其结果作为S盒的输入数据,即S
in
=X
i+1

X
i+2

X
i+3

rk
i
,将此32位数据拆分后的4个8位数据分别进入4个S盒参与运算,运算后的4个S盒输出数据拼为32位数据S
out
;将S
out
执行多个循环移位后异或,得
[0009]X
i+4
=S
out

(S
out
<<<2)

(S
out
<<<10)

(S
out
<<<18)

(S
out
<<<24)

X
i

[0010]步骤S2:密钥的生成方式与轮函数加密类似,首先主密钥Mk=(K0,K1,K2,K3)仍为128位数据,拆分后的4组32位数据分别异或系统参数FK0,FK1,FK2,FK3,
[0011]k0=K0⊕
FK0;k1=K1⊕
FK1;k2=K2⊕
FK2;k3=K3⊕
FK3;所得k0‑
k3用于后续轮密钥的生成。后续为S
in
=k
i+1

k
i+2

k
i+3

ck
i
,将此32位数据拆分后的4个8位数据分别进入4个S盒参与运算,运算后的4个S盒输出数据拼为32位数据S
out
;将S
out
执行2个循环移位后异或,得
[0012]rk
i
=k
i+4
=S
out

(S
out
<<<13)

(S
out
<<<23)

k
i

[0013]其中ck
i
每一轮不同,为固定参数,i=0,1,2,

,31;
[0014]步骤S3:将SM4算法的每一轮输入输出以新的查找表理论制成查找表,保护并隐藏密钥信息,使之不被敌手获取;
[0015]步骤S4:使用SM3算法对扩充后的查找表进行数据迭代,生成摘要值,查表前再次进行计算,将两次摘要值进行比较,若一致说明查找表数据未被篡改。
[0016]一种支持查找表防篡改的白盒SM4密码算法构造方法及装置,应用SM3算法进行查找表完整性校验步骤如下:
[0017]步骤S1:将第16轮及第32轮生成的查找表T
A
进行数据扩充,将其按行列顺序转换为二进制数据,再使用SM3算法的填充步骤,每一数据分组为512位;
[0018]步骤S2:将扩充后的比特串进行分组后数据迭代压缩过程,其中的压缩函数包括消息扩展部分和状态更新部分;
[0019]步骤S3:查找表T
A
数据经过多轮数据压缩迭代后生成SM3算法的杂凑值(摘要),该杂凑值为256位,可与查找表一同公开;
[0020]步骤S4:后续加解密过程中查表操作前,先将对应查找表按步骤S1中方法进行数据扩充,再使用SM3算法进行摘要值生成,对比同一查找表两次生成的摘要值是否相同,若相同说明查找表数据未被篡改。
[0021]一种支持查找表防篡改的白盒SM4密码算法构造方法及装置,查找表的制作步骤如下:
[0022]步骤S1:将SM4算法加密过程中X
i+4
生成步骤中的部分异或及线性循环移位操作制成查找表T
A
与查找表T
B
,两类查找表分别用于查询线性变换等操作的映射值,可充分将具体的密钥信息混淆至查找表中;
[0023]步骤S2:在每一轮的轮函数输出位置,首先使用可逆仿射变换对输出数据的内部状态进行混淆,混淆方式为32阶的可逆变换矩阵,经过变换后的数据,与所有可能的输入输出值制作为查找表;
[0024]步骤S3:下一轮迭代开始前,进行查表操作得到对应的本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种支持查找表防篡改的白盒SM4密码算法构造方法及装置,其特征在于,加密步骤如下:步骤S1:SM4分组密码算法轮函数加密流程。加密之前首先对于明文数据进行预处理,将128位的明文数据按位拆分为4组数据,每组长度为32位,即X=(X0,X1,X2,X3);部分明文数据与密钥rk
i
进行异或,将其结果作为S盒的输入数据,即S
in
=X
i+1

X
i+2

X
i+3

rk
i
,将此32位数据拆分后的4个8位数据分别进入4个S盒参与运算,运算后的4个S盒输出数据拼为32位数据S
out
;将S
out
执行多个循环移位后异或,得X
i+4
=S
out

(S
out
<<<2)

(S
out
<<<10)

(S
out
<<<18)

(S
out
<<<24)

X
i
;步骤S2:密钥的生成方式与轮函数加密类似,首先主密钥Mk=(K0,K1,K2,K3)仍为128位数据,拆分后的4组32位数据分别异或系统参数FK0,FK1,FK2,FK3,k0=K0⊕
FK0;k1=K1⊕
FK1;k2=K2⊕
FK2;k3=K3⊕
FK3;所得k0‑
k3用于后续轮密钥的生成。后续为S
in
=k
i+1

k
i+2

k
i+3

ck
i
,将此32位数据拆分后的4个8位数据分别进入4个S盒参与运算,运算后的4个S盒输出数据拼为32位数据S
out
;将S
out
执行2个循环移位后...

【专利技术属性】
技术研发人员:杨亚涛董辉刘建韬
申请(专利权)人:北京电子科技学院
类型:发明
国别省市:

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

1