Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

Serpent - это блочный шифр с симметричным ключом, который был финалистом конкурса Advanced Encryption Standard (AES) , где он занял второе место после Rijndael . Serpent был разработан Россом Андерсоном , Эли Бихамом и Ларсом Кнудсеном .

Как и другие материалы AES , Serpent имеет размер блока 128 бит и поддерживает размер ключа 128, 192 или 256 бит. [2] шифр представляет собой 32-круглая заместительную-подстановку сеть операционный на блок из четырех 32-битовых слов . В каждом цикле 32 раза параллельно применяется один из восьми 4-битных S-блоков . Serpent был разработан таким образом, что все операции могут выполняться параллельно с использованием 32- битных срезов . Это максимизирует параллелизм, но также позволяет использовать обширную работу по криптоанализу, выполняемую в DES .

Serpent придерживается консервативного подхода к безопасности, отдавая предпочтение большому запасу безопасности: разработчики считали, что 16 раундов достаточно против известных типов атак, но указали 32 раунда как страховку от будущих открытий в криптоанализе. Официальный отчет NIST о конкуренции AES классифицировал Serpent как имеющий высокий запас безопасности наряду с MARS и Twofish , в отличие от адекватного запаса безопасности RC6 и Rijndael (в настоящее время AES). [3] В финальном голосовании Serpent набрал наименьшее количество отрицательных голосов среди финалистов, но занял второе место в целом, потому что у Rijndael было значительно больше положительных голосов, решающим фактором было то, что Rijndael позволил гораздо более эффективную реализацию программного обеспечения. [ необходима цитата]

Алгоритм шифрования Serpent является общественным достоянием и не запатентован . [4] Эталонный код является общественным достоянием, а оптимизированный код находится под лицензией GPL . [5] Нет никаких ограничений или обременений относительно его использования. В результате любой может свободно включать Serpent в свое программное обеспечение (или аппаратные реализации) без уплаты лицензионных сборов.

Rijndael vs. Serpent [ править ]

Rijndaelпредставляет собой сеть линейного преобразования замещения с десятью, двенадцатью или четырнадцатью раундами, в зависимости от размера ключа, и с размерами ключа 128 бит, 192 бит или 256 бит, определяемых независимо. Serpent - это сеть замещения-перестановки, которая имеет тридцать два раунда, а также начальную и конечную перестановки для упрощения оптимизированной реализации. Функция раунда в Rijndael состоит из трех частей: нелинейного слоя, слоя линейного смешивания и слоя XOR с ключевым смешиванием. Функция раунда в Serpent состоит из смешивания ключей XOR, тридцати двух параллельных приложений одного и того же S-блока 4 × 4 и линейного преобразования, за исключением последнего раунда, в котором другое смешивание ключей XOR заменяет линейное преобразование. Нелинейный слой в Rijndael использует S-блок 8 × 8, тогда как Serpent использует восемь различных S-блоков 4 × 4.32 раунда означают, что у Serpent более высокий запас прочности, чем у Rijndael; однако Rijndael с 10 раундами быстрее и проще реализовать для небольших блоков.[6] Таким образом, Rijndael был выбран победителем в конкурсе AES.

Змей-0 против Змея-1 [ править ]

Первоначальный Serpent, Serpent-0, был представлен на 5-м семинаре по быстрому программному шифрованию , но несколько измененная версия Serpent-1 была представлена ​​на конкурс AES. В документе о представлении AES обсуждаются изменения, в том числе различия в расписании ключей.

Безопасность [ править ]

Нападение XSL , если эффективный, ослабит Serpent (хотя и не так сильно , как это ослабит Rijndael , который стал AES ). Однако многие криптоаналитики считают, что, если принять во внимание соображения реализации, XSL-атака будет дороже, чем атака грубой силы . [ необходима цитата ]

В 2000 году в статье Kohno et al. представляет атаку встречей посередине против 6 из 32 раундов Змеи и усиленную атаку бумерангом против 9 из 32 раундов Змеи. [7]

Атака 2001 года Эли Бихамом , Орром Дункельманом и Натаном Келлером представляет собой атаку линейного криптоанализа, которая разбивает 10 из 32 раундов Serpent-128 с 2 118 известными открытыми текстами и 2 89 временем, и 11 раундов Serpent-192/256 с 2 118 известным открытых текстов и 2 187 раз. [8]

