椭圆曲线离散对数问题与密码学应用
椭圆曲线离散对数问题的攻击方法
在椭圆曲线离散对数问题中,有多种攻击算法。对于任意椭圆曲线,Baby Step/Giant Step 以及 Pollard ρ 和 λ 方法似乎是较为优秀的算法。不过,在某些情况下,指数微积分技术可用于高亏格曲线的雅可比簇,以解决特定椭圆曲线的离散对数问题,但这些方法的普遍适用性并不明确。
还有一种由 Silverman 提出的有趣方法,称为 xedni 微积分。假设要在曲线 $E$ 上找到 $k$ 使得 $Q = kP$,可以将 $E$、$P$ 和 $Q$ 提升到整数环 $\mathbb{Z}$ 上的椭圆曲线 $\tilde{E}$ 以及对应的点 $\tilde{P}$ 和 $\tilde{Q}$。若能找到 $k’$ 使得 $\tilde{Q} = k’\tilde{P}$,那么 $Q = k’P$。然而,通常 $\tilde{P}$ 和 $\tilde{Q}$ 是独立的,不存在这样的 $k’$。Silverman 的思路是从几个(最多 9 个)形如 $a_iP + b_iQ$ 的点开始,将它们提升到有理数域 $\mathbb{Q}$ 上的曲线。具体操作如下:
1. 为每个点选择提升到 $\mathbb{Z}$ 的表示。
2. 写出包含这些提升点的任意三次曲线。
3. 由于点在曲线上会给出关于三次方程系数的线性方程,使用线性代数求解这些系数。
4. 将此曲线转换为 Weierstrass 形式。
期望的是,在 $\mathbb{Q}$ 上的曲线大多最多有 2 个独立点,因此提升后的点之间可能存在关系,将这些关系模 $p$ 约简可得到 $P$ 和 $Q$ 之间的关系,从而解决
超级会员免费看
订阅专栏 解锁全文
59

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



