伪随机数发生器怎么可能不重复? 您所在的位置:网站首页 hash冲撞 伪随机数发生器怎么可能不重复?

伪随机数发生器怎么可能不重复?

2023-03-14 19:12| 来源: 网络整理| 查看: 265

我的理解是PRNG的工作是使用输入种子和将其转换为非常不相关的输出的算法,以便下一个生成的数字尽可能不可预测.但这是我看到的问题:

我能想象的任何伪随机数生成器必须具有有限数量的结果.假设我正在使用一个随机数生成器,它可以生成0到1000亿之间的任何数字.如果我要求输出一千亿次和一次,我可以肯定一个数字输出了不止一次.如果相同的种子在通过算法时总是给出相同的输出,那么我可以确定PRNG将开始循环.我的逻辑在哪里有缺陷?

在这种情况下,我是正确的,如果你知道一个PRNG算法,并正在被用于加密PRNG,不能使用这种方法(和在那里,以防止任何措施?):

使用PRNG可以生成整个循环数字集.

知道生成私钥的时间戳,并在稍后知道PRNG的时间和输出

根据计算所需的时间,确定已知输出与未知输出之间的数量

在预生成列表中查找以查找生成的数字

templatetype.. 5

你是绝对正确的,理论上这种方法可以用来打破PRNG,因为正如你所指出的那样,给定足够长的输出序列,你可以开始预测接下来会发生什么.

问题是"足够长"可能太长,以至于这种方法完全不切实际.例如,梅森倍捻机 PRNG,这是不适合使用的密码,有一段2 19937 - 1,这是这么长时间,它是完全不可行的尝试,你描述的攻击.

一般来说,假设伪随机生成器使用n位内部存储器.这给出了2 n个这些位的内部配置,这意味着在保证看到重复之前,您可能需要看到2 n + 1个输出.鉴于大多数加密安全的PRNG使用至少256位的内部存储,这使得您的攻击不可行.

值得注意的一个细节是,"PRNG重复一个数字"和"从那时起,数字总是相同的"之间存在差异.如果每次内部状态不同,PRNG可能会多次重复输出,然后再继续输出不同的数字.

1> templatetype..:

你是绝对正确的,理论上这种方法可以用来打破PRNG,因为正如你所指出的那样,给定足够长的输出序列,你可以开始预测接下来会发生什么.

问题是"足够长"可能太长,以至于这种方法完全不切实际.例如,梅森倍捻机 PRNG,这是不适合使用的密码,有一段2 19937 - 1,这是这么长时间,它是完全不可行的尝试,你描述的攻击.

一般来说,假设伪随机生成器使用n位内部存储器.这给出了2 n个这些位的内部配置,这意味着在保证看到重复之前,您可能需要看到2 n + 1个输出.鉴于大多数加密安全的PRNG使用至少256位的内部存储,这使得您的攻击不可行.

值得注意的一个细节是,"PRNG重复一个数字"和"从那时起,数字总是相同的"之间存在差异.如果每次内部状态不同,PRNG可能会多次重复输出,然后再继续输出不同的数字.



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有