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的话。