RC4 (Rivest Cipher 4) — это потоковый шифр, разработанный Роном Ривестом в 1987 году. Он шифрует данные, генерируя псевдослучайный поток бит (называемый ключевым потоком), который объединяется с данными открытого текста, обычно с использованием операции XOR, для создания зашифрованного текста.
Шифрование: каждый байт открытого текста объединяется с соответствующим байтом из ключевого потока для создания зашифрованного текста.
Расшифровка: тот же ключевой поток используется для выполнения операции XOR над зашифрованным текстом и восстановления исходного открытого текста.
Скорость: RC4 известен своей скоростью и эффективностью, особенно в средах с ограниченными ресурсами.
Простота: он прост в реализации и требует минимальных ресурсов, что делает его подходящим для сред с ограниченной вычислительной мощностью.
Историческое использование: RC4 широко использовался в таких протоколах, как SSL/TLS для безопасной связи и WEP для безопасности беспроводных сетей.
Генерация ключа: секретный ключ (обычно между 40 и 2048 бит) используется для инициализации состояния RC4.
Генерация потока ключей: алгоритм RC4 генерирует псевдослучайный поток ключей на основе ключа.
Шифрование: каждый байт открытого текста подвергается операции XOR с байтом потока ключей, в результате чего получается зашифрованный текст.
Расшифровка: тот же поток ключей используется для операции XOR зашифрованного текста и восстановления исходного открытого текста.
Библиотеки/Инструменты: RC4 поддерживается в различных библиотеках, хотя часто не рекомендуется по соображениям безопасности:
Python: pycryptodome библиотека.
Java: пакет javax.crypto (хотя его использование не рекомендуется в пользу более сильных алгоритмов).
C#: пространство имен System.Security.Cryptography.
Устаревшие системы: при работе со старыми системами, которые все еще используют шифрование RC4 (например, старые реализации SSL/TLS).
Некритические приложения: если вы работаете над проектами, где скорость важнее безопасности, хотя это, как правило, не рекомендуется в пользу более сильных шифров.
Образовательные цели: RC4 часто используется для обучения симметричным шифрам и потоковым шифрам из-за его простоты.