32、超椭圆曲线的康托算法与离散对数问题解析

超椭圆曲线的康托算法与离散对数问题解析

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$ 的除子类的芒福德表示。

下面是康托算法的流程图:


                
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值