文档库 最新最全的文档下载
当前位置:文档库 › des差分攻击

des差分攻击

des差分攻击
des差分攻击

针对Des加密的差分攻击

题目要求

编写程序,实现N 轮(N=1 或2)DES 的差分攻击。如能攻击N=3

则更好

简述des加密原理

1.对于64位明文经过ip矩阵置换变为打乱顺序的明文进入加密轮中,这64位明文分为前后各32位,L i,R i ,此R i直接复制给下级轮的L i+1,然后R i经过E矩阵扩展为48位E i。

2.同时64位密钥经过pc-1矩阵置换后,去掉8位校验位变为56位密钥,分为前后各28位分别进行不同位数的循环左移,得到的左移后的密钥进行pc-2矩阵置换得到48位的密钥k i。

3.将得到的E i、k i进行异或计算(模二加法),得到的48位结果每六比特一组,分为八组进入八个s盒子。

4.在s盒中,六比特第一第六比特控制行数,第二三四五位控制列数计算得一个0-15的十进制数,转换为四位二进制数输出。这样八个s盒共得到32位结果。

5.s盒输出结果与L i异或,再经过另一P置换得到R i+1。此L i+1、R i+1也就是一轮加密结果,如

果继续进行加密可以按照上述方法重复进行。

6.最终得到的结果还要经过初始置换的逆置换作用,得到密文。

Des 解密

Des 解密算法和加密算法使用相同的算法过程,不同之处在于解密时要把子密钥使用的顺序和加密时相反。

Des 差分攻击的理论与实现

差分攻击理论依据:

上文中des 加密原理中简略但全面地介绍了加密过程,可以看到其中主要起作用的算法有:矩阵置换、扩展、左移、异或、左右互换、s 盒作用 。其中对攻击者来说最麻烦的要说s 盒一步,破解des 体系关键在s 盒。

乍一看六位输入与四位输出貌似没什么关系。但事实上,对于同一个s 盒具有相同输入异或的所有输入六比特组的输出四比特异或值有一定规律。

具体些说,对于输入异或相同的明文对B ,B*仅有32组,而这32组输出异或却并不是均匀分布,而是仅分布在很少的几个四比特值中;也可以说具有相同输入异或且输出四比特异或也相同的六比特输入数量不多且分布不均匀。正是这种输入输出输出异或间的不均匀性可以被攻击者利用并破解密钥。

此方法对可选择明文攻击尤为有效。

具体分析:

攻击时我们需要将要与子密钥异或运算的48位E i 和与其对应的s 盒32位输出 C i 。 在此笔者仅对一个s 盒进行讲解。E i 中取前六位E ,C i 中取前四位C 。

设s 盒的直接六位输入为B ,k i 的前六位为 K 。

则有B E K ⊕= 另取一组明密文对 E* ,C* 他们的异或 E ’ ,C ’

即: *B*E K ⊕= S(*)*B C = *'E E E ⊕= *'C C C ⊕=*'C C C ⊕=

则对应'***'E E E E K E K B B B =⊕=⊕⊕⊕=⊕=

又由上文理论分析中'B 与'C 的关系,有多组明密文对时可以破解出子密钥K 。

给出一组确定的E ,E*,C ,C* 则对应的B ’ C ’已知,可对输入B 用000000-111111遍历一遍,找到满足两组异或的明文对,并分别和E 异或得到的六比特就是K 的可能值。对此可设置一组计数器,对每一个可能的K 值在计数器上加一,多组明密文对下来则可以找到唯一最大数的准确K ,一般组数3组可以找到密钥,笔者在算法中设置了5组。

算法实现(1-3轮):

经过上述分析可知,若能选择性地得到与某轮和子密钥K 异或的E 并能得到该轮的输出C 则可以破解密钥。

对于一轮des ,R 0扩展后便得到E 加密的输出R 1,经过110()P R L -⊕得到C 。则利用上述方法可以破解密钥。

对于二轮des ,已知明文对00L R ,00**L R 并可得到对应的两组密文22L R ,22**L R 。 2R 可表示为2112012(,)(,)R L f R K R f R K =⊕=⊕

同理2112012**(*,)*(*,)R L f R K R f R K =⊕=⊕

则有2001212'*(*,)(,)R R R f R K f R K =⊕⊕⊕

若取00*R R =

则R2’可简化为

21212'(*,)(,)R f R K f R K =⊕

2(*)()'P C P C R ⊕=

