一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

应用于环多项式乘法器的侧信道相关能量分析方法及系统

2022-11-30 14:48:20 来源:中国专利 TAG:


1.本发明属于侧信道分析技术领域,具体涉及应用于环多项式乘法器的侧信道相关能量分析方法及系统。


背景技术:

2.信息安全的两大研究领域包括密码学以及密码分析学。密码学作为信息加密技术的基础,已经成为一个独立的学科来研发新的机制,用以保证数据的机密性、完整性和不可抵赖性。密码分析学是一种通过对密码系统进行深入的研究和分析,发掘密码系统的漏洞或特点进行攻击,同时也可能提出相应防护措施的一种科学技术。简单来说,在不知道密码系统秘密信息(如明文和密钥)的前提下,通过各种手段得到密码系统私密信息的过程就是一个成功的密码分析案例。
3.密码芯片作为密码算法实现的载体,其体系架构和工艺对加密方案的执行效率和抗攻击特性都有着重要的影响。针对不断出现的新型密码算法探索其优化和防护策略,研究密码方案的硬件架构以加快执行速度、增强灵活性及降低成本,是推动密码学新体系发展和应用的关键。但是密码芯片会在执行过程中泄露各种物理信息,它已然成为信息安全设备所面临的主要安全威胁问题。
4.尽管大部分密码系统在理论上是安全的,但实际上密码系统在嵌入式设备(例如智能卡、传感器或安全模块等)上的具体实现,往往能够通过分析特定运算操作的功耗、运行时间、电磁辐射等信息进行攻击,这类攻击方法被称为侧信道攻击,侧信道攻击对嵌入式设备的安全构成了严重的威胁。
5.侧信道攻击方法中最为重要的攻击方法是基于能量的侧信道攻击方法,这类攻击方法有简单能量分析、差分能量分析和相关能量分析这三种典型的方法。在实际的密码芯片应用环境下,由于存在噪声、随机延迟和随机毛刺等不可预测因素的影响,简单能量分析方法通常无法达到直接视觉观察出密钥的效果。因此,需要一种侧信道相关能量分析方法,为密码芯片的安全性提供一种强力有效的评估。


技术实现要素:

6.本发明所要解决的技术问题是针对上述现有技术的不足,提供应用于环多项式乘法器的侧信道相关能量分析方法及系统。
7.为实现上述技术目的,本发明采取的技术方案为:
8.应用于环多项式乘法器的侧信道相关能量分析方法,包括以下步骤:
9.步骤一、获取待攻击子私钥的所有可能出现的值,其中,一个子私钥指私钥多项式向量中的一个系数;
10.步骤二、将子私钥所有可能出现的值分别与密文向量相乘,得到多个假设乘积向量;
11.步骤三、采用攻击函数分别处理每个假设乘积向量,得到多条假设中间值迹;
12.步骤四、采用汉明距离模型分别处理每条假设中间值迹,得到多条假设能量迹;
13.步骤五、获取实测能量迹;
14.步骤六、对实测能量迹进行处理;
15.步骤七、计算假设能量迹与处理后的实测能量迹之间的相关系数;
16.步骤八、绘制相关性曲线,得到最佳候选子私钥。
17.为优化上述技术方案,采取的具体措施还包括:
18.所述的汉明距离模型指的是二进制数在发生变化的过程中,对应位发生0

1转变和1

0转变的总个数,以hd(x,y)表示两个数x、y之间的汉明距离,对这两个数进行二进制下的异或运算,再统计异或结果中1的个数,所得到的这个个数就是汉明距离值。
19.待攻击子私钥的安全等级高时,密码系统每次加解密都会使用一组新的私钥,此时采用水平相关能量分析方法,具体为:
20.步骤s101,获取待攻击子私钥的所有可能出现的值,假设私钥多项式向量的每个子私钥有k种可能出现的值,所以本步骤可以得到一个由所有假设值构成的k维列向量(k1,k2,

,kk)
t

21.步骤s102,从通信信道中获取到密文多项式向量(c1,c2,

,cn),其中n对应格密码算法中已知的格基维度,将k维假设子私钥列向量与n维密文多项式行向量进行相乘,得到一个k行n列的矩阵v
k*n
,按行拆分后得到k个n维假设乘积向量v
i,1
,v
i,2
,

