|
1
|
2
|
3
|
4
|
5
|
7
|
8
|
9
|
10
|
11
|
12
|
p
|
11
|
11
|
11
|
11
|
23
|
7
|
29
|
17
|
19
|
7
|
13
|
19
|
q
|
17
|
23
|
13
|
17
|
23
|
7
|
7
|
7
|
13
|
23
|
11
|
Зашифровать с помощью открытого ключа напарника (n, e) сообщение,
состоящее из первых букв собственной фамилии, имени и отчества и передать его
адресату.
Получив от напарника зашифрованное сообщение, расшифровать его, используя
собственный секретный ключ.
Используя программную реализацию алгоритма RSA, с помощью компьютера
проверить правильность результатов, полученных при шифровании и расшифровании
сообщений, используемых в пункте 2.3.2.
Вычислить цифровую подпись открытого сообщения, передаваемого в п. 2.3.2.
Для этого использовать экспоненту расшифрования, определенную в пункте 2.3.1, и
программу, реализующую алгоритм RSA на компьютере.
Проверить полученную в п.2.3.5 цифровую подпись, используя экспоненту
расшифрования и программу, реализующую алгоритм RSA.
Наиболее важной частью алгоритма RSA, как и других алгоритмов с открытым
ключом, является процесс создания пары открытый/секретный ключи. В RSA он
состоит из следующих шагов.
1. Согласно номеру компьютера выберите значения двух секретных
простых чисел, p и q, p¹q. Допустим, что p=29, q=7.
2. Вычислите n=p*q=29*7=168.
. Согласно заданной формуле, рассчитайте функцию Эйлера
4. Пользуясь методом подбора, который должен отвечать условию
, рассчитайте значения e, k и d. Открытый (e) и секретный (d) ключи должны быть взаимно
простыми. В нашем случае e=5, k=5, d=101.
Чтобы зашифровать данные открытым ключом (n, e), необходимо:
1. Разбить исходный текст на блоки, каждый из которых может быть
представлен в виде числа M(i)=0, 1, ..., n-1.
Допустим, наше сообщение имеет следующий вид: БШУ. Представим данное
сообщение в виде последовательности чисел, содержащихся в интервале 0…253. Для
этого буквы Б, К и Ж закодируем пятимерными двоичными векторами,
воспользовавшись двоичной записью их порядковых номеров в алфавите:
Б= 2 = (000010), К = 11 (001011), Ж = 7 (011100).
Тогда БКЖ = (000010001011011100). Укладываясь в заданный
интервал 0…252, получаем следующее представление:
М1=000010001=16+1=17
М2=011011100=16+8+4+128+64=220
2. Необходимо зашифровать последовательность чисел по формуле
.
Таким образом,
.
Чтобы
расшифровать эти данные секретным ключом (n, d),
необходимо выполнить следующие вычисления .
Таким
образом,
Возвращаясь к буквенной записи, получаем после расшифрования RSA.
Используя программную реализацию алгоритма RSA версии 1.1.0, с помощью
компьютера проверим правильность результатов, полученных при шифровании и
расшифровании сообщений.
Вводим p, e и q.
Производим расчет.
Рисунок 2.1 - Формирование ключей для шифрования сообщения «RSA»
Рисунок 2.2 - Шифрование сообщения «RSA» без цифровой подписи.
Дешифрование представляет собой обратный процесс. Переходим по вкладке
«Дешифрование» и нажимаем кнопку «Дешифрование». В поле «Открытый текст»
появляется расшифрованное сообщение «RSA».
Рисунок 2.3 - Дешифрование шифрограммы «172 37» без цифровой подписи.
Для шифрования с цифровой подписью в поле «Цифровая подпись» вводим
некоторый текст, который и станет цифровой подписью - «Защита». При этом
необходимо в поле «Секретный ключ» указать значение d. После шифрования, в поле «Шифрограмма» появляется
зашифрованное сообщение с добавленной цифровой подписью.
шифрование криптосистема алгоритм
Рисунок 2.4 - Шифрование сообщения «RSA» с цифровой подписью.
При дешифровании с цифровой подписью необходимо в поле «Открытый ключ»
указать значение е.