Patent ES-2886348-T3 (ES)
Title: Procedimiento y aparato para procesar un algoritmo de hashing seguro SHA-2
Inventor: YAP KIRK S
IPC: G06F12/0875
Filed: 2012-03-30
Granted: 2021-12-17
Abstract: Un aparato, que comprende: una pluralidad de registros de propósito general de 64 bits; una pluralidad de registros de tipo "única instrucción, múltiples datos" (SIMD) de 128 bits; una memoria caché de datos; una memoria caché de instrucciones; una memoria caché de nivel 2 (L2) acoplada a la memoria caché de datos y acoplada a la memoria caché de instrucciones; una unidad de predicción de rama; una memoria intermedia de traducción anticipada de instrucciones (TLB) acoplada a la memoria caché de instrucciones; una unidad de extracción de instrucciones; una unidad de decodificación acoplada a la unidad de extracción de instrucciones, donde la unidad de decodificación decodifica instrucciones, incluida una instrucción de planificación de algoritmo hash seguro (SHA) 256, teniendo la instrucción de planificación de SHA 256 un primer campo para especificar un primer registro de origen SIMD de 128 bits de los registros SIMD de 128 bits, donde el primer registro de origen SIMD de 128 bits almacena un primer operando que va a incluir un primer elemento de datos de 32 bits en bits [31:0], un segundo elemento de datos de 32 bits en bits [63:32], un tercer elemento de datos de 32 bits en bits [95:64], y un cuarto elemento de datos de 32 bits en bits [127:96], teniendo la instrucción de planificación de SHA 256 un segundo campo para especificar un segundo registro de origen SIMD de 128 bits de los registros SIMD de 128 bits, donde el segundo registro de origen SIMD de 128 bits almacena un segundo operando que va a incluir un quinto elemento de datos de 32 bits en bits [31:0], un sexto elemento de datos de 32 bits en bits [63:32], un séptimo elemento de datos de 32 bits en bits [95:64], y un octavo elemento de datos de 32 bits en bits [127:96]; y una unidad de ejecución acoplada a la unidad de decodificación y acoplada a los registros SIMD de 128 bits, donde la unidad de ejecución ejecuta la instrucción de planificación SHA 256 y produce un resultado que debe incluir: un primer elemento de datos de resultado de 32 bits en bits [31:0] que debe ser igual a una suma de a) el primer elemento de datos de 32 bits del primer operando y b) un valor igual al segundo elemento de datos de 32 bits rotado a la derecha siete bits, y sometido a una operación OR-exclusiva con el segundo elemento de datos de 32 bits rotado a la derecha dieciocho bits, y sometido a una operación OR-exclusiva con el segundo elemento de datos de 32 bits desplazado a la derecha tres bits; un segundo elemento de datos de resultado de 32 bits en bits [63:32] que debe ser igual a una suma de a) el segundo elemento de datos de 32 bits del primer operando y b) un valor igual al tercer elemento de datos de 32 bits rotado a la derecha siete bits, y sometido a una operación OR-exclusiva con el tercer elemento de datos de 32 bits rotado a la derecha dieciocho bits, y sometido a una operación OR-exclusiva con el tercer elemento de datos de 32 bits desplazado a la derecha tres bits; un tercer elemento de datos de resultado de 32 bits en bits [95:64] que debe ser igual a una suma de a) el tercer elemento de datos de 32 bits del primer operando y b) un valor igual al cuarto elemento de datos de 32 bits rotado a la derecha siete bits, y sometido a una operación OR-exclusiva con el cuarto elemento de datos de 32 bits rotado a la derecha dieciocho bits, y sometido a una operación OR-exclusiva con el cuarto elemento de datos de 32 bits desplazado a la derecha tres bits; y un cuarto elemento de datos de resultado de 32 bits en bits [127:96] que debe ser igual a una suma de a) el cuarto elemento de datos de 32 bits del primer operando y b) un valor igual al quinto elemento de datos de 32 bits rotado a la derecha siete bits, y sometido a una operación OR-exclusiva con el quinto elemento de datos de 32 bits rotado a la derecha dieciocho bits, y sometido a una operación OR-exclusiva con el quinto elemento de datos de 32 bits desplazado a la derecha tres bits.