Questions tagged «random»

UNIX随机设备和实用程序

3
使用dd创建随机数据并获得“部分读取警告”。警告之后的数据现在真的是随机的吗?
我使用创建一个包含随机数据的1TB文件dd if=/dev/urandom of=file bs=1M count=1000000。现在,我检查kill -SIGUSR1 <PID>进度并获得以下信息: 691581+0 Datensätze ein 691580+0 Datensätze aus 725174190080 Bytes (725 GB) kopiert, 86256,9 s, 8,4 MB/s 800950+1 Datensätze ein 800950+0 Datensätze aus 839856947200 Bytes (840 GB) kopiert, 99429,5 s, 8,4 MB/s dd: warning: partial read (809620 bytes); suggest iflag=fullblock 803432+1 Datensätze ein 803431+1 Datensätze …
16 dd  random 

5
如何在Bash中N次执行命令1次
我想要一种随机运行命令的方法,每10次说1次。是否有内置的或GNU coreutil来执行此操作,理想情况是: chance 10 && do_stuff 每do_stuff十次执行一次?我知道我可以编写脚本,但这似乎很简单,我想知道是否有定义的方法。

2
为什么在使用$ RANDOM时得到的结果分布不均?
我在Wikipedia$RANDOM上阅读了有关RNG的内容,并在TLDP上了解了其功能,但是它并不能真正解释这个结果: $ max=$((6*3600)) $ for f in {1..100000}; do echo $(($RANDOM%max/3600)); done | sort | uniq -c 21787 0 22114 1 21933 2 12157 3 10938 4 11071 5 为什么大约2倍以上的值更倾向于0、1、2而不是3、4、5,但是当我更改最大模数时,它们几乎均等地分布在所有10个值上? $ max=$((9*3600)) $ for f in {1..100000}; do echo $(($RANDOM%max/3600)); done | sort | uniq -c 11940 0 11199 1 …
14 random 

1
随机图像生成器
我正在生成随机数据,并尝试使用将其转换为PNG图像: head -c 1MB < /dev/urandom | hexdump -e '16/1 "_x%02X"' | sed 's/_/\\/g; s/\\x //g; s/.*/ "&"/' | tr -d "\"" | display -depth 8 -size 1000x1000+0 rgb:- 此命令始终显示带有某些RGB像素的灰色图像。我究竟做错了什么 ? 我的最终目标是至少生成一张包含随机数据的图像。

2
Linux内核使用哪些熵源?
man 4 random 对Linux内核熵源的描述非常模糊: 随机数发生器将来自设备驱动程序和其他来源的环境噪声收集到一个熵池中。 Linux随机数生成器中的熵转移论文也没有那么具体。它列出: add_disk_randomness(), add_input_randomness()和 add_interrupt_randomness()。 这些functino来自random.c,其中包含以下注释: 来自环境的随机性来源包括键盘间定时,某些中断产生的中断间定时以及其他事件(a)不确定性,(b)外部观察者难以测量。 再往下,有一个功能add_hwgenerator_randomness(...)指示对硬件随机数生成器的支持。 所有这些信息都比较模糊(或者,对于源代码,需要对Linux内核有深入了解才能理解)。实际使用的熵源是什么,Linux内核是否支持开箱即用的任何硬件随机数生成器?

6
快速随机分配高清?
我已经读过有关如何使硬盘驱动器安全进行加密的知识,其中的步骤之一是向驱动器写入随机位,以使加密数据与硬盘驱动器上的其余数据无法区分。 但是,当我dd if=/dev/urandom of=/dev/sda过去尝试使用ETA时,它的数量似乎在几天之内。我看到了一些有关badblocks代替urandom的知识,但这似乎并没有太大帮助。我只想知道是否有什么方法可以帮助我加快速度,例如dd我可能缺少的选件或其他东西,或者速度仅仅是高清的限制。
14 encryption  dd  random 

3
在Linux上将/ dev / random链接到/ dev / urandom是否错误?
我目前正在gpg --genkeyLinux VM上进行测试。不幸的是,该软件似乎依赖于/dev/random收集熵,并礼貌地要求用户在密码随机输入的屏幕之后手动键入屏幕,因此最终可能会生成密钥,而且我发现没有命令行参数可以告诉用户使用另一个文件作为熵源(该视频中的家伙遇到了同样的问题...)。 但是,用户应该可以自由选择使用它,/dev/urandom因为它没有任何问题。它主要是让人回想起较旧的PRNG算法,从加密的角度来看,这些算法较弱。例如,尽管NetBSD联机帮助页承认该区别在启动初期仍可能有用,但它描述了诸如“民俗学”和“仅防御幻想威胁模型的假想理论”之类的区别。既没有人同意此命令所要求的熵的数量,也没有人同意GPG手册(“请不要使用此命令,除非您知道自己在做什么,否则可能会删除系统中的宝贵信息!” )。 我已经读过有关人们安装rngd守护程序并将其配置为/dev/urandom用作馈送的熵源的文章/dev/random,但是我发现这种做法非常肮脏。 我试图通过以FreeBSD方式解决该问题,方法是删除/dev/random并链接到该问题/dev/urandom: rm /dev/random ln -s /dev/urandom /dev/random 我将其视为告诉“我信任/dev/urandom作为熵源”的设置。 我担心会遇到某种错误,但这似乎可以提供预期的结果,因为命令现在可以立即成功返回。 我的问题是:在FreeBSD系统上默认情况下,在Linux系统上进行链接有没有任何已知,实用和错误的副作用?/dev/random/dev/urandom还是可以设想永久设置此设置(例如,在启动过程结束时在脚本中进行设置),以防由于/dev/random锁定某些服务而导致重复性问题?
13 linux  security  random 

