Криптосистемы RSA и Эль-Гамаля
Методы шифрования исходных сообщений асимметричным методом с открытым ключом RSA. Сущность и история разработки алгоритма криптозащиты Эль-Гамаля, особенности генерации ключей. Подтверждение подлинности отправителя, применение электронно-цифровой подписи.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | контрольная работа |
Язык | русский |
Дата добавления | 10.05.2017 |
Размер файла | 63,0 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Содержание
- 1. Криптосистемы RSA и Эль-Гамаля
- 1.1 Алгоритм шифрования RSA
- 1.1.1 Генерация ключей
- 1.1.2 Шифрование/расшифрование
- 1.2 Алгоритм Эль-Гамаля
- 1.2.1 Общие сведения
- 1.2.2 Шифрование сообщений
- 1.2.3 Подтверждение подлинности отправителя
- 2. Электронно-цифровая подпись
- 2.1 Система цифровой подписи Шнорра
- 2.2 Стандарт цифровой подписи DSA
- 3. Практические задания
- Список литературы
1. Криптосистемы RSA и Эль-Гамаля
1.1 Алгоритм шифрования RSA
Самым распространенным алгоритмом ассиметричного шифрования является алгоритм RSA. Он был предложен тремя исседователями-математиками Рональдом Ривестом (R. Rivest), Ади Шамиром (A. Shamir) и Леонардом Адльманом (L. Adleman) в 1977-78 годах. Разработчикам данного алгоритма удалось эффективно воплотить идею односторонних функций с секретом. Стойкость RSA базируется на сложности факторизации больших целых чисел. В 1993 году метод RSA был обнародован и принят в качестве стандарта (PKCS #1: RSAEncryptionstandart). RSA можно применять как для шифрования/расшифрования, так и для генерации/проверки электронно-цифровой подписи.
1.1.1 Генерация ключей
Первым этапом любого асимметричного алгоритма является создание пары ключей: открытого и закрытого и распространение открытого ключа "по всему миру". Для алгоритма RSA этап создания ключей состоит из следующих операций:
Выбираются два простых (!) числа p и q
Вычисляется их произведение n=(p*q)
Выбирается произвольное число e (e<n), такое, что
НОД(e,(p-1)(q-1))=1,
то есть e должно быть взаимно простым с числом (p-1)(q-1).
Методом Евклида решается в целых числах (!) уравнение
e*d+(p-1)(q-1)*y=1. Здесь неизвестными являются переменные d и y - метод Евклида как раз и находит множество пар (d,y), каждая из которых является решением уравнения в целых числах.
Два числа (e,n) - публикуются как открытый ключ.
Число d хранится в строжайшем секрете - это и есть закрытый ключ, который позволит читать все послания, зашифрованные с помощью пары чисел (e,n).
1.1.2 Шифрование/расшифрование
Как же производится собственно шифрование с помощью этих чисел:
Отправитель разбивает свое сообщение на блоки, равные k=[log2(n)] бит, где квадратные скобки обозначают взятие целой части от дробного числа.
Подобный блок, может быть интерпретирован, как число из диапазона (0;2k-1). Для каждого такого числа (назовем его mi) вычисляется выражение
ci=((mi)e)modn.
Блоки ci и есть зашифрованное сообщение, и их можно спокойно передавать по открытому каналу, поскольку операция возведения в степень по модулю простого числа, является необратимой математической задачей. Обратная ей задача носит название "логарифмирование в конечном поле" и является на несколько порядков более сложной задачей. То есть даже если злоумышленник знает числа e и n, то по ci прочесть исходные сообщения mi он не может никак, кроме как полным перебором mi.
А вот на приемной стороне процесс дешифрования все же возможен, и поможет нам в этом хранимое в секрете число d. Достаточно давно была доказана теорема Эйлера, частный случай которой утверждает, что если число n представимо в виде двух простых чисел p и q, то для любого x имеет место равенство
(x(p-1)(q-1))modn = 1.
Для дешифрования RSA-сообщений воспользуемся этой формулой.
Возведем обе ее части в степень (-y):
(x(-y)(p-1)(q-1))modn = 1(-y)= 1.
Теперь умножим обе ее части на x:
(x(-y)(p-1)(q-1)+1)modn = 1*x = x.
А теперь вспомним как мы создавали открытый и закрытый ключи. Мы подбирали с помощью алгоритма Евклида d такое, что
e*d+(p-1)(q-1)*y=1,
то есть
e*d=(-y)(p-1)(q-1)+1.
А следовательно в последнем выражении предыдущего абзаца мы можем заменить показатель степени на число (e*d). Получаем (xe*d)modn = x. То есть для того чтобы прочесть сообщение ci=((mi)e)modn достаточно возвести его в степень d по модулю m:
((ci)d)mod n = ((mi)e*d)mod n = mi.
На самом деле операции возведения в степень больших чисел достаточно трудоемки для современных процессоров, даже если они производятся по оптимизированным по времени алгоритмам. Поэтому обычно весь текст сообщения кодируется обычным блочным шифром (намного более быстрым), но с использованием ключа сеанса, а вот сам ключ сеанса шифруется как раз асимметричным алгоритмом с помощью открытого ключа получателя и помещается в начало файла.
1.2 Алгоритм Эль-Гамаля
1.2.1 Общие сведения
Криптографы со своей стороны вели поиски более эффективных систем открытого шифрования и в 1985 году Т. Эль-Гамаль (США) предложил следующую схему на основе возведения в степень по модулю большого простого числа P.
Задается большое простое число P и целое числоA, 1<A<P. Сообщения представляются целыми числами M из интервала 1<M<P.
1.2.2 Шифрование сообщений
Протокол передачи сообщения M выглядит следующим образом.
абоненты знают числа A и P;
абоненты генерируют независимо друг от друга случайные числа:
Ka, Kb удовлетворяющих условию: 1<K<P получатель вычисляет и передаёт отправителю число B, определяемое последовательностью:
В = AKbmоd(P)
отправитель шифрует сообщение M и отправляет полученную последовательность получателю
C = M * BKamоd(P)
получатель расшифровывает полученное сообщение
D = (AKa)-Kbmоd(P)
M = C * D mоd(P)
В этой системе открытого шифрования та же степень защиты, что для алгоритма RSA с модулем N из 200знаков, достигается уже при модуле P из 150 знаков. Это позволяет в 5-7раз увеличить скорость обработки информации. Однако, в таком варианте открытого шифрования нет подтверждения подлинности сообщений.
1.2.3 Подтверждение подлинности отправителя
Для того, чтобы обеспечить при открытом шифровании по модулю простого числа P также и процедуру подтверждения подлинности отправителя Т. Эль-Гамаль предложил следующий протокол передачи подписанного сообщения M:
абоненты знают числа A и P;
отправитель генерирует случайное число и хранит его в секрете:
Ka удовлетворяющее условию: 1<Ka<P вычисляет и передаёт получателю число B, определяемое последователньостью:
В = AKamоd(P)
Для сообщения M(1<M<P): выбирает случайное число L(1<L<P), удовлетворяющее условию (L, P - 1) = 1 вычисляет число
R = ALmоd(P)
решает относительно S
M=Ka*R+L*S mоd(P)
передаёт подписанное сообщение [M,R,S] получатель проверяет правильность подписи
A M = (BR) * (RS) mоd(P)
В этой системе секретным ключом для подписывания сообщений является число X, а открытым ключом для проверки достоверности подписи число B. Процедура проверки подписи служит также и для проверки правильности расшифрования, если сообщения шифруются.
2. Электронно-цифровая подпись
шифрование алгоритм криптозащита
При ведении деловой переписки, при заключении контрактов подпись ответственного лица является непременным атрибутом документа, преследующим несколько целей:
- Гарантирование истинности письма путем сличения подписи с имеющимся образцом;
- Гарантирование авторства документа (с юридической точки зрения)
Выполнение данных требований основывается на следующих свойствах подписи:
- подпись аутентична, то есть с ее помощью получателю документа можно доказать, что она принадлежит подписывающему;
- подпись неподделываемая; то есть служит доказательством, что только тот человек, чей автограф стоит на документе, мог подписать данный документ, и никто иной.
- Подпись непереносима, то есть является частью документа и поэтому перенести ее на другой документ невозможно.
- Документ с подписью является неизменяемым.
- Подпись неоспорима.
- Любое лицо, владеющее образцом подписи может удостоверится, что документ подписан владельцем подписи.
Развитие современных средств безбумажного документооборота, средств электронных платежей немыслимо без развития средств доказательства подлинности и целостности документа. Таким средством является электронно-цифровая подпись (ЭЦП), которая сохранила основные свойства обычной подписи.
2.1 Система цифровой подписи Шнорра
Система цифровой подписи Шнорра подобна системе цифровой подписи Эль-Гамаля.
Пусть p - простое число, q - простой делитель (p ?)1, а g - элемент порядка q в GF(p) (степени этого элемента по модулю p порождают q различных элементов поля), 0 < k < q - случайное число, 0 < z < q - секретный ключ, y= mod р - открытый ключ. Уравнения выработки подписи имеют вид
r = modp, e = h(X,r), s = (ze + k)mod q .
Подписью является (e,s). В этом случае получатель вычисляет modp и вычисляет хэш-функцию
e'= h (X,modp).
Если e '=e, то подпись признается корректной.
Цифровые подписи, построенные по системе Шнорра, короче, чем в системе Эль- Гамаля или RSA.
2.2 Стандарт цифровой подписи DSA
Стандарт DSS (Digital Signature Standard) принят в США в 2000 г. Согласно этому стандарту подпись может формироваться по одному из трех алгоритмов:
1. DSA (Digital Signature Algorithm), основанному на проблеме вычисления логарифма в конечном поле.
2. ANSI X9.31 (RSA DSA).
3. ANSI X9.63, основанному на проблеме вычисления логарифма в группе точек эллиптической кривой над конечным полем.
Алгоритм DSA включает следующие этапы
1. Предварительный этап - выбор параметров Выбираются следующие параметры: p - простое число в диапазоне < p< , 512 < l < 1024 - кратно 64, < q< - простой делитель p?1, g - элемент порядка q в GF(p), выбирается в виде , где б - примитивный элемент.
Выбирается секретный ключ 0 < z < q и вычисляется открытый ключ для проверки подписи y=mod р.
2. Формирование цифровой подписи
Вычисляется значение хэш-функции от сообщения h(X) . При этом используется алгоритм безопасного хэширования SHA-1 (Secure Hashing Algorithm). Значение h(X) имеет длину 160 бит. Далее отправитель выбирает случайное значение 0 < k < q и вычисляет modq. Затем вычисляется пара значений
r= (modp)(modq);
s=(h(X)+zr)(mod q).
Пара значений (r,s) является цифровой подписью под сообщением X . После выработки подписи значение k уничтожается. 3. Верификация цифровой подписи
Получатель вычисляет
и сравнивает полученное значение с r. Подпись считается корректной, если полученный результат совпадает с r.
Рассмотрим вычисляемое выражение
При любом уровне стойкости (любой паре чисел p, g от 512 до 1024 бит), числа z, q,r,s имеют длину 160 бит, что сокращает длину цифровой подписи до 320 бит.
3. Практические задания
1. Расшифруйте следующие сообщения, зашифрованные шифром Цезаря, и определите ключ n, 0<n<33, если известно, что исходные сообщения составлены из алфавита
АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ:
ЮВПЛШУХ
Метод Цезаря заключается в том, что каждая буква зашифрованного текста смещается на n количество букв по алфавиту вправо либо влево. В данной задаче ключ n=11 влево.
Ответ: УЧЕБНИК
2. Сложите по модулю 2:
- двоичные числа 10101100 и 11001010 ;
- десятичные числа 15 и 10 ;
- шестнадцатеричные числа 0В 5 и 37.
Примечание: десятичные и шестнадцатеричные числа необходимо сначала перевести в двоичный вид.
Операция сложения по модулю 2 в алгебре и логике называется "исключающее ИЛИ" XOR. При сложении двух двоичных знаков получается 0, если исходные двоичные цифры одинаковы, и 1, если цифры разные.
10101100 XOR 11001010 =01100110
Ответ: 01100110
Переведем десятичные числа в двоичные:
15=1111; 10=1010
1111 ХОR 1010 = 0101
Ответ: 0101
Переведем шестнадцатеричные числа в двоичные
0В 5=000010110101; 37=00110111
10110101 ХОR 00110111=10000010
Ответ: 10000010
Список литературы
1. Баричев С.Г., Гончаров В.В., Серов Р.Е. Основы современной криптографии - [Электронный ресурс] режим доступа: http://www.ict.edu.ru/ft/002447/crypto1-3.pdf
2. Криптография - [Электронный ресурс] режим доступа: (http://www.citforum.ru/internet/securities/crypto.shtml)
3. Криптографические алгоритмы с открытым ключом - [Электронный ресурс] режим доступа: http://argosoft.webservis.ru/Base/RSAintro.html#Криптографические алгоритмы с открытым ключом
4. "Программирование РАН", N 5 (сентябрь-октябрь), 1994, стр. 17-22 [Электронный ресурс] режим доступа: http://www1.tepkom.ru/users/ant/Articles/Pkcstand.html
5. Теоретические основы - Безопасность информационных систем - Криптографические системы - [Электронный ресурс] режим доступа: http://argosoft.webservis.ru/Base/Crypt.html#Механизмы шифрования
6. Совpеменные кpиптогpафические методы защиты инфоpмации - Системы с откpытым ключом [Электронный ресурс] режим доступа: http://ppt.newmail.ru/crypto04.htm#Heading20
Размещено на Allbest.ru
...Подобные документы
Сущность и история разработки алгоритма криптозащиты Эль-Гамаля. Основы этого типа шифрования, особенности генерации ключей. Специфика реализации системы криптозащиты средствами процессора ADSP-2181 в расширенных полях Галуа. Блок-схемы программирования.
контрольная работа [1,0 M], добавлен 13.01.2013Формирование ключей для шифрования сообщения. Описание алгоритма RSA: шифрование и дешифрование. Понятие и история изобретения криптосистемы с открытым ключом. Свойства односторонней функции и сложность раскрытия шифра. Сущность цифровой подписи.
лабораторная работа [326,0 K], добавлен 04.11.2013Симметричные и асиметричные методы шифрования. Шифрование с помощью датчика псевдослучайных чисел. Алгоритм шифрования DES. Российский стандарт цифровой подписи. Описание шифрования исходного сообщения асимметричным методом с открытым ключом RSA.
курсовая работа [101,1 K], добавлен 09.03.2009Электронная цифровая подпись. Асимметричные алгоритмы шифрования. Сценарий распределения открытых ключей, обмен сертификатами. Выбор программных средств. Математическая модель. Скорости Эль-Гамаля для различных длин модулей. Программная реализация.
дипломная работа [461,7 K], добавлен 22.09.2011Традиционные симметричные криптосистемы. Основные понятия и определения. Методы шифрования. Метод перестановок на основе маршрутов Гамильтона. Асимметричная криптосистема RSA. Расширенный алгоритм Евклида. Алгоритмы электронной цифровой подписи Гамаля.
курсовая работа [235,6 K], добавлен 06.01.2017Понятие и история изобретения криптосистемы с открытым ключом. Свойства односторонней функции и сложность раскрытия шифра. Описание алгоритма RSA: шифрование и дешифрование. Возможные атаки, способы взлома, обоснование и практическая реализация RSA.
курсовая работа [45,9 K], добавлен 24.12.2011Основные способы криптографии, история ее развития. Принцип шифрования заменой символов, полиалфавитной подстановкой и методом перестановки. Симметричный алгоритм шифрования (DES). Открытое распределение ключей. Шифры Ривеста-Шамира-Алдемана и Эль Гамаля.
реферат [39,3 K], добавлен 22.11.2013Обмен информации, защищенной от фальсификаций и незаконных пользователей. Распределение секретных ключей с помощью системы с открытым ключом. Разработка модулей системы генерации ключей и обмена конфиденциальной информацией для группы пользователей.
курсовая работа [2,0 M], добавлен 17.11.2011Разъяснения по использованию систем цифровой подписи в связи с ведением закона "Об электронной цифровой подписи". Пример практического применения механизма электронно-цифровой подписи: программа контроля подлинности документов, хранимых в базе данных.
контрольная работа [180,1 K], добавлен 29.11.2009Анализ криптографических методов шифрования данных. Разработка криптосистемы, основанной на схеме Эль-Гамаля. Определение функциональных и нефункциональных требований. Выбор языка программирования и среды разработки. Тестирование программного продукта.
дипломная работа [1,6 M], добавлен 17.07.2016Основные методы криптографической защиты информации. Система шифрования Цезаря числовым ключом. Алгоритмы двойных перестановок и магические квадраты. Схема шифрования Эль Гамаля. Метод одиночной перестановки по ключу. Криптосистема шифрования данных RSA.
лабораторная работа [24,3 K], добавлен 20.02.2014Рассмотрение основных понятий криптографии: конфиденциальности, целостности, аутентификации и цифровой подписи. Описание криптографических средств защиты (криптосистемы, принципы работы криптосистемы, распространение ключей, алгоритмы шифрования).
дипломная работа [802,2 K], добавлен 08.06.2013Состав, параметры технических средств. Выработка общего ключа для шифрования/расшифровки сообщения. Структура подключения ПЛИС с персональным компьютером по Ethernet. Модули формирования электронно-цифровой подписи. Архитектура стандарта Gigabit Ethernet.
дипломная работа [3,6 M], добавлен 13.09.2017Общая схема цифровой подписи. Особенности криптографической системы с открытым ключом, этапы шифровки. Основные функции электронной цифровой подписи, ее преимущества и недостатки. Управление ключами от ЭЦП. Использование ЭЦП в России и других странах.
курсовая работа [288,2 K], добавлен 27.02.2011Симметрическое шифрование как способ шифрования, в котором применяется один и тот же криптографический ключ. Функции стандартного диалогового окна открытия и сохранения файла. Характерная схема действий при генерации подписи. Цифровая подпись файла.
курсовая работа [641,5 K], добавлен 14.06.2011История алгоритмов симметричного шифрования (шифрования с закрытым ключом). Стандарты на криптографические алгоритмы. Датчики случайных чисел, создание ключей. Сфера интересов криптоанализа. Системы электронной подписи. Обратное преобразование информации.
краткое изложение [26,3 K], добавлен 12.06.2013Основы криптографических систем. Алгоритм создания открытого и секретного ключей. Схема передачи шифрованной информации и алгоритм для цифровой подписи. Преимущества и недостатки системы RSA. Основные формулы для создания RSA-ключей шифрования.
курсовая работа [683,6 K], добавлен 18.12.2011Безопасность электронной коммерции. Шифрование сообщений с открытым и закрытым ключом. Цифровая подпись и сертификат ключа. Стандарты безопасности. Роль закона "Об электронной цифровой подписи" во всех сферах деятельности. Электронный сертификат.
презентация [141,0 K], добавлен 16.09.2013Изучение основных методов и алгоритмов криптографии с открытым ключом и их практического использования. Анализ и практическое применение алгоритмов криптографии с открытым ключом: шифрование данных, конфиденциальность, генерация и управление ключами.
дипломная работа [1,2 M], добавлен 20.06.2011Анализ характеристик средств криптографической защиты информации для создания электронной цифровой подписи. Этапы генерации ключевого контейнера и запроса при помощи Удостоверяющего центра с целью получения сертификата проверки подлинности клиента.
реферат [604,6 K], добавлен 14.02.2016