用于旁路攻击的GPU加速方法技术

技术编号:20369402 阅读:26 留言:0更新日期:2019-02-16 19:45
一种用于旁路攻击的GPU加速处理方法,采用神经网络将所有旁路攻击中所需的对曲线点和相应明文的计算转换为计算图,即通过两个卷积层实现低通滤波操作转化、通过一个卷积层实现曲线快速对齐操作转化,再通过加法和乘法计算图计算皮尔森相关性系数,得到的每个计算图一次对一组曲线进行操作并得到累加数组,最后由GPU进行计算图处理得到相应的密钥。本发明专利技术将常规CPU计算的旁路攻击过程中的低通、对齐、计算相关性等操作转化为可在GPU上快速计算的计算图,通过GPU快速完成旁路攻击计算。

GPU Acceleration Method for Bypass Attacks

A GPU accelerated processing method for bypass attacks is presented. The calculation of curve points and corresponding plaintext required in all bypass attacks is converted into computational graphs by using neural networks. That is, low-pass filtering operation is transformed by two convolution layers, curve alignment operation is transformed by one convolution layer, and Pearson correlation coefficient is calculated by adding and multiplying computational graphs. Each computational graph operates on a set of curves at a time and gets an accumulative array. Finally, the GPU processes the computational graph to get the corresponding key. The invention converts the operation of low pass, alignment, calculation correlation in the bypass attack process calculated by conventional CPU into a calculation chart that can be quickly calculated on GPU, and completes the calculation of bypass attack quickly by GPU.

