Шифрование информации методом RSA (система с
открытым ключом)
Суть их состоит в том, что каждым адресатом
ИС генерируются два ключа, связанные между собой по определенному
правилу. Один
ключ объявляется открытым,
а другой закрытым. Открытый ключ
публикуется и доступен любому, кто желает послать сообщение адресату.
Секретный ключ сохраняется в тайне.
Исходный текст шифруется открытым ключом
адресата и передается ему. Зашифрованный текст в принципе не может
быть расшифрован тем же открытым ключом. Дешифрование сообщение
возможно только с использованием закрытого ключа, который известен
только самому адресату.
Криптографические системы с открытым ключом
используют так называемые необратимые или односторонние функции, которые
обладают следующим свойством: при заданном значении x относительно просто вычислить
значение f(x), однако если y=f(x),
то нет простого пути для вычисления значения x.
Алгоритм метода RSA.
Выбрать два больших простых числа P и Q (необходимо
составить подпрограмму генерации простых чисел)
Простым называется целое
число, большее единицы, единственными множителями которого является 1 и оно
само: оно не делится ни на одно другое число. Два - это
простое число.
Простыми являются и 73, 2521, 2365347734339 и 2 756839
–1
Вычислить общий ключ N=P*Q.Вычислить функцию Эйлера F(N)=(P-1)*(Q-1).
Функцией
Эйлера F(N) называется число положительных целых, меньших N и
простых относительно N.
Выбрать секретный ключ D – взаимно простое с
F(N).
Два числа называются взаимно простыми, если у них нет общих множителей кроме 1. Иными словами, если наибольший общий делитель a и n равен 1. Это
записывается как:НОД(a,n)=1.
Взаимно просты числа 15 и 28.
15 и 27 не являются взаимно простыми, а 13 и 500 - являются. Простое число
взаимно просто со всеми
другими числами, кроме чисел, кратных данному простому числу.
Выбрать открытый ключ E. В качестве такого
числа может быть взято любое число, для которого удовлетворяется
соотношение (E*D) = 1 (mod F(N)) т.е. (E*D) mod F(N) = 1.
Или (E*D) = F(N)*k + 1 для некоторого k.
Для шифровки сообщения
воспользоваться формулой:
M = (C^E) mod F(N), где С – исходный текст, M – зашифрованный текст.
Для расшифровки сообщения воспользуемся
формулой:
C = (M^D) mod
F(N).
Предусмотреть рекурсивное
упрощение, при возведении в большие степени.
Можно воспользоваться
формулой: (a * b) mod n == ((a mod n) *
(b mod n)) mod n
Пример Зашифруем
сообщение «САВ».
Для простоты будем использовать маленькие числа (на практике применяются
гораздо большие).
1.
Выберем p=3 и q=11.
2.
Определим n=3*11=33.
3.
Найдем (p-1)(q-1)=20.
Следовательно, в качестве d, взаимно
простое с 20, например, d=3.
4.
Выберем число
е. В качестве такого числа может быть взято любое число, для которого
удовлетворяется соотношение (е*3) (mod 20) = 1, например 7.
5.
Представим
шифруемое сообщение как последовательность целых чисел с помощью отображения: АSYMBOL
174 \f "Symbol" \s 14®1, ВSYMBOL
174 \f "Symbol" \s 14®2, СSYMBOL
174 \f "Symbol" \s 14®3. Тогда сообщение принимает вид (3,1,2).
Зашифруем сообщение с помощью ключа {7,33}.
ШТ1 = (37)
(mod 33) = 2187 (mod 33) = 9,
ШТ2 = (17)
(mod 33) = 1 (mod 33) = 1,
ШТ3 = (27)
(mod 33) = 128 (mod 33) = 29.
6.
Расшифруем
полученное зашифрованное сообщение (9,1,29) на основе закрытого ключа {3,33}:
ИТ1 = (93)
(mod 33) = 729 (mod 33) = 3,
ИТ2= (13)
(mod 33) = 1 (mod 33) = 1,
ИТ3 = (293)
(mod 33) = 24389 (mod 33) = 2.
More abstracts about the Шифрование информации методом RSA (система с открытым ключом)