Человек часто стремится к конфиденциальности в частной и деловой жизни. Защитить информацию на домашнем компьютере, в офисе, на сервере, в любой компьютерной сети призвано шифрование. RSA – самый распространенный алгоритм шифрования, применяющийся в большинстве систем кодирования, поэтому будет полезно знать, как он работает.
Что такое RSA
RSA – алгоритм шифрования информации, названный по первым буквам фамилий его изобретателей. Он использует большие простые числа, которые находятся сравнительно просто. Чтобы разложить на множители произведение этих чисел, то есть решить обратную функцию, требуются огромные вычислительные ресурсы или нереальный отрезок времени. Такое свойство оказалось лучшей основой для создания систем защиты конфиденциальных материалов и для продуцирования цифровой подписи. Суть алгоритма состоит в создании 1 открытого ключа на одном конце коммутативной цепочки и 1 закрытого на противоположном. Длина ключа варьируется от 1024 до 2048 бит. Этого достаточно для сохранения приватности сообщений.
Есть сведения, что в 1989 г. Метод шифрования RSA уже использовался в сети интернет. В 1990 г. министерство обороны США взяло на вооружение этот алгоритм как инструмент шифрования. На данный момент алгоритм широко используется в программных продуктах государственных и коммерческих учреждений.
Криптосистема (система шифрования) RSA входит в состав:
- операционных систем Microsoft, Apple;
- основных протоколов для защищенных соединений Internet (например: SSL, IKE/IPSEC, S/MIME и S/WAN).
TLS/SSL (transport layer security ) – протокол защиты транспортного уровня группы SSL применяют:
- в веб-браузерах;
- в IP-телефонии;
- в работе с электронной почтой;
- при обмене мгновенными сообщениями.
При помощи RSA-технологии он исключает возможность несанкционированного доступа к пакетам передаваемых данных.
Стандарт S/MIME поддерживается большинством почтовых программ. Он использует RSA для удостоверения подлинности зарегистрированного лица и для обеспечения безопасности передаваемых сообщений.
IKE (Internet Key Exchange), стандартный протокол группы протоколов IPsec обеспечивает конфиденциальность взаимодействий в частных сетях. С его помощью генерируются ключи для обмена сообщениями.
SWAN (структурированная беспроводная сеть) – это технология, позволяющая обслужить сотни пользователей на обширной территории. Происходит это путем включения их беспроводных сетей в глобальную проводную сеть.
Главный плюс RSA-технологии – при помощи открытого ключа и алгоритма шифрования невозможно прочитать видоизмененное сообщение. Для этого требуется закрытый ключ, который есть только у адресата.
Существенный недостаток заключается в медленном шифровании из-за громоздкости вычислительных операций. 30 кбит/с на процессоре 2,30 ГГц при 512-битном ключе. Выше говорилось, что для полной гарантии безопасности шифрования требуется комбинация в 2 раза длиннее. Поэтому системы с не самым высоким уровнем защиты шифруют сообщение, следуя симметричным алгоритмам (1 ключ для кодирования и раскодирования) с более высокой производительностью, но временный (сеансовый) ключ шифруется RSA-алгоритмом.
Длина ключа шифрования увеличивается и будет увеличиваться все быстрее, либо система перестанет удовлетворять требованиям безопасности. Это вызвано быстрым ростом мощности процессоров и достижениями математиков в функциональном анализе.
Как работает
Будет рассмотрена схема функционирования алгоритма в задаче обеспечения конфиденциальности передаваемых данных.
Подготовка ключей
Нужно сгенерировать открытый и закрытый ключи:
- Берутся два простых числа.
- Вычисляется их произведение n.
- Рассчитывается функция Эйлера для этих двух простых чисел.
- Выбирается простое число е, меньшее, чем значение функции Эйлера и не имеющее с ней общих делителей, кроме 1. Чем больше е, тем надежнее шифрование.
- Пара {e, n} — открытый ключ.
- Если остаток от деления произведения d×e на функцию Эйлера равен 1, то d может быть закрытым ключом. Таких чисел много для каждой выбранной вначале пары простых. Останавливаются на одном.
- Пара {d, n} – закрытый.
Шифрование
На одном конце невидимого пути следования информации есть сообщение и автоматически сгенерированный открытый ключ {e, n}.
До того, как сообщение Е пользователя выйдет на просторы интернета или локальной сети, оно шифруется.
Единственное условие: Е<n.
Остаток от деления Ее/n – закодированное сообщение Q.
Расшифровка
До того, как пользователь на другом конце связи увидит сообщение, оно преображается в читабельный вид.
Дешифратор находит остаток от деления Qd/n, который и оказывается данными Е.
Пользователь читает сообщение, не задумываясь, какие оно претерпевало метаморфозы.
Сила алгоритма RSA в том, что произведение двух очень больших простых чисел трудно разложить на множители. Именно эти числа и могут дать в руки злопыхателей ключи к разгадке. На практике разгадать еще труднее благодаря тому, что длинные сообщения разбиваются на блоки, к ним добавляются для запутывания случайные приставки, часто меняются дополнительные ключи, применяются другие ухищрения.
Пример использования алгоритма RSA
В приложении PGP (Pretty Good Privacy) для усиления защиты сообщения используется сеансовый ключ, который зашифровывается открытым ключом получателя из алгоритма цифровой подписи RSA. Каждому имени пользователя или адресу электронной почты сопоставляется свой открытый электронный ключ, позволяющий идентифицировать клиента. Действие каждого типа ключа может заканчиваться в заданное время или при прочих условиях. Сеансовые, как правило, уничтожаются сразу после прерывания соединения. Закрытый ключ по RSA требуется для создания цифровой подписи отправителя. Поводом для создания PGP была необходимость защиты отправлений электронной почты. Ныне программа шифрует:
- данные на запоминающих устройствах;
- сессии программ мгновенного обмена сообщениями;
- HTTP-запросы и ответы на стороне сервера и пользователя;
- сеансы передачи пакетов файлов.
Системы шифрования с применением алгоритма RSA эксплуатируют 500 миллионов пользователей во всех уголках планеты. И это число постоянно растет, доказывая преимущества этой системы кодирования.