基于皮尔森积矩相关系数和选择消息方法的功耗攻击方法与流程

文档序号:11681060阅读:304来源:国知局
基于皮尔森积矩相关系数和选择消息方法的功耗攻击方法与流程

本发明涉及到信息安全、侧信道攻击及微处理器设计领域,特别涉及一种基于皮尔森积矩相关系数和选择消息方法的功耗攻击方案。



背景技术:

随着信息技术的发展,在不同的智能设备之间进行数据交换和共享的需求也不断增长,这就对信息安全和风险管理提出了很高的要求。尽管目前许多加密系统理论上是安全的,但其实它们在嵌入式设备(例如智能卡、传感器、中央处理器单元cpu)上的实现在运行时往往是很容易通过各种侧信道信息攻击的。此外,由于智能设备对功耗、速度、硬件开销的局限性,一些现存的抗攻击方法是不能被接受的。

目前在密码安全领域应用最广泛的加密系统是rsa加密系统,rsa算法的基本运算是模幂运算,原始的从左到右和从右到左模幂算法可以被简单功耗攻击spa轻松攻破。所以之后有很多的抗侧信道攻击的模幂算法被提出,例如boscher等人提出了一种抗侧信道攻击的模幂算法,并且该算法比此前的盲化蒙哥马利阶梯算法快33%。

同时,相关性功耗攻击(cpa)可以利用估计实际功耗数据和攻击者设定值的关系的方法实现攻击。基于rsa的消息盲化方法,kocher的方法和二进制随机初始点(brip)算法被广泛采用,但是这需要大量的乘逆操作。为了克服这个缺点,amiel和feix利用蒙哥马利模乘方法提出了改良版的brip算法,然而这个算法需要两个额外的短幂数模幂操作。在这些工作的基础上,结合选择输入消息和spa攻击的方法被提出,基本思想是通过选择特定的输入消息,功耗曲线的一些特征可以更容易的获得和分辨。

yen等人最早提出的选择消息spa攻击,选择消息就是攻击者根据加密系统特性选择特定的输入消息来获取加密系统特定特征的方法,他们将n-1作为模幂算法的输入(当模幂系统模数为n时)。理论上,这个方法可以攻击从左到右平方乘算法和brip算法。但是,在实际的硬件环境下,由于噪声、随机延时、随机时钟毛刺等的干扰,功耗曲线的特征通常是很难被直接观察的spa得到的。



技术实现要素:

为克服现有技术的不足,本发明旨在发现现有安全系统下的漏洞与不足,以便改进现有安全系统,找到更高效安全的方案保护数据隐私的安全。本发明采用的技术方案是,基于皮尔森积矩相关系数和选择消息方法的功耗攻击方法,步骤如下:在发送数据和指令给现场可编程门阵列(fpga)时,利用选择消息方法即在rsa加密系统的输入步骤中选择特定的消息发送给fpga,从而使得模幂运算中循环内部相应的模乘对应于不同密钥位的区别更加明显;fpga收到数据、指令后驱动fpga上加密系统的执行,在执行过程中,通过示波器经fpga上的特定端口收集功耗电压数据,并把数据通过以太网接口传回、输入到基于皮尔森相关系数方法实现的功耗分析平台中恢复密钥。

基于皮尔森相关系数方法的具体步骤是,皮尔森相关系数用字符ρ来代表,公式为ρx,y为向量x与y之间的皮尔森相关系数,cov(x,y)为向量x与向量y的协方差,σx,σy分别代表向量x和y的样本标准差,将公式展开,借助于中间等式方程组,

得到功耗相关性分析的公式,此时将两条不同模乘操作对应的功耗数据分别用x和y两个向量来表示,两个向量内部功耗数据点用xi和yi来表示,公式为:

其中,n为模幂系统模数;此时,设计取一个模乘操作对应的功耗曲线作为模板,将其他模乘操作对应的功耗数据分别与模板计算皮尔森相关系数,通过设定一个阈值就能明显分辨出不同密钥位是0还是1。

本发明的特点及有益效果是:

本发明使用fpga平台做硬件设计,实现了基于盲化boscher模幂算法的rsa加密方案。功耗分析分别在2.5mhz和1mhz下进行了对比分析,本发明提出的功耗分析方案只需要40条和50条独立运行的rsa加密系统所取得的功耗波形数据就能分别在2.5mhz和1mhz下完成对基于盲化boscher模幂算法的rsa加密系统的攻击,获得准确的密钥信息。在实现简单的基础上,攻击效率远远高于现有其他方案。并且,从原理分析不难看出,本发明提出的攻击方案,不仅仅试用于基于盲化boscher模幂算法的rsa加密系统,也试用于目前大部分基于模乘模平方循环迭代类的rsa加密系统。

