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

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

Они часто реализуются как инструкции, реализующие один цикл AES вместе со специальной версией для последнего цикла, которая имеет немного другой метод.

Сторона канала атаки поверхность AES снижается при реализации в наборе команд, по сравнению с тем, когда AES реализована только в программном обеспечении.

процессоры архитектуры 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
AESIMC Помощь в столбцах обратного микширования AES

Intel

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

  • Процессоры на базе Westmere , а именно:
    • Процессоры Westmere-EP (также известные как модель сервера DP Gulftown Xeon 5600)
    • Процессоры
    Clarkdale (кроме Core i3, Pentium и Celeron)
  • Процессоры Arrandale (кроме Celeron, Pentium, Core i3, Core i5-4XXM)
  • Процессоры Sandy Bridge :
    • Настольный компьютер: все, кроме Pentium, Celeron, Core i3
    • Мобильные: все Core i7 и Core i5. Некоторые поставщики поставляют конфигурации BIOS с отключенным расширением; для их включения требуется обновление BIOS.
  • Процессоры Ivy Bridge
    • Только все i5, i7, Xeon и i3-2115C
  • Процессоры Haswell (все, кроме i3-4000m, Pentium и Celeron)
  • Процессоры Broadwell (все, кроме Pentium и Celeron)
  • Процессоры Silvermont / Airmont (все, кроме Bay Trail-D и Bay Trail-M)
  • Процессоры Goldmont (и более поздние версии )
  • Процессоры Skylake (и более поздние версии )
  • 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 ).

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

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

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

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

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

    • ARMv8-A архитектура
      • Криптографические расширения ARM опционально поддерживаются на ядрах ARM Cortex-A30 / 50/70
    • Криптографические аппаратные ускорители / движки
      • Allwinner
        • A10, A20, A30, A31, A80, A83T, H3 и A64 с использованием системы безопасности
      • Broadcom
        • BCM5801 / BCM5805 / BCM5820 с использованием процессора безопасности
      • Полупроводники NXP
        • i.MX6 и новее
      • Qualcomm
        • Snapdragon 805 и далее
      • Rockchip
        • RK30xx серии и далее
      • Samsung
        • Exynos 3 серии и далее

    Архитектура RISC-V

    Хотя архитектура RISC-V не включает инструкции, специфичные для AES, ряд микросхем RISC-V включает интегрированные сопроцессоры AES. Примеры включают:

    • Двухъядерный 64-битный RISC-V Sipeed-M1 поддерживает AES и SHA256.
    • ESP32 -C на основе архитектуры RISC-V (а также ESP32 на базе Xtensa), поддержка AES, SHA, RSA, RNG, HMAC, цифровой подписи и XTS 128 для флэш-памяти.
    • Bouffalo Labs BL602 / 604 32-битный RISC-V поддерживает различные варианты AES и SHA.

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

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

    Представление

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

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

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

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

    Дополнительное использование набора инструкций AES включает его использование в блочных шифрах с S-блоком аналогичной структуры с использованием аффинного изоморфизма для преобразования между ними. SM4 и Camellia были ускорены с помощью AES-NI.

    Смотрите также

    Примечания

    использованная литература

    внешние ссылки