本发明属于信息安全与密码,具体设计一种支持查找表防篡改的白盒sm4密码算法构造方法及装置,能满足白盒环境安全要求,且具有较高效率。
背景技术:
1、专利文献1(公开号:cn113111317a公开日:2021年7月13日)公开了一种基于白盒clefia加密方法的软件篡改检测方法。通过设置黑盒加密参数,再构造3类查找表对白盒加密方法进行更新,判断待检测软件是否发生篡改。该方法考虑了白盒密码算法在软件防篡改方面的使用范围,并取得了良好效果。
2、专利文献2(公开号:cn111741374b公开日:2022年10月21日)公开了一种获取白盒查找表的方法、装置、电子设备、存储介质及服务端,该发明通过服务端获取白盒查找表中的密钥相关部分再向客户端发送密钥相关部分等步骤,再令客户端根据密钥相关部分与密钥无关部分生成白盒查找表。可减少向客户端发送的白盒查找表中的数据的数据量进而节省网络资源。
3、通过对以上文献的分析,可以得知目前的分组密码算法白盒化中查找表技术构造是基于对算法的输入输出映射关系进行混淆,将密钥信息隐藏至查找表中。尽管白盒密码技术可应用于多个领域,但其查找表在存储、传输过程中不可避免的存在着被窃取的风险,因此保证其数据完整性是必要的。本发明将sm3算法用于对查找表的数据完整性校验,可根据256位的摘要值进行比较来判断查找表是否被篡改,能够在查找表保护密钥信息的基础上,防止查找表被窃取后信息被篡改,从而增强整体白盒化sm4算法的安全性,使得sm4算法更具保密性,很大程度上保护了密钥信息不被泄漏,也能保障其中的密钥信息不被篡改,且不影响算法整体的加解密运算效率与原始算法的输出结果。
技术实现思路
1、本发明设计了一种支持查找表防篡改的白盒sm4密码算法构造方法及装置,设计时结合了sm3算法的数据完整性校验技术可防止查找表关键信息被篡改。
2、本发明的技术方案如下:
3、一种支持查找表防篡改的白盒sm4密码算法构造方法及装置,加密步骤如下:
4、步骤s1:sm4分组密码算法轮函数加密流程。加密之前首先对于明文数据进行预处理,将128位的明文数据按位拆分为4组数据,每组长度为32位,即x=(x0,x1,x2,x3);部分明文数据与密钥rki进行异或,将其结果作为s盒的输入数据,即sin=xi+1⊕xi+2⊕xi+3⊕rki,将此32位数据拆分后的4个8位数据分别进入4个s盒参与运算,运算后的4个s盒输出数据拼为32位数据sout;将sout执行多个循环移位后异或,得
5、xi+4=sout⊕(sout<<<2)⊕(sout<<<10)⊕(sout<<<18)⊕(sout<<<24)⊕xi;
6、步骤s2:密钥的生成方式与轮函数加密类似,首先主密钥mk=(k0,k1,k2,k3)仍为128位数据,拆分后的4组32位数据分别异或系统参数fk0,fk1,fk2,fk3,
7、k0=k0⊕fk0;k1=k1⊕fk1;k2=k2⊕fk2;k3=k3⊕fk3;所得k0-k3用于后续轮密钥的生成。后续为sin=ki+1⊕ki+2⊕ki+3⊕cki,将此32位数据拆分后的4个8位数据分别进入4个s盒参与运算,运算后的4个s盒输出数据拼为32位数据sout;将sout执行2个循环移位后异或,得
8、rki=ki+4=sout⊕(sout<<<13)⊕(sout<<<23)⊕ki;
9、其中cki每一轮不同,为固定参数,i=0,1,2,…,31;
10、步骤s3:将sm4算法的每一轮输入输出以新的查找表理论制成查找表,保护并隐藏密钥信息,使之不被敌手获取;
11、步骤s4:使用sm3算法对扩充后的查找表进行数据迭代,生成摘要值,查表前再次进行计算,将两次摘要值进行比较,若一致说明查找表数据未被篡改。
12、一种支持查找表防篡改的白盒sm4密码算法构造方法及装置,应用sm3算法进行查找表完整性校验步骤如下:
13、步骤s1:将第16轮及第32轮生成的查找表ta进行数据扩充,将其按行列顺序转换为二进制数据,再使用sm3算法的填充步骤,每一数据分组为512位;
14、步骤s2:将扩充后的比特串进行分组后数据迭代压缩过程,其中的压缩函数包括消息扩展部分和状态更新部分;
15、步骤s3:查找表ta数据经过多轮数据压缩迭代后生成sm3算法的杂凑值(摘要),该杂凑值为256位,可与查找表一同公开;
16、步骤s4:后续加解密过程中查表操作前,先将对应查找表按步骤s1中方法进行数据扩充,再使用sm3算法进行摘要值生成,对比同一查找表两次生成的摘要值是否相同,若相同说明查找表数据未被篡改。
17、一种支持查找表防篡改的白盒sm4密码算法构造方法及装置,查找表的制作步骤如下:
18、步骤s1:将sm4算法加密过程中xi+4生成步骤中的部分异或及线性循环移位操作制成查找表ta与查找表tb,两类查找表分别用于查询线性变换等操作的映射值,可充分将具体的密钥信息混淆至查找表中;
19、步骤s2:在每一轮的轮函数输出位置,首先使用可逆仿射变换对输出数据的内部状态进行混淆,混淆方式为32阶的可逆变换矩阵,经过变换后的数据,与所有可能的输入输出值制作为查找表;
20、步骤s3:下一轮迭代开始前,进行查表操作得到对应的输入值,再通过上一轮可逆仿射变换的逆变换还原数据,进入下一轮迭代。
21、与现有技术相比,本发明的有益效果如下:
22、第一,将原始sm4分组密码算法的进行了白盒化构造,提升了其在白盒攻击环境中的适用性,增强了整体安全性能。
23、第二,对于构造的查找表能够用sm3算法生成摘要值进行验证,避免了查找表中所隐藏的关进密钥信息被窃取并篡改,有效保护了公开环境中的查找表数据完整性。
1.一种支持查找表防篡改的白盒sm4密码算法构造方法及装置,其特征在于,加密步骤如下:
2.一种支持查找表防篡改的白盒sm4密码算法构造方法及装置,其特征在于,应用sm3算法进行查找表完整性校验步骤如下:
3.一种支持查找表防篡改的白盒sm4密码算法构造方法及装置,其特征在于,查找表的制作步骤如下: