Автор работы: Пользователь скрыл имя, 11 Сентября 2013 в 21:54, курсовая работа
Перед использованием симметричной криптосистемы пользователи должны получить общий секретный ключ и исключить доступ к нему злоумышленника (противника). Открытое сообщение подвергается криптографическому преобразованию и полученная криптограмма по открытому каналу связи передается получателю, где осуществляется обратное преобразование с целью выделения исходного открытого сообщения .
Перечень сокращений и условных обозначений 3
Введение 4
1. Анализ существующих и перспективных блочных симметричных
криптосистем 6
1.1 Понятие блочной симметричной криптосистемы 6
1.2 Блочные симметричные криптосистемы, использующие схему Фейстеля 7
1.2.1 Американский Федеральный стандарт шифрования DES 9
1.2.2 Российский стандарт шифрования ГОСТ 28147-89 19
Заключение 21
Список использованной литературы 22
Шаг 2. На i-циклической итерации 48 разрядов ключа
поразрядно суммируются (по mod 2) с полученными выше 48 разрядами данных.
Шаг 3. j-й блок из шести символов ( ) подается на вход блока подстановки (S-блок) S[j] имеет шестиразрядный вход и четырехразрядный выход и представляет собой четыре преобразования из в ; два крайних разряда входного блока служат для выборки одного из этих преобразований. Каждая из восьми подстановок S[0], S[1],…,S[7] осуществляется с использованием четырех строк и 16 столбцов матрицы с элементами {0,1,…15}. Каждый из массивов размерностью 4×16 определяет подстановку на множестве следующим образом. Если входом является блок из шести символов , то две крайние позиции интерпретируют как двоичное представление целых чисел из набора {0,1,2,3}.
Эти целые числа определяют номер строки (от 0 до 3). Оставшиеся четыре символа интерпретируются как двоичное представление целых чисел из набора {0,1,…,15} и служат для определения столбца в массиве (от 0 до 15). Таким образом, входной блок (0,0,1,0,1,1) соответствует строке 1 и столбцу 5.
Шаг 4. 32 разряда, составляющие выход S-блока, подаются на вход блока перестановки (Р-блока).
Таблица 1.2 – Блок перестановки Р
16 |
7 |
20 |
21 |
29 |
12 |
28 |
17 |
1 |
15 |
23 |
26 |
5 |
18 |
31 |
10 |
2 |
8 |
24 |
14 |
32 |
27 |
3 |
9 |
19 |
13 |
30 |
6 |
22 |
11 |
4 |
25 |
Рисунок 1.3 – Схема алгоритма шифрования DES
Шаг 5. Компоненты правого входного 32-разрядного блока , преобразованного в Т( ), поразрядно суммируются по mod 2 с компонентами левого входного 32-разрядного блока Х.
На каждой итерации используется 48-разрядный подключ . Поскольку входным ключом DES является 56-разрядный блок , то каждый его разряд используется многократно.
Какие именно разряды ключа используются на i-циклической итерации, определяется по следующему алгоритму:
1. прежде всего 64 разряда ключа преобразуются в 56 путем выбрасывания каждого восьмого бита (который может использоваться для контроля целостности ключа);
2. производится перестановка КР-1 56-разрядного ключа пользователя :
Таблица 1.3 – Перестановка КР-1
57 |
49 |
41 |
33 |
25 |
17 |
9 |
1 |
58 |
50 |
42 |
34 |
26 |
18 |
10 |
2 |
59 |
51 |
43 |
35 |
27 |
19 |
11 |
3 |
60 |
52 |
44 |
36 |
63 |
55 |
47 |
39 |
31 |
23 |
15 |
7 |
62 |
54 |
46 |
38 |
30 |
22 |
14 |
6 |
61 |
53 |
45 |
37 |
29 |
21 |
13 |
5 |
28 |
20 |
12 |
4 |
3. получаемый
в результате 56-разрядный блок
рассматривается как два 28-
4. производится
левый циклический сдвиг
5. из сцепления блоков ( , ) выбираются 48 разрядов с помощью перестановки КР-2. Эти разряды используются на первой итерации;
Таблица 1.4 – Перестановка КР-2
14 |
17 |
11 |
24 |
1 |
5 |
3 |
28 |
15 |
6 |
21 |
10 |
23 |
19 |
12 |
4 |
26 |
8 |
16 |
7 |
27 |
20 |
13 |
2 |
41 |
52 |
31 |
37 |
47 |
55 |
30 |
40 |
51 |
45 |
33 |
48 |
44 |
49 |
39 |
56 |
34 |
53 |
46 |
42 |
50 |
36 |
29 |
32 |
используемые на i-й циклической итерации разряды ключа определяются методом индукции. Для получения блоков и производим левый циклический сдвиг блоков и на s[i] позиций:
Таблица 1.5 – Левый циклический сдвиг блоков
i |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
s |
1 |
1 |
2 |
2 |
2 |
2 |
2 |
2 |
1 |
2 |
2 |
2 |
2 |
2 |
2 |
1 |
и вновь применяем КР-2 для получения очередной порции ключа.
Инверсией DES (обеспечивающей расшифрование зашифрованных посредством DES данных) является
. (1.2)
Расшифрование зашифрованного посредством DES текста осуществляется с использованием тех же блоков благодаря обратимости преобразования.
Проанализируем эффективность алгоритма DES [6].
Поскольку длина блоков исходного текста равна 64, поддержка каталогов частот использования блоков является для злоумышленника задачей, выходящей за пределы современных возможностей.
Однако, данный алгоритм, являясь первым опытом стандарта шифрования, имеет ряд недостатков. За время, прошедшее после создания DES, компьютерная техника развивалась настолько быстро, что оказалось возможным осуществлять исчерпывающий перебор ключей и тем самым раскрывать шифр. Стоимость этой атаки постоянно снижается.
Было выдвинуто большое количество предложений по усовершенствованию DES, которые отчасти компенсируют указанные недостатки. Мы рассмотрим два из них.
Наиболее широко известным предложением по усилению DES является так называемый «тройной DES» [2,6], одна из версий которого определяется выражением
(1.3)
То есть, ключ для 3DES имеет длину 56×3=168 бит, и шифрование 64-битового блока осуществляется шифрованием с одним подключом, расшифрованием с другим и затем шифрование с третьим. (Причина, по которой вторым шагом является , а не , является совместимость с DES: если выбрать то . Причина использования DES три раза вместо двух заключается в существовании атаки «встреча в середине» на двойной DES).
Проблема с 3DES состоит в том, что он гораздо медленнее, чем сам DES – его скорость составляет ровно одну треть исходной. При использовании 3DES в режиме сцепления блоков это замедление скажется как на аппаратном, так и на программном (даже если попытаться компенсировать его дополнительной аппаратной частью) уровнях. Во многих случаях такое падение производительности неприемлемо.
В 1984г. Рон Ривест предложил расширение DES, называемое DESХ, свободное от недостатков 3DES [2,6].
DESХ определяется как
(1.4)
То есть, ключ состоит из 56+64+64=184 бит и включает три различных подключа: ключ “DES” k, предварительный «зашумляющий» ключ и завершающий «зашумляющий» ключ .
Для шифрования блока сообщения мы складываем его поразрядно по mod 2 с , шифруем его алгоритмом DES с ключом k и вновь поразрядно складываем его по mod 2 с . Таким образом, затраты DESХ на шифрование блока всего на две операции сложения по mod 2 больше, чем затраты исходного алгоритма.
В отношении DESХ замечательно то, что эти две операции «исключающие ИЛИ» делают шифр гораздо менее уязвимым по отношению к перебору ключей. Укажем, что DESХ затрудняет получение даже одной пары в том случае, когда злоумышленник организует атаку на шифр по выбранному исходному тексту, получая множество пар .
DESХ предназначался для увеличения защищенности DES против перебора ключей и сохранения его стойкости против других возможных атак. Но DESХ в действительности также увеличивает стойкость против дифференциального и линейного криптоанализа, увеличивая требуемое количество проб с выбранным исходным текстом до величины, превышающей .
Сказанное не означает, что невозможно построить машину, раскрывающую DESХ за приемлемое время. Но оно подразумевает, что такая машина должна использовать какую-либо радикально новую идею. Это не может быть машина, реализующая перебор ключей в общепринятом смысле.
Таким образом, практически во всех отношениях DESХ оказывается лучше DES. Этот алгоритм прост, совместим с DES, эффективно реализуем аппаратно, может использовать существующее аппаратное обеспечение DES и в его отношении было доказано, что он увеличивает стойкость к атакам, основанным на переборе ключей [2,6].
1.2.2 Российский стандарт шифрования ГОСТ 28147-89
В Российской Федерации установлен единый стандарт криптографического преобразования текста для информационных систем. Он носит обязательный характер для государственных органов, организаций, предприятий, банковских и иных учреждений, чья деятельность связана с обеспечением информационной безопасности государства. Для других организаций и частных лиц, ГОСТ 28149-89 имеет рекомендательный характер.
Данный стандарт формировался с учетом мирового опыта и, в частности, были приняты во внимание недостатки и нереализованные возможности алгоритма DES, поэтому использование стандарта ГОСТ 28149-89 предпочтительнее [2,5,6,8]. Алгоритм шифрования построен с использованием схемы Фейстеля.
Рисунок 1.4 – Алгоритм шифрования ГОСТ 28147-89
в режиме простой замены
Введем
ассоциативную операцию конкатенации,
используя для нее
- побитовое сложение по модулю 2;
- сложение по модулю ;
- сложение по модулю .
Алгоритм криптографического преобразования предусматривает несколько режимов работы [2,8]. Во всех режимах используется ключ K длиной 256 бит, представляемый в виде восьми 32-разрядных чисел X(i)
Для расшифрования используется тот же ключ, но процесс расшифрования является инверсным по отношению к исходному.
Базовым режимом работы алгоритма является режим простой замены.
Пусть открытые блоки разбиты на блоки по 64 бита в каждом, которые обозначим как . Очередная последовательность бит разделяется на две последовательности В(0) и А(0) по 32 бита (левый и правый блоки). Далее выполняется итеративный процесс шифрования, описываемый следующим образом:
для
(1.5)
для
(1.6)
и для
(1.7)
Здесь i обозначает номер итерации. Заметим, что подобно DES, на последнем цикле перестановка половин блока не производится.
Функция шифрования включает две операции над 32-разрядным аргументом - и .
Первая операция является подстановкой. Блок подстановки К состоит из 8 узлов замены с памятью по 64 бита каждый. Поступающий на блок постановки 32-разрядный вектор разбивается на 8 последовательно идущих 4-разрядных вектора, каждый из которых преобразуется в 4-разрядный вектор соответствующим узлом замены, представляющим из себя таблицу из 16 целых чисел в диапазоне 0…15. Входной вектор определяет адрес строки в таблице, число из которой является выходным вектором. Затем полученные 4-разрядные векторы вновь последовательно объединяются в 32-разрядный выходной. ГОСТ 28147-89 в явном виде не указывает таблицы подстановок.
Вторая операция – циклический сдвиг 32-разрядного вектора, полученного в результате подстановки К на 11 шагов влево.