【技术实现步骤摘要】
一种基于SM2和RSA加密算法的加解密系统及工作方法
本专利技术涉及密码芯片
,特别涉及一种基于SM2和RSA加密算法的加解密系统及工作方法。
技术介绍
随着计算机和互联网的迅速发展,人们传递信息的方式和方法得到了很大的改变。大量的敏感信息常常通过公共通信设施或互联网进行交换,密码技术是确保信息安全的主导力量,密码算法的研究与应用是信息安全技术的核心研究领域。RSA公钥加密算法是1977年由RonRivest、AdiShamirh和LenAdleman在美国麻省理工学院开发的。RSA算法是第一个能同时用于加密和数字签名的算法,也易于理解和操作。RSA是被研究得最广泛的公钥算法,同时也是建立在大素数因式分解困难的基础上的,普遍认为是目前最优秀的公钥方案之一。RSA的安全性源于大整数分解的困难性,为了保证安全性,需要选择更长的密钥,通常是1024位以上,密钥长度增加的同时也会增大计算的难度,因此目前用硬件实现RSA是通用的做法。SM2公钥密码算法是国家密码管理局于2010年12月17日发布的自主设计椭圆曲线公钥密码算法。包括了SM2-1椭圆曲线数字签名算法,SM ...
【技术保护点】
1.一种基于SM2和RSA加密算法的加解密系统,其特征在于,包括:CPU接口模块、与CPU接口模块连接的主控模块,以及分别连接在主控模块上的乘法器模块、加法器模块、模运算模块、点乘运算模块、模幂运算模块、随机数发生模块、密钥产生模块,其中:CPU接口模块用于通过处理器接收配置参数并且发送控制信号给主控模块,返回主控模块中的状态信号;其中CPU接口模块支持APB、AHB和AXI总线协议;主控模块用于接收配置参数与控制信号,根据配置参数和控制信号发送计算命令、计算参数到乘法器模块、加法器模块、模运算模块、点乘运算模块或模幂运算模块,并将运算过程中的状态信号返回CPU接口模块;其 ...
【技术特征摘要】
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所述...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。