基于掩码的AES算法抗二阶DPA攻击方法研究

2015-01-29 02:58赵跃华
电子设计工程 2015年20期
关键词:掩码二阶密钥

吕 慧,赵跃华

(江苏大学 计算机科学与通信工程学院,江苏 镇江 212013)

随着科技的不断进步,内嵌密码模块的智能设备和嵌入式设备已广泛应用于各类信息产品与通信系统中。密码芯片的安全问题也成为了当今社会人们非常关注的问题。在纷繁复杂的各类攻击方式中,侧信道攻击是最有效的攻击方式之一,对诸如智能卡这样的智能设备的实际安全性造成了极大的威胁。

AES算法作为新一代高级加密标准,是一种迭代型分组密码算法,在各类信息产品中应用十分广泛。本文主要研究基于AES加密的密码芯片能量分析攻击技术与防御技术。

掩码方法是目前使用最广泛的抗能量分析攻击方法,国内外专家学者对掩码方法进行了深入的研究,首先提出的是随机掩码的概念,之后提出了固定值掩码方案。随着加密和破译技术的不断进步,在抗一阶能量分析攻击的防御技术趋于成熟时,学者们又把目光投向了高阶能量分析攻击的防御方法上。文献[1-3]对抗高阶能量分析攻击方法进行了深入研究,Rivain等[1]研究了高阶掩码型S盒的设计过程,文献[2]利用仿射掩码来实现抗高阶能量分析,文献[3]则是采用加法掩码和乘法掩码相结合的方法。考虑到现实应用的可能性,本文以资源受限的智能卡设备为研究对象,在现有掩码算法分析研究的基础上,提出了一种改进的掩码防御算法。该算法综合考虑了实现的安全性和资源开销,且能够抵抗一阶和二阶差分能量分析攻击,是一种安全性高、易于实现的掩码防御算法。

1 AES算法描述

AES算法是NIST于2000年宣布用于替代DES的分组密码标准,也是目前最完善的密码体系,因此针对AES的能量分析攻击及其防御措施成为研究的热点。AES算法是一种灵活的算法,密钥长度一般有128bit、192bit和256 bit 3种,本文以128 bit为例来说明。AES将每一个分组,128 bit的输入和128 bit的密钥都作为一个以字节为单位的4×4矩阵(State),AES是迭代型密码,128 bit密钥的情况共有10轮运算。核心算法就是轮函数对State的重复作用。轮函数由4个可逆的内部函数构成,包括:轮密钥加(AddRoundKey)、字节代换(SubBytes)、行移位(ShiftRows)和列混淆(MixColumns)。

在AES算法的4个内部函数中,SubBytes是AES算法中唯一的非线性变换,往往通过查表来实现。MixColumns操作把状态的每一列看作GF(28)域上的多项式,并与一个固定的多项式 C(x)={03}x3+{01}x2+{01}x+{02}相乘,然后模多项式x4+1取余,列混淆运算过程如式1所示。

输入的128 bit的密钥经过密钥扩展函数KeyExpansion之后扩展成11个密钥块,提供给轮函数作轮密钥加运算。除了第一轮运算之前有一个AddRoundKey,和最后一轮运算省略MixColumns操作之外,其余9轮运算的轮函数完全相同。AES算法加解密过程如图1所示。

图1 AES算法加解密流程图Fig.1 The flow chart of AESencryption and decryption algorithm

2 能量分析攻击与防御技术

2.1 能量分析攻击与防御概述

智能卡现在已经广泛应用于各类密码设备中,用以提供强有力的用户认证,并安全地储存密码信息。然而,1998年,当Kocher等指出能量分析攻击能够有效地揭示出智能卡中的秘密信息时,人们对密码设备安全性的传统看法瞬间崩塌。

能量分析攻击的基本思想是通过分析密码设备的能量消耗获得其密钥,而这种攻击主要利用了两类能量消耗依赖性:数据依赖性和操作依赖性。常见的能量分析攻击类型主要有:简单能量分析攻击 (SPA)、差分能量分析攻击(DPA)、高阶差分能量分析攻击(HO-DPA)以及相关性能量分析攻击等。

能量分析攻击能够实施的依据是密码设备的能量消耗依赖于设备所执行的密码算法的中间值,因此,要试图抵御这种攻击,就要降低甚至消除这种依赖性,使得密码设备的能量消耗独立于设备所执行的密码算法的中间值。目前已公开的抗能量分析攻击的各种对策本质上可以分为隐藏技术和压那么技术两大类。

2.2 现有的基于AES算法的抗能量分析方法

