本文作者:kaifamei

一种攻击密钥的方法和装置

更新时间:2023-03-25 13:51:16 0条评论

一种攻击密钥的方法和装置

著录项
  • C201410252680.6
  • 20140609
  • C104079561A
  • 20141001
  • 中国电子科技集团公司第十五研究所;北京华大信安科技有限公司
  • 王冠华;王亚伟;谢蒂;李国俊
  • H04L29/06
  • H04L29/06 H04L9/30

  • 北京市海淀区北四环中路211号
  • 北京(11)
  • 北京弘权知识产权代理事务所(普通合伙)
  • 郭放;许伟
摘要
本发明公开了一种密钥攻击方法和装置,属安全技术领域。针对RSA_CRT变形算法中随机数引起的功耗曲线波形不规律的情况,根据随机数进制以及密钥算法中素数P和Q的取值特性,采用概率分析统计出攻击明文在由P和Q确定的不同取值区间时,功耗曲线中的特性波形及特性波形出现的概率。攻击时,通过分析某一攻击明文对应的特性波形及特性波形出现的概率得到攻击明文的取值区间,再逐步增大或缩小攻击明文,直至特性波形发生变化,从而得到边界的P或Q值,完成攻击。利用本发明提供的密钥攻击方法和装置可以测试引入了随机数的RSA_CRT变形算法的安全性,弥补传统攻击方法和装置无法充分测试密钥安全性的不足。
权利要求

1.一种攻击密钥的方法,其特征在于,包括以下步骤:

A、计算被攻击密钥的RSA中国剩余定理变形算法中,攻击明文M在不同取值区间 时随机数引起变形部分发生进位操作的概率,分析并记录功耗曲线中与变形部分的运算 操作对应的特性波形,所述特性波形在功耗曲线采样组中出现的概率根据所述引起变形 部分发生进位操作的概率确定,所述功耗曲线为被攻击密钥进行密码运算的功耗曲线, 所述功耗曲线采样组由有限次所述密码运算的功耗曲线组成,

所述取值区间由P和Q确定,包括:M小于P和Q的第一区间,M介于P和Q之 间的第二区间,M大于P和Q的第三区间,其中,P和Q为RSA合数模的两个素数 因子,M与P和Q等长;

B、选取攻击明文M,使用公钥将M加密为密文,采用被攻击密钥对所述密文进行 有限次密码运算,得到功耗曲线采样组,根据所述功耗曲线采样组中的所述特性波形和 所述特性波形出现的概率判断M的取值区间;

C、根据判断得到的所述M的取值区间,逐步增大或减小M值,并得到每个M值 对应的功耗曲线采样组,直至所述功耗曲线采样组中的特性波形发生变化,判断最后得 到的M值是否在所述M的取值区间内且为素数,如果得到的M值是否在所述M的取 值区间内且为素数,则攻击成功,否则,攻击失败,

其中,所述特性波形发生变化为所述功耗曲线采样组中出现M在其他取值区间时变 形操作对应的特性波形,所述密码运算为标准RSA中国剩余定理变形算法解密运算或签 名运算。

2.根据权利要求1所述的密钥攻击方法,其特征在于,所述随机数引起变形部分发 生进位操作的概率根据所述随机数的进制确定。

3.根据权利要求1所述的密钥攻击方法,其特征在于,所述有限次密码运算为1000 次密码运算。

4.根据权利要求1所述的密钥攻击方法,其特征在于,所述步骤B包括:

选取第一攻击明文M1,设置M1的所有比特位为0,得到M1对应的功耗曲线采样 组S10;

选取第二攻击明文M2,设置M2的所有比特位为1,得到M2对应的功耗曲线采样 组S11;

选取第一攻击明文M3,设置M3从高往低的第二个比特位为1,其余比特位为0, 得到M3对应的功耗曲线采样组S20;

选取第二攻击明文M2,设置M4从高往低的第二个比特位为0,其余比特位为1, 得到M4对应的功耗曲线采样组S21;对比S10和S11,以及对比S20和S21,得到所述 特性波形和所述特性波形出现的概率,根据所述特性波形和所述特性波形出现的概率判 断M3或M4的取值区间,以所述M3或M4的取值区间为所述M的取值区间。

5.根据权利要求1所述的密钥攻击方法,其特征在于,所述步骤C包括:

当M在第一区间或第二区间时,设置M的所有比特位为0后,从第t-1比特位至第 1比特位,依次设置第i比特位为1,并得到当前M值对应的功耗曲线采样组,如所述 功耗曲线采样组中的特性波形与所述步骤B中的特性波形相同,则保持第i比特位为1, 否则,将第i比特位设为0,判断最后得到的M值是否在所述M的取值空间内且为素数, 若最后得到的M值在所述M的取值空间内且为素数,则攻击成功,否则,攻击失败;

当M在第三区间时,设置M的所有比特位为1后,从第t-1比特位至第1比特位, 依次设置第i比特位为0,并得到当前M值对应的功耗曲线采样组,如所述功耗曲线采 样组中的特性波形与所述步骤B中的特性波形相同,则保持第i比特位为0,否则,将 第i比特位设为1,判断最后得到的M值是否在所述M的取值空间内且为素数,若最后 得到的M值在所述M的取值空间内且为素数,则攻击成功,否则,攻击失败,

其中,所述当前M值为当前所述第i比特位为1或0时对应的M值,i为整数,t 为M的长度。

6.一种攻击密钥的装置,其特征在于,包括:

特性波形分析单元,用于计算被攻击密钥的RSA中国剩余定理变形算法中,攻击明 文M在不同取值区间时随机数引起变形部分发生进位操作的概率,以及分析并记录功耗 曲线中与变形部分的运算操作对应的特性波形,所述特性波形在功耗曲线采样组中出现 的概率根据所述引起变形部分发生进位操作的概率确定,所述功耗曲线为被攻击密钥进 行密码运算的功耗曲线,所述功耗曲线采样组由有限次所述密码运算的功耗曲线组成

