Qué es el algoritmo SHA-256 y cómo funciona

SHA-256 Algorithm

Una especificación común a todos los certificados SSL, independientemente de la marca, el precio y el tipo, es el algoritmo SHA-256. Verá una mención al respecto en los detalles del certificado o en las características que figuran en la información del producto. Para los no expertos en tecnología, SHA-256 suele ser un completo misterio.

En este artículo, queremos mostrarte qué es SHA-256 y cómo funciona, sin entrar demasiado en la jerga técnica y las matemáticas que hay detrás.


Índice

  1. ¿Qué es el hashing?
  2. ¿Qué es el algoritmo SHA-256?
  3. Explicación de SHA-256
  4. Características principales del algoritmo SHA-256
  5. ¿Es seguro SHA-256?
  6. ¿Cómo funciona SHA-256?
  7. ¿Para qué se utiliza SHA-256?
  8. Historia de los algoritmos SHA

Para entender el algoritmo SHA-256, primero tenemos que explicar el hashing.

¿Qué es el hashing?

Hashing es el proceso de transformar cualquier información dada en otro valor. Esencialmente, contiene bloques de datos que se transforman en una clave corta de longitud fija o en un valor de la cadena original. Consiste en hacer pasar los datos por una función matemática que los convierte en una serie única y compleja de caracteres.

El hashing proporciona una forma segura y eficaz de verificar la integridad de los datos. Cuando se hace un hash de un dato, se puede comparar el hash resultante con un valor conocido o esperado para asegurarse de que los datos no han sido manipulados o corrompidos. Si los valores hash coinciden, puede estar seguro de que los datos no se han alterado ni modificado desde que se hizo el hash original.

Una de las ventajas del hashing es que es irreversible. No puedes utilizar el valor hash para recuperar los datos originales. Esta propiedad hace que el hashing sea útil para el almacenamiento de contraseñas, ya que permite almacenar un hash de una contraseña en lugar de la propia contraseña. Cuando un usuario introduce su contraseña, el sistema puede hacer un hash y compararlo con el valor hash almacenado para verificar que es correcto sin necesidad de la contraseña real.


¿Qué es el algoritmo SHA-256?

SHA-256 es un algoritmo criptográfico ampliamente utilizado que produce un valor hash de longitud fija de 256 bits (32 bytes). El objetivo del algoritmo SHA-256 es crear una huella digital única de un fragmento de datos, como un mensaje o un archivo.

SHA-256 es un algoritmo criptográfico de hash en el que los datos de entrada se procesan a través de una sofisticada función matemática, dando como resultado un hash de salida distinto. Este hash actúa como una huella digital, representando de forma única los datos originales.


Explicación de SHA-256

SHA-256, acrónimo de Secure Hash Algorithm 256, es un miembro de las funciones hash criptográficas SHA-2 diseñadas por la NSA. Se utiliza habitualmente en diversas aplicaciones de seguridad (como firmas digitales, autenticación de contraseñas y tecnología blockchain) y protocolos, como TLS y SSL, PGP, SSH, IPsec, etc.

El algoritmo SHA-256 genera un hash casi único de tamaño fijo de 256 bits (32 bytes). Esto es prácticamente imposible de invertir y, por lo tanto, es una función unidireccional, es decir, una función cuya inversión es inviable.


¿Cómo funciona SHA-256?

SHA-256 funciona tomando una entrada (a menudo una cadena de texto o datos) y procesándola mediante una serie de operaciones matemáticas. El algoritmo divide la entrada en bloques de 512 bits, cada uno de los cuales se procesa en 64 rondas de operaciones. Estas operaciones incluyen funciones lógicas a nivel de bit como AND, OR, XOR, así como la suma y la rotación a nivel de bit.

Veamos un ejemplo real de cómo funciona el hashing. Digamos que escribes el mensaje “Me encantan las manzanas” y le aplicas una función hash SHA-256. Esto es lo que obtendrás:

40b7df43f24bea395b2c0c3c9d48a3db4db631fa396dd0dd8fe7dc64c9de6f6d

Ahora, vamos a añadir un signo de exclamación al final de tu mensaje para que se vea así: “¡Me encantan las manzanas!” y generemos una salida. El resultado puede sorprenderle:

1751c183f35ed15c2977e5ae7e439fdca79eeae28527ece6efc1a24e4388096f

Como puede ver, con sólo un carácter adicional, la salida es completamente diferente, pero la longitud sigue siendo la misma. Tanto si escribes una palabra como un ensayo, el valor hash será idéntico, ocultando el tamaño de la entrada original.

Si tuvieras que enviar este mensaje a un amigo, le proporcionarías el valor hash y especificarías el algoritmo. Tu amigo generará el hash por su parte y, si coincide, sabrá que el mensaje es auténtico.

