Кто владеет информацией — тот владеет миром.

Ротшильд

Пока другие только пытаются понять законы рынка, используй их!

Терморектальный криптоанализTM



Алгоритм SERPENT

Алгоритм SERPENT разработан тремя известнейшими криптологами: Россом Андерсоном, Эли Бихамом и Ларсом Кнудсеном. Каждый из них знаменит своими криптоаналитическими работами, а также разработанными ранее ал-горитмами шифрования (например, широкую известность получили алгоритмы Bear и Lion, разработанные Андерсоном и Бихамом не менее известен алгоритм Square, разработанный авторами алгоритма Rijndael Джоан Деймен и Винсентом Риджменом при участии Ларса Кнудсена). Именно Эли Бихама без преувеличения можно назвать величайшим крипто-аналитиком современности — его авторству (часто в соавторстве с другими специалистами) принадлежит множество работ, посвященных методам вскрытия различных известных алгоритмов шифрования.

Еще до конкурса AES появился алгоритм SERPENT-0, отличающийся от присланного на конкурс алгоритма SERPENT-1 (или просто Serpent) только тем, что в нем были использованы таблицы замен алгоритма DES (в незначительно модифицированном виде). В SERPENT используются уже оригинальные таблицы замен, которые, по словам его авторов, вкупе с незначительным изменением процедуры расширения ключа усилили алгоритм против дифференциального и линейного криптоанализа.

Рассмотрим здесь именно тот алгоритм SERPENT, который был прислан на конкурс AES и стал одним из его финалистов.

Структура алгоритма
Алгоритм SERPENT представляет собой SP-сеть, в которой блок данных в процессе шифрования разбивается на 4 субблока по 32 бита. Функция раунда весьма проста. Перечислим ее действия:

Наложение 128-битного ключа раунда побитовой логической операцией исключающее «или» (XOR).

Табличная замена. Обрабатываемый 128-битный блок данных разбивается на 32 фрагмента по 4 бита, над каждым из которых выполняется табличная замена 4x4 битов. Полученный результат объединяется обратно в 128-битный блок.
В каждом раунде используется одна и та же таблица; всего же в алгоритме определены 8 таблиц замен 50...57 , которые циклически используются в 32 раундах шифрования.

Ячейки таблицы содержат выходные значения; входное значение определяет требуемый номер столбца. Например, таблица 50 меняет 0 на 3, 1 на 8 и т. д. Таблицы замен алгоритма SERPENT определенным образом сгенерированы из таблиц алгоритма DES. В спецификации алгоритма приведен псевдокод, использованный для генерации таблиц S0...S7.

Каждая ячейка таблицы соответствует биту выходного значения (от 0 до 127); в ячейке перечислены входные биты, применение к которым операции XOR дает выходное значение.

Основным критерием при разработке линейного преобразования было максимальное ускорение влияния каждого бита входного значения и ключа шифрования на каждый бит шифртекста. Как пишут авторы алгоритма, такое влияние достигается уже после трех раундов алгоритма SERPENT.

Расшифровывание
Расшифровывание производится выполнением обратных операций в обратной последовательности. В частности, вместо таблиц замен S0...S7 применяются в обратной последовательности инверсные таблицы замен InvS0...InvS7.

Аналогичным образом вместо «прямого» линейного преобразования используется обратное (принцип действия обратного преобразования аналогичен прямому и описан выше).

Процедура расширения ключа
Согласно требованиям конкурса AES, алгоритм SERPENT поддерживает три размера ключа шифрования: 128, 192 и 256 битов. Однако фактически ключ алгоритма SERPENT может иметь произвольный размер, меньший 256. Такой «неполный» ключ перед выполнением его расширения дополняется по следующему правилу:

Ключ дополняется одним единичным битом справа.

Затем ключ дополняется справа нулевыми битами до достижения 256-битного размера.

Криптостойкость алгоритма
В процессе исследований эксперты не обнаружили каких-либо криптоанали-тических атак на полнораундовую версию алгоритма SERPENT. Это справедливо и в отношении остальных алгоритмов — финалистов конкурса AES. Однако данные алгоритмы значительно различаются по своим характеристикам.

По материалам книги Сергея Панасенко «Алгоритмы шифрования»

Остапенко Денис aka Sharp, 2006

Соглашение о приватности информации

 

Hosted by uCoz