Una firma digital es un mecanismo criptográfico que se utiliza para verificar la autenticidad e integridad de los datos digitales. Podemos pensar en ella como una versión digital de las firmas manuscritas convencionales, pero con un mayor nivel de complejidad y seguridad.

En pocas palabras, podemos describir una firma digital como un código adjunto a un mensaje o documento. Una vez generado, el código actúa como prueba de que el mensaje no ha sido manipulado en el camino desde el remitente hasta el destinatario.

Aunque el concepto de proteger las comunicaciones mediante criptografía se remonta a la antigüedad, los esquemas de firma digital se convirtieron en una posible realidad en la década de 1970 con el desarrollo de la criptografía de clave pública (PKC). Entonces, para aprender cómo funcionan las firmas digitales, primero debemos comprender los conceptos básicos de las funciones hash y la criptografía de clave pública.


funciones hash

El hash es uno de los elementos principales de un sistema de firma digital. El proceso de hash consiste en convertir datos de cualquier tamaño en datos de salida de un tamaño fijo. Esto se hace mediante un tipo especial de algoritmos conocidos como funciones hash. La salida generada por la función hash se conoce como valor hash o resumen del mensaje.

En combinación con la criptografía, se pueden utilizar las llamadas funciones hash criptográficas para generar un valor hash (resumen) que actúa como una huella digital única. Esto significa que cualquier cambio en la entrada (mensaje) dará como resultado una salida diferente (valor hash). Es por esta razón que las funciones hash criptográficas se utilizan ampliamente para verificar datos digitales.


Criptografía de clave pública (PKC)

La criptografía de clave pública o PKC se refiere a un sistema criptográfico que utiliza un par de claves: una clave pública y una clave privada. Las dos claves están relacionadas matemáticamente y pueden usarse tanto para cifrado de datos como para firmas digitales.

Como herramienta de cifrado, PKC es más segura que los métodos de cifrado simétrico más simples. Mientras que los sistemas más antiguos dependen de la misma clave para cifrar y descifrar información, PKC permite cifrar los datos con una clave pública y descifrarlos con la clave privada correspondiente.

Además, el esquema PKC también se puede utilizar al crear firmas digitales. Básicamente, el proceso consiste en codificar el mensaje (o los datos digitales) junto con la clave privada del firmante. Luego, el destinatario del mensaje puede verificar que la firma es válida utilizando la clave pública proporcionada por el firmante.

En algunas situaciones, las firmas digitales pueden contener cifrado, pero no siempre es así. Por ejemplo, la cadena de bloques de Bitcoin utiliza PKC y firmas digitales, pero, contrariamente a lo que muchos creen, no implica cifrado. Técnicamente, Bitcoin utiliza el llamado algoritmo de firma digital de curva elíptica (ECDSA) para autenticar transacciones.


Cómo funcionan las firmas digitales

En el contexto de las criptomonedas, un sistema de firma digital suele constar de tres pasos principales: hash, firma y verificación.

hash de datos

El primer paso es codificar el mensaje o los datos digitales. Esto se hace enviando los datos utilizando un algoritmo hash para crear un valor hash (es decir, un resumen del mensaje). Como se mencionó, los mensajes pueden variar mucho en tamaño, pero cuando se les aplica hash, todos sus valores hash tienen la misma longitud. Ésta es la propiedad principal de la función hash.

Sin embargo, no es necesario aplicar hash a los datos para crear una firma digital, ya que se puede utilizar una clave privada para firmar un mensaje que no ha sido objeto de ningún hash. Pero en el caso de las criptomonedas, los datos siempre se procesan mediante hash porque trabajar con resúmenes de longitud fija simplifica todo el proceso.

Firma

Después de realizar el hash de la información, el remitente del mensaje debe firmarlo. Aquí es donde entra en juego la criptografía de clave pública. Existen varios tipos de algoritmos de firma digital, cada uno con su propio mecanismo. Pero esencialmente, el mensaje hash se firmará con una clave privada y el destinatario del mensaje podrá verificar su autenticidad utilizando la clave privada correspondiente (proporcionada por el firmante).

Es decir, si la clave privada no está habilitada cuando se crea la firma, el destinatario del mensaje no podrá utilizar la clave pública correspondiente para verificar su autenticidad. Tanto la clave pública como la privada son generadas por el remitente del mensaje, pero la clave pública se transmite al destinatario.

Vale la pena señalar que las firmas digitales están directamente relacionadas con el contenido de cada mensaje. Por tanto, a diferencia de las firmas manuscritas, que generalmente son las mismas independientemente del mensaje, cada mensaje firmado digitalmente tendrá una firma digital diferente.