附图说明:

图1m=1下rsa的解密功耗波形。

图2yen针对算法1的攻击功耗图。

图3m=1下针对算法2的攻击分析。

图4fios模乘单元架构图。

具体实施方式

综合考虑现有技术,本发明采用基于皮尔森积矩相关系数的cpa方法进行功耗分析,cpa能够更好的反映不同功耗曲线间的关系通过计算它们之间的皮尔森相关系数,是目前公认最好的进行功耗分析的方法。

本发明将选择消息方法和相关性功耗分析方法结合进行功耗分析和侧信道攻击,并且本设计可针对boscher提出的改进的盲化模幂算法成功实现攻击。

本发明旨在达到以下目标:

1.降低攻击的复杂性的同时提高侧信道攻击的效率。

2.本设计可通过将一个模乘的功耗数据作为标准,计算不同模乘功耗数据与标准之间的皮尔森相关系数来得出不同模乘之间的线性关系,这种方法本设计命名为选择消息相关性功耗攻击。

3.在原有的针对boscher从右到左模幂算法的的选择消息基础上,本设计扩展了另外两个可行选择输入消息,1和n+1。

本发明能够实现更简单、灵活、高效的侧信道攻击方案。

本发明是一种基于皮尔森积矩相关系数和选择消息方法的高效功耗攻击方案,所以设计到的主要技术有选择消息方法和皮尔森相关系数,选择消息方法主要是在rsa加密系统的输入步骤中选择特定的消息作为输入,从而使得模幂运算中循环内部相应的模乘对应于不同密钥位的区别更加明显,利于后续的功耗分析;皮尔森相关系数主要用于对加密系统运行功耗数据进行相关性分析,rsa加密系统下的模幂算法都会涉及到模乘运算的循环,而循环内部的模乘运算与密钥位有着一一对应关系,所以针对模乘运算功耗数据进行相关性分析便能得出每位密钥位的值,而皮尔森相关系数又是数理统计领域里比较好的计算相关性的方法。

选择消息的方法最早是由yen等人提出。这种攻击方法基于两个独立操作的功耗碰撞原理,例如,如果a=b,攻击者可以分辨出两个计算a2modn和b2modn的功耗碰撞,即使攻击者并不知道a,b的具体数值。从左到右平方乘模幂算法和brip模幂算法已经被证明理论上可以被这种攻击攻破。为了具体说明此方法,可以看一个例子,针对算法1如下:

yen选择n-1作为特别的输入消息,于是当幂指数为偶数时,(n-1)j≡1modn;当幂指数为奇数时,(n-1)j≡n-1modn。于是在算法1的循环第3步只会有两种计算可能性:如果密钥当前有效位di=0,第3步会执行r[0]=12modn;如果密钥当前有效位di=0,第三步会执行r[0]=(n-1)2modn。当然这里会得到两种密钥值,这时候只需要采用试错的方法就能得到正确的密钥。在实际的功耗曲线中,我们设定12modn,(n-1)2modn和1×(n-1)modn分别用s1,s2和m代表.并且我们设定密钥d=77=(1001101)2,此时得到功耗图见图2,根据图2能够轻松分辨出密钥位。

本发明提出选择消息形式只要为(a·n±1)b,a∈z,b∈n,模幂算法中的模乘模平方迭代部分就能够有明显的规律,当然由于输入消息在硬件环境下的限制,本发明采用的选择消息为n-1,1,n+1。本发明针对目前使用较为广泛的盲化boscher模幂算法(如算法2),在算法2中第6步也与密钥位有明显的联系,并且有很强的规律性。

我们将这种规律性总结成表格如下:

另外,由于在模归约操作中要求消息m的值要在0和n之间,所以对于选择消息n+1的情况与选择消息为1的情况相同。

基于以上的分析工作,便把功耗分析从原理角度做到最容易分辨,下面介绍本发明针对在实际硬件环境下,考虑各种时钟毛刺,延迟,噪声等干扰下,如何高效地进行功耗分析工作。

在实际的硬件攻击环境中,加密系统的总功耗为:ptotal=pop+pdata+pnoise+pconst。其中pop为操作依赖功耗,pdata为数据依赖功耗,pnoise是由硬件电子噪声造成的功耗,pconst为实现技术所引起的固有的功耗。显然,在总功耗中,可以人为控制的功耗只有操作依赖功耗和数据依赖功耗,之前的分析已经说明本发明关注的操作只有模乘操作,所以本发明的分析目标就只有数据依赖功耗了。

