1.相关性分析方法简介
相关性分析方法:针对部分或者全部密钥位参与密码运算的过程中,根据能量信号与密码运算计算过程中产生的中间数据的汉明重量或者汉明距离的相关性,计算猜测密钥得到的中间结果汉明重量或者汉明距离与实测能量信号之间的线性相关性,来恢复密钥。
1.1补充知识
汉明距离 : 是一个概念,表示两个等长的字符串对应位不同的个数,对两个字符串进行异或运算,并统计其结果为1的个数就是汉明距离。(因为侧信道底层都是0和1的变换,所以此处只用二进制举例)
汉明重量 : 它是一种特殊的汉明距离,指一个字符串与一个等长的“零”字符串的汉明距离,即一个字符串中非零的字符个数。(通俗说就是转换为二进制后1的个数)
1.2执行步骤
(1)确定被攻击密码设备的攻击点,即确定该攻击点对应的中间数据; 该中间数据可用于恢复密钥k,则中间数据可表示为:f(d,k),d是明文或者密文,k为私钥。
(2)测量密码设备运行过程中的能量曲线,攻击者记录每一次运行密码算法时对应的di,同时采集每一次运算时能量曲线,表示为ti=( ti,1,…, ti,T );
(3)猜测密钥k,并根据猜测密钥计算步骤(1)选择的中间数据。将所有可能的密钥记录为K=(k1,…, kk),对所有D次加密运算和K个密钥计算假设中间值:vi,j=f(di, kj) i=1,…,D;j=1,…,k。
(4)根据能量泄露模型,将假设中间值映射为能量泄露值hi,j。
(5)将假设能量泄露值和实际能量泄露信号进行统计分析,获取密钥。
2.CPA攻击过程
CPA攻击是经典DPA攻击的延伸,其利用功耗样点与被处理数据的汉明权重之间的相关性因子进行分析。(DPA的变种)
2.1主要思路:
- 攻击者已知明文,并可变化明文并采集相应的功耗曲线
- 攻击者猜测安全芯片的密钥,根据明文和密钥计算出某中间变量
- 以中间变量的汉明权重(逻辑1的个数)和功耗的相关系数作分析
- 相关系数最高的即对应猜测正确的密钥
CPA攻击的过程如下:
- 随机选择N组不相同明文或密文Mi (i∈[1,N])进行加/解密运算,采集每组明文进行加密运算时设备产生的能量曲线Ti (t),t∈{1,…,k},其中k为能量轨迹的采样点数。
- 选择密钥Kl (l∈Ω,Ω为密钥空间),计算在Kl和Mi条件下,密码算法进行加密运算时在被攻击点产生的中间值Di,l。
- 取中间值Di,l的汉明距离或者汉明重量建立能量模型hi,l,根据
式计算Ti和hi,l相关性ρl。 (4)取相关系数最大值时对应的Kl,即为实际密钥。
最后根据得到的相关性系数绝对值的大小来获取密钥 。