Cobra (шифр)

Cobra (шифр)
Cobra
изображение
Создатель:

Кристиан Шнайдер,

Создан:

1996 г.

Опубликован:

13 апреля 1996 г.

Размер ключа:

8-576 бит

Размер блока:

128 бит

Число раундов:

12

Тип:

Сеть Фейстеля

Cobra — алгоритм симметричного блочного шифрования (размер блока 128 бит, ключ длиной до 576 бит), разработанный немецким криптологом Кристианом Шнайдером в качестве первого шифра, имеющего структуру гетерогенной сети Фейстеля (англ. extended Feistel network).

Содержание

Структура

Алгоритм имеет структуру гетерогенной сети Фейстеля. Данная сеть, в отличие от классической, подразумевает использование более чем двух подблоков. Дополнительно, шифр использует несколько наборов зависимых от ключа таблиц подстановки (S-блоков, именуемых автором как англ. S-units) и дополнительную операцию для повышения диффузии.

Cobra - шифр со 128-битным (16-байтным) блоком и переменной длиной ключа. Алгоритм состоит из двух частей: процедуры расширения ключа и процедуры шифрования. Ключ (длиной до 576 бит) расширяется до массива подключей длиной 12464 байта. Шифрование заключается в операции ввода, повторения раундовой функции 12 раз и операции вывода.

Процедура шифрования включает предварительное и последующее ключевое забеливание.

Один раунд расширенной сети Фейстеля в общем случае выглядит следующим образом:

Di = Ai-1
Ci = Di-1 XOR F(D i; K i,c)
Bi = Ci-1 XOR F(C i; K i,b)
Ai = Bi-1 XOR F(B i; K i,a)

Что в случае Cobra выглядит следующим образом:

       A = A XOR W1,1
       B = B XOR W1,2
       C = C XOR W1,3
       D = D XOR W1,4
         for r = 1 to 12
             D' = A
             C' = (D XOR F(D';Pr,3;Sc ))>>>1
             B' = (C XOR F(C';Pr,2;Sb ))>>>1
             A' = (B XOR F(B';Pr,1;Sa ))>>>1
               A = A'
               B = B'
               C = C'
               D = D'
         next r
       A = A XOR W2,1
       B = B XOR W2,2
       C = C XOR W2,3
       D = D XOR W2,4

В процессе расширения ключа генерируются 12 P-Box с тремя 32-битными элементами каждая, 12 S-Box по 256 32-битных элементов каждая, две W-Box по четыре элемента каждая.

F функция является нелинейной подстановкой 32 битного элемента. Здесь A' = (B XOR F(B';Pr,1;Sa))>>>1, что значит A' получается путём циклического сдвига вправо результата сложения по модулю 2 переменной B с выходом F функции, которая имеет B', раундовый подключ Pr,1, первый элемент S Unit, Sa, как выход, где r является текущим раудом.

Cobra128 f function.gif

Таблицы подстановки

Классические шифры на основе сети Фейстеля (к примеру, отечественный стандарт шифрования ГОСТ 28147—89) сильно зависимы от используемой таблицы подстановки, которая и является нелинейной частью алгоритма. Но, как и в алгоритме Blowfish, таблицы подстановки могут быть секретными и зависимыми от ключа. В данном случае, таблицы S-Box генерируются ключевым расписанием, которое является своего рода криптографическим ГПСЧ. В данном случае, естественно, не исключено наличие слабых ключей и генерируемых ими слабых таблиц подстановки. Однако, для решения данной проблемы введена генерация нескольких независимых таблиц и дополнительная операция диффузии. В данном случае, вероятность появления слабого ключа настолько мала, что может не учитываться. Этот тезис особенно верен, а подход практичен при использовании в качестве ключевого материала выхода хэш-функции.

Реализация

Алгоритм, хотя и не получил широкого распространения, был реализован в популярной криптоутилите Blowfish Advanced 97 Маркуса Хана, где использовался его вариант с 64-битным блоком и ключом 256 бит. Затем в следующей редакции утилиты - версии CS была реализована редакция с 128-битным блоком и ключом до 576 бит.

См. также

Ссылки


Wikimedia Foundation. 2010.

Игры ⚽ Поможем написать реферат

Полезное


Смотреть что такое "Cobra (шифр)" в других словарях:

  • Блочный шифр — Общая схема работы блочного шифра Блочный шифр  разновидность симметричного шифра …   Википедия

  • Поточный шифр — это симметричный шифр, в котором каждый символ открытого текста преобразуется в символ шифрованного текста в зависимости не только от используемого ключа, но и от его расположения в потоке открытого текста. Поточный шифр реализует другой подход к …   Википедия

  • Trivium (шифр) — Структура шифра Trivium Trivium  симметричный алгоритм синхронного потокового шифрования, ориентированный, в первую очередь, на аппаратную реализацию с гибким равновесием ме …   Википедия

  • A3 (шифр) — A3  алгоритм, используемый в процессе аутентификации в глобальном цифровом стандарте для мобильной сотовой связи GSM. A3 является, таким образом, элементом системы обеспечения конфиденциальности разговора в GSM наряду с алгоритмами A5 и A8.… …   Википедия

  • A8 (шифр) — A8  алгоритм формирования ключа шифрования, который впоследствии используется для обеспечения конфиденциальности передаваемой по радиоканалу информации в стандарте мобильной сотовой связи GSM. A8 является одним из алгоритмов обеспечения… …   Википедия

  • HPC (шифр) — У этого термина существуют и другие значения, см. HPC. Содержание 1 Общая структура 2 Структура раунда HPC Medium[1][2] …   Википедия

  • SC2000 (шифр) — Эту статью следует викифицировать. Пожалуйста, оформите её согласно правилам оформления статей …   Википедия

  • Шифрование — Шифрование  преобразование информации в целях сокрытия от неавторизованных лиц, с предоставлением, в это же время, авторизованным пользователям доступа к ней. Главным образом, шифрование служит задаче соблюдения конфиденциальности… …   Википедия

  • Cartman — Создатель: Мясников Александр Создан: 2008 г. Опубликован: 2008 г. Размер ключа: 128 x L ≥ 2 бит Размер блока: 128 бит Число раундов: (kw/64)² Тип: собственный (модифицированная …   Википедия

  • RC4 — (англ. Rivest Cipher 4 или англ. Ron’s Code, также известен как ARCFOUR или ARC4 (англ. Alleged RC4))  потоковый шифр, широко применяющийся в различных системах защиты информации в компьютерных сетях (например, в протоколах… …   Википедия


Поделиться ссылкой на выделенное

Прямая ссылка:
Нажмите правой клавишей мыши и выберите «Копировать ссылку»