CN110049013A - 一种基于sm2和rsa加密算法的加解密系统及工作方法 - Google Patents

一种基于sm2和rsa加密算法的加解密系统及工作方法 Download PDF

Info

Publication number
CN110049013A
CN110049013A CN201910192457.XA CN201910192457A CN110049013A CN 110049013 A CN110049013 A CN 110049013A CN 201910192457 A CN201910192457 A CN 201910192457A CN 110049013 A CN110049013 A CN 110049013A
Authority
CN
China
Prior art keywords
module
multiplication
rsa
main control
algorithm
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201910192457.XA
Other languages
English (en)
Other versions
CN110049013B (zh
Inventor
陆江城
熊晓明
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Guangdong University of Technology
Original Assignee
Guangdong University of Technology
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Guangdong University of Technology filed Critical Guangdong University of Technology
Priority to CN201910192457.XA priority Critical patent/CN110049013B/zh
Publication of CN110049013A publication Critical patent/CN110049013A/zh
Application granted granted Critical
Publication of CN110049013B publication Critical patent/CN110049013B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • H04L63/0442Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload wherein the sending and receiving network entities apply asymmetric encryption, i.e. different keys for encryption and decryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/0825Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using asymmetric-key encryption or public key infrastructure [PKI], e.g. key signature or public key certificates

Abstract

本发明公开了一种基于SM2和RSA加密算法的加解密系统及工作方法,所述的系统包括CPU接口模块、与CPU接口模块连接的主控模块,以及分别连接在主控模块上的乘法器模块、加法器模块、模运算模块、点乘运算模块、模幂运算模块、随机数发生模块、密钥产生模块这几个部分。该系统中,采用模块化控制,通过共用SM2和RSA运算所共同使用的消耗电路面积较大的乘法器、加法器模块以及部分寄存器,使本方案的电路比单独实现两种加密算法所耗费的电路面积与消耗的逻辑资源要更少;同时采用混合SM2和RSA加密算法的方法进行加解密操作,大大加强了加解密系统的安全性和保密性。

Description

一种基于SM2和RSA加密算法的加解密系统及工作方法
技术领域
本发明涉及密码芯片技术领域,特别涉及一种基于SM2和RSA加密算法的加解密系统及工作方法。
背景技术
随着计算机和互联网的迅速发展,人们传递信息的方式和方法得到了很大的改变。大量的敏感信息常常通过公共通信设施或互联网进行交换,密码技术是确保信息安全的主导力量,密码算法的研究与应用是信息安全技术的核心研究领域。
RSA公钥加密算法是1977年由Ron Rivest、Adi Shamirh和LenAdleman在美国麻省理工学院开发的。RSA算法是第一个能同时用于加密和数字签名的算法,也易于理解和操作。RSA是被研究得最广泛的公钥算法,同时也是建立在大素数因式分解困难的基础上的,普遍认为是目前最优秀的公钥方案之一。RSA的安全性源于大整数分解的困难性,为了保证安全性,需要选择更长的密钥,通常是1024位以上,密钥长度增加的同时也会增大计算的难度,因此目前用硬件实现RSA是通用的做法。
SM2公钥密码算法是国家密码管理局于2010年12月17日发布的自主设计椭圆曲线公钥密码算法。包括了SM2-1椭圆曲线数字签名算法,SM2-2椭圆曲线密钥交换协议,SM2-3椭圆曲线公钥加密算法,分别用于实现数字签名密钥协商和数据加密等功能。
RSA和SM2加密算法都属于非对称加密算法,即有公钥和私钥两种密钥。公钥和私钥是一对,若用公钥对数据进行加密,则只能用对应的私钥才能解密;若用私钥对数据进行加密,则只能用对应的公钥才能解密。非对称加密体系不需要通信双方预先传递密钥或有任何约定就能完成保密通信,并且密钥管理方便,可实现防止假冒和抵赖,因此,更适合网络通信中的保密通信要求。
RSA公钥加密算法的核心为大数模幂乘运算,SM2公钥密码算法的核心为椭圆曲线点乘运算;因为无论RSA还是SM2加密算法的计算步骤都非常复杂,所以目前大多数的加密系统都只是实现其中一种加密算法,然而可以同时实现两种加密算法的系统,又很难折中考虑运算速度和加密系统的面积。也就是说,现有的能实现RSA和SM2两种加密算法的系统中,系统设计的面积比较大、成本比较高。
发明内容
本发明针对现有技术中存在的问题,提供一种基于SM2和RSA加密算法的加解密系统及工作方法,有效的减少了现有的RSA和SM2混合密码算法加密系统的面积和成本。
为了实现上述任务,本发明采用以下技术方案:
一种基于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个时钟周期后就可以得到对应的输出结果返回给主控模块。
进一步地,所述的乘法器模块是由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的结果。
进一步地,所述的加法器模块是由(n×128)bit+(n×128)bit加法器组成的;既可以计算SM2加解密过程中涉及的256bit加法操作,也可以计算RSA加解密过程中涉及的(n×128)bit+(n×128)bit加法操作。
一种基于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的解密私钥以及相应的计算参数给点乘运算模块、模运算模块、加法器模块以及乘法器模块,进行一系列点乘、模加、模减、模乘和模逆等运算后,最后得到明文信息。
本发明与现有技术相比具有以下技术特点:
1.本发明应用了一个乘法器和一个加法器模块,该乘法器模块结合加法器模块既可以实现RSA算法中的大数乘法操作,也可以实现SM2算法中的模乘运算;通过复用两种运算所共同使用的乘法器和加法器模块,使得本发明所设计的硬件系统要比单独实现两种运算所消耗的面积要更少。
2.与现有技术相比,本发明提供的加解密系统不仅能同时实现RSA和SM2两种公钥加解密算法,而且通过复用了消耗电路面积较大的乘法器和加法器,降低了系统设计的成本,同时通过混合SM2和RSA加密算法的方法进行加解密操作,使得该加解密系统具有极高的安全性。
附图说明
图1为本发明的加解密系统的结构示意图;
图2为本发明的加解密系统完成加解密运算的配置图;
图3为本发明的加解密方法的工作原理图。
具体实施方式
为了减少SM2和RSA混合密码算法的加解密系统的面积,本方案基于SM2算法和RSA算法中的乘法与加法运算的共性,提出的技术方案是:
一种基于SM2和RSA加密算法的加解密系统,其中包括:CPU接口模块、与CPU接口模块连接的主控模块,以及分别连接在主控模块上的乘法器模块、加法器模块、模运算模块、点乘运算模块、模幂运算模块、随机数发生模块、密钥产生模块这几个部分。该系统中,采用模块化控制,通过共用SM2和RSA运算所共同使用的消耗电路面积较大的乘法器、加法器模块以及部分寄存器,使本发明的电路比单独实现两种加密算法所耗费的电路面积与消耗的逻辑资源要更少;同时采用混合SM2和RSA加密算法的方法进行加解密操作,大大加强了加解密系统的安全性和保密性。
参见图1,为本方的加解密系统的结构示意图,可以同时实现SM2和RSA两种公钥加解密算法,该系统支持APB总线协议、AHB总线协议和AXI总线协议,支持产生SM2和RSA密钥,同时支持2048位长度以内的密钥。
本方案的系统中,各模块的具体功能如下:
CPU接口模块:用于通过处理器接收配置参数并且发送控制信号给主控模块,返回主控模块中的状态信号;其中CPU接口模块支持APB、AHB和AXI总线协议。
主控模块:用于接收配置参数与控制信号,根据配置参数和控制信号发送计算命令、计算参数到运算模块,将运算过程中的状态信号返回CPU接口模块;所述的运算模块指乘法器模块、加法器模块、模运算模块、点乘运算模块、模幂运算模块;其中,配置参数包括配置系统运行的算法为RSA算法或者SM2算法、工作模式以及密钥位宽,工作模式包括加密模式和解密模式;计算命令包括模幂、点乘、模加、模减、模逆、模约减、模乘等计算,计算得到的结果将返回主控模块。
模运算模块:用于接收主控模块的计算命令、计算参数,根据命令和参数进行相应的模运算,包括模加、模减、模逆、模约减、模乘运算;其中模逆运算是采用二进制欧拉求逆算法;模乘运算是采用改进的Montgomery模乘算法,通过修改硬件代码的参数可以进行128bit至2048bit数据的模乘操作。
点乘运算模块:用于接收主控模块的计算命令、计算参数,根据命令和参数进行SM2加解密过程中的点乘运算;其中,点乘运算使用的是带符号二进制(NAF)算法。
模幂运算模块:用于接收主控模块的计算命令、计算参数,根据命令和参数进行模幂运算;其中模幂运算使用的是实现速度较快R-L二进位分解方法。
乘法器模块:用于接收主控模块的计算命令、计算参数,根据命令和参数进行乘法运算。其中乘法器模块是由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的结果。
加法器模块:用于接收主控模块的计算命令、计算参数,根据命令和参数进行加法运算。其中加法器模块是由(n×128)bit+(n×128)bit加法器组成的;既可以计算SM2加解密过程中涉及的256bit加法操作,也可以计算RSA加解密过程中涉及的(n×128)bit+(n×128)bit加法操作。
随机数发生模块:用于产生随机数,并且发送到密钥产生模块。
密钥产生模块:用于接收主控模块的生成密钥命令,然后调用随机数发生模块,实现密钥对的生成。
本方案的加解密系统既能实现SM2算法,又能实现RSA算法。当进行着SM2算法的运算过程时,是完全不会涉及到RSA算法的任何运算状态;同样当执行着RSA算法的运算过程时,也是完全不会涉及到SM2算法的任何运算状态。所以本方案的加解密系统可以在SM2算法和RSA算法的运算状态中共用部分寄存器,这些寄存器在SM2算法和RSA算法的运算中都用到了,而且不会造成矛盾冲突的情况,从而使得整个加解密系统所使用的寄存器量减到最少。
具体地,在RSA算法与SM2算法共用的运算模块有加法器模块和乘法器模块:
(1)乘法器模块的共用
SM2算法的点乘运算中涉及到乘法运算,RSA算法的模幂乘运算中同样涉及到乘法运算;其中SM2算法中的乘法运算是256bit×256bit,RSA算法中的乘法运算是128bit×(128*n)bit。
该乘法器模块存在一个模式选择输入变量,当该输入变量为1时,则进行RSA算法的乘法运算;当该输入变量为0时,则进行SM2算法的乘法运算。其中该乘法器模块包括6个输入变量和2个输出变量,6个输入变量分别是时钟信号、复位信号、模式选择信号、启动信号以及两个乘法输入因数;2个输出变量分别是输出结果值和结束标志位。
当进行SM2算法中的乘法运算时,模式选择信号置为0,两个乘法输入因数都为256bit的值,经过3个时钟周期后得到512bit的输出结果返回给主控模块。当进行RSA算法中的乘法运算时,模式选择信号置为1,两个乘法输入因数都为128bit的值,经过1个时钟周期后得到256bit的输出结果返回给主控模块。
(2)加法器模块的共用
同样,SM2算法和RSA算法中都需要用到加法运算,该加法器模块既可以计算SM2算法中涉及的256bit加法操作,也可以计算RSA算法中涉及的(n×128)bit+(n×128)bit加法操作。
该模块同样存在一个模式选择输入变量,当变量为1时,进行RSA算法的加法运算,当变量为0时,则进行SM2算法的加法运算。该模块只有2个输入变量和1个输出变量,只需要输入加数与被加数,经过1个时钟周期后就可以得到对应的输出结果返回给主控模块。
对比于现有实现RSA算法和SM2算法的加解密系统,本方案的加解密系统通过共用SM2和RSA运算所共同使用的消耗电路面积较大的乘法器、加法器模块以及部分寄存器,因此本方案的系统比单独实现两种运算所耗费的电路面积与消耗的逻辑资源要更少。
在上述技术方案的基础上,本发明进一步提供一种基于SM2和RSA加密算法的加解密系统的工作方法,参考图3,工作原理为:
A.采用SM2加密算法加密明文数据,得到密文数据,并且生成相应的SM2的私钥;
B.将步骤A中得到的SM2私钥采用RSA加密算法进行加密,得到相应的密文私钥,并且生成RSA的私钥;
C.将步骤A中加密后的密文数据以及步骤B中密文私钥发送给接收方;
D.接收方通过RSA私钥把密文私钥进行解密,得到密文数据的SM2私钥;
E.接收方通过SM2私钥解密接收到的密文数据,最后得到解密后的明文数据。
参考图2,结合本发明的系统对所述的工作方法进行进一步详细说明:
步骤1,系统初始化
处理器通过总线访问CPU接口模块,发送相应的初始化复位参数,从而对乘法器模块、加法器模块、模幂运算模块、模运算模块、随机数发生模块以及密钥产生模块进行复位初始化。
步骤2,生成密钥对
主控模块发送密钥产生命令到密钥产生模块,密钥产生模块调用随机数发生模块生成随机数,通过SM2算法和RSA算法,进行素数的筛选,生成密钥,并完成SM2密钥对和RSA密钥对的生成;密钥对存储在主控模块相应的寄存器中,后面根据实际要求再将公钥发送出去。
步骤3,发送双密文
主控模块先发送SM2加密命令,主控模块发送明文信息、SM2的公钥以及相应的计算参数给点乘运算模块、模运算模块、加法器模块以及乘法器模块,进行一系列点乘、模加、模减、模乘和模逆等运算后,得到SM2加密后的密文;然后主控模块发送RSA加密命令,主控模块发送SM2的私钥、RSA的公钥以及相应的计算参数给模幂乘运算模块、乘法器模块以及加法器模块,将RSA模幂运算分解为一系列的模乘运算,得到RSA加密后的密文;
最后发送者通过CPU接口模块获取并把RSA的私钥、SM2加密后的密文和RSA加密后的密文发送给接收者。
步骤4,密文的解密
接收者接收到RSA的私钥、SM2加密后的密文和RSA加密后的密文后,主控模块先发送RSA解密命令,主控模块发送RSA的私钥、RSA加密后的密文以及相应的计算参数给模幂乘运算模块、乘法器模块以及加法器模块,将RSA模幂运算分解为一系列的模乘运算,得到SM2的解密私钥;然后主控模块发送SM2解密命令,主控模块发送密文信息、SM2的解密私钥以及相应的计算参数给点乘运算模块、模运算模块、加法器模块以及乘法器模块,进行一系列点乘、模加、模减、模乘和模逆等运算后,最后得到明文信息。

Claims (4)

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.一种基于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的解密私钥以及相应的计算参数给点乘运算模块、模运算模块、加法器模块以及乘法器模块,进行一系列点乘、模加、模减、模乘和模逆等运算后,最后得到明文信息。
CN201910192457.XA 2019-03-14 2019-03-14 一种基于sm2和rsa加密算法的加解密系统及工作方法 Expired - Fee Related CN110049013B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910192457.XA CN110049013B (zh) 2019-03-14 2019-03-14 一种基于sm2和rsa加密算法的加解密系统及工作方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910192457.XA CN110049013B (zh) 2019-03-14 2019-03-14 一种基于sm2和rsa加密算法的加解密系统及工作方法

Publications (2)

Publication Number Publication Date
CN110049013A true CN110049013A (zh) 2019-07-23
CN110049013B CN110049013B (zh) 2021-04-06

Family

ID=67274716

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910192457.XA Expired - Fee Related CN110049013B (zh) 2019-03-14 2019-03-14 一种基于sm2和rsa加密算法的加解密系统及工作方法

Country Status (1)

Country Link
CN (1) CN110049013B (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111092718A (zh) * 2019-12-25 2020-05-01 北京天融信网络安全技术有限公司 加密方法、装置及电子设备
CN112733161A (zh) * 2020-12-30 2021-04-30 深圳致星科技有限公司 用于联邦学习密文运算的装置及方法
CN114172652A (zh) * 2021-12-03 2022-03-11 南方电网科学研究院有限责任公司 一种rsa算法的加解密系统
CN117014208A (zh) * 2023-08-09 2023-11-07 海光信息技术股份有限公司 数据加密方法、装置、系统、电子设备及存储介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030009503A1 (en) * 1998-12-18 2003-01-09 Philipp Michael Glaser Multiplier cell and method of computing
CN105871552A (zh) * 2016-06-14 2016-08-17 天津大学 双核并行rsa密码处理方法及协处理器
CN107241183A (zh) * 2017-05-27 2017-10-10 东南大学 用于aes和rsa混合算法硬件电路的可配置乘法装置
CN109039640A (zh) * 2018-08-03 2018-12-18 广东工业大学 一种基于rsa密码算法的加解密硬件系统及方法
CN109150497A (zh) * 2018-07-26 2019-01-04 南京航空航天大学 一种高性能小面积的xts-sm4加密电路
US20190044718A1 (en) * 2018-05-17 2019-02-07 Intel Corporation System, Apparatus And Method For Performing A Plurality Of Cryptographic Operations

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030009503A1 (en) * 1998-12-18 2003-01-09 Philipp Michael Glaser Multiplier cell and method of computing
CN105871552A (zh) * 2016-06-14 2016-08-17 天津大学 双核并行rsa密码处理方法及协处理器
CN107241183A (zh) * 2017-05-27 2017-10-10 东南大学 用于aes和rsa混合算法硬件电路的可配置乘法装置
US20190044718A1 (en) * 2018-05-17 2019-02-07 Intel Corporation System, Apparatus And Method For Performing A Plurality Of Cryptographic Operations
CN109150497A (zh) * 2018-07-26 2019-01-04 南京航空航天大学 一种高性能小面积的xts-sm4加密电路
CN109039640A (zh) * 2018-08-03 2018-12-18 广东工业大学 一种基于rsa密码算法的加解密硬件系统及方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
LIANTAO BAI: "SM2 Cryptographic Algorithm Based On Discrete Logarithm Problem And Prospect", 《2012 2ND INTERNATIONAL CONFERENCE ON CONSUMER ELECTRONICS,COMMUNICATIONS AND NETWORKS》 *
邹雪城: "小面积高兼容性RSA_SM2的硬件实现方法", 《华中科技大学学报(自然科学版)》 *

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111092718A (zh) * 2019-12-25 2020-05-01 北京天融信网络安全技术有限公司 加密方法、装置及电子设备
CN112733161A (zh) * 2020-12-30 2021-04-30 深圳致星科技有限公司 用于联邦学习密文运算的装置及方法
CN114172652A (zh) * 2021-12-03 2022-03-11 南方电网科学研究院有限责任公司 一种rsa算法的加解密系统
CN117014208A (zh) * 2023-08-09 2023-11-07 海光信息技术股份有限公司 数据加密方法、装置、系统、电子设备及存储介质
CN117014208B (zh) * 2023-08-09 2024-04-09 海光信息技术股份有限公司 数据加密方法、装置、系统、电子设备及存储介质

Also Published As

Publication number Publication date
CN110049013B (zh) 2021-04-06

Similar Documents

Publication Publication Date Title
Zhou et al. Research and implementation of RSA algorithm for encryption and decryption
CN110049013A (zh) 一种基于sm2和rsa加密算法的加解密系统及工作方法
Xiao et al. A novel key agreement protocol based on chaotic maps
CN105099672B (zh) 混合加密方法及实现该方法的装置
US5581616A (en) Method and apparatus for digital signature authentication
EP0997016B1 (en) Method and apparatus for fast elliptical encryption with direct embedding
Gutub et al. Hybrid crypto hardware utilizing symmetric-key and public-key cryptosystems
CN109039640B (zh) 一种基于rsa密码算法的加解密硬件系统及方法
EP1330702B1 (en) Method and system of using an insecure crypto-accelerator
KR20120028432A (ko) 타원곡선암호를 위한 연산 장치 및 방법
Vigila et al. Nonce Based Elliptic Curve Cryptosystem for Text and Image Applications.
KR100508092B1 (ko) 저전력 모듈로 곱셈을 수행하는 연산장치
CN114218594A (zh) 加解密初始化配置方法、边缘端、加解密平台及安全系统
Kaleel Rahuman et al. Reconfigurable architecture for elliptic curve cryptography using fpga
Thangavel et al. Secure file storage and retrieval in cloud
Rawat et al. Computation and communication efficient Chinese remainder theorem based multi-party key generation using modified RSA
CN113645235A (zh) 分布式数据加解密系统及加解密方法
Obimbo et al. A Parallel Algorithm for determining the inverse of a matrix for use in blockcipher encryption/decryption
Zhang et al. High-Speed and High-Security Hybrid AES-ECC Cryptosystem Based on FPGA
Hayward et al. Parallelizing fully homomorphic encryption
Tadesse Abebe et al. Efficient FPGA implementation of an integrated bilateral key confirmation scheme for pair-wise key-establishment and authenticated encryption
Sarma et al. Public key cryptosystem based on Pell's equation using the Gnu Mp library
Al-Haija et al. Cost-effective fpga implementation of parallel schmidt-samoa cryptosystem (SSC)
Hadaoui et al. Cryptosystem by a community of devices with limited resources
Narmadha et al. VLSI Implementation of RSA Cryptosystems using Montgomery Multplication with Sum Based Adder

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20210406

CF01 Termination of patent right due to non-payment of annual fee