Мне нужно разумное количество высококачественных случайных данных для приложения, которое я пишу.Linux предоставляет файл / dev / random для этой цели, что идеально;однако, поскольку мой сервер представляет собой виртуальную машину с одним сервисом, он имеет очень ограниченные источники энтропии, что означает, что / dev / random быстро истощается.
Я заметил, что если я читаю из / dev / random,Я получу только 16 или около того случайных байтов до того, как устройство заблокируется, пока оно ожидает большей энтропии:
[duke@poopz ~]# hexdump /dev/random
0000000 f4d3 8e1e 447a e0e3 d937 a595 1df9 d6c5
<process blocks...>
Если я завершу этот процесс, уйду на час и повторю команду, снова только 16 или около тогогенерируются байты случайных данных.
Однако - если вместо этого я оставлю команду работать в течение того же промежутка времени, будет собрано гораздо больше случайных данных.Исходя из этого, я предполагаю, что в течение определенного периода времени система производит много энтропии, но Linux использует ее, только если вы на самом деле читаете из / dev / random, и отбрасывает ее, если нет.Если это так, мой вопрос:
Можно ли настроить Linux для буферизации / dev / random, чтобы при чтении из него были получены гораздо большие пакеты высококачественных случайных данных?
Для меня не составило бы труда запаковать / dev / random как часть моей программы, но я чувствую, что делать это на системном уровне было бы более элегантно.Мне также интересно, будет ли иметь в буфере Linux случайные данные в памяти, что может повлиять на безопасность.