随机数相关

两个要求:随机性不可预测性

真随机数生成器(TRNG)非确定性随机为生成器(NRBG)

使用不确定的物理源,生成非确定的随机位

过程:真随机源——转换为二元数——随机比特流TRNG

物理随机性原采样——噪声处理——熵池收集和混合——随机数生成

伪随机数生成器(PRNG)确定性随机为生成器(DRBG)

使用确定性的计算产生随机位。
PRNG取一个固定值(种子)作为输入,并用一个确定性算法生成输出位序列。

种子必须不可预测,一般由TRNG生成。

若应用为流密码,TRNG不实用

若只需生成有限数量的随机数,通常也希望使用TRNG做种子,使用PRF【(伪随机数生成函数):与PRNG唯一区别是,生成随机数的长度固定】输出。

算法分为两类:

  • 专用算法:为生成伪随机位流而专门设计。
  • 基于现有密码算法的算法:密码算法会随机化输入数据。
  1. 对称分组密码
  2. 哈希函数
  3. 消息认证码

线性同余生成器(LCG)

6966e9ef266e403f976dea3dda2cae4b.png

性能和随机性质取决于选择的参数(a、c、m)以及初始种子值

BBS生成器

利用两个大素数的乘积作为模数,然后选择一个初始值(种子)作为计算起点,然后迭代的计算下一个伪随机数。

使用分组密码生成伪随机数

7443d2d5325c4f76ad6c06fdf5623b0e.png

eg:AES-128,种子由一个128位密钥和一个128位V值构成

在CTR模式下,V值每加密一次就增一

在OFB模式下,V值更新为前一个PRNG的值 

b406244a732042d78d7599282b1665f1.png                                                                                                                                                                                                                                                                                     

CTR模式和OFB模式都属于流密码。

OFB模式是将加密的输出反馈到输入,而CTR模式则是将计数器的值用作输入。

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            

 参考:

可厉害的土豆-哔哩哔哩_Bilibili

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值