Студенческий сайт КФУ - ex ТНУ » Учебный раздел » Учебные файлы »ПРОГРАММИРОВАНИЕ

Программная реализация библиотеки классов системы RSA и ее применение на практике

Тип: курсовая работа
Категория: ПРОГРАММИРОВАНИЕ
Скачать
Купить
Основы криптографических систем. Алгоритм создания открытого и секретного ключей. Схема передачи шифрованной информации и алгоритм для цифровой подписи. Преимущества и недостатки системы RSA. Основные формулы для создания RSA-ключей шифрования.
Краткое сожержание материала:

Размещено на

Размещено на

МИНИСТЕРСТВО ОБРАЗОВАНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ

МОСКОВСКИЙ ГОСУДАРСТВЕННЫЙ ИНСТИТУТ РАДИОТЕХНИКИ, ЭЛЕКТРОНИКИ И АВТОМАТИКИ (ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ)

Факультет ИТ

Базовая кафедра № 244

Курсовая работа

Дисциплина: Объектно-ориентированное программирование

По теме «Программная реализация библиотеки классов системы RSA и ее применение на практике»

Студент: Минаев Сергей Кириллович

Учебная группа: ИТО-2-09

Преподаватель: Петренко А.А.

Дата выполнения: 06.12.11

Москва, 2011
ЗАДАНИЕ
на курсовую работу
по дисциплине: Объектно-ориентированное программирование
Студент: Минаев Сергей Кириллович Учебная группа: ИТО-2-09
ТЕМА: Программная реализация библиотеки классов системы RSA и ее применение на практике.
1. Перечень подлежащих разработке вопросов:
1.1. Основные термины, принцип работы и уязвимости метода
1.2. Обработка коэффициентов для ключа и вычисление переменных
1.3. Обработка входящего текста и кодирование
1.4. Обработка закодированного текста и раскодирование
2. Перечень графических материалов:
2.1. Алгоритм работы RSA
2.2. Алгоритм цифровой подписи
2.3. Внешний вид программы
2.4. Программа с сгенеренными ключами
2.5. Получение кодированного текста
2.6. Расшифровка кода

3. Стадии и этапы разработки курсовой работы

3.1. Согласование, утверждение технического задания 5 сем. 4 нед.

3.2. Уточнение и согласование с руководителем курсовой работы состава программной реализации и исходных данных 5 сем. 5 нед.

3.3. Оформление пояснительной записки 5 сем. 15 нед.

3.4. Опытная эксплуатация программного изделия 5 сем. 15 нед.

3.5. Защита курсовой работы 5 сем. 15 нед.

Исполнитель

Содержание

1. Введение

2. Основы криптографических систем

3. Алгоритм создания открытого и секретного ключей

3.1 Алгоритм

3.2 Алгоритм подробнее, теоретическая часть

4. Схема передачи шифрованной информации

4.1 Алгоритм для информации

4.2 Алгоритм для цифровой подписи

5. Пример действия системы

6. Использование RSA в наше время

6.1 Надежность RSA

6.2 Попытки взлома RSA

7. Функция Эйлера

8. Оценка системы RSA

8.1 Преимущества системы RSA

8.2 Недостатки использования RSA

8.3. Уязвимости RSA.

9. Программная часть

9.1 Библиотека RSA

9.1.1 Класс Program.cs

9.1.2 Класс MainForm.cs

9.2 EvklidLib

9.2.1 EvklidLib.cs

9.3 EncodeDecode

9.3.1 Encoder.cs

9.3.2 EncoderBase.cs

9.3.3 IEncoder.cs

9.3.4 Key.cs

10. Пример работы программы

11. Вывод

Приложение А

Приложение Б

Приложение В

Приложение Г

Замечания по выполнению курсовой работы

1. Введение

Опубликованная в ноябре 1976 года статья Уитфилда Диффи и Мартина Хеллмана «Новые направления в криптографии» перевернула представление о криптографических системах, заложив основы криптографии с открытым ключом. Разработанный впоследствии алгоритм Диффи-Хеллмана-Меркле позволял двум сторонам получить общий секретный ключ, используя незащищенный канал связи. Однако этот алгоритм не решал проблему аутентификации (подтверждение подлинности ключа). Без дополнительных средств, один из пользователей не мог быть уверен, что он обменялся ключами именно с тем пользователем, который ему был нужен.

Изучив эту статью, трое ученых Рональд Райвест (Ronald Linn Rivest), Ади Шамир (Adi Shamir) и Леонард Адлеман (Leonard Adleman) из Массачусетского Технологического Института (MIT) приступили к поискам математической функции, которая бы позволяла реализовать сформулированную Уитфилдом Диффи и Мартином Хеллманом модель криптографической системы с открытым ключом. После работы над более чем 40 возможными вариантами, им удалось найти алгоритм, основанный на различии в том, насколько легко находить большие простые числа и насколько сложно раскладывать на множители произведение двух больших простых чисел, получивший впоследствии название RSA. Система была названа по первым буквам фамилий её создателей.

