Из Википедии, бесплатной энциклопедии
  (Перенаправлено с AES-NI )
Перейти к навигации Перейти к поиску

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

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

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

процессоры архитектуры x86 [ править ]

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

Инструкции [ править ]

Intel [ править ]

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

  • Процессоры на базе 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 [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)
  • Процессоры Silvermont / Airmont (все, кроме Bay Trail-D и Bay Trail-M)
  • Процессоры Goldmont (и более поздние версии )
  • Процессоры Skylake (и более поздние версии )

AMD [ править ]

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

  • Процессоры Jaguar и новее
  • Процессоры Puma и новее
  • Переработчики "тяжелого оборудования"
    • Бульдозерные процессоры [10]
    • Процессоры Piledriver
    • Процессоры Steamroller
    • Экскаваторные процессоры и новее
  • Процессоры на базе Zen (и более поздних версий)

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

Поддержка AES с непривилегированными инструкциями процессора также доступна в последних процессорах SPARC ( T3 , T4 , T5 , M5 и более поздние версии ) и в последних процессорах ARM . Процессор 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], что будущая архитектура Power7 + будет иметь поддержку AES. Команды в этих архитектурах не эквивалентны напрямую командам AES-NI, но реализуют аналогичные функции.

Процессоры мэйнфреймов IBM z9 или более поздних версий поддерживают AES как инструкции AES ECB / CBC с одним кодом операции (KM, KMC) через оборудование IBM CryptoExpress. [14] Эти версии 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:

  • AMD Geode LX процессоров [15]
  • VIA , используя VIA PadLock [16] [17]
    • Процессоры VIA C3 Nehemiah C5P (Eden-N) [18]
    • Процессоры VIA C7 Esther C5J [19]

Архитектура ARM [ править ]

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

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

Архитектура RISC-V [ править ]

  • Двухъядерный 64-битный RISC-V 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 Performance Analyzed Патрик Шмид и Ахим Роос обнаружили «впечатляющие результаты нескольких приложений, уже оптимизированных для использования возможностей Intel AES-NI». [30] Анализ производительности с использованием библиотеки безопасности Crypto ++ показал увеличение пропускной способности с примерно 28,0 циклов на байт до 3,5 циклов на байт с AES / GCM по сравнению с Pentium 4 без ускорения. [31] [32] [ неудавшаяся проверка ] [ нужен более точный источник ]

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

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

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

  • Полное шифрование диска Apple FileVault 2 в macOS 10.10+
  • Программное обеспечение NonStop SSH2 , NonStop cF SSL Library и BackBox VTC в HPE Tandem NonStop OS L-серии [33] [34] [35]
  • API криптографии: новое поколение (CNG) (требуется Windows 7) [36]
  • Crypto API Linux
  • Java 7 HotSpot
  • Службы сетевой безопасности (NSS) версии 3.13 и выше [37] (используются Firefox и Google Chrome )
  • Криптографическая структура Solaris [38] в Solaris 10 и более поздних версиях
  • FreeBSD «ы OpenCrypto API (AESNI (4) драйвер) [39]
  • OpenSSL 1.0.1 и выше [40]
  • GnuTLS [41]
  • Либсодиум [42]
  • FLAM / FLUC 5.1.08 (выпущен 24.08.2015) и выше [43]
  • VeraCrypt [44]
  • Голанг [45]
  • BitLocker [46]
  • Boxcryptor [47]

См. Также [ править ]

  • Расширенные векторные расширения (AVX)
  • Набор инструкций CLMUL
  • Набор инструкций FMA (FMA3, FMA4)
  • RDRAND

Заметки [ править ]

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

Ссылки [ править ]

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

Внешние ссылки [ править ]

  • Стандартные инструкции Intel Advanced Encryption (AES-NI)
  • Технический документ набора инструкций AES (2,93 МБ, PDF) от Intel