Метод предсказания значений генератора псевдослучайных чисел Java

Исследователи безопасности обратили внимание на проблемы линейных генераторов псевдослучайных чисел, позволяющих легко предсказать последовательность значений, зная одну из сгенерированных последовательностей или подобрав начальный seed. В частности, обращается внимание на плачевное состояние штатных генераторов псевдослучайных чисел Java и Firefox. Код программы для предсказания выдаваемых значений опубликован на GitHub. Дополнительно подготовлена реализация в форме web-приложения на JavaScript.

Метод работает для Math.random() и nextDouble() из java.util.Random, а также для JavaScript-реализации Math.random() из состава Firefox. Зная одно уже сгенерированное значение можно предсказать дальнейшую последовательность значений, выдаваемых текущим объектом Random. В качестве решения при необходимости генерировать надёжные случайные значения рекомендуется использовать Java-класс SecureRandom или использовать Web Cryptography API, который уже появился в Chrome 37 и ожидается в Firefox.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.