Firma de Lamport-Diffie

La Firma de Lamport es un esquema de firma digital de un solo uso, inventada por Leslie Lamport en 1979.[1]​ La firma se aplica sobre mensajes sin efectuar ninguna modificación previa de los mismos.

La esquema de firma de Lamport utiliza un juego de claves, compuesto por una clave privada y una clave pública. La clave privada es un conjunto de elementos privados. La clave pública es otro conjunto de elementos, formados, generalmente, por la aplicación de una función hash a cada elemento privado. Para firmar un documento, se aplica una función hash al documento del que se obtienen bits, y se utilizan para seleccionar elementos de la clave pública.

Representación de la secuencia para firmar un documento con una firma de Lamport.

La firma de Lamport se debe utilizar una sola vez por cada juego de claves. Sin embargo, combinado el esquema de firma de Lamport con un Árbol de Merkle, un solo juego de claves podría usarse para firmar varios mensajes, lo que la convierte en un esquema de firma digital bastante eficiente.

El desarrollo potencial de la computación cuántica amenaza la seguridad de muchas formas comunes de criptografía como RSA, pero se cree que las firmas de Lamport estarían seguras si se usan, como componentes de las claves, valores de tamaño adecuado.


Descripción formal editar

A continuación se muestra una descripción de como funciona una firma Lamport, en notación matemática. Notar que el "mensaje" en esta descripción es un bloque de   datos siendo posiblemente (pero no necesariamente) el resultado de aplicar una función hash al mensaje que realmente se quiere firmar.

Claves editar

Sea   un entero positivo y sea   una función unidireccional.

Para   y   el firmante elige aleatoriamente   y luego calcula  .

La clave privada,  , consiste en   valores  . La clave pública, , consiste en otros   valores  .

Firma de un mensaje editar

Sea   el bloque descriptor del mensaje:  

 

La firma del mensaje es:

 .

Verificación de la firma editar

Quien necesite validar la firma debe verificar que:

  para todo   .

Se debe conservar los elementos privados que forman la firma, la clave pública y el mensaje original para futuras validaciones.

Para que Eva pueda falsificar una firma, debe poder invertir los valores de la clave pública. Y esto se asume como un problema computacionalmente inviable si se usan valores de tamaño adecuado.


Inconvenientes editar

El primer inconveniente es que se debe utilizar cada juego de claves una sola vez. La razón es que al firmar se hacen visibles los   elementos privados que generaron los   elementos públicos. Es decir, se exponen el 50% de los elementos que forman la clave privada, por lo tanto una vez que se firma un documento no se debe reutilizar el juego de clave pública y privada. Además se debe destruir el 50% remanente de elementos privados que forman la clave privada y no que fueron expuestos.

Otro inconvenientes es el de la excesiva longitud de las claves y la firma.

Referencias editar

  1. Lamport, L. "Constructing Digital Signatures from a One-Way Function. Technical report CSL-98, SRI International, Palo Alto 1979