Автор работы: Пользователь скрыл имя, 05 Января 2013 в 18:51, курсовая работа
Цель: изучить принципы работы алгоритмов шифрования с применением асимметричных криптосистем и разработать программное средства для реализации алгоритма шифрования дешифрования на примере алгоритма Эль-Гамаля.
Задачи:
1. Изучить теоретические аспекты шифрования информации с применением алгоритмов асимметричных криптосистем
2. Разработать программное средство для реализации шифрования и дешифрования информации на примере алгоритма Эль-Гамаля.
ВВЕДЕНИЕ 3
Исторические основы криптологии 3
Криптология в современном мире 4
ГЛАВА I. 7
1 Криптология 7
1.1 Основные понятия криптологии 7
1.2 Требования к криптосистемам 9
2 Криптосистемы с открытым ключом 10
3 Асимметричная (открытая) методология. 13
4 Порядок использования систем с асимметричными ключами: 14
5 Идея криптосистемы с открытым ключом 17
6 Схема шифрования с открытым ключом 20
7 Научная основа 22
8 Основные принципы построения криптосистем с открытым ключом 23
9 Криптография с несколькими открытыми ключами 24
10 Криптоанализ алгоритмов с открытым ключом 26
11 Особенности системы 28
11.1 Применение 28
11.2 Преимущества 29
11.3 Недостатки 29
12 Виды асимметричных шифров 30
13 Система RSA 30
13.1 История 31
13.2 Описание алгоритма 33
13.3 Алгоритм создания открытого и секретного ключей 34
13.4 Шифрование и расшифрование 35
13.4.1 Схема RSA 35
13.5 Цифровая подпись 36
13.6 Скорость работы алгоритма RSA 38
13.7 Криптоанализ RSA 39
13.8 Применение RSA 40
14 Алгоритм Эль-Гамаля 41
14.1 Общие сведения 41
14.2 Шифрование сообщений 41
14.3 Работа в режиме шифрования 43
14.3.1 Шифрование 44
14.3.2 Расшифрование 44
14.3.3 Схема шифрования 45
ГЛАВА II. 45
15 Практическая часть. 45
16 Заключение 48
17 Список литературы: 50
Примеры таких криптотекстов:
Криптотекст 1 Криптотекст 2 Криптотекст 3
1235267 5643452 1235267
3572651 3517289 3517289
4673956 4673956 4673956
3517289 3572651 3572651
7755628 7755628 7755628
5643452 1235267 5643452
8492746 8492746 8492746
Чтобы расшифровать текст, надо иметь справочник, составленный согласно возрастанию номеров. Этот справочник является лазейкой (секрет, который помогает получить начальный текст), известной только легальным пользователям. Не имея на руках копии справочника, криптоаналитик затратит очень много времени на расшифровку.
Пусть K — пространство
ключей, а e и d — ключи шифрования
и расшифрования
Ee(m) = c
Здесь c C, где C — пространство шифротекстов, а m M, где M — пространство сообщений.
D d — функция расшифрования, с помощью которой можно найти исходное сообщение m, зная шифротекст c :
Dd(c) = m
{Ee: e K} — набор шифрования, а {Dd: d K} — соответствующий набор для расшифрования. Каждая пара (E,D) имеет свойство: зная Ee, невозможно решить уравнение Ee(m) = c, то есть для данного произвольного шифротекста c C, невозможно найти сообщение m M. Это значит, что по данному e невозможно определить соответствующий ключ расшифрования d. Ee является односторонней функцией, а d — лазейкой.
Ниже показана схема передачи информации лицом А лицу В. Они могут быть как физическими лицами, так и организациями и так далее. Но для более лёгкого восприятия принято участников передачи отождествлять с людьми, чаще всего именуемыми Алиса и Боб. Участника, который стремится перехватить и расшифровать сообщения Алисы и Боба, чаще всего называют Евой.
Боб выбирает пару (e,d) и шлёт ключ шифрования e (открытый ключ) Алисе по открытому каналу, а ключ расшифрования d (закрытый ключ) защищён и секретен (он не должен передаваться по открытому каналу).
Чтобы послать сообщение m Бобу, Алиса применяет функцию шифрования, определённую открытым ключом e: Ee(m) = c, c — полученный шифротекст.
Боб расшифровывает шифротекст c, применяя обратное преобразование D d, однозначно определённое значением d.
Начало асимметричным
шифрам было положено в работе «Новые
направления в современной
В 1977 году учёными Рональдом Ривестом (Ronald Linn Rivest), Ади Шамиром (Adi Shamir) и Леонардом Адлеманом (Leonard Adleman) из Массачусетского Технологического Института (MIT) был разработан алгоритм шифрования, основанный на проблеме о разложении на множители. Система была названа по первым буквам их фамилий (RSA — Rivest, Shamir, Adleman). Эта же система была изобретена Клиффордом Коксом (Clifford Cocks) в 1973 году, работавшим в центре правительственной связи (GCHQ). Но эта работа хранилась лишь во внутренних документах центра, поэтому о её существовании было не известно до 1977 года. RSA стал первым алгоритмом, пригодным и для шифрования, и для цифровой подписи.
Вообще, в основу
известных асимметричных
Пусть есть 3 ключа KA, KB, KC, распределенные так, как показано в таблице.
Лицо Ключ
Алиса KA
Боб KB
Кэрол KC
Дэйв KA, KB
Эллен KB, KC
Франк KA, KC
Тогда Алиса может зашифровать сообщение ключом KA, а Эллен расшифровать ключами KB, KC, Кэрол — зашифровать ключом KC, а Дэйв расшифровать ключами KA, KB. Если Дэйв зашифрует сообщение ключом KA, то сообщение сможет прочитать Эллен, если ключом KB, то его сможет прочитать Франк, если же обоими ключами KA и KB, то сообщение прочитает Кэрол. По аналогии действуют и другие участники. Таким образом, если используется одно подмножество ключей для шифрования, то для расшифрования требуются оставшиеся ключи множества. Такую схему можно использовать для n ключей.
Шифруется ключом Расшифровывается ключом
KB и KC KA
KA и KC KB
KA и KB KC
KC KA, KB
KA KB, KC
KB KA, KC
Рассмотрим для начала множество, состоящее из трех агентов: Алисы, Боба и Кэрол. Алисе выдаются ключи KA и KB, Бобу — KB и KC, Кэрол — KA и KC. Теперь, если отправляемое сообщение зашифровано ключом KC, то его сможет прочитать только Алиса, последовательно применяя ключи KA и KB. Если нужно отправить сообщение Бобу, сообщение шифруется ключом KA, Кэрол — ключом KB. Если нужно отправить сообщение и Алисе и Кэрол, то для шифрования используются ключи KB и KC.
Преимущество этой схемы заключается в том, что для её реализации нужно только одно сообщение и n ключей (в схеме с n агентами). Если передаются индивидуальные сообщения, то есть используются отдельные ключи для каждого агента (всего n ключей) и каждого сообщения, то для передачи сообщений всем различным подмножествам требуется 2n − 2 ключей.
Недостатком такой схемы является то, что необходимо также широковещательно передавать подмножество агентов (список имён может быть внушительным), которым нужно передать сообщение. Иначе каждому из них придется перебирать все комбинации ключей в поисках подходящей. Также агентам придется хранить немалый объём информации о ключах.
Казалось бы, что криптосистема с открытым ключом — идеальная система, не требующая безопасного канала для передачи ключа шифрования. Это подразумевало бы, что два легальных пользователя могли бы общаться по открытому каналу, не встречаясь, чтобы обменяться ключами. К сожалению, это не так. Рисунок иллюстрирует, как Ева, выполняющая роль активного перехватчика, может захватить систему (расшифровать сообщение, предназначенное Бобу) без взламывания системы шифрования.
В этой модели Ева перехватывает открытый ключ e, посланный Бобом Алисе. Затем создает пару ключей e' и d', «маскируется» под Боба, посылая Алисе открытый ключ e', который, как думает Алиса, открытый ключ, посланный ей Бобом. Ева перехватывает зашифрованные сообщения от Алисы к Бобу, расшифровывает их с помощью секретного ключа d', заново зашифровывает открытым ключом e Боба и отправляет сообщение Бобу. Таким образом, никто из участников не догадывается, что есть третье лицо, которое может как просто перехватить сообщение m, так и подменить его на ложное сообщение m'. Это подчеркивает необходимость аутентификации открытых ключей. Для этого обычно используют сертификаты. Распределённое управление ключами в PGP решает возникшую проблему с помощью поручителей.
Еще одна форма атаки — вычисление закрытого ключа, зная открытый (рисунок ниже). Криптоаналитик знает алгоритм шифрования Ee, анализируя его, пытается найти Dd. Этот процесс упрощается, если криптоаналитик перехватил несколько криптотекстов с, посланных лицом A лицу B.
Большинство криптосистем с открытым ключом основаны на проблеме факторизации больших чисел. К примеру, RSA использует в качестве открытого ключа n произведение двух больших чисел. Сложность взлома такого алгоритма состоит в трудности разложения числа n на множители. Но эту задачу решить реально. И с каждым годом процесс разложения становится все быстрее. Ниже приведены данные разложения на множители с помощью алгоритма «Квадратичное решето».
Год Число десятичных разрядов
в разложенном числе Во сколько раз сложнее разложить
на множители 512-битовое число
1983 71 > 20 000 000
1985 80 > 2 000 000
1988 90 250 000
1989 100 30 000
1993 120 500
1994 129 100
Также задачу разложения потенциально можно решить с помощью Алгоритма Шора при использовании достаточно мощного квантового компьютера.
Для многих методов несимметричного шифрования криптостойкость, полученная в результате криптоанализа, существенно отличается от величин, заявляемых разработчиками алгоритмов на основании теоретических оценок. Поэтому во многих странах вопрос применения алгоритмов шифрования данных находится в поле законодательного регулирования. В частности, в России к использованию в государственных и коммерческих организациях разрешены только те программные средства шифрования данных, которые прошли государственную сертификацию в административных органах, в частности, в ФСБ, ФСТЭК.
Алгоритмы криптосистемы с открытым ключом можно использовать