所述取值区间由P和Q确定,包括:M小于P和Q的第一区间,M介于P和Q之 间的第二区间,M大于P和Q的第三区间,其中,P和Q为RSA合数模的两个素数 因子,M与P和Q等长;

功耗曲线获取单元,用于获取被攻击密钥对密文进行密码运算的功耗曲线,以及获 取被攻击密钥对密文进行有限次密码运算的功耗曲线组;

区间判断单元,用于选取攻击明文M,使用公钥将M加密为密文,根据M对应的 功耗曲线采样组中的特性波形和所述特性波形出现的概率判断M的取值区间;

攻击单元,根据所述区间判断单元得到的所述M的取值区间,逐步增大或减小M 值,直至M值对应的功耗曲线采样组中的特性波形发生变化,判断最后得到的M值是 否在所述M的取值区间内且为素数,若是,则攻击成功,否则,攻击失败,

其中,所述特性波形发生变化为所述功耗曲线采样组中出现M在其他取值区间时变 形操作对应的特性波形,所述密码运算为标准RSA中国剩余定理变形算法解密运算或签 名运算。

7.根据权利要求6所述的密钥攻击装置,其特征在于,所述有限次密码运算为1000 次密码运算。

8.根据权利要求6所述的密钥攻击装置,其特征在于,所述特性波形分析单元包括:

进位概率计算子单元,用于计算被攻击密钥的RSA中国剩余定理变形算法中,攻击 明文M在不同取值区间时随机数引起变形部分发生进位操作的概率;

特性波形记录子单元,用于分析并记录M在不同取值区间时功耗曲线中与变形部分 的运算操作对应的特性波形,所述特性波形在功耗曲线采样组中出现的概率根据所述引 起变形部分发生进位操作的概率确定。

9.根据权利要求6所述的密钥攻击装置,其特征在于,所述区间判断单元包括:

第一功耗曲线记录单元,用于选取第一攻击明文M1和第二攻击明文M2,设置M1 的所有比特位为0,以及设置M2的所有比特位为1,使用公钥将M1和M2加密为密文, 分别记录M1和M2对应的功耗曲线采样组S10和S11;

第二功耗曲线记录单元,用于选取第二攻击明文M3和第二攻击明文M4,设置M3 从高往低的第二个比特位为1,其余比特位为0,以及设置M4从高往低的第二个比特位 为0,其余比特位为1,使用公钥将M3和M4加密为密文,分别记录M3和M4对应的 功耗曲线采样组S20和S21;

对比单元,用于对比S20和S10,以及对比S21和S11,得到所述特性波形和所述特 性波形出现的概率,根据所述特性波形和所述特性波形出现的概率判断M3或M4的取 值区间,以所述M3或M4的取值区间为所述M的取值区间。

10.根据权利要求6所述的密钥攻击装置,其特征在于,所述攻击单元包括:

循环单元,用于根据所述区间判断单元的结果,当M在第一区间或第二区间时,设 置M的所有比特位为0后,从第t-1比特位至第1比特位,依次设置第i比特位为1, 或者当M在第三区间时,设置M的所有比特位为1后,从第t-1比特位至第1比特位, 依次设置第i比特位为0;

第一判断单元,用于判断所述循环单元中当前M值对应的功耗曲线采样组中的特性 波形与所述区间判断单元中的特性波形是否相同,所述当前M值为所述循环单元中当前 第i比特位为1或0时对应的M值;

M值记录单元,用于根据所述第一判断单元的结果设置第i位比特位的值,当所述 第一判断单元的结果为相同时,保持当前第i位比特位的值,否则,对当前第i位比特位 的值取反;

第二判断单元,用于判断所述循环单元的循环结束后所述M值记录单元得到的M 值是否在所述区间判断单元得到的M的取值空间内且为素数,若所述M值在所述区间 判断单元得到的M的取值空间内且为素数,则攻击成功,否则,攻击失败,

其中,i为整数,t为M的长度。

说明书
技术领域

本发明涉及安全技术领域,特别是涉及一种攻击密钥的方法和装置。

RSA(名称来自三位开发者Ron Rivest、Adi Shamir和Leonard Adleman名字的首 字母组合)是信息安全领域中比较主流的公钥密码技术。基于RSA实现的各种Key及 智能卡等已经广泛应用于金融、通信、社保、交通等各个领域。为了保障Key及智能卡 等的安全性,需要研究各种攻击方法对这些产品的威胁程度。目前比较流行的攻击方法 包括侧信道攻击(Side Channel Attack,SCA)和错误注入攻击(Fault Injection Attack, FIA),其中SCA攻击中的SPA(SimPle Power Attack/Analysis,简单能量攻击/分析) 和DPA(Differential Power Attack/Analysis,差分能量攻击/分析)攻击最为普遍。

传统的SPA攻击是根据加密/解密硬件功耗曲线的特征及攻击者的经验直观地分析 出加密/解密执行的指令或操作,从而破解指令执行和某些数据有关的算法。例如,现有 的RSA_CRT(Chinese remainder theorem,中国剩余定理)算法为:

选取P、Q两个长度接近的大素数,=P*Q,取欧拉数Φ(n)=(P-1)*(Q-1),其中(n) 表示比小的素数的个数,任取2<=e<=(n),且(e,(n))=1,e为加密密钥,计算d,使 e*d=1(mod(n)),称d为e对模(n)的逆,其中d为解密秘钥,

选取明文M,则密文C=M^e mod ,

MP=C mod P,MQ=C mod Q,

sq=MP^dp,sq=MQ^dq,其中dp=d(mod(P-1)),dq=d(mod(Q-1)),dp和dq称 为私钥(或秘密)CRT指数,

CRT(sp,sq)=(((sp-sq)*qinv)mod P)*Q+sq,

其中,qinv为CRT系数,Q*qinv≡1(mod P)。

