来源:EETOP
前言
计算机必须有一个科学稳定的随机数来源,才能得到随机数。这个来源称为随机数生成器(Random number generators,RNG)。
第一个真随机数生成器是在1955年由Rand公司创造,Rand公司在1955年出版了一本《A Million Random Digits with 100,000 Normal Deviates》,用作随机数表。
1999年,Intel发布了Intel810芯片组时,就配备硬件随机数生成器,原理是电阻和振荡器产生的热噪声。目前,大部分芯片都集成了硬件随机数生成器,使用非常方便。
常见的随机数生成器有三种:
真随机数生成器(True Random Number Generator,TRNG),通过物理方法模拟自然界中的随机过程,真随机数无法预测且无周期性。
伪随机数生成器(Pseudo Random Number Generator,PRNG),通过数学方法生成和真随机数具有相似以统计特征的伪随机数。如果能够通过统计检验,就可以当成真随机数使用。
随机数表法,即用真随机数生成大量随机数,存到数据库中,使用时再从数据库中调用。在20世纪早期,这种方法被大量使用,现在因为需要占用大量存储空间,已经很少被使用。
1. 真随机数生成器(TRNG)
基于电路的TRNG:
振荡器采样:如Intel810RNG芯片,利用热噪声放大后,影响一个电压控制的振荡器,再通过一个高频振荡器来收集数据,得到随机数。
直接放大电路噪声:直接以热噪声等电路噪声为随机源,通过运放放大,统计一定时间内达到阈值的信号数以此得到随机数。
电路亚稳态:2010年德国研究团队利用计算机内存双态触发器作为随机的一个额外层,触发器可以在0和1状态切换。在切换之前,触发器处于无法预测的亚稳态,内存中内容为完全随机值。
混沌电路:混沌电路的输出结果对初始条件很敏感,不可预测,且在IC易于集成,可产生效果不错的真随机数。
2. 伪随机数生成器(PRNG)
TRNG生成的随机数是无周期性、不可预测、分布均匀,然而TRNG技术要求高,生成速度低,难以满足计算机高速计算需要。
因此为了提高数据产生率,TRNG的结果往往作为PRNG种子值,并以此生成伪随机的输出序列。
伪随机数算法:
线性同余法
N[i+1]=(A * N[i]+B) mod M
1. B、M互质
2. M所有质因数都能整除(A-1)
3. 若M是4的倍数,A-1也是
4. A、B、N[0]都比M小
5. A、B是正整数·
梅森旋转法Mersenn Twister)
1. 基于二进制字段上的矩阵线性递归,可以快速产生高质量的伪随机数。随机数范围[0,2*k),k=19937,32,64。计算机各种语言常用的伪随机数算法。
2. 参数选择和梅森素数有关。2**n-1是素数(梅森素数)。
3. 随机数检测标准
3.1 检测标准
中国:GB/T 32915-2016 信息安全技术 二元序列随机性检测方法
美国:NIST SP800-22r1a
德国:A1S31标准
3.2 检测方法
比特分布检测:n个比特内0和1的个数
跟随分布检测:n个比特内00、01、10、11的概率是否相等
游程检测:游程由连续的0或者1组成,并且其前后元素与游程元素不同。游程数目为序列长度一半时,随机性比较好。
碰撞检测
扑克检测:先将序列划分成长度为m的二进制子序列,长度为的二进制子序列由2m中类型,然后检测这2m中子序列类型数目是否相同。
此外,还有相关性检测、线性复杂度检测以及长游程检测等。
4. Feature验证
墒源:四路独立墒源。每一路独立熵源有8路RO环,由一个独立时钟进行采样。
后处理:采用密码AES算法。
健康度检测:NIST SP800-90B标准中列出的重复计数测试(Repetition Counter Test)和自适应比例测试(Adaptive Proportion Test)。
输出:一次输出4*32-bit。
墒源质量验证:生成1000*1Mb数据,然后用NIST工具进行墒源质量分析。
1. 采集随机数,用16进制输出32位随机数
2. 用脚本转换成二进制文件,比特流
3. 用NIST软件对比特流文件进行分析,并且得到报告。如果某个项目测试结果有问题,该项目的P-VALUE和PROPORTION旁边会出现*号。
5. 应用场景
密码学:随机数用于生成加密密钥,并确保加密安全性。
数学模拟:随机数可以用于模拟不确定性的系统,如随机运动,随机行为等。
游戏开发:随机数可以用于生成游戏中的随机事件,如游戏难度、随机道具等。
计算机图形学:随机数可以用于生成随机的图形,如随机分布的点、随机生成的纹理。
统计学:随机数可以用于统计学的模拟和分析,如随机化试验、随机抽样等。
特别声明:以上内容仅代表作者本人的观点或立场,不代表Hehson财经头条的观点或立场。如因作品内容、版权或其他问题需要与Hehson财经头条联系的,请于上述内容发布后的30天内进行。