【技术实现步骤摘要】
用于旁路攻击的GPU加速方法
本专利技术涉及的是一种信息安全领域的技术,具体是一种用于旁路攻击的(图形处理器)GPU加速处理方法。
技术介绍
在密码系统的实现环境中,攻击者可以观察和测量密码变换的能量消耗、电磁辐射等信息,利用这些额外的信息有可能实现比传统的数学分析更有效地密码破译,即旁路攻击(SideChannelAttack),其包括简单功耗分析(SPA)和差分功耗分析(DPA),其中DPA攻击是通过记录密码设备对大量不同数据加密或解密操作时的功耗曲线,利用统计方法从功耗曲线中恢复出密码设备中的密钥。
技术实现思路
本专利技术针对现有传统旁路攻击全过程运行在CPU上并行度有限的缺陷,提出一种用于旁路攻击的GPU加速处理方法,该方法将常规CPU计算的旁路攻击过程中的低通、对齐、计算相关性等操作转化为可在GPU上快速计算的计算图,通过GPU快速完成旁路攻击计算获得密钥。本专利技术是通过以下技术方案实现的:本专利技术涉及一种用于旁路攻击的GPU加速处理方法,采用神经网络将所有旁路攻击中所需的对曲线点和相应明文的计算转换为计算图,即通过两个卷积层实现低通滤波操作转化、通过一个卷积层实现曲线快速对齐操作转化,再通过加法和乘法计算图计算皮尔森相关性系数,得到的每个计算图一次对一组曲线进行操作并得到累加数组,最后由GPU进行计算图处理得到相应的密钥。所述的每个计算图,一次从队列获得一组曲线数据,经计算后的结果累加进累加数组。所述的神经网络,采用但不限于TensorFlow完成,该神经网络包括三层卷积层和由五个计算子图构成的相关性计算层。所述的低通滤波是指:其中:i代表曲线中的第i个功耗点,i∈(1,n),n是单条曲线总点数,input是低通处理的输入曲线,output1是中间输出曲线,output2是最终输出曲线,weight为权重值。所述的低通滤波操作转化是指:采用具有大小为2、权重分别为weight和1的卷积核的第一卷积层以及具有大小为2,权重分别为1和weight的卷积核的第二卷积层用于搭建计算图以实现在GPU上的并行计算。所述的曲线快速对齐操作转化是指:通过卷积层实现离散函数的互相关计算从而实现曲线快速对齐,具体为:其中:p为标兵曲线,即其他曲线向该曲线对齐,中其他曲线要对齐的模式,即卷积核,其在标兵曲线中的位置为ip,t为一条待对齐曲线,i∈(1,n),k∈(1,kernel_size),kernel_size为一维卷积核大小,即模式p的长度;互相关计算的结果最大值的位置为imax,当ip-imax为正数时将待对齐曲线t向右,即当把t视作列向量时向下,移动ip-imax个点完成对齐,为负数时则向左,即当把t视作列向量时向上,移动,从而实现快速对齐。所述的通过加法和乘法计算图计算皮尔森相关性系数是指:根据皮尔森相关性系数公式,两个一维变量X和Y的相关性该相关性可自然推广到高维变量,其中平方、开根号和除法为按元素操作。在实际分析中,曲线数量一般达到百万级,无法直接计算,必须分批求和最后求期望,因此本专利技术中一次计算m条曲线,并将计算后的结果累加进累加数组,所述的相关性中的X为n*m的功耗曲线矩阵,分别对应m条功耗曲线上的n个点,Y为中间值矩阵,当待处理明文存在l个字节,每个字节存在256个假设中间值输出,则中间值矩阵Y共有l*256列。所述的累加数组包括:功耗曲线矩阵X中每行的累加和(n维向量),功耗曲线矩阵X中每行各元素平方的累加和(n维向量),中间值矩阵Y中每列的累加和(l*256维向量),中间值矩阵Y中每列各元素平方的累加和(l*256维向量),XY乘积的累加和(n*[l*256]矩阵);使用计算图由输入曲线和相应明文计算上述数组并累加保存,最终得到皮尔森相关性系数ρ为n*[l*256]矩阵,每256列作为一组,对应一个字节的相关性系数。每一组的矩阵绝对值最大的位置(a,b),b为该组正确密钥,a为相关性系数最大的点在曲线中的位置。所述的功耗曲线矩阵X中的曲线上每点表示为ti,j,其中i∈(1,n),j∈(1,m),i作为功耗点位置索引,j作为曲线位置索引。所述的加法和乘法计算图包括若干子图,每个子图的计算结果分别累加到对应的数组,由所述的数组中的累加值计算得到皮尔森相关性系数。所述的GPU进行计算图处理是指:使用上述计算图构建的GPU内计算逻辑,处理待攻击曲线的功耗点和相应明文得到皮尔森相关性系数矩阵,排序并输出对应的密钥。所述的GPU进行计算图处理,优选多个相同计算图可实现对多组曲线的批处理,使用队列以进一步缩减攻击过程中不同任务间的等待时间。本专利技术涉及一种实现上述方法的系统,包括:数据加载模块、神经网络模块和密钥输出显示模块,其中:数据加载模块和神经网络模块相连,并通过数据队列并行的传输神经网络模块所需的曲线功耗点和明文信息,神经网络模块和密钥输出显示模块相连,并向密钥输出显示模块传输最终猜测密钥和皮尔森相关性系数矩阵用于显示。技术效果与现有技术相比,本专利技术通过将原有的旁路攻击操作转换成计算图,全攻击流程可以于GPU上完成,利用计算图实现比CPU更高效的并行计算。相较于只使用CPU,使用一块980TiGPU加速计算可减少攻击时间90%以上。同时可将原始曲线集分割成多段矩阵,分配到多个GPU进一步提升效率,理论上,有r块GPU就提升处理速度为一块GPU的r倍。附图说明图1为基于GPU的旁路攻击流程图;图2为由传统攻击过程转化的计算图计算流程图。具体实施方式如图1所示,为本实施例涉及的一种用于旁路攻击的GPU加速处理方法,具体包括以下步骤:步骤1、使用线程1从硬盘读取曲线数据(数据格式中包含明文信息),将要分析的曲线功耗点和明文加入数据队列1。使用线程2从队列1中读取m条曲线(每条n个功耗点),组成n*m矩阵,加入数据队列2。步骤2、使用线程3管理数据队列2和计算图之间的通讯,当有GPU空闲时从数据队列2读取矩阵数据进行任务分配。步骤3、GPU中的每个计算图由输入数据按照计算图定义的计算逻辑进行计算,每输入一个n*m矩阵,对计算相关性矩阵的5个缓存数组更新一次,直到数据队列1和2都为空时,由5个缓存数组计算相关性矩阵。如有多个计算图并行,需要将所有的缓存数组对应求和,再计算相关性矩阵。最终分析结果,打印报告。所述的步骤3中计算图流程如图2所示,优选实施例的计算过程如下:①选择权重参数weight=50,赋值给低通计算图中的卷积核,第一层卷积层卷积核为(50,1)第二层卷积核为(1,50)。两层卷积后,输出功耗点值为仍是n*m矩阵。②使用预先选定的模式p赋值给对齐计算图中的卷积核,对新的功耗点t′i,j做卷积操作。卷积输出值从中选出每列最大值位移个点,新功耗点值为③通过加法和乘法计算图计算皮尔森相关性系数:中间值矩阵中每条曲线有l*256个,本优选实施例为AES-128算法,明文共16字节,故l=16。为简化下标,本实施例中使用单字节为例,多字节攻击仅为单字节的简单拼接。计算明文y对应不同的密钥假设相应的中间值inter_vj,key=F(yj,key),F是由攻击者设置的映射函数,本优选例中使用其中HW为汉明重量函数,Sbox_out为AES的S盒输出函数,⊕代表异或操作。用于计算皮尔森相关性系数矩阵的5本文档来自技高网...

