APP下载

密码系统的侧信道分析:进展与问题

2021-01-29谷大武陆相君

西安电子科技大学学报 2021年1期
关键词:功耗信道密码

谷大武,张 驰,陆相君

(1.上海交通大学 电子信息与电气工程学院,上海 200240;2.西安电子科技大学 网络与信息安全学院,西安 710126 )

在计算机、互联网高速发展的时代,信息安全、身份认证等方面的需求与日俱增,这些需求的满足往往与以密码算法为核心的安全组件密不可分。基于密码算法的安全组件通常以软件程序或硬件电路的形式在不同的硬件平台上执行,如中央处理器、微控制器、专用集成电路等,这些运行密码算法的硬件设备统称为密码设备,它们和上层承载其他秘密信息的软件系统共同构成密码系统。密码系统是许多关键信息基础设施和关键应用的基础和支撑。当前,针对密码系统的现实攻击之一,是从基于Kerkhoff假设和数学统计技术的算法攻击,逐渐发展为基于密码系统运行时的物理信息与算法攻击相结合的侧信道攻击,许多发达国家的标准化组织和测试机构也已经把抵御侧信道攻击作为判断密码产品是否安全的基本要求之一。

密码系统的侧信道分析是针对密码算法的物理实现,求解秘密信息(譬如密钥)或评估秘密信息防护能力的方法。由于密码系统运行时产生的功耗、电磁、运行时间、声音等侧信道信息与系统执行的操作和操作数相关,而这些操作和操作数又依赖于秘密信息。因此,这就使人们有可能通过测量这些侧信道信息并加以分析,从而恢复系统中的秘密。通常,一个密码系统运行时所呈现的侧信道信息与秘密信息之间的理论关系模型如下:

L=F(H(x,k))+n,

(1)

其中,x是密码算法的输入;k为密钥的部分信息(如密钥的某一字节或某一比特);H(x,k) 是密码算法中依赖于x和k的某个中间变换(如S盒等)的假设侧信道信息(譬如假设功耗信息),也称为假设侧信道模型(譬如汉明重量模型或汉明距离模型);F为H(x,k)到真实侧信道信息L(譬如真实功耗)的映射;n为与侧信道信息统计独立的随机噪声。侧信道分析的目标就是通过已知的x和可测量的L恢复密码系统中固定且未知的k。

目前典型的侧信道分析可分为两大类:非建模类分析和建模类分析(图1)。以功耗分析为例,对于非建模类分析,攻击者首先根据待分析的密码系统及密法算法,选择密码算法的合适中间值及对应的假设功耗模型,即选择合适的函数H(x,k)。例如,对于软件实现的AES算法,通常可以选择第1轮S盒的输出的汉明重量作为中间值的假设功耗。由于在密码系统执行时,密钥是分段使用的(例如,逐比特使用或逐字节使用),因此密钥的某个小规模分段k可被枚举。由公式(1),H(x,k)与L之间存在映射关系。攻击者可枚举不同的k,从而计算出对应的假设功耗H(x,k),最终与真实的L进行统计比对,相关度最大的k即为可能的正确值。该类方法的核心是根据专业经验选择合适的H(x,k),如果假设功耗模型的选择错误,则会很大程度上影响最终的分析结果。对于建模类分析,攻击者通常是在建模系统上利用已知的x和k以及测量出的L拟合出真实侧信道信息与假设功耗的映射关系(F-1),并利用该映射关系分析目标系统,从而恢复未知的k。建模类方法的核心除了选择合适的H(x,k)外,还需要对F-1的模型进行假设。而且,在真实环境中采集到的侧信道信息包含大量噪声,需要进行很多的信息预处理及特征提取工作。

图1 侧信道攻击示意图

因此,研究刻画密码系统的物理信息与密码中间变换的数学信息的关系模型(又称中间值泄漏模型)、侧信道信息的特征提取、物理统计模型和模型参数估计、高效攻击方法、攻击的定量评估等,都是密码系统侧信道分析的核心内容。

1 研究现状

1.1 信息预处理

