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

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

2022-07-23 07:37:22 来源:中国专利 TAG:


1.本发明属于侧信道分析技术领域,尤其涉及一种应用于多项式硬件乘法的侧信道相关能量分析方法及系统。


背景技术:

2.基于格的后量子密码方案是依靠格中困难问题所构造的,由于目前还没有有效的量子算法来解决这些格中困难问题,所以基于格的后量子密码方案具有很强的抗量子攻击安全性。目前产业界上的大部分密码系统尽管理论上是安全的,但实际上密码系统在嵌入式设备上的具体实现,往往能够通过分析特定运算操作的能量消耗进行攻击从而恢复密钥。这类攻击方法被称为侧信道攻击。典型的侧信道分析方法包括简单能量分析、差分能量分析和相关能量分析。
3.在实际的密码芯片应用环境下,由于噪声和毛刺等不可预测因素的影响,运用简单能量分析通常无法达到直接视觉观察出密钥的效果。相关能量分析对能量迹条数的要求比差分能量分析更少,攻击能力更强。相关能量分析通过计算实际采集到的能量迹与攻击者的假设能量迹的相关度进行攻击,其核心思想是通过计算皮尔逊相关系数来比较相关性。
4.经典的相关能量分析,即垂直相关能量分析,通过改变明文输入,分析多条能量迹中的同一点与不同输入对应产生的中间值之间的相关性,实现恢复密钥的效果。而水平相关能量分析则是充分利用单条能量迹上多次的相同操作产生的中间值,分析其与假设能量迹之间的相关性实现恢复密钥的效果,可以看出水平相关能量分析对单条能量迹上点的利用率比垂直相关能量分析更高。对于短暂密钥方案,由于只能获得少量实测能量迹,水平相关能量分析的攻击效果将会比垂直相关能量分析更加有效,但水平相关能量分析需要事先知道确切的攻击点进行对齐,这需要精确的定位技术作为支撑,无疑是增加了技术难度。


技术实现要素:

