Лабораторная работа №21 / LAB_2
.docСанкт-Петербургский государственный электротехнический университет
Кафедра МОЭВМ
Отчет по лабораторной работе №2.
Криптографический алгоритм Serpent
Выполнили:
Студенты гр.3351
Сергеев М.В.
Фонарева С.А.
Санкт-Петербург
2007г.
-
Основные параметры алгоритма Serpent
Название/статус
Serpent. Финалист конкурса на выработку нового стандарта шифрования США.
Время/место разработки
1997? год
Авторы
Росс Андерсон (Ross Anderson)
Эли Бихам (Eli Biham)
Ларс Кнудсен (Lars Knudsen)
Архитектура
Вариант общей подстановочно-перестановочной сети, построенный по схеме KASLT: "key addition-substitution-linear transformation", "прибавление ключевого элемента-подстановка-линейное преобразование" (Схема KASLT является одно из схем SP сетей) .
Параметры
pазмер блока, бит 128
pазмер ключа, бит 1-256 (*)
число раундов 32
pазмер ключевого элемента, бит 128 (размер блока)
число ключевых элементов 33 (на 1 больше числа раундов)
Патент
Не запатентован
Особенности
1. Алгоритм оптимизирован для программной реализации в технике "битовых срезов" (bitslice) и имеет ряд обусловленных этим фактом особенностей: в нем используются начальная и обратная ей конечная битовые перестановки, не влияющие на стойкость шифра и предназначенные для оптимизации его реализации. При реализации в технике "битовых срезов" выполнение этих перестановок в явном виде не требуется, при традиционной реализации - требуется. Кроме того, по той же самой причине в алгоритме используются узлы замен малого размера (4 на 4 бита), так как в рамках указанной техники они реализуются в виде серии логических операций над данными и при большем размере это становится затруднительным.
2. В исходной версии алгоритма (Serpent-0) использовались узлы замен DES, поскольку они достаточно хорошо исследованы. В текущей версии алгоритма (Serpent-1) узлы замен конструируются из узлов замен DES в ходе некоторого детерминированного процесса.
Замечания
(*) В алгоритме может использоваться ключ произвольного размера от 1 (технически) до 256 бит, однако с целью удовлетворить требованиям НИСТ США к новому стандарту возможный размер ключа был ограничен значениями 128, 192 и 256 бит. "Короткие" ключи дополняются одним единичным и нужным количеством нулевых битов до полноразмерного 256-битового ключа. Таким образом никакие два "коротких" ключа не могут быть расширены до одного и того же полноразмерного ключа, и, очевидно, для каждого "короткого" ключа существует эквивалентный ему полноразмерный.
-
Общая характеристика
Serpent (Великобританя, Израиль, Норвегия). Шифр "Змей" - пока последний из совместных проектов англичанина Росса Андерсона и израильтянина Эли Бихама, имеющих в своем активе уже целый зверинец криптоалгоритмов: Bear, Lion, Tiger (медведь, лев, тигр). При разработке Serpent авторы специально пригласили датчанина Ларса Кнудсена (работающего в университете Бергена, Норвегия), знаменитого своими крайне успешными криптоаналитическими работами по вскрытию блочных шифров, чтобы он выявил все возможные слабые места в стойкости нового алгоритма. Поскольку и сам Бихам - соавтор метода дифференциального анализа, лежащего в основе современных методов вскрытия блочных шифров, то в результате такого сотрудничества появился чрезвычайно стойкий алгоритм. "Ультраконсервативный по запасу прочности", как охарактеризовали его в НИСТ, поскольку создав шифр, противостоящий всем известным на сегодня атакам, разработчики затем удвоили количество его итераций. Тем не менее, для повышения производительности разработчиками предложен специальный метод оптимизации ("bitslice"), изобретенный в свое время Бихамом при оптимизации программных версий шифра DES. Алгоритм Serpent хорошо ложится в аппаратное исполнение и в ограниченные по памяти устройства. Реализующая SP-сеть простая конструкция и консервативный выбор операций существенно упрощают анализ стойкости, а также выбранные операции облегчают защиту от атак на физические реализации шифра.
Алгоритм представляет собой сетей Фейштеля для четырех ветвей смешанного типа : 2 четные ветви изменяют совместно значения нечетных, затем меняются местами. В качестве криптопреобразований используются только исключающее "ИЛИ", табличные подстановки и битовые сдвиги. Алгоритм состоит из 32 раундов. Сами раунды составлены таким образом, что добавление к ветвями материала ключа на первом и последнем раундах образует входное и выходное забеливание.
-
Возможные криптоатаки на алгоритм
Serpent не имеет известных атак безопасности.
-
Работа с программой шифрования
Шифрование:
Вставьте кодируемый текст в поле (1) и ключ в поле (2), нажмите кнопку «Кодировать». Зашифрованный текст появится в поле (3)
Дешифрование:
Вставьте зашифрованный текст в поле (4) ключ в поле (5), нажмите кнопку «Декодировать». Расшифрованный текст появится в поле (6)