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

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

процессоры архитектуры x86

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

инструкции

ИнструкцияОписание[2]
AESENCВыполните один раунд потока шифрования AES
ЭЗЕНКЛАСТВыполните последний раунд потока шифрования AES
AESDECВыполните один раунд потока дешифрования AES
AESDECLASTВыполните последний раунд потока дешифрования AES
AESKEYGENASSISTПомощь в генерации раундового ключа AES[примечание 1]
AESIMCПомощь в AES Колонны обратного смешения

Intel

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

  • Westmere на базе процессоров, а именно:
    • Westmere-EP (также известный как Gulftown Модель сервера DP серии Xeon 5600) процессоры
    • Кларкдейл процессоры (кроме Core i3, Pentium и Celeron)
    • Arrandale процессоры (кроме Celeron, Pentium, Core i3, Core i5-4XXM)
  • Песчаный Мост процессоры:
    • Настольный компьютер: все, кроме Pentium, Celeron, Core i3[4][5]
    • Мобильные: все Core i7 и Core i5. Несколько поставщиков отправили BIOS конфигурации с отключенным расширением;[6] для их включения требуется обновление BIOS.[7]
  • Ivy Bridge процессоры
    • Все i5, i7, Xeon и i3-2115C[8] Только
  • Haswell процессоры (все кроме i3-4000m,[9] Pentium и Celeron)
  • Broadwell процессоры (все кроме Pentium и Celeron)
  • Сильвермонт / Эйрмонт процессоры (все, кроме Bay Trail-D и Bay Trail-M)
  • Goldmont (и более поздние) процессоры
  • Skylake (и более поздние) процессоры

AMD

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

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

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

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

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

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

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

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

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

  • ARMv8-A архитектура
    • Криптографические расширения ARM опционально поддерживаются на ядрах ARM Cortex-A30 / 50/70
  • Криптографические аппаратные ускорители / движки

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

  • Двухъядерный RISC-V 64-битные Sipeed-M1 поддерживают AES и SHA256.[26]
  • На основе архитектуры RISC-V ESP32 -C (не Xtensa, как ESP32), поддерживает AES, SHA, RSA, RNG, HMAC, цифровую подпись и XTS 128 для флэш-памяти.[27]

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

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

Спектакль

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

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

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

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

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

Примечания

  1. ^ Инструкция вычисляет 4 параллельных подвыражения Расширение ключа AES на 4 32-битных словах в двойном квадраслове (также известном как регистр SSE) на битах X [127: 96] для и X [63:32] для Только. Две параллельные Замены AES S-блока и используются в AES-256 и 2 подвыражениях и используются в AES-128, AES-192, AES-256.

