¿Cuál es la diferencia entre el cifrado SHA y SHA-1?

SHA es un acrónimo de Secure Hash Algorithm, un estándar de cifrado inventado por la Agencia de Seguridad Nacional y publicado por los Institutos Nacionales de Estándares y Tecnología. Se descubrió que el algoritmo SHA original tenía debilidades en sus métodos de encriptación y se reemplazó con SHA-1 para mayor seguridad.

Algoritmo de hash seguro

SHA es una función hash criptográfica. Una función hash toma un texto inicial sin cifrar, llamado texto sin formato, y produce un número teóricamente único que constituye el mensaje cifrado. SHA crea un número de 160 bits, que es un número entre 0 y 1,46 x 10^48. No es posible garantizar que este número sea único para todos los posibles mensajes de texto sin formato, ya que el número de dichos mensajes es teóricamente infinito, pero las probabilidades son de aproximadamente 2^80, o 1,21 x 10^24, contra dos mensajes que produzcan el mismo cifrado. resultado. Si esto ocurre, se llama colisión. Una colisión proporciona un ataque matemático a un algoritmo de cifrado, lo que hace posible que un criptógrafo descifre el texto sin formato.

SHA-0 y SHA-1

Después de su publicación, se descubrieron fallas en el algoritmo SHA original que permitieron que un ataque criptográfico produjera colisiones de hash, lo que debilitó gravemente su eficacia. Se desarrolló una versión SHA revisada, SHA-1, que creó los mismos resultados de 160 bits sin las fallas originales en el algoritmo. El SHA original se renombró retroactivamente SHA-0 para distinguir entre su uso y el uso de SHA-1.

Cambios en SHA-1

Las fallas originales en SHA-0 nunca se han publicado, ya que estas fallas proporcionan un conjunto de herramientas para cualquier atacante que intente descifrar un mensaje usando el cifrado SHA-0. La única información pública sobre las debilidades en el algoritmo original indica que las colisiones hash son más probables que aleatorias cuando se usa SHA-0, y que las colisiones que usan el método no publicado se eliminan cuando se usa SHA-1. Dado que SHA-1 y SHA-0 producen resultados matemáticos de la misma longitud, SHA-1 se puede usar como un reemplazo directo en el software de computadora para el algoritmo SHA-0 original sin requerir reescrituras importantes en el resto del software.

SHA-2 y SHA-3

Se ha encontrado que SHA-1 es más robusto que SHA-0, pero deja espacio para mejorar. Un análisis matemático de los resultados de SHA-1 demostró un método por el cual el cifrado SHA-1 podría romperse 2000 veces más rápido de lo que sería teóricamente posible al verificar las 10 ^ 48 combinaciones posibles de su salida. Dado que un algoritmo criptográfico ideal evita mejoras en la velocidad de descifrado de este tipo, el algoritmo SHA-2 evita este ataque y aumenta el tamaño de hash posible a 512 bits, o 1,34 x 10^154. SHA-3, un algoritmo de cifrado aún más potente, se encuentra actualmente en desarrollo.