CRT模式下公钥验证的方法及装置与流程

文档序号:11929700阅读:588来源:国知局
CRT模式下公钥验证的方法及装置与流程

本发明涉及数据安全技术领域,具体涉及一种CRT模式下公钥验证的方法及装置。



背景技术:

目前,攻击者能够通过采集密码系统、加密芯片等硬件设备在进行加密、解密或签名操作时所泄露的功耗等信息,利用密码学、概率、统计学原理,分析和破译密钥信息。

例如,在利用RSA公钥加密算法进行加密、解密或签名操作的硬件设备中,攻击者可以通过采集公钥验证过程中产生的功耗信息并进行分析,来破解该硬件设备的私钥。



技术实现要素:

本发明解决的技术问题是如何提高应用公钥加密算法的设备的安全性。

为解决上述技术问题,本发明实施例提供一种CRT模式下公钥验证的方法,所述方法包括:

获取第一私钥s1、第二私钥s2、待验证的公钥e、随机数m和r,其中,1<m<s1,s2=d mod(s1-1),d为普通模幂模式下的私钥;

根据所述随机数r、第二私钥s2及待验证的公钥e获得第一指数α,所述第一指数α为包含所述随机数r、第二私钥s2及待验证的公钥e的数学式;

对mα进行运算获得第一值y;

根据所述第一值y判断所述待验证的公钥e是否为正确的公钥

可选地,所述根据所述随机数r、第二私钥s2及待验证的公钥e生成第一指数α,包括:

计算(s1-1)*r的值,获得第二值β;

计算s2+β的值,获得第三值γ;

计算γ*e的值,获得第一指数α。

可选地,所述第一指数α=r*e*s2。

可选地,所述第一指数α=e*s2-r。

可选地,所述对mα进行运算获得第一值y包括:

计算mα mod s1的值,获得第四值y1;

计算mr mod s1的值,获得第五值y2;

计算y1*y2mod s1的值,获得所述第一值y。

本发明实施例还提供了一种CRT模式下公钥验证的装置。所述装置包括:

获取单元,适于获取第一私钥s1、第二私钥s2、待验证的公钥e、随机数m和r,其中,1<m<s1,s2=d mod(s1-1),d为普通模式下的私钥;

第一计算单元,适于根据所述随机数r、第二私钥s2及待验证的公钥e获得第一指数α,所述第一指数α为包含所述随机数r、第二私钥s2及待验证的公钥e的数学式;

第二计算单元,适于对mα进行运算获得第一值y;

判断单元,适于根据所述第一值y判断所述待验证的公钥e是否为正确的公钥。

可选地,所述第一计算单元包括:

第一计算子单元,适于计算(s1-1)*r的值,获得第二值β;

第二计算子单元,适于计算s2+β的值,获得第三值γ;

第三计算子单元,适于计算γ*e的值,获得第一指数α。

可选地,所述第一计算单元包括:第四计算子单元,适于计算r*e*s2的值,获得所述第一指数α。

可选地,所述第一计算单元包括:第五计算子单元,适于将e*s2-r的值作为所述第一指数α。

可选地,所述第二计算单元包括:

第一运算子单元,适于计算mα mod s1的值,获得第四值y1;

第二运算子单元,适于计算mr mod s1的值,获得第五值y2;

第三运算子单元,适于计算y1*y2mod s1的值,获得所述第一值y。

与现有技术相比,本发明实施例的技术方案具有以下有益效果:

通过根据随机数r、第二私钥s2及待验证的公钥e来获得第一指数α,进而可以使得在验证所述待验证的公钥e是否为正确公钥的过程中,模幂运算的指数为随机值。换言之,每次公钥验证的过程中模幂运算的指数都是变化的,因此可以消除公钥验证过程中产生的中间值与各种泄露信息之间的对应关系,防止攻击者通过获取所述对应关系来破解第一私钥s1或第二私钥s2,提高应用公钥加密算法的设备的安全性。

附图说明

图1是本发明实施例中一种公钥验证的方法流程图;

图2是本发明实施例中一种公钥验证的装置结构示意图;

图3是本发明实施例中一种第一计算单元的结构示意图;

图4是本发明实施例中一种第二计算单元的结构示意图。

具体实施方式

目前,RSA等加密算法在实现时,往往需要用到公钥e。在有些情况下,公钥e并不是已知的,通常需要通过私钥dp或dq来进行验证。由于在公钥验证的过程中,模幂运算的指数e*dp或e*dq通常为固定值,导致公钥验证过程中产生的中间值与所泄露的功耗信息之间存在一定的对应关系,因此攻击者可以通过获取多次公钥验证过程中产生的中间值与所泄露的功耗信息之间的对应关系,破解私钥dp或dq。

针对上述问题,本发明实施例提供了一种公钥验证的方法,在所述方法中,模幂运算的指数α为包含所述随机数r、第二私钥s2、待验证的公钥e的数学式,由此可以使得每次模幂运算的指数α都是变化的,也就可以消除公钥验证过程中产生的中间值与各种泄露信息之间的对应关系,防止攻击者通过获取所述对应关系来破解所述第二私钥s2,提高应用公钥加密算法的设备 的安全性。

为使本发明的上述目的、特征和有益效果能够更为明显易懂,下面结合附图对本发明的具体实施例做详细地说明。

如图1所示,本发明实施例提供了一种CRT模式下公钥验证的方法,所述方法可以包括如下步骤:

步骤11,获取第一私钥s1、第二私钥s2、待验证的公钥e、随机数m和r,其中,1<m<s1,s2=d mod(s1-1),d为普通模式下的私钥。