,v
i,n
,其中,i=1,2,

,k,
22.步骤s103,采用攻击函数分别处理每个假设乘积向量,得到多条假设中间值迹,
23.步骤s104,采用汉明距离模型分别处理每条假设中间值迹,得到k条假设能量迹h
i,1
,h
i,2
,

,h
i,n
,其中,i=1,2,

,k,
24.步骤s105,采集密码系统加解密操作的功耗波形,以获取实测能量迹,
25.步骤s106,对实测能量迹进行处理,对实测能量迹采样处理,获取t个采样点,构造用于相关性计算的能量迹,得到t条处理后的实测能量迹t
i,1
,t
i,2
,

,t
i,n
,其中,i=1,2,

,t,
26.步骤s107,计算假设能量迹与处理后的实测能量迹之间的相关系数,
27.根据以下公式计算假设能量迹与实测能量迹之间的相关系数:
[0028][0029]
其中,ρ为假设能量迹与实测能量迹之间的相关系数;cov()为协方差;var()为方差;x为假设能量迹,x=h
i,1
,h
i,2
,

,h
i,n
,其中,i=1,2,

,k;y为处理后的实测能量迹,y=t
i,1
,t
i,2
,

,t
i,n
,其中,i=1,2,

,t,经过本步骤可以得到相关系数矩阵r
k*t

[0030]
步骤s108,绘制相关性曲线,得到最佳候选子私钥,
[0031]
绘制相关系数曲线时按标定好的起始采样点序号去绘制,如果某点是整个相关曲线中值最大的点,那么就代表该点已与实测能量迹起点对齐,且该点所属的假设子私钥值为最佳候选子私钥值。
[0032]
待攻击子私钥的安全等级中等时,密码系统使用的是短暂私钥,一段时间内的加解密操作都会使用同一组私钥,此时采用组合相关能量分析方法,具体为:
[0033]
步骤s201,获取待攻击子私钥的所有可能出现的值,假设私钥多项式向量的每个
子私钥有k种可能出现的值,所以本步骤可以得到一个由所有假设值构成的k维列向量(k1,k2,

,kk)
t

[0034]
步骤s202,在安全等级中等情况下,从通信信道中获取到d组密文多项式,将d组密文多项式向量c
d_1
,c
d_2


,c
d_n
进行首尾拼接,得到密文多项式组合向量c1,c2,

,c
d*n
,将k维假设子私钥列向量与d*n维密文多项式组合行向量进行相乘,得到一个k行d*n列的矩阵v
k*(d*n)
,按行拆分后得到k个d*n维假设乘积向量v
i,1
,v
i,2
,

,v
i,d*n
,其中,i=1,2,

,k,
[0035]
步骤s203,采用攻击函数分别处理每个假设乘积向量,得到多条假设中间值迹,
[0036]
步骤s204,采用汉明距离模型分别处理每条假设中间值迹,得到k条假设能量迹h
i,1
,h
i,2
,

,h
i,n
,其中,i=1,2,

,k,
[0037]
步骤s205,采集密码系统加解密操作的功耗波形,以获取d组实测能量迹,
[0038]
步骤s206,对实测能量迹进行处理,对每组实测能量迹采样处理,获取d*t个采样点,构造用于相关性计算的能量迹,得到d*t条一次处理后的实测能量迹,将一次处理后的实测能量迹拼接成t条二次处理后的实测能量迹t
i,1
,t
i,2
,

,t
i,d*n
,其中,i=1,2,

,t,
[0039]
步骤s207,计算假设能量迹与处理后的实测能量迹之间的相关系数,
[0040]
根据以下公式计算假设能量迹与实测能量迹之间的相关系数:
[0041][0042]
其中,ρ为假设能量迹与实测能量迹之间的相关系数;cov()为协方差;var()为方差;x为假设能量迹,x=h
i,1
,h
i,2
,

,h
i,d*n
,其中,i=1,2,

,k;y为处理后的实测能量迹,y=t
i,1
,t
i,2
,

,t
i,d*n
,其中,i=1,2,

,t,经过本步骤可以得到相关系数矩阵r
k*t

