利用素数重构分解RSA模数
1. 素数重构算法概述
在RSA加密体系中,模数 $N = pq$,其中 $p$ 和 $q$ 是两个大素数。素数重构算法的目标是正确重构出其中一个素数的 $T$ 个连续最高有效位(MSBs)。该算法能在 $O(k)$ 步内完成这一任务,且成功概率至少为 $P_{a,t}(T) = (1 - \frac{1}{2^t})^{\lfloor T/a \rfloor}$。
1.1 算法成功的依赖因素
算法的成功依赖于在各个层级上正确构建近似值。 CORRECT 函数在已知比特集合 $U$ 和 $V$ 的情况下,能以概率 1 产生正确的近似值。因此,算法的成功概率取决于 ${q_{a - t - 1}, p_{2a - t - 1}, q_{3a - t - 1}, \ldots, p_{(k - 1)a - t - 1}, q_{ka - t - 1}}$ 的正确性。
1.2 不同情况下的近似值分析
- 情况一:$p > q$
- 由于 $p$ 和 $q$ 具有相同的比特大小,所以有 $\frac{N}{2} < q < \sqrt{N} < p < \sqrt{2N}$。
- 假设存在 $p$ 的一个近似值 $p_{ha}$,它与 $p$ 共享最高有效位 ${0, \ldots, ha}$(其中 $1 \leq h \leq k$),则 $|p - p_{ha}| < 2^{l_p - ha}$。
- 利用 $p_{ha}
超级会员免费看
订阅专栏 解锁全文
4

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



