Научная литература
booksshare.net -> Добавить материал -> Информатика -> Петров А.А. -> "Компьютерная безопасность. Криптографические методы защиты" -> 33

Компьютерная безопасность. Криптографические методы защиты - Петров А.А.

Петров А.А. Компьютерная безопасность. Криптографические методы защиты — M.: ДМК, 2000. — 448 c.
ISBN 5-89818-064-8
Скачать (прямая ссылка): comp_safety.pdf
Предыдущая << 1 .. 27 28 29 30 31 32 < 33 > 34 35 36 37 38 39 .. 181 >> Следующая

W1 = Mt для t = 0 -г 15 (t является номером оператора)
wt=(w,3ew,8ew,14e wt.16) < < i для t = 16 79
Отметим, что первоначально при формировании подблоков W в SHA не было левого циклического сдвига. Результатом его введения явилось устранение одной из уязвимостей оригинального стандарта.
Каждый основной оператор имеет вид:
FOR t = 0 to 70
{ TEMP = (а < < 5) + f(b, с, d) + е + Wt + K1
Хэш-функции
81
e = d d = c
с = b < < 30
a = TEMP }, где i - 1 + 4
Завершается цикл суммированием А + а, B + b, С + с, D + d, Е + еи конкатенацией А, В, С, D и Е.
ГОСТ P 34.11-94
Этот стандарт разработан для использования совместно со стандартом на цифровую подпись (ГОСТ P 34.10-94). Основу данной хэш-функции составляет алгоритм блочного шифрования ГОСТ 28147-89, который оперирует с блоками длиной 64 бита и длиной ключа 256 бит, соответственно длина выходной последовательности хэш-функции составляет 256 бит.
Алгоритм вычисления хэш-функции работает с любой двоичной последовательностью, то есть не накладывает ограничения на длину входной последовательности. Описать работу алгоритма можно следующим образом:
H1-Ii(M1 Ни),
где Hj.! - значение хэш-кода предыдущей итерации; M - входная последовательность, не подвергшаяся обработке. Процедура вычисления функции h состоит из последовательности шагов:
• шаг 1:
- инициализируются переменные L (текущее значение длины обработанной части входной последовательности) и I (значение контрольной суммы);
- если длина входной необработанной последовательности больше 256 (|М| > 256), алгоритм переходит к шагу 3, в противном случае производятся следующие действия:
• шаг 2:
- L - (L + |М|) mod 256;
- 1 -(1 + (0256"|MI I M) mod 256 0256_|м| - последовательность битовых нулей длиной 256 - |М|, || - конкатенация битовых строк. Таким образом, на этом этапе вычисляется текущее значение контрольной суммы;
-Н = % ((025G~lMl I М), H) - вычисляется значение функции хэширования х от аргументов, представляющих собой хэшируемый блок и начальный вектор хэширования (H);
-H = x(L, Н);
82
Общие сведения по классической криптографии
-H = %(I, H) - результат данного вычисления и является окончательным результатом хэш-функции;
- конец работы алгоритма.
Из входной последовательности выбирается очередной блок длиной 256 бит (M = МО I Ml) и производятся следующие действия:
• шаг 3:
-H = х(М0, Н);
-L = (L+ 256) mod 256;
- I - (I + M0) mod 256;
- M = M0;
- переход к шагу 2.
Вычисление функции х состоит из следующих этапов:
• генерация четырех секретных ключей длиной 256 бит;
• зашифрование четырех подблоков (составляющие начальный вектор хэширования H) по 64 бита каждый в соответствии с алгоритмом ГОСТ 28147-89 в режиме простой замены;
• применение перемешивающей функции к результату зашифрования.
Генерация секретных ключей
При генерации секретных ключей используются данные H и M (входная последовательность, представленная в двоичном виде) и инициализируются следующие константы: C2 = C4 = 0 256 и C3 = I8 О8116 О24116 О8 (О818)218 О8 X х (О818)4 (18O8)4, где ак - двоичная последовательность из к бинарных знаков а - {0,1}. После чего выполняется алгоритм:
I = IU = HV = M
w = ue V
K1 = P(W) FOR i = 2 to 4 {U = A(U) 0 Q; V = A(A(V)) W = UOV K1 = P(W)}
Функция P представляет собой перестановку s(i + 1 + 4 (k - 1)) = 8i + к, 1 = 0 + 3, к = 1 + 8 над подблоками длиной 8 бит исходной двоичной последовательности длиной 256 бит. Таким образом, последовательность X32 [... || X1 преобразуется в xs(32) ||... || xs(1). Функцией A(X) обозначают следующее
Хэш-функции
83
преобразование последовательности, разделенной на 4 подблока по 64 бита каждый: A(X) = (X1 Ф X2) || х41| х31| х2.
Шифрующее преобразование
Начальный вектор H разбивается на 4 подблока h,- длиной 64 бита, и каждый подблок зашифровывается на своем ключе K11 то есть S1 = Ek1 (Ia1) (i= 1,2,3,4). В результате получается последовательность S = S1H S21| S31| S4.
Перемешивающая функция
Сначала исходная последовательность разбивается на шестнадцать 16-битных подблоков Hj ie 1 -г 16 и при помощи регистра сдвига с обратной связью преобразуется в последовательность следующего вида:
H1 Ф п2 Ф п3 Ф п4 Ф п13 Ф n16 Il n16 Il... I п2.
Если обозначить данную функцию через ф, то исходная функция хэширования - %(М,Н) = (р61 ((H Ф ф(М Ф ф12 (S))), где степень функции ф обозначает, сколько раз она применяется к битовой последовательности.
Криптографическая стойкость данной хэш-функции основана на стойкости применяемого в ней алгоритма блочного шифрования, используемого в режиме простой замены. На момент подготовки книги к изданию автору были неизвестны алгоритмы «взлома» данной хэш-функции, работающие эффективнее, нежели метод, основанный на «парадоксе дня рождения».
1.5.3. Требования к хэш-функциям
При практическом использовании хэш-функций должны выполняться следующие требования:
• алгоритм должен обладать высокой скоростью обработки информации (это особенно актуально для банковских приложений, где требуется особая оперативность обработки информации);
Предыдущая << 1 .. 27 28 29 30 31 32 < 33 > 34 35 36 37 38 39 .. 181 >> Следующая

Реклама

c1c0fc952cf0704ad12d6af2ad3bf47e03017fed

Есть, чем поделиться? Отправьте
материал
нам
Авторские права © 2009 BooksShare.
Все права защищены.
Rambler's Top100

c1c0fc952cf0704ad12d6af2ad3bf47e03017fed