VIA PadLock es una extensión del conjunto de instrucciones de la unidad central de procesamiento (CPU) de la arquitectura del conjunto de instrucciones (ISA) del microprocesador x86 que se encuentra en los procesadores producidos por VIA Technologies y Zhaoxin . Introducidas en 2003 con las CPU VIA Centaur , las instrucciones adicionales proporcionan generación de números aleatorios acelerada por hardware (RNG), Estándar de cifrado avanzado (AES), SHA-1 , SHA256 y multiplicación modular de Montgomery . [1] [2]
Instrucciones
El conjunto de instrucciones PadLock se puede dividir en cuatro subconjuntos: [1]
- Generación de números aleatorios (RNG)
XSTORE: Almacenar bytes aleatorios disponibles (también conocidos comoXSTORERNG)REP XSTORE: Almacenar bytes aleatorios de ECX
- Motor de criptografía avanzada (ACE): para criptografía AES; dos versiones
REP XCRYPTECB: Libro de códigos electrónicosREP XCRYPTCBC: Encadenamiento de bloques cifradosREP XCRYPTCTR:Modo contador (ACE2)REP XCRYPTCFB:Modo de retroalimentación de cifradoREP XCRYPTOFB:Modo de retroalimentación de salida
- Motor de hash SHA (PHE)
REP XSHA1:Función hash SHA-1REP XSHA256:Función hash SHA-256
- Multiplicador de Montgomery (PMM)
REP MONTMUL
La capacidad de bloqueo por candado se indica mediante una CPUIDinstrucción con EAX = 0xC0000000. Si el resultado es EAX >= 0xC0000001, la CPU conoce las características de Centaur. Una solicitud adicional con EAX = 0xC0000001devuelve la compatibilidad con PadLock en EDX. La capacidad de bloqueo por candado se puede activar o desactivar con MSR 0X1107. [1]
El VIA PadLock que se encuentra en algunas CPU Zhaoxin tiene hash SM3 y cifrado de bloque SM4 agregado. [3]
CPU con candado
- Todas las CPU VIA Nano admiten SHA, AES y RNG.
- Todas las CPU VIA Eden desde 2003 (C3 Nehemiah) admiten AES y RNG. Todas las lanzadas desde 2006 admiten AES, RNG, SHA y PMM.
- Todas las CPU VIA C7 admiten AES, RNG, SHA y PMM.
Software de soporte
- El kernel de Linux desde la versión 2.6.11 tiene PadLock AES. PadLock SHA se introdujo en la versión 2.6.19. Estos se manejan como "dispositivos criptográficos de hardware". [4]
- FreeBSD , NetBSD y OpenBSD admiten PadLock. [5]
- OpenSSL admite PadLock AES y SHA desde 2004 (0.9.7f/0.9.8a). [6]
- El ensamblador GNU soporta PadLock desde 2004. [7]
Véase también
- Conjunto de instrucciones AES
- Modo de funcionamiento del cifrado por bloques
- Extensiones Intel SHA
RDRAND
Referencias
- ^ abc "Guía de programación de VIA PadLock". 4 de agosto de 2005. Archivado desde el original el 26 de mayo de 2010.
- ^ "VIA PadLock - Cifrado increíblemente rápido". www.logix.cz .
- ^ "CPU de 4 núcleos de la serie Kaixian ZX-C +". Shanghai Zhaoxin Semiconductor Co., Ltd.
- ^ "Soporte de VIA PadLock para Linux". www.logix.cz .
- ^ – Manual de interfaces del núcleo de FreeBSD
- ^ "openssl/engines/e_padlock.c". GitHub . 26 de noviembre de 2022.
- ^ "Se agregaron nuevas instrucciones para la próxima versión del núcleo VIA PadLock. · bminor/binutils-gdb@30d1c83". GitHub .