
- •Содержание
- •5.1 Листинг программы с описанием основных переменных и функций.
- •5.2 Результат выполнения программы
- •Текст задания, с указанием номера студента в журнале и соответствующих вариантов задания
- •Краткое описание алгоритмов
- •Шифр Шамира
- •Электронная подпись rsa Введение
- •Алгоритм создания открытого и секретного ключей
- •Шифрование и дешифрование
- •Потоковый шифр rc4
- •Листинг программы с описаниями основных функций и переменных
- •Результаты выполнения программы.
- •Листинг программы с описанием основных переменных и функций.
- •Результаты выполнения программы
- •Реализация алгоритма шифрования и дешифрования сообщения c помощью потокового шифра rc4.
- •Листинг программы с описанием основных переменных и функций.
- •Результат выполнения программы.
- •Электронные подписи
Министерство связи и массовых коммуникаций Российской Федерации
Сибирский государственный университет телекоммуникаций и информатики
Кафедра ВТИТ
Курсовая работа
По дисциплине: «Информатика»
Выполнил: студент 1 курса ФМРМ гр. РМ-13 Соловьёв Роман
Проверил: Рягин Б.А.
Новосибирск
2012г.
Содержание
1. Текст задания, с указанием номера студента в журнале и соответствующих вариантов задания.
2. Краткое описание алгоритмов
2.1 Шифр Шамира.
2.2 Электронная подпись RSA.
2.3 Потоковый шифр RC4.
3. Реализация шифрования и дешифрования сообщения шифром Цезаря на C++.
3.1 Листинг программы с описаниями основных функций и переменных.
3.2 Результаты выполнения программы.
4. Реализация алгоритма создания цифровой подписи RSA и проверки ее подлинности.
4.1 Листинг программы с описанием основных переменных и функций.
4.2 Результат выполнения программы
5. Реализация алгоритма шифрования и дешифрования сообщения c помощью потокового шифра RC4.
5.1 Листинг программы с описанием основных переменных и функций.
5.2 Результат выполнения программы
Текст задания, с указанием номера студента в журнале и соответствующих вариантов задания
1.1. Программно реализовать на языке C++ алгоритм шифрования и дешифрования сообщения c помощью метода в соответствии с вариантом. Номер варианта k определяется по формуле: k=N mod 4, где N=27 – номер студента в журнале.
K=24 mod 4=0;
K=0
Метод шифрования Шифр Шамира
1.2. Программно реализовать на языке C++ алгоритм электронной подписи сообщения и проверки его подлинности c помощью метода в соответствии с вариантом. Номер варианта k определяется по формуле: k=N mod 3, где N=27 – номер студента в журнале.
K=24 mod 3=0
K=0
Электронная подпись RSA
1.3. Программно реализовать на языке C++ алгоритм шифрования и дешифрования сообщения c помощью потокового шифра RC4.
Краткое описание алгоритмов
Шифр Шамира
Шифр Шамира используется для обмена секретными сообщениями по открытому каналу для лиц, не имеющих секретных ключей и защищенных каналов.
Параметры:
A – отправитель, обладает открытым ключом;
B – получатель, обладает секретным ключом;
x – открытый текст;
если
,
тогда x разбивается на
блоки и каждый блок шифруется отдельно;
p – большое простое число (генерацию следует производить в соответствии с п.1.2);
Секретные ключи абонента A:
-
случайное число от 2 до p
– 2, (СA,p-1)=1;
.
Секретные ключи абонента B:
-
случайное число от 2 до p
– 2, (СA,p-1)=1;
.
Протокол Шамира:
;
;
;
;
B
получит на последнем шаге исходный
текст. Действительно,
Электронная подпись rsa Введение
Криптографические системы с открытым ключом используют так называемые односторонние функции, которые обладают следующим свойством:
Если известно
, то
вычислить относительно просто
Если известно
, то для вычисления нет простого (эффективного) пути.
Под односторонностью понимается не теоретическая однонаправленность, а практическая невозможность вычислить обратное значение, используя современные вычислительные средства, за обозримый интервал времени.
В основу криптографической системы с открытым ключом RSA положена сложность задачи факторизации произведения двух больших простых чисел. Для шифрования используется операция возведения в степень по модулю большого числа. Для дешифрования за разумное время (обратной операции) необходимо уметь вычислять функцию Эйлера от данного большого числа, для чего необходимо знать разложения числа на простые множители.
В криптографической системе с открытым ключом каждый участник располагает как открытым ключом (англ. public key), так и закрытым ключом (англ. private key). В криптографической системе RSA каждый ключ состоит из пары целых чисел. Каждый участник создаёт свой открытый и закрытый ключ самостоятельно. Закрытый ключ каждый из них держит в секрете, а открытые ключи можно сообщать кому угодно или даже публиковать их. Открытый и закрытый ключи каждого участника обмена сообщениями в криптосистеме RSA образуют «согласованную пару» в том смысле, что они являются взаимно обратными, т.е.:
сообщения
,
где
—
множество допустимых сообщений.
допустимых
открытого и закрытого ключей
и
соответствующие
функции шифрования
и
расшифрования
,
такие что