该算法中,计算(sp-sq)*qinv mod P时,当sp>=sq时,只进行一次减法操作,当sp

但当对RSA算法进行变形,例如在RSA_CRT算法中引入随机数(以trng表示), 用(((sp+trng)-(sq+trng))*qinv)mod P或((sp+trng-sq-trng))*qinv)mod P计算替换 (sp-sq)*qinv mod P计算后,由于随机数的不确定性,使得计算操作呈现不确定性,功耗 曲线将呈现无规律的状态,传统的SPA攻击方法将无法发挥作用。可见,传统的攻击密 钥的方法存在缺陷和不足,无法充分测试各种Key、智能卡等嵌入式产品的芯片或其操 作系统的安全性。

本发明实施例中提供了一种攻击密钥的方法及装置,以解决现有方法中无法充分测 试密钥安全性的问题。

为了解决上述技术问题,在第一方面,本发明实施例公开了一种攻击密钥的方法, 包括以下步骤:

A、计算被攻击密钥的RSA中国剩余定理变形算法中,攻击明文M在不同取值区 间时随机数引起变形部分发生进位操作的概率,分析并记录功耗曲线中与变形部分的运 算操作对应的特性波形,所述特性波形在功耗曲线采样组中出现的概率根据所述引起变 形部分发生进位操作的概率确定,所述功耗曲线为被攻击密钥进行密码运算的功耗曲线, 所述功耗曲线采样组由有限次所述密码运算的功耗曲线组成,

所述取值区间由P和Q确定,包括:M小于P和Q的第一区间,M介于P和Q 之间的第二区间,M大于P和Q的第三区间,其中,P和Q为RSA合数模的两个素 数因子,M与P和Q等长;

B、选取攻击明文M,使用公钥将M加密为密文,采用被攻击密钥对所述密文进行 有限次密码运算,得到功耗曲线采样组,根据所述功耗曲线采样组中的所述特性波形和 所述特性波形出现的概率判断M的取值区间;

C、根据判断得到的所述M的取值区间,逐步增大或减小M值,并得到每个M值 对应的功耗曲线采样组,直至所述功耗曲线采样组中的特性波形发生变化,判断最后得 到的M值是否在所述M的取值区间内且为素数,如果得到的M值是否在所述M的取 值区间内且为素数,则攻击成功,否则,攻击失败,

其中,所述特性波形发生变化为所述功耗曲线采样组中出现M在其他取值区间时 变形操作对应的特性波形,所述密码运算为标准RSA中国剩余定理变形算法解密运算或 签名运算。

其中,所述随机数引起变形部分发生进位操作的概率根据所述随机数的进制确定。

可选的,所述的密钥攻击方法中,所述有限次密码运算为1000次密码运算。

可选的,所述的密钥攻击方法中,所述步骤B包括:

选取第一攻击明文M1,设置M1的所有比特位为0,得到M1对应的功耗曲线采样 组S10;

选取第二攻击明文M2,设置M2的所有比特位为1,得到M2对应的功耗曲线采样 组S11;

选取第一攻击明文M3,设置M3从高往低的第二个比特位为1,其余比特位为0, 得到M3对应的功耗曲线采样组S20;

选取第二攻击明文M2,设置M4从高往低的第二个比特位为0,其余比特位为1, 得到M4对应的功耗曲线采样组S21;对比S10和S11,以及对比S20和S21,得到所述 特性波形和所述特性波形出现的概率,根据所述特性波形和所述特性波形出现的概率判 断M3或M4的取值区间,以所述M3或M4的取值区间为所述M的取值区间。

可选的,所述的密钥攻击方法中,所述步骤C包括:

当M在第一区间或第二区间时,设置M的所有比特位为0后,从第t-1比特位至 第1比特位,依次设置第i比特位为1,并得到当前M值对应的功耗曲线采样组,如所 述功耗曲线采样组中的特性波形与所述步骤B中的特性波形相同,则保持第i比特位为 1,否则,将第i比特位设为0,判断最后得到的M值是否在所述M的取值空间内且为 素数,若最后得到的M值在所述M的取值空间内且为素数,则攻击成功,否则,攻击 失败;

当M在第三区间时,设置M的所有比特位为1后,从第t-1比特位至第1比特位, 依次设置第i比特位为0,并得到当前M值对应的功耗曲线采样组,如所述功耗曲线采 样组中的特性波形与所述步骤B中的特性波形相同,则保持第i比特位为0,否则,将 第i比特位设为1,判断最后得到的M值是否在所述M的取值空间内且为素数,若最后 得到的M值在所述M的取值空间内且为素数,则攻击成功,否则,攻击失败,

其中,所述当前M值为当前所述第i比特位为1或0时对应的M值,i为整数,t 为M的长度。

在第二方面,本发明实施例公开了一种攻击密钥的装置,包括:

特性波形分析单元,用于计算被攻击密钥的RSA中国剩余定理变形算法中,攻击 明文M在不同取值区间时随机数引起变形部分发生进位操作的概率,以及分析并记录功 耗曲线中与变形部分的运算操作对应的特性波形,所述特性波形在功耗曲线采样组中出 现的概率根据所述引起变形部分发生进位操作的概率确定,所述功耗曲线为被攻击密钥 进行密码运算的功耗曲线,所述功耗曲线采样组由有限次所述密码运算的功耗曲线组成

所述取值区间由P和Q确定,包括:M小于P和Q的第一区间,M介于P和Q 之间的第二区间,M大于P和Q的第三区间,其中,P和Q为RSA合数模的两个素 数因子,M与P和Q等长;

功耗曲线获取单元,用于获取被攻击密钥对密文进行密码运算的功耗曲线,以及获 取被攻击密钥对密文进行有限次密码运算的功耗曲线组;

区间判断单元,用于选取攻击明文M,使用公钥将M加密为密文,根据M对应的 功耗曲线采样组中的特性波形和所述特性波形出现的概率判断M的取值区间;

