Documentos de Académico
Documentos de Profesional
Documentos de Cultura
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
1 – Introducción
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).
Ú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)
Innegables o irrepudiables
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:
2 – Firma RSA
C ≡ Me (mód N )
Y el descifrado:
M ≡ Cd (mód N )
≡ M ed (mód N ) (1)
2- Firma RSA 6
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 .
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.
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.
Cualquier modificación del mensaje, hará que la firma no se corresponda con el mismo: verificación
de integridad.
2- Firma RSA 8
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 )
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 :
r ≡ gk (mód p)
s ≡ (M − xr)k −1 (mód p − 1)
La firma es:
F = (r, s)
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.
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)
3- Firma ElGamal 12
Y por tanto
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
g r ≡ 1 (mód p)
gt ≡ gt (mód q)
(mód p)
4- Firma DSS 14
y es tal que
y ≡ gx (mód p)
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:
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)
Comprobación
recordemos que
gt ≡ gt (mód q)
(mód p)
luego
4- Firma DSS 18
Inconveniente del esquema de firma estudiado: la firma es como poco tan larga como el mensaje.
Solución: firmar un resumen del mensaje.
Funciones unidireccionales:
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.
PBE: Passphrase Based Encryption (generación de claves a partir de contraseñas hechas con frases
y funciones resumen)
Ası́ pues son tı́picas las siguientes combinaciones para firmas estándar:
SHA1withDSA
MD2withRSA
MD5withRSA
SHA1withRSA
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
end for i
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:
A = 0x67452301
B = 0xEF CDAB89
C = 0x98BADCF E
D = 0x10325476
E = 0xC3D2E1F 0
Kt = 0x5A827999, t = 0 . . . 19
= 0x6ED9EBA1, t = 20 . . . 39
= 0x8F 1BBCDC, t = 40 . . . 59
= 0xCA62C1D6, t = 60 . . . 79
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