我了解对/dev/random的读取可能会阻塞,而对/dev/urandom的读取则保证不会阻塞。它代表什么?

用户空间?解除封锁?微?

更新:

基于问题的最初措词,人们对u/dev/random的有用性进行了一些辩论。关于/ dev / urandom的神话链接已在下面发布了三遍,并在对何时使用/ dev / random与/ dev / urandom的问题的回答中进行了总结。

评论

解除阻止,与/ dev / random阻止相反。

章与节?

/ dev / random在某种程度上比/ dev / urandom更好的想法现在已经过时了,在大多数用例中,/ dev / urandom现在是首选。

@SatoKatsura来源?汤姆的答案与你的答案相矛盾。

这是指向站点的链接,其中包含备份@DavidSchwartz的评论的详细信息。 2uo.de/myurs-about-urandom

#1 楼



在Linux中,比较名为random_readrandom_read_unlimited的内核函数
表示u中字母urandom的词源是unlimited

这由第114行确认:


/ dev / urandom设备没有此限制[...]


更新:

关于Linux的首个版本,/dev/random/dev/urandom,@StéphaneChazelas为帖子提供了原始补丁,而@StephenKitt显示它们都是同时引入的。

评论


那么/ dev / random为什么不命名为/ dev / lrandom? :)

–佐藤桂(SatōKatsura)
16年11月16日在6:13

历史的。最初,仅存在受限/阻止版本。与之类似的“非无限”功能称为random_read :)

–汤姆·黑尔
16-11-16在6:25



我确实通过Wikipedia找到了链接之一,但是我直接引用了源而不是引用了Wikipedia。我认为这类似于通过google查找某些内容,而不引用google ...,除非我对StackExchange的引用有一些了解?

–汤姆·黑尔
16-11-16在13:04



@TomHale由于Linux内核中同时引入了random和urandom,有关random v。lrandom的历史性论点并不能很好地解决。

–斯蒂芬·基特(Stephen Kitt)
16年11月16日在13:23

另请参阅原始实现的作者在1995年发送的usenet补丁。

–StéphaneChazelas
16年11月16日在14:38

#2 楼

这取决于您所讨论的“ Unix”系统。

在FreeBSD上,/ dev / urandom和/ dev / random是同一设备。字母u现在是历史遗留,为了向后兼容而存在。在启动时,它们会阻塞直到收集到足够的熵,然后再也不会阻塞。有关详细信息,请参见有关urandom的神话。

在现代Linux世界中(从内核4.8开始),两个设备都来自同一CSPRNG,因此唯一的区别是,有人推测攻击存在。这种攻击就像FTL [Faster than Light]旅行一样。容易推测,实际上很难设计。

TLDR只是使用/ dev / urandom。

评论


从您的链接中,有趣的是注意到FreeBSD做正确的事:它们在/ dev / random和/ dev / urandom之间没有区别,它们都是同一台设备。在启动时,/ dev / random会阻塞一次,直到收集到足够的启动熵为止。然后它不会再阻塞了。

–汤姆·黑尔
16-11-17在4:55

#3 楼

制服。随机数在0到1之间均匀分布。与峰分布(例如,泊松或正态/高斯分布)相反,平面分布...。

评论


有任何来源吗?

– GnP
16年11月17日在18:18

这绝对是不对的-/ dev / random和/ dev / urandom都给出相同的分布,并且从任何实际意义上讲,它并不是在0和1之间均匀分布。

–克里斯
16年11月17日在19:35

抱歉...可能基于我使用过的另一种语言(R或其他语言)

– bbneo
16 Dec 5'在20:11