RC4

Схема шифрування одного символу відкритого тексту за допомогою 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

Примітки

  1. а б Andrei Popov (February 2015). RFC 7465. Prohibiting RC4 Cipher Suites. Internet Engineering Task Force. Архів оригіналу за 20 лютого 2015. Процитовано 12 серпня 2016.
  2. а б Mark Coppock (Aug 9, 2016). Microsoft deprecates RC4 in both Internet Explorer 11 and Edge. WinBeta. Архів оригіналу за 12 серпня 2016. Процитовано 12 серпня 2016.
  3. BetaFred. Советы по безопасности (Microsoft) 2868725. docs.microsoft.com (ru-ru) . Архів оригіналу за 28 березня 2022. Процитовано 19 травня 2019.

Посилання

  • RSA Security Response to Weaknesses in Key Scheduling Algorithm of RC4
  • Original posting of RC4 algorithm to Cypherpunks mailing list [Архівовано 7 лютого 2008 у Wayback Machine.]
  • A. Klein, Attacks on the RC4 stream cipher, February 27, 2006(post-script формат)
Ця стаття потребує додаткових посилань на джерела для поліпшення її перевірності. Будь ласка, допоможіть удосконалити цю статтю, додавши посилання на надійні (авторитетні) джерела. Зверніться на сторінку обговорення за поясненнями та допоможіть виправити недоліки.
Матеріал без джерел може бути піддано сумніву та вилучено.
(грудень 2015)
  • п
  • о
  • р
Потокові алгоритми шифрування даних : СТРУМОК | A3 | A5 | A8 | MICKEY | RC4 | SEAL | SNOW | VMPC

П:  Портал «Інформаційні технології»


Алгоритми Це незавершена стаття про алгоритми.
Ви можете допомогти проєкту, виправивши або дописавши її.