我试图理解这三种签名方案(ECDSA、EdDSA和ed25519)之间的关系,以及它们在密钥对派生、签名和签名验证方面的相互兼容程度。但我没能找到任何确凿的信息。我的意思是,例如,您能用EdDSA和/或反之亦然地验证EdDSA签名吗?
我在这里找到了最好的信息使我怀疑这些方案之间可能存在某种兼容性,但我找不到任何来源来证明或反驳它。
有人能解释一下这件事吗?
发布于 2018-04-15 22:32:35
Ed25519是EdDSA签名方案族的一个特定实例。Ed25519是在RFC 8032中指定的,并被广泛使用。任何人关心的唯一其他EdDSA实例是Ed448,它速度较慢,没有广泛使用,而且在RFC 8032中也有指定。EdDSA的一个实例中的密钥和签名在EdDSA的另一个实例中没有意义: Ed25519和Ed448是不同的签名方案。
ECDSA系列签名方案与EdDSA无关,只是它背后的数学还涉及椭圆曲线。任何特定的ECDSA实例,例如曲线secp256k1上的ECDSA和SHA-256 (如比特币使用的那样),都与它的任何其他实例不兼容,例如使用SHA-512的曲线nistp521上的ECDSA。
实际上,用户可能需要知道的是,Ed25519键在任何有意义的意义上都与ECDSA的任何实例中的键不兼容。因此,例如,在ssh协议中,ssh-ed25519密钥与ecdsa-sha2-nistp521密钥不兼容,这就是它们被标记为不同类型的原因。类似地,用于ssh-ed448的Ed448键是不兼容的,这就是为什么它也被标记为不同的类型。
在技术层面上,协议设计人员应该知道的是,ECDSA系列签名方案是一种古老的缓慢设计,它鼓励破坏安全的实现错误,而EdDSA系列签名方案是一种避免这些错误的现代设计。
https://crypto.stackexchange.com/questions/58380
复制相似问题