使用 AES 生成伪随机数如何?

iqoo · 2024-8-24 14:24:47 · 205 次点击
需求:通过数十字节的种子生成长度 N 字节的随机数,并且随机性需足够高。运行时库有现成的 AES 算法。

为了偷懒写算法,直接将 N 个 0 的数据通过 AES 加密如何?密钥使用种子前半部分,IV 使用种子后半部分。
举报· 205 次点击
登录 注册 站外分享
12 条回复  
tuwulin365 小成 2024-8-24 14:28:01
不怎么样。有不少伪随机数生成算法,比如:梅森旋转( Mersenne Twister/MT )算法。
GeekGao 小成 2024-8-24 14:30:07
可行。不过需要确保种子的随机性和安全性
1423 小成 2024-8-24 14:35:23
直接用 https://github.com/tildeleb/aeshash/tree/master
libook 小成 2024-8-24 14:54:30
系统都有随机数生成器,对 Linux 来说就是/dev/random 和/dev/urandom
tool2dx 初学 2024-8-24 16:01:12
我个人觉得可行,aes 硬件加速,速度飞快。
https://www.jandrewrogers.com/2019/02/12/fast-perfect-hashing/
7h3d4wn 小成 2024-8-24 16:04:08
具有密码学安全性的随机数是要满足足够随机以及不可预知性
为此在 Linux/windows 下有成熟的调用方式
它们都用了模拟量来做种子
不要自己造纯数字量的随机数算法
churchmice 小成 2024-8-24 16:39:30
AES 这种一般是用作随机数生成的后处理算法,可以了解一下
源头还是随机数
henix 小成 2024-8-24 16:53:10
AES 的 CTR 模式,通过加密一个不断增长的计数器来得到一个密钥流( key stream ),我认为这就相当于一个伪随机数生成器 https://zh.wikipedia.org/wiki/%E5%88%86%E7%BB%84%E5%AF%86%E7%A0%81%E5%B7%A5%E4%BD%9C%E6%A8%A1%E5%BC%8F#%E8%AE%A1%E6%95%B0%E5%99%A8%E6%A8%A1%E5%BC%8F%EF%BC%88CTR%EF%BC%89
mxT52CRuqR6o5 小成 2024-8-24 16:54:52
主要是看你生成随机数的目的
12下一页
返回顶部