则12*(')C C P R -⊕=

至此我们得到了第二轮s 盒输出异或

注意到32L R =,则利用扩展函数作用L 3则可得到输入32()()E L E R =,和32(*)(*)E L E R = 33'(*)()E E L E L =⊕

则我们又得到了第二轮s 盒输入异或,K 2则可以破解。

对于三轮des 情况稍稍有些复杂,设明文00L R ,00**L R 为两对明文,对应三轮输出的密文33L R ,33**L R 。

3R 可表示为:322312300123(,)(,)(,)(,)R L f R K R f R K L f R K f R K =⊕=⊕=⊕⊕ 同理300123**(*,)(*,)R L f R K f R K =⊕⊕

则3001012323'33*'*(*,)(,)(,)(*,)R R R L f R K f R K f R K f R K =⊕=⊕⊕⊕⊕

现在为方便攻击运算,选择明文使00*R R =

则有0101(*,)(,)000f R K f R K ⊕= 0

∴此时有302323'33*'*(,)(*,)R R R L f R K f R K =⊕=⊕⊕

由于3'R ,0'L 可由已知计算得到 现考虑2323(,)(*,)f R K f R K ⊕

又23(,)()f R K P C =,23(*,)(*)f R K P C =

∴30(*)()''P C P C R L ⊕=⊕ 由于P 置换已知

故1

30*('')'C C P R L C -⊕=⊕=

即至此我们已经在理论上能得到明文对的输出异或

另外,由于23R L =,23**R L =

因此使用扩展函数可轻易地得到,*E E 即3()E E L =,3*(*)E E L =

即我们又得到了与密文对应的两组E ,则按照上文所述可以破解子密钥。

获得完整密钥

然而此时我们若破解成功也仅得到了48位子密钥,原本使用的密钥却是56位。

剩下的8位我们可以进行穷举攻击,因为82256=,最多遍历256种可能密钥对计算机来说相当容易。

当然我们也可以推导出别的轮的输入输出异或表达式再次进行攻击,反置换后扩充原来的8位空缺得到完整的密钥,不过显然很费精力了…… 代码概况与输出结果

按照上文所述,其实在攻击中只要找到某轮输入输出异或即可破解,并且上文也分析了1、2、3轮攻击时最后一轮结果获取方法。

如此说来本质上1、2、3轮des 其实是一样的,所以笔者在自己的1轮攻击下稍作改动又增加了2、3轮攻击,不过代码并不完整,每轮加密没有写成函数,攻击也只到获取48位子密钥为止没有继续寻找剩下八位,不过都是细枝末节,对理解des 意义不大,笔者便没有花时间去编……

并且在编程序时候笔者还不知道有按位异或 “ ^ ”这个运算符存在 (T. T--) ,产生了很多麻烦……

代码共八百余行,注释不是很多……

实际攻击过程中没有进行最后的P -1转置运算。

编译环境

Visual C++ 2010 Express

程序功能

程序主要针对对des加密系统的攻击,没有给用户设置直接的文本加密功能。开始输入8位字符(对应64位密钥),选择加密轮数(1、2、3),然后直接对加密系统进行更攻击。

首先随机生成一对符合轮数要求(如2、3轮要求

00*

R R

)的明文,对该明文按照所选轮数进行加密,得到两组对应密文,分别求取异或,按照上文方法构造计数器,发现符合条件的密钥可能值在对应的计数器上加1,此过程重复5次(3次以上基本就不会有问题了),在各个计数器中寻找计数为5的对应值,则此数对应的6位0、1比特就是子密钥的6比特。结束后输出:

1用户输入的密钥(0、1)

2攻击该轮的当前子密钥

3攻击结束时计数器情况

4得到的子密钥

执行截图

示例程序密钥均设为d i a n a s u n

可以看到当前的子密钥和我们得到的密钥相同,攻击有效。

结果如图

结果……

对SMS4密码算法改进的差分攻击

软件学报ISSN 1000-9825, CODEN RUXUEW E-mail: jos@https://www.wendangku.net/doc/2814141114.html, Journal of Software,2018,29(9):2821?2828 [doi: 10.13328/https://www.wendangku.net/doc/2814141114.html,ki.jos.005271] https://www.wendangku.net/doc/2814141114.html, ?中国科学院软件研究所版权所有. Tel: +86-10-62562563 对SMS4密码算法改进的差分攻击? 赵艳敏1,2, 刘瑜1,3, 王美琴1 1(山东大学数学学院,山东济南 250100) 2(保密通信重点实验室,四川成都 610041) 3(潍坊学院计算机工程学院,山东潍坊 261041) 通讯作者: 王美琴, E-mail: mqwang@https://www.wendangku.net/doc/2814141114.html, 摘要: 差分分析和线性分析是重要的密码算法分析工具.多年来,很多研究者致力于改善这两种攻击方法. Achiya Bar-On等人提出了一种方法,能够使攻击者对部分状态参与非线性变换的SPN结构的密码算法进行更多轮数的差分分析和线性分析.这种方法使用了两个辅助矩阵,其目的就是更多地利用密码算法中线性层的约束,从而能攻击更多轮数.将这种方法应用到中国密码算法SMS4的多差分攻击中,获得了一个比现有攻击存储复杂度更低和数据复杂度更少的攻击结果.在成功概率为0.9时,实施23轮的SMS4密钥恢复攻击需要2113.5个明文,时间复杂度为2126.7轮等价的23轮加密.这是目前为止存储复杂度最低的攻击,存储复杂度为217个字节. 关键词: SMS4;分组密码;多差分攻击;矩阵;存储复杂度 中图法分类号: TP309 中文引用格式: 赵艳敏,刘瑜,王美琴.对SMS4密码算法改进的差分攻击.软件学报,2018,29(9):2821?2828.https://www.wendangku.net/doc/2814141114.html,. cn/1000-9825/5271.htm 英文引用格式: Zhao YM, Liu Y, Wang MQ. Improved differential attack on 23-round SMS4. Ruan Jian Xue Bao/Journal of Software, 2018,29(9):2821?2828 (in Chinese).https://www.wendangku.net/doc/2814141114.html,/1000-9825/5271.htm Improved Differential Attack on 23-Round SMS4 ZHAO Yan-Min1,2, LIU Yu1,3, WANG Mei-Qin1 1(School of Mathematics, Shandong University, Ji’nan 250100, China) 2(Science and Technology on Communication Security Laboratory, Chengdu 610041, China) 3(School of Computer Engineering, Weifang University, Weifang 261041, China) Abstract: For years, many cryptanalysts have been devoted to working on analyzing the security of block ciphers against differential attacks and linear attacks. Thus, there are copious methods to cryptanalyze a block cipher with differential and linear cryptanalyses. An original method proposed by Achiya Bar-On et al. enables attackers to analyze more rounds of a partial SPN network in differential and linear cryptanalyses. The method involves two auxiliary matrices, which makes it possible that more constraints on differences can be exploited to sieve the inappropriate pairs. In the paper, the method is implemented to SMS4 in the setting of a multiple differential cryptanalysis. By utilizing the 214 existing 19-round differential characteristics, the paper carries out a 23-round key-recovery attack on SMS4, which leads to a lower data and memory complexities than previous multiple differential attack results on 23-round SMS4, namely, ?基金项目: 国家重点基础研究发展计划(973)(2013CB834205); 国家自然科学基金(61133013, 61572293, 61602276); 教育部新世纪优秀人才项目(NCET-13-0350); 山东省自然科学基金(ZR2016FM22); 保密通信重点实验室基金项目(9140c110207150c11050) Foundation item: National Grand Fundamental Research (973) Program of China (2013CB834205); National Natural Science Foundation of China (61133013, 61572293); Program for New Century Excellent Talents in University of China (NCET-13-0350); Shandong Natrural Science Foundation of China (ZR2016FM22); Science and Technology on Communication Security Laboratory Funded Projects (9140c110207150c11050) 收稿时间:2016-12-19; 修改时间: 2017-02-05; 采用时间: 2017-02-28; jos在线出版时间: 2017-03-31 CNKI网络优先出版: 2017-03-31 21:54:41, https://www.wendangku.net/doc/2814141114.html,/kcms/detail/11.2560.TP.20170331.2154.006.html

SHACAL-2算法的差分故障攻击

第32卷第2期电子与信息学报Vol.32No.2 2010年2月 Journal of Electronics & Information Technology Feb. 2010 SHACAL-2算法的差分故障攻击 魏悦川①李琳②④李瑞林②李超①②③ ①(国防科技大学计算机学院长沙 410073) ②(国防科技大学理学院长沙 410073) ③(中国科学院软件所信息安全国家重点实验室北京 100039) ④(西安陆军学院西安 710108) 摘要:该文采用面向字的随机故障模型,结合差分分析技术,评估了SHACAL-2算法对差分故障攻击的安全性。 结果显示:SHACAL-2算法对差分故障攻击是不免疫的。恢复出32 bit子密钥的平均复杂度为8个错误密文,完全恢复出512 bit密钥的复杂度为128个错误密文。 关键词:分组密码;SHACAL-2;差分故障攻击 中图分类号:TN918 文献标识码:A 文章编号:1009-5896(2010)02-0318-05 DOI: 10.3724/SP.J.1146.2008.01575 Differential Fault Analysis on SHACAL-2 Wei Yue-chuan① Li Lin②④ Li Rui-lin②Li Chao①②③ ①(College of Computer Science of National University of Defense Technology, Changsha 410073, China) ②(Science College of National University of Defense Technology, Changsha 410073, China) ③(State Key Laboratory of Information Security, Graduate University of Chinese Academy of Sciences, Beijing 100039, China) ④(Xi’an Army Command College, Xi’an 710108, China) Abstract:By using word-oriented fault model and the technique of differential cryptanalysis, the security of SHACAL-2 against differential fault analysis is evaluated. Result shows that SHACAL-2 is not immune to such kind of attack. 8 faulty ciphertexts can recover a sub key of 32 bit on average and 128 faulty ciphertexts are needed to recover all the 512 bit keys. Key words:Block cipher; SHACAL-2; Differential fault analysis 1引言 2003年,欧洲NESSIE(New European Schemes for Signatures, Integrity and Encryption)计划宣布了新的分组密码标准算法:Rijndael算法,MISTY1算法,Camellia算法和SHACAL-2算法,其中SHACAL-2算法的分组和密钥长度最长,安全性被认为最高,它是由标准Hash函数SHA-256演变而来的,分组长度为256 bit,密钥长度为512 bit,迭代次数为64轮。 故障攻击是侧信道攻击方法的一种,由Boneh 等人于1996年首次提出[1],他们利用密码计算过程中的错误,来攻击基于RSA-CRT实现的签名方案。一般而言,硬件设备均能正确地执行各种密码运算,但在外界干扰的情况下,密码模块的运算过程中可 2008-11-27收到,2009-11-04改回 国家自然科学基金(60803156)和信息安全国家重点实验室开放基金(01-07)资助课题 通信作者:魏悦川 wych004@https://www.wendangku.net/doc/2814141114.html, 能出现硬件故障或运算错误,利用这些故障行为或错误信息恢复密钥的攻击即是故障攻击。这种攻击方法一经提出立即引起了人们的广泛关注,并展示出了其对密码体制安全性的极大破坏性。1997年,Biham 等人在故障攻击的基础上结合差分分析技术,提出了差分故障攻击的概念[2],并成功地攻击了DES算法,显示了DES类密码所采用的Feistel结构对该攻击的不免疫性。此后,差分故障攻击又成功地攻击了椭圆曲线加密体制、3DES算法、SMS4算法、AES-128算法、ARIA算法、CLEFIA算法、KeeLoq算法和SHACAL-1算法等[310] ?。由于诱导故障多是针对硬件设备(如智能卡等),所以故障攻击大多应用于密码算法的硬件实现,且由于其简单易行又十分有效,故障攻击已成为目前最有效的侧信道攻击方法之一。 诱导故障的本质其实就是引入差分,可以说差分故障攻击是一种特殊的差分攻击,只是差分的选取可以出现在加密的中间状态,但攻击原理仍然是

代数攻击流密码之研究

代数攻击流密码之研究 一、代数攻击流密码的方法和基本思想 (一)“代数攻击(algebraic attack)[4]”流密码的基本方法 在求解一个随机生成的多变元二次(multivariate quadratic)多项式方程组是np-hard问题。该问题与传统的大整数分解,离散对数问题完全不同。最典型的代表就是由patarin在1996年提出的hfe密码,及其相应的变种hfe--、hfe-、hfev、hfef等。courtois等人在2002年对aes的研究[1]得出代数攻击流密码结构形式,aes中在字节变换步骤中aes所使用的非线性s-盒可以由一个有限域gf(256)上超定的多变元的2次方程组来表示。并且aes候选算法中的serpent 同样也满足假设条件,再由toyocrypt、e0等几个具有线性的反馈结构形式的流密码的安全性进行了比较系统的研究[3,4],从而得出这些公开密码系统的安全完全可以归约为求解一个超定的多变元高次方程组。并且linearization、relinearization、xl、grobner bases等人也给出了求解超定的高次多变元方程组的一此比较好的算法。 二、(二)代数攻击流密码的基本步骤 (1)通过某些方法将要研究分析的密码系统的安全性(设为安全参数p)规约(reduce)到求解一个超定(overdefined)的多变元高次方程组的问题上 (2)然后再用一些比较好的方法,比如linearization、relinearization、xl等,对(1)中所产生的超定(overdefined)的多变元高次方程组系统求解。 (3)再把(2)中求出的(1)中的解反馈到具体的密码系统的所设定的安全参数p上来。最后达到代数攻击流密码的目的。 二、流密码代数攻击的主要研究成果与改进 (一)armknecht等人利用linearization方法,来研究基于bluetooth的现代通信技术中常常使用的流密码算法e0[3] 设定e0是一个双层密码系统,并且在每一层中都使用相同ksg (key stream generator),约定密钥初始长度是比特,然后把初始密钥和一个给定的nonce用于第一个ksg的输入,输出的128比特就作为第二个ksg的密钥输入,这样第二个ksg的输出的密钥流,就是人们真正实际应用来加密明文的密钥流。多数文章仅仅考虑了一层ksg的安全性问题。这里也充分考虑了经典的求和生成器的特点,加入4个比特的记忆在非线性组合函数中,以期达到攻击者难以攻破密码系统的目的。 改进:本人的深入研究表明,只要利用连续的4个密钥流比特,完全可以建立一个仅仅以lfsr的初始状态来作为基变量的4次方程,其中也不用不包含相应的记忆比特,再然用linearization方法,就可以给出了破解。改进后的算法的复杂度为,远远优于其它已知的结果。 (二)代数攻击简化后的具有线性反馈结构性质的滤波生成器[4] 常用的基于lfsr的简化后的具有线性反馈结构滤波生成器如图2-1所示: 三、图2-1 基于lfsr简化后的滤波生成器系统 其中,是初始密钥,l是线性反馈移位寄存器,是非线性滤波函数,为时刻输出的密钥流比特。研究表明这种流密码的结构,下面的方程组是成立: 现在要研究的问题是:知道个,由上述方程组知道只有未知,这样通过求解一个个高次方程,个未知量的密码系统,恢复密码的初始密钥。

对HIGHT密码改进的代数故障攻击

小型微型计算机系统Journal of Chinese Computer Systems 2018年3月第3期Vol.39No.32018 收稿日期:2016-09-10 收修改稿日期:2016-11-02 基金项目:国家自然科学基金项目(61173191,61272491,61309021,61472357,61571063)资助. 作者简介:陈 浩,男,1987年生,博士研究生,CCF 会员,研究方向为对称密码旁路分析;王 韬,男,1964年生,博士,教授,博士生导师,研究方向为信息安全二密码学等;周 平,男,1988年生,博士研究生,研究方向为公钥密码旁路分析;周 林,男,1987年生,硕士, 工程师,研究方向为网络信息安全;马云飞,男,1992年生,硕士研究生,研究方向为旁路立方攻击;王晓晗,男,1992年生,博士研究生,研究方向 为硬件木马检测. 对HIGHT 密码改进的代数故障攻击 陈 浩1,王 韬1,周 平1,周 林2,马云飞1,王晓晗1 1(解放军军械工程学院信息工程系,石家庄050003)2 (车船军代局驻长沙地区军代室,长沙410101) E-mail :chenhao 81823264@https://www.wendangku.net/doc/2814141114.html, 摘 要:针对HIGHT 轻量级分组密码已有代数故障攻击方法攻击轮数受限的不足,提出并讨论了一种改进的代数故障攻击方法.该方法将攻击成功延伸至密码加密第25轮,在单字节故障模型下,攻击理论故障注入次数和成功率分别为5次和91.60%.仿真实验结果表明,对密码25轮进行攻击,恢复密码全部主密钥信息所需故障注入次数为5次,解析器平均求解时间为 143.70s ,攻击实际成功率为91%,最好情况下仅需4次故障注入即可以90%的成功率在551.26s 内恢复全部主密钥信息,相关研究成果能够为分析其他具有相似结构的密码的安全性提供参考和借鉴. 关键词:轻量级分组密码;ARX 结构;HIGHT ;代数故障攻击;CryptoMinisat 解析器 中图分类号:TP 309 文献标识码:A 文章编号:1000-1220(2018)03-0496-07 Improved Algebraic Fault Attack on HIGHT CHEN Hao 1,WANG Tao 1,ZHOU Ping 1,ZHOU Lin 2,MA Yun-fei 1,WANG Xiao-han 1 1(Department of Information Engineering ,Ordnance Engineering College ,Shijiazhuang 050003,China )2 (Changsha Office ,Vehicle and Ship Representative Bureau ,Changsha 410101,China ) Abstract :Aiming at shortages of the existent fault attacks ,an improved algebraic fault attack method on HIGHT was proposed to ex-tend the attack to deeper encryption rounds of HIGHT.The method provides a new way to extend the attack to the 25-th encryption round of HIGHT and the number of fault injections and success rate of the attack in theory was 5and 91.60%,respectively.Experi-mental results show that the whole master key can be recovered in 143.70s with a success rate of 91%by injecting 5single byte faults ,and the best result of the attack is that the whole master key can be recovered in 551.26s with a success rate of 90%by injec-ting only 4single byte faults.The results show that the number of fault injections and success rate of the attack was roughly agreed with theoretically estimated values.The amount of this attack sample is smallest compared with previous fault attack on HIGHT ,and the method can also be applied into the algebraic fault attack of other ciphers that has the similar structure.Key words :lightweight block cipher ;ARX structure ;HIGHT ;algebraic fault attack ;CryptoMinisat solver 1 引 言 故障攻击是一种利用密码实现所依附的物理设备平台在外界强电流二高电压二强辐射等手段干扰下可能出现的寄存器故障或运算错误来恢复密钥的攻击方法,最早由Boneh 等[1]于1996年提出,并成功用于基于CRT 实现的RSA 签名算法.随后,Biham 和Shamir [2]将故障攻击和差分分析的思想相结合,提出差分故障分析,并成功地攻击了DES 算法.此后研究者将攻击对象扩展至ECC 等 [3] 其他公钥密码,LED [4] , PRESENT [5]等分组密码,MICKEY [6],Trivium [7]等序列密码. 然而,传统的差分故障分析方法在某些攻击场景下存在一些不足,当故障传播特征复杂二故障差分不易确定二分析的密码算法采用复杂非线性部件时,传统的差分故障分析依赖手工故障传播分析,难度较大.如果能将分析过程转化为某类问题并将其自动化实现,则有望弥补传统差分故障分析的 不足[8]. 在eSmart 2010会议上,N.Courtois 等首次将代数攻击和故障攻击相结合起来,提出了代数故障分析方法,将分析过程转化为代数方程组的自动构建和求解问题,并成功用于DES ,仅需穷举24位密钥并在加密13轮注入1bit 故障即可恢复全部密钥信息.此后攻击对象趋于多样化,已扩展至LED [9],PRESENT [10],Piccolo [11]等分组密码,Trivium [12]等序列密码.同传统差分故障分析相比,代数故障攻击能够充分利用故障攻击中泄露出来的故障信息,具有攻击通用性强二方程可自动化求解的优点,为密码分析提供了一种新的自动化二通用化分析手段. HIGHT 算法[13]是一种典型的轻量级分组密码,设计时采用ARX 结构(是一种由模2n 加运算二循环移位运算二异或运算按照一定顺序组成的密码结构),执行效率高,非常适合在微型设备中使用,其安全性研究具有重要意义,自2006年提出以来密码界对其安全性开展了一系列研究. 万方数据

des差分攻击

针对Des加密的差分攻击 题目要求 编写程序,实现N 轮(N=1 或2)DES 的差分攻击。如能攻击N=3 则更好 简述des加密原理 1.对于64位明文经过ip矩阵置换变为打乱顺序的明文进入加密轮中,这64位明文分为前后各32位,L i,R i ,此R i直接复制给下级轮的L i+1,然后R i经过E矩阵扩展为48位E i。 2.同时64位密钥经过pc-1矩阵置换后,去掉8位校验位变为56位密钥,分为前后各28位分别进行不同位数的循环左移,得到的左移后的密钥进行pc-2矩阵置换得到48位的密钥k i。 3.将得到的E i、k i进行异或计算(模二加法),得到的48位结果每六比特一组,分为八组进入八个s盒子。 4.在s盒中,六比特第一第六比特控制行数,第二三四五位控制列数计算得一个0-15的十进制数,转换为四位二进制数输出。这样八个s盒共得到32位结果。 5.s盒输出结果与L i异或,再经过另一P置换得到R i+1。此L i+1、R i+1也就是一轮加密结果,如

果继续进行加密可以按照上述方法重复进行。 6.最终得到的结果还要经过初始置换的逆置换作用,得到密文。 Des 解密 Des 解密算法和加密算法使用相同的算法过程,不同之处在于解密时要把子密钥使用的顺序和加密时相反。 Des 差分攻击的理论与实现 差分攻击理论依据: 上文中des 加密原理中简略但全面地介绍了加密过程,可以看到其中主要起作用的算法有:矩阵置换、扩展、左移、异或、左右互换、s 盒作用 。其中对攻击者来说最麻烦的要说s 盒一步,破解des 体系关键在s 盒。 乍一看六位输入与四位输出貌似没什么关系。但事实上,对于同一个s 盒具有相同输入异或的所有输入六比特组的输出四比特异或值有一定规律。 具体些说,对于输入异或相同的明文对B ,B*仅有32组,而这32组输出异或却并不是均匀分布,而是仅分布在很少的几个四比特值中;也可以说具有相同输入异或且输出四比特异或也相同的六比特输入数量不多且分布不均匀。正是这种输入输出输出异或间的不均匀性可以被攻击者利用并破解密钥。 此方法对可选择明文攻击尤为有效。 具体分析: 攻击时我们需要将要与子密钥异或运算的48位E i 和与其对应的s 盒32位输出 C i 。 在此笔者仅对一个s 盒进行讲解。E i 中取前六位E ,C i 中取前四位C 。 设s 盒的直接六位输入为B ,k i 的前六位为 K 。 则有B E K ⊕= 另取一组明密文对 E* ,C* 他们的异或 E ’ ,C ’ 即: *B*E K ⊕= S(*)*B C = *'E E E ⊕= *'C C C ⊕=*'C C C ⊕= 则对应'***'E E E E K E K B B B =⊕=⊕⊕⊕=⊕= 又由上文理论分析中'B 与'C 的关系,有多组明密文对时可以破解出子密钥K 。 给出一组确定的E ,E*,C ,C* 则对应的B ’ C ’已知,可对输入B 用000000-111111遍历一遍,找到满足两组异或的明文对,并分别和E 异或得到的六比特就是K 的可能值。对此可设置一组计数器,对每一个可能的K 值在计数器上加一,多组明密文对下来则可以找到唯一最大数的准确K ,一般组数3组可以找到密钥,笔者在算法中设置了5组。

低轮Blow-CAST-Fish算法的差分攻击

低轮Blow-CAST-Fish 算法算法的的差分差分攻击攻击 孙晓玲1,王美琴2,李 忠1,孙旭光1,李姗姗1,杨秋格1,曹桂荣1,潘志安1 (1. 防灾科技学院灾害信息工程系,北京 101601;2. 山东大学密码技术与信息安全教育部重点实验室,济南 250100) 摘 要:对作为Blow-CAST-Fish 算法子密钥的4个S 盒的碰撞性进行分析,构造输入差分为非零、输出差分为零的轮函数F 的差分特征,通过对算法进行差分分析,获取相关子密钥,并测试使特征成立的弱密钥概率。在此基础上,成功利用特征概率为2-61、弱密钥概率为 2-12的6轮差分特征攻击8轮Blow-CAST-Fish 算法。 关键词关键词::Blow-CAST-Fish 算法;差分攻击;差分特征;弱密钥;轮函数;S 盒;碰撞 Differential Attack on Reduced-round Blow-CAST-Fish Algorithm SUN Xiao-ling 1, W ANG Mei-qin 2, LI Zhong 1, SUN Xu-guang 1, LI Shan-shan 1, YANG Qiu-ge 1, CAO Gui-rong 1, PAN Zhi-an 1 (1. Department of Disaster Information Engineering, Institute of Disaster Prevention Science and Technology, Beijing 101601, China; 2. Key Laboratory of Cryptologic Technology and Information Security of Ministry of Education, Shandong University, Jinan 250100, China) 【Abstract 】By analyzing the collision of four S-boxes which are subkeys of Blow-CAST-Fish, this paper develops the differential characteristic of function F with non-zero inputxor and a zero outputxor, performs a differential cryptanalysis of the algorithm to recover the rest of the subkeys, and tests the proportion of weak keys which can produce the differential characteristic. Based on this, it succeeds in using the 6-round differential characteristic with the probability 2-61 under 2-12 of the total key space to attack 8-round Blow-CAST-Fish. 【Key words 】Blow-CAST-Fish algorithm; differential attack; differential characteristic; weak key; round function; S-box; collision DOI: 10.3969/j.issn.1000-3428.2012.12.029 计 算 机 工 程 Computer Engineering 第38卷 第12期 V ol.38 No.12 2012年6月 June 2012 ·安全技术安全技术·· 文章编号文章编号::1000—3428(2012)12—0099—03 文献标识码文献标识码::A 中图分类号中图分类号::TP309.7 1 概述 Blow-CAST-Fish [1]是一种新的Feistel 结构分组加密算 法,结合了Blowfish [2]和CAST-128[3]的优点,S 盒由主密钥随机生成,且F 函数是与轮数相关的。文献[4]基于轮函数的差分特征给出了Blowfish 的差分分析方法。文献[5]找到了CAST-128的轮函数F 2的2轮差分特征,并完成了对5轮CAST-128的攻击。文献[6]通过研究CAST-128的轮函数F 1和F 3的特性,给出了6轮差分特征,并完成了对8轮CAST- 128的攻击。本文将使S 盒产生碰撞的主密钥称为弱密钥,假设攻击者可获取F 函数的值,通过分析弱密钥下F 函数的特征,构造F 函数的输入异或为非零、输出异或为零的差分特征,以此为基础攻击低轮的Blow-CAST-Fish 。 2 Blow-CAST-Fish 算法简介 Blow-CAST-Fish 算法的分组长度为64 bit ,主密钥长度可变,范围为32 bit~448 bit ,共有16轮。算法由密钥扩展和数据加密2个部分组成。主密钥通过密钥扩展算法预先生成18个32 bit 的子密钥P 1, P 2,…,P 18和4个8×32的S 盒S 1、S 2、S 3、S 4[7]。 加密过程为16轮迭代,描述如下,其中,64 bit 明文输入分成左右2个部分,各32 bit ,记为X L 、X R : For i=1 to 16 { X L = X L ⊕ P i X L =X L <<<(LaSt 5bit value of P i ) X R =F(X L )⊕X R 交换 X L 和 X R (最后一轮除外) } X R =X R ⊕P 17 X L =X L ⊕P 18 重新组合 X L 和 X R ,得到最后的密文。 轮函数F 由4个S 盒构成,描述如下,其中将F 函数的32 bit 输入由高位到低位分成4个字节a 、b 、c 、d : 第1、4、7、10、13、16轮:F =((S 1[a ]⊕S 2[b ])-S 3[c ])+S 4[d ]。 第2、5、8、11、14轮:F =((S 1[a ]-S 2[b ])+S 3[c ])⊕S 4[d ]。 第3、6、9、12、15轮:F =((S 1[a ]+S 2[b ])⊕S 3[c ])-S 4[d ]。 3 8轮Blow-CAST-Fish 差分差分攻击攻击 3.1 2轮差分特征 为方便讨论,用(L i-1, R i-1)表示第i 轮的输入,用I 表示F 函数的输入,其中,I a 、I b 、I c 、I d 依次为I 的高位字节到低位字节;“||”为连接符。算法第2轮的F 函数可描述如下: I =I a ‖I b ‖I c ‖I d =(L 1⊕P 2)<<

分组密码算法抗功耗攻击和故障攻击的方法

分组密码算法抗功耗攻击和故障攻击的方法 摘要:为同时抵御差分功耗攻击和故障攻击,提出了一种有效的防护方法,采用流水线技术增加了正常加解密运算的噪声,比较同一输入依次进入不同级的流水线的运算结果是否一致,可以抗故障攻击。通过仿真实验分析,该方法具有良好的抗攻击性能。 关键词:差分功耗攻击;故障攻击;流水线;防护 0 引言 随着计算机技术的发展、社会信息化程度的不断提高,安全问题越来越受到人们的广泛重现,因此各种形式的专用密码电路和密码算法处理器被广泛地应用于各类产品中。分组密码算法是一种最常用的加密手段,具有速度快、易于标准化和便于软硬件实现等特点。目前比较流行的分组密码算法有DES算法、AES算法等,其中DES[1]是目前使用非常广泛的数据加密方法,它于1977年被美国国家标准局作为第46号联邦信息处理标准而采用。 传统的密码分析方法是采用数学的分析手段。近年来随着测量分析方法的进步,各种分析攻击方法也不断发展,差分功耗攻击和故障攻击是具有代表性且对智能卡芯片威胁性较强的两种攻击方法。差分功耗攻击是1998年由Paul Kocher等[2]提出,它利用了密码设备运行期间泄露的侧信息与密码算法的中间值有一定的相关性,通过多次测量侧信息后进行统计分析,进而获得密钥信息。故障攻击的基本原理是将密码芯片置于强磁场中,或者改变芯片的电源电压、工作频率、温度等,使密码芯片中的寄存器、存储器在加解密过程中产生随机错误,某些输出比特从原来的0变成1或1变成0。通过对正确密文输出和错误密文输出的比较,经过理论分析得到芯片内部的秘密数据信息。 国内外对于差分功耗攻击和故障攻击防御方面的研究和技术方法也不断涌现,防御差分功耗攻击的方法包括:随机掩码、动态双轨电路技术、随机伪操作等,防御故障攻击的方法主要包括对相同的数据计算多次后比较运算结果是否一致。但有的防御方法往往会增加实现代价,而计算多次比较运算结果又会降低算法运算效率。本文以DES算法为例,提出了分组密码算法的一种有效防护方法,可以同时抵御差分功耗攻击和故障攻击。采用流水线技术同一时钟周期内有不同的轮运算操作叠加,增加了正常加解密运算的噪声,可以抵抗侧信道攻击,同一明文依次进入不同级的流水线进行运算,最后比较运算结果是否一致,可以抗故障攻击。通过对电路的仿真和分析,验证了其良好的抗攻击性能。 1 DES差分功耗分析及故障攻击 DES是一个分组算法,使用长度为56 bit的密钥加密长度为64 bit的明文,获得长度为64 bit的密文。它的加密过程如下: (1)给定明文m,对m进行一个固定的初始IP置换。 (2)然后进行16轮完全相同的运算,将数据与密钥相结合。在16轮操作的每一轮中,DES 都会进行8次S盒查表操作。这S盒的输入为6 bit的密钥与E扩展后的6 bit R寄存器的异或值,输出为4 bit。32 bit的S盒输出经过P置换,然后与L寄存器的值进行异或,接着将L和R的值进行交换。 (3)进行初始置换的逆置换,得到密文。具体过程。 1.1 差分功耗分析 目前绝大多数集成电路均采用CMOS工艺制作,CMOS门级电路的功耗模型[3]为: Ptota1=Pswitch+Pshort_circuit+Pleakage 其中Pswitch为逻辑门翻转引起负载电容充放电导致的功耗;Pshort_circuit为短路电流导致的功耗;Pleakage为泄漏电流导致的功耗。其中Pswitch是电路功耗的主要部分,功耗大小与逻辑门是否翻转有密切关系,因此电路中运算数据的0、1状态与电路的功耗必然具

分组密码攻击模型的构建和自动化密码分析

分组密码攻击模型的构建和自动化密码分析随着物联网时代向万物互联时代的不断推动,互联网为生活方方面面带来便利的同时,网络安全问题也在新形势下面临新的挑战。作为保障网络安全的基石,密码在安全认证、加密保护和信息传递等方面发挥了十分重要的作用。 与公钥密码体制相比,对称密码算法由于效率高、算法简单、适合加密大量数据的优点应用更为广泛。基于这一事实,对分组密码算法分析与设计的研究在新环境下显得尤为重要。 本文围绕分组密码攻击模型的构建和自动化密码分析这一主题展开。首先,在攻击模型构建方面,我们提出了卡方多重/多维零相关线性分析模型,并将该模型用于一系列算法的多重和多维零相关分析中。 其次,针对自动化密码分析,我们一方面着眼于攻击路线的自动化搜索问题,另一方面试图借助自动化思想解决密码学中的理论问题。在路线自动化搜索方面,我们给出了基于MILP方法对具有复杂线性层的算法和ARX类算法搜索比特级分离特性的模型,使用新方法对一系列算法关于积分分析的抵抗性进行了评估。 构建了基于SAT方法ARX类算法比特级分离特性的自动化搜索工具和基于SMT方法自动化搜索字级分离特性的新工具,完善了分离特性自动化搜索框架。在自动化解决理论问题方面,讨论了差分分析中的差分聚集现象,对两个算法给出了更加精确的差分分析。 最后,我们对SIMON算法的所有版本给出了零相关攻击结果。具体结果如下。 给出了基于SAT方法自动化搜索并分析带S盒算法差分闭包的工具:为了填补SAT方法在搜索差分闭包方面的空白,我们给出了基于SAT问题的差分闭包自动化搜索工具。首先,我们给出对线性层和由多个小S盒构成的非线性层的刻画。

DES密码算法分析与改进

D ES 密码算法分析与改进 王 襄1,曾 嵘2 (1.华中科技大学 电信系,湖北武汉 430074;2.十堰职业技术学院 电子工程系,湖北十堰 442000) [摘 要] DES 是我国信息传递领域中通常采用的密码算法,在金卡工程中得到广泛应用。本文分析了DES 算法的加密和解密规则,指出了DES 算法中存在的缺陷,介绍了加强DES 算法安全性的七种改进措施。 [关键词] DES 算法;加密;解密;算法缺陷;改进措施 [中图分类号] TN918 [文献标识码] A [文章编号]  100824738(2006)05200842031 引言 随着Internet 和各种局域网的普及,人们越来越多地使用计算机网络传递安全敏感信息,如网上银行业务、商业数据交换、政府秘密信息传递、网上交易电子支付系统等。同时,如何确保信息的正确认证和严格保密,保护数据信息在传输与处理过程中不被非法窃取和篡改,成为信息安全理论与技术研究的重要内容。多数情况下,数据加密是保证信息机密性的惟一方法。 由于数据加密算法侧重点不同,产生了多种数据加密技术,到目前为止,已经公开的算法达到数百种。在我国金卡工程中广泛采用的DES 算法,全称为数据加密标准。它是一种对二元数据进行加密的算法,属于分组密码算法中最有名的两种常规密码算法之一。DES 算法以密钥作为加密方法的加密手段,在此标准下可产生72057594037927936≈7.2×1016(72Q )个密钥供用户使用。用户密钥在这72Q 个密钥中随机生成,若在不知密钥情况下进行破译,即使用每微秒可进行一次DES 加密的机器来破译密码也需要超过两千年,故具有极高的保密性和安全性。由于加密方和解密方必须使用相同的密钥,故DES 算法又属于对称算法。 2 D ES 算法分析 2.1 DES 算法的加密过程 DES (Data Encryption Standard )数据分组长度为64位, 输入的是64位的明文,在64位密钥的控制下产生64位的密文;反之输入64位的密文,输出64位的明文。64位的密钥中含有8个位的奇偶校验位,所以实际有效密钥长度为 56位。 明文数据经过初始置换IP 、16圈迭代的乘积变换、逆初始置换IP -1以及16个子密钥产生器后得到密文数据。在初始置换IP 时,将64位明文的位置进行置换,得到一个乱 序的64位明文组,而后分成左右两段,每段32位,用L 0和 R 0表示。DES 的加密函数f 对32位的段操作:首先将这32位的段选择扩展运算成48位的段;其次将这48位的段 和子密钥产生器输出的48位的密钥进行组合并将组合结果作为8个不同S -盒的输入。每个S -盒的输入是6位,输出是4位;然后将S -盒的32位做置换作为加密函数f 的 输出。经过16圈迭代,最终产生64位密文。 [1](P144~145) 令IP 表示初始置换,K i 表示密钥运算,i 为迭代次数变量,KEY 为64位密钥,f 为加密函数,σ表示逐位模2求和。则加密过程如下: L 0R 0←IP (〈 64位明文〉)L i ←R i 1 i =1,…,16R i ←L i 1σf (R i 1,k i ) i =1,…,16 〈64位密文〉←IP -1(R 16L 16) 将第二、第三步骤的运算循环进行16圈后就得到密文组。 算法框图见图1。 [1]P139 图1 DES 算法框图 — 48—2006年10月 十堰职业技术学院学报 Oct.,2006 第19卷第5期 Journal of Shiyan Technical Instit ute Vol.19No.5   [收稿日期] 2006208216  [作者简介] 王 襄(1965-),男,十堰职业技术学院电子工程系讲师,华中科技大学在读硕士研究生;曾 嵘(1977-),女,十堰职 业技术学院电子工程系助理讲师。

相关文档