Что такое шифрование RC4?

Опубликовано: 31 Января, 2022

RC4 означает Rivest Cipher 4, изобретенный Роном Ривестом в 1987 году для RSA Security. Это потоковые шифры. Потоковые шифры работают с потоком данных побайтно. Потоковый шифр RC4 - один из наиболее широко используемых потоковых шифров из-за его простоты и скорости работы. Это потоковый шифр с переменным размером ключа с побайтно-ориентированными операциями. Он использует либо 64-битные, либо 128-битные размеры ключей. Обычно он используется в таких приложениях, как Secure Socket Layer (SSL), Transport Layer Security (TSL), а также используется в стандарте беспроводной локальной сети IEEE 802.11.

Почему важно шифрование?

Несанкционированный доступ к данным можно предотвратить с помощью шифрования. Если мы выполняем шифрование, третьи лица не смогут получить доступ к данным, которые мы передаем или получаем. Шифрование выполняется с использованием секретного ключа, или мы можем сказать, что с помощью открытого и закрытого ключей. И отправитель, и получатель имеют свой открытый ключ и закрытый ключ, с помощью которого выполняется шифрование простого текста и дешифрование зашифрованного текста.

История шифрования RC4

RC4 был разработан Роном Ривестом в 1987 году. Он работал в RSA Security. Rivest Cipher 4 - официальное название, также известное как Код Рона. Первоначально RC4 был коммерческой тайной, но как только его код стал общественным достоянием, он больше не был коммерческой тайной. Хотя Рон не раскрыл алгоритм RC4 до 2014 года, когда он описал историю RC4 в английской Википедии.

Приложения RC4

RC4 используется в различных приложениях, таких как WEP с 1997 г. и WPA с 2003 г. Мы также находим приложения RC4 в SSL с 1995 г., и он является преемником TLS с 1999 г. RC4 используется в различных приложениях из-за своей простоты, скорости и упрощенная реализация как в программном, так и в аппаратном обеспечении.

Типы RC4

Существуют различные типы RC4, такие как Spritz, RC4A, VMPC и RC4A.

  1. SPRITZ: Spritz можно использовать для создания криптографической хеш-функции, детерминированного генератора случайных битов (DRBG) и алгоритма шифрования, который поддерживает аутентифицированное шифрование со связанными данными (AEAD).
  2. RC4A: Сурадуйти Пол и Барт Пренил предложили вариант RC4, который они назвали RC4A, который сильнее RC4.
  3. VMPC: VMPC - это еще один вариант RC4, который означает изменяемую композицию перестановок.
  4. RC4A +: RC4A + - это модифицированная версия RC4 с более сложным трехфазным расписанием ключей, которое занимает примерно в три раза больше времени, чем RC4, и более сложной функцией вывода, которая выполняет четыре дополнительных поиска в массиве S для каждого выходного байта, что занимает примерно 1,7 раза дольше, чем у базового RC4.

Алгоритм

Алгоритм работает с выбранным пользователем ключом переменной длины (K) от 1 до 256 байтов (от 8 до 2048 бит), обычно от 5 до 16 байтов. Для генерации 256-байтового вектора состояния S используется главный ключ.
Первый шаг - инициализация массива. Это символьный массив размером 256, то есть S [256]. После этого для каждого элемента массива мы инициализируем S [i] значением i.

 Код для инициализации массива:
Char S [256];
int i;
для (я = 0; я <256; я ++)
S [i] = i
Массив будет выглядеть так -
S [] = {0, 1, 2, 3, ------, 254, 255}

После этого мы запустим алгоритм KSA -

KSA собирается использовать секретный ключ для шифрования этого массива. KSA - это простой цикл, в котором у нас есть две переменные i и j. Мы используем эти переменные, чтобы переупорядочить массив. Перестановка массива выполняется с помощью секретного ключа.

 Код для KSA (алгоритм планирования ключей):
int i, j = 0;
для (я = 0; я <256; я ++)
{
j = (j + S [i] + T [i]) mod 256;
Своп (S [i], S [j]);
}

KSA зашифрован, массив S [256] используется для генерации PRGA (алгоритм псевдослучайной генерации). Это и есть настоящий ключевой поток.

 Код для PRGA (алгоритм псевдослучайной генерации):
я = j = 0;
в то время как (правда)
{
i = (i + 1) mod 256;
j = (j + S [i]) mod 256;
Своп (S [i], S [j]);
t = (S [i] + S [j]) mod 256; 
k = S [t]; 
}

Это следующий шаг скремблирования.

Блок-схема RC4

Работа RC4

Процедура шифрования

  1. Пользователь вводит простой текстовый файл и секретный ключ.
  2. Затем механизм шифрования генерирует поток ключей, используя алгоритм KSA и PRGA.
  3. Этот ключевой поток теперь является XOR с простым текстом, это XORing выполняется побайтно для создания зашифрованного текста.
  4. Затем зашифрованный текст отправляется предполагаемому получателю, предполагаемый получатель затем расшифровывает текст, и после расшифровки получатель получает исходный простой текст.

Порядок расшифровки

Расшифровка достигается путем выполнения той же побайтовой операции X-OR над зашифрованным текстом.

Пример: пусть A будет простым текстом, а B будет ключевым потоком (A xor B) xor B = A

Преимущества

  1. Потоковые шифры RC4 просты в использовании.
  2. Скорость работы в RC4 выше по сравнению с другими шифрами.
  3. Потоковые шифры RC4 хороши в кодировании и просты в реализации.
  4. Потоковые шифры RC4 не требуют дополнительной памяти.
  5. Потоковые шифры RC4 реализованы на больших потоках данных.

Недостатки

  • Если RC4 не используется с сильным MAC, шифрование уязвимо для атаки с переворачиванием битов.
  • Потоковые шифры RC4 не обеспечивают аутентификацию.
  • Алгоритм RC4 требует дополнительного анализа перед включением новых систем.
  • Потоковые шифры RC4 не могут быть реализованы на небольших потоках данных.
  • RC4 не может отбросить начало выходного ключевого потока или не может использовать неслучайные или связанные ключи для алгоритма.

Вниманию читателя! Не переставай учиться сейчас. Получите все важные концепции теории CS для собеседований SDE с курсом теории CS по доступной для студентов цене и будьте готовы к отрасли.