From 4dfc753f63081f86bfc72f0259ebdaebf6534aa4 Mon Sep 17 00:00:00 2001 From: Sergey Matveev Date: Tue, 9 Mar 2021 21:07:50 +0300 Subject: [PATCH] arc4random MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit 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. -- 2.50.0