近似整数公约数的求解方法
在数学和密码学领域,求解近似整数公约数(Approximate Integer Common Divisors,ACDPs)是一个重要的问题。本文将介绍两种主要的求解方法:连分数法和格基约化法。
1. 连分数法求解ACDPs
连分数法是一种通过考虑欧几里得算法对输入加法误差的敏感性来求解ACDPs的方法。其主要依据的定理如下:
定理21 :设 $\rho$ 为任意实数,$g_i/h_i$($i = 1 \cdots m$)表示 $\rho$ 在连分数逼近过程中的(多项式多个)近似值。对于所有 $i = 1 \cdots m$,有 $\left|\rho - \frac{g_i}{h_i}\right| < \frac{1}{h_i^2}$。此外,对于每一对整数 $s$ 和 $t$,如果 $\left|\rho - \frac{s}{t}\right| < \frac{1}{2t^2}$,那么比值 $\frac{s}{t}$ 将作为某个 $j \in (1 \cdots m)$ 的近似值 $g_j/h_j$ 出现。
1.1 PACD CF算法
输入为两个整数 $a_0$ 和 $b_0$($a_0 < b_0$),我们要寻找公共除数 $d = b_0^\alpha$,使得 $d$ 能同时整除 $a_0 + x_0$ 和 $b_0$,且 $|x_0| < X = b_0^{2\alpha - 1}$。
算法步骤如下:
1. 计算 $\frac{a_0}{b_0}$ 的连分数逼近,得到(多项式多个)近似值 $g_i/h_i$。
2. 测试