AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / unix / 问题

问题[random](unix)

Martin Hope
Alex O
Asked: 2023-06-19 12:10:10 +0800 CST

CSPRNG 在 Amazon Linux 2 上的使用

  • 8

我需要使用加密强度高(认证要求)、高质量(通过行业标准随机性测试)且性能合理(见下文)的 PRNG。

最初,我认为它会在最新的 Ubuntu LTS 上运行,并计划从中读取/dev/urandom,因为根据我的信息,从内核版本 5.18 开始,它似乎满足了所有条件。

性能方面,{ timeout --foreground 1s cat /dev/urandom; } | wc -c在 M1 Mac(仅供参考)上运行实现了约 450MB/s 的吞吐量,并且我从 x86-64 Ubuntu 22.04.2 LTS VM 中获得了类似的结果。

读取 40kB 块的 C++ 程序实现了更高的约 1GB/秒吞吐量,但我无法在其上运行编译和运行可执行文件(尽管我假设 shell 命令和可执行文件之间的比率相似)。

然而,事实证明它将部署在虚拟机中运行的 Amazon Linux 2(内核版本 5.10)上,这意味着RNG 的算法和性能改进将无法使用。

我的问题是:

  • 在虚拟机上运行的内核 5.10是否/dev/urandom仍然满足原始要求,即:提供加密的强伪随机数,并且还通过行业标准随机性测试,吞吐量至少为 1MB/秒?

我无法访问有问题的环境,但尝试使用早期内核版本的几个在线 shell 产生了不一致的结果:在几个系统(kernel 5.4和kernel 5.15/dev/random )上,我从和获得了相同的吞吐量/dev/urandom,根据我的理解意味着相同的质量,但在另一个系统(也是内核 5.4)上,/dev/random被阻止并给出 0-200B/s 之间的结果(即bytes,没有前缀),表明 的/dev/urandom质量已下降(除非我误解了某些内容)。

然而,根据Phoronix的说法,“ Linux 5.6 /dev/random 现在的行为更像 /dev/urandom,用于轮询用户空间中的 RNG 数据。更改后的行为导致 /dev/random 的行为与 /dev/urandom 相同,除了读取会被阻塞,直到 CRNG(Linux 加密强度随机数生成器)准备好为止。同时 /dev/urandom 将继续提供其最佳数据,但永远不会阻塞。”,因此上述使用内核 5.4 的测试可能对此无效案件。

所以看起来我可能会逃脱惩罚,但我不确定。

  • 如果事实证明使用随机伪文件不是一个选项,那么有哪些替代方案可以勾选上面的复选框?OpenSSL 的RAND_Bytes是否符合要求?
random
  • 1 个回答
  • 188 Views
Martin Hope
user528206
Asked: 2022-06-03 06:16:05 +0800 CST

内核 5.10.119 导致 /proc/sys/kernel/random/entropy_avail 和 poolsize 的值为 256

  • 9

更新到内核 5.10.119 后,/proc/sys/kernel/random/entropy_avail 卡在 256 并且在移动鼠标时不会改变。它曾经超过3000。

# cat /proc/sys/kernel/random/entropy_avail  
256

此外,/proc/sys/kernel/random/poolsize 下降到 256。它曾经是 4096。

这是一个错误吗?你能相信这个只有 256 个可用熵的内核的新随机数生成器吗?

linux-kernel random
  • 2 个回答
  • 2078 Views
Martin Hope
John Phillips
Asked: 2022-03-07 12:07:38 +0800 CST

如何强制 /dev/random 阻止?

  • 21

对于密码学课程,我正在尝试耗尽 Linux 中的熵池(例如 make /proc/sys/kernel/random/entropy_availgo to 0 并阻止从 读取的命令/dev/random),但我无法实现。我应该从/dev/random阻止读取。如果我执行这两个命令:

watch -n 0.5 cat /proc/sys/kernel/random/entropy_avail

观察熵,然后:

od -d /dev/random

为了转储随机池,watch命令中的值在 3700 和 3900 之间徘徊,并且在我运行此命令时只获得和损失一点点。我让这两个命令运行了大约三分钟,而entropy_avail. 那段时间我没有在电脑上做太多事情。通过谷歌搜索,我发现硬件随机数生成器可能非常好,以至于熵不会下降,但如果我这样做:

cat /sys/devices/virtual/misc/hw_random/rng_available

我什么也没看到,我只是得到一个空白行。所以我有几个问题:

  1. 是什么很好地补充了我的熵,我怎样才能找到随机性的具体来源?
  2. 有什么方法可以暂时禁用随机源,以便我可以强制这种阻塞发生?
linux-kernel random
  • 3 个回答
  • 3355 Views
Martin Hope
John
Asked: 2022-02-25 14:56:00 +0800 CST

bash脚本中的随机浮动睡眠?

  • 0

我需要在脚本中两个小于 1 秒的数字之间随机停顿。以下曾经工作:

#! /bin/bash
sleep $(python -c "import random;print random.uniform(.2,.8)")

但是突然就不行了。还有其他方法吗?

如果这很重要,我在 Linux Mint 20 上。

bash random
  • 1 个回答
  • 311 Views
Martin Hope
Chris Sandoval Hidalgo
Asked: 2021-10-27 15:50:51 +0800 CST

如何在 SuSe 12 中创建随机复杂密码

  • 0

我需要一种按照以下要求生成随机密码的方法:

  • 密码至少 9 个字符
  • 至少2个大写字母
  • 至少 2 个小写字母
  • 至少2位数
  • 至少 2 个特殊字符
  • 必须以字母开头

这是我的命令:

{ shuf -r -n4 -e {A..Z}; shuf -r -n4 -e {a..z}; shuf -r -n4 -e {0..9}; } | shuf | tr -d $'\n'

但缺少特殊字符

操作系统是 SuSE 12

password random
  • 3 个回答
  • 103 Views
Martin Hope
Scott M
Asked: 2019-11-02 03:25:40 +0800 CST

写入 /dev/random 的即时效果

  • 3

出于最好描述为哲学的原因,我想知道以下内容。假设我要在时间 X 从 /dev/random(或 /dev/urandom)读取。在一种情况下,我只是这样做,但在另一种情况下,/dev/random 处于相同状态,我推送一些字节数在时间 X 之前进入 /dev/urandom。输出是否相同?忽略这种情况,由于巨大的、奇怪的巧合,我写的特定字节发生了,使 /dev/random 的状态保持与以前相同的状态。

另一种询问方式:写入 /dev/random 是否会立即改变(除非不太可能的巧合)/dev/random 的状态,或者是否存在某种缓冲(输入或输出),这意味着 /dev/random 将受我的写作影响,但仅限于可能遥远的未来?

注意:我没有使用 ioctl 来声明在我写作时可以获得额外的熵。

我想强调这不是一个“重要”的问题,而且我完全理解,据我所知,一些量子随机性硬件可能会因为世界各地的某个人打哈欠或没有打哈欠而改变状态,更不用说我是否打哈欠了。不要写。这个问题严格来说是关于写入 /dev/random 的行为是否会立即改变软件中的状态,或者 /dev/random 是否已经缓冲了你接下来要得到的东西(或者缓冲你写给它的东西,直到它决定重新播种),因此写入的效果被延迟。

既然这个问题显然是不可能的,让我解释一下我为什么要问。我运行一个游戏,其中 /dev/random 的输出用于决定游戏结果。在游戏过程中,人们在喃喃自语,我会实时复制那个音频流,对其进行哈希处理,然后将其推送到 /dev/random。我要决定的是我是否可以准确但荒谬地声称“如果你不只是这么说,你就不会掷出那个 1”,或者我是否应该只做出较弱的声称“你所说的总有一天会回来困扰你的骰子。”

同样有趣的是,“现在影响它”是否可能是 /dev/random 的永久属性,或者只是当前实现的侥幸。

谢谢!

random
  • 1 个回答
  • 510 Views
Martin Hope
IISomeOneII
Asked: 2019-09-06 02:40:57 +0800 CST

仅在一行中创建随机文件但具有特定长度

  • -1

我想制作一个文件(随机内容),但里面只有一个 1 MB 的大行

我试过使用这个命令,但它没有用:

head -n 1 -c 1m /dev/urandom > /sdcard/file.txt 

如何正确地做到这一点?
我只想要一个包含随机 1 MB 数据但仅在一行中的文件。

files random
  • 2 个回答
  • 816 Views
Martin Hope
cprn
Asked: 2019-07-05 01:10:13 +0800 CST

为什么我在使用 $RANDOM 时会得到分布不均的结果?

  • 15

我在Wikipedia上阅读了有关 RNG和TLDP$RANDOM上的功能,但它并没有真正解释这个结果:

$ 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 倍以上的值比 3、4、5 更倾向于 0、1、2,但是当我更改最大模数时,它们几乎均匀分布在所有 10 个值上?

$ max=$((9*3600))
$ for f in {1..100000}; do echo $(($RANDOM%max/3600)); done | sort | uniq -c
  11940 0
  11199 1
  10898 2
  10945 3
  11239 4
  10928 5
  10875 6
  10759 7
  11217 8
random
  • 2 个回答
  • 3701 Views
Martin Hope
elbarna
Asked: 2019-06-25 15:55:57 +0800 CST

Bash:如何避免随机列表中的重复结果?

  • 0

假设这样的脚本

#!/bin/bash
array[0]="123"
array[1]="333"
array[2]="5566"
array[3]="135"
array[4]="68"
array[5]="45"
array[6]="78"
array[7]="32"
array[8]="190"

number()
{
size=${#array[@]}
index=$(($RANDOM % $size))
sleep 0.5s
echo  Lucky number is ... ${array[$index]}
}

for i in {1..21}; do number; done

没关系..我想在间隔中获得随机数,但也显示很多重复

Lucky number is ... 135
Lucky number is ... 135
Lucky number is ... 5566
Lucky number is ... 78
Lucky number is ... 190
Lucky number is ... 333
Lucky number is ... 190
Lucky number is ... 135
Lucky number is ... 5566
Lucky number is ... 333
Lucky number is ... 45
Lucky number is ... 45
Lucky number is ... 68
Lucky number is ... 68
Lucky number is ... 333
Lucky number is ... 78
Lucky number is ... 78
Lucky number is ... 5566
Lucky number is ... 78
Lucky number is ... 333
Lucky number is ... 135

我想要这样的结果

Lucky number is ... 135
Lucky number is ... 5566
Lucky number is ... 78
Lucky number is ... 190
Lucky number is ... 333
Lucky number is ... 45
Lucky number is ... 68

这样我们就可以不用重复获得“幸运号码”了,唯一的 有人知道怎么做吗?编辑脚本并将 21 减少到 9 不会改变,我什至得到重复。

Lucky number is ... 135
Lucky number is ... 68
Lucky number is ... 45
Lucky number is ... 333
Lucky number is ... 78
Lucky number is ... 135
Lucky number is ... 135
Lucky number is ... 333
Lucky number is ... 32
bash random
  • 1 个回答
  • 1554 Views
Martin Hope
Jeremiah Rose
Asked: 2019-06-01 20:59:26 +0800 CST

RPi + Buildroot: random: crng init done (not enough entropy) - 如何配置 rng-tools

  • 3

我正在为 RPi0w 设计一个最小的自定义 Buildroot 嵌入式操作系统。我当前的迭代需要很长时间才能完全启动 - 插入键盘和鼠标需要几分钟,而没有输入设备则需要数十分钟。挂了很久,最后输出信息:

random: crng init done

这是一个没有声卡或输入设备的嵌入式系统,所以我认为随机数生成器缺乏熵——它必须等待很长时间才能获得足够的噪音才能初始化。

我想安装rng-tools以提供所需的额外熵,但我不确定如何在 Buildroot 中配置它。

寻找以前在 Buildroot 中做过这件事的人,他可以提供有关哪些配置文件是必要的、如何/何时启动rngd(我使用的是普通的 /etc/init.d 脚本)、需要加载哪些内核模块才能使用的帮助树莓派的内置随机发生器等。

raspberry-pi random
  • 1 个回答
  • 2643 Views

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    模块 i915 可能缺少固件 /lib/firmware/i915/*

    • 3 个回答
  • Marko Smith

    无法获取 jessie backports 存储库

    • 4 个回答
  • Marko Smith

    如何将 GPG 私钥和公钥导出到文件

    • 4 个回答
  • Marko Smith

    我们如何运行存储在变量中的命令?

    • 5 个回答
  • Marko Smith

    如何配置 systemd-resolved 和 systemd-networkd 以使用本地 DNS 服务器来解析本地域和远程 DNS 服务器来解析远程域?

    • 3 个回答
  • Marko Smith

    dist-upgrade 后 Kali Linux 中的 apt-get update 错误 [重复]

    • 2 个回答
  • Marko Smith

    如何从 systemctl 服务日志中查看最新的 x 行

    • 5 个回答
  • Marko Smith

    Nano - 跳转到文件末尾

    • 8 个回答
  • Marko Smith

    grub 错误:你需要先加载内核

    • 4 个回答
  • Marko Smith

    如何下载软件包而不是使用 apt-get 命令安装它?

    • 7 个回答
  • Martin Hope
    user12345 无法获取 jessie backports 存储库 2019-03-27 04:39:28 +0800 CST
  • Martin Hope
    Carl 为什么大多数 systemd 示例都包含 WantedBy=multi-user.target? 2019-03-15 11:49:25 +0800 CST
  • Martin Hope
    rocky 如何将 GPG 私钥和公钥导出到文件 2018-11-16 05:36:15 +0800 CST
  • Martin Hope
    Evan Carroll systemctl 状态显示:“状态:降级” 2018-06-03 18:48:17 +0800 CST
  • Martin Hope
    Tim 我们如何运行存储在变量中的命令? 2018-05-21 04:46:29 +0800 CST
  • Martin Hope
    Ankur S 为什么 /dev/null 是一个文件?为什么它的功能不作为一个简单的程序来实现? 2018-04-17 07:28:04 +0800 CST
  • Martin Hope
    user3191334 如何从 systemctl 服务日志中查看最新的 x 行 2018-02-07 00:14:16 +0800 CST
  • Martin Hope
    Marko Pacak Nano - 跳转到文件末尾 2018-02-01 01:53:03 +0800 CST
  • Martin Hope
    Kidburla 为什么真假这么大? 2018-01-26 12:14:47 +0800 CST
  • Martin Hope
    Christos Baziotis 在一个巨大的(70GB)、一行、文本文件中替换字符串 2017-12-30 06:58:33 +0800 CST

热门标签

linux bash debian shell-script text-processing ubuntu centos shell awk ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve