在 OpenVpn 连接中,我想使用椭圆曲线,但我不知道 EC 和 ED 之间有什么区别。哪个更好?
另外,在一些文档中我读到存在 ECDH,如果我没记错的话,它是椭圆曲线与 Diffie-Hellman 的组合。但我不确定 ECDH 是否与 EC 相同。如果不一样的话EC是不是就不需要DH文件了?如果不一样,ECDH 比 EC 更好吗?
如果EC与ED不同,ED是否需要DH文件?
综上所述,我想知道不同算法之间的区别以及哪种算法更好。
谢谢。
在 OpenVpn 连接中,我想使用椭圆曲线,但我不知道 EC 和 ED 之间有什么区别。哪个更好?
另外,在一些文档中我读到存在 ECDH,如果我没记错的话,它是椭圆曲线与 Diffie-Hellman 的组合。但我不确定 ECDH 是否与 EC 相同。如果不一样的话EC是不是就不需要DH文件了?如果不一样,ECDH 比 EC 更好吗?
如果EC与ED不同,ED是否需要DH文件?
综上所述,我想知道不同算法之间的区别以及哪种算法更好。
谢谢。
“ED”本身并不是一个单独的东西——它是 EC 的一部分。
一般来说,它是“扭曲的爱德华兹曲线”的缩写,从技术上讲,它只是椭圆曲线(“EC”)的另一种形式,显然比其他类型的陷阱更少。Curve25519 是常见的示例。
在签名方面,“EdDSA”是一种设计用于爱德华兹曲线的签名方案,与传统的“ECDSA”签名有很大不同——我相信,它比 ECDSA 更强大——但它仍然是 EC 加密的一种形式。
据我所知,ECDSA 和 EdDSA 在正确使用的情况下都是安全的;更重要的是,ECDSA 很容易让程序员出错。(例如,每个 ECDSA 签名都需要添加随机或其他唯一数据;这在过去导致了许多错误,包括两周前 PuTTY 中的错误。)
然而,只有某些曲线可以与EdDSA 一起使用(例如,不可能将EdDSA 与P-256 一起使用,它必须与传统的ECDSA 一起使用)。
没有“EdDH”,因为两条 Curve25519(在该上下文中通常称为“X25519”)使用相同的 ECDH,就像其他 EC 曲线一样。
“Ed25519”的正式意思是“带有 Curve25519 的 EdDSA”,尽管有时它也指 X25519(即带有 Curve25519 的 ECDH)。
因此,如果您在签名(例如证书签名或握手签名)的上下文中查看此内容,那么“EdDSA with Ed25519”比“ECDSA with P-256”好一点,尽管可能好不了多少。
同样,在 DH 密钥交换的情况下,“ECDH with X25519”可能比“ECDH with P-256”好一点。
它们不是可比的东西:
(同样,ECDSA和EdDSA是利用EC来实现数字签名;ECIES是利用EC来实现加密;等等)
ECDH不需要预先生成参数文件,因为它通常与特定曲线一起使用,而曲线本身就是双方已经知道名称的“参数”。
(但传统的 DH 有时也以这种方式使用 – 有几组预先生成的 DH 参数,例如“组 2”和“组 14”最初来自的 IPsec“Oakley”组。
如果您曾经研究过 SSH,它还使用“dh-group-exchange”参数文件,但“dh-group14”不需要参数文件,因为它已经引用了一组商定的参数.)