BCryptGen随机函数的理论周期是多少?
我试图使用BCryptGen随机函数的理论周期是多少?,c,cryptography,bcrypt,C,Cryptography,Bcrypt,我试图使用bcrypt.h头文件中定义的函数BCryptGenRandom。但是,我找不到有关此函数的安全属性的信息 BCryptGenRandom函数的理论周期是多少 MSDN似乎没有提供此信息。Microsoft: 默认的随机数提供程序实现了 生成符合以下条件的随机数: 标准,特别是该标准的CTR_DRBG部分 NIST: 用于实例化DRBG的种子必须包含足够的熵 提供随机性的保证。如果种子是保密的 算法设计良好,DRBG输出的比特数将 不可预测,直至DRBG的实例化安全强度 CTR_DRB
bcrypt.h
头文件中定义的函数BCryptGenRandom
。但是,我找不到有关此函数的安全属性的信息
BCryptGenRandom
函数的理论周期是多少
MSDN似乎没有提供此信息。Microsoft:
默认的随机数提供程序实现了
生成符合以下条件的随机数:
标准,特别是该标准的CTR_DRBG部分
NIST:
用于实例化DRBG的种子必须包含足够的熵
提供随机性的保证。如果种子是保密的
算法设计良好,DRBG输出的比特数将
不可预测,直至DRBG的实例化安全强度
CTR_DRBG在计数器模式下使用经批准的分组密码算法
我们期望从CTR_DRBG输出的最大位数等于2^块大小。有趣的是,我们无法区分CTR_DRBG的输出和真正的随机数生成器
基于NIST码本的确定性随机位生成器是
在无法与随机区分的背景下进行分析。上面的
和基于区分输出的概率的下界
事实证明了这一点。这些界限意味着设计的安全性是有限的
以码本宽度为界,或者更精确地说,以
代码本的行为就像一个随机排列,与它们的
基础安全参数或密钥长度。本文的结论是
这些设计无法支持大于
码书宽度
它没有周期,因为它不产生周期序列。@JamesKPolk,这不完全正确。它很可能有一个内部状态,如果内部状态重复,你会得到一个所谓的循环,它将接近一个“周期”(但不同的初始状态可能会产生不同大小的循环)。然而,一般来说,周期非常大,RNG可能包括重新播种。@MaartenBodewes是的,如果它从未重新播种,那么它将是周期性的。但它确实重新设定了种子,至少如果它像它所说的那样实现CTR-DRBG的话。