Анализ криптостойкости методов защиты информации в операционных системах Microsoft Window 9x — страница 9

  • Просмотров 11341
  • Скачиваний 319
  • Размер файла 280
    Кб

данных, с "переменным" числом. • простотой и легкостью выполнения. В течение семи лет этот алгоритм был фирменным секретом и детали о его конструкции предоставлялись только после подписания договора о неразглашении, но в сентябре 1994 года кто-то анонимно распространил исходный код алгоритма через Internet. Пользователи Сети, имеющие легальные криптосредства фирмы RSA, реализующие RC4, подтвердили совместимость кода с

криптопрограммой. В настоящее время алгоритм RC4 реализован в десятках коммерческих криптографических продуктов, включая Lotus Notes, Apple Computer's AOCE, Oracle Secure SQL, а также является частью спецификации стандарта сотовой связи CDPD. Криптогенератор функционирует независимо от открытого текста. Генератор имеет подстановочную таблицу (S-бокс 8 х 8): S0, S1, . . ., S255. Входами генератора являются замененные по подстановке числа от 0 до 255, и эта

подстановка является функцией от ключа изменяемой длины. Генератор имеет два счетчика i и j, инициализируемых нулевым значением. Для генерации случайного байта гаммы выполняются следующие операции: i = (i+1) mod 256 j = (j+Si) mod 256 swap (Si, Sj) t = (Si+Sj) mod 256 K = St Байт K складывается операцией XOR с открытым текстом для выработки шифротекста, либо с шифротекстом для получения байта открытого текста. Шифрование происходит весьма быстро - примерно в 10

раз быстрее DES-алгоритма. Инициализация S-бокса столь же проста. На первом шаге он заполняется линейно: S0 = 0, S1 = 1, . . ., S255 = 255. Затем еще один 256-байтный массив полностью заполняется ключом, для чего ключ повторяется соответствующее число раз в зависимости от длины: K0, K1, . . ., K255. Индекс j обнуляется. Затем: for i=0 to 255 j = (j+Si+Ki) mod 256 swap (Si , Sj) Схема показывает, что RC4 может принимать примерно 21700 (256! * 2562) возможных состояний. S-бох медленно

изменяется в процессе работы: параметр i обеспечивает изменение каждого элемента, а j отвечает за то, чтобы эти элементы изменялись случайным образом. Фактически, RC4 представляет собой семейство алгоритмов, задаваемых параметром n, который является положительным целым с рекомендованным типичным значением n = 8. Внутреннее состояние генератора RC4 в момент времени t состоит из таблицы St =(St(L))t=0n2 -1, содержащей 2n n-битных слов и из двух

n-битных слов-указателей it и jt. Таким образом, размер внутренней памяти составляет M = n2n + 2n бит. Пусть выходное n-битное слово генератора в момент t обозначается как Zt. Пусть начальные значения i0 = j0 = 0. Тогда функция следующего состояния и функция выхода RC4 для каждого t ≥ 1 задается следующими соотношениями: it = it-1 + 1 jt = jt-1 + St-1(it) St(it) = St-1(jt) St(jt) = St-1(it) Zt = St(St(it) + St(jt)), где все сложения выполняются по модулю 2n. Подразумевается, что все