mbedtls系列文章
文章目录
一、真随机数和伪随机数
1. 区别
随机数在安全技术中通常被用于生成随机序列(eg. 秘钥),对于一个随机数的生成而言,是否真正的做到“随机”是最重要的。
真随机数通常来源于硬件随机数生成器,每次生成的随机数都是真正的随机数,但是因为物理因素,生成的时间较慢。比如STM32中提供的RNG硬件外设。
伪随机数通常来源于某个生成算法,每次生成的随机数虽然是随机的,但还是遵循生成算法的规则,优点是生成速度较快。比如C库中提供的rand函数,在相同的种子下,其生成的随机数序列相同,所以称之为伪随机数。
所以一般情况下,有一种比较巧妙的办法:将两者结合起来,先使用真随机数生成种子,然后使用伪随机数生成算法