КАТЕГОРИИ: Архитектура-(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; Yq – q-ый 512-битный блок сообщения; L – число блоков в сообщении (включая поля дополнения и длины); MD – окончательное значение дайджеста сообщения. Алгоритм MD5 имеет следующее свойство: каждый бит хэш-кода является функцией от каждого бита входа. Комплексное повторение элементарных функций fF, fG, fH и fI обеспечивает то, что результат хорошо перемешан; то есть маловероятно, чтобы два сообщения, выбранные случайно, даже если они имеют явно похожие закономерности, имели одинаковый хэш-код. Считается, что MD5 является наиболее сильной хэш-функцией для 128-битного хэш-кода, то есть трудность нахождения двух сообщений, имеющих одинаковый дайджест, имеет порядок 264 операций. В то время, как трудность нахождения сообщения с данным дайджестом имеет порядок 2128 операций.
Дата добавления: 2014-01-07; Просмотров: 677; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |