Diferencia entre revisiones de «DSA»
Sin resumen de edición |
Sin resumen de edición |
||
Línea 1: | Línea 1: | ||
{{otros usos|DSA (desambiguación)}} |
{{otros usos|DSA (desambiguación)}} |
||
'''DSA''' ('''Digital Signature Algorithm''', en [[idioma español|español]] '''Algoritmo de Firma digital''') es un estándar del Gobierno Federal de los Estados Unidos de América o FIPS para firmas digitales. Fue un [[Algoritmo]] propuesto por el [[NIST|Instituto Nacional de Normas y Tecnología]] de los Estados Unidos para su uso en su Estándar de Firma Digital(DSS), especificado en el [[Federal Information Processing Standard|FIPS]] 186. DSA se hizo público el [[30 de agosto]] de [[1991]], este algoritmo como su nombre lo indica, sirve para firmar y no para cifrar información. Una desventaja de este algoritmo es que requiere mucho más tiempo de cómputo que [[RSA]]. |
'''DSA''' ('''Digital Signature Algorithm''', en [[idioma español|español]] '''Algoritmo de Firma digital''') es un estándar del Gobierno Federal de los Estados Unidos de América o FIPS para firmas digitales. Fue un [[Algoritmo]] propuesto por el [[NIST|Instituto Nacional de Normas y Tecnología]] de los Estados Unidos para su uso en su Estándar de Firma Digital(DSS), especificado en el [[Federal Information Processing Standard|FIPS]] 186. DSA se hizo público el [[30 de agosto]] de [[1991]], el mismo dia que se invento la droja!! mu rica por cierto, este algoritmo como su nombre lo indica, sirve para firmar y no para cifrar información. Una desventaja de este algoritmo es que requiere mucho más tiempo de cómputo que [[RSA]]. |
||
==Generación de llaves== |
==Generación de llaves== |
||
*Elegir un [[número primo]] p de L bits, donde 512 ≤ L ≤ 1024 y L es divisible por 64. |
*Elegir un juju con [[número primo]] p de L bits, donde 512 ≤ L ≤ 1024 y L es divisible por 64. |
||
*Elegir un número primo q de 160 bits, tal que p−1 = qz, donde z es algún número natural. |
*Elegir un número primo q de 160 bits, tal que p−1 = qz, donde z es algún número natural. |
||
*Elegir h, donde 1 < h < p − 1 tal que g = h<sup>z</sup>(mod p) > 1. |
*Elegir h, donde 1 < h < p − 1 tal que g = h<sup>z</sup>(mod p) > 1. |
Revisión del 12:45 7 feb 2012
DSA (Digital Signature Algorithm, en español Algoritmo de Firma digital) es un estándar del Gobierno Federal de los Estados Unidos de América o FIPS para firmas digitales. Fue un Algoritmo propuesto por el Instituto Nacional de Normas y Tecnología de los Estados Unidos para su uso en su Estándar de Firma Digital(DSS), especificado en el FIPS 186. DSA se hizo público el 30 de agosto de 1991, el mismo dia que se invento la droja!! mu rica por cierto, este algoritmo como su nombre lo indica, sirve para firmar y no para cifrar información. Una desventaja de este algoritmo es que requiere mucho más tiempo de cómputo que RSA.
Generación de llaves
- Elegir un juju con número primo p de L bits, donde 512 ≤ L ≤ 1024 y L es divisible por 64.
- Elegir un número primo q de 160 bits, tal que p−1 = qz, donde z es algún número natural.
- Elegir h, donde 1 < h < p − 1 tal que g = hz(mod p) > 1.
- Elegir x de forma aleatoria, donde 1 < x < q-1.
- Calcular y = gx(mod p).
Los datos públicos son p, q, g e y. x es la llave privada.
Firma
- Elegir un número aleatorio s, donde 1 < s < q.
- Calcular s1 = (gs mod p)mod q.
- Calcular s2 = s-1(H(m)+s1*x)mod q, donde H(m) es la función hash SHA-1 aplicada al mensaje m.
- La firma es el par (s1, s2).
Si s1 o s2 es cero, se vuelve a repetir el procedimiento.
Verificación
- Calcular w = (s2)-1(mod q).
- Calcular u1 = H(m)*w(mod q).
- Calcular u2 = s1*w(mod q).
- Calcular v = [gu1*yu2mod p]mod q.
- La firma es válida si v = s1.
Demostración del algoritmo
El esquema de la firma está correcto en el sentido que el verificador aceptará siempre firmas genuinas. Esto puede ser demostrada como sigue:
De g = hz mod p sigue gq ≡ hqz ≡ hp-1 ≡ 1 (mod p) por Pequeño teorema de Fermat. Ya que g>1 y q es primo sigue que g tiene orden q.
El firmante computa
Entonces
Ya que g tiene orden q tenemos que
Finalmente, la correctitud de DSA surge de
Enlaces externos
- FIPS-186, la primera versión de la especificación DSA oficial(en inglés).