首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >纯EdDSA (ed25519)与HashEdDSA (ed25519ph)的差异

纯EdDSA (ed25519)与HashEdDSA (ed25519ph)的差异
EN

Cryptography用户
提问于 2019-07-18 12:04:19
回答 1查看 3.4K关注 0票数 7

我的问题指的是EdDSA,如RFC 8032中所规定的。

我从RFC中得知,ed25519和ed25519ph是EdDSA的两个不同的实例,主要是因为在ed25519ph的情况下,消息的哈希是签名的。

签名过程的第二步是:

SHA\mbox{-}512(dom2(F, C) || prefix || PH(M))

在ed25519中,PH函数是标识函数,在ed25519ph中,its是SHA512的实现。然而,我很好奇的一点是,这并不是两者之间唯一的区别。

根据RFC的dom2(F,C)实际上也是不同的:

dom2(x,y):签名或验证Ed25519时的空白八进制字符串。否则,八位组字符串:"SigEd25519 no Ed25519 collisions“\x{##**$$}{##**$} y,其中x在0-255范围内,y是最多255个八位数的八位数字符串。"SigEd25519 no Ed25519冲突“在ASCII中(32位字节)。

原因是什么?如果不是这种情况,我们可以通过简单地散列消息并将其作为输入传递给ed25519的实现来构造ed25519。它指定此结构的方式将与ed25519ph的实现不兼容(因为dom2前缀)。

EN

回答 1

Cryptography用户

回答已采纳

发布于 2019-07-18 14:19:20

这只是一项预防措施。如果没有这种分离,知道ed25519ph(m)的攻击者也会学习ed25519(h(m))

我不知道有任何现实世界的协议同时使用,也不知道这会是一个问题,但认为可能是这样的话,并不是太牵强。

领域分离是良好的卫生,并已成为非常普遍的新设计。

在使用dom2()时,选择ed25519为空字符串只是为了与现有实现保持兼容。

票数 6
EN
页面原文内容由Cryptography提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://crypto.stackexchange.com/questions/72035

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档