【发布时间】:2019-11-01 14:44:34
【问题描述】:
在 C++ 中,我们如何使 std::uniform_int_distribution 加密安全? 例如,以下代码是否生成加密安全的统一随机数? 如果不是,我们该如何纠正?
#include <iostream>
#include <random>
int main(void){
std::default_random_engine generator;
std::uniform_int_distribution<int> distribution(0,9);
int p[10]={};
for (int i=0; i<10; ++i) {
int number = distribution(generator);
++p[number];
}
}
【问题讨论】:
-
这对InformationSecurity.SE 来说可能是一个更好的问题如果您决定在那里发帖,请在此处删除问题。
-
谷歌 NIST SP 800-22
-
为什么你想要一个来自 CSPRNG 的统一 int?尤其是在那个范围内! CSPRNG 并非旨在产生均匀分布的输出,它们的目标是难以预测的输出。如果您关心统计属性,请使用为其设计的 RNG
标签: c++ random cryptography