APP下载

基于配对t检验的侧信道泄露评估优化研究

2020-01-14鹿福祥李伟键

小型微型计算机系统 2019年12期
关键词:明文功耗信道

鹿福祥,李伟键,黄 娴

(广东技术师范大学 计算机科学学院,广州 510665)

1 引 言

自1999年Paul Kocher等[1]提出差分能量分析攻击(DPA,Differential Power Analysis)以来侧信道攻击得到密码研究人员的极大关注,至今已经演化出多种能量分析攻击方法,主要方法有相关能量分析攻击[2](CPA,Correlation Power Analysis)、简单能量分析攻击(SPA,Simple Power Analysis)、模板攻击[3](TA,Template Attack)、碰撞分析攻击[4](CA,Collision Attacks)、互信息分析攻击[5](MIA,Mutual Information Analysis)和电磁攻击(EMA,Electromagnetic Attack)等.密码算法实现遭受侧信道攻击的威胁极为严峻,因此,在实现密码算法的过程中必须考虑抵抗侧信道攻击的能力,并对其进行侧信道泄露评估.

信息技术安全通用标准[6](CC,Common Criteria)是用于计算机安全认证的国际标准,随着侧信道攻击方法的发展和密码产品的广泛应用,使CC的实现需要很高的代价.传统侧信道攻击评估方法需要掌握加密算法的实现细节,不利于黑盒模型下的评估和工业应用.无需密码算法实现细节、无需专门的侧信道研究人员操作、能够高效评估密码算法实现的安全性成为侧信道泄露评估方案的最终目标,而TVLA侧信道泄露评估方法具有满足这个需求的巨大潜力.

2011年GoodWill等[7]提出了基于t检验的侧信道泄露评估方法,根据中间结果对功耗轨迹进行分组的特定t检验(Specifict-test),对AES加密算法的实现进行类似于DPA的泄露评估.随后2013年Becker等[8]提出了TVLA(Test Vector Leakage Assessment)方法,使用固定和随机的非特定t检验(Non-specific Fixed vs Random Test)可以在不需要算法实现细节和功耗模型的情况下对密码算法进行黑盒评估,具有更强的通用性和鲁棒性.随后CRI公司(Cryptography Research,Inc)将[7,8]作为侧信道泄露评估的标准.2015年Tobias Schneider等[9]深入研究了t检验在不同理论背景下的测试模型,提出了准确、高效、可执行的侧信道泄露评估方案,包括特定t检验、非特定t检验(Non-specific T-test)和高阶检验(Higher Order Test),为侧信道泄露评估奠定了理论基础.2016年Adam Ding等[10]提出了配对t检验(Pairedt-test),不仅能够减小环境噪声对检测结果的影响,而且具有快速性、高效性和鲁棒性等优点.成为侧信道高阶泄露评估的一种快速实现方法.2017年Oscar Reparaz等[11]提出了基于Kernel-based Density函数对各阶统计矩快速计算方法.2017年Liwei Zhang[12]发现了TVLA并不完备,特别是阈值的选择,利用统计学二次显著性检验选择合适的阈值,减少t检验结果出现第I类错误的概率.2017年Wan Lei等[13]提出了基于频域分析的TVLA用于侧信道泄露评估.2018年Amir Moradi等[14]提出了χ2检验与t检验结合,对高阶掩码和高噪声的加密算法实现过程进行了侧信道泄漏评估.2018年Florian Bache等[15]提出了一个基于置信区间的侧信道泄露评估的新框架,扩展了TVLA.近年来,TVLA已经成为侧信道泄露评估标准,大量密码研究者使用TVLA对他们设计的密码算法实现方案进行泄露评估[16-22].

在侧信道泄露评估中使用配对t检验作为工具[10]要比传统分组t检验效率更高、速度更快、鲁棒性更强.然而本文研究发现配对t检验在某些情况下是无效的.

我们的工作:

本文重点分析使用配对t检验作为侧信道泄露评估工具时存在的两类问题并提出了改进方法.

1)分析非特定配对t检验的两类问题.其一,不满足条件的采样点使用配对t检验会出现错误的结果,即配对功耗轨迹组间采样点相关性系数小于0时,使用配对t检验进行泄露评估,部分采样点会出现第I类错误.其二,可能会出现部分死区.通过对AES的侧信道泄露评估实验,发现AES的第一轮所有采样点使用配对t检验进行检测几乎全部出现第II类错误.

