[发明专利]一种结合CPU和GPU实现SM2算法的方法及装置在审

专利信息
申请号: 201310408312.1 申请日: 2013-09-10
公开(公告)号: CN103475469A 公开(公告)日: 2013-12-25
发明(设计)人: 林璟锵;荆继武;蔡权伟;顾青;谢超;江伟玉;梁佐泉 申请(专利权)人: 中国科学院数据与通信保护研究教育中心;上海普华诚信信息技术有限公司
主分类号: H04L9/30 分类号: H04L9/30
代理公司: 北京德琦知识产权代理有限公司 11018 代理人: 牛峥;王丽琴
地址: 100093 *** 国省代码: 北京;11
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 一种 结合 cpu gpu 实现 sm2 算法 方法 装置
【说明书】:

技术领域

发明涉及公钥密码算法技术,特别涉及一种结合中央处理器(CPU)和图形处理器(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控制。

2006年NVIDIA公司推出了计算机一体设备结构(CUDA,Compute Unified Device Architecture)可编程平台,可以实现GPU线程的调度。在CUDA可编程平台架构下,GPU执行的最小单位是线程(thread),数个线程(thread)可以组成一个线程块(block)。一个block中的thread可以存取同一共享内存且同步。执行相同程序的thread,组成栅格(grid),不同的grid可以执行不同的程序。

相对于中央处理器(CPU),GPU具有强大的数据处理能力,在浮点运算及并行计算等方面,提高几十倍甚至数百倍于CPU的性能。GPU具有几千个核,有很高的并行性,但是每个SM相比CPU处理能力比较弱。CPU计算能力强,但是核数比较少。因此,采用何种CPU和GPU协作方式进行构架,完成各种计算,以提高系统整体计算能力,是一个亟待解决的问题。

椭圆曲线公钥密码(SM2)算法,是中国国家密码管理局发布的密码算法。该SM2算法,基于椭圆曲线离散对数问题,是目前公认的安全有效的公钥密码算法之一。椭圆曲线公钥密码涉及两个主要运算:椭圆曲线上的点加运算和多倍点运算。在椭圆曲线多倍点运算中Q=[k]P=P+P+...+P,其中基点P是椭圆曲线E上阶为N的点,k为正整数,P的k倍点为Q,P的k倍点也是椭圆曲线上的点,已知多倍点Q与基点P,求解倍数k的问题称为椭圆曲线离散对数问题。

在SM2算法中包括数字签名算法、密钥交换协议算法及加密算法等都需要进行椭圆曲线多倍点运算,椭圆曲线多倍点运算的效率直接影响了SM2算法中的数字签名算法、密钥交换协议算法及加密算法的计算效率。

SM2算法的数字签名算法、密钥交换协议和加密算法的具体过程如下所述。

SM2算法的数字签名生成算法

设待签名的消息为M,为了获取消息M的数字签名(r,s),作为签名者的用户A实现以下运算步骤:

A1:置ZA‖M表示ZA与M的拼接;

A2:计算将e的数据类型转换为整数;

A3:产生随机数k∈[1,n-1];

A4:计算椭圆曲线点(x,y)=[k]G;

A5:计算r=(e+x)mod n,若r=0或r+k=n则返回A3;

A6:计算s=((1+dA)-1·(k-r·dA))mod n,若s=0则返回A3;

A7:将r、s的数据类型转换为字节串,消息M的签名为(r,s)。

其中:HV:消息摘要长度为v比特的密码杂凑函数;G:椭圆曲线上的一个基点,其阶为素数;n:基点G的阶;dA:用户A的私钥;[k]G:椭圆曲线上点G的k倍点,即,[k]G=G+G…+G,表示k个G在椭圆曲线域上相加。

在该算法中,在步骤A3和步骤A4采用了椭圆曲线多倍点运算。

SM2算法中的密钥交换协议算法

设用户A和用户B协商获得密钥数据的长度为klen比特,用户A为发起方,用户B为响应方。用户A和用户B双方为了获得相同的密钥,实现如下运算步骤:

发起方用户A:

A1:用随机数发生器产生随机数rA∈[1,n-1];

A2:计算椭圆曲线点RA=(x1,y1)=[rA]G;

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国科学院数据与通信保护研究教育中心;上海普华诚信信息技术有限公司,未经中国科学院数据与通信保护研究教育中心;上海普华诚信信息技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/201310408312.1/2.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top