掌桥专利:专业的专利平台
掌桥专利
首页

一种适用于ARX结构的轻量级分组密码算法白盒化构造方法

文献发布时间:2023-06-19 19:30:30


一种适用于ARX结构的轻量级分组密码算法白盒化构造方法

技术领域

本发明属于信息安全与密码技术领域,具体设计一种适用于ARX结构的轻量级分组密码算法白盒化构造方法,该方法通过外部编码结合高维度安全查找表的构造与随机轮换,再插入扰乱项,可保障白盒环境下算法的安全性。

背景技术

专利文献1(公开号:CN111800255A公开日:2020年10月20日)公开了一种适用于分组密码白盒化的动态白盒库生成和使用方法,该白盒库含多张查找表,再通过选表因子进行选取,挑出合适的查找表进行使用。但是本方法仅针对原有的静态白盒库进行了更新,查表所需的异或运算与可逆仿射变换较多,影响算法整体的运算效率,使得整体的加解密速率不高。

专利文献2(公开号:CN109981256B公开日:2022年8月5日)公开了一种基于Feistelbox结构的白盒分组密码构造方法及系统,该发明在轮函数之间添加仿射变换,把上一轮的仿射变换逆变换嵌入本轮的查找表。但是本发明未添加外部编码与内部编码,容易受到代码提取攻击的威胁,攻击者可以通过提取整个算法的代码进行逆向工程,不需密钥信息即可获取关键数据。

通过对以上文献的分析,可以得知现有的白盒密码技术方案大都占用较大内存空间,运算效率不高,不适用于资源受限的软硬件环境,而且其安全性有待提高。本发明所提出的白盒化构造方案,适用于ARX结构轻量级分组密码,该算法具有运行速率快、安全性高等优点,经白盒化方法构造与实现,能够结合查找表技术与可更新的外部编码技术、内部编码技术,通过随机轮换与插入扰乱项等手段,更好的部署于轻量级设备,且能够以较高的白盒多样性与白盒含混度值抵御常见的针对白盒环境的攻击,如代码提取攻击等。故本发明所提出的算法既能够提供轻量级白盒密码算法的白盒攻击安全性,又能部署于各种资源受限的软硬件平台,具有广泛的应用领域。

发明内容

本发明通过可更新的外部编码,结合高维度安全查找表的构造,再进行查找表的随机轮换并插入扰乱项,可以将轻量级ARX算法的所有输入值与输出值制作成查找表,从而将轮密钥信息进行隐藏。除此之外,在每一轮之间添加轮间内部编码,使得敌手不能轻易的获取密钥与中间加密数据信息,保障算法整体的安全性。

本发明通过上述设计,可以解决现有白盒化构造方案内存占用大、运算效率低以及抗代码提取攻击安全性不足的问题,有效提升包括ARX分组密码算法的安全性。本发明的技术方案包括:

一种适用于ARX结构的轻量级分组密码算法白盒化构造方法,描述了一种安全的外部输入编码方式,具体步骤如下:

步骤S1:外部输入编码,使用伪随机数发生器PRNG随机生成4组16位的随机二进制数据,记为C

其中G,F为对应的运算矩阵,分别是左乘与右乘。该4组16位外部输入编码先与待加密的4组16位明文数据X

X

步骤S2:外部输入解码,在ARX加密算法的第一轮输入前,在每一分支异或对应的随机外部输入编码数据C

一种适用于ARX结构的轻量级分组密码算法白盒化构造方法,描述了一种安全的外部输出编码方式,具体步骤如下:

步骤S1:外部输出预解码,在ARX解密算法的最后一轮输出前,在每一分支异或对应的随机外部输出编码数据D

步骤S2:外部输出编码,使用伪随机数发生器PRNG随机生成4组16位的随机二进制数据,记为D

其中H,E为对应的运算矩阵,分别是左乘与右乘。该4组16位外部输出编码与待解密的4组16位密文数据中间数据Y

Y

此时经过外部编码与解码,加解密流程信息可被编码隐藏一部分,大大增加敌手的破解难度。即便敌手通过代码提取攻击获取了内部的整体算法代码,再通过逆向工程等手段获取不加外部编码前的输入与输出,也不能正确的运行算法,因为此时内部的算法是含有C

一种适用于ARX结构的轻量级分组密码算法白盒化构造方法,采用了新的查找表制作方式,具体步骤如下:

步骤S1:设ARX分组密码算法第一轮分支1的运算流程如下:

所得结果记为M

步骤S2:将上述步骤S1中的F

步骤S3:每种可能的8比特输入对应一种8比特的输出情况,故所构造的每张查找表大小为28×8=256字节,每轮共制成56张查找表,算法共48轮迭代。因此该白盒化的ARX密码算法查找表占用内存空间为256字节

×56×48=672KB;

步骤S4:查找表的随机轮换,将每一轮生成的多张查找表进行统一存储,随机轮换排列位置,提高数据的扩散与混淆效果,增加敌手提取密钥信息的难度。

一种适用于ARX结构的轻量级分组密码算法白盒化构造方法,采用基于可逆仿射变换和扰乱项的内部编码,具体步骤如下:

步骤S1:在上一轮加密后,对于奇数分支的数据插入16位的扰乱项,该扰乱项为随机生成的比特数据串,1、3分支分别记为O

步骤S2:经过插入扰乱项之后的4个分支数据,分别通过2次可逆仿射变换扩充为16×16的矩阵,进一步起到数据的混淆作用;

