本发明专利技术提供了一种RSA模幂运算方法和装置,其中,所述方法包括:获取信息m、模数N、随机数r、公钥e和私钥d;计算第一值m0,所述第一值m0为re-1和信息m的乘积对N取模后的值;计算第二值m1,所述第二值m1为所述第一值m0和所述随机数r的乘积对N取模后的值;计算第三值S1,所述第三值S1为(m1)d-1对N取模后的值;获取信息m对应的RSA加密结果S,所述结果S为第三值S1和所述第一值m0的乘积对N取模的结果。所述方法和装置能用较小的开销来实现对RSA的底数随机化,从而避免功耗分析攻击。
【技术实现步骤摘要】
一种RSA模幂运算方法和装置
本专利技术涉及数据安全的
,特别涉及一种RSA模幂运算方法和装置。
技术介绍
在现有的RSA公钥加密算法模幂运算中,对底数m加入了随机化掩码,使实际参与模幂运算的底数由已知变成未知,由固定变成可变,从而避免功耗分析攻击。例如,在解密或签名运算执行前,选择一个随机的数字对(Vi,Vd),使其满足Vd=(Vi-1)dmodN,将作为明文的底数m进行随机化掩盖后的伪底数为:m’=mVimodN,那么在模幂运算结束后,对m’作为底数所得到的相应模幂运算结果,即对伪结果S’进行S=S’VdmodN的处理,以恢复出真实的结果S。通常情况下,为了避免模幂运算,数字对会选为:(re,r-1),但是由于S’VdmodN=(rem)dr-1modN,因此,在进行S=S’VdmodN运算的处理过程中,涉及到r^(-1)modN的运算。然而由于计算r^(-1)modN时间开销大,会影响RSA加密处理的效率。因此,需要提出一种新的RSA模幂运算方法和装置,以提高RSA加密处理的效率。
技术实现思路
本专利技术解决的问题是提出一种新的RSA模幂运算方法和装置,能用较小的开销来实现对RSA的底数随机化,从而避免功耗分析攻击。本专利技术的实施例提供了一种RSA模幂运算方法,所述方法包括:获取信息m、模数N、随机数r、公钥e和私钥d;计算第一值m0,所述第一值m0为re-1和信息m的乘积对N取模后的值;计算第二值m1,所述第二值m1为所述第一值m0和所述随机数r的乘积对N取模后的值;计算第三值S1,所述第三值S1为(m1)d-1对N取模后的值;获取信息m对应的RSA加密结果S,所述结果S为第三值S1和所述第一值m0的乘积对N取模的结果。本专利技术的实施例还提供了一种RSA模幂运算装置,所述装置包括:获取单元,用于获取信息m、模数N、随机数r、公钥e和私钥d;第一运算单元,用于计算第一值m0,所述第一值m0为re-1和信息m的乘积对N取模后的值;第二运算单元,用于计算第二值m1,所述第二值m1为所述第一值m0和所述随机数r的乘积对N取模后的值;第三运算单元,用于计算第三值S1,所述第三值S1为(m1)d-1对N取模后的值;第四运算单元,用于获取信息m对应的RSA加密结果S,所述结果S为第三值S1和所述第一值m0的乘积对N取模的结果。与现有技术相比,本专利技术的实施例具有以下优点:在上述技术方案中,不仅满足了RSA模幂运算的底数随机化的需求,避免对RSA进行功耗分析攻击,而且也不涉及r-1modN的运算,也就是说避免了模逆运算,这将节省RSA加密处理的时间,因此可以提高RSA加密处理的效率。附图说明图1是本专利技术实施例中RSA模幂运算方法的流程图;图2是本专利技术实施例中RSA模幂运算装置的结构示意图。具体实施方式为详细说明本专利技术的
技术实现思路
、构造特征、所实现目的及效果,下面结合附图对本专利技术的具体实施方式做详细的说明。在下面的描述中阐述了很多具体细节以便于充分理解本专利技术,但是本专利技术还可以采用其他不同于在此描述的其它方式来实施,因此本专利技术不受下面公开的具体实施例的限制。图1是本专利技术实施例中RSA模幂运算方法的流程图。如图1所示,所述方法包括步骤S101至S105。步骤S101,获取信息m、模数N、随机数r、公钥e和私钥d。在本专利技术的实施例中,所述随机数r是随机的、可变的,也就是说,在每次RSA模幂运算过程中,所述随机数r可以发生变化。加入所述随机数r的目的是为了使得后续进行RSA模幂运算的底数是一个随机化的结果,这消除了算法执行过程中的信息m和泄露信息(随机化后的底数相关的信息)之间的对应关系,从而使得攻击者很难直接获取信息m。步骤S102,计算第一值m0,所述第一值m0为re-1和信息m的乘积对N取模后的值。在本专利技术的实施例中,通过所述步骤S102,所述第一值为m0=(re-1.m)modN。步骤S103,计算第二值m1,所述第二值m1为所述第一值m0和所述随机数r的乘积对N取模后的值。在本专利技术的实施例中,通过所述步骤S103,所述第二值m1为所述第一值m0和所述随机数r的乘积对N取模后的值,那么所述第二值为m1=(m0.r)modN。步骤S104,计算第三值S1,所述第三值S1为m1d-1对N取模后的值;在本专利技术的实施例中,通过所述步骤S104,获得的第三值S1为:S1=m1d-1modN。步骤S105,获取信息m对应的RSA加密结果S,所述结果S为第三值S1和所述第一值m0的乘积对N取模的结果。在本专利技术的实施例中,通过所述步骤S105,获取信息m对应的RSA加密结果S为:S=(S1.m0)modN。需要说明的是,一方面,在计算第一值m0、第二值m1和第三值S1的时候都不涉及r-1modN的运算。r-1modN的运算主要有两种方法:一种为通过扩展的欧几里得算法,然而这需要额外的硬件电路;另一种是利用费马小定理来计算,但是时间开销较大。从以上运算过程可以看出,在本专利技术的实施例中,不涉及r-1modN的运算,因此可以为RSA加密运算带来较大的便捷,从而提高了加密效率。另一方面,根据RSA加密算法的固有性质:redmodN=r,那么可以进行如下推导:S=mdmodN=redmdr-1modN=(rem)dr-1modN进一步进行如下推导:S=(rem)dr-1modN=((rem)d-1re-1m)modN令(re-1m)modN等于m0,(m0.r)modN等于m1,m1d-1modN等于S1,可以获得:S=(rem)dr-1modN=((rem)d-1re-1m)modN=(m1)d-1m0modN根据上述推到可知,所述底数随机化后的RSA模幂运算结果和随机化前的RSA模幂运算结果仍然保持一致。本专利技术的实施例还提供了一种RSA模幂运算装置,请参考图2,所述RSA模幂运算装置200包括:获取单元210,用于获取信息m、模数N、随机数r、公钥e和私钥d;第一运算单元220,用于计算第一值m0,所述第一值m0为re-1和信息m的乘积对N取模后的值;第二运算单元230,用于计算第二值m1,所述第二值m1为所述第一值和所述随机数r的乘积对N取模后的值;第三运算单元240,用于计算第三值S1,所述第三值S1为m1d-1对N取模后的值;第四运算单元250,用于获取信息m对应的RSA加密结果S,所述结果S为第三值S1和所述第一值m0的乘积对N取模的结果。在本专利技术的实施例中,所述第一运算单元220包括模幂运算器和模乘运算器,所述第二运算单元230可以为模乘运算器,所述第三运算单元240可以为模幂运算器,所述第四运算单元250可以为模乘运算器。本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:ROM、RAM、磁盘或光盘等。虽然本专利技术披露如上,但本专利技术并非限定于此。任何本领域技术人员,在不脱离本专利技术的精神和范围内,均可作各种更动与修改,因此本专利技术的保护范围应当以权利要求所限定的范围为准。本文档来自技高网...
【技术保护点】
一种RSA模幂运算方法,其特征在于,包括:获取信息m、模数N、随机数r、公钥e和私钥d;计算第一值m0,所述第一值m0为re‑1和信息m的乘积对N取模后的值;计算第二值m1,所述第二值m1为所述第一值m0和所述随机数r的乘积对N取模后的值;计算第三值S1,所述第三值S1为(m1)d‑1对N取模后的值;获取信息m对应的RSA加密结果S,所述结果S为第三值S1和所述第一值m0的乘积对N取模的结果。
【技术特征摘要】
1.一种RSA模幂运算方法,其特征在于,包括:获取信息m、模数N、公钥e和私钥d,数字对选为:(re,r-1),其中,r为随机数;计算第一值m0,所述第一值m0为re-1和信息m的乘积对N取模后的值;计算第二值m1,所述第二值m1为所述第一值m0和所述随机数r的乘积对N取模后的值;计算第三值S1,所述第三值S1为(m1)d-1对N取模后的值;获取信息m对应的RSA加密结果S,所述结果S为第三值S1和所述第一值m0的乘积对N取模的结果。2.一种RSA模幂运算装置,其特征在于,包...
【专利技术属性】
技术研发人员:王立辉,张志敏,郑业扬,闫守礼,魏长征,郭丽敏,
申请(专利权)人:上海复旦微电子集团股份有限公司,
类型:发明
国别省市:上海;31
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。