Firmas digitales
Las firmas digitales se pueden usar para distribuir un mensaje en formato de texto no cifrado cuando los destinatarios deben identificar y comprobar el remitente del mensaje. Firmar un mensaje no modifica el mensaje; simplemente genera una cadena de firma digital que puede agrupar con el mensaje o transmitir por separado. Una firma digital es un pequeño fragmento de datos que se cifra con la clave privada del remitente. El descifrado de los datos de firma mediante la clave pública del remitente demuestra que el remitente cifró los datos o alguien que tenía acceso a la clave privada del remitente.
Las firmas digitales se generan mediante algoritmos de firma de clave pública . Una clave privada genera la firma y se debe usar la clave pública correspondiente para validar la firma. Este proceso se muestra en la ilustración siguiente.
Hay dos pasos que se deben seguir para crear una firma digital a partir de un mensaje. El primer paso implica la creación de un valor hash (también conocido como resumen de mensaje) a partir del mensaje. A continuación, este valor hash se firma mediante la clave privada del firmante. A continuación se muestra una ilustración de los pasos necesarios para crear una firma digital.
Para comprobar una firma, se requieren tanto el mensaje como la firma. En primer lugar, se debe crear un valor hash a partir del mensaje de la misma manera que se creó la firma. A continuación, este valor hash se comprueba con la firma mediante la clave pública del firmante. Si el valor hash y la firma coinciden, puede estar seguro de que el mensaje es realmente el que el firmante firmó originalmente y que no se ha alterado. En el diagrama siguiente se muestra el proceso implicado en la comprobación de una firma digital.
Un valor hash consta de una pequeña cantidad de datos binarios, normalmente alrededor de 160 bits. Esto se genera mediante un algoritmo hash. Más adelante en esta sección se enumeran varios de estos algoritmos.
Todos los valores hash comparten las siguientes propiedades, independientemente del algoritmo usado:
- La longitud del valor hash viene determinada por el tipo de algoritmo utilizado y su longitud no varía con el tamaño del mensaje. Las longitudes de valor hash más comunes son 128 o 160 bits.
- Cada par de mensajes no idénticos se traduce en un valor hash completamente diferente, incluso si los dos mensajes solo difieren en un solo bit. Con la tecnología actual, no es factible detectar un par de mensajes que se traducen en el mismo valor hash sin interrumpir el algoritmo hash.
- Cada vez que se aplica un algoritmo hash a un mensaje determinado mediante el mismo algoritmo, se genera el mismo valor hash.
- Todos los algoritmos hash son unidireccionales. Dado un valor hash, no es posible recuperar el mensaje original. De hecho, ninguna de las propiedades del mensaje original se puede determinar solo según el valor hash.