随机数的应用场景
下面的场景中就会用到随机数
生成密钥
用于对称密码和消息认证码。
生成密钥对
用于公钥密码和数字签名。
生成初始化向量(IV )
用于分组密码的CBC、CFB和OFB模式。
生成nonce
用于防御重放攻击以及分组密码的CTR模式等。
生成盐
用于基于口令的密码( PBE)等。
随机数的分类
随机数主要分为以下三类:
弱伪随机数
强伪随机数
真随机数
随机数的分类是根据随机数的性质进行的分类。随机数的性质分为以下三类:
随机性一不存在统计学偏差,是完全杂乱的数列
不可预测性一不能从过去的数列推测出”下一个出现的数
不可重现性一除非将数列本身保存下来,否则不能重现相同的数列
密码技术中所使用的随机数,仅仅具备随机性是不够的,至少还需要具备不可预测性才行。
GoLang 中的伪随机数
随机种子
真随机数