收藏 分享(赏)

hight轻量级分组密码容错代数故障攻击研究.doc

上传人:无敌 文档编号:144656 上传时间:2018-03-22 格式:DOC 页数:15 大小:219KB
下载 相关 举报
hight轻量级分组密码容错代数故障攻击研究.doc_第1页
第1页 / 共15页
hight轻量级分组密码容错代数故障攻击研究.doc_第2页
第2页 / 共15页
hight轻量级分组密码容错代数故障攻击研究.doc_第3页
第3页 / 共15页
hight轻量级分组密码容错代数故障攻击研究.doc_第4页
第4页 / 共15页
hight轻量级分组密码容错代数故障攻击研究.doc_第5页
第5页 / 共15页
点击查看更多>>
资源描述

1、HIGHT 轻量级分组密码容错代数故障攻击研究 陈浩 王韬 赵新杰 张帆 马云飞 王晓晗 解放军军械工程学院信息工程系 解放军外国语学院指挥系 北方电子设备研究所 浙江大学信息与电子工程学院 摘 要: 针对现有 HIGHT 轻量级分组密码代数故障攻击方法在故障失效发生的场景下故障位置判定出错进而影响攻击成功率的问题, 提出并讨论了一种容错代数故障攻击方法.该方法首先对故障失效特性进行深入研究, 利用故障注入位置、故障失效与密文差分之间的对应关系, 构建了一个完备的故障位置区分器以实现对各种场景下故障位置的准确判定.然后在此基础上提取故障失效信息以实现故障信息最大化利用, 并对故障信息等效代数方

2、程组构建方法进行优化, 实现了故障信息等效代数方程组的自动化构建.最后对提出的攻击方法的复杂度和成功率进行了分析和实验验证.实验结果表明, 与现有攻击相比, 提出的攻击方法容错能力更强, 能检测出所有显性故障失效, 攻击的成功率达到 100%, 且故障信息等效代数方程组构建自动化程度更高, 解析器平均求解时间更少.关键词: 轻量级分组密码; 故障相遇; 容错策略; 代数故障攻击; HIGHT; 作者简介:陈浩, E-mail:收稿日期:2017-05-02基金:国家自然科学基金 (61173191, 61272491, 61309021, 61472357, 61571063) Researc

3、h on fault-tolerant algebraic fault attack on HIGHTChen Hao Wang Tao Zhao Xinjie Zhang Fan Ma Yunfei Wang Xiaohan Department of Information Engineering, Ordnance Engineering College; Department of Command, PLA University of Foreign Language; College of Information Science and Electronic Engineering,

4、 Zhejiang University; Abstract: HIGHT is built by using ARX (addition modulo 2 n, bit rotation and XOR) structure, which is suitable for resource-constrained environment such as Radio Frequency Identification (RFID) tag or ubiquitous computing system and it has been adopted as a standard block ciphe

5、r by Telecommunications Technology Association (TTA) of Korea and ISO/IEC 18033-3.Since the accurate location of the injected fault cannot be successfully determined when fault failures are occurred, the success rate of the existing algebraic fault attack on HIGHT is always less than 100%.To improve

6、 the success rate and efficiency, a fault tolerant algebraic fault attack is proposed in this paper.Firstly, fault failures and its properties are studied and a complete distinguisher based on fault failures, fault locations and cipher differences for determining the accurate fault locations in all

7、different scenarios is built.Then, HIGHT is described as a set of algebraic equations.The faulty ciphertext is generated via fault injections and fault differences are representedwith algebraic equations.To make maximum use of the injected faults, fault failures are also described as a set of algebr

8、aic equations.In the meantime, the procedure of constructing algebraic equations for the injected faults is optimized to perform automatically to further make the attack easy to launch.Finally, the CryptoMiniSAT solver is applied to solve the equations for the key and the number of fault injections

