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 cifrado y fue reemplazado por SHA-1 para mayor seguridad.
Algoritmo 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 aproximadamente 2 ^ 80, o 1,21 x 10 ^ 24, contra dos mensajes que producen el mismo cifrado resultado. Si esto ocurre, se denomina 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.
Video del día
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, debilitando severamente su efectividad. 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 como 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 brindan 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 del algoritmo original indica que las colisiones hash son más probables que por azar cuando se usa SHA-0, y que las colisiones que usan el método no publicado se eliminan cuando se usa SHA-1. Como SHA-1 y SHA-0 producen resultados matemáticos de la misma longitud, SHA-1 se puede usar como reemplazo directo en 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 margen de mejora. Un análisis matemático de los resultados de SHA-1 demostró un método mediante el cual el cifrado SHA-1 podría romperse 2,000 veces más rápido de lo que sería teóricamente posible al verificar las 10 ^ 48 combinaciones posibles de sus producción. Como un algoritmo criptográfico ideal evita mejoras de 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 poderoso, está actualmente en desarrollo.