超椭圆曲线的康托算法与离散对数问题解析
1. 康托算法基础
康托算法主要用于处理超椭圆曲线中由芒福德表示给出的除子类相加问题。该算法源于高斯的二次型合成理论。
假设 $D_1$ 和 $D_2$ 是次数为 0 的除子,它们的类分别对应于对 $(U_1, V_1)$ 和 $(U_2, V_2)$。康托算法步骤如下:
1. 计算 $d = \gcd(U_1, U_2, V_1 + V_2)$,并找到多项式 $h_1, h_2, h_3$ 使得 $d = U_1h_1 + U_2h_2 + (V_1 + V_2)h_3$。
2. 计算 $V_0 = (U_1V_2h_1 + U_2V_1h_2 + (V_1V_2 + f)h_3) / d$。
3. 计算 $U = U_1U_2/d^2$,并取 $V \equiv V_0 \pmod{U}$,且 $\deg V < \deg U$。
4. 计算 $\tilde{U} = (f - V^2)/U$,并取 $\tilde{V} \equiv -V \pmod{\tilde{U}}$,且 $\deg(\tilde{V}) < \deg \tilde{U}$。
5. 令 $U = \tilde{U}$,$V = \tilde{V}$。
6. 将 $U$ 乘以一个常数使其为首一多项式。
7. 如果 $\deg(U) > g$,返回步骤 4;否则,继续。
8. 输出 $(U, V)$。
这个对 $(U, V)$ 就是 $D_1 + D_2$ 的除子类的芒福德表示。
下面是康托算法的流程图:
超级会员免费看
订阅专栏 解锁全文
36

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



