Criptografía Firmas digitales
Las firmas digitales son las primitivas de clave pública de la autenticación de mensajes. En el mundo físico, es común utilizar firmas manuscritas en mensajes escritos a mano o mecanografiados. Se utilizan para vincular al signatario al mensaje.
Del mismo modo, una firma digital es una técnica que vincula a una persona / entidad a los datos digitales. Esta vinculación puede ser verificada de forma independiente tanto por el receptor como por cualquier tercero.
La firma digital es un valor criptográfico que se calcula a partir de los datos y una clave secreta conocida solo por el firmante.
En el mundo real, el receptor del mensaje necesita estar seguro de que el mensaje pertenece al remitente y no debería poder repudiar el origen de ese mensaje. Este requisito es muy importante en las aplicaciones comerciales, ya que la probabilidad de una disputa sobre los datos intercambiados es muy alta.
Modelo de firma digital
Como se mencionó anteriormente, el esquema de firma digital se basa en la criptografía de clave pública. El modelo de esquema de firma digital se muestra en la siguiente ilustración:
Los siguientes puntos explican todo el proceso en detalle:
Cada persona que adopta este esquema tiene un par de claves pública-privada.
Generalmente, los pares de claves utilizados para el cifrado / descifrado y la firma / verificación son diferentes. La clave privada que se usa para firmar se conoce como clave de firma y la clave pública como clave de verificación.
El firmante alimenta datos a la función hash y genera hash de datos.
El valor hash y la clave de firma se alimentan luego al algoritmo de firma que produce la firma digital en un hash dado. La firma se agrega a los datos y luego ambos se envían al verificador.
El verificador introduce la firma digital y la clave de verificación en el algoritmo de verificación. El algoritmo de verificación da algún valor como salida.
El verificador también ejecuta la misma función hash en los datos recibidos para generar valor hash.
Para la verificación, se comparan este valor hash y la salida del algoritmo de verificación. Según el resultado de la comparación, el verificador decide si la firma digital es válida.
Dado que la firma digital se crea con la clave "privada" del firmante y nadie más puede tener esta clave; el firmante no puede rechazar la firma de los datos en el futuro.
Cabe señalar que, en lugar de firmar datos directamente mediante el algoritmo de firma, normalmente se crea un hash de datos. Dado que el hash de los datos es una representación única de los datos, es suficiente firmar el hash en lugar de los datos. La razón más importante para usar hash en lugar de datos directamente para firmar es la eficiencia del esquema.
Supongamos que RSA se utiliza como algoritmo de firma. Como se discutió en el capítulo de cifrado de clave pública, el proceso de cifrado / firma que utiliza RSA implica una potenciación modular.
Firmar grandes datos mediante exponenciación modular es computacionalmente costoso y requiere mucho tiempo. El hash de los datos es un resumen relativamente pequeño de los datos, por lo tantosigning a hash is more efficient than signing the entire data.
Importancia de la firma digital
De todas las primitivas criptográficas, la firma digital que utiliza criptografía de clave pública se considera una herramienta muy importante y útil para lograr la seguridad de la información.
Además de la capacidad de proporcionar no repudio de mensajes, la firma digital también proporciona autenticación de mensajes e integridad de datos. Veamos brevemente cómo se consigue esto mediante la firma digital -
Message authentication - Cuando el verificador valida la firma digital utilizando la clave pública de un remitente, se le asegura que la firma ha sido creada solo por el remitente que posee la clave privada secreta correspondiente y nadie más.
Data Integrity- En caso de que un atacante tenga acceso a los datos y los modifique, la verificación de la firma digital en el extremo del receptor falla. El hash de los datos modificados y la salida proporcionada por el algoritmo de verificación no coincidirán. Por lo tanto, el receptor puede negar el mensaje con seguridad asumiendo que se ha violado la integridad de los datos.
Non-repudiation- Dado que se supone que solo el firmante tiene el conocimiento de la clave de firma, solo puede crear una firma única en un dato dado. De esta forma, el receptor puede presentar los datos y la firma digital a un tercero como prueba si surge alguna disputa en el futuro.
Al agregar encriptación de clave pública al esquema de firma digital, podemos crear un criptosistema que puede proporcionar los cuatro elementos esenciales de seguridad, a saber: privacidad, autenticación, integridad y no repudio.
Cifrado con firma digital
En muchas comunicaciones digitales, es deseable intercambiar mensajes cifrados en lugar de texto plano para lograr la confidencialidad. En el esquema de cifrado de clave pública, una clave pública (cifrado) del remitente está disponible en dominio abierto y, por lo tanto, cualquiera puede falsificar su identidad y enviar cualquier mensaje cifrado al receptor.
Esto hace que sea esencial para los usuarios que emplean PKC para el cifrado buscar firmas digitales junto con datos cifrados para estar seguros de la autenticación de mensajes y el no repudio.
Esto se puede archivar combinando firmas digitales con un esquema de cifrado. Analicemos brevemente cómo lograr este requisito. Existentwo possibilities, sign-then-encrypt y encrypt-then-sign.
Sin embargo, el receptor puede explotar el sistema de cifrado basado en firmar y luego cifrar para falsificar la identidad del remitente y enviar esos datos a un tercero. Por tanto, este método no es el preferido. El proceso de cifrar y luego firmar es más confiable y ampliamente adoptado. Esto se muestra en la siguiente ilustración:
El receptor, después de recibir los datos cifrados y la firma, primero verifica la firma utilizando la clave pública del remitente. Después de asegurar la validez de la firma, luego recupera los datos mediante el descifrado usando su clave privada.