⚛️| 随机数熵
Last updated
Last updated
随机数熵实际上指随机数生成后的。其是衡量随机数生成过程中不可预测性和信息混乱程度的指标。熵值越高,随机数的统计特性越接近理想随机分布,外界系统越难以通过模式分析或统计手段预测后续结果。
熵是对一段字节序列中“随机性”的量化。不同的来源具有不同的熵。例如自然界一个物理过程可能具有 100% 的熵,其可认为完全随机。
随机数生成器需要高质量的熵作为种子输入来产生高质量(高随机性)的输出。
熵通常用香农熵表示,即在有限样本中,
熵源是生成随机数的基础,它提供了随机性和不可预测性。
高质量的熵源能够产生接近均匀分布的输出,使得每个可能的输出值 的概率 接近相等,使得熵值接近最大值,表明随机数的不可预测性高。
常见的熵源包括硬件熵源(物理现象如电路噪声、电磁辐射、大气噪声)、软件熵源(利用系统高熵现象如鼠标移动、内存用量)。其中硬件熵源往往可以提供较高的随机性质量,而软件熵源则更容易以较低开销获取。
Randomly NT 当前版本提供了从用户输入和运行时系统环境噪声的软件熵源,以及从 Random.org 获得的硬件熵源(从大气噪声中获取)。
事实上,绝大多数编程语言提供的随机数库、函数都是通过系统时间计算的伪随机数。同一时间下计算的随机数会获得同一个结果。因此默认的随机数实现具有相当低的熵,攻击者可以轻易获取随机数种子,从而预测随机数结果。
对于高安全性或高随机性的需求场景下,随机数种子必须是一个私密的、不可预测的序列,其应确保每个唯一的生成器产生唯一的字节流。Randomly NT 通过从软硬件获取混合熵源并通过某些运算传入随机数生成器以满足这些场景。
Randomly NT 内部实现了一个量化指标 "随机数因子" 来便捷地控制随机数熵源从而影响随机数熵。
有关 Randomly NT 内置的随机数熵源,请参见: