Entropy

不能用作隨機提取器的 CSPRNG

  • July 28, 2014

是否有任何特定的CSPRNG不能用作TRNG中的隨機性提取器

換句話說,您能否簡單地提供從良好熵源收集的足夠熵作為任何 CSPRNG 中的種子,並完成它?

我有強烈的感覺,CSP​​RNG 的屬性在很大程度上與隨機提取的屬性重疊,但 Wikipedia 聲稱(通用)PRNG 的屬性可能不一定重疊。

然而,一般的 PRG 定義並沒有指定必須使用弱隨機源,而在提取器的情況下,輸出應該在統計上接近均勻,在 PRG 中只需要在計算上與均勻無法區分,一個較弱的概念。

我認為任何基於雜湊的提取器都應該可以工作,因為它會對輸入進行雜湊處理。據我所知,散列熵被認為是從熵中提取隨機性的好方法。

我能想到的唯一一個 CSPRNG 應該要求的屬性是它必須混合所有包含熵的數據。


關於NIST SP 800-90B的注意事項:

  • 這裡沒有必要讓 TRNG 成為該文件中定義的完整熵源;CSPRNG 通常用於產生比提供的熵量更多的輸出;
  • 第 6.4 章包含對隨機性提取器的要求;

一些 CSPRNG 接受恆定寬度的種子。這意味著它們只能用作該輸入大小的隨機提取器;不多,不多。例如,AES-128 CTR_DRBG CSPRNG(從 800-90A)總共只接受 256 位種子作為密鑰和初始向量。

此外,如果輸入不是完全隨機的(正如您對隨機提取器所期望的那樣),它們可能容易受到相關密鑰攻擊。當用作隨機數生成器時,通常假定密鑰是一致隨機的——例如,AES-128 CTR_DRBG 要求種子中的熵正好為 256 位,除非使用 KDF進行隨機性提取

引用自:https://crypto.stackexchange.com/questions/18355