VIA PadLock - это расширение набора команд центрального процессора (ЦП) для архитектуры набора команд микропроцессора x86 (ISA), которое используется в процессорах, производимых VIA Technologies и Zhaoxin . Введенные в 2003 году с процессорами VIA Centaur , дополнительные инструкции обеспечивают аппаратное ускорение генерации случайных чисел (RNG), Advanced Encryption Standard (AES), SHA-1 , SHA256 и модульное умножение Montgomery . [1] [2]
Инструкции [ править ]
Набор инструкций PadLock можно разделить на четыре подмножества: [1]
- Генерация случайных чисел (ГСЧ)
XSTORE
: Хранить доступные случайные байты (также известные какXSTORERNG
)REP XSTORE
: Хранить случайные байты ECX
- Advanced Cryptography Engine (ACE) - для шифрования AES; две версии
REP XCRYPTECB
: Электронная кодовая книгаREP XCRYPTCBC
: Цепочка блоков шифровREP XCRYPTCTR
: Режим счетчика (ACE2)REP XCRYPTCFB
: Режим обратной связи шифраREP XCRYPTOFB
: Режим обратной связи по выходу
- Механизм хеширования SHA (PHE)
REP XSHA1
: Хеш-функция SHA-1REP XSHA256
: Хеш-функция SHA-256
- Множитель Монтгомери (PMM)
REP MONTMUL
Возможность навесного замка обозначается в CPUID
инструкции значком EAX = 0xC0000000
. Если результат EAX >= 0xC0000001
, CPU знает о функциях Centaur. Дополнительный запрос с EAX = 0xC0000001
then возвращает поддержку PadLock в EDX
. Замок можно включить или выключить с помощью MSR 0X1107
. [1]
VIA PadLock, установленный на некоторых процессорах Zhaoxin, имеет хеширование SM3 и блочный шифр SM4 . [3]
Процессоры с PadLock [ править ]
- Все процессоры VIA Nano поддерживают SHA, AES и RNG.
- Все процессоры VIA Eden с 2003 года (C3 Nehemiah) поддерживают AES и RNG. Все они, выпущенные с 2006 года, поддерживают AES, RNG, SHA и PMM.
- Все процессоры VIA C7 поддерживают AES, RNG, SHA и PMM.
Вспомогательное программное обеспечение [ править ]
- Ядро Linux, начиная с версии 2.6.11, имеет PadLock AES. PadLock SHA был представлен в 2.6.19. Они обрабатываются как «аппаратные криптоустройства». [4]
- OpenBSD и FreeBSD поддерживают PadLock. [5]
- OpenSSL поддерживает PadLock AES и SHA с 2004 года (0.9.7f / 0.9.8a). [6]
- Ассемблер GNU поддерживает PadLock с 2004 года. [7]
См. Также [ править ]
- Набор инструкций AES
- Режим работы блочного шифра
- Расширения Intel SHA
RDRAND
Ссылки [ править ]
- ^ a b c "Руководство по программированию VIA PadLock" . 4 августа 2005 г.
- ^ "VIA PadLock - Wicked Fast Encryption" . www.logix.cz .
- ^ "4-ядерный ЦП Kaixian ZX-C + Series" . Шанхай Zhaoxin Semiconductor Co., Ltd .
- ^ «Поддержка VIA PadLock для Linux» . www.logix.cz .
- ^ - Руководство по интерфейсам ядра FreeBSD
- ^ "openssl / motors / e_padlock.c" . GitHub .
- ^ "Добавлены новые инструкции для следующей версии ядра VIA PadLock. · Bminor / binutils-gdb @ 30d1c83" . GitHub .