Está en la página 1de 13

1

Tema 4: Firmas digitales

Tema 4: Firmas digitales Comunicación de datos II


Curso 2004–05

Firmas digitales 2

1 – Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
2 – Firma RSA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
3 – Firma ElGamal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
4 – Firma DSS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
5 – Funciones resumen, “hash” o “digest” . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

Tema 4: Firmas digitales Comunicación de datos II


Curso 2004–05
1- Introducción 3

1 – Introducción

Objetivo de una firma convencional: autenticar el originante del documento

Objetivo de una firma digital: si siempre son los mismos bits, se puede suplantar. Debe depender del
documento: autenticación del originante y del contenido (integridad).

Caracterı́sticas de las firmas digitales:

Únicas e infalsificables: que sólo la pueda generar quien dice que firma (la falsificación implica la
resolución de problemas matemáticos complejos)

Verificables por receptor, jueces o autoridades competentes

Innegables o irrepudiables

Viables o fáciles de generar por el firmante

Que autentiquen el contenido del documento firmado

Tema 4: Firmas digitales Comunicación de datos II


Curso 2004–05

1- Introducción 4

Existen mecanismos de firmas para criptografı́a simétrica y asimétrica. Estudiaremos la asimétrica: RSA,
ElGamal y DSS. Esquema genérico:

Figura 1: Proceso de firma y verificación

Tema 4: Firmas digitales Comunicación de datos II


Curso 2004–05
2- Firma RSA 5

2 – Firma RSA

Recordemos que el cifrado se llevaba a cabo:

C ≡ Me (mód N )

siendo (N, e) la clave de cifrado, que es pública.

Y el descifrado:

M ≡ Cd (mód N )
≡ M ed (mód N ) (1)

siendo (N, d) la clave de descifrado, que es privada.

Detalle RSA: los roles de e y d son intercambiables, ecuación (1).

Tema 4: Firmas digitales Comunicación de datos II


Curso 2004–05

2- Firma RSA 6

Supongamos, de momento, que nuestra intención es:

No cifrar nuestro mensaje

Que cualquiera pueda verificar que nosotros hemos firmado dicho mensaje.

La firma RSA se consigue cifrando el mensaje con la clave privada (intercambiando, por tanto, los roles de
e y d) según se muestra en la siguiente figura:
Sólo el poseedor de la clave privada ha podido generar F a partir de M .

Tema 4: Firmas digitales Comunicación de datos II


Curso 2004–05
2- Firma RSA 7

Cualquier receptor puede verificar que la firma se corresponde con el mensaje, descifrando dicha firma
con la clave pública y comparando el resultado con el mensaje recibido.

Caracterı́sicas: si la clave pública se corresponde con el usuario originante de la información firmada

Sólo el poseedor de la clave privada (N, d) ha podido generar la firma F a partir de M : la firma, por
tanto es única, es infalsificable, se autentica el originante y se evita el repudio.

Cualquiera puede verificar que efectivamente la firma F se corresponde con el mensaje M ,


simplemente consiguiendo la clave pública: verificable.

Cualquier modificación del mensaje, hará que la firma no se corresponda con el mismo: verificación
de integridad.

Tema 4: Firmas digitales Comunicación de datos II


Curso 2004–05

2- Firma RSA 8

Sutil vulnerabilidad: si se conoce las firmas F1 y F2 de dos mensajes M1 y M2 respectivamente,


entonces cualquiera puede saber la firma F3 del mensaje M3 = M1 · M2 :

F1 ≡ M1d (mód N )
F2 ≡ M2d (mód N )
M3 ≡ M1 · M2 (mód N )
F3 ≡ (M1 · M2 )d (mód N )
≡ M1d · M2d (mód N )
≡ F1 · F2 (mód N )

Tema 4: Firmas digitales Comunicación de datos II


Curso 2004–05
3- Firma ElGamal 9

3 – Firma ElGamal

Sea (p, g, x) una clave privada ElGamal y (p, g, y) su clave pública (recordemos que y ≡ gx
(mód p)).
El propietario de la clave ElGamal puede firmar un mensaje M :

Escoge un entero k aleatorio, con 1 < k < p − 1 y mcd(k, p − 1)=1.


Calcular

r ≡ gk (mód p)
s ≡ (M − xr)k −1 (mód p − 1)

La firma es:
F = (r, s)

Se envı́a el mensaje M junto con la firma F

Tema 4: Firmas digitales Comunicación de datos II


Curso 2004–05

3- Firma ElGamal 10

Cualquiera que pueda acceder a la clave pública del usuario en cuestión puede verificar la firma
comprobando la congruencia:
gM ≡ yr rs (mód p)

ya que

−1
y r r s ≡ (g x )r (g k )(M −xr)k (mód p−1)
(mód p)
−1
≡ (g x )r (g k )(M −xr)k (mód p)
−1
≡ g xr g k(M −xr)k (mód p)
≡ g xr g M −xr (mód p)
≡ gM (mód p)

Se pueden conseguir firmas diferentes del mismo mensaje, simplemente escogiendo un k diferente.

Tema 4: Firmas digitales Comunicación de datos II


Curso 2004–05
3- Firma ElGamal 11

Vulnerabilidad: si se firman dos mensajes M y M  con el mismo k el sistema puede romperse:

s ≡ (M − xr)k −1 (mód p − 1)
sk ≡ M − xr (mód p − 1)
M ≡ sk + xr (mód p − 1)

De la misma forma

M  ≡ s k + xr (mód p − 1)

Tema 4: Firmas digitales Comunicación de datos II


Curso 2004–05

3- Firma ElGamal 12

Y por tanto

M s ≡ sks + xrs (mód p − 1)


M  s ≡ s ks + xrs (mód p − 1)
M s − M  s ≡ sks − s ks + xrs − xrs (mód p − 1)
≡ xr(s − s) (mód p − 1)
x ≡ (M s − M  s)[r(s − s)]−1 (mód p − 1)

si mcd(p − 1, r(s − s))=1, entonces ∃[r(s − s)]−1 , y puede obtenerse x

Tema 4: Firmas digitales Comunicación de datos II


Curso 2004–05
4- Firma DSS 13

4 – Firma DSS

En 1991 el NIST propone DSA como algoritmo de firma digital. Redenominación DSS: Digital Signature
Standard. Modificación de ElGamal.

Parámetros

p: número primo de entre 512 y 1024 bits (siendo múltiplo de 64)


q : número primo de 160 bits, divisor de p − 1
g : generador de orden q de Zp , es decir, el mı́nimo entero con el que se da la congruencia

g r ≡ 1 (mód p)

es r = q . Por lo tanto se verificará que para todo entero t:

gt ≡ gt (mód q)
(mód p)

x: es un entero secreto, tal que 1 < x < q


Tema 4: Firmas digitales Comunicación de datos II
Curso 2004–05

4- Firma DSS 14

y es tal que
y ≡ gx (mód p)

Tema 4: Firmas digitales Comunicación de datos II


Curso 2004–05
4- Firma DSS 15

La clave privada será (p, q, g, x)

La clave pública será (p, q, g, y)

El propietario de la clave podrá firmar un mensaje 1 < M < p, generando un entero aleatorio k , con
1 < k < q y calculando el siguiente par de enteros:

r ≡ [g k (mód p)] (mód q)


s ≡ (M + xr)k −1 (mód q)

La firma será el par F = (r, s)

Tema 4: Firmas digitales Comunicación de datos II


Curso 2004–05

4- Firma DSS 16

La firma puede ser verificada por cualquier que pueda acceder a la clave pública del firmante (p, q, g, y),
junto con evidentemente el mensaje M y la firma F , calculando:

w ≡ s−1 (mód q)
u ≡ Mw (mód q)
v ≡ rw (mód q)

y verificando que se cumple la congruencia:

r ≡ [g u y v (mód p)] (mód q)

Tema 4: Firmas digitales Comunicación de datos II


Curso 2004–05
4- Firma DSS 17

Comprobación

r ≡ [g u y v (mód p)] (mód q)


≡ [g M w (mód q)
(g x (mód p))rw (mód q)
(mód p)] (mód q)

recordemos que

gt ≡ gt (mód q)
(mód p)
luego

Tema 4: Firmas digitales Comunicación de datos II


Curso 2004–05

4- Firma DSS 18

r ≡ [g M w g xrw (mód p)] (mód q)


≡ [g M w+xrw (mód p)] (mód q)
≡ [g (M +xr)w (mód p)] (mód q)
−1
≡ [g (M +xr)s (mód q)
(mód p)] (mód q)
−1
≡ [g (M +xr)s (mód p)] (mód q)
−1 −1
≡ [g (M +xr)((M +xr)k ) (mód q)
(mód p)] (mód q)
≡ [g k (mód p)] (mód q)
≡r (mód q)

Tema 4: Firmas digitales Comunicación de datos II


Curso 2004–05
5- Funciones resumen, “hash” o “digest” 19

5 – Funciones resumen, “hash” o “digest”

Inconveniente del esquema de firma estudiado: la firma es como poco tan larga como el mensaje.
Solución: firmar un resumen del mensaje.

Funciones resumen: hash o digest. Caracterı́sticas deseables:

Funciones unidireccionales:

• y = H(x) se fácilmente computable


