gpt4 book ai didi

c++ - std::random_device 加密安全吗?

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:15:38 27 4
gpt4 key购买 nike

我看到很多人一起谈论安全和 std::random_device

例如,here幻灯片 22。

根据 cppreference , std::random_device :

std::random_device is a uniformly-distributed integer random number generator that produces non-deterministic random numbers.

它没有明确谈论安全性。

是否有明确提到 std::random_device 对密码学是安全的?

最佳答案

不,因为这不是 std::random_device 的设计目的;它旨在生成随机数,而不是为了安全。

在安全方面,随机性对 key 生成很有用,但随机性并不是绝对需要的。例如,AES不使用任何随机性,但美国使用 AES-256 加密绝密信息。

随机性和安全性交叉的一个领域是生成和使用随 secret 钥时;如果我能猜出种子并知道所使用的随机协议(protocol),那么我很有可能可以使用相同的种子值生成相同的“随机”值,从而生成相同的 key 。

std::random_device将使用硬件模块(如硬件 TPM )如果可用,否则它将使用操作系统具有的任何 RNG(如 Windows 中的 CryptGenRandom,或 *nix 系统中的 /dev/random),甚至可能是一个 PRNG(伪随机数生成器),它可能会生成相同的数字,具体取决于所使用的随机数算法。作为旁注:很像 AES instruction set被纳入芯片组以加速加密和解密,hardware RNG's随着算法转移到硬件中,有助于提供更大的熵池和更快的随机数生成。

因此,如果您在任何类型的加密 key 生成中使用 std::random_device,您需要知道部署到的系统上使用的是什么随机数生成器,否则您可能会发生冲突,因此您的加密系统容易受到重复 key 类型的攻击。<​​/p>

希望对您有所帮助。

关于c++ - std::random_device 加密安全吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44867500/

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