2)设计一套侧信道泄露评估优化方案,有效减少第I、II类错误的出现,同时又能快速的、高效的达到评估目的.对AES算法的侧信道泄露评估实验表明,本文方法比传统分组t检验的评估方法减少70%功耗轨迹数量和45%的计算时间.

2 研究背景

能量分析攻击主要利用加密设备在加密过程中产生的功耗轨迹与设备操作依赖性、数据依赖性而进行的.并通过抽样总体LA和LB检验在密钥相同的情况下,使用固定明文加密和使用随机明文两大类,加密过程产生功耗轨迹的均值是否有显著性差异.功耗轨迹模型如下[10]:

LA=V(k,xA)+rA+rE
LB=V(k,xB)+rB+rE

(1)

使用Welcht检验进行侧信道泄露评估时[8],Welcht检验统计量表示为:

(2)

其中,μA和μB表示总体A和B的期望值,Welcht检验的原假设和备择假设分别为:

H0∶μA=μB,H1∶μA≠μB

文献[10]中引入配对t检验可以增强鲁棒性、提高评估效率.Welcht检验和配对t检验均可以在方差未知的情况下对总体均值是否有显著性差异进行检验.

(3)

其中,μD表示总体D的期望值,配对t检验的原假设和备择假设分别为:

H0∶μD=0,H1∶μD≠0

3 理论和实验分析

3.1 配对t检验的理论假设

(4)

理论上,配对t检验的检验统计量|tp|会比Welcht检验的检验统计量|tu|更大.进行评估时随着功耗轨迹增多|tp|会迅速变大,能很快的检测出泄露.这样[10]分析存在一些问题,本文方案中给出了更合理的理论分析.

3.2 配对t检验的理论假设不成立

(5)

其中,皮尔逊相关性系数的计算公式[2]为:

(6)

所以公式(4)是不正确的,因为分析时没有考虑到配对功耗轨迹组间采样点相关性系数对配对t检验的影响,所以会得出错误的检验结果.公式(6)相关系数的计算公式,可以计算配对组间每一个采样的相关性系数.从公式(5)中可以看出,当ρ>0时,|tp|将大于|tu|,配对t检验的效率会高于Welcht检验的效率.当ρ<0时|tp|将小于|tu|,不适合用配对t检验.相关性的正负不仅影响配对t检验的效率,而且可能会出现第Ⅰ、Ⅱ类错误[23].并不是所有的采样点都适合用配对t检验进行侧信道泄露评估.

统计学假设检验[23]中第Ⅰ类错误表示“拒真”在侧信道评估中表现为两组功耗轨迹被检验的采样点的均值实际上不存在显著性差异即H0为真,而检验结果却是拒绝H0.第Ⅱ类错误表示“取伪”在泄露评估中表现为两组功耗轨迹被检验的采样点的均值实际上存在显著性差异即H0为假,而检验结果却是接受H0.如果对所有的采样点用配对t检验进行侧信道泄露评估,会导致检验结果出现第Ⅰ、Ⅱ类错误的情况增多.

3.3 实验验证

上述理论分析中指出的第一个问题:配对功耗轨迹组间采样点相关性系数的正负会影响配对t检验的结果,相关性系数越好对检验方法选择的要求越高,否则会出现错误的检验结果.图1展示了对AES算法的配对t检验结果,只显示采样点的ρ<0,出现I类错误的部分,并提供了与Welcht检验的对比结果.

图1 部分ρ<0的采样点的t值Fig.1 T-values of the sampling points having ρ<0

图1中横轴表示功耗轨迹条数,纵轴表示检验统计量t,两条平行虚线为阈值C.本文设置阈值为5,根据Liwei Zhang[14]的方法和经验设置一个合适的置信区间.在功耗轨迹数很少的情况下进行配对t检验,其检验统计量的绝对值已经超过设定的阈值,随功耗轨迹条数的增多检验统计量的绝对值继续增大.但是这部分采样点使用Welcht检验在功耗轨迹从10万条增加至100万条进行假设检验,其检验统计量的绝对值仍然在阈值内变化.而使用配对t检验出现了第Ⅰ类错误.

实际应用中发现的第二个问题:基于配对t检验对AES的侧信道泄露评估,实验结果中发现对AES第一轮的检验结果全部出现第Ⅱ类错误,是假设检验的无效区间.首先利用CPA找到AES第一轮加密包含的采样点(第440~610采样点).然后与Welcht检验的t值进行对比,两种t检验在AES第一轮的部分采样点的t值如图2所示.

