RSA加密指数盲化攻击与扫描攻击研究
1. RSA指数盲化攻击背景
在RSA签名计算中,为了抵御侧信道攻击,指数盲化是一种常用的标准防护措施。当一个加密设备(如智能卡)计算RSA签名时,会生成一个随机数 $r$,并将签名计算为 $x^{d + r\phi(N)} \bmod N$,其中 $N$ 是RSA模数,$d$ 是秘密指数,且每次签名计算都会生成一个新的随机数 $r$。
目前已经有一些针对指数盲化RSA实现的侧信道攻击方法:
- Schindler和Itoh的攻击 :该攻击从多个签名过程的功率轨迹入手,攻击者获取对应于盲化指数 $d + r_j\phi(N)$($j = 0, \cdots, n - 1$)的功率轨迹,其核心思想是寻找具有相同盲化因子的功率轨迹,或者盲化因子之和相同的功率轨迹集合。所需的功率轨迹数量由广义生日悖论决定,但对于较大的盲化因子(如64位),“碰撞”数量会变得过少,或者需要评估的和的数量会变得过大。
- Fouque等人的攻击 :攻击者观察多个具有不同盲化因子的功率轨迹,并且假设攻击者能确定每个盲化指数的一些比特。然后对每个 $r_j$ 的未知比特进行穷举搜索,利用密钥材料的冗余性计算 $d + \tilde{r}_j\phi(N)$ 的近似值,其中 $\tilde{r}_j$ 是攻击者对 $r_j$ 的猜测,丢弃与 $d + r_j\phi(N)$ 已知比特不匹配的猜测。在获得多个盲化因子 $r_j$ 后,攻击者从最低有效位开始猜测 $d$ 和 $\phi(N)$ 的块,同样丢弃不匹配已知比特的猜测。然而,这种模型不太现实,因为SPA攻击者的测量总是存在噪声,单个比特永远无