Русская Википедия:SP-сеть
SP-сеть (Шаблон:Lang-en2, подстановочно-перестановочная сеть) — разновидность блочного шифра, предложенная в 1971 году Хорстом Фейстелем. В простейшем варианте представляет собой «сэндвич» из слоёв двух типов, используемых многократно по очереди. Первый тип слоя — P-слой, состоящий из P-блока большой разрядности, за ним идёт второй тип слоя — S-слой, представляющий собой большое количество S-блоков малой разрядности, потом опять P-слой и т. д. Первым криптографическим алгоритмом на основе SP-сети был «Люцифер» (1971). В настоящее время из алгоритмов на основе SP-сетей широко используется AES (Rijndael). Альтернативой SP-сетям являются сети Фейстеля.
В современных алгоритмах вместо S- и P-блоков используются различные математические или логические функции. Любая двоичная функция может быть сведена к S-блоку, некоторые функции — к P-блоку. Например, к P-блоку сводится циклический сдвиг, сам P-блок является частным случаем S-блока. Такие функции, как правило, легко реализуются в аппаратуре, обеспечивая при этом хорошую криптостойкость.
Принцип работы
Шифр на основе SP-сети получает на вход блок и ключ и совершает несколько чередующихся раундов, состоящих из чередующихся стадий подстановки (Шаблон:Lang-en) и стадий перестановки (Шаблон:Lang-en)[1].
Для достижения безопасности достаточно одного S-блока, но такой блок будет требовать большого объёма памяти. Поэтому используются маленькие S-блоки, смешанные с P-блокамиШаблон:Sfn.
Нелинейная стадия подстановки перемешивает биты ключа с битами открытого текста, создавая конфузию Шеннона. Линейная стадия перестановки распределяет избыточность по всей структуре данных, порождая диффузию[2][3].
S-блок (Шаблон:Lang-en) замещает маленький блок входных бит на другой блок выходных бит. Эта замена должна быть взаимно однозначной, чтобы гарантировать обратимость. Назначение S-блока заключается в нелинейном преобразовании, что препятствует проведению линейного криптоанализа. Одним из свойств S-блока является лавинный эффект, то есть изменение одного бита на входе приводит к изменению всех бит на выходе[4].
P-блок (Шаблон:Lang-en) — перестановка всех бит: блок получает на вход вывод S-блока, меняет местами все биты и подает результат S-блоку следующего раунда. Важным качеством P-блока является возможность распределить вывод одного S-блока между входами как можно больших S-блоков.
Для каждого раунда используется свой, получаемый из первоначального, ключ. Подобный ключ называется раундовым. Он может быть получен как делением первоначального ключа на равные части, так и каким-либо преобразованием всего ключа.
Алгоритмы
Следующие алгоритмы используют SP-сеть:
- 3-Way
- ABC
- AES (Rijndael)
- Akelarre
- Anubis
- ARIA
- BaseKing
- BassOmatic
- BelT
- CRYPTON
- Diamond2
- Grand Cru
- Hierocrypt-L1
- Hierocrypt-3
- KHAZAD
- Lucifer (в первой версии)
- Present
- Rainbow
- SAFER
- SC2000 (также использует сеть Фейстеля)
- SHARK
- Serpent
- SQUARE
- Threefish
- Кузнечик
Примечания
Литература
Шаблон:Симметричные криптоалгоритмы
- ↑ Шаблон:Книга
- ↑ Шаблон:Книга
- ↑ Шаблон:Книга
- ↑ Шаблон:Книга, pages 166—167