攻击单元,根据所述区间判断单元得到的所述M的取值区间,逐步增大或减小M 值,直至M值对应的功耗曲线采样组中的特性波形发生变化,判断最后得到的M值是 否在所述M的取值区间内且为素数,若是,则攻击成功,否则,攻击失败,

其中,所述特性波形发生变化为所述功耗曲线采样组中出现M在其他取值区间时 变形操作对应的特性波形,所述密码运算为标准RSA中国剩余定理变形算法解密运算或 签名运算。

可选的,所述的密钥攻击装置中,所述有限次密码运算为1000次密码运算。

可选的,所述的密钥攻击装置中,所述特性波形分析单元包括:

进位概率计算子单元,用于计算被攻击密钥的RSA中国剩余定理变形算法中,攻 击明文M在不同取值区间时随机数引起变形部分发生进位操作的概率;

特性波形记录子单元,用于分析并记录M在不同取值区间时功耗曲线中与变形部 分的运算操作对应的特性波形,所述特性波形在功耗曲线采样组中出现的概率根据所述 引起变形部分发生进位操作的概率确定。

可选的,所述的密钥攻击装置中,所述区间判断单元包括:

第一功耗曲线记录单元,用于选取第一攻击明文M1和第二攻击明文M2,设置M1 的所有比特位为0,以及设置M2的所有比特位为1,使用公钥将M1和M2加密为密文, 分别记录M1和M2对应的功耗曲线采样组S10和S11;

第二功耗曲线记录单元,用于选取第二攻击明文M3和第二攻击明文M4,设置M3 从高往低的第二个比特位为1,其余比特位为0,以及设置M4从高往低的第二个比特位 为0,其余比特位为1,使用公钥将M3和M4加密为密文,分别记录M3和M4对应的 功耗曲线采样组S20和S21;

对比单元,用于对比S20和S10,以及对比S21和S11,得到所述特性波形和所述 特性波形出现的概率,根据所述特性波形和所述特性波形出现的概率判断M3或M4的 取值区间,以所述M3或M4的取值区间为所述M的取值区间。

可选的,所述的密钥攻击装置中,所述攻击单元包括:

循环单元,用于根据所述区间判断单元的结果,当M在第一区间或第二区间时, 设置M的所有比特位为0后,从第t-1比特位至第1比特位,依次设置第i比特位为1, 或者当M在第三区间时,设置M的所有比特位为1后,从第t-1比特位至第1比特位, 依次设置第i比特位为0;

第一判断单元,用于判断所述循环单元中当前M值对应的功耗曲线采样组中的特 性波形与所述区间判断单元中的特性波形是否相同,所述当前M值为所述循环单元中当 前第i比特位为1或0时对应的M值;

M值记录单元,用于根据所述第一判断单元的结果设置第i位比特位的值,保持当 前第i位比特位的值,否则,对当前第i位比特位的值取反;

第二判断单元,用于判断所述循环单元的循环结束后所述M值记录单元得到的M 值是否在所述区间判断单元得到的M的取值空间内且为素数,若所述M值在所述区间 判断单元得到的M的取值空间内且为素数,则攻击成功,否则,攻击失败,

其中,i为整数,t为M的长度。

由以上技术方案可见,本发明实施例提供的密钥攻击方法和装置,针对密钥变形算 法中随机数引起的功耗曲线波形不规律情况,根据随机数进制和取值的限制以及P、Q 大素数的特性,采用概率分析统计出攻击明文在P和Q确定的不同取值区间时功耗波形 的大概率规律性,得到攻击明文在不同取值区间时的特性波形及特性波形出现的概率。 攻击时,通过分析某一攻击明文的特性波形及特性波形出现的概率得到攻击明文的取值 区间,然后逐步增大或缩小攻击明文,不断逼近区间边界值即P或Q值,直至特性波形 发生变化,即区间跳跃,从而得到边界的P或Q值,完成攻击,由P或Q可以得到私 钥的其他参数。因此利用本发明提供的密钥攻击方法和装置可以测试引入了随机数的 RSA_CRT变形算法的安全性,弥补传统攻击方法和装置不能充分测试密钥安全性的不 足。

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有 技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而 言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例提供的一种密钥攻击方法的流程示意图;

图2为本发明实施例提供的一种密钥攻击装置的结构示意图。

为了使本技术领域的人员更好地理解本发明中的技术方案,下面将结合本发明实施 例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实 施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领 域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本 发明保护的范围。

为更好的对本发明实施例所述的方法进行介绍,首先,对RSA_CRT变形算法进行 简单描述。以现有芯片中1024比特的RSA算法为例,其中,的长度为1024比特,P 和Q为大素数,长度为512比特。为保证P和Q的长度,P和Q的最高两比特位必须 为1。攻击明文M取值可以分为三个区间,设P>Q,则第一区间为MP>Q。三个区间可以分别表示为:[1,Q)(第一区间)、[Q,P) (第二区间)和[P,(2^512)-1](第三区间)。

RSA_CRT变形算法中,引入随机数trng的变形方式有两种:

CRT(sp,sq)=((((sp+trng)-(sq+trng))*qinv)mod P)*Q+sq(第一种)和CRT(sp,sq)= (((sp+trng-sq-trng))*qinv)mod P)*Q+sq(第二种)。

第一种变形中(((sp+trng)-(sq+trng))*qinv)mod P可以进行如下变换:

由于sp=(C mod P)^dp=(((M^e)mod )mod P)^dp=(M^(e*dp))mod P=M mod P,sq=(C mod Q)^dq=(((M^e)mod )mod Q)^dq=(M^(e*dq))mod Q=M mod Q

因此,(sp+trng)-(sq+trng)=(M mod P+trng)–(M mod Q+trng)。

针对采用上述RSA_CRT变形算法的密钥,为了对该密钥的安全性进行测试,第一 方面,本发明实施例提供了一种密钥攻击方法,所述方法包括:

