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 часто використовується для навчання симетричним шифрам та потоковим шифрам завдяки своїй простоті.