对称密码算法ARIA和SALSA20的安全性分析

对称密码算法ARIA和SALSA20的安全性分析

论文摘要

密码体制按照加密密钥和解密密钥之间关系可以分为对称密码体制和公钥密码体制.对称密码主要包括分组密码和流密码,具有运行速度快,存储量小,易于软硬件实现等优点.本文的主要研究内容是关于分组密码和流密码的安全性.DES(Data Encryption Standard)[51]在1977年被认可为分组密码的标准,是2000年前应用最为广泛的分组加密算法,分组大小和密钥长度分别为64比特和56比特.随着计算能力的大幅提高,DES的安全强度相对变弱,需要使用新的加密算法来代替.最终美国标准技术局NIST征集高级加密标准AES(Advanced Encryption Standard)以替代DES.1997年NIST宣布征集新算法,1998年第一次AES大会宣布了15个候选算法,1999年召开第二次AES大会,讨论了对候选算法的分析结果,并从中选出5个算法:MARS,RC6[59],Rijndael[25],Serpent[1]和Twofish[56].第三次AES大会宣布由J.Daemen和V.Rijmen设计的Rijndael为最后的胜利者.分组密码的安全性很难得到证明,盲目引进未经安全证明的密码体制具有很大的风险性,因此各国都在致力于设计属于自己的密码体制.现在已经有一些国家制定了本国的密码标准,ARIA算法就是其中之一.ARIA版本0.8[52]是在韩国的一次密码年会中首次公开,迭代轮数为10/12/14,对应的密钥长度为128/192/256,在算法中应用了两个不同S-box.A.Biryukov等给出了这个版本的安全性评估[17],评估中使用了专用线性分析方法取得了较好的攻击结果,他们还指出如果算法的置换层使用4个不同的S-box可以避免这类攻击.ARIA随后在版本0.9[40]使用了4个不同的S-box.当前版本为1.0[53],于2004年在韩国技术标准局(ATS)网页http://www.nsri.re.kr/ARIA/上公布.此版本在轮数上增加两轮且密钥扩展方案略有变动.2004年12月韩国技术标准局正式宣布ARIA为128比特的分组加密算法为标准.另外对ARIA的密码分析还有吴文玲等进行的六轮不可能差分分析[66].现在已经有多种效率高且可以信赖的分组密码,而流密码却不同.流密码此前一般被应用到军事领域,其研究具有一定的保密性,因此流密码的标准化起步较分组密码要晚一些.为了加快流密码的标准化步伐,ECRYPT(欧盟建立的一个为期四年的工程)正在广泛征集流密码算法并对他们进行安全和效率方面的评估.主工程开始于2005年,最初征集到34个流密码算法.2006年2月结束了第一阶段的评估,第二阶段于2007年4月结束,现在处于第三阶段的评估中,此阶段剩下16个算法,Salsa20[3,4]就是其中之一,另外还有Lex,CryptMT,Dragon等.Salsa20于2005年由D.J.Bernstein设计.ECRYPT前两轮的评估对该算法给出了很高的评价,是成为流密码标准的热门候选算法.对Salsa20的安全性分析,主要是P.Crowley给出的五轮截断差分分析[21]和S.Fischer等给出的关于Salsa20的非随机性研究[29].在本文中,我们主要对韩国数据加密标准ARIA和ECRYPT热门候选算法Salsa20进行了安全性分析并得出以下结论.(1)改进的六轮ARIA的不可能差分分析吴文玲等给出了一种六轮不可能差分分析,分析中用到了一种四轮不可能差分特征,该特征可以描述为:(a,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)(?)(0,h,0,0,0,0,0,0,h,h,h,0,0,0,h,0),其中a和h非零.我们对ARIA的不可能差分性质做了进一步的研究,发现存在一类新的不可能差分特征.这类特征可以更好地应用到六轮不可能差分分析.ARIA的四轮不可能差分性质.如果两个明文在字节1,12处不相等,在其余字节处相等,则经过四轮加密后不存在满足以下条件的密文对.(a)两个密文在字节3,11,12,13处不等;(b)两个密文在其它字节处相等;(c)密文差分在字节3,11,12,13处相等.这个四轮不可能差分特征可以描述为:(0,a1,0,0,0,0,O,0,0,0,0,0,a12,0,0,0)(?)(0,0,0,f,0,0,0,0,0,0,0,f,f,f,0,0),其中a1,a12和f非零.我们可以发现更多类似的不可能差分特征,比如:(0,0,0,a3,0,0,0,0,0,0,0,0,0,0,a14,0)(?)(0,f,0,0,0,0,0,0,0,f,0,0,0,0,f,f),(0,0,0,0,0,0,a6,0,0,0,0,0,0,a13,0,0)(?)(0,0,0,0,f,0,0,0,f,0,0,0,0,f,f,0),(0,0,0,0,0,0,0,a7,0,0,0,0,a12,0,0,0)(?)(0,0,0,0,0,f,0,0,0,f,0,0,f,0,0,f).利用这类特征对六轮ARIA进行攻击时,相对于已有的不可能差分分析[66],可以分别减少猜测第一个和第七个子密钥的字节个数,使得攻击更加有效.攻击需要2120个选择明文和296次六轮加密运算,均优于先前的不可能差分分析结果,其中时间复杂度降低了216倍.(2)对ARIA版本1.0的线性攻击ARIA的设计者在版本0.9和1.0中使用了四种不同的S-BoX用以抵抗A.Biryukov等对版本0.8提出的专用线性攻击,这是由于他们认为新版本的算法不存在类似于版本0.8的线性区分器.然而,经过我们的分析发现,ARIA版本1.0仍然无法很好的避免线性攻击.对于ARIA版本1.0的置换层,我们有下面的结论:置换层性质.P(Si(x0)⊕Si(x1)⊕Sj(x2)⊕Sj(x3)=0|x0⊕x1⊕x2⊕x3=0)≈2×2-8.(1)其中si,sj是ARIA置换层中两个不同的S-box.对于ARIA版本1.0的混乱层,我们有下面的两个命题:混乱层性质.对于DL,有下面12个线性关系:(a)y8⊕y10⊕y12⊕y14=x8⊕x10⊕x12⊕x14,(b)y9⊕y11⊕y13⊕y15=x9⊕x11⊕x13⊕x15,(c)y4⊕y5⊕y12⊕y13=x4⊕x5⊕x12⊕x13,(d)y6⊕y7⊕y14⊕y15=x6⊕x7⊕x14⊕x15,(e)y1⊕y2⊕y13⊕y14=x1⊕x2⊕x13⊕x14,(f)y0⊕y3⊕y12⊕y15=x0⊕x3⊕x12⊕x15,(g)y1⊕y3⊕y5⊕y7=x0⊕x2⊕x4⊕x6,(h)y2⊕y3⊕y10⊕y11=x0⊕x1⊕x8⊕x9,(i)y5⊕y6⊕y9⊕y10=x4⊕x7⊕x8⊕x11,(j)y0⊕y2⊕y4⊕y6=x1⊕x3⊕x5⊕x7,(k)y0⊕y1⊕y8⊕y9=x2⊕x3⊕x10⊕x11,(l)y4⊕y7⊕y8⊕y11=x5⊕x6⊕x9⊕x10.由置换层和混乱层的这些结论,我们可以建立12个ARIA版本1.0的线性逼近路线,也就是说,基于这12个路线中的任何一个我们就可以建立一个有利于攻击算法的区分器.例如,一个r轮的区分器为:P(y9r⊕y11r⊕y13r⊕y15r=0|x91⊕x111⊕x131⊕x151=0)≈2-8+2-8r.(2)使用这12个路线中的任意一个,我们都可以成功的攻击7/9/9/轮,对应密钥长度为128/192/256的ARIA版本1.0.攻击结果与先前对版本0.8的攻击相当,这说明改进后的算法对此类攻击的抵抗力仍然比较弱.下面表1是对这两种版本的线性攻击结果对比.(3)关于Salsa20的差分分析.Salsa20的核心函数是一个64字节输入64字节输出的Hash函数,尽管国际上存在对Salsa20的一些差分分析结果,但是有关Salsa20的基本函数的差分性质还未给出,我们对Salsa20中的quarterround函数进行了考察,发现了一些重要的差分性质,例如:(0,△y1[t+7],0,△y3[t+0])→(△z0[t+18],0,0,△z3[t+0]),当t=31时p=1;当t≠31时p=1/4.这些差分性质可以用来对轮函数的差分进行研究,在第六章,我们给出了一个概率为2-50的完整的四轮差分路线.另外,我们还讨论了相关密钥攻击在Salsa20差分分析中的应用,并且结合P.Crowley的五轮截断差分攻击给出一个6轮相关密钥攻击的模型.(4)对Salsa20的两种差分故障攻击.基于两种不同的错误诱导模型,我们首次给出了Salsa20的两种差分故障攻击.第一种错误诱导模型是在存储的中间状态按比特进行诱导错误,另外一种模型是按照字节来诱导错误,相比较而言,后一种模型在实际操作中更易实现.在第一个攻击模型中,对Salsa20-256攻击,使用186个错误密文可以得到186比特的密钥值;对Salsa20-128攻击使用124个错误密文可以得到124比特的密钥值.在第二个攻击模型中,对Salsa20-128攻击,对应ki(i=0,1,2,3),如果选择4n(n>5)个错误密文,恢复ki的31个比特的概率为p=1-(1/2n×31).通过对Salsa20的差分故障攻击,我们深入研究了异或和模加两种运算之间的关系.异或和模加是密码算法设计中常用的两种基本运算,它们同时被应用到很多密码算法的设计中,如Twofish,MD4,MD5,NLS等.对这两种运算之间的关系的研究在密码学中具有重要的理论意义.

