问题标签 [trng]

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 投票
6 回答
8460 浏览

random - 使用大气噪声的真随机数发生器

我必须构建一个 One Time Pad 系统,为此,我必须构建自己的 TRNG。我想知道如何记录大气噪声并使用它来生成随机数。到目前为止,我已经尝试记录一个 .wav 文件并用 Java 读取它,但这些值似乎不是很……随机。有什么建议么?我知道 Random.org,但我不能真正使用他们的生成器,我必须自己构建,所以我想要了解 Random.org 的人们如何构建他们的数字生成器,将大气噪声作为“随机性”的来源。

0 投票
1 回答
1613 浏览

haskell - 真随机数生成器 (TRNG)、Haskell 和经验/形式方法

我想对特定硬件生成的真随机数生成器 (TRNG) 数字进行验证,但我不习惯这样做。

首先,我想通过经验方法测试真随机数生成器(TRNG)的一致性(AKA,我想检查它们是否真的是真随机数(TRN));我不知道我是否可以用正式的方法来检查这个。

有没有关于这个主题的具体讲座?一些提示呢?是否有用于这种经验方法测试的工具?

0 投票
1 回答
84 浏览

perl - TRNG Perl 脚本查询

我认为我似乎已经成功地创建并测试了一个非常简单的脚本,当它在 Windows VPS 上运行时,它充当了真随机数生成器的构建块。因此,我想知道,如果这很容易,那么伪随机数生成器的意义何在?

这是脚本。

典型输出:
46980
-953586
47168
67242
59319

从上面的输出可以看出,这个脚本似乎运行得很好。

这个脚本在 CPU 速度非常快的专用服务器上也能正常工作吗?VPS 服务器上的时间是否特别不稳定?该脚本是否也适用于所有 Windows 系统?

如果我正在创建一个严重依赖于高质量 TRNG 的应用程序,那么任何人都可以看到为什么依赖此脚本可能是错误的任何原因吗?

0 投票
0 回答
51 浏览

random - Jericho Comms TRNG 可靠吗?

我正在寻找一种在智能手机上生成真正随机位/数字的方法。
创建自定义 TRNG 似乎很棘手,很多人建议信任已经存在的、经过广泛测试和批准的 TRNG。
但我找到了Jericho Comms,它使用图片中的自定义 TRNG 作为输入。
这有多安全、强大和可靠?这可能是生成真正随机数/位的有效方法吗?
我知道智能手机相机不适合这个目的,因为 JPEG 压缩和低质量......但忽略这一点,所提出的算法有多正确?

我粘贴文档:

