[发明专利]基于GPU的SM2算法实现方法及装置有效
申请号: | 201310459734.1 | 申请日: | 2013-09-26 |
公开(公告)号: | CN103532710B | 公开(公告)日: | 2016-11-30 |
发明(设计)人: | 潘无穷;荆继武;管乐;向继;林璟锵;余幸杰 | 申请(专利权)人: | 中国科学院数据与通信保护研究教育中心 |
主分类号: | H04L9/30 | 分类号: | H04L9/30 |
代理公司: | 北京德琦知识产权代理有限公司 11018 | 代理人: | 牛峥;王丽琴 |
地址: | 100093 *** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 gpu sm2 算法 实现 方法 装置 | ||
技术领域
本发明涉及公钥密码算法技术,特别涉及一种基于图形处理器(GPU,Graphics Processing Unit)的SM2算法的实现方法及装置。
背景技术
采用多核并行计算是提升处理器性能的重要方式,因此出现了包括海量并行结构运算单元的GPU,GPU已经发展成为了并行度高、多线程、计算快捷及内存带宽大的高性能通用处理器。GPU体系结构在组成上分为三层:第一层由若干个线程处理器簇(TPC,Thread Preocessing Cluster)组成,第二层由多个流多处理器(SM,Streaming Multiprocessor)组成,第三层为构成SM的流处理器(SP,Stream Processor),也可以称为线程处理器。SM作为GPU的一个任务执行和调度单元,主要负责执行GPU分发的线程指令,而SP是GPU中最基本的指令执行单元,其执行的操作由所属的SM控制。SP具备独立的寄存器和程序计数器,但是没有内存访问和调度单元,所以SP仅仅具备计算能力,而非独立的处理器核,SM为其包含的SP提供内存访问和调度能力。如果使用同一个SM中所有SP执行相同的指令,并且使所有SP处理的计算数据都不同,就可以使SM具有最高的计算效率,有效避免计算资源的浪费。
2006年NVIDIA公司推出了计算机一体设备结构(CUDA,Compute Unified Device Architecture)可编程平台,可以实现GPU线程的调度。在CUDA可编程平台架构下,GPU执行的最小单位是线程(thread),数个线程(thread)可以组成一个线程块(block)。一个block中的thread可以存取同一共享内存且同步。执行相同程序的thread,组成栅格(grid),不同的grid可以执行不同的程序。
GPU可以对GPU线程进行动态调度,GPU线程被承载在GPU计算单元中,每个GPU线程由一个SP执行。如果一组GPU线程同时允许相同指令且处理不同的数据,就能使尽可能多个SP在相同时间内执行相同指令。一组GPU线程同时处理的指令相同且数据不同的计算越多,GPU中SM的计算效率越高,GPU的运算速度越快。
相对于中央处理器(CPU),GPU具有强大的数据处理能力,在浮点运算及并行计算等方面,提高几十倍甚至数百倍于CPU的性能。GPU具有几千个核,有很高的并行性,但是每个SM相比CPU处理能力比较弱。CPU计算能力强,但是核数比较少。因此,采用何种CPU和GPU协作方式进行构架,完成各种计算,以提高系统整体计算能力,是一个亟待解决的问题。
椭圆曲线公钥密码算法(SM2),是中国国家密码管理局发布的密码算法。SM2明确规定了SM2算法的数字签名算法、公钥加密算法及密钥交换协议,应用在数据传输过程中可靠性的数据传输及使用数据的合法者验证。其中,SM2算法的数字签名算法包括生成算法和验证算法。在SM2的数字签名算法中,包括一一对应的公钥和私钥,其中,私钥用于数据生成数字签名,公钥用于对数字签名进行验证。签名者采用私钥进行数据M的数字签名生成算法计算,得到数据M的数字签名;验证者采用公钥对接收的数据M进行数字签名验证计算,验证数据M的数字签名是否匹配,如果匹配,确认接收的数据M是正确的。公钥加密算法包括加密算法和解密算法,适用于所传输数据的加解密。在公钥加密算法中,数据接收者有一个公钥和一个私钥,公钥和私钥一一对应。数据发送者利用接收者的公钥,使用加密算法对数据加密,接收者用对应的私钥,使用解密算法对接收的数据进行解密,获取数据。密钥交换协议是密钥交换发起者和密钥交换响应者通过交互数据传递实现秘密信息的共享,包括发起密钥交换和响应密钥交换。密钥交换发起者和响应者分别拥有自己的公钥和私钥,并用各自的私钥和对方的公钥确定共享的秘密密钥,这个共享的秘密密钥通常用于某个对称密码算法中,该密钥交换协议适用于密码应用中的密钥交换,能够用于密钥协商和管理。
SM2算法的数字签名算法、密钥交换协议和加密算法的具体郭晨如下所述。
SM2算法的数字签名生成算法
设待签名的消息为M,为了取得消息M的数字签名(r,s),作为签名者的用户A应实现以下运算步骤:
A1:置ZA‖M表示ZA与M的拼接;
A2:计算将e的数据类型转换为整数;
A3:产生随机数k∈[1,n-1];
A4:计算椭圆曲线点(x1,y1)=[k]G;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国科学院数据与通信保护研究教育中心,未经中国科学院数据与通信保护研究教育中心许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310459734.1/2.html,转载请声明来源钻瓜专利网。