论文目录

  • 中文部分
  • 摘要
  • Abstract
  • 第一章 引言与主要结果
  • §1.1 现代密码学
  • §1.2 分组密码
  • §1.2.1 分组密码的发展
  • §1.2.2 分组密码的安全性分析
  • §1.3 流密码与eSTREAM工程
  • §1.4 本文组织与主要结果
  • 第二章 韩国加密标准ARIA描述
  • §2.1 ARIA的加密与解密
  • §2.1.1 轮函数包括三部分
  • §2.1.2 置换层(SL)
  • §2.1.3 混乱层(DL)
  • §2.2 密钥扩展算法
  • §2.3 ARIA的发展史
  • 第三章 流密码算法Salsa20的描述
  • §3.1 Salsa20的轮函数
  • §3.2 Salsa20的加密与解密
  • 第四章 ARIA和Salsa20已有的安全性分析
  • §4.1 ARIA已有的安全性分析
  • §4.1.1 经典的线性分析和差分分析
  • §4.1.2 截断差分分析
  • §4.1.3 专用线性攻击
  • §4.1.4 Alex.Biryukov等对ARIA分析的总结
  • §4.1.5 不可能差分分析
  • §4.2 Salsa20已有的安全性分析
  • §4.2.1 Salsa20简化至5轮的截断差分分析
  • §4.2.2 Salsa20的非随机性
  • §4.2.3 简化至8轮的Salsa20的差分分析
  • 第五章 ARIA安全性分析的新的结果
  • §5.1 关于混乱层DL
  • §5.2 对ARIA改进的不可能差分分析
  • §5.2.1 ARIA的四轮不可能差分性质
  • §5.2.2 简化至六轮的ARIA的不可能差分分析
  • §5.2.3 小结
  • §5.3 对ARIA版本1.0的线性攻击
  • §5.3.1 ARIA置换层和混乱层的一些性质
  • §5.3.2 对ARIA的线性攻击
  • §5.3.3 小结
  • §5.4 关于ARIA的密钥扩展
  • 第六章 Salsa20的差分分析与差分故障分析
  • §6.1 Salsa20的差分分析
  • §6.1.1 QR的差分
  • §6.1.2 轮函数的差分
  • §6.2 Salsa20的差分故障攻击
  • §6.2.1 对Salsa20第一种模式下的差分故障攻击
  • §6.2.2 基于第二种故障诱导模型的差分故障攻击
  • §6.2.3 小结
  • 参考文献
  • 致谢
  • 作者简介
  • 学位论文评阅及答辩情况表
  • 英文部分
  • Abstract
  • 摘要
  • Notations
  • Chapter 1 Introduction
  • §1.1 Modern Cryptography
  • §1.2 Block Cipher
  • §1.2.1 Advancement of Block Cipher
  • §1.2.2 Cryptanalysis of Block Cipher
  • §1.3 Stream Cipher and eSTREAM Project
  • §1.4 Organization and Outline
  • Chapter 2 Description of Korean Block Cipher Standard: ARIA
  • §2.1 Encryption and Decryption of ARIA
  • §2.1.1 Round Function of ARIA
  • §2.1.2 Substitution Layer (SL)
  • §2.1.3 Diffusion Layer (DL)
  • §2.2 Key Expansion
  • §2.3 History
  • Chapter 3 Description of Salsa20
  • §3.1 Round Function
  • §3.2 Encryption and Decryption of Salsa20
  • Chapter 4 Previous cryptanalysis of ARIA and Salsa20
  • §4.1 Previous Cryptanalysis of ARIA
  • §4.1.1 Classical Linear and Differential Cryptanalysis
  • §4.1.2 Truncated Differential Cryptanalysis
  • §4.1.3 Dedicated Linear Attack
  • §4.1.4 Summary by A. Biryukov et al
  • §4.1.5 Impossible Differential Cryptanalysis
  • §4.2 Previous Cryptanalysis of Salsa20
  • §4.2.1 Truncated Differential Cryptanalysis of Five Rounds of Salsa20
  • §4.2.2 Non-randomness in Salsa20
  • §4.2.3 Differential Cryptanalysis of Eight Rounds of Salsa20
  • Chapter 5 New Results of the Cryptanalysis of ARIA
  • §5.1 Note on Diffusion Layer
  • §5.2 Improved Impossible Differential Attack of ARIA
  • §5.2.1 Four Rounds Impossible Differential Property of ARIA
  • §5.2.2 Impossible Differential Cryptanalysis of ARIA Reduced to Six Rounds
  • §5.2.3 Conclusion
  • §5.3 Dedicated Linear Attack on ARIA Version 1.0
  • §5.3.1 Some properties of ARIA
  • §5.3.2 Dedicated Linear Attack on ARIA
  • §5.3.3 Conclusion
  • §5.4 Note on the Key Schedule of ARIA
  • Chapter 6 Differential Analysis and Differential Fault Analysis of Salsa20
  • §6.1 Differential Analysis of Salsa20
  • §6.1.1 On Differential of QR
  • §6.1.2 Differential of Round Function
  • §6.2 Differential Fault Analysis of Salsa20
  • §6.2.1 Differential Fault Analysis of Salsa20 with the First Fault Model
  • §6.2.2 Differential Fault Analysis of Salsa20-128 with the Second Fault Model
  • §6.2.3 Conclusion
  • Bibliography
  • Acknowledgement
  • CURRICULUM VITAE
  • 学位论文评阅及答辩情况表
  • 相关论文文献

    标签:;  ;  ;  ;  ;  ;  ;  

    对称密码算法ARIA和SALSA20的安全性分析
    下载Doc文档

    猜你喜欢