You are on page 1of 12

Autentificaci

on. Firma Digital


Juan Tena Ayuso

Introducci
on

En el ambito de la seguridad de las telecomunicaciones, junto al clasico requisito criptografico


de la privacidad o confidencialidad, se plantean tambien los de autenticidad del emisor (autenticidad de origen o de usuario) y de no falsificacion o alteracion del mensaje (autenticidad
o integridad del mensaje).
En efecto, ademas del ataque criptoanaltico habitual, en el cual el criptoanalista rival
intercepta la comunicacion y trata de descifrar su contenido (ataque pasivo), aquel puede
intentar hacerse pasar por quien no es, digamos B, entablando comunicacion con otro usuario
A. Por tanto, cuando A recibe un mensaje que pretende ser de B, necesita una forma de
garantizar que realmente es B quien lo enva.
Una tal identificacion del usuario puede ser directa, comprobando una caracterstica
propia de aquel, o indirecta, cuando el usuario demuestra estar en posesion de una pieza
secreta de informacion (suele tomar la forma de Desafio-Respuesta: se plantea una cuestion
a la que solo el usuario legtimo puede responder).
El atacante puede tambien alterar, o substituir por otro, un mensaje enviado por B
a A. Los protocolos de autentificacion del mensaje tratan de garantizar la integridad del
mensaje.
Ambos problemas, autentificacion de usuario e integridad del mensaje, estan estrechamente relacionados y la Criptografa de Clave P
ublica permite dar una solucion simple y
satisfactoria a los mismos. De hecho esta fue (junto con el problema de la distribucion
de llaves), una de las razones que llevaron a Diffie y Hellman a la introduccion de dicha
Criptografa.
La firma digital, en tanto que analogo criptografico de la firma ordinaria, puede considerarse un caso particular de autentificacion. Sin embargo presenta caracteristicas propias
y una importancia creciente (que desborda el ambito criptografico) lo que hace conveniente
un tratamiento diferenciado.

M
etodos de Autentificaci
on

Antes de abordar de manera general el problema, consideremos un caso particular, que


mostrara como pueden garantizarse los objetivos mencionados de autenticidad de usuario e
integridad del mensaje utilizando el criptosistema RSA (ver [3], en este mismo volumen).
El remitente j, que desea autentificar un mensaje M , enviado a i, cifra este con su
propia llave privada dj (en lugar de hacerlo con la p
ublica del destinatario, como en el caso

180

Juan Tena Ayuso

en que el objetivo buscado era la confidencialidad de M ). A la recepcion, i descifra con la


llave p
ublica de j y recupera M dj ej M (mod nj )
La autenticidad del remitente es evidente, porque solo j ha podido cifrar tal mensaje.
La integridad del mensaje queda asimismo garantizada, porque puede probarse que la probabilidad de que un falso mensaje se descodifique correctamente con la clave p
ublica de j
es practicamente nula.
El proceso anterior queda ilustrado en la figura siguiente en la que el uso del RSA se
representa mediante una caja fuerte con dos llaves.

El esquema de autentificacion, descrito anteriormente, no proporciona sin embargo secreto (ya que cualquiera puede tener acceso a la clave p
ublica de j y por tanto puede leerlo).
Si se desea conjugar ambos aspectos puede cifrarse dos veces, seg
un el esquema siguiente:
supongamos j, con claves (nj , ej , dj ) desea enviar M a i, con claves (ni , ei , di ). Distingamos
(por razones tecnicas) dos casos:
Si ni < nj , M se cifra como [M ei (modni )]dj (modnj )

e
Si nj < ni , M se cifra como M dj (modnj ) i (modni )
El proceso se representa en la figura de la pagina siguiente.
Planteemos ahora el problema de la autentificacion de manera general. Los procesos
de autentificacion constituyen un tipo particular de una amplia gama de aplicaciones criptograficas que reciben el nombre generico de Protocolos Criptograficos (ver [9], para otros
tipos de protocolos).

Autentificacion. Firma Digital

181

Objetivos de un protocolo de autentificaci