[0043]
步骤s208,绘制相关性曲线,得到最佳候选子私钥,
[0044]
绘制相关系数曲线时按标定好的起始采样点序号去绘制,如果某点是整个相关曲线中值最大的点,那么就代表该点已与实测能量迹起点对齐,且该点所属的假设子私钥值为最佳候选子私钥值。
[0045]
待攻击子私钥的安全等级低时,密码系统使用的是长期私钥,此时采用垂直相关能量分析方法,具体为:
[0046]
步骤s301,获取待攻击子私钥的所有可能出现的值,假设私钥多项式向量的每个子私钥有k种可能出现的值,所以本步骤可以得到一个由所有假设值构成的k维列向量(k1,k2,

,kk)
t

[0047]
步骤s302,在安全等级低情况下,从通信信道中获取到d组密文多项式向量只选用同一处系数进行组合,得到子密文组合向量c
1_i
,c
2_i


,c
d_i
,i∈[1,n],将k维假设子私钥列向量与d维子密文组合行向量进行相乘,得到一个k行d列的矩阵v
k*d
,按行拆分后得到k个d维假设乘积向量v
i,1
,v
i,2
,

,v
i,d
,i=1,2,

,k,
[0048]
步骤s303,采用攻击函数分别处理每个假设乘积向量,得到多条假设中间值迹,
[0049]
步骤s304,采用汉明距离模型分别处理每条假设中间值迹,得到k条假设能量迹h
i,1
,h
i,2
,

,h
i,n
,其中,i=1,2,

,k,
[0050]
步骤s305,采集密码系统加解密操作的功耗波形,以获取d组实测能量迹,
[0051]
步骤s306,对每条能量迹上的同一位点数据进行组合,处理d条t点能量迹可以得到t条处理后的能量迹t
i,1
,t
i,2
,

,t
i,d
,其中,i=1,2,

,t,
[0052]
步骤s307,计算假设能量迹与处理后的实测能量迹之间的相关系数,
[0053]
根据以下公式计算假设能量迹与实测能量迹之间的相关系数:
[0054][0055]
其中,ρ为假设能量迹与实测能量迹之间的相关系数;cov()为协方差;var()为方差;x为假设能量迹,x=h
i,1
,h
i,2
,

,h
i,d*n
,其中,i=1,2,

,k;y为处理后的实测能量迹,y=t
i,1
,t
i,2
,

,t
i,d
,其中,i=1,2,

,t,经过本步骤可以得到相关系数矩阵r
k*t

