冗余方程对基于Minisat的代数攻击影响
2020-08-18
来源:汇智旅游网
第36卷 第1期 计算机工程 2010年1月 VoL36 No.1 Computer Engineering January 201 0 ・安全技术・ 文章编号:1000--3428(2010)01----0177—-04 文献标识码:A 中图分类号:TN918.1 冗余方程对基于Minisat的代数攻击影响 卜凡 (解放军信息工程大学电子技术学院,郑州450004) 摘要:分析基于Minisat软件的代数攻击方法,发现由该代数攻击方法对某些密码算法所建立的方程组中存在冗余方程,研究去除所有 冗余方程的预处理方法,基于该方法提出先去除冗余方程,再利用Minisat软件求解无冗余方程组的代数攻击方法。实验结果表明,对CTC 算法,新的攻击方法的攻击时间平均缩短了l/2,冗余方程的存在降低了基于Minisat软件的代数攻击的效率。 关键词:代数攻击;非线性方程组;冗余方程;CTC算法 Affecti0n of Redundant Eq uations to Algebraic Attack Based 0n Minisat BUFan (Institute of Electronic Technology,PLA Information Engineering University,Zhengzhou 450004) [Abstract]This paper analyzes the method of algebraic attacks based on Minisat.It finds that the fhnctions which are built from this method are redundant for some ciphers,gives a pretreatment method to throw off these redundancy functions and a method of algebraic attack based on this pretreatment and using Minisat to solve functions.Using this improved method,experimental results show that the method can cut down halftime of one attack on average on CTC algorithm.These redundant functions make the algebraic attack based on Minisat becomes inefifcient. [Key words]algebraic attack;non-linear system of equations;redundant equation;CTC algorithm 1概述 2基于Minisat软件的代数攻击方法 代数攻击是采用基于代数思想的方法与技巧,将一个密 2.1方法介绍 码算法的输入输出及其各中间状态变量的关系归结为一个超 文献[1]提出利用Minisat软件求解方程组的代数攻击方 定的多元高次方程组(即方程个数远大于未知量个数),使得 法,具体过程如下: 该密码算法的安全性完全依赖于求解多元高次方程组的困 (1)建立以算法中变换环节输入输出的各比特位为未知 难性。 量的方程组,其中算法的线性变换环节可直接建立以输入输 代数攻击首先是建立关于算法输入输出及各中间状态变 出的各比特位为未知量的线性方程,非线性变换环节仅建立 量之问关系的方程组,而后解出方程组中所有变量的值从而 以输入输出的各比特位为未知量的低次非线性方程。 恢复密钥。在建立关于算法的方程组的方法中,既有利用以 (2)将求解方程组的问题转化为SAT问题,进而利用 算法中变换环节输入输出的各比特位为未知量来建立方程的 Minisat软件求解SAT问题从而解得方程组。 方法l lJ,也有利用以算法中变换环节输入输出比特块为未知 该方法已经对6圈DESl 1、KeeLoq…、CTC 和CTC2 量来建立方程的方法lj ;既有建立算法中变换环节的输出未 等算法进行了攻击实验。由于这些攻击实验建立的非线性方 知量关于输入未知量关系的显示表示的方法l4J,也有建立关 程均是低次非线性方程并且方法类似,因此本文仅以CTC算 于算法中变换环节的输入输出未知量关系的隐式表示的方 法为例分析基于Minisat软件的代数攻击方法所建立的非线 法l 】J。求解方程组的方法主要有线性化方法(包括直接线性 性方程中存在的冗余方程问题。 化 、扩展线性化【叫等)、求Gr6bner基(F4 J、F5[8-9]算法等) 2.2方法分析 的方法和转化为可满足性问题(SAT问题)利用SAT Solver软 CTC算法是Courtois为了验证所提出的代数攻击方法的 件求解SAT问题从而求解方程组的方法lJ’ J。 正确性和有效性而提出的一个玩具分组密码算法。该算法采 目前,利用以算法中变换环节输入输出的各比特位为未 用SPN结构,分组长度3 (1≤B≤128)、密钥长度3 和迭 变量来建立方程组,再将求解方程组的问题转化为SAT问题, 代圈数Jv 均是可变的,圈函数包括圈密钥加、混乱变换和扩 进而利用Minisat软件求解SAT问题从而解得方程组的代数 散变换,其中圈密钥加是将圈函数的输入与圈密钥逐比特“异 攻击方法已经实现对低圈的DESlJ 和KeeLoq… 算法的攻击。 或”,混乱变换是由B个3比特S盒并置构成,扩散变换是 本文介绍基于Minisat软件的代数攻击方法,分析该代数 {o,1 到{0,1 上的线性变换。圈密钥仅是通过算法密钥循 攻击方法所建立的方程组中存在的冗余方程的问题,给出去 环移动若干比特位得到。 除方程组中所有冗余方程的方法,提出对基于Minisat软件的 代数攻击的新方法,并通过实验说明该新方法的效果及冗余 作者简介:b) ̄(1982一),男,硕士研究生,主研方向:密码学 方程对基于Minisat软件的代数攻击方法的影响。 收稿日期:2009—06—08 E—mail:bufan1982@yahoo.cn 177— 在CTC算法的圈函数中,圈密钥加变换和扩散变换都是 线性变换,因此可以很容易得出这些变换的以输入输出比特 位为未知量的线性方程;而混乱变换是由B个3比特S盒并 , ,…, )。若存在多项式 ,使 , ,…, 。, 一, )=, 【 , ,…, ),则称 =0是方程组 = 一一 =0的冗 余方程。 根据上述定义可直接得出判定方程组1≤i≤ =置构成的非线性变换,其中代替表S盒为{7,6,0,4,2,5,1,3}, 即若s盒输入的3比特为X3X2X1,输出的3比特为Y3Y,Y.,则 Y,Y:y,是S盒中第4x3+2 :+ 个值对应的二进制数,文献[2] =0中 0是否为冗余方程的方法:穷举Xt, ,…, 得到方程组 1≤i≤r, =0的解集 ( , ,…, );穷举 , :,…,X 得到方 程组1≤i≤,,i≠f, =0的解集 ( , ,…, 果 ( , ,…, )≠ ( , ,…, 中基于Minisat软件的代数攻击方法建立了14个以 X3,X ,X1,Y ,Y ,Yl为未知量的二元域上的二次非线性方程,并 基于这些方程利用Minisat软件对CTC进行了代数攻击实验。 这些方程具体为 0=XlX20Y10X30X20X101 0=X1X30Y20X201 +.,…, ),如 …, ),则 =0不是冗 余方程,否则 =0是冗余方程。该方法每判定方程组中的 1个方程就需要对X ,X2,…,X 穷举一次,下面给出仅需对 X ,X 一,X 穷举一次就能判定并去除方程组中所有冗余方程 0=xlYl0Y20 201 0=xlY2 0Y2 0Yl 0X3 l0= 0Y30Y20Yl0X20Xl01 J0=xzYl0Y30Y20Yl0X20X101 10= 20 0X1 1 0= 乃0XlY30Y10X30 201 l0=x3yl0xly30Y30Yl 10=x3y20Y30Y10X30X1 l0= 乃0 乃0Y20 20X101 l0=Y1Y20Y30Xl l0=Y1Y30Y30Y20X20 l01 【0=Y2Y30Y30Y20Yl0X30Xl 容易验证,方程组(1)的解为 {( , , , , , ):4儿十2 十 = :4 +2 + , , ∈{q1}} 如果将方程组(1)的l4个方程从上到下依次编号为 (1.1)~(1.14),则发现(1.2)~(1.14)构成的方程组的解与方程 组(1)的解相同,这说明方程(1.1)对于求解方程组(1)没有提供 任何信息量,即(1.1)是冗余方程。事实上,我们发现仅由(1.2), (1.4)和(1.12)构成的方程组的解与方程组(1)的解相同,这说明 方程组(1)中除了(1.2),(1.4)和(1.12)外的11个方程相对于 (1.2)、(1.4)和(1.12)这3个方程来说都是冗余方程。 另一方面,基于Minisat软件的代数攻击方法在得到关于 算法的方程组后,将求解方程组的问题转化为SAT问题,进 而利用Minisat软件求解SAT问题从而解得方程组。在这个 过程中,方程组中的方程数量越多,转化为SAT问题的规模 就越大(包括变量个数、语句个数、语句总长度),即Minisat 软件运行时的输入规模就越大。由于冗余方程对于求解方程 组不提供任何信息量并且去除冗余方程使得Minisat软件运 行时的输入规模减小,因此笔者期望在得到关于算法的方程 组后,通过去除方程组的冗余方程的方法来提高基于Minisat 软件的代数攻击的速度。 3冗余方程对基于Minisat代数攻击的影响 本文首先给出去除冗余方程的压缩查表法,基于压缩查 表法给出基于Minisat软件的无冗余方程的代数攻击方法,最 后通过对CTC算法的实验说明新的代数攻击方法的性能,进 而分析冗余方程对代数攻击的影响。 3。1去除冗余方程的压缩查表法 首先引入下面的概念: 定义设 , ,…, 是二元域上的 多元多项式,则称使 得 = 一一 =0成立的未知量 ,X:,…, 的所有可能值 构成的集合为 , ,…, 构成的方程组的解集,记为 l78一 的方法。 定理1设 , ,…, 是二元域上的,z多元多项式,则有 (1) ( , ,‘。。, )=n ( ); i=1 (2)如果{g ,g ,…,g,} {fl, ,…, },则 ( , ,…, ) (蜀,g2,…,g,)。 定理1中的(1)说明方程组的解集可以通过先分别求出方 程组中各方程的解集,再求它们的交集得到。具体地,对于 方程 =0,开辟2 个存储单元tag[2 ],依次穷举 l, ,…, ,如果XI, 2,…,Xn是fie:0的解,令tag[ ̄2 ]=1; i=1 否则令tag[ ̄2 xi]=0。对于由,个方程构成的方程组,则需 i=1 要开辟rx2 个存储单元tag[r][2 ]来标记r个方程各自的解 集。显然, 方程组的解集就是{( ,X 一, ): " ^tag[t儿∑2 X ]=1}。 1=1 i=1 去除方程组中所有冗余方程的思想为:对于1≤i≤,, 穷举计算方程 =0的解并标记在数组tag[i][】中;对于 0≤J≤2”一1,令v[j】=^ [f][ ,则v[j]标记出方程组 f I 1≤i≤r, =0的解集;记集合,={1,2,…,,},将去除,中 1个元素后的集合记为, ,对于0≤J≤2 一1,计算 =Atag[t][j],则 ]标记出方程组f∈,’, =0的解集; 如果对于0≤J≤2 1,己 = 力均成立,则令,=,’,继续 去除』中1个元素得到,’后按同样的方法检验;只要 ]= 】 对于0≤,≤2”一1中的一个,不成立,则继续去除,中未曾检 验过的1个元素得到,’后按同样的方法检验;最终,如果,中 元素经检验均不能去除,则说明以,中元素为下标的方程构 成的方程组为无冗余方程组。 在具体实现时,由于标记方程解集的数组tag[r][2 ], v[2 ]和U[2”]中各存储单元的取值仅为0或1,因此可以将 它们进行压缩存储,即利用32比特整型变量数组tagl[rl[2 】 来存储2 x32=2 个比特,其中tag[t][j1=(tagI[t][u】> v)orod2,“X>> ”表示X右移Y比特位, =floor(j ̄32), lfoor(x)为下取整函数,v=31一(jrood32)。这种方法不仅降 低了算法所需的存储空间,还大大降低了算法的计算量。 综上所述,去除冗余方程的压缩查表算法如下: 输入r个方程 = 一一 =0,其中 , ,…, 是二 元域上的t/'元多项式 输出方程组1≤i≤r, =0的无冗余方程组 (1)开辟r×2 的32比特无符号整型变量存储空间 和本文所提出的新方法对CTC算法做了大量实验。已有的基 于Minisat软件的代数攻击方法『J ’ⅢJ是指建立了关于算法的 tagl[r][2 ],2 的32比特无符号整型变量存储空间VI[2 ] 和 [2 ],并将tagi[r][2 】、VI[2 ]和 [2 ]均初始化为 0,令集合,={1,2,…,r}。 方程组后直接转化为SAT问题,利用Minisat软件求解的方 法,而新方法是指建立了关于算法的方程组后先去除冗余方 程再将无冗余方程组转化为SAT问题,利用Minisat软件求 解的方法。 (2)计算方程组中每个方程的解集。对于1≤i≤ ,依次 执行:穷举X , ,…,X 的所有可能取值,记“=∑2 i=6 , 实验环境为Pentium 4 PC,主频2.5 GHz、内存256 MB, Minisat 2.0。实验情况总结如下: v=∑2 Xi, 如果 , ,…,Xn是 =0的解, 则令 i=1 tagI[il[u]:=tagl[i][u]+2 ~。 (3)计算方程组的解集。对于0≤i≤2 1,计算viii]= fltagl[tl[i]。 (4)检测并去除冗余方程。令k=1,, ={1≤i≤,:i≠ }。 对于0≤i≤2 一1,计算 [小=/XtagI[t][i]。当UI[i】=vlti】对 0≤f≤2 一1均成立时,说明 =0是冗余方程,此时令 ,=,’,并将k增1。如果k≤r,则返回步骤4检测下个方 程 =0是否为冗余方程,否则输出以,中元素为下标的方 程构成的方程组,算法终止; 定理2去除冗余方程的压缩查表算法的存储复杂性为 f +2)x2 ~。 证明:去除冗余方程的压缩查表算法需要的存储空间为 tagl[r][2 ],Vl[2 ]和ui[2 ],故算法的存储复杂性为 fr+2)x2”。 说明:如果直接利用冗余方程的定义去除冗余方程,则 在检验方程 =0是否为冗余方程时,需要穷举X1 X ,…, , 并检测X1,X2,…, 是方程组的解是否等价于它是去掉方程 =0后的方程组的解,此时最大的穷举量是2”。但是,如 果采用本文提出的压缩查表算法,只需穷举/,t=( , ,…, ), 并检测U/[u]=V/I,,]是否对所有“成立即可,此时最大的穷举 量是2 。因此,压缩查表算法也将计算复杂性降低为原来 的1/32。 3.2基于Minisat软件的无冗余方程的代数攻击方法 在去除荣誉方程的压缩查表法基础上,基于Minisat软件 的无冗余方程的代数攻击方法如下: (1)建立以算法中各变换环节的输入输出的各比特位为 未知量的方程组,其中算法的线性变换环节可直接建立以输 入输出的各比特位为未知量的线性方程,非线性变换环节仅 建立以输入输出的各比特位为未知量的低次非线性方程; (2)对于算法中每个非线性变换环节对应的低次非线性 方程构成的方程组,调用去除冗余方程的压缩查表法来去掉 其中的冗余方程,其中去除冗余方程的压缩查表法尽量去除 项数多的冗余方程,保留项数少的方程构成无冗余方程组, 以进一步降低后续转化为SAT问题时产生的语句个数; (3)将排除冗余后的方程组的求解问题转化为SAT问题, 进而利用Minisat软件求解SAT问题从而解得方程组。 说明:对密码算法进行实际的代数攻击时,上述新方法 的前两步均可作为整个代数攻击的预处理过程提前进行,再 将无冗余方程组转化为SAT问题,这样就可以在得到1个或 若干个明密对时,仅需将涉及到明密文的方程转化为SAT问 题从而大大提高攻击效率。 3.3性能评测 本文分别利用已有的基于Minisat软件的代数攻击方法 (1)迭代圈数 =4、每轮含B=40个s盒的CTC算法, 则密钥长度和分组长度均为120 bit。在已知1个明密对和 85个密钥比特的条件下,对剩余35 bit进行攻击。选取 50个密钥及各密钥对应的1个明密对,分别利用已有方法和 新方法进行攻击实验:使用已有方法时Minisat的平均求解时 问为99.44 S;使用新方法时Minisat的平均求解时间为 39.47 S;但是,其中2组实验中,使用已有方法时Minisat 的求解时间小于使用新方法时Minisat的求解时间。新方法将 攻击时间缩短了1/2。 (2)迭代圈数 =6、每轮含B=85个S盒的CTC算法, 则密钥长度和分组长度均为255 bit。在已知1个明密对和 237个密钥比特的条件下,对剩余18 bit进行攻击。选取 5O个密钥及各密钥对应的1个明密对,分别利用已有方法和 新方法进行攻击实验:使用已有方法时Minisat的平均求解时 间为208.74 S;使用新方法时Minisat的平均求解时间为 147.1 S。新方法将攻击时间缩短了1/3。 (3)迭代圈数Nr:6、每轮含B=85个S盒的CTC算法, 则密钥长度和分组长度均为255 bit。在已知1个明密对和 234个密钥比特的条件下,对剩余21比特进行攻击。选取 20个密钥及各密钥对应的1个明密对,分别利用已有方法和 新方法进行攻击实验:使用已有方法时Minisat的平均求解时 间为1 601.43 S;使用新方法时Minisat的平均求解时间为 765.14 S。新方法将攻击时间缩短了1/2。 (4)迭代圈数Nr=6、每轮含B=85个s盒的CTC算法, 则密钥长度和分组长度均为255 bit。在已知1个明密对和 233个密钥比特的条件下,对剩余22 bit进行攻击。选取 2O个密钥及各密钥对应的1个明密对,分别利用已有方法和 新方法进行攻击实验:使用已有方法时Minisat的平均求解时 间为3 209.76 S;使用新方法时Minisat的平均求解时间为 1 581.57s。新方法将攻击时间缩短了1/2。 说明:新方法中去除冗余方程的时间在上述实验中都不 超过2秒。在相同实验条件下,Minisat的求解时间对不同的 明密对差异很大,例如在实验(2)的50例实验中利用新算法 时Minisat的求解时间最短为20.6 S,最长为292.7 S;同时虽 然新方法在平均时间上比原有方法快,但针对个别明密对, 使用新方法的求解时间比原方法求解时问长,如在实验(1)的 50例中,有2例使用新方法的求解时间没有旧方法的快。实 验(2)~实验(4)都未出现这种情况,即使用新方法的求解速度 都比原有的方法快。 对CTC算法来说,本文所提出的新方法平均将攻击时间 缩短了1/2,这也说明新方法的合理性和有效性。因此,冗余 方程的存在降低了基于Minisat软件的代数攻击方法的效率。 4结束语 本文对基于Minisat软件的代数攻击方法进行分析时发 现由该代数攻击方法对某些密码算法所建立的方程组中存在 冗余方程,提出了去除所有冗余方程的压缩查表法,基于该 压缩查表法提出了先去除冗余方程再用Minisat软件求解无 冗余方程组的代数攻击方法,利用新方法对Courtois Toy Ciper(CTC)做了大量实验,实验结果表明对CTC算法来说, 新方法的攻击时间平均缩短了1/2,冗余方程的存在降低了基 于Minisat软件的代数攻击方法的效率。 【6]Kipnis A,Shamir A.Cryptanalysis of the HFE Public Key Cryptosystem by Relinearization[C]//Proc. of Cryptology— Crypto’99.Santa Barbara,California,USA:Springer—Verlag,1999: 19—30. [7]Faugere J C.A New Eficifent Algorithm for Computing Gr6bner Basis(F4)[J].Journal of Pure and Applied Algebra,1999,139(1): 61-88. 参考文献 [1]Courtois N L Bard G V Algebraic Cryptanalysis of the Date Encryption Standard[Z].(2006—01—04).http://eprint.iacr.org/ 2006/402. [8]Faugere J C.A New Eficifent Algorithm for Computing Gr6bner Basis Without Reduction to Zero(F5)[C]//Proc.of ISSAC’02.Lille, France:[s.n.],2002:75—83. [2]Courtois N How Fast can be Algebraic ARacks on Block [9]Seger A J M.Algebraic Attacks from a Gr6bner Basis Perspec— tives[Z]. f2004—07—06).http://www.win.tue.nl/-henkvt/images/ Repo ̄一SegersGB2—1 1—04. Ciphers?[Z].(2006—05—20).http://eprint.iacr.org/2006/1 68. [3】Courtois N T,Pieprzyk J.Cryptanalysis of Block Ciphers with Overdefined Systems of Equations[Z].(2002—1 1-12).http://eprint. iacr.org/2002/044. [10]Bard G、‘Couaois N Gregory C J.Eficifent Methods for Conversion and Solution of Sparse Systems of Low—degree 【4]Courtois N T.Fast Algebraic Attacks on Stream Ciphers with Linear Feedback[C]//Proc.of Cryptology—Crypto’03.Santa Barbara, California,USA:Springer Verlag,2003:176—194. Multivariate Polynomials over OF(2)via SAT-Solvers[Z]. (2007—1 1—12).http://eprint.iacL0rg/2oo7/024. [11]Courtois N L Bard G V Wagner D.Algebraic and Slide Aaacks on KeeLoq[Z].f2007—12—1o).http://eprint.iacr.org/2007/055. [5]Courtois N T,Klimov A,Patarin J.Eficifent Algorithms for Solving Overdefined Systems of Multivariate Polynomial Equations[C]// Proc.of Cryptology—Crypto’00.New York,USA:Springer-Verlag, [12]Courtois N CTC2 and Fast Algebraic Attacks on Block Ciphers Revisited[Z].(2007—09-02).http://www.eprint,iacr.org/2007/152. 2000:392—407 编辑金胡考 (上接第173页) 参考文献 [1]Eschenauer L,Gtigor V D.A Key—management Scheme for Distributed Sensor Networks[C]//Proc.of the 9th ACM Conference on Computer and Communications Security.Washington D.C., [4]Lee J S,Chang C C.Secure Communications for Cluster-based Ad hoc Networks Using Node Identities[J].Journal of Network and Computer Applications,2007,3O(4):1 377-1 396. [5]Koblitz N,Menezes A J,Vanstone S A.The State of Elliptic Curve CryptographyfJ1.Design,Codes and Cryptography,2000,19(2/3): 173—193. USA:ACM Press,2002:41—47. [2]Cha W,Wang G,Cho G.A Pair—wise Key Agreement Scheme in Ad Hoc Networks[C]//Proc.ofICCS’04,Alabama,USA:[s.n.],2004. [6]Schneier B.Applied Cryptography Protocols Algorithms and Source [3]Wang G,Cho G,Bang S.A Pair—wise Key Establishment Scheme without Predistributing Keys for Ad—hoc Networks[C]//Proc.of ICC’05.Seoul,Korea:fs.n.],2005. Code[M].2nd ed.[S.1.]:John Wiley and Sons lnc.,1996. 编辑金胡考 (上接第176页) (3)在推荐因子的计算中,融入了分类结果。当出现恶意 推荐时,通过信任向量的更新来降低推荐节点的某些属性值 参考文献 [1]郭 成,李明楚,姚红岩,等.P2P网络下基于推荐的信任模 (如可靠性、历史推荐信誉度),从而在下次推荐分类时,该 类节点会从可信度高的分组中剔除,从而避免了恶意节点的 再次影响(通常情况下,节点不会轻易放弃通过大量交互积累 型[J1.计算机工程,2008,34(24):1 57—1 59. [2]Teacy W T L,Patel J,Jennings N R.TRAVOS:Trust and Reputation in the Context of Inaccurate Information Sources[J].Autonomous Agents and Multi-Agent Systems,2006,12(2):183-198. 起来的多方面的信誉值,否则有可能得不偿失)。限于篇幅, 此问题将在后续的研究中展开。 【3]赵铁柱,杨秋鸿,梅登华.基于模糊集和灰色关联的P2P信任模 型[JJ.计算机工程,2009,35(6):173—175. 4结束语 本文基于社会网络人际交互的特征,提出了基于动态推 荐的信任评估模型。在获取推荐信任前,较为全面地考察了 推荐节点的可信度,并根据不同交互目的动态选择推荐节点, 从而可有效地避免推荐选择的盲目性,提高推荐的可靠性。 [4]唐 文,陈 钟.基于模糊集合理论的主观信任管理模型研 究【JJ.软件学报,2003,l4(8):1401-1408. [5]}fj慧蓉,邹仕洪,王文东,等.P2P网络层次化信任模型[J]l电子 与信息学报,2007,29(1 1):2560—2563. 编辑张正兴