我试图了解这三种签名方案(ECDSA,EdDSA和ed25519)之间的关系,主要是在密钥对派生,签名和签名验证的意义上,它们在什么程度上相互兼容,但我找不到任何结论性信息。我的意思是,例如,您可以使用EdDSA和/或反之来验证ed25519签名吗?

我发现的最佳信息是:https://askubuntu.com/questions/363207/what-is-the ssh使用的rsa dsa和ecdsa密钥之间的差异,我怀疑这些方案之间可能存在某些兼容性,但我找不到任何证据来证明或反对它。

有人可以对此有所了解吗?

#1 楼

Ed25519是EdDSA系列签名方案的特定实例。 Ed25519在RFC 8032中指定并被广泛使用。任何人都关心的唯一的EdDSA实例是Ed448,它速度较慢,没有广泛使用,并且也在RFC 8032中指定。在一个EdDSA实例中的密钥和签名在另一个EdDSA实例中没有意义:Ed25519和Ed448是不同的签名方案。

ECDSA签名方案系列与EdDSA无关,除了它背后的数学也涉及椭圆曲线。 ECDSA的任何特定实例,例如带有SHA-256的secp256k1曲线上的ECDSA(如比特币使用),都与它的任何其他实例不兼容,例如带有SHA-512的nistp521曲线上的ECDSA。

在实用层面上,用户可能需要了解的是,Ed25519密钥在任何有意义的意义上都不与任何ECDSA实例中的密钥兼容。因此,例如,在ssh协议中,ssh-ed25519密钥与ecdsa-sha2-nistp521密钥不兼容,这就是为什么它们被标记为不同类型的原因。同样,用于Ed448的ssh-ed448密钥也不兼容,这就是为什么它也被标记为不同类型的原因。
在技术层面,协议设计者应该知道的是ECDSA签名家族schemes是一种古老的慢速设计,它鼓励破坏安全性的实现错误,而EdDSA签名方案系列是一种避免这些错误的现代设计。

评论


$ \ begingroup $
有趣。如果ECDSA与EdDSA相比如此糟糕和可怕,为什么选择ECDSA来支持诸如比特币和以太坊这样的流行和具有加密思想的区块链实现?
$ \ endgroup $
–大卫说恢复莫妮卡
19年7月15日在19:39

$ \ begingroup $
比特币早于Ed25519。
$ \ endgroup $
–巨石
19年7月22日在21:36

$ \ begingroup $
@DavidsaysReinstateMonica它不仅早于Ed25519,而且ECDSA以此方式处理专利。更有效,更明显的Schnorr签名(基于EdDSA的专利)已获得专利,因此必须故意使ECDSA钝化,以避免侵犯专利。请参见Thomas Pornin的答案,网址为:crypto.stackexchange.com/a/64852/75224;由于拥有这项专利,当时没有其他真正的选择。
$ \ endgroup $
–xorhash
20年4月1日在14:07

$ \ begingroup $
但是,如ia.cr/2020/823和ia.cr/2020/1244中最近提到的,Ed25519在RFC兼容性和不可伪造性方面存在其自身的问题。
$ \ endgroup $
– Kostas Chalkias
20-10-9在22:45