侧信道分析所采集到的功耗/电磁曲线等物理量中包含着大量的冗余信息,如何从中提取出特征点,是侧信道攻击能否成功的基本问题之一。自模板攻击[1]提出之后,常用的特征提取技术主要基于特定的统计量,这些统计量包括均值差[1]、平方差之和[2]、T差之和[2]、Pearson相关系数[3]、信噪比(Signal-to-Noise Ratio,SNR)[3]、方差[4]和互信息[5]等。ARCHAMBEAU等人在2006年提出可使用主成分分析(Principal Component Analysis ,PCA)将电磁和功耗曲线投影到低维子空间以选择关键特征[6],然而PCA在投影时仅考虑了类间距,而没有考虑类内距。有研究人员使用线性判别分析(Linear Discriminant Analysis,LDA)取得了更好的降维效果[7-8],但其局限性是要求曲线的条数大于每条曲线的点数,因此,LDA并不实用和通用。这些特征提取方法计算过程繁琐,特别是要求曲线要很好地对齐。目前,已有的曲线对齐技术可分为静态对齐[3,9]和动态对齐[10]。其中的静态对齐是通过将曲线进行左右移位而实现模式匹配[3],这种对齐只适用于曲线有明显特征,且不存在随机延迟的情况。动态对齐需要对原始曲线进行重构,典型的包括基于快速动态时间规整算法的弹性对齐[10]、基于小波变换的对齐[11]以及基于模式识别算法的对齐策略[12-15]等。

随着深度学习技术的发展和GPU算力的提升,基于深度学习的侧信道攻击逐渐成为学术界研究和应用的关注点。2017年CAGLI等人提出如果将卷积神经网络视作特征提取器,可提取出平移不变的属性特征[16],因此采集到的曲线无需对齐,即可攻破具有随机延迟防护的密码系统。此外,神经网络还具有处理高维数据、结合不同位置属性的综合分析能力,可以提取功耗曲线的深层特征,使得深度学习技术在分析具有掩码防护的密码系统时具有天然的高阶分析优势[17]。因此,在侧信道分析中研究如何结合深度学习技术高效地进行特征提取是很有意义的。

1.2 非建模类侧信道分析

在密码系统的侧信道分析的发展历程中,非建模类分析首先被提出,之后随着侧信道分析方法的发展,又提出了建模类分析,用于提升攻击效率和一些特殊的受限攻击场景。目前,除了上述的特征提取问题以外,影响这些分析方法有效性的其他3个基本问题分别是中间值泄露模型问题、物理统计模型问题和模型参数估计问题。

1.2.1 差分功耗分析

在非建模类分析中,KOCHER于1999年第1次提出了差分功耗分析(Differential Power Analysis,DPA),同时MESSERGES等人对差分功耗分析做了形式化定义[18],并将DPA推广到对RSA模幂运算的攻击[19]。BRIER等人2004年提出了相关功耗分析[20](Correlation Power Analysis,CPA),之后的研究者继续对DPA方法进行改进,提出了众多的衍生DPA方法,包括多比特DPA[21]、泛多比特DPA[21]、分类DPA[22]和综合DPA攻击[23]等方法。MANGARD等人在2011年总结了这些方法,指出它们本质都是一样的,区别只是中间值泄露模型选择的不同。中间值泄露模型刻画了密码算法中间值到实际泄露的数值之间的映射关系,是攻击者针对密码设备的一种假设[24]。同年,DOGET等人说明了大多数针对单功耗点的攻击方法都可以转化为采用不同中间值泄露模型的CPA[25]。DOGET等人的文章从侧面说明了上述DPA方法的最大问题是对中间值泄露模型的选择,攻击者必须根据经验选择适合于密码设备的模型。RENAULD等人在2011年分析了在纳米级工艺下的侧信道信息泄露,发现随着电路工艺的发展,普通的中间值泄露模型,如汉明重量、比特模型等,可能变得不再适用,电路的泄漏变得不规律[26],找到合适的先验中间值泄露模型越来越困难。

1.2.2 通用差分功耗分析

