From: Sergey Matveev Date: Tue, 9 Mar 2021 18:07:50 +0000 (+0300) Subject: arc4random X-Git-Url: http://www.git.stargrave.org/?a=commitdiff_plain;h=4dfc753f63081f86bfc72f0259ebdaebf6534aa4;p=stargrave-blog.git arc4random http://www.openbsd.org/papers/hackfest2014-arc4random/ Давно слышал про rand() и random() и про то, что они не безопасны. В BSD системах есть arc4random*(), которые изобрели в OpenBSD. Я сторонился этого вызова, ибо это же RC4. Но, оказалось, что RC4 в нормальных ОС давно заменён на что-то более серьёзное, типа ChaCha20. Reseed происходит на регулярной основе, но не при каждом вызове. А ChaCha20 я доверяю на 100% что она хороший выхлоп создаёт, без яростного потребления энтропии. В итоге мне всё больше нравится идея использования этой функции вместо чтения /dev/urandom, с которым ещё и куча кода нужна, ведь это же работа с файлами, требующая ещё и соответствующих прав. Плюс скорость ChaCha20 такая, что её и не для криптографических задач вполне можно использовать. Не даром в man-ах советуют её использовать. А в OpenBSD, пишут, что она де-факто везде и всюду и применяется. И надо читать на ARCFOUR, а "A Replacement Call for Random". Ах да, конечно же этот вызов, судя по всяким презентациям, есть везде, кроме, конечно же, glibc. ---