[发明专利]一种基于SM2和RSA加密算法的加解密系统及工作方法有效
申请号: | 201910192457.X | 申请日: | 2019-03-14 |
公开(公告)号: | CN110049013B | 公开(公告)日: | 2021-04-06 |
发明(设计)人: | 陆江城;熊晓明 | 申请(专利权)人: | 广东工业大学 |
主分类号: | H04L29/06 | 分类号: | H04L29/06;H04L9/08 |
代理公司: | 广东广信君达律师事务所 44329 | 代理人: | 杨晓松 |
地址: | 510062 广东*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 sm2 rsa 加密算法 解密 系统 工作 方法 | ||
1.一种基于SM2和RSA加密算法的加解密系统,其特征在于,包括:CPU接口模块、与CPU接口模块连接的主控模块,以及分别连接在主控模块上的乘法器模块、加法器模块、模运算模块、点乘运算模块、模幂运算模块、随机数发生模块、密钥产生模块,其中:
CPU接口模块用于通过处理器接收配置参数并且发送控制信号给主控模块,返回主控模块中的状态信号;其中CPU接口模块支持APB、AHB和AXI总线协议;
主控模块用于接收配置参数与控制信号,根据配置参数和控制信号发送计算命令、计算参数到乘法器模块、加法器模块、模运算模块、点乘运算模块或模幂运算模块,并将运算过程中的状态信号返回CPU接口模块;其中,配置参数包括配置系统运行的算法为RSA算法或者SM2算法、工作模式以及密钥位宽,工作模式包括加密模式和解密模式;计算命令包括模幂、点乘、模加、模减、模逆、模约减、模乘,计算得到的结果将返回主控模块;
模运算模块用于接收主控模块的计算命令、计算参数,根据命令和参数进行相应的模运算,包括模加、模减、模逆、模约减、模乘运算;
点乘运算模块用于接收主控模块的计算命令、计算参数,根据命令和参数进行SM2加解密过程中的点乘运算,点乘运算使用的是带符号二进制算法;
模幂运算模块用于接收主控模块的计算命令、计算参数,根据命令和参数进行模幂运算,模幂运算使用的是二进位分解方法;
乘法器模块用于接收主控模块的计算命令、计算参数,根据命令和参数进行乘法运算;
加法器模块用于接收主控模块的计算命令、计算参数,根据命令和参数进行加法运算;
随机数发生模块用于产生随机数,并且发送到密钥产生模块;
密钥产生模块用于接收主控模块的生成密钥命令,然后调用随机数发生模块,实现密钥对的生成;
所述的系统在进行SM2运算、RSA运算时进行加法器模块、乘法器模块的共用,其中:
乘法器模块存在一个模式选择输入变量,当该输入变量为1时,则进行RSA算法的乘法运算;当该输入变量为0时,则进行SM2算法的乘法运算;所述的乘法器模块包括6个输入变量和2个输出变量,6个输入变量分别是时钟信号、复位信号、模式选择信号、启动信号以及两个乘法输入因数;2个输出变量分别是输出结果值和结束标志位;当进行SM2算法中的乘法运算时,模式选择信号置为0,两个乘法输入因数都为256bit的值,经过3个时钟周期后得到512bit的输出结果返回给主控模块;当进行RSA算法中的乘法运算时,模式选择信号置为1,两个乘法输入因数都为128bit的值,经过1个时钟周期后得到256bit的输出结果返回给主控模块;
加法器模块同样存在一个模式选择输入变量,当该输入变量为1时,进行RSA算法的加法运算,当输入变量为0时,则进行SM2算法的加法运算;加法器模块有2个输入变量和1个输出变量,只需要输入加数与被加数,经过1个时钟周期后就可以得到对应的输出结果返回给主控模块。
2.如权利要求1所述的基于SM2和RSA加密算法的加解密系统,其特征在于,所述的乘法器模块是由128bit×128bit乘法器组成的,当进行SM2加解密的时候,输入两个256bit的数据,乘法器模块只需要三个周期就可以得到512bit的结果;当进行RSA加解密的时候,由于RSA加解密过程都需要进行128bit×(128×n)bit的乘法运算,因此把RSA加解密的(128×n)bit输入拆分成n个128位数据,每次输入两个128bit的数据,乘法器模块只需要一个周期就可以得到256bit的结果,循环输入n次128bit×128bit,并且把每次计算的结果左移128×(n-1)bit,把每次左移后的结果通过加法器模块进行加法运算,最后便可以得到RSA加密算法中大数乘法128bit×(128×n)bit的结果。
3.如权利要求1所述的基于SM2和RSA加密算法的加解密系统,其特征在于,所述的加法器模块是由(n×128)bit+(n×128)bit加法器组成的;既可以计算SM2加解密过程中涉及的256bit加法操作,也可以计算RSA加解密过程中涉及的(n×128)bit+(n×128)bit加法操作。
4.一种权利要求1至3中任一权利要求所述基于SM2和RSA加密算法的加解密系统的工作方法,其特征在于,包括以下步骤:
步骤1,系统初始化
处理器通过总线访问CPU接口模块,发送相应的初始化复位参数,从而对乘法器模块、加法器模块、模幂运算模块、模运算模块、随机数发生模块以及密钥产生模块进行复位初始化;
步骤2,生成密钥对
主控模块发送密钥产生命令到密钥产生模块,密钥产生模块调用随机数发生模块生成随机数,并完成SM2密钥对和RSA密钥对的生成;密钥对存储在主控模块相应的寄存器中;
步骤3,发送双密文
主控模块先发送SM2加密命令,将明文信息、SM2的公钥以及相应的计算参数给点乘运算模块、模运算模块、加法器模块以及乘法器模块,进行一系列点乘、模加、模减、模乘和模逆运算后,得到SM2加密后的密文;然后主控模块发送RSA加密命令,将SM2的私钥、RSA的公钥以及相应的计算参数给模幂乘运算模块、乘法器模块以及加法器模块,将RSA模幂运算分解为一系列的模乘运算,得到RSA加密后的密文;
最后发送者把RSA的私钥、SM2加密后的密文和RSA加密后的密文发送给接收者;
步骤4,密文的解密
接收者接收到RSA的私钥、SM2加密后的密文和RSA加密后的密文后,主控模块先发送RSA解密命令,主控模块发送RSA的私钥、RSA加密后的密文以及相应的计算参数给模幂乘运算模块、乘法器模块以及加法器模块,将RSA模幂运算分解为一系列的模乘运算,得到SM2的解密私钥;然后主控模块发送SM2解密命令,主控模块发送密文信息、SM2的解密私钥以及相应的计算参数给点乘运算模块、模运算模块、加法器模块以及乘法器模块,进行一系列点乘、模加、模减、模乘和模逆运算后,最后得到明文信息。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于广东工业大学,未经广东工业大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910192457.X/1.html,转载请声明来源钻瓜专利网。