gpt4 book ai didi

cryptography - 为什么应该避免基于时间的随机数?

转载 作者:行者123 更新时间:2023-12-04 05:28:34 27 4
gpt4 key购买 nike

在挑战-响应机制(和其他系统)中,建议不要使用基于时间的随机数。

为什么应该避免?

最佳答案

(免责声明:我没有加密货币学位,我写的一切只是外行的意见。)

不鼓励使用基于时间的随机数,因为它们很可能偶然发生冲突并且容易以错误的方式实现。

Nonce(“仅使用一次的数字”)与 key 或初始化向量不同。使用它们的密码通常在设计时考虑到:

  • 只要不泄露 key ,向攻击者公开 nonce 就不会损害安全性;
  • nonces 根本不必是随机的,对于给定的 key ,它们必须是唯一的。

  • 因此,选择零作为起始随机数并在发送每个连续消息之前递增它是完全可以的。 Nonce 的可预测性根本不是问题。

    不鼓励基于时间的随机数的唯一原因是可能的向后时钟调整。如果您的系统 NTP 服务将您的时钟倒退两秒,那么您很可能会在短时间内以相同的随机数发送两条加密消息。如果你能保证永远不会发生时钟倒带,那就继续吧。

    反对基于时间的随机数的另一点是时钟分辨率可能不足以为每个消息提供唯一编号。

    更新:

    就加密强度而言,使用基于计数器或基于时间的随机数是安全的。但是,它们可能会通过向攻击者提供附加信息来削弱您的安全系统,即:您的系统已经发送了多少消息、平均消息速率、同时服务的客户端数量等等。攻击者可能能够利用这些信息为他们谋取利益。这称为 a side-channel attack .

    另见:
  • https://crypto.stackexchange.com/questions/37903
  • https://crypto.stackexchange.com/questions/53153
  • https://download.libsodium.org/doc/secret-key_cryptography/encrypted-messages.html , “Nonce-misuse resistance”一节
  • 关于cryptography - 为什么应该避免基于时间的随机数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42643421/

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