量子计算中的随机采样、离散对数及相关问题解析
1. 离散对数算法中的特殊情况处理
在离散对数算法中,存在一些特殊情况需要处理。当采样得到 $k = 0$ 时,这种情况发生的概率为 $1 - \frac{1}{r}$,我们可以不断尝试,直到得到非零的 $k$。
若 $d = \gcd(k, r) > 1$,此时有 $r = r_1d$,$k = k_1d$,且 $kt = k_1dt \bmod r$。我们可以通过计算 $(k_1^{-1} \bmod r_1)(k_1t \bmod r_1) \bmod r_1$ 得到 $t_1 = t \bmod r_1$。然后可知 $t = t_2r_1 + t_1$,其中 $t_2$ 是一个非负整数且 $t_2 < d$。若定义 $b_1 = b^{r_1}$ 和 $a_1 = a^{r_1}$,则有 $b_1 = a_1^{t_2}$,且 $a_1$ 的阶为 $d$。接着可以应用离散对数算法来求 $t_2 \bmod d$ 或 $t_2$ 模 $d$ 的某个非平凡因子。广义离散对数算法的递归应用的期望次数至多为 $O(\log r)$。
当 $r$ 不是素数时,可采用第 7.5 节中针对隐藏子群问题的一般分析方法。该方法是将离散对数算法重复 $O(\log r)$ 次,生成对 $(k_1t, k_1), (k_2t, k_2), \cdots, (k_mt, k_m)$,然后求解线性系统:
[
\begin{bmatrix}
k_1t & k_1 \
k_2t & k_2 \
\vdots & \vdots \
k_mt & k_m <
量子计算中的随机采样与离散对数
超级会员免费看
订阅专栏 解锁全文
12

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



