公开/公告号CN103634102A
专利类型发明专利
公开/公告日2014-03-12
原文格式PDF
申请/专利号CN201310690055.5
申请日2013-12-16
分类号H04L9/06(20060101);H04L9/00(20060101);
代理机构11271 北京安博达知识产权代理有限公司;
代理人徐国文
地址 100031 北京市西城区西长安街86号
入库时间 2024-02-19 23:32:30
法律状态公告日
法律状态信息
法律状态
2017-11-07
授权
授权
2014-05-21
实质审查的生效 IPC(主分类):H04L9/06 申请日:20131216
实质审查的生效
2014-03-12
公开
公开
技术领域
本发明涉及一种智能卡芯片领域的方法,具体涉及一种侧信道攻击和故障攻击的防护方 法。
背景技术
随着计算机技术的发展、社会信息化程度的不断提高,信息安全问题越来越受到人们的 广泛重现。加密作为信息安全中一个有力的武器正在发挥着重要的作用,各种加密算法不断 涌现,目前比较流行的分组密码算法有DES、AES等。分组密码算法是对固定长度的明文进行 加密的算法。它将明文按一定的长度分组,明文和密钥经过加密运算得到密文。解密时,密文 和密钥经过解密运算还原成明文。
随着测量分析方法的进步,各种攻击方法也不断发展。侧信道攻击和故障攻击是近年提 出的具有代表性且对芯片威胁性较强的两种攻击方法。侧信道攻击利用了密码设备运行期间 泄露的侧信息与密码算法的中间值有一定的相关性,通过多次测量侧信息然后进行统计分析, 进而获得密钥信息。故障攻击的基本原理是将密码芯片置于强磁场中,或者改变芯片的电源 电压、工作频率、温度等,使密码芯片中的寄存器、存储器在加解密过程中产生随机错误, 某些输出bit从原来的0变成1或1变成0。通过对正确密文输出和错误密文输出的比较, 经过理论分析得到芯片内部的秘密数据信息。常见的防御侧信道攻击的方法主要是对数据或 密钥进行随机掩码等,常见的防御故障攻击的方法有对相同的数据计算两次然后比较运算结 果是否一致。
现有方法是将分组算法每一轮运算划分为若干步骤,在所划分步骤的基础之上实行流水 线操作运算。每一级流水线计算不同的数据,每个时钟周期进行不同数据的不同运算,对每 一级流水线处理数据施加随机数掩码,保证实际处理数据的互异性。
功耗分析作为侧信道攻击的一种方法,现有技术只能抵抗功耗攻击,不能抵抗故障攻击。 若要既能抵抗侧信道分析,又能抵抗故障攻击,现有技术还需要增加其他防护方法,在实现 时会占用更多的资源。且现有技术中将对称算法每一圈运算划分为若干子步骤,一般来说对 称算法会包含有多个圈运算,如果对每一圈运算划分为若干子步骤,在算法运行时效率会很 低,执行完一次加/解密运算会需要很多个时钟周期才能完成。
发明内容
为了克服上述现有技术的缺陷,本发明提供一种侧信道攻击和故障攻击的防护方法,该 方法既能抵抗侧信道攻击,又能抵抗故障攻击,安全性强,且执行效率高。
为了实现上述发明目的,本发明采取如下技术方案:
一种侧信道攻击和故障攻击的防护方法,其改进之处在于:所述方法包括以下步骤:I、 将分组密码算法的运算划分为流水线;
II、随机选择两级流水线输入真实的明文,其他各级的输入为随机数;
III、进行运算,当运算结束,比较运算结果确定的两个真实数据是否一致。
进一步的,所述方法通过在同一时刻不同级的流水线运算不同的数据,随机数参与运算 产生的侧信息作为噪声掩盖真实数据的侧信息,从而抵抗侧信道攻击。
进一步的,所述方法通过将两个真实密文运算结束后的结果对比,若两个运算结果一致, 则认为运算过程中未出现故障,从而抵抗故障攻击。
进一步的,所述步骤I包括:
设定分组密码算法轮运算数为2N,N为正整数,每一级流水线包含k个轮运算;
将整个运算划分为n级流水线,n=2N/k,2N/k为整数。
进一步的,所述步骤II包括:
随机选取A级流水线和B级流水线的输入为真实的明文,剩下(n-2)级流水线的输入 为随机数。
进一步的,所述步骤III包括:
明文进入A级流水线进行运算,剩余(n-1)级流水线输入随机数,且运算产生的侧信息 作为噪声掩盖明文P运算产生的真实侧信息;
明文进入B级流水线进行运算,剩余(n-2)级流水线输入随机数,且运算产生的侧信息 作为噪声掩盖明文P运算产生的真实侧信息;
直至2N轮运算结束,分别获得两个密文,判断两个密文是否一致,一致则认为运算过 程无故障,否则发出警报信息。
与现有技术相比,本发明的有益效果在于:
1、本发明的方法解决了现有技术中存在执行效率低、消耗资源大等问题,或者往往只考 虑抗侧信道攻击,而忽略了抵抗故障攻击,或者相反,因此安全性不高的问题,本发明的方 法既能抵抗侧信道攻击,又能抵抗故障攻击,安全性强,且执行效率高。
2、本发明的方法根据硬件资源的限制选择合适的流水线级数,实现时方便灵活,执行效 率高。
3、本发明的方法将抵抗侧信道攻击和故障攻击的防护方法相结合,极大的降低了由于防 护而增加的额外资源,便于实现。
4、本发明的方法在对大量数据进行加解密运算时,不仅可以保持较高的运算效率,同时 还具有较强的安全防护能力。
附图说明
图1为运用本发明方法的流程图;
图2为运用本发明方法进行DES算法的流程图
具体实施方式
下面结合附图对本发明作进一步说明。
本发明提供一种抵抗侧信道攻击和故障攻击的防护方法,该方法采用流水线技术。本发 明的方法为:将分组密码算法的运算划分为若干级流水线,随机选择其中的两级流水线,该 两级流水线的输入真实的明文,其他各级的输入为随机数。
由于在同一时刻不同级的流水线是不同的数据参与运算,随机数参与运算时产生的侧信 息作为噪声掩盖了真实数据参与运算产生的侧信息,从而可以抵抗侧信道攻击。
通过在运算结束时比较两个真实数据的运算结果是否一致,若一致则认为没有故障攻击, 从而可以抵抗故障攻击。所述运算指分组密码的加密或解密运算。
一般的,分组密码算法的轮运算数均为偶数,假设分组密码算法轮运算数为2N,N为正 整数,假设每一级流水线包含k个轮运算。将整个运算划分为n=2N/k级流水线,k需要能分 解2N,即2N/k为整数,可以根据硬件资源的限制选择合适的流水线级数,实现时方便灵活。 随机选取两级流水线的输入为真实的明文,剩下(n-2)级流水线的输入为随机数。
如图1所示,图1为运用本发明方法的流程图;本实施例中,假设分组密码算法轮运算 数为2N,N为正整数,2N/k为整数;假设第一级和第二级流水线的输入为真实的明文P,第 三级至第n级流水线的输入为随机数。则在运算过程中的步骤如下:
1、在Time1时刻,第一个明文P进入第一级流水线进行第1至第k轮的运算,此时第 二级至第n级流水线的输入为随机数,第二级及第n级流水线的运算产生的侧信息会作为噪 声掩盖明文P运算产生的真实侧信息。
2、在Time2时刻,第一个明文P进入第二级流水线进行第k+1至第2k轮的运算,第二 个明文P进入第一级流水线进行第1至第k轮的运算,此时第三级至第n级流水线的输入为 随机数,其运算产生的侧信息会作为噪声掩盖明文P运算产生的真实侧信息。
3、在Time3时刻,第一个明文P进入第三级流水线进行第2k+1至第3k轮的运算,第 二个明文P进入第二级流水线进行第k+1至第2k轮的运算,随机数进入第一级流水线进行第 1至第k轮的运算,此时第四级至第n级流水线的输入为随机数,其运算产生的侧信息会作 为噪声掩盖明文P运算产生的真实侧信息。
4、以此类推,在Time n时刻,第一个明文P进入第n级流水线进行第(n-1)k+1至第nk 轮的运算,至此第一个明文P加密结束,得到第一个密文C。
5、在Time n+1时刻第二个明文P也会加密完毕,得到第二个密文C;比较第一个密文 C和第二个密文C是否相等,若这两个密文相等则说明在运算过程中没有注入故障,加密结 果可用;否则会产生相应的报警信息。
运用DES算法为例进行说明,DES算法有16轮运算,划分为四级流水线,每一级流水 线包含4轮运算,图中斜线部分表示随机数参与该级流水线运算。具体步骤如下:
1、在Time1时刻,第一个明文P进入第一级流水线进行第1至4轮的运算,此时第二 级至第四级流水线的输入为随机数,第二级至第四级流水线的运算产生的侧信息会作为噪声 掩盖明文P运算产生的真实侧信息。
2、在Time2时刻,第一个明文P进入第二级流水线进行第5至8轮的运算,第二个明 文P进入第一级流水线进行第1至4轮的运算,此时第三级至第四级流水线的输入为随机数, 其运算产生的侧信息会作为噪声掩盖明文P运算产生的真实侧信息。
3、在Time3时刻,第一个明文P进入第三级流水线进行第9至12轮的运算,第二个明 文P进入第二级流水线进行第5至8轮的运算,随机数进入第一级流水线进行第1至4轮的 运算,此时第四级流水线的输入为随机数,其运算产生的侧信息会作为噪声掩盖明文P运算 产生的真实侧信息。
4、在Time4时刻,第一个明文P进入第四级流水线进行第13至16轮的运算,至此第 一个明文P加密结束,得到第一个密文C;
第二个明文P进入第三级流水线进行第9至12轮的运算,随机数分别进入第二级、第一 级流水线进行第5至8轮、第1至4轮的运算。
5、在Time5时刻第二个明文P也会加密完毕,得到第二个密文C。
比较第一个密文C和第二个密文C是否相等,若这两个密文相等,则说明在运算过程中 没有注入故障,加密结果可用;否则会产生相应的报警信息。
最后应当说明的是:以上实施例仅用以说明本发明的技术方案而非对其限制,尽管参照 上述实施例对本发明进行了详细的说明,所属领域的普通技术人员应当理解:依然可以对本 发明的具体实施方式进行修改或者等同替换,而未脱离本发明精神和范围的任何修改或者等 同替换,其均应涵盖在本发明的权利要求范围当中。
机译: 一种对敏感数据进行侧信道攻击的方法
机译: 一种由虚拟机器保护以防止故障注入攻击执行的程序的方法
机译: 一种基于INS网络的随机感染反故障攻击方法