问题标签 [rdrand]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
1522 浏览

random - intel的RdRand是TRNG还是PRNG?

我在网上搜索了很长时间,但找不到明确的答案。我想知道英特尔的 rdrand 指令生成的随机数的质量。例如,它与IDQ 的卡相比如何?它是真正随机的还是伪随机的?

谢谢

0 投票
1 回答
599 浏览

delphi - 在 Delphi 6/7 中使用 Intel 的 RdRand 操作码

有没有办法在旧的 Delphi 版本(如 6 或 7)中使用英特尔的 RdRand 操作码?

也许使用

asm db $...结束;

或者其他的东西?如何将数字存储到变量中?

速度非常重要。我不能为此使用外部库。

0 投票
0 回答
177 浏览

c++ - 如何在 C++ 中访问英特尔随机数生成器 RdRand?

通常,我使用以下几行在 C++ 代码中生成伪随机数:

但由于英特尔在他们的新处理器中实现了随机生成器硬件,我想利用热波动的真正“随机性”。我搜索了英特尔 C++ 编译器文档,但没有找到关于RdRand API 的权威指南。

我看了这篇文章: True random numbers with C++11 and RDRAND

但它没有明确显示如何在 C++ 中调用此函数。

所以我的问题是什么编译器或库现在支持RdRand以及调用它的 C++ 代码模板是什么。

0 投票
2 回答
3996 浏览

c++ - RDRAND 和 RDSEED 内在函数 GCC 和 Intel C++

英特尔 C++ 编译器和/或 GCC 是否支持以下内在函数,就像 MSVC 自 2012 / 2013 年以来所做的那样?

如果支持这些内在函数,那么它们支持哪个版本(请使用编译时间常数)?

0 投票
1 回答
661 浏览

c - 在 C 语言中,Call Rand() 和 RdRand 的速度有什么区别?

继我之前的问题“ Rand() 在 C 语言中是基于什么算法? ”之后,我想知道函数算法的原因是我想比较一下它与 RdRand 之间的速度差异。

我试图循环它一亿次并计算它的运行时间。

通常,使用硬件创建随机数(RdRand)会使其速度更快,但结果显示相反(Rand() 3sec VS RdRand 10sec)。

有人可以帮我解决这个问题吗?

太感谢了!

0 投票
2 回答
422 浏览

assembly - Rdrand 指令 SIGILL

Cpuid 说我的系统上有 rdrand,但是 rdrand 指令会抛出 sigill。我在 VmWare 工作站 11 中使用 linux mint,我搜索了 rdrand 的工作站支持,他们说它从第 9 版开始启用。主机进程是i5-2550k,应该支持rdrand。我能以某种方式解决这个问题吗?这是 gdb 清单:

0 投票
1 回答
6097 浏览

gcc - 如何使用 RDRAND 内在函数?

我在看 HJ Lu 的PATCH: Update x86 rdrand intrinsics。我不知道我是否应该使用_rdrand_u64, _rdrand64_step,或者是否还有其他功能。似乎没有为他们编写测试用例。

似乎也缺少手册页(来自 Ubuntu 14,GCC 4.8.4):

一个人如何使用RDRAND内在函数来生成一个 32 字节的块?


一个相关的问题是RDRAND 和 RDSEED 内在函数 GCC 和 Intel C++。但它并没有告诉我如何使用它们,或者如何生成一个块。

0 投票
2 回答
515 浏览

c - Microsoft 编译器下 _rdrand_step 内在函数的可用性?

根据微软的x64 (amd64) Intrinsics List,微软为 RDRAND 提供了一个内在函数:

  • _rdrand16_step
  • _rdrand32_step
  • _rdrand64_step

但是,该页面没有讨论检测内在函数的可用性。[2]有一个脚注,但它说它仅适用于 Intel CPU。

我有两个问题。首先,我如何检测内在函数的可用性。也就是说,我应该使用什么预处理器宏来保护对 say 的调用_rdrand64_step

其次,如何在 AMD CPU 下访问 RDRAND。根据 AMD 手册,AMD 也提供了它。

(更幽默的是,微软将页面命名为 amd64 Intrinsic List。为什么他们不包括 AMD 时称它为 AMD64 Intrinsic List ???)


对于 AMD 和 RDRAND 指令,请参考AMD64 架构程序员手册第 3 卷:通用和系统指令,第 278 页。

0 投票
1 回答
734 浏览

c - GCC下使用RDRAND时如何设置REX前缀?

我正在尝试使用英特尔的RDRAND指令。根据英特尔® 64 和 IA-32 架构软件开发人员手册第 2 卷(第 4-298 页),RDRAND默认情况下会生成 32 位随机值,即使在 64 位机器上也是如此:

在 64 位模式下,指令的默认操作大小为 32 位。使用 REX.B 形式的 REX 前缀允许访问其他寄存器 (R8-R15)。

我正在尝试使用 强制生成 64 位rdrandq,但它会产生错误(/tmp/ccLxwW6S.s由于使用了内联汇编):

如何在 GCC 下强制使用 64 位版本的 RDRAND 指令?在 GCC 下使用 RDRAND 时如何设置 REX 前缀?

提前致谢。


在下面的代码中,outputbyte[]一个长度为size. safety是一个故障保险。两种不同的字长处理X86、X32 和 X64 平台

如果我从 RDRAND 中删除显式操作数大小(即使用rdrand而不是rdrandlor rdrandq),那么在尝试使用 时会出现错误word64

0 投票
3 回答
1650 浏览

c++ - 如何将 RDRAND 指令添加到用 VS 2008 编译的 64 位代码中?

我正在 Visual Studio 2008 IDE 中开发一个 C++ 项目,我需要在其中使用 Intel 的新RDRAND指令。我进行了快速搜索,MSDN 建议使用_rdrand64_step中定义的内在函数immintrin.h,而我在 VS 2008 中没有。

在 32 位编译代码中,我可以使用asm以下关键字:

asm但不支持x64 。

您能否建议我如何使用该RDRAND指令将我的项目编译为 64 位?