Una firma digital es un mecanismo criptográfico que permite al receptor de un mensaje firmado digitalmente identificar a la entidad originadora de dicho mensaje (autenticación de origen y no repudio), y confirmar que el mensaje no ha sido alterado desde que fue firmado por el originador (integridad).
El esquema resultante es seguro hacia adelante si el conocimiento de la clave secreta en un momento del tiempo no ayuda a falsificar firmas relativas a un periodo anterior de tiempo.
[7] Podemos construir esquemas de firma digital basándonos en distintos tipos de técnicas:[8] Un dispositivo, como una tarjeta inteligente, se dice que es resistente a modificaciones (en inglés tamper resistant) si se cree que es difícil acceder a la clave secreta almacenada en él.
Bleichenbacher y Maurer han proporcionado una generalización de estos métodos.
[10] Estos esquemas han servido como primitivas usadas en construcciones más complejas Se han propuesto distintos protocolos de firma basados en la criptografía de clave asimétrica.
Algunos esquemas de firma son deterministas y otros usan bits aleatorios.
Las firmas que usan bits aleatorios probablemente revelan menos información sobre la clave secreta, sin embargo, por otra parte, obligan al signatario a tener una fuente segura de bits aleatorios.
Este tipo de esquemas requieren el mensaje original para poder verificar la firma.
Esto se debe a que a lo que se aplica el algoritmo de firma no es realmente el mensaje original sino el resultado de aplicar una función hash con ciertas propiedades que las hacen resistentes frente a ataques para hallar su inversa, es decir, no es posible, a partir del valor resumen, calcular los datos originales.
En este tipo de firma se aprovecha el hecho de que dos usuarios (X e Y) con desconfianza mutua admiten tener confianza en un tercero llamado árbitro (A).
Toda la transmisión de la información entre los usuarios debe pasar forzosamente por el árbitro.
Si por ejemplo X quiere mandar un mensaje M firmado a Y lo cifra usando
El valor de la firma lo guarda junto con M para que A pueda dirimir ante una posible disputa.
En este esquema el usuario firmante envía directamente la firma al destinatario, este debe poder comprobar la firma sin necesitar una tercera entidad como el árbitro.