1
UNIX系统上正确的可用熵是多少?
我有三个与UNIX系统上的熵有关的问题: 我使用以下命令在Linux上检查熵cat /proc/sys/kernel/random/entropy_avail。这是在POSIX中定义有关可用熵信息的标准场所吗? 我应该期望什么是正确的?我听说熵应该等于或大于100,并且如果熵始终低于100可能会有问题。 这个熵是由/dev/random它使用还是与它有任何关系/dev/urandom?
12 linux  random 

1
你能解释一下random.c中使用的熵估计吗
/dev/random使用内核中断的时间添加到熵池中。在名为的变量中跟踪池中的熵量entropy_count。 这是的相关代码段random.c。它表示变量的最后两次间断delta与delta的差异之间的时间(以我为准)delta2。 delta = time - state->last_time; state->last_time = time; delta2 = delta - state->last_delta; state->last_delta = delta; if (delta < 0) delta = -delta; if (delta2 < 0) delta2 = -delta2; delta = MIN(delta, delta2) >> 1; for (nbits = 0; delta; nbits++) delta >>= 1; r->entropy_count += nbits; …
12 linux  kernel  random 

4
随机随机播放文件,但有一些其他限制
我的音乐播放列表很庞大,虽然有些歌手有很多专辑,但有些歌手只有一首歌。我想对播放列表进行排序,以使同一位艺术家不会连续播放两次,或者他的歌曲大部分不会出现在播放列表的开头或结尾。 播放清单范例: $ cat /tmp/playlist.m3u Anna A. - Song 1 Anna A. - Song 2 I--Rock - Song 1 John B. - Song 1 John B. - Song 2 John B. - Song 3 John B. - Song 4 John B. - Song 5 Kyle C. - Song 1 U--Rock …

3
使用/ dev / random,/ dev / urandom生成随机数据
我正在寻找从命令行使用/dev/random(或/dev/urandom)的方法。特别是,我想知道如何使用这样的流stdin将随机数流写入stdout(每行一个数字)。 我对机器体系结构本机支持的所有数字类型的随机数感兴趣。例如,对于64位架构,这些将包括64位有符号和无符号整数以及64位浮点数。就范围而言,各种数字类型的最大范围都可以。 我知道如何使用通用解释器(例如Perl,Python等)来完成所有这些操作,但是我想知道如何使用外壳中的“更简单”的工具来执行此操作。(“简单”是指“即使在最小的Unix安装中也更有可能使用”。) 基本上,该问题减少了在命令行上将二进制数据转换为其字符串表示形式的问题。(例如,这不会:)printf '%f\n' $(head -c8 /dev/random)。 我正在寻找与外壳无关的答案。此外,之间的差别/dev/random,并/dev/urandom没有对这个问题很重要。我希望即使对结果的语义可能有所不同,任何适用于一个过程的过程也会适用于另一个过程。 我改编了SevenBitTony的答案以产生toints如下所示的函数等。 使用示例: % < /dev/urandom toprobs -n 5 0.237616281778928 0.85578479125532 0.0330049682019756 0.798812391655243 0.138499033902422 备注: 我使用hexdump而不是od因为它为我提供了一种更轻松的方式来格式化输出,使其符合我的期望。 令人讨厌的是,hexdump它不支持64位整数(wtf ???); 函数的接口需要工作(例如,它们应该接受-n5和-n 5),但是鉴于我可怜的shell编程技能,这是我可以快速组合的最好方法。(一如既往地欢迎评论/改进。) 我从这次练习中得到的最大惊喜是发现在shell上编写最基本的数字内容有多难(例如,读取十六进制浮点数或获取最大本机浮点值)... _tonums () { local FUNCTION_NAME=$1 BYTES=$2 CODE=$3 shift 3 local USAGE="Usage: $FUNCTION_NAME [-n <INTEGER>] [FILE...]" local -a PREFIX case $1 in …

3
为GPG键添加“随机数熵”?
在下面的视频中:Linux HOWTO:使用PGP保护数据,第2部分,显示了如何使用创建密钥对gpg。大约在1:50,讲师说: 生成密钥时,最好将鼠标稍稍移动一下,以便为创建密钥对提供更多的随机数熵。 在我看来,这就像是一个神话,尤其是因为命令行工具通常不应受到光标的影响。另一方面,我不知道Linux的随机数生成器是如何工作的,无论它是由GUI共享还是独立于GUI。他声称有什么存货,还是这是一个货运崇拜计划的例子?
10 linux  gpg  random 

1
编写/ dev / random文件?
如果执行以下操作,会发生什么? cat /dev/random > ~/randomFile # don't run 会一直写到驱动器空间用完之前,还是系统会看到此问题并停止它(例如无限符号链接循环)?
10 kernel  devices  random 


7
Linux的熵来源
假设我要从/ dev / random中获取一千兆字节左右的随机数据,适合一次填充(因此/ dev / urandom消失了。)如何为我的/ dev / random注入足够的熵来做到这一点?我正在为此寻找特定的命令和程序。我不想买任何东西。我正在使用Arch Linux,如果有帮助的话。

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.