6-¿Qué es una Firma Hash?
Es una técnica que combina funciones hash con criptografía asimétrica para crear firmas digitales seguras y eficientes.
¿Cómo funciona?
Proceso de Firma:
Calcular el hash del documento o mensaje original
Cifrar el hash con la clave privada del firmante
Adjuntar el hash cifrado al documento como firma
Proceso de Verificación:
Descifrar la firma con la clave pública del firmante
Calcular el hash del documento recibido
Comparar ambos hashes - si coinciden, la firma es válida
🚀 Eficiencia
Firmar un hash pequeño (ej: 256 bits) es más rápido que firmar un documento completo
Ideal para documentos grandes
🔒 Seguridad
Garantiza integridad: cualquier cambio en el documento invalida la firma
Garantiza autenticidad: solo el poseedor de la clave privada pudo firmar
Garantiza no repudio: el firmante no puede negar haber firmado
Ejemplo práctico:
# Supongamos que Alice quiere firmar un documento documento = "Contrato importante" hash_documento = sha256(documento) # "a1b2c3..." firma = encrypt(hash_documento, clave_privada_alice) # Bob verifica: hash_calculado = sha256(documento) hash_descifrado = decrypt(firma, clave_publica_alice) if hash_calculado == hash_descifrado: print("✅ Firma válida - Documento íntegro y auténtico") else: print("❌ Firma inválida")
Usos comunes:
📝 Documentos legales digitales
💻 Actualizaciones de software (verificar que no fueron modificadas)
🏦 Transacciones bancarias
🔐 Certificados digitales (SSL/TLS)
⛓️ Blockchain (transacciones de criptomonedas)
¿Te gustaría que profundice en algún aspecto específico de las firmas hash?
Aquí está el proceso paso a paso:
1. Crear el Resumen (Hash)
Tomas el documento electrónico (un PDF, un contrato, lo que sea).
Aplicas una función hash criptográfica (como SHA-256). Esta función es un algoritmo matemático que toma los datos de entrada (el documento) y genera una cadena de caracteres de longitud fija, única para ese documento.
Características clave del hash:
Es único: Cualquier cambio mínimo en el documento original (cambiar una coma, un espacio) genera un hash completamente diferente.
Es irreversible: A partir del hash, es imposible recuperar el documento original.
Es de longitud fija: No importa si el documento es de 1 página o 1000, el hash siempre tendrá el mismo número de caracteres (ej. 64 caracteres para SHA-256).
En este punto, tienes:
Documento Original
Hash del Documento (una "huella digital" única del documento)
2. "Firmar" el Hash (¡Este es el paso clave!)
Tomas ese hash (no el documento completo) y lo cifras con tu clave privada.
Esto es crucial: No estás aplicando otra función hash. Estás usando un algoritmo de cifrado asimétrico (como RSA) que toma tu clave privada y el hash, y produce un bloque de datos cifrado.
Este bloque de datos cifrado ES la firma electrónica.
Lo que tienes ahora es:
Documento Original
Firma Electrónica ( = Hash del Documento, cifrado con la Clave Privada)
3. Verificar la Firma (¿Cómo lo comprueban los demás?)
Para que alguien verifique que tú firmaste el documento y que este no ha sido alterado, necesita tres cosas:
El Documento Original que recibió.
La Firma Electrónica que adjuntaste.
Tu Clave Pública (que es, como su nombre indica, pública y accesible para todos).
El proceso de verificación es el siguiente:
Descifrar la Firma: El verificador toma la Firma Electrónica y la descifra usando tu Clave Pública. Como la firma se creó cifrando con la clave privada, solo la clave pública correspondiente puede descifrarla correctamente.
Lo que obtiene al descifrar es el Hash Original que tú creaste en el paso 1.
Calcular su propio Hash: El verificador toma el Documento Original que recibió y aplica la misma función hash criptográfica que usaste tú (ej. SHA-256). Esto genera un Hash Nuevo.
Comparar los Hashes: Ahora el verificador compara:
El Hash Original (obtenido al descifrar tu firma).
El Hash Nuevo (que él acaba de calcular a partir del documento recibido).
Las Dos Posibilidades:
✅ VERIFICACIÓN EXITOSA: Si los dos hashes son idénticos, se demuestran dos cosas de forma simultánea:
Autenticidad: La firma fue creada con la Clave Privada que corresponde a la Clave Pública usada para descifrar. Ergo, solo tú pudiste firmarlo.
Integridad: El documento no ha sido modificado desde que lo firmaste, porque el hash calculado a partir del documento recibido coincide exactamente con el hash que estaba dentro de la firma.
❌ VERIFICACIÓN FALLIDA: Si los hashes NO coinciden, significa que:
El documento fue alterado después de la firma, o
La firma no fue creada con la clave privada correspondiente a la clave pública usada para verificar.
Resumen con una Analogía:
Imagina que el proceso es como enviar una caja fuerte con un candado especial.
Crear el Hash: Tomas el documento y creas un resumen único (la "huella digital").
Firmar: Pones esa "huella digital" en una caja fuerte y la cierras con un candado que solo tu llave maestra (Clave Privada) puede cerrar. La caja fuerte cerrada es tu Firma Electrónica.
Verificar: La otra persona recibe la caja fuerte (la Firma) y el documento.
Usa tu llave pública (que abre cualquier candado que tu llave maestra haya cerrado) para abrir la caja y sacar la "huella digital" que pusiste dentro.
Luego, él mismo calcula la "huella digital" del documento que recibió.
Si ambas huellas son iguales, todo es auténtico e íntegro.
En conclusión: No "hasheas el hash". Lo que haces es cifrar el hash con tu clave privada, y ese acto de cifrado es lo que constituye la firma. ¡Espero que esto aclare tu duda! Es un concepto fundamental en criptografía.


Comentarios
Publicar un comentario