/ dev / urandom中的字母'u'是什么意思?


87

我了解读取/dev/random可能会阻塞,但/dev/urandom保证读取不会阻塞。

这封信u从哪里来?它代表什么?

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

更新:

根据问题的最初措词,对于/dev/randomvs 的有用性已有一些争论/dev/urandom关于/ dev / urandom的神话链接已在下面发布了三遍,并在针对何时使用/ dev / random与/ dev / urandom的问题的答案中进行了总结。


13
解除/dev/random阻止,与之相反的是阻止。
佐藤桂

3
章和经节?
汤姆·黑尔

11
/dev/random在某种程度上,这种想法比/dev/urandom现在早已过时并且在绝大多数用例中/dev/urandom 都更好现在已成为首选
David Schwartz

@SatoKatsura来源?汤姆的答案与您的答案相矛盾。
noɥʇʎԀʎzɐɹƆ

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

Answers:


86

无限。

在Linux中,比较名为random_read和的内核函数,random_read_unlimited 表示uin urandom中字母的词源为unlimited

这由第114行确认:

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

更新:

关于哪个首先出现在Linux上,/dev/random或者/dev/urandom@StéphaneChazelas在帖子中附带了原始补丁,而@StephenKitt显示了它们是同时引入的


7
那为什么不/dev/random命名/dev/lrandom呢?:)
佐藤桂

13
历史的。最初,仅存在受限/阻止版本。而类似的“非无限”功能则称为random_read:)
汤姆·黑尔

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

5
@TomHale自从randomv。lrandom以来,v。的历史性论点就没有那么好了,random并且在Linux内核中同时urandom引入。
史蒂芬·基特

7
另请参阅由原始实现的作者在1995
–StéphaneChazelas

18

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

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

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

TLDR只是使用/ dev / urandom。


2
从您的链接,有趣的是注意到FreeBSD does the right thing: they don't have the distinction between /dev/random and /dev/urandom, both are the same device. At startup /dev/random blocks once until enough starting entropy has been gathered. Then it won't block ever again.
汤姆·黑尔

-5

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


3
有任何来源吗?
GnP '16

7
这绝对不是右/dev/random,并/dev/urandom都给予同样的分布,并在任何真正意义上它不是均匀分布在0和1
克里斯

抱歉...可能基于我使用过的另一种语言(R或其他语言)
bbneo
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.