![]() КАТЕГОРИИ:
АстрономияБиологияГеографияДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРиторикаСоциологияСпортСтроительствоТехнологияФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника
|
Описание криптосхемыОписание алгоритма дается по работе Йована Голича, представленной на конференции Eurocrypt '97. Пусть Пусть Пусть где g - это 4-значная мажоритарная функция от трех двоичных переменных, такая что (в каждом такте сдвигается по меньшей мере два регистра). Пусть Начальные заполнения РСЛОС определяются в терминах секретного и открытого ключей. Открытый ключ - это известный 22-битовый номер фрейма, генерируемый счетчиком и, следовательно, отличающийся для каждого нового сообщения. Секретный сеансовый ключ длиной 64 бита первым загружается в регистры (начальное заполнение из всех нулей избегается принудительной установкой 1 в выходе последней ячейки), а затем 22-битовый открытый ключ побитно добавляется в последовательности обратной связи каждого регистра в то время, когда они сдвигаются по описанному выше мажоритарному закону. Более строго, если Как уже отмечалось, в системах GSM поточный шифр A5 используется для закрытия связи между абонентом и базовой станцией, так что фактически при связи двух абонентов шифрование происходит дважды. Это дает возможность строить криптоаналитическую атаку с известным открытым текстом (если заручиться небольшой поддержкой "помощника" на базовой станции). Кроме того, следует отметить, что 64-битовый секретный сеансовый ключ генерируется с помощью другого алгоритма, исходя из "основного" (master) ключа, специфического для каждого пользователя, и открытого случайного 128-битового ключа, передаваемого в незащищенной форме с базовой станции на аппарат абонента. Таким образом, успешное вскрытие одного или нескольких сеансовых ключей открывает дверь для криптоаналитических атак на основной ключ пользователя. RC4 RC4 — это поточный шифр с переменным размером ключа, разработанный в 1987 г. Ривестом (R. Rivest) для RSA Data Security, Inc. Алгоритм работает в режиме OFB: поток ключей не зависит от открытого текста. Используется S-блок размером 8×8: S0, S1, S2, …, S255. Элементы представляют собой перестановку чисел от 0 до 255, а перестановка является функцией ключа переменной длины. В алгоритме применяются два счетчика, i и j, с нулевыми начальными значениями. Для генерации случайного байта выполняются следующие вычисления: · i = (i + 1) mod 256; · j = (j + Si) mod 256. · Поменять местами Si и Sj. · t = (Si + Sj) mod 256; · K = St. К используется в операции XOR с открытым текстом для получения шифротекста или в операции XOR с шифротекстом для получения открытого текста. Шифрование выполняется примерно в 10 раз быстрее, чем в DES. Также несложна и инициализация S-блока. Сначала S-блок заполняется по правилу: S0 = 0, S1 = 1, …, S255 = 255. После этого ключ записывается в массив: K0, K1, …, K255. Затем при начальном значении j = 0 в цикле выполняются следующие вычисления: · for i = 0 to 255 do j = (j + Si + Ki) mod 256 · Поменять местами Si и Sj. Компания RSA Data Security, Inc. утверждает, что алгоритм устойчив к дифференциальному и линейному криптоанализу и что он в высокой степени нелинеен. S-блок медленно изменяется при использовании: i и j обеспечивают случайное изменение каждого элемента. RC4 входит в десятки коммерческих продуктов, включая Lotus Notes, AOCE компании Apple Computer и Oracle Secure SQL. Этот алгоритм также является частью спецификации стандарта Сотовой цифровой пакетной передачи данных CDPD (Cellular Digital Packet Data). Алгоритм инициализации RC4 приведен ниже. Этот алгоритм использует ключ, сохраненный в Key, и имеющий длину l байт. Инициализация начинается с заполнения массива S, далее этот массив перемешивается путем перестановок определяемых ключом. Так как только одно действие выполняется над S, то должно выполняться утверждение, что S всегда содержит все значения кодового слова. Генератор ключевого потока RC4 переставляет значения, хранящиеся в S, и каждый раз выбирает различное значение из S в качестве результата. В одном цикле RC4 определяется одно n-битное слово K из ключевого потока, которое в последующем суммируется с исходным текстом для получения зашифрованного текста.
|