针对SMS4密码算法的Cache计时攻击
2010-08-14赵新杰王韬郑媛媛
赵新杰,王韬,郑媛媛
(军械工程学院 计算机工程系,河北 石家庄 050003)
1 引言
密码算法是密码学的重要内容,是实现信息保密的核心体制,其安全性分析一直是密码研究中非常活跃的课题。密码算法的安全性包括2大方面内容:一方面是数学上的安全性,主要是从密码算法的设计角度来考虑安全性能,将其看作是一个抽象的数学变换,从传统的代数、数论、信息论、计算复杂性、逻辑和统计结构上分析密码安全性;另一方面是与算法实现相关的安全性,主要是利用算法在物理设备和软件平台上实现可能泄露的各种中间状态信息(如时间、功耗、电磁辐射、错误信息等)来进行密钥分析。这种利用中间状态信息对密码算法实现进行分析的过程称为旁路攻击,主要的攻击类型有计时攻击[1]、功耗攻击[2]、电磁分析[3]和故障攻击[4]等。当前主流密码算法在数学上都具有较高的安全性,经受了大量数学分析的考验,几乎无法破解,而旁路攻击具有信息采集方法多、分析方法简单、密钥恢复效率高等优点,在密码分析中屡屡出奇制胜,为密码和信息安全带来了新的挑战和思考。
高速缓冲存储器Cache的时间信息,可能作为密码破解的旁路思想,最早是由 Kocher等人[1]在1996年提出来,其基本原理是:相同的数据或指令在访问存储器时,由于涉及到的目标数据当前是否处于Cache中同Cache的历史状态有关,因此此时是否发生Cache命中是不确定的,这将导致数据访问操作的不确定。这种不确定性行为可以通过时间旁路方式泄露出来。此后,人们从攻击部件单元、采集时间点、采集方式、攻击环境等角度对 Cache计时攻击进行了分类,从性能、效率、攻击难易程度等方面进行研究,并给出了 RSA算法[5,6]、DES算法[7]、AES算法[8~12]等多种密码体制的 Cache计时攻击方法。
SMS4算法[13]作为国内官方公布的第一个商用分组密码算法,中国无线局域网安全标准WAPI的重要组成部分,其安全性研究具有重要的意义,自2006年提出以来密码界对其安全性展开了一系列的研究。在传统数学分析方面,文献[14,15]根据SMS4的轮结构特点,构建出12、14轮不可能差分区分器,并分别对14、17 轮SMS4 进行了不可能差分攻击,但攻击样本量和计算复杂度很高。在旁路攻击方面,主要从差分故障分析角度开展,文献[16]提出,SMS4 算法的安全性对差分故障攻击是脆弱的,在选择明文攻击下,通过在加密过程中指定存储单元中导入随机单字节故障,利用非线性变化的差分特性即可恢复原始密钥;文献[17]通过提高故障导入的效率,可以用较少的错误密文数恢复原始密钥;文献[18]提出并讨论了一种针对 SMS4密钥编排方案的差分故障攻击方法,通过在 SMS4算法的密钥编排方案中导入故障成功恢复初始密钥。目前所有针对SMS4的差分故障分析都是针对单字节故障导入进行的,现有故障导入方式大都通过计算机模拟方式实现,在真实环境下故障信息的精确导入和采集极为困难,攻击实用性不强。在针对SMS4的Cache计时攻击方面,尚未发现国内外有公开发表的结果。
在深入分析和测试SMS4 算法后,本文提出了针对SMS4 算法加密前4轮和最后4轮的Cache计时分析方法,通过使用间谍进程采集SMS4加密过程中访问的Cache组信息,结合明文或密文信息,分别设计实现针对SMS4前4轮和最后4轮的Cache计时攻击,并就攻击过程、结果等进行了详细的描述和分析。理论分析和实验结果证明:SMS4算法实现易遭受Cache计时攻击威胁,前4轮、最后4轮攻击均在80个样本左右成功恢复128bit SMS4完整密钥。
本文结构如下:第2 节简单介绍SMS4 算法;第3 节概述Cache计时攻击方法的基本思想;第4节详细介绍提出的针对SMS4的Cache计时分析方法;第5 节列出攻击实验及实验结果对比;第6 节是结束语。
2 SMS4算法
SMS4 密码是迭代型分组密码算法,其分组和密钥长度均为128bit。加密算法与密钥编排算法都采用 32 轮非线性迭代结构,解密算法与加密算法的结构相同,只是子密钥的使用顺序相反,以下仅介绍加密算法。
2.1 加密算法
SMS4算法加密过程如图1所示。设明文输入为(X0, X1, X2, X3)∈()4,密文输出为(Y0, Y1, Y2,Y3)∈()4,轮密钥为 rki∈(i=0,1,…,31),则算法加密变换和反序变换为
其中,0≤i≤31,轮函数F定义为
图1 SMS4加密算法结构
2.2 密钥扩展算法
SMS4加密算法的轮密钥由加密密钥通过密钥扩展算法生成。加密密钥 MK=(MK0,MK1, MK2,MK3),MKi∈(i=0,1,2,3);令 Ki∈(i=0,1,…,35),轮密钥为 rki∈(i=0,1,…,31),轮密钥生成算法如下:
首先,进行初始变换
然后,对i=0,1,…,31进行下列运算:
其中,FK=(FK0,FK1,FK2,FK3)和 CK=(CK0,CK1,…,CK31) 为已知系统参数,其值可参见相关标准文献[13];T'变换和加密算法轮函数中T基本相同,只将其中的线性变换L修改为以下L':
3 针对SMS4的Cache计时攻击概述
3.1 Cache计时攻击原理
高速缓存Cache[19]主要用于解决CPU与主存之间速度不匹配的问题。由Cache访问命中和失效会带来时间差异,而分组密码在加密过程中由于使用了S盒进行查表操作访问Cache,其Cache访问特征信息可通过时间特征信息泄露出来,可以说,Cache为密码进程加密提供了时间信息泄露源。而在组映像Cache中,多进程在主存中数据可能被映射到同一Cache组中,进而共享Cache存储空间。但是这样就带来了一个严重的问题,恶意进程可以通过对其私有数据进行Cache访问“命中”和“失效”带来的时间差异信息来推测其他进程的 Cache访问特征。虽然Cache中的数据元素是受存储器保护的,攻击者无法直接获取,但是其元数据可泄露Cache访问地址特征信息,而Cache访问地址特征信息和分组密码查找S盒索引有着密切关系,可被攻击者利用来进行密码分析。由此可知,Cache也为密码进程提供了时间信息泄露隐通道。
一般来说,攻击者通过计时手段主要获取2大类信息:一类是由Cache命中、失效天然条件导致的密码系统不同输入的整个加解密时钟周期差异,另外一类就是密码进程加解密访问过的Cache组信息,由此演化出了2种Cache计时分析方法——时序驱动Cache计时分析[5,8,9]、访问驱动Cache计时分析[6,10~12]。相比较而言,时序驱动信息采集方法比较简单,但分析方法比较复杂,样本量较大,一般在百万计以上,由网络传输时延抖动带来的噪声使得远程环境下计时信息的精确采集显得更加困难,远程攻击适用性不强;访问驱动分析利用的是密码算法加解密中访问的Cache组集合信息,信息采集方法比时序驱动稍显复杂,但分析方法简单,所需样本量较小,在木马技术飞速发展的今天,其在本地和远程实施攻击的可行性越来越强,越来越受攻击者青睐。
3.2 攻击条件
本文主要采用访问驱动方式对SMS4分组密码开展Cache计时分析,攻击需满足的基本条件为:
1) 攻击者已知明文或密文信息。对于针对SMS4前4轮攻击来说,攻击者需已知加密明文;同样对于后4轮攻击来说,攻击者需已知加密密文。
2) 攻击者具备采集 SMS4加密部分轮访问过和未访问过的Cache组集合信息能力。SMS4前4轮攻击中,攻击者能通过一定手段在加密前清空Cache,并在前4轮加密后能够再次访问Cache,采集SMS4加密前4轮加密访问的Cache组集合信息;在SMS4后4轮攻击中,攻击者可在加密29轮前清空Cache,并在整个加密完成后再次访问Cache,采集加密最后4轮访问的Cache集合信息。
3.3 攻击基本思想
对SMS4密码算法进行访问驱动Cache计时攻击的基本思想如下。
前4轮攻击:
1) 产生随机明文,得到明文信息;
2) 在加密开始前,使用间谍进程清空Cache,并确保在前4轮加密后再次访问Cache,采集SMS4前4轮加密中没有访问过的Cache组信息;
3) 将SMS4加密没有访问过的Cache组信息转换为不可能查表索引,结合明文信息(X0, X1, X2, X3)得到第一轮扩展密钥 rk0的不可能值,多样本排除分析后得出rk0的唯一值;
4) 将rk0值代入第1轮加密公式,得到每个明文样本加密的X4值,利用不可能查表索引和中间状态信息(X1, X2, X3, X4)得到rk1的不可能值,多样本排除分析后得出rk1唯一值;
5) 同样,利用上述相同方法进行推导分析,依次攻击得到加密第3轮、第4轮扩展密钥rk2、rk3;
6) 使用已经恢复出的加密前4轮扩展密钥,根据密钥扩展算法,逆向计算出初始加密密钥K。
最后4轮攻击:
1) 产生随机明文,加密后获得相应的密文信息;
2) 确保在加密第29轮开始前,使用间谍进程清空 Cache,并在 32轮整个加密完成后再次访问Cache,采集SMS4最后4轮加密中没有访问过的Cache组信息;
3) 将SMS4加密没有访问过的Cache组信息转换为不可能查表索引,结合密文信息(X32, X33, X34,X35)得到第32轮扩展密钥rk31的不可能值,多样本排除分析后得出rk31的唯一值;
4) 将rk31值代入第32轮加密公式,得到每个明文样本加密的 X31值,利用不可能查表索引和中间状态信息(X31, X32, X33, X34,)得到rk30的不可能值,多样本排除分析后得出rk30唯一值;
5) 同样,利用上述相同方法进行推导分析,依次攻击得到加密第30轮、第29轮扩展密钥rk29、rk28;
6) 使用已经恢复出的最后4轮扩展密钥,根据密钥扩展算法,逆向计算出初始加密密钥K。
4 针对SMS4的Cache计时攻击过程详述
4.1 基本记号和符号
记(X0, X1, X2, X3)∈()4为明文输入,(Y0, Y1,Y2, Y3)∈()4为密文输出,rki∈(i=0,1,…,31)为第i轮扩展密钥。
记(Xi, Xi+1, Xi+2, Xi+3)∈()4(i=0,1,…,31)为第i+1 轮输入;(Xi+1, Xi+2, Xi+3, Xi+4)∈ ()4(i=0,1,…,31)为第i+1轮输出。
记 Ai=(a0,i, a1,i, a2,i, a3,i) ∈()4(i=1,2,…,32)为第i轮S盒的输入;Bi=(b0,i, b1,i, b2,i, b3,i) ∈()4(i=1,2,…,32)为第i轮S盒的输出,同时也是第i轮线性变换 L 的输入;Ci=(c0,i,c1,i,c2,i,c3,i) ∈()4(i=1,2,…,32)为第i轮线性变换L的输出。
记 Scs为SMS4加密查S盒访问过的Cache组集合,为SMS4加密查S盒没有访问过的Cache组集合;Sy为SMS4加密访问过的Cache组集合对应的可能查S盒索引值集合,为SMS4加密没有访问过的Cache组集合对应的不可能查S盒索引值集合。
下面将详细介绍针对SMS4加密前4轮和最后4轮的攻击过程。
4.2 信息采集
SMS4加密访问Cache特征信息的精确采集是信息分析的前提,对于访问驱动Cache计时攻击来说,Cache命中和失效时钟周期信息的采集和指定加密轮访问Cache特征信息采集时机选取是攻击成功的关键所在。
计时手段选取:由于现代计算机时钟周期早已达到纳秒级,Cache命中和失效一般都是100ns以内,传统的计时方式会造成很大误差,甚至会出现计量结果全部相同情况。因此,本文采用的是Pentium CPU内部时间戳进行高精度计时,该时间戳可通过 RDTSC指令来进行读取。由于目前的CPU主频都非常高,调用该指令可达到纳秒级计时精度。
Cache信息采集时机选取:为间谍程序分配和L1数据Cache大小相等的字节数组A[0,…, S×W×B-1],由第3节可知,前4轮攻击中,攻击者需在加密前每隔一个 Cache行访问数组 A中元素清空Cache,然后确保在前 4轮加密后再次访问数组 A中元素,采集Cache访问时钟周期信息;最后4轮攻击中,攻击者需确保在加密 29轮开始前清空Cache,然后在第32轮加密完成后再次访问数组A,采集Cache访问时钟周期信息。如何在SMS4加密指定轮前后精确的执行Cache访问操作十分关键。
攻击中,首先学习对多个样本执行 SMS加密的平均时钟周期t,然后在加密前执行RDTSC指令读取时间戳t1,加密开始前访问数组A清空Cache,然后使用间谍进程监视SMS4加密过程中系统时间戳t2变化。在前4轮攻击中,如果(t2-t1)>3×t/8则进行Cache 2次访问操作;在最后4轮攻击中,如果(t2-t1)>5×t/8则访问数组再次清空 Cache,然后在整个加密完成后再次访问数组A,采集Cache访问时钟周期信息。
4.3 信息分析
下面详细介绍对采集的SMS4前4轮Cache旁路信息分析过程。
1) 产生随机明文X,并执行在未知密钥K作用下的加密。
2) 攻击第1轮(如图2所示),步骤如下。
①首先启动间谍程序,每隔一个Cache行大小读取数组A中数据来清空Cache,然后对明文X在密钥K作用下加密,在加密前4轮执行完毕后再次访问Cache,采集Cache访问时钟周期信息。此时如果对SMS4查找表对应的Cache组访问所需时钟周期较长,说明在前4轮加密中对该Cache组对应的查表索引进行过访问操作,将数组 A中数据从Cache中替换出来,间谍进程2次访问Cache失效;否则说明在加密过程中没有访问该Cache组对应的查表索引,间谍进程2次访问Cache命中,最终得到SMS4加密前4轮没有访问的Cache组集合,如图3所示,横坐标表示SMS4 S盒对应的16个Cache组,纵坐标表示对其的访问时钟周期,如果SMS4加密没有访问某Cache组,间谍进程2次访问会发生Cache命中,时钟周期小于5,否则发生Cache失效,时钟周期一般大于10。
② 利用查找表对应 Cache组和查表索引之间关系可知,每一个加密未访问的Cache组将对应16个查表索引值,分析可得加密前4轮没有访问的查表索引集合。
③ 由加密第1轮公式(7)可知,第1轮加密的输入为(X0,X1,X2,X3),新的中间状态变量输出为X4,扩展密钥为rk0,共进行4次查表操作,对应的4个查表索引分别为(a0,1, a1,1, a2,1, a3,1)。
图2 第1轮攻击
图3 SMS4 查找S盒访问Cache组时钟周期
式(7)又可转化为如式(8)所示。
将每个加密前 4轮不可能访问的查表索引值(a'0,1, a'1,1, a'2,1, a'3,1)代入式(8)分别得到轮密钥rk0的4个字节的一组不可能值。理想情况下,如果未访问的Cache组集合数目等于NS情况下,可分别将(rk'0,0, rk'1,0, rk'2,0, rk'3,0)的密钥字节候选值集合数量从256降低到256-16×NS,由于正确的密钥值是不可能被排除掉的,故多样本排除分析可得到唯一的(rk0,0, rk1,0, rk2,0, rk3,0),即得到rk0。
3) 攻击第2轮,步骤如下。
将rk0代入式(7)得到第1轮加密输出中X4值,由第2轮加密式(9)可知,第2轮加密的输入为(X1,X2,X3, X4),新的中间状态变量输出为X5,扩展密钥为 rk1,同样也进行 4次查表操作,对应的 4个查表索引分别为(a0,2, a1,2, a2,2, a3,2)。
将加密前 4轮不可能访问的查表索引值(a'0,2,a'1,2, a'2,2, a'3,2)代入式(9)分别得到轮密钥rk1的4个字节的一组不可能值,多次排除分析得到唯一的(rk0,1, rk1,1, rk2,1, rk3,1),即得到rk1。
4) 攻击第3、4轮,将rk1代入式(9)得到第2轮加密输出X5值,然后参考步骤3)方法得到rk2,同样方法也可得到rk3。
5) 利用密钥扩展算法,由rk0,rk1,rk2,rk3恢复加密密钥K。
下面详细介绍对采集的SMS4最后4轮Cache旁路信息分析过程。
1) 产生随机明文X,并执行在未知密钥K作用下的加密,并获取密文C。
2) 攻击第32轮(如图4所示),步骤如下。
① 首先启动间谍程序,在加密第29轮执行前清空Cache信息,然后在第32轮加密完成后再次访问Cache,采集Cache访问时钟周期信息。此时如果对SMS4查找表对应的Cache组区域进行访问时钟周期较长,说明在最后4轮SMS4加密中对该Cache组对应的查表索引进行过访问操作,从而将攻击者数组A中数据从Cache中替换出来,攻击者2次访问发生Cache失效;否则说明在加密过程中没有访问过该Cache组对应的查表索引,攻击者2次访问发生Cache命中。得到SMS4加密前4轮没有访问的Cache组集合。
图4 最后1轮攻击
② 利用查找表对应 Cache组和查表索引之间关系可知,每一个加密中未访问的Cache组将对应16个查表索引值,分析可得加密前4轮没有访问的查表索引集合。
③ 由第32轮加密式(10)可知,加密输入为(X31,X32,X33,X34),新的中间状态变量输出为X35,扩展密钥为rk31,共进行4次查表操作,对应的4个查表索引分别为(a0,31, a1,31, a2,31, a3,31)。
式(10)又可转化为如式(11)所示。
将每个加密最后4轮不可能访问的查表索引值信息(a'0,32, a'132, a'232, a'3,32)代入式(11)分别得到轮密钥rk31的4个字节的一组不可能值。理想情况下,如果未访问的Cache组集合数目为NS的情况下,可分别将(rk'0,31, rk'1,31, rk'2,31, rk'3,31)的密钥字节候选值集合数量从256降低到256-16NS,由于正确的密钥值是不可能被排除掉的,故多样本排除分析可得到唯一的(rk0,31, rk1,31, rk2,31, rk3,31),即得到rk31。
3) 攻击第31轮,步骤如下。
将rk31代入式(10)得到第31轮加密输出中X31值,由第31轮加密式(12)可知,第31轮加密的输入为(X30,X31,X32, X33),新的中间状态变量输出为X34,扩展密钥为rk30,同样也进行4次查表操作,对应的4个查表索引分别为(a0,31, a1,31, a2,31, a3,31)。
将加密前 4轮不可能访问的查表索引值信息(a'0,31, a'1,31, a'2,31, a'3,31)代入式(12)分别得到轮密钥rk30的4个字节的一组不可能值,多次排除分析得到唯一的(rk0,30, rk1,30, rk2,30, rk3,30),即得到rk30。
4) 依次攻击第30、29轮,将rk30代入式(12)得到第30轮加密输出X33值,然后参考步骤3)方法得到rk29,同样方法也可得到rk28。
5) 利用密钥扩展算法,由 rk28,rk29,rk30,rk31恢复加密密钥K。
4.4 复杂度分析
SMS4算法在4轮加密过程中需要进行16次查表操作,令m为查找表在理想情况下(查找表起始元素在Cache行中是对齐的)对应Cache组个数,对于64byte的Cache行大小来说,m=16,p(b)为查表b次访问某一Cache组概率,P(b)为在p(b)概率下对应Cache元素个数,同样有,pn(b)为查找表b次没有访问某一Cache组概率,Pn(b)为在pn(b)概率下对应Cache元素个数。对于一次查表操作访问的某个Cache组来说
则SMS4加密查表16次均未访问某一Cache组概率为
则16次查表没有访问的平均Cache组个数为
应用4.3节的排除分析方法,平均每个加密样本可以排除掉的密钥字节候选值数目为
令V代表扩展密钥单字节候选值集合,经过对N个随机样本进行排除分析后,V中元素数量平均值为
理论上来说,使得NV趋近于1对应的N值为理论上分析该密钥字节所需样本量大小,由式(17)可知14个样本左右即可恢复SMS4一个密钥字节,但由于4.3节排除分析利用的是加密没有访问过的Cache组集合并转化为不可能查表索引信息,每一个Cache组对应16个连续的索引值,故每个Cache组排除的密钥字节为连续的 16个值,排除分析的发散效果不好,因而攻击所需样本量比理论值要大些。
5 攻击实验及结果比较
5.1 实验环境
攻击实验环境如表1所示。
表1 SMS4攻击实验环境配置
5.2 实验结果
应用4.2节SMS4加密Cache访问信息采集方法和信息分析原理,对SMS4加密前4轮和最后4轮分别进行了攻击实验,攻击均在 80样本量左右快速恢复128bit SMS4密钥,耗时不超过1ms。
攻击样本量同SMS4部分密钥字节搜索空间关系如图5所示,每个样本量N均进行10次攻击。其中锚节点形状为三角形的曲线表示理论上攻击样本量同SMS4密钥字节搜索空间关系,锚节点形状为菱形的曲线表示攻击样本量同第1轮扩展密钥rk0的4个字节平均密钥搜索空间关系,锚节点形状为正方形的曲线表示攻击样本量同最后1轮扩展密钥rk31的4个字节平均密钥搜索空间关系。
图5 攻击样本量N和密钥搜索空间关系
由图5易知,第1轮攻击和最后1轮攻击样本量和对应的扩展密钥字节搜索空间关系基本一致;30个样本即可将 rk0和 rk31的密钥搜索空间由 232降低到24,70~80个样本即可稳定的获取rk0和rk31唯一值;同时,实际攻击所需样本量要大于4.4节理论分析结果,这主要是由于排除分析中每个没有访问的Cache组将对应16个连续的不可能查表索引值,由于其连续性导致的密钥字节排除分析发散性较差造成的。
5.3 结果比较
实验结果同国内外攻击比较见表2。文献[14,15]从数学角度对SMS4算法进行差分分析,攻击所需样本量极大,计算复杂度很高,攻击的真正实施不是很现实;差分故障分析所需样本量较小,密钥恢复效率较高,但现有攻击[16~18]都是通过修改加密算法在计算机上模拟实现故障导入,实际上是加密算法自己在进行故障导入,真实环境下对SMS4加密固定轮和固定字节进行故障导入极为困难,因此如何实现故障的精确导入是故障攻击未来要解决的问题。本文提出的访问驱动Cache计时攻击,在不修改和干扰加密算法执行的前提下,使用间谍进程采集SMS4加密过程中访问的Cache组集合信息,然后结合明文或密文进行分析,攻击所需样本量较小,密钥恢复效率也较高,攻击实用性相对来说比较强;本文中的分析方法具有普遍适用性,尤其是PC机上使用 S盒的分组密码算法,如 AES,Camellia,ARIA,SEED;同时,本文提出的攻击方法也很容易在远程环境下得以实施。
表2 攻击实验结果和国内外已有SMS4攻击比较
6 结束语
给出了一种针对SMS4分组密码算法的访问驱动Cache计时攻击方法,并分别对SMS4加密前4轮和最后4轮进行了攻击实验。研究结果表明:在不干扰SMS4加密算法执行前提下,前4轮、最后4轮攻击均可在 80个样本左右成功恢复 128bit SMS4密钥,此类针对SMS4的计时攻击手段对信息安全将带来突出威胁。
需要特别指出的是,基于Cache的SMS4计时攻击是SMS4分组密码查表操作实现方式与现有主流计算机硬件系统特征所固有决定的,具有难于规避的特点,防御这种攻击可采取去除查找表、进程访问控制、Cache预热、调整Cache结构甚至移除数据Cache等策略,但所有的防御措施都是要以牺牲加密速度为代价的,所以如何在速度和安全性这一对矛盾的指标上进行平衡选择是目前密码程序实现所面临的巨大挑战。
[1] PAUL C, KOCHER. Timing attacks on implementations of Diffie-Hellman, RSA, DSS, and other systems[A]. CRYPTO 1996[C].Springer, 1996.104-113.
[2] 吴文玲, 贺也平, 冯登国等. MARS和Rijndael的能量攻击[J]. 软件学报, 2002,13(4):532-536.WU W L, HE Y P, FENG D G, et al. Power attack of MARS and Rijndael[J]. Journal of Software, 2002,13(4):532-536.
[3] QUISQUATER J J, SAMYDE D. Electromagnetic analysis (EMA):measures and countermeasures for smart cards[A]. Smart Cards Programming and Security (E-Smart 2001)[C]. Springer, 2001.200-210.
[4] BONEH D, DEMILLO R A, LIPTON R J. On the importance of checking cryptographic protocols for faults[A]. EUROCRYPT’97[C].Konstanz, Germany, 1999. 37-51.
[5] BRUMLEY D, BONEH D. Remote timing attacks are practical[A].Proceedings of the 12th Usenix Security Symposium[C]. Washington,DC, 2003. 1-14.
[6] COLIN P. Cache missing for fun and profit[EB/OL]. http://www.daemonology.net/hyperthreading-considered-harmful/,2005.
[7] YUKIYASU T, TERUO S, TOMOYASU S, et al. Cryptanalysis of DES implemented on computers with Cache[A]. Cryptographic Hardware and Embedded Systems - CHES 2003[C]. Springer, 2003.62-76.
[8] DANIEL J, BERNSTEIN. Cache-timing attacks on AES[EB/OL].http://cr.yp.to/papers.html#Cachetiming, 2004.
[9] JOSEPH B, ILYA M. Cache-collision timing attacks against AES[A].Louis Goubin and Mitsuru Matsui, Editors, CHES 2006[C]. Springer,2006.201-215.
[10] DAG A O, ADI S, ERAN T. Cache attacks and countermeasures: the case of AES[A]. Topics in Cryptology-CT-RSA 2006[C]. Springer,2006.1-20.
[11] MICHAEL N, SEIFERT J P. Advances on access-driven Cache attacks on AES[A]. Selected Areas in Cryptography 2007[C]. Springer,2007.147-162.
[12] ZHAO X J, WANG T, MI D. Robust first two rounds access driven Cache timing attack on AES[A]. International Conference on Computer Science and Software Engineering(CSSE 2008)[C]. Wuhan,Hubei, China, 2008. 785-788.
[13] 国家商用密码管理办公室. 无线局域网产品使用的 SMS4 密码算法[EB/OL]. http://www.oscca.gov.cn/ UpFile/200622026423297990.pdf, 2006.Office of State Commercial Cipher Administration. Block cipher for WLAN products—SMS4[EB/OL]. http:// www.oscca.gov.cn/ UpFile/200622026423297990.pdf, 2006.
[14] 钟名富, 胡予濮, 陈杰. 分组加密算法SMS4的14轮Square攻击[J].西安电子科技大学学报,2008,35(1):105-109.ZHONG M F, HU Y P, CHEN J. Square attack on the 14-round block cipher SMS4[J]. Journal of Xidian University, 2008,35(1):105-109.
[15] 陈杰, 胡予濮, 张跃宇. 用不可能差分法分析17轮SMS4算法[J].西安电子科技大学学报, 2008,35(3):455-458.CHEN J, HU Y P, ZHANG Y Y. Impossible differential attack on the 17-round block cipher SMS4[J]. Journal of Xidian University,2008,35(3):455-458.
[16] 张蕾, 吴文玲. SMS4 密码算法的差分故障攻击[J]. 计算机学报,2006,29(9): 2596-2602.ZHANG L, WU W L. Differential fault analysis on SMS4[J]. Chinese Journal of Computers, 2006,29(9):2596-2602.
[17] LI W, GU D W. An improved method of differential fault analysis on the SMS4 cryptosystem[A]. The First International Symposium on Data, Privacy, and E-Commerce-ISDPE 2007 [C]. Chengdu, China,2007. 175-180.
[18] 李玮, 谷大武. 基于密钥编排故障的SMS4算法的差分故障分析[J].通信学报, 2008,29(10):135-142.LI W, GU D W. Differential fault analysis on the SMS4 cipher by inducing faults to the key schedule[J]. Journal on Communications,2008,29(10):135-142.
[19] HANDY J. The Cache Memory Book: the Authoritative Reference on Cache Design[M]. Orlando, FL, USA: Academic Press, Inc,1998.