随机数在密码学中非常重要,保密通信中大量运用的会话密钥的生成即需要真随机数的参与。如果一个随机数生成算法是有缺陷的,那么会话密钥可以直接被推算出来。若果真发生这种事故,那么任何加密算法都失去了意义。

Pseudo Random number Generator


  • ANSI X9.17 PRG
  • Two PRGs are specified in FIPS-186, based on DES or SHA-1
  • NIST SP 800-90 specifies hash-based, HMAC-based, CTR-based, and ECC based generators.
  • ANSI X9.31 and ANSI X9.62
  • OpenSSL specifies a SHA-1 based PRG.

True Random Number Generator

在计算机科学中,硬件随机数生成器(英语:hardware random number generator),或真随机数生成器(英语:True Random Number Generator, TRNG)是一种通过物理过程而不是计算机程序来生成随机数字的设备。这样的设备通常是基于一些能生成低等级、统计学随机的“噪声”信号的微观现象,如热力学噪声、光电效应和量子现象。这些物理过程在理论上是完全不可预测的,并且已经得到了实验的证实。硬件随机数生成器通常由换能器、放大器和模拟数字转换器组成。其中换能器用来将物理过程中的某些效果转换为电信号,放大器及其电路用来将随机扰动的振幅放大到宏观级别,而模拟数字转换器则用来将输出变成数字,通常是二进制的零和一。通过重复采样这些随机的信号,一系列的随机数得以生成。