on de usuario
1. Debe permitir a una parte A demostrar a otra B su identidad.
2. Tras un protocolo de autentificacion entre A y B, este u
ltimo no debe poder utilizar
la informacion obtenida de A para suplantarlo ante C.
3. La probabilidad de que C, ejecutando el protocolo, pueda conseguir ser aceptado por
B como A es despreciable.
Un tal protocolo utiliza, como herramientas, diversas funciones criptograficas. Podemos
clasificarlas en tres tipos:
Cifrado: El remitente y/o el mensaje se autentifican con un algoritmo de cifrado.
1. Con clave privada: Proporcionan autentificacion implcita: si el receptor del mensaje, al descifrar con la llave que comparte con quien dice enviarselo, obtiene un
mensaje con sentido sabe que la probabilidad de que un atacante, sin acceso a
la llave, haya podido crear un falso mensaje cifrado es practicamente nula (tal
hecho esta basado en la redundancia de los lenguajes naturales, ver [8]).
2. Con clave p
ublica: El mensaje, cifrado con la llave privada del remitente, garantiza la autenticidad de origen y de contenido. Es el caso del ejemplo antes descrito
con el algoritmo RSA.

182

Juan Tena Ayuso

MAC (Message Authentication Codes)


Definici
on 2.1. Un MAC es un bloque de de tama
no fijo Ck (M ), obtenido a partir
de un mensaje M , de cualquier longitud y k una llave secreta compartida por dos
usuarios A, B, el cual se adjunta al mensaje: (M, Ck (M )).
Ejemplo 2.2. El Data Authentication Algorithm, basado en DES, obtiene un MAC
de 64 bits, ver [4].
Funciones hash o funciones resumen
Definici
on 2.3. Una funcion hash es una funcion de una va, p
ublicamente conocida
(a diferencia del MAC no utiliza ninguna llave) que produce, a partir de un mensaje
M de longitud variable, un bloque H(M ) de longitud fija
Requerimientos de una funci
on hash
1. h = H(M ) debe ser facil de computar.
2. Conocido h debe ser computacionalmente imposible encontrar un M tal que
H(M ) = h.
3. Dado M debe ser computacionalmente imposible encontrar un mensaje M 0 6= M
tal que H(M 0 ) = H(M ).
Si ademas se verifica,
4. Es computacionalmente imposible encontrar dos mensajes (M, M 0 ) tales que
H(M ) = H(M 0 ), se habla de funcion hash fuerte (permite evitar ataques basados
en la denominada paradoja del cumplea
nos, ver [6])
Ejemplo 2.4. Diferentes modelos de funciones hash han sido propuestos. Los mas
conocidos actualmente son el SHA (Secure Hash Algorithm) y el MD5 (Message Digest
5), que producen un comprimido de 128 bits del mensaje. Ver [7] o [4].
Nota 2.5. Las funciones hash constituyen una herramienta importante en Criptografa
(por ejemplo constituyen un ingrediente fundamental de la firma digital, como veremos
mas adelante) y en otras ramas.

Protocolos de Desafo-Respuesta
Definici
on 2.6. Son protocolos que demuestran la identidad de una parte A a otra B (el
verificador), demostrando la posesion de un cierto secreto (sin revelar este). Para ello A debe
proporcionar una respuesta a un cierto desafo planteado por el verificador. Habitualmente
tal respuesta debe ser dada en un plazo determinado. De no hacerlo as B considerara
terminado el protocolo y fallida la autentificacion.

Autentificacion. Firma Digital

183

Desafo-Respuesta con clave p


