stringtranslate.com

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

Набор инструкций AES (расширенный стандарт шифрования) — это набор инструкций, специально разработанных для эффективного выполнения операций шифрования и дешифрования AES . Эти инструкции обычно встречаются в современных процессорах и могут значительно ускорить операции AES по сравнению с программными реализациями. Набор инструкций AES включает инструкции для расширения ключа , шифрования и дешифрования с использованием ключей различного размера (128-бит, 192-бит и 256-бит).

Набор инструкций часто реализуется как набор инструкций, которые могут выполнять один раунд AES, а также специальная версия для последнего раунда, которая имеет немного другой метод.

Когда AES реализуется в виде набора инструкций, а не в виде программного обеспечения, он может повысить безопасность, поскольку его поверхность атаки по побочным каналам уменьшается. [ нужна цитата ]

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

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

Более расширенная версия AES-NI, инструкции AVX-512 Vector AES (VAES) , находится в AVX-512 . [2]

инструкции

Интел

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

АМД

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

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

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

Процессоры x86 с интерфейсами ускорения без AES-NI

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

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

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

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

Marvell Kirkwood был встроенным ядром ряда SoC от Marvell Technology . Эти процессоры SoC (ARM, mv_cesa в Linux) используют ускоренную обработку AES на основе драйверов. (См. Crypto API (Linux) .)

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

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

МОЩНАЯ архитектура

Начиная с Power ISA v.2.07 , инструкции vcipherреализуют vcipherlastодин раунд AES напрямую. [29]

IBM z/Архитектура

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

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

Производительность

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

Поддерживающее программное обеспечение

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

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

Приложение за пределами AES

Ограниченное использование набора инструкций AES предполагает использование его в блочных шифрах с S-блоком аналогичной структуры с использованием аффинного изоморфизма для преобразования между ними. SM4 и Camellia были ускорены с использованием AES-NI. [51] [52] Новые инструкции поля Галуа AVX-512 (GFNI) позволяют реализовать эти S-блоки более прямым способом. [53]

Были созданы новые криптографические алгоритмы, специально использующие части алгоритма AES, чтобы набор инструкций AES можно было использовать для ускорения. Семейство AEGIS, предлагающее аутентифицированное шифрование , работает как минимум в два раза быстрее, чем AES. [54] AEGIS является «дополнительным финалистом высокопроизводительных приложений» конкурса CAESAR . [55]

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

