对于一种AES 算法的快速模板攻击方法
0 引言
随着密码学的不断发展和大规模集成电路技术的普及,银行卡、公民卡、身份证等嵌入式密码芯片被广泛地应用于电子商务、通信和认证等领域。自然地人们也越来越关注其中可能存在的安全问题,密码芯片的安全性主要取决于芯片中的密码算法和它的实现方式。传统的密码分析学主要使用代数的方法来找出密码算法中的漏洞,从而实现密码芯片的破译,而侧信道攻击的原理与之有所不同,侧信道攻击者主要通过芯片的泄漏信息和物理特性,以获得芯片内部的敏感信息,这些方法大大弥补了传统攻击的不足。
由于功耗信息的独特优势,如可测性强,工具简单以及具有良好的统计分析特性等,功耗分析✿攻击已成为在实际攻击中使用最广泛的侧信道攻击方法。随着研究的不断深入,各种新的攻击技术,如模板攻击,相关分析攻击,碰撞攻击已经被相继提出,其中,模板攻击由于其效率高,易于实现和所需的资源较少成为了当前研究的重点。模板攻击方法首先由Chari 等人在2002 年CHES 会议上提出。随后,在2005 年Agrawal 提出了结合模板攻击和差分能量攻击的攻击方法。一年后, Archambeau 等人提出了一种新的理论,通过选择适当的兴趣点来降低样本的空间大小,从而减少模板攻击的计算复杂度。
简单来说,模板攻击首先需要构造一个模板,该模板要具有加密算法密钥空间的信息泄露特征,然后根据一个或有限个的泄露信息,来找出最佳的匹配模板,并最终推断出最有可能正确的密钥或减少攻击所需的密钥猜测空间。本文搭建了一个基于密码芯片的侧信道功耗采集平台,采集了mage16 密码芯片在加密处理过程中的功耗信息,并在这些工作的基础上,研究了针对AES 算法实施模板DPA 攻击的可能性。最后通过对一条侧信道数据的模板刻画,成功地恢复了正确密钥。从理论意义上来讲,本文的成果将进一步填补国内对于模板攻击的研究空白。以♡实验为基础,我们从理论上说明了模板攻击对密码芯片进行侧信道攻击的优越性,从而为其他密码学领域从业人员提供了一定的参考和借鉴。
1 ♡基于模板的DPA 攻击
1.1 DPA 技术
DPA☠ 是功耗分析攻击中的最常用的攻击方法,因为攻击者不需要知道被攻击设备的具体细节,而且即使是针对混有较多噪音的功耗轨迹,这种攻击仍然可以成功恢复被攻击设备的敏感信息。在DPA 攻击中,我们假设攻击者拥有一定的被攻击设备的功耗轨迹,并使用一个简单的功耗消耗模型将假想的功耗值V 映射为假想的中间值H,如比特模型,汉明重量模型,汉明距离模型或ZV 模型。显然,只有当功率消耗模型和实际的能量消耗相匹配时,才能进行有效地攻击。文献总结了DPA 攻击的一般步骤。
a)选择中间值,在本文中,我们以SubBytes 操作的输出值作为攻击点。
b)获得功耗轨迹,本文中用数字存储式示波器来实现。
c)计算中间值。
d)计算假设的功耗值,我们使用汉明重量模型。
e)估算相关性,并重建密钥。
1.2 基于模板的DPA 攻击
在文献中,Chari 等人发现使用多元统计法可以实现更强大的攻击效果,他们展示了如何应用这种方法攻击RC4 算法,这是第一次有人提出模板攻击这一概念。如果一个DPA攻击中,攻击者还可以根据模板来刻画设备的功耗消耗,这就是所谓的基于模板的DPA 攻击,它是目前最强大的DPA 攻击方法。基于模板的DPA 攻击首先由Agrawal 等人提出,模板是用来描述一个密码芯片的功耗特性的最佳途径,如果攻击者试图恢复用于加密设备的密钥,基于模板的DPA 攻击可以最大程度上的减少检测误差的可能性。在这个意义上,基于模板的DPA 攻击的是最好的功耗分析攻击方法,但必须要指出的是,想要达到这种最优的效果,该方法只适用于多元高斯分布并且兴趣点分布要事先给定,所以,如何选择攻击的兴趣点就显得尤为重要。Oswald 和Rechberger 在文献中详细讨论了实际应用中的模板攻击并指出,一个简单而有效的确定兴趣点的方法是对密码设备进行DPA 攻击,他们还指出兴趣点的数量也对攻击的成功率有一定影响ต。理论基础模板攻击是利用密码芯片的功耗和被处理数据的相关性来进行攻击的,它使用多元正态分布来刻画侧信道泄露信息的模板特征。
2 理论基础
2.1 功耗和数据依赖模型
微控制器可以作为一个依赖时钟信号的状态机模型,在不同的状态之间来回切换,其状态和CMOS 电路的逻辑门翻转密切相关,在一定时间内的泄漏信息是由翻转次数确定的。汉明重量模型是一种非常实用的功耗分析模型,它被定义为一个机器字中总比特为1 的个数,攻击者只需要知道一个汉明重量就能把功耗消耗映射到被处理的数据。假设当前的处理状态是一个固定长度的机器字D,即数据编码的m 位。
2.2 模板构建与模板匹配
如果我们使用由均值向量m和协方差矩阵C 组成的多元高斯分布来表征侧信道功率消耗数据,将C 称之为一个模板。模板攻击依赖于这一事实,即只有当数据涉及到加密操作,侧信道信息才有可能被泄露,这意味着侧信道信息取决于被处理的数据。不同于其他的侧信道攻击,模板攻击通常是由2 个阶段进行组成的:第一阶段是对侧信道信息的描述;第二阶段是基于第一阶段的攻击。
3 对AES 算法的模板DPA 攻击
AES 是基于有限域迭代的加密算法,它具有三个不同的版本,根据密钥长度的不同,可分为密钥长度128bit 的AES-128,密钥长度192bits 的AES-192 和密钥长度256bits 的AES-256。三个版本仅在密钥扩展算法和加密轮数上有差异。本文以AES-128 作为目标实施攻击。
在实际的攻击中,在估算能量迹多元正态分布的均值向量和协方差矩阵时,传统的模板DPA 攻击面临一些难以解决的问题:
计算量大,协方差矩阵的大小与样本点数量的平方成比例,如本文的25000 点,若直接用于模板攻击,会导致计算复杂度过高;
所需模板数量多,AES-128 算法的密钥空间是2128,所以攻击者需要建立2128 个模板。显然,非常有必要找到一种更加高效的模板构建策略。
4 结束语
本文以AES 算法的S 盒输出值作为模板DPA 攻击的中间值。根据相关系数精确地选择兴趣点,构建了基于汉明重量模型的简化型模板,本方法大大降低了传统模板攻击的计算复杂度。同时,我们还优化了攻击结果,通过使用贝叶斯定理大大提高了攻击结果的准确性,降低了误判的可能性。以AES-128算法为例,其密钥为128bit,我们的攻击方法所需的密钥猜测空间为212 ,这比穷举攻击的密钥猜测空间2128 小得多。文章最后通过实验验证了该方法的实用性和有效性。