ublica
Aunque existen protocolos basados en tecnicas simetricas, como el Kerberos (ver [7])
nos limitamos aqu al caso de clave p
ublica. Supondremos pues que A posee un par de llaves
(CA , DA ). Para identificarse demuestra al verificador B que posee su llave privada DA (sin
revelar esta).
1. Descifrando un desafo cifrado con su llave p
ublica: Para ello B enva a A : (IB , e =
CA (r)) donde IB es el identificador de B, r un n
umero aleatorio, y e es el desafo
propiamente dicho.
A debe descifrar e utilizando su clave privada, recuperar r y enviarlo a B (en el plazo
preestablecido).
B acepta la identificacion si el n
umero recibido coincide con el r enviado.
2. Firmando un desafo con su llave privada: En este caso B enva a A : (IB , rB ), con rB
aleatorio. A construye y enva el vector (rA , IB , DA (rA , rB , IB ).
B descifrara la u
ltima componente (utilizando la clave p
ublica de A), comprobara que
los IB y rA que obtiene coinciden con los que estaban en claro en las dos primeras
componentes y que rB coincide con el que envio.

Protocolos de Conocimiento Cero


En los protocolos de desafo-respuesta, aunque A no revela el secreto, en el proceso
cierta informacion puede ser conseguida por B.
Definici
on 2.7. Una prueba de conocimiento cero permite a una persona demostrar a otra
que posee un secreto, sin que esta u
ltima pueda obtener en el proceso ninguna informacion
que no hubiese podido obtener por si sola.
Nota 2.8. Nos limitaremos aqu al uso de las pruebas de conocimiento cero en los protocolos
de autentificacion, aunque el tema sea mas amplio, ver [6] o [5].
Las pruebas de conocimiento cero adoptan la forma de una demostracion interactiva,
implicando un cierto n
umero de etapas. En cada etapa:
B presenta un desafo a A.
A realiza una cierta computacion privada.
A enva a B una respuesta al desafo planteado.
Si alguna de las respuestas es incorrecta B considera que A no posee el secreto y rechaza
su autenticidad. Por contra si todas son correctas la acepta.

184

Juan Tena Ayuso

Condiciones de una prueba de conocimiento cero:


a) Si A posee el secreto siempre puede conseguir que B acepte su demostracion.
b) Si A no posee el secreto la probabilidad de que enga
ne a B puede hacerse tan peque
na
como se quiera.
Veamos un par de protocolos de autentificacion basados en pruebas de conocimiento
cero.

Protocolo de identificaci
on de Fiat-Shamir
Requerimientos previos:
1. Una tercera parte confiable T ha elegido y hecho p
ublico n = pq, p, q primos,
guardando p, q secretos.
2. A elige el secreto s, 1 s n 1 y computa v = s2 (mod n), que registra con T
como llave p
ublica.
Algoritmo 2.9. Consta de t rondas (por ejemplo t=50) cada una implicando 3 intercambios
de mensajes.
1. A elige aleatoriamente r, 1 r n 1 y enva a V el testigo x = r2 (mod n).
2. V elige y enva a A, e {0, 1}.
3. A computa y enva a V :
y = r, si e = 0.
y = rs, si e = 1.
4. Si y = 0, V rechaza la prueba (r 6= 0). Caso contrario la acepta si y solo si y 2 xv e
(mod n).
Nota 2.10. Un adversario impersonando A puede enviar a V , x = r2 /v. Podra entonces
responder (correctamente) y = r si e = 1, pero no si e = 0. Luego tendra una probabilidad
1/2 de acierto en cada ronda.

Autentificacion. Firma Digital

185

Protocolo de identificaci
on de Schnorr
Basado en el problema del logaritmo discreto. Requiere solo tres intercambios de mensajes.
Requerimientos previos:
1. Una tercera parte confiable T ha elegido:
a1) p primo, q primo, q|p 1, (p 21024 , q 2160 ).
a2) 1 p 1 de orden q (mod p)
a3) Cada participante posee copia autentificada de (p, q, )
a4) Un parametro de seguridad t, t 40, 2t < q.
2. Parametros de A,
b1) Identificador IA
b2) Llave privada 0 a q 1
b3) Llave p
ublica v = a (mod p)
b4) Certificado emitido por T : CertA = (IA , v, DT (IA , v)) (DT llave privada de T ).
Algoritmo 2.11.
1. A elige aleatoriamente r, 1 r q 1 y enva a V : CertA , x r (mod p).
2. Tras verificar la llave p
ublica de A, V elige y enva a A, 1 e 2t .
3. A enva a V , y ae + r (mod q).
4. V acepta la identidad de A si z y v e (mod p) = x.

Firma Digital

El desarrollo del comercio electronico y de los requerimientos de autentificacion, hacen necesario un analogo electronico de la firma ordinaria, incluso con valor legal, para zanjar disputas
respecto a la autenticidad de documentos transmitidos electronicamente.
Ello confiere a la firma digital obvias implicaciones economicas, pero tambien legislativas
y jurdicas, como lo muestra el interes reciente del mundo del derecho por el tema y la
legislacion a la que ha dado lugar: Real Decreto-ley de firma electronica de 17/9/1999, LSSI,
directivas europeas, etc.
La firma electronica debe tener pues una serie de propiedades formalmente analogas a
las de la firma escrita ordinaria. En particular:

186

Juan Tena Ayuso

Personal: Solo el propietario puede producirla.


Infalsificable: El intento, por parte de un usuario ilegal, de falsificar tal firma debe
ser computacionalmente imposible.
F
acil de Autentificar: El receptor y eventualmente un arbitro o juez, deben ser
capaces de atestiguar, la autora de la firma.
No repudiaci
on: El autor de la firma no debe tener la posibilidad de rechazarla como
falsa.
F
acil de Generar.
Nota 3.1. Sin embargo, a diferencia de la firma ordinaria, que es siempre la misma, la firma
digital depende del mensaje particular firmado. Se trata de un requisito de seguridad ya
que si la firma fuese independiente del mensaje y a
nadida a este, un criptoanalista que
intercepte un tal mensaje firmado, puede substituir el mensaje propiamente dicho por otro
falso, pero conservando la firma final. Tal falsificacion tendra entonces la garanta de una
firma legtima.
Un esquema de firma digital comporta dos partes:
1. Algoritmo de firma
2. Algoritmo de verificacion de la firma
El algoritmo de firma puede ser,
Definici
on 3.2.
Determinista: Dos firmas del mismo mensaje producen el mismo resultado (por ejemplo
las firmas basadas en RSA).
Aleatoria: dependiente de un conjunto de ndices (por ejemplo las basadas en ElGamal).
Por otra parte existen dos tipos fundamentales de esquemas de firma,
Definici
on 3.3.
Esquema de firma con recuperaci
on del mensaje: El mensaje firmado se recupera
durante el proceso de verificacion de la firma. Es el proceso esquematizado al comienzo
de la seccion de autentificacion.
Esquema de firma con ap
endice: Requieren el mensaje original como input para la
verificacion de la firma.

Autentificacion. Firma Digital

187

Las firmas con recuperacion del mensaje tienen el inconveniente de tener que cifrar (dos
veces si se desea garantizar secreto y autenticidad) todo el mensaje a autentificar, el cual
puede ser muy largo, con clave p
ublica (que es muy lenta).
En consecuencia, para firmar un mensaje, habitualmente se obtiene previamente un
comprimido de peque
no tama
no del mensaje, que es lo que se cifra para obtener la firma.
Tales comprimidos se obtienen utilizando las funciones hash anteriormente descritas.
Un protocolo de firma digital con apendice de un mensaje M (eventualmente cifrado
previamente, por ejemplo con clave privada, para garantizar el secreto) sera como sigue:

Algoritmo 3.4.
1. Obtener el comprimido hash H(M ) y su firma F (H(M )) (obtenida con la llave privada
del remitente, por ejemplo la llave privada de RSA).
2. Enviar el par (M, F (H(M ))).
3. El receptor calcula H(M ) por dos caminos: a partir del primer elemento del par y de
la funcion (p
ublicamente conocida) H y a partir del segundo elemento (aplicandole la
llave p
ublica del remitente).
4. El receptor compara los dos valores de H(M ) obtenidos, aceptando el mensaje si
coinciden y rechazandolo en caso contrario.
5. Eventualmente, si M estaba previamente cifrado, el receptor lo descifrara para obtener
el mensaje en claro.

Tipos de ataques
El objetivo para un atacante a un proceso de firma digital es forjar firmas que sean
aceptadas como validas. Seg
un el ambito de tales falsificaciones se habla de:
1. Rotura total: El atacante posee un algoritmo de firma funcionalmente equivalente al
autentico.
2. Rotura selectiva: El atacante es capaz de forjar una firma para un tipo particular
de mensaje.
3. Rotura existencial: El atacante es capaz de forjar una firma para al menos un
mensaje.

188

Juan Tena Ayuso


Para mas detalles ver [4].

Aunque diversos protocolos de firma basados en la Criptografa de clave privada han


sido propuestos (como por ejemplo el esquema de Lamport-Diffie, ver [5]) la Criptografa de
clave p
ublica permite resolver mucho mas eficientemente el problema. Dado que el proceso
de firma con RSA ha sido ya esquematizado veamos dos esquemas de firma basadas en el
problema del logaritmo discreto.

Firma digital de ElGamal


Requerimientos previos:
1. Se ha elegido un primo adecuado p (con p 200 bits) y un elemento primitivo g
(generador del grupo multiplicativo Fp ).
2. El firmante elige una llave secreta n, 1 < n < p 1 y hace p
ublica K g n mod p.
Algoritmo 3.5. Para firmar un mensaje M (o el comprimido hash del mismo h(M ))
1. Se elige aleatoriamente un n
umero k, mcd(k, p 1) = 1 y se computa X g k mod p.
2. Se despeja Y de la congruencia M nX + kY mod p 1.
3. Firma: (M, f (M ) = X, Y )
4. Verificaci
on de la firma: Sea A K X X Y . La firma se acepta como valida si A
M
g mod p.

Esquemas DSA y DSS


En 1991 el USA National Institute of Standards and Technology (NIST) propuso el
algoritmo DSA (Digital Signature Algorithm). El DSA fue adoptado como standard DSS
(Digital Signature Standard). Tal standard utiliza como funcion hash el SHA-1.
Requerimientos previos:
1. Con el objetivo de reducir la longitud de la firma (y por tanto el coste computacional
de su generacion y verificacion) se eligen dos primos: p con 512 bits y q con 160 bits
y divisor de p 1. Se elige tambien un elemento g Fp de orden q.
2. El firmante elige una llave secreta n, 1 < n < q y hace p
ublica K g n mod p.
Algoritmo 3.6. Para firmar un mensaje M , 1 < M < p
1. Se elige aleatoriamente un n
umero k, 1 < k < q).

Autentificacion. Firma Digital


2. Se computan r [g k mod p] mod q y s

189
M +nr
k

mod q.

3. Firma: (M,f(M)=r,s).
4. Verificaci
on de la firma: Sean w s1 mod q, u M w mod q y v rw mod q.
La firma se acepta como valida si r [g u K v mod p] mod q.

Tipos particulares de Firmas Digitales


Existen tipos de firmas digitales con propiedades o requerimientos particulares. Esquematicemos brevemente algunas de tales firmas. Mas detalles pueden encontrarse en [4] o
[6].
Firmas de un solo uso: Solo pueden ser empleadas una vez. Tienen la ventaja de su bajo
coste computacional, lo que las hace indicadas para plataformas como las tarjetas
inteligentes.
Firmas en presencia de arbitro: Una tercera parte confiable participa en los procesos
de firma y de verificacion.
Firmas ciegas: Permiten a una parte A conseguir que otra B (una cierta autoridad) firme
un mensaje M sin que en el proceso B pueda conocer el contenido de M .
Firmas no repudiables (undeniables): El proceso de verificacion requiere la participacion activa del firmante. Si este rehusa hacerlo puede interpretarse como culpabilidad.
Si realiza la verificacion incorrectamente o bien tras el protocolo declara que la firma
no es suyo, existe un segundo protocolo de desacuerdo.
Firmas Fail-Stop: Permiten a A probar que una firma, supuestamente suya, es falsa.
Firmas de Grupo: Pueden ser realizadas por cada miembro de un cierto grupo de personas.

Bibliografa
[1] P. Alegra, M.A. Garca, I. Martinez, J. Tena, A. Vera, Aplicaciones de las Matem
aticas.
Editorial Antonio Vera, 2002.
[2] A. Fuster, D. de la Gua, L. Hernandez, F.Montoya, J.Mu
noz, Tecnicas Criptograficas de
proteccion de datos. Ed. Ra-Ma, 1997.
[3] J. Gutierrez, A. Ibeas, Criptografa. Protocolos Criptograficos y Seguridad en Redes. (Eds. J.
Gutierrez, T. Ayuso), Servicio de Publicaciones Universidad de Cantabria, 2003.

190

Juan Tena Ayuso

[4] A.J. Menezes, P.C van Oorschot, S.A. Vanstone, Handbook of Applied Cryptography. C.R.C.,
1997.
[5] J. Pastor, M.A. Sarasa, Criptografa Digital. Fundamentos y Aplicaciones. Prensas de la U.
de Zaragoza, 1997.
[6] B. Schneider, Applied Criptography. J. Wiley, 1994.
[7] W. Stalling, Cryptography and Network Security. Prentice Hall, 1998.
[8] D.R. Stinson, Cryptography. Theory and Practice, C.R.C., 1995.
[9] J. Tena, Protocolos Criptogr
aficos. Protocolos Criptograficos y Seguridad en Redes. (Eds. J.
Gutierrez, T. Ayuso), Servicio de Publicaciones Universidad de Cantabria, 2003.