5.本发明针对现有技术中的不足,提供一种应用于多项式硬件乘法的侧信道相关能量分析方法及系统。
6.第一方面,本发明提供一种应用于多项式硬件乘法的侧信道相关能量分析方法,包括:
7.获取待攻击的子私钥所有可能出现的值;其中,一个子私钥对应私钥多项式向量中的一个系数;
8.将子私钥所有可能出现的值分别与公钥多项式向量相乘,得到假设乘积向量;
9.采用攻击函数分别处理每个假设乘积向量,得到假设中间值迹;
10.采用汉明距离模型将假设中间值迹映射为假设能量迹;
11.获取实测能量迹;
12.计算假设能量迹与实测能量迹之间的相关系数;
13.获取相关系数最大值;
14.确定相关系数最大值对应的子私钥值为最佳候选子私钥值。
15.进一步地,所述获取实测能量迹,包括:
16.在fpga板的芯片供电支路上串连一个电阻,芯片在运算过程中的电流在电阻两端产生压降,通过使用示波器采集电阻两端产生的压降,以获取实测能量迹;所述fpga板上烧录的硬件设计为采用schoolbook多项式乘法算法的格密码系统。
17.进一步地,所述计算假设能量迹与实测能量迹之间的相关系数,包括:
18.根据以下公式计算假设能量迹与实测能量迹之间的相关系数:
[0019][0020]
其中,ρ为假设能量迹与实测能量迹之间的相关系数;cov()为协方差;var()为方差;x为假设能量迹;y为处理后的实测能量迹。
[0021]
第二方面,本发明提供一种应用于多项式硬件乘法的侧信道相关能量分析系统,包括:
[0022]
第一获取模块,用于获取待攻击的子私钥所有可能出现的值;其中,一个子私钥对应私钥多项式向量中的一个系数;
[0023]
向量乘积模块,用于将子私钥所有可能出现的值分别与公钥多项式向量相乘,得到假设乘积向量;
[0024]
向量处理模块,用于采用攻击函数分别处理每个假设乘积向量,得到假设中间值迹;
[0025]
映射模块,用于采用汉明距离模型将假设中间值迹映射为假设能量迹;
[0026]
第二获取模块,用于获取实测能量迹;
[0027]
计算模块,用于计算假设能量迹与实测能量迹之间的相关系数;
[0028]
第三获取模块,用于获取相关系数最大值;
[0029]
确定模块,用于确定相关系数最大值对应的子私钥值为最佳候选子私钥值。
[0030]
进一步地,所述计算模块包括:
[0031]
计算单元,用于根据以下公式计算假设能量迹与实测能量迹之间的相关系数:
[0032][0033]
其中,ρ为假设能量迹与实测能量迹之间的相关系数;cov()为协方差;var()为方差;x为假设能量迹;y为处理后的实测能量迹。
[0034]
本发明提供一种应用于多项式硬件乘法的侧信道相关能量分析方法及系统,其中方法包括获取待攻击的子私钥所有可能出现的值;其中,一个子私钥对应私钥多项式向量中的一个系数;将子私钥所有可能出现的值分别与公钥多项式向量相乘,得到假设乘积向量;采用攻击函数分别处理每个假设乘积向量,得到假设中间值迹;采用汉明距离模型将假设中间值迹映射为假设能量迹;获取实测能量迹;计算假设能量迹与实测能量迹之间的相关系数;获取相关系数最大值;确定相关系数最大值对应的子私钥值为最佳候选子私钥值。本发明采用上述方案,对用于分析的实测能量迹条数要求少,仅使用一条能量迹进行分析
就能达到攻击效果,而且无需对实测能量迹进行精确定位便可以实施攻击,为检测密码设备的安全可靠性提供了评估手段。
附图说明
[0035]
为了更清楚地说明本发明的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0036]
图1为本发明实施例提供的一种应用于多项式硬件乘法的侧信道相关能量分析方法的结构示意图;
[0037]
图2为本发明实施例提供的一种应用于多项式硬件乘法的侧信道相关能量分析方法的工作流程图;
[0038]
图3为本发明实施例提供的模乘电路结构示意图;
[0039]
图4为本发明实施例提供的采集到的实测能量迹图
[0040]
图5为本发明实施例提供的攻击结果图;
[0041]
图6为本发明实施例提供的单条能量迹的准确度评估结果图;
[0042]
图7为本发明实施例提供的多条能量迹的组合分析准确度结果图;
[0043]
图8为本发明实施例提供的一种应用于多项式硬件乘法的侧信道相关能量分析系统的结构示意图。
具体实施方式
[0044]
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整的描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0045]
如背景技术中所述的经典的相关能量分析,即垂直相关能量分析,通过改变明文输入,分析多条能量迹中的同一点与不同输入对应产生的中间值之间的相关性,实现恢复密钥的效果。而水平相关能量分析则是充分利用单条能量迹上多次的相同操作产生的中间值,分析其与假设能量迹之间的相关性实现恢复密钥的效果,可以看出水平相关能量分析对单条能量迹上点的利用率比垂直相关能量分析更高。对于短暂密钥方案,由于只能获得少量实测能量迹,水平相关能量分析的攻击效果将会比垂直相关能量分析更加有效,但水平相关能量分析需要事先知道确切的攻击点进行对齐,这需要精确的定位技术作为支撑,无疑是增加了技术难度。
[0046]
因此,为了解决上述问题,本发明实施例部分提供了一种应用于多项式硬件乘法的侧信道相关能量分析方法,如图1所示,图1为本发明提供的一种应用于多项式硬件乘法的侧信道相关能量分析方法的结构示意图。
[0047]
具体的,如图2所示,所述方法包括:
[0048]
步骤s101,获取待攻击的子私钥所有可能出现的值;其中,一个子私钥对应私钥多项式向量中的一个系数。
[0049]
通过每次攻击一个子私钥,可以逐个恢复私钥多项式向量中的所有系数。与同时
攻击多个子私钥相比,这种攻击方式剥离了各子私钥值之间的影响,只需要重复执行整套攻击步骤就能逐个恢复子私钥,操作实施难度更低。
[0050]
由于本实施例攻击的r-lwe格密码系统的私钥多项式向量由累计分布法高斯采样器生成,每个子私钥有63种可能出现的值,所以本步骤中可以得到一个由所有假设值构成的63维列向量。如果r-lwe格密码系统的设计中存在简单能量分析(spa)漏洞,那么还可以进一步减少子私钥的假设值个数。
[0051]
步骤s102,将子私钥所有可能出现的值分别与公钥多项式向量相乘,得到假设乘积向量。
[0052]
使用到的公钥加密方案,可以轻易地从通信信道中获取到公钥多项式向量。将子私钥所有可能出现的值分别与公钥多项式向量相乘可以理解为将一个列向量与一个行向量相乘得到一个矩阵,再将这个矩阵按行进行分割,这样得到的每个行向量对应一个假设乘积向量
[0053]
步骤s103,采用攻击函数分别处理每个假设乘积向量,得到假设中间值迹。
[0054]
如图3所示,a、b是位宽为13比特的两输入,经过乘法器相乘得到位宽为26比特的乘积值x,紧接着就是进行模约减运算x%q,其中模值q为素数7681,这一计算过程用移位运算操作方法来简化:
[0055]
1、t

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

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

