Набор инструкций AES

редактировать

Набор инструкций Advanced Encryption Standardтеперь интегрирован во многие процессоры. Цель набора инструкций - для повышения скорости (а также устойчивости к атакам по побочным каналам ) приложений, выполняющих шифрование и дешифрование с использованием Advanced Encryption Standard (AES). Они часто внедряются d как инструкции, реализующие один цикл AES вместе со специальной версией для последнего цикла, которая имеет немного другой метод.

Содержание
  • 1 Процессоры архитектуры x86
    • 1.1 Инструкции
    • 1.2 Intel
    • 1.3 AMD
  • 2 Аппаратное ускорение в других архитектурах
    • 2.1 Поддержка процессоров x86
    • 2.2 Архитектура ARM
    • 2.3 Другие архитектуры
  • 3 Производительность
  • 4 Поддерживающее программное обеспечение
  • 5 См. Также
  • 6 Примечания
  • 7 Ссылки
  • 8 Внешние ссылки
Процессоры архитектуры x86

AES -NI (или новые инструкции Intel Advanced Encryption Standard; AES-NI) была первой крупной реализацией. AES-NI - это расширение для x86 архитектуры набора команд для микропроцессоров от Intel и AMD, предложенное Intel в марте 2008 года.

Инструкции

ИнструкцияОписание
AESENCВыполнить один цикл потока шифрования AES
AESENCLASTВыполнить последний цикл поток шифрования AES
AESDECВыполнение одного раунда потока дешифрования AES
AESDECLASTВыполнение последнего раунда потока дешифрования AES
AESKEYGENASSISTСодействие в создании ключа раунда AES
AESIMCAssist in AES Inverse Mix Columns

Intel

Следующие процессоры Intel поддерживают набор инструкций AES-NI:

AMD

Несколько процессоров AMD поддерживают инструкции AES:

Аппаратное ускорение в других архитектурах

Поддержка AES с непривилегированными инструкциями процессора также доступна в последней версии SPARC процессоры (T3, T4, T5, M5 и более поздние версии) и в последних процессорах ARM. Процессор SPARC T4, представленный в 2011 году, имеет инструкции уровня пользователя, реализующие циклы AES. Эти инструкции являются дополнением к командам шифрования более высокого уровня. Архитектура процессора ARMv8-A, анонсированная в 2011 году, включая ARM Cortex-A53 и A57 (но не предыдущие процессоры v7, такие как Cortex A5, 7, 8, 9, 11, 15), также имеют: инструкции уровня, которые реализуют раунды AES. В августе 2012 года IBM объявила, что будущая архитектура Power7 + будет иметь поддержку AES. Команды в этих архитектурах не эквивалентны напрямую командам AES-NI, но реализуют аналогичные функции.

Процессоры мэйнфреймов IBM z9 или новее поддерживают AES как инструкции AES ECB / CBC с одним кодом операции (KM, KMC) через оборудование IBM CryptoExpress. Таким образом, эти версии AES с одной инструкцией проще использовать, чем версии Intel NI, но не могут быть расширены для реализации других алгоритмов, основанных на циклических функциях AES (таких как Whirlpool и Grøstl hash функции).

Поддержка процессоров x86

Процессоры VIA x86, AMD Geode и (ARM, mv_cesa в Linux) вместо этого используют ускоренную обработку AES на основе драйверов. (См. Crypto API (Linux).)

Следующие микросхемы, хотя и поддерживают аппаратное ускорение AES, не поддерживают AES-NI:

архитектура ARM

Информация о программировании доступно в Справочном руководстве по архитектуре ARM ARMv8, для профиля архитектуры ARMv8-A (раздел A2.3 «Криптографическое расширение Armv8»).

Другое архитектуры

  • Atmel XMEGA (на- чип-ускоритель с параллельным выполнением, а не инструкцией)
  • Процессоры SPARC T3 и более поздние имеют аппаратную поддержку нескольких криптографических алгоритмов, включая AES.
  • Все процессоры на базе Cavium Octeon на базе MIPS имеют аппаратную поддержку нескольких криптографические алгоритмы, включая AES с использованием специальных инструкций сопроцессора 3.
Производительность

В AES-NI Performance Analyzed Патрик Шмид и Ахим Роос обнаружили «впечатляющие результаты от нескольких приложений, уже оптимизированных для использования преимуществ AES от Intel. -NI возможность ". Анализ производительности с использованием Crypto++ библиотеки безопасности показал увеличение пропускной способности с примерно 28,0 циклов на байт до 3,5 циклов на байт с AES / GCM по сравнению с Pentium 4 без ускорения.

Вспомогательное программное обеспечение

Большинство современных компиляторов могут выдавать инструкции AES.

Многие программы безопасности и криптографии поддерживают набор инструкций AES, включая следующую базовую инфраструктуру:

Примечания
Ссылки
Внешние ссылки
Последняя правка сделана 2021-06-07 20:18:44
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте