Краткий ответ: sha1-prng не сломан, хотя sha1 не работает.
Длинный ответ:
Криптографические хэш-функции должны обладать множеством различных свойств, наиболее часто упоминаемыми из которых являются: устойчивость к коллизиям, устойчивость к предварительному изображению и устойчивость к второму предварительному изображению. Но есть и другие свойства, которые нам нужны, даже если они могут не иметь смысла, например, «выглядеть как» случайный оракул. Мы просим эти свойства, чтобы хэш-функции можно было использовать самыми безумными способами, и люди могли думать, что они получают от этого безопасность.
Но на самом деле разные конструкции зависят от разных свойств базовой хэш-функции. Sha1, в частности, зависит от сопротивления предварительного изображения, а не сопротивления столкновений или второго сопротивления предварительного изображения.
Мы знаем, что коллизии можно найти в sha1 (мы знали об этом много лет, но первый пример коллизии был опубликован совсем недавно). Но никто не предоставил доказательств того, что другие желаемые свойства sha1 не удовлетворяются.
Как следствие, конструкции, требующие устойчивости к коллизиям, не работают, если используется sha1, в то время как конструкции, не требующие этого свойства, могут оставаться в порядке. Sha1-prng не требует защиты от коллизий для обеспечения безопасности. Как и HMAC-sha1 (я знаю, что многие люди тоже задаются этим вопросом).
person
TheGreatContini
schedule
21.03.2017
SHA1PRNGбезопасным, что означает достаточно безопасный., учитывая, что идентификаторы сеансов Tomcat довольно длинные. - person user207421   schedule 21.03.2017