SQUARE

SQUARE — в криптографии симметричный блочный криптоалгоритм, разработанный в 1997 году Винсентом Рэйменом, Йоаном Дайменом и Ларсом Кнудсеном.

SQUARE
Создатель Винсент Рэймен,
Йоан Даймен,
Ларс Кнудсен
Создан 1997
Опубликован 1997
Размер ключа 128 бит
Размер блока 128 бит
Число раундов 8
Тип Подстановочно-перестановочная сеть

Считается предшественником алгоритма AES. Структура алгоритма была подобрана авторами для возможности получения эффективной реализации на широком спектре процессоров, а также для криптостойкости к дифференциальному и линейному криптоанализу.

Описание алгоритма

Алгоритм SQUARE использует ключ длиной 128 бит, данные шифруются 128-битными блоками, однако модульный подход к построению шифра позволяет легко расширить до больших размеров длину ключа и длину блока данных. Один раунд SQUARE состоит из четырёх отдельных преобразований. Данные представляются байтовым квадратом размера 4x4. Основные составляющие этого шифра — это пять различных обратимых преобразований, которые воздействуют на массив байтов размера .[1]

Линейное преобразование

Линейное преобразование воздействует на каждую строку в квадрате данных. Оно представляется формулой , где:

  •  — значение байта, находящегося в -й строке и -м столбце в квадрате данных;
  •  — новое значение байта в квадрате;
  •  — набор констант;
  • умножения выполняются в поле Галуа ;

Важно, что поле имеет характеристику 2, то есть операция сложения соответствует побитовому . Каждая -ая строка в квадрате может быть представлена в виде полинома . Тогда, определяя коэффициенты как полином , преобразование можно представить в виде произведения полиномов: , здесь  — новое значение строки квадрата, представленное в виде полинома, и . Обратному преобразованию соответствует полином , определённый по формуле .[2]

Нелинейное преобразование

Данное преобразование является табличной заменой . Таблица, по которой осуществляется замена:

B1CEC3955AADE7024D44FB910C87A150
CB6754DD468FE14EF0FDFCEBF9C41A6E
5EF5CC8D1C5643FE0761F87559FF0322
8AD113EE88000E34158094E3EDB55323
4B4717A79035ABD8B8DF4F579A92DB1B
3CC899048EE0D77D85BB402C3A45F142
65204118722593703605F20BA379EC08
273132B67CB00A735B7BB781D20D6A26
9E589C8374B3AC307A69770FAE21DED0
2E9710A498A8D4682D62296D164976C7
E8C19637E5CAF4E96312C2A614BCD328
AF2FE62452C6A009BD8CCF5D115F01C5
9F3DA29BC93BBE51191F3F5CB2EF4ACD
BFBA6F64D9F33EB4AADCD506C07EF666
6C847138B91D7F9D488B2ADAA5338239
D67886FAE42BA91E89606BEA554CF7E2
Преобразование

то есть 0 заменится на B1, 1 — на CE, и так далее.[1]

Байтовая перестановка

Байтовая перестановка осуществляет транспонирование байтового квадрата, то есть .

Сложение с ключом раунда

Эта операция — побитовое сложение 128 бит данных с ключом раунда, , где:

  • и  — значение 128 бит данных перед преобразованием и после;
  •  — ключ раунда .[2]

Процедура получения ключей

Для шифрования необходимо получить 8 128-битных ключей раундов, а также ключ для предварительного раунда из ключа шифрования алгоритма.

Процедура получения ключей.

Процедура получения ключа описывается преобразованием , выполняющимся над ключом, представленным, как и блок данных, байтовым квадратом 4x4. Преобразование описывается следующими операциями:

  • ;
  • ;
  • ;
  • ;

где:

  •  — -я строка байтового квадрата ключа -го раунда;
  •  — константа для -го раунда, вычисляемая по формуле , ;
  •  — операция циклического сдвига байтовой строки на один байт влево: ;

Исходный ключ алгоритма шифрования используется как ключ для предварительного раунда.[2]

Шифрование

Обозначим один раунд шифрования как . Также, восьми раундам преобразования предшествует сложение с ключом и :.[2]

Расшифрование

Алгоритм расшифрования аналогичен алгоритму шифрования, но вместо преобразований и используются обратные преобразования и , при этом  — это обратная табличная замена, а  — это умножение строки на полином такой, что , также в предварительном раунде используется преобразование вместо . Из формулы для шифрования видно, что

,

где . Так как , и, более того, так как , получаем . Теперь один раунд для расшифрования можно определить как , и полная формула для расшифрования записывается как :

.[2]

Безопасность

Исследование криптостойкости создателями алгоритма

Алгоритм обладает высокой стойкостью против линейного и дифференциального криптоанализа, благодаря преобразованиям и , которые понижают максимальную вероятность появления дифференциальных следов и максимальную корреляцию линейных следов за 4 раунда преобразований. Первый криптоанализ SQUARE был проведён его авторами с использованием интегрального криптоанализа, который позже стал известен как Square-атака.[2]

Описание Square-атаки

Прежде всего, введем несколько определений:

Определение 1: Пусть -множество — набор из 256 16-байтовых состояний, каждое из которых отличается от других в некоторых байтах, которые назовём активными, и совпадают в некоторых байтах, которые будем называть пассивными. Далее,  — это набор индексов активных байтов.[3] Имеем:

.

Определение 2: Если применение операции исключающего «или» ко всем байтам на одной позиции в -множестве даёт 0, то эта позиция называется уравновешенной по -множеству.[3]

Применение преобразований и к -множеству даёт -множество с тем же . Применение преобразования даёт -множество, в котором активные байты транспонированы (относительно активных байтов в исходном -множестве). Также, применение к -множеству необязательно вернёт -множество, однако, так как каждый выходной байт является линейной комбинацией четырёх входных байт в той же строке, то, подавая строку с всего одним активным байтом, на выходе получим строку состоящую только из активных байт. [2] Рассмотрим -множество, в котором только один байт является активным и проследим, как изменяется позиция активного байта в течение трех раундов (здесь предварительный раунд объединён с первым: , который в итоге записывается как ). Так как первый раунд не содержит , то к началу второго раунда остается один активный байт. Во втором раунде преобразует в строку активных байтов, которые преобразует в столбец активных байт. в третьем раунде переводит результат в -множество, состоящее только из активных байт. Значения байт на выходе третьего раунда пробегают все возможные значения, следовательно, уравновешены по множеству , имеем

значит байты на выходе в четвёртом раунде уравновешены по -множеству. Эта уравновещенность нарушается последующим применением . Выходные байты четвёртого раунда могут быть выражены с помощью функции от промежуточного состояния : . Предполагая значение , значение для всех элементов -множества могут быть вычислены из шифротекстов. Если значение этого байта оказалось неуравновешенным по , то предположенное значение ключа является ложным. Этот метод криптоанализа позволил взломать 6-раундовый вариант шифра с использованием блоков открытого текста и соответствующих им блоков шифротекста и выполнением операций шифрования.[2]

В 2010 году была представлена атака на связанных ключах методом бумеранга. Ранее подобная атака применялась к шифрам KASUMI, COCONUT98, IDEA и AES-192/256. Это была первая атака на полнораундовый SQUARE.[4] В 2011 году был проведён криптоанализ полнораундового варианта SQUARE с помощью полного двудольного графа. Данный тип атаки позволил взломать шифр с использованием одного ключа, открытых текстов и проведения операций шифрования.[5]

Особенности шифра

Шифр SQUARE создавался, соответствуя стратегии широкого следа — каждый раунд шифра состоит из нескольких преобразований, нелинейной перестановки и композиции линейных преобразований — что дало шифру высокую криптостойкость против линейного и дифференциального криптоанализа. Составляющие блоки алгоритма и их взаимодействие подбирались также исходя из возможности быстрой реализации на широком спектре процессоров.[6] Реализация алгорима на языке Си имела скорость шифрования 2.63 Мбайт/с, запускаемая на процессоре Pentium с частотой 100 МГц, а реализация на языке Ассемблер увеличивала скорость шифрования вдвое. Данный алгоритм получил развитие и стал основой нового американского стандарта — шифра Rijndael, который был разработан группой авторов SQUARE. Кстати, на конкурсе AES, эксперты отметили, что «в основе алгоритма Rijndael лежит нетрадиционная парадигма, поэтому он может содержать скрытые уязвимости»[1]. Именно по этой причине сам SQUARE сейчас используется редко, уступая в популярности своему потомку — Rijndael. Также потомком шифра является южнокорейский алгоритм CRYPTON, участник конкурса AES.

См. также

Примечания

Литература

Ссылки

This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.