VIA PadLock — это расширение набора инструкций центрального процессора (ЦП) для архитектуры набора инструкций микропроцессора x86 (ISA), используемой в процессорах, производимых VIA Technologies и Zhaoxin . Представленные в 2003 году с ЦП VIA Centaur , дополнительные инструкции обеспечивают аппаратно-ускоренную генерацию случайных чисел (RNG), Advanced Encryption Standard (AES), SHA-1 , SHA256 и модульное умножение Монтгомери . [1] [2]
Набор инструкций PadLock можно разделить на четыре подмножества: [1]
XSTORE
: Хранить доступные случайные байты (также известные как XSTORERNG
)REP XSTORE
: Хранить случайные байты ECXREP XCRYPTECB
: Электронная кодовая книгаREP XCRYPTCBC
: Цепочка блоков шифраREP XCRYPTCTR
: Режим счетчика (ACE2)REP XCRYPTCFB
: Режим обратной связи по шифрованиюREP XCRYPTOFB
: Режим выходной обратной связиREP XSHA1
: Хэш-функция SHA-1REP XSHA256
: Хэш-функция SHA-256REP MONTMUL
Возможность блокировки указывается с помощью CPUID
инструкции с EAX = 0xC0000000
. Если полученный результат EAX >= 0xC0000001
, то ЦП знает о возможностях Centaur. Дополнительный запрос с EAX = 0xC0000001
then возвращает поддержку PadLock в EDX
. Возможность блокировки может быть включена или выключена с помощью MSR 0X1107
. [1]
VIA PadLock, обнаруженный в некоторых процессорах Zhaoxin, имеет добавленные хеширование SM3 и блочный шифр SM4 . [3]