SHA-512
En criptografía, se conoce como SHA-512 al Algoritmo de Hash Seguro (Secure Hash Algorithm) de 512 bits el cual es utilizado para la seguridad criptográfica. Estos algoritmos generan hashes (cadenas de caracteres de longitud fija) irreversibles y únicos. Cuanto mayor sea la cantidad de hashes posibles, menor será la probabilidad de que dos valores creen el mismo hash.
Ejemplos:
- SHA2512("kaixo")=50a7c1e01a3a25b86131098ea7722b4594c853def5fe888bcc7841b073f1ad40ac04180b350a0fc153af23 52222528423b181d37ede96ec7dc6306cd692d26fb
- SHA2512("agur")=a00ef6a71cb41ee851871ea28d0e3ac8ecf2b52de5edc486b53792d583b28382ce960ea3fb1d226241c0ed 8cd96571d9f1b938c2b3c4d34bd19476bb14371775
La familia SHA (Algoritmo de Hash Seguro o Secure Hash Algorithm) es un sistema de funciones hash criptográficas desarrollado por la Agencia Nacional de Seguridad estadounidense y publicado por el National Institute of Standards and Technology (NIST). La primera de estas funciones fue publicada en 1993 bajo el título Secure Hash Standard, FIPS PUB 180, y se conoce oficialmente como SHA. Esta función se ha popularizado como SHA-0, para evitar confusiones con sus sucesoras. Dos años después del desarrollo de la primera función fue publicado el primer sucesor de SHA, que recibió el nombre de SHA-1. Desde entonces se han publicado cuatro variantes más bajo el nombre de SHA-2; las diferencias entre ellas se basan en un diseño algo modificado y en rangos de salida incrementados: se trata de SHA-224, SHA-256, SHA-384, y SHA-512. SHA-3 es el último miembro de la familia, publicado por NIST en agosto de 2015; su algoritmo genera hashes de la misma longitud que SHA-2 mediante la utilización de un método diferente basado en el algoritmo Keccak.
El procesamiento del algoritmo SHA-512 consta de estos 5 pasos:
- El primer paso es agregar bits de relleno hasta que la longitud del bloque sea de 896 bits. Este relleno sirve para ocultar la estructura y longitud del contenido, dificultando al ciberdelincuente su posible ataque. Se empieza añadiendo un "1" seguido de los "0" que sean necesarios hasta que se llega al último bit que debe agregarse.
- Tras esto se añaden los 128 bits restantes, que representan el tamaño del mensaje original, formado un bloque de 1024 bits.
- Se inicializa una caché para almacenar los resultados intermedios y finales de la función hash. Consta de 8 registros (A, B, C, D, E, F, G, H) de 64 bits cada uno.
- Se procesa el mensaje en bloques de 1024 bits. El algoritmo utiliza seis funciones lógicas básicas y consta de 80 operaciones iterativas. Cada ronda toma como entrada el valor de la caché de 512 bits ABCDEFGH y actualiza su contenido.
- Una vez procesados todos los bloques de 1024 bits, la salida obtenida por el último bloque generado por el algoritmo SHA-512 es un resumen de 512 bits.
La ventaja principal de SHA-512 frente a SHA-256 es una mayor resistencia a la colisión, 512 bits frente a 256 en el caso de este algoritmo.