2. Основы криптографических систем

Криптографические системы с открытым ключом используют так называемые однонаправленные функции, которые обладают следующим свойством:

Если известно x, то вычислить f(x) относительно просто.

Если известно y=f(x), то для x нет простого пути вычисления.

Под однонаправленностью понимается не теоретическая однонаправленость, а практическая невозможность вычислить обратное значение, используя современные вычислительные средства, за обозримый интервал времени. Таким образом, передача информации будет совершена, в то время как сама информация не сможет попасть в третьи руки.

В основу криптографической системы с открытым ключом RSA положена задача умножения и разложения составных чисел на простые сомножители, которая является вычислительно однонаправленной задачей.

В криптографической системе с открытым ключом каждый участник располагает как открытым ключом (англ. public key), так и секретным ключом (англ. secret key). Каждый ключ - это часть информации. В криптографической системе RSA каждый ключ состоит из пары целых чисел. Каждый участник создаёт свой открытый и секретный ключ самостоятельно. Секретный ключ каждый из них держит в секрете, а открытые ключи можно сообщать кому угодно или даже публиковать их. Открытый и секретный ключи каждого участника обмена сообщениями образуют «согласованную пару» в том смысле, что они являются взаимно обратными.

Вывод ко второй главе: в данной главе мы ознакомились с историей создания RSA и некоторыми общими положениями, чтобы проще понять тонкости работы с данными методом шифрования.

3. Алгоритм создания открытого и секретного ключей

3.1 Алгоритм

RSA-ключи генерируются следующим образом:

1) Выбираются два случайных простых числа p и q заданного размера (например, 1024 бита каждое).

2) Вычисляется их произведение n = pq, которое называется модулем.

3) Вычисляется значение функции Эйлера от числа n:

4) Выбирается целое число e, такое чтобы взаимно простое со значением функции . Обычно в качестве e берут простые числа, содержащие небольшое количество единичных битов в двоичной записи, например, простые числа Ферма 17, 257, или 65537. Число e называется открытой компонентой. Маленькие значение e (такие как 3) значительно ослабляют безопасность RSA (см. Уязвимости RSA.).

5) Вычисляем число d, которое удволетворяет условию , где k -- некоторое целое число (неважно какое, ибо d будет находиться в секретном ключе). Оно называется секретной экспонентой. Чаще всего считается при помощи расширенного алгоритма Евклида.

6) Пара P = (e,n) публикуется в качестве открытого ключа RSA (англ. RSA public key).

7) Пара S = (d,n) играет роль секретного ключа RSA (англ. RSA private key) и держится в секрете.

3.2 Алгоритм подробнее, теоретическая часть

Для защищенности информации, p и q не должны быть близкими числами, иначе их можно найти, используя метод факторизации Ферма. (Метод факторизации Ферма натурального числа n состоит в поиске таких целых чисел x и y, что x2 ? y2 = n, что ведет к разложению .) Но, так как числа выбираются отдельно, вероятность попадания их в небольшой интервал становится крайне мала (см. Уязвимости RSA.)

Функции Эйлера посвящен отдельный раздел работы (см. Функция Эйлера.)

Расширенный алгоритм Евклида - это частный случай алгоритма Евклида. Этот алгоритм представляет собой схему нахождения ряда чисел, начинающегося с заданных a и b, и последующих, с помощью правила - каждое следующее число, получается как остаток от деления предыдущего на предыдущее:

То есть:

a = bq0 + r1

b = r1q1 + r2

r1 = r2q2 + r3

rk ? 2 = rk ? 1qk ? 1 + rk

rn ? 1 = rnqn

Расширенный алгоритм Евклида рассчитывается по другим формулам:

r1 = a + b( - q0)

r2 = b ? r1...

Другие файлы:

Программная реализация алгоритма Дейкстры (построение цепей минимальной длины)
Теоретическое исследование вопроса и практическое применение. Общие сведения о графах. Алгоритм Дейкстры. Особенности работы в среде. Программная реал...

Проектирование информационной системы ВУЗа
Разработка информационной системы ВУЗа с использованием методики объектно-ориентированного моделирования UML. Анализ требований к системе. Концептуаль...

Повышение скорости выполнения операции деления в системе остаточных классов
Арифметические операции над числами, представленными в позиционных системах счисления. Методы перевода чисел из системы остаточных классов в позиционн...

Программная реализация модуля PlagiatSearch поиска плагиата методами сравнения произвольных текстов
Специфика понятия "плагиат" в программировании. Схема работы модулей инструментальной системы поиска плагиата. Основы поиска в исходных кодах программ...

Программная реализация шифра замены та его дешифрование
Принцип работы и программная реализация однозвучного, одноалфавитного и полиграммного шифра. Шифрование по методу подстановки, замены и кодового слова...