首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么EdDSA需要b位私钥而不是b/2位?

为什么EdDSA需要b位私钥而不是b/2位?
EN

Cryptography用户
提问于 2020-01-30 17:49:17
回答 2查看 364关注 0票数 5

根据设计,EdDSA需要一个b-bit字符串作为密钥k,在签名时,将其扩展为2b-bit string H(k),完成一些位旋转操作,并将前半部分用作签名中的私钥。[1]

该曲线将具有b-bit安全级别,并且可以在b \over 2中解决离散日志。

为什么EdDSA需要一个b-bit密钥,而不是只需要b \over 2-bit,而D8-bit似乎提供了与曲线本身相同的安全性?

EN

回答 2

Cryptography用户

回答已采纳

发布于 2020-01-30 19:36:30

一个可能的原因(也可能是设计选择背后的原因)是为了避免多目标攻击。

考虑存在k公钥/私钥对的设置,攻击者的目标是找到这些私钥之一。攻击者不关心获取哪一个私钥;获取其中任何一个都是“胜利”。例如,攻击者希望通过恢复证书颁发机构的私钥来伪造X.509证书:将链中的任何私钥恢复到可信根CA集中的任何根CA即可。对b-bit种子的暴力攻击将以平均成本2^b/k成功(攻击者计算每个潜在b-bit种子的公钥,然后在目标集合中查找公钥;查找不涉及复杂的数学,与公钥计算相比,可以在“可忽略”的时间内完成)。如果b = 128k是大的,那么这可以大大小于2^{128}

从“学术”的角度来看,这意味着128位种子只能提供“64位安全”:如果有一组2^{64}目标,那么攻击成功的代价是2^{64},而辩护者集体只花费了2^{64}的努力。将种子大小提高到256位是防止这种学术中断的一种简单而廉价的方法。

票数 7
EN

Cryptography用户

发布于 2020-01-30 19:00:47

私钥与曲线的顺序大致相同的原因是,可能的公钥数量等于G生成的循环子群的顺序。

这种情况因曲线而异,但最终一个较短的私钥最终会将子群中的一些可能的元素排除在外,削弱密码。

2^n/2中,DLP所能解决的事实是不相关的,因为攻击并不会强制使用键空间。它使用Pollard Rho。

的确,有些曲线产生的密钥空间比2^n (例如curve25519 )要小,而D3的辅助因素实际上导致了(2^n)/8的密钥空间,但为了简单和交叉兼容性,我们仍然使用32-byte键。图书馆将在必要时夹紧钥匙。

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

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

复制
相关文章

相似问题

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