专利汇可以提供一种基于OpenCL的Bitslicing-KLEIN的快速实现方法专利检索,专利查询,专利分析的服务。并且本 发明 公开了一种基于OpenCL的Bitslicing‑KLEIN快速实现方法,包括下述步骤:S1、对需要加/解密的数据进行重排;S2、对重排后的数据执行bitslicing化KLEIN的轮函数,执行次数由密钥长度决定;S3、将处理好的数据还原为正确的明密文格式;S4、将上述步骤写成供OpenCL主程序调用的 内核 函数;S5、根据管道延迟隐藏技术确定分 块 大小及调度策略,编写OpenCL主程序;S6、执行程序,输出加解密结果,释放资源。本发明通过引入重排机制对原有的bitslicing化后的KLEIN版本进行了优化,并使用OpenCL将优化后的 算法 进行并行化实现,不仅使得KLEIN算法具备了抗边信道的缓存和计时攻击的特性,还提高了算法的性能,可用于快速加解密或口令破解机等,同时能使Bitslicing‑KLEIN在支持OpenCL的平台和设备上并行运行并获得最佳性能。,下面是一种基于OpenCL的Bitslicing-KLEIN的快速实现方法专利的具体信息内容。
1.一种基于OpenCL的Bitslicing-KLEIN的快速实现方法,其特征在于,包括下述步骤:
S1、对需要加/解密的数据进行重排,输入数据经过重排后,排列成适合Bitslicing-KLEIN中的SubNibbles和MixNibbles操作的形式;
步骤S1中,对输入数据进行重排的具体方法是:
为了发挥bitslicing技术的并行特性,需要将明文或者密文从s0s1s2s3s4s5s6s7s8s9s1
0s11s12s13s14s15重排为s0s1s8s9s2s3s10s11s4s5s12s13s6s7s14s15,其中si为4比特,对应KLEIN中的第i个S盒的输入,重排时需要同时按照MixNibbles时的输入作为划分,将第i个比特位分配到对应的变量上,MixNibbles将相邻的两个S盒的输入划分为一组,重排时需要将MixNibbles输入的所有第0比特分配到变量v0中,则v0=s1|0s9|0s3|0s11|0s5|0s13|0s7|0s15|0,v1为所有输入的第1比特,v2,v3以此类推,其中si|0为第i个S盒输入的最低位,类似地将MixNibbles所有输入的第4比特分配到变量v4中,则v4=s0|0s8|0s2|0s10|0s4|0s12|0s6|0s14|0,v5为所有输入的第5比特,v6,v7以此类推;
S2、对重排后的数据执行bitslicing化KLEIN的轮函数,执行次数由密钥长度决定;
S3、将处理好的数据还原为正确的明密文格式,轮函数执行过后,对数据进行重排,使其还原成明文或者密文的格式,再将其保存到输出数据所在的存储区域中;
S4、将上述步骤S1-S3写成供OpenCL主程序调用的内核函数,函数的参数包括加/解密用的明/密文数据的地址、轮数、加/解密用的密钥数据的地址以及存放加/解密结果的地址;
S5、根据最优化策略确定分块大小及调度策略,编写OpenCL主程序,主程序包括设置分块大小,获取可用平台,获取设备列表并选中目标设备作为运行设备,创建上下文环境,创建内核程序对象并进行编译、创建传输队列和内核执行队列,创建内存空间,设置参数映射,拷贝数据到设备,根据管道延迟隐藏技术安排传输队列和内核队列的执行顺序,从目标设备中拷贝执行结果,释放资源;
S6、运行主程序,输出加/解密结果,释放资源,主程序编写好后,直接运行,目标设备会按照主程序的设置及调度策略合理地循环执行拷贝数据到目标设备,让各个线程运行内核程序,将运行结果从目标设备拷贝回主机三个操作,等所有数据处理结果都完成之后,将结果输出到指定的位置并释放资源。
2.根据权利要求1所述的基于OpenCL的Bitslicing-KLEIN的快速实现方法,其特征在于,步骤S2中,需要处理的数据经过重排后,直接执行Bitslicing-KLEIN的轮函数,包括轮密钥加、块替换、块旋转以及块混合四个步骤;
所述轮密钥加,是在待加密数据和密钥重排好之后,直接进行异或运算;
所述块替换,直接使用Bitslicing-KLEIN的块替换中的布尔表达式,不同之处在于,由于数据已经重排好,不需要逐比特提取出来再进行布尔表达式的运算;
所述块旋转,是在KLEIN中,加密的时候是左移两个字节,所以只需将变量的值进行交换即可;
所述块混合,直接使用Bitslicing-KLEIN的块混合中的布尔表达式进行运算,不同之处在于,不需要逐比特提取出来再执行运算。
3.根据权利要求1所述的基于OpenCL的Bitslicing-KLEIN的快速实现方法,其特征在于,步骤S4中,所述加/解密用的明/密文数据地址、加/解密用的密钥数据地址以及加/解密结果的地址均为无符号字符向量全局指针,轮数的类型为整型,编写内核函数的时候,可以用C语言的内置类型,并推荐使用OpenCL提供的内置类型。
4.根据权利要求3所述的基于OpenCL的Bitslicing-KLEIN的快速实现方法,其特征在于,所述内核函数的内容包括获取当前工作节点的位置,获取对应的处理数据,对加/解密用的明/密文数据进行重排,对加/解密用的密钥数据进行重排,根据轮数循环执行轮密钥加、轮密钥生成、块替换、块旋转、块混合,最后再执行一次轮密钥加,然后对数据进行重排还原成恰当的排列,最后将处理好的数据存进保存加/解密结果的数组中。
5.根据权利要求4所述的基于OpenCL的Bitslicing-KLEIN的快速实现方法,其特征在于,步骤S5中,所述根据最优化策略确定分块大小及调度策略,编写OpenCL主程序具体为:
首先要设置global_work_size以及local_work_size两个参数的值;
然后要配置OpenCL的运行环境,具体如下:
先使用clGetPlatformIDs和clGetPlatformInfo两个命令来获取可用的计算平台,并选择AMD环境作为计算平台;然后使用clCreateContextFromType命令生成上下文环境,命令的第二个参数设为CL_DEVICE_TYPE_GPU表示使用GPU作为计算设备;再使用
clGetContextInfo命令获取计算设备的信息,检查所选设备是否正确;接着使用
clCreateProgramWithSource命令创建程序对象,使用clBuildProgram编译程序对象,确保程序对象能被正常执行;然后使用clCreateKernel命令创建内核对象;最后使用
clCreateCommandQueue命令创建执行内核函数以及执行数据传输的两个命令队列;使用clCreateBuffer命令为输入数据、输出数据及轮密钥数据创建内存空间;然后使用clSetKernelArg命令为内核程序设置相应的参数,需要设置的参数个数与内核函数的参数个数一致;
在核心部分 ,需要根据管道延迟隐藏技术的调度策略 ,分多次使用
clEnqueueWriteBuffer命令将待加密的明文以及要使用到的密钥复制到显存中,然后使用clEnqueueNDRangeKernel命令将内核程序放入命令队列中执行然后使用
clEnqueueReadBuffer命令从显存中读取加密结果;
最后的部分,使用clRelease、free命令释放资源。
6.根据权利要求1所述的基于OpenCL的Bitslicing-KLEIN的快速实现方法,其特征在于,在IDE中打开OpenCL主程序,或者使用命令行界面,直接进行编译运行,根据OpenCL主程序,加密结果会输出到屏幕或者指定的文件当中。
标题 | 发布/更新时间 | 阅读量 |
---|---|---|
控制方法及电子设备 | 2020-05-19 | 824 |
一种安全指示信息的配置方法及设备 | 2020-05-12 | 233 |
一种用于计算热化学非平衡绕流的处理系统及方法 | 2020-05-13 | 148 |
一种数据实时处理系统及数据实时处理方法 | 2020-05-08 | 572 |
基于网络欺骗的网络防护方法、装置、设备及存储介质 | 2020-05-16 | 512 |
访问日志数据的统计方法、装置、计算机设备和存储介质 | 2020-05-13 | 597 |
设备定制信息的管理方法 | 2020-05-17 | 427 |
基于开源安全外壳协议的登录方法及登录系统 | 2020-05-19 | 461 |
WiFi ONU的自动化配置WAN的方法及应用 | 2020-05-12 | 941 |
网络设备的远程诊断方法及系统、网络设备及云服务器 | 2020-05-11 | 720 |
高效检索全球专利专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。
我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。
专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。