不需要中间值泄露模型的攻击方法,即通用DPA(Generic DPA)变得日益重要。 GIERLICHS等人在2008年提出了互信息分析法(Mutual Information Analysis,MIA)[5],BATINA等人在2009年提出了差分聚类分析(Differential Cluster Analysis,DCA)[27]。2014年,WHITNALL等人证明了基于随机模型和线性回归的DPA[28]也是通用DPA,并讨论了通用DPA的局限性,即当密码模块中间值和明文为一一对应的关系时,所有的通用DPA都是失效的。针对这个问题,他们提出了近似通用(Generic-emulating)DPA的概念[29]。2015年,WANG等人提出了基于岭回归的近似通用DPA[30],使得对线性回归的约束更平滑,攻击效果更稳定。2019年,TIMON提出了使用神经网络进行非建模类分析的方法[17],由于神经网络理论上可以拟合任意函数,这种分析方法未对物理统计模型做任何先验假设,但其使用比特标签进行训练,引入了特定的中间值泄露模型。尽管如此,由于神经网络良好的弱假设(无假设)特性,在此之上进行相应的近似通用DPA研究越来越受到研究者的重视,相信神经网络在该领域会有进一步发展的空间。

1.3 建模类侧信道分析

建模类方法的本质是使用机器学习方法构建侧信道信息到中间值的映射关系,并利用这种关系提升侧信道攻击的效率。CHARI等人在2002年提出了模板攻击[1](Template Attacks,TA),该攻击假设侧信道信息服从多元高斯分布。其建模目标是通过建模曲线,学习到多元高斯分布的概率密度函数。随后在攻击时,利用概率密度函数计算新的侧信道信息属于各类的最大似然概率并由此分类,从而恢复秘密信息。模板攻击作为第一种建模类分析方法,开辟了基于机器学习的侧信道分析的先河,但存在很多先天问题,其中之一是它对侧信道信息做出了服从多元高斯分布的先验假设。当实际的侧信道信息分布符合这一假设时,模板攻击可以取得很好的效果,但当这种假设偏离实际情况时,攻击效率就会下降甚至失效。

在建模类分析中,模板攻击由于需要先对物理统计模型做出假设,从而使其难以普适,而且人为假设难以符合实际情况,使得无法确信达到攻击效果。因此,学术界一直在探索减少人为假设的方法。SCHINDLER等人[28]在2005年提出了随机攻击,利用随机模型(Stochastic Model)建立模板,随机模型理论上可以表示任意的整数到实数的映射,因此该方法实际上未对中间值泄露模型和物理统计模型做任何限制。 VEYRAT-CHARVILLON等人[31]随后分析了该方法的普适性。 GIERLICHS等人[2]比较了模板攻击和随机攻击两种方法。作为建模类分析的一种,这种分析方法利用线性回归优化了模板建立的过程。HOSPODAR等人在2011年把机器学习概念引入到建模类攻击中,讨论了支持向量机(Support Vector Machine,SVM)应用的可能性[32]。同年,LERMAN等人提出了利用随机森林(Random Forest,RF)的方法进行分析,并比较了使用支持向量机和随机森林方法的匹配成功率[33]。

深度学习作为近年来飞速发展的表示学习方式,通过将多层简单的非线性映射层次化堆叠,组成复杂的深层非线性模型,如图2所示。深层模型可以组合下层传来的简单抽象特征,获得更加强大的数据表示能力[34-37]。深度学习目前主流的网络结构主要有多层感知机、卷积神经网络、递归神经网络等,根据自身不同的特性,分别有其具体的应用场景。由于神经网络理论上可以拟合任意函数,在不引入其他训练技巧的前提下,深度学习不会对物理统计模型做出特定假设。

(a)多层感知机示意图 (b)神经元示意图 图2 神经网络示意图

但是无论采用哪种机器学习算法,在实际应用中通常还是会依据训练数据的情况加入一些限制性技巧来获得较好的建模效果。这些方法本质上依然是通过隐式的途径,人为地引入了对物理统计模型的假设。这种向实际情况妥协的作法实际上暗示着侧信道攻击中存在着除了中间值泄露假设和物理统计模型假设之外的困难:参数估计困难。这种困难广泛存在于建模类分析和非建模类分析的近似通用DPA中。