x-tq。
[0058]
符号注解:“》》”为右移运算,“《《”为左移运算,
“←”
为赋值操作。
[0059]
图3中所示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之内。
[0060]
而攻击函数就是从x得到r这一过程中的中间值组合[x,t,tq,r]。
[0061]
攻击函数的构造方法是由硬件电路设计结构决定的。电路流水结构中的寄存器存储着中间值运算数据,攻击函数通过组合这些寄存器中关键数据的变化方式,体现中间值数据的变化情况。具体构造方法可以简单到只使用输入寄存器进行设计或只使用输出寄存器进行设计,不过这样设计的攻击函数的攻击效果肯定会没那么好,攻击函数刻画得越精细攻击效果越好,但是要想攻击函数刻画得越精细其设计过程肯定会越复杂。
[0062]
步骤s104,采用汉明距离模型将假设中间值迹映射为假设能量迹。
[0063]
汉明距离模型指的是一二进制数在向另一二进制数转变的过程中发生0

1转换和1

0转换的总数。我们以hd(x,y)表示两个数x、y之间的汉明距离,对这两个数进行二进制下的异或运算,再统计异或结果中1的个数,所得到的这个个数就是汉明距离值。不采用汉明重量模型处理是因为汉明重量模型更适用于软件实现的密码系统,而对于硬件实现的
密码系统,汉明距离模型更加有效。攻击函数和汉明距离模型都是一对一映射关系,故不会改变假设乘积向量构成的矩阵的结构。
[0064]
步骤s105,获取实测能量迹。
[0065]
本实施例攻击的r-lwe硬件设计运行在xilinx spartan-6(xc6slx9)fpga板上,时钟频率为50mhz。在fpga板的芯片供电支路上串连一个电阻,芯片在运算过程中的电流会在电阻两端产生压降,通过使用示波器采集电阻两端产生的压降反映芯片的实时能量消耗情况。采集所用的示波器型号为pico 3206d,可同时使用两个通道以2ns的间隔(500ms/s)去采集,将一个通道设置为触发状态,用于触发示波器开始记录数据,用另一个通道去记录芯片运算时的能量消耗。图3是我们采集到的一处子私钥块的实测能量迹,使用我们的攻击方法无需对实测能量迹起点进行对齐。
[0066]
实测能量迹的处理方法是由示波器的采样频率与板上芯片的时钟频率决定的,根据两者的倍数关系在实测能量迹上间隔地去取采样点构造用于相关性计算的能量迹。在本实施例的实验环境下,每个时钟周期下会有10个采样点,所以我们每10个采样点取1个数据点,共取n次去构造用于相关性计算的能量迹。所取数据点的具体总数由假设乘积向量维数决定,由于模乘电路存在流水结构,使得该处子私钥块的开头会与前一子私钥块有所交联,所以不会取n次去构造用于相关性计算的能量迹,而是会有所减少。所述fpga板上烧录的硬件设计为采用schoolbook多项式乘法算法的格密码系统。
[0067]
步骤s106,计算假设能量迹与实测能量迹之间的相关系数。
[0068]
根据以下公式计算假设能量迹与实测能量迹之间的相关系数:
[0069][0070]
其中,ρ为假设能量迹与实测能量迹之间的相关系数;cov()为协方差;var()为方差;x为假设能量迹;y为处理后的实测能量迹。
[0071]
步骤s107,获取相关系数最大值。
[0072]
步骤s108,确定相关系数最大值对应的子私钥值为最佳候选子私钥值。
[0073]
构造能量迹的起始采样点是不固定的,遍历在整个子私钥能量迹上,所以需要逐点滑动地计算相关性系数。绘制相关系数曲线时按标定好的起始采样点序号去绘制。因此如果某点是整个相关曲线中值最大的点,那么就代表该点已与实测能量迹起点对齐,且该点所属的假设子私钥值为最佳候选子私钥值。
[0074]
此外,还使用低通滤波器对实测能量迹进行预处理,以减少实测能量迹中的高频噪声分量,进一步提高攻击的准确度。
[0075]
对图4能量迹的攻击结果如图5所示,其中浅色曲线表示所有错误假设子私钥相关性曲线的叠加效果,深色曲线表示正确假设子私钥的相关性曲线。图5下图是上图的局部放大视图,可以看出深色曲线的峰比浅色曲线高,这表示攻击成功恢复了该处子私钥。通过重复执行全部攻击步骤就能逐个恢复子私钥。
[0076]
本发明实施例采集了5000条能量迹用于评估本发明分析方法在单条能量迹上的准确度,攻击结果如图6所示,横轴表示子私钥序号,纵轴表示成功恢复的准确度,结果显示成功恢复任一子私钥的平均准确度为99.90%。但是由于个别子私钥的值会导致电路结构中的多个寄存器在该轮计算过程中一直为0,使得攻击函数的刻画效果大大降低,从而导致
个别子私钥的成功恢复准确度显著低于其他子私钥,最终导致成功恢复所有子私钥,即成功恢复一整个私钥多项式向量的准确度降至76.41%。
[0077]
另外还测试了多条能量迹组合分析的准确度,结果如图7所示,可以看出使用两条能量迹的组合分析准确度能达到98.08%,使用五条能量迹的组合分析准确度就能达到100%。
[0078]
如图8所示,本发明实施例提供一种应用于多项式硬件乘法的侧信道相关能量分析系统,包括:
[0079]
第一获取模块10,用于获取待攻击的子私钥所有可能出现的值;其中,一个子私钥对应私钥多项式向量中的一个系数。
[0080]
向量乘积模块20,用于将子私钥所有可能出现的值分别与公钥多项式向量相乘,得到假设乘积向量。
[0081]
向量处理模块30,用于采用攻击函数分别处理每个假设乘积向量,得到假设中间值迹。
[0082]
映射模块40,用于采用汉明距离模型将假设中间值迹映射为假设能量迹。
[0083]
第二获取模块50,用于获取实测能量迹。
[0084]
计算模块60,用于计算假设能量迹与实测能量迹之间的相关系数。
[0085]
第三获取模块70,用于获取相关系数最大值。
[0086]
确定模块80,用于确定相关系数最大值对应的子私钥值为最佳候选子私钥值。
[0087]
可选的,所述计算模块包括:
[0088]
计算单元,用于根据以下公式计算假设能量迹与实测能量迹之间的相关系数:
[0089][0090]
其中,ρ为假设能量迹与实测能量迹之间的相关系数;cov()为协方差;var()为方差;x为假设能量迹;y为处理后的实测能量迹。
[0091]
本说明书中各个实施例之间相同相似的部分互相参见即可。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例中的说明即可。
[0092]
以上结合具体实施方式和范例性实例对本发明进行了详细说明,不过这些说明并不能理解为对本发明的限制。本领域技术人员理解,在不偏离本发明精神和范围的情况下,可以对本发明技术方案及其实施方式进行多种等价替换、修饰或改进,这些均落入本发明的范围内。本发明的保护范围以所附权利要求为准。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

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

相关文献