发明名称 一种基于OpenCL的Bitslicing-KLEIN的快速实现方法
摘要 本发明公开了一种基于OpenCL的Bitslicing‑KLEIN快速实现方法,包括下述步骤:S1、对需要加/解密的数据进行重排;S2、对重排后的数据执行bitslicing化KLEIN的轮函数,执行次数由密钥长度决定;S3、将处理好的数据还原为正确的明密文格式;S4、将上述步骤写成供OpenCL主程序调用的内核函数;S5、根据管道延迟隐藏技术确定分块大小及调度策略,编写OpenCL主程序;S6、执行程序,输出加解密结果,释放资源。本发明通过引入重排机制对原有的bitslicing化后的KLEIN版本进行了优化,并使用OpenCL将优化后的算法进行并行化实现,不仅使得KLEIN算法具备了抗边信道的缓存和计时攻击的特性,还提高了算法的性能,可用于快速加解密或口令破解机等,同时能使Bitslicing‑KLEIN在支持OpenCL的平台和设备上并行运行并获得最佳性能。
申请公布号 CN105933111A 申请公布日期 2016.09.07
申请号 CN201610369557.1 申请日期 2016.05.27
申请人 华南师范大学;广东财经大学 发明人 龚征;袁宇恒;温雅敏;廖国鸿;魏标;李泮琳;黎伟杰
分类号 H04L9/08(2006.01)I 主分类号 H04L9/08(2006.01)I
代理机构 广州市华学知识产权代理有限公司 44245 代理人 裘晖
主权项 一种基于OpenCL的Bitslicing‑KLEIN的快速实现方法,其特征在于,包括下述步骤:S1、对需要加/解密的数据进行重排,输入数据经过重排后,排列成适合Bitslicing‑KLEIN中的SubNibbles和MixNibbles操作的形式;S2、对重排后的数据执行bitslicing化KLEIN的轮函数,执行次数由密钥长度决定;S3、将处理好的数据还原为正确的明密文格式,轮函数执行过后,对数据进行重排,使其还原成明文或者密文的格式,再将其保存到输出数据所在的存储区域中;S4、将上述步骤S1‑S3写成供OpenCL主程序调用的内核函数,函数的参数包括加/解密用的明/密文数据的地址、轮数、加/解密用的密钥数据的地址以及存放加/解密结果的地址;S5、根据最优化策略确定分块大小及调度策略,编写OpenCL主程序,主程序包括设置分块大小,获取可用平台,获取设备列表并选中目标设备作为运行设备,创建上下文环境,创建内核程序对象并进行编译、创建传输队列和内核执行队列,创建内存空间,设置参数映射,拷贝数据到设备,根据管道延迟隐藏技术安排传输队列和内核队列的执行顺序,从目标设备中拷贝执行结果,释放资源;S6、运行主程序,输出加/解密结果,释放资源,主程序编写好后,直接运行,目标设备会按照主程序的设置及调度策略合理地循环执行拷贝数据到目标设备,让各个线程运行内核程序,将运行结果从目标设备拷贝回主机三个操作,等所有数据处理结果都完成之后,将结果输出到指定的位置并释放资源。
地址 510631 广东省广州市天河区石牌中山大道西55号