Veamos ahora el aspecto técnico.


Características principales del algoritmo SHA-256

Las principales características del algoritmo SHA-256 son la longitud del mensaje, la longitud del resumen y la irreversibilidad.

  • Longitud del mensaje: La longitud del texto plano (el texto legible antes de ser cifrado) debe ser inferior a 264 bits.
  • Longitud del resumen: La longitud del hash digest (el resultado de aplicar una función hash criptográfica a los datos) debe ser de 256 bits. Al instalar un certificado SSL en su servidor, puede seleccionar SHA-512 y compendios mayores. Aunque SHA-512 es más seguro, no se recomienda para la mayoría de los sistemas, ya que requiere más cálculos y potencia informática.
  • Irreversibilidad: Todas las funciones hash como SHA-256 son irreversibles por diseño. Para cada entrada, tienes exactamente una salida, pero no al revés. Múltiples entradas producen la misma salida. La salida tiene un tamaño fijo, pero la entrada no tiene restricciones de tamaño.

¿Es seguro SHA-256?

Aunque ningún algoritmo criptográfico es inmune a los ataques, el algoritmo SHA-256 ha superado amplios análisis y la prueba del tiempo para seguir siendo un elemento esencial en la seguridad de los datos digitales.

La seguridad SHA-256 utiliza una combinación de complejas operaciones matemáticas y de bit a bit para generar el valor hash.

Este diseño hace extremadamente difícil encontrar dos entradas que produzcan el mismo hash. Sin embargo, la seguridad de SHA-256 depende de la correcta implementación y fortaleza de los protocolos de seguridad utilizados en la aplicación que lo utiliza.

¿Es seguro SHA-256?

Uno de los puntos débiles del algoritmo SHA-256 es la posibilidad de un ataque de colisión. Se produce cuando dos entradas diferentes producen el mismo valor hash. Aunque esto es muy poco probable con SHA-256, ya que genera un valor hash de 256 bits (es decir, múltiples salidas posibles), sigue siendo teóricamente posible. Si un ataque de colisión tuviera éxito, podría comprometer la aplicación que confía en los valores hash SHA-256 para verificar la integridad de los datos.


¿Cuáles son los pasos del algoritmo SHA-256?

Como ya sabe, SHA-256 toma los datos de entrada y los procesa a través de una serie de operaciones matemáticas denominadas rondas. Cada ronda consta de varios pasos, como el preprocesamiento de datos, la expansión de mensajes y la función de compresión de mensajes.

Estos son los pasos principales del algoritmo SHA-256:

  1. Preprocesamiento de datos: Los datos de entrada se rellenan y amplían para garantizar que su longitud es múltiplo de 512 bits, añadiendo un bit seguido de ceros y, a continuación, añadiendo la longitud del mensaje original en bits.
  2. Expansión de mensajes: El bloque de entrada de 512 bits se divide en 16 palabras de 32 bits y, a continuación, se expande en 64 palabras de 32 bits mediante una serie de operaciones lógicas.
  3. Compresión de mensajes: El bloque de mensajes de 64 palabras expandido se procesa a continuación a través de una serie de 64 rondas, cada una de las cuales implica varios pasos:
    Determinar la constante de ronda: Cada ronda tiene un valor constante único de 32 bits generado en función de la posición en la secuencia.
    Calcular el programa de mensajes: Se genera un programa de mensajes de 64 entradas basado en el bloque de mensajes de 64 palabras y la constante de ronda.
    Actualizar las variables de trabajo: Las variables de trabajo, que son 8 palabras de 32 bits que almacenan valores intermedios durante el proceso hash, se actualizan en función del calendario de mensajes y de un conjunto de operaciones lógicas.
    Calcular el valor hash: Una vez completadas las 64 rondas, se combinan los valores finales de las variables de trabajo para obtener el valor hash de 256 bits.

El resultado del algoritmo hash SHA-256 es un valor hash final de 256 bits que sirve como huella digital de los datos de entrada.


¿Para qué se utiliza SHA-256?

