Кто владеет информацией — тот владеет миром.

Ротшильд

Пока другие только пытаются понять законы рынка, используй их!

Терморектальный криптоанализTM



Алгоритм SC2000

Алгоритм SC2000 разработан в 2000 г. группой японских специалистов из компании Fujitsu Laboratories и Университета г. Токио. Алгоритм SC2000 имеет три фиксированных размера ключа шифрования: 128, 192 и 256 битов.

Структура алгоритма
Алгоритм представляет собой SP-сеть; в нем выполняются 7 раундов преобразований при использовании 128-битного ключа или 8 раундов при использовании ключей больших размеров. Раунд алгоритма имеет достаточно сложную структуру. В нем выполняются следующие операции:
Входное 128-битное значение делится на 4 субблока по 32 бита, на каждый из которых операцией XOR накладывается соответствующий 32-битный фрагмент расширенного ключа (процедура расширения ключа будет описана далее), в этом случае — фрагменты к0...к3.

Затем выполняется операция, которая переразбивает блок данных на 32 субблока по 4 бита каждый. Переразбиение выполняется так: i-й 4-битный субблок (обозначим его формируется из четырех битов субблоков a,b, с и d.

Расшифровывание
Расшифровывание данных алгоритмом SC2000 весьма похоже на зашифровывание, за исключением следующих моментов:
фрагменты расширенного ключа применяются в обратной последовательности, т. е. в первом раунде (при использовании 128-битного ключа) операцией XOR накладываются сначала подключи и т. д. в следующих раундах расшифровывания;
маскирующие константы используются в обратной последовательности, т. е. Л/3 в нечетных раундах и М5 — в четных;
вместо таблицы 54 используется обратная ей таблица, которая выглядит следующим образом.
Процедура расширения ключа
Расширение ключа выполняется в два этапа: сначала на основе ключа шифрования вычисляется промежуточный ключ, после чего из промежуточного ключа вычисляется требуемое количество фрагментов расширенного ключа.

Затем с помощью процедуры генерации промежуточных ключей, вычисляется набор промежуточных ключей: a0...a2, b0.vb2, с0...с2 и d0...d2. Процедура повторяется 12 раз по количеству вычисляемых промежуточных ключей.

После этого из промежуточного ключа вычисляются фрагменты расширенного ключа выполнением в цикле по п от 0 до 55 (для 192- и 256-битных ключей шифрования — в цикле от 0 до 63) процедуры В качестве входных значений процедура берет 4 различных фрагмента промежуточного ключа (будет описано далее), над которыми выполняются следующие действия:
Первое входное значение циклически сдвигается влево на 1 бит.
Аналогично сдвигается третье входное значение.
Результат предыдущего шага циклически сдвигается влево на 1 бит.
Результаты шагов 3 и 5 объединяются операцией XOR, что и дает выходное значение.

Выходным значением данной процедуры является п-й 32-битный фрагмент расширенного ключа. Входные значения определяются следующими таблицами, первая из которых определяет группу промежуточных ключей, из которой берется конкретное входное значение.

Криптоанализ алгоритма
Алгоритм SC2000 не вышел во второй раунд конкурса NESSIE — с одной стороны, у алгоритма достаточная криптостойкость (известны лишь методы вскрытия вариантов алгоритма SC2000 с уменьшенным количеством раундов — например, описанные и неплохое быстродействие. С другой стороны, алгоритм имеет весьма сложную структуру, преимущества которой недостаточно убедительно обоснованы в спецификации алгоритма. Опасаясь скрытых слабостей и возможных недокументированных особенностей алгоритма, эксперты не выбрали этот алго-ритм во второй раунд.

По материалам книги Сергея Панасенко «Алгоритмы шифрования»

Остапенко Денис aka Sharp, 2006

Соглашение о приватности информации

 

Hosted by uCoz