Скачиваний:
31
Добавлен:
01.05.2014
Размер:
91.14 Кб
Скачать

Санкт-Петербургский государственный электротехнический университет

Кафедра МОЭВМ

Отчет по лабораторной работе №2.

Криптографический алгоритм Serpent

Выполнили:

Студенты гр.3351

Сергеев М.В.

Фонарева С.А.

Санкт-Петербург

2007г.

  1. Основные параметры алгоритма 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-битового ключа. Таким образом никакие два "коротких" ключа не могут быть расширены до одного и того же полноразмерного ключа, и, очевидно, для каждого "короткого" ключа существует эквивалентный ему полноразмерный.

  1. Общая характеристика

Serpent (Великобританя, Израиль, Норвегия). Шифр "Змей" - пока последний из совместных проектов англичанина Росса Андерсона и израильтянина Эли Бихама, имеющих в своем активе уже целый зверинец криптоалгоритмов: Bear, Lion, Tiger (медведь, лев, тигр). При разработке Serpent авторы специально пригласили датчанина Ларса Кнудсена (работающего в университете Бергена, Норвегия), знаменитого своими крайне успешными криптоаналитическими работами по вскрытию блочных шифров, чтобы он выявил все возможные слабые места в стойкости нового алгоритма. Поскольку и сам Бихам - соавтор метода дифференциального анализа, лежащего в основе современных методов вскрытия блочных шифров, то в результате такого сотрудничества появился чрезвычайно стойкий алгоритм. "Ультраконсервативный по запасу прочности", как охарактеризовали его в НИСТ, поскольку создав шифр, противостоящий всем известным на сегодня атакам, разработчики затем удвоили количество его итераций. Тем не менее, для повышения производительности разработчиками предложен специальный метод оптимизации ("bitslice"), изобретенный в свое время Бихамом при оптимизации программных версий шифра DES. Алгоритм Serpent хорошо ложится в аппаратное исполнение и в ограниченные по памяти устройства. Реализующая SP-сеть простая конструкция и консервативный выбор операций существенно упрощают анализ стойкости, а также выбранные операции облегчают защиту от атак на физические реализации шифра.

Алгоритм представляет собой сетей Фейштеля для четырех ветвей смешанного типа : 2 четные ветви изменяют совместно значения нечетных, затем меняются местами. В качестве криптопреобразований используются только исключающее "ИЛИ", табличные подстановки и битовые сдвиги. Алгоритм состоит из 32 раундов. Сами раунды составлены таким образом, что добавление к ветвями материала ключа на первом и последнем раундах образует входное и выходное забеливание.

  1. Возможные криптоатаки на алгоритм

Serpent не имеет известных атак безопасности.

  1. Работа с программой шифрования

Шифрование:

Вставьте кодируемый текст в поле (1) и ключ в поле (2), нажмите кнопку «Кодировать». Зашифрованный текст появится в поле (3)

Дешифрование:

Вставьте зашифрованный текст в поле (4) ключ в поле (5), нажмите кнопку «Декодировать». Расшифрованный текст появится в поле (6)

3

Соседние файлы в папке Лабораторная работа №21