Опубликован: 19.11.2003 | Уровень: для всех | Доступ: платный | ВУЗ: Московский государственный университет имени М.В.Ломоносова
Лекция 4:

Алгоритмы симметричного шифрования. Часть 3. Разработка Advanced Encryption Standard (AES)

< Лекция 3 || Лекция 4: 12345 || Лекция 5 >

Простота

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

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

Для стандартного дифференциального криптоанализа реально используемые типы операций влияют на строгость анализа безопасности. Если материал ключа перемешивается с данными только операцией XOR, как в Serpent и Rijndael, то пары незашифрованного текста с данной XOR разницей являются естественными входами, и анализ безопасности относительно очевиден. Если материал ключа перемешивается с данными более чем в одной операции, как в случае остальных финалистов, то исходного описания разницы не существует, и анализ безопасности требует больших усилий. Аналогично, использование переменных ротаций в MARS и RC6 скрывает возможность получения ясных результатов относительно безопасности при линейных и дифференциальных атаках.

Другим аспектом простоты, который относится к анализу безопасности, является масштабируемость. Если упрощенный вариант может, например, создаваться с меньшей длиной блока, то проводить эксперименты с вариантами становится легче, и при этом изучаются свойства исходного алгоритма. Считается, что отсутствие уменьшенных версий MARS существенно затрудняет анализ и экспериментирование. Аналогично, "реальные" масштабируемые в сторону упрощения варианты Twofish создавать трудно. Оба требования являются правдоподобными, хотя следует заметить, что спецификации MARS и Twofish содержат достаточный анализ своих элементов разработки. В спецификации Serpent утверждается, что создать масштабируемый в сторону упрощения вариант Serpent нетрудно. RC6 и Rijndael являются масштабируемыми в силу способа разработки.

Статистическое тестирование

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

При полном тестировании каждый из алгоритмов создает выглядящие случайными выходы для каждой из длин ключа. Для тестирования уменьшенного числа раундов выходы предыдущего раунда должны быть случайными, как и выходы каждого последующего раунда. Оказалось, что выходы MARS проявляют случайность на 4 и более раундах ядра, RC6 и Serpent - на 4 и более раундах, Rijndael - на 3 и более раундах, Twofish - на 2 и более раундах.

Количественная мера, включающая степень полноты, лавинный эффект и критерий ограничения лавинного эффекта, является "неясной при случайных перестановках после очень небольшого числа раундов " для всех финалистов.

В заключении следует отметить, что ни один из финалистов не является статистически отличимым от случайной функции.

Другие замечания по безопасности

Существует много обзоров, касающихся различных свойств, которые могут влиять на безопасность финалистов.

MARS: разнородная структура MARS и разнообразие операций обеспечивают защиту от неизвестных атак. Управление ключом в MARS требует нескольких стадий перемешивания.

RC6: перемешивание, осуществляемое в RC6 при управлении ключом, считается преимуществом с точки зрения безопасности.

Rijndael: обсуждаются три понятия, касающиеся математической структуры Rijndael и потенциальных уязвимостей. Во-первых, все операции алгоритма выполняются над целым байтом, а не над отдельными битами; это свойство позволяет осуществлять Square-атаку на варианты с уменьшенным числом раундов. Более того, при симметричном перемещении байтов уязвимость повышается. Для нарушения симметрии при управлении ключом используются различные константы раунда, причем эти константы имеют только один бит. Если Rijndael упростить таким образом, чтобы опустить эти константы раунда, шифрование будет сравнимо с ротацией каждого слова данных и подключей на байт.

Во-вторых, Rijndael является наиболее линейным. Можно показать, как применить линейное отображение на биты в каждом байте без изменения всего алгоритма, компенсируя линейное отображение в остальных элементах алгоритма, включая управление ключом. Аналогично, поле Галуа, лежащее в основе S-box, может быть представлено различными базисными векторами или преобразовано в другие поля Галуа с другими определяющими полиномами. Другими словами, математическая структура Rijndael допускает много эквивалентных формулировок. Существует предположение, что выполняя серию преобразований над S-box, атакующий может найти формулировку Rijndael, имеющую уязвимости.

Третье утверждение относится к относительно простой алгебраической формуле для S-box, которая приведена в спецификации Rijndael. Формула является полиномом степени 254 над данным полем Галуа, но в полиноме существует только девять термов, что намного меньше, чем ожидается для обычно случайно созданного S-box того же размера. Математическое выражение для повторения нескольких раундов Rijndael будет намного более сложным, но увеличение размера выражения как функции от числа раундов должно быть проанализировано в деталях.

