RSA与RSA签名的故障对策及相关攻击技术解析
1. 平方乘算法攻击的对策
为应对平方乘算法的攻击,可采用如下简单对策:
- 选择随机数 :选取一个小的随机数 (r)。
- 计算中间值 :计算 (y = m^d \bmod r) 和 (z = m^d \bmod nr)。
- 错误判断 :若 (z \not\equiv y \bmod r),则判定出现错误;否则,签名 (s = z \bmod n)。
根据引理,若计算无错误,有 (z \equiv y \bmod r)。未检测到故障的概率近似为两个随机数模 (r) 同余的概率,即 (1/r)。若 (r) 是 20 位的整数,该概率小于 (10^{-6})。
示例 :设 (p = 3),(q = 5),(n = 15),(d = 3),(m = 2),取 (r = 3),则 (y = 2^3 \bmod 3 = 2),(z = 2^3 \bmod 45 = 8),满足 (z \equiv y \equiv 2 \bmod r),签名 (s = 8 \bmod 15 = 8)。
若 (d) 的最低有效位翻转,(d’ = 2),则 (y’ = 2^2 \bmod 3 = 1),(z’ = 2^2 \bmod 45 = 4),此时 (y’ \not\equiv z’ \bmod r)。
若 (d_1) 位翻转,(d’ = 1),则 (y’ = 2^1 \bmod 3 = 2),(z’ = 2^1 \bmod 45 = 2),签名 (s’
超级会员免费看
订阅专栏 解锁全文
41

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



