Н:
h = H (M)
Где М является сообщением произвольной длины и h является
Рассмотрим требования, которым должна соответствовать
Н должна применяться к блоку данных любой длины.Н создает выход фиксированной длины.Н (М) относительно легко (за полиномиальное время) вычисляется для
любого значения М.h вычислительно невозможно
найти M такое, что Н (M) = h.х вычислительно невозможно найти $$y \ne x$$, что H
(y) = H (x).(х, y) такую, что H (y) = H (x).Первые три свойства требуют, чтобы
Четвертое свойство определяет требование односторонности М и С = Н (SAB || M). Если
атакующий может инвертировать SAB || M = H-1 (C). Так как атакующий теперь знает и М и SAB || M, получить SAB совсем просто.
Пятое свойство гарантирует, что невозможно найти другое сообщение,
чье значение
Все
Одним из простейших примеров
каждого блока:
Где
Сi - i-ый бит 1 <= i <= n. |
k - число n-битных блоков входа. |
bij - i-ый бит в j-ом блоке. |
$$\oplus$$ - операция . |
В результате получается n, известный как продольный
избыточный контроль. Это эффективно при случайных сбоях для проверки
Часто при использовании подобного продольного избыточного контроля
для каждого блока выполняется однобитный циклический сдвиг после
вычисления
XOR для очередного блока и Это даст эффект "случайности" входа и уничтожит любую регулярность, которая присутствует во входных значениях.
Хотя второй вариант считается более предпочтительным для обеспечения
Хотя простого или ротационного ( RXOR ) недостаточно, если
целостность обеспечивается только зашифрованным Х1, Х2,..., ХN,
определяется С как поблочный всех блоков, который
присоединяется в качестве последнего блока:
Затем все сообщение шифруется, включая Y1, Y2, ..., YN+1. По определению СВС
имеем:
Но XN+1 является
Так как слагаемые в предыдущем равенстве могут вычисляться в любом
порядке, следовательно,
Первоначальный стандарт, предложенный ,
который применялся к 64-битным блокам сообщения, затем все сообщение
шифровалось, используя режим СВС.
Прежде чем рассматривать более сложные
Так называемый " Н равно n.
Каким должно быть число k, чтобы для конкретного значения X и
значений Y1, $$\dots$$, Yk вероятность того, что хотя бы для одного Yi
выполнялось равенство
H (X) = H (Y)
была бы больше 0,5.
Для одного Y вероятность того, что H (X) = H (Y), равна 1/n.
Соответственно, вероятность того, что $$H(X) \ne H(Y)$$, равна 1 - 1/n.
Если создать k значений, то вероятность того, что ни для одного из
них не будет совпадений, равна произведению вероятностей,
соответствующих одному значению, т.е. (1 - 1/n)k.
Следовательно, вероятность, по крайней мере, одного совпадения равна
1 - (1 - 1/n)k
По формуле бинома Ньютона
$$(1 - a)^{k} = \\ 1 - ka + (k(k-1)/2!)a^{2} - ... \approx 1 - ka\\ 1 - (1 - k/n) = k/n = 0,5\\ k = n/2$$Таким образом, мы выяснили, что для m-битового 2m-1 сообщений, чтобы вероятность совпадения
Теперь рассмотрим следующую задачу: обозначим P (n, k) вероятность
того, что в множестве из k элементов, каждый из которых может
принимать n значений, есть хотя бы два с одинаковыми значениями. Чему
должно быть равно k, чтобы P (n, k) была бы больше 0,5?
Число различных способов выбора элементов таким образом, чтобы при этом не было дублей, равно
n(n-1) ... (n-k+1)=n!/(n-k)!
Всего возможных способов выбора элементов равно
nk
Вероятность того, что дублей нет, равна
n!/(n-k)!nk
Вероятность того, что есть дубли, соответственно равна
1 - n!/(n-k)!nk
P (n, k) = 1 - n! / ((n-k)! x nk) = 1 - (n x (n-1) x ... x (n-k-1)) / nk = 1 - [ (n-1)/n x (n-2)/n x ... x (n-k+1)/n] = 1 - [(1- 1/n) x (1 - 2/n) x ... x (1 - (k-1)/n)]
Известно, что
$$1 - x <= e^{-x}\\ P (n, k) > 1 - [e^{-1/n} x e^{-2}/n x ... x e^{-k}/n]\\ P (n, k) > 1 - e^{-k(k-1)/n}\\ 1/2 = 1 - e^{-k(k-1)/n}\\ 2 = e^{k(k-1)/n}\\ ln 2 = k (k-1) / 2n\\ k (k-1) \approx k^{2}\\ k = (2n x ln 2)^{1/2} = 1,17 n^{1/2} \approx n^{1/2}$$Если m бит, т.е. принимает 2m значений, то
Подобный результат называется "парадоксом дня рождения", потому что в
соответствии с приведенными выше рассуждениями для того, чтобы
вероятность совпадения дней рождения у двух человек была больше 0,5,
в группе должно быть всего 23 человека. Этот результат кажется
удивительным, возможно, потому, что для каждого отдельного человека в
группе вероятность того, что с его днем рождения совпадет день
рождения кого-то другого в группе, достаточно мала.
Вернемся к рассмотрению свойств С передается с соответствующим
незашифрованным сообщением М, то противнику необходимо будет найти М'
такое, что
Н (М') = Н (М)
для того, чтобы подменить сообщение и обмануть получателя. В среднем
противник должен перебрать 263 сообщений для того, чтобы найти такое,
у которого
Тем не менее, возможны различного рода атаки, основанные на "парадоксе дня рождения". Возможна следующая стратегия:
2m/2 вариантов сообщения, каждое из которых
имеет некоторый определенный смысл. Противник подготавливает такое же
количество сообщений, каждое из которых является поддельным и
предназначено для замены настоящего сообщения.0,5. Если соответствующая пара
не найдена, то создаются дополнительные исходные и поддельные
сообщения до тех пор, пока не будет найдена пара.Таким образом, если используется 64-битный 232.
В заключение отметим, что длина
Существуют различные М1, М2, . . . , МN и используется алгоритм
G
следующим образом:
Н0 = начальное значение Нi = EMi [Hi-1] G = HN
Это аналогично использованию шифрования в режиме СВС, но в данном
случае
Могут осуществляться другие атаки типа "дня рождения", которые
возможны даже в том случае, если противник имеет доступ только к
одному сообщению и соответствующему ему зашифрованному
G.Q1, Q2, . . . , QN-2.Нi = EQi[Hi-1] для 1 <= i <= N-2.2m/2 случайных блока Х и для каждого такого блока Х
вычислить ЕХ[HN-2]. Создать дополнительно 2m/2 cлучайных блока Y и
для каждого блока Y вычислить DY[G], где D - дешифрующая функция,
соответствующая Е. Основываясь на "парадоксе дня рождения" можно
сказать, что с высокой степенью вероятности эта последовательность
будет содержать блоки Х и Y такие, что ЕХ[HN-2] = DY[Y].Q1, Q2, . . . , QN-2, X, Y. Это сообщение имеет G и, следовательно, может быть использовано вместе с
зашифрованным Эта форма атаки известна как атака "встреча посередине". В различных исследованиях предлагаются более тонкие методы для усиления подхода, основанного на цепочке блоков. Например, Девис и Прайс описали следующий вариант:
$$H_{i} = E_{Mi} [H_{i-1}] \oplus H_{i-1}$$Возможен другой вариант:
$$H_{i} = E_{Hi-1} [M_{i}] \oplus M_{i}$$Однако обе эти схемы также имеют уязвимости при различных атаках. В более общем случае, можно показать, что некоторая форма "атаки дня рождения" имеет успех при любом хэш-алгоритме, включающем использование цепочки шифрованных блоков без применения секретного ключа.
Дальнейшие исследования были направлены на поиск других подходов к
Рассмотрим алгоритм получения
Алгоритм получает на входе сообщение произвольной длины и создает в
качестве выхода
(рис 8.1) Логика выполнения MD5Шаг 1: добавление недостающих битов
Сообщение дополняется таким образом, чтобы его длина стала равна 448
по модулю 512 ( $$длина \equiv 448 mod 512$$ ). Это означает, что длина
добавленного сообщения на 64 бита меньше, чем число, кратное 512.
Добавление производится всегда, даже если сообщение имеет нужную
длину. Например, если длина сообщения 448 битов, оно дополняется 512
битами до 960 битов. Таким образом, число добавляемых битов находится
в диапазоне от 1 до 512.
Добавление состоит из единицы, за которой следует необходимое количество нулей.
Шаг 2: добавление длины
64-битное представление длины исходного (до добавления) сообщения в
битах присоединяется к результату первого шага. Если первоначальная
длина больше, чем 264, то используются только последние 64 бита.
Таким образом, поле содержит длину исходного сообщения по модулю 264.
В результате первых двух шагов создается сообщение, длина которого
кратна 512 битам. Это расширенное сообщение представляется как
последовательность 512-битных блоков Y0, Y1, . . ., YL-1, при этом
общая длина расширенного сообщения равна L * 512 битам. Таким
образом, длина полученного расширенного сообщения кратна шестнадцати
32-битным словам.
(рис 8.2) Структура расширенного сообщенияШаг 3: инициализация MD-буфера
Используется 128-битный буфер для хранения промежуточных и
окончательных результатов A, B, C, D ). Эти регистры
инициализируются следующими шестнадцатеричными числами:
А = 01234567 В = 89ABCDEF C = FEDCBA98 D = 76543210
Шаг 4: обработка последовательности 512-битных (16-словных) блоков
Основой алгоритма является модуль, состоящий из четырех циклических
обработок, обозначенный как HMD5. Четыре цикла имеют похожую
структуру, но каждый цикл использует свою элементарную логическую
функцию, обозначаемую fF, fG, fH и fI соответственно.
(рис 8.3) Обработка очередного 512-битного блокаКаждый цикл принимает в качестве входа текущий 512-битный блок Yq,
обрабатывающийся в данный момент, и 128-битное значение буфера ,
которое является промежуточным значением T[1 ... 64], построенной на основе функции sin.
i-ый элемент T, обозначаемый T[i], имеет значение, равное целой части
от 232 * , i задано в радианах. Так как
является числом между 0 и 1, каждый элемент Т является целым, которое
может быть представлено 32 битами. Таблица обеспечивает "случайный"
набор 32-битных значений, которые должны ликвидировать любую
регулярность во входных данных.
Для получения выход четырех циклов складывается по модулю 232 с . Сложение выполняется независимо для каждого из четырех слов в
буфере.
Шаг 5: выход
После обработки всех L 512-битных блоков выходом L-ой стадии является
128-битный
Рассмотрим более детально логику каждого из четырех циклов выполнения
одного 512-битного блока. Каждый цикл состоит из 16 шагов,
оперирующих с буфером . Каждый шаг можно представить в виде:
(рис 8.4) Логика выполнения отдельного шагаA <- B + CLSs (A + f (B, C, D) + X [k] + T [i])
где
A, B, C, D - четыре слова буфера; после выполнения каждого отдельного
шага происходит циклический сдвиг влево на одно слово. |
f - одна из элементарных функций fF, fG, fH, fI. |
CLSs - циклический сдвиг влево на s битов 32-битного аргумента. |
X [k] - M [q * 16 + k] - k-ое 32-битное слово в q-ом 512 блоке
сообщения. |
T [i] - i-ое 32-битное слово в матрице Т. |
+ - сложение по модулю 232. |
На каждом из четырех циклов алгоритма используется одна из четырех
элементарных
Массив из 32-битных слов X [0..15] содержит значение текущего
512-битного входного блока, который обрабатывается в настоящий
момент. Каждый цикл выполняется 16 раз, а так как каждый блок
входного сообщения обрабатывается в четырех циклах, то каждый блок
входного сообщения обрабатывается по схеме, показанной на Рис. 4, 64
раза. Если представить входной 512-битный блок в виде шестнадцати
32-битных слов, то каждое входное 32-битное слово используется четыре
раза, по одному разу в каждом цикле, и каждый элемент таблицы Т,
состоящей из 64 32-битных слов, используется только один раз. После
каждого шага цикла происходит циклический сдвиг влево четырех слов A, B, C и D. На каждом шаге изменяется только одно из четырех слов
буфера . Следовательно, каждое слово буфера изменяется 16 раз, и
затем 17-ый раз в конце для получения окончательного выхода данного
блока.
Можно суммировать алгоритм
MD0 = IV MDq+1 = MDq + fI[Yq, fH[Yq, fG[Yq, fF[Yq, MDq]]]] MD = MDL-1
Где
IV - начальное значение буфера , определенное на шаге 3. |
Yq - q-ый 512-битный блок сообщения. |
L - число блоков в сообщении (включая поля дополнения и длины). |
- окончательное значение |
Алгоритм
Эти цели преследовались и при разработке
Т [i], применяются для каждого из 64 шагов.А. Результат второго шага хранится в D и образуется
добавлением А к циклически сдвинутому влево на определенное число бит
результату элементарной функции. Аналогично, результат третьего шага
хранится в С и образуется добавлением D к циклически сдвинутому влево
результату элементарной функции. Алгоритм fF, fG, fH и fI обеспечивает то, что результат хорошо
перемешан; то есть маловероятно, чтобы два сообщения, выбранные
случайно, даже если они имеют явно похожие закономерности, имели
одинаковый
Два результата, тем не менее, заслуживают внимания. Показано, что
используя дифференциальный криптоанализ, можно за разумное время
найти два сообщения, которые создают один и тот же
Существует способ выбора блока сообщения и двух соответствующих ему
промежуточных значений . Пока способа расширения данного
подхода для успешной атаки на
Н:
h = H (M)
Где М является сообщением произвольной длины и h является
Рассмотрим требования, которым должна соответствовать
Н должна применяться к блоку данных любой длины.Н создает выход фиксированной длины.Н (М) относительно легко (за полиномиальное время) вычисляется для
любого значения М.h вычислительно невозможно
найти M такое, что Н (M) = h.х вычислительно невозможно найти $$y \ne x$$, что H
(y) = H (x).(х, y) такую, что H (y) = H (x).Первые три свойства требуют, чтобы
Четвертое свойство определяет требование односторонности М и С = Н (SAB || M). Если
атакующий может инвертировать SAB || M = H-1 (C). Так как атакующий теперь знает и М и SAB || M, получить SAB совсем просто.
Пятое свойство гарантирует, что невозможно найти другое сообщение,
чье значение
Все
Одним из простейших примеров
каждого блока:
Где
Сi - i-ый бит 1 <= i <= n. |
k - число n-битных блоков входа. |
bij - i-ый бит в j-ом блоке. |
$$\oplus$$ - операция . |
В результате получается n, известный как продольный
избыточный контроль. Это эффективно при случайных сбоях для проверки
Часто при использовании подобного продольного избыточного контроля
для каждого блока выполняется однобитный циклический сдвиг после
вычисления
XOR для очередного блока и Это даст эффект "случайности" входа и уничтожит любую регулярность, которая присутствует во входных значениях.
Хотя второй вариант считается более предпочтительным для обеспечения
Хотя простого или ротационного ( RXOR ) недостаточно, если
целостность обеспечивается только зашифрованным Х1, Х2,..., ХN,
определяется С как поблочный всех блоков, который
присоединяется в качестве последнего блока:
Затем все сообщение шифруется, включая Y1, Y2, ..., YN+1. По определению СВС
имеем:
Но XN+1 является
Так как слагаемые в предыдущем равенстве могут вычисляться в любом
порядке, следовательно,
Первоначальный стандарт, предложенный ,
который применялся к 64-битным блокам сообщения, затем все сообщение
шифровалось, используя режим СВС.
Прежде чем рассматривать более сложные
Так называемый " Н равно n.
Каким должно быть число k, чтобы для конкретного значения X и
значений Y1, $$\dots$$, Yk вероятность того, что хотя бы для одного Yi
выполнялось равенство
H (X) = H (Y)
была бы больше 0,5.
Для одного Y вероятность того, что H (X) = H (Y), равна 1/n.
Соответственно, вероятность того, что $$H(X) \ne H(Y)$$, равна 1 - 1/n.
Если создать k значений, то вероятность того, что ни для одного из
них не будет совпадений, равна произведению вероятностей,
соответствующих одному значению, т.е. (1 - 1/n)k.
Следовательно, вероятность, по крайней мере, одного совпадения равна
1 - (1 - 1/n)k
По формуле бинома Ньютона
$$(1 - a)^{k} = \\ 1 - ka + (k(k-1)/2!)a^{2} - ... \approx 1 - ka\\ 1 - (1 - k/n) = k/n = 0,5\\ k = n/2$$Таким образом, мы выяснили, что для m-битового 2m-1 сообщений, чтобы вероятность совпадения
Теперь рассмотрим следующую задачу: обозначим P (n, k) вероятность
того, что в множестве из k элементов, каждый из которых может
принимать n значений, есть хотя бы два с одинаковыми значениями. Чему
должно быть равно k, чтобы P (n, k) была бы больше 0,5?
Число различных способов выбора элементов таким образом, чтобы при этом не было дублей, равно
n(n-1) ... (n-k+1)=n!/(n-k)!
Всего возможных способов выбора элементов равно
nk
Вероятность того, что дублей нет, равна
n!/(n-k)!nk
Вероятность того, что есть дубли, соответственно равна
1 - n!/(n-k)!nk
P (n, k) = 1 - n! / ((n-k)! x nk) = 1 - (n x (n-1) x ... x (n-k-1)) / nk = 1 - [ (n-1)/n x (n-2)/n x ... x (n-k+1)/n] = 1 - [(1- 1/n) x (1 - 2/n) x ... x (1 - (k-1)/n)]
Известно, что
$$1 - x <= e^{-x}\\ P (n, k) > 1 - [e^{-1/n} x e^{-2}/n x ... x e^{-k}/n]\\ P (n, k) > 1 - e^{-k(k-1)/n}\\ 1/2 = 1 - e^{-k(k-1)/n}\\ 2 = e^{k(k-1)/n}\\ ln 2 = k (k-1) / 2n\\ k (k-1) \approx k^{2}\\ k = (2n x ln 2)^{1/2} = 1,17 n^{1/2} \approx n^{1/2}$$Если m бит, т.е. принимает 2m значений, то
Подобный результат называется "парадоксом дня рождения", потому что в
соответствии с приведенными выше рассуждениями для того, чтобы
вероятность совпадения дней рождения у двух человек была больше 0,5,
в группе должно быть всего 23 человека. Этот результат кажется
удивительным, возможно, потому, что для каждого отдельного человека в
группе вероятность того, что с его днем рождения совпадет день
рождения кого-то другого в группе, достаточно мала.
Вернемся к рассмотрению свойств С передается с соответствующим
незашифрованным сообщением М, то противнику необходимо будет найти М'
такое, что
Н (М') = Н (М)
для того, чтобы подменить сообщение и обмануть получателя. В среднем
противник должен перебрать 263 сообщений для того, чтобы найти такое,
у которого
Тем не менее, возможны различного рода атаки, основанные на "парадоксе дня рождения". Возможна следующая стратегия:
2m/2 вариантов сообщения, каждое из которых
имеет некоторый определенный смысл. Противник подготавливает такое же
количество сообщений, каждое из которых является поддельным и
предназначено для замены настоящего сообщения.0,5. Если соответствующая пара
не найдена, то создаются дополнительные исходные и поддельные
сообщения до тех пор, пока не будет найдена пара.Таким образом, если используется 64-битный 232.
В заключение отметим, что длина
Существуют различные М1, М2, . . . , МN и используется алгоритм
G
следующим образом:
Н0 = начальное значение Нi = EMi [Hi-1] G = HN
Это аналогично использованию шифрования в режиме СВС, но в данном
случае
Могут осуществляться другие атаки типа "дня рождения", которые
возможны даже в том случае, если противник имеет доступ только к
одному сообщению и соответствующему ему зашифрованному
G.Q1, Q2, . . . , QN-2.Нi = EQi[Hi-1] для 1 <= i <= N-2.2m/2 случайных блока Х и для каждого такого блока Х
вычислить ЕХ[HN-2]. Создать дополнительно 2m/2 cлучайных блока Y и
для каждого блока Y вычислить DY[G], где D - дешифрующая функция,
соответствующая Е. Основываясь на "парадоксе дня рождения" можно
сказать, что с высокой степенью вероятности эта последовательность
будет содержать блоки Х и Y такие, что ЕХ[HN-2] = DY[Y].Q1, Q2, . . . , QN-2, X, Y. Это сообщение имеет G и, следовательно, может быть использовано вместе с
зашифрованным Эта форма атаки известна как атака "встреча посередине". В различных исследованиях предлагаются более тонкие методы для усиления подхода, основанного на цепочке блоков. Например, Девис и Прайс описали следующий вариант:
$$H_{i} = E_{Mi} [H_{i-1}] \oplus H_{i-1}$$Возможен другой вариант:
$$H_{i} = E_{Hi-1} [M_{i}] \oplus M_{i}$$Однако обе эти схемы также имеют уязвимости при различных атаках. В более общем случае, можно показать, что некоторая форма "атаки дня рождения" имеет успех при любом хэш-алгоритме, включающем использование цепочки шифрованных блоков без применения секретного ключа.
Дальнейшие исследования были направлены на поиск других подходов к
Рассмотрим алгоритм получения
Алгоритм получает на входе сообщение произвольной длины и создает в
качестве выхода
(рис 8.1) Логика выполнения MD5Шаг 1: добавление недостающих битов
Сообщение дополняется таким образом, чтобы его длина стала равна 448
по модулю 512 ( $$длина \equiv 448 mod 512$$ ). Это означает, что длина
добавленного сообщения на 64 бита меньше, чем число, кратное 512.
Добавление производится всегда, даже если сообщение имеет нужную
длину. Например, если длина сообщения 448 битов, оно дополняется 512
битами до 960 битов. Таким образом, число добавляемых битов находится
в диапазоне от 1 до 512.
Добавление состоит из единицы, за которой следует необходимое количество нулей.
Шаг 2: добавление длины
64-битное представление длины исходного (до добавления) сообщения в
битах присоединяется к результату первого шага. Если первоначальная
длина больше, чем 264, то используются только последние 64 бита.
Таким образом, поле содержит длину исходного сообщения по модулю 264.
В результате первых двух шагов создается сообщение, длина которого
кратна 512 битам. Это расширенное сообщение представляется как
последовательность 512-битных блоков Y0, Y1, . . ., YL-1, при этом
общая длина расширенного сообщения равна L * 512 битам. Таким
образом, длина полученного расширенного сообщения кратна шестнадцати
32-битным словам.
(рис 8.2) Структура расширенного сообщенияШаг 3: инициализация MD-буфера
Используется 128-битный буфер для хранения промежуточных и
окончательных результатов A, B, C, D ). Эти регистры
инициализируются следующими шестнадцатеричными числами:
А = 01234567 В = 89ABCDEF C = FEDCBA98 D = 76543210
Шаг 4: обработка последовательности 512-битных (16-словных) блоков
Основой алгоритма является модуль, состоящий из четырех циклических
обработок, обозначенный как HMD5. Четыре цикла имеют похожую
структуру, но каждый цикл использует свою элементарную логическую
функцию, обозначаемую fF, fG, fH и fI соответственно.
(рис 8.3) Обработка очередного 512-битного блокаКаждый цикл принимает в качестве входа текущий 512-битный блок Yq,
обрабатывающийся в данный момент, и 128-битное значение буфера ,
которое является промежуточным значением T[1 ... 64], построенной на основе функции sin.
i-ый элемент T, обозначаемый T[i], имеет значение, равное целой части
от 232 * , i задано в радианах. Так как
является числом между 0 и 1, каждый элемент Т является целым, которое
может быть представлено 32 битами. Таблица обеспечивает "случайный"
набор 32-битных значений, которые должны ликвидировать любую
регулярность во входных данных.
Для получения выход четырех циклов складывается по модулю 232 с . Сложение выполняется независимо для каждого из четырех слов в
буфере.
Шаг 5: выход
После обработки всех L 512-битных блоков выходом L-ой стадии является
128-битный
Рассмотрим более детально логику каждого из четырех циклов выполнения
одного 512-битного блока. Каждый цикл состоит из 16 шагов,
оперирующих с буфером . Каждый шаг можно представить в виде:
(рис 8.4) Логика выполнения отдельного шагаA <- B + CLSs (A + f (B, C, D) + X [k] + T [i])
где
A, B, C, D - четыре слова буфера; после выполнения каждого отдельного
шага происходит циклический сдвиг влево на одно слово. |
f - одна из элементарных функций fF, fG, fH, fI. |
CLSs - циклический сдвиг влево на s битов 32-битного аргумента. |
X [k] - M [q * 16 + k] - k-ое 32-битное слово в q-ом 512 блоке
сообщения. |
T [i] - i-ое 32-битное слово в матрице Т. |
+ - сложение по модулю 232. |
На каждом из четырех циклов алгоритма используется одна из четырех
элементарных
Массив из 32-битных слов X [0..15] содержит значение текущего
512-битного входного блока, который обрабатывается в настоящий
момент. Каждый цикл выполняется 16 раз, а так как каждый блок
входного сообщения обрабатывается в четырех циклах, то каждый блок
входного сообщения обрабатывается по схеме, показанной на Рис. 4, 64
раза. Если представить входной 512-битный блок в виде шестнадцати
32-битных слов, то каждое входное 32-битное слово используется четыре
раза, по одному разу в каждом цикле, и каждый элемент таблицы Т,
состоящей из 64 32-битных слов, используется только один раз. После
каждого шага цикла происходит циклический сдвиг влево четырех слов A, B, C и D. На каждом шаге изменяется только одно из четырех слов
буфера . Следовательно, каждое слово буфера изменяется 16 раз, и
затем 17-ый раз в конце для получения окончательного выхода данного
блока.
Можно суммировать алгоритм
MD0 = IV MDq+1 = MDq + fI[Yq, fH[Yq, fG[Yq, fF[Yq, MDq]]]] MD = MDL-1
Где
IV - начальное значение буфера , определенное на шаге 3. |
Yq - q-ый 512-битный блок сообщения. |
L - число блоков в сообщении (включая поля дополнения и длины). |
- окончательное значение |
Алгоритм
Эти цели преследовались и при разработке
Т [i], применяются для каждого из 64 шагов.А. Результат второго шага хранится в D и образуется
добавлением А к циклически сдвинутому влево на определенное число бит
результату элементарной функции. Аналогично, результат третьего шага
хранится в С и образуется добавлением D к циклически сдвинутому влево
результату элементарной функции. Алгоритм fF, fG, fH и fI обеспечивает то, что результат хорошо
перемешан; то есть маловероятно, чтобы два сообщения, выбранные
случайно, даже если они имеют явно похожие закономерности, имели
одинаковый
Два результата, тем не менее, заслуживают внимания. Показано, что
используя дифференциальный криптоанализ, можно за разумное время
найти два сообщения, которые создают один и тот же
Существует способ выбора блока сообщения и двух соответствующих ему
промежуточных значений . Пока способа расширения данного
подхода для успешной атаки на
Для получения официальных документов о завершении программы дополнительного профессионального образования (удостоверения о повышении квалификации, дипломов о профессиональной переподготовке и MBA) необходимо предоставить:
Внимание! Вы можете не заказывать доставку бумажной версии официального документы, а скачать его в электронном виде и распечатать самостоятельно. Информация о выданном документе в течение 1 месяца загружается в Федеральную информационную систему «Федеральный реестр сведений о документах об образовании и (или) о квалификации, документах об обучении» - ФИС ФРДО.
Доступ на новый сайт осуществляется с использованием адреса электронной почты, который был указан вами при регистрации на "старом". Мы постарались перенести все ваши данные с прежнего ресурса, однако не исключена вероятность потери части информации.
При возникновении проблемы со входом, воспользуйтесь функцией сброса пароля
Если вы обнаружите несоответствия, пожалуйста, сообщите нам.