Firmas digitales en 5 minutos
Una firma digital es un mecanismo criptográfico que permite a alguien probar matemáticamente que un mensaje específico fue creado por él, sin posibilidad de falsificación. Es la base técnica que sostiene las credenciales verificables, las transacciones blockchain, y la mayoría de comunicaciones seguras de internet.
Este artículo explica los conceptos básicos sin matemática.
La analogía
Pensá en un sello físico que solo vos podés usar. Cualquiera puede ver el sello en un documento y reconocerlo como tuyo. Nadie puede copiar el sello. Si alguien altera el documento después de sellarlo, el sello se invalida.
Eso es una firma digital. La diferencia con el sello físico:
- El sello físico puede copiarse (con suficiente esfuerzo).
- La firma digital es matemáticamente imposible de falsificar (asumiendo que la matemática funciona, que sí funciona).
Las dos claves
Cualquier firma digital usa dos claves complementarias:
Clave privada
Vos la generás, vos la guardás. Nadie más debe tenerla. Sirve para firmar mensajes.
Clave pública
Derivada matemáticamente de la privada. La compartís libremente. Sirve para verificar firmas hechas con la privada.
La regla criptográfica: tener la pública no te permite reconstruir la privada. Solo el dueño de la privada puede firmar; cualquiera con la pública puede verificar.
El proceso de firma
Tres pasos:
- 1Resumir el mensaje. Aplicar un hash (un resumen criptográfico) al mensaje original. El resultado es de tamaño fijo (típicamente 256 bits = 32 bytes).
- 2Firmar el hash con la clave privada. Una operación matemática usa el hash + la clave privada para producir la firma.
- 3Adjuntar la firma al mensaje. Mensaje original + firma viajan juntos al destinatario.
El proceso de verificación
El destinatario hace cuatro pasos:
- 1Recibir mensaje + firma.
- 2Recalcular el hash del mensaje recibido.
- 3Verificar la firma con la clave pública del firmante. La operación matemática responde true/false.
- 4Decidir. Si true: el mensaje es auténtico, no fue alterado, y proviene del dueño de la clave privada. Si false: algo no cumple.
Las tres propiedades clave
Una firma digital correctamente implementada provee tres propiedades:
Autenticidad
Confirma que el mensaje proviene del dueño de la clave privada. Nadie más puede haberlo firmado.
Integridad
Confirma que el mensaje no fue alterado después de firmarse. Cualquier cambio invalida la firma.
No repudio
El firmante no puede negar haber firmado (asumiendo que la clave privada no fue comprometida).
Los algoritmos de firma comunes
Los algoritmos modernos más usados son tres:
| Algoritmo | Velocidad | Tamaño firma | Caso típico |
|---|---|---|---|
| Ed25519 | Muy rápida | 64 bytes | SSI, gov modernos |
| ECDSA (P-256) | Rápida | 64-72 bytes | Sistemas legacy, eIDAS |
| RSA-2048 | Lenta | 256 bytes | Sistemas muy legacy |
Para SSI moderna (Sovra, EUDI Wallet), Ed25519 es el default. Es más rápido, más compacto, y considerado más seguro contra ataques modernos.
En el contexto de credenciales verificables
Cuando un emisor (gobierno provincial) emite una credencial:
- El emisor tiene una clave privada (guardada en hardware seguro de su sistema).
- La credencial (JSON con los atributos del ciudadano) se firma con esa clave.
- El ciudadano recibe credencial + firma.
- Cualquier verificador que tenga la clave pública del emisor (publicada en su DID Document) puede verificar la firma.
Esa es la base criptográfica que hace funcionar todo el modelo SSI.
Las propiedades que la firma NO provee
Es importante entender qué no hace una firma digital:
Referencias
Relacionados
- JWS y JWT — formato estándar de firmas — formato común para firmas
- Ed25519 vs ECDSA — qué algoritmo elegir — comparación de algoritmos
- Hashes, salts y nonces — terminología criptográfica — terminología criptográfica

