Федеральное агентство по образованию РФ
Российский государственный университет инновационных технологий и предпринимательства (РГУИТП)
Северный филиал
Реферат по дисциплине
«Информационная безопасность»
Тема: «Стандарты для алгоритмов симметричного шифрования»
Выполнил студент группы И411 ______________ И.И. Попов "____"_________ 2008 г. |
Великий Новгород
Алгоритм ГОСТ 28147 является отечественным стандартом для алгоритмов симметричного шифрования. ГОСТ 28147 разработан в 1989 году, является блочным алгоритмом шифрования, длина блока равна 64 битам, длина ключа равна 256 битам, количество раундов равно 32. Алгоритм представляет собой классическую сеть Фейштеля.
Li = Ri-1Ri = Li f (Ri-1, Ki)Функция F проста. Сначала правая половина и i-ый подключ складываются по модулю 232. Затем результат разбивается на восемь 4-битовых значений, каждое из которых подается на вход S-box. ГОСТ 28147 использует восемь различных S-boxes, каждый из которых имеет 4-битовый вход и 4-битовый выход. Выходы всех S-boxes объединяются в 32-битное слово, которое затем циклически сдвигается на 11 битов влево. Наконец, с помощью XOR результат объединяется с левой половиной, в результате чего получается новая правая половина.
Рис. 3.7. I-ый раунд ГОСТ 28147
Генерация ключей проста. 256-битный ключ разбивается на восемь 32-битных подключей. Алгоритм имеет 32 раунда, поэтому каждый подключ используется в четырех раундах по следующей схеме:
Раунд | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
Подключ | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
Раунд | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 |
Подключ | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
Раунд | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 |
Подключ | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
Раунд | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 |
Подключ | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 |
Считается, что стойкость алгоритма ГОСТ 28147 во многом определяется структурой S-boxes. Долгое время структура S-boxes в открытой печати не публиковалась. В настоящее время известны S-boxes, которые используются в приложениях Центрального Банка РФ и считаются достаточно сильными. Напомню, что входом и выходом S-box являются 4-битные числа, поэтому каждый S-box может быть представлен в виде строки чисел от 0 до 15, расположенных в некотором порядке. Тогда порядковый номер числа будет являться входным значением S-box, а само число - выходным значением S-box.
1-ый S-box | 4 | 10 | 9 | 2 | 13 | 8 | 0 | 14 |
6 | 11 | 1 | 12 | 7 | 15 | 5 | 3 | |
2-ой S-box | 14 | 11 | 4 | 12 | 6 | 13 | 15 | 10 |
2 | 3 | 8 | 1 | 0 | 7 | 5 | 9 | |
3-ий S-box | 5 | 8 | 1 | 13 | 10 | 3 | 4 | 2 |
14 | 15 | 12 | 7 | 6 | 0 | 9 | 11 | |
4-ый S-box | 7 | 13 | 10 | 1 | 0 | 8 | 9 | 15 |
14 | 4 | 6 | 12 | 11 | 2 | 5 | 3 | |
5-ый S-box | 6 | 12 | 7 | 1 | 5 | 15 | 13 | 8 |
4 | 10 | 9 | 14 | 0 | 3 | 11 | 2 | |
6-ой S-box | 4 | 11 | 10 | 0 | 7 | 2 | 1 | 13 |
3 | 6 | 8 | 5 | 9 | 12 | 15 | 14 | |
7-ой S-box | 13 | 11 | 4 | 1 | 3 | 15 | 5 | 9 |
0 | 10 | 14 | 7 | 6 | 8 | 2 | 12 | |
8-ой S-box | 1 | 15 | 13 | 0 | 5 | 7 | 10 | 4 |
9 | 2 | 3 | 14 | 6 | 11 | 8 | 12 |
Основные различия между DES и ГОСТ 28147 следующие:
Blowfish является сетью Фейштеля, у которой количество итераций равно 16. Длина блока равна 64 битам, ключ может иметь любую длину в пределах 448 бит. Хотя перед началом любого шифрования выполняется сложная фаза инициализации, само шифрование данных выполняется достаточно быстро.
Алгоритм предназначен в основном для приложений, в которых ключ меняется нечасто, к тому же существует фаза начального рукопожатия, во время которой происходит аутентификация сторон и согласование общих параметров и секретов. Классическим примером подобных приложений является сетевое взаимодействие. При реализации на 32-битных микропроцессорах с большим кэшем данных Blowfish значительно быстрее DES.
Алгоритм состоит из двух частей: расширение ключа и шифрование данных. Расширение ключа преобразует ключ длиной, по крайней мере, 448 бит в несколько массивов подключей общей длиной 4168 байт.
В основе алгоритма лежит сеть Фейштеля с 16 итерациями. Каждая итерация состоит из перестановки, зависящей от ключа, и подстановки, зависящей от ключа и данных. Операциями являются XOR и сложение 32-битных слов.
Blowfish использует большое количество подключей. Эти ключи должны быть вычислены заранее, до начала любого шифрования или дешифрования данных. Элементы алгоритма:
Метод, используемый для вычисления этих подключей, будет описан ниже.
Входом является 64-битный элемент данных X, который делится на две 32-битные половины, Xl и Xr.
Xl = Xl XOR PiXr = F (Xl) XOR XrSwap Xl and XrРазделить Xl на четыре 8-битных элемента A, B, C, D.
F (Xl) = ((S1,А + S2,B mod 232) XOR S3,C) + S4,D mod 232
Дешифрование отличается от шифрования тем, что Pi используются в обратном порядке.
Подключи вычисляются с использованием самого алгоритма Blowfish.
Для создания всех подключей требуется 521 итерация.
IDEA (International Data Encryption Algorithm) является блочным симметричным алгоритмом шифрования, разработанным Сюдзя Лай (Xuejia Lai) и Джеймсом Массей (James Massey) из швейцарского федерального института технологий. Первоначальная версия была опубликована в 1990 году. Пересмотренная версия алгоритма, усиленная средствами защиты от дифференциальных криптографических атак, была представлена в 1991 году и подробно описана в 1992 году.
IDEA является одним из нескольких симметричных криптографических алгоритмов, которыми первоначально предполагалось заменить DES.
IDEA является блочным алгоритмом, который использует 128-битовый ключ для шифрования данных блоками по 64 бита.
Целью разработки IDEA было создание относительно стойкого криптографического алгоритма с достаточно простой реализацией.