Почему важно, чтобы секрет был в конце при подписании с MD5?

16

Часто говорят, что при использовании алгоритма MD5 для подписания некоторой произвольной информации общий секрет должен быть в конце. Почему?

Хендрик Бруммерманн
источник
2
Можете ли вы быть более конкретным, вместо того, чтобы сказать «часто говорят». Можете ли вы привести ссылки, а также рассказать, почему проблема актуальна?
Суреш Венкат
В заголовке вашего вопроса есть опечатка: можете ли вы изменить "и" на "конец"?
Карлос Шайдеггер

Ответы:

16

См. «Удары расширения» в конструкции Меркле-Дамгарда . Эта проблема возникает при использовании хеш-функций для аутентификации сообщений .

Короче говоря, установка секрета в начале позволяет злоумышленнику, учитывая сообщение и его хеш, подделать любое сообщение, которое имеет данное сообщение в качестве префикса. Это проблема для наивных кодов, но ее избегают хорошо известные коды, такие как HMAC .

randomwalker
источник
1
Из того, что я понимаю, если вы прервете входной поток, и общий ключ является началом потока, тогда первый блок почти всегда получит тот же хеш, и поэтому общий ключ может быть угадан с помощью радужных атак, верно?
Александру