SP-сеть (Substitution-Permutation Network) — что это? Принцип работы блочного шифра

“`html

SP-сеть (Substitution–Permutation Network) представляет собой математическую модель и структуру для построения блочных шифров. Она объединяет два ключевых принципа: подстановки (S-boxes) и перестановки (P-boxes), разработанные Хорнетом Сартори в 1970-х годах.

Что такое SP-сеть?

Концепция SP-сети описывает последовательность преобразований, которые применяются к входным данным блочного шифра для обеспечения его секретности. Эти преобразования делятся на два типа:

  • Подстановка (Substitution): Операция, которая заменяет отдельные биты или группы битов другим значением согласно заданному табличному преобразованию.
  • Перестановка (Permutation/Rearrangement): Операция, которая перемешивает биты без изменения их самих, изменяя их порядок в выходной последовательности. Иногда называемая P-boxом.

Идея заключается в том, что блочный шифр должен обеспечивать два противоположных по существу свойства:

  1. Замешательство (Confusion): Сложная математическая связь между любым битом выходного текста и любым битом ключа шифра. Это достигается в первую очередь за счет подстановок.
  2. Переплетение (Diffusion): Быстрое распространение влияния каждого разряда входного открытого текста на все выходные биты, а также противоположное – влияние ключа должно ощущаться по всему блоку. Это достигается за счет перестановок и последующих подстановок.

Принцип работы SP-сети: Подстановка (Substitution)

Подстановочный этап является основным инструментом для создания замешательства. На этом этапе входные данные разбиваются на более мелкие фрагменты, называемые словами или группами битов (например, 4-битными блоками). Каждый из этих фрагментов независимо проходит через подстановочный преобразователь – S-box.

S-box представляет собой табличное соответствие между входным и выходным состояниям. Например, стандартный 4-битовый S-box имеет вход с 16 возможными комбинациями битов (от 0000 до 1111) и выход, который также представлен 4-битовой комбинацией, но для каждой входной есть уникальное выходное значение согласно таблице. Таблица может быть нелинейной, что делает обратное восстановление исходных данных из выходного значения крайне сложным.

Рассмотрим простой пример 4-битового S-box:


Простой 4-битовый S-box
Вход (Hex) A B C D
0-9 (0x0 – 0x9) Выход: A’B’C’D’

Преимущество S-box заключается в его способности усложнить связь между отдельными битами. Каждый входной блок картируется на выходной блок независимо от других частей данных, что создает нелинейность и повышает устойчивость к линейному криптоанализу.

Принцип работы SP-сети: Перестановка (Permutation/Rearrangement)

Перестановочный этап, или P-box, отвечает за создание переплетения. Он работает с выходом подстановки и перемешивает его биты в определенном порядке.

Для этого используется таблица перестановки (P-table) – двумерная структура данных, которая содержит информацию о том, сколько раз каждый входной бит должен попасть в каждый выходной. Таблица может быть представлена следующим образом:

Пример 8-битового P-box для 4-битовой подстановки (после 32 S-box применений на каждом шаге):


P-table (Пример)

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

Общая структура SP-сети

Блок шифрования в SP-сетре проходит через несколько раундов. Каждый раунд последовательно выполняет два основных действия:

  1. Подстановка (S-box): Входной блок данных разбивается на n S-box, каждый из которых независимо преобразует свою часть.
  2. Перестановка (P-box): Результаты подстановки перемешиваются согласно P-table. Это может включать пересечение выходных битов и их распределение по новому порядку перед следующим раундом.

После завершения всех раундов, независимо от того, является ли шифр самобалансирующимся или нет, добавляется финальная подстановка (обычно соответствует S-box). Это гарантирует замешательство даже на последнем этапе.

Также может использоваться принцип обратимости: каждое преобразование в SP-сети должно быть обратимым. Это ключевая особенность, поскольку шифр должен обеспечивать возможность расшифровки с тем же секретным ключом (или его производными). Композиция подстановок и перестановок также должна сохранять свойство обратимости.

Хотя SP-сеть является теоретической моделью, многие современные блочные шифры используют её концепции. Например, алгоритм AES (Rijndael) содержит подстановку (S-box), которая используется на каждом раунде, и сложную линейную перестановку в начале и конце каждого раунда.

“`


Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *