Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Алгоритм выполнения отдельного шага

Рассмотрим более детально логику каждого из четырех циклов обработки одного 512-битного блока. Каждый цикл состоит из 16 шагов, оперирующих с буфером ABCD. Каждый шаг можно представить в виде:

(B + CLSS (A + f (B, C, D) + X[k] + T[i])) → A

где: A, B, C, D – четыре слова буфера; после выполнения каждого отдельного шага происходит циклический сдвиг влево на одно слово;

f – одна из элементарных функций fF, fG, fH, fI;

X [k] - k – ое 32- битовое слово в q – ом 512 блоке сообщения;

CLSs циклический сдвиг влево на s битов 32-битного аргумента;

T [i]i-ое 32-битное слово в матрице Т;

+ - сложение по модулю 232.

Схема выполнения отдельного шага алгоритма

На каждом из четырех циклов алгоритма используется одна из четырех элементарных логических функций. Каждая элементарная функция получает три 32-битных слова на входе и на выходе создает одно 32-битное слово. Каждая функция является множеством битовых логических операций, т.е. n- ый бит выхода является функцией от n -ого бита трех входов. Элементарные функции следующие:

fF = (B & C) v (not B & D)

fG = (B & D) v (C & not D)

fH = B Å C Å D

fI = C Å (B & not D)

 
 

 


Рис. 9.6. Схема выполнения отдельного шага

алгоритма MD5

Массив из 32-битных слов X [0..15] содержит значение текущего 512-битного входного блока, который обрабатывается в настоящий момент. Каждый цикл выполняется 16 раз, а так как каждый блок входного сообщения обрабатывается в четырех циклах, то в результате получается, что каждый блок входного сообщения обрабатывается 64 раза по схеме, показанной на рисунке 9.6. Если представить входной 512-битный блок в виде шестнадцати 32-битных слов, то каждое входное 32-битное слово используется четыре раза, по одному разу в каждом цикле, и каждый элемент таблицы Т, состоящей из 64 32-битных слов, используется только один раз. После каждого шага цикла происходит циклический сдвиг влево четырех слов A, B, C и D. На каждом шаге изменяется только одно из четырех слов буфера ABCD. Следовательно, каждое слово буфера изменяется 16 раз, и затем 17-ый раз в конце для получения окончательного выхода данного блока.

Можно суммировать алгоритм MD5 следующим образом:

MD0 = IV

MDq+1 = MDq + fI[Yq, fH[Yq, fG[Yq, fF[Yq, MDq]]]]

MD = MDL-1

где: IV – начальное значение буфера ABCD, определенное на шаге 3;

Yqq-ый 512-битный блок сообщения;

L – число блоков в сообщении (включая поля дополнения и длины);

MD – окончательное значение дайджеста сообщения.

Алгоритм MD5 имеет следующее свойство: каждый бит хэш-кода является функцией от каждого бита входа. Комплексное повторение элементарных функций fF, fG, fH и fI обеспечивает то, что результат хорошо перемешан; то есть маловероятно, чтобы два сообщения, выбранные случайно, даже если они имеют явно похожие закономерности, имели одинаковый хэш-код. Считается, что MD5 является наиболее сильной хэш-функцией для 128-битного хэш-кода, то есть трудность нахождения двух сообщений, имеющих одинаковый дайджест, имеет порядок 264 операций. В то время, как трудность нахождения сообщения с данным дайджестом имеет порядок 2128 операций.

<== предыдущая лекция | следующая лекция ==>
Логика выполнения MD5 | Логика выполнения SHA-1
Поделиться с друзьями:


Дата добавления: 2014-01-07; Просмотров: 647; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.01 сек.