[0056]
步骤s308,绘制相关性曲线,得到最佳候选子私钥,
[0057]
绘制相关系数曲线时按标定好的起始采样点序号去绘制,如果某点是整个相关曲线中值最大的点,那么就代表该点已与实测能量迹起点对齐,且该点所属的假设子私钥值为最佳候选子私钥值。
[0058]
所述实测能量迹的获取方法如下:在密码系统供电支路上串连一个电阻,密码系统在运算的过程中电流会形成波动,反映在电阻两端会产生不断变化的电压差,通过使用示波器测量电阻两端的压降,以获取实测能量迹。
[0059]
应用于环多项式乘法器的侧信道相关能量分析系统,包括开发板、芯片、电阻和示波器,所述的芯片固定在开发板上,芯片内设编写好的密码系统,电阻串连在芯片供电支路上,电阻串连在芯片供电支路上,示波器与电阻连接,用于检测电阻两端的压降。
[0060]
本发明的有益效果:
[0061]
本发明的方法由水平相关能量分析、垂直相关能量分析和组合相关能量分析三种侧信道分析方法构成。这三种能量分析方法设计出来用于分别应对不同的安全等级:针对安全等级极高情况,水平相关能量分析方法的攻击效果最好,这种情况下每次加解密都会使用一组新的私钥,能捕捉到的可用能量迹仅有一条;针对安全等级中等情况,这种情况下使用的是短暂私钥,能捕捉到的可用能量迹较少,使用组合相关能量分析方法的攻击效果更好;针对安全等级较低情况,这种情况下使用的是长期私钥,能捕捉到的可用能量迹较多,使用垂直相关能量分析方法进行攻击更好。通过多种侧信道分析方法,可以为密码芯片的安全性提供强力有效的评估。
附图说明
[0062]
图1为本发明提供的一种应用于环多项式乘法器的侧信道相关能量分析方法系统的结构示意图;
[0063]
图2是三种分析方法的通用操作流程图;
[0064]
图3是三种分析方法的通用数据流图;
[0065]
图4是水平相关能量分析方法所用到的攻击函数电路模型;
[0066]
图5是水平相关能量分析方法的实验采集环境,用于获取实测能量迹;
[0067]
图6是水平相关能量分析方法中采集到的一处子私钥计算区间下的实测能量迹波形;
[0068]
图7是水平相关能量分析方法实测能量迹处理示意图;
[0069]
图8是对图6能量迹的攻击结果示意图;
[0070]
图9是攻击结果准确度示意图;
[0071]
图10是组合相关能量分析方法的实测能量迹处理示意图;
[0072]
图11是使用组合相关能量分析方法攻击的结果示意图;
[0073]
图12是垂直相关能量分析方法的实测能量迹处理示意图;
[0074]
图13是使用垂直相关能量分析方法在100条能量迹上进行攻击测试的结果图。
具体实施方式
[0075]
以下结合附图对本发明的实施例作进一步详细描述。
[0076]
尽管大部分密码系统在理论上是安全的,但实际上密码系统在嵌入式设备上的具体实现,往往能够通过分析特定运算操作的功耗、运行时间、电磁辐射等信息进行攻击,这类攻击方法被称为侧信道攻击,侧信道攻击对嵌入式设备的安全构成了严重的威胁。为了保证密码芯片功能的绝对安全可靠,亟需一种强力有效的用于安全性评估的测试方法系统。
[0077]
因此,本发明提供一种应用于环多项式乘法器的侧信道相关能量分析方法系统,如图1所示,图1为本发明提供的一种应用于环多项式乘法器的侧信道相关能量分析方法系统的结构示意图。
[0078]
该方法系统由水平相关能量分析、垂直相关能量分析和组合相关能量分析三种侧信道分析方法构成。这三种能量分析方法设计出来用于分别应对不同的安全等级:针对安全等级极高情况,水平相关能量分析方法的攻击效果最好,这种情况下每次加解密都会使用一组新的私钥,能捕捉到的可用能量迹仅有一条;针对安全等级中等情况,这种情况下使用的是短暂私钥,能捕捉到的可用能量迹较少,使用组合相关能量分析方法的攻击效果更好;针对安全等级较低情况,这种情况下使用的是长期私钥,能捕捉到的可用能量迹较多,使用垂直相关能量分析方法攻击更好。
[0079]
本发明提供三种应用于环多项式乘法器的侧信道相关能量分析方法,图2是三种分析方法的通用操作流程图,图3是三种分析方法的通用数据流图,包括:
[0080]
方法一:水平相关能量分析方法
[0081]
水平相关能量分析方法是针对安全等级极高情况设计的,这种情况下每次加解密都会使用一组新的私钥。
[0082]
步骤s101,获取待攻击子私钥的所有可能出现的值,其中一个子私钥指私钥多项式向量中的一个系数。
[0083]
假设私钥多项式向量的每个子私钥有k种可能出现的值,所以本步骤可以得到一个由所有假设值构成的k维列向量(k1,k2,

,kk)
t

[0084]
步骤s102,将子私钥所有可能出现的值分别与密文多项式向量相乘,得到多个假设乘积向量。
[0085]
由于本实施例中使用的是格密码算法,一种公钥加密方案,可以轻易地从通信信道中获取到密文多项式向量(c1,c2,

,cn),其中n对应格密码算法中已知的格基维度。将k维假设子私钥列向量与n维密文多项式行向量进行相乘,得到一个k行n列的矩阵v
k*n
,按行拆分后得到k个n维假设乘积向量(v
i,1
,v
i,2
,

,v
i,n
)(i=1,2,

,k)。
[0086]
步骤s103,采用攻击函数分别处理每个假设乘积向量,得到多条假设中间值迹。
[0087]
图4是本实施例中所用到的攻击函数电路模型。a、b是位宽为13比特的两输入,经
过乘法器相乘得到位宽为26比特的乘积值x,紧接着就是进行模约减运算x%q,其中模值q为素数7681,这一计算过程用移位运算操作方法来简化:
[0088]
1、t

(x》》13) (x》》17) (x》》21);
[0089]
2、tq

(t《《13)-(t《《9) t;
[0090]
3、r