皮尔森相关系数分析的基本原理就是判断两个向量是否相关,cpa的基本原理也基于此。例如两个乘法a×b和c×d,如果a,c和b,d分别相等,那它们之间的皮尔森相关系数或者说相关度就是1,根据汉明距离模型,如果a,c和b,d都不相等,那么它们之间的相关度就是0。皮尔森相关系数往往用字符ρ来代表,公式为将公式展开,借助于中间等式方程组,

得到本发明使用的功耗相关性分析的公式,此时将两条不同模乘操作对应的功耗数据分别用x和y两个向量来表示,两个向量内部功耗数据点用xi和yi来表示,公式为:

此时,设计取一个模乘操作对应的功耗曲线作为模板,将其他模乘操作对应的功耗数据分别与模板计算皮尔森相关系数,通过设定一个阈值就能明显分辨出不同密钥位是0还是1。

下面结合附图及实例,对本发明进行进一步详细说明。应该指出,此处所描述的具体实施实例仅仅用以解释本发明,并不用于限定本发明。为使本发明的目的、技术方案和优点更加清晰,本实例在以本发明技术方案为前提下进行实施,给出了详细的实施方式和具体的操作过程。

为了验证本发明提出的攻击方案,本发明基于算法2利用veriloghdl在sasebo平台上实现了一款rsa加密处理器。sasebo是日本先进科学技术研究学会aist研发的一款新型fpga开发板,它专门适用于评估各种加密系统安全性和抗攻击能力,并且可实现大规模集成电路,该开发板以xilinxvirtex-5lx50作为目标fpga。

在本设计的rsa加密处理器中涉及到的主要基本运算是模乘,本设计实现的是高阶蒙哥马利模乘基于fios算法(finelyintegratedoperandscanning)。图4是本设计模乘模块的架构图。dat_sram8用来存储模数n,其他ram分别负责存储模乘操作数和模乘结果。选择信号负责分配存储工作,并且选择信号可以使得模乘模块避免频繁的数据处理从而减少模幂计算的时间。上层的模幂函数通过连续的调用模乘模块来实现运算,而模乘模块通过状态机(fsm)来控制。本设计关注算法2中循环部分的操作,所以r[0],r[1],r[2]三个寄存器的值在开始由软件决定并存储到以dat_sram0,dat_sram1和dat_sram2命名的存储器中。

在攻击方案实施中,工作站负责发送数据和指令给sasebo开发板,开发板收到指令后会将这些指令和数据传送到xilinxfpga中,从而驱动加密系统的执行。在执行过程中,示波器可以通过开发板上的特定端口收集功耗电压数据,并把数据通过以太网接口传回工作站,工作站收到的功耗数据波形如图1所示。最后工作站将功耗数据输入到基于皮尔森相关系数方法实现的功耗分析平台中恢复密钥。

从算法2可以看出,在循环迭代中的每次模乘操作由密钥的处理位决定,由于本发明的功耗攻击方案只关注模乘操作而不关注模平方操作,所以将功耗数据进行预处理,只保留每次循环迭代中的模乘操作对应的功耗数据,这里假定预处理后的功耗数据为向量pt[t][m*p],其中t代表共t条功耗数据,在每条功耗数据中有m个模乘操作,并且每个模乘操作有p个点数据。功耗数据分析共分为三个步骤:1.对t条功耗数据取平均,初步去噪,得到2.将平均化后的功耗数据中第一个模乘功耗数据作为模板,计算其他模乘对应的功耗数据与模板的皮尔森相关系数,得到向量pc[m]。3.根据pc[m]确定一个合适的阈值,将pc[m]数据分为两类,更大的点表示其代表的模乘与模板相同,反之不同,从而判断出模乘对应的密钥位是0还是1.最后得到的两个可能密钥结果可以通过试错方式确定正确的密钥。对应的算法如下:

为了阐述清楚设计,本设计选取密钥的最低12位有效位来进行功耗分析,例如密钥数据为(101101111101)2,将功耗分析平台的最后一步单独进行分析,也就是对应于算法3中的第10步到第13步,当选择输入消息为1的情况下,结果分析的图示如图3.从分析图示可以很容易看出阈值明显的将各个模乘对应的功耗数据与模板模乘对应的功耗数据之间的皮尔森相关系数分成两类,较大的一类大概率与模板对应的密钥位相同,较小的一类则不同,于是得到两种可能的密钥,最后经过简单的试错步骤得出正确的密钥。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1