c++ - 利用 sandy bridge 的硬件真随机数生成器?

标签 c++ numbers hardware generator intel

我想知道是否有办法利用在英特尔沙桥 CPU 中发现的新的基于硬件的真数生成器?我读到英特尔的 MKL(数学内核库)公开了此功能,但这需要 MKL 套件和英特尔编译器,最终非常昂贵。

有没有其他方法可以在我的 C++ 代码中使用硬件随机数生成器? 例如,一个不错的、只有 header 的库?

最佳答案

英特尔已在 http://software.intel.com/en-us/articles/intel-digital-random-number-generator-drng-software-implementation-guide 发布了 rdrand 指令的手册、库和代码示例.

自述文件:

"Because the many of compiler toolchains do not support this new instruction, this library was created to facilitate easy access to it. The idea is simple: link to a built static library and enjoy the new feature!"

main.c 中有所有库调用的示例。

我能够在 Mac OS X 上用 gcc 编译静态库和测试程序。文档指出它也与 Linux 和 Windows 兼容。

请注意,rdrand 实际上是一个 128 位伪随机数生成器,具有硬件生成的熵。 (即将推出的 Broadwell 架构将提供一个 rdseed 指令来访问真正的随机数生成器。)差异的详细信息及其含义可以在 http://software.intel.com/en-us/blogs/2012/11/17/the-difference-between-rdrand-and-rdseed 的“长答案”标题下找到。 .

关于c++ - 利用 sandy bridge 的硬件真随机数生成器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7901829/

相关文章:

c++ - memcpy vector ?

c++ - 我想在不使用字符串的情况下声明一个指向字符的指针数组

javascript - 在特定位置乘以字符串中的数字

sql-server - 我应该如何估计 SQL Server 2005 数据库的硬件要求?

java - 如何定义程序的要求

c++ - Windows 预缓存 SQLite 问题

c++ - LNK2019 - 未解析的外部符号

javascript - 你能用 Jquery 操作字符串中的数字吗?

javascript - 每次单击按钮时都将数字连接到 url 吗?

assembly - 学习如何构建电路的最佳方法是什么?