"Электронная цифровая подпись. ЭЦП на основе RSA"
Цель:
Выработать у студента умения и навыки генерации и проверки ЭЦП на основе алгоритма RSA.
Задание.
1. Ознакомиться с теоретическими сведениями о ЭЦП
2. Выполнить программную реализацию генерации ЭЦП и проверки ЭЦП на любом алгоритмическом языке .
3. Протестировать работу программы.
4. Оформить отчёт.
Результат выполнения практической работы должен включать:
1. Отчёт о выполненной лабораторной работе в печатном виде
2. Работоспособную программную реализацию поставленной задачи на любом языке программирования(exe-файл)+исходный код программы
Отчёт о выполненной практической работы должен включать:
1. Титульный лист с указанием номера и темы практической работы
2. Постановку задачи
3. Теоретический материал по теме практического задания
4. Исходные данные, которые были применены для выполнения поставленной задачи
5. Скриншоты работы программы
6. Исходный текст программы
7. Результаты работы программы
8. Выводы
Программа должна выполнят следующее:
1. Используя клиент серверную технологию разработать 2 приложения:
a. В 1 приложении(Подписант) должны выполняться следующие действия –
i. генерация начальных параметров(пары открытый/закрытый ключ и модуля N)
ii. Пересылка пары открытый ключ/модуль отправителю N
iii. Генерация ЭЦП
iv. Пересылка файла вместе с ЭЦП
b. Во 2 приложении(Верификатор) должны выполняться следующие действия
i. отправка запроса на получение открытого ключа отправителя
ii. получение файла
iii. проверка ЭЦП в 2 этапа:.
1. Проверить сначала, что хеш расшифровался нормально, то есть его длина не должна превышать 32 символам и индексы расшифрованных символов не должны превышать индекса самого последнего символа в алфавите. Если это выполняется то перейти к следующему этапу проверки, иначе выдать ошибку о том, что хеш поврежден и отправить отправителю запрос о повторной передачи ЭЦП с файлом
2. Если проверка прошла успешно, то выдать сообщение, что файл истинный. Иначе выдать сообщении, что файл искажен и отправить отправителю запрос о повторной передачи ЭЦП с файлом
c. Для генерации ЭЦП использовать алгоритм RSA и хеш-функцию MD5
d. При реализации данной практической работы нужно использовать программы или библиотеки, разработанные на Практических работах №5 и №6
e. При перенумеровывании символов исходного алфавита не использовать индексы 0 и 1.
f. При генерации ЭЦП например если символам abc поставлены в соответствие числа 2 3 4, то вместо того, чтобы отдельно шифровать эти числа , мы их конкатенируем в одно число 234 и уже его шифруем. Только необходимо следить, чтобы полученное число было меньше модуля N
g. Исходный алфавит состоит из цифр и заглавных английских букв от A..F
h. Для RSA использовать следующие алгоритм генерации начальных параметров:
i. Найти все простые числа из промежутка [A, B] из Таблицы 1 и занести их в массив, а также сохранить в файл 'prime.txt'
ii. Выбрать случайным образом число P, число Q брать следующее число идущее в массиве за P
iii. Подсчитать модуль N
iv. Выбрать 100 открытых ключей в промежутке [N/2, N]
Варианты заданий
Таблица 1.
№ п/п |
A |
B |
1 |
10000 |
15000 |
2 |
10500 |
16000 |
3 |
11000 |
17500 |
4 |
11500 |
18000 |
5 |
12000 |
18500 |
6 |
12500 |
20000 |
7 |
13000 |
21000 |
8 |
13500 |
21500 |
9 |
14000 |
22000 |
10 |
14500 |
22500 |
11 |
15000 |
23000 |
12 |
16000 |
23500 |
13 |
16500 |
24000 |
14 |
17500 |
25000 |
15 |
18500 |
25500 |
16 |
19500 |
26000 |
17 |
20000 |
27000 |
18 |
21000 |
27500 |
19 |
22500 |
28000 |
20 |
23000 |
28500 |
21 |
24000 |
29000 |
22 |
25000 |
30000 |
23 |
25500 |
30500 |
24 |
26000 |
31000 |
25 |
27000 |
31500 |
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.