Курсовая работа: Современная криптография

Алгоритмразработан Nippon Telephone & Telegraph. N- хэш использует блоки длинной 128 бит, размешивающую функцию. На вход пошаговой хэш-функции в качестве аргумента поступают очередной блок сообщения Mi длинной 128 бит и хэш-код hi-1 предыдущего шага.

h0 = I, где I – синхропосылка.

hi = g(Mi,hi-1) Å Mi Å hi-1.

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

Функция g вначале меняет местами старшие и младшие части (по 64 бита каждая) хэш-кода предыдущего шага, покоординатно складывая полученное значение с величиной 1010…..1010 и текущим блоком текста Mi. Полученная величина поступает на вход каскада из N (n = 8) преобразующих функций. Вторым аргументом каждой из преобразующих функций является хэш-код предыдущего шага, сложенный покоординатно с одной из восьми констант.

На рисунке 1 использованы следующие условные обозначения:

EXG –старшая и младшая части входного блока меняются местами;

V =1010…1010 (128 бит) в двоичной записи.

Vj = d||Aj1||d||Aj2||d||Aj3||d||Aj4; здесь || обозначает конкатенацию бинарных строк;

d = 00…00 в двоичной записи;

Ajk = 4 * (j-1) + k (k = 1,2,3,4: Ajk длинной 8 бит);

PS – преобразующая функция.

На рисунке 2 представлена схема преобразующей функции. Каждый из аргументов при этом разбивается на 4 блока:X1||X2||X3||X4, P= P1||P2||P3||P4, схема вычисления функции f представлена на рисунке 3.

S0(a,b) = (левый циклический сдвиг на 2 бита) ((a+b)mod256):

S1(a,b) = (левый циклический сдвиг на 2 бита) ((a+b+1)mod256):

Результат действия преобразующей функции PS предыдущего шага становится входным аргументом очередной преобразующей функции PS.

Процесс, показанный на рис.1, завершается покоординатным суммированием по модулю 2 результата действия последней преобразующей функции PS, хэш-кода предыдущего шага и блока хэшируемого текста.



MD5.

В этом алгоритме размер хэш-кода равен 128 битам.

После ряда начальных действий MD5 разбивает текст на блоки длинной 512 битов, которые, в свою очередь делятся на 16 подблоков по 32 бита. Выходом алгоритма являются 4 блока по 32 бита, конкатенация которых образует 128-битовый хэш-код.

Сначала текст дополняется таким образом, чтобы длина получаемого текста, выраженная в битах, стала на 64 меньше числа, кратного 512.

Дополнение осуществляется приписыванием к концу сообщения единицы и затем необходимого числа нулей (в бинарном представлении). Затем к тексту приписывается 64-битовое представление длины исходного сообщения. Таким образом, получается текст, длина которого кратна 512 битам. Инициализируются 4 переменных размером по 32 бита;

А = 01 23 45 67;

В = 89 ABCDEF;

С = FEDCBA 98;

D = 76 54 32 10.

Далее начинает работу основной цикл алгоритма. Основной цикл повторяется столько раз, сколько блоков по 512 битов присутствует в хэшируемом сообщении.

Создаются копии инициализированных переменных: АА для А, ВВ для В, СС для С, DD для D.

Каждый основной цикл состоит из 4 раундов. В свою очередь, каждый раунд состоит из 16 операторов. Все операторы однотипны и имеют вид:

К-во Просмотров: 858
Бесплатно скачать Курсовая работа: Современная криптография