• x = H −1 (y) sea intratable computacionalmente
Dado un mensaje x, que sea computacionalmente intratable calcular un mensaje x = x tal que
H(x ) = H(x)

Tema 4: Firmas digitales Comunicación de datos II


Curso 2004–05

5- Funciones resumen, “hash” o “digest” 20

Tipos:

Funciones resumen con clave: MAC (Message Authentication Code), interviene una clave simétrica.

Funciones resumen sin clave: MDC (Manipulation Detection Code), no interviene ninguna clave.

Describiremos funciones resumen MDC: independientemente de la longitud del mensaje, la longitud del
resumen es siempre la misma. Por lo tanto, existen mensajes distintos con el mismo resumen, pero según
las hipótesis, es imposible computacionalmente conseguirlos.

Aplicaciones tı́picas derivadas:

Huella digital (fingerprint): resumen de la clave pública

Detección de errores o manipulación de datos

PBE: Passphrase Based Encryption (generación de claves a partir de contraseñas hechas con frases
y funciones resumen)

Tema 4: Firmas digitales Comunicación de datos II


Curso 2004–05
5- Funciones resumen, “hash” o “digest” 21

Algunas funciones resumen:

MD2: 128 bits

MD4: 128 bits

MD5: 128 bits

RIPEMD-128: 128 bits

RIPEMD-160: 160 bits

SHA-0: 160 bits

SHA-1/SHA: 160 bits

SHA-256: 256 bits

SHA-384: 384 bits

SHA-512: 512 bits

Tiger: 192 bits

DSS/DSA siempre firma un resumen SHA-1 del mensaje


Tema 4: Firmas digitales Comunicación de datos II
Curso 2004–05

5- Funciones resumen, “hash” o “digest” 22

Ası́ pues son tı́picas las siguientes combinaciones para firmas estándar:

SHA1withDSA

MD2withRSA

MD5withRSA

SHA1withRSA

Tema 4: Firmas digitales Comunicación de datos II


Curso 2004–05
5- Funciones resumen, “hash” o “digest” 23

Algoritmo SHA-0: Secure Hash Algorithm. SHA trabaja con bloques de 512 bits. El mensaje se rellena con
la secuencia 10. . . 0, hasta que queden un total de 512k-64 bits, siendo k un entero. Los restantes 64 bits
se destinan a indicar la longitud original del mensaje.

(a, b, c, d) = (0, 0, 0, 0)
for i=0. . . número de bloques

(a, b, c, d, e) = (a, b, c, d, e) ⊕ (A, B, C, D, E)


for t=0. . . 79

temp = (a << 5) + ft (b, c, d) + e + Wt + Kt


a = d; d = c; c = b << 30; b = a; a = temp
end for t

end for i

Tema 4: Firmas digitales Comunicación de datos II


Curso 2004–05

5- Funciones resumen, “hash” o “digest” 24

El resumen será el estado en el que se encuentren la quı́ntupla (a, b, c, d, e), siendo cada una de las
variables de 32 bits, luego el resumen tendrá una longitud e 160 bits.

Además:

x << y representa un desplazamiento circular de x de y posiciones a la izquierda.


La quı́ntupla de constantes (A, B, C, D, E) tiene los siguientes valores:

A = 0x67452301
B = 0xEF CDAB89
C = 0x98BADCF E
D = 0x10325476
E = 0xC3D2E1F 0

Tema 4: Firmas digitales Comunicación de datos II


Curso 2004–05
5- Funciones resumen, “hash” o “digest” 25

La función ft tiene el siguiente aspecto, en función de la iteración:

ft (X, Y, Z) = (XY )|(XZ), t = 0 . . . 19


= X ⊕ Y ⊕ Z, t = 20 . . . 39
= (XY )|(XZ)|(Y Z), t = 40 . . . 59
= X ⊕ Y ⊕ Z, t = 60 . . . 79

La constante Kt depende también del ı́ndice de la iteración:

Kt = 0x5A827999, t = 0 . . . 19
= 0x6ED9EBA1, t = 20 . . . 39
= 0x8F 1BBCDC, t = 40 . . . 59
= 0xCA62C1D6, t = 60 . . . 79

Tema 4: Firmas digitales Comunicación de datos II


Curso 2004–05

5- Funciones resumen, “hash” o “digest” 26

Cada bloque de 512 bits se interpreta como una sucesión de 16 palabras de 32 bits:
(M0 M1 . . . M15 ), las cuales se expanden a 80 palabras de 32 bits: (W0 W1 . . . W79 )

Wt = Mt , t = 0 . . . 15
= (Wt−3 ⊕ Wt−8 ⊕ Wt−14 ⊕ Wt−16 ) << 1, t = 16 . . . 79

Tema 4: Firmas digitales Comunicación de datos II


Curso 2004–05

También podría gustarte