一种rsa模幂运算方法和装置的制造方法
【技术领域】
[0001]本发明涉及数据安全的技术领域,特别涉及一种RSA模幂运算方法和装置。
【背景技术】
[0002]在现有技术中,攻击者一般可以通过采集密码系统、加密芯片等硬件设备在进行加密、解密或签名操作时产生的功耗等泄露信息,利用密码学、概率、统计学原理、分析和破译密钥信息。例如,在RSA公钥加密算法的模幂运算方法中,当密钥d直接作为模幂运算的指数进行运算时,攻击者便可能通过上述分析直接获取所述密钥d,并通过所述密钥d破译被加密的数据。
[0003]因此,需要提出一种新的RSA模幂运算方法和装置,以提高数据的安全性。
【发明内容】
[0004]本发明解决的问题是提出一种新的RSA模幂运算方法和装置,以提高数据的安全性。
[0005]本发明的实施例提供了一种RSA模幂运算方法,所述方法包括:获取随机数r、公钥e和私钥d ;计算第一值,所述第一值为公钥e和私钥d的乘积减去I后的值;计算第二值,所述第二值为所述随机数r和所述第一值的乘积;计算第三值,所述第三值为所述第二值和私钥d的和;将所述第三值作为RSA模幂运算的指数进行所述RSA模幂运算。
[0006]本发明的实施例还提供了一种RSA模幂运算装置,所述装置包括:获取单元,用于获取随机数r、公钥e和私钥d ;第一运算单元,用于计算第一值,所述第一值为公钥e和私钥d的乘积减去I后的值;第二运算单元,用于计算第二值,所述第二值为所述随机数r和所述第一值的乘积;第三运算单元,用于计算第三值,所述第三值为所述第二值和私钥d的和;模幂运算单元,用于将所述第三值作为RSA模幂运算的指数进行所述RSA模幂运算。
[0007]与现有技术相比,本发明的实施例具有以下优点:
[0008]在上述技术方案中,私钥d并没有直接作为RSA模幂运算的指数,而是通过加入了随机数r,将所述私钥d进行隐藏,从而消除了算法执行过程中的中间值和泄露信息之间的对应关系,也就是说攻击者很难直接获取私钥d,因此也就不容易对加密数据进行破解,故可以提高数据的安全性。
【附图说明】
[0009]图1是本发明实施例中RSA模幂运算方法的流程图;
[0010]图2是本发明实施例中RSA模幂运算装置的结构示意图。
【具体实施方式】
[0011]为详细说明本发明的技术内容、构造特征、所实现目的及效果,下面结合附图对本发明的【具体实施方式】做详细的说明。在下面的描述中阐述了很多具体细节以便于充分理解本发明,但是本发明还可以采用其他不同于在此描述的其它方式来实施,因此本发明不受下面公开的具体实施例的限制。
[0012]图1是本发明实施例中RSA模幂运算方法的流程图。如图1所示,所述方法包括步骤SlOl至S105。
[0013]步骤SlOl,获取随机数r、公钥e和私钥d。
[0014]在本发明的实施例中,所述随机数r是可变随机数,也就是说,在每次RSA模幂运算过程中,所述随机数r可以发生变化。加入所述随机数r的目的是为了使后续进行RSA模幂运算的指数是一个随机化的结果,这消除了算法执行过程中的中间值(私钥d)和泄露信息(随机化后的指数相关的信息)之间的对应关系,从而使得攻击者很难直接获取私钥山因此也就不容易对加密数据进行破解。
[0015]下面将通过步骤S102至S104来获取随机化后的RSA模幂运算的指数。
[0016]步骤S102,计算第一值,所述第一值为公钥e和私钥d的乘积减去I后的值。
[0017]通过步骤S102,获得的第一值为ed-1。
[0018]步骤S103,计算第二值,所述第二值为所述随机数r和所述第一值的乘积。
[0019]通过步骤S103,所述第二值为所述随机数r和所述第一值ed-Ι的乘积,S卩:所述第二值为r (ed-Ι)。
[0020]步骤S104,计算第三值,所述第三值为所述第二值和私钥d的和。
[0021]通过步骤S104,所述第三值为所述第二值r (ed-Ι)和私钥d的和,即:所述第三值为 d+r (ed-1)。
[0022]步骤S105,将所述第三值作为RSA模幂运算的指数进行所述RSA模幂运算。
[0023]在本发明的实施例中,通过步骤S104,将第三值d+r (ed_l)作为RSA模幂运算的指数。那么,以所述第三值为指数的RSA模幂运算得到的值为:S = md+r (ed-°mod N。
[0024]如前所述,一方面,以所述第三值为指数,所述指数中带有随机数r,这消除了算法执行过程中的中间值(私钥d)和泄露信息(随机化后的指数相关的信息)之间的对应关系,从而使得攻击者很难直接获取私钥d。
[0025]另一方面,根据RSA加解密算法的固有性质:med)mod N = m,可以进行如下推导:,
[0026]S = md+r (ed_nmod N = (mdmredm_r) mod N = (mdmrm_1) mod N = mdmod N,
[0027]由上述推到可知,所述指数随机化后的RSA模幂运算结果和随机化前的RSA模幂运算结果仍然保持一致。
[0028]本发明的实施例还提供了一种RSA模幂运算装置。请参考图2,所述种RSA模幂运算装置200包括:
[0029]获取单元210,用于获取随机数r、公钥e和私钥d ;
[0030]第一运算单元220,用于计算第一值,所述第一值为公钥e和私钥d的乘积减去I后的值;
[0031]第二运算单元230,用于计算第二值,所述第二值为所述随机数r和所述第一值的乘积;
[0032]第三运算单元240,用于计算第三值,所述第三值为所述第二值和私钥d的和;
[0033]模幂运算单元250,用于将所述第三值作为RSA模幂运算的指数进行所述RSA模幂运算。
[0034]在本发明的实施例中,所述第一运算单元220可以包括乘法器和减法器,所述第二运算单元230可以为乘法器,所述第三运算单元240可以为加法器,所述模幂运算单元250可以为模幂运算器。
[0035]本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:ROM、RAM、磁盘或光盘等。
[0036]虽然本发明披露如上,但本发明并非限定于此。任何本领域技术人员,在不脱离本发明的精神和范围内,均可作各种更动与修改,因此本发明的保护范围应当以权利要求所限定的范围为准。
【主权项】
1.一种RSA模幂运算方法,其特征在于,包括:获取随机数r、公钥e和私钥d ;计算第一值,所述第一值为公钥e和私钥d的乘积减去I后的值;计算第二值,所述第二值为所述随机数r和所述第一值的乘积;计算第三值,所述第三值为所述第二值和私钥d的和;将所述第三值作为RSA模幂运算的指数进行所述RSA模幂运算。
2.—种RSA模幂运算装置,其特征在于,包括:获取单元,用于获取随机数r、公钥e和私钥d ;第一运算单元,用于计算第一值,所述第一值为公钥e和私钥d的乘积减去I后的值;第二运算单元,用于计算第二值,所述第二值为所述随机数r和所述第一值的乘积;第三运算单元,用于计算第三值,所述第三值为所述第二值和私钥d的和;模幂运算单元,用于将所述第三值作为RSA模幂运算的指数进行所述RSA模幂运算。
【专利摘要】本发明提供了一种RSA模幂运算方法和装置,其中,所述方法包括:获取随机数r、公钥e和私钥d;计算第一值,所述第一值为公钥e和私钥d的乘积减去1后的值;计算第二值,所述第二值为所述随机数r和所述第一值的乘积;计算第三值,所述第三值为所述第二值和私钥d的和;将所述第三值作为RSA模幂运算的指数进行所述RSA模幂运算。所述方法和装置能够提高数据的安全性。
【IPC分类】H04L9-30
【公开号】CN104660400
【申请号】CN201310608764
【发明人】王立辉, 张志敏, 郑业扬, 闫守礼, 单伟君, 刘丹
【申请人】上海复旦微电子集团股份有限公司
【公开日】2015年5月27日
【申请日】2013年11月25日