Sinople
Sinople — симметричный блочный криптоалгоритм, построенный на основе несбалансированной «сети Фейстеля». Алгоритм разработан в 2003 году.
Sinople | |
---|---|
Создатель | Филип Пакет |
Создан | 2003 г. |
Размер ключа | 128 бит |
Размер блока | 128 бит |
Число раундов | 64 |
Тип | Несбалансированная Сеть Фейстеля |
Структура шифра
Основные требования к алгоритму при его разработке:
- Возможность программной и аппаратной реализации
- Высокая скорость
- Простота
- Низкие требования к памяти
- Высокий уровень безопасности
Алгоритм основан на 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-разрядных элементов, однако были жестко проанализированы на предмет усиления.
Ключевое расписание было спроектировано с учетом требований:
- Простота
- Используется та же процедура, что и при зашифровании и расшифровании
- Установка ключа занимает меньше времени, нежели зашифрование
- Исключение эквивалентных ключей
- Исключение слабых ключей
Безопасность
Алгоритм, согласно заявлению авторов, устойчив к линейному и дифференциальному анализу.