密码学安全伪随机数生成器

编辑
本词条由“匿名用户” 建档。

密码安全随机数生成器(也称为密码安全伪随机数生成器(CSPRNG))是适用于密码学的伪随机数生成器。密码学的许多领域都需要这样的随机数,例如: 密钥生成 nonces使用一次(随机字节序列) 流加密 盐 这些数字的随机性的质量要求是非常不同的。对于nonces,保证随机实验中数字的唯一性即可;对于创建万能密钥甚至一次性一密本,对数字的要求高得不成比例。理论上,一次性一密本只有由自然随机数创建才能保...

密码学安全伪随机数生成器

编辑

密码安全随机数生成器(也称为密码安全伪随机数生成器 (CSPRNG))是适用于密码学的伪随机数生成器。 密码学的许多领域都需要这样的随机数,例如:

  • 密钥生成
  • nonces 使用一次(随机字节序列)
  • 流加密

这些数字的随机性的质量要求是非常不同的。 对于nonces,保证随机实验中数字的xxx性即可; 对于创建xxx密钥甚至一次性一密本,对数字的要求高得不成比例。 理论上,一次性一密本只有由自然随机数创建才能保持牢不可破。

原则上,CSPRNG 需要与普通伪随机数生成器相同的要求,但必须满足一些额外的安全条件。 一方面,它生成的数字序列不能与真正的随机数序列区分开来。 另一方面,即使已知精确的操作模式,也不能从发生器的输出中推断出其内部状态。

BSI 在技术指南 BSI TR-03116 中指定了用于联邦政府项目的随机数生成器的要求,并将它们划分为功能类别。 本质上,物理实数(类 PTG.2、PTG.3)和非物理实数随机数生成器(类 NTG.1)与确定性或伪随机数生成器(类 DRG.2、DRG.3)不同。 PTG.3 和 NTG.1 类使用 DRG.3 类的确定性随机数生成器处理获得的熵,因此被视为混合随机数生成器。 自 2022 年以来就不再考虑以前的 PTG.1 和 DRG.1 类。

非确定性 CSRNG

编辑

理想情况下,随机数的生成由不确定的熵源提供。 例如,这可以是基于硬件的随机数生成器或混合生成器。 非确定性生成器应该用于密码学应用程序,因为只有使用这些才能保证它们不可复制或不可预测。

确定性CS(P)RNG

编辑

通常,使用非确定性生成器是不可能的或太慢了。 密码安全的伪随机数生成器基于密码原语(例如块或流加密)或安全哈希函数,或者基于数学上的难题。

基于密码原语的生成器

加密或散列函数可以在所谓的计数器或输出反馈模式下运行。 这里重要的是,不可能找出生成器的初始状态。 找出生成器的内部状态就等于破解了加密本身。

此处生成的数字在密码学上是安全的并且是伪随机的(只要所使用的函数保证了这一点)。 基于久经考验的功能的生成器,例如 B. AES 或 SHA-1,通过所有常见的随机性统计测试

基于数论问题的生成器

Blum-Blum Shub 生成器的安全性依赖于以下假设:整数的质因数分解是一个无法在多项式时间内解决的难题。

密码学安全伪随机数生成器

随机性检验

编辑

FIPS 140

该标准中列出了 CSPRNG 的测试套件。 为此,对 20000 个输出位进行各种统计测试:

  • 单比特测试
  • 扑克测试
  • 运行测试
  • 长时间运行测试

Maurer 的通用测试

该测试背后的想法是,不可能显着压缩随机数序列。

内容由匿名用户提供,本内容不代表vibaike.com立场,内容投诉举报请联系vibaike.com客服。如若转载,请注明出处:https://vibaike.com/342198/

(4)
词条目录
  1. 密码学安全伪随机数生成器
  2. 非确定性 CSRNG
  3. 确定性CS(P)RNG
  4. 基于密码原语的生成器
  5. 基于数论问题的生成器
  6. 随机性检验
  7. FIPS 140
  8. Maurer 的通用测试

轻触这里

关闭目录

目录