Должны ли хэш-функции для цифровых подписей быть устойчивыми к прообразу?
Я понимаю, что хэш-функции, используемые для хеширования документа или некоторых данных перед его подписанием, должны быть устойчивыми к столкновениям и устойчивыми к второму предварительному изображению. В противном случае злоумышленник может «искать» два случайных документа с одним и тем же хешем или второй документ, имеющий тот же хеш, что и данный документ, и просто заменить «исходный документ» на «поддельный документ», потому что тогда подписи эти два документа также совпадают.
Однако я не вижу причин, почему хеш-функция для подписи документов должна быть устойчивой к прообразам, или это действительно лишнее свойство?
Ответы
Хеш-функция, которая не устойчива к прообразу, также не является устойчивостью к столкновениям. Если я хеширую большое случайное сообщение и применяю алгоритм прообраза, то крайне маловероятно, что я получу то же сообщение, с которого начал, и таким образом обнаружил коллизию.
Устойчивость к коллизиям имеет решающее значение для хэша, используемого в подписи. Так же можно создавать поддельные подписи. Даже если вам нужно немного больше для создания значимых сообщений, например, использование конфликта внутренних состояний для столкновения расширений и использование таких форматов, как pdf или postscript.