Qué es un HASH en Informática y Criptografía e + [Ejemplo con PYTHON🐍] 🔐

 https://www.youtube.com/watch?v=JRYUxqghPG4

https://www.youtube.com/watch?v=it9suW1HN3Q

 ¿Qué es un HASH en Informática y Criptografía?

Introducción

Después de explorar conceptos como criptografía, claves públicas, privadas, simétricas y asimétricas, llegamos a uno de los temas más importantes no solo en criptografía, sino en seguridad informática y comunicaciones en Internet: el HASH. Esta función criptográfica es la base de tecnologías como blockchain (utilizada en Bitcoin y otras criptomonedas). Prepárate para un tutorial práctico donde veremos cómo funciona el HASH, tanto de forma teórica como con ejemplos en Python.


Definición y Propiedades del HASH

El término "hash" proviene del inglés y significa "picadillo" o "mezcla". Las funciones hash criptográficas (también conocidas como funciones resumen) son algoritmos que toman un archivo de entrada (texto, imagen, video, etc.) y generan una cadena única de bits de longitud fija, llamada hash o resumen.

Características clave:

  1. Unidireccionalidad: Es computacionalmente fácil calcular el hash a partir de un archivo, pero extremadamente difícil revertir el proceso (obtener el archivo original desde el hash).

  2. Compresión: Independientemente del tamaño del archivo original, el hash siempre tendrá la misma longitud (ej: 256 bits para SHA-256).

  3. Determinismo: El mismo archivo siempre producirá el mismo hash usando el mismo algoritmo.

  4. Resistencia a colisiones: Es prácticamente imposible encontrar dos archivos diferentes que produzcan el mismo hash.

  5. Efecto avalancha: Un pequeño cambio en el archivo original (ej: un solo bit) genera un hash completamente diferente.

Diferencias con el cifrado:

  • El hash no es un algoritmo de cifrado, ya que no usa claves y no permite recuperar el archivo original.

  • Su propósito principal es generar un identificador único y compacto del archivo.


Ejemplo Práctico: Creando un Hash Simple

Imagina que creamos un algoritmo hash llamado CB4 (Contando Bits de 4 caracteres). Para la palabra "QUIQUE":

  1. Numeramos las letras: Q=1, U=2, I=3, E=4.

  2. Sumamos primera y última posición: 1 + 4 = 5.

  3. Sumamos posiciones pares e impares:

    • Pares: 2 + 4 = 6.

    • Impares: 1 + 3 = 4.

    • Multiplicamos: 6 * 4 = 24 → Redondeamos a 2.

  4. Elevamos al cuadrado cada posición y sumamos:

    • 1² + 2² + 3² + 4² = 1 + 4 + 9 + 16 = 30 → Redondeamos a 3.

  5. Sumamos primera y segunda posición, dividimos por la última:

    • (1 + 2) / 4 = 0.75 → Redondeamos a 1.

Hash resultante: 5, 2, 3, 1 → "5231".
Aunque este ejemplo es simplificado, ilustra cómo funciona un hash: transforma datos en un resumen único.


Algoritmos Hash Comunes

  • MD5: Ampliamente usado en el pasado, pero ahora considerado inseguro debido a vulnerabilidades.

  • SHA-1: También vulnerable a colisiones, ya no se recomienda.

  • SHA-256 y SHA-512: Parte de la familia SHA-2, son estándares actuales. SHA-256 genera hashes de 256 bits, y SHA-512 de 512 bits.


Script en Python para Generar Hashes

python
import hashlib

def generar_hash():
    print("Selecciona el algoritmo:")
    print("1. SHA-256")
    print("2. SHA-512")
    opcion = input("Opción (1 o 2): ").strip()
    texto = input("Introduce el texto: ").encode('utf-8')
    
    if opcion == "1":
        hash_resultado = hashlib.sha256(texto).hexdigest()
        print(f"SHA-256: {hash_resultado}")
    elif opcion == "2":
        hash_resultado = hashlib.sha512(texto).hexdigest()
        print(f"SHA-512: {hash_resultado}")
    else:
        print("Opción no válida.")

if __name__ == "__main__":
    generar_hash()

Ejecución:

  1. El script permite elegir entre SHA-256 o SHA-512.

  2. Introduce un texto y obtendrás su hash.

  3. Prueba con "quique" vs "Quique": Verás cómo cambia el hash completamente por una mayúscula.


Aplicaciones del HASH

  1. Firma digital: Se usa para verificar la autenticidad e integridad de documentos.

  2. Almacenamiento de contraseñas: Las bases de datos guardan hashes de contraseñas (no las contraseñas en texto plano) para mayor seguridad.

  3. Integridad de archivos: Permite validar que un archivo no ha sido modificado durante una transmisión.

    • Ejemplo: Alice calcula el hash de un mensaje y lo envía por un canal seguro. Bob recibe el mensaje, calcula su hash y lo compara con el de Alice. Si coinciden, el mensaje es íntegro.


Conclusión

El hash es una herramienta fundamental en criptografía y seguridad informática. Su capacidad para generar identificadores únicos y compactos lo hace esencial en tecnologías modernas como blockchain, verificación de integridad y protección de datos. En el próximo video, exploraremos la firma digital en detalle. ¡No te lo pierdas!

🔗 Recursos:

¡Suscríbete para más contenido sobre criptografía y seguridad! 

Comentarios

Entradas más populares de este blog

firma digitales PKI utilizando solo javascript y node,

convertir un certificado .key a formato PEM utilizando solo la Web Crypto API

Pilares de la firma electronica-pki-RSA