Алгоритм RSA. Шифрование и дешифрование текстовых сообщений

Ставер Елена Владимировна - магистр физико-математических наук, преподаватель научно-образовательного центра «Информдизайн-8» Белорусского государственного университета. (г.Минск, Республика Беларусь)

Аннотация: Алгоритмы шифрования с открытым ключом зависят от одного ключа для шифрования и другого, связанного с первым, ключа для дешифрования. Эти алгоритмы имеют следующую важную особенность – с точки зрения вычислений нереально определить ключ дешифрования, зная только используемый криптографический алгоритм и ключ шифрования. Для  шифрования данных по открытому ключу,  текст разбивается на блоки, каждый из которых  представляется  в виде числа. Для  дешифрования  сообщения, используя секретный ключ.

Ключевые слова: алгоритм, шифрование, дешифрование, ключ.

Проблемы защиты информации волновали человечество с незапамятных времен. Необходимость защиты информации возникла из потребностей тайной передачи, как военных, так и дипломатических сообщений.  А в современном мире необходимость защиты информации  привлекает все большее внимание как специалистов в области компьютерных систем и сетей, так и многочисленных пользователей современных компьютерных средств, так как создание современных компьютерных систем и появление глобальных компьютерных сетей радикально изменило характер и диапазон проблем защиты информации [1].

Перед тем как обратиться к криптосистеме с открытым ключом, каждая сторона должна генерировать пару ключей. Это означает выполнение следующих задач:
• определение двух простых чисел р и q;
• выбор одного из чисел е или d и вычисление второго.

Сначала рассмотрим процедуру выбора р и q. Ввиду того что значение n = pq будет известно любому потенциальному противнику, то для того, чтобы не допустить возможности нахождения р и q с помощью простого перебора вариантов, эти простые числа должны быть выбраны из достаточно большого множества (т.е. р и q должны быть большими числами) [2]. В то же время метод нахождения больших простых чисел должен быть практически эффективным.

Для проверки того, что числа простые, существует целый ряд тестов. Почти все такие тесты носят вероятностный характер. Это значит, что тест определит только, что данное целое число, вероятно, простое. Несмотря на отсутствие полной уверенности, такие тесты могут выполняться так, чтобы обеспечить уверенность с вероятностью, как угодно близкой к 1.

Процедура проверки простоты данного целого числа n заключается в выполнении ряда вычислений, в которых используется n и некоторое случайно выбранное целое число а. Если n не выдерживает тестирования, то n простым не является [2].

Если n выдерживает одно тестирование, то n может оказаться простым, а может и не быть простым. Если же n успешно проходит целый ряд таких "испытаний" с различными случайно выбранными значениями а, это дает нам большую степень уверенности в том, что n на самом деле является простым числом [2].

Вкратце процедуру выбора простого числа можно представить в следующем виде.
1)    Выбирается нечетное целое число n некоторым случайным образом (например, используя генератор псевдослучайных чисел).
2)    Выбирается целое число а < n некоторым случайным образом.
3)    Выполняется вероятностный тест на простоту, например тест Миллера-Рабина.
4)    Если n выдерживает достаточное число повторных тестов.
Ниже приводится пример работы данного алгоритма:
1)    Выбирается два простых числа, р и q;
2)    Вычисляется n = pq;                                                                    (1)
3)    Вычисляется Ø (п) =(р- 1)(q -1);                                                (2)
4)    Выбирается е, взаимно простое с Ø (n);                                (3)
5)    Определяется такое d, что de = 1 mod Ø (n).                        (4)

Для  шифрования данных по открытому ключу {e,n},  текст разбивается на блоки, каждый из которых  представляется  в виде числа M(i)  и данный текст зашифровать по формуле [3]:

C(i)=(M(I)^e)mod n.       (5)

Для  дешифрования  сообщения, используя секретный ключ {d,n}, вычисляется:

M(i) = (C(i)^d) mod n          (6)

В результате будет получено множество чисел M(i), которые представляют собой исходное сообщение [3].

Список литературы:

1. Шнайер Б. Прикладная криптография. – М: Триумф, 2002. – 816с.
2. Вилльям С. Криптография и защита сетей: принципы и практика. – СПб: Вильямс, 2001. – 672с.
3. Романец Ю.В., Тимофеев П.А., Шаньгин В.Ф. Защита информации в компьютерных системах и сетях. – М: Радио и связь, 2001. – 376с.