Хэш-функция определенная в стандарте ГОСТ Р 34.11.94 [11] использует блочный алгоритм ГОСТ 28147-89. Хэш-функция преобразует исходную информацию различной длины в 256-битный хэш-образ.
Алгоритм ХФ Hi=f(Mi, Hi-1), где Mi, Hi-1, Hi имеют длину 256 бит выполняется следующим образом:
1. Генерируется четыре ключа шифрования Kj при помощи линейного смешивания Mi, Hi-1 и некоторых констант.
2. Каждый ключ используется для шифрования 64-х битных блоков hj слов Hi-1 в режиме ECB (простой замены). Полученные 256 бит сохраняются во временной переменной S.
3. Значение Hiявляется сложной, хотя и линейной функцией от S, Miи Hi-1.
Хэш-образ последнего блока информации не является его окончательным хэш-образом. Для его вычисления используется три связанных между собой переменных: Hn- хэш-образ последнего блока, Z – значение, получаемое путем использования операции XOR для всех блоков сообщения, а L - длина сообщения. С использованием этих переменных и дополненного последнего блока M’ информации, определяется окончательное значение хэш-образа:
H = f(Z M’, f(L, f(M’, Hn))). 3.3.3. Коды проверки подлинности информации В этом случае в целях обеспечения подлинности информации, любые два абонента сети А и В имеют в своем распоряжении функцию подтверждения подлинности V, известную только А и В. Когда абонент А хочет послать сообщение X абоненту В, то он вместе с сообщением посылает значение V(X). Получив эту информацию абонент В также находит значение V(X) и проверяет ее равенство с принятым значением функции подтверждения подлинности. Если условие не выполняется, тогда абонент В делает один из выводов:
абонент А не посылал сообщения;
содержание сообщения изменено;
сообщение пришло не по адресу.
Сама функция подтверждения подлинности V может быть открытой, но при этом включать секретный параметр, называемый ключом [6, 8, 15]. Обычно числовое значение функции подтверждения подлинности выбирают не слишком большим (16-32 символа) чтобы не затруднить передачу информации по каналу связи.
В качестве функции подтверждения подлинности используется MAC – код проверки подлинности сообщения.
Код проверки подлинности сообщения - это зависящая от ключа однонаправленная хэш-функция. Коды MAC обладают теми же свойствами, что и рассмотренные ранее хэш-функции, но они, кроме того, используют ключ. Коды MAC могут быть использованы для проверки подлинности информации, которой обмениваются абоненты сети. Также они могут быть использованы для проверки, не изменились ли информация на компьютере, из-за вируса. Пользователь может вычислить MAC файлов, хранящихся в компьютере и сохранить эти значения в таблице. В этом случае вирус не сможет подменить код проверки подлинности, так как ключ вирусу неизвестен.Простым способом преобразовать однонаправленную хэш-функцию в MAC является шифрование хэш-значения симметричным алгоритмом. И наоборот любой MAC может быть преобразован в однонаправленную хэш-функцию с помощью раскрытия ключа. 3.3.3.1 Алгоритм CBC-MAC.
Простейший способ создать зависящую от ключа однонаправленную хэш-функцию - шифрование сообщения блочным алгоритмом в режимах CBC или CFB. Хэш-образом является последний шифрованный блок, зашифрованный в режимах CBC или CFB. Метод CBC определен в стандартах ANSI X9.9, ANSI X9.19, ISO 8731-1, ISO 9797 [ 15, 16].
Рассмотрим в качестве примера алгоритм генерации MAC – кода с усечением до m бит.
В передаваемом сообщении выделяются блоки {X1,…, Xn}. Код подтверждения подлинности сообщения MAC реализуется алгоритмом шифрования E, который использует криптографический ключ K. Алгоритм подразумевает выполнение следующих этапов:
1. Установить i=1, I1=X1;
2. I1=I1D;
3. Y=EK(Ii);
4. Ii+1=YXi+1;
5. Если i<n, присвоить i=i+1 и вернуться к шагу 3;
6. Y=EK(In);
7. MAC=Truncate32(Y).
Для запуска алгоритма требуется некоторое инициализирующее значение D, которое генерируется случайным образом и текже является секретным. Оператор Truncate32 отсекает значение криптограммы до 32 бит. 3.3.3.2 Квадратичный конгруэнтный алгоритм QCMDC (Quadratic Congruential Manipulation Detection Code).
Этот алгоритм формирует MAC – код подтверждения подлинности сообщения длиной 128 бит. Он основан на следующих принципах:
вычисление контрольной суммы не должно использовать секретной информации, хотя сообщение или контрольная сумма, либо и то и другое вместе должны быть скрыты от злоумышленника;
алгоритм должен допускать эффективную реализацию на стандартных микропроцессорах;
контрольная сумма должна быть чувствительна к операциям перестановок, удаления, добавления отдельных блоков сообщения;
вероятность совпадения контрольных сумм для двух различных сообщений должна быть равномерно распределенной величиной со средним значением 2-k, где k – число бит контрольной суммы;
значение контрольной суммы должно иметь длину не менее 128 бит, чтобы обеспечить защиту от атаки основанной на “парадоксах дней рождений”;
функция, с помощью которой вычисляется контрольная сумма, должна быть однонаправленной.
Исходная информация разбивается на блоки длиной 16 байт {X1,…, Xn}. Каждый блок делится на четыре 32-х битных слова T1, T2, T3, T4. В алгоритме используется только 31 бит каждого слова, а именно бит знака и 30 младших бит, то есть T1i=Ti AND (BFFFFFFF). Дополнительно определяется 30-ти битное слово T2, содержащее 6 старших бит T1, сдвинутых вправо на 2 бита и присоединенные к ним по восемь старших бит слов T2, T3, T4. Кроме того, определяется множество модулей N1, N2, N3, N4, представляющих собой четыре 32-х битных простых числа, а именно N1=2147483629(231-19)(mod 232), N2=2147483587(231-61)(mod 232), N3=2147483579(231-19) (mod 232), N4=2147483563 (231-85) (mod 232).
Допустим, что 128-битное значение MAC- кода, полученное из предыдущего блока информации, также представлено в виде 32-х битных компонентов M1, M2, M3, M4. Обозначим через M11, M12, M13, M14 компоненты MAC – кода следующего блока информации. Тогда они определяются с помощью следующих выражений:
M11=((M1T11)-(M2T12)+(M3T13)-(M4T14)+T2)2 mod N1;
M12=((M2T11)-(M3T12)+(M4T13)-(M11T14)-T2)2 mod N2;
M13=((M3T11)-(M4T12)+(M11T13)-(M12T14)+T2)2 mod N3;
M14=((M4T11)-(M11T12)+(M12T13)-(M13T14)-T2)2 mod N4.
Ограничения целостности Коммерческие субд имеют более тонкие средства для задания ограничений целостности, чем диаграммы «сущность-связь» или язык реляционной...
Теория и практика массовой информации Особенности и основные этапы развития журналистики в ХХ веке; современные сми россии; законодательное обеспечение свободы слова и...
Лекция №4. Закономерности систем Целостность. Закономерность целостности проявляется в системе в возникновении новых интегративных качеств, не свойственных образующим...
Программное обеспечение Именил в статье American Mathematical Monthly математик из Принстонского университета Джон Тьюки (John W. Tukey) в 1958 г. В области...