Una firma digital es un mecanismo
criptográfico empleado para verificar la autenticidad e integridad de datos
digitales. Podemos considerarla una versión digital de las firmas escritas a
mano ordinarias, pero con un nivel más elevado de complejidad y seguridad.
En términos sencillos, podríamos describir una firma digital como código vinculado a un mensaje o documento. Después de ser generado, dicho código ejerce como prueba de que el mensaje no ha sido manipulado durante el proceso que lo lleva del emisor al receptor.
A pesar de que el concepto de proteger las
comunicaciones mediante el uso de criptografía se remonta a la antigüedad,
los esquemas de firma digital se convirtieron en una posibilidad real en los
años 70 -gracias al desarrollo de la Criptografía de Clave Pública (PKC).
Así que, para aprender cómo funcionan las
firmas digitales, necesitamos comprender primero los fundamentos de las
funciones hash y de la criptografía de clave pública.
Funciones Hash
El hashing es uno de los
elementos principales de los sistemas de firma digital. El proceso de hashing
implica transformar datos de cualquier tamaño en un output de extensión fija.
Esto se consigue mediante un tipo de algoritmos especiales conocidos como
funciones hash. El output generado por una función hash se denomina valor hash
o digest del mensaje.
En combinación con la criptografía, las así
llamadas funciones hash criptográficas pueden ser empleadas para generar un
valor hash (digest) que funciona como huella digital única. Esto significa que
cualquier cambio en los datos de entrada (mensaje) generará como resultado un
output (valor hash) completamente diferente. Y esta es la razón por la que las
funciones hash criptográficas son ampliamente utilizadas para verificar la
autenticidad de los datos digitales.
Criptografía de Clave Pública (PKC)
La criptografía de clave pública, o PKC,
designa el sistema criptográfico que hace uso de un par de claves: una pública
y otra privada. Las dos claves están matemáticamente vinculadas y pueden ser
empleadas tanto para encriptación de datos como para firmas digitales.
Como herramienta de encriptación, la PKC es
más segura que los métodos más rudimentarios de la encriptación
simétrica. Mientras los sistemas más antiguos se apoyan en la misma
clave para cifrar y descifrar la información, la PKC permite encriptar los datos
mediante la clave pública, y desencriptarlos utilizando la correspondiente
clave privada.
Aparte de eso, el esquema PKC puede ser aplicado para la generación de firmas digitales. Básicamente, el proceso consiste en someter a hashing un mensaje (o datos digitales) junto con la clave privada del firmante.
A continuación, el receptor del mensaje podrá comprobar
si la firma es válida utilizando la clave pública proporcionada por el
firmante.
En algunas circunstancias, las firmas
digitales pueden conllevar encriptación, aunque no siempre es el caso. Por
ejemplo, la blockchain de Bitcoin hace uso de la
PKC y de las firmas digitales, pero a diferencia de lo que muchos tienden a
creer, no se produce encriptación en el proceso.
Técnicamente, Bitcoin utiliza el llamado
Algoritmo de Firma Digital de Curva Elíptica (ECDSA) para autenticar las
transacciones.
Funcionamiento de las firmas digitales
En el ámbito de las criptomonedas, un sistema
de firma digital con frecuencia consta de tres pasos básicos: hashing, firma y
verificación.
Hashing de los datos
El primer paso es someter a proceso de hashing el mensaje o los datos digitales. Esto se logra procesando los datos mediante un algoritmo de hashing, para así obtener un valor hash (en este caso, el digest del mensaje).
Como ya se ha mencionado,
el tamaño de los mensajes puede variar de forma significativa, pero cuando son
sometidos a proceso de hashing, todos sus valores hash resultantes presentan la
misma longitud. Esta es la propiedad más elemental de una función hash.
Sin embargo, para producir una firma digital no es imprescindible someter los datos a hashing, porque uno puede utilizar una clave privada para firmar un mensaje que de ninguna forma haya sido hasheado.
Ahora bien, en el caso de las criptomonedas, los datos son siempre sometidos a
proceso de hashing porque lidiar con digests de extensión fija facilita todo el
proceso.
Firma
Tras someter a proceso de hashing la información, el emisor del mensaje debe firmarla.
Este es el momento en que la
criptografía de clave pública entra en acción. Existen diversos tipos de
algoritmos de firma digital, cada uno con su propio mecanismo particular. Pero
de forma general, el mensaje que ha sido sometido a hashing será firmado con
una clave privada, y el receptor del mismo podrá comprobar su validez
utilizando la correspondiente clave pública (proporcionada por el firmante).
Dicho de otra forma, si la clave privada no
se incluye cuando se genera la firma, el receptor del mensaje no podrá utilizar
la clave pública correspondiente para así verificar su validez. Tanto la clave
pública como la privada son generadas por el emisor del mensaje, pero sólo la
clave pública es compartida con el receptor.
Vale la pena señalar que las firmas digitales
están directamente relacionadas con el contenido de cada mensaje. Entonces, a
diferencia de las firmas manuscritas, que tienden a ser las mismas
independientemente del mensaje, cada mensaje firmado digitalmente tendrá una
firma digital diferente.
Verificación
Tomemos un ejemplo para ilustrar todo el proceso hasta el paso final de verificación.
Imagina que Alice escribe un
mensaje a Bob, lo codifica y luego combina el valor hash con su clave privada
para generar una firma digital. La firma funcionará como una huella digital
única de ese mensaje en particular.
Cuando Bob recibe el mensaje, puede verificar
la validez de la firma digital utilizando la clave pública provista por Alice.
De esta manera, Bob puede estar seguro de que la firma fue creada por Alice
porque solo ella tiene la clave privada que corresponde a esa clave pública (al
menos eso es lo que esperamos).
Entonces, es crucial para Alice mantener su
clave privada en secreto. Si otra persona tiene en sus manos la clave privada
de Alice, puede crear firmas digitales y pretender ser Alice. En el contexto de
Bitcoin, esto significa que alguien podría 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 a menudo se usan para
lograr tres resultados: integridad de datos, autenticación y no repudio.
Casos de uso
Las firmas digitales se pueden aplicar a
varios tipos de documentos y certificados digitales. Como tal, tienen varias
aplicaciones. Algunos de los casos de uso más comunes incluyen:
Limitaciones
Los principales desafíos que enfrentan los
esquemas de firma digital se basan en al menos tres requisitos:
Firmas electrónicas vs. Firmas digitales
En pocas palabras, las firmas digitales se relacionan con un tipo particular de firmas electrónicas, que se refieren a cualquier método electrónico de firma de documentos y mensajes.
Por lo tanto,
todas las firmas digitales son firmas electrónicas, pero lo contrario no
siempre es cierto.
La principal diferencia entre ellos es el
método de autenticación. Las firmas digitales implementan sistemas
criptográficos, como funciones hash, criptografía de
clave pública y técnicas de cifrado.
En conclusión
Las funciones de hash y la criptografía de
clave pública son el núcleo de los sistemas de firma digital, que ahora se
aplican a una amplia gama de casos de uso.
Si se implementan correctamente, las firmas
digitales pueden aumentar la seguridad, garantizar la integridad y facilitar la
autenticación de todo tipo de datos digitales.
En el ámbito de blockchain, las firmas
digitales se utilizan para firmar y autorizar transacciones de criptomonedas.
Son particularmente importantes para Bitcoin
porque las firmas aseguran que las monedas solo pueden ser gastadas por las
personas que poseen las claves privadas correspondientes.
Aunque hemos estado utilizando firmas
electrónicas y digitales durante años, todavía hay mucho espacio para crecer.
Una gran parte de la burocracia actual
todavía se basa en el papeleo, pero probablemente veremos una mayor adopción de
esquemas de firma digital a medida que migremos a un sistema más digitalizado.
Comentarios
Publicar un comentario