Firma de Lamport-Diffie

De Wikipedia, la enciclopedia libre
Saltar a: navegación, búsqueda

La Firma de Lamport-Diffie es un esquema de firma digital propuesta por L. Lamport y W. Diffie.[1]​ y que está basada en criptografía simétrica . La firma, en principio, se aplica sobre mensajes sin efectuar ninguna modificación previa de los mismos.

Descripción[editar]

Para firmar un mensaje M de n bits, el firmante elige aleatoriamente un vector K constituido por n parejas de claves secretas dadas por:

A continuación el firmante calcula dos secuencias de valores R y S dadas por:

donde los valores del conjunto S se escogen de forma aleatoria y los del conjunto R son sus respectivos cifrados dados por:

siendo un criptosistema simétrico de clave kij. La estructura del criptosistema E utilizado determina el número de bits n y la longitud de las secuencias R y S utilizadas luego para la validación. Por ejemplo, si E es el DES, entonces n=64. En estas condiciones, los conjuntos R y S se hacen públicos en un registro de sólo lectura, que sólo puede ser modificado por el firmante. La firma del mensaje con un bit que puede valer 0 ó 1, será:

.

La firma del mensaje M es obtenida de la siguiente forma: la componente i de será si es 0, en otro caso será . La autenticidad de la firma se comprueba verificando las relaciones entre los correspondientes valores de las secuencias de validación R y S en función de las claves conocidas. Sea

obtenido de la misma forma que se calculaba pero ahora en lugar de R, usamos S. Ahora hallamos

En estas condiciones, el receptor acepta la validez de la firma si dichos valores son respectivamente iguales a los del subconjunto del registro público R (hallado de forma análoga que y , pero esta vez sobre R)

Ejemplo[editar]

Sea un criptosistema simétrico de clave secreta k de n=3 bits. Para computar la firma de M=1011, Primero el firmate elige aleatoriamente el vector binario K de claves secretas, por ejemplo:

A continuación se elige la secuencia binaria aleatorio S, por ejemplo

y computa el vector R

haciendo públicos los conjuntos R y S. Por tanto la firma será:

Para verificarla hallamos y :

Para verificar hallamos quedando

que coincide con y por tanto el receptor acepta la validez de la firma.

Incovenientes[editar]

Es conveniente que el firmate cambie el vector de claves secretas K, así como las correspondientes secuencias de validación contenidas en los registro públicos R y S, cada vez que se aplique la firma. En caso contrario, el secreto podría ser revelado, comprometiendo la seguridad.

Otro inconvenientes es el de la excesiva longitud de la firma, de la clave K y de los vectores R y S implicados. Produciendo un gasto de recursos de almacenamiento y de transmisión. Una forma de paliar un poco este inconveniente es firmar el resultado de aplicar una función hash (realmente un código de detección de manipulaciones).

Referencias[editar]

  • José Pastor Franco, Miguel A. Sarasa López, "Criptografía digital. Fundamentos y aplicaciones", Prensas Universitarias de Zaragoza 1998.
  1. Lamport, L. Diffie W. "Constructing Digital Signatures from a One-Way Function. Technical report CSL-98, SRI International, Palo Alto 1979