9、that required and success rate of the proposed attack are analyzed in theory.The simulation experiments show that compared with the existing algebraic fault attack on HIGHT, the success rate of the proposed attack has been improved to 100% and the method of constructing algebraic equations for the i

10、njected faults is easier and can be performed automatically, the entire mater key bytes can be fully recovered in a rather smaller time by solving the algebraic equations with the CryptoMiniSAT solver, and the proposed attack can be easily extended to other cipher which has the similar structure.Key

11、word: lightweight block cipher; fault collision; fault-tolerance strategy; algebraic fault attack; HIGHT; Received: 2017-05-02微电子技术和普适计算的高速发展使物联网和传感器网络等逐步深入到人们生活的方方面面, 如何在此类资源受限环境下提供信息安全保障成为亟待解决的重点和难点问题.在这种情况下, 轻量级分组密码受到广泛关注, 目前研究者已陆续提出了一些轻量级分组密码算法, 包括 PRESENT1, HIGHT2, LED3, Piccolo4等.与传统分组密码算法相比,

12、轻量级分组密码能够以非常小的代价及成本在硬件上高效实现, 同时保证一定程度的安全性, 因此适用于资源受限环境.然而, 由于受轻量级设计和实现原则所限, 轻量级密码存在防护程度不高的不足, 导致其容易遭受故障注入的威胁;此外轻量级密码算法的代数结构相对传统密码算法而言比较简单, 导致其代数方程组求解复杂度相对较低, 二者均为基于代数攻击和故障攻击的结合体代数故障攻击提供了故障注入和分析的有利条件.代数故障攻击5将代数攻击和故障攻击结合起来, 首先利用代数分析方法构建密码算法等效代数方程组, 然后利用故障注入手段获取错误密文并将故障差分转化为代数方程组, 最后通过解析器求解代数方程组恢复密钥信息,

13、 从而将密码分析过程转化为代数方程组的自动构建和求解问题.代数故障攻击一经提出便受到广泛关注, 其攻击对象逐渐趋向多样化, 已成功扩展至 LED6, PRESENT7, Piccolo8等分组密码和 Trivium9等流密码.同传统差分故障攻击相比, 代数故障攻击能够充分利用故障攻击中泄露出来的故障信息, 具有攻击通用性强、方程可自动化求解的优点, 为密码分析提供了一种新的自动化、通用化分析手段.HIGHT 算法是一种典型的轻量级分组密码, 设计时仅采用 ARX 结构 (由模 2 加运算、循环移位、异或运算三种运算按照一定顺序组合而成的安全结构) , 执行效率高, 非常适合在微型设备中使用,

14、其安全性研究具有重要意义, 自 2006年提出以来密码界对其安全性开展了一系列研究.范伟杰等10采用面向字节的故障模型, 对 HIGHT 提出一种差分故障攻击方法, 通过穷举 4 字节白化密钥, 并分别在密码倒数第 3 轮和倒数第 4 轮共注入约 32 个故障可恢复 HIGHT 全部128bit 密钥信息.但由于范伟杰等10采用的是传统故障分析方法, 分析过程繁琐, 故障信息利用率低, 所需故障样本量较大, 导致攻击方法有效性和通用性不强.陈浩等11对 HIGHT 密码提出一种代数故障分析方法, 将范伟杰等10的手工分析方法转化为代数方程组自动构建和求解问题, 成功将攻击轮数扩展至加密倒数第

15、6 轮, 故障注入个数减小为 9 次.由于陈浩等11利用故障密文的数量和索引来确定故障的具体位置, 当故障在传播过程中发生碰撞时, 陈浩等11确定故障具体位置的方法有可能失效, 导致攻击的成功率不能达到 100%.针对现有攻击方法的不足, 本文对 HIGHT 密码提出一种容错代数故障分析方法, 将攻击成功率提升至 100%, 并从理论角度分析且给出了攻击所需故障注入次数和成功率.在密码第 26 轮加密注入单字节随机故障下, 11 次故障注入以 100%成功率恢复全部主密钥信息, 平均求解时间仅为 2.18s, 最好情况下仅需 4 次即能以成功率 92%, 在 124.6s 内恢复全部主密钥信息

