[发明专利]用于SM2数字签名验证算法的FPGA芯片有效
申请号: | 201210540967.X | 申请日: | 2012-12-13 |
公开(公告)号: | CN103049710B | 公开(公告)日: | 2017-02-08 |
发明(设计)人: | 沈阳;郭沛宇;王磊;宫铭豪;丁森华;梁晋春;马艳;姚颖颖;张乃光 | 申请(专利权)人: | 国家广播电影电视总局广播科学研究院 |
主分类号: | G06F21/76 | 分类号: | G06F21/76 |
代理公司: | 工业和信息化部电子专利中心11010 | 代理人: | 梁军 |
地址: | 100866 *** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 用于 sm2 数字签名 验证 算法 fpga 芯片 | ||
1.一种用于SM2数字签名验证算法的FPGA芯片,其特征在于,包括:
系统总线接口,用于与所述FPGA芯片的外部系统进行通信,从所述外部系统获取SM2数字签名验证所需的参数和数据,并写入所述SM2控制器,接收所述外部系统发送的控制消息、工作状态查询消息、以及运算结果查询消息,并发送到所述SM2控制器;
SM2控制器,与所述系统总线接口和所述SM2运算单元连接,用于根据所述控制消息触发所述SM2运算单元,在接收到所述工作状态查询消息和所述运算结果查询消息后,通过所述系统总线接口向所述外部系统发送所述SM2运算单元的工作状态和验证结果;
SM2运算单元,用于在所述SM2控制器的触发下,从所述SM2控制器中读取本次SM2数字签名验证所需的参数和数据,进行根据所述SM2数字签名验证算法进行验证计算,将验证结果发送到所述SM2控制器。
2.如权利要求1所述的FPGA芯片,其特征在于,所述系统总线接口包括:符合通用工业总线标准的系统总线接口;或者符合用户自定义总线接口协议的系统总线接口。
3.如权利要求1所述的FPGA芯片,其特征在于,所述SM2控制器具体包括:
控制寄存器,用于在通过所述系统总线接口接收到所述外部系统发送的所述控制消息的情况下,根据所述控制消息,通过SM2启动信号触发所述SM2运算单元启动,通过SM2复位信号触发所述SM2运算单元复位;
数据寄存器,用于通过所述系统总线接口接收所述外部系统发送的本次SM2数字签名验证所需的参数和数据,并进行存储,在所述控制寄存器复位所述SM2运算单元后,清空本次SM2数字签名验证所需的参数和数据;
状态寄存器,用于在接收到所述工作状态查询消息的情况下,查询所述SM2运算单元的工作状态,并通过所述系统总线接口将所述工作状态发送到所述外部系统;主动通知所述外部系统所述SM2运算单元已完成本次SM2数字签名验证;在接收到所述运算结果查询消息的情况下,通过所述系统总线接口向所述外部系统发送本次SM2数字签名验证的验证结果。
4.如权利要求1所述的FPGA芯片,其特征在于,所述SM2运算单元具体包括:
第一状态机模块,用于进行SM2数字签名验证运算流程控制,并与所述SM2控制器进行通信;
第一模加运算模块,用于在仿射坐标系下完成SM2数字签名验证算法中的t=(r′+s′)modn的计算,以及R=(e′+x1′)modn的计算,其中,(r′+s′)为签名码字,计算消息的摘要值Hv()为摘要计算函数,“□”表示前后两个字符串的拼接,n为椭圆曲线的阶,x1′为椭圆曲线点(x′,y′)坐标元素之一;
第一倍点运算模块,用于在底层素数域加减法运算、素数域乘法运算、以及素数域除法运算的支持下,在仿射坐标系下计算SM2数字签名验证算法中的[s′]G和[t′]PA,其中,G是椭圆曲线的基点,G=(xG,yG)(G≠O),xG和yG是Fp中的两个元素,椭圆曲线E(Fq)方程的两个元素a、b∈Fq、PA是用户公钥,也是椭圆曲线上的一个点,[s′]G是指G的s′倍点,[t′]PA是指PA的t′倍点;
第一点加运算模块,用于在底层素数域加减法运算、素数域乘法运算、以及素数域除法运算的支持下,在仿射坐标系下完成SM2数字签名验证算法中的[s′]G和[t′]PA两个点的点加运算,即,(x′,y′)=[s′]G+[t′]PA,其中,(x′,y′)为椭圆曲线上的点。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于国家广播电影电视总局广播科学研究院,未经国家广播电影电视总局广播科学研究院许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201210540967.X/1.html,转载请声明来源钻瓜专利网。