图2中第440~510采样点(每间隔10个采样点)随着功耗轨迹增多t值的变化.随着功耗轨迹条数的不断增加配对t检验的t值始终在阈值内变化,而Welcht检验进行泄露评估很少的功耗轨迹,t值已经超出了阈值,随功耗轨迹条数的增多t值继续增大.这部分采样点使用配对t检验进行假设检验时出现第Ⅱ类错误,验证了基于配对t检验对AES的侧信道泄露评估的第一轮是假设检验的无效区间.

图2 第440~510采样点的t值Fig.2 T-values of the 440~510 sampling points

3.4 改进方法

为最大限度发挥配对t检验的快速性、高效性和鲁棒性等优势,并减少第Ⅰ、Ⅱ类错误出现,本文提出了一种结合Welcht检验的优化方法,详细步骤描述如图3所示.

图3 解决方案Fig.3 Solution and steps

首先,设置测试向量[8],采用固定密钥,以及固定明文和随机明文交叉式输入(奇数次加密输入固定明文,偶数次加输入随机明文)的方式,其中随机明文服从均匀分布,对明文加密并收集加密过程的功耗轨迹.

其次,分析配对功耗轨迹组间采样点相关性系数,为t检验方法的选择提供依据[23].把采集的功耗轨迹的一部分(本文选用18万条)按固定明文和随机明文分成两组计算每个采样点的相关系数ρ,然后根据ρ的正负选择使用Welcht检验还是配对t检验.当ρ>0采用配对t检验,否则使用Welcht检验进行检验.

t检验方法的优选过程如图4所示,当ρ>0,配对t检验效能高于分组t检验;当ρ<0,分组t检验优于配对t检验.相关性系数的正负影响两种t检验的选择,相关性系数越好对方法选择的要求越高,否则会出现错误的检验结果.

图4 配对t检验和分组t检验的优选方案Fig.4 Preferred scheme for paired t-test and grouped t-test

4 实验结果和分析

4.1 实验环境

本文实验使用的功耗轨迹采集于SAKURA-G侧信道分析开发板.SAKURA-G开发板是专门为研究侧信道攻击和开发硬件安全而设计的.板上配备两块Spartan-6 FPGA,分别作为控制芯片和加密芯片.使用本文方案对无防护的AES加密在FPGA上实现过程进行侧信道泄露评估.两块FPGA芯片的ROM中已经写入AES电路和控制电路,上电后会装载至FPGA芯片.由PC上的控制软件向开发板发送每次加密所需要的明文和密钥,然后加密芯片实现AES加密.

图5 实验设备连接图Fig.5 Experimental setup

实验设备连接如图5所示,SAKURA-G开发板通过USB接口连接PC;开发板利用高阻探头连接示波器的通道1,利用SMA转BNC线连示波器通道2,并且BNC端串联低通滤波器;示波器通过USB接口连接PC.实验使用安捷伦DSO 3034T示波器收集功耗轨迹.对16665采样点按3∶1的重采比压缩后剩余2666个采样点.其中从第425至2279共1855个的采样点对应着AES的十轮加密过程,本文实验只针对AES的十轮加密过程.

4.2 实验结果与对比分析

本节实验中配对t检验和Welcht检验分别使用100万条功耗轨迹对AES加密过程进行泄露评估,本文方案使用30万条功耗轨迹进行泄露评估.首先,使用18万条功耗轨迹计算配对组间采样点相关性系数.即按固定明文和随机明文将18万条功耗轨迹分成两组,按公式(6)逐一求解每一个采样点的相关系数,每个采样点的相关系数如图6所示.

图6 每个采样点的相关系数Fig.6 Correlation coefficients for sample points

图6中部分采样点的相关系数小于零,这些采样点使用配对t检验进行泄露评估可能会出现错误的结果.采样点的相关系数相对AES十轮迭代存在一致性.部分采样的正相关性很强,非常适合使用配对t检验进行泄露评估,可以极大地提高评估效率.

使用100万条功耗轨迹等分成两组,对AES加密过程每个采样点进行Welcht检验,每个采样点的t值如图7(a)所示.

图7 两种假设检验的t值Fig.7 T-value of two hypothesis tests

图7(a)中AES加密过程所有采样点的t值分布与AES十轮迭代的分布呈现一致性.绝大部分采样点检验统计量都不在阈值范围内,每轮结束时个别采样点的检验统计量的绝对值在落在阈值内.检验统计量的变化范围在-40~120.

配对t检验使用100万条功耗轨迹配成50万组,而且是相邻的两次加密结合成一组.每个采样点配对t检验的检验统计量的绝对值如图7(b)所示.

