Этот перевод статьи с другого языка требует улучшения (см. Рекомендации по переводу). |
SC2000 | |
---|---|
Создатель | Fujitsu |
Создан | 2000 г. |
Опубликован | 2000 г. |
Размер ключа | 128, 192, 256 бит |
Размер блока | 128 бит |
Число раундов | 6.5 или 7.5 |
Тип | Сеть Фейстеля и SP-сеть |
SC2000 — в криптографии симметричный блочный криптоалгоритм, разработанный фирмой Fujitsu и университетом г. Токио в 2000 году. В алгоритме используется 128-битный блок и ключ длиной от 128 до 256 бит (совместим со стандартом AES и поддерживает типовые длины ключа — 128/192/256). Был рекомендован комитетом CRYPTREC в 2003 году для использования государственными учреждениями Японии, однако в 2013 году был перемещён в список "кандидатов" в рекомендованные шифры.[1] Участвовал в конкурсе Nessie, но не попал во второй раунд, хотя и показал достаточную устойчивость к атакам — причиной стала его слишком сложная структура и опасение в вероятности скрытых уязвимостей.
SC2000 — шифр со смешанной структурой: здесь используются элементы сети Фейстеля и подстановочно-перестановочной сети.
Алгоритм выполняет 6.5 (для 128-битного ключа)или 7.5 (для ключа длиной 192—256 бит) раундов шифрования. Каждый из раундов состоит из запросов к таблице подстановки, добавления ключа и бесключевой двухраундовой сети Фейстеля. Применяется три таблицы замены: S-Box размером 4x4 бит используется в начале каждого раунда, размером 5x5 бит и 6x6 бит — внутри сети Фейстеля.
Расширение ключа в алгоритме SC2000 выполняется в два этапа: основе секретного симметричного ключа генерируется промежуточный ключ, затем из промежуточного ключа вычисляется нужное количество фрагментов расширенного ключа.
Один раунд шифра довольно сложен и состоит из следующих операций: Входное 128-битное значение делится на 4 подблока по 32 бита, на каждый из них операцией XOR накладывается 32-битный фрагмент расширенного ключа. Выполняется операция T, которая разбивает блок данных на 32 подблока по 4 бита каждый.
Каждый 4-битный подблок проходит через таблицу подстановки S4, которая выглядит так: (2,5,10,12,7,15,1,11,13,6,0,9,4,8,3,14)
Далее блок данных разбивается на 32-битные подблоки с помощью операции T’, обратной к операции T. Выполняется наложение операцией XOR других четырёх фрагментов расширенного ключа. Значения первой пары подблоков передаются на вход функции F. В результате выполнения данной функции получаются два 32-битных значения, которые накладываются операцией XOR на два первых подблока. Первая пара подблоков меняется местами с второй парой подблоков, затем выполняется повторно прошлый шаг трансформации.
Детального анализа полнораундового SC2000 пока не проводилось, но вариант с сокращенным до 4.5 числом раундов уязвим при использовании диффериниального и линейного криптоанализа.
В 2014 в алгоритме расширения ключа была обнаружена уязвимость, позволяющая найти пару эквивалентных 256-битных ключей (приводящих к идентичному результату шифрования) за 239 операций.[2]