RSA 侧信道攻击
Last updated
Last updated
能量分析攻击(侧信道攻击)是一种能够从密码设备中获取秘密信息的密码攻击方法.与其 他攻击方法不同:这种攻击利用的是密码设备的能量消耗特征,而非密码算法的数学特性.能量分析攻击是一种非入侵式攻击,攻击者可以方便地购买实施攻击所需要的设备:所以这种攻击对智能卡之类的密码设备的安全性造成了严重威胁。
能量分析攻击是安全领域内非常重要的一个部分,我们只在这里简单讨论下。
能量分析攻击分为:
简单能量分析攻击(SPA),即对能量迹进行直观分析,肉眼看即可。
差分能量分析攻击(DPA),基于能量迹之间的相关系数进行分析。
攻击者可获取与加解密相关的侧信道信息,例如能量消耗、运算时间、电磁辐射等等。
这里我们以 HITB 2017 的 Hack in the card I 作为例子。
题目给出了公钥文件 publickey.pem
,密文,测量智能卡功率的电路图,和解密过程中智能卡消耗的功率变化(通过在线网站给出 )。
密文:
由于网站只给出了一条能量迹,所以可以断定这是 Simple channel analysis(SPA)攻击。那么我们可以直接通过观察能量迹的高低电平来获得 RSA 解密过程的密钥 d。 RSA 可被 SPA 攻击的理论基础来自于 RSA 中包含的快速幂取余算法。
快速幂算法如下
b 为偶数时,$a^b \bmod c = ({a^2}^{b/2}) \bmod c$。
b 为奇数时,$a^b \bmod c = ({a^2}^{b/2} \times a) \bmod c$。
相应的 C 代码实现为:
由于快速幂的计算过程中会逐位判断指数的取值,并会采取不同的操作,所以可从能量迹中还原出 d 的取值(从上面可知,直接得到的值是 d 的二进制取值的逆序)。
注意:
有时候模乘也可能会从高位向低位进行模乘。这里是从低位向高位模乘。
由此可给出还原 d 的脚本如下:
Mangard, S., Oswald, E., Popp, T., 冯登国, 周永彬, & 刘继业. (2010). 能量分析攻击.