16、.此外, 本文还对密码 27 轮加密进行了攻击, 恢复全部主密钥信息的故障注入次数为 23 次, 实际成功率均为 100%, 与理论分析基本一致.与现有 HIGHT 攻击相比, 文中方法将攻击成功率提升至 100%, 且攻击自动化程度较高.1 HIGHT 密码算法1.1 符号说明, 异或运算, 模 2 加运算和变量连接符;A:循环左移 位;:注入故障之后密码的内部状态或输出;#S:有限集合 S 的势;P, C:64 比特明文和密文;C i:正误密文差分值, , 0i7;MK=MK15MK 1MK 0:16 字节主密钥;WKi:白化密钥 WKi, 0i7;SKk:轮子密钥, 0k127;Xr=X

17、r, 7X r, 1X r, 0:第 r 轮 8 字节中间状态, 1r32;Xr, i:变量 Xr, i第 k 比特, 0k7;fd:故障深度, 表示故障注入轮 r 到错误密文之间的传播轮数, f d=32-r+1, 1f d32.1.2 HIGHT 加密过程HIGHT 是一个 32 轮迭代轻量级分组密码算法, 其分组长度和密钥长度分别为 64和 128 位.HIGHT 密码由密钥扩展、初始变换、轮加密、末轮变换 4 个子过程构成:(1) 密钥扩展.根据主密钥 MK 按照式 (1) (4) 生成 8 字节白化密钥 WKi和每轮加密使用的 4 字节子密钥 SKi:(2) 初始变换.明文 P 根据

18、式 (5) (6) , 经初始变换成加密首轮输入 X0:(3) 轮加密函数.执行 32 轮加密, 将第 i (0i30) 轮输入 Xi按照式 (7) (14) 转换成第 i+1 轮输入 Xi+1:最后一轮 (i=31) 轮加密的轮函数为:F0和 F1表达式如式 (23) (24) 所示:(4) 末轮变换.算法在执行完 32 轮加密运算后, 将 X32根据式 (25) 经末变换生成密文 C:2 HIGHT 代数故障分析2.1 故障模型设定本攻击采用面向单字节的随机故障模型, 如图 1 所示, 其基本假设为:攻击者能够利用低成本故障注入技术 (如时钟毛刺、亏电效应、电压峰值等12) 向HIGHT

