使用rsa公开密钥加密算法的电子部件中的防攻击方法和装置的制作方法

文档序号:6402023阅读:254来源:国知局
专利名称:使用rsa公开密钥加密算法的电子部件中的防攻击方法和装置的制作方法
技术领域
本发明涉及防攻击领域,尤其涉及一种使用RSA公开密钥加密算法的电子部件中的防攻击方法和装置。
背景技术
密码体制分为私钥密码体制和公钥密码体制,分别以1977年美国国家标准局与IBM公司研制的对称加密算法DES和1978年由R.Rivest,A.Shair和L.Adleman提出的公钥加密算法RSA为代表。私钥密码体制既不利于密钥管理也不利于数字签名,但速度高。公钥密码体制可用于密钥管理和数字签名,但速度较低。公钥密码体制的机制是:为每个用户产生一对密钥:一个公开的加密密钥和一个私密的解密密钥,要从公开的加密密钥(简称:公钥)利用计算找到私密的解密密钥(简称:私钥)必须是不可能的。例如:A、B双方通信时,A通过任何途径取得B的公钥,用B的公钥加密信息,加密后的信息通过任何不安全信道发送,B收到密文信息后,用自己的私钥解密恢复出明文。采用RSA加密算法用在智能卡中,在访问数据库、金融应用、或远距离支付应用等方面有广泛的应用。RSA加密算法的原理可以分成如下三个不同的部分:第一部分:生成一对RSA密钥;第二部分:将一个明文加密成密文;以及第三部分:将密文解密为明文。其中,第一部分包括如下5个步骤:步骤一、生成两个长度相同大小不等的大素数P和q ;步骤二、计算n = pXq, (/ (")=("-1)((/-1),妒(")保密;步骤三、随机选择整数e,满足gcd(e,p(w))=l且e〈炉(《);步骤四、计算 d,满足 A=I modf/ ( η);步骤五、其中公钥是(e,n),私钥是(d,p,q)。第二部分按照如下公式计算:c=memodn。第三部分按照如下公式计算:m=cdmodn。其中,111表示明文,(3表示密文,1〈111〈11,1〈(3〈11,6是加密指数,(1是解密指数。RSA加密算法的安全性是基于对由两个素数的乘积形成的大数进行因子分解的难度,换句话说,给定两个大素数P和q,要获得他们的乘积η很容易,但是给定η,找出素数ρ和q非常困难,基于此事实,一个安全的RSA系统必须满足η足够长,例如:512位、1024位、2048位等。对于RSA加密算法,密钥越长,加密 效果越好,但加密、解密的开销也就越大。使用中国剩余定理(Chinese Remainder Theorem,以下简称:CRT)的RSA加密算法可以使解密速度大约提高4倍左右,解密运算由计算模η的指数形式m=cdmodn转化为求同余方程组的情形,可以包括如下步骤:步骤一、预计算:dp=dmod(p-1),dq=dmod (q_l),invQ=q_1modp ;步骤二、计算:cp=cmodp和 cq=cmodq ;步骤三、计算:mp=cpdpmodp,mq=cqdqmodq ;步骤四、计算:m= m ψ xj ( m~p) m q (i mv c0|: p其中,输入为:n,d, p, q, dp, dq, invQ, c ;输出为 m=cdmodn。使用CRT的RSA算法在进行解密计算时,首先执行modp和modq运算,其中,两个质数P和q需要具有一样的位长但大小不等,然后执行两次模指数运算,即:Cpdpmodp和cqNodq,再将模指数运算的计算结果利用CRT再结合得到明文m。在智能卡上实现使用CRT的RSA加密算法易受到如电力消耗、执行时间、故障时的输入和输出行为、福射等攻击从而泄露密钥信息,其中,差分功率分析(DifferentialPower Analysis,简称:DPA)攻击是一种很有效的能量攻击方法。DPA攻击利用了这样一个事实:密码设备的瞬时能量消耗依赖于设备所处理的数据以及设备所进行的操作,其原理是智能卡在执行加密解密过程中会消耗能量,产生电磁辐射,通过使用特殊的电子测量仪和数学统计技术,就可以检测和分析这些变化,从而得到芯片中的特定关键信息。具体地,智能卡执行一条指令消耗的能量与指令的操作数相关,其中,当某一特定比特不变而其它比特变化时,则与该指令相关的电流消耗的分析表明,当某一特定比特取值为O或I时,该指令的平均消耗是不同的。因此DPA类型的攻击使得很有可能在执行加密算法期间得到由在卡上的微处理器所处理的中间数据的外加信息,这种外加信息在某些情况下使得有可能泄露解密算法的秘密参数,使得加密系统不安全。

发明内容
本发明提供一种使用RSA公开密钥加密算法的电子部件中的防攻击方法和装置,用以实现有可能使得DPA攻击者不能有效地通过微处理器所处理的中间数据的外加信息得到解密算法的秘密参数,达到防御DPA攻击的效果。本发明提供一种使用RSA公开密钥加密算法的电子部件中的防攻击方法,包括每次执行使用中国剩余定理的RSA解密算法时采用方法,方法将密文C、密钥d、n、p、q作为输入,方法包括:生成三个随机数:U、t、s ;用c' =c+uXn 代替密文 c;计算P' =pXt,q' =qX s ;计算cp' =c' modp'和 cq' =c' mod ;计算4/=£j mod(p(/)和 =.
计算 Iiip=Cp' dp modp' , mq=cq/ dq modq';计算 m=mq+qX [ (mp-mq) (q_1modp) (modp)];用mmodn 代替 m ;其中,p、q是两个位长相同但大小不等的素数,Φ in)、φ (pr)、φ (Y)分别为n、p'、q'的欧拉函数。
本发明还提供一种使用RSA公开密钥加密算法的电子部件中的防攻击装置,每次执行使用中国剩余定理的RSA解密算法时采用所述装置,所述装置将密文C、密钥d、n、p、q作为输入,所述装置包括:生成模块,用于生成三个随机数:11、t、s ;第一替代模块,用于用c' = c+uXn代替密文c ;第一计算模块,用于计算P' =pXt,q' =qXs ;第二计算模块,用于计算cp' =c' modp'和 cq' =c' modq'; 第三计算模块,用于计算Φ' = dmod(p(//)和dcf = dmod吻,);第四计算模块,用于计算mp=cp' dp, modp' , mq=cq/ dt^modq';第五计算模块,用于计算m=mq+qX [ (mp-mq) (q_1modp) (modp)];第二替代模块,用于用mmodn代替m ;其中,P、q是两个位长相同但大小不等的素数,φ ( )、(P (/)、φ (f)分别为n、p'、q'的欧拉函数。在本发明中,对每次使用CRT的解密算法使用随机化计算,通过随机化将使用CRT的模指数运算的p、q、dp、dq以及中间结果mp、mq进行掩盖,有可能使得DPA攻击者不能有效地通过微处理器所处理的中间数据的外加信息得到解密算法的秘密参数,达到防御DPA攻击的效果。


图1为本发明使用RSA公开密钥加密算法的电子部件中的防攻击方法第一实施例的流程示意图;图2为本发明使用RSA公开密钥加密算法的电子部件中的防攻击方法第二实施例的流程示意图;图3为本发明使用RSA公开密钥加密算法的电子部件中的防攻击方法第三实施例的流程示意图;图4为本发明使用RSA公开密钥加密算法的电子部件中的防攻击方法第四实施例的流程示意图;图5为本发明使用RSA公开密钥加密算法的电子部件中的防攻击装置第一实施例的流程示意图;图6为本发明使用RSA公开密钥加密算法的电子部件中的防攻击装置第二实施例的流程示意图;图7为本发明使用RSA公开密钥加密算法的电子部件中的防攻击装置第三实施例的流程示意图;图8为本发明使用RSA公开密钥加密算法的电子部件中的防攻击装置第四实施例的流程示意图。
具体实施例方式下面结合说明书附图和具体实施方式
对本发明作进一步的描述。如图1所示,为本发明使用RSA公开密钥加密算法的电子部件中的防攻击方法第一实施例的流程示意图,每次执行使用CRT的RSA解密算法时采用该方法,该方法将密文C、密钥d、n、p、q作为输入,该方法包括如下8个步骤:步骤11、生成三个随机数:u、t、s ;步骤12、用c' = c+uXn代替密文c ;步骤13、计算 p' =pXt,q' =qX s ;步骤14、计算 cp' =c' modp'和 cq' =c' modq/ ;步骤 15、计算 φ, = d mod φ( //)和 dq' = dmod W};步骤16、计算 mp=cp' dp modp' , mq=cq/ dq modq/ ;步骤17、计算 m=mq+qX [ (mp-mq) (q_1modp) (modp)];步骤18、用 mmodn 代替 m ;其中,p、q是两个位长相同但大小不等的素数,φ ( )、φ (/)、φ (f)分别为n、p'、q'的欧拉函数。

按照上述对策方法,使其可以保护使用CRT的模指数运算,如RSA算法的解密运算:m=cdmodn在本实施例中,对每次使用CRT的解密算法使用随机化计算,通过随机化将使用CRT的模指数运算的P、q、dp、dq以及中间结果mp、mq进行掩盖,有可能使得DPA攻击者不能有效地通过微处理器所处理的中间数据的外加信息得到解密算法的秘密参数,达到防御DPA攻击的效果。如图2所示,为本发明使用RSA公开密钥加密算法的电子部件中的防攻击方法第二实施例的流程示意图,可以包括如下9个步骤:步骤21、成四个随机数:u、r、t、s ;步骤22、用c' =c+uXn代替密文c;步骤23、计算作(").
步骤24、计算 ρ, =pXt,q, =qX s ;步骤25、计算 cp' -C1 modp'和 cq' -c! mod ;步骤26、计算 ///= /' mod φ( ρ')和 dif=d'mod.
步骤27、计算 mp=cp' dp modp' , mq=cq/ dq modq/ ;步骤28、计算 m=mq+qX [ (mp-mq) (q_1modp) (modp)];步骤29、用 mmodn 代替 m ;其中,p、q是两个位长相同但大小不等的素数,φ ( )、φ (p')、φ (<)分别为n、p'、q'的欧拉函数。与上一实施例的不同之处在于,本实施例在生成U、t、s三个随机数的同时,还生成随机数r ;除了对p、q、dp、dq以及中间结果mp、mq进行随机化处理外,还对密钥d进行了随机化处理。在本实施例中,对每次使用CRT的解密算法使用随机化计算,通过随机化将使用CRT的模指数运算的p、q、dp、dq、中间结果mp、mq、以及密钥d进行掩盖,有可能使得DPA攻击者不能有效地通过微处理器所处理的中间数据的外加信息得到解密算法的秘密参数,达到防御DPA攻击的效果。如图3所示,为本发明使用RSA公开密钥加密算法的电子部件中的防攻击方法第三实施例的流程示意图,可以包括如下9个步骤:步骤31、生成四个随机数:u、r、t、s,其中,t和s为小质数;步骤32、用c' =c+u X η代替密文c ;步骤33、计算.
步骤34、计算 p' =pXt,q' =qX s ;步骤35、计算 cp' =C' modp'和 cq' =c' mod ;步骤36、计算 dp' =d/ mod (p-1) (t~l)和 dq' =d/ mod (q-l) (s~l);步骤37、计算 mp=cp' dp modp' , mq=cq/ dq modq';步骤38、计算 m=mq+qX [ (mp-mq) (q_1modp) (modp)];步骤39、用 mmodn 代替 m ;与上一实施例的不同之处在于,在本实施例中,t、s为质数,φ(//) = (/;-1)(/-1), = U(、.—I) ο在本实施例中,对每次 使用CRT的解密算法使用随机化计算,通过随机化将使用CRT的模指数运算的p、q、dp、dq、中间结果mp、mq、以及密钥d进行掩盖,有可能使得DPA攻击者不能有效地通过微处理器所处理的中间数据的外加信息得到解密算法的秘密参数,达到防御DPA攻击的效果。可选地,可以从预先存储的质数中随机选择得到t、S。但是,当t、s的位长比较长时,若从预先存储的质数中随机选择得到t、S,则可供选择的质数的数量就会非常多,从而导致该操作所需要的时间非常长,并且占用的存储空间比较大。为了解决这一问题,可以从预先存储的质数中随机选择两个以上位长较小的质数,t等于这两个以上质数的乘积,相应地,φ(//)等于这两个以上质数分别减I后的乘积再乘上(P-1)。这样的话,由于位长较小的质数的数量相对于位长较长的质数的数量少得多,因此,可供选择的质数的数量就会少得多,该操作所需要的时间相对较少,并且占用的存储空间也较少。同理,从预先存储的质数中随机选择两个以上质数,s等于这两个以上质数的乘积,φ(<)等于两个以上质数分别减I后的乘积再乘上(q-l)。例如:假设t的长度约为64位,可以随机选择4个长度在10位 16位的小质数:tl、t2、t3、t4,使得t = tlXt2Xt3Xt4,此时,φ(/0 = (Ρ —])x(d-丨)x(,2-1)χ( 3—1)χ( 4—I)。同理,假设s的长度约为64位,可以随机选择4个长度在10位 16位的小质数:sl、s2、s3、s4,使得s = si X s2 X s3 X s4,此时,φ(Cf) = (c/-l)x(λ.1 — I)X(v2 — i)x(.v3-1)x(.v4 — I)。如图4所示,为本发明使用RSA公开密钥加密算法的电子部件中的防攻击方法第四实施例的流程示意图,每次执行使用CRT的RSA解密算法时采用该方法,该方法将密文C、密钥d、n、p、q作为输入,该方法包括如下8个步骤:步骤41、生成三个随机数:u、t、s,其中,t和s为小质数;
步骤42、用V = c+uXn代替密文c ;步骤43、计算 P' =pXt,q' =qX s ;步骤44、计算 cp' =C1 modp1 和 cq' =c1 modq';步骤45、计算 dp1 = dmod(p-l) (t_l)和 dq' = dmod(q-l) (s_l);步骤46、计算 mp=cp' dp modp' , mq=cq/ dq modq';步骤47、计算 m=mq+qX [ (mp-mq) (q_1modp) (modp)];步骤48、用 mmodn 代替 m ;其中,p、q是两个位长相同但大小不等的素数,φ ( )、φ (/)、φ 分别为n>p/、q'的欧拉函数。本实施例图1所示流程示意图的不同之处在于,在本实施例中,t、s为质数,(P(厂')={P -0(/-0 Φ(<7() = Ul -- O按照上述对策方法,使其可以保护使用CRT的模指数运算,如RSA算法的解密运算:m=cdmodn在本实施例中,对每次使用CRT的解密算法使用随机化计算,通过随机化将使用CRT的模指数运算的P、q、dp、dq以及中间结 果mp、mq进行掩盖,有可能使得DPA攻击者不能有效地通过微处理器所处理的中间数据的外加信息得到解密算法的秘密参数,达到防御DPA攻击的效果。可选地,在本实施例中,可以从预先存储的质数中随机选择得到t、s。但是,若t、s的位长比较长时,则可供选择的质数的数量就会非常多,导致该操作所需要的时间非常长,并且占用的存储空间比较大。为了解决这一问题,可以从预先存储的质数中随机选择两个以上位长较小的质数,t等于这两个以上质数的乘积,相应地,φ(//'>等于这两个以上质数分别减I后的乘积再乘上(p-ι)。这样的话,由于位长较小的质数的数量相对于位长较长的质数的数量少得多,因此,可供选择的质数的数量就会少得多,该操作所需要的时间相对较少,并且占用的存储空间也较少。同理,从预先存储的质数中随机选择两个以上质数,s等于这两个以上质数的乘积,φ(4θ等于两个以上质数分别减I后的乘积再乘上(Q-1)。如图5所示,为本发明使用RSA公开密钥加密算法的电子部件中的防攻击装置第一实施例的结构示意图,每次执行使用中国剩余定理的RSA解密算法时采用该装置,该装置可以包括生成模块51、第一替代模块52、第一计算模块53、第二计算模块54、第三计算模块55、第四计算模块56、第五计算模块57和第二替代模块58,第一计算模块53和第一替代模块52分别与生成模块51连接,第二计算模块54与第一计算模块53和第一替代模块52连接,第三计算模块55与第一计算模块53连接,第四计算模块56与第一计算模块53、第二计算模块54和第三计算模块55连接,第五计算模块57与第四计算模块56连接,第二替代模块58与第五计算模块57连接。该装置将密文C、密钥d、n、p、q作为输入,生成模块51用于生成三个随机数:U、t、s ;第一替代模块52用于用c' = c+uXn代替密文c ;第一计算模块53用于计算P' =pXt,q' =qX s ;第二计算模块 54 用于计算 cp ' =c' modp 1 和 cq' =c' modq';第三计算模块55用于计算dpr = d modcpi //)和dqf =Jmod φ( /> ;第四计算模块56用于计算 Iiip=Cp' dp, modp' , mq=cq/ modq/ ;第五计算模块 57 用于计算 m=mq+qX [ (mp_mq)(q_1modp) (modp)];第二替代模块58用于用mmodn代替m。其中,P、q是两个位长相同但大小不等的素数,Φ ( )、(P CpO、φ (V)分别为n、p'、q'的欧拉函数。采用该装置,使其可以保护使用CRT的模指数运算,如RSA算法的解密运算:m=cdmodn在本实施例中,生成模块51生成三个随机数U、t、s后,第一替代模块52用c'=c+uXn代替密文c,第一计 算模块53计算ρ ' =pXt,q' =qX s,第二计算模块54计算cp ' =c ' modp '和cq ' =C 1 modq ',第三计算模块55计算办'=i:/mod<p(//)和dtf = d.mod([Acf),第四计算模块 56 计算 Iiip=Cp' dp modp' , mq=cq/ dq modq';第五计算模块57计算m=mq+qX [ (mp-mq) (q_1modp) (modp)],最后,第二替代模块58用mmodn代替m,从而对每次使用CRT的解密算法使用随机化计算,通过随机化将使用CRT的模指数运算的p、q、dp、dq以及中间结果mp、mq进行掩盖,有可能使得DPA攻击者不能有效地通过微处理器所处理的中间数据的外加信息得到解密算法的秘密参数,达到防御DPA攻击的效果。如图6所示,为本发明使用RSA公开密钥加密算法的电子部件中的防攻击装置第二实施例的结构不意图,与上一实施例的不同之处在于,生成模块51在生成三个随机数U、t、s的同时,还生成随机数r ;第三计算模块55可以包括替代单元550和第一计算单元551,其中,替代单元550与生成模块51连接,第一计算模块551与替代单元550、第一计算模块53和第四计算模块56连接。其中,替代单元550用于用& = ^ + ρ(Χ)代替密钥d ;第一计算单元 55 用于计算 φ、/ηοφ( //)和 cYi/'=J_'modp(y)在本实施例中,对每次使用CRT的解密算法使用随机化计算,通过随机化将使用CRT的模指数运算的p、q、dp、dq、中间结果mp、mq、以及密钥d进行掩盖,有可能使得DPA攻击者不能有效地通过微处理器所处理的中间数据的外加信息得到解密算法的秘密参数,达到防御DPA攻击的效果。如图7所示,为本发明使用RSA公开密钥加密算法的电子部件中的防攻击装置第三实施例的结构示意图,在图5所示结构示意图的基础上,生成模块51可以包括生成单元510、存储单元511和选择单元512 ;生成单元510与第一替代模块52连接,选择单元512与存储单元511和第一计算模块53连接。其中,生成单元510用于生成随机数u和r ;存储单元511用于存储质数;选择单元512用于从存储单元511存储的质数中随机选择得到t、S。在图5所示结构示意图的基础上,第三计算模块55可以包括替代单元550、第二计算单元552和第四计算单元554,其中,替代单元550与生成单元510连接,第二计算单元552与选择单元512连接,第四计算单元554与第二计算单元552、替代单元550和第四计算模块56连接。其中,替代单元550用于用& = + 代替密钥d ;第二计算单元552用于计算φ(//) = (ρ-1汾-1),= 炝-1);第四计算单元554用于计算up = d' mod φ(//)彳丨 I dtj' = d' mod φ( /')-
在本实施例中,对每次使用CRT的解密算法使用随机化计算,通过随机化将使用CRT的模指数运算的P、q、dp、dq以及中间结果mp、mq进行掩盖,有可能使得DPA攻击者不能有效地通过微处理器所处理的中间数据的外加信息得到解密算法的秘密参数,达到防御DPA攻击的效果。在本实施例中,当选择单元512从存储单元511存储的质数中随机选择得到t、s时,若t、s的位长比较长,则可供选择的质数的数量就会非常多,导致该操作所需要的时间非常长,并且占用的存储空间比较大。为了解决这一问题,选择单元512可以包括第一选择单元5121和第二选择单元5122,其中,第一选择单元5121和第二选择单元5122分别与存储单元511、第一计算模块53和 第二计算单元552连接。其中,第一选择单元5121用于从存储单元511中随机选择两个以上质数,t等于这两个以上质数的乘积,在第二计算单元552计算φ(/)时,φ(/)等于两个以上质数分别减I后的乘积再乘上(P-1);第二选择单元5122用于从存储单元511中随机选择两个以上质数,s等于这两个以上质数的乘积,在第二计算单元552计算φ(¥)时,等于这两个以上质数分别减I后的乘积再乘上(q_l)。这样的话,由于位长较小的质数的数量相对于位长较长的质数的数量少得多,因此,可供选择的质数的数量就会少得多,该操作所需要的时间相对较少,并且占用的存储空间也较少。如图8所示,为本发明使用RSA公开密钥加密算法的电子部件中的防攻击装置第四实施例的结构示意图,在图5所示结构示意图的基础上,t、s为质数,第三计算模块55可以包括第二计算单元552和第三计算单元553,其中,第二计算单元552与生成模块51连接,第三计算单元553与第二计算单元552连接。其中,第二计算单元552用于计算
权利要求
1.一种使用RSA公开密钥加密算法的电子部件中的防攻击方法,其特征在于,每次执行使用中国剩余定理的RSA解密算法时采用所述方法,所述方法将密文C、密钥d、n、p、q作为输入,所述方法包括: 生成三个随机数:U、t、S ; 用C' =0+11\]1代替密文(3; 计算 P' =pXt,q' =qXs ; 计算 cp' =c' modp'和 cq' =c' modq/ ;计算 tip' = d mod φ( //)和 dq'-d mod φ( ./');计算 Iiip=Cp' dp modp' , mq=cq/ dq modq/ ;计算 m=mq+qX [ (mp-mq) (q_1modp) (modp)]; 用mmodn代替m ; 其中,p、q是两个位长相同但大小不等的素 数,φ ( >、φ (/)、φ 分别为η、P'、q'的欧拉函数。
2.根据权利要求1所述的方法,其特征在于,在所述生成三个随机数的同时,还生成随机数r ; 所述方法还包括:用W =代替密钥d ; 所述计算 φ'= /ηιο(1φ(//)和 = Jmodcp(g')具体为:计算 dp'=d'modsp、p')和tkj'=d'mod(p{q') 0
3.根据权利要求1或2所述的方法,其特征在于,t、s为质数,¥κΡ')=(ρ-1)(,—i), φ )=(f-1)(^-1)。
4.根据权利要求3所述的方法,其特征在于,生成t、s具体为: 从预先存储的质数中随机选择得到t、S。
5.根据权利要求4所述方法,其特征在于,从预先存储的质数中随机选择得到t、s包括: 从预先存储的质数中随机选择两个以上质数,t等于所述两个以上质数的乘积,cp(//)等于所述两个以上质数分别减I后的乘积再乘上(P-1); 从预先存储的质数中随机选择两个以上质数,S等于所述两个以上质数的乘积,<p(qr)等于所述两个以上质数分别减I后的乘积再乘上(q_l)。
6.一种使用RSA公开密钥加密算法的电子部件中的防攻击装置,其特征在于,每次执行使用中国剩余定理的RSA解密算法时采用所述装置,所述装置将密文C、密钥d、n、p、q作为输入,所述装置包括: 生成模块,用于生成三个随机数:u、t、s ; 第一替代模块,用于用c' =c+uXn代替密文c; 第一计算模块,用于计算P' =pXt,q' =qXs ; 第二计算模块,用于计算cp' =C' modp'和cq' =c' modq/ ; 第三计算模块,用于计算分="mod(p(//) ^Wdq' = d mod.(p(i/);第四计算模块,用于计算 mp=cp' dp, modp' , mq=cq/ tvHiodq'; 第五计算模块,用于计算 m=mq+qX [ (mp-mq) (q_1modp) (modp)]; 第二替代模块,用于用mmodn代替m ; 其中,P、q是两个位长相同但大小不等的素数,Φ < >、Φ 、Φ 分别为η、P'、q'的欧拉函数。
7.根据权利要求6所述的装置,其特征在于,所述生成模块在生成三个随机数的同时,还生成随机数r ; 所述第三计算模块包括: 替代单元,用于用d' = Cl^-r(P(/;)代替密钥d ; 第一计算单元,用于计算办'=<^仍0(^( //)和却Wmodp(//),
8.根据权利要求6所述的装置,其特征在于,t、s为质数,所述第三计算模块包括:
9.根据权利要求6所述的装置,其特征在于,t、s为质数,所述生成模块在生成三个随机数的同时,还生成随机数r ; 所述第三计算模块包括: 替代单元,用于用& = d + νφ)代替密钥d ;
10.根据权利要求8所述的装置,其特征在于,所述生成模块包括: 生成单元,用于生成随机数u ; 存储单元,用于存储质数; 选择单元,用于从所述存储单元存储的质数中随机选择得到t、S。
11.根据权利要求10所述装置,其特征在于,所述选择单元包括: 第一选择单元,用于从所述存储单元中随机选择两个以上质数,t等于所述两个以上质数的乘积,Φ(/0等于所述两个以上质数分别减I后的乘积再乘上(P-1); 第二选择单元,用于从所述存储单元中随机选择两个以上质数,s等于所述两个以上质数的乘积,Φ( V)等于所述两个以上质数分别减I后的乘积再乘上(q_l)。
12.根据权利要求9所述的装置,其特征在于,所述生成模块包括: 生成单元,用于生成随机数u和r ; 存储单元,用于存储质数; 选择单元,用于从所述存储单元存储的质数中随机选择得到t、S。
13.根据权利要求12所述装置,其特征在于,所述选择单元包括: 第一选择单元,用于从所述存储单元中随机选择两个以上质数,t等于所述两个以上质数的乘积,φ(/)等于所述两个以上质数分别减I后的乘积再乘上(p-ι); 第二选择单元,用于从所述存储单元中随机选择两个以上质数,S等于所述两个以上质数的乘积, φ(¥)等于所述两个以上质数分别减I后的乘积再乘上(q-l)。
全文摘要
本发明涉及一种使用RSA公开密钥加密算法的电子部件中的防攻击方法和装置。所述方法包括包括每次执行使用中国剩余定理的RSA解密算法时采用所述方法,所述方法将密文c、密钥d、n、p、q作为输入,所述方法包括生成三个随机数u、t、s;用c′=c+u×n代替密文c;计算p′=p×t,q′=q×s;计算cp′=c′modp′和cq′=c′mod;计算和计算mp=cp′dp′modp′,mq=cq′dq′modq′;计算m=mq+q×[(mp-mq)(q-1modp)(modp)];用mmodn代替m;其中,p、q是两个位长相同但大小不等的素数,分别为n、p′、q′的欧拉函数。本发明可以有可能使得DPA攻击者不能有效地通过微处理器所处理的中间数据的外加信息得到解密算法的秘密参数,达到防御DPA攻击的效果。
文档编号G06F21/46GK103209073SQ201310128960
公开日2013年7月17日 申请日期2013年4月15日 优先权日2013年1月17日
发明者刘忠志, 房伟如 申请人:北京昆腾微电子有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1