当前位置: 首页 > 面试题库 >

我了解/ dev / urandom吗?

公孙涵育
2023-03-14
问题内容

我一直在阅读/dev/urandom,据我所知,我/dev/random利用网络数据包定时等事件创建了密码随机数。但是,我是否理解/dev/urandom使用PRNG并从中植入数字的权利/dev/random?还是/dev/random只要有一点就使用它-
当它们用完时会回落到PRNG并从哪里收集种子?


问题答案:

urandom联机帮助页:

随机数发生器将来自设备驱动程序和其他来源的环境噪声收集到一个熵池中。发生器还保持熵池中噪声位数的估计。根据该熵池,创建随机数。

读取时,/ dev / random设备将仅返回熵池中估计的噪声位数内的随机字节。/ dev /
random应该适合需要非常高质量的随机性的应用,例如一次性填充或密钥生成。 当熵池为空时,从/ dev / random的读取将被阻塞,
直到收集到其他环境噪声为止。

从/ dev / urandom设备进行的读取不会阻止等待更多熵
。结果,如果在熵池中没有足够的熵,则返回值在理论上容易受到驱动程序使用的算法的加密攻击。当前未分类的文献中尚不提供有关如何执行此操作的知识,但从理论上讲,可能存在这种攻击。如果您的应用程序中有此问题,请改用/
dev / random。

两者都使用PRNG,尽管使用环境数据和熵池在天文上使破解PRNG更加困难,并且在不收集完全相同的环境数据的情况下也是不可能的。

根据经验,没有专门的昂贵硬件从例如量子事件中收集数据,就没有真正的随机数生成器(即生成真正不可预测的数字的RNG)之类的东西。尽管出于加密目的,/ dev
/ ranhtml" target="_blank">dom或/ dev / urandom就足够了(使用的方法用于CPRNG加密伪随机数生成器)。

熵池和/ dev /
random的阻塞读取被用作安全措施,以确保无法预测随机数;例如,如果攻击者用尽了系统的熵池,则可以(尽管在当今的技术中这种可能性很小)可以预测/ dev
/ urandom的输出,该输出已经很长时间没有重新播种了(尽管这样做这还需要攻击者耗尽系统收集更多熵的能力,这在天文学上也是不可能的)。



 类似资料:
  • 问题内容: 我想使用或在C中使用。我该怎么做?我不知道如何用C处理它们,如果有人知道,请告诉我如何。谢谢。 问题答案: 通常,最好避免打开文件以获取随机数据,因为该过程中存在多个故障点。 在最近的Linux发行版,该系统调用可用来获取加密安全随机数,它不能失败 ,如果 是 没有 指定为标志和读取量最多256个字节。 截至2017年10月,OpenBSD,Darwin和Linux(带有)现在都已实现

  • 在FreeBSD 10.3和Solaris 11上测试

  • 问题内容: 根目录,目录文件的循环通过以下步骤进行? 获取开始目录的根目录:C:\ dir1 \ dir2 \ startdir 在C:\ dir1 \ dir2 \ startdir中获取文件夹,并返回文件夹“ dirlist”的列表 获取第一个目录列表项中的文件,并返回文件“ filelist”列表作为文件列表列表的第一项。 移至目录列表的第二项,并将此文件夹“ filelist2”中的文件列

  • 问题内容: 我正在练习 自我连接 ,这是我编写查询时不了解的事情。 我有桌子 雇员表包含三个记录。 最后一列manager_id是指使Ahmed和Tove成为Ola经理的第一列ID。 如果我这样写查询 结果使艾哈迈德和托夫经理。然而 正确无误,有人可以解释吗? 问题答案: 自联接就像内部联接,其中同一表的两个或更多实例通过公共数据类型的列/字段联接在一起。这种连接(内部连接)根据连接条件给出公共行

  • 问题内容: 恐怕我一定不明白弹性增长。如果您跳到下面的JSFiddle(据我所知),它的大小应该是另一个的三倍。如您所见,事实并非如此。为什么? 问题答案: 您还必须指定一个值(不指定此属性会导致行为类似于使用初始值auto 将其添加到两个孩子中,或仅使用速记进行设置:

  • 从eclipse帮助中: SetCellValueFactory 需要设置单元格值工厂,以指定如何填充单个表列中的所有单元格。单元格值工厂是一个提供CellDataFeatures实例的回调,并期望返回一个ObservableValue。将在内部观察返回的ObservableValue实例,以允许立即更新将反映在屏幕上的值。 在TableColumn中用作包装类的支持类,为特定单元格提供所有必要信