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

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

< Лекция 4 || Лекция 5: 123 || Лекция 6 >

Профили финалистов

MARS

Общая безопасность

MARS не имеет известных атак безопасности.

В отличие от других финалистов, MARS использует в качестве нелинейных компонентов зависящие от данных ротации и S-boxes. В силу нестандартной, разнородной структуры раунда (16 раундов перемешивания и 16 раундов ядра) трудно оценить предоставляемый MARS резерв безопасности. Данного финалиста критикуют за сложность, которая затрудняет анализ его безопасности.

Программные реализации

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

Окружения с ограничениями пространства

MARS недостаточно соответствует окружениям с ограничениями пространства, т.к. требует большого объема ROM. Причем следует отметить, что требования ROM имеют тенденцию роста.

Аппаратные реализации

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

Шифрование vs. дешифрование

Шифрование и дешифрование в MARS имеют аналогичные функции. Таким образом, скорость MARS при шифровании и дешифровании существенно не изменяется.

Свойства ключа

MARS требует вычисления 10 из 40 подключей за один раз, требуя дополнительных ресурсов для хранения этих 10 подключей. Это неудобно для окружений с ограниченной памятью. MARS также требует однократного выполнения управления ключом для создания всех подключей до первого дешифрования с конкретным ключом. Вычисление нескольких подключей за один раз требует больше ресурсов памяти, чем при вычислении подключей на лету.

Другие возможности настройки

MARS поддерживает длину ключа от 128 до 448 бит.

RC6

Общая безопасность

RC6 не имеет известных атак безопасности.

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

Программные реализации

Преобладающие операции в RC6 - умножение и переменные ротации. Программное выполнение зависит от того, насколько хорошо комбинация процессор/язык обрабатывает эти операции. RC6 является наиболее быстрым из финалистов на 32-битных платформах. Однако его выполнение замедляется на 64-битных процессорах. Выполнение RC6 улучшается, если он используется в режиме, допускающем interleaving. Время установления ключа признано средним.

Окружения с ограничениями пространства

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

Аппаратные реализации

RC6 может быть эффективно реализован.

Шифрование vs. дешифрование

Шифрование и дешифрование в RC6 имеют аналогичные функции. Таким образом, эффективность RC6 при шифровании и дешифровании существенно не отличается.

Свойства ключа

RC6 поддерживает возможность вычисления подключей на лету только для шифрования, используя порядка 100 байтов для промежуточных значений. Подключи дешифрования должны быть вычислены заранее.

Другие возможности настройки

Размеры блока, ключа и число раундов параметризуемы. RC6 поддерживает размер ключа намного больше 256 бит.

Rijndael

Общая безопасность

Rijndael не имеет известных атак безопасности.

Rijndael использует S-boxes в качестве нелинейной компоненты. Rijndael демонстрирует адекватный резерв безопасности, но подвергается критике из-за математической структуры, которая может привести к атакам. С другой стороны, простая структура облегчает анализ безопасности.

Программные реализации

Rijndael очень хорошо выполняет шифрование и дешифрование на различных платформах, включая 8-битные и 64-битные платформы. Однако выполнение замедляется с увеличением длины ключа, т.к. возрастает число раундов. Rijndael имеет возможность параллельного выполнения, что позволяет эффективно использовать ресурсы процессора. Время установления ключа в Rijndael небольшое.

Окружения с ограничениями пространства

В целом, Rijndael хорошо соответствует окружениям с ограничениями пространства, в которых реализовано либо шифрование, либо дешифрование (но не оба одновременно). Он имеет очень небольшие требования к RAM и ROM. Недостатком является то, что требования ROM возрастают, если шифрование и дешифрование реализованы одновременно, хотя он все равно остается подходящим для такого окружения. Управление ключом для шифрования и дешифрования различается.

Аппаратные реализации

Rijndael имеет самую высокую производительность среди финалистов для feedback режимов и является вторым по производительности для не-feedback режимов. Для 192- и 256-битных ключей производительность падает из-за дополнительного числа раундов.

Шифрование vs. дешифрование

В Rijndael функции шифрования и дешифрования различны. При этом скорости шифрования и дешифрования существенно не отличаются, но установление ключа выполняется медленнее для дешифрования, чем для шифрования.

Свойства ключа

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

Другие возможности настройки

Rijndael полностью поддерживает размеры блока и размеры ключа в 128, 192 и 256 бит в любой комбинации. В принципе, структуру Rijndael можно приспособить к любым размерам блока и ключа, кратным 32, а также изменить число раундов.

Serpent

Общая безопасность

Serpent не имеет известных атак безопасности.

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

Программные реализации

Serpent является наиболее медленным из финалистов при программной реализации шифрования и дешифрования.

Окружения с ограничениями пространства

Serpent хорошо соответствует окружениям с ограничениями пространства, включая низкие требования к RAM и ROM. Недостатком является то, что требования к ROM возрастают, если шифрование и дешифрование реализованы одновременно, но и при этом Serpent по-прежнему соответствует окружениям с ограничениями пространства.

Аппаратные реализации

Конвейерные реализации Serpent показывают самую высокую среди финалистов производительность для не-feedback режимов. Serpent занимает второе место по производительности в feedback режиме для основной архитектуры. Скорость выполнения Serpent не зависит от длины ключа.

Шифрование vs. дешифрование

Шифрование и дешифрование в Serpent имеют различные функции, которые разделяют ограниченные ресурсы. Одновременная реализация как шифрования, так и дешифрования требует пространства приблизительно в два раза больше, чем необходимо отдельно для шифрования. Это является недостатком, когда в аппаратуре нужно одновременно реализовать обе функции.

Скорость выполнения Serpent при шифровании и дешифровании отличается несущественно.

Свойства ключа

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

Другие возможности настройки

Serpent может обрабатывать любую длину ключа более 256 бит. Кроме того, для улучшения выполнения может использоваться технология bitslice на 32-битных процессорах.

Twofish

Общая безопасность

Twofish не имеет известных атак безопасности.

Twofish использует S-boxes в качестве нелинейных компонент. Демонстрирует высокий резерв безопасности, но вызвала критические замечания за свойство разделения ключа и за сложность, которая затрудняет анализ безопасности.

Программные реализации

Twofish показывает смешанные результаты при выполнении шифрования и дешифрования. Установление ключа происходит медленно. Время выполнения шифрования/дешифрования или установления ключа уменьшаются для большей длины ключа, в зависимости от используемой опции ключа.

Окружения с ограничениями пространства

Требования RAM и ROM соответствуют окружениям с ограничениями пространства.

Аппаратные реализации

Производительность и эффективность на основной аппаратуре являются средними. Возможны компактные реализации.

Шифрование vs. дешифрование

Шифрование и дешифрование в Twofish имеют идентичные функции. Таким образом, эффективность Twofish при шифровании и дешифровании не отличается. Одновременная реализация шифрования и дешифрования всего на 10 % увеличивает объем пространства по сравнению с реализацией одного только шифрования.

Свойства ключа

Twofish поддерживает вычисление подключей на лету как для шифрования, так и для дешифрования.

Другие возможности настройки

Спецификация Twofish описывает четыре опции для реализации зависимых от ключа S-boxes, позволяя варьировать выполнение. Twofish поддерживает произвольную длину ключа более 256 бит.

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

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

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

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

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