На жаль, / dev / random також не підходить для використання в одноразовій накладці, принаймні, не у вигляді одноразової накладки (з надійними гарантіями безпеки), яку більшість людей уявляє собі, коли думають або застосовують одноразові прокладки. Більшість інформації, наведеної нижче, узагальнена з (дуже довгої) статті на веб- сайті http://www.2uo.de/myths-about-urandom/
Проблема полягає в тому, що / dev / random не є справді випадковим; він використовує CSPRNG для отримання свого результату. Насправді / dev / random використовує такий самий CSPRNG, як / dev / urandom. Єдина відмінність полягає в тому, що / dev / випадкові блоки, якщо її внутрішня оцінка ентропії недостатня.
Слово "оцінка" в попередньому реченні є ключовим. Більшість людей вважає, що ця оцінка завжди точна і досконала, але насправді вона зовсім не точна. Щойно оцінка невірна, ви втрачаєте всі підтверджені гарантії безпеки одноразового майданчика, і все, що вам залишилося, - це обчислювальна безпека - не краще, ніж якби ви використовували / dev / urandom!
Отримати оцінку ентропії трохи неправильно, це не зробить одноразову прокладку трохи небезпечною. Перевірена гарантія безпеки одноразової прокладки - це все або нічого.
Передумова цього питання полягає в тому, що проблеми з / dev / random можна «виправити», додавши ще ентропії. На жаль, ця передумова неправильна. Зловмисне джерело ентропії набагато гірше, ніж взагалі ніяка ентропія, оскільки джерела ентропії часто мають доступ до внутрішніх даних і можуть експортувати ці дані приховано, використовуючи вихід RNG - див. Http://blog.cr.yp.to/20140205-entropy .html для повної дискусії (занадто довго, щоб тут резюмувати). Зокрема, апаратне джерело ентропії (як це рекомендується в кількох інших відповідях) є дуже поганим вибором з точки зору безпеки, оскільки це обладнання в першокласному становищі робити шкідливі речі, і це, по суті, непридатне.