一、能量迹的概念:
- 能量迹是用数字示波器采样的电压值向量,测量到的电压值与密码设备的能量消耗成正比、数字示波器的配置决定了能量迹的长度以及每秒钟记录的点数
。
二、能量迹的组成:
-
首先,能量分析攻击利用的是密码设备的执行操作和处理数据与能量消耗 的依赖关系来分析利用。 我们所关注的依赖关系有两种:
①操作依赖(控制加减乘除的变化来分析) ②数据依赖(控制输入的数据进行) -
对于能迹中的每一个点,将其中的操作依赖分量记为P(op),数据依赖分量记为P(date)。并且在实际测量中还包含了,电子噪声P(el.noise)和常量P(const),该常量是由一些无关的晶体管转换活动造成的。
在某个时间节点上,其能量总和公式如下:
P(total)=+P(el.noise)+P(const)+P(op)+P(date)
**PS:**常量部分在实际分析中意义不大,攻击者主要通过分析P(op)和P(data)来获得密钥信息.随着噪声分量Pal.noise的增大,攻击变得更加困难。
三.能量迹单点特征
对某个固定时刻密码设备的能量消耗进行研究
3.1电子噪声
- 首先分析噪声分量,使用执行AES加密算法的微控制器进行研究,当微控制器对恒定数据执行相同操作重复将数值0从其内存转移到寄存器的时候,记录其能量消耗值得出的能量迹非常相似.但是由于电子噪声的存在,这些能量迹之间也存在一些差别。
- 重复一千次测量,并且选用时间为362ns 时的点,绘制能量消耗直方图
- 可以看出,在362ns这一时刻,绝大多数的电压值位于112mV附近,并且图像符合正态分布。 关于相关概率论知识做一总结:
- 在我们的实验中,s为1.63mV. 因此362us时的能量消耗服从μ = 111.86mV和σ= 1.63mV的正态分布,即X ~
N(111.86. 1.63).该正态分布在图中给出
。
- 可见,两图非常吻合,并且,绝大多数密码设备能量迹中的噪声服从正态分布。
P(el.noise)~N(0,σ)
3.2 数据依赖性
- 进行过噪声的分析后,现在进行数据依赖性的分析,目的是确定密码设备处理不同的数据时能量消耗的概率分布(电子噪声是同一数据进行处理分析,
- 现在是冉数据进行分析)。 使用256个不同值,每一个记录200次,收获了256*200=51200条能量迹。
- 从图中标出共有九个尖峰,总体上看好像不符合正态分布,但是按照蓝色标记看到共有9个不同幅度的正态分布。从其直方图得出:
对具有同样汉明重量的数据进行操作时,微控制器的能量消耗的分布基本相同。 不同的汉明重量,各个分布的均值不同,但是方差基本相同。8bit数有九个不同的汉明重量:0,1,2…,8.因此有9个不同均值的正态分布。 - 汉明重量: 它是一种特殊的汉明距离。指一个字符串与一个等长的“零”字符串 的汉明距离,即一个字符串中非零的字符个数
HW | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
---|---|---|---|---|---|---|---|---|---|
概率 | 0.004 | 0.031 | 0.109 | 0.219 | 0.273 | 0.219 | 0.109 | 0.031 | 0.004 |
表3.1 均匀分布的8比特数据的汉明重量的概率分布
- 微控制器处理的8比特数据的汉明重量服从二项分布.表3.1列出了均匀分布的8比特数值的汉明重量的概率分布,汉明重量4出现的概率最高,,而汉明重量0和8出现的概率最小。
**对九个尖峰图做一解释:**出现的图形是两种效果的结合,也就是一开始研究的电子噪声,和数据依赖分量,并且二者都服从正态分布。
-
因为现实中噪声是不可消除的,可以通过计算多条能量迹的均值来减小P(el.noise)的方差。
当前的实验对9种不同汉明重量数据的均值分别进行了计算。这9个均值可以通过所记录的51200条能量迹来估计,估计得到的均值分别为11.9,117.6, 123.2, 128.7,134, 139.5, 145.1, 151.2和159.6. -
用Pconst 来刻画能量迹中的恒定分量,这些恒定分量的均值要从能量迹中去除,换言之, E(P(data))
应该为0.所以,9个汉明重量对应的电压水平应该分别为- -22.67. -16.92, -11.35, -5.86, -0.49,
4.96,10.53,16.68和25.12。 -
由于汉明重量服从二项分布,所以P(data)也服从二项分布。 把P(const), P(data)和P(el.noise)累加,就可以得到总能量消耗的分布
-
下图给出了该分布,除了总能量消耗的分布,还给出了9种不同汉明重分别对应的9种正态分布(虚线所示)。可以观察到该直方图与9个尖峰图非常吻合。所以说,该模型用以刻画使用同种操作将不同数据从内存转移到寄存器时微控制器的能量消耗。
***注意,*能量消耗实际上与被处理数据的汉明重量成反比,所以处理汉明重量为0的数据时将产生最高的能量消耗