Примечания

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

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

  1. ^ "Сеть программного обеспечения Intel" . Интел. Архивировано из оригинала 7 апреля 2008 года . Проверено 5 апреля 2008 г.
  2. ^ «Расширения набора команд архитектуры Intel и справочник по программированию будущих функций» . Интел . Проверено 16 октября 2017 г.
  3. ^ Шей Герон (2010). «Информационный документ о наборе инструкций Intel Advanced Encryption Standard (AES)» (PDF) . Интел . Проверено 20 сентября 2012 г.
  4. ^ «Расширенный поиск по спецификациям продуктов Intel» . Интел АРК .
  5. ^ Шимпи, Ананд Лал. «Обзор Sandy Bridge: протестированы Intel Core i7-2600K, i5-2500K и Core i3-2100».
  6. ^ «Сравнение спецификаций продуктов Intel» .
  7. ^ «Поддержка AES-NI в TrueCrypt (проблема Sandy Bridge)» . 27 января 2022 г.
  8. ^ «Некоторые продукты могут поддерживать новые инструкции AES при обновлении конфигурации процессора, в частности, i7-2630QM/i7-2635QM, i7-2670QM/i7-2675QM, i5-2430M/i5-2435M, i5-2410M/i5-2415M. Пожалуйста, свяжитесь с OEM-производителем для получения BIOS, который включает последнее обновление конфигурации процессора».
  9. ^ «Процессор Intel Core i3-2115C (кэш 3M, 2,00 ГГц) Технические характеристики» .
  10. ^ «Процессор Intel Core i3-4000M (кэш 3M, 2,40 ГГц) Технические характеристики продукта» .
  11. ^ «Следуя инструкциям». АМД. 22 ноября 2010 года. Архивировано из оригинала 26 ноября 2010 года . Проверено 4 января 2011 г.
  12. ^ Дэн Андерсон (2011). «Механизм SPARC T4 OpenSSL». Оракул . Проверено 20 сентября 2012 г.
  13. ^ Ричард Гризентуэйт (2011). «Обзор технологии ARMv8-A» (PDF) . РУКА. Архивировано из оригинала (PDF) 10 июня 2018 г. Проверено 20 сентября 2012 г.
  14. ^ «Технические характеристики семейства процессоров AMD Geode LX» . АМД.
  15. ^ "Средство безопасности VIA Padlock" . С ПОМОЩЬЮ. Архивировано из оригинала 15 мая 2011 г. Проверено 14 ноября 2011 г.
  16. ^ ab Криптографические аппаратные ускорители на OpenWRT.org
  17. ^ "Процессоры VIA Eden-N" . С ПОМОЩЬЮ. Архивировано из оригинала 11 ноября 2011 г. Проверено 14 ноября 2011 г.
  18. ^ «Процессоры VIA C7» . С ПОМОЩЬЮ. Архивировано из оригинала 19 апреля 2007 г. Проверено 14 ноября 2011 г.
  19. ^ «Справочное руководство по архитектуре Arm Armv8, для профиля архитектуры Armv8-A» . РУКА. 22 января 2021 г.
  20. ^ «Состояние драйвера системы безопасности/криптомеханизма» . sunxi.montjoie.ovh .
  21. ^ «Криптографическое ускорение Linux на i.MX6» (PDF) . Фонд Linux. Февраль 2017 г. Архивировано из оригинала (PDF) 26 августа 2019 г. Проверено 2 мая 2018 г.
  22. ^ «Криптографический модуль в Snapdragon 805 сертифицирован по стандарту FIPS 140-2» . Квалкомм .
  23. ^ "RK3128 - Rockchip Wiki" . Рокчип вики . Архивировано из оригинала 28 января 2019 г. Проверено 2 мая 2018 г.
  24. ^ «Глубокий обзор Samsung Exynos 7420 — внутри современного 14-нм процессора» . АнандТех .
  25. ^ «Техническое описание Sipeed M1, версия 1.1» (PDF) . Камами.пл . 06.03.2019 . Проверено 03 мая 2021 г.
  26. ^ «Техническое описание серии ESP32» (PDF) . www.espressif.com . 19 марта 2021 г. Проверено 03 мая 2021 г.
  27. ^ «Процессор ESP32-C3 WiFi и BLE RISC-V полностью совместим с ESP8266» . Программное обеспечение CNX . Проверено 22 ноября 2020 г.
  28. ^ "BL602-Bouffalo Lab (Nanjing) Co., Ltd" . www.bouffalolab.com . Архивировано из оригинала 18 июня 2021 г. Проверено 03 мая 2021 г.
  29. ^ «Power ISA версии 2.07 B» . Проверено 7 января 2022 г.
  30. ^ «Криптография IBM System z10» . ИБМ . Проверено 27 января 2014 г.
  31. ^ «Использование встроенного ускорителя AES XMEGA» (PDF) . Проверено 3 декабря 2014 г.
  32. ^ «Cavium Networks запускает самую широкую в отрасли линейку одно- и двухъядерных процессоров OCTEON на базе MIPS64, ориентированных на интеллектуальные сети следующего поколения» . Архивировано из оригинала 07.12.2017 . Проверено 17 сентября 2016 г.
  33. ^ П. Шмид и А. Роос (2010). «Анализ производительности AES-NI». Аппаратное обеспечение Тома . Проверено 10 августа 2010 г.
  34. ^ Т. Кровец, В. Дай (2010). «Как получить быстрые вызовы AES?». Группа пользователей Crypto++ . Проверено 11 августа 2010 г.
  35. ^ «Бенчмарки Crypto++ 5.6.0 Pentium 4» . Сайт Крипто++ . 2009. Архивировано из оригинала 19 сентября 2010 года . Проверено 10 августа 2010 г.
  36. ^ «Справочное руководство NonStop SSH» . Проверено 9 апреля 2020 г.
  37. ^ «Справочное руководство по библиотеке SSL NonStop cF» . Проверено 9 апреля 2020 г.
  38. ^ «Опция шифрования ленты BackBox H4.08» . Проверено 9 апреля 2020 г.
  39. ^ «Стандартные инструкции Intel Advanced Encryption (AES-NI)» . Интел. 2 марта 2010 года. Архивировано из оригинала 7 июля 2010 года . Проверено 11 июля 2010 г.
  40. ^ «Усовершенствования AES-NI для NSS в системах Sandy Bridge». 02 мая 2012 г. Проверено 25 ноября 2012 г.
  41. ^ «Руководство системного администратора: Службы безопасности, Глава 13 Криптографическая платформа Solaris (обзор)» . Оракул. Сентябрь 2010 года . Проверено 27 ноября 2012 г.
  42. ^ «Примечания к выпуску FreeBSD 8.2» . FreeBSD.org. 24 февраля 2011 г. Архивировано из оригинала 12 апреля 2011 г. Проверено 18 декабря 2011 г.
  43. ^ OpenSSL: веб-интерфейс CVS
  44. ^ «Криптографический бэкэнд (GnuTLS 3.6.14)» . gnutls.org . Проверено 26 июня 2020 г.
  45. ^ «AES-GCM в libsodium» . libsodium.org .
  46. ^ «Аппаратное ускорение». www.veracrypt.fr .
  47. ^ «aes — язык программирования Go» . golang.org . Проверено 26 июня 2020 г.
  48. ^ Шимпи, Ананд Лал. «Обзор Кларкдейла: Intel Core i5 661, i3 540 и i3 530». www.anandtech.com . Проверено 26 июня 2020 г.
  49. ^ «Интеллектуальный брандмауэр хранилища Bloombase StoreSafe» .
  50. ^ «Шифрование Vormetric добавляет поддержку технологии ускорения Intel AES-NI» . 15 мая 2012 г.
  51. Сааринен, Маркку-Юхани О. (17 апреля 2020 г.). «mjosaarinen/sm4ni: Демонстрация того, что инструкции AES-NI можно использовать для реализации китайского стандарта шифрования SM4». Гитхаб .
  52. ^ Кивилинна, Юсси (2013). Блочные шифры: быстрая реализация архитектуры x86-64 (PDF) (магистр наук). Университет Оулу . стр. 33, 42 . Проверено 22 июня 2017 г.
  53. Кивилинна, Юсси (19 апреля 2023 г.). «камелия-симд-аэсни». Гитхаб . Новые процессоры x86-64 также поддерживают новые инструкции Galois Field New (GFNI), которые позволяют более просто реализовать Camellia s-box и обеспечивают еще большую производительность.
  54. ^ Ву, Хунцзюнь; Пренил, Барт. «AEGIS: алгоритм быстрого шифрования с аутентификацией (v1.1)» (PDF) .
  55. ^ Денис, Фрэнк. «Семейство аутентифицированных алгоритмов шифрования AEGIS». cfrg.github.io .

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