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