目前,针对AES算法的抗能量分析研究已取得大量的研究成果。Messerges提出了随机掩码算法,在每一轮加密运算时都产生一组随机掩码,然后分别将它们与轮密钥和明文进行异或运算,将掩码操作后的输出进行相应的轮函数运算。在该随机掩码机制中,每一轮的轮函数都需要生成一个新的随机掩码值,并需要根据这个掩码值实时计算出其相对应的掩码型S盒,需要很大的软硬件开销。

为了解决随机掩码防御机制需要很大软硬件开销的难题,文献[4]提出了一种新的掩码机制,即乘法掩码。在该防御策略中,用于对输入信息保护的掩码和用于对输出信息进行恢复的修正掩码是相同的。因此不需要再重新计算和保存掩码后的S盒,能有效降低掩码防御算法的软硬件开销。然而,文献[5]指出,乘法掩码并不能有效抵抗能量分析攻击和零值攻击。

Messerges等提出了一种简化的固定值掩码方法[6],该方法需要预先产生q组单字节掩码值并计算相对应的掩码型S盒,并将掩码值及其相对应的S盒保存在ROM中。执行加密算法前,密码设备先在q组掩码值中随机选取一组,加密过程中,就使用该掩码值及其对应掩码型S盒对明文进行掩码。固定值掩码与随机掩码方法相比,资源占用量更少,所需存储空间也更少,因而更具有现实意义。但文献[7]指出该方法不能抗二阶能量分析攻击,无法满足实际应用的需求,并在此基础上作出了改进,对AES的四轮运算分别用不同的掩码值进行掩码,但是该方法仍然存在着信息泄漏的风险,在抗二阶DPA和CPA攻击上仍然存在着安全隐患。

3 一种改进的掩码防御方法

3.1 改进的掩码防御方案设计

固定值掩码方法不能抗二阶差分能量攻击,其原因主要在于该掩码加密算法执行过程中,存在着一轮以上使用了同样的掩码值的情况,攻击者可通过关联进行差分统计来消除这一掩码。实验证明,掩码的横向重用和纵向重用都会使得加密算法易受二阶差分能量分析攻击和相关性能量分析攻击。本文在简化的固定值掩码方法的基础上,为提高加密设备抗二阶能量分析攻击的能力,提出了一种改进的掩码防御算法。其基本设计思想如下:

1)为了解决固定值掩码方法一轮以上使用了相同的掩码值的问题,本文根据高级加密标准AES算法自身的特性,对AES算法的四轮运算,对应四组掩码值,预先计算并分别存放在不同的寄存器中,每轮加密运算过程中的3步运算(列混淆操作除外),从不同的寄存器中随机抽取3个掩码值分别进行掩码,从而降低了多轮采用同一掩码值的可能性。

2)对于AES算法中的MixColumns操作,该操作需对同一列中不同行的字节进行混合,操作过程中相同的掩码值相互抵消就会暴露中间值。因此,为了确保所有的中间值都能够被掩码,本文对该处算法状态的每一行都采用一个单独的掩码值进行掩码。预先计算p组单字节掩码值R={m0,m1,…,mp-1}及其经过MixColumns操作后的相对应的输出掩码值R,={m’0,m’1,…,m’p-1},将其存储在 ROM 中,每轮加密运算时,从R中随机选取4个,对状态字节的每一行分别进行掩码,操作结束后再用相对应的R,来消除掩码。列混淆操作的具体掩码过程如图2所示。

图2 列混淆操作的掩码过程Fig.2 Masking process of MixColumns operation

3.2 改进的掩码防御方案性能分析

公设:设密码运算过程中变量 z1,z2,…,zn,如果存在一个函数 f能够使得等式 z=f(z1,z2,…,zn)成立,则称可以实施高阶功耗攻击。

文中的改进掩码算法中,所有的中间值均被掩码,所以一定能够抵抗一阶SPA和DPA攻击。同时,对加密算法的每轮4个函数操作均采取不同的掩码值集合进行掩码,因而不存在中间变量满足 z=f(z1,z2,…,zn),所以该算法能够防御二阶DPA攻击。

文中提出的改进算法需要4个寄存器来存储四轮运算的掩码值集合,并且需要完成对掩码型S盒和MixColumns操作的预计算,对内存的需求有所增加,但该方法实现简单,更容易实现硬件电路的设计。与文献[6]中的方法相比,本文增加了一个MixColumns的预计算和存储,对MixColumns操作的状态字节分行掩码,进一步提高了算法抗二阶DPA攻击的安全性。许多文献提出的抗高阶能量分析方法都是针对高阶S盒的设计[1,8],由于S盒非线性函数的特性,这类方法的实现过程比较复杂,对硬件电路设计的要求也比较高。因此,本文提出的算法在保证安全性的同时更具可行性。

4 实验结果分析

