Интернет магазин китайских планшетных компьютеров



Компьютеры - RC4 - Описание алгоритма

14 июня 2011


Оглавление:
1. RC4
2. Описание алгоритма
3. Безопасность
4. Реализация



Генератор ключевого потока RC4

Ядро алгоритма состоит из функции генерации ключевого потока. Эта функция генерирует последовательность битов, которая затем объединяется с открытым текстом посредством суммирования по модулю два. Так получается шифрограмма:

c_i = m_i \oplus k_i.

Расшифровка заключается в регенерации этого ключевого потока и сложении его и шифрограммы по модулю два. В силу свойств суммирования по модулю два на выходе мы получим исходный незашифрованный текст:

m_i = c_i \oplus k_i = \oplus k_i

Другая главная часть алгоритма — функция инициализации, которая использует ключ переменной длины для создания начального состояния генератора ключевого потока.

RC4 — фактически класс алгоритмов, определяемых размером его блока. Этот параметр n является размером слова для алгоритма. Обычно, n = 8, но в целях анализа можно уменьшить его. Однако для повышения безопасности необходимо увеличить эту величину. Внутреннее состояние RC4 представляется в виде массива слов размером 2 и двух счетчиков, каждый размером в одно слово. Массив известен как S-бокс, и далее будет обозначаться как S. Он всегда содержит перестановку 2 возможных значений слова. Два счетчика обозначены через i и j.

Алгоритм инициализации RC4 приведен ниже. Этот алгоритм также называется алгоритмом ключевого расписания. Этот алгоритм использует ключ, сохраненный в Key, и имеющий длину L байт. Инициализация начинается с заполнения массива S, далее этот массив перемешивается путем перестановок, определяемых ключом. Так как только одно действие выполняется над S, то должно выполняться утверждение, что S всегда содержит все значения кодового слова.

Начальное заполнение массива: 
  for i = 0 to 2 − 1
    S = i
Скремблирование: 
  j = 0
  for i = 0 to 2 − 1
    j = mod 2 
Перестановка

Генератор ключевого потока RC4 переставляет значения, хранящиеся в S, и каждый раз выбирает различное значение из S в качестве результата. В одном цикле RC4 определяется одно n-битное слово K из ключевого потока, которое в последующем суммируется с исходным текстом для получения зашифрованного текста. Эта часть алгоритма называется генератором псевдослучайной последовательности.

Инициализация: 
  i = 0
  j = 0
Цикл генерации: 
  i = mod 2
  j = mod 2
  Перестановка
  Результат: K = S


Просмотров: 4673


<<< Rabbit
RC5 >>>