Асимметричный алгоритм шифрования RSA: практический пример работы
В продолжение теоретической лекции про Асимметричный алгоритм шифрования RSA, где были изложены теоретические аспекты алгоритма, приведём сегодня пример практической работы шифра.
Пример достаточно просто и банальный. В то же время о ярко иллюстриует один из главных приципов алгоритма RSA – ключ шифрования не равен ключу дешифрования.
Пример
Рассмотрим небольшой пpимеp, иллюстрирующий применение алгоритма RSA.
Пусть требуется зашифровать сообщение “САВ”.
Для простоты будем использовать маленькие числа (на практике применяются гораздо большие). Пошагово проследим процессы шифрования и дешифрования.
- Выберем p = 3 и q = 11.
- Определим n = 3 * 11 = 33.
- Найдем (p – 1)(q – 1) = 20. Следовательно, в качестве e можно взять число, взаимно простое с 20, напpимеp, e = 3.
- Выберем число d. В качестве такого числа может быть взято любое число, для которого выполняется соотношение (d * 3) = 1(mod 20), напpимеp 7.
- Представим шифруемое сообщение как последовательность целых чисел с помощью отображения: А -> 1, В-> 2, С-> 3. Тогда исходное открытое сообщение принимает вид M = (3,1,2). Зашифруем сообщение с помощью ключа {7, 33}:
s1 = (3 в степени 7) (mod 33) = 2187 (mod 33) = 9,
s2 = (1 в степени 7) (mod 33) = 1 (mod 33) = 1,
s3 = (2 в степени 7) (mod 33) = 128 (mod 33) = 29.
Зашифрованное сообщение после этого примет вид S = (9, 1, 29).
Расшифруем полученное зашифрованное сообщение (9, 1, 29) на основе секретного ключа {3, 33}:
m1 = (9 в степени 3) (mod 33) = 729 (mod 33) = 3,
m2= (1 в степени 3) (mod 33) = 1 (mod 33) = 1,
m3 = (29 в степени 3) (mod 33) = 24389 (mod 33) = 2.
Как можем видеть, дешифрование шифртекста S = (9, 1, 29) привело к исходному открытому тексту M = (3, 1, 2).
По материалам форума.
Оставить комментарий