代数攻击教学提纲.ppt
《代数攻击教学提纲.ppt》由会员分享,可在线阅读,更多相关《代数攻击教学提纲.ppt(132页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、代数攻击代数攻击内容简介代数攻击的起源非线性方程组求解算法简介基于LFSR的序列密码算法的代数攻击标准代数攻击快速代数攻击布尔函数的代数免疫性简介基于NFSR的序列密码算法的代数攻击线性前馈模型的代数攻击Cube攻击结束语2什么是代数攻击通过求解一组代数方程来实现对密码算法的攻击。如何构造方程如何求解方程3代数攻击的起源1949,Shannon,Communication Theory of Secret Systems“.the cryptanalyst can set up equations for the different key elements k1,k2,kr(namely t
2、he enciphering equations).Each of these equations should therefore be complex in the ki,and involve many of them.Otherwise the enemy can solve the simple ones and then the more complex ones by substitution.”4代数攻击的起源多变元公钥密码算法基于的困难问题:求解有限域上一组随机二次多变元多项式方程组是NP-hard问题.公钥:一组二次多变元多项式f1(x1,xn),f2(x1,xn),fn(
3、x1,xn)kx1,xn加密:设明文(p1,p2,pn)kn,则密文(c1,c2,cn)满足 c1 f1(p1,p2,pn)c2 f2(p1,p2,pn)cn fn(p1,p2,pn)5代数攻击的起源k=Fq,K=FqnknknKKknknL1L2F(X)=X1+q knkn(f1(x1,xn),f2(x1,xn),fn(x1,xn)1idid6代数攻击的起源2003年前后,Nicolas T.Courtois等人将代数攻击思想用于分组密码和序列密码。代数攻击对基于LFSR的序列密码算法构成严重威胁。7非线性方程组求解算法简介非线性方程组求解算法简介8非线性方程组求解算法简介计算复杂度理论求解
4、有限域上一组随机二次多变元多项式方程组是NP-hard问题.实际情形从具体的密码算法中得到的非线性方程组往往不符合随机的要求,这为代数攻击中解方程组提供了可能.9非线性方程组求解算法简介线性化方法Grbner基方法SAT方法10线性化方法用新变元代替高次(2)单项式,使得原始的非线性方程组转化为线性方程组.再利用Gauss消元法求解关于新变元的线性方程组根据新变元的取值求解原始变元11线性化方法x1x2x4x1x3x5x0 x2x6x2x3x7x0 x3x8x0 x1x9x4+x5+x0+x2=0 x6+x4+x7+x1+x3+1=0 x8+x7+x0+x1+x2=0 x9+x8+x5+x2+
5、x3+1=0 x9+x6+x0+x3+1=0 x4+x5+x0=0 x6+x4+x7+x1=0 x8+x7+x2=0 x9+x8+x5+x1+x3+1=0 x9+x6+x0+x2=0 x1x2+x1x3+x0+x2=0 x0 x2+x1x2+x2x3+x1+x3+1=0 x0 x3+x2x3+x0+x1+x2=0 x0 x1+x0 x3+x1x3+x2+x3+1=0 x0 x1+x0 x2+x0+x3+1=0 x1x2+x1x3+x0=0 x0 x2+x1x2+x2x3+x1=0 x0 x3+x2x3+x2=0 x0 x1+x0 x3+x1x3+x1+x3+1=0 x0 x1+x0 x2+x0
6、+x2=0 x0=0,x1=0,x2=0,x3=1,x4=0,x5=0,x6=0,x7=0,x8=0,x9=012线性化方法13线性化方法Relinearization方法A.Kipnis,A.Shamir.Cryptanalysis of the HFE Public Key Cryptosystem,Crypto99.基本思想第一次线性化:xaxb=yab,xcxd=ycd,因为 (xaxb)(xcxd)(xaxc)(xbxd)(xaxd)(xbxc)所以 yabycd=yacybd=yadybcyab=lab(z1,z2,),ycd=lcd(z1,z2,),第二次线性化:zizj=vij
7、,方程数量的增加大于变方程数量的增加大于变元数量的增加。元数量的增加。线性相关的方程。线性相关的方程。需要的方程个数大约为线性化方需要的方程个数大约为线性化方法所需方程个数的五分之一法所需方程个数的五分之一(xaxb)(xcxd)(xexf)(xaxd)(xbxc)(xexf)14线性化方法eXtended Linearizations方法N.Courtois,A.Klimov,J.Patarin,and A.Shamir.Efficient algorithms for solving overdefined systems of multivariate polynomial equati
8、ons,EUROCRYPT 200015线性化方法eXtended Linearizations方法设 fi(x1,x2,xn)0,i1,2,m 是二元域F2上的非线性方程组.16线性化方法17线性化方法eXtended Linearizations方法Free=minT,R or minT,R 1 or minT,R 2n10101020202020m10161820406065Free11017417542084012601350Free/R1.0000.98860.88381.00001.00001.00000.9890Free/T0.62500.98860.99430.31090.62
9、180.93620.9993D=318线性化方法eXtended Linearizations方法D345Free420401021699Free/R1.00000.95020.7301Free/T0.31090.64721.000n=20,m=2019线性化方法Relinearization方法和eXtended Linearizations方法线性化方法的改进,减少了线性化方法所需方程数量方程数量与线性化的规模相当时,计算复杂度是多项式时间方程数量与方程规模相当的情形计算复杂度无法估计20Grbner基方法Grbner基Grbner Bases were introduced by Bru
10、no Buchberger in 1965.The terminology acknowledge the influence of Wolfgang Grbner on Buchbergers work.给定零维理想I,找Kx1,xn/I在K上的一组基 Grbner Bases,A Computational Approach to Commutative Algebra.GTM 141.(Chapter 5 Grbner Bases)21Grbner基方法多变元多项式环F2x1,xn 项集:TT(x1,xn),T(f)x1,x1x2,x12x2x3 f=x1+x1x2+x2x3x4,T(f
11、)=x1,x1x2,x2x3x4项序:定义在项集T上的大小关系字典序:x2x3 x1次数字典序:x1 x2x3 首项HT(f)线性序线性序对对任意的任意的X T(x1,xn),有有1 X;对对Y,X1,X2 T(x1,xn),有有X1 X2YX1 YX2.22Grbner基方法多项式约化(除法)P F2x1,xn,f,gF2x1,xnf 模P约化到g:f g f g mod Id(P)若g模P不能再约化了,则g称为f 模P的一个正规型f 0 f Id(P)Pf g1 p1 g2 p2 gk=g pkP23Grbner基方法什么是Grbner基F2x1,x2,.,xn中理想的一组特殊的生成元I=
12、Id(G),对任意的fI,存在gG满足HT(g)整除HT(f)给定项序,既约Grbner Bases唯一f 模G的正规型唯一f 0 f Id(G)G24Grbner基方法Grbner基算法Buchberger 算法(Buchberger,1965)F4 算法(Jean-Charles Faugre,1999)F5算法(Jean-Charles Faugre,2002)GVW(S.H.Gao,F.Volny,and M.S.Wang.,2010)25Grbner基方法Grbner基与解方程设 fi(x1,x2,xn)0,i1,2,m是二元域F2上非线性方程组.在字典序下,计算由 f1,fm,x1
13、2x1,xn2xn生成的理想I的既约Grbner基G*=g1,g2,gk.解方程组gi=0,i=1,k,即得原方程组的解.General MethodGeneral Method26Grbner基方法Grbner基与解方程设 fi(x1,xn)0,i1,2,m是二元域F2上非线性方程组.在次数字典序下,计算由 f1,fm,x12x1,xn2xn生成的理想I的既约Grbner基G.利用Grbner基的换序算法,计算在字典序下理想I的既约Grbner基G*=g1,g2,gk.解方程组gi=0,i=1,k,即得原方程组的解.General MethodGeneral Method27Grbner基方
14、法Grbner基与解方程令Gi=G*F2xi,xn,i=1,2,n,则依次解方程组Gn=0,Gn1=0,G1=0可得方程组的全体解.General MethodGeneral Method28Grbner基方法Grbner基与解方程定理 设 fi(x1,xn)0,i1,2,m是二元域F2上非线性方程组,若该方程组在F2中有唯一一组解(x1,x2,xn)(a1,a2,an),则由 f1,fm,x12x1,xn2xn生成的理想的既约Grbner基为x1a1,x2a2,xnan.29Grbner基方法优点方程数量要求低局限性存储复杂度大计算复杂度无法估计30SAT方法Boolean Satisfia
15、bility Problem(SAT)布尔变量(Boolean variable):取两个值True或False的变量布尔运算(Boolean operations):and,or,not 布尔公式(Boolean formula):由,变量,括号构成的公式可满足(satisfiable)不可满足(unsatisfiable)Satisfiability Problem判断一个布尔公式是否可满足第一个NP-完全问题x1(x2x3)可满足的:可满足的:x1=T,x2=T,x3=T.31SAT方法Boolean Satisfiability Problem(SAT)字(literal):一个布尔变
16、量或者一个布尔变量的取“非”子句(clause):一些字的“或”合取范式(CNF):一些子句的“与”构成的布尔公式任何布尔公式都可以转化成CNF一个CNF是“可满足”的该CNF中的每一个子句是“可满足”的.Eg:x1(x2 x3)(x3 x4)x532SAT方法Boolean Satisfiability Problem(SAT)国际上对SAT实例的描述统一采用CNF,并用DIMACS格式写成以.cnf为后缀名的文件,所有的SAT求解器都只能识别DIMACS格式的CNF文件.SAT Competition:20022005,20072013Rsat,minisat,cryptominisat3
17、3SAT方法SAT与解方程将非线性方程组转化为DIMACS格式的SAT实例34SAT方法SAT与解方程将非线性方程组转化为DIMACS格式的SAT实例ANF转化为CNFf1(x1,xn)0f2(x1,xn)0fm(x1,xn)0(f1(x1,xn)+1)(f2(x1,xn)+1)(fm(x1,xn)+1)35SAT方法SAT与解方程将非线性方程组转化为DIMACS格式的SAT实例ANF转化为CNFl个变元的异或加表示成CNF需要2l1个子句(a b c)(ab c)(a bc)(abc)a b c=036SAT方法SAT与解方程将非线性方程组转化为DIMACS格式的SAT实例ANF转化为CNF
18、l个变元的异或加表示成CNF需要2l1个子句Mate Soos开发的求解器cryptominisat输入格式支持异或运算37SAT方法SAT与解方程将非线性方程组转化为DIMACS格式的SAT实例ANF转化为CNFcryptominisat输入格式支持异或运算用SAT求解器判断SAT实例是否可满足若SAT实例可满足,则方程组有解。此时,SAT求解器会返回一组使SAT实例取值为“真”的一组布尔变量的取值,从而获得方程组的一组解.若SAT实例不满足,则方程组没有解。38SAT方法优点算法过程中存储复杂度不会变大,基本由方程组转化后的SAT实例的规模决定。计算复杂度主要由方程的稀疏度决定。G.V.B
19、ard,N.T.Courtois,and C.Jefferson.Efficient Methods for Conversion and Solution of Sparse Systems of Low-Degree Multivariate Polynomials over GF(2)via SAT-Solvers.http:/eprint.iacr.org/2007/024/局限性返回一组解计算复杂度无法估计39SAT方法SAT在序列密码分析中的应用N.T.Courtois,G.V.Bard,and D.Wagner.Algebraic and Slide Attacks on Kee
20、Loq,FSE 2008.对于64轮Keeloq算法,已知两对明密文,用MiniSat 2.0.解方程,约0.3秒可求得密钥.C.McDonald,C.Chernes,J.Pieprzyk.Attacking Bivium with MiniSat.http:/eprint.iacr.org/2007/129,2007.猜测34比特,用minisat解一个方程的时间约440秒Tobias Eibach,Enrico Pilz,and Sebastian Steck.Comparing and optimising two generic attacks on Bivium.猜测48比特,用Rs
21、at解一个方程的时间约0.116秒40基于基于LFSR的序列密码算法的代数攻击的序列密码算法的代数攻击41基于LFSR的前馈模型n级LFSRm(x)=c0+c1x+cn 1xn 1+xnsst+n=st+c1st+1+cn 1sn 1+t+cnsn+t,t 0.42基于LFSR的前馈模型n级LFSRf(x0,x1,xn 1)m(x)=c0+c1x+cn 1xn 1+xnz=(z0,z1,zl 1,)43Toyocrypt63,64,125的一的一个置换个置换17次单项式次单项式44基于LFSR的序列密码算法的代数攻击第一步:获得关于密钥比特和输出密钥流比特的代数关系。fi(k0,k1,kn,z
22、t1,zt2,ztm)=0,i=1,2,l.第二步:将已知的密钥流比特带入方程,从而获得关于密钥变量的代数方程组。gi(k0,k1,kn)=0,i=1,2,l.第三步:解代数方程组,验证解,从而获得密钥。预计算预计算45标准标准代数攻击代数攻击46基于LFSR的序列密码算法的代数攻击标准代数攻击N.Courtois,and W.Meier.Algebraic attacks on stream ciphers with linear feedback.EUROCRYPT 200347基于LFSR的前馈模型的标准代数攻击寄存器的第t时刻状态St=(s0t,s1t,sn1t)寄存器初始状态S0=(
23、s0,s1,sn1)=(k0,k1,kn1)第t时刻密钥流比特zt和第t时刻状态St的代数关系:zt=f(St)=f(s0t,s1t,sn1t)n级LFSRf(x0,x1,xn 1)m(x)=c0+c1x+cn 1xn 1+xnz=(z0,z1,zl 1,)48基于LFSR的前馈模型的标准代数攻击St+1=St M状状态转移矩移矩阵n级LFSRf(x0,x1,xn 1)m(x)=c0+c1x+cn 1xn 1+xnz=(z0,z1,zl 1,)49基于LFSR的前馈模型的标准代数攻击寄寄存存器器的的第第t时刻刻状状态和和初始状初始状态的代数关系:的代数关系:St=S0 Mt可可以以建建立立第第
24、t时刻刻密密钥流流比比特特zt和和初初始始状状态比比特特的的代数关系:代数关系:zt=f(St)=f(S0 Mt)=f(Lt(k0,k1,kn 1)n级LFSRf(x0,x1,xn 1)m(x)=c0+c1x+cn 1xn 1+xnz=(z0,z1,zl 1,)50基于LFSR的前馈模型的标准代数攻击若若已已知知密密钥流流比比特特为zt1,zt2,ztl,则zt1=f(Lt1(k0,k1,kn 1)zt2=f(Lt2(k0,k1,kn 1)ztl=f(Ltl(k0,k1,kn 1)前前馈函函数数的的次次数数决决定定了了方方程程组的次数的次数n级LFSRf(x0,x1,xn 1)m(x)=c0+
25、c1x+cn 1xn 1+xnz=(z0,z1,zl 1,)51基于LFSR的前馈模型的标准代数攻击若若已已知知密密钥流流比比特特为zt1,zt2,ztl,则zt1=f(Lt1(k0,k1,kn 1)zt2=f(Lt2(k0,k1,kn 1)ztl=f(Ltl(k0,k1,kn 1)前前馈函函数数的的次次数数决决定定了了方方程程组的次数的次数例如例如Toyocrypt128级LFSR前前馈函函数数f(x0,x1,x127)是是一个一个63次的布次的布尔函数函数 52基于LFSR的前馈模型的标准代数攻击降低方程次数f(x0,x1,xn 1)g(x0,x1,xn 1)zti=f(Lti(k0,k1
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 代数 攻击 教学 提纲
限制150内