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