gpt4 book ai didi

encryption - 公钥的长度(加密)可以与私钥不同吗?

转载 作者:行者123 更新时间:2023-12-02 22:58:53 24 4
gpt4 key购买 nike

我有一个 1024 位的私钥,并用它来生成公钥。这是否自动意味着我的公钥也具有 1024 加密?或者它的加密大小可以更小吗? (512、256...)

PS:我最感兴趣并谈论的是 RSA key 中模数(“n”)的大小。大小通常为 1024 或 2048 位。但我很高兴看到这引发了讨论,所有这些都激发了我对密码学的兴趣。

最佳答案

这取决于加密算法以及您所说的公钥/私钥。有时,与磁盘或网络上的序列化相比,可以使用不同大小的 RAM。

RSA

RSA 公钥由模数 n 和公共(public)指数 e 组成。我们通常为 e 选择一个较小的值(3 或 65537 很常见)。 e的大小对安全性影响不大。由于e通常小于四个字节,而n超过一百个字节,因此总大小由模数决定。如果您确实愿意,可以将 e 修复为协议(protocol)规范的一部分,这样就只需要存储 n

RSA 私钥可以用不同的形式表示,但通常我们存储值 pqdp dqednInvQ。它们的总大小大于公钥。其中大多数并不是严格必需的,但使用它们而不是重新生成它们会很方便。给定 epq 重新生成所有这些都非常简单。

当我们在 RSA 上下文中谈论 key 大小时,我们总是指模数的大小,忽略所有其他元素。这是一个有用的约定,因为这是影响安全性的唯一值。 n 的典型大小是 2048 位。

有限域加密(Diffie-Hellman、DSA 等)

私钥是安全级别大小两倍的标量。典型值为 256 位。

公钥是一个群元素,它比私钥大得多。典型值为 2048 位。

因此,对于有限域加密,公钥比私钥大得多。

椭圆曲线

私钥是安全级别大小两倍的标量。典型值为 256 位。这部分与有限域加密相同。

公钥是一个组元素。序列化此类元素有两种形式。压缩形式比私钥稍大(最多几个位)。未压缩的形式大约是私钥大小的两倍。压缩形式的典型值为 256 位,未压缩形式的典型值为 512 位。

私钥作为种子

当您自己生成公钥/私钥对时,您始终可以将它们存储为 PRNG 的种子。这样,无论您使用哪种方案,它们都非常小,只有 160 位左右。这样做的缺点是重新生成私钥的自然形式可能会很昂贵。要求 key 对的创建方法保持不变。

公钥指纹

您通常可以只存储指纹(大小约为 160 位),而不是存储完整的公钥。这样做的缺点是它增加了消息/签名的大小。

摘要

对于某些算法,公钥和私钥的大小相同,对于某些算法,它们不同,并且通常可以以一定的成本(解压时间或消息大小)来压缩其中一个或两个。

关于encryption - 公钥的长度(加密)可以与私钥不同吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19343022/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com