工业对抗措施下针对RSA的新型扫描攻击
1. 扫描攻击RSA的背景与原理
扫描攻击RSA的目标是找出解密密钥,该密钥可能为1024位或2048位长。在这个过程中,精确把握扫描中间寄存器内容的时间非常关键。
由于加密和解密通常使用相同的硬件,攻击者可以用已知的加密密钥运行硬件,以此获取时间估算。具体来说,攻击者需要找出蒙哥马利乘法操作所需的时钟周期数。在已知密钥的情况下,我们能知道RSA平方和乘法操作所需的蒙哥马利乘法次数。通过将执行总时间除以操作次数,就能得到一次蒙哥马利操作的大致时间。再通过反复比较蒙哥马利操作后的实际输出与预期结果,就有可能找出所需的精确时钟周期数。
在解密过程中,硬件中的RSA会以功能模式运行,执行预定数量的蒙哥马利操作。之后,硬件会复位,扫描使能置高,扫描链内容被取出。根据密钥位是0还是1,会分别执行平方(S)操作或平方(S)与乘法(M)操作。
2. 攻击方法
在提出的攻击方法中,我们总是同时以密钥位为0和1的假设运行两次蒙哥马利周期的软件实现。
- 如果第一位是1,会执行平方(S0)和乘法(M0)操作;否则,会执行两次平方(S0和S1)操作。
- 每次密钥位执行后,将硬件实现的扫描输出实际结果与软件模拟结果进行核对。如果与S0和M0的结果匹配,则密钥位为1;否则,密钥位为0。
- 接下来,从正确的密钥位开始,再次在软件中假设密钥位为0和1两种情况进行解密。根据前一个密钥位是0还是1,分别运行一个或两个蒙哥马利周期。
- 若前一个密钥位是0,对于当前密钥位为0执行平方(S2)操作,为1执行乘法(M1)操作。
- 若前一个密钥位是1,对于当前密钥位为0执行相同位(S
超级会员免费看
订阅专栏 解锁全文
38

被折叠的 条评论
为什么被折叠?