步骤S1000,分析和计算M在不同取值区间时trng引起RSA_CRT变形算法中变 形部分发生进位的概率,以及变形操作对应的特性波形和所述特性波形出现的概率,所 述变形操作为变形部分的运算操作。

首先,分析第一种变形的情况下M在不同取值区间时trng引起变形操作M mod P +trng、M mod Q+trng和(M mod P+trng)-(M mod Q+trng)发生进位的情况,及变形操 作M mod P+trng、M mod Q+trng和(M mod P+trng)-(M mod Q+trng)对应的特性波形 和所述特性波形出现的概率:

(1)当M在第一区间时,M mod P+trng和M mod Q+trng相等,由于M mod P=M mod Q=M,因此加上随机数trng后,如果trng引起变形操作进位,则M mod P+trng 和M mod Q+trng会同时进位,如果trng不引起进位,则M mod P+trng和M mod Q+trng 都不进位。是否引起变形操作进位取决于随机数trng的大小。

现有芯片运算操作的功耗曲线中,在M mod P+trng、M mod Q+trng和(M mod P +trng)-(M mod Q+trng)三段波形上,第三段(M mod P+trng)-(M mod Q+trng)的波形为 执行一次减法。当不发生进位时,对M mod P+trng、M mod Q+trng和(M mod P +trng)-(M mod Q+trng)执行的运算操作分别为一次加法、一次加法和一次减法,由于加 法和减法的波形相似,因此三段运算过程在功耗曲线上呈现三个连续较短的波形;当发 生进位时,M mod P+trng、M mod Q+trng执行的运算操作中还包括进位操作,因而使 M mod P+trng、M mod Q+trng运算操作的波形变长,整个M mod P+trng、M mod  Q+trng和(M mod P+trng)-(M mod Q+trng)三段运算的过程在功耗曲线上呈现出两长一 短的波形。

由上可知,当M在第一区间时,RSA_CRT变形算法进行密码运算时的功耗曲线(以 下简称功耗曲线)中,对应变形操作的部分仅会出现三个连续较短的波形和两长一短的 波形两种情况。所述三个连续较短的波形和两长一短的波形即M在第一区间时变形操作 对应的特性波形。如果选取一个攻击明文M,将攻击明文加密后,采用标准RSA_CRT 解密运算或签名运算进行有限次运算,例如1000次运算,大量的功耗曲线将显示在功耗 曲线的某一段(即对应于M mod P+trng、M mod Q+trng和(M mod P+trng)-(M mod  Q+trng)的部分)仅出现三个连续较短的波形和两长一短的波形两种情况,则可以判断该 攻击明文M在第一区间,即M

其中,有限次运算采用1000次运算,即可以获得足够大数量的功耗曲线组,有利 于进行概率分析,同时过多的次数会加重采样和运算的负担,选择1000次是足够且较经 济的运算次数。

(2)当M在第二区间时,P>M>Q,则M mod P=M>Q。由于Q为大素数,且最 高两比特位为1,因此M的最高两比特也为1。由于现有芯片采取16进制取值的方式, 因此trng的最高两比特位都为0的概率为2/16,相应地,M mod P+trng进位的概率为 1-2/16,即14/16。同时,因为M mod Q=M-Q,所以M mod Q的值较小,M mod Q最 高6比特的取值均为0,此时随机数trng最高两比特位取值为1的概率为2/16,所以M  mod Q+trng不进位的概率为1-2/16,即14/16。当M mod P+trng发生进位时,对应的 波形较长,而M mod Q+trng不进位,对应的波形短,由于M mod P+trng和M mod  Q+trng的运算操作紧连,因而M mod P+trng和M mod Q+trng的运算操作在功耗曲线 上呈现一长一短的波形,所述一长一短的波形即M在第二区间的特性波形,且该特性波 形出现的概率为14/16*14/16=49/64。

由上可知,当M在第二区间时,RSA_CRT变形算法密码运算的功耗曲线在概率上 有49/64的可能性会出现一长一短的波形,即M在第二区间是变形操作对应的特性波形。 如果选取一个攻击明文M,将攻击明文加密后,采用标准RSA_CRT解密运算或签名运 算进行有限次运算,例如1000次运算,大量的功耗曲线显示在功耗曲线的某一段(即对 应于M mod P+trng、M mod Q+trng)有超过2/3的概率出现一长一短的波形,则可以 判断该攻击明文M在第二区间,即Q

M在第二区间时,由于M mod P+trng、M mod Q+trng对应的波形已有明显差异, 因此可以不考虑(M mod P+trng)-(M mod Q+trng)对应的波形。

(3)当M在第三区间时,M mod P和M mod Q都较小,M mod P和M mod Q 最高6比特的取值均为0。随机数trng最高前两个比特位取值为1的概率为2/16,则M  mod P+trng和M mod Q+trng不进位的概率为1-2/16,即14/16,若不进位,则M mod  P+trng

由上可知,当M在第三区间时,RSA_CRT变形算法密码运算的功耗曲线在概率上 有14/16的可能性会出现两短一长的波形,即M在第三区间时变性操作对应的特性波形。 如果选取一个攻击明文M,将攻击明文加密后,采用标准RSA_CRT解密运算或签名运 算进行有限次运算,例如1000次运算,大量的功耗曲线显示在功耗曲线的某一段(即对 应于M mod P+trng、M mod Q+trng和(M mod P+trng)–(M mod Q+trng))有超过2/3 的概率出现两短一长的波形,则可以判断该攻击明文M在第三区间,即M>P。此时按 一定规律调整M值变小,使M趋近素数P的值。得到P值后,利用/Q获得第二个素 数Q,然后可以利用公钥e、计算出dp、dq、qinv等RSA_CRT算法的所有私钥元素。