步骤12,根据所述随机数r、第二私钥s2及待验证的公钥e获得第一指数α,所述第一指数α为包含所述随机数r、第二私钥s2及待验证的公钥e的数学式。

步骤13,对mα进行运算获得第一值y。

步骤14,根据所述第一值y判断所述待验证的公钥e是否为正确的公钥。

在具体实施中,RSA算法通常包括两种模式,一种为普通模式,另一种为CRT模式,每种模式对应不同的运算过程。在普通模式下,d为私钥,N为模数,通过判断me*d mod N是否等于m,来验证所述待验证的公钥e是否为正确的公钥。在CRT模式下,可以包括多个私钥,所述多个私钥与普通模式的各参数之间存在一定关联。具体地,CRT模式下的私钥包括:私钥p,私钥dp,私钥q以及私钥dp等,其中,p*q=N,dp=d mod(p-1),dp=d mod(q-1)。

当在CRT模式中应用本发明实施例中的公钥验证方法时,所述第一私钥s1可以为p,也可以为q。当所述第一私钥s1为p时,对应地,所述第二私钥s2为dp。当所述第一私钥s1为q时,对应地,所述第二私钥s2为dq。可以理解的是,无论所述第一私钥s1及第二私钥s2具体为何值,只要满足s2=d mod(s1-1)即可。

在具体实施中,m为(1,s1)区间内的随机数。所述待验证的公钥e为预先设定值,通过步骤11-14来验证待验证的公钥e是否为正确的公钥。

在本发明的一实施例中,所述第一指数α=r*e*s2。相应地,第一值y=mα mod s1,即y=mr*e*s2mod s1。此时,可以通过验证y是否等于mr mod s1,来 验证所述待验证的公钥e是否为正确的公钥。

在本发明的另一实施例中,可以先计算(s1-1)*r的值,获得第二值β,再计算s2+β的值,获得第三值γ,最后将γ*e的值作为所述第一指数α,即所述第一指数α=s2+(s1-1)*r。相应地,第一值y=ms2+(s1-1)*r mod s1。此时可以通过验证y是否等于m,来验证所述待验证的公钥e是否为正确的公钥。

在本发明的又一实施例中,所述第一指数α=e*s2-r。相应地,根据所述第一指数α获得第一值y时,可以先计算mα mod s1的值,获得第四值y1,再计算mr mod s1的值,获得第五值y2,最后计算y1*y2mod s1的值获得所述第一值y。也就是说,y1=me*s2-r mod s1,y2=mr mod s1,所述第一值y=y1*y2mod s1=me*s2 mod s1。此时可以通过验证y是否等于m,来验证所述待验证的公钥e是否为正确的公钥。

需要说明的是,在具体实施中,所述第一指数α可以存在其他数学式形式,只要所述数学式中包含所述随机数r、第二私钥s2及待验证的公钥e,且可以通过对mα进行运算获得的第一值y=me*s2 mod s1即可。由于所述第一值y中带有随机数r,因此,在将所述第一值y作为随机数m的指数参与运算时,可以使得随机数m的指数随机化,也就可以使得每次模幂运算时的指数不同,从而可以达到防止攻击的目的。

需要说明的是,本发明实施例中所述公钥验证的方法,既可以适用于签名算法中,也可以适用于解密算法中。具体无论将所述公钥验证的方法应用与何种算法,均不构成对本发明保护范围的限制,且均在本发明的保护范围之内。

为了使本领域技术人员更好地理解和实现本发明,以下对上述公钥验证的方法对应的装置进行详细描述。

如图2所示,本发明实施例提供了CRT模式下公钥验证的装置,所述装置可以包括:获取单元21、第一计算单元22、第二计算单元23以及判断单元24。其中:

所述获取单元21适于获取第一私钥s1、第二私钥s2、待验证的公钥e、 随机数m和r,其中,1<m<s1,s2=d mod(s1-1),d为普通模式下的私钥。所述第一计算单元22适于根据所述随机数r、第二私钥s2及待验证的公钥e获得第一指数α,所述第一指数α为包含所述随机数r、第二私钥s2及待验证的公钥e的数学式。所述第二计算单元23适于对mα进行运算获得第一值y。所述判断单元24适于根据所述第一值y判断所述待验证的公钥e是否为正确的公钥。

在本发明的一实施例中,如图3所示,所述第一计算单元22可以包括:第一计算子单元31,第二计算子单元32以及第三计算子单元33。其中,所述第一计算子单元31适于计算(s1-1)*r的值,获得第二值β。所述第二计算子单元32适于计算s2+β的值,获得第三值γ。所述第三计算子单元33适于计算γ*e的值,获得第一指数α

在本发明的另一实施例中,所述第一计算单元22可以包括第四计算子单元(未示出)。所述第四计算子单元适于计算r*e*s2的值,获得所述第一指数α。

当α=r*e*s2或α=γ*e时,所述第二计算单元32将mα mod s1的值作为所述第一值y。

在本发明的又一实施例中,所述第一计算单元22可以包括第五计算子单元(未示出)。所述第五计算子单元适于将r*d*p-r的值作为所述第一指数α。

此时,如图4所示,所述第二计算单元23包括:第一运算子单元41,第二运算子单元42以及第三运算子单元43。其中,所述第一运算子单元41适于计算mα mod s1的值,获得第四值y1。所述第二运算子单元42,适于计算mr mod s1的值,获得第五值y2。所述第三运算子单元43,适于计算y1*y2的值获得所述第一值y。

本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:ROM、RAM、磁盘或光盘等。

虽然本发明披露如上,但本发明并非限定于此。任何本领域技术人员,在不脱离本发明的精神和范围内,均可作各种更动与修改,因此本发明的保 护范围应当以权利要求所限定的范围为准。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1