Интернет магазин китайских планшетных компьютеров |
|
Компьютеры - Структура МерклаДамгарда - Пример дополнения сообщения23 января 2011Оглавление: 1. Структура МерклаДамгарда 2. Алгоритмы, реализующие структуру Меркла-Дамгарда 3. Пример дополнения сообщения 4. Wide pipe construction Для того, чтобы передать сообщение в функцию сжатия, необходимо дополнить последний блок до полного определёнными данными. Например, предположим, сообщение - «HashInput» и размер блока для функции сжатия - 8 байт. В таком случае, получится 2 блока: HashInpu t0000000 Но этого недостаточно, так как это будет означать, что различные сообщения, начинающиеся одними и теми же символами, и заканчивающимися нулями или другими байтами из заполнителя, будут поступать в функцию сжатия совершенно одинаковыми блоками, и будет получаться одинаковая хеш-сумма. В нашем примере, например, сообщение «HashInput00» , будет разделено на такие же блоки, что и первоначальное сообщение «HashInput». Чтобы этого избежать, первый бит добавляемых данных, должен быть изменен. Так как заполнитель обычно состоит из нулей, первый бит заполнителя должен быть заменён на «1». В нашем примере, мы получим следующее: HashInpu t1000000 Чтобы усилить хеш, можно добавить длину сообщения в дополнительном блоке В нашем примере мы получим три блока: HashInpu t1000000 00000009 Чтобы избежать двусмысленности, значение длины сообщения должно быть само по себе устойчиво к добавлению заполнителя в блок. Наиболее распространенные реализации используют фиксированный размер и фиксированную позицию в конце последнего блока для кодирования значения длины сообщения. Однако, немного расточительно кодировать один дополнительный блок для длины сообщения. Поэтому, существует небольшая оптимизация алгоритма, которая часто используется. Если в последнем блоке сообщения достаточно места значение длины сообщения может быть добавлено к нему. Например, возьмем в нашем примере, что длина сообщения кодируется в 5 байт. Это означает, что к последний блок содержит «00009». То есть получаем 2 блока: HashInpu t1000009 Просмотров: 3394
|