暗号論的擬似乱数生成器


CSPRNG: cryptographically secure pseudo random number generator (PRNG) 





Nonce 1使number used once

Salt ECDSARSASSA-PSS 使



 Nonce 

使 CSPRNG 使CSPRNG 

要求仕様

編集

PRNGCSPRNG CSPRNG 2

CSPRNG "next-bit test" next-bit test  kk+1 211982next-bit test 

CSPRNG "state compromise extensions" CSPRNG

: CSPRNG2使next-bit test使

PRNGCSPRNG2PRNGPRNG 

CSPRNG

背景

編集

Santha と Vazirani は、無作為性の弱いビット列を複数組み合わせることで高品質な擬似乱数列を生成できることを証明した[1]。それ以前にジョン・フォン・ノイマンはビット列からバイアスの大部分を除去できる簡単なアルゴリズムがあることを証明し[2]、Santha-Vazirani の設計に基づいたCSPRNGでフォン・ノイマンのアルゴリズムを入力ビット列に適用する必要がある。これを entropy extraction(エントロピー抽出)と呼び、研究が盛んな領域である。

設計

編集

ここでは、CSPRNGの設計を

  1. ブロック暗号や暗号学的ハッシュ関数などの暗号プリミティブに基づく設計
  2. 数学的に解くのが難しい問題に基づく設計
  3. 特殊な設計

に分けて解説する。

暗号プリミティブに基づく設計

編集

CTRCSPRNG使0120 n-2n 2n/21/2

CSPRNG[3]

 XOR CSPRNGRC4

ANSI X9.17 Financial Institution Key Management (wholesale)[4]DESFIPS64 sDES k64 D使         64DESAES[5]

数論的設計

編集

Blum-Blum-Shub CSPRNG

MicaliSchnorr generator, Naor-Reingold pseudorandom function

特殊な設計

編集

以下のような、暗号論的に安全となるよう設計された実用的PRNGがある。

標準

編集

CSPRNG

FIPS 186-2

NIST SP 800-90: Hash_DRBG, HMAC_DRBG, CTR_DRBG, Dual_EC_DRBG

ANSI X9.17-1985 Appendix C

ANSI X9.31-1998 Appendix A.2.4

ANSI X9.62-1998 Annex A.4, obsoleted by ANSI X9.62-2005, Annex D (HMAC_DRBG)

NIST 

CSPRNG 

脚注

編集
  1. ^ Miklos Santha, Umesh V. Vazirani (24 October 1984). "Generating quasi-random sequences from slightly-random sources" (PDF). Proceedings of the 25th IEEE Symposium on Foundations of Computer Science. University of California. pp. 434–440. ISBN 0-8186-0591-X. 2006年11月29日閲覧
  2. ^ John von Neumann (1963年3月1日). “Various techniques for use in connection with random digits”. The Collected Works of John von Neumann. Pergamon Press. pp. 768–770. ISBN 0-08-009566-6 
  3. ^ Young and Yung, Malicious Cryptography, Wiley, 2004, sect 3.2
  4. ^ https://nvlpubs.nist.gov/nistpubs/Legacy/FIPS/fipspub171.pdf (Appendix C)
  5. ^ Young and Yung, op. cit., sect 3.5.1

外部リンク

編集