【技术保护点】
1.一种用于旁路攻击的GPU加速处理方法,其特征在于,采用神经网络将所有旁路攻击中所需的对曲线点和相应明文的计算转换为计算图,即通过两个卷积层实现低通滤波操作转化、通过一个卷积层实现曲线快速对齐操作转化,再通过加法和乘法计算图计算皮尔森相关性系数,得到的每个计算图一次对一组曲线进行操作并得到累加数组,最后由GPU进行计算图处理得到相应的密钥;所述的每个计算图,一次从队列获得一组曲线数据,经计算后的结果累加进累加数组。

【技术特征摘要】
1.一种用于旁路攻击的GPU加速处理方法,其特征在于,采用神经网络将所有旁路攻击中所需的对曲线点和相应明文的计算转换为计算图,即通过两个卷积层实现低通滤波操作转化、通过一个卷积层实现曲线快速对齐操作转化,再通过加法和乘法计算图计算皮尔森相关性系数,得到的每个计算图一次对一组曲线进行操作并得到累加数组,最后由GPU进行计算图处理得到相应的密钥;所述的每个计算图,一次从队列获得一组曲线数据,经计算后的结果累加进累加数组。2.根据权利要求1所述的方法,其特征是,所述的神经网络,采用TensorFlow完成,该神经网络包括三层卷积层和由五个计算子图构成的相关性计算层。3.根据权利要求1所述的方法,其特征是,所述的低通滤波是指:其中:i代表曲线中的第i个功耗点,i∈(1,n),n是单条曲线总点数,input是低通处理的输入曲线,output1是中间输出曲线,output2是最终输出曲线,weight为权重值。4.根据权利要求1或3所述的方法,其特征是,所述的低通滤波操作转化是指:采用具有大小为2、权重分别为weight和1的卷积核的第一卷积层以及具有大小为2,权重分别为1和weight的卷积核的第二卷积层用于搭建计算图以实现在GPU上的并行计算。5.根据权利要求1所述的方法,其特征是,所述的曲线快速对齐操作转化是指:通过卷积层实现离散函数的互相关计算从而实现曲线快速对齐,具体为:其中:p为标兵曲线中其他曲线要对齐的模式,其在标兵曲线中的位置为ip,t为一条待对齐曲线,i∈(1,n),k∈(1,kernel_size),kernel_size为一维卷积核大小,即模式p的长度;互相关计算的结果最大值的位置为imax,当ip-imax为正数时将待对齐曲线t向右移动ip-imax个点完成对齐,为负数时则向左移动,从而实现快速对齐。6.根据权利要求1所述的方法,其特征是,所述的通过加法和乘法计算图计算皮尔森相关性系数是指:根据皮尔森相关性系数公式,两个一...

【专利技术属性】
技术研发人员:王凌云陆相君陆海宁郭筝刘军荣
申请(专利权)人:上海观源信息科技有限公司
类型:发明
国别省市:上海,31

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1