RSA签名的故障攻击与对策
1. RSA签名基础
在RSA签名体系中,存在一些关键参数。设 $y_q = q^{-1} \bmod p$,$y_p = p^{-1} \bmod q$。Alice生成签名 $s$ 并将其与消息 $m$ 发送给Bob。Bob通过计算 $s^e \bmod n$ 并检查是否等于 $m$ 来验证签名的有效性。若等式成立,则认为签名有效。
2. Bellcore攻击
Bellcore攻击是一种利用错误签名恢复RSA私钥的攻击方式。
-
攻击原理
- 由于设计原因,有 $s \equiv s_q \bmod q$ 且 $s \equiv s_p \bmod p$,进而可得 $m \equiv s^e \equiv s_q^e \bmod q$ 以及 $m \equiv s^e \equiv s_p^e \bmod p$。
- 假设在签名过程中引入恶意故障,使得 $s_p$ 或 $s_q$ 的计算出现错误(但不同时出错)。若 $s_p$ 错误而 $s_q$ 正确,设错误签名为 $s’$,则有 $s’ \equiv s \equiv s_q \bmod q$ 且 $s’ \not\equiv s \bmod p$,即 $q | (s’ - s)$ 且 $p \nmid (s’ - s)$。
- 已知 $n$ 和 $e$ 是公开的,若攻击者知道 $s$ 和 $s’$,则可计算 $q = \gcd(s’ - s, n)$,进而得到 $p = \frac{n}{q}$。
- 若攻击
超级会员免费看
订阅专栏 解锁全文
1万+

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



