Рейтинг:-1

Заполнение и алгоритм MD5

флаг cn

В MD5, если M = 100, как мы можем выполнить его заполнение? и сколько блоков нужно в каждом раунде?

Это общие вопросы для понимания заполнения и раундов.

Maarten Bodewes avatar
флаг in
Пожалуйста, опишите, что вы пытались решить этот вопрос самостоятельно. Везде есть общие описания MD5. Простое копирование материалов из этих описаний бесполезно.
Maarten Bodewes avatar
флаг in
Обратите внимание, что блоки и раунды — это не одно и то же. Кажется, вы спрашиваете о блоках, в то время как вы ищете информацию о раундах.
флаг cn
на самом деле я много искал, но не нашел полезного ответа, это вопрос из прошлого теста, и я пытаюсь найти ответ.
флаг cn
я пытаюсь понять весь процесс раундов и блоков MD5, созданных в сообщении (например, сколько блоков будет создано, если длина сообщения составляет 100 бит или 200 бит).
флаг cn
также как раунды работают на этих блоках
Patriot avatar
флаг cn
@Adam Smith Один из подходов состоит в том, чтобы подробно рассказать о том, что вы понимаете, а затем описать, что у вас возникли проблемы с пониманием. После этого попробуйте конкретизировать свой вопрос.Как сказал модератор, пожалуйста, опишите, что вы сделали, чтобы ответить на вопрос. Вы обязательно получите хороший ответ.
Рейтинг:2
флаг fr

Большинство криптографических хеш-функций обрабатывают данные блоками по несколько байтов, поскольку это более эффективно. Для алгоритмов, использующих 32-битные слова, такие как MD5 и SHA-256, они часто имеют размер 64 байта; для алгоритмов, использующих 64-битные слова, таких как SHA-512 или BLAKE2b, это обычно 128-байтовые блоки; и SHA-3 все еще отличается.

Каждая из этих хеш-функций содержит функцию сжатия, которая берет предыдущее состояние хэша (или начальное состояние в начале) и блок данных и объединяет их в новое состояние. Эта функция сжатия содержит определенное количество раундов; на каждый блок делается одинаковое количество раундов. Затем, после обработки последнего блока, из состояния извлекается хеш-значение, которое во многих случаях является просто копией всех или части данных состояния.

В функциях Меркла-Дамгарда, таких как MD5, SHA-256 и SHA-512, заполнение выполняется двумя частями. Сначала вычисляется длина данных в битах. В 32-битных функциях, таких как MD5 и SHA-256, это обычно 64-битное (8-байтовое) значение; в 64-битных функциях это обычно 128-битное (16-байтовое) значение. Данные дополняются таким образом, что добавляется один бит 1, а затем столько битов 0, сколько необходимо, чтобы оставить ровно место для длины. Таким образом, для MD5 или SHA-256 55-байтовое сообщение будет иметь один бит 1, семь нулевых битов, а затем длину. Однако 56-байтовое сообщение будет иметь один бит 1, шестьдесят три бита 0 для заполнения блока, затем еще четыреста сорок восемь битов 0 для заполнения следующего блока, а затем длину, поскольку места нет. как для 1 бита, так и для длины в текущем блоке. Разные алгоритмы хеширования заполняют по-разному; SHA-3 и BLAKE2b используют разные методы.

Что касается раундов, существует три разных типа раундов, о которых мы обычно говорим при обработке блока в функции сжатия. Существуют раунды, например, в MD5 и BLAKE2b, где мы обрабатываем каждое слово сообщения один раз за раунд; MD5 имеет четыре таких раунда, а BLAKE2b — 12. Существуют также алгоритмы, такие как SHA-256 и SHA-512, где слова сообщения в блоке расширяются в последовательность из многих слов (64 и 80 соответственно) и каждый раунд обрабатывает одно из этих расширенных слов. В SHA-3 мы работаем со всем состоянием с данными, которые уже объединены XOR, и каждый раунд работает со всем состоянием.

На практике почти никто не использует сообщения, которые не являются целым числом байтов, потому что с ними неудобно работать на реальном оборудовании. Но для MD5 или SHA-256 100-битное сообщение будет дополнено 1 битом, 347 битами 0 (чтобы получить 448 бит), а затем 64-битная длина будет добавлена ​​для заполнения последнего блока ( 512 бит или 64 байта).

Хотя вы спрашивали, в частности, о MD5, я также рассмотрел здесь несколько других алгоритмов, потому что алгоритмы различаются по многим важным параметрам, и MD5 больше не следует использовать, поэтому более безопасные алгоритмы будут работать по-другому.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.