Кратко
- RFC 1321, опубликованный в апреле 1992 года, описал MD5 и включил эталонную реализацию на C, тестовый драйвер и семь ожидаемых отпечатков. Исполнители могли проверить свои программы по общим ответам.
- RFC 6151 от 2011 года пересмотрел оценку безопасности: MD5 перестал подходить там, где требуется устойчивость к коллизиям, прежде всего для цифровых подписей. Старые тестовые ответы по-прежнему верно описывали вычисление.
Инструкция с работающим примером
Снаружи MD5 выглядит как строка шестнадцатеричных символов. RFC 1321 разбирал, как до неё добраться. Сообщение дополнялось до заданной позиции, затем к нему приписывалась исходная длина. Четыре 32-битных слова задавали состояние; данные обрабатывались блоками по 512 бит. Ошибка в порядке байтов или одном бите дополнения меняла итог. Даже очень уверенные в себе программы перестают понимать друг друга, когда одно из них прочитало рецепт не с той стороны.
Ривест оставил читателю средство проверки. Приложение A содержало global.h, md5.h, md5c.c и mddriver.c. Последний файл запускал вычисление для строк, файлов и стандартного ввода; ключ -x включал фиксированный набор проб. В приложении A.5 были напечатаны семь результатов: для пустой строки, a, abc и более длинных последовательностей букв и цифр. У abc ожидаемый отпечаток — 900150983cd24fb0d6963f7d28e17f72. Ответы лежали на последних страницах задания. Если собственная программа печатала другое, разработчик получал конкретное место для поиска ошибки.
Исходники происходили из RSAREF, криптографического набора для Privacy-Enhanced Mail. Включение их в RFC сокращало путь от текста до исполняемого кода. Одни программисты могли строить независимую реализацию и сравнивать её результат с образцом. Другие могли перенести опубликованный вариант на свой компьютер и проверить его тестами. Документ называл код переносимым и приводил пример оптимизации для некоторых машин с порядком байтов от младшего к старшему. Напечатанная программа превращала согласие с правилом в дело, которое можно проделать собственными руками.
У MD5 была и исходная претензия на безопасность. Алгоритм развивал MD4. По словам RFC, MD4, вероятно, начали применять быстрее, чем позволяла имевшаяся критическая проверка; MD5 уступал немного в скорости ради ожидаемого запаса прочности. Ривест называл цифровые подписи среди предполагаемых применений: сначала свести большой файл к отпечатку, затем выполнить операцию с закрытым ключом. MD5 передавался в общественное достояние для анализа и возможной стандартизации, хотя сам документ имел категорию Informational. На страницах соседствовали воспроизводимый расчёт и тогдашнее предположение о трудности найти совпадающие отпечатки.
Семь контрольных выходов проверяли первое. Они позволяли узнать, посчитала ли машина известные входы по описанному правилу. Для второго требовался другой труд: выяснять, какие пары сообщений сможет целенаправленно построить противник. Прошедший все тесты калькулятор остаётся тем же калькулятором, когда исследователи обнаруживают новый способ поставить задачу. Контрольные ответы ловят ошибки исполнения; криптоанализ оценивает свойства самой процедуры.
В марте 2011 года вышел RFC 6151. Опираясь на опубликованные атаки, он обновил соображения безопасности RFC 1321 и признал MD5 неподходящим для применений, где нужна устойчивость к коллизиям, например для цифровых подписей. Использование HMAC-MD5 и контрольных сумм против случайных ошибок документ рассматривал отдельно; для новых протоколов он рекомендовал обходиться без HMAC-MD5. Отпечаток abc остался прежним. Изменился объём обещаний, которые цифровая подпись могла возложить на эту последовательность символов.
Пара RFC показывает два вида точности. В 1992 году алгоритм, код и семь образцов помогли независимым разработчикам одинаково выполнять вычисление. В 2011 году опубликованное исследование позволило уточнить место этого вычисления в системах безопасности. Старая программа могла продолжать идеально совпадать с эталоном. Для подписи теперь требовался иной выбор. Лист ответов сохранился; преподаватель переписал главный вопрос экзамена.
Обзор для участников
Подробный контекст профиля
Войдите с подходящим уровнем подписки, чтобы открыть полный обзор и примечания к источникам.
Только для Стратегического сообщества
Стратегическое сообщество
Открыто всем читателям. Вступите и войдите, чтобы открыть обзоры профилей.
Вступить в Стратегическое сообществоТолько для Альянса лидеров
Альянс лидеров
Для проверенных владельцев IP-активов и руководителей. Войдите, чтобы открыть обзоры Альянса.
Вступить в Альянс лидеров