文中用FPGA实现了文献[7]提出的固定值掩码方法和本文提出的掩码方法,搭建能量分析平台,在加密算法执行期间,FPGA向数字示波器发送触发信号,采集采样电阻两端的能量消耗曲线,并将数据传送到计算机,计算机运用MATLAB软件对采集到的数据进行统计分析,从而获得相关的密钥信息。本文通过对5 000条明文进行加密,得到能量消耗数据,统计分析后得到的结果如图3和图4所示。实验证明两种方法均可以抵抗一阶SPA攻击和DPA攻击,但文献[7]中提出的掩码算法并不能完全抵抗二阶DPA攻击,图3中的尖峰表示该掩码方案中存在着中间值未被掩码,从而导致信息泄漏,攻击者可以从中猜测出正确的密钥。而图4则表明了本文提出的改进的固定值掩码算法能够抵抗二阶差分能量分析攻击。

图3 文献[7]中掩码方案二阶差分能量攻击结果Fig.3 Results of masking method in ref.[7]for second-order DPA attacks

图4 本文改进掩码方法二阶差分能量攻击结果Fig.4 Results of the improved masking method in this paper for second order DPA attacks

5 结 论

能量分析攻击由于其成本消耗低,攻击效率高等特点,已成为当今智能卡等嵌入式设备安全最大的威胁。智能卡等设备由于其自身资源的有限性,因此,采用固定值掩码方案来抗能量攻击是一种比较实用可行的方法。固定值掩码方法相对于随机掩码算法来说,占用了更少的资源,实现了更快的加解密速度。

然而,随着攻击技术的不断发展,各类攻击方法越来越复杂多样,有些算法已经不能达到实际应用中的安全要求。所以,我们需要对固定值掩码方法进一步地研究与改进,以提高其抗高阶能量分析攻击的能力。

本文对固定值掩码方案进行了深入地研究,并在此基础上提出了一种改进的固定值掩码方法,进一步的工作是实现对掩码型加密算法的优化,以及其在智能卡等设备上的硬件实现[9-10]。

[1]Rivain M,Prouff E.Provably Secure Higher-Order Masking of AES[C]//In:Mangard S, Standaert F-X (eds.) CHES 2010.LNCS,Springer,Heidelberg,2010:413-427.

[2]Fumaroli G,Martinelli A,Prouff E,Rirain M.Affine Masking against Higher-Order Side Channel Analysis[C]//In selected Areas in Cryptography, ser.LNCS, vol.6544.Springer,2010:262-280.

[3]A M-L,Giraud C.An Implementation of DES and AES,Secure against Some attacks [A].In:Workshop on Cryptographic Hardware and Embedded Systems CHES 2005, LNCS 2163[C]//Berlin:Springer-Verlag,2005:309-318.

[4]Mehd I,Laurent Akker,Giraud C.An Implemention of DES and AES,Secure against Some Attacks[A].Workshop on Cryptographic Hardware and Embedded Systems CHES 2001[C].Springer-Verlag,2001.

[5]Golic J D,Tymen C.Multiplicative Masking and Power Analysis of AES[A].Workshop on Cryptographic Hardware and Embedded Systems CHES 2002[C]//Lecture Notes in Computer Science.Volume 2623.Springer-Verlag,2003:198-212.

[6]Messerges Thomas S.Securing the AES Finalists Against Power Analysis Attacks[C].Proceedings of Fast Software Encryption Workshop 2000, Spinger-Verlag,2000.

[7]李浪.简单固定值掩码二阶差分功耗攻击方法及其防御措施[J].小型微型计算机系统,2010,31(9):1894-1898.LI Lang.Simple fixed value masking for second-order differential power attack methods and its defense measures[J].Small Microcomputer System, 2010,31(9):1894-1898.

[8]Ahmed W,mahmood H,Siddique U.The Efficient Implementation of S8 AESAlgorithm[J].Proceedings of the World Congress on Engineering,2011,WCE 2011:1215-1219.

[9]Regazzoni F,Wang Y,Standaert F.FPGA Implementation of the AES Masked Against Power Analysis Attacks[C]//In COSADE, February,2011:56-66.

[10]Genelle L, Prouff E, Quisquater M.Montgomery’s trick and fast implementation of masked AES[C].In:Nitaj, A.,Pointcheval, D.(eds.)AFRICACRYPT 2011.:153-169.

猜你喜欢
掩码二阶密钥
幻中邂逅之金色密钥
基于RISC-V的防御侧信道攻击AES软件实现方案
密码系统中密钥的状态与保护*
一类二阶迭代泛函微分方程的周期解
具非线性中立项的二阶延迟微分方程的Philos型准则
低面积复杂度AES低熵掩码方案的研究
二阶线性微分方程的解法
TPM 2.0密钥迁移协议研究
基于布尔异或掩码转算术加法掩码的安全设计*
一类二阶中立随机偏微分方程的吸引集和拟不变集