Desde el microprocesador SPARC T4, hay nuevas instrucciones para llevar a cabo funciones criptográficas directamente en el hardware. Las instrucciones son sin privilegios. Por lo tanto, cualquier programa puede utilizar las instrucciones sin requerir ningún entorno de núcleo, permisos de usuario root u otra configuración especial. La criptografía se realiza directamente en el hardware en lugar de utilizar diversas instrucciones de bajo nivel. Por lo tanto, las operaciones criptográficas son más rápidas comparadas con las operaciones en sistemas cuyos procesadores SPARC anteriores tenían unidades de procesamiento independientes para la criptografía.
La siguiente comparación muestra las diferencias en el flujo de datos entre sistemas SPARC T-3 y sistemas SPARC T-4 con optimizaciones criptográficas.
Figura 2-1 Comparación de flujo de datos entre Sistemas SPARC T
En la siguiente tabla se proporciona una comparación detallada de funciones criptográficas en unidades de microprocesador de SPARC T combinadas con versiones específicas de Oracle Solaris.
|
Las instrucciones criptográficas de T4 incluyen lo siguiente:
aes_kexpand0, aes_kexpand1, aes_kexpand2
Estas instrucciones realizan la expansión de clave. Expanden la clave proporcionada por el usuario de 128 bits, 192 bits o 256 bits en una planificación de clave que se utiliza de manera interna durante el cifrado y el descifrado. La instrucción de aes_kexpand2 sólo se utiliza para AES-256. Las otras dos instrucciones de aes_kexpand se utilizan para las tres longitudes de clave: AES-128, AES-192 y AES-256.
aes_eround01, aes_eround23, aes_eround01_l, aes_eround_23_l
Estas instrucciones se utilizan para rondas o transformaciones del cifrado AES. Según el estándar AES en FIPS 197, la cantidad de rondas utilizadas (por ejemplo 10, 12 o 14) varía según la longitud de la clave AES, ya que las claves más largas, en principio, indican el deseo de un cifrado más sólido a costas de mayores cálculos.
aes_dround01, aes_dround23, aes_dround01_l, aes_dround_23_l
Estas instrucciones se utilizan para rondas del descifrado AES de forma similar que con el cifrado.
Instrucciones para DES/DES-3, Kasumi, Camellia, multiplicar/raíz cuadrada de Montgomery (para RSA Bignum) y sumas de comprobación de CRC32c
Instrucciones de resumen de MD5, SHA1 y SHA2
Las instrucciones criptográficas de hardware de SPARC T4 están disponibles y se utilizan automáticamente en sistemas SPARC T4 que ejecutan Oracle Solaris 11 mediante el motor t4 integrado en el microprocesador T4 del sistema. A partir de Oracle Solaris 11.2, las instrucciones están incluidas en el código ascendente de OpenSSL. Por lo tanto, en esta versión, OpenSSL 1.0.1e se entrega con un parche para activar el uso de las instrucciones.
Para obtener más información sobre las instrucciones de T4, consulte los siguientes artículos.
"Cómo identificar si se está utilizando SPARC T4 criptográfico"
"Esperando avances criptográficos con el procesador T4 y Oracle Solaris 11"
"Optimizaciones criptográficas y resumen de SPARC T4 en Solaris 11.1"
Para determinar si las optimizaciones de T4 se emplean, utilice el comando isainfo. La inclusión de sparcv9 y aes en la salida indica que el sistema está utilizando las optimizaciones.
$ isainfo -v 64-bit sparcv9 applications crc32c cbcond pause mont mpmul sha512 sha256 sha1 md5 camellia kasumi des aes ima hpc vis3 fmaf asi_blk_init vis2 vis popc
Para comprobar la versión de OpenSSL que se está ejecutando en el sistema, escriba openssl version. La salida es similar a la siguiente:
OpenSSL 1.0.0j 10 May 2012
Para determinar si su sistema admite OpenSSL con optimizaciones de SPARC T4, compruebe la biblioteca de libcrypto.so de la siguiente forma:
# nm /lib/libcrypto.so.1.0.0 | grep des_t4 [5239] | 504192| 300|FUNC |GLOB |3 |12 |des_t4_cbc_decrypt [5653] | 503872| 300|FUNC |GLOB |3 |12 |des_t4_cbc_encrypt [4384] | 505024| 508|FUNC |GLOB |3 |12 |des_t4_ede3_cbc_decrypt [2963] | 504512| 508|FUNC |GLOB |3 |12 |des_t4_ede3_cbc_encrypt [4111] | 503712| 156|FUNC |GLOB |3 |12 |des_t4_key_expand
Si el comando no genera ninguna salida, el sistema no admite las optimizaciones de SPARC T4 para OpenSSL.