Un algoritmo hash seguro, a menudo conocido simplemente como “SHA”, es un algoritmo hash que se considera criptográficamente seguro. En general, las funciones hash se utilizan para ordenar y organizar datos digitales en paquetes más pequeños y categorizados. Los algoritmos son los programas que impulsan las funciones, y la seguridad de estos algoritmos es importante en la medida en que controla la facilidad con la que se pueden desbloquear y reorganizar los datos. La seguridad que deben tener las cosas suele depender de las circunstancias. Muchos desarrolladores de software y código quieren algoritmos impenetrables porque sus métodos para clasificar temas y establecer conexiones son propietarios y los utilizan para ganar dinero. En otros casos, los datos en sí son muy sensibles, como suele ser el caso de cosas como registros médicos o ciertos documentos gubernamentales. La mecánica real de los SHA tiende a ser muy complicada, y por lo general se requiere al menos cierto grado de conocimiento técnico para comprender completamente cómo funcionan y cómo se desarrollan. Como la mayoría de las cosas tecnológicas, también ha habido una evolución ascendente en el desarrollo; Los modelos anteriores han sido reemplazados en gran medida y casi constantemente se están introduciendo diseños más nuevos y más seguros.
Comprensión de los algoritmos hash en general
El panorama digital moderno contiene cientos de millones de puntos de datos, todos los cuales ocupan una red de interconexiones y puntos en común, tanto en los sitios web como en la esfera social cuando se trata de mensajes y publicaciones generados por los usuarios. El hash es una forma de amalgamar datos que son similares o relacionados, de modo que formen una especie de compendio o una «web dentro de una web» más pequeña e interrelacionada. Los algoritmos de hash seguros buscan hacer esta organización de una manera eficiente y segura.
Los datos originales, una vez procesados por un SHA, normalmente no se pueden reconstruir sin una enorme cantidad de potencia informática. Los algoritmos seguros se utilizan a menudo en combinación con otros algoritmos para autenticar mensajes, incluidas las firmas digitales.
Cómo se implementan
Algunos enrutadores de red y firewalls implementan SHA directamente en su hardware. Esto permite que los paquetes de datos se autentiquen con un impacto limitado en el rendimiento. El software especialmente diseñado es otra opción, incluidas muchas implementaciones de código abierto. Por ejemplo, el Instituto Nacional de Estándares y Tecnología de EE. UU. (NIST) y el Establecimiento Canadiense de Seguridad de las Comunicaciones (CSE) administran conjuntamente el Programa de Verificación de Módulos Criptográficos (CMVP). Este programa oficial certifica el correcto funcionamiento de implementaciones de algoritmos seguros para aplicaciones sensibles.
Normalización
El gobierno de EE. UU. Ha estandarizado al menos seis algoritmos hash seguros. SHA-0 y SHA-1 fueron los primeros modelos desarrollados en la década de 1990. La serie SHA-2 desarrollada en la década de 2000 incluía SHA-224, -256, -384 y -512. Estos están diseñados de manera que dos documentos con contenido diferente generalmente producen dos conjuntos únicos de valores hash, lo que es realmente útil en términos de evitar colisiones hash.
Primeras iteraciones
El algoritmo SHA-0, publicado por primera vez en 1993 por el NIST, se interrumpió rápidamente después de que se encontró una debilidad significativa. Fue reemplazado por SHA-1 en 1995, que incluye un paso computacional adicional que aborda los problemas no revelados de SHA-0. Ambos algoritmos codifican un mensaje de hasta 264-1 bits en un «resumen» de 160 bits. Ambos utilizan un tamaño de bloque de 512 bits y un tamaño de palabra de 32 bits en su operación.
SHA-1 se utiliza en algunos protocolos de Internet y herramientas de seguridad comunes. Estos incluyen IPsec, PGP, SSL, S / MIME, SSH y TLS. SHA-1 también se usa típicamente como parte del esquema de protección para documentos gubernamentales no clasificados. Algunas partes del sector privado también utilizan este algoritmo para cierta información confidencial. Sin embargo, se retiró formalmente del uso del gobierno general en 2010.
Evolución y desarrollo continuo
SHA-224, -256, -384 y -512 fueron publicados por el NIST entre 2001 y 2004. Estos cuatro algoritmos, también conocidos como la familia SHA-2, son generalmente más robustos que SHA-1. SHA-224 y SHA-256 utilizan el mismo bloque, palabra y tamaño máximo de mensaje de entrada que SHA-1. Por el contrario, SHA-224 produce un resumen de 224 bits, mientras que SHA-256 crea un resumen de 256 bits. SHA-384 y SHA-512 aumentan el tamaño del bloque a 1024 bits, el tamaño de la palabra a 64 bits y la longitud máxima del mensaje de entrada a 2128-1 bits. El resumen producido por SHA-384 tiene 384 bits de longitud, mientras que el resumen SHA-512 contiene 512 bits.
Al igual que SHA-0 y SHA-1, la familia SHA-2 fue diseñada por la Agencia de Seguridad Nacional de EE. UU. (NSA). Aunque no se han revelado públicamente fallas graves en SHA-2, NIST ha abierto una competencia para desarrollar el próximo algoritmo hash seguro. Es probable que este nuevo algoritmo, que se llamará SHA-3, se elija entre una colección de entradas públicas. Se espera que sea un nuevo diseño, no basado en los algoritmos existentes.