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


16

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


2
Можете ли вы быть более конкретным, вместо того, чтобы сказать «часто говорят». Можете ли вы привести ссылки, а также рассказать, почему проблема актуальна?
Суреш Венкат

В заголовке вашего вопроса есть опечатка: можете ли вы изменить "и" на "конец"?
Карлос Шайдеггер

Ответы:


16

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

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


1
Из того, что я понимаю, если вы прервете входной поток, и общий ключ является началом потока, тогда первый блок почти всегда получит тот же хеш, и поэтому общий ключ может быть угадан с помощью радужных атак, верно?
Александру
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.