В статье 2009 года было отмечено, что нелинейный порядок S-боксов Serpent был не 3, как утверждали дизайнеры. [9]

Атака 2011 года, проведенная Хунцзюном Ву, Хуаксюн Вангом и Фуонг Ха Нгуеном, также использующая линейный криптоанализ, разбивает 11 раундов Serpent-128 с 2 116 известными открытыми текстами, 2 107,5 временем и 2 104 памятью. [1]

В той же статье описаны две атаки, которые разбивают 12 раундов Serpent-256. Первый требует 2 118 известных открытых текстов, 2 228,8 раз и 2 228 памяти. Другая атака требует 2 116 известных открытых текстов и 2 121 памяти, но также требует 2 237,5 времени.

См. Также [ править ]

  • Tiger - хеш-функция тех же авторов

Сноски [ править ]

  1. ^ a b Хуасюн Ван, Хунджун Ву и Фуонг Ха Нгуен (2011). «Улучшение алгоритма 2 в многомерном линейном криптоанализе» (PDF) . Информационная безопасность и конфиденциальность . Конспект лекций по информатике. 6812 . ACISP 2011. С. 61–74. DOI : 10.1007 / 978-3-642-22497-3_5 . ISBN 978-3-642-22496-6.
  2. Росс Дж. Андерсон (23 октября 2006 г.). «Змей: кандидатный блочный шифр для усовершенствованного стандарта шифрования» . Компьютерная лаборатория Кембриджского университета . Проверено 14 января 2013 года .
  3. ^ NIST (2000), Отчет о разработке усовершенствованного стандарта шифрования (AES) (PDF) , NIST
  4. ^ Змея держит ключ к интернет-безопасности - объявлены финалисты всемирного конкурса на шифрование (1999)
  5. ^ SERPENT - Кандидатный блочный шифр для усовершенствованного стандарта шифрования «Змей теперь полностью находится в открытом доступе, и мы не налагаем ограничений на его использование. Об этом было объявлено 21 августа на Первой конференции кандидатов на AES. Оптимизированные реализации в пакет для отправки сейчас находится под Стандартной общественной лицензией (GPL), хотя некоторые комментарии в коде все еще говорят об обратном. Вы можете использовать Serpent для любого приложения. Если вы все же используете его, мы будем признательны, если вы сообщите нам об этом! " (1999)
  6. ^ Брюс Шнайер; Джон Келси; Дуг Уайтинг; Давид Вагнер; Крис Холл. Нильс Фергюсонк; Тадаёши Коно; Майк Стей (2000). «Заключительные комментарии команды Twofish по выбору AES» (PDF) . Цитировать журнал требует |journal=( помощь )
  7. ^ Тадаёши Коно; Джон Келси и Брюс Шнайер (2000). «Предварительный криптоанализ редуцированной змеи» . Цитировать журнал требует |journal=( помощь )
  8. Эли Бихам, Орр Дункельман и Натан Келлер (2001). «Линейный криптоанализ редуцированного круглого змея». FSE 2001. CiteSeerX 10.1.1.78.6148 .  Цитировать журнал требует |journal=( помощь )
  9. ^ Бхупендра Сингх; Лекси Александр; Санджай Бурман (2009). "Об алгебраических связях S-блоков Змеи" (PDF) . Цитировать журнал требует |journal=( помощь )

Дальнейшее чтение [ править ]

  • Андерсон, Росс; Бихам, Эли; Кнудсен, Ларс (1998). «Криптография - 256-битные шифры: эталонная реализация (представление AES)» .
  • Бихам, Эли. «Змей - новое предложение блочного шифра для AES» .
  • Halbfinger, Дэвид М. (5 мая 2008 г.). «В случае Пелликано, уроки навыков прослушивания телефонных разговоров» . Нью-Йорк Таймс .
  • Стаджано, Франк (10 февраля 2006 г.). "Реализация ссылки на змею" . Компьютерная лаборатория Кембриджского университета.

Внешние ссылки [ править ]

  • Официальный веб-сайт
  • 256-битные шифры - Эталонная реализация SERPENT и производный код