文献标识码: A
DOI:10.16157/j.issn.0258-7998.2017.05.011
中文引用格式: 严迎建,王寿成,许纪钧,等. 面向并发错误检测机制的故障灵敏度零值分析[J].电子技术应用,2017,43(5):48-51.
英文引用格式: Yan Yingjian,Wang Shoucheng,Xu Jijun,et al. Research on fault sensitivity zero-value analysis for concurrent error detection[J].Application of Electronic Technique,2017,43(5):48-51.
0 引言
故障灵敏度分析[1](Fault Sensitivity Analysis,FSA)是利用故障产生临界条件与中间值的相关性推断密钥信息的新型故障攻击方法。近年来,FSA攻击逐渐走向成熟,具有极强的破坏性,能够成功破解多种防御措施。自2010年提出以来,针对故障攻击的防御方法如波动差分逻辑[2]、掩码预充电逻辑[3-4]等已经被其成功破解,使用传统抗故障攻击方法已无法抵抗故障灵敏度分析。
同时,结合零值分析的故障灵敏分析方法越来越受到关注。文献[5]针对掩码实现的AES算法S盒实施了FSA攻击,并提出了零值模型攻击方法,实现了对密钥信息的高效破解。文献[6]针对并发错误检测机制(Concurrent Error Detection,CED)[7-8]提出了一种高效的FSA攻击方法,不同于模板攻击以及碰撞攻击,该方法仅需要知道故障是否发生即可完成密钥破解,能够在8个小时内完全破解密钥信息。为提升FSA攻击效率,本文在深入分析并发错误检测机制的基础上,提出了一种高效的FSA攻击方法。
1 零值分析的基本原理研究
零值攻击[9]是利用密码算法零值的特殊区分特性作为区分模型的一种攻击方法,具有非常高的攻击效率,对密码芯片具有很大的威胁性。最先提出的零值攻击方法主要用于破解乘法掩码技术[10],其理论依据是当乘法掩码的输入值为0时,其掩码的输出值为0,与掩码的取值无关,导致零值输入与非零值输入时测得的能耗具有明显的区别。攻击者利用这个显著区别作为区分函数,建立了基于差分能量攻击的攻击模型[11]。文献[5]提出了针对掩码AES的故障灵敏度零值分析方法,其攻击模型基于故障灵敏度的区分模型提出,结果表明加法掩码同样存在零值模型的区分。
本文以并发错误检测机制防护的AES算法为攻击对象,收集故障灵敏度信息后,统计分析故障灵敏度的零值区分模型,确定区分零值输入和非零值输入的区分函数,从而达到攻击目的,具体步骤如图1所示。通过分析发现,并发错误检测机制同样存在可以被攻击者利用的零值区分模型,因此本文利用该区分模型对CED实现的AES算法进行攻击分析。
2 并发错误检测机制通用评估模型研究
并发错误检测机制是抵御故障攻击的常用方法,通过检测故障的存在,并将输出置为零,用以阻止攻击者收集故障输出进行故障分析。为了建立一个统一的评估系统,本文构建了一种通用的并发错误检测机制的架构,通过改变不同P操作的配置参数,实现对不同冗余机制的模拟,整体结构如图2所示。
加密时,每轮运算需要两个时钟周期,第一个时钟周期内完成计算步骤,即对寄存器1中数据通过数据路径完成加密运算,将运算结果存储至寄存器2中;第二个时钟周期内完成校验步骤,即将寄存器1中的数据再次加密,并将运算结果存储在寄存器1中作为下一轮的输入,同时将结果与寄存器2中的数据进行对比分析。若两个数据相同,则加密运算正确,反之加密运算发生故障。
P操作的配置通过外部连接的控制信号PRNG实现,通过配置不同的P操作能够选择不同的并发错误检测机制:
(1)将P配置为在每一轮的运算过程中两个时钟周期都运行,此时的并发错误检测机制可以实现时间冗余;
(2)将P配置成在第一个时钟周期中正常运行,而第二个时钟轮中进行列循环右移,此时的并发错误检测机制可以实现基于不变的混合冗余机制;
(3)在两个时钟周期中随机选择列顺序,此时可以实现一种用于抵抗侧信道攻击的防御措施。
由上述分析可知,由于密钥替代(SubBytes,SB)仅仅是对单个独立字节进行操作,同时P操作只在完整列中有效,图2所示CED电路不会影响面积或者性能。与此同时,通过对行移位操作位置进行简单有效的修正与改进,P操作的控制由固定置换转变为动态矩阵,列交换可以以任意方式进行,同时每一轮运算也不相同,列混合可能达到的正确置换的数量增至4!=24种,大大增加了攻击难度,具有很强的灵活性、实用性、安全性和通用性。
3 区分模型的选取方案研究
3.1 区分模型的选取规则
为了降低FSA攻击的计算复杂度,增加成功率,区分模型的选取应该遵循以下规则:
规则1:区分模型须能够正确反映故障灵敏度零值攻击的本质信息。
规则2:区分模型须具有清楚的区分特性,能够易于观察、便于统计。
规则3:尽可能实现在算法前两轮中选择攻击点。
3.2 区分模型的选取
对AES算法S盒不同输入下所需要的计算时间进行统计分析,其结果如图3所示,具有以下规律:一是关键路径延时与电路的输入具有很强的相关性;二是关键路径延时不仅与下一状态输入的值有关,与上一状态的值同样有关;三是当S盒的输入值存在零值时得到稳定输出需要的时间比其他情况要少。
相关研究表明,零值输入的规律也适用于非掩码电路,如复合域生成的S盒。S盒由求逆运算和仿射变换的复合来设计得到,当输入为0时,所有的乘法都为零,关键路径延时非常小。而引入毛刺时钟后,关键路径越小,受到时钟变化的影响越小,出错的概率也会大大减小,因此存在零值和其他值的正确率可以明显区分的情况。对于AES算法而言,明文完成初始轮密钥加后再进入轮运算,为了使S盒的输入为零,明文字节与密钥字节必须相等,即xj=kj,j表示字节数,j∈{1,…,16}。这一特点在求解密钥的过程中可以充分利用,将会降低密钥恢复的复杂度。
综上所述,本文选取S盒的零值输入与非零值输入对应的正确率作为区分模型,通过分析零值与非零时的统计特性,根据计算结果的正确率来推断出泄露的密钥信息。
4 实验结果分析
4.1 攻击方法分析
综合考虑来说,将攻击目标选在第一轮更加简单、直接、高效。具体的攻击流程如下。
由于直接计算每一个明文字节的影响是不可能的,如果运算时时钟脉冲引起了故障,仅仅表明16个字节中至少有一个引起了故障。因此,只有通过多次重复实验,统计出每一个字节对应的正确率,同时可以根据需求丢弃一些不符合条件的密钥候选。
算法1中ε的设置用来减小密钥搜索空间,每次迭代过程中,设定值越大,则丢弃的密钥候选值越多。同时,越大的ε将会增加错误丢弃正确密钥候选的几率,当一个字节的正确密钥候选在前面的运行中被丢弃后,算法1将会丢弃其他所有的候选值,并跳转到算法2中恢复密钥信息,密钥恢复流程如算法2:
算法2: 故障灵敏度零值分析的密钥恢复方法
输入:明文字节j候选的正确率,j*,阈值λ
4.2 攻击结果分析
本节主要对基于不变的并发错误检测机制展开研究,此时P操作配置为置换矩阵,攻击目标为算法运算的第一轮,攻击模型如图4所示。
攻击时,由于S盒时间延迟最长,因此改变时钟频率时,其最容易发生故障,通过同步检测机制的判断,可以收集第一轮生成的结果,进而通过E(error)的值统计正确率。由于AES算法的S盒可以独立进行运算,因此攻击目标选择单个S盒。以第4个S盒为例进行攻击分析。统计S盒输入的不同取值下的正确率,可以得到图5。结果表明,本文设计的区分模型能够清晰地区分零值与非零值的状态。
得到S盒输入的正确率分布后,根据结果即可猜测密钥信息。只有在S盒的输入为0时,其正确率最高且具有良好的区分度。通过分析发现,S盒的输入就是明文P经过与轮密钥K的异或运算得到的,因此为了使S盒的输入为零,只需要满足式(1)即可。
由于明文已知,选定一个P即完成一次实验,子密钥遍历256次完成256次加密,可得不同明文正确率如图6所示。当P=53H时,正确率最高,表示S盒输入为零,此时明文字节与密钥字节相等。因此密钥的猜测值为K=53H(二进制为83d)。
分析发现,基于零值分析的FSA攻击不需要建立特定模型即可完成零值与非零值的区分,一组实验即可完成分析,降低了分析的复杂度。为了展现故障灵敏度分析与零值分析的高效性,横向对比其他方法,如表1所示。
表1对比了3种针对并发错误检测机制的AES算法的攻击方法。通过对比发现,零值分析具有显著的优势,其实现的实验条件简单,准确性高,且其计算复杂度相较于其他两种方法都很低。
5 结论
本文基于并行错误检测机制的故障灵敏度零值分析展开研究,实现了基于故障灵敏度的高效零值攻击。本文设计的通用并行错误检测机制评估模型,能够实现不同并行错误检测方案,并能评估每种方案的抗攻击性能。实验结果表明,本文提出的分析方法能够高效准确地进行故障灵敏度分析。
参考文献
[1] LI Y,SAKIYAMA K,GOMISAWA S,et al.Fault sensitivity analysis[M].Cryptographic Hardware and Embedded Systems(CHES 2010).Springer Berlin Heidelberg,2010:320-334.
[2] KRIS T,INGRID V.A logic level design methodology for a secure DPA resistant ASIC or FPGA implementation[C].Proceedings of the conference on Design,automation and test in Europe-Volume 1.IEEE Computer Society,2004:246-251.
[3] THOMAS P,STEFAN M.Masked dual-rail pre-charge logic:DPA-resistance without routing constraints[C].Cryptographic Hardware and Embedded Systems-CHES 2005.Springer Berlin Heidelberg,2005:172-186.
[4] 常小龙,丁国良,武翠霞,等.抗电磁侧信道攻击的AES S盒设计[J].计算机工程,2011,37(17):93-95.
[5] 王茜.分组密码算法故障灵敏度分析研究与抗故障攻击实现[D].北京:清华大学,2014.
[6] MISCHKE O,MORADI A,GUNEYSU T.Fault sensitivity analysis meets zero-value attack[J].IEEE Computer Society,2014:59-67.
[7] GUO X,MUKHOPADHYAY D,KARRI R.Provably secure concurrent error detection against differential fault analysis[J].Iacr Cryptology Eprint Archive,2014:1-24.
[8] KARRI R,WU K,MISHRA P,et al.Concurrent error detection schemes for fault-based side-channel cryptanalysis of symmetric block ciphers[J].IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems,2002,21(12):1509-1517.
[9] 汪鹏君,郝李鹏,张跃军.防御零值功耗攻击的AES SubByte模块设计及其VLSI实现[J].电子学报,2012,40(11):2183-2187.
[10] AKKAR M L,GIRAUD C.An implementation of DES and AES,secure against some attacks[M].Cryptographic Hardware and Embedded Systems(CHES 2001).Springer Berlin Heidelberg,2001:309-318.
[11] JOVAN D G,TYMEN C.Multiplicative masking and power analysis of AES[C].Revised Papers From the International Workshop on Cryptographic Hardware and Embedded Systems.Springer-Verlag,2002:31-47.
[12] MORADI A,MISCHKE O,PAAR C.One attack to rule them all: collision timing attack versus 42 AES ASIC cores[J].IEEE Transactions on Computers,2013,62(9):1786-1798.
[13] MISCHKE O,MORADI A,GUNEYSU T.Fault sensitivity analysis meet zero-value attack[C].IEEE the Workshop on Fault Diagnosis & Tolerance in Cryptography.2014:59-67.
作者信息:
严迎建,王寿成,许纪钧,王 忠
(解放军信息工程大学 密码工程学院,河南 郑州450001)