Capítulo 7: Firma digital

10
Outline Firma digital RSA Firma digital El Gamal Firma digital en CE Funciones de Hash DSA - NIST FIRMA DIGITAL Juan Manuel Garc´ ıa Garc´ ıa 14 de octubre de 2010 Juan Manuel Garc´ ıa Garc´ ıa FIRMA DIGITAL

Transcript of Capítulo 7: Firma digital

Page 1: Capítulo 7: Firma digital

OutlineFirma digital RSA

Firma digital El GamalFirma digital en CEFunciones de Hash

DSA - NIST

FIRMA DIGITAL

Juan Manuel Garcıa Garcıa

14 de octubre de 2010

Juan Manuel Garcıa Garcıa FIRMA DIGITAL

Page 2: Capítulo 7: Firma digital

OutlineFirma digital RSA

Firma digital El GamalFirma digital en CEFunciones de Hash

DSA - NIST

Firma digital RSA

Firma digital El Gamal

Firma digital en CE

Funciones de Hash

DSA - NIST

Juan Manuel Garcıa Garcıa FIRMA DIGITAL

Page 3: Capítulo 7: Firma digital

OutlineFirma digital RSA

Firma digital El GamalFirma digital en CEFunciones de Hash

DSA - NIST

Firma digital RSA

Supongamos que Alicia desea enviar un mensaje firmadodigitalmente a Bob. Para firmar el mensaje, Alicia hace losiguiente:

1. Alicia toma el mensaje M y calcula S = Mda(mod na).

2. Alicia envıa el mensaje M anexandole la firma digital S .

Para verificar la firma digital, una vez que ha recibido el mensaje(M, S), Bob realiza los siguientes pasos:

1. Obtiene la clave publica de Alicia, (ea, na).

2. Calcula M ′ = Sea(mod na).

3. Si M ′ = M la firma es valida.

Juan Manuel Garcıa Garcıa FIRMA DIGITAL

Page 4: Capítulo 7: Firma digital

OutlineFirma digital RSA

Firma digital El GamalFirma digital en CEFunciones de Hash

DSA - NIST

Firma digital de ElGamal

El esquema de ElGamal para firmar digitalmente un mensaje es elsiguiente:

1. A genera un numero aleatorio h tal que MCD(h, φ(n)) = 1.

2. A calcula r ≡ αh (mod n).

3. A resuelve la congruencia m ≡ a · r + h · s (mod φ(n)).

La firma digital de A para el mensaje m es el par (r , s).Para que B compruebe la firma de A tiene que realizar lo siguiente:

1. B calcula r s ≡ (αh)s (mod n) y (αa)r (mod n).

2. B calcula (αa)r (αh)s (mod n) y comprueba que es igual aαm (mod n).

Juan Manuel Garcıa Garcıa FIRMA DIGITAL

Page 5: Capítulo 7: Firma digital

OutlineFirma digital RSA

Firma digital El GamalFirma digital en CEFunciones de Hash

DSA - NIST

Firma Digital en Curvas Elıpticas

Supongamos que A desea firmar el mensaje M a enviar a B.Entonces A debe realizar el siguiente procedimiento:

1. Usar un algoritmo de hash para calcular el valor de hashe := H(M).

2. Seleccionar un entero aleatorio k tal que 1 ≤ k < n.

3. Calcular el punto (x1, y1) := kP y hacer r := x1 mod n.

4. Usar su clave privada para calcular s := k−1(e + rd) mod n.

5. A envia a B el mensaje M y su firma (r , s).

Juan Manuel Garcıa Garcıa FIRMA DIGITAL

Page 6: Capítulo 7: Firma digital

OutlineFirma digital RSA

Firma digital El GamalFirma digital en CEFunciones de Hash

DSA - NIST

Verificacion de la firma digital en CCE

Si el principal B desea verificar la firma (r , s) de A para el mensajeM, debe realizar los siguientes pasos:

1. Obtener la clave publica Q del principal A.

2. Si (r mod n) = 0 entonces rechazar la firma.

3. Calcular el valor de hash e := H(M).

4. Calcular s−1mod n.

5. Calcular u := s−1e mod n y v := s−1r mod n.

6. Calcular al punto (x1, y1) := uP + vQ.

7. Aceptar la firma de A para el mensaje M si y solo si(x1 mod n) = r .

Si r = 0 entonces la ecuacion de la firma s = k−1(e + rd) noinvolucra la clave privada d , y de ahı la condicion en el paso 4.

Juan Manuel Garcıa Garcıa FIRMA DIGITAL

Page 7: Capítulo 7: Firma digital

OutlineFirma digital RSA

Firma digital El GamalFirma digital en CEFunciones de Hash

DSA - NIST

Funciones de Hash

Una funcion de hash es una funcion que aplica a un mensaje m detamano variable, una representacion de tamano fijo del propiomensaje, H(m), que es llamado su valor de hash. Si

H(m) = m′

entonces m′ es mucho menor que m. Por ejemplo, si m es de unmegabyte, m′ puede ser de 64 o 128 bytes.Una funcion de hash segura es una funcion de hash H de modoque para cualquier mensaje m′ es difıcil encontrar una m tal queH(m) = m′.Las funciones de hash mas utilizadas son las funciones MD2, MD4y MD5, las cuales producen resumenes de 128 bits.

Juan Manuel Garcıa Garcıa FIRMA DIGITAL

Page 8: Capítulo 7: Firma digital

OutlineFirma digital RSA

Firma digital El GamalFirma digital en CEFunciones de Hash

DSA - NIST

Firma Digital Estandar del NIST

Digital Signature Standard, DSA

El DSA propuesto es una variante de la firma digital de ElGamal.El protocolo es el siguiente:Cada usuario determina los siguientes parametros:

1. p un numero primo con 2511 < p < 2512.

2. q un divisor primo de p − 1, con 2159 < q < 2160.

3. g un generador del unico subgrupo cıclico de Z∗

p de orden q.

4. Su clave privada, x , un entero tal que 0 < x < q.

5. Su clave publica, y , donde y = g x (mod p).

Juan Manuel Garcıa Garcıa FIRMA DIGITAL

Page 9: Capítulo 7: Firma digital

OutlineFirma digital RSA

Firma digital El GamalFirma digital en CEFunciones de Hash

DSA - NIST

Firma Digital Estandar del NIST

Se elabora una firma digital como sigue:Sea H : M → Z una funcion de hash segura, y supongamos que elmensaje a firmar es m.

1. Se selecciona un entero aleatorio k con 0 < k < q.

2. Se calcula el valor de r := (gk(mod p))(mod q).

3. Se resuelve la congruencia H(m) ≡ −x · r + k · s (mod q)para s.

La firma digital para el mensaje m es el par (r , s).

Juan Manuel Garcıa Garcıa FIRMA DIGITAL

Page 10: Capítulo 7: Firma digital

OutlineFirma digital RSA

Firma digital El GamalFirma digital en CEFunciones de Hash

DSA - NIST

Firma Digital Estandar del NIST

Para verificar la firma se procede como sigue:

1. Se calcula w ≡ s−1(mod q).

2. Se calculan

u1 ≡ H(m) · w (mod q)

u2 ≡ r · w (mod q)

3. Se calcula v ≡ (gu1yu2(mod p))(mod q).

4. Se comprueba que v = r .

Juan Manuel Garcıa Garcıa FIRMA DIGITAL