SHA-256 es el algoritmo hash estándar para la verificación de firmas digitales, el protocolo de enlace SSL, la protección de contraseñas y muchas otras operaciones relacionadas con la seguridad.

  1. Verificación de firma digital. Una firma digital es un tipo de firma electrónica utilizada para validar la autenticidad e integridad de un mensaje (por ejemplo, un correo electrónico, una transacción con tarjeta de crédito o un documento digital). Se crea aplicando un hash al archivo y utilizando PKI (Infraestructura de Clave Pública) para cifrarlo.

    La función del algoritmo hash SHA-256 en todo el proceso es garantizar la integridad de la firma digital. El cliente del destinatario comprueba el algoritmo hash en su extremo y utiliza la clave pública para descifrar el mensaje. Si coincide, los datos son auténticos y no se han modificado.
  2. SSL handshake. El handshake SSL es un elemento crucial de las sesiones de navegación web, y se basa en la compatibilidad y las funciones SHA-256. Las comunicaciones sobre SS/TLS siempre comienzan con el handshake SSL, que es criptografía asimétrica que permite al navegador verificar el servidor web, obtener la clave pública y establecer una conexión segura antes del comienzo de la transferencia de datos.
  3. Protección por contraseña. Los sitios web almacenan las contraseñas de los usuarios en formato hash. Como ya se ha comentado, el hash de contraseñas seguras las convierte en una cadena corta de letras y/o números mediante un algoritmo de cifrado. Si un sitio web es pirateado, los ciberatacantes no tienen acceso a las contraseñas cifradas.
  4. Verificación de transacciones de Blockchain. El algoritmo hash SHA-256 es el primer algoritmo que se utilizó con una criptomoneda cuando se creó Bitcoin. Las cabeceras de bloque son un elemento esencial de las cadenas de bloques, ya que ayudan a encadenar/conectar un bloque de transacciones con el siguiente en un orden específico. El hash SHA-256 garantiza que no se modifique ningún bloque anterior sin alterar el encabezado del nuevo bloque.

Historia de los algoritmos SHA

Los algoritmos hash criptográficos seguros son creación de la Agencia de Seguridad Nacional (NSA). El Gobierno de los Estados Unidos patentó la tecnología y la puso a disposición de todo el mundo mediante una licencia libre de derechos.

El primer algoritmo SHA-0 data de 1993. Su sucesor, SHA-1, llegó en 1995 y, a pesar de haber sido crackeado, se sigue utilizando hoy en día en servidores y clientes antiguos. Seis años después, en 2001, la NSA publicó la familia de algoritmos hash SHA -2, que incluye SHA-256 y otras cinco funciones hash:

  • SHA 224
  • SHA 384
  • SHA 512
  • SHA 512/224
  • SHA 512/256

El 5 de agosto de 2015, el NIST (Instituto Nacional de Estándares y Tecnología) publicó SHA -3, el último algoritmo hash seguro con un diseño de algoritmo interno diferente. Aunque actualmente el NIST no tiene previsto retirar el algoritmo SHA-2, SHA-3 puede sustituirlo en las aplicaciones actuales si es necesario.

Según SSL Pulse, el panel de control global para supervisar la calidad del soporte SSL / TLS, basado en la lista de Alexa de los sitios más populares del mundo, el 97,2% utiliza el algoritmo SHA-256.


Palabras finales

El algoritmo hash SHA-256 forma parte integral de la protección de datos en la Web. En este artículo, sólo hemos arañado su superficie sin profundizar en las matemáticas y las funciones que hay detrás. Aun así, ahora ya tienes una idea general de la finalidad y el uso del algoritmo.

Hasta que construyamos un ordenador cuántico con potencia suficiente para descifrar funciones hash complejas, SHA-256 seguirá siendo el algoritmo hash estándar de la industria para la integridad de datos y archivos. Aún faltan algunas décadas para que eso ocurra, así que, de momento, SHA-256 formará parte de los protocolos de cifrado y autenticación.

Preguntas frecuentes

¿Cuánto dura el hash SHA-256?

El hash SHA-256 tiene 256 bits de longitud.

Copiar enlace

¿Qué es una huella digital SHA-256?

La huella digital SHA-256 es una representación digital única de los datos que genera el algoritmo SHA-256.

Copiar enlace

¿Cómo descifrar SHA-256?

El cifrado SHA-256 es irreversible, lo que significa que no puede descifrarse.

Copiar enlace

¿Por qué SHA-256 es irreversible?

SHA-256 es irreversible porque utiliza una función unidireccional para generar el valor hash, lo que dificulta la ingeniería inversa de los datos de entrada.

Copiar enlace

¿Qué es un certificado SHA-256?

Los certificados SHA-256 son certificados digitales que utilizan el algoritmo hash SHA-256 para asegurar y verificar la autenticidad de los datos.

Copiar enlace

¿Quién creó SHA-256?

SHA-256 fue creado por la Agencia de Seguridad Nacional (NSA) de Estados Unidos. La patente (US6829355B2) fue presentada por la NSA el 5 de marzo de 2001, con Glenn M Lilly como inventor.

Copiar enlace

Ahorre un 10% en certificados SSL al realizar su pedido hoy mismo.

Emisión rápida, cifrado potente, 99,99% de confianza del navegador, asistencia dedicada y garantía de devolución del dinero en 25 días. Código del cupón: SAVE10

Escrito por

Redactor de contenidos experimentado especializado en Certificados SSL. Transformar temas complejos de ciberseguridad en contenido claro y atractivo. Contribuir a mejorar la seguridad digital a través de narrativas impactantes.