Открыть сервис

S-box

S-box (от англ. substitution-box, «блок подстановки») — это базовый компонент симметричных криптографических алгоритмов, выполняющий нелинейное преобразование (подстановку) входного блока данных фиксированной длины в выходной блок той же длины. S-box представляет собой таблицу замены (lookup table), где каждому возможному значению входного слова (обычно 4, 6 или 8 бит) ставится в соответствие уникальное выходное значение. Основное назначение S-box — внесение нелинейности в шифр, что является критически важным для защиты от линейного и дифференциального криптоанализа.

История

Идея использования таблиц подстановки в криптографии восходит к древним шифрам замены, таким как шифр Цезаря. Однако в современном понимании S-box как математический объект впервые был систематически применён в алгоритме DES (Data Encryption Standard), разработанном в 1970-х годах в США. DES использует 8 различных 6-битных на 4-битных S-box (6 бит на входе, 4 бита на выходе), которые были тщательно спроектированы для обеспечения стойкости к дифференциальному криптоанализу. Выбор этих S-box долгое время оставался засекреченным, что порождало подозрения о возможных «закладках» со стороны АНБ.

После стандартизации DES в 1977 году S-box стали обязательным элементом многих блочных шифров. В 1990-х годах, с развитием открытой криптографии, появились алгоритмы с публично обоснованными S-box, например, AES (Rijndael), где используется единственный 8-битный на 8-битный S-box, построенный на основе алгебраических свойств конечного поля GF(2⁸). В 2000-х годах исследования в области S-box сосредоточились на поиске оптимальных таблиц с точки зрения стойкости к различным видам атак, включая алгебраический криптоанализ.

Классификация и виды

S-box классифицируют по нескольким параметрам.

По размеру

  • 4×4 S-box (4 бита на входе, 4 бита на выходе) — используются в лёгких шифрах (например, PRESENT, SKINNY) и в некоторых поточных шифрах. Компактны, но имеют ограниченную нелинейность.
  • 6×4 S-box — классический формат DES. 6-битный вход позволяет вводить дополнительную нелинейность за счёт использования двух битов управления строкой таблицы.
  • 8×8 S-boxстандарт для современных блочных шифров (AES, Serpent, Camellia). Обеспечивает высокую нелинейность при разумном размере таблицы (256 байт).
  • n×m S-box — общий случай, где n > m или n = m. Для криптографической стойкости обычно требуется n ≥ m.

По способу построения

  • Случайные S-box — генерируются с помощью криптографически стойкого генератора случайных чисел. Применяются в некоторых алгоритмах, но требуют тщательной проверки на стойкость.
  • Алгебраические S-box — строятся на основе математических функций, например, взятия обратного элемента в конечном поле (как в AES) или возведения в степень. Обладают предсказуемой структурой, что упрощает анализ.
  • Оптимизированные S-box — получаются в результате компьютерного поиска по заданным критериям (максимальная нелинейность, минимальное дифференциальное распространение). Пример — S-box алгоритма Serpent.
  • Табличные S-box — просто хранятся в виде массива констант. Самый распространённый способ реализации.

Устройство и характеристики

S-box математически представляет собой отображение S: {0,1}ⁿ → {0,1}ᵐ. На практике он реализуется либо как таблица прямого доступа (lookup table) в программном обеспечении, либо как комбинационная логическая схема в аппаратуре.

Ключевые криптографические свойства S-box:

  • Нелинейность — степень отличия S-box от любого аффинного преобразования. Измеряется расстоянием до множества аффинных функций. Чем выше нелинейность, тем сложнее аппроксимировать S-box линейными функциями. Для 8-битного S-box максимальная нелинейность составляет 120.
  • Дифференциальная равномерность — максимальное значение в таблице дифференциального распределения (Differential Distribution Table, DDT). Показывает, насколько равномерно входные разности отображаются в выходные. Чем меньше это значение, тем выше стойкость к дифференциальному криптоанализу. Для 8-битного S-box минимальное достижимое значение — 4.
  • Лавинный эффект — способность S-box изменять выходные биты при изменении одного входного бита. Хороший S-box должен демонстрировать сильный лавинный эффект (SAC — Strict Avalanche Criterion).
  • Алгебраическая степень — степень полиномиального представления S-box над GF(2). Высокая степень затрудняет алгебраические атаки.
  • Отсутствие фиксированных точек — желательно, чтобы S(x) ≠ x для всех x, чтобы избежать тривиальных тождественных преобразований.

