Прескачане към съдържанието

AES-NI

Архитектурна справкаFeex

AES-NI е x86 разширение на набора от инструкции за рундовете на шифриране и дешифриране по AES и свързаните операции с ключовия график. То ускорява части от дадена криптографска реализация, вместо да предоставя цялостен защитен протокол.

Какво трябва да знаете

AES-NI е x86 разширение на набора от инструкции за рундовете на шифриране и дешифриране по AES и свързаните операции с ключовия график. То ускорява части от дадена криптографска реализация, вместо да предоставя цялостен защитен протокол.

Как работи

Инструкции като AESENC и AESDEC трансформират 128-битово AES състояние, докато отделни форми обработват крайните рундове и подпомагат разгръщането на ключа. Дадена AES реализация избира броя и подредбата на рундовете за съответната дължина на ключа. Инструкциите сами по себе си не избират режим, не заделят еднократни числа (nonces), не удостоверяват автентичността на съобщения и не защитават съхраняваните ключове.

Къде е полезно

Поддържана криптографска библиотека може да пренасочва към AES-NI за поддържан AES режим. AES-GCM изисква и обработка за автентификация, често ускорявана с безпреносно умножение (carry-less multiplication). Договарянето на протокола, структурата на записите и дължината на съобщенията влияят на цялостната производителност от край до край.

Как се проверява поддръжката и активирането

CPUID.01H:ECX бит 25 указва традиционния AES-NI. Средата за изпълнение трябва да управлява XMM състоянието. Проверявайте изискванията за VAES и векторно състояние отделно за по-широки VEX или EVEX реализации и използвайте поддържаните механизми за пренасочване на криптографската библиотека.

Използвайте поддържана криптографска реализация, която управлява избора на функции, условията за грешки и пълния алгоритъм. Хардуерното ускорение предоставя примитиви; управлението на ключове, автентификацията, правилата за еднократни числа и изборът на протокол остават отговорност на софтуера.

Какво не гарантира тази функция

Поддръжката на AES-NI не е сертификат за сигурност, присъда за зловреден софтуер или гаранция срещу странични канали в околния код. AES не е SHA. VAES се изброява отделно, а дадена гост-система може да скрие AES-NI дори когато хостът разполага с него.

Съвместимост и производителност на практика

Полето за характеристика не е сертификация на продукт или доказателство, че конкретно приложение е защитено. Производителността зависи от размерите на съобщенията, режима, пакетирането и останалата част от протокола. Проверете действителния доставчик и поддържайте неговите актуализации за сигурност редовно.

Практически контролен списък за проверка

  1. Запишете точния модел на процесора или платформата, както и използваните версии на приложението, операционната система и средата за изпълнение. Запазете точния текст на действителната грешка или изискване.
  2. Проверете документацията от производителя за този точен модел, след което инспектирайте действителните възможности и активираното състояние в средата, където работи програмата.
  3. Сравнете всяко изискване на избрания двоичен файл или бекенд. Подобно наименувана функция, псевдоним или общ технологичен етикет не са достатъчни.
  4. Потвърдете, че приложението е избрало планираната реализация. Използвайте неговата документирана диагностика и поддържан резервен вариант, когато изискванията не са изпълнени.
  5. Правете по една поддържана промяна наведнъж и повтаряйте същото работно натоварване. Запазете достъпни оригиналната конфигурация и плана за възстановяване.

Ако функцията е посочена, но софтуерът не може да я използва

Започнете с точния компонент, който дава грешка. Хардуерната база данни описва записаните възможности; операционната система или хипервайзорът могат да предоставят различна ефективна среда. Грешка за невалидна инструкция (illegal-instruction) също изисква разследване на действителната сриваща се инструкция и компилацията на двоичния файл, тъй като повреда или несвързана неподдържана инструкция може да предизвика подобен симптом.

Инсталирайте версията на приложението, драйвера или средата за изпълнение, която се поддържа за точната платформа, и използвайте документираната от производителя базова или резервна компилация, ако е необходимо. Софтуерна актуализация не може да създаде инструкция, която липсва в процесора. Промените във фърмуера и политиките за сигурност трябва да следват процедурата на производителя на системата и план за възстановяване, а не общи съвети за оптимизация.

Източници и обхват на това обяснение

Intel 64 and IA-32 Architectures Software Developer's Manual

Тези източници установяват архитектурното поведение и софтуерните изисквания. Те не проверяват независимо всяка стойност на параметър на свързана страница за хардуерен модел. За поддръжка на даден модел използвайте данните от производителя на съответната страница и проверете ефективната системна конфигурация. Тази статия не предоставя бенчмарк, сертификация или дата на независим преглед.

Източници и проверка

Редакционна собственост: Feex. Не е записана дата на независим преглед. Как проучваме.

  • Intel 64 and IA-32 Architectures Software Developer's Manual · Томове 1 и 2 описват посочените семейства инструкции и CPUID; Том 3 описва състоянието, страницирането, VMX и контролите за защита. Документацията за архитектурата не гарантира поддръжка за конкретен модел.

Беше ли полезна тази статия?

Достатъчно е "да" или "не". Изберете причина, ако желаете, или добавете кратка бележка.

Беше ли полезна тази статия?