x-tq。
[0091]
符号注解:“》》”为右移运算,“《《”为左移运算,
“←”
为赋值操作。
[0092]
图4中所示x[25:13]、x[25:17]、x[25:21]均指的是对x[25:0]进行取位运算,将得到的这三个数送入加法器中进行相加,完成上述过程1的计算;经过一级寄存器存储为值t;然后对t进行运算,用t左移13位的值减去t左移9位的值再加上t的值,完成上述过程2的计算;再经过一级寄存器存储为值tq;由于存在t、tq这两级寄存器的影响,需要对x进行两级寄存器直接存储,再与值tq进行相减完成上述过程3的计算,再经过一级寄存器存储为值r;这时候出来的值r只是近似余数,还需要经过三次数据选择器处理,三次处理过程都是一样的,在r与(r-q)之间进行选择,选择标准为比较r与q的大小,r小于q就选q,r大于q就选r-q,最终得到的结果r处于模数q之内。为了平衡路径延时,三次数据选择器处理操作被划分开来进行,先做一次再做两次。
[0093]
攻击函数的构造方法是由具体的硬件电路设计结构所决定的,本实施例中的攻击函数为:从x得到r这一过程中的中间值组合[xn,t
n-1
,tq
n-2
,r

n-3
,r
n-4
]。
[0094]
步骤s104,采用汉明距离模型分别处理每条假设中间值迹,得到多条假设能量迹。
[0095]
汉明距离模型指的是二进制数在发生变化的过程中,对应位发生0

1转变和1

0转变的总个数。我们以hd(x,y)表示两个数x、y之间的汉明距离,对这两个数进行二进制下的异或运算,再统计异或结果中1的个数,所得到的这个个数就是汉明距离值。
[0096]
对于硬件实现的密码系统,汉明距离模型更加有效。攻击函数和汉明距离模型都是一对一映射关系,故不会改变假设乘积向量构成的矩阵的结构。经过本步骤可以得到k条假设能量迹(h
i,1
,h
i,2
,

,h
i,n
)(i=1,2,

,k)。
[0097]
步骤s105,获取实测能量迹。
[0098]
图5是本实施例的实验采集环境,用于获取实测能量迹,包括:
[0099]
主要设备有pc机、fpga板和示波器。fpga板上烧录的硬件设计为采用schoolbook多项式乘法算法的r-lwe格密码系统。采集所用的示波器型号为pico 3206d,可同时使用两个通道进行采集,将一个通道设置为触发状态,用于触发示波器开始采集,使用另一个通道去采集芯片运算时的功耗数据。
[0100]
pc机与fpga板通信收发明文/密文进行加解密操作,与此同时触发示波器进行功耗采集,pc机接收完示波器返回的功耗数据后再对数据进行分析处理。水平相关能量分析方法是针对安全等级极高情况设计的,这种情况下每次加解密都会使用一组新的私钥,能捕捉到的可用能量迹仅有一条。
[0101]
fpga板的芯片供电支路上串连了一个电阻,芯片在运算的过程中电流会随之波动,反映在电阻两端会产生不断变化的电压差,通过使用示波器测量电阻两端的压降,以获取实测能量迹。
[0102]
图6是本实施例中采集到的一处子私钥计算区间下的实测能量迹波形。
[0103]
步骤s106,对实测能量迹进行处理。
[0104]
本实施例中攻击的硬件设计运行在xilinx spartan-6(xc6slx9)芯片上,时钟频率为50mhz,将示波器设置为以2ns的间隔(500ms/s)进行采集。
[0105]
实测能量迹的处理方法是由示波器的采样频率与板上芯片的时钟频率决定的,根据两者的倍数关系在实测能量迹上间隔地去取采样点构造用于相关性计算的能量迹。在本实施例的实验环境下,每个时钟周期下会有10个采样点(500m/50m=10),所以我们每隔10个采样点取1个数据点,共取n次去构造用于相关性计算的能量迹。图7是实测能量迹处理示意图。
[0106]
用于构造能量迹的起始采样点是不固定的,遍历在一处子私钥的整个计算区间内,共有t个点,需要逐点滑动地去构造能量迹。经过本步骤可以得到t条处理后的实测能量迹(t
i,1
,t
i,2
,

,t
i,n
)(i=1,2,

,t)。
[0107]
步骤s107,计算假设能量迹与处理后的实测能量迹之间的相关系数。
[0108]
根据以下公式计算假设能量迹与实测能量迹之间的相关系数(皮尔逊相关系数):
[0109][0110]
其中,ρ为假设能量迹与实测能量迹之间的相关系数;cov()为协方差;var()为方差;x为假设能量迹,x=(h
i,1
,h
i,2
,

,h
i,n
)(i=1,2,

,k);y为处理后的实测能量迹,y=(t
i,1
,t
i,2
,

,t
i,n
)(i=1,2,

,t)。经过本步骤可以得到相关系数矩阵r
k*t

