RC4
RC4 — потоковий шифр, розроблений Роном Рівестом (анг. Ron Rivest) у 1987 році, коли він працював у американській компанії RSA Security.
З часом було знайдено методи успішної атаки на цей алгоритм і тому зараз він не рекомендується до використання. Підтримка RC4 поступово прибирається з різних криптосистем.[1][2]
Опис
Став поширеним алгоритмом, використаний в таких популярних протоколах як Transport Layer Security (TLS) (для захисту інтернет трафіку) та WEP (для безпеки бездротових мереж). Серед інших виділяється швидкістю роботи та простотою програмної реалізації, але RC4 має вади, які свідчать про недоцільність його використання в новітніх системах. Особливо уразливий в таких випадках, коли:
- початок вихідного потоку ключів не відкидається, що призводить до повторного використання набору ключів;
- використовуються не випадкові або споріднені ключі.
Деякі шляхи використання RC4 можуть зробити криптосистему дуже небезпечною, як наприклад WEP.
Станом на 2013, є припущення, що деякі державні криптологічні агенції можуть мати здатність зламати RC4, навіть коли він використовується в протоколі TLS. Microsoft рекомендує відключити RC4 там, де це можливо[3].
Було доведено, що сучасні атаки на RC4 дозволяють зламати його протягом декількох днів або навіть годин. Тому в лютому 2015 року Internet Engineering Task Force (IETF) запропонувала в документі RFC 7465 припинити застосування RC4 в протоколі та реалізаціях TLS[1].
В серпні 2016 року в оновленні KB3151631 компанія Microsoft припинила використання RC4 в інтернет-браузерах починаючи з Internet Explorer 11 та Microsoft Edge[2].
Реалізація
Наступний псевдокод показує приклад реалізації алгоритму: Виконуємо перестановку чисел таблиці 0-255 за допомогою ключа.
for i from 0 to 255 S[i] := i endfor j := 0 for i from 0 to 255 j := (j + S[i] + key[i mod keylength]) mod 256 swap values of S[i] and S[j] endfor
Виконуємо шифрування, з одночасною зміною таблиці 0-255:
for i from 0 to 255 S[i] := i endfor j := 0 for i from 0 to 255 j := (j + S[i] + key[i mod keylength]) mod 256 swap values of S[i] and S[j] endfor
Примітки
- Andrei Popov (February 2015). RFC 7465. Prohibiting RC4 Cipher Suites. Internet Engineering Task Force.
- Mark Coppock (Aug 9, 2016). Microsoft deprecates RC4 in both Internet Explorer 11 and Edge. WinBeta.
- BetaFred. Советы по безопасности (Microsoft) 2868725. docs.microsoft.com (ru-ru). Процитовано 19 травня 2019.
Посилання
- RSA Security Response to Weaknesses in Key Scheduling Algorithm of RC4
- Original posting of RC4 algorithm to Cypherpunks mailing list
- A. Klein, Attacks on the RC4 stream cipher, February 27, 2006(post-script формат)