Также отмечается, что атакующий, который восстанавливает или угадывает соответствующие биты подключей Rijndael, имеет возможность вычислить дополнительные биты подключей. (В случае DES это свойство помогает сконструировать линейные и дифференциальные атаки).

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

Twofish: Twofish использует новое понятие, которое состоит в формировании зависящих от ключа S-boxes. Это обеспечивает нестандартную зависимость между безопасностью алгоритма и структурой управления ключом и S-boxes. В случае 128-битного ключа (когда существует 128-битная энтропия) Twofish можно считать набором из 264 различных криптосистем. 64-битное количество (представляющее собой 64 бита из исходных 128 бит энтропии), которое получено из исходного ключа, управляет выбором криптосистемы. Для любой конкретной криптосистемы 64 оставшиеся бита используются для ключа. Как результат такого разделения 128 битов высказываются утверждения, что Twofish может быть подвержен атаке divide-and-conquer. При такой атаке взломщик выясняет, какая из 264 криптосистем используется, а затем определяет ее ключ. Однако не существует общей атаки, соответствующей указанной стратегии. Это означает, что если атакующий столкнулся с задачей дешифрования зашифрованного 128-битным ключом текста, то неясно, как разделить 128-битный ключ энтропии. С другой стороны, если 128-битный ключ используется повторно, то каждое применение может дать некоторую информацию о выбранной криптосистеме. Если атакующий имеет возможность выполнять повторяющееся исследование активной криптосистемы, то он имеет возможность определить, какая из 264 криптосистем используется. То же можно сказать и о большей длине ключа (в общем случае для k-битных ключей криптосистема определяется k/2 битами энтропии).

Эта особенность Twofish называется свойством разделения ключа. Зависимость S-boxes в Twofish только от 64 бит энтропии в случае 128-битного ключа была специально предусмотрена разработчиками. Это решение является некоторым аналогом безопасности/эффективности, включающих определение числа раундов в системах с фиксированной функцией раунда. Утверждается, что если S-boxes зависят от 128 бит энтропии, то число раундов Twofish можно уменьшить, чтобы избежать отрицательного влияния на свойства ключа и/или количество исходного материала.

Краткая характеристика финалистов

Как уже отмечалось, ни против одного из финалистов не существует общих атак. Однако определение уровня безопасности, обеспечиваемого финалистами, является достаточно приблизительным. Суммируем некоторые известные характеристики безопасности финалистов.

MARS показывает высокую степень резерва безопасности. Кратко охарактеризовать MARS трудно, потому что фактически MARS реализует два различных типа раунда. MARS даже критиковали за сложность, которая может препятствовать анализу его безопасности.

RC6 показал адекватный резерв безопасности. Однако RC6 критиковали за небольшой резерв безопасности по сравнению с другими финалистами. С другой стороны, все высоко оценили простоту RC6, облегчающую анализ безопасности. RC6 произошел от RC5, который уже достаточно хорошо проанализирован.

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

Serpent показал значительный резерв безопасности. Serpent также имеет простую структуру, безопасность которой легко проанализировать.

Twofish показал высокий резерв безопасности. Поскольку Twofish использует зависящую от ключа функцию раунда, для него замечания о резерве безопасности могут иметь меньшее значение, чем для других финалистов. Зависимость S-boxes Twofish только от k/2 битов энтропии в случае k-битного ключа позволяет сделать вывод, что Twofish может быть подвергнут divide-and-conquer-атаке, хотя такая атака не найдена. Twofish был подвергнут критике за сложность, которая затрудняет его анализ.

< Лекция 3 || Лекция 4: 12345 || Лекция 5 >
Евгений Виноградов
Евгений Виноградов

Прошел экстерном экзамен по курсу перепордготовки "Информационная безопасность". Хочу получить диплом, но не вижу где оплатить? Ну и соответственно , как с получением бумажного документа?

Илья Сидоркин
Илья Сидоркин

Добрый день! Подскажите пожалуйста как и когда получить диплом, после сдичи и оплаты?????

Евгений Фроленко
Евгений Фроленко
Россия, г. Ростов - на - Дону
Евгений Логушев
Евгений Логушев
Россия, Чебоксары, ЧГПУ им. Яковлева, 2006