密码学-伪随机数的产生和流密码

伪随机数的产生和流密码

随机数产生的原则

随机数的使用

  • 密钥分发和相互认证方案
  • 会话密钥的产生
  • RSA公钥加密算法中密钥的产生
  • 对称流密码的位流产生
对于随机数的要求
  • 随机性

    • 分布均匀性

    0 0 0 1 1 1出现的概率大致相等

    • 独立性

    任何子序列不能由其他序列推导

  • 不可预测性

    敌手不能从先前的随机数推导出后面的随机数

TRNG,PRNG,PRF

确定性算法能够产生经受得住随机性检测的序列,序列并非统计随机,称之为伪随机数

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-t8vH0xeW-1625050993027)(/Users/liangxiaoyu/Library/Application Support/typora-user-images/image-20210626203013225.png)]

TRNG 真随机数产生器

将随机的源作为输入,称为熵源

PRNG 伪随机数产生器

种子作为输入,使用确定算法产生位输出序列,输出仅和种子有关

用于产生不限长位流的算法

PRF 伪随机函数

产生固定长度的伪随机串

对PRNG的要求

基本要求:不知道种子的敌手不能预测伪随机串

特定要求:

  • 随机性

    • 均匀性

    0和1出现的量大约相等

    • 可伸缩性

    任何序列的子序列也可通过随机性测试

    • 一致性

    对于任何种子,发生器的行为具有一致性

  • 不可预测性

    • 前向不可预测性

    已知以前位数不可预知下一位

    • 后项不可预测性

    从任何随机序列都不能推断出种子值

  • 种子的要求

    • 种子本身必须为随机数或伪随机数,例如由TRNG产生

算法设计

  • 特意构造的伪随机数算法
  • 基于现有密码算法的算法

伪随机数发生器

线性同余发生器

X n + 1 = a X 0 + c m o d    m X_{n+1}=aX_{0}+c\mod m Xn+1=aX0+cmodm

参数选取
  • m m m取很大的值,例如 2 32 − 1 2^{32}-1 232
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值