Применение

S-box являются неотъемлемой частью большинства симметричных криптоалгоритмов.

Блочные шифры

В блочных шифрах S-box обычно используются в рамках SP-сети (Substitution-Permutation Network) или сети Фейстеля. Например:

  • AES (Rijndael) — использует один 8×8 S-box, применяемый ко всем байтам состояния. S-box построен как S(x) = A(x⁻¹), где x⁻¹ — обратный элемент в GF(2⁸), а A — аффинное преобразование.
  • DES — использует 8 различных 6×4 S-box. Каждый S-box реализован в виде таблицы из 4 строк по 16 столбцов, где строка выбирается двумя внешними битами входа, а столбец — четырьмя внутренними.
  • ГОСТ Р 34.12-2015 (российский стандарт «Кузнечик») — использует 8×8 S-box, построенный на основе алгебраических свойств и оптимизированный для аппаратной реализации.

Поточные шифры

В поточных шифрах S-box применяются для нелинейного преобразования внутреннего состояния. Например, в шифре Salsa20 используется 4×4 S-box на основе сложения и вращения, а в ChaCha — модифицированная версия.

Хеш-функции

Некоторые хеш-функции (например, SHA-3 на основе алгоритма Keccak) используют S-box в своей конструкции. В Keccak применяется 5×5 S-box, построенный на основе операции χ (хи), которая является нелинейным преобразованием.

Криптоанализ

S-box также являются объектом изучения в криптоанализе. Атаки, направленные на слабые S-box, включают:

Примеры известных S-box

  • S-box AES: 8×8, нелинейность 112, дифференциальная равномерность 4. Построен на основе обратного элемента в GF(2⁸) с последующим аффинным преобразованием.
  • S-box Serpent: 8×8, нелинейность 112, дифференциальная равномерность 4. Получен в результате компьютерного поиска с оптимизацией.
  • S-box DES: 6×4, нелинейность варьируется от 0 до 16 (в зависимости от S-box), дифференциальная равномерность до 16. Спроектирован вручную с учётом секретных критериев.
  • S-box «Кузнечик»: 8×8, нелинейность 112, дифференциальная равномерность 4. Описан в российском стандарте ГОСТ Р 34.12-2015.

Интересные факты

  • S-box AES был выбран из-за своей алгебраической простоты, что позволило реализовать его компактно в аппаратуре, но также породило опасения по поводу возможных алгебраических атак, которые, однако, не были реализованы на практике.
  • В 1990 году Эли Бихам и Ади Шамир опубликовали метод дифференциального криптоанализа, который оказался эффективным против DES, если бы его S-box были слабыми. Однако разработчики DES заранее учли этот тип атак, что стало известно только после рассекречивания критериев проектирования.
  • Существуют S-box с «чёрным ходом» (backdoor), которые выглядят случайными, но позволяют злоумышленнику, знающему секрет, легко взламывать шифр. Пример — алгоритм Dual_EC_DRBG (рекомендованный NIST), который содержал уязвимый S-box, позволявший АНБ предсказывать случайные числа.

Критика

Основная критика S-box связана с их «непрозрачностью»: если S-box построен без публичного обоснования, он может содержать скрытые уязвимости. Это привело к требованию открытости и проверяемости криптоалгоритмов. Кроме того, S-box фиксированного размера (например, 8×8) могут быть неоптимальны для лёгких устройств (IoT), где требуется минимизация памяти и вычислительных затрат. В ответ на это разрабатываются лёгкие S-box (4×4) и конструкции на основе нелинейных операций без таблиц (например, ARX-шифры).

Источники

  • Joan Daemen, Vincent Rijmen. The Design of Rijndael: AES — The Advanced Encryption Standard. Springer, 2002.
  • Eli Biham, Adi Shamir. Differential Cryptanalysis of the Data Encryption Standard. Springer, 1993.
  • ГОСТ Р 34.12-2015. «Информационная технология. Криптографическая защита информации. Блочные шифры».
  • Bruce Schneier. Applied Cryptography: Protocols, Algorithms, and Source Code in C. John Wiley & Sons, 1996.
  • Claude Carlet. Boolean Functions for Cryptography and Coding Theory. Cambridge University Press, 2021.

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →