Como en el caso de RSA, ya expliqué en este post cómo se firma y verifica la firma en ese criptosistema, el emisor del mensaje firma un hash del mensaje con su clave privada y el receptor verifica la firma utilizando la clave pública del emisor, con lo que se pretende garantizar tanto la autenticidad del mensaje como su integridad, es decir, tanto que la persona que lo ha enviado es el emisor legítimo (es quien dice ser) como que el mensaje no ha sido interceptado y alterado por un tercero.
Los protocolos de firma digital y verificación de la firma digital utilizando este esquema de firma son los siguientes:
Protocolo de firma digital:
1.- Para firmar digitalmente un mensaje ('M') el emisor obtiene un resumen del mismo mediante una función hash, h(M); de tamaño fijo mucho menor que el mensaje original, asociado unívocamente a éste (es prácticamente imposible encontrar otro mensaje que dé como resultado el mismo resumen) e irreversible (es prácticamente imposible obtener el mensaje a partir del resumen).
2.- El emisor genera aleatoriamente un número primo ('h'), mayor o igual que 1 y menor o igual que p - 1, coprimo o primo relativo con ϕ(p), o, lo que es lo mismo (como 'p' es primo, entonces ϕ(p) = p -1), el máximo común divisor de 'h' y p -1 deber ser 1.
3.- El emisor calcula su rúbrica ('r', primera parte de la firma digital):
r = gh mod p
4.- El emisor calcula la segunda parte de la firma digital:
La firma digital es el par de valores (r, s), que se envían junto con 'M'.
Protocolo de verificación de la firma digital:
1.- El receptor calcula el hash del mensaje recibido h'(M).
2.- El receptor comprueba si gh'(M) mod p es igual que kr* rs = gar * ghs mod p. Si son iguales se acepta la firma como válida, en caso contrario se rechaza.
Quizás también te interese:
Comentarios
Publicar un comentario