首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Ed25519公钥的前4个字节是随机的吗?

Ed25519公钥的前4个字节是随机的吗?
EN

Cryptography用户
提问于 2017-04-04 17:38:13
回答 1查看 673关注 0票数 4

我们使用的是Ed25519签名方案(它使用Curve25519)。密钥对由随机数据生成密钥,然后从所述秘密密钥计算32字节(256位)公钥。

问题是公钥的熵(随机性)。我们目前使用公钥的前4个字节作为公钥的“合理唯一”ID。我们的空间非常有限,不能超过4个字节。如果我们以不同的方式生成ID,我们会改进它的唯一性吗?例如,ID可以由公钥的Bytes 0-3和Bytes 4-7之间的XOR生成?或者使用公钥的前4个字节的sha-512。不然呢?

EN

回答 1

Cryptography用户

回答已采纳

发布于 2019-03-23 08:10:57

如果32位If是独立分配的,那么通过统一随机分配if所能得到的最好结果是n^2/2^{32},如果n是小的,则n是您拥有的if的数量;一旦n超过2^{16},碰撞的概率就会迅速接近1。这就是标准生日悖论

在ids上使用非均匀分布甚至更糟。均匀随机曲线点编码中比特的分布是不可检测的不均匀的--在每个人都意识到有后门之前,这已经是报告的第一个问题_EC_DRBG之一了。在这种情况下,低阶32位可能非常接近于均匀,不会影响碰撞概率;为了缓解这种担忧,您可以首先通过像SHAKE128-32这样的哈希传递编码的曲线点。

但是,您应该更加关注您希望在第一时间使用32位in实现的目标!在OpenPGP中,这一直是一个麻烦的来源,例如,欺诈性密钥被伪造,并被上传到密钥服务器,每32位密钥可能。为了避免这种麻烦,您从根本上需要:

  1. 使id分配不独立,例如使用32位字符串的秘密排列,这样您就可以拥有多达40亿个id。
  2. 使用更大的id空间,例如256位
  3. 接受碰撞会发生,并找到一种方法来优雅地处理它们,即使在对抗性的输入下,这些都是碰撞。
票数 4
EN
页面原文内容由Cryptography提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

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

复制
相关文章

相似问题

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