随机数安全

随机数分类

  • 真随机数 : 通过物理实验得出,比如掷钱币、骰子、转轮、使用电子元件的噪音、核裂变等
  • 伪随机数 : 通过一定算法和种子得出。软件实现的是伪随机数,其中难以预测的随机数称为强伪随机数,易于预测的随机数称为弱伪随机数

随机数特性

  • 随机性 : 不存在统计学偏差,是完全杂乱的数列
  • 不可预测性 : 不能从过去的数列推测出下一个出现的数
  • 不可重现性 : 除非将数列本身保存下来,否则不能重现相同的数列

随机数的特性和随机数的分类有一定的关系,比如,弱伪随机数只需要满足随机性即可,而强位随机数需要满足随机性和不可预测性,真随机数则需要同时满足3个特性。


伪随机数的生成

我们平常软件使用和应用使用的都是伪随机数,伪随机数的生成实现一般是算法+种子

具体的伪随机数生成器一般有:

  • 线性同余法
  • 单向散列函数法
  • 密码法
  • ANSI X9.17

比较常用的一般是线性同余法,比如Java中的java.util.Random类,都采用了线性同余法生成随机数


随机数安全风险

随机数导致的安全问题一般有两个原因:

  • 应该使用随机数,开发者并没有使用随机数.简单来说,当我们需要一个随机数的时候,但开发人员可能没有使用
  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值