一种RSA加解密处理方法和装置制造方法及图纸

技术编号:16282385 阅读:42 留言:0更新日期:2017-09-23 01:52
本申请提供了一种RSA加解密处理方法和装置,该处理方法和装置将密文和明文计算公式中的乘幂逐步化简为模乘运算,并且对每步模乘运算均采用移位相减的取模方法对乘积进行取模运算,将对最后一步化简到的模乘运算进行取模运算得到的取模结果作为RSA密文和明文。在取模运算过程中,通过左移位的方法将n的位宽与乘积的位宽的差值缩小到预设范围内,再采用减法运算以及右移位的方法进行取模运算,该取模运算过程运算量较小,耗时较短,如此提高了RSA加解密过程的处理速率,缩短了运算时间,从而使得RSA算法能够在规定的时间内利用有限的硬件资源处理完成。

RSA encryption and decryption processing method and device

This application provides a RSA encryption and decryption processing method and device, the method and device for processing the ciphertext and plaintext in the formula to calculate the power gradually reduced to modular multiplication and modular multiplication are used for each shift subtraction modulo method of multiplication modulo operation, will be the last step in the modular multiplication modulo operation obtained modulo results as RSA ciphertext and plaintext. In the modulo operation process, will narrow the width and width difference of product n to the preset range through the left shift, then by subtraction method and right shift the modulo operation, the modulo operation process of computation time is short, so improve the processing speed of RSA encryption and decryption process, to shorten the operation time, so that the RSA algorithm can be completed within the stipulated time use of limited hardware resources.

【技术实现步骤摘要】
一种RSA加解密处理方法和装置
本申请涉及数据加密领域,尤其涉及一种RSA加解密处理方法和装置。
技术介绍
RSA算法是1977年由罗纳德·李维斯特(RonRivest)、阿迪·萨莫尔(AdiShamir)和伦纳德·阿德曼(LeonardAdleman)一起提出的。1987年首次公布,当时他们三人都在麻省理工学院工作。RSA就是他们三人姓氏开头字母拼在一起组成的。RSA算法是目前最有影响力的公钥加密算法,它能够抵抗到目前为止已知的绝大多数密码攻击,已被ISO推荐为公钥数据加密标准。RSA算法基于一个十分简单的数论事实:将两个大质数相乘十分容易,但是想要对其乘积进行因式分解却极其困难,因此可以将乘积公开作为加密密钥。处理RSA算法的传统方式是通过软件来处理。但是通过软件处理RSA算法,在加解密过程中,运算量非常大,需要加大芯片级系统SOC(systemonchip)的RAM空间才能通过软件处理RSA算法。而且通过软件处理RSA算法,其运算速率较慢,在系统时钟较慢的SOC上,通过软件处理RSA算法一般无法在规定的时间内完成运算。替代地,采用硬件电路处理RSA算法可以大大提升RSA算法的运本文档来自技高网...
一种RSA加解密处理方法和装置

【技术保护点】
一种RSA加密处理方法,其特征在于,包括:获取RSA公钥以及明文m,所述RSA公钥为e和n;判断e是否大于0;当e大于0时,判断e是否为偶数;当e为偶数时,更新e值以及通过模乘运算更新明文m,其中,e=e/2,m=m*m mod n;返回执行所述判断e是否大于0的步骤;当e为奇数时,更新e值以及通过模乘运算更新第一中间变量D,其中,e=e‑1,D=D*m mod n,返回执行所述判断e是否大于0的步骤;设定D的初始值等于1;当e=0时,输出第一中间变量D值,输出的D值为RSA密文;其中,所述模乘运算包括:乘运算和对所述乘运算的乘积采用移位相减的方式进行取模运算。

【技术特征摘要】
1.一种RSA加密处理方法,其特征在于,包括:获取RSA公钥以及明文m,所述RSA公钥为e和n;判断e是否大于0;当e大于0时,判断e是否为偶数;当e为偶数时,更新e值以及通过模乘运算更新明文m,其中,e=e/2,m=m*mmodn;返回执行所述判断e是否大于0的步骤;当e为奇数时,更新e值以及通过模乘运算更新第一中间变量D,其中,e=e-1,D=D*mmodn,返回执行所述判断e是否大于0的步骤;设定D的初始值等于1;当e=0时,输出第一中间变量D值,输出的D值为RSA密文;其中,所述模乘运算包括:乘运算和对所述乘运算的乘积采用移位相减的方式进行取模运算。2.根据权利要求1所述的方法,其特征在于,设定所述乘运算的乘积为X,所述对所述乘运算的乘积采用移位相减的方式进行取模运算,具体包括:将n向左移位,判断左移位后的n的位宽与X位宽的差值是否在预设范围内,直到左移位后的n的位宽与X的位宽的差值在预设范围内;比较X和n的大小关系,当X大于n时,通过X=X-n的减法运算更新X,并将n逐位向右移位,直到右移后的n的值恢复到左移之前的n的初始值,将最后一次更新后的X值确定为取模结果。3.根据权利要求2所述的方法,其特征在于,所述将n向左移位,判断左移位后的n的位宽与X位宽的差值是否在预设范围内,直到左移位后的n的位宽与X的位宽的差值在预设范围内,具体包括:设定一第二中间变量A,并且设定A的初始值等于n,即A=n;判断X是否大于或等于2A;当X≥2A时,将A左移一位,即A=2A,返回执行所述判断X是否大于或等于2A的步骤,直至X<2A。4.根据权利要求3所述的方法,其特征在于,所述比较X和n的大小关系,当X大于n时,通过X=X-n的减法运算更新X,并将n按位向右移位,直到n的值恢复到左移之前的n的初始值,将最后更新后的X值确定为取模结果,具体包括:当X<2A时,判断X是否大于或等于A;当X≥A时,更新X和A的值,其中,X=X-A,A=A/2;判断A是否等于n;当A=n时,输出X值,X值作为取模结果,结束取模运算;当A不等于n时,返回执行判断X是否大于或等于A的步骤;当X<A时,更新A的值,其中,设定A=A/2,返回执行判断A是否等于n。5.一种RSA加密处理装置,其特征在于,包括:输入单元,用于输入RSA公钥以及明文m,所述RSA公钥为e和n;第一判断单元,用于判断e是否大于0;第二判断单元,用于当e大于0时,判断e是否为偶数;第一更新单元,用于当e为偶数时,更新e值,并触发所述第一判断单元,其中,e=e/2;第一模乘运算单元,用于当e为偶数时,通过模乘运算更新明文m,m=m*mmodn;第二更新单元,用于当e为奇数时,更新e值,并触发所述第一判断单元,其中,e=e-1;第二模乘运算单元,用于当e为奇数时,更新第一中间变量D,并触发所述第一判断单元,其中,D=D*mmodn,D的初始值等于1;输出单元,用于当e=0时,输出第一中间变量D值,输出的D值为RSA密文;其中,所述第一模乘运算单元和/或所述第二模乘运算单元均分别包括:乘运算子单元和对所述乘运算的乘积采用移位相减的方式进行取模运算的取模运算子单元。6.根据权利要求5所述的装置,其特征在于,所述取模运算子单元包括:左移位子单元,用于将n向左移位;判断子单元,用于判断左移位后的n的位宽与X位宽的差值是否在预设范围内,若判断结果为否,触发所述左移位子单...

【专利技术属性】
技术研发人员:高赛苏进夏洪锋
申请(专利权)人:龙迅半导体合肥股份有限公司
类型:发明
国别省市:安徽,34

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1