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

SHA instruction extensions

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

Наричано още SHA

Оригиналното разширение x86 SHA ускорява избрани операции, използвани в SHA-1 и SHA-256. Общ етикет за функционалност SHA не установява хардуерна поддръжка за всеки SHA алгоритъм.

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

Оригиналното разширение x86 SHA ускорява избрани операции, използвани в SHA-1 и SHA-256. Общ етикет за функционалност SHA не установява хардуерна поддръжка за всеки SHA алгоритъм.

Как работи

Оригиналното разширение предоставя инструкции за разширяване на съобщенията (message-schedule) и обработка на рундовете за SHA-1 и SHA-256. Софтуерът все още извършва допълването (padding), управлението на блоковете и цялостното изграждане на хеша. SHA-256 принадлежи към SHA-2, но SHA-512 и SHA-3 имат различни алгоритми и не трябва да се подразбират от оригиналния бит за функционалност.

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

Дадена хешираща библиотека може да избере специализирана подпрограма за компресия на SHA-256, когато разширението е използваемо. Малките съобщения могат да изразходват значително време в подготовка и съпътстващ код, докато по-големите натоварвания зависят също от паметта и паралелизма.

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

За оригиналното разширение SHA проверете CPUID.07H.00H:EBX бит 29 след валидиране на поддръжката на leaf. Проверете алгоритъма и точното семейство инструкции, изисквани от библиотеката, а не просто общ етикет sha, показан от помощен инструмент.

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

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

Съществуването на дадена инструкция не прави SHA-1 подходящ за нов протокол за сигурност. Хардуерното ускорение не променя устойчивостта на колизии на даден алгоритъм, нито поправя несигурен дизайн на протокола. По-късните разширения SHA512 имат отделно изброяване.

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

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

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

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

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

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

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

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

Intel 64 and IA-32 Architectures Software Developer's Manual · NIST Secure Hash Standard, FIPS 180-4

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

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

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

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

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

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

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