工业防护下RSA新型扫描攻击解析
1. 扫描攻击概述
扫描攻击是一种针对加密算法硬件实现的攻击方式。其基本操作是将输入设置为选定值,重置电路,让其在正常模式下运行几个周期,再切换到测试模式并移出扫描内容。通过多次使用不同的明文重复此过程,分析扫描内容来寻找密钥。扫描攻击的基本要求是能随时停止加密操作,并扫描出中间寄存器的内容,这会危及加密算法的硬件实现。
目前有多种应对扫描攻击的方法,但都存在局限性。例如,许多智能卡供应商在制造测试后禁用测试电路(如JTAG),但这对需要现场测试和调试功能的系统不可行;内置自测试(BIST)本质上更安全,但并非所有电路都适用,且它只提供通过/失败签名,对诊断无用。
2. 过往扫描攻击工作
- 对称加密算法攻击 :早期有针对数据加密标准(DES)的扫描攻击,通过两阶段过程,先找到中间寄存器在扫描链上的位置,再仅用3个选定明文检索DES第一轮密钥。后来又有基于差分方法对高级加密标准(AES)的攻击,该方法分析扫描内容的差异而非直接值,无需识别中间寄存器位置。
- 公钥加密算法攻击 :研究证明公钥实现也易受扫描攻击,如通过特定方法分别检索RSA和椭圆曲线密码学(ECC)的密钥。此外,还提出了针对流密码的扫描攻击。
部分攻击方法的目标算法及原理如下表所示:
| 加密算法 | 目标算法 | 攻击原理 |
| ---- | ---- | ---- |
| RSA | 二进制幂算法 | 观察扫描链上中间寄存器在密钥每一位的值,并与离线计算的“判别器”值关联,匹配则对密钥