密码学中的随机数

随机数,顾名思义就是随机出现的数,其在密码学、统计学及其它方面都有很广阔的应用。在前端领域,我们也经常使用随机数来防止缓存。那么随机数是如何生成的,另外经常听到的伪随机,这些是什么意思,今天我们就来学习一下。

随机数的特点

在密码学中,随机数的随机性检验分为三个标准:

  1. 统计学伪随机性
    即在给定的数列中,每个数字出现的数量大致相等。就如同掷骰子一样,掷的次数足够多,1 - 6 每个数字出现的次数基本是相等的。
  2. 密码学安全伪随机
    定义为,给定随机样本的一部分和随机算法,不能有效地演算出随机样本的剩余部分。
  3. 真随机性
    定义随机样本不可重现。为了产生真随机性,需要借助物理现象获取信息,一般认为如环境温度、声音、辐射变化等,这些是随机的,根据这些物理信息生成的数列,一般认为不可重现。

真随机数一般很难获得,在设计密码算法时,通常使用的随机数列,都是伪随机数列。另外如果一个随机数算法生成数列的周期足够大,可以通过各种随机性检验,也认为这种数是伪随机数。

下面就介绍两种伪随机数生成算法

线性同余生成器

线性同余生成器是最广泛使用的伪随机数生成器。它的算法非常简单:

X n + 1 = ( a X n + c )   m o d   m X_{n+1} = (aX_n + c) \bmod m Xn+1=(aXn+c)modm
其中 m 为模数,m > 0;
a 为乘数,0 ≤ a < m;
c 为增量,0 ≤ c < m;
X

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值