二进制域上亏格2超椭圆曲线除子类的快速减半算法
在密码学领域,超椭圆曲线的除子类减半算法有着重要的应用。本文将深入探讨二进制域上亏格2超椭圆曲线除子类的减半问题,介绍相关的域算术、曲线选择以及具体的减半公式。
1. 域算术与除子减半
在本文中,我们假设有限域 $F_q$ 的阶为 $2^n$,其中 $n$ 不能被 2 或 3 整除。这主要是出于安全考虑,因为当 $n$ 有 2 或 3 的因子时,可能会受到 Weil 下降攻击。实际上,在密码学应用中,通常假设 $n$ 是素数。此外,由于 $n$ 与 2 互质,我们可以在该域中计算立方根和 5 次方根,这有助于简化曲线方程。同时,因为 $n$ 是奇数,所以 $Tr(1) = 1$,并且我们可以利用 $Tr(\alpha) = Tr(\alpha^2)$ 来简化一些迹的计算。
在特征为 2 的有限域中,一些在奇数特征域中计算代价很高的操作变得非常高效,例如计算二次方程的根。这促使了减半 - 加法算法的发展,它是双倍 - 加法标量乘法的一种变体,将双倍操作替换为减半操作。这种方法最初用于椭圆曲线,最近被扩展到亏格 2 的超椭圆曲线。在某些域中,计算平方根可能比计算平方更快,迹(从 $F_{2^n}$ 到 $F_2$)和半迹(用于求解二次方程)的计算成本也与平方操作相当。因此,在这些域上的曲线中,用平方根替换平方是一种不错的策略,这正是减半操作通常所做的。
为了统计操作次数,我们用 $I$ 表示求逆,$M$ 表示乘法,$S$ 表示平方,$SR$ 表示平方根,$TR$ 表示迹,$HT$ 表示半迹。
2. 曲线的选择
亏格 2 的虚超椭圆曲线在 $F_{2^d}$ 上的形式为: <
超级会员免费看
订阅专栏 解锁全文

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