19、加密第 r 轮注入单字节随机故障, 但故障的具体值和具体位置均未知.此外, 攻击者能够选择被加密的明文, 并且获取同一个主密钥作用下的正确密文和错误密文.图 1 故障模型 Fig.1 Fault model of the attack 下载原图由图 1 可知, 当攻击者向 HIGHT 第 26 轮加密注入单字节随机故障时, 故障传播特征非常复杂, 很难应用传统差分故障分析方法进行密钥分析.2.2 故障传播特性分析性质 1 假设攻击者向密码第 r (0rr.反之, 则有# (r, ) n+1=# (r, ) n=8, 所以结论 (3) 成立.证毕.性质 2 故障相遇如图 4 所示, 假设攻击者向

20、密码中间状态变量 Xt, 2 m注入一个单字节随机故障 .故障在传播过程中将会影响密码中间状态变量的值, 如果单故障注入后导致的多个差分同时传播到某个中间状态变量 Xr, k时, 称之为故障相遇.如果这多个故障差分同时作用于该中间状态变量且故障相互之间发生抵消使 X r, k=0, 则称之为故障失效.图 4 故障相遇和故障失效示意图 Fig.4 Fault collision and fault failure 下载原图例如, 在图 4 中, 故障差分 3和 4同时传播到 Xr+2, 2 m+3时发生故障相遇, 当故障差分 3和 4相互抵消使 5=0 时发生故障失效, 此时故障对 Xr+2,

21、2 m+3的值无影响.性质 3 显性故障失效和隐性故障失效如果故障失效引起密文差分值发生改变, 则称之为显性故障失效.反之, 则称之为隐性故障失效.例如, 在图 4 中, 假设故障失效发生在中间状态 Xr+2, 2 m+3, 当 N=1 时, C 2n=0, 此时故障失效引起密文差分值发生改变, 该故障失效为显性故障失效.当 N1 时, C 2n0, 此时故障失效对密文差分值无影响, 该故障失效为隐性故障失效.2.3 现有攻击方法的不足陈浩等11利用二元组 G= (fd, ) 来表示一个故障位置, 其中 fd=32-r+1 表示故障深度, r 为故障注入轮, 表示注入故障的中间状态变量的索引值

22、.根据fd一定时, 值不同, 密码产生的错误密文差分 C i0 个数和密文索引值 i不同, 陈浩等11构建了一个故障位置区分器, 对故障深度不超过 7 的故障位置进行精准判定.该故障位置区分器通过定义集合:来表征密文差分 C i0 的索引集, 进而对故障位置进行判定.例如, 图 5 所示为攻击者向密码第 26 加密轮随机注入一个单字节故障时的故障位置和 (f d, ) 关系图, 由图 5 可知, 当在故障传播过程中没有显性故障发生时, 故障位置 (f d, ) 和 (f d, ) 一一对应, 此时根据 (f d, ) 能够非常准确地判定故障位置.图 5 故障区分器示意图11Fig.5 Stru

23、cture of the fault distinguisher11 下载原图然而, 一旦在故障传播过程中发生显性故障失效时, 该故障位置区分器将不能判定出正确的故障位置, 进而导致攻击失败.例如, 若图 1 中 (1) 处发生显性故障失效, C 4=0, (7, 4) =1, 2, 3, 5, 6, 7, 则根据陈浩等11构建的故障位置区分器不能判定出正确的故障位置, 攻击失败.此外, 陈浩等11还根据具体的故障传播路径构建故障信息等效代数方程组, 自动化程度有待提高.3 HIGHT 容错代数故障攻击3.1 攻击基本思想针对已有攻击方法的不足, 本文拟从容错性能和自动化程度两个方向对现有方法

24、进行改进.(1) 容错性能改进:为了提高攻击的正确率, 应尽可能地减少故障失效对攻击的影响.根据之前的分析, 在故障传播中故障失效分为隐性故障失效和显示故障失效.如图 1 所示, 攻击者向密码加密第 26 轮注入随机单字节故障, 中间状态 X30, 2处发生隐性故障失效, 由图可知该故障失效对正误密文差分值并未造成影响, 攻击者仍能正确判定故障位置, 因此在实际攻击中主要考虑建立新的故障位置区分器来消除或纠正显性故障失效对攻击造成的影响, 隐性故障失效则可以忽略不计.(2) 自动化程度改进:通常对密码进行代数故障攻击主要分为在线和离线两个阶段12, 其中在线阶段攻主要完成向密码芯片注入实际随机

25、故障产生错误密文, 离线阶段则对注入故障之后芯片产生的数据进行收集, 并根据收集到的数据完成故障位置判断、密码整体代数方程组构建、故障信息等效代数方程组构建以及代数方程组求解, 进而恢复密码密钥信息.一个好的代数故障攻击方法自动化程度必须足够高, 故障位置的判断、密码整体代数方程组构建和故障信息等效代数方程组构建应能在离线阶段自动完成.基于此, 本节将提出高效的故障位置推断和故障信息等效代数方程组构建方法以实现故障位置和故障信息等效代数方程组的自动判定和构建.3.2 故障位置区分器构建本小节将以对 26 轮攻击为例, 给出新的故障位置区分器的构造方法.分析易知, 当攻击者向 X26, (=2m

26、, 0m3) 注入故障时, 故障传播路径如图 1 所示, 可能的显性故障失效点有 4 个: ( (1) , (2) ) , ( (3) , (4) ) .但由于 (1) 和 (2) , (3) 和 (4) 均不同时发生, 因此总的显性故障失效次数为:C2+C2+C2C2=8, 且每个故障失效对应不同的 (f d, ) , 所以该故障位置对应 8 个不同的 (f d, ) , (f d, ) 具体值可参见附录 1 中的表 3 (下同) .同理, 当攻击者向 X27, (=2m+1, 0m3) 注入故障时, 总的故障失效次数为:1+C 2+C2=5, 且每个故障失效对应不同的 (f d, ) ,

27、所以该故障位置对应 5 个不同的 (f d, ) .因此, 当攻击者对 26 轮 (f d=7) 进行攻击时, 可构造如图 6 所示的故障位置区分器, 完整区分器 (4f d7) 可参见附录 1.在实际攻击中, 攻击者输入 (f d, ) , 故障位置区分器根据 (f d, ) 快速自动地判定故障位置 (f d, ) , 并且标记出发生显性故障失效的中间状态变量.例如, 当正误密文差分值为 (00, 50, EE, 09, 00, EA, B7, 21) 时, (f d, ) =1, 2, 3, 5, 6, 7, 故障位置区分器根据输入的 (f d, ) 判定故障位置为 (7, 1) , 并标

28、记出中间状态变量 X31, 4在故障传播过程中发生显性故障失效, 其过程如图 6 中虚线部分所示, 整个判定和标记过程是自动完成的.图 6 新构建的故障区分器示意图 (fd=7) Fig.6 Structure of the proposed fault distinguisher (fd=7) 下载原图3.3 故障信息等效代数方程组自动化构建为了叙述方便, 使用下列表达式:表示由 A 通过关系式 (*) 推导出 B.定义集合:表示故障传播过程中第 n 轮加密未受影响的中间状态集合, r 为故障注入轮, 且设 U=0, 1, 2, 3, 4, 5, 6, 7, 则显然有:由密码第 32 轮函数

29、可知:由密码轮函数可知:基于式 (26) (28) 知, 当故障注入位置 Xr, i已知时, 集合 (f d, ) i可以按照如下具体步骤推导出来:(1) 根据正误密文对 (C, C) 计算 (f d, ) ;(2) 由 (f d, ) 查询故障位置区分器, 得到故障位置 (f d, ) , 如果故障在传播过程中有中间状态变量发生显性故障失效, 则将其标记并添加至集合 (f d, ) 中;(3) 根据故障位置 (f d, ) , 利用等式 (18) (20) 迭代计算 (f d, ) i, i 的初始值为 32-fd+1, 且每次迭代之后 i 自增 1;(4) 得到 (f d, ) i后, 判

30、断 i 值是否等于 32, 如果相等则运算结束, 否则跳转到步骤 (3) 继续进行迭代操作.在推导出 (f d, ) i后, 为了充分利用故障信息, 实现故障信息的最大化利用和故障信息等效代数方程组的自动化构建, 分别使用 Xi=Xi, 7X i, 0和X i=X i, 7X i, 0表示故障注入前后的中间状态变量, ri32, 则故障信息等效代数方程组自动化构建过程的伪代码如算法 1 所示.算法 1 输入为故障位置 (f d, ) , (f d, ) 和 (f d, ) i, 输出为故障信息等效代数方程组.3.4 攻击复杂度分析由于本文提出的改进代数故障攻击的复杂度主要由故障注入次数构成, 因此本节主要从理论角度对故障注入次数 N 进行评估.本质上, 故障分析方法主要利用密码算法正误密文输出差分同故障传播过程中涉及的相关密钥关系进行密钥破解13.因此, 当且仅当注入的故障在传播过程中涉及全部的主密钥信息 MK 时, 攻击者才能恢复所有主密钥信息 MK.

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 学术论文 > 期刊/会议论文

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报