Совершенствование инфокоммуникационного сопровождения банковской деятельностиРефераты >> Банковское дело >> Совершенствование инфокоммуникационного сопровождения банковской деятельности
На основе данных таблицы отметим, что в силу намного большей длины ключа ГОСТ гораздо устойчивей DES’а к вскрытию «грубой силы» - путем полного перебора по множеству возможных значений ключа. Функция шифрования ГОСТа гораздо проще функции шифрования DES’а, она не содержит операций битовых перестановок, коими изобилует DES и которые крайне неэффективно реализуются на современных универсальных процессорах (хотя очень просто аппаратно - путем разводки проводников на плате). В силу сказанного, при вдвое большем количестве раундов (32 против 16) программная реализация ГОСТа на процессорах Intel x 86 более чем в 2 раза превосходит по быстродействию реализацию DES’а.
Из других отличий ГОСТа от DES’а надо отметить следующие. На каждом раунде шифрования используется «раундовый ключ», в DES’е он 48-битовый и вырабатывается по относительно сложному алгоритму, включающему битовые перестановки и замены по таблице, в ГОСТе он берется как фрагмент ключа шифрования. Длина ключа шифрования в ГОСТе равна 256 битам, длина раундового ключа - 32 битам, итого получаем, что ключ шифрования ГОСТа содержит 256 / 32 = 8 раундовых ключей. В ГОСТе 32 раунда, следовательно, каждый раундовый ключ используется 4 раза, порядок использования раундовых ключей установлен в ГОСТе и различен для различных режимов.
Таблица замен в ГОСТе - аналог S-блоков DES’а - представляет собой таблицу (матрицу) размером 8*16, содержащую число от 0 до 15. В каждой строке каждое из 16-ти чисел должно встретиться ровно 1 раз. В отличие от DES’а, таблица замен в ГОСТе одна и та же для всех раундов и не зафиксирована в стандарте, а является сменяемым секретным ключевым элементом. От качества этой таблицы зависит качество шифра. При «сильной» таблице замен стойкость шифра не опускается ниже некоторого допустимого предела даже в случае ее разглашения. И наоборот, использование «слабой» таблицы может уменьшить стойкость шифра до недопустимо низкого предела. Никакой информации по качеству таблицы замен в открытой печати России не публиковалось, однако существование «слабых» таблиц не вызывает сомнения - примером может служить «тривиальная» таблица замен, по которой каждое значение заменяется на него самого. Это делает ненужным для компетентных органов России ограничивать длину ключа - можно просто поставить недостаточно «сильную» таблицу замен.
В ГОСТе, в отличие от DES’а, нет начальной и конечной битовых перестановок шифруемого блока, которые, по мнению ряда специалистов, не влияют существенно на стойкость шифра, хотя влияют (в сторону уменьшения) на эффективность его реализации.
Рассмотрим что такое функция шифрования. Многие алгоритмы, включая DES и ГОСТ, построены по одному и тому же принципу. Процесс шифрования состоит из набора раундов-шагов, на каждом шаге выполняются следующие действия. Входной блок делится пополам на старшую (L) и младшую (R) части. Вычисляется значение функции шифрования от младшей части (R) и раундового ключа (k)
X = f (R,k) (3.1)
где Х - значение функции шифрования;
f (R,k) - функция шифрования от младшей части (R) и раундового ключа (k).
Используемая на данном шаге функция и называется функция шифрования раунда. Она может быть одна для всех раундов, или индивидуальна для каждого раунда. В последнем случае функции шифрования различных раундов одного шифра отличаются, как правило, лишь в деталях.
Формируется выходной блок, его старшая часть равна младшей части входного блока L’ = R, а младшая часть это результат выполнения операции побитового «исключающего или» (обозначим его (+)) для старший части входного блока и результата вычисления функции шифрования:
R’ = L (+) * f (R,k) (3.2)
Функция шифрования ГОСТа очень проста:
· младшая часть блока k и раундовый ключ складываются по модулю 232;
· полученное значение преобразуется по таблице замен – оно делится на 8 4-битовых групп, и каждая группа заменяется на новое значение с использованием соответствующего узла замен.
ГОСТ 28147-89 – это блочный шифр с 256-битным ключом и 32 циклами преобразования, оперирующий 64-битными блоками. Основа алгоритма шифра - Сеть Фейстеля. Базовым режимом шифрования по ГОСТ 28147-89 является режим простой замены (определены также более сложные режимы гаммирования и гаммирования с обратной связью). Для зашифрования в этом режиме открытый текст сначала разбивается на левую и правую половины L и R. На i-ом цикле используется подключ ki:
Ri + 1 = Li (3.3)
Li+1 = Ri Å f (Li, Ki) (Å = xor) (3.4)
Для генерации подключей исходный 256-битный ключ разбивается на восемь 32-битных блоков: К1,…, К8. Расшифрование выполняется так же, как и зашифрование, но инвертируется порядок подключей Ki
Функция f (Li,Ki) вычисляется следующим образом. Ri-1 и Ki складываются по модулю 232. Результат разбивается на восемь 4-битовых подпоследовательностей, каждая из которых поступает на вход своего S-блока. Общее количество S-блоков ГОСТа — восемь, т. е. столько же, сколько и подпоследовательностей. Каждый S-блок представляет собой перестановку чисел от 0 до 15. Первая 4-битная подпоследовательность попадает на вход первого S-блока, вторая — на вход второго и т.д.
Если S-блок выглядит так: [1, 15, 13, 0, 5, 7, 10, 4, 9, 2, 3, 14, 6, 11, 8, 12] и на входе S-блока 0, то на выходе будет 1, если 5, то на выходе будет 7 и т.д.
Выходы всех восьми S-блоков объединяются в 32-битное слово, затем всё слово циклически сдвигается влево на 11 бит.
Все восемь S-блоков могут быть различными. Фактически, они могут являтся дополнительным ключевым материалом, но чаще являются параметром схемы, общим для определенной группы пользователей.
Таким образом, основываясь на проведенном анализе, следует выделить такие достоинства отечественного стандарта защиты информации как:
· бесперспективность силовой атаки;
· эффективность реализации и соответственно высокое быстродействие на современных компьютерах.
Алгоритм ГОСТ 28147-89 является классическим алгоритмом симметричного шифрования на основе сети Фейстеля (рис. 3.1).
N1 |
N2 |
Повтор раундов |
N1 |
N2 |
Рис. 3.1 - Сеть Фейстеля
Данный алгоритм шифрует информацию блоками по 64 бита (такие алгоритмы называются «блочными»). Смысл сети Фейстеля состоит в том, что блок шифруемой информации разбивается на два или более субблоков, часть которых обрабатывается по определенному закону, после чего результат этой обработки накладывается (операцией побитового сложения по модулю 2) на необрабатываемые субблоки. Затем субблоки меняются местами, после чего обрабатываются снова и т.д. определенное для каждого алгоритма число раз – раундов.