Алгоритм RSA
Анализ методов разработки криптографического алгоритма с открытым ключом основывающийся на вычислительной сложности задачи факторизации больших целых чисел (RSA). Изучение истории разработки алгоритма RSA. Алгоритм создания открытого и секретного ключей.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | курсовая работа |
Язык | русский |
Дата добавления | 25.11.2019 |
Размер файла | 444,3 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Введение
В данной курсовой работе, был разработан криптографический алгоритм с открытым ключом основывающийся на вычислительной сложности задачи факторизации больших целых чисел (RSA) с помощью языка C++ .
1. История разработки алгоритма RSA
Опубликованная в ноябре 1976 года статья Уитфилда Диффи и Мартина Хеллмана «Новые направления в криптографии» перевернула представление о криптографических системах, заложив основы криптографии с открытым ключом. Разработанный впоследствии алгоритм Диффи -- Хеллмана позволял двум сторонам получить общий секретный ключ, используя незащищенный канал связи. Однако этот алгоритм не решал проблему аутентификации. Без дополнительных средств пользователи не могли быть уверены, с кем именно они сгенерировали общий секретный ключ.
Изучив эту статью, трое учёных Рональд Ривест, Ади Шамир и Леонард Адлеман из Массачусетского технологического института (MIT) приступили к поискам математической функции, которая бы позволяла реализовать сформулированную Уитфилдом Диффи и Мартином Хеллманом модель криптографической системы с открытым ключом. После работы над более чем 40 возможными вариантами им удалось найти алгоритм, основанный на различии в том, насколько легко находить большие простые числа и насколько сложно раскладывать на множители произведение двух больших простых чисел, получивший впоследствии название RSA. Система была названа по первым буквам фамилий её создателей.
В августе 1977 года в колонке «Математические игры» Мартина Гарднера в журнале Scientific American, с разрешения Рональда Ривеста появилось первое описание криптосистемы RSA. Читателям также было предложено дешифровать английскую фразу, зашифрованную описанным алгоритмом:
9686 |
9613 |
7546 |
2206 |
||||
1477 |
1409 |
2225 |
4355 |
||||
8829 |
0575 |
9991 |
1245 |
||||
7431 |
9874 |
6951 |
2093 |
||||
0816 |
2982 |
2514 |
5708 |
||||
3569 |
3147 |
6622 |
8839 |
||||
8962 |
8013 |
3919 |
9055 |
||||
1829 |
9451 |
5781 |
5154 |
В качестве открытых параметров системы были использованы числа n=1143816...6879541 (129 десятичных знаков, 425 бит, также известно как RSA-129) и e=9007. За расшифровку была обещана награда в 100 долларов США. По заявлению Ривеста, для факторизации числа потребовалось бы более 40 квадриллионов лет[7][3]. Однако чуть более чем через 15 лет, 3 сентября 1993 года было объявлено о запуске проекта распределённых вычислений с координацией через электронную почту по нахождению сомножителей числа RSA-129 и решению головоломки. На протяжении полугода более 600 добровольцев из 20 стран жертвовали процессорное время 1600 машин (три из которых были факс-машина). В результате были найдены простые множители и расшифровано исходное сообщение, которое представляет собой фразу «THE MAGIC WORDS ARE SQUEAMISH OSSIFRAGE (англ.)» («Волшебные слова -- это брезгливый ягнятник»). Полученную награду победители пожертвовали в фонд свободного программного обеспечения.
После публикации Мартина Гарднера полное описание новой криптосистемы любой желающий мог получить, выслав по почте запрос Рональду Ривесту с приложенным конвертом с обратным адресом и марками на 35 центов. Полное описание новой криптосистемы было опубликовано в журнале «Communications of the ACM» в феврале 1978 года.
Заявка на патент была подана 14 декабря 1977 года, в качестве владельца был указан MIT. Патент 4405829 был выдан 20 сентября 1983 года, а 21 сентября 2000 года срок его действия истёк. Однако за пределами США у изобретателей патента на алгоритм не было, так как в большинстве стран его необходимо было получить до первой публикации[.
В 1982 году Ривест, Шамир и Адлеман организовали компанию RSA Data Security (англ.) (в настоящий момент -- подразделение EMC). В 1989 году RSA, вместе с симметричным шифром DES, упоминается в RFC 1115, тем самым начиная использование алгоритма в зарождающейся сети Internet, а в 1990 году использовать алгоритм начинает министерство обороны США.
В ноябре 1993 года открыто публикуется версия 1.5 стандарта PKCS1 , описывающего применение RSA для шифрования и создания электронной подписи. Последние версии стандарта также доступны в виде RFC (RFC 2313 -- 1.5, 1993 год; RFC 2437 -- 2.0, 1998 год; RFC 3447 -- 2.1, 2002 год).
В декабре 1997 года была обнародована информация, согласно которой британский математик Клиффорд Кокс (Clifford Cocks), работавший в центре правительственной связи (GCHQ) Великобритании, описал криптосистему, аналогичную RSA в 1973 году.
2. Описание и работа алгоритма RSA
2.1 Описание алгоритма
Криптографические системы с открытым ключом используют так называемые односторонние функции, которые обладают следующим свойством:
· если известно {\displaystyle x}x, то f(x){\displaystyle f(x)} вычислить относительно просто;
· если известно {\displaystyle y=f(x)}y=f(x), то для вычисления {\displaystyle x}x нет простого (эффективного) пути.
Под односторонностью понимается не теоретическая однонаправленность, а практическая невозможность вычислить обратное значение, используя современные вычислительные средства, за обозримый интервал времени.
В основу криптографической системы с открытым ключом RSA положена сложность задачи факторизации произведения двух больших простых чисел. Для шифрования используется операция возведения в степень по модулю большого числа. Для дешифрования (обратной операции) за разумное время необходимо уметь вычислять функцию Эйлера от данного большого числа, для чего необходимо знать разложение числа на простые множители.
В криптографической системе с открытым ключом каждый участник располагает как открытым ключом (англ. public key), так и закрытым ключом (англ. private key). В криптографической системе RSA каждый ключ состоит из пары целых чисел. Каждый участник создаёт свой открытый и закрытый ключ самостоятельно. Закрытый ключ каждый из них держит в секрете, а открытые ключи можно сообщать кому угодно или даже публиковать их. Открытый и закрытый ключи каждого участника обмена сообщениями в криптосистеме RSA образуют «согласованную пару» в том смысле, что они являются взаимно обратными, то есть.
Для{\displaystyle \forall } допустимых пар открытого и закрытого ключей (p,s){\displaystyle (p,s)} существуют {\displaystyle \existсоответствующие функции шифрования (x){\displaystyle E_{p}(x)} и расшифрования {\displaystyle D_{s}(x)}(x){\displaystyle E_{p}(x)} такие, что для {\displaystyle \forall } сообщения {\displaystyle m\in M}m принадлежит M, где {\displaystyle M}M -- множество допустимых сообщений,
{\displaystyle m=D_{s}(E_{p}(m))=E_{p}(D_{s}(m)).}
алгоритм криптографический ключ секретный
2.2 Алгоритм создания открытого и секретного ключей
Первым этапом любого асимметричного алгоритма является создание пары ключей - открытого и закрытого и распространение открытого ключа "по всему миру".
1. Создание ключей
Для алгоритма RSA этап создания ключей состоит из следующих операций:
1. Выбираются два очень больших простых числа and .
2. Вычисляется их произведение , которое называется модулем.
3. Вычисляется значение функции Эйлера от числа :
4. Выбирается произвольное число ( ), взаимно простое со значением функции .
Число называется открытой экспонентой
5. С помощью алгоритма Евклида вычисляется число , которое удовлетворяет условию
6. Пара публикуется в качестве открытого ключа RSA.
7. Пара играет роль закрытого ключа RSA и держится в секрете.
2.3 Шифрование и расшифрование
Предположим, отправитель хочет послать получателю сообщение .
Сообщениями являются целые числа в интервале от 0 до , т.е . . На рисунке представлена схема алгоритма RSA.
Рисунок - Схема алгоритма RSA
Алгоритм Отправителя:
1. Взять открытый ключ получателя
8. Взять открытый текст
9. Зашифровать сообщение с использованием открытого ключа получателя:
Алгоритм Получателя:
1. Принять зашифрованное сообщение
10. Взять свой закрытый ключ
11. Применить закрытый ключ для расшифрования сообщения:
Уравнения (1) и (2), на которых основана схема RSA, определяют взаимно обратные преобразования множества
2.4 Пример использования алгоритма
В таблице представлен пример использования алгоритма RSA. Отправитель отправил зашифрованное сообщение «111111» и получатель, используя свой закрытый ключ, расшифровал его.
Этап |
Описание операции |
Результат операции |
|
Генерация ключей |
Выбрать два простых числа |
||
Вычислить модуль |
|||
Вычислить функцию Эйлера |
|||
Выбрать открытую экспоненту |
|||
Вычислить секретную экспоненту |
|||
Опубликовать ''открытый ключ'' |
|||
Сохранить ''закрытый ключ'' |
|||
Шифрование |
Выбрать текст для зашифровки |
||
Вычислить шифротекст |
|||
Расшифрование |
Вычислить исходное сообщение |
3. Программная реализация алгоритма RSA
Для реализации алгоритма был выбран язык программирование C++. Ниже представлена рабочая программа RSA.
Рисунок интерфейс программы
Рисунок интерфейс программы
Open text - поле для ввода исходного текста. Сюда мы вводим текст для дальнейшей зашифровки.
Рисунок интерфейс программы
Далее в программе вычисляются p и q, затем вычисляется n, затем fi, публичный и приватный ключи.
Рисунок интерфейс программы
Рисунок интерфейс программы
Decrypted text - расшифрованный текст
Decrypted text (ASCI) - расшифрованный текст в (ASCI) кодах.
Вывод
В данной курсовой работе был разработан и реализован алгоритм RSA. Так же был подробно рассмотрен алгоритм ассиметричного шифрования RSA. Была описана история его создания, описаны алгоритмы создания ключей, шифрования и расшифровки. Также представлен пример практического использования алгоритма RSA.
Список используемой литературы
1. Семенов Ю.А. Протоколы Internet // М.: Проспект, 2011. - 114 с.
2. Беляев А.В. Методы и средства защиты информации // ЧФ СПбГТУ, 2010. - 142с.
3. Венбо М. Современная криптография. Теория и практика // М.: Вильямс, 2005. -- 768 с.
4. Шнайер Б. Прикладная криптография. Протоколы, алгоритмы, исходные тексты // М.: Триумф, 2002. -- 816 с.
5. Алгоритм RSA // Интернет ресурс: http://ru.wikipedia.org/wiki/Rsa
Размещено на Allbest.ru
Подобные документы
Методика разработки и механизм отладки программы на языке Лисп, реализующей криптографический алгоритм кодирования информации с открытым ключом – RSA. Математические и алгоритмические основы решения задачи, его программная модель, составление блок-схемы.
курсовая работа [675,7 K], добавлен 20.01.2010Актуальность и предыстория проблемы построения систем связи с открытым ключом. Алгоритм кодирования, перевода из десятичного числа в двоичное, быстрого возведения числа в степень, поиска взаимно простых чисел. Дешифрование сообщения по криптоалгоритму.
курсовая работа [140,3 K], добавлен 20.06.2017Изучение основных методов и алгоритмов криптографии с открытым ключом и их практического использования. Анализ и практическое применение алгоритмов криптографии с открытым ключом: шифрование данных, конфиденциальность, генерация и управление ключами.
дипломная работа [1,2 M], добавлен 20.06.2011Основы криптографических систем. Алгоритм создания открытого и секретного ключей. Схема передачи шифрованной информации и алгоритм для цифровой подписи. Преимущества и недостатки системы RSA. Основные формулы для создания RSA-ключей шифрования.
курсовая работа [683,6 K], добавлен 18.12.2011Понятие и история изобретения криптосистемы с открытым ключом. Свойства односторонней функции и сложность раскрытия шифра. Описание алгоритма RSA: шифрование и дешифрование. Возможные атаки, способы взлома, обоснование и практическая реализация RSA.
курсовая работа [45,9 K], добавлен 24.12.2011Разработка криптографического алгоритма программы ручного шифра по таблице Виженера. Разработка программы, выполняющей шифрование и расшифрование. Особенности использования в качестве ключа самого открытого текста. Алгоритмы решения "обратных" задач.
курсовая работа [45,0 K], добавлен 13.11.2009Симметричные и асиметричные методы шифрования. Шифрование с помощью датчика псевдослучайных чисел. Алгоритм шифрования DES. Российский стандарт цифровой подписи. Описание шифрования исходного сообщения асимметричным методом с открытым ключом RSA.
курсовая работа [101,1 K], добавлен 09.03.2009История создания алгоритма Форда-Фалкерсона, краткое описание его алгоритма, особенности работы, анализ сложности. Создание распараллеленного варианта алгоритма и его краткое описание. Основные характеристики теории графов, специфика, пути и маршруты.
контрольная работа [246,3 K], добавлен 06.08.2013Формирование ключей для шифрования сообщения. Описание алгоритма RSA: шифрование и дешифрование. Понятие и история изобретения криптосистемы с открытым ключом. Свойства односторонней функции и сложность раскрытия шифра. Сущность цифровой подписи.
лабораторная работа [326,0 K], добавлен 04.11.2013Система электронного голосования (ЭГ). Взлом криптосистем с открытым ключом с помощью криптоанализа. Реализация протокола ЭГ с помощью алгоритма RSA. Использование открепительного талона в протоколе ЭГ. Задача RSA и уязвимость учебного алгоритма RSA.
курсовая работа [3,5 M], добавлен 20.12.2009