[0111]
步骤s108,绘制相关性曲线,得到最佳候选子私钥。
[0112]
绘制相关系数曲线时按标定好的起始采样点序号去绘制。因此如果某点是整个相关曲线中值最大的点,那么就代表该点已与实测能量迹起点对齐,且该点所属的假设子私钥值为最佳候选子私钥值。
[0113]
对图6能量迹的攻击结果如图8所示,其中浅灰色曲线表示所有错误假设子私钥相关性曲线的叠加效果,深黑色曲线表示正确假设子私钥的相关性曲线。可以看出黑色曲线的峰比灰色曲线高,这表示攻击成功恢复了该处子私钥。通过重复执行全部攻击步骤就能逐个恢复子私钥,进而恢复一整个私钥多项式向量。
[0114]
本实施例采集了5000条能量迹用于评估本发明分析方法在单条能量迹上的准确度,攻击结果如图9所示,横轴表示子私钥序号,纵轴表示攻击平均准确率,结果显示成功恢复任一子私钥的平均准确率为99.90%。但是由于个别子私钥的值会导致电路结构中的多个寄存器在该处子私钥计算过程中一直为0,使得攻击函数的刻画效果大幅降低,从而导致个别子私钥的成功恢复准确率显著低于其他子私钥,最终导致成功恢复所有子私钥,即成功恢复一整个私钥多项式向量的准确率降至76.41%。
[0115]
方法二:组合相关能量分析方法
[0116]
与水平相关能量分析方法相比,组合相关能量分析方法的不同之处在于:攻击函数的输入准备数据不同(对应步骤2)、实测能量迹的可获取数量不同(对应步骤5)和实测能量迹的处理方法不同(对应步骤6)。
[0117]
组合相关能量分析方法是针对安全等级中等情况设计的,这种情况下使用的是短暂私钥,一小段时间内的加解密操作都会使用同一组私钥。
[0118]
步骤s202,将子私钥所有可能出现的值分别与密文多项式组合向量相乘,得到多个假设乘积向量。
[0119]
在这种安全等级情况下可以发送多组不同的密文进行解密,将d组密文多项式向量(c
d_1
,c
d_2


,c
d_n
)进行首尾拼接,得到密文多项式组合向量(c1,c2,

,c
d*n
)。将k维假设子私钥列向量与d*n维密文多项式组合行向量进行相乘,得到一个k行d*n列的矩阵v
k*(d*n)
,按行拆分后得到k个d*n维假设乘积向量(v
i,1
,v
i,2
,

,v
i,d*n
)(i=1,2,

,k)。
[0120]
步骤s205,获取实测能量迹。
[0121]
在这种安全等级情况下可以获取多条不同密文的能量迹,不再是仅有一条可用能量迹。实验采集环境和采集操作过程则与之前相同。
[0122]
步骤s206,对实测能量迹进行处理。
[0123]
在实测能量迹上取点依旧是滑动地按每隔10个采样点取1个数据点,共取n次用于构造能量迹。不同的是需要按同样的位点对多条能量迹分别去取(共有t个位点),然后将d*t条一次处理后的能量迹(t
d_i,1
,t
d_i,2
,

,t
d_i,n
)(i=1,2,

,t)拼接成t条二次处理后的能量迹(t
i,1
,t
i,2
,

,t
i,d*n
)(i=1,2,

,t)。图10是实测能量迹处理示意图。
[0124]
最后再计算假设能量迹x=(h
i,1
,h
i,2
,

,h
i,d*n
)(i=1,2,

,k)与处理后的实测能量迹y=(t
i,1
,t
i,2
,

,t
i,d*n
)(i=1,2,

,t)之间的相关系数,得到相关系数矩阵r
k*t