这个过程描述了完整的算法:

  • 将用户的照片加载到内存中,并将其存储在 RGB 值的顺序数组中。
  • 获取每个像素的红色、绿色和蓝色 (RGB) 整数值。这将为每种颜色返回一个介于 0 和 255 之间的数字。
  • 移除顺序重复的黑色 (0, 0, 0) 像素、白色 (255, 255, 255) 像素和完全相同的像素颜色。这会删除照片中曝光不足、曝光过度和熵很小的部分。通常,除非出现硬件故障,或者照片的部分曝光不足/过度曝光,否则相邻像素的颜色完全相同是非常罕见的。通常在一张高质量的照片中,相邻像素中至少会有非常轻微的颜色变化。这一步去除了这些低熵区域。
  • 估计每组 RGB 值 1 位输入熵(每 24 位像素 1 位)。这是一个非常保守的估计。用户可以在 TRNG 设置中将其增加到每像素 3 位,这将解释每种颜色的最低有效位的熵。
  • 收集 512 个 RGB 值以获得 512 位的估计熵输入。
  • 将 512 RGB 值转换为其十六进制表示,并将它们输入到具有 512 位输出的加密哈希中。用户可以选择使用哪个哈希,程序允许使用 Skein 或 Keccak [c=2d]。两者都是 NIST 哈希函数竞赛中非常强大的决赛算法。将此 512 位的哈希输出作为临时种子存储到下一个哈希中。
  • 开始一个循环:
    - 检查新散列是否有足够的新输入熵,或者跳出循环。
    - 获取之前的临时种子。
    - 获取一组新的 512 个 RGB 值(512 位)作为新的输入熵。
    - 将种子和输入熵连接在一起,并使用哈希(种子 || 输入熵)对它们进行散列。
    - 将哈希输出的前 256 位附加到输出随机数据中。
    - 将临时种子更新为哈希输出的最后 256 位。
    - 返回到循环的开始。


    需要注意的是,该程序不会使用收集到的熵来播种伪随机数生成器以提供无限量的随机数据。该程序旨在成为一个真正的随机数生成器,因此只需要质量随机性,并且每个均匀随机位必须仅用于加密明文的一位。假设大多数伪随机数生成器甚至扩展熵的 CSPRNG 都可能在输出中产生微妙的偏差,并允许 NSA 或其他政府解密部分或全部消息。使用此程序的目的是避免将可用熵扩展到更多位。

  • 0 投票
    0 回答
    236 浏览

    java - LavaRand 是 TRNG 还是 CSRNG?和 SecureRandom?

    我在维基百科上找到了这个定义:

    Lavarand 是由 Silicon Graphics 设计的硬件随机数生成器,它的工作原理是拍摄熔岩灯中漂浮材料所形成的图案,从图片中提取随机数据,并使用该结果作为伪随机数生成器的种子。尽管随机数生成的次要部分使用伪随机数生成器,但由于使用了随机种子,整个过程本质上符合“真实”随机数生成器的条件。然而,它的适用性受到其低带宽的限制。

    因此,如果我用真正的随机种子播种 PRNG,我会获得 TRNG?
    但是这和 CSPRNG 有什么区别呢?

    例如,SecureRandom是一个 CSPRNG,它使用操作系统收集的真正随机熵位。
    - 如果它们可用 => 它会生成真正的随机数。
    - 如果熵池很低,它使用由真正随机位播种的 PRNG。=> 根据维基百科的定义,它是一个“真实”随机数生成器,因此它生成“真实”随机数。

    因此,在任何一种情况下,SecureRandom 都可以被视为 TRNG,因为它会产生真正的随机数......

    很明显,我遗漏了一些东西:P 可能误解是关于 true 和“true”之间的区别......
    有人可以向我解释区别?

    0 投票
    0 回答
    138 浏览

    unit-testing - Dieharder dab_monobit2 测试失败 - 所有其他测试通过 - TRNG

    我目前正在使用 dieharder 测试套件测试来自 TRNG 的一些 RNG 数字。我从 TRNG 获得了大约 380MB 的二进制测试数据,所有测试都通过了,除了一个测试 - dab_monobit2 测试(测试 209),我只是不知道为什么。

    据我了解,dab_monobit2 测试与其他单位测试(测试 100)完全相同,它计算特定范围内的 1 和 0,并检查其是否或多或少 50:50 。monobit 测试(测试 100)和 dab_monobit2 测试之间到底有什么区别?它对我的 TRNG 有什么看法?

    这里是 monobit 测试和 dab_monobit2 测试的输出:

    sts_monobit| 1| 100000| 100|0.74709531| 通过 dab_monobit2
    | 12| 65000000| 1|1.00000000| 失败的

    0 投票
    1 回答
    494 浏览

    vhdl - 如何使用 VHDL 创建异或环形振荡器

    我想使用多个反相器创建异或振荡器。振荡器和反相器的数量应通用定义。我已经完成了 1 个振荡器,但我不知道如何多次生成相同的振荡器并让它们异或。这是我的代码的一部分:

    我已经使用 osc_chain 作为逆变器之间的信号。

    0 投票
    1 回答
    88 浏览

    java - True 通过字节生成器生成整数的随机数 (BlueRand)

    我正在尝试创建一个 Java 应用程序,它接收一个字符串并使用该字符串来确定应该从 1 - x 的范围内随机选择多少个整数,其中 x 是一个整数值。我知道使用现代计算技术很难/不可能生成“真正的”随机生成,但是 github 存储库引起了我的兴趣,它使用 jpeg 图像作为随机数生成的来源(https://github.com/prgpascal/bluerand)。

    然而,生成器似乎创建了随机数量的字节,所以我想知道你们是否有任何迹象表明如何使用它来以某种方式生成一个范围内的整数。

    当然,如果你们中的任何人知道任何其他没有配额限制的生成器,无论是来自具有 api 的网站还是在本地计算机上运行的可以执行此任务的库,我都错过了,我很乐意了解它并转移我的注意力!

    感谢您的时间。

    0 投票
    1 回答
    27 浏览

    matlab - 如何在matlab中生成概率3D图

    我已经构建了真正的随机数生成器,我想可视化结果。我正在测试很多生成器,然后每个生成器都会生成一个 txt.file。就像 543 35 68 3 ... 在 txt 文件中一样。我想在 matlab 中绘制一个 3D 图。它应该有 3 个轴,分别是每个数字的概率、生成器和随机数的间隔,见图。这些生成器是16位的,所以最大的数是65535。例如30000已经生成了10次,这个文件有100000个随机数,所以30000的概率是10/100000。任何帮助表示赞赏! 数字

    0 投票
    2 回答
    60 浏览

    machine-learning - 机器学习模型可以用于预测 TRNG 输出吗?

    据我所知,为了训练机器学习 (ML) 模型,应该知道训练集的输入和输出。然后,给定一个新的输入,ML 模型会尝试预测输出。
    使用 TRNG,只有输出是已知的(没有输入)。我们仍然可以使用 ML 模型来预测下一个 TRNG 输出吗?