2023年7月31日发(作者:)
第33卷第8期 2012年8月 通信学报 Vbl_33 NO.8 Joumal on Communications August 2012 PRESENT密码代数故障攻击 吴克辉 ,赵新杰 ,王韬 ,郭世泽 ,刘会英 (1.军械工程学院计算机工程系,河北石家庄050003;2.北方电子设备研究所,北京100083) 摘要:提出了一种新的PRESENT密码故障分析方法——代数故障攻击。将代数攻击和故障攻击相结合,首先 利用代数攻击方法建立密码算法等效布尔代数方程组;然后通过故障攻击手段获取错误密文信息,并将故障差分 和密文差分转化为额外的布尔代数方程组;最后使用CryptoMiniSAT解析器求解方程组恢复密钥。结果表明:在 PRESENT-80的第29轮注入宽度为4的故障,故障位置和值未知时,2次故障注入可在50s内恢复64bit后期白 化密钥,将PRESENT-80密钥搜索空间降低为2 ,经lmin暴力破解恢复完整主密钥;和现有PRESENT故障攻 击相比,该攻击所需样本量是最小的;此外该代数故障分析方法也可为其他分组密码故障分析提供一定思路。 关键词:故障攻击;代数攻击;代数故障攻击;PRESENT密码 中图分类号:TP393.08 文献标识码:A 文章编号:1000—436X(2012)08—0085—08 Algebraic fault attack on PRESENT wu Ke—hui ,ZHAO Xin-jie ,wANG Ta0 ,GUO Shi—ze ,LIU Hui.ying (1.Department ofComputer Engineering,Ordnance Engineering College,Shijiazhuang 050003,China; 2.The Institute ofNorth Electronic Equipment,Beijing 100083,China) Abstract:A new fault analysis method on PRESENT--algebraic fault attack was proposed.This auack combined con— venfional algebraic cryptanalysis with fault attack,firstly built equivalent Boolean algebraic equations of cipher encryp— tion by algebraic cryptanalysis method;secondly got information of fault cryptograph by fault attack technique,and transformed differential of fault and cryptograph into addiionalt algebraic equations;finally utilized Crypto Mini SAT solver to solve the equations and recover key.Experiments demonstrate that after injecting 4-bit fault to the 29 round of PRESENT-80,the fault location and fault value are unknown,only 2 injectings can recover 64一bit last whitening key in 50 seconds that reduce master key of PRESENT-80 searching space to 2 .then recover the master key after l min— ute brute--force・-search on average;compared with previous fault attack on PRESENT,the amount of this attack sample is the smallest;meanwhile,the analysis method proposed can be applied into the algebraic fault attack of other block ciphers. Key words:fault attack;algebraic attack;algebraic fault attack;PRESENT 1 引言 密码算法安全性分析可分为面向设计的数学 分析和面向实现的旁路分析2种。前者将密码实现 收稿日期:2011—07—30;修回日期:2011—10—24 视为黑盒,通过观测密码输入和输出,利用差分分 析、线性分析、代数分析等数学方法分析其安全性, 但受复杂度限制,现有方法仅能对算法安全性进行 理论分析,很少能对其构成实际威胁;后者将密码 基金项目:国家自然科学基金资助项目(60772082,61173191);河北省自然科学基金资助项目(08M010) Foundation Items:The National Natural Science Foundation of China(60772082,61173191);The Natural Science Foundation of Hebei Province(08M010) 通信学报 第33卷 实现视为灰盒,通过观测密码实现过程中泄露的时 间、功耗、电磁、声音、故障等信息,结合密码输 入和输出,利用简单分析、差分分析、相关分析、 碰撞分析、互信息分析等方法,基于密钥分而治之 的思想,在极小的代价下快速恢复密钥,目前已对 多种密码算法的各种实现构成严峻威胁。在旁路分 析中,根据密码运行泄露信息不同,可将其分为计 时分析、功耗分析、电磁分析、故障分析等。 密码故障分析作为一种有效的旁路攻击方法, 最早由Boneh等人【l12._在1996年提出,并成功攻破 RSA签名算法。随后Biham和Shamir于1997年 提出了差分故障分析(DFA,diferential fault analy. sis)方法,对DES密码进行了攻击。此后密码学 家在此基础上实现了针对分组密码的差分故障攻 击 J。然而差分故障分析也具有一定的缺点:需 要结合具体算法结构和操作进行密钥推导,分析方 法繁琐;另外,即使在相同故障模型下,针对同一 密码算法分析中,研究者常会得到不同的实验结 果,这些都大大限制了差分故障攻击的通用性和实 用性。因此,研究通用、自动化的分析方法一直是 密码故障分析尚待解决的一个公开问题。 2002年,Courtois等 在亚密会上首次提出代 数攻击的思想,将密码算法用代数方程组来等价表 示,通过求解方程组方法进行密钥恢复。由于该方 法可利用解析器进行密钥的自动化求解,可充分利 用计算机资源,因此,代数攻击为密码分析提供了 一种新的通用分析手段。然而,随着分组密码轮数 的增加,未知变量和代数方程组规模也会递增,在 有限复杂度内进行密钥求解是一个N—P完全问题, 这些都极大限制了代数分析的实用性。2009年, Renauld[7,81等将代数攻击和旁路分析相结合,提出 代数旁路攻击(ASCA,algebraic side.channel attack) 思想,在代数攻击基础上,通过旁路攻击手段采集 密码执行泄露的中间状态信息,并将其转化为额外 的代数方程组,结合密码算法方程组,加快代数方 程组求解速度。结果表明:针对PRESENT和AES 密码算法,基于汉明重泄露模型,使用zChaff解析 器,一条功耗曲线分析即可恢复完整密钥。代数旁 路分析为密码旁路分析提供了一种新的通用手段, 现有攻击大都基于功耗泄露模型,如何引入新的泄 露模型是代数旁路分析的一个热点问题。 本文尝试将代数攻击和故障攻击相结合,衍化 出一种新的代数旁路攻击手段——代数故障攻击, 并应用其对PRESENT轻型分组密码进行故障分析。 现有PRESENT故障攻击大都基于差分故障分析思 想开展,文献[9]首次对PRESENT-80加密过程进行 了差分故障分析,40—50对正确.故障样本可恢复后 期白化密钥,将主密钥搜索空间降低到2 ,文献[101 提出了一种基于故障传播路径的差分故障分析方 法,8次故障注入即可将PRESENT-80密钥空间降低 到2H ;文献[11】对PRESENT密钥扩展进行了故障 分析,64次故障注入可恢复第51bit后期白化密钥, 将主密钥空间降低到229。在轻型分组密码代数故障 攻击方面,笔者尚未发现国内外有公开发表的文献。 本文首次提出针对PRESENT的代数故障分析方 法,在PRESENT加密第29轮注入宽度为4的故障 模型下,2次故障注入可在50s内恢复64bit后期白化 密钥,将PRESENT-80密钥搜索空问降低为2 ,并 给出了有效故障样本的判断方法;和现有PRESENT 故障攻击相比,文中攻击所需样本量是最小的。 本文结构如下:第2节阐述PRESENT分组密码 算法,第3节给出了代数故障攻击原理,第4节介绍 PRESENT故障攻击模型,第5节给出了PRESENT 代数故障攻击具体过程,第6节为结束语。 2 PRESENT密码算法 PRESENT是由Bogdanov[12[等人于2007年提 出的轻量级分组密码,具有良好的硬件实现效率, 在0.18gm工艺下仅需1570GE逻辑单元,可在RFID 卡以及传感器网络等资源受限环境中广泛使用。算 法采用SPN结构,分组长度为64bit,支持80bit、 128bit 2种密钥长度,共迭代31轮。 加密过程如下。 轮函数F由轮密钥加、S盒代换、P置换3部 分组成。 1)轮密钥加A :64bit轮输入同轮密钥进行异或。 2)S盒代换层乩:将轮密钥加64bit输出查找 16个4进4出的S盒。 3)P置换层DL:通过置换表P( )对S盒代换 64bit输出按比特进行重新排列。 为提高算法安全性,PRESENT在第31轮后使 用64bit密钥 进行后期白化操作,具体加密流程 如图1所示。 密钥扩展算法如下。 首先将初始主密钥存储在寄存器 中,表示为 岛9岛8…k0。第i轮密钥 由寄存器 的前64bit组 第8期 吴克辉等:PRESENT密码代数故障攻击 ・87・ 成。当生成第i轮密钥 后,密钥寄存器 通过以 下方法进行更新: [k79/c78…klko]=[klskl7…k2ok19] [k79k78k77k76]=S[k79k78k77幻6】 [忌19足l8足17足16足15】=[足l9忌l8足17足16 15]0 round_counter 段:密码算法方程组构建、故障注入及利用和代数 方程组求解。其中,P、 、C分别表示明文、中问 状态以及密文, 、砍分别表示主密钥和轮密钥。.厂 和g分别表示加密操作和密钥扩展。 和c 分别 表示注入故障中间状态及错误密文输出,而△墨和 AC则分别表示注入故障差分和密文差分值。 1)密码算法方程组构建 其中,round_counter为当前的加密轮数。易见,只 需分析出64bit后期白化密钥,即可将80bit PRE. SENT的主密钥搜索空问降低到2 。 将密码算法加密和密钥扩展分别表示为关于 P、 、C、K、rk的代数方程组 )和g()。给定一 个密码算法的代数方程组,密钥恢复等价于代数方 程组求解。代数方程组构造过程中,最为关键的是 如何构造非线性部件S盒对应代数方程组。常用的 S盒代数方程组构造方法包括待定系数法、比较系 数法ll引。本文主要参考文献[141中基于高斯消元法 构造S盒代数方程组的方法,对PRESENT密码的 s盒构建等效方程组。 不同于其他类型的代数旁路攻击,代数故障攻 击只需构建密码算法注入故障所在轮直至加密结 束之间的代数方程组,因此攻击利用的代数方程组 数量较少,便于求解。 图1 PRESENT加密流程 2)故障注入及利用 在构建密码算法等效代数方程组之后,需要进 行故障注入和利用。故障注入的方法有很多,如光 学辐射诱导、电压故障诱导、临界温度诱导、电磁 3代数故障攻击 如图2所示,代数故障攻击一般可分为3个阶 图2密码代数故障攻击模型 通信学报 第33卷 辐射诱导等。由于故障诱导不是本文研究重点,更 多相关内容可参考文献[15】。故障利用的主要思想 是将故障注入差分AX和密文输出差分AC使用代数 故障输出差分。 4.2故障模型 假设在PRESENT第31轮s盒输入注入4bit 故障,则: S[a】(壬》S[a①f】=f (1) 其中,厂和厂’为S盒输入和输出差分,a为第31轮 ..方程组表示,同密码算法代数方程组联立,降低代 数方程组的求解复杂度,加快方程组求解速度。 3)代数方程组求解 代数方程组的求解问题一直是代数攻击领域 研究的难点,在全轮分组密码中,密钥求解是一 个 查表索引,将a,f 0),f’所有候选值代入式 (1),可得满足式(1)的a值统计,如表1所示。 表1 PRESENT S盒故障分析效率 N—P完全问题,求解复杂度非常高,因此现有代数 攻击仅能对约减轮的分组密码进行安全性分析。随 着旁路信息的引入,代数方程组的求解速度可大大 提高,从而对全轮密码算法实现构成严峻威胁。 目前,求解代数方程组主要包括基于可满足性 问题l7,81(使用zChaff、Minisat、CryptoMinisat等解 析器)、基于伪随机优化问题lI钊(使用CPLEX、SCIP 解析器)、线性化(直接线性化XL 】、扩展线性化 XSLfJ州)、基于Grobner基¨圳等方法。本文采用第1 种,利用CryptoMiniSAT解析器进行密钥求解。 根据表1,对于给定的1对输入和输出差分, 可以获取2~4个s盒索引,2对输入和输出差分即 可以较高概率恢复S盒索引,结合密文恢复4bit后 期白化密钥 。攻击中,如果每个故障样本经传 4 PRESENT代数故障攻击模型 4.1符号定义 A 、 、Cf:分别表示第i轮轮密钥加、S盒代 播后都能传播到PRESENT第31轮的16个S盒(如 图3所示),则就有可能使用2个样本恢复 。 此时,可能的故障传播过程为:在第29轮A 注入宽度为4的故障(或者在曰 注入故障),使得 B29的4个比特全出错,即输出差分为11112(OxOf), 这4个比特经P置换可扩散至第3O轮的4个S盒 输入,经第30轮S盒后,输出差分全为l1112(OxOf), 换、P置换输出;A 、B 、Cf :分别表示第i轮 轮密钥加、S盒代换、P置换故障输出;△A 、AB 、 △ :分别表示第i轮轮密钥加、S盒代换、P置换 29轮 3O轮 3l轮 图3 PRESENT故障攻击模型 第8期 吴克辉等:PRESENT密码代数故障攻击 .89. 再经第30轮P置换扩散至第31轮的16个s盒, 使得这16个S盒输入和输出差分均不为0。表2为 PRESENT的部分S盒差分表,其中输出差分中均 出现Oxf,其对应S盒输入差分一共有0x06,0x07, 0x08,0x0f4种。根据上文分析,如果在A 注入4bit 故障,如果S盒输入差分为0x06,0x07,0x08,0x0f中任 16个S盒输出均不为0,且根据PRESENT单比特 S盒输入差分对应S输出差分表,输出值均属于集合 {0x03,0x05,0x06,0x07,0x09,0x0a,0x0b,0x0c,0x0d,0x0e, 0x0f}时,视为理想故障样本,否则剔除该故障样本。 需要说明的是,在故障宽度为4的情况下,如 果在第29轮P置换输出到第3l轮输出之间注入宽 意一种,就有可能使得B29为0x0f(或者直接在B29 注入差分为0x0f故障),当扩散至第3O轮4个S盒时, S盒输入差分可能为0x01,0x02,0x04,0x08,而当3O轮 度为4的故障,由于PRESENT的P置换特性,均 不能使得第31轮的16个输出差分全不为0。而如 果在第29轮前注入宽度为4的故障,经过多轮故 4个S盒输入差分均为0x08时,恰好使得3O轮的4 个S盒输出差分均为0x0f,然后经P转换传播后,使 得 的16个S盒输入出现单比特故障。 综上,文中理想的故障模型为在第29轮A 注入宽度为4的故障,其故障差分为0x06,0x07, 0x08,0x0f,使得B29的4个比特全出错,或者直接 在 注入差分为 0厂故障。 表2 PRESENT差分S盒(输出差分有OxOf) 4.3故障样本筛选 根据4.2节,理想的故障样本对应的第31轮 l6个S盒输入差分应可能为0x01,0x02,0x04,0x08 中1种,而第31轮S盒输出差分应有l6个非零 值。 在获取到故障密文样本后,首先将密文经逆Jp 置换得到第31轮S盒输出差分△ ,如果△∥ 的 障传播,第31轮的16个S盒输入差分很难满足均 为单比特故障差分。 5 PRESENT代数故障攻击 5.1 PRESENT代数方程组构建 密码代数攻击都可归结于建立和求解有限域 GF( )上系数任意选取的非线性布尔方程组,而建 立分组密码S盒的超定、稀疏代数方程组一直是代 数攻击研究的难点。本文参考文献[141中基于高斯 消元法建立S盒代数方程组的方法,用9个极端稀 疏的八元二次布尔方程(MQ方程)表示PRESENT 的S盒,用大约8 000个未知变元、20 000个MQ 方程来表示PRESENT 3 1轮加密。未知变元包括4 种类型,如表3所示。 表3 新增变元及说明 变元 说 明 P 第r轮轮密钥加输入比特 第r轮轮密钥比特 第r轮查S盒前输入比特 第r轮查S盒前输出比特 注:(O≤r< ̄31,O≤f乓63) PRESENT加密转化为以下等效布尔方程组: P 0 ki =xi (0≤r≤31,0≤i≤63) (2) s(x4 ,x4川, f+2,x4,+3): , +l,), ,y4H。 (0≤r≤30,0≤t≤15) (3) Y =Pg(f) (0≤,.≤30,0≤i≤63) (4) 式(2)表示3l轮及白化轮加密过程中与轮密 钥加操作;式(3)表示3l轮加密过程中S盒代换 操作;式(4)表示3l轮加密过程中P置换操作, 置换函数g详见文献[12】。此外,如考虑到轮密钥 扩展,每轮还可增加大约200个MQ方程。 ・90・ 通信学报 第33卷 其中,代换函数S的输入变元 l,X2,X3,X4和输 出变元Y1,Y2,Y3,y4满足以下S盒代数方程组:10 ④X2 0 Y2 0xlY1 0xlY3 0xlY4④x4yl =0 Xl 0X2 0x4①Y4①xlY2(壬》XzYl④x2Y2 0xzY3① X2Y4 0x3Yl 0x4Y1 0 0 ),2①xjy3(壬》 ),4 0X2Y2(壬》x3Y1 0x3Y2=0 0 y2①xzY2(壬》 3 0x3Y4(壬》x4Yl=0 1④x3④x4 0 Y1 0 y2①XlY3 0 X3Y1(王》X4Yl:0 ④ 0 Y3 0xlY3 0 ),4 0x2Y1 0x2Y2④ 2Y4①X3Y1①X4Y1:0 0 0 0xlY3①xlY4 0x2Y2 0x2Y3④ x2Y4 0 x3Y4 0 x4y2=0 ④X1Y3①x2Y1①X2Y2 0x2Y3①x2Y4(壬》x4Yl 0 x4Y3:0 2①X4 0xlY2 0 y3①xlY4 0x2Y3 0x2Y4① x3Y4 0 x4yl①x4y4=0 5.2故障信息利用 1)故障位置已知 基于4.2节故障模型,第29轮AB 。中只有1个 S盒输出差分为0x0f,其他为0。假如第 个S盒输 出差分为OxOf,则可表示为 (5) 其他l5个S盒输出差分均为0,可表示为 4m+3 Pl(B 0 Bi 01)=1 mE【0,151,m≠'『 (6) f=4m 此外,由于正确和故障密文可直接代入正确和 故障样本的等效代数方程组,相当于密文差分的间 接代入,故无需再建立关于密文差分的代数方程。 2)故障位置未知 基于4.2节故障模型,第29轮AB29中只有1个 s盒输出差分为OxOf,非0差分对应的位置有16种 可能。每种可能位置的故障差分表示为(B r 表示 第,种可能的故障位置情况下第,.轮S盒代换的故 障输出): 4m+3 n( 0 B r,:01) m, ∈【0,15] (7) i=4m 由于只有1种可能位置的故障差分对应的代数 方程组成立,即l6个变量 f中只有1个为1,其余 为0,因此集合 , 2,f13,… )的汉明重为1,即满 足函数: HW l, 2, 3,…,fls)=l (8) 其中,汉明重函数HW如下: 对于1个16bit的集合x: , ,…, ,xm), 共有17种可能的汉明重HW(X)(0≤HW( ≤16), 可以分别用一个5bit的变量y_(y1,Y2,Y3,Y4,Y5)表示。 x、y满足以下方程(其中,1≤i≤』≤m≤n≤P≤ n 目≤ ≤t≤16): 16 0 Y =n = l2 870 Y2=∑atxixJXn ̄XnXpXqXsXt 1=1 1 820 Y =∑atxix,XmXn (9) t=l 120 Y =∑ t=l 16 Y =∑ 5.3实验结果及比较 在普通PC机(CPU为Athlon64 3000+1.81GHz, 内存为1GB)上,利用C++语言、CryptoMiniSAT 软件实现了PRESENT代数故障攻击仿真实验,攻 击流程如图4所示。 图4 PRESENT代数故障攻击流程 下面给出某次PRESENT代数故障攻击的过程。 1)产生1个随机明文P=232F2B98C151E AB5l6,密钥K=7FB531421C9E023160B2 后期白 化密钥为62DEl9A3B64AD6E8 此时正确密文 为:E5B3136FD432ED2E16;然后设定攻击样本量, 在PRESENT加密第29轮注入4 bit随机故障。 第8期 吴克辉等:PRESENT密码代数故障攻击 ・9l・ 2)按照4.3节方法筛选有效故障样本,如第1 个有效故障密文c =43371D628B872927 第2 个有效故障密文C;l; =E82435B139F6C69716o 3)参考5.1节方法构建3个样本(1个正确样 本,2个故障样本)的PRESENT最后3轮代数方 程组;参考5.2节方法将故障注入差分、密文差分 转化为额外代数方程组。 4)将密码算法和故障信息代数方程组转化为 SAT子句,利用CryptoMiniSA解析器求解密钥。 实验中2对PRESENT正确一故障样本3轮的代数方 程组大约转化为78 000个SAT子句。解析器密钥 求解结果如表4所示。 表4 PRESENT代数故障攻击结果 编号 编号 编号 。 编号 -834 0 -850 0 866 1 882 1 835 l -851 O -867 0 883 l 836 1 -852 0 868 1 -884 0 837 0 853 1 s/垦茁琏* 869 1 885 1 -838 0 854 如 ∞ 1 ∞ -870 加 0 -886 0 -839 0 -855 0 871 1 887 1 840 l -856 0 872 l 888 1 -841 0 857 1 -873 0 —889 0 842 1 858 l -874 0 890 1 843 1 -859 0 875 1 891 1 —844 0 860 1 -876 0 892 1 845 1 -861 0 -877 0 -893 0 846 1 -862 0 878 1 894 1 847 1 -863 0 -879 0 -895 0 848 1 864 1 880 1 -896 0 -849 0 865 1 -881 0 -897 0 如表4所示,编号834至897依次表示64bit 的后期白化密钥比特值,如果编号为正,表示对应 密钥位为1,否则为0。根据表4,求解的后期白化 密钥为0110001011011110000110011010001110110 1 10010010101 10101 101 1 1010002,即62DE19A3B64 AD6E8 同真实密钥一致,攻击成功;且故障 已知时,耗时16.35s,故障位置未知时,耗时 31.58s。 图5表示在PRESENT密码第29轮注入4bit 故障,成功恢复 条件下,不同样本量对应的 CryptoMiniSAT求解平均时间。可见最少仅需2 对正确一故障样本即可将PRESENT-80密钥搜索 空间降低为2 ,且样本量同求解时间成正比;另 外较之故障位置已知,故障位置未知条件下代数 方程组复杂度稍高,导致CryptoMiniSAT解析器 求解时间稍长。 图5不同样本量下CryptoMiniSAT求解平均时间 实验结果同国内外PRESENT故障攻击比较 如表5所示。可见,本文的攻击方案在故障样本 量方面优势明显,攻击可行性较强,而且可利用 解析器自动恢复密钥,具有一定的优越性。由于 代数分析在分组密码领域的通用性,本文的分析 方法可以扩展至其他分组密码的故障攻击,从而 成为从故障攻击角度,评估分组密码实现安全性 的通用手段之一。 表5实验结果同国内外PRESENT故障攻击比较 6结束语 本文将代数攻击和故障攻击相结合,对代数故 障攻击进行了研究。给出了代数故障攻击模型,以 PRESENT轻型分组密码为例进行了攻击应用;首 先建立了PRESENT故障攻击模型,然后给出了故 障样本筛选、PRESENT密码代数方程组构建、故 障信息利用方法,最后通过仿真实验验证了攻击方 法的可行性。 结果表明:应用文中故障模型,理想情况下, 2次故障注入,使用CryptoMiniSAT解析器进行 方程组求解,即可恢复PRESENT.80的64bit后期 白化密钥,耗时不超过50s;同现有攻击相比, ・92・ 通信学报 第33卷 文中提出故障模型所需的故障注入次数较小,给 出的密文筛选方案明确,而且可使用解析器自动 进行密钥求解,具有一定的优越性;此外,文中 方法可为其他分组密码故障攻击提供一定的借鉴 和参考。 参考文献: I1】 DONEH D,DEMILLO R.LIPTON R.On the importance of checking cryptographic protocols for faults[A]Eurocrypt’97[C].Konstnaz, Germany.1997.37—5 1 [2] BIHAM E,SHAMIR A Differential fault analysis of secret key cryptosystems[A].Crypto’97[C].Santa Barbara,California,USA, 1997.513—525 [3] DEBDEEP M.An improved fault based attack of the advanced en— cryption stnadard[A].AFRICACRYPT 2009[C].Gammarh,Tunisia, 2O09.421—434. 【4] ZHAO X J,WANG Further improved differential fault analysis on camellia by exploring fault width and depth[EB/OL]ht【p://eprint.iacr org/2010/026.pdf,2010 [5J L1 GUD LI JR.Differentialfault analysis ontheARIAalgo— rithm[J]Information Sciences,2008,178(19):3727—3737. [6] NICOLAS T C.JOSEF P.Cryptanalysis of block ciphers with over- defined systems of equations[A]ASIACRYPT 2002[C]Berlin Hei— delberg,2002 267—287 [7】 MATHIEU R,FRANCOIS—X S Algebraic side—channel attacks[A] INSCRYPT 2009[C].California.USA.2009 393—410 [8] MATHIEU R,FRANCOIS—X,NICOLAS V-C Algebriac side—channel attacks on the AES:Why time also matters in DPA[A].CHES 2009[C】 California USA.2009.97—111. [9] 李卷孺,谷大武.PRESENT算法的差分故障攻击[A].中国密码学 会2009年会[c].中国,北京,2009.3-13 LI J R,GU D、 Differential fault analysis on PRESENT[A】.CHI・ NACRYPT 2009[C1 Beijing,China,2009.3-13. 【101 ZHAO X J.WANG T Fault propagate pattern based DFA on SPN structure block ciphers using bitwise permutation.with application to PRESENT and PRINTcipher[EB/OL].http://eprint.iacr.org/2011/089. pdf,2011. WANGGL,WANG S S Differentilafaultanalysis on PRESENTkey schedule[A].International Conference on Computational Intelligence and Security(CIS 2010)[C1.2010.362—366. [12] BOGDANOV A.KNUDSEN L R,LEANDER, 日f.PRESENT:an ultra—lightweight block cipheriA].CHES 2007[C].Vienna,Austria, 2007 450.466 [13 J 李伟博,解永宏,胡磊分组密码s盒的代数方程[J1.中国科学院研究 生学报,2008,25(4):524 529. LI W B.XIE Y H.HU L.Algebraic equations of sbox block cipher[J]. Journal of the Graduate School of the Chinese Academy of Sciences, 2008,25(4):524—529. [14] ALEX B.CHRISTOPHE D C.Block ciphers and systems of quadratic equations[A]FSE 2003[C]2003.274—289. [15] GIRAUD C,THIEBEAULD H.A survey on fault attacks[A]Interna— tional Conference on Smart Card Research nad Advanced Applications (CARDIS’o4)[C】Toulouse,France,2004.22—27 【16] YOSSED O,MARIO K,THOMAS et a1.Side—channel analysis in the presence of errors[A]CHES 2010[C].Santa Barvara,California, 2010.428—442. 【17】 COURTOIS N T,KLIMOV A,PARARIN J.Efifcient algorithms for solving overdefmd systems of multivariate polynomila equatiton[EB/OL]. http:/]www.iacr.org/rachive/enrocrypt2000/1807/18070398一new/pdf,2000 [181 KIPNIS A,SHAMIR A.Cryptanalysis of the HFE public key crypto— system by relinearization[A].Cryto99[C],Santa B ̄bara,California, USA.1999 19—30 [19]SEGER A J M.Algeriac attacks from a Grobner basis perspec tives[EB/OL].http://www win.true.nl/ 2(x)4 作者简介 吴克辉(1986一),男,甘肃景泰人, 军械工程学院硕士生,主要研究方向为分 组密码旁路分析。 赵新杰(1986一),男,河南开封人, 军械工程学院博士生,主要研究方向为分 组密码旁路分析和故障分析。 王韬(1964一),男,河北石家庄人, 博士,军械工程学院教授、博士生导师, 主要研究方向为信息安全和密码学。 郭世泽(1969一),男,河北石家庄人,博士,北方电 子设备研究所研究员、博士生导师,主要研究方向为信息安 全和密码学。 刘会英(1984一),男,湖北黄石人,军械工程学院博 士生,主要研究方向为图像加密和密码旁路分析。
2023年7月31日发(作者:)
第33卷第8期 2012年8月 通信学报 Vbl_33 NO.8 Joumal on Communications August 2012 PRESENT密码代数故障攻击 吴克辉 ,赵新杰 ,王韬 ,郭世泽 ,刘会英 (1.军械工程学院计算机工程系,河北石家庄050003;2.北方电子设备研究所,北京100083) 摘要:提出了一种新的PRESENT密码故障分析方法——代数故障攻击。将代数攻击和故障攻击相结合,首先 利用代数攻击方法建立密码算法等效布尔代数方程组;然后通过故障攻击手段获取错误密文信息,并将故障差分 和密文差分转化为额外的布尔代数方程组;最后使用CryptoMiniSAT解析器求解方程组恢复密钥。结果表明:在 PRESENT-80的第29轮注入宽度为4的故障,故障位置和值未知时,2次故障注入可在50s内恢复64bit后期白 化密钥,将PRESENT-80密钥搜索空间降低为2 ,经lmin暴力破解恢复完整主密钥;和现有PRESENT故障攻 击相比,该攻击所需样本量是最小的;此外该代数故障分析方法也可为其他分组密码故障分析提供一定思路。 关键词:故障攻击;代数攻击;代数故障攻击;PRESENT密码 中图分类号:TP393.08 文献标识码:A 文章编号:1000—436X(2012)08—0085—08 Algebraic fault attack on PRESENT wu Ke—hui ,ZHAO Xin-jie ,wANG Ta0 ,GUO Shi—ze ,LIU Hui.ying (1.Department ofComputer Engineering,Ordnance Engineering College,Shijiazhuang 050003,China; 2.The Institute ofNorth Electronic Equipment,Beijing 100083,China) Abstract:A new fault analysis method on PRESENT--algebraic fault attack was proposed.This auack combined con— venfional algebraic cryptanalysis with fault attack,firstly built equivalent Boolean algebraic equations of cipher encryp— tion by algebraic cryptanalysis method;secondly got information of fault cryptograph by fault attack technique,and transformed differential of fault and cryptograph into addiionalt algebraic equations;finally utilized Crypto Mini SAT solver to solve the equations and recover key.Experiments demonstrate that after injecting 4-bit fault to the 29 round of PRESENT-80,the fault location and fault value are unknown,only 2 injectings can recover 64一bit last whitening key in 50 seconds that reduce master key of PRESENT-80 searching space to 2 .then recover the master key after l min— ute brute--force・-search on average;compared with previous fault attack on PRESENT,the amount of this attack sample is the smallest;meanwhile,the analysis method proposed can be applied into the algebraic fault attack of other block ciphers. Key words:fault attack;algebraic attack;algebraic fault attack;PRESENT 1 引言 密码算法安全性分析可分为面向设计的数学 分析和面向实现的旁路分析2种。前者将密码实现 收稿日期:2011—07—30;修回日期:2011—10—24 视为黑盒,通过观测密码输入和输出,利用差分分 析、线性分析、代数分析等数学方法分析其安全性, 但受复杂度限制,现有方法仅能对算法安全性进行 理论分析,很少能对其构成实际威胁;后者将密码 基金项目:国家自然科学基金资助项目(60772082,61173191);河北省自然科学基金资助项目(08M010) Foundation Items:The National Natural Science Foundation of China(60772082,61173191);The Natural Science Foundation of Hebei Province(08M010) 通信学报 第33卷 实现视为灰盒,通过观测密码实现过程中泄露的时 间、功耗、电磁、声音、故障等信息,结合密码输 入和输出,利用简单分析、差分分析、相关分析、 碰撞分析、互信息分析等方法,基于密钥分而治之 的思想,在极小的代价下快速恢复密钥,目前已对 多种密码算法的各种实现构成严峻威胁。在旁路分 析中,根据密码运行泄露信息不同,可将其分为计 时分析、功耗分析、电磁分析、故障分析等。 密码故障分析作为一种有效的旁路攻击方法, 最早由Boneh等人【l12._在1996年提出,并成功攻破 RSA签名算法。随后Biham和Shamir于1997年 提出了差分故障分析(DFA,diferential fault analy. sis)方法,对DES密码进行了攻击。此后密码学 家在此基础上实现了针对分组密码的差分故障攻 击 J。然而差分故障分析也具有一定的缺点:需 要结合具体算法结构和操作进行密钥推导,分析方 法繁琐;另外,即使在相同故障模型下,针对同一 密码算法分析中,研究者常会得到不同的实验结 果,这些都大大限制了差分故障攻击的通用性和实 用性。因此,研究通用、自动化的分析方法一直是 密码故障分析尚待解决的一个公开问题。 2002年,Courtois等 在亚密会上首次提出代 数攻击的思想,将密码算法用代数方程组来等价表 示,通过求解方程组方法进行密钥恢复。由于该方 法可利用解析器进行密钥的自动化求解,可充分利 用计算机资源,因此,代数攻击为密码分析提供了 一种新的通用分析手段。然而,随着分组密码轮数 的增加,未知变量和代数方程组规模也会递增,在 有限复杂度内进行密钥求解是一个N—P完全问题, 这些都极大限制了代数分析的实用性。2009年, Renauld[7,81等将代数攻击和旁路分析相结合,提出 代数旁路攻击(ASCA,algebraic side.channel attack) 思想,在代数攻击基础上,通过旁路攻击手段采集 密码执行泄露的中间状态信息,并将其转化为额外 的代数方程组,结合密码算法方程组,加快代数方 程组求解速度。结果表明:针对PRESENT和AES 密码算法,基于汉明重泄露模型,使用zChaff解析 器,一条功耗曲线分析即可恢复完整密钥。代数旁 路分析为密码旁路分析提供了一种新的通用手段, 现有攻击大都基于功耗泄露模型,如何引入新的泄 露模型是代数旁路分析的一个热点问题。 本文尝试将代数攻击和故障攻击相结合,衍化 出一种新的代数旁路攻击手段——代数故障攻击, 并应用其对PRESENT轻型分组密码进行故障分析。 现有PRESENT故障攻击大都基于差分故障分析思 想开展,文献[9]首次对PRESENT-80加密过程进行 了差分故障分析,40—50对正确.故障样本可恢复后 期白化密钥,将主密钥搜索空间降低到2 ,文献[101 提出了一种基于故障传播路径的差分故障分析方 法,8次故障注入即可将PRESENT-80密钥空间降低 到2H ;文献[11】对PRESENT密钥扩展进行了故障 分析,64次故障注入可恢复第51bit后期白化密钥, 将主密钥空间降低到229。在轻型分组密码代数故障 攻击方面,笔者尚未发现国内外有公开发表的文献。 本文首次提出针对PRESENT的代数故障分析方 法,在PRESENT加密第29轮注入宽度为4的故障 模型下,2次故障注入可在50s内恢复64bit后期白化 密钥,将PRESENT-80密钥搜索空问降低为2 ,并 给出了有效故障样本的判断方法;和现有PRESENT 故障攻击相比,文中攻击所需样本量是最小的。 本文结构如下:第2节阐述PRESENT分组密码 算法,第3节给出了代数故障攻击原理,第4节介绍 PRESENT故障攻击模型,第5节给出了PRESENT 代数故障攻击具体过程,第6节为结束语。 2 PRESENT密码算法 PRESENT是由Bogdanov[12[等人于2007年提 出的轻量级分组密码,具有良好的硬件实现效率, 在0.18gm工艺下仅需1570GE逻辑单元,可在RFID 卡以及传感器网络等资源受限环境中广泛使用。算 法采用SPN结构,分组长度为64bit,支持80bit、 128bit 2种密钥长度,共迭代31轮。 加密过程如下。 轮函数F由轮密钥加、S盒代换、P置换3部 分组成。 1)轮密钥加A :64bit轮输入同轮密钥进行异或。 2)S盒代换层乩:将轮密钥加64bit输出查找 16个4进4出的S盒。 3)P置换层DL:通过置换表P( )对S盒代换 64bit输出按比特进行重新排列。 为提高算法安全性,PRESENT在第31轮后使 用64bit密钥 进行后期白化操作,具体加密流程 如图1所示。 密钥扩展算法如下。 首先将初始主密钥存储在寄存器 中,表示为 岛9岛8…k0。第i轮密钥 由寄存器 的前64bit组 第8期 吴克辉等:PRESENT密码代数故障攻击 ・87・ 成。当生成第i轮密钥 后,密钥寄存器 通过以 下方法进行更新: [k79/c78…klko]=[klskl7…k2ok19] [k79k78k77k76]=S[k79k78k77幻6】 [忌19足l8足17足16足15】=[足l9忌l8足17足16 15]0 round_counter 段:密码算法方程组构建、故障注入及利用和代数 方程组求解。其中,P、 、C分别表示明文、中问 状态以及密文, 、砍分别表示主密钥和轮密钥。.厂 和g分别表示加密操作和密钥扩展。 和c 分别 表示注入故障中间状态及错误密文输出,而△墨和 AC则分别表示注入故障差分和密文差分值。 1)密码算法方程组构建 其中,round_counter为当前的加密轮数。易见,只 需分析出64bit后期白化密钥,即可将80bit PRE. SENT的主密钥搜索空问降低到2 。 将密码算法加密和密钥扩展分别表示为关于 P、 、C、K、rk的代数方程组 )和g()。给定一 个密码算法的代数方程组,密钥恢复等价于代数方 程组求解。代数方程组构造过程中,最为关键的是 如何构造非线性部件S盒对应代数方程组。常用的 S盒代数方程组构造方法包括待定系数法、比较系 数法ll引。本文主要参考文献[141中基于高斯消元法 构造S盒代数方程组的方法,对PRESENT密码的 s盒构建等效方程组。 不同于其他类型的代数旁路攻击,代数故障攻 击只需构建密码算法注入故障所在轮直至加密结 束之间的代数方程组,因此攻击利用的代数方程组 数量较少,便于求解。 图1 PRESENT加密流程 2)故障注入及利用 在构建密码算法等效代数方程组之后,需要进 行故障注入和利用。故障注入的方法有很多,如光 学辐射诱导、电压故障诱导、临界温度诱导、电磁 3代数故障攻击 如图2所示,代数故障攻击一般可分为3个阶 图2密码代数故障攻击模型 通信学报 第33卷 辐射诱导等。由于故障诱导不是本文研究重点,更 多相关内容可参考文献[15】。故障利用的主要思想 是将故障注入差分AX和密文输出差分AC使用代数 故障输出差分。 4.2故障模型 假设在PRESENT第31轮s盒输入注入4bit 故障,则: S[a】(壬》S[a①f】=f (1) 其中,厂和厂’为S盒输入和输出差分,a为第31轮 ..方程组表示,同密码算法代数方程组联立,降低代 数方程组的求解复杂度,加快方程组求解速度。 3)代数方程组求解 代数方程组的求解问题一直是代数攻击领域 研究的难点,在全轮分组密码中,密钥求解是一 个 查表索引,将a,f 0),f’所有候选值代入式 (1),可得满足式(1)的a值统计,如表1所示。 表1 PRESENT S盒故障分析效率 N—P完全问题,求解复杂度非常高,因此现有代数 攻击仅能对约减轮的分组密码进行安全性分析。随 着旁路信息的引入,代数方程组的求解速度可大大 提高,从而对全轮密码算法实现构成严峻威胁。 目前,求解代数方程组主要包括基于可满足性 问题l7,81(使用zChaff、Minisat、CryptoMinisat等解 析器)、基于伪随机优化问题lI钊(使用CPLEX、SCIP 解析器)、线性化(直接线性化XL 】、扩展线性化 XSLfJ州)、基于Grobner基¨圳等方法。本文采用第1 种,利用CryptoMiniSAT解析器进行密钥求解。 根据表1,对于给定的1对输入和输出差分, 可以获取2~4个s盒索引,2对输入和输出差分即 可以较高概率恢复S盒索引,结合密文恢复4bit后 期白化密钥 。攻击中,如果每个故障样本经传 4 PRESENT代数故障攻击模型 4.1符号定义 A 、 、Cf:分别表示第i轮轮密钥加、S盒代 播后都能传播到PRESENT第31轮的16个S盒(如 图3所示),则就有可能使用2个样本恢复 。 此时,可能的故障传播过程为:在第29轮A 注入宽度为4的故障(或者在曰 注入故障),使得 B29的4个比特全出错,即输出差分为11112(OxOf), 这4个比特经P置换可扩散至第3O轮的4个S盒 输入,经第30轮S盒后,输出差分全为l1112(OxOf), 换、P置换输出;A 、B 、Cf :分别表示第i轮 轮密钥加、S盒代换、P置换故障输出;△A 、AB 、 △ :分别表示第i轮轮密钥加、S盒代换、P置换 29轮 3O轮 3l轮 图3 PRESENT故障攻击模型 第8期 吴克辉等:PRESENT密码代数故障攻击 .89. 再经第30轮P置换扩散至第31轮的16个s盒, 使得这16个S盒输入和输出差分均不为0。表2为 PRESENT的部分S盒差分表,其中输出差分中均 出现Oxf,其对应S盒输入差分一共有0x06,0x07, 0x08,0x0f4种。根据上文分析,如果在A 注入4bit 故障,如果S盒输入差分为0x06,0x07,0x08,0x0f中任 16个S盒输出均不为0,且根据PRESENT单比特 S盒输入差分对应S输出差分表,输出值均属于集合 {0x03,0x05,0x06,0x07,0x09,0x0a,0x0b,0x0c,0x0d,0x0e, 0x0f}时,视为理想故障样本,否则剔除该故障样本。 需要说明的是,在故障宽度为4的情况下,如 果在第29轮P置换输出到第3l轮输出之间注入宽 意一种,就有可能使得B29为0x0f(或者直接在B29 注入差分为0x0f故障),当扩散至第3O轮4个S盒时, S盒输入差分可能为0x01,0x02,0x04,0x08,而当3O轮 度为4的故障,由于PRESENT的P置换特性,均 不能使得第31轮的16个输出差分全不为0。而如 果在第29轮前注入宽度为4的故障,经过多轮故 4个S盒输入差分均为0x08时,恰好使得3O轮的4 个S盒输出差分均为0x0f,然后经P转换传播后,使 得 的16个S盒输入出现单比特故障。 综上,文中理想的故障模型为在第29轮A 注入宽度为4的故障,其故障差分为0x06,0x07, 0x08,0x0f,使得B29的4个比特全出错,或者直接 在 注入差分为 0厂故障。 表2 PRESENT差分S盒(输出差分有OxOf) 4.3故障样本筛选 根据4.2节,理想的故障样本对应的第31轮 l6个S盒输入差分应可能为0x01,0x02,0x04,0x08 中1种,而第31轮S盒输出差分应有l6个非零 值。 在获取到故障密文样本后,首先将密文经逆Jp 置换得到第31轮S盒输出差分△ ,如果△∥ 的 障传播,第31轮的16个S盒输入差分很难满足均 为单比特故障差分。 5 PRESENT代数故障攻击 5.1 PRESENT代数方程组构建 密码代数攻击都可归结于建立和求解有限域 GF( )上系数任意选取的非线性布尔方程组,而建 立分组密码S盒的超定、稀疏代数方程组一直是代 数攻击研究的难点。本文参考文献[141中基于高斯 消元法建立S盒代数方程组的方法,用9个极端稀 疏的八元二次布尔方程(MQ方程)表示PRESENT 的S盒,用大约8 000个未知变元、20 000个MQ 方程来表示PRESENT 3 1轮加密。未知变元包括4 种类型,如表3所示。 表3 新增变元及说明 变元 说 明 P 第r轮轮密钥加输入比特 第r轮轮密钥比特 第r轮查S盒前输入比特 第r轮查S盒前输出比特 注:(O≤r< ̄31,O≤f乓63) PRESENT加密转化为以下等效布尔方程组: P 0 ki =xi (0≤r≤31,0≤i≤63) (2) s(x4 ,x4川, f+2,x4,+3): , +l,), ,y4H。 (0≤r≤30,0≤t≤15) (3) Y =Pg(f) (0≤,.≤30,0≤i≤63) (4) 式(2)表示3l轮及白化轮加密过程中与轮密 钥加操作;式(3)表示3l轮加密过程中S盒代换 操作;式(4)表示3l轮加密过程中P置换操作, 置换函数g详见文献[12】。此外,如考虑到轮密钥 扩展,每轮还可增加大约200个MQ方程。 ・90・ 通信学报 第33卷 其中,代换函数S的输入变元 l,X2,X3,X4和输 出变元Y1,Y2,Y3,y4满足以下S盒代数方程组:10 ④X2 0 Y2 0xlY1 0xlY3 0xlY4④x4yl =0 Xl 0X2 0x4①Y4①xlY2(壬》XzYl④x2Y2 0xzY3① X2Y4 0x3Yl 0x4Y1 0 0 ),2①xjy3(壬》 ),4 0X2Y2(壬》x3Y1 0x3Y2=0 0 y2①xzY2(壬》 3 0x3Y4(壬》x4Yl=0 1④x3④x4 0 Y1 0 y2①XlY3 0 X3Y1(王》X4Yl:0 ④ 0 Y3 0xlY3 0 ),4 0x2Y1 0x2Y2④ 2Y4①X3Y1①X4Y1:0 0 0 0xlY3①xlY4 0x2Y2 0x2Y3④ x2Y4 0 x3Y4 0 x4y2=0 ④X1Y3①x2Y1①X2Y2 0x2Y3①x2Y4(壬》x4Yl 0 x4Y3:0 2①X4 0xlY2 0 y3①xlY4 0x2Y3 0x2Y4① x3Y4 0 x4yl①x4y4=0 5.2故障信息利用 1)故障位置已知 基于4.2节故障模型,第29轮AB 。中只有1个 S盒输出差分为0x0f,其他为0。假如第 个S盒输 出差分为OxOf,则可表示为 (5) 其他l5个S盒输出差分均为0,可表示为 4m+3 Pl(B 0 Bi 01)=1 mE【0,151,m≠'『 (6) f=4m 此外,由于正确和故障密文可直接代入正确和 故障样本的等效代数方程组,相当于密文差分的间 接代入,故无需再建立关于密文差分的代数方程。 2)故障位置未知 基于4.2节故障模型,第29轮AB29中只有1个 s盒输出差分为OxOf,非0差分对应的位置有16种 可能。每种可能位置的故障差分表示为(B r 表示 第,种可能的故障位置情况下第,.轮S盒代换的故 障输出): 4m+3 n( 0 B r,:01) m, ∈【0,15] (7) i=4m 由于只有1种可能位置的故障差分对应的代数 方程组成立,即l6个变量 f中只有1个为1,其余 为0,因此集合 , 2,f13,… )的汉明重为1,即满 足函数: HW l, 2, 3,…,fls)=l (8) 其中,汉明重函数HW如下: 对于1个16bit的集合x: , ,…, ,xm), 共有17种可能的汉明重HW(X)(0≤HW( ≤16), 可以分别用一个5bit的变量y_(y1,Y2,Y3,Y4,Y5)表示。 x、y满足以下方程(其中,1≤i≤』≤m≤n≤P≤ n 目≤ ≤t≤16): 16 0 Y =n = l2 870 Y2=∑atxixJXn ̄XnXpXqXsXt 1=1 1 820 Y =∑atxix,XmXn (9) t=l 120 Y =∑ t=l 16 Y =∑ 5.3实验结果及比较 在普通PC机(CPU为Athlon64 3000+1.81GHz, 内存为1GB)上,利用C++语言、CryptoMiniSAT 软件实现了PRESENT代数故障攻击仿真实验,攻 击流程如图4所示。 图4 PRESENT代数故障攻击流程 下面给出某次PRESENT代数故障攻击的过程。 1)产生1个随机明文P=232F2B98C151E AB5l6,密钥K=7FB531421C9E023160B2 后期白 化密钥为62DEl9A3B64AD6E8 此时正确密文 为:E5B3136FD432ED2E16;然后设定攻击样本量, 在PRESENT加密第29轮注入4 bit随机故障。 第8期 吴克辉等:PRESENT密码代数故障攻击 ・9l・ 2)按照4.3节方法筛选有效故障样本,如第1 个有效故障密文c =43371D628B872927 第2 个有效故障密文C;l; =E82435B139F6C69716o 3)参考5.1节方法构建3个样本(1个正确样 本,2个故障样本)的PRESENT最后3轮代数方 程组;参考5.2节方法将故障注入差分、密文差分 转化为额外代数方程组。 4)将密码算法和故障信息代数方程组转化为 SAT子句,利用CryptoMiniSA解析器求解密钥。 实验中2对PRESENT正确一故障样本3轮的代数方 程组大约转化为78 000个SAT子句。解析器密钥 求解结果如表4所示。 表4 PRESENT代数故障攻击结果 编号 编号 编号 。 编号 -834 0 -850 0 866 1 882 1 835 l -851 O -867 0 883 l 836 1 -852 0 868 1 -884 0 837 0 853 1 s/垦茁琏* 869 1 885 1 -838 0 854 如 ∞ 1 ∞ -870 加 0 -886 0 -839 0 -855 0 871 1 887 1 840 l -856 0 872 l 888 1 -841 0 857 1 -873 0 —889 0 842 1 858 l -874 0 890 1 843 1 -859 0 875 1 891 1 —844 0 860 1 -876 0 892 1 845 1 -861 0 -877 0 -893 0 846 1 -862 0 878 1 894 1 847 1 -863 0 -879 0 -895 0 848 1 864 1 880 1 -896 0 -849 0 865 1 -881 0 -897 0 如表4所示,编号834至897依次表示64bit 的后期白化密钥比特值,如果编号为正,表示对应 密钥位为1,否则为0。根据表4,求解的后期白化 密钥为0110001011011110000110011010001110110 1 10010010101 10101 101 1 1010002,即62DE19A3B64 AD6E8 同真实密钥一致,攻击成功;且故障 已知时,耗时16.35s,故障位置未知时,耗时 31.58s。 图5表示在PRESENT密码第29轮注入4bit 故障,成功恢复 条件下,不同样本量对应的 CryptoMiniSAT求解平均时间。可见最少仅需2 对正确一故障样本即可将PRESENT-80密钥搜索 空间降低为2 ,且样本量同求解时间成正比;另 外较之故障位置已知,故障位置未知条件下代数 方程组复杂度稍高,导致CryptoMiniSAT解析器 求解时间稍长。 图5不同样本量下CryptoMiniSAT求解平均时间 实验结果同国内外PRESENT故障攻击比较 如表5所示。可见,本文的攻击方案在故障样本 量方面优势明显,攻击可行性较强,而且可利用 解析器自动恢复密钥,具有一定的优越性。由于 代数分析在分组密码领域的通用性,本文的分析 方法可以扩展至其他分组密码的故障攻击,从而 成为从故障攻击角度,评估分组密码实现安全性 的通用手段之一。 表5实验结果同国内外PRESENT故障攻击比较 6结束语 本文将代数攻击和故障攻击相结合,对代数故 障攻击进行了研究。给出了代数故障攻击模型,以 PRESENT轻型分组密码为例进行了攻击应用;首 先建立了PRESENT故障攻击模型,然后给出了故 障样本筛选、PRESENT密码代数方程组构建、故 障信息利用方法,最后通过仿真实验验证了攻击方 法的可行性。 结果表明:应用文中故障模型,理想情况下, 2次故障注入,使用CryptoMiniSAT解析器进行 方程组求解,即可恢复PRESENT.80的64bit后期 白化密钥,耗时不超过50s;同现有攻击相比, ・92・ 通信学报 第33卷 文中提出故障模型所需的故障注入次数较小,给 出的密文筛选方案明确,而且可使用解析器自动 进行密钥求解,具有一定的优越性;此外,文中 方法可为其他分组密码故障攻击提供一定的借鉴 和参考。 参考文献: I1】 DONEH D,DEMILLO R.LIPTON R.On the importance of checking cryptographic protocols for faults[A]Eurocrypt’97[C].Konstnaz, Germany.1997.37—5 1 [2] BIHAM E,SHAMIR A Differential fault analysis of secret key cryptosystems[A].Crypto’97[C].Santa Barbara,California,USA, 1997.513—525 [3] DEBDEEP M.An improved fault based attack of the advanced en— cryption stnadard[A].AFRICACRYPT 2009[C].Gammarh,Tunisia, 2O09.421—434. 【4] ZHAO X J,WANG Further improved differential fault analysis on camellia by exploring fault width and depth[EB/OL]ht【p://eprint.iacr org/2010/026.pdf,2010 [5J L1 GUD LI JR.Differentialfault analysis ontheARIAalgo— rithm[J]Information Sciences,2008,178(19):3727—3737. [6] NICOLAS T C.JOSEF P.Cryptanalysis of block ciphers with over- defined systems of equations[A]ASIACRYPT 2002[C]Berlin Hei— delberg,2002 267—287 [7】 MATHIEU R,FRANCOIS—X S Algebraic side—channel attacks[A] INSCRYPT 2009[C].California.USA.2009 393—410 [8] MATHIEU R,FRANCOIS—X,NICOLAS V-C Algebriac side—channel attacks on the AES:Why time also matters in DPA[A].CHES 2009[C】 California USA.2009.97—111. [9] 李卷孺,谷大武.PRESENT算法的差分故障攻击[A].中国密码学 会2009年会[c].中国,北京,2009.3-13 LI J R,GU D、 Differential fault analysis on PRESENT[A】.CHI・ NACRYPT 2009[C1 Beijing,China,2009.3-13. 【101 ZHAO X J.WANG T Fault propagate pattern based DFA on SPN structure block ciphers using bitwise permutation.with application to PRESENT and PRINTcipher[EB/OL].http://eprint.iacr.org/2011/089. pdf,2011. WANGGL,WANG S S Differentilafaultanalysis on PRESENTkey schedule[A].International Conference on Computational Intelligence and Security(CIS 2010)[C1.2010.362—366. [12] BOGDANOV A.KNUDSEN L R,LEANDER, 日f.PRESENT:an ultra—lightweight block cipheriA].CHES 2007[C].Vienna,Austria, 2007 450.466 [13 J 李伟博,解永宏,胡磊分组密码s盒的代数方程[J1.中国科学院研究 生学报,2008,25(4):524 529. LI W B.XIE Y H.HU L.Algebraic equations of sbox block cipher[J]. Journal of the Graduate School of the Chinese Academy of Sciences, 2008,25(4):524—529. [14] ALEX B.CHRISTOPHE D C.Block ciphers and systems of quadratic equations[A]FSE 2003[C]2003.274—289. [15] GIRAUD C,THIEBEAULD H.A survey on fault attacks[A]Interna— tional Conference on Smart Card Research nad Advanced Applications (CARDIS’o4)[C】Toulouse,France,2004.22—27 【16] YOSSED O,MARIO K,THOMAS et a1.Side—channel analysis in the presence of errors[A]CHES 2010[C].Santa Barvara,California, 2010.428—442. 【17】 COURTOIS N T,KLIMOV A,PARARIN J.Efifcient algorithms for solving overdefmd systems of multivariate polynomila equatiton[EB/OL]. http:/]www.iacr.org/rachive/enrocrypt2000/1807/18070398一new/pdf,2000 [181 KIPNIS A,SHAMIR A.Cryptanalysis of the HFE public key crypto— system by relinearization[A].Cryto99[C],Santa B ̄bara,California, USA.1999 19—30 [19]SEGER A J M.Algeriac attacks from a Grobner basis perspec tives[EB/OL].http://www win.true.nl/ 2(x)4 作者简介 吴克辉(1986一),男,甘肃景泰人, 军械工程学院硕士生,主要研究方向为分 组密码旁路分析。 赵新杰(1986一),男,河南开封人, 军械工程学院博士生,主要研究方向为分 组密码旁路分析和故障分析。 王韬(1964一),男,河北石家庄人, 博士,军械工程学院教授、博士生导师, 主要研究方向为信息安全和密码学。 郭世泽(1969一),男,河北石家庄人,博士,北方电 子设备研究所研究员、博士生导师,主要研究方向为信息安 全和密码学。 刘会英(1984一),男,湖北黄石人,军械工程学院博 士生,主要研究方向为图像加密和密码旁路分析。
发布评论