其次,在步骤S1000中,分析第二种变形,即CRT(sp,sq)=(((sp+trng-sq- trng))*qinv)mod P)*Q+sq的情况下,M在不同取值区间时,trng引起变形部分发生 进位操作的概率,以及变形操作对应的特性波形和所述特性波形出现的概率。由于在第 二种变形中,减去随机数的运算不发生进位,因此只针对sp+trng和sp+trng–sq进 行分析即可。

(1)当M在第二区间时,QQ,sp+trng=M+trng,由于Q为 最高两比特位为1的素数,而trng最高两比特位取值为0的概率为2/16,因此sp+trng 进位的概率为1-2/16,即14/16。由于第二种变形中发生进位时需要减去相应的mod数P 来保持运算结果位数统一,因此sp+trng发生进位时其运算操作的波形较长。由于P和 Q的最高两比特位为1,因此M在P和Q之间的取值空间不超过16进制取值的1/16, 因而sp加上随机数trng进位后小于sq的概率也只有1/16,相应地,sp+trng>sq的概率 为15/16。由于sp+trng>sq时,sp+trng-sq为一次减法,因此在功耗曲线上呈现较短的 波形。由上分析可知,sp+trng和sp+trng–sq的运算操作过程在功耗曲线组中呈现 一长一短的波形的概率为14/16*15/16=105/128,所述一长一短的波形即M在第二区间时 变性操作对应的特性波形。

由上可知,第二种变形情况下,当M在第二区间时,RSA_CRT变形算法密码运算 的功耗曲线在概率上有105/128的可能性会出现一长一短的波形,即M在第二区间时变 形操作对应的特性波形。如果选取一个攻击明文M,将攻击明文加密后,采用标准 RSA_CRT解密运算或签名运算进行有限次运算,例如1000次运算,大量的功耗曲线显 示在功耗曲线的某一段(即对应于sp+trng和sp+trng–sq)有超过2/3的概率出现一 长一短的波形,则可以判断该攻击明文M在第二区间,即Q

(2)当M在第三区间时,由于P为最高两比特位为1的素数,因此sp最高两比 特位均为0,加入的随机数最高两比特位位为1的概率为2/16,所以sp+trng发生进位 的概率为1/8,不发生进位的概率为1-1/8,即7/8。相应地,由于M>P>Q,不发生进位 时,sp+trng大于sq,因此sp+trng大于sq的概率为7/8,即sp+trng-sq>0的概率 为7/8。此时sp+trng和sp+trng–sq的运算操作分别为一次加法和一次减法,sp+trng 和sp+trng–sq的运算操作在功耗曲线上将呈现为两个连续较短的波形。

由上可知,在第二种变形情况下,当M在第三区间时,RSA_CRT变形算法密码运 算的功耗曲线在概率上有7/8的可能性会出现两个连续较短的波形,即M在第三区间时 变性操作对应的特性波形。如果选取一个攻击明文M,将攻击明文加密后,采用标准 RSA_CRT解密运算或签名运算进行有限次运算,例如1000次运算,大量的功耗曲线显 示在功耗曲线的某一段(即对应于sp+trng和sp+trng–sq的部分)有超过2/3的概 率出现两个连续较短的波形,则可以判断该攻击明文M在第三区间,即M>P。此时按 一定规律调整M值变小,使M趋近素数P的值。得到P值后,利用/Q获得第二个素 数Q,然后可以利用公钥e、计算出dp、dq、qinv等RSA_CRT算法的所有私钥元素。

(3)当选取一个攻击明文M,将攻击明文加密后,采用标准RSA_CRT解密运算 或签名运算进行有限次运算,例如1000次运算,功耗曲线组中未出现上述第二种变形情 况下M在第二区间和M在第三区间时变形操作对应的特性波形,则可以判断该攻击明 文M在第一区间,即M

在分析和计算得到M在不同取值区间时,变形操作对应的特性波形和所述特性波 形出现的概率后,执行密钥攻击程序流程。以下将以RSA的素数P、Q的长度为t的情 况为例,说明密钥攻击程序流程,相应地,模数的长度为2t,=P*Q,所述流程步骤 如下:

步骤S1100,设置攻击明文M长度为t;

步骤S1200,设置M的所有比特位为0,计算密文C=M^e mod ,将C输入至被 攻击芯片进行标准RSA_CRT签名或解密操作,运行1000次,得到功耗曲线组S10;

步骤S1300,设置M的从高往低的第二位设置为1,其余位设置为0,计算C=M^e  mod ,把C的值输入被攻击芯片进行标准RSA_CRT签名或解密操作,得到功耗曲线 组S20;

步骤S1400,设置M的所有比特位为1,计算密文C=M^e mod ,将C输入至被 攻击芯片进行标准RSA_CRT签名或解密操作,运行1000次,得到功耗曲线组S11;

步骤S1500,设置M的从高往低的第二位设置为0,其余位设置为1,计算C=M^e  mod ,将C输入被攻击芯片进行标准RSA_CRT签名或解密操作,得到功耗曲线组S21;

步骤S1600,对比功耗曲线组S10和功耗曲线组S20,及对比功耗曲线组S11和功 耗曲线组S21,从S20相对于S10的差异波形中,以及从S21相对于S11的差异波形中, 分析出RSA_CRT变形运算功耗曲线组中的特性波形,以所述特性波形为参考特性波形, 统计所述参考特性波形出现的概率,根据所述参考特性波形和所述参考特性波形出现的 概率判断M的取值区间,具体为:

如果参考特性波形为三个连续较短的波形或者两长一短的波形,且两者在功耗曲线 的同一段交替出现,则M在第一种变形情况下的第一区间,

如果特性波形为一长一短的波形,且特性波形出现的概率大于2/3,则M在第一种 变形情况或第二种变形情况下的第二区间,

如果特性波形为两短一长的波形,且特性波形出现的概率大于2/3,则M在第一种 变形情况下的第三区间,

如果特性波形为两个连续较短的波形,且特性波形出现的概率大于2/3,则M在第 二种变形情况下的第三区间,