例如在模板攻击中,训练得到的协方差矩阵可能是奇异矩阵,由此会产生奇异矩阵求逆的数值计算问题。因此,研究者提出了模板攻击在具体实现时需要注意的事项,以避免上述数值计算问题。在近似通用DPA中,WHITNALL等人为了自动化地进行参数估计,使用了分步线性回归算法[29]。WANG等人提出若使用lasso回归,则可以使用最小角度回归算法来求得近似结果[30]。需要指出的是,上述降低参数估计困难的技巧,实际上添加了额外的对物理统计模型的限制。

在深度学习中,由于需要同时训练大量参数,参数估计困难的问题在较早阶段就受到了足够的重视。现在有多种改进的梯度下降算法[38],用于自动化确定合适的学习速率,加速模型收敛,避免出现数值问题。同时一些适用于神经网络的特殊技巧,如dropout,batch-normalization,residual network等也被用于改进训练过程。具体到侧信道中的应用,ZAID等人提出了一些高效选择CNN网络参数的方法[39],随后WOUTERS等人对这些方法进一步修正[40]。ZHANG等人提出了一种可以更好地分析非平衡标签下网络学习情况的损失函数[41]。KIM等人提出可以通过向输入添加少量噪声作为数据增强手段加速模型训练,并且使模型收敛效果更好[42]。HOANG等人提出合理利用一些已知信息如明文,可以降低网络分析掩码防护曲线时的训练难度[43]。尽管当前深度学习领域已有一些降低参数估计难度的研究工作,但在侧信道分析的场景下,人们更期望一种不引入或者尽量少地引入人为假设的方法。因此,研究深度学习和侧信道分析结合场景下的训练优化技巧仍然任重道远。

当前国内外对建模类侧信道攻击的研究中,多数情况下建模设备和被攻击设备使用的是同一个设备,且建模曲线和攻击曲线均来源于同一次功耗/电磁采集。RENAULD等人对20个不同的设备进行建模和攻击,结果表明,当建模和攻击设备不同时,模板攻击有很大概率会毫无效果[26]。ELAABID等人的进一步试验说明,即使设备相同,若建模曲线和攻击曲线来自不同批次的采集,也会影响模板攻击的效果。OMAR和MARKUS提出异设备的主要区别来自于直流偏置,而使用多设备建模并结合PCA、LDA等降维技术可提升异设备建模的效果。BHASIN等人提出深度学习建模分析场景下异设备攻击效果低下的问题仍然存在,为了解决该问题,其在建模过程中使用多个设备进行交叉验证防止过拟合,取得了较好的攻击效果[44]。然而现有的研究均假设攻击者具有多个建模设备,人为假设在模板攻击的基础上进一步增强,且对攻击效果的提升并不明显,因此可能在实际的攻击场景中并不实用。

迁移学习是深度学习领域的一个重要方向,旨在解决一个数据集上建立的模型如何应用于其他数据集的问题。相关研究表明,深度神经网络具有强大的可迁移能力,域适应 (Domain Adaptation,DA )是迁移学习的代表性技术路线,近些年许多研究基于深度学习的域适应,取得了很好的模型迁移效果[45-50]。在侧信道攻击中,不同设备泄漏的概率密度分布相似,但又不完全相同,可将其视为不同分布数据集的模板迁移问题,因为被攻击设备的密钥未知,对应于迁移的目标域无标签的场景。目前迁移学习尚未在侧信道分析中得到应用,相信这又将是一个具有重要探索意义的研究内容。

2 问题与展望

2.1 现有侧信道分析技术的问题

研究不依赖于特定模型假设(即零假设)和特定建模设备下的侧信道分析(即通用侧信道分析)问题,是当前及今后一段时期侧信道分析理论和方法研究的基本问题,而已有的建模类和非建模类侧信道分析中,主要存以下不足:

(1) 由于原始侧信道数据信噪比低,关键特征的时间分布稀疏,需要经过很多信息预处理和特征提取过程,才能得到有利于侧信道分析的数据。这些预处理和提取过程是成功进行侧信道分析的前提,但依具体分析目标和场景的不同,这些过程也不尽相同,强烈依赖于人工经验选择,无法高效地自动化完成。

(2) 在分析具体密码设备中的算法时,需要依靠人工经验选择算法目标中间值,并假设密码设备的泄露模型。在建模类分析方法中,还需要额外假设设备的物理泄露统计模型。这些模型假设及中间值选取与实际情况的相符程度直接影响后续的分析效率。此外在分析过程中,即使模型假设正确,依然面临无法准确计算模型参数的问题,只能利用有限样本进行参数估计,不同的估计算法会引入不同程度的误差,导致模型表现依赖于估计算法的选择。

(3) 在更实际的分析场景中,无法从待分析设备获得足够的建模样本,只能在相似设备上采集大量样本对模型进行拟合。由于两个设备的侧信道信息概率分布存在差异,在相似设备上建立的精确模型,无法适配到待分析设备上。当前没有针对异分布数据的高效建模类分析方法,使得在该场景下无法有效地开展侧信道分析。

2.2 可能的技术路线

由于当前侧信道分析中存在的3个问题之间存在着递进式的内在联系,如图3所示,可按照此逻辑逐步说明。

(1) 对侧信道信息关键特征提取问题的研究。应当梳理统计学中的统计距离判据、统计相关性判据和数字信号处理中数字滤波、时频域变换、小波变换等理论与技术,比较由这些理论与技术衍生出的传统特征提取方法对现有侧信道分析方法的影响;归纳深度学习领域关于特征提取方法的最新研究工作,结合侧信道分析领域的特点,如高阶掩码选点困难,局部特征变化不明显等,提出零假设(弱假设)的特征提取方法。

(2) 在侧信道信息关键特征提取问题研究的基础上,交叉开展以下两项工作:① 研究深度学习领域编码器相关理论知识,通过实验比较不同编码器在不同假设程度(从强假设到零假设)下对侧信道分析结果的影响,提出模型零假设(弱假设)的通用侧信道分析方法;② 研究深度学习领域的训练准则和约束规则,比较现有不同参数估计方法对模型零假设(弱假设)的分析结果的影响,根据比较结果,提出新的参数估计方法以适应于相应的模型。两项工作相互迭代研究,逐渐得出零假设(弱假设)侧信道分析的理论模型及参数估计方法。结合这两个阶段的工作,将提出的零假设(弱假设)特征提取方法、模型零假设(弱假设)侧信道分析方法及参数估计方法,组合成为自动化端到端的分析框架。

(3) 在端到端的分析框架之上,对其进行扩展,融合深度学习领域中的迁移学习技术,结合侧信道分析领域数据集的特点,提出适用于侧信道分析的模型迁移方法,在一定程度上解决异分布数据集的模型迁移问题。

图3 技术路线图

3 结束语

从侧信道分析的提出到今天的二十多年中,侧信道分析已获得了长足的发展。许多研究者针对分析流程的不同阶段提出了各种理论和方法,时至今日,已经演化出了不同的细分研究方向。尽管侧信道分析在实际使用中仍然存在一些问题,譬如在特征提取和具体分析方法中依然需要人为引入不同程度的假设,在进行异设备建模时依然无法高效迁移,但随着深度学习、机器学习等技术在密码系统侧信道分析中的深入应用,克服这些问题的研究将会不断取得实质性的理论和技术进步。

4 跋

谨以此文纪念我的导师肖国镇教授。我的大学10年都是在西安电子科技大学度过的,学校严谨务实的学风和肖老师为人治学的大师风范,使我高山仰止,受益终身。

猜你喜欢

功耗信道密码
基于自适应学习的5G通信系统信道估计方法
基于任务映射的暗硅芯片功耗预算方法
密码里的爱
信号/数据处理数字信道接收机中同时双信道选择与处理方法
典型办公区域Wi-Fi性能的优化
密码抗倭立奇功
一种基于向量回归的无人机通信信道选择方法
揭开GPU功耗的面纱
密码藏在何处
夺命密码