Auditoría

Tomemos un ejemplo para ilustrar todo el proceso hasta el último paso de verificación. Imagine que Alice le escribe un mensaje a Bob, lo codifica y luego combina el valor hash con su clave privada para crear una firma digital. La firma actuará como huella digital única de este mensaje.

Cuando Bob recibe el mensaje, puede verificar la validez de la firma digital utilizando la clave pública proporcionada por Alice. Entonces Bob puede estar seguro de que la firma fue creada por Alice, porque solo ella tiene una clave privada que coincide con esa clave pública (al menos eso es lo que esperamos).

Por lo tanto, es muy importante que Alice mantenga en secreto su clave privada. Si otra persona obtiene la clave privada de Alice, puede crear una firma digital y hacerse pasar por Alice. En el contexto de Bitcoin, esto significa que alguien puede usar la clave privada de Alice para mover o gastar sus Bitcoins sin su permiso.


¿Por qué son importantes las firmas digitales?

Las firmas digitales se utilizan a menudo para lograr tres resultados: integridad de los datos, autenticación y conmutación por error.

  • Integridad de los datos. Bob puede verificar que el mensaje de Alice no ha cambiado en el camino. Cualquier modificación del mensaje dará como resultado una firma completamente diferente.

  • Autenticidad. Siempre que la clave privada de Alice se mantenga en secreto, Bob puede usar su clave pública para verificar que las firmas digitales fueron creadas por Alice y nadie más.

  • Fiabilidad. Una vez generada la firma, Alice no puede negar que la firmó en el futuro, a menos que su clave privada esté comprometida.


Opciones de uso

Las firmas digitales se pueden aplicar a varios tipos de documentos y certificados digitales. Como tales, tienen varios usos. Algunos de los usos más comunes son:  

  • Tecnologías de la información: mejora de la seguridad de los sistemas de comunicación en Internet.

  • Finanzas: las firmas digitales se pueden aplicar a auditorías, informes de gastos, acuerdos de crédito y más.

  • Regulación legal: Firma digital de todo tipo de contratos comerciales y acuerdos legales, incluidos documentos gubernamentales.

  • Atención sanitaria: las firmas digitales pueden evitar la falsificación de recetas y registros médicos.

  • Blockchain: los esquemas de firma digital garantizan que solo los propietarios legítimos de una criptomoneda puedan firmar una transacción para mover fondos (siempre que sus claves privadas no estén comprometidas).


Limitación

Los principales retos a los que se enfrentan los esquemas de firma digital se basan en al menos tres requisitos: 

  • Algoritmo: La calidad de los algoritmos utilizados en un esquema de firma digital es importante. Se trata, en particular, de la elección de funciones hash y sistemas criptográficos fiables.

  • Implementación: si los algoritmos son buenos y la implementación es deficiente, es probable que el sistema de firma digital tenga fallas.

  • Clave privada: si las claves privadas se pierden o se ven comprometidas de alguna manera, se anularán las propiedades de autenticidad y no falla. Para los usuarios de criptomonedas, la pérdida de una clave privada puede provocar pérdidas económicas importantes.


Firmas electrónicas versus firmas digitales

Las firmas digitales se refieren a un tipo específico de firmas electrónicas que pertenecen a cualquier método electrónico de firma de documentos y mensajes. Por tanto, toda firma digital es firma electrónica, pero no al revés.

La principal diferencia entre ellos es el método de autenticación. Las firmas digitales utilizan sistemas criptográficos como funciones hash, criptografía de clave pública y técnicas de cifrado.


Resultados

Las funciones hash y la criptografía de clave pública son el núcleo de los sistemas de firma digital, que actualmente tienen muchos usos. Cuando se aplican correctamente, las firmas digitales pueden mejorar la seguridad, garantizar la integridad y facilitar la autenticación de todo tipo de datos digitales.

En el campo blockchain, las firmas digitales se utilizan para firmar y autorizar transacciones criptográficas. Son especialmente importantes para Bitcoin porque las firmas garantizan que las monedas sólo puedan ser gastadas por personas que tengan las claves privadas correspondientes.

Aunque llevamos muchos años utilizando firma tanto electrónica como digital, todavía tenemos margen para crecer. Gran parte de la burocracia actual todavía se basa en papel, pero probablemente veremos una mayor adopción de firmas digitales a medida que avancemos hacia un tipo más digital de sistemas de procesamiento de datos.