close

Вход

Забыли?

вход по аккаунту

?

Ovsyannikov Burova Informaz bezopasnosti i zashita informazii v komp sist

код для вставкиСкачать
Федеральное агентство связи
Государственное федеральное образовательное учреждение
высшего профессионального образования
ПОВОЛЖСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ
ТЕЛЕКОММУНИКАЦИЙ И ИНФОРМАТИКИ
ЭЛЕКТРОННАЯ
БИБЛИОТЕЧНАЯ СИСТЕМА
Самара
Федеральное агентство связи
Государственное образовательное учреждение высшего профессионального
образования
«Поволжский государственный университет телекоммуникаций и
информатики»
____________________________________________________________________
_______
Кафедра информационных систем и технологий
А.С.Овсянников
М.А.Бурова
ИНФОРМАЦИОННАЯ БЕЗОПАСНОСТЬ И ЗАЩИТА ИНФОРМАЦИИ В
КОМПЬЮТЕРНЫХ СИСТЕМАХ
Методические указания
САМАРА 2011
3
ЛАБОРАТОРНАЯ РАБОТА №1
“Исследование классических методов шифрования данных”
Цель работы
Изучить и практически освоить классические
данных.
методы шифрования
Литература
1. Мельников В.В. «Защита информации в компьютерных системах». М.:
Финансы и статистика, 1997. - 368 стр.
2. Романец Ю.В., Тимофеев П.А., Шаньгин В.Ф. «Защита информации в
компьютерных системах и сетях» М.: Радио и связь, 1999. - 328 стр.
3. Штребе М., Перкинс Ч., Монкур М. Безопасность сетей NТ4 в 2-х томах.
Пер. с англ., В.В. Матвеева: под ред. С.О. Шурчкова М.: МИР, 1999. - 367
стр.
Выполнение работы
Часть 1
1. По краткой теории изучить классические методы шифрования данных.
2. Запустить программу crypt. Изучить пользовательский интерфейс и
практически освоить методы шифрования данных (сообщения и ключи взять
по умолчанию).
Часть 2
1.
2.
3.
4.
5.
Зашифровать заданные сообщения (таблицы 1 - 7, номер варианта задаѐтся
преподавателем) с помощью методов шифрования, заложенных в
программе.
Зашифровать те же сообщения ―вручную‖, применяя таблицы кода ASC II
(таблица 5 – упрощѐнный вариант; таблица 7 – полный вариант).
Сравнить полученные по пунктам 1 и 2 результаты и сформулировать
выводы.
Составить отчѐт по работе.
Подготовиться к теоретическому зачѐту.
Содержание отчѐта
1.
2.
Цель работы.
Результаты выполнения работы.
4
3. Для подготовки к теоретическому зачѐту ответить на все контрольные
вопросы.
Контрольные вопросы
Что такое криптология?
Что такое криптография?
Что такое криптоанализ?
Шифрование сообщений методом Цезаря.
Шифрование сообщений методом Гронсфельда.
Шифрование таблицами.
Шифрование биграммами.
Шифрование методом гаммирования.
Шифрование монограммами.
Основные методы блочного шифрования.
Основные методы криптоанализа.
Дано: - гамма 11001
- сообщение 10001101011.
Методом гаммирования зашифровать и расшифровать.
13. Методом шифрования таблицами зашифровать и расшифровать сообщение
«Криптографы стремятся обеспечить секретность».
14. Зашифровать и расшифровать сообщение: «Криптоаналитики стремятся
вскрыть секретное сообщение». Применить алфавит русского языка.
15. С помощью монограммы зашифровать и расшифровать слово
«информация», ключ «криптоанализ».
16. Заданы: - сообщение «секретно»;
- ключ «шифрование».
Применить метод Гронсфельда и упрощѐнный алфавит ASC II для шифровки и
расшифровки.
17. Шифрование с обратной связью.
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
ЗАДАНИЯ
1. Метод гаммирования
Таблица 1
Длина СООБЩЕНИЕ
гамм девальваци
инквизиция коэффициент бормашина гимназист
ы
я
16
1
2
3
4
5
5
16
6
7
8
9
10
16
11
12
13
14
15
64
16
17
18
19
20
64
21
22
23
24
25
64
26
27
28
29
30
32
31
32
33
34
35
Примечание:
-№ выборки установить равным 0;
-применять пошаговое выполнение;
-код каждой буквы кодируемого сообщения N определяется по
таблице кода ASC II (табл.7) в двоичном представлении (первый символ в
таблице кодируется нулѐм);
-код гаммы G(i) берѐтся непосредственно из окна пошагового
режима.
2. Шифрование смещением, зависимым от ключа (метод Подстановки
(замены)).
Таблица 2
СООБЩЕНИЕ
КЛЮЧ
TRENCHERMAN RESPLENDENCE SURREPTITIOUS QUALIFICATION MIDSHIPMA
DITY
1
INCUR 6
11
SLAB
16
INCUR
21
dity
26
incur
31
slab
2
3
4
5
7
8
9
10
12
13
14
15
17
18
19
20
22
23
24
25
27
28
29
30
32
33
34
35
6
Примечание:
- применять полный алфавит кода ASC II (табл.7).
3. Перестановки с помощью таблиц
Таблица 3
СООБЩЕНИЕ
Разме
Система
Уровень
Стандарт
В
HDLC Обмен
р
ESS
№3 сигналов
обеспечивае возможны 3 данными по
была
остаѐтся
таблиц
т
многие варианта
протоколу
испытана в стабильны
функции
кадров
TCP/IP…
1976г
м
12x3 1
2
3
4
5
18x2 6
7
8
9
10
1x36 11
12
13
14
15
2x18 16
17
18
19
20
3x12 21
22
23
24
25
4x9 26
27
28
29
30
6x6
31
32
33
34
35
9x4
36
37
38
39
40
4. Перестановки биграммами, упрощѐнный алфавит
Таблица 4
СООБЩЕНИЕ
РАЗМЕР ключ
trencherm
ТАБЛИЦЫ
2x18
dity 1
18x2
6
incu
r
3x12
11
slab
12x3
16
incu
r
4x9
21
dity
9x4
26
incu
r
6x6
31
slab
resplende surreptit
qualifica midshiman
2
3
4
5
7
8
9
10
12
13
14
15
17
18
19
20
22
23
24
25
27
28
29
30
32
33
34
35
7
Таблица 5
Упрощѐнный алфавит ASCII
5. Перестановки биграммами, полный алфавит
Таблица 6
СООБЩЕНИЕ
Разм
ер
ключ
Табл
иц
trencherma
midshipma
resplendence surreptitious qualification
n
n
128x2 about 1
6
4x64 maxirk
11
64x4 piracy
16
8x32 serial
21
32x8 stager
2
3
4
5
7
8
9
10
12
13
14
15
17
18
19
20
22
23
24
25
8
16x16 thacher
2x128 uncapit
Таблица 7
26
27
28
29
30
31
32
33
34
35
Полный
алфавит
ASCII
Краткая теория
Криптология: Криптография и криптоанализ. Основные понятия.
Описание предмета криптологии начнем с доуточнения обиходного
понятия информация. Иностранному термину информация достаточно близко
отвечает русское слово смысл. Очевидно, что одну и ту же информацию можно
передать разными сообщениями, например, на разных языках, а также
письмом, телеграфом или факсом. С другой стороны, одно и то же сообщение
разными людьми понимается по-разному. Информация людьми извлекается из
сообщения с помощью ключа, правила, придающего сообщению конкретный
смысл. Для обычных сообщений такие правила дают здравый смысл и знание
языка. Иногда же, ключом владеет лишь узкая группа лиц, знающая
специальные термины или жаргон. Особую роль ключ имеет в криптографии,
где его знание гарантирует извлечение истинного смысла сообщения.
9
Шифрование и расшифровывание, выполняемые криптографами, а также
разработка и вскрытие шифров криптоаналитиками составляют предмет науки
криптологии (от греческих слов «криптос» - тайный и «логос» - мысль). В этой
науке преобразование шифровки в открытый текст может быть выполнено в
зависимости от того, известен или нет ключ. Условно ее можно разделить на
криптографию и криптоанализ.
Криптография связана с шифрованием и расшифровыванием
конфиденциальных данных в каналах коммуникаций. Она также применяется
для того, чтобы исключить возможность искажения информации или
подтвердить ее происхождение.
Криптоанализ будет рассматриваться, как область криптологии,
проверяющей и доказывающей устойчивость шифров как теоретически, так и
практически. Криптоанализ занимается в основном вскрытием шифровок без
знания ключа и, порой, примененной системы шифрования. Эта процедура еще
называется взломкой шифра.
Итак,
криптографы
стремятся
обеспечить
секретность,
а
криптоаналитики ее сломать.
Криптографические преобразования призваны для достижения двух
целей по защите информации. Во-первых, они обеспечивают недоступность ее
для лиц, не имеющих ключа и, во-вторых, поддерживают с требуемой
надежностью обнаружение несанкционированных искажений. По сравнению с
другими методами защиты информации, классическая криптография
гарантирует защиту лишь при условиях, что;
использован эффективный криптографический алгоритм;
соблюдены секретность и целостность ключа.
Некриптографические средства не в состоянии дать такую же степень
защиты информации и требуют значительно больших затрат. Например, во что
обходится подтверждение подлинности документа? Охрана, сейфы,
сигнализация, секретные пакеты, индивидуальные печати, фирменные бланки,
водяные знаки, факсимиле и личные подписи – вот далеко не полный набор
обычных средств, предназначенных для поддержания доверия к секретности
информации.
Возможность компьютера производить миллионы операций в секунду
очень усложнила и криптографию, и криптоанализ. В настоящее время почти
все криптоаналитические и криптографические действия производятся с
помощью ЭВМ, поэтому в дальнейшем машинные шифры будем называть
криптографическими системами.
В отличие от тайнописи, которая прячет сам факт наличия сообщения,
шифровки передаются открыто, а прячется только смысл. Итак, криптография
обеспечивает сокрытие смысла сообщения с помощью шифрования и открытие
его
расшифровыванием,
которые
выполняются
по
специальным
криптографическим алгоритмам с помощью ключей у отправителя и
10
получателя. Рассмотрим классическую схему передачи секретных сообщений
криптографическим преобразованием.
1.
Отправителем шифруется сообщение с помощью ключа, и полученная
шифровка передается по обычному открытому каналу связи получателю.
2.
Ключ отправляется по закрытому каналу, гарантирующему секретность.
3.
Имея ключ и шифровку, получатель выполняет расшифровывание и
восстанавливает исходное сообщение.
В зависимости от целей засекречивания, эта схема может несколько
видоизменяться. Так, в компьютерной криптографии обычен случай, когда
отправитель и получатель одно и то же лицо. Например, можно зашифровать
данные, закрыв их от постороннего доступа при хранении, а потом
расшифровать, когда это будет необходимо. В этом случае зачастую роль
закрытого канала связи играет память. Тем не менее, налицо все элементы этой
схемы.
Основные методы шифрования
Метод подстановки (замены)
Наиболее простой и старый вид преобразований, заключающийся в
замене символов исходного текста другими символами того же алфавита по
определенному правилу. Примерами такого метода могут являться алгоритмы
Цезаря, Вижинера, шифрование биграммами и др. Рассмотрим некоторые из
этих методов.
Шифр Цезаря.
Самым основным и обычным методом подстановки является шифр
Цезаря (шифр простой замены), который заключается в следующих действиях
над словами:
1.
Задается алфавит сообщения (т.е. множество символов составляющих
сообщение).
2.
Задается ключ - некоторое число N.
3.
Каждая буква в слове меняется на отстоящую от нее на N позиций вправо.
Если сумма ―номера символа по порядку‖ и N превышает размер алфавита, то
отсчет производят от начала алфавита, иначе берѐтся остаток от деления на
число букв N в алфавите (mod).
Возьмѐм алфавит русского языка и пронумеруем каждый символ алфавита.
Получим следующую таблицу:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
А Б В Г Д Е Ё Ж З И Й К Л М Н О П
18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
Р С Т У Ф Х Ц Ч Ш Щ Ь Ы Ъ Э Ю Я
Допустим, что необходимо зашифровать слово ПЛОЩАДЬ с ключом N =
5. Номер буквы «П» в нашем алфавите 17, значит необходимо к 17 прибавить 5
11
и получим символ, стоящий под номером 17+5=22 («Ф»). Для буквы ―Ы‖ это
будет выглядеть как (29+5)=34(букв в алфавите 33) = 1(«А»).
Результат шифрования будет выглядеть следующим образом:
«ПЛОЩАДЬ»
П(17) + 5 = 22 (Ф)
Л(13) + 5 = 18 (Р)
О(16) + 5 = 21 (У)
Щ(27) +5 = 32 (Ю)
А(1) + 5 = 6 (Е)
Д(5) + 5 = 10 (И)
Ь(28) + 5 = 33 (Я)
«ФРТУЮЕИЯ»
Проанализировав данный алгоритм заметим, что расшифровать данное
сообщение достаточно легко простым перебором всех возможных комбинаций
ключа, а для нашего алфавита их всего 33. А если присмотреться, то можно
заметить часто повторяющиеся символы (например, пробелы) и ―угадать‖ ключ
с первого раза.
Шифр Гронсфельда
Можно усложнить шифр Цезаря путем введения шифра сложной замены.
Шифры сложной замены еще называют многоалфавитными, так как для
шифрования каждого символа исходного сообщения применяется свой шифр
простой замены.
Рассмотрим многоалфавитный шифр Гронсфельда. Для этого составим
таблицу, в которой каждая строка в этой таблице соответствует одному шифру
замены вроде шифра Цезаря для алфавита, дополненного пробелом. При
шифровании сообщения его выписывают в строку, а под ним ключ. Если ключ
оказался короче сообщения, то его циклически повторяют. Шифровку
получают, находя символ в колонке таблицы по букве текста и строке,
соответствующей букве ключа. Это очень распространенный вид шифра
сохранился до наших дней.
12
Например, используя ключ АВАГ, из сообщения ПРИЕЗЖАЮ получаем
следующую шифровку:
Сообщени П Р И Е З Ж А Ю
е
Ключ
А В А Г А В А Г
Шифровк П О И В З Д А Ы
а
В компьютере такая операция соответствует сложению
символов сообщения и ключа по некоторому модулю.
кодов ASCII
Методы шифрования монограммами
Если таблица, описанная в шифре Гронсфельда, будет более сложной,
чем циклическое смещение строк, то шифр станет надежнее. Зададим
некоторую структуру таблицы алфавита. К примеру, имеем алфавит,
состоящий из 30 букв.
1.
Зададим размер таблицы (например 5 на 6).
2.
Заполним таблицу определенным образом: сначала впишем символы ключа
(состоящего из символов алфавита), при этом вписанный символ как бы
изымается из оставшегося множества символов алфавита и более не
повторяется, а затем заполним таблицу оставшимися символами алфавита.
13
3.
Зададим правило шифрования. В нашем случае очередной символ
шифровки будем получать из ячейки таблицы, в которой находится символ
сообщения со смещением на одну клетку таблицы вниз.
Для ключа РЕСПУБЛИКА таблица будет иметь следующий вид:
Р
Л
Д
Т
Щ
Е
И
Ж
Ф
Ь
С
К
З
Х
Ы
П
А
М
Ц
Э
У
В
Н
Ч
Ю
Б
Г
О
Ш
Я
Для описанного выше шифра с данной таблицей сообщение
ОТПЛЫВАЕМ даст шифровку
ШЩАДСНМИЦ. Такие табличные шифры называются монограммными,
так как шифрование ведется по одной букве. Очевидно одно неудобство ключа:
чтобы избежать неопределенности мы должны использовать ключ, состоящий
из неповторяющихся символов, что ослабляет криптостойкость метода.
Метод шифрования биграммами
Можно шифровать не по одной букве, как в предыдущем методе, а по две
буквы за раз. Такие шифры были названы биграммными. Наиболее известный
шифр биграммами называется Playfair. Он применялся Великобританией в
Первую мировую войну. Опишем его на примере той же самой таблицы.
Открытый текст разбивался на пары букв (биграммы) и текст шифровки
строился из него по следующим двум очень простым правилам.
1. Если обе буквы биграммы исходного текста принадлежали одной колонке
таблицы, то буквами шифра считались буквы, которые лежали под ними. Так
биграмма УН давала текст шифровки ВЧ. Если буква открытого текста
находилась в нижнем ряду, то для шифра бралась соответствующая буква из
верхнего ряда и биграмма ОЯ давала шифр ШБ. (Биграмма из одной буквы или
пары одинаковых букв тоже подчинялись этому правилу и текст ЕЕ давал
шифр ИИ).
2. Если обе буквы биграммы исходного текста принадлежали одной строке
таблицы, то буквами шифра считались буквы, которые лежали справа от них.
Так биграмма ИВ давала текст шифровки КГ. Если буква открытого текста
находилась в правой колонке, то для шифра бралась соответствующая буква из
левой колонки и биграмма ОМ давала шифр ЗН.
3. Если обе буквы биграммы открытого текста лежали в разных рядах и колонках,
то вместо них брались такие две буквы, чтобы вся четверка их представляла
прямоугольник. При этом последовательность букв в шифре была зеркальной
исходной паре. Например, СТ шифровалось как РХ, а ТБ шифровалось как РШ.
14
При шифровании фразы СОВЕРШЕННО СЕКРЕТНО по биграммам
получается такая шифровка:
С О В Е Р ШЕ Н Н О С Е К Р Е Т Н О
З Б И У Т Б ЖУ О Д П С Л С Ф Р О Д
Недостатком данного метода является то, что для обеспечения высокой
криптостойкости требуется использование больших неповторяющихся ключей,
что не всегда удобно в использовании.
Метод перестановки
Это также один из методов криптографического преобразования,
заключающийся в перестановке символов (или групп символов) сообщения
местами. Используется, как правило, в сочетании с другими методами, так как
легко расшифруем современными способами расшифровки данных. Примером
этого метода можно назвать алгоритм шифрования по таблицам (матрицам),
алгоритм пути Гамильтона.
Шифрование таблицами
Рассмотрим пример шифрования при помощи таблиц:
1.
Задается размер таблицы (Например 4 на 7)
2.
Символы сообщения вписываются в строки таблицы
3.
Шифровка получается считыванием столбцов таблицы.
Например, шифровкой сообщения ―СОВЕРШЕННО
СООБЩЕНИЕ‖
С О В Е Р Ш Е
Н Н О С Е К Р
Е Т Н О Е С О
О Б Щ Е Н И Е
СЕКРЕТНОЕ
будет ―СНЕООНТБВОНЩЕСОЕРЕЕНШКСИЕРОЕ‖
Для усиления можно произвести перестановку еще несколько раз (или
даже применив другой вид таблиц и способ перестановки). Ключом для
раскрытия данной шифровки будет размер таблицы и способ считывания
данных.
Данный метод в основном успешно используется совместно с другими
методами шифрования, так как сам по себе достаточно прост для
криптоанализа.
Методы гаммирования
Принцип гаммирования заключается в генерации гаммы (случайной
последовательности) шифра с помощью датчика псевдослучайных чисел (или
15
иным способом) и наложении полученной гаммы на исходные данные
обратимым образом. Принцип гаммирования представлен на рис 1.
Рисунок 1
Например, пусть дана гамма из 16 бит и сообщение (блок сообщения)
длиной 16 бит, тогда процесс гаммирования будет осуществлен при помощи
обратимой функции XOR (сложение по модулю 2), которая имеет таблицу
истинности (A xor B = C):
A B C
0 0 0
1 0 1
0 1 1
1 1 0
Гамма
Сообщен
ие
Шифр
1
1
1
1
0
1
1
0
0
0
1
0
0
1
0
0
0
0
1
1
0
0
1
1
1
0
0
0
1
0
1
0
0
0
1
1
0
1
1
0
0
0
0
0
1
0
1
1
Процесс расшифровки данных сводится к повторной генерации гаммы
шифра при известном ключе и наложении такой гаммы на уже зашифрованные
данные.
Гамма
Шифр
Сообщен
ие
1
0
1
1
0
1
0
1
1
1
1
0
0
0
0
1
1
0
0
1
1
0
0
0
0
0
0
1
0
1
0
0
0
1
0
1
1
1
0
0
0
0
1
1
0
1
1
0
Для шифрования мы должны иметь заранее заданную гамму E. Чем
длиннее и случайнее гамма, тем лучше. Для достижения достаточного уровня
криптостойкости желательно для каждого сеанса шифрования использовать
уникальную гамму. Гаммирование широко применяется в наше время.
Методы блочного шифрования
Этот метод представляет собой последовательность (с возможным
повторением и чередованием) основных способов преобразования,
применяемую к блоку шифруемого текста. Блочные шифры на практике
встречаются чаще, чем так называемые "чистые" преобразования в силу их
16
более высокой криптостойкости. Российский и американский стандарты
шифрования основаны именно на этом классе шифров.
Электронная кодировочная книга (Electronic Code Book)
На вход поступает блок (B), преобразуется криптографическим
алгоритмом (E), получается зашифрованный блок (C). Все блоки
обрабатываются независимо друг от друга.
Очевидный недостаток такого подхода - одинаковые исходные блоки
будут одинаковыми после шифрования.
Рисунок 2
Шифрование с обратной связью (Cipher FeedBack)
Этот тип методов тоже можно отнести к методам блочного шифрования,
так как входящая информация разбивается на блоки и шифруется зависимо или
независимо от других блоков.
На рисунке 3 изображен метод, в котором только первый блок
обрабатывается непосредственно, а каждый последующий блок перед
шифрованием складывается по модулю 2 с зашифрованным предыдущим
блоком:
Рисунок 3
В следующем методе (рис. 4) необходима начальная загрузка алгоритма
E:
Рисунок 4
Так же можно придумать метод, в котором ключ не является постоянным,
а вычисляется, как функция от предыдущего блока (рис 5.):
Рисунок 5
В такой схеме необходима предварительная загрузка алгоритма генерации
ключей K.
17
ЛАБОРАТОРНАЯ РАБОТА №2
“Исследование стандарта шифрования DES”
Цель работы: изучить и практически освоить алгоритм шифрования данных
по стандарту США - DES.
Литература
1. Мельников В.В. «Защита информации в компьютерных системах». М.:
Финансы и статистика, 1997. - 368 с.
2. Романец Ю.В., Тимофеев П.А., Шаньгин В.Ф. «Защита информации в
компьютерных системах и сетях». М.: Радио и связь, 1999. - 328 с.
3. Штребе М., Перкинс Ч., Монкур М. Безопасность сетей NТ4 в 2-х томах.
Пер. с англ. В.В. Матвеева; под ред. С.О. Шурчкова. М.: МИР, 1999. - 367 с.
Выполнение работы
Часть 1
1. По краткой теории изучить алгоритмы шифрования данных по стандарту
DES.
2. Запустить программу DES. Изучить пользовательский интерфейс,
практически освоить алгоритмы шифрования данных (необходимые ключ и
сообщение, которые взять установленными в программе ―по умолчанию‖).
Часть 2
1. Зашифровать заданное сообщение (таблицы, номер варианта задаѐтся
преподавателем) с помощью методов шифрования, заложенных в программе в
двух режимах: автоматическом и пошаговом.
2. Составить отчѐт по работе.
3. Подготовиться к теоретическому зачѐту.
Содержание отчѐта
4. Цель работы.
5. Результаты пошагового шифрования данных по пункту 1 части 2. При этом
необходимо пояснить процессы шифрования каждым блоком структурной
схемы программы со ссылками (если необходимо) на рисунки и таблицы из
краткой теории настоящих методических указаний.
6. Для подготовки к теоретическому зачѐту ответить на все контрольные
вопросы.
Контрольные вопросы
1.
Основные идеи, положенные в основу современных криптосистем.
18
2. Обобщѐнная схема шифрования в алгоритме DES. Основные достоинства
алгоритма.
3. Структура алгоритма DES. Начальная перестановка IP.
4. Структура алгоритма DES. Обратная перестановка IP-1.
5. Структура алгоритма DES. Вычисление функции шифрования f.
6. Структура алгоритма DES. Функция расширения Е.
7. Структура алгоритма DES. Функции преобразования S1 , S2 ,…,S8 .
8. Алгоритм вычисления ключей Kj.
9. Функция Р перестановки битов ключа.
10. Функция первоначальной подготовки ключа G.
11. Сдвиги Si и завершающая обработка ключа (функция H).
12. Режим алгоритма DES ―Электронная кодовая книга‖.
13. Режим алгоритма DES ―Сцепление блоков шифра‖.
14. Режим алгоритма DES ―Обратная связь по шифру‖.
15. Режим алгоритма DES ―Обратная связь по выходу‖.
16. Области применения алгоритма DES.
ЗАДАНИЯ
Таблица 8
Номер
вариант СООБЩЕНИЕ КЛЮЧ
а
1
2
3
0
1234567
1t2r3e4n
8
1
r5e6s7p8
8888888
8
2
9c8h1e3r
7777777
7
3
4m5a6n7е
6666666
6
4
L1e2n3d4
5555555
5
5
Enc87e65
4444444
4
6
T9r7e5n1
3333333
3
7
Ch5e6r42
2222222
2
8
M8e7a3n1
1111111
1
9
L3e5n4d2
1212121
2
Номер
вариант СООБЩЕНИЕ КЛЮЧ
а
4
5
6
2222333
17
фыqualва
3
18
прроsurr
4444555
5
19
ificлдьт
6666777
7
20
atioкенг
8888999
9
21
йцукensa
1111222
2
22
1234epti
1122334
4
23
surrпавы
5566778
8
24
зщхшtlio
8899001
1
25
миptitен
1112224
4
26
укificпрк
4455566
6
19
10
7r8e5s2p
11
H3i7p8m9
12
5a4n6n7c
13
H1d3j9m8
14
3F4j1u2n
15
lssnLKJH
16
YUTRmids
3434343
4
5656556
5
7877887
8
8989898
9
1523154
3
9087907
8
4567890
1
27
йцqualцу
28
himaолыв
29
huplэждл
30
Qенwer65
31
midsапро
32
lсмитjks
33
zscxшгне
7778889
9
9900011
1
0203040
5
1213141
5
2324252
6
3738393
0
5150525
9
Краткая теория
СОВРЕМЕННЫЕ СИММЕТРИЧНЫЕ КРИПТОСИСТЕМЫ
По мнению К. Шеннона [83], в практических шифрах необходимо
использовать два общих принципа: рассеивание и перемешивание.
Рассеивание представляет собой распространение влияния одного знака
открытого текста на много знаков шифртекста, что позволяет скрыть
статистические свойства открытого текста.
Перемешивание предполагает использование таких шифрующих
преобразований,
которые
усложняют
восстановление
взаимосвязи
статистических свойств открытого и шифрованного текстов. Однако шифр
должен не только затруднять раскрытие, но и обеспечивать легкость
зашифрования и расшифрования при известном пользователю секретном
ключе.
Распространенным способом достижения эффектов рассеивания и
перемешивания является использование составного шифра, т.е. такого шифра,
который может быть реализован в виде некоторой последовательности
простых шифров, каждый из которых вносит свой вклад в значительное
суммарное рассеивание и перемешивание.
В составных шифрах в качестве простых шифров чаще всего
используются простые перестановки и подстановки. При перестановке просто
перемешивают символы открытого текста, причем конкретный вид
перемешивания определяется секретным ключом. При подстановке каждый
символ открытого текста заменяют другим символом из того же алфавита, а
конкретный вид подстановки также определяется секретным ключом. Следует
заметить, что в современном блочном шифре блоки открытого текста и
шифртекста представляют собой двоичные последовательности обычно длиной
20
64 бита. В принципе каждый блок может принимать 264 значений. Поэтому
подстановки выполняются в очень большом алфавите, содержащем до 264 1019
"символов".
При многократном чередовании простых перестановок и подстановок,
управляемых достаточно длинным секретным ключом, можно получить очень
стойкий шифр с хорошим рассеиванием и перемешиванием. Рассмотренные
ниже криптоалгоритмы DES, IDEA и отечественный стандарт шифрования
данных построены в полном соответствии с указанной методологией.
1. Американский стандарт шифрования данных DES
Стандарт шифрования данных DES (Data Encryption Standard)
опубликован в 1977 г. Национальным бюро стандартов США.
Стандарт DES предназначен для защиты от несанкционированного
доступа к важной, но несекретной информации в государственных и
коммерческих организациях США. Алгоритм, положенный в основу стандарта,
распространялся достаточно быстро, и уже в 1980 г. был одобрен
Национальным институтом стандартов и технологий США (НИСТ). С этого
момента DES превращается в стандарт не только по названию (Data EncryptionStandard), но и фактически. Появляются программное обеспечение и специализированные микроЭВМ, предназначенные для шифрования и расшифрования
информации в сетях передачи данных.
К настоящему времени DES является наиболее распространенным
алгоритмом, используемым в системах защиты коммерческой информации.
Более того, реализация алгоритма DES в таких системах становится признаком
хорошего тона.
Основные достоинства алгоритма DES:
• используется только один ключ длиной 56 бит;
•
зашифровав сообщение с помощью одного пакета программ, для
расшифровки можно использовать любой другой пакет программ,
соответствующий стандарту DES;
•
относительная простота алгоритма обеспечивает высокую скорость
обработки;
• достаточно высокая стойкость алгоритма.
Первоначально метод, лежащий в основе стандарта DES, был разработан
фирмой IBM для своих целей и реализован в виде системы "Люцифер".
Система "Люцифер" основана на комбинировании методов подстановки и
перестановки и состоит из чередующейся последовательности блоков
перестановки и подстановки. В ней использовался ключ длиной 128 бит,
управлявший состояниями блоков перестановки и подстановки. Система
―Люцифер" оказалась весьма сложной для практической реализации из-за
относительно малой скорости шифрования (2190 байт/с- программная
реализация, 96970 байт/с - аппаратная реализация).
21
Алгоритм DES также использует комбинацию подстановок и
перестановок. DES осуществляет шифрование 64-битовых блоков данных с
помощью 64-битового ключа, в котором значащими являются 56 бит
(остальные 8 бит - проверочные биты для контроля на четность).
Дешифрование в DES является операцией, обратной шифрованию, и
выполняется путем повторения операций шифрования в обратной
последовательности. Обобщенная схема процесса шифрования в алгоритме
DES показана на рисунке 1. Процесс шифрования заключается в начальной
перестановке битов 64-битового блока, шестнадцати циклах шифрования и,
наконец, в конечной перестановке битов.
Рисунок 6
Обобщенная схема шифрования в алгоритме DES
Следует сразу отметить, что все приводимые таблицы являются
стандартными и должны включаться в реализацию алгоритма DES в
неизменном виде.
Все перестановки и коды в таблицах подобраны разработчиками таким
образом, чтобы максимально затруднить процесс расшифровки путем подбора
ключа. При описании алгоритма DES (рисунок 7) применены следующие
обозначения:
L и R - последовательности битов (левая (left) и правая (right));
22
Рисунок 7
Структура алгоритма DES
LR - конкатенация последовательностей L и R, т.е. такая
последовательность битов, длина которой равна сумме длин L и R; в
последовательности LR биты последовательности R следуют за битами
последовательности L;
- операция побитового сложения по модулю 2.
Пусть из файла исходного текста считан очередной 64-битовый (8байтовый) блок Т. Этот блок Т преобразуется с помощью матрицы начальной
перестановки IP (таблица 9).
Таблица 9
Матрица начальной
перестановки IP
58 50 42 34 26 18 10 2
23
60
62
64
57
59
61
63
52
54
56
49
51
53
55
44
46
48
41
43
45
47
36
38
40
33
35
37
39
28
30
32
25
27
29
31
20
22
24
17
19
21
23
12
14
16
9
11
13
15
4
6
8
1
3
5
7
Биты входного блока Т (64 бита) переставляются в соответствии с
матрицей IP: бит 58 входного блока Т становится битом 1, бит 50 - битом 2 и
т.д. Эту перестановку можно описать выражением То = IP(T). Полученная
последовательность битов То разделяется на две последовательности: Lo левые или старшие биты, Ro-правые или младшие биты, каждая из которых
содержит 32 бита.
Затем выполняется итеративный процесс шифрования, состоящий из 16
шагов (циклов). Пусть Т - результат i-й итерации:
Тi = Li Ri,
где Li = t1 t2 ... t32 (первые 32 бита); Ri = t33 t34... t64 (последние 32 бита). Тогда
результат i-й итерации описывается следующими формулами:
Li = R i -1, i = 1,2.....16;
Ri =Li-1 f (Ri-1, Ki ), i = 1,2.....16.
Функция f называется функцией шифрования. Ее аргументами являются
последовательность Ri-1, получаемая на предыдущем шаге итерации, и 48битовый ключ Кi, который является результатом преобразования 64-битового
ключа шифра К. (Подробнее функция шифрования f и алгоритм получения
ключа Кi описаны ниже.)
На последнем шаге итерации получают последовательности R16 и L16 (без
перестановки
местами),
которые
конкатенируются
в
64-битовую
последовательность R16L16.
По окончании шифрования осуществляется восстановление позиций битов
с помощью матрицы обратной перестановки IP-1 (таблица10).
Таблица 10
Матрица
обратной перестановки IP-1
40 8 48 16 56 24 64 32
39 7 47 15 55 23 63 31
38 6 46 14 54 22 62/ 30
37 5 45 13 53 21 61 29
36 4 44 12 52 20 60 28
35 3 43 11 51 19 59 27
34 2 42 10 50 18 58 26
33 1 41 9 49 17 57 25
24
Пример того, как соотносятся элементы первой строки матрицы IP-1 с
элементами матрицы IP приведен в таблице 11.
Таблица 11
Связь элементов матриц
Элемент матрицы IP-1
40
8
48
16
56
…
Элемекг матрицы IP
01
02
03
04
05
…
Процесс расшифрования данных является инверсным по отношению к
процессу шифрования. Все действия должны быть выполнены в обратном
порядке. Это означает, что расшифровываемые данные сначала переставляются
в соответствии с матрицей IP"1, а затем над последовательностью битов R16Li6
выполняются те же действия, что и в процессе шифрования, но в обратном
порядке.
Итеративный процесс расшифрования может быть описан следующими
формулами:
R i -1 = Li, i = 1,2.....16;
Li-1 Ri = Ri
f (Ri-1, Ki ), i = 1,2.....16.
Таким образом, для процесса расшифрования с переставленным входным
блоком R16L16 на первой итерации используется ключ К16, на второй итерации К15 и т.д. На 16-й итерации используется ключ K1. На последнем шаге итерации
будут получены последовательности Lo и Ro, которые конкатенируются в 64битовую последовательность LoRo. Затем в этой последовательности 64 бита
переставляются в соответствии с матрицей IP. Peзультат такого преобразования
- исходная последовательность битов (расшифрованное
64-битовое значение).
Теперь рассмотрим, что скрывается под преобразованием, обозначенным
буквой f. Схема вычисления функции шифрования f (Ri-1, Ki ) показана на
рисунке 8.
Для вычисления значения функции f используются:
• функция Е (расширение 32 бит до 48);
• функция Sl , S2, ..., S8 (преобразование 6-битового числа в 4-битовое);
• функция Р (перестановка битов в 32-битовой последовательности).
25
Рисунок 8
Схема вычисления функции шифрования f
Приведем определения этих функций.
Аргументами функции шифрования f являются Ri-1 (32 бита) и Кi, (48 бит).
Результат функции Е(Ri-1) есть 48-битовое число. Функция расширения Е,
выполняющая расширение 32 бит до 48 (принимает блок из 32 бит и порождает
блок из 48 бит), определяется таблицей 12.
В соответствии с таблицей 12 первые три бита Е(Ri-1) - это биты 32, 1 и 2, а
последние - 31, 32, 1. Полученный результат (обозначим его Е(Ri-1))
складывается по модулю 2 (операция XOR)
Таблица 12
Функция расширения Е
32 1 2 3 4 5
4 5 6 7 8 9
8 9 10 '1 12 13
12 13 14 15 16 17
16 17 18 19 20 21
20 21 22 23 24 25
24 25 26 27 28 29
28 29 30 31 32 1
с текущим значением ключа Кi и затем разбивается на восемь 6-битовых
блоков В1, В2,.....,В8:
Е (Кi-1 ) Кi = В1, В2,.....,В8.
26
Далее каждый из этих блоков используется как номер элемента в
функциях-матрицах S1, S2, ..., S8, содержащих 4-битовые значения (таблица 13).
Следует отметить, что выбор элемента в матрице Sj осуществляется
достаточно оригинальным образом. Пусть на вход матрицы Sj поступает
6-битовый блок Вj, = b1 b2 b3 b4 b5 b6, тогда двухбитовое число b1 b6 указывает
номер строки матрицы, а четырехбитовое число b2 b3 b4 b5 - номер столбца.
Например, если на вход матрицы S1 поступает 6-битовый блок b1 b2 b3 b4 b5 b6 =
100110, то 2-битовое число b1 b6 = 10(2) = 2(10) указывает строку с номером 2
матрицы S1 а 4-битовое число b2 b3 b4 b5=0011(2)=3(1О) указывает столбец с
номером 3 матрицы S1. Это означает, что в матрице S1 блок В1 = 100110
выбирает элемент на пересечении строки с номером 2 и столбца с номером 3,
т.е. элемент 8(10)=1000(2). Совокупность 6-битовых блоков B1, B 2, …,B 8 обеспечивает выбор четырехбитового элемента в каждой из матриц S1, S 2, …, S 8.
В результате получаем S1(B1), S 2(B2), …, S 8(B8), т.е. 32-битовый блок
(поскольку матрицы Sj, содержат 4-битовые элементы). Этот 32-битовый блок
преобразуется с помощью функции перестановки битов Р (таблица 14).
Таким образом, функция шифрования
Ri f (Ri-1, Ki )=Р(S1(B1), S 2(B2), …, S 8(B8))
Как нетрудно заметить, на каждой итерации используется новое значение
ключа Кj (длиной 48 бит). Новое значение ключа Кj вычисляется из начального
ключа К (рисунок 9). Ключ К представляет собой 64-битовый блок с 8 битами
контроля по четности, расположенными в позициях 8, 16, 24, 32, 40, 48, 56, 64.
Для удаления контрольных битов и подготовки ключа к работе используется
функция G первоначальной подготовки ключа (таблица 15).
27
Таблица 13
28
Рисунок 9
Схема алгоритма вычисления ключей Кj
Таблица 15 разделена на две части. Результат преобразования G(K)
разбивается на две половины Со и Do по 28 бит каждая. Первые четыре строки
матрицы G определяют, как выбираются биты последовательности Со (первым
битом Со будет бит 57 ключа шифра, затем бит 49 и т д., а последними битами
- биты 44 и 36 ключа).
Следующие четыре строки матрицы G определяют, как выбираются биты
последовательности Do (т.е. последовательность Do будет состоять из битов 63,
55, 47, ...,12, 4 ключа шифра).
29
Таблица 14
Таблица 15
Как видно из таблицы 15, для генерации последовательностей Со и Do не
используются биты 8, 16, 24, 32, 40, 48, 56 и 64 ключа шифра. Эти биты не
влияют на шифрование и могут служить для других целей (например, для
контроля по четности). Таким образом, в действительности ключ шифра
является 56-битовым.
После определения Со и Do рекурсивно определяются Сi и Di,
i = 1, 2, ..., 16. Для этого применяются операции циклического сдвига влево на
один или два бита в зависимости от номера шага итерации, как показано в
таблице16.
Операции сдвига выполняются для последовательностей Сi и Di
независимо. Например, последовательность С3 получается посредством
циклического сдвига влево на две позиции последовательности С2, а
последовательность D3 - посредством сдвига влево на две позиции,
последовательности D2, C16 и D16 получаются из С15 и D15 посредством сдвига
влево на одну позицию.
Таблица 16
Количество сдвигов si для вычисления ключа
Номер
Количество si Номер
Количество si
итерации сдвигов влево итерации сдвигов влево
бит
бит
1
1
9
1
2
1
10
2
3
2
11
2
4
2
12
2
5
2
13
2
6
2
14
2
7
2
15
2
8
2
16
1
Ключ Кi, определяемый на каждом шаге итерации, есть результат выбора
конкретных битов из 56-битовой последовательности Сi Di и их перестановки.
Другими словами, ключ Кi=Н(Сi Di), где функция Н определяется матрицей,
завершающей обработку ключа (таблица17).
30
Таблица 17
Функция Н завершающей обработки
ключа (переставленная выборка 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
Как следует из таблицы 17, первым битом ключа Кi будет 14-й бит
последовательности Сi Di, вторым - 17-й бит, 47-м битом ключа Кi будет 29-й
бит Сi Di, а 48-м битом - 32-й бит Сi Di.
2 Основные режимы работы алгоритма DES
Алгоритм DES вполне подходит как для шифрования, так и для
аутентификации данных. Он позволяет непосредственно преобразовывать 64битовый входной открытый текст в 64-битовый выходной шифрованный текст,
однако данные редко ограничиваются 64 разрядами.
Чтобы воспользоваться алгоритмом DES для решения разнообразных
криптографических задач, разработаны четыре рабочих режима.
• электронная кодовая книга ЕСВ (Electronic Code Book);
• сцепление блоков шифра СВС (Cipher Block Chaining);
• обратная связь по шифртексту CFB (Cipher Feed Back);
• обратная связь по выходу OFB (Output Feed Back).
Режим "Электронная кодовая книга"
Длинный файл разбивают на 64-битовые отрезки (блоки) по 8 байтов.
Каждый из этих блоков шифруют независимо, с использованием одного и того
же ключа шифрования (рисунок 10).
Основное достоинство - простота реализации. Недостаток - относительно
слабая устойчивость против квалифицированных криптоаналитиков. Из-за
фиксированного характера шифрования при ограниченной длине блока 64 бита
возможно проведение криптоанализа "со словарем". Блок такого размера
может повториться в сообщении вследствие большой избыточности в тексте на
естественном языке.
31
Рисунок 10 Схема алгоритма DES в режиме электронной
кодовой книги
Это приводит к тому, что идентичные блоки открытого текста в сообщении
будут представлены идентичными блоками шифртекста, что дает
криптоаналитику некоторую информацию о содержании сообщения.
Режим "Сцепление блоков шифра"
В этом режиме исходный файл М разбивается на 64 - битовые блоки:
М = M1M2...Mn. Первый блок M1 складывается по модулю 2 с 64-битовым
начальным вектором IV, который меняется ежедневно и держится в секрете
(рисунок 11). Полученная сумма затем шифруется с использованием ключа
DES, известного и отправителю, и получателю информации. Полученный
64-битовый шифр C1 складывается по модулю 2 со вторым блоком текста, результат шифруется и получается второй 64-битовый шифр С2, и т.д. Процедура
повторяется до тех пор, пока не будут обработаны все блоки текста.
Таким образом, для всех i = 1...n (n число блоков) результат шифрования
Сi определяется следующим образом: Сi = DES (Mi
Сi), где Со = IV начальное значение шифра, равное начальному вектору (вектору
инициализации).
Очевидно, что последний 64-битовый блок шифртекста является функцией
секретного ключа, начального вектора и каж дого бита открытого текста
независимо от его длины. Этот блок шифртекста называют кодом
аутентификации сообщения (КАС).
Код КАС может быть легко проверен получателем, владеющим секретным
ключом и начальным вектором, путем повторения процедуры, выполненной
отправителем. Посторонний, однако, не может осуществить генерацию КАС,
который воспринялся бы получателем как подлинный, чтобы добавить его к
ложному сообщению, либо отделить КАС от истинного сообщения для использования его с измененным или ложным сообщением.
32
Рисунок 11 Схема алгоритма DES в режиме сцепления
блоков шифра
Достоинство данного режима в том, что он не позволяет накапливаться
ошибкам при передаче.
Блок Мi является функцией только Сi-1 и Сi. Поэтому ошибка при передаче
приведет к потере только двух блоков исходного текста.
Режим "Обратная связь по шифру"
В этом режиме размер блока может отличаться от 64 бит (рисунок 12).
Файл,
подлежащий
шифрованию
(расшифрованию),
считывается
последовательными блоками длиной k битов (k =1 ...64).
33
Рисунок 12 Схема алгоритма DES в режиме
обратной связи по шифртексту
Входной блок (64-битовый регистр сдвига) вначале содержит вектор
инициализации, выровненный по правому краю.
Предположим, что в результате разбиения на блоки мы получили n блоков
длиной k битов каждый (остаток дописывается нулями или пробелами). Тогда
для любого i=1...n блок шифртекста
Сi= Мi Рi-1,
где Рi-1 обозначает k старших битов предыдущего зашифрованного блока.
Обновление сдвигового регистра осуществляется путем удаления его
старших k битов и записи Сi в регистр. Восстановление зашифрованных
данных также выполняется относительно просто: Рi-1 и Сi вычисляются
аналогичным образом и
Мi = Сi Рi-1.
Режим "Обратная связь по выходу"
Этот режим тоже использует переменный размер блока и сдвиговый
регистр, инициализируемый так же, как в режиме CFB, а именно - входной
блок вначале содержит вектор инициализации IV, выровненный по правому
краю (рисунок 13). При этом для каждого сеанса шифрования данных
необходимо использовать новое начальное состояние регистра, которое
должно пересылаться по каналу открытым текстом.
Положим
М = М1 М2... М n
Для всех i = 1... n
34
Сi= Мi Рi-1,
где Рi - старшие k битов операции DES (Рi-1).
Рисунок 13 Схема алгоритма DES в режиме обратной
связи по выходу
Отличие от режима обратной связи по шифртексту состоит в методе
обновления сдвигового регистра.
Это осуществляется путем отбрасывания старших k битов и дописывания
справа Рi.
Области применения алгоритма DES
Каждому из рассмотренных режимов (ЕСВ, СВС, CFB, OFB) свойственны
свои достоинства и недостатки, что обусловливает области их применения.
Режим ЕСВ хорошо подходит для шифрования ключей, режим CFB, как
правило, предназначается для шифрования отдельных символов, а режим OFB
нередко применяется для шифрования в спутниковых системах связи.
Режимы СВС и CFB пригодны для аутентификации данных. Эти режимы
позволяют использовать алгоритм DES для:
•
интерактивного шифрования при обмене данными между терминалом и
главной ЭВМ;
•
шифрования криптографического ключа в практике автоматизированного
распространения ключей;
•
шифрования файлов, почтовых отправлений, данных спутников и других
практических задач.
35
Первоначально стандарт DES предназначался для шифрования и
расшифрования данных ЭВМ. Однако его применение было обобщено и на
аутентификацию.
В системах автоматической обработки данных человек не в состоянии
просмотреть данные, чтобы установить, не внесены ли в них какие-либо
изменения. При огромных объемах данных, проходящих в современных
системах обработки, просмотр занял бы слишком много времени. К тому же
избыточность данных может оказаться недостаточной для обнаружения
ошибок. Даже в тех случаях, когда просмотр человеком возможен, данные
могут быть изменены таким образом, что обнаружить эти изменения человеку
очень трудно. Например, "do" может быть заменено на "do not", "$1900" - на
"$9100". Без дополнительной информации человек при просмотре может легко
принять измененные данные за подлинные. Такие опасности могут
существовать даже при использовании шифрования данных. Поэтому
желательно иметь автоматическое средство обнаружения преднамеренных и
непреднамеренных изменений данных.
Обыкновенные коды, обнаруживающие ошибки, непригодны, так как если
алгоритм образования кода известен, противник может выработать правильный
код после внесения изменений в данные. Однако с помощью алгоритма DES
можно образовать криптографическую контрольную сумму, которая может
защитить как от случайных, так и преднамеренных, но несанкционированных
изменений данных.
Этот процесс описывает стандарт для аутентификации данных ЭВМ (FIPS
113). Суть стандарта состоит в том, что данные зашифровываются в режиме
обратной связи по шифртексту (режим CFB) или в режиме сцепления блоков
шифра (режим СВС), в результате чего получается окончательный блок шифра,
представляющий собой функцию всех разрядов открытого текста. После этого
сообщение, которое содержит открытый текст, может быть передано с
использованием вычисленного окончательного блока шифра, служащего в
качестве криптографической контрольной суммы.
Одни и те же данные можно защитить, пользуясь как шифрованием, так и
аутентификацией. Данные защищаются от ознакомления шифрованием, а
изменения обнаруживаются посредством аутентификации. Алгоритм
аутентификации можно применить как к открытому, так и к зашифрованному
тексту. При финансовых операциях, когда в большинстве случаев реализуются
и шифрование, и аутентификация, последняя применяется и к открытому
тексту.
Шифрование и аутентификацию используют для защиты данных,
хранящихся в ЭВМ. Во многих ЭВМ пароли зашифровывают необратимым
образом и хранят в памяти машины. Когда пользователь обращается к ЭВМ и
вводит пароль, последний зашифровывается и сравнивается с хранящимся
значением. Если обе зашифрованные величины одинаковы, пользователь
получает доступ к машине, в противном случае следует отказ.
36
Нередко зашифрованный пароль вырабатывают с помощью алгоритма
DES, причем ключ полагается равным паролю, а открытый текст - коду
идентификации пользователя.
С помощью алгоритма DES можно также зашифровать файлы ЭВМ для их
хранения.
Одним из наиболее важных применений алгоритма DES является защита
сообщений электронной системы платежей (ЭСП) при операциях с широкой
клиентурой и между банками.
Алгоритм DES реализуется в банковских автоматах, терминалах в
торговых точках, автоматизированных рабочих местах и главных ЭВМ.
Диапазон защищаемых им данных весьма широк от оплат $50 до переводов
на многие миллионы долларов. Гибкость основного алгоритма DES позволяет
использовать его в самых разнообразных областях применения электронной
системы платежей.
Примечание: Обозначения, принятые на схеме алгоритма программы DES.
Входные данные - произвольные 8 символов, которые будут шифроваться.
Ключ - произвольные 8 символов, которые будут являться ключом, т.е паролем
к зашифрованным данным.
Выходные данные - зашифрованный текст.
P[i] - блоки перестановок данных;
Pk[i] - блоки перестановок ключа;
XOR[i] - блок сложения по модулю 2;
L - блок сдвига;
S[i] - блоки подстановок.
Подробная информация о работе блока вызывается нажатием на блок.
Для предварительной загрузки данных в алгоритм необходимо нажать
"Пошаговое выполнение" для установки шага 1.
Кнопка "Закодировать" позволяет выполнить шифрование в автоматическом
режиме. Результат в поле "Выходные данные".
Кнопка "Декодировать" берет информацию из поля "Выходные данные" и
расшифровывает ее. Результат в поле "Выходные данные".
37
ЛАБОРАТОРНАЯ РАБОТА № 3
“Программа PGP. Передача зашифрованных сообщений по электронной
почте”
Цель работы: Изучение основных принципов передачи и приема
зашифрованных почтовых сообщений.
Приобретение практических навыков работы с программой PGP.
Литература
1. М. Пайк . INTERNET в подлиннике: Пер с англ. - СПб.:BHV – СанктПетербург, 1996.
2. Pretty Good Privacy TM. PGP для персональной приватности.
Руководство пользователя.
3. Компютерра, №48(225)1.12.1997.
Выполнение работы
Ознакомиться с программой PGP по литературе [1], [2] или
настоящему методическому пособию
Запустить программу PGP
Создать пару ключей для своего почтового адреса.
Ключи должны иметь двухдневный срок действия.
Созданные ключи не нужно отсылать на сервер ключей.
Запустить программу чтения электронной почты Outlook Exchange.
Послать зашифрованное и подписанное сообщение на свой почтовый
адрес.
Прочитать полученное сообщение.
Послать другому пользователю копию своего открытого ключа.
Получить от другого пользователя копию его открытого ключа.
Послать другому пользователю зашифрованное сообщение,
содержащее зашифрованный прикрепленный файл и цифровую подпись.
Прочитать полученное от другого пользователя зашифрованное
сообщение. Расшифровать прикрепленный к сообщению файл. Проверить
подпись отправителя.
Составить отчет по работе.
Варианты заданий
№
компьютера
1
2
4
3
5
6
7
8
посылающего
сообщение
38
№
компьютера
получающего
сообщение
4
3
1
2
8
7
6
5
Краткая теория
Ассиметричные или двухлючевые криптографические системы
ко
кс
Р
С
Р
Открт текст
Шифр-е
Расшиф-а
откр текст
Еко(Р)
Dкс(С)
Рисунок 5.11 Схема шифрования в асимметричных криптосистемах
В асимметричных криптосистемах используются два ключа: один
открытый ключ, а другой – секретный. Если открытый ключ используется для
шифрования, а секретный ключ – для расшифрования, то такие криптосистемы
называются криптосистемами с открытым ключом.
C = Eko( P ),
P = Dkc( C ) = Dkc(Eko( P ))
Если секретный ключ используется для шифрования, а открытый ключ –
для расшифрования, то имеет место система электронной цифровой подписи
(ЭЦП). Владелец секретного ключа может зашифровать (подписать) текст, а
проверить правильность подписи (расшифровать) может любой пользователь,
имеющий в своем распоряжении открытый ключ.
C = Ekc( P ),
P = Dko( C ) = Dko(Ekc( P ))
Системы с открытым ключом
В этих системах используются некоторые аналитические преобразования
и два различных, но взаимосвязанных друг с другом ключа: открытый,
доступный каждому для шифрования, другой - секретный ключ доступен
только одному лицу для расшифрования.
Методы шифрования должны обладать двумя свойствами:
1. законный получатель сможет выполнить обратное преобразование и
расшифровать сообщение
2. злоумышленнк или криптоаналитик противника, перехвативший
сообщение, не сможет восстановить по нему открытый текст без таких затрат
времени и средств, которые сделают эту работу нецелесообразной.
Методы аналитических преобразований
Умножение
Задача
об
Дискретное
Кодовые
простых
чисел укладке рюкзака возведение
в конструкции
(RSA)
(метод Меркле- степень
(метод
Холлмана)
Эль-Гамаля)
39
В основе асимметрических систем лежит понятие специальных
односторонних функций. Одностороння функция не может быть
непосредственно использована в качестве криптосистемы, т.к. законный
получатель не сможет расшифровать.
x
f(x) - односторонняя функция
Она должна иметь «потайную лазейку», т.е. должен существовать
эффективный способ ее вычисления в обоих направлениях. При этом знание
прямого преобразования не позволит легко найти обратное преобразование.
Важное свойство: при заданных значениях х относительно просто найти
f(x), если есть f(x) трудно найти х..
Вычисление ключей осуществляется получателем сообщения, который
оставляет у себя ключ для расшифрования - секретный, открытый ключ он
высылает отправителю сообщений любым доступным способом или
публикует, не опасаясь огласки.
Особенность этих методов заключается в том, что функции шифрования
и расшифрования являются
обратимыми только тогда,
когда они
обеспечиваются строго определенной парой ключей. При этом открытый ключ
определяет конкретную реализацию функции «ловушки», а секретный ключ
дает информацию о «ловушке». Любой знающий «ловушку» легко вычисляет
одностороннюю функцию f(x) в обоих направлениях, если не знает, то
вычисляет только в одном.
На настоящий момент высокоэффективные асимметрические системы
пока не найдены. Принято ограниченное использование этих криптосистем
только для управления ключами и в системах ЭЦП.
Рассмотрим методы аналитических преобразований, используемые в
реализациях асимметрических криптосистем.
Метод возведения в степень (метод Эль-Гамаля)
F(x) = x m mod n – прямое преобразование.
Эффективного алгоритма для обратной операции – извлечения корня mой степени по модулю n для произвольных m и n не найдено. Это проблема
дискретного логарифмирования для больших чисел.
Один из методов использует алгоритм извлечения корня при известном
разложении числа n на простые множители, это и позволяет отнести функцию
F(x) к классу односторонних функций с «потайной лазейкой».
Метод укладки рюкзака (метод Меркле-Холлмана)
Реализацией задачи об укладке рюкзака является криптоалгоритм
Меркле-Холлмана.
40
Пусть задан набор целых положительных чисел А=(а1,а2…аn) и известна
некоторая величина Z. Задачей является нахождение таких чисел аi , если это
возможно, сумма которых равна числу Z.
В простейшем случае это число Z указывает размер рюкзака , а каждое
из чисел аi – размер предмета, который нужно уложить в рюкзак. Задачей
является нахождение такого набора предметов, чтобы рюкзак был полностью
заполнен.
Пример: Z=3231 и набор из 10 чисел А=(43, 129, 215, 473, 903,302, 561,
1165,697, 1523)
Заметим, что число Z получится при сложении только некоторых чисел
аi.
В принципе решение может быть найдено полным перебором
подмножеств А и проверкой, какая из ∑ аi равна числу Z. В нашем примере
этот перебор состоит из 210 комбинаций, включая пустое множество.
Решение Z= 3231= 129 + 473 +909 + 561 + 1165.
z-размер рюкзака, аi- вещи.
5.6.2 Метод RSA
5.6.3
Самым популярным из асимметричных является метод RSA основанный
на операциях с большими (скажем, 100-значными) простыми числами и их
произведениями.
В 1976 году преподаватели Стэнфордского университета, Витфильд
Диффи (Whitfield DifFie) и Мартин Хелман (Martin Heliman), предложили
систему под названием "шифрование с применением открытого ключа". Этот
метод предполагает наличие двух ключей при каждом сеансе кодирования и
хорошо отрекомендовал себя даже в незащищенных сетях. Каждый
пользователь создает два ключа. Каждый ключ представляет собой
произвольный набор цифр объемом в некоторых случаях более чем в 500 цифр.
Оба ключа связаны между собой таким образом, что сообщение можно
зашифровать с помощью одного ключа и расшифровать с помощью другого,
однако расшифровать сообщение с помощью ключа, использовавшегося для
его зашифровки, нельзя.
В 1977 году три исследователя из Массачусетсского технологического
института (MIT) разработали алгоритм для реализации метода криптографии
на основе открытого ключа. Криптосистема получила название RSA, по
первым уквам фамилий ее авторов — Рона Ривеста (Ron Rivest), Эйди Шамира
(Adi Shamir) и Леонарда Эдлемана (Leonard Adleman) (http://www.rsa.org/).
Исследователи в примере своей первой публикации зашифровали фразу
из драмы «Юлий Цезарь» В. Шекспира «ITS ALL GREEK TO ME», она сначала
была записана в в виде целого числа Х стандартным способом (A=01,
B=02,…..Z=26,пробел =00), затем зашифрована
Xe mod m, где m – 129-разрядное целое число, e=9007.
41
Шифротекст и числа e и m были опубликованы.
Конечно, многие математики пытались найти способ раскрыть алгоритм
криптосистемы с открытым ключом с помощью вычислений (часто весьма
объемных), однако пока что никому не удалось найти решение этой
математической проблемы. Декодирующие программы используют метод
"грубой силы", проверяя все возможные комбинации. Теоретически такой
подход позволяет добиться успеха, однако необходимый объем вычислений
делает такой вариант нереальным при условии, конечно, что открытый ключ
имеет достаточную длину.
Лишь в 1994 году через 17 лет фраза была расшифрована, для этого
потребовалось 220 дней, были задействованы 600 человек и 1600 компьютеров,
соединенных через Интернет.
Этапы реализации алгоритма RSA:
1. Получатель выбирает два очень больших простых числа P и Q и
вычисляет два произведения N = PxQ M = (P – 1)x(Q – 1)
2. Затем выбирается случайное число E, взаимно простое с M и
вычисляется D, удовлетворяющее условию (ExD = 1) mod M
3. Получатель публикует E и N, как свой открытый ключ, сохраняя D,
как секретный ключ.
4. Отправитель сообщение X представляет в виде набора блоков xi
X = (x1, x2, ……xl),
0 < xi < M, затем шифрует его с
использованием E и N.
5.
Каждое xi возвести в степень
E
по модулю N, получится
E
E
шифрованное сообщение: (x1 mod N), (x2 mod N),……. (x1 E mod N)
6. Для расшифрования полученного сообщения Получатель, используя
свой секретный ключ D, вычисляет для каждого блока (xi ED mod N), т.к. (ExD
= 1) mod M, то утверждается xi ED mod N = xi
Алгоритм RSA может быть использован :
1. как самостоятельное средство шифрования данных в системе с
открытым ключом;
2. как средство аутентификации пользователей в системах ЭЦП;
3. как средство для распределения ключей в составных системах.
5.7 Электронно-цифровая подпись
В начале девяностых годов, компании VISA и MasterCard вместе с
другими компаниями, занимающимися техническими вопросами (включая
IBM), определили спецификацию и набор протоколов проведения электронных
платежей, широко известные как протокол SET. Эта открытая спецификация
очень быстро стала де-факто стандартом электронной коммерции. В ней
реализованы следующие принципы информационной безопасности:
шифрование информации обеспечивает ее защиту;
42
ЭЦП и сертификаты обеспечивают идентификацию участников
операции и юридическую силу документов;
ЭЦП также используется для предотвращения модификации данных
третьей стороной;
открытый набор протоколов используется для обеспечения
взаимодействия между разными реализациями.
Система управления криптографическими ключами в SET соответствует
требованиям международного стандарта Х509.
ЭЦП позволяет решить следующие задачи:
Сейчас передаются данные об акциях, облигациях, приказы, сигналы по
сети. Участники передачи нуждаются в защите от множества злоумышленных
действий, к которым относятся:
1. Отказ: отправитель в последствии отказывается от того, что отправил
сообщение
2. Фальсификация: получатель подделывает сообщение.
3. Маскировка: пользователь А – отправитель маскируется под другого
(под директора).
4. Аутентификация.
Для аутентификации (подтверждения) сообщения М, отправленного
пользователем А пользователю В необходимо:
1. Отправитель А должен ввести в М подпись, в которой содержится
дополнительная информация, зависящая от М, от получателя сообщения и от
известного только пользователю А закрытого ключа Ка.
2. Необходимо, чтобы правильную подпись в сообщении для
пользователя В нельзя было составить без Ка.
3. Для предупреждения повторного использования устаревших
сообщений процедура составления подписи должна зависеть от времени.
4. Пользователь В должен иметь возможность удостовериться, что
подпись M: SIG{Ka, M, Id B} есть правильная подпись документа М
пользователем А.
ЭЦП — «реквизит электронного документа, предназначенный для
зашиты данного электронного документа от подделки, полученный в
результате криптографического преобразования информации с использованием
закрытого ключа ЭЦП и позволяющий идентифицировать владельца
сертификата ключа подписи, а также установить отсутствие искажения
информации в электронном документе» (Закон «Об электронной цифровой
подписи» от 10.01.2002 г. N 01-ФЗ).
При создании ключей ЭЦП для использования в информационных
системах (ИС) общего пользования, должны применяться только
сертифицированные средства. Для решения указанных проблем отечественная
банковская система около десятилетия использует криптографические средства
зашиты информации (СКЗИ) и, в частности, процедуры выработки и проверки
43
электронной подписи на базе асимметричного криптографического алгоритма
(алгоритм Эль-Гамаля). Эти алгоритмы оперируют парой математически
взаимосвязанных ключей, один из которых не является секретным и может
быть размешен в справочнике открытых ключей участников системы
электронного документооборота.
Общая схема работы с ЭЦП:
1) При выполнении операции вычисления ЭЦП в СКЗИ загружается
подписанный автором текст документа. Затем вычисляется значение так
называемой хэш-функиии. Эта функция отображает последовательность
произвольной длины в последовательность фиксированной длины. Результат
вычисления хэш-функции называется хэш-кодом, причем по хэш-коду
документа восстановить его текст не представляется возможным. В нашей
стране длина хэш-кода равна 256 битам. Это означает, что исходный текст
произвольной длины превращается в последовательность из 256 нулей и
единиц. Важным свойством хэш-функции является то, что различные
документы не могут иметь одинакового хэш-кода.
2) Затем хэш-код зашифровывается с использованием асимметричного
алгоритма шифрования на секретном ключе подписывающего абонента сети
(автора). Так как длина хэш-кода невелика, операция шифрования занимает не
слишком много времени.
3) Результат такого шифрования и называется ЭЦП документа, которая
передается вместе с исходным документом проверяющему абоненту.
4) Проверяющий абонент выполняет три операции:
а) вычисляет хэш-код полученного сообщения (документа);
б) с использованием асимметричного алгоритма и открытого ключа
расшифровывает ЭЦП;
в) сравнивает результат с вычисленным им на первом этапе хэшкодом. В случае совпадения делается вывод о том, что подпись верна, то есть
автором документа действительно является подписавший и текст не изменен.
Если в процессе передачи в текст документа было внесено некоторое
изменение (преднамеренное или случайное, из-за помехи в канале связи), то
вычисленный проверяющим абонентом хэш-код будет отличаться от того,
который он получит после расшифрования ЭЦП. Если же для формирования
ЭЦП был использован секретный ключ, отличный от секретного ключа
абонента-автора, то результат сравнения тоже будет отрицательным.
Таким образом, механизм формирования и проверки ЭЦП может быть
применен для контроля целостности электронных документов и доказательства
авторства. Секретный ключ хранится каждым пользователем в тайне и
непосредственно используется при создании подписи под документом.
Открытый ключ позволяет получателю сообщения удостовериться в авторстве
и целостности сообщения путем проверки его ЭЦП.
44
Методы сжатия преобразуемых данных на основе однонаправленных
ХЭШ-функциях
Хэш-функция
Хэш-функция (hash, hash-function) – это преобразование, получающее из
данных произвольной длины некое значение (свертку) фиксированной длины.
Простейшими примерами являются контрольные суммы (например, crc32).
Бывают:
криптографические хэши;
программистские хэши.
Криптографический хэш отличается от программистского следующими
двумя свойствами: необратимостью и свободностью от коллизий. Обозначим:
m - исходные данные,
h(m) – хэш-функция от них.
Необратимость означает, что если известно число h0, то трудно
подобрать m такое, что h(m) = h0.
Свободность от коллизий означает, что трудно подобрать такие m1 и m2,
что m1 не равно m2, но h(m1) = h(m2).
Криптографические хэш-функции разделяются на два класса:
- хэш-функции без ключа (MDC (Modification (Manipulation) Detect Code)
- коды),
- хэш-функции c ключом (MАC (Message Authentication Code) - коды).
Хэш-функции без ключа разделяются на два подкласса: слабые хэшфункции, сильные хэш-функции.
Слабой хэш-функцией называется односторонняя функция H(x),
удовлетворяющая следующим условиям:
1. аргумент х может быть строкой бит произвольной длины;
2. значение H(x) должно быть строкой бит фиксированной длины;
3. значение H(x) легко вычислить;
4. для любого фиксированного x вычислительно невозможно найти
другой x' ≠ x, такой что H(x')=H(x).
Пара x' ≠ x, когда H(x')=H(x) называется коллизией хэш-функции.
Сильной хэш-функцией называется односторонняя функция H(x),
удовлетворяющая условиям 1-4 для слабой хэш-функции и свойству 5:
5. вычислительно невозможно найти любую пару x' ≠ x, такую, что
H(x')=H(x).
Поскольку из свойств 1-2 следует, что множество определения хэш-функции
значительно шире множества значений, то коллизии должны существовать.
Свойство 4 требует, чтобы найти их для заданного значения х было
практически невозможно. Требование 5 говорит о том, что у сильной хэшфункции вычислительно невозможно вообще найти какую-либо коллизию.
Существует несколько алгоритмов вычисления хэш-функций
45
MD2– Message Digest. Алгоритм криптографической сверки. Порождает
блок длиной 128 бит от сообщения произвольной длины. Общая схема работы
MD2:
a. дополнение текста сообщений до длины, кратной 128 бит;
b. вычисление 16-битной контрольной суммы, старшие разряды
отбрасываются;
c. добавление контрольной суммы к тексту;
d. повторное вычисление контрольной суммы.
Алгоритм MD2 очень медленный, поэтому чаще применяются MD4,
MD5, SHA. Результирующий хэш имеет длину 160 бит.
ГОСТ Р34.11-94. Российский алгоритм. Длина свертки - 256 бит (очень
удобно для формирования по паролю ключа для ГОСТ 28147-89).
Национальный институт стандартов и технологий (НИСТ) США на своем
веб-сайте http://www.nist.gov/sha/ опубликовал спецификации новых
алгоритмов хеширования SHA-256, SHA-384 и SHA-512, цель которых обеспечить уровень криптостойкости хеша, соответствующий длинам ключей
нового стандарта шифрования AES.
Напомним, что n-битный хэш - это отображение сообщения
произвольной длины в n-битную псевдослучайную последовательность (хешзначение). Криптографический хэш, как особая разновидность такой функции,
это n-битный хэш, обладающий свойствами «однонаправленности» и
«стойкости к коллизиям».
До настоящего времени наиболее популярными хеш-функциями были
созданные Райвистом MD4 и MD5, генерирующие хеш длины n=128, и
алгоритм SHA-1, разработанный в АНБ США и порождающий хеш длины
n=160.
ГОСТ Р34.10-94 «Процедуры выработки и проверки электронной
цифровой подписи на базе асимметричного криптографического алгоритма».
01.06. 2002 года вступил в силу новый стандарт ЭЦП - ГОСТ Р 34.102001, разработанный специалистами ФАПСИ.
Работа с ЭЦП по алгоритму ГОСТ Р 34.10-2001
Действия по работе с ЭЦП можно разделить на 4 этапа:
I. Подготовка к выработке ЭЦП.
II. Генерация ключей.
III. Вычисление ЭЦП.
IV. Проверка ЭЦП.
На I этапе выбираются числа p, q и a. Число р – простое, должно
находиться в
2^509 <p<2^512.
Число q – простое, является делителем числа p-1.
Число a – не обязательно простое, 1<a< (p-1), причем a^q mod p=1.
46
Числа p,q и a выбираются не часто, используется какое то время.
На II этапе генерируются ключи. Х- генерируется как случайное число
0<x<q – секретный ключ, Y - вычисляется по формуле Y =a^x mod p
На этапе III вычисление ЭЦП по ГОСТ Р 34.10-2001– процедура
выработки ЭЦП:
1. Вычислить Н(М) - хэш-функция. Если Н(Х) mod q=0, то Н(М)=1
2. Выработать случайное число К , 0<K<q.
3. Вычислить r=ak mod p, r1=r mod q. Если r1=0, то переход к пункту
2.
4. С использованием секретного ключа вычисляется значение подписи
S=(X*R1+K*H(M)) mod q. Если S=0, то перейти к пункту 2.
5. Подписью сообщения М будет являться вектор R1/S , каждая из
составляющих размером 256 бит.
На IV этапе происходит процедура проверки подписи на стороне
получателя. Получатель получает сообщение М1 и подпись R1/S. У получателя
есть ключ Y, вычисляемый по формуле (открытый ключ).
1. Проверяется, что элементы подписи удовлетворяют условиям 0<s<q,
0<r1<q. Если не удовлетворяет, то подпись не действительна.
2. Вычисление хэш-функции H(M1) полученного сообщения. Если H(M1)
mod q=0 то H(M1)=1.
3. Вычисление значения V=H(M)^(Q-2) mod q
4. Вычисление значений Z1=(S*V) mod q ,
Z2=(q-r1)*V mod q.
5. Вычисление значения U=((a^z1 *y^z2) mod p) mod q.
6. Проверить условие r1=u. Если оно выполняется, то получатель
принимает решение о том, что подпись действительна, целостность сообщения
не нарушена. Иначе подпись не действительна.
7.
Составные криптографические системы
В стандартных криптографических системах, таких, как US Federal Data
Encryption Standart (DES), один и тот же ключ используется и для шифрования,
и для расшифровки. Это значит, что ключ должен первоначально быть передан
через секретные каналы так, чтобы обе стороны могли иметь его до того, как
шифрованные сообщения будут посылаться по обычным каналам. Это может
быть неудобно. Если вы имеете секретный канал для обмена ключами, тогда
вообще зачем вам нужна криптография?
В криптографической системе с открытым ключом каждый имеет два
связанных взаимно однозначно ключа: публикуемый общий ключ и секретный
ключ. Каждый из них дешифрует код, сделанный с помощью другого. Знание
общего ключа не позволяет вам вычислить соответствующий секретный ключ.
Общий ключ может публиковаться и широко распространяться через
коммуникационные сети. Такой протокол обеспечивает секретность без
необходимости использовать специальные каналы связи, необходимые для
стандартных криптографических систем.
47
Кто угодно может использовать общий ключ получателя, чтобы
зашифровать сообщение ему, а получатель использует его собственный
соответствующий секретный ключ для расшифровки сообщения. Никто, кроме
получателя, не может расшифровать его, потому что никто больше не имеет
доступа к секретному ключу. Даже тот, кто шифровал сообщение, не будет
иметь возможности расшифровать его.
Кроме того, обеспечивается также установление подлинности
сообщения. Собственный секретный ключ отправителя может быть
использован для шифровки сообщения, таким образом "подписывая" его. Так
создается электронная подпись сообщения, которую получатель (или кто-либо
еще) может проверять, используя общий ключ отправителя для расшифровки.
Это доказывает, что отправителем был действительно создатель сообщения, и
что сообщение впоследствии не изменялось кем-либо, так как отправитель единственный, кто обладает секретным ключом, с помощью которого была
создана подпись. Подделка подписанного сообщения невозможна, и
отправитель не может впоследствии изменить свою подпись.
Эти два процесса могут быть объединены для обеспечения и секретности,
и установления подлинности: сначала подписывается сообщение вашим
собственным секретным ключом, а потом шифруется уже подписанное
сообщение общим ключом получателя. Получатель делает наоборот:
расшифровывает сообщение с помощью собственного секретного ключа, а
затем проверяет подпись с помощью вашего общего ключа. Эти шаги
выполняются автоматически с помощью программного обеспечения
получателя.
В связи с тем, что алгоритм шифрования с открытым ключом
значительно медленнее, чем стандартное шифрование с секретным ключом,
шифрование
сообщения
лучше
выполнять
с
использованием
высококачественного быстрого стандартного алгоритма симметричного
шифрования. Первоначальное незашифрованное сообщение называется
«открытым текстом» (или просто текст). В процессе, невидимом для
пользователя, временный произвольный ключ, созданный только для этого
одного «сеанса», используется для традиционного шифрования файла
открытого текста. Тогда общий ключ получателя используется только для
шифровки этого временного произвольного стандартного ключа. Этот
зашифрованный ключ «сеанса» посылается наряду с зашифрованным текстом
(называемым "ciphertext" - "зашифрованный" ) получателю. Получатель
использует свой собственный секретный ключ, чтобы восстановить этот
временный ключ сеанса, и затем применяет его для выполнения быстрого
стандартного алгоритма симметричного расшифрования, чтобы декодировать
все зашифрованное сообщение.
Общие ключи хранятся в виде «сертификатов ключей», которые
включают в себя идентификатор пользователя владельца ключа (обычно это
имя пользователя), временную метку, которая указывает время генерации пары
48
ключей, и собственно ключи. Сертификаты общих ключей содержат общие
ключи, а сертификаты секретных ключей - секретные. Каждый секретный ключ
также шифруется с отдельным паролем. Файл ключей, или каталог ключей
(«кольцо с ключами» - keyring) содержит один или несколько таких
сертификатов. В каталогах общих ключей хранятся сертификаты общих
ключей, а в каталогах секретных - сертификаты секретных ключей.
На ключи также внутренне ссылаются "идентификаторы ключей",
которые являются "сокращением" общего ключа (самые младшие 64 бита
большого общего ключа). Когда этот идентификатор ключа отображается, то
показываются лишь младшие 24 бита для краткости. Если несколько ключей
могут одновременно использовать один и тот же идентификатор пользователя,
то никакие два ключа не могут использовать один и тот же идентификатор
ключа.
PGP использует "дайджесты сообщений" для формирования подписи.
Дайджест сообщения - это криптографически мощная 128-битная
односторонняя хэш-функция от сообщения. Она несколько напоминает
контрольную сумму, или CRC-код, она однозначно представляет сообщение и
может использоваться для обнаружения изменений в сообщении. В отличие от
CRC-кода (контроля циклическим избыточным кодом), дайджест не позволяет
создать два сообщения с одинаковым дайджестом. Дайджест сообщения
шифруется секретным ключом для создания электронной подписи сообщения.
Документы подписываются посредством добавления перед ними
удостоверяющей подписи, которая содержит идентификатор ключа,
использованного для подписи, подписанный секретным ключом дайджест
сообщения и метку даты и времени, когда подпись была сгенерирована.
Идентификатор ключа используется получателем сообщения, чтобы найти
общий ключ для проверки подписи. Программное обеспечение получателя
автоматически ищет общий ключ отправителя и идентификатор пользователя в
каталоге общих ключей получателя.
Шифрованным файлам предшествует идентификатор общего ключа,
который был использован для их шифрования. Получатель использует этот
идентификатор для поиска секретного ключа, необходимого для расшифровки
сообщения. Программное обеспечение получателя автоматически ищет
требуемый для расшифровки секретный ключ в каталоге секретных ключей
получателя.
Эти два типа каталогов ключей и есть главный метод сохранения и
управления общими и секретными ключами. Вместо того, чтобы хранить
индивидуальные ключи в отдельных файлах ключей, они собираются в
каталогах ключей для облегчения автоматического поиска ключей либо по
идентификатору ключа, либо по идентификатору пользователя. Каждый
пользователь хранит свою собственную пару каталогов ключей.
49
Возможно, вы думаете, что ваша электронная почта защищена настолько,
что шифрование совершенно не оправдано. Необходимо ли законопослушному
гражданину шифровать его электронную почту? К счастью, мы не живем в
таком мире, так как каждый защищает большинство своей корреспонденции
конвертами, и поэтому никто никого не подозревает, если тот использует
конверт. Аналогично, было бы хорошо, если бы все использовали шифрование
для своей электронной почты, будь они виновны перед законом, или нет, так,
чтобы никто не подозревал ни в чем тех, кто использует шифрование.
Подумайте об этом, как о форме солидарности.
Сегодня, если правительство хочет нарушить право на секретность
обычного гражданина, оно должно понести определенные затраты, чтобы
найти, вскрыть и прочитать письменное сообщение, прослушать и, возможно,
записать телефонный разговор. Такой вид контроля с большими
трудозатратами неприменим в крупных масштабах, это выполнимо только в
особых, важных случаях, когда такие трудозатраты оправданы.
Все больший и больший процент нашей частной связи распространяется
через электронные каналы. Электронное сообщение будет постепенно заменять
обычное бумажное сообщение. И все бы хорошо, но сообщения в электронной
почте слишком хорошо доступны для просмотра всем на предмет поиска
интересующих ключевых слов. Это может быть выполнено легко,
автоматически, выполняться постоянно и быть трудно обнаруживаемым.
Международные телеграммы NSA уже просматривают таким образом в
крупных масштабах.
Мы движемся к тому времени, когда страны будут пересечены
волоконно-оптическими сетями передачи данных, связывающими вместе все
наши все более и более вездесущие персональные компьютеры. Электронная
почта будет обычным делом для каждого, а не новшеством, которым она
является сегодня. Возможно, правительство будет осуществлять защиту нашей
электронной почты своими специально разработанными алгоритмами
шифрования. Вероятно, большинство людей будут доверять этому. Но,
возможно, кто-то будет предпочитать свои собственные защитные меры.
Билль Сената США N 266, заключал в себе некоторые интересные
мероприятия. Если бы эта резолюция стала законом, это вынудило бы
изготовителей оборудования для секретной связи вставлять специальные
«люки» в их изделия, так что правительство могло бы читать шифрованные
сообщения кого угодно. Читаем: "Конгресс считает, что поставщики
электронных услуг связи и изготовители сервисного оборудования для
электронной связи будут обеспечивать, чтобы системы связи разрешали
правительству получать простое текстовое содержимое разговора, данных, и
других видов связи, соответственно санкционированных законом». Эта мера
была отвергнута после решительного гражданского протеста и протеста групп
представителей промышленности. Но правительство тогда представило другое
законодательство, чтобы достичь подобных целей.
50
Если секретность вне закона, то только люди вне закона будут ею
обладать. Секретные агентства имеют доступ к хорошим криптографическим
технологиям. Такими же технологиями пользуются перевозчики оружия и
наркотиков. Так поступают нефтяные компании и другие корпорации-гиганты.
Но обычные люди и массовые организации в своем большинстве не имели
доступа к криптографическим технологиям «военного уровня» с
использованием открытого ключа.
PGP позволяет людям взять секретность в собственные руки. Сейчас
налицо возрастающая социальная потребность этого. Поэтому и написана PGP.
Pretty Good(tm) Privacy (PGP) выпущено фирмой Phil's Pretty Good
Software и является криптографической системой с высокой степенью
секретности для операционных систем MS-DOS, Unix, VAX/VMS и других.
PGP позволяет пользователям обмениваться файлами или сообщениями с
использованием функций секретности, установлением подлинности, и высокой
степенью удобства. Секретность означает, что прочесть сообщение сможет
только тот, кому оно адресовано. Установление подлинности позволяет
установить, что сообщение, полученное от какого-либо человека, было послано
именно им. Нет необходимости использовать специальные секретные каналы
связи, что делает PGP простым в использовании программным обеспечением.
Это связано с тем, что PGP базируется на мощной новой технологии, которая
называется шифрованием с "общим ключом".
PGP объединяет в себе удобство использования криптографической
системы с общим ключом Rivest-Shamir-Adleman (RSA) и скорость обычной
криптографической системы, алгоритм "дайджеста сообщений" для реализации
электронной подписи, упаковку данных перед шифрованием, хороший
эргономический дизайн программы и развитую систему управления ключами.
PGP выполняет функции общего ключа быстрее, чем большинство других
аналогичных реализаций этого алгоритма.
Программный продукт, придуманный в 1991 году Филиппом
Циммерманом. Главное назначение – защита файлов и сообщений от
несанкционированного доступа на ПК
В то время в США действовал запрет на экспорт криптографических
алгоритмов.
В 1993 году АНБ пыталось провести проект «Clipper», по которому
организации должны будут сдавать на депонирование государству ключи
шифрования. В итоге программа PGP явилась протестом
В 1996г. создана компания Pretty Good(tm) Privacy Inc.
Ко
Кс
Сеансовый
Сеанс
кл
ключ
Асимметтричное
шифрование
Z
Ассим расш
К
К
Сеансовый
ключ
К
Сим к
шифрование
Сим
расш
51
Открытый
текст
Р
метричное.
С=Ек(Р)
Открытый Р
текст
Рисунок 5.12 - Схема составной криптосистемы PGP
К основным достоинствам данного пакета можно отнести:
1. Открытость. Исходный код всех версий программ PGP доступен в
открытом виде. Так как сам способ реализации известных алгоритмов был
доступен специалистам, то открытость повлекла за собой и другое
преимущество – эффективность программного кода.
2. Стойкость. Для реализации основных функций использовались
лучшие из известных алгоритмов, при этом допуская использование
достаточно большой длины ключа для надежной защиты данных.
3. Бесплатность. Готовые базовые продукты PGP доступны в Интернете
(www.pgpi.org).
4. Поддержка как централизованной (через серверы ключей) так и
децентрализованной (через «сеть доверия») модели распределения открытых
ключей
5. Удобство программного интерфейса.
Система PGP выполняет следующие функции:
1. генерацию пары ключей;
2. управление ключами;
3. шифрование файла с помощью открытого ключа любого пользователя
PGP(в том числе и своего);
4. наложение цифровой подписи с помощью своего закрытого ключа на
файл (аутентификация файла) или на открытый ключ другого пользователя
(сертификация ключа);
5. проверку (верификацию) своей подписи или подписи другого
пользователя с помощью его открытого ключа;
6. расшифровку файла с помощью своего закрытого ключа.
Сеансовый ключ – сгенерированное псевдослучайное число,
сгенерированное от случайных движений мыши и нажатия клавиши на
клавиатуре.
Для затруднения криптоанализа и выравнивания статистических
характеристик шифруемой информации перед шифрованием текст сжимается с
помощью ZIP а потом шифруется.
Шифрование с помощью программы PGP. Очень сильное средство
криптографической защиты. Сила PGP и в том, что никто не знает, как
взломать зашифрованные PGP сообщения иначе, как используя ―лобовую
атаку‖, т.е. перебор комбинаций символов, могущих образовывать ключ, и в
превосходно продуманном и чрезвычайно мощном механизме обработки
52
ключей, в быстроте, удобстве и широте распространения. Популярность и
бесплатное распространение сделали PGP фактически стандартом для
электронной переписке во всем мире.
Программа оперирует тремя типами объектов:
 Файлами. Доступ к функциям шифрования/расшифровки и
наложения/проверки подписи открывается из менеджера файлов ОС, в
Windows это Проводник;
 Текстовым содержимым буфера обмена;
 Почтовыми сообщениями. Для реализации данной возможности
почтовая программа должна быть снабжена особой вставкой (plug-in).
Если для используемого пакета такая вставка еще не разработана,
криптографические операции над сообщением можно проводить через
буфер обмена, хотя это и менее удобно. Разработаны вставки для MS
Exchange/Outlook и Eudora, Mail’97 и Pegasus Mail для Windows. The
BAT.
С помощью команд PGP ее пользователь может выполнять все базовые
криптографические функции, а именно:
 генерацию пары из открытого/закрытого ключа;
 шифрование файла с помощью открытого ключа любого пользователя
PGP;
 расшифровку файла с помощью своего закрытого ключа;
 наложение цифровой подписи с помощью закрытого ключа на файл
(аутентификация файла) или на открытый ключ другого пользователя
(сертификация ключа);
 проверку (верификацию) своей подписи или подписи другого
пользователя с помощью его открытого ключа.
 преимуществами программы PGP, отличающими ее от многих других
криптографических приложений являются:
 использование проверенных алгоритмов, выдержавших попытки
взлома в течение достаточного времени;
 длина ключей, достаточная, чтобы исключить снижение безопасности
в результате увеличения вычислительных ресурсов потенциальных
оппонентов в течение длительного периода времени (512-битные и
длинные ключи PGP считаются относительно безопасными и
сегодня);
 локальная генерация и локальный менеджмент ключей, исключающие
их попадание в чужие руки;
 гибкая схема удостоверения действительности ключей, допускающая
как распределенное управление доверием («Сеть доверия»), так и
централизованную архитектуру сертификации;
53
 открытость и доступность для проверки и критики не только
алгоритмических решений и форматов файлов, но и исходного текста
самой программы.
Серверы открытых ключей. Для любой криптосистемы основной
проблемой является обмен открытыми ключами. PGP предусматривает гибкую
систему сертификации открытых ключей, исключающую массовую их
компрометацию. В программу интегрирована связь с онлайновыми серверами
открытых ключей. Такие серверы поддерживаются рядом организаций,
включая PGP Inc. и МТИ. Поскольку передача ключей обеспечивается
посредством не только особого протокола hkp, но и http, к серверу открытых
ключей можно обратиться и посредством обычного браузера WWW.
Существующие серверы открытых ключей связаны в сеть, поэтому ключи или
сертификат, подгруженный на один из них, вскоре становится известен и всем
остальным.
Работа с программой PGP. Генерация пары ключей. Щелкните на
кнопке «пуск» и выберите пункт PGPKeys из подменю PGP меню
«Программы» (Programs), или щелкните на значке «замочек» в области
системных индикаторов (System tray) и выберите пункт PGPKeys. Еще один
способ запустить PGPKeys – щелкнуть на значке «ключики» в панели
инструментов пакета электронной почты. После этого откроется окно
PGPKeys.
Выберите из меню Keys пункт New Key. В появившемся окне введите
ваше имя и адрес электронной почты. В следующем окне выберите тип ключа –
Diffie-Helman/DDS или RSA. RSA – старая технология, использовавшаяся в
старых версиях PGP, оставленная для возможности переписки с
пользователями старых версий. В следующем окне необходимо выбрать длину
ключей. Чем длиннее ключ, тем меньше шансов, что кто-либо сумеет его
взломать, но зато и процесс шифрования и расшифровки будет более
длительным. Для повседневной работы длина ключа в 1024 бит будет
достаточной. В следующем окне будет предложено ввести дату окончания
срока действия ключей, или указать, что срок действия ключей неограничен
(Key pair never expires). Обычно ключи создаются для постоянного
использования, но в некоторых случаях могут понадобиться ключи для
непродолжительного использования. После истечения указанного срока ключи
уже не смогут использоваться для шифрования ваших сообщений или
наложения цифровой подписи. В следующем окне необходимо ввести пароль,
который будет использоваться для исключительного доступа к вашему
закрытому ключу. При вводе пароля в окошке Passphrase Quality показывается
степень трудоемкости взлома пароля путем подбора. Она тем выше, чем
54
длиннее пароль и чем больше различных символов содержит. При нажатии на
кнопку Далее (Next) программа приступает к генерации ключей.
После завершения процесса создания ключей программа предлагает
зарегистрировать созданный открытый ключ на сервере ключей (Send my key to
the root server now). Зарегистрировав свой ключ на сервере ключей, он
становится доступным для любого, кто захочет отправить вам зашифрованное
сообщение.
После нажатия на кнопку Готово (Finish) вы вновь попадете в окно со
списком ключей, в котором появляется ваш новый ключ.
Распространение ключей. Для распространения вашего открытого
ключа есть несколько способов:
регистрация вашего ключа на сервере ключей;
включение копии открытого ключа в почтовое сообщение.
Как включить свой открытый ключ в почтовое сообщение? В окне
программы PGPKeys пометьте значок, символизирующий ваш ключ и
выберите пункт Copy в меню Edit. В окне редактора почтового сообщения
выберите пункт Вставка (Paste) в меню Правка (Edit). В текст почтового
сообщения добавится копия вашего открытого ключа:
-----BEGIN PGP
PUBLIC
KEY
BLOCK----0+f5pt1r+O/AW7EjhNP0OzYEdvV0Dew4PqDwvHgZ6/hy6uWI
Oqy8/g61mhyxHJ8dgd1inJnXAHBOn4gjuTkszxEq9QCg/8EX
FA44Yn8D/0g6YMOywoFW7lUorgoE1RrnXSyErEYW3LrFq2HT
hC38LYp2+1M9fs0etXNwMu57blrLvC+qwnfchgZ9EtchaT8I
L9019q717B9LAKDdOgNNOGVNnvgJLHpYgY4rv+kEZwCgrDPe
-----END PGP PUBLIC KEY BLOCK----Когда вы посылаете кому-то свой открытый ключ, обязательно
подпишите сообщение своей цифровой подписью. Тогда получатель может
проверить подпись и убедиться, что ключ действительно принадлежит вам.
При получении по почте чьего-либо открытого ключа, скопируйте
фрагмент текста, содержащий ключ, в буфер обмена, затем перейдите в окно
PGP keys и выберите из меню Edit пункт Paste. Новый ключ будет показан в
виде значка в окне PGP keys.
Отправка зашифрованных сообщений. Запустите программу работы с
электронной почтой, которая снабжена вставкой (plug-in) для работы с PGP,
например Microsoft Outlook Express. Нажмите на кнопку Создать сообщение
на панели инструментов, или выберите соответствующий пункт в меню Файл.
После составления почтового сообщения нажмите на кнопку Encrypt PGP на
панели инструментов почтовой программы. После нажатия эта кнопка
55
останется утопленной. Если вы хотите также наложить на сообщение свою
цифровую подпись, нажмите на кнопку Sign Up на панели инструментов
почтовой программы. После этого отправьте ваше сообщение как обычно. Если
вы накладывали на сообщение цифровую подпись, перед отправкой появится
окно, где необходимо ввести пароль для доступа к вашему закрытому ключу
для формирования подписи.
Если у вас есть копии открытых ключей всех получателей этого
сообщения, то будут использованы эти ключи. Если же для какого-либо
получателя открытый ключ не найден, появится диалоговое окно, в котором
можно будет выбрать необходимый ключ.
Если необходимо отправить какой-либо зашифрованный файл в виде
приложения к сообщению, это можно сделать из окна программы Проводник
(Explorer). Для этого пометьте нужный файл или файлы в окне Проводника,
выберите необходимую операцию в подменю PGP меню Файл или
контекстном меню, вызываемом правой клавишей мыши. В появившемся
диалоговом окне будет предложено выбрать открытые ключи получателей.
После этого будут созданы файлы с расширением .pgp, содержащие
зашифрованные исходные файлы. Полученные зашифрованные файлы нужно
прикрепить к сообщению обычным способом – пункт Вложение файла меню
Вставка или кнопка Вложить файл на панели инструментов.
Расшифровка полученных сообщений. Самый простой способ читать
полученные зашифрованные сообщения – установить режим автоматической
расшифровки сообщений. Для этого щелкните на значке «замочек» в области
системных индикаторов (System tray) и выберите пункт Options. В
появившемся окне настроек выберите закладку Email и включите флажок
Automatically decrypt/verify when opening messages. Для подтверждения
настроек нажмите на кнопку OK. В этом режиме все сообщения будут
автоматически расшифровываться и показываться, как обычные сообщения.
Однако этот режим имеет те неудобства, что делаются попытки расшифровки
всех, даже незашифрованных сообщений, что заметно замедляет работу
почтовой программы.
Если режим автоматической расшифровки выключен, то при открытии
зашифрованного сообщения вы увидите блок зашифрованных данных:
-----BEGIN
PGP
MESSAGE--
--J7CBJb5N81D+k7s92n6FRMfaHOEFjfhEFWsTTEv+EeKu
5gSNmPZWM6nXdcALaVo+0F0iomqqyfuFDExFJdI=+zhq
-----END
PGP
MESSAGE-----
56
Для его расшифровки нажмите на кнопку Decrypt PGP message на панели
инструментов почтовой программы. Шифрованные данные будут заменены на
расшифрованный текст сообщения. Если сообщение было подписано
отправителем, будет проверена его подпись и выделена информация об
отправителе и целостности сообщения.
Если к сообщению прилагаются зашифрованные файлы, то вам
необходимо сохранить присоединенные файлы на диске с помощью команды
контекстного меню Сохранить вложения. Затем в окне Проводника пометьте
эти файлы и выберите пункт Decrypt&Verify в подменю PGP меню Файл или
контекстного меню, содержащие расшифрованные данные.
Шифрование и расшифровка через буфер обмена. Если для вашего
почтового клиента не разработана вставка (plug-in) PGP, все вышеописанные
операции по шифрованию и расшифровке сообщений вы можете производить
через буфер обмена. Для этого необходимо выделить незашифрованное
сообщение или шифрованные данные в окне почтовой программы, поместить
их в буфер обмена командой Копировать (Copy) в меню Правка (Edit). После
этого щелкните на значке «замочек» в области системных индикаторов (System
tray) и выберите меню Clipboard, и в нем выберите необходимую операцию:
Encrypt – шифрование сообщения;
Sign – наложение цифровой подписи;
Encrypt & Sign – зашифровать и подписать;
Decrypt & Verify – расшифровать зашифрованное сообщение и проверить
подпись отправителя, если сообщение подписано отправителем.
Содержание отчета
Отчет должен содержать:
1. Цель работы.
2. Выбранный алгоритм генерации ключа и длину ключа.
3. Адрес электронной почты вашего компьютера и адрес электронной почты
другого пользователя.
4. Имя файла на локальном, который был передан как вложение другому
пользователю – имя исходного и зашифрованного файла.
5. Имя файла, полученного от другого пользователя как вложение – имя
зашифрованного и расшифрованного файла.
6. Результат проверки цифровой подписи отправителя сообщения.
7. Выводы по работе.
57
Контрольные вопросы
1. Для чего предназначены программы шифрования сообщений?
2. Какие существуют способы для шифрования сообщений?
3. В чем отличие схемы шифрования с ―с секретным ключом‖ от схемы
с ―открытым ключом‖?
4. Получение закрытого ключа. Для чего используется закрытый ключ?
5. Получение открытого ключа. Для чего используется открытый ключ?
6. Какие существуют методы распространения открытого ключа?
7. Для чего используется цифровая подпись?
8. Как отправить кому-либо зашифрованное почтовое сообщение?
9. Как прочесть полученное зашифрованное сообщение?
10. Шифрование присоединенных к сообщению файлов.
11. Зачем в структурной схеме PGP применяется сеансовый ключ?
12. Зачем в структурной схеме PGP применяется открытый ключ?
13. Зачем в структурной схеме PGP применяется секретный ключ?
14. Структурная схема PGP. Принципы работы.
15. Сравнительный анализ криптосистем PGP и классической двух
ключевой.
16. Достоинства
и
недостатки
классической
двух
ключевой
криптосистемы.
17. Достоинства и недостатки классической криптосистемы PGP.
58
Документ
Категория
Без категории
Просмотров
0
Размер файла
2 028 Кб
Теги
zashita, komp, ovsyannikov, bezopasnosti, sist, informat, burov, informazii
1/--страниц
Пожаловаться на содержимое документа