Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Capítulo 7: Firma digital
1. 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
2. Outline
Firma digital RSA
Firma digital El Gamal
Firma digital en CE
Funciones 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
3. Outline
Firma digital RSA
Firma digital El Gamal
Firma digital en CE
Funciones de Hash
DSA - NIST
Firma digital RSA
Supongamos que Alicia desea enviar un mensaje firmado
digitalmente a Bob. Para firmar el mensaje, Alicia hace lo
siguiente:
1. Alicia toma el mensaje M y calcula S = Mda (mod na).
2. Alicia env´ıa el mensaje M anex´andole 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 p´ublica de Alicia, (ea, na).
2. Calcula M′ = Sea (mod na).
3. Si M′ = M la firma es v´alida.
Juan Manuel Garc´ıa Garc´ıa FIRMA DIGITAL
4. Outline
Firma digital RSA
Firma digital El Gamal
Firma digital en CE
Funciones de Hash
DSA - NIST
Firma digital de ElGamal
El esquema de ElGamal para firmar digitalmente un mensaje es el
siguiente:
1. A genera un n´umero 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 rs ≡ (α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
5. Outline
Firma digital RSA
Firma digital El Gamal
Firma digital en CE
Funciones 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 hash
e := 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
6. Outline
Firma digital RSA
Firma digital El Gamal
Firma digital en CE
Funciones de Hash
DSA - NIST
Verificaci´on de la firma digital en CCE
Si el principal B desea verificar la firma (r, s) de A para el mensaje
M, debe realizar los siguientes pasos:
1. Obtener la clave p´ublica 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−1 mod 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 ecuaci´on de la firma s = k−1(e + rd) no
involucra la clave privada d, y de ah´ı la condici´on en el paso 4.
Juan Manuel Garc´ıa Garc´ıa FIRMA DIGITAL
7. Outline
Firma digital RSA
Firma digital El Gamal
Firma digital en CE
Funciones de Hash
DSA - NIST
Funciones de Hash
Una funci´on de hash es una funci´on que aplica a un mensaje m de
tama˜no variable, una representaci´on de tama˜no fijo del propio
mensaje, 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 un
megabyte, m′ puede ser de 64 o 128 bytes.
Una funci´on de hash segura es una funci´on de hash H de modo
que para cualquier mensaje m′ es dif´ıcil encontrar una m tal que
H(m) = m′.
Las funciones de hash m´as utilizadas son las funciones MD2, MD4
y MD5, las cuales producen res´umenes de 128 bits.
Juan Manuel Garc´ıa Garc´ıa FIRMA DIGITAL
8. Outline
Firma digital RSA
Firma digital El Gamal
Firma digital en CE
Funciones de Hash
DSA - NIST
Firma Digital Est´andar 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 par´ametros:
1. p un n´umero 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 p´ublica, y, donde y = gx (mod p).
Juan Manuel Garc´ıa Garc´ıa FIRMA DIGITAL
9. Outline
Firma digital RSA
Firma digital El Gamal
Firma digital en CE
Funciones de Hash
DSA - NIST
Firma Digital Est´andar del NIST
Se elabora una firma digital como sigue:
Sea H : M → Z una funci´on de hash segura, y supongamos que el
mensaje 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
10. Outline
Firma digital RSA
Firma digital El Gamal
Firma digital en CE
Funciones de Hash
DSA - NIST
Firma Digital Est´andar 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 ≡ (gu1 yu2 (mod p))(mod q).
4. Se comprueba que v = r.
Juan Manuel Garc´ıa Garc´ıa FIRMA DIGITAL