APP下载

密码算法安全-侧信道泄漏评估技术的研究及应用

2021-03-01

无线互联科技 2021年2期
关键词:汉明卡方比特

(北京银联金卡科技有限公司,北京 100041)

1 侧信道泄漏评估技术介绍

自2011年NIST召开的NIAT(Non-Invasive Attack Testing Workshop)研讨会确定以Welch t检验为基础的TVLA(Test Vector Leakage Assessment)[1]检测方法作为通用的检测手段之后,学术界涌现出了多种检验方法。2013年的连续互信息方法CMI(continuous mutual information)[2],离散互信息方法DMI(discrete mutual information)[3]。2013年,学术界对以上3种方法做了全面的评估,得出结论是基于Welch t检验的方法由于其简单运算快捷,所以在这3种方法中表现最好。2014年有学者提出基于标准类间方差的NICV(Normalized Inter-Class Variance)检测方法[4]。最新的研究提出使用卡方检验的方法可以用于侧信道泄漏检测,并且具有更高的效率。本节主要介绍基于Welch t检验和卡方检验的两种泄漏认证方法。

1.1 基于 Welch t检验的泄漏评估方法

假如两个样本集是Q0和Q1,样本量分别是n0和n1,样本均值分别是μ0和μ1,方差分别是Welch t检验用于判断两个样本总体的期望是否相等。在Welch t检验中,零假设和备用假设分别是:

拒绝或者接受H0假设是由统计量t和自由度v决定,根据自由度,t分布的概率密度函数可以被刻画出来,如下式:

其中,Γ(.) 是伽玛函数(Gamma Function),对上面的概率密度函数积分可以得到概率p,

或者通过累加的方法得到p,

其中2F1(.,.;.;.)是超几何函数,p的值可以由如下给出:

通常而言,当|t|>4.5时,自由度v>1000(这个条件通常能满足),p=2F(-4.5,v>1000)<0.00001,导致t检验以大于0.999 99的概率拒绝零假设。所以通常可以依靠t值判断零假设是否被拒绝。

在实际的泄漏评估当中,将采集的信号分成两个组,然后利用Welch t检验检测这两个组的期望是否一致,以判断是否存在泄漏。这种方法实际上是与最早的差分能量分析(CPA)的思想一致。

1.2 基于卡方检验的泄漏评估方法

卡方检验可以用于检测多个样本总体是否来自同一个分布,与Welch t检验通过均值计算统计值t不同,卡方检验通过分析直方图计算统计值。

假设有r类样本,每类样本有c组数据,第i类样本的第j组数据的发生的次数是F i,j,这样总的样本个数N是卡方检验的统计值x和自由度v计算方法如下:

在卡方检验中,接受假设的概率由下式给出:

在实际检测中,可以将采集的信号分成多个类,每个类的数据也可以分成多个组。由于信号是由示波器采集到的,根据示波器的精度,每个类的数据可以分成的组个数是固定的(例如8比特精度的示波器有256种可能)。然后,利用卡方检验检测这些不同类的数据,以评估他们是否来自同一个分布(确定是否有泄漏)。卡方检验评估泄漏的思想与目前侧信道分析中相关性系数分析(CPA)的思想一致。

2 针对国密算法SM4的应用及实验分析

本节针对目前国内常用密码算法SM4的实现进行分析,评估其运行过程中的侧信道泄漏信号是否存在攻击的可能。

SM4算法是一个分组算法,其分组长度为128比特,密钥长度为128比特。加密算法与密钥扩展算法都采用32轮非线性迭代结构。实验数据是通过Riscure的Power Tracer给一张嵌入了SM4算法的智能卡下发加密指令,并随机加密100万条明文,使用Lecroy示波器对加密过程采集能量消耗数据。

2.1 Welch t检验

本小节将利用Welch t检验对泄漏进行评估分析。首先对第一轮的第一个S盒输出的第一比特作为中间值进行分析。对100万条数据做完分析后得到的结果可以看出利用T检验对SM4单比特做评估时,得到的t统计量在所有的待评估点中没有出现绝对值大于4.5的情况,但是已经出现了若干尖峰,所以其实可以大致判定该卡存在泄漏。

其次,利用S盒输出的汉明重量作为中间值(大于4和小于等于4)将原始100万数据分为两类进行评估,从评估结果可以看出利用了S盒输出的8个比特位,所以得到的区分度比单比特模型的结果要明显。

最后,利用聚类模型进行泄漏分析。由于是刻画模型,所以先对数据进行刻画。利用相关性系数选择与S盒输出相关的200个特征点。再对10万条曲线其中每条曲线只有这200个点的数据进行主成分分析降维,对降维后的数据进行K-means聚类聚成2类,这样就得到了256到2的映射关系。利用该模型,对100万条数据进行泄漏评估得到的结果从幅值上看,基于聚类模型的T检验是基于比特模型和汉明重量模型的T检验的2倍。说明此时基于聚类的模型更加有效。

2.2 卡方检验

本小节将利用卡方检验对泄漏数据进行进一步的评估,用到的模型是汉明重量模型和聚类模型。对100万条数据用基于汉明重量模型进行卡方检验,其结果可以看到,经过卡方检验,明显出现尖峰,虽然没有计算拒绝空假设的置信水平,但是此时可以判断在这些点存在泄漏。而且,随着数据量的增大,幅值也逐渐增大,表明这种芯片在一定数据量后是可以被破解密钥的。为了验证尖峰处代表泄漏特征点,本小节对第二个S盒利用相同的方式进行评估,其结果可以看出,尖峰的位置随着S盒在移动,说明此处确实是泄漏点,后文将继续对这个区间做实际的侧信道分析。

下一步,利用聚类模型对数据进行泄漏评估。由于汉明重量模型实际上是分为9类的模型,所以为了与之不同,本节的聚类模型将设置成7类和10类。与汉明重量情况类似,使用100万进行分析实验。从实验结果可以看到,虽然统计值没有基于汉明重量的大,但是随着数据量增大,卡方统计值的幅值也随之增大,说明基于聚类模型的检验也是稳健的。此处,智能卡的泄漏模型与汉明重量模型接近,所以基于此模型的检验效果比其他模型高。而在一些无法用汉明重量刻画模型的芯片泄漏检验中,聚类模型具有更大的优势。

最后,由于本小节的结果中可以看到明显的尖峰,所以选择尖峰处为分析的特征点以减小侧信道分析的复杂度。对这些点进行相关性系数分析(10万条曲线),得到的相分析结果关性系数说明正确密钥已被恢复,从而验证了前述泄漏评估方案的有效性。

3 结语

本文提出的检测项对SM4可以做全面的泄漏评估,实验分析也验证了该点。但是在时间效率上有点不足,下一步将在实际检验中发现冗余检测项进一步优化SM4泄漏评估过程。实验结果表明本文设计的检验项可以为SM4做全面的泄漏评估,并且检验的结果可以为侧信道分析的特征点的选择提供参考,提高侧信道分析的效率。

猜你喜欢

汉明卡方比特
卡方检验的应用条件
卡方变异的SSA的FSC赛车转向梯形优化方法
卡方检验的应用条件
比特币还能投资吗
比特币分裂
比特币一年涨135%重回5530元
中年研究
汉明距离矩阵的研究
基于改进卡方统计量的藏文文本表示方法
多个超导磁通量子比特的可控耦合