图7(b)中AES加密过程每个采样点的t值的绝对值分布有九轮存在一致性,第一轮的采样点始终在阈值C内,且变化很小.检验统计量的变化范围在1400,对比Welcht检验的检验统计量的变化范围大了十几倍,因此配对t检验具有快速性,特别是对存在泄露的采样点(一般的泄漏点)进行评估时随着功耗轨迹增多检验统计量会迅速变大,能很快的检测出泄露.

本文方案使用30万条功耗轨迹进行侧信道泄露评估的检验统计量如图8所示.

图8中只使用了30万条功耗轨迹,采样点的检验统计量的绝对值的分布与AES十轮加密的分布存在一致性,不像图7(b)中第一轮的检验统计量始终在阈值C内变化很小.图8中的曲线比图7(b)多了一些尖刺,这是因为该区间内ρ<0的采样点使用了Welcht检验进行侧信道泄露评估.

图8 本文方案检验统计量Fig.8 T-values of our method

通过Welcht检验和本文方案两种方法的检验出泄露的采样点数都稳定且相等.为了展示本文方案的优势,对比了三种方法随着功耗轨迹条数增多其检验统计量落入拒绝域的个数与检测出的稳定泄露点数的百分比,并定义该比值为“正确率”,如图9所示.

图9 三种方法的正确率Fig.9 Correct rate of the three methods

图9中可以看出使用Welcht检验进行泄露评估落入拒绝域的点数,不如使用配对t检验落入拒绝域的点数稳定.这是因为配对t检验的检验统计量的绝对值变化快,使检验结果很快的稳定下来.虽然使用配对t检验进行侧信道泄露评估检验统计量落入拒绝域的点数比较稳定,但是检验统计量落入拒绝域的点数比检测出的稳定泄露点数少了一部分.这是因为配对t检验进行泄露评估AES第一轮的检验统计量出现了第Ⅱ类错误.本文设计的方案使用配对t检验结合Welcht检验避免了上文中提到的两个问题.

图10 检验结果H0的分布Fig.10 Distribution of test results H0

通过原假设H0的结果分析泄露点的分布.当H0=0时,代表接受假设检验,认为μA和μB没有显著性差别,否则H0=1,认为μA和μB有显著性差别.图10表示通过H0的值对比本文方案与Welcht检验的结果.

检验使用100万条功耗轨迹与本文方案使用30W条功耗轨迹对每个采样点进行泄露评估,检测出的泄漏点的分布基本相同.

对比三种侧信道泄露方案所需功耗轨迹的数量、耗时(不包括采集功耗轨迹的时间)和落入拒绝域内的点数见表1.

表1 实验结果对比Table 1 Comparison of experimental results

通过表1可知本文方案耗时较少、需要的功耗轨迹少,可以很好的提高评估效率.

从实验结果上再次验证了在侧信道泄露评估时若使用配对t检验工具时会出现本文发现的两个问题,本文方案结合Welcht检验、配对t检验和对加密算法的简单分析最大的发挥配对t检验的优势并解决出单独使用配对t检验的问题.

5 总 结

目前以TVLA为框架的侧信道泄露评估多以Welcht检验作为工具.TVLA给出了详细的评估步骤具有可实现性,但是需要的功耗轨迹数量多,随着功耗轨迹的增多,很多采样点的检验结果不稳定.以配对t检验作为工具,可以提高评估效率,增加检验结果的稳定性.但是检验时可能会出现死区,不满足条件时使用配对t检验进行评估会出现错误的结果.本研究通过配对t检验对AES的实现过程进行评估,验证了配对t检验在AES第一轮的检验失效和ρ<0时会出现第Ⅰ类错误.最后本文给出了一套基于配对t检验的评估方案,并对AES的加密过程进行了评估,验证了本方案的高效性、稳定性和快速性.

后继研究中将对配对t检验在侧信道泄露评估如何高效使用进行理论研究.分析配t检验出现失效的原因以及如何避免,通过一些修正使ρ<0的采样点适用配对t检验,设计更简洁、高效的侧信道泄露评估方案.

猜你喜欢

明文功耗信道
基于任务映射的暗硅芯片功耗预算方法
信号/数据处理数字信道接收机中同时双信道选择与处理方法
一种高效多级信道化数字接收机的设计与实现
奇怪的处罚
一种无人机数据链信道选择和功率控制方法
揭开GPU功耗的面纱
奇怪的处罚
基于导频的OFDM信道估计技术
奇怪的处罚
环保之功,从主板做起