[0125]
图11是使用组合相关能量分析方法攻击的结果,横轴表示能量迹条数,纵轴表示攻击平均准确率。仅有一条可用能量迹时的攻击准确率就是水平相关能量分析方法的攻击准确率76.41%。组合两条能量迹分析的攻击准确度为99.24%,组合三条能量迹分析的攻击准确度为99.96%,组合四条能量迹分析的攻击准确度为100%。
[0126]
方法三:垂直相关能量分析方法
[0127]
与水平相关能量分析方法和组合相关能量分析方法相比,垂直相关能量分析方法的不同之处在于:攻击函数的输入准备数据不同(对应步骤2)、攻击函数不同(对应步骤3)、实测能量迹的可获取数量不同(对应步骤5)和实测能量迹的处理方法不同(对应步骤6)。
[0128]
垂直相关能量分析方法是针对安全等级较低情况设计的,这种情况下使用的是长期私钥,一大段时间内的加解密操作都会使用同一组私钥。粗略看来该方法的适用情况与组合相关能量分析方法相比只是私钥的有效时间长短不同,垂直相关能量分析方法适用的情况组合相关能量分析方法也都适用,垂直相关能量分析方法似乎失去了其适用的独特性。其实不然,这种分析方法是更为通用的分析方法,它适用于任何环多项式乘法器结构,上述两种分析方法是针对schoolbook多项式乘法算法设计的,而对于ntt多项式乘法算法则攻击不再适用。
[0129]
步骤s302,将子私钥所有可能出现的值分别与子密文组合向量相乘,得到多个假设乘积向量。
[0130]
在安全等级较低情况下可以发送多组不同的密文进行解密,对d组密文多项式向量只选用同一处系数进行组合,得到子密文组合向量(c
1_i
,c
2_i


,c
d_i
)(i∈[1,n])。将k维假设子私钥列向量与d维子密文组合行向量进行相乘,得到一个k行d列的矩阵v
k*d
,按行拆分后得到k个d维假设乘积向量(v
i,1
,v
i,2
,

,v
i,d
)(i=1,2,

,k)。
[0131]
步骤s303,采用攻击函数分别处理每个假设乘积向量,得到多条假设中间值迹。
[0132]
schoolbook多项式乘法算法涉及到n2次私钥乘法ai*bj(i=1,2,

,n;j=1,2,

,n),ntt多项式乘法算法涉及到n次私钥乘法ai*bj(i=1,2,

,n)。与schoolbook多项式乘法算法相比,ntt多项式乘法算法中的私钥乘法次数大幅减少。若要攻击ntt环多项式乘法器
结构,上述两种分析方法中构造的攻击函数将不再适用,新的攻击函数不再对中间值数据进行组合,只包含一个关键的中间值数据,即图4中的26比特的乘积值x。
[0133]
步骤s305,获取实测能量迹。
[0134]
在这种安全等级情况下可以获取很多条不同密文的能量迹,实验采集环境和采集操作过程则与之前相同。
[0135]
步骤s306,对实测能量迹进行处理。
[0136]
该分析方法的处理方法与上述两种分析方法都不同,需要对每条能量迹上的同一位点数据进行组合,处理d条t点能量迹可以得到t条处理后的能量迹(t
i,1
,t
i,2
,

,t
i,d
)(i=1,2,

,t)。图12是实测能量迹处理示意图。
[0137]
最后再计算假设能量迹x=(h
i,1
,h
i,2
,

,h
i,d
)(i=1,2,

,k)与处理后的实测能量迹y=(t
i,1
,t
i,2
,

,t
i,d
)(i=1,2,

,t)之间的相关系数,得到相关系数矩阵r
k*t

[0138]
图13是使用垂直相关能量分析方法在100条能量迹上进行攻击测试的结果,横轴表示能量迹条数,纵轴表示攻击成功率。可以看出,随着能量迹条数的增加,攻击成功率也随之上升,使得攻击成功率能够稳定在100%所需要的最少能量迹条数为72,已在图13中用红点标出。
[0139]
以上结合具体实施方式和范例性实例对本发明进行了详细说明,不过这些说明并不能理解为对本发明的限制。本领域技术人员理解,在不偏离本发明精神和范围的情况下,可以对本发明技术方案及其实施方式进行多种等价替换、修饰或改进,这些均落入本发明的范围内。本发明的保护范围以所附权利要求为准。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献