如果未出现以上所有情况的特性波形,则M在第二种变形情况下的第一区间;

步骤S1700,

若M在第一种变形或第二种变形情况下的第一区间或第二区间,则执行以下步骤 S1701:

步骤S1701,设置M的所有比特位为0,当i从t-1到1,执行如下循环步骤S1702 至步骤S1703:

步骤S1702,设置M的第i比特位为1,计算C=M^e mod ,将C输入被攻击芯 片进行标准RSA_CRT签名或解密运算,得到功耗曲线组S3,

步骤S1703,判断S3的特性波形是否与参考特性波形相同,如果相同,则保持当前 第i比特位为1,否则,将当前第i比特位取反为0,

若M在第一种变形或第二种变形情况下的第三区间,则执行以下步骤S1711:

步骤S1711,设置M的所有比特位为1,当i从t-1到1,执行如下循环步骤S1712 至步骤S1713:

步骤S1712,设置M的第i比特位为0,计算C=M^e mod ,将C输入被攻击芯 片进行标准RSA_CRT签名或解密运算,得到功耗曲线组S4,

步骤S1713,判断S4的特性波形是否与参考特性波形相同,如果相同,则保持当前 第i比特位为0,否则,将当前第i比特位取反为1,

步骤S1800,步骤S1701或步骤S1711的循环过程结束,判断最后得到的M值是否 在与参考特性波形对应的取值区间内且为素数,若是,则攻击成功,否则,攻击失败。

在步骤S1600中,对比功耗曲线组S10和功耗曲线组S20,及对比功耗曲线组S11 和功耗曲线组S21,是以所有比特位全为0和所有比特位全为1的攻击明文的功耗曲线 作为参考曲线,通常所有比特位全为0和所有比特位全为1的攻击明文更容易使功耗曲 线中出现特性波形,从而可以通过对比S10和S20之间的差异,以及S11和S21之间的 差异,识别出特性波形。功耗曲线组的对比及特性波形的识别采用常规的波形识别和统 计方法,可以将前述分析得到的M在各个取值区间变形操作对应的特性波形输入常规的 波形识别和统计系统中作为参照,从而得到被检测的功耗曲线组中的特性波形和特性波 形出现的概率。

在步骤S1600中,通过对比S10和S20可以识别M在第一变形情况和第二变形情 况的第一区间或第二区间时变形操作对应的特性波形,通过对比S11和S21可以识别M 在第一变形情况和第二变形情况的第三区间时变形操作对应的特性波形。

在步骤S1800中,最后得到的满足条件的M的值,当M在第一区间时,所得M的 值即Q的值;当M在第二区间或第三区间时,所得M的值即的P值。在得到P或Q的 值后,可以利用公钥e、计算出dp、dq、qinv等RSA_CRT算法的所有私钥元素,因 此得到最后的满足条件的M的值,即可认为攻击成功。

在步骤S1701和步骤S1711中,是以循环结束来判断M值逼近P值或Q值的过程 结束,这是因为,如果循环至第i比特位时,变形操作对应的特性波形发生变化,即功 耗曲线采样组中出现与当前M值所在取值区间不同的其他取值区间时变形操作对应的 特性波形,则在当前第i比特位之后,特性波形将一直与参考特性波形不同,在当前第i 比特位后的所有比特位都将为0或1,之后的循环中不再发生比特位的值的变化,也就 是说,M值将不再增大或减小,亦即达到了最大值或最小值。因此以循环过程的结束来 判断逼近过程的结束,和以特性波形发生变化来判断逼近过程的结束是一致的,且在程 序流程上更容易实现。

在本发明实施例中,当M在第二区间时,攻击时可以通过逐步增大M值逼近P的 值,也可以通过逐步减小M值逼近Q的值,根据上述方法实施例的描述,本领域技术 人员可以很容易得到当M在第二区间时,通过逐步减小M值逼近Q的值的过程,故不 赘述。

通过以上的方法实施例的描述,所属领域的技术人员可以清楚地了解到本发明可借 助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者 是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出 贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中, 包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等) 执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:只读存储 器(ROM)、随机存取存储器(RAM)、磁碟或者光盘等各种可以存储程序代码的介质。

在第二方面,本发明实施例公开了一种攻击密钥的装置。如图2所示,所述攻击密 钥的装置包括:

特性波形分析单元U2100,用于计算与分析RSA_CRT变形算法在第一种变形和第 二种变形情况下,M在不同取值区间时,随机数trng引起变形部分发生进位操作的概率, 及变形操作对应的特性波形和所述特性波形出现的概率,并记录M在不同取值区间时变 形操作对应的特性波形和所述特性波形出现的概率,所述M的取值区间由P和Q确定, 包括:M小于P和Q的第一区间,M介于P和Q之间的第二区间,M大于P和Q的 第三区间,其中,P和Q为RSA合数模的两个素数因子,M与P和Q等长;

功耗曲线获取单元U2200,用于获取被攻击的RSA_CRT变形算法对密文进行密码 运算的功耗曲线,以及获取被攻击的RSA_CRT变形算法对密文进行有限次密码运算的 功耗曲线组,所述有限次可以为1000次;

区间判断单元U2300,与所述特性波形分析单元U2100及所述功耗曲线获取单元 U2200连接,用于选取攻击明文M,使用公钥将M加密为密文,根据M对应的功耗曲 线采样组中的特性波形和所述特性波形出现的概率判断M的取值区间,所述M对应的 功耗曲线采样组即被攻击的RSA_CRT变形算法对所述密文进行有限次密码运算的功耗 曲线组;

攻击单元U2400,与所述特性波形分析单元U2200及所述功耗曲线获取单元U2300 连接,根据区间判断单元得到的所述M的取值区间,逐步增大或减小M值,直至M值 对应的功耗曲线采样组中的特性波形发生变化,判断最后得到的M值是否在所述M的 取值区间内且为素数,若是,则攻击成功,否则,攻击失败。

