【问题标题】:Which it better? Pre-generate asymmetric keys or generate them in real-time?哪个更好?预先生成非对称密钥还是实时生成它们?
【发布时间】:2012-05-31 19:53:57
【问题描述】:

假设密钥库是安全的,并且需要为大约一百万个密钥提供服务,是实时生成非对称密钥更好,还是生成一堆密钥并存储它们以在需要时使用更好?

编辑 1:实时我的意思是当用户第一次注册时生成一个密钥对,从那时起,该密钥对用于与用户的所有通信。

【问题讨论】:

  • 用户 生成密钥对,而不是您。然后,用户将在注册过程中为您提供公钥。
  • 我同意这是通常的过程,但在这种情况下,我需要为服务器上的用户生成它。有人会说在网络上传递私钥是愚蠢的,但是让我们假设这种假设情况,私钥传递给他:)
  • 目前还不清楚您要解决什么问题。您是否尝试保护与用户的通信?如果是这样,您要保护他们免受什么威胁?我想不出您列出的机制可以解决的问题。

标签: encryption encryption-asymmetric


【解决方案1】:

非对称密钥有公共部分和私有部分;公共部分用于执行与私有部分完成的操作相辅相成的操作(例如,您使用私钥签名,然后使用公钥验证签名;或者您使用公钥加密数据,然后将其解密用私钥)。非对称密钥的要点是私有和公共部分可以由不同的实体知道;也就是说,公共部分是公共的(每个人都知道),而私人部分仍然是私有的。

因此,在大多数情况下,“实时”生成非对称密钥几乎没有意义:赋予私钥一些价值的是公钥已经为其他方所知

人们仍然可以想象在某些情况下可以使用“实时”生成非对称密钥。例如,使用“临时 Diffie-Hellman”密码套件之一的 SSL 连接:为每个连接生成可称为“非对称”的 DH 密钥,然后公共部分由 签名服务器(使用 另一个 非对称密钥,它不是即时生成的:公钥是服务器证书中的一个),然后发送到连接的客户端。在这种情况下,预生成 DH 密钥对并存储它们可以看作是一种优化,但不好的是,因为 DH 密钥对的生成速度非常快,而私钥存储是一个复杂而微妙的问题。

编辑:如果您的问题是关于用户注册时的密钥生成与提前生成和存储密钥:假设服务器端密钥生成确实是您想要的,那么提前生成和存储密钥是仅作为一种优化值得,如果动态生成被证明太昂贵而无法处理峰值(有时,许多用户试图同时注册)。我建议您在实施“解决方案”之前尝试并确保问题确实存在,因为私钥安全存储有些棘手。 RSA 密钥生成速度非常快(在基本 PC 上,您可以轻松地每秒生成十几个 RSA 密钥),并且使用离散对数(DSA、Diffie-Hellman、El-Gamal)或基于椭圆曲线的密码系统,它甚至相当快(例如,每秒一万 个新的 EC 密钥对,使用 PC)。

【讨论】:

  • 感谢托马斯的回答,我很抱歉没有正确理解我的观点,我已经编辑了我的问题:-)。
猜你喜欢
  • 2011-04-20
  • 1970-01-01
  • 2013-06-23
  • 1970-01-01
  • 2022-08-03
  • 1970-01-01
  • 1970-01-01
  • 2023-03-13
  • 2013-06-23
相关资源
最近更新 更多