一种精确恢复Atom算法超级多项式的装置及方法
- 国知局
- 2025-01-10 13:16:26
本发明涉及信息安全领域,具体是一种精确恢复atom算法超级多项式的装置及方法。
背景技术:
1、立方攻击是在2009年的欧密会上,首次由dinur和shamir等人提出一种新型代数攻击。现在被广泛应用于不同密码算法的安全性分析中。其中包括ascon为主的认证加密算法,trivium为主的流密码算法,以及keccak为主的哈希函数算法。其主要的思想是利用高阶差分以及线性检测的方法恢复出关于密钥的线性多项式,然后利用这些线性表达式构建方程组,通过求解构建的方程组对部分密钥进行恢复。这一方法使攻击者能够以比传统暴力搜索更低的时间复杂度恢复出部分密钥信息,从而降低整体破解密码算法的时间复杂度。当传统立方攻击在分析流密码算法时,流密码算法的函数表达式是被看作一个黑盒多项式,并通过线性或者二次测试的方法来恢复出超级多项式的结构。但是,由于立方攻击是一种通过实验来对密码算法进行分析的攻击方法,其面临很多实现上的问题。最主要就是资源上的问题,如果在选取立方变元时,选取的维度较大,比如大小为50维的立方变元,根据现有的计算资源,很难利用立方攻击来对密码算法的安全性进行分析。所以,攻击者选取的立方变元大小一般小于40维。
2、在2016年,todo等人提出了新的分析方法—可分性分析[1]。可分性是积分攻击的一般形式,其主要利用了隐藏在活跃字集与平衡字集之间的性质。为了降低比特级可分性搜索积分区分器需要的复杂度,xiang等人在2016年首次提出了可以描述可分性传播的milp模型。同时,为了更好地描述可分性的传播性质,构建出密码部件更精确的可分性传播模型也是近些年研究的重点,比如对s盒的可分性传播模型的构建方法、对线性部件的建模方法。在2017年美密会,todo等人将可分性首次应用于流密码算法的分析中,提出了一种基于可分性的立方攻击方法[3],利用这个方法,一方面是立方变元的选取不再受到限制,可以对更大维度的立方变元对应的超级多项式进行分析。另一方面,攻击者可以通过该方法直接得到哪些密钥变量涉及到对应的超级多项式中,哪些密钥变量没有涉及到超级多项式中,进一步降低了恢复超级多项式需要的时间复杂度。
3、为了进行密钥恢复攻击,攻击者需要精确地恢复出超级多项式的具体形式。wang等人基于三子集的可分性技术提出了剪枝技术和三子集可分性的快速传播技术,并基于三子集可分性传播的milp模型设计了恢复超级多项式的方法,但其结果仍不准确。
4、最终郝泳霖等人在2020年彻底解决了超级多项式恢复不准确的问题[5],其提出了一种不含未知子集的三子集可分特性的模型,在合理的时间复杂度内能够精确的恢复超级多项式。
5、目前针对atom算法的攻击,并没有用到基于两子集可分性和三子集可分性相结合的方法,对目标密码算法进行求解超级多项式中包含的密钥变量和超级多项式。因此,利用两子集可分性和三子集可分性相结合的方法,来对目标密码算法进行求解并精确恢复出超级多项式是目前待解决的问题。
6、参考文献:
7、[1]todo y.,morii m.(2016).bit-based division property and applicationto simon family[c].in:peyrin t.(eds)fast software encryption 2016.lecturenotes in computer science,2016,vol 9783,pp.357–377;
8、[2]xiang,z.,zhang,w.,bao,z.,lin,d.(2016).applying milp method tosearching integral distinguishers based on division property for 6lightweightblock ciphers[c].in:cheon,j.,takagi,t.(eds)advances in cryptology–asiacrypt2016.lecture notes in computer science(),vol 10031.springer,berlin,heidelberg.pp.648-678;
9、[3]todo y.,isobe t.,hao y.,meier w.cube attacks on non-blackboxpolynomials based on division property.in:katz j.,shacham h.(eds)advances incryptology–crypto 2017.lecture notes in computer science,2017,vol10403.pp.250-279;
10、[4]wang,s.,hu,b.,guan,j.,zhang,k.,shi,t.(2019).milp-aided method ofsearching division property using three subsets and applications[c].in:galbraith,s.,moriai,s.(eds)advances in cryptology–asiacrypt 2019.lecturenotes in computer science,2019,vol 11923.springer,cham.pp.398–427;
11、[5]hao,y.,leander,g.,meier,w.,todo,y.,wang,q.modeling for three-subset division property without unknown subset[c].in:canteaut a.,ishai y.(eds)advances in cryptology–eurocrypt 2020,lecture notes in computer science,2020,vol 12105.springer,cham.pp.466–495。
技术实现思路
1、本发明的目的是提出一种精确恢复atom算法超级多项式的装置及方法,该方法结合两子集可分性技术和三子集可分性技术,利用两子集和三子集可分性技术分别构建传播模型,再对其设置模型变量,最后进行求解,同时构建超级多项式代数性质检测模块对超级多项式进行精确恢复。该方法可以提高精确恢复atom算法超级多项式的效率,降低时间复杂度,很大程度上节省了时间成本。
2、本发明一种精确恢复atom算法超级多项式的装置,如图1所示,装置分为4个模块,包括依次设置的模型变量设置模块、atom密码算法两子集可分性传播模型构建模块、atom密码算法三子集可分性传播模型构建模块和超级多项式代数性质检测模块,各模块的作用分别为:
3、(a)模型变量设置模块,用于设置atom密码算法对应的变量,包含密钥比特和公共变量比特;
4、(b)atom密码算法两子集可分性传播模型构建模块,将atom算法运算拆分成copy、and和xor基本运算,根据两子集可分性的传播性质,分别构建出这些基本运算的可分性传播模型,得到atom算法轮函数的可分性传播模型m,然后对所述可分性传播模型m进行r次迭代,生成新的可分性传播模型mr,此模块用于根据atom算法的结构构建得到两子集可分性混合整数线性规划模型;
5、(c)atom密码算法三子集可分性传播模型构建模块,将atom算法运算拆分成copy、and和xor基本运算,根据三子集可分性的传播性质,分别构建出这些基本运算的可分性传播模型,得到atom算法轮函数的可分性传播模型w,然后对所述可分性传播模型w进行r次迭代,生成新的可分性传播模型wr,此模块用于根据atom算法的结构构建得到三子集可分性混合整数线性规划模型;
6、(d)超级多项式代数性质检测模块,其包括超级多项式涉及到的密钥检测模块、超级多项式代数次数上界检测模块以及单项式检测模块;
7、超级多项式中涉及到的密钥检测模块根据构建的两子集可分性传播模型,求解得到涉及到的密钥集合;同时在构建两子集可分性传播模型时,加入超级多项式代数次数上界检测模块,得到超级多项式的最高代数次数,以计算时间复杂度,确保得到的所选取的立方变元对应的超级多项式中涉及的密钥是有意义的;最后利用三子集技术构建单项式检测模块,带入利用两子集所得的代数次数上界和立方变元集合,对模型进行求解,精确恢复atom密码算法的超级多项式表达式。
8、本发明一种精确恢复atom算法超级多项式的方法,将两子集可分性技术和三子集可分性技术结合使用,采用atom算法超级多项式的装置,得到超级多项式的表达式,所述方法包括如下步骤:
9、(1)通过模型变量设置模块,在寄存器中定义一个空的milp模型m,然后为atom算法的密钥变量key={key0,key1,…,key127}和初始变量iv={iv0,iv1,…,iv127}声明对应的milp模型变量,分别为k={k0,k1,…,k127}和v={v0,v1,…,v127},将所述milp模型变量添加到模型m中;
10、(2)通过atom密码算法两子集可分性传播模型,构建atom算法r轮两子集可分性传播的混合整数线性规划模型m,根据可分性的传播性质,将atom算法运算拆分成copy、and和xor基本运算,分别构建出这些基本运算的两子集可分性传播模型,得到atom算法轮函数的可分性传播模型m,然后对所述可分性传播模型m进行r次迭代,生成新的可分性传播模型mr;
11、(3)通过atom密码算法三子集可分性传播模型,构建atom密码算法r轮三子集可分性传播的混合整数线性规划模型wr,根据三子集的可分性传播性质,将atom算法运算拆分成copy、and和xor基本运算,分别构建出这些基本运算的三子集可分性传播模型,得到atom算法轮函数的三子集可分性传播模型w,然后对所述可分性传播模型w进行r轮迭代,生成新的可分性传播模型wr;
12、(4)通过超级多项式代数性质检测模块,对超级多项式的代数性质进行精确检测,超级多项式中涉及密钥检测模块、超级多项式代数次数上界检测模块以及单项式检测模块,检测步骤包括:
13、(4.1)密钥检测模块,对超级多项式中包含的密钥变量进行测试,随机选取立方变元的下标集合并用i表示,当下标i存在于选取的立方变元集合i中,在可分性传播模型mr中添加约束vi=1,当i不存在于选取的立方变元集合i中,在可分性传播模型mr中添加约束vi=0,并在模型中添加约束
14、设置集合j为空集,定义一个输出变量称为res1,并添加输出约束res1→1,将所述可分性传播模型mr放入到自动化搜索工具gurobi中,来求解超级多项式中涉及的密钥;
15、若检测到模型mr有可行解,并且ki=1,则将下标i加入到集合j中,并再加入限制条件ki=0到模型mr中,重复此过程直到模型无解,得到超级多项式涉及的密钥变量,超级多项式涉及到的密钥变量下标集合为j={j0,j1,…,jn-1},n为小于128的整数;
16、(4.2)超级多项式代数次数上界检测模块,求解超级多项式代数次数上界,基于步骤(2)中的方法,得到atom算法新的两子集可分性模型m*r,选取与步骤(4.1)中相同的立方变元集合i,当下标i存在于选取的立方变元集合i中,在可分性传播模型m*r中添加约束vi=1,当i不存在于选取的立方变元集合i中,在可分性传播模型m*r中添加约束vi=0,并设置目标函数
17、再定义一个输出变量称为res2,并添加输出约束res2→1,对模型进行求解,得到超级多项式的代数次数上界d;
18、(4.3)单项式检测模块,选取与步骤(4.1)中相同的立方变元,对初始iv变量对应的模型变量设置限制条件,若下标在立方体集合i内,则对应下标变量设为1,并在模型wr添加相关约束vi=1(i∈i),其余变量对应模型变量的值设置为0,并在模型wr添加相关约束
19、再定义一个输出变量为res3,并添加输出约束res3→1,接着定义超级多项式p=0,将步骤(3)和(4)得到的输出转化为模型wr中的限制条件,并对wr进行求解,具体操作如下:
20、添加约束条件到模型wr,对模型wr进行求解,得到k中分量为1的变量对应的下标集合称为j',并检查轨迹的条数,其中,符号表示128比特的向量,并只有下标包含在集合i中的位置的值为1,其余不包含在集合i中的位置的值为0,如果条数为奇数,说明以j'={j'0,j'1,…,j'|j'|-1}为下标的关于密钥的单项式包含于立方体变量集合i对应的超级多项式,其中|j'|为集合j'的元素个数;
21、再将其加入到否则,以j'={j'0,j'1,…,j'|j'|-1}为下标的关于密钥的单项式,不包含于立方体变量集合i对应的超级多项式;
22、随后,将集合j'设置为空集,向wr添加约束用于排除当前的解,并按照上述过程继续对模型wr进行求解,直到模型wr无解,得到最终超级多项式的表达式p。
23、进一步地,所述密钥变量key为128比特的向量,所述初始变量iv为128比特的向量,所述立方体集合为正整数集合,轮数为正整数,且所述的立方体集合大小不能超过atom算法密钥向量的大小。
24、进一步地,所述对atom算法混合整数线性规划模型进行求解处理,得到所述atom算法对应求解超级多项式涉及到的相关密钥比特以及超级多项式,包括将所述混合整数线性规划模型放入到开源的混合整数线性规划求解器,基于混合整数线性规划求解器运行混合线性整数规划模型,以求解满足atom密码算法的相关密钥比特以及超级多项式。
25、本发明的有益效果是:
26、(1)本发明方法可以求解atom算法中超级多项式中涉及的密钥以及精确的恢复atom算法的超级多项式。
27、(2)本发明方法结合了两子集技术和三子集技术,将两子集的可分性传播模型求解所得的信息,作为限制条件带入三子集可分性的传播模型中。有效提高求解atom超级多项式的效率,缩减了三子集可分性需要搜索的空间。
28、(3)本发明方法将可分性和milp(混合整数线性规划模型)应用到分析atom算法中,对分析atom的安全性有一定的作用。
本文地址:https://www.jishuxx.com/zhuanli/20250110/352056.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 YYfuon@163.com 举报,一经查实,本站将立刻删除。
下一篇
返回列表