Sinople — Википедия
Sinople | |
---|---|
Создатель | Филип Пакет |
Создан | 2003 г. |
Размер ключа | 128 бит |
Размер блока | 128 бит |
Число раундов | 64 |
Тип | Несбалансированная Сеть Фейстеля |
Sinople — симметричный блочный криптоалгоритм, построенный на основе несбалансированной «сети Фейстеля». Алгоритм разработан в 2003 году.
Структура шифра
[править | править код]Основные требования к алгоритму при его разработке:
- Возможность программной и аппаратной реализации
- Высокая скорость
- Простота
- Низкие требования к памяти
- Высокий уровень безопасности
Алгоритм основан на 32-разрядных операциях и имеет 64 раунда, среди которых два типа — C и D. D раунды спроектированы для достижения максимальной диффузии, C раунды — для достижения перемешивания. F-функция D раунда использует один из элементов блока данных (D[3]) и текущий подключ (K[r]) для трансформации 3-х элементов блока данных. F-функция C раунда, напротив, использует первые три элемента блока данных и текущий подключ (K[r]) для трансформации последнего элемента блока данных (D[3]). Раунды D-типа выполняются до раундов C-типа. Сложение ключей с данными производится только через таблицы замен. Операции XOR (сложения по модулю 2) обязательно сочетаются с операциями ADD (сложения по модулю 232).
Таблицы замен изначально заимствованы из алгоритма MARS и содержат 512 32-разрядных элементов, однако были жестко проанализированы на предмет усиления.
Ключевое расписание было спроектировано с учетом требований:
- Простота
- Используется та же процедура, что и при зашифровании и расшифровании
- Установка ключа занимает меньше времени, нежели зашифрование
- Исключение эквивалентных ключей
- Исключение слабых ключей
Безопасность
[править | править код]Алгоритм, согласно заявлению авторов, устойчив к линейному и дифференциальному анализу.
Ссылки
[править | править код]- Авторское описание шифра Архивная копия от 15 июля 2011 на Wayback Machine
- Исходный текст алгоритма на C
- Исходный текст алгоритма на Delphi Архивная копия от 4 марта 2016 на Wayback Machine