[发明专利]一种采用GPU并行化实现SM2算法的方法在审
申请号: | 201410642545.2 | 申请日: | 2014-11-14 |
公开(公告)号: | CN104461469A | 公开(公告)日: | 2015-03-25 |
发明(设计)人: | 吴庆国;张世雄;李元正 | 申请(专利权)人: | 成都卫士通信息产业股份有限公司 |
主分类号: | G06F9/38 | 分类号: | G06F9/38 |
代理公司: | 成都九鼎天元知识产权代理有限公司 51214 | 代理人: | 邓世燕 |
地址: | 610041 四*** | 国省代码: | 四川;51 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 采用 gpu 并行 实现 sm2 算法 方法 | ||
技术领域
本发明涉及密码算法实现领域,具体涉及一种采用GPU并行化实现SM2算法的方法。
背景技术
椭圆曲线公钥密码体制(Elliptic Curve Cryptosystem,简称ECC),即基于椭圆曲线离散对数问题的各种公钥密码体制,最早于1985年由N.Koblitz和V.Miller各自独立地提出。它的基本思路是利用有限域上的椭圆曲线有限群代替基于离散对数问题的有限循环群所得到的一类密码体制。
在相同安全强度的情况下,ECC的密钥长度只有RSA密钥长度的1/6甚至更少,运算速度比RSA快,且有多种曲线参数可选择。ECC以其高效率、高安全强度优势,在信息安全应用中具有巨大的市场发展空间。
SM2算法是由中国国家密码管理局牵头制定的商用密码算法,SM2算法基于ECC算法改造而成,SM2算法的密钥长度为256位。目前,我国正在商用密码领域大力推广应用SM2系列商用密码算法。
GPU(Graphics Processing Unit,图形处理单元)可以理解为可编程的显卡,在计算机中用于图形图像的处理。经过最近几年的发展,GPU已经不限于图形图像处理,还应用到大规模的并行计算领域,使用GPU并行计算技术,有可能使算法的性能获得数倍的提升。
单块GPU通常具有成百上千的CORE(核心运算单元),相比同价位的CPU而言,GPU所拥有的数百倍于CPU的CORE数量。GPU非常适合于执行可高度并行化的密集型计算任务,使用GPU执行这些任务,往往能提升数倍的性能。GPU技术未来将改变商业应用、科学计算、云计算、计算机可视化系统、游戏和机器人等领域,甚至重新定义我们所熟知的计算机编程方式。
SM2算法的运算属于密集型计算任务,因此可采用GPU和并行计算技术来实现高性能的SM2算法。
发明内容
为了克服现有技术的上述缺点,本发明提供了一种采用GPU并行化实现SM2算法的方法,可高性能地实现SM2算法。
本发明解决其技术问题所采用的技术方案是:一种采用GPU并行化实现SM2算法的方法,包括如下步骤:
步骤一、在GPU上实现并行大数运算;
步骤二、在GPU上使用并行大数运算实现Point Add、Point Double运算;
步骤三、在GPU上使用Point Add、Point Double运算实现点乘运算;
步骤四、在GPU上实现批量的点乘运算;
步骤五、在主机上实现除点乘运算以外的其他运算,并调用GPU上的点乘运算模块,实现完整的SM2算法;
步骤六、在主机上批量执行SM2算法运算。
所述并行大数运算的方法为:将256bit的大数运算拆分为4个64bit整数运算,分别由4个线程并行处理。
所述并行大数运算的加法运算方法为:线程n-1分别同时处理a->x和b->z的第n个64bit整数的加法运算,其中,n=1,2,3,4;加法运算的临时结果和进位分别存放在Temp Result和Carry中,线程n-1产生的carry供线程n使用;然后,将Temp result和carry进行累加并将carry清零,累加产生的进位放入下一个线程的carry中,并使用GPU提供的运算原语,实现直到除最高位进位外的所有carry都被清零,得到最终加法运算结果和最终的进位结果。
所述并行大数运算的减法运算方法为:线程n-1分别同时处理a->x和b->z的第n个64bit整数的减法运算,其中,n=1,2,3,4;减法运算的临时结果和借位分别存放在Temp Result和Carry中,线程n-1产生的carry供线程n使用;然后,将Temp result和carry进行累减并将carry清零,累减产生的借位放入下一个线程的carry中,并使用GPU提供的运算原语,实现直到除最高位借位外的所有carry都被清零,得到最终减法运算结果和最终的借位结果。
与现有技术相比,本发明的积极效果是:采用GPU和并行计算方法,充分发挥GPU的并行计算能力,实现高性能的SM2算法,与同价位的CPU相比,采用GPU和并行计算方法实现的SM2算法,其性能可比CPU实现方式高10倍以上。
附图说明
本发明将通过例子并参照附图的方式说明,其中:
图1为点乘运算的分解图;
图2为并行化大数加法运算示意图;
图3为并行化大数减法运算示意图。
具体实施方式
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于成都卫士通信息产业股份有限公司,未经成都卫士通信息产业股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201410642545.2/2.html,转载请声明来源钻瓜专利网。