RC4

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до: навігація, пошук
Схема шифрування одного символа відкритого тексту за допомогою RC4

RC4 - потоковий шифр, розроблений Роном Рівестом (анг. Ron Rivest) у 1987 році, коли він працював у американській компанії RSA Security. Найбільш широко використовуваний потоковий шифрувальний алгоритм, задіяний в таких популярних протоколах як Transport Layer Security (TLS) (для захисту інтернет трафіку) та WEP (для безпеки бездротових мереж). Серед інших виділяється швидкістю роботи та простотою програмної реалізації, але RC4 має вади, які свідчать про недоцільність його використання в новітніх системах. Особливо уразливий в таких випадках, коли:

  • початок вихідного потоку ключів не відкидаєтья, що призводить до повторного використання набору ключів;
  • використовуються не випадкові фбо споріднені ключі.

Деякі шляхи використання RC4 можуть зробити криптосистему дуже небезпечною, як наприклад WEP.

Станом на 2013, є припущення, що деякі державні криптологічні агенції можуть мати здатність зламати RC4, навіть коли він використовується в протоколі TLS. Microsoft рекомендує відключити RC4 там, де це можливо.

Реалізація[ред.ред. код]

Наступний псевдокод показує приклад реалізації алгоритму: Виконуємо перестановку чисел таблиці 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

Посилання[ред.ред. код]