步骤S3:下一轮的数据输入前,根据分支迭代规则,分别对应上一轮分支的可逆仿射变换的逆变换,使得可逆仿射变换的作用被抵消,之后所得结果中的4、2分支数据(对应上一轮的1、3分支)再异或上一轮中添加的扰乱项O

与现有技术相比,本发明的有益效果如下:

第一,将原始ARX分组密码算法的白盒安全性进行有效提高,能够部署于更多的白盒攻击环境,更有效保障密钥与数据安全。

第二,所采用的白盒化方案仅有672KB,满足轻量级的设计目标,相比其他方案可以应用于多种资源受限的环境中,保护信息数据。

第三,本发明所提出的外部编码方式、内部编码方式与查找表构造方法不影响ARX算法的整体加解密效果与结论,仅拓宽了其应用领域,具有良好的兼容性与适用性。

附图说明

图1是本发明所述ARX算法举例的轮函数结构图;

图2是本发明所述白盒化构造方法的外部编码流程图;

图3是本发明所述白盒化构造方法的整体流程图;

图4是本发明所述白盒化构造方法的查找表流程图;

图5是举例ARX算法结合本发明所述白盒化构造方法的整体加密算法结构图。

具体实施方式

下面结合附图与实例对本发明实施过程进行进一步说明,但不以任何方式限制本发明的应用范围。

参照图1,对本发明的实现步骤作进一步描述。本发明举一种ARX算法为例描述白盒化构造方法。

轮函数加密。4个明文数据分组从低位至高位分别进入ARX算法加密轮函数的4个分支:

步骤S1:对明文X进行初始变换:R

步骤S1:F

步骤S1:记4个分支模加、循环移位、F函数及异或混合操作后的第一轮加密结果为X

X

将以上4组16位数据作为第二轮加密的待加密数据进行后续迭代。

参照图2,对本发明的实现步骤作进一步描述。

一种适用于ARX结构的轻量级分组密码算法白盒化构造方法,描述了一种安全的外部输入编码方式,具体步骤如下:

步骤S1:外部输入编码,使用伪随机数发生器PRNG随机生成4组16位的随机二进制数据,记为C

其中G,F为对应的运算矩阵,分别是左乘与右乘。该4组16位外部输入编码先与待加密的4组16位明文数据X

X

步骤S2:外部输入解码,在ARX加密算法的第一轮输入前,在每一分支异或对应的随机外部输入编码数据C

一种适用于ARX结构的轻量级分组密码算法白盒化构造方法,描述了一种安全的外部输出编码方式,具体步骤如下:

步骤S1:外部输出预解码,在ARX解密算法的最后一轮输出前,在每一分支异或对应的随机外部输出编码数据D

步骤S2:外部输出编码,使用伪随机数发生器PRNG随机生成4组16位的随机二进制数据,记为D

其中H,E为对应的运算矩阵,分别是左乘与右乘。该4组16位外部输出编码与待解密的4组16位密文数据中间数据Y

Y

此时经过外部编码与解码,加解密流程信息可被编码隐藏一部分,大大增加敌手的破解难度。即便敌手通过代码提取攻击获取了内部的整体算法代码,再通过逆向工程等手段获取不加外部编码前的输入与输出,也不能正确的运行算法,因为此时内部的算法是含有C

参照图3与图4,对本发明的实现步骤作进一步描述。

一种适用于ARX结构的轻量级分组密码算法白盒化构造方法,采用了新的查找表制作方式,具体步骤如下:

步骤S1:ARX分组密码算法第一轮分支1的运算流程如下:

所得结果记为M

步骤S2:将上述步骤S1中的F

步骤S3:每种可能的8比特输入对应一种8比特的输出情况,故所构造的每张查找表大小为28×8=256字节,每轮共制成56张查找表,算法共48轮迭代。因此该白盒化的ARX密码算法查找表占用内存空间为256字节

×56×48=672KB;

步骤S4:查找表的随机轮换,将每一轮生成的多张查找表进行统一存储,随机轮换排列位置,提高数据的扩散与混淆效果,增加敌手提取密钥信息的难度。

一种适用于ARX结构的轻量级分组密码算法白盒化构造方法,采用基于可逆仿射变换和扰乱项的内部编码,具体步骤如下:

步骤S1:在上一轮加密后,对于奇数分支的数据插入16位的扰乱项,该扰乱项为随机生成的比特数据串,1、3分支分别记为O

步骤S2:经过插入扰乱项之后的4个分支数据,分别通过2次可逆仿射变换扩充为16×16的矩阵,进一步起到数据的混淆作用;

步骤S3:下一轮的数据输入前,根据分支迭代规则,分别对应上一轮分支的可逆仿射变换的逆变换,使得可逆仿射变换的作用被抵消,之后所得结果中的4、2分支数据(对应上一轮的1、3分支)再异或上一轮中添加的扰乱项O

以上描述仅为本发明的一个具体事例,并未构成对本发明的任何限制,本领域专业技术人员在了解本发明的技术原理与设计思路后,可能会对本发明提出的方法在细节或形式上做出相应的变形或改进,这些仍属于本发明的保护范围。

相关技术
  • 一种适用于分组密码白盒化的动态白盒库生成和使用方法
  • 基于ARX白盒分组密码的数字内容加解密方法
技术分类

06120115930695