0Pricing
Cryptology Academy · Урок

Сети Фейстеля: строительные блоки современных шифров

Разберитесь в структуре Фейстеля, лежащей в основе DES и многих современных блочных шифров

«Сети Фейстеля: строительные блоки современных шифров» — бесплатный урок Cryptology Academy на CoddyKit. Это урок 4 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Cryptology Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Cryptology Academy содержит 4 уроков всего.

Идея Хорста Фейстеля в IBM

В начале 1970-х годов Хорст Фейстель, работавший в исследовательском подразделении IBM, занимался шифром «Люцифер», когда пришёл к фундаментальной идее: обратимый шифр можно построить с помощью необратимой раундовой функции.

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

Структура разделения и перемешивания

В шифре Фейстеля входной блок разделяется на две равные половины: L (левая) и R (правая). В каждом раунде раундовая функция F применяется к R, результат складывается с L операцией XOR, после чего половины меняются местами.

После n раундов обе половины объединяются для получения шифротекста. Обмен половин гарантирует, что в чередующихся раундах обрабатываются обе половины и тщательно перемешиваются.

Раундовая функция F

Раундовая функция F в сети Фейстеля принимает правую половину и подключ раунда в качестве входных данных и выдаёт результат, который складывается с левой половиной операцией XOR. Важно, что F не обязана быть обратимой.

F может быть сколь угодно сложной: это может быть любая комбинация подстановок, перестановок, операций XOR и модульной арифметики. Чем сложнее и нелинейнее F, тем сильнее шифр, поскольку при расшифровании обращать F не требуется.

Как выполняется расшифрование в сети Фейстеля

Расшифрование в шифре Фейстеля использует в точности ту же структуру, что и шифрование, но применяет подключи раундов в обратном порядке. Это возможно, потому что XOR является собственной обратной операцией: если A XOR B = C, то C XOR B = A.

Поскольку при расшифровании никогда не вызывается F^-1 (обратная функция F), раундовая функция может быть необратимым хешем, таблицей поиска или любой сложной операцией — это не повлияет на обратимость шифра.

Почему сети Фейстеля легко обратить

Математическая элегантность сетей Фейстеля заключается в том, что структура с XOR гарантирует обратимость независимо от того, как работает F. Даже если F является односторонней функцией, такой как SHA-256, общий шифр Фейстеля остаётся обратимым.

Это делает шифры Фейстеля чрезвычайно гибкими. Криптографы могут полностью сосредоточиться на том, чтобы сделать F максимально запутывающей и рассеивающей, зная, что обратимость обеспечивается самой структурой сети.

DES как 16-раундовая сеть Фейстеля

Стандарт шифрования данных (DES), опубликованный в 1977 году, — это 16-раундовый шифр Фейстеля, работающий с блоками размером 64 бита и ключом размером 56 бит. В каждом раунде используется отдельный подключ размером 48 бит, полученный из основного ключа.

Раундовая функция DES включает перестановку расширения, операцию XOR с подключом, восемь S-блоков, обеспечивающих нелинейность, и перестановку с помощью P-блока. В совокупности они обеспечивают запутывание и рассеивание, требуемые принципами проектирования шифров Шеннона.

Блоуфиш и Туфиш

Блоуфиш, разработанный Брюсом Шнайером в 1993 году, — это шифр Фейстеля с переменной длиной ключа от 32 до 448 бит и 16 раундами. В нём используются зависящие от ключа S-блоки, что делает атаки с предварительными вычислениями непрактичными.

Туфиш, финалист конкурса по выбору усовершенствованного стандарта шифрования, развивает идеи Блоуфиша, используя блоки размером 128 бит и 16 раундов. Оба шифра до сих пор не взломаны и применяются, например, в алгоритмах хеширования паролей на основе модифицированного Блоуфиша.

Сбалансированная и несбалансированная сеть Фейстеля

Сбалансированный шифр Фейстеля разделяет блок на две равные половины. В несбалансированной сети Фейстеля половины имеют разный размер, например соотношение 3/4 к 1/4.

Несбалансированные сети Фейстеля могут обеспечивать преимущества в безопасности в определённых условиях и используются в некоторых специализированных шифрах. Семейство шифров CAST использует сбалансированную 64-битную структуру Фейстеля.

Теорема Люби—Ракоффа

В 1988 году Майкл Люби и Чарльз Ракофф доказали, что трёхраундовая сеть Фейстеля с псевдослучайными раундовыми функциями является стойкой псевдослучайной перестановкой (PRP), а четырёхраундовая версия — сильной PRP.

Этот теоретический результат дал сетям Фейстеля прочное доказательное основание безопасности, а не только эмпирическую уверенность. Он подтвердил, что сама структура Фейстеля вносит вклад в безопасность, выходящий за пределы одной раундовой функции.

Фейстель и SPN: почему усовершенствованный стандарт шифрования использует SPN

Сеть подстановок и перестановок (SPN), используемая усовершенствованным стандартом шифрования, применяет подстановку и перестановку ко всему блоку одновременно, а не к половине блока в каждом раунде. Это обеспечивает более быстрое рассеивание.

Усовершенствованный стандарт шифрования достигает полного рассеивания всего за 4 раунда, тогда как структуре Фейстеля DES требуется больше раундов для сопоставимого рассеивания. Структура SPN усовершенствованного стандарта шифрования также лучше соответствует архитектурам современных процессоров с инструкциями SIMD.

Доказательства безопасности и модель случайного оракула

Теорема Люби—Ракоффа рассматривает раундовую функцию F как по-настоящему случайную функцию. На практике F является псевдослучайной функцией — шифром или хешем с ключом, — а не настоящим случайным оракулом.

Этот разрыв между теоретическими доказательствами и практическими реализациями — постоянно повторяющаяся тема криптографии. Доказательства дают уверенность, но основаны на идеализированных моделях. Безопасность в реальном мире также зависит от надёжности реализации и отсутствия уязвимостей побочных каналов.

Викторина по структуре Фейстеля

Проверьте своё понимание построения сетей Фейстеля.

Основные выводы: сети Фейстеля

Сети Фейстеля — это структуры блочных шифров, использующие раундовую функцию, которая не обязана быть обратимой. Расшифрование выполняется с помощью той же структуры в обратном порядке, с подключами, применяемыми в обратной последовательности.

DES, Блоуфиш и Туфиш — шифры Фейстеля. Теорема Люби—Ракоффа предоставляет теоретические гарантии безопасности. Усовершенствованный стандарт шифрования вместо этого использует структуру SPN, обеспечивающую лучшее рассеивание за один раунд.

Часто задаваемые вопросы

Урок «Сети Фейстеля: строительные блоки современных шифров» бесплатный?

Да — полный текст урока «Сети Фейстеля: строительные блоки современных шифров» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Cryptology Academy, подпишись на CoddyKit PRO. Курс Cryptology Academy содержит 4 уроков всего.

Чему я научусь в уроке «Сети Фейстеля: строительные блоки современных шифров»?

Разберитесь в структуре Фейстеля, лежащей в основе DES и многих современных блочных шифров Ты практикуешь Cryptology Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать Cryptology Academy?

Предыдущий опыт не требуется. Cryptology Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 4 из 4.

Сколько времени занимает урок «Сети Фейстеля: строительные блоки современных шифров»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке Cryptology Academy?

Да. Каждый урок Cryptology Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

Все уроки этого курса

  1. Шифр Плейфера
  2. ADFGVX и дробление
  3. Шифры Бофора и бегущего ключа
  4. Сети Фейстеля: строительные блоки современных шифров
← Назад к Cryptology Academy