众所周知,我们可以将在E上定义的曲线\mathbb{F}_p上的ECDLP实例转换为素数p,将\mathbb{F}_{p^k}中的离散日志实例转换为一些k。它被称为嵌入度,是最小整数k,使得曲线的阶数除以p^k-1。
(实现这一目标的一种方法是使用配对。)
我对二进制曲线感兴趣,例如定义在\mathbb{F}_{2^m}上,并且想做类似的事情,但是在这种情况下我找不到关于嵌入度的信息(例如,曲线数据库没有提到二进制曲线的嵌入度,例如https://neuromancer.sk/std/secg/sect233k1)。也许某些代数论点失败了,但我不明白为什么。
上下文:我想在ZK中证明一个关于不同曲线上两个离散日志的陈述。我认为,如果在\mathbb{F}_{2^m}中定义了一条曲线,在\mathbb{F}_{2^n}中定义了另一条曲线,那么如果我可以将这两个实例转换为有限域\mathbb{F}_{2^{km}}, \mathbb{F}_{2^{ln}},其中k,l是嵌入度,则可以将其作为字段扩展并使用算法。
发布于 2022-03-23 14:05:47
虽然二值曲线存在这种传输,但嵌入度通常太大,无法计算。在对友好曲线中,构造特别创建了一个极低的嵌入度,但通常我们期望嵌入度为O(\ell),其中\ell是组的顺序。
若能考虑\ell-1,则计算嵌入度是可行的。一个简单地计算2个模\ell的顺序(特别是如果2是一个原始根模\ell,那么它的顺序是\ell-1)。如果我们把d写成2阶,椭圆曲线取域\mathbb F_{2^m},则嵌入度为md/\mathrm{GCD}(m,d)。
https://crypto.stackexchange.com/questions/99249
复制相似问题