其中,所述变形操作指RSA_CRT变形算法中,第一种变形情况下的M mod P +trng、M mod Q+trng和(M mod P+trng)–(M mod Q+trng)运算操作,以及第二种变形 情况下的sp+trng和sp+trng–sq运算操作。

其中,如图2所示,所述特性波形分析单元U2100可以包括:

进位概率计算单元U2101,用于分析与计算被攻击的RSA_CRT变形算法中攻击明 文M在不同取值区间时随机数trng引起变形部分发生进位操作的概率,所述概率根据 所述随机数的进制和P、Q的取值特性计算得到;

特性波形记录单元U2102,与所述进位概率计算单元U2101连接,用于分析并记录 M在不同取值区间时功耗曲线中所述变形操作对应的特性波形,所述特性波形在功耗曲 线采样组中出现的概率根据所述引起变形部分发生进位操作的概率确定。

具体地,所述进位概率计算单元U2101根据P、Q的取值特性以及随机数的进制, 分析引起M mod P+trng、M mod Q+trng或sp+trng进位的随机数的比特位的取值情 况,得到随机数引起变形部分发生进位操作的概率,即引起变形操作进位的概率。所述 特性波形记录单元U2102分析M在不同取值区间时变形操作可能产生的特性波形,并 记录所述特性波形。所述特性波形根据常规的标准RSA_CRT变形算法密码运算的功耗 曲线中波形的形式,如加、减、进位、借位的波形形式得到。在一种可能实施方式中, 也可以根据芯片数据运算操作处理的波形特征,得到变形操作可能产生的特性波形。

如图2所示,所述区间判断单元包括:

第一功耗曲线记录单元U2301,与所述功耗曲线获取单元U2200连接,用于选取第 一攻击明文M1和第二攻击明文M2,设置M1的所有比特位为0,以及设置M2的所有 比特位为1,使用公钥将M1和M2加密为密文,分别记录M1和M2对应的功耗曲线采 样组S10和S11;

第二功耗曲线记录单元U2302,与所述功耗曲线获取单元U2200连接,用于选取第 二攻击明文M3和第二攻击明文M4,设置M3从高往低的第二个比特位为1,其余比特 位为0,以及设置M4从高往低的第二个比特位为0,其余比特位为1,使用公钥将M3 和M4加密为密文,分别记录M3和M4对应的功耗曲线采样组S20和S21;

对比单元U2303,与所述第一功耗曲线记录单元U2301、第二功耗曲线记录单元 U2302及特性波形记录单元U2102连接,用于对比S20和S10,以及对比S21和S11, 得到所述特性波形和所述特性波形出现的概率,根据所述特性波形和所述特性波形出现 的概率判断M3或M4的取值区间,以所述M3或M4的取值区间为所述M的取值区间。

其中,对比功耗曲线组S10和功耗曲线组S20,及对比功耗曲线组S11和功耗曲线 组S21,是以所有比特位全为0和所有比特位全为1的攻击明文的功耗曲线作为参考曲 线,通过对比S10和S20之间的差异,以及S11和S21之间的差异,识别出特性波形。 功耗曲线组的对比及特性波形的识别采用常规的波形识别及统计方法。其中,通过对比 S10和S20可以识别M在第一变形情况和第二变形情况的第一区间或第二区间的特性波 形,通过对比S11和S21可以识别M在第一变形情况和第二变形情况的第三区间的特性 波形。

如图2所示,所述攻击单元包括:

循环单元U2401,与所述对比单元U2303连接,用于根据所述区间判断单元U2300 (本实施例中实际为区间判断单元U2300中的对比单元U2303)的结果,当M在第一区 间或第二区间时,设置M的所有比特位为0后,从第t-1比特位至第1比特位,依次设 置第i比特位为1,或者当M在第三区间时,设置M的所有比特位为1后,从第t-1比 特位至第1比特位,依次设置第i比特位为0;

第一判断单元U2402,与所述循环单元U2401连接及所述功耗曲线获取单元U2200 连接,用于判断所述循环单元U2401中当前M值对应的功耗曲线采样组中的特性波形 与所述对比单元U2303得到的特性波形是否相同,所述当前M值为所述循环单元U2401 中当前第i比特位为1或0时对应的M值;

M值记录单元U2403,与所述第一判断单元U2402连接,用于根据所述第一判断单 元U2402的结果设置第i位比特位的值,当所述结果为相同时,保持当前第i位比特位 的值,否则,对当前第i位比特位的值取反;

第二判断单元U2404,与所述循环单元U2401及M值记录单元U2403连接,用于 判断所述循环单元U2401的循环结束后所述M值记录单元U2403得到的M值是否在所 述对比单元U2303得到的M的取值空间内且为素数,若是,则攻击成功,否则,攻击 失败。

其中,i为整数,t为M的长度。

其中,第一判断单元U2402与第二判断单元U2404通过循环单元U2401获得对比 单元U2303中的结果。

为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本 发明时可以把各单元的功能在同一个或多个软件和/或硬件中实现。

本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分 互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置 实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法 实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离 部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者 也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以 根据实际的需要选择其中的部分或者全部来实现本实施例方案的目的。本领域普通技术 人员在不付出创造性劳动的情况下,即可以理解并实施。

需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个 实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之 间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体 意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅 包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、 物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的 要素,并不排除在包括所述要素的过程、方法、物品或者装置中还存在另外的相同要素。

以上所述仅是本发明的具体实施方式,使本领域技术人员能够理解或实现本发明。 对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一 般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发 明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点 相一致的最宽的范围。


文章投稿或转载声明

本文链接:https://www.wtabcd.cn/zhuanli/patent/17c4f4a16caf15444831e6d451722ba2.html

来源:专利查询检索下载-实用文体写作网版权所有,转载请保留出处。本站文章发布于 2023-03-25 13:50:52

发表评论

验证码:
用户名: 密码: 匿名发表
评论列表 (有 条评论
2人围观
参与讨论