在密码学中,椭圆曲线是基于有限域$ GF(p ^ k)$的一组;这个小组中有$ n $个元素,我们在一个大小为qq $的素数子小组中工作。我们将值$ h = n / q $表示为曲线的辅因子。

我的问题是:为什么我们要考虑使用辅因子为$ h> 1 $的曲线?或者换句话说,为什么我们要考虑使用具有复合点数的椭圆曲线?毕竟,离散日志问题可以在$ O(\ sqrt {n / h})$的时间内解决;如果我们要选择一个$ h> 1 $的曲线,则有意使这个问题变得更容易。

现在,如果$ h $小,我们并没有使它变得容易得多。如果(例如)$ p ^ k \ ge 2 ^ {256} $和$ h \ le 4 $,这似乎仍然是一个棘手的问题。另一方面,我不知道我们是否要使攻击者的工作变得比必要的容易,除非我们从中获得了其他好处(也许使其他攻击变得更加困难,或者获得了一定的计算效率)。

那么,使用辅因子> 1的曲线有什么好处?

评论

有没有一种方法可以产生辅因子为1的曲线?确保$ q $足够大吗?

#1 楼

我没有任何可靠的数据来支持这一点,但是有根据的猜测是,为了使Koblitz曲线能够将辅因子从“小”而不是“ 1”放宽,这在实现上似乎是一个有吸引力的选择。

二进制字段上的Koblitz曲线的形式为$ y ^ 2 + xy = x ^ 3 + ax ^ 2 + 1 $。
当$ a =时,辅因子至少为$ 4 $。 0 $,当$ a = 1 $时为$ 2 $。

评论


$ \ begingroup $
我做了一些研究,结果发现,对于任何偶数特征曲线(p = 2),点数几乎总是偶数。特别是,如果k为奇数,则点数将始终为偶数,除非它恰好是$ i \ in(-的形式为$ 2 ^ k + i 2 ^ {(k + 1)/ 2} + 1 $ 1,0,1)$(而且我怀疑那些与您要在其中进行加密的曲线不对应)。因此,是的,看起来它们允许$ h> 1 $允许甚至特征曲线。
$ \ endgroup $
–雨披
2012年6月13日在13:46



$ \ begingroup $
是的,你是对的。每当$ xy $系数非零时,就会有2个琐碎的点。否则,您将获得奇异(不可用)或超奇异(较弱)曲线。
$ \ endgroup $
–塞缪尔·内维斯(Samuel Neves)
2012年6月13日在18:15

$ \ begingroup $
那么,为什么我们要关心偶数特征曲线,因为它们不安全,所以隐含着偶数个点?
$ \ endgroup $
–好奇
13年4月21日在14:51



#2 楼

蒙哥马利曲线和扭曲的爱德华兹曲线具有偶数阶,但是与Weierstrass模型相比,可以使用更少的乘法来实现群律。这就是为什么这些曲线很流行的原因,我们必须与辅助因子$> 1 $一起生活。

还有其他一些原因更喜欢使用素数阶椭圆曲线(例如,小亚组攻击)。所以您说对了,在理想世界中,将使用素数阶曲线。但是有时候使用更有效的曲线模型值得您付出麻烦。

#3 楼

当涉及到实用和标准支持的解决方案时,使用h = 1是相当普遍的。这是为了防止小型小组攻击。



Brainpool曲线标准将h = 1定义为要求:https://tools.ietf.org/html/rfc5639(第17页)


辅助因子设置为1。




以下所有NIST曲线也具有h = 1(请参见:http ://www.secg.org/SEC2-Ver-1.0.pdf)

secp192r1

secp224r1

secp256r1(所有流行的FOSS中的默认设置包括OpenSSL的实现)
secp384r1

secp521r1


Bernstein的Curve25519是例外,其中h = 8(https:// tools。 ietf.org/html/rfc7748#page-4)。苹果公司实际上已在其云加密解决方案中使用了该软件,现在已转移到NIST SP 800-186,但我尚未看到它发布。正如其他人指出的那样,此处已考虑了性能问题。

评论


$ \ begingroup $
难道不是说Curve25519的有效私钥比辅因子为1的曲线少8倍? -如果是这样,是否会使曲线的强度小于128位?我们为什么要在这样的小组中工作?当然,我们应该利用曲线上的所有有效点吗?
$ \ endgroup $
–伍德斯托克
19年11月18日在16:18

$ \ begingroup $
@Woodstock h = 8肯定会影响位数,因为所有键都应为8的倍数。这让我认为实际的键强度比素数阶曲线短3位。
$ \ endgroup $
–奥列格(Oleg Gryb)
19年11月18日在21:09