Рекомендации

  1. ^ "Intel Software Network". Intel. Архивировано из оригинал 7 апреля 2008 г.. Получено 2008-04-05.
  2. ^ Шей Герон (2010). "Официальный документ набора инструкций Intel Advanced Encryption Standard (AES)" (PDF). Intel. Получено 2012-09-20.
  3. ^ «Расширенный поиск по спецификации продукции Intel». Intel ARK.
  4. ^ Шимпи, Ананд Лал. «Обзор Sandy Bridge: Intel Core i7-2600K, i5-2500K и Core i3-2100 протестированы».
  5. ^ «Сравнение технических характеристик продукции Intel».
  6. ^ «Поддержка AES-NI в TrueCrypt (проблема Sandy Bridge)».
  7. ^ «Некоторые продукты могут поддерживать новые инструкции AES с обновлением конфигурации процессора, в частности i7-2630QM / i7-2635QM, i7-2670QM / i7-2675QM, i5-2430M / i5-2435M, i5-2410M / i5-2415M. свяжитесь с OEM-производителем для получения BIOS, включающего последнее обновление конфигурации процессора ".
  8. ^ «Технические характеристики процессора Intel Core i3-2115C (3 МБ кэш-памяти, 2,00 ГГц)».
  9. ^ «Технические характеристики процессора Intel Core i3-4000M (3 МБ кэш-памяти, 2,40 ГГц)».
  10. ^ «Следуя инструкциям». AMD. 22 ноября 2010 г. Архивировано с оригинал 26 ноября 2010 г.. Получено 2011-01-04.
  11. ^ Дэн Андерсон (2011). "SPARC T4 OpenSSL Engine". Oracle. Получено 2012-09-20.
  12. ^ Ричард Гризентуэйт (2011). «Предварительный просмотр технологии ARMv8-A» (PDF). РУКА. Архивировано из оригинал (PDF) на 2018-06-10. Получено 2012-09-20.
  13. ^ Тимоти Прикетт Морган (2012). «Весь соус на горячем чипе Big Blue: Подробнее о Power7 +». Реестр. Получено 2012-09-20.
  14. ^ «Криптография IBM System z10». IBM. Получено 2014-01-27.
  15. ^ «Технические характеристики семейства процессоров AMD Geode LX». AMD.
  16. ^ "VIA Padlock Security Engine". ЧЕРЕЗ. Получено 2011-11-14.
  17. ^ а б Криптографические аппаратные ускорители на OpenWRT.org
  18. ^ "Процессоры VIA Eden-N". ЧЕРЕЗ. Архивировано из оригинал на 2011-11-11. Получено 2011-11-14.
  19. ^ "Процессоры VIA C7". ЧЕРЕЗ. Получено 2011-11-14.
  20. ^ "Справочное руководство по архитектуре ARM ARMv8, для профиля архитектуры ARMv8-A" (PDF). РУКА. 5 июля 2019.
  21. ^ «Статус драйвера системы безопасности / Crypto Engine». sunxi.montjoie.ovh.
  22. ^ «Ускорение криптографии Linux на i.MX6» (PDF). Linux Foundation. Февраль 2017. Архивировано с оригинал (PDF) на 2019-08-26. Получено 2018-05-02.
  23. ^ «Криптографический модуль в Snapdragon 805 сертифицирован FIPS 140-2». Qualcomm.
  24. ^ "RK3128 - Rockchip Wiki". Rockchip вики. Архивировано из оригинал на 2019-01-28. Получено 2018-05-02.
  25. ^ "Samsung Exynos 7420 Deep Dive - внутри современной 14-нм SoC". АнандТех.
  26. ^ «Sipeed M1 - встроенная платформа искусственного интеллекта для периферийных вычислений». electronics-lab.com. 2018-11-27. Получено 2020-11-22.
  27. ^ «Процессор ESP32-C3 WiFi и BLE RISC-V по выводам совместим с ESP8266». CNX-Программное обеспечение. Получено 2020-11-22.
  28. ^ «Использование встроенного в XMEGA ускорителя AES» (PDF). Получено 2014-12-03.
  29. ^ «Cavium Networks запускает самую широкую в отрасли линейку одно- и двухъядерных процессоров OCTEON ™ на базе MIPS64®, предназначенных для интеллектуальных сетей следующего поколения». Архивировано из оригинал на 2017-12-07. Получено 2016-09-17.
  30. ^ П. Шмид и А. Роос (2010). «Анализ производительности AES-NI». Оборудование Тома. Получено 2010-08-10.
  31. ^ Т. Кровец, В. Дай (2010). "Как получить быстрые вызовы AES?". Группа пользователей Crypto ++. Получено 2010-08-11.
  32. ^ «Тесты производительности Crypto ++ 5.6.0 Pentium 4». Сайт Crypto ++. 2009. В архиве из оригинала 19 сентября 2010 г.. Получено 2010-08-10.
  33. ^ «Справочное руководство по NonStop SSH». Получено 2020-04-09.
  34. ^ «Справочное руководство по библиотеке NonStop cF SSL». Получено 2020-04-09.
  35. ^ "BackBox H4.08 Опция шифрования ленты". Получено 2020-04-09.
  36. ^ «Стандартные инструкции Intel Advanced Encryption (AES-NI)». Intel. 2 марта 2010 г. В архиве из оригинала 7 июля 2010 г.. Получено 2010-07-11.
  37. ^ «Улучшения AES-NI для NSS в системах Sandy Bridge». 2012-05-02. Получено 2012-11-25.
  38. ^ «Руководство системного администратора: службы безопасности, глава 13 криптографическая структура Solaris (обзор)». Oracle. Сентябрь 2010 г.. Получено 2012-11-27.
  39. ^ «Примечания к выпуску FreeBSD 8.2». FreeBSD.org. 2011-02-24. Получено 2011-12-18.
  40. ^ OpenSSL: веб-интерфейс CVS
  41. ^ «Криптографический бэкэнд (GnuTLS 3.6.14)». gnutls.org. Получено 2020-06-26.
  42. ^ «AES-GCM в libsodium». libsodium.org.
  43. ^ "www.flam.de :: Продукция". flam.de.
  44. ^ "Аппаратное ускорение". www.veracrypt.fr.
  45. ^ "aes - язык программирования Go". golang.org. Получено 2020-06-26.
  46. ^ Шимпи, Ананд Лал. «Обзор Clarkdale: Intel Core i5 661, i3 540 и i3 530». www.anandtech.com. Получено 2020-06-26.

внешняя ссылка