> В очередной раз Гугл за день делает для безопасности интернета больше, чем все комментаторы опеннета за год.Да, одной строкой на баше могу сделать для корректности ключей больше чем гугл за год.
Держите генератор рандома для криптухи, без зондов rng-time.sh:
#!/bin/bash# Free for not commercial usage.
# Свободна для некомерческого использования, комерческое использование может быть разрешено только c письменного согласия.
while [ True == True ]
do
echo `date +%N`$((RANDOM %`date +%s`))$((RANDOM %`date +%s`))$((RANDOM %`date +%s`))$((RANDOM %`date +%s`))$((RANDOM %`date +%s`))`date +%N`$((RANDOM %`date +%s`))$((RANDOM %`date +%s`))$((RANDOM %`date +%s`))$((RANDOM %`date +%s`))$((RANDOM %`date +%s`))`date +%s` |openssl dgst -sha512 -binary
done
На основе системного времени с наносекундным разрешением строем число от 0 до 77 цифр - вероятность повторения 1/10^77 с которой берем хеш (можно SHA512 сменить на другой) с вероятностью повторения 1/16^64 - которая и есть показателем надёжности нашего генератора псевдослучайных чисел (prng).
Установив пакет rng-tools c програмой rngtest можно протестировать или просеять полученный рандом согласно FIPS-140-2:
rng-time.sh |dd of=random_urandom iflag=fullblock bs=1250w count=100000 status=progress
dd if=random_time status=none |rngtest
для сравнения смотрим стандартный:
dd if=/dev/urandom of=random_urandom bs=1250w count=100000 status=progress
dd if=random_urandom status=none |rngtest
и улучшенный стандартный:
dd if=/dev/urandom status=none |rngtest --pipe |dd of=random_urandom bs=1250w count=100000 status=progress
dd if=random_urandom status=none |rngtest