1. INSTITUTO POLITÉCNICO NACIONAL
UPIICSA
INTEGRANTES:
> Apolinar Crisóstomo Jessica
>Camacho Flores Sarahí Montserrat
>Hernández González Ivonne Valeria
>Lozada Perez Yarely Guadalupe
VIROLOGÍA Y CRIPTOGRAFÍA
ALGORITMO DSA
EQUIPO 6
2. ¿Qué es DSA?
Digital Signature Algorithm (Algoritmo de
Firma Digital),
Algoritmo estándar
estadounidense de firma digital para
aplicaciones gubernamentales diseñado por
el National Institute for Standards and
Technology (NIST).
3. ¿Qué es DSA?
Es un algoritmo que sirve para firmar, no para
cifrar información dado que no es reversible.
Se basa en la dificultad de calcular logaritmos
discretos en campos finitos métodos de
Schnorr y ElGamal.
4. Historia
★ El algoritmo de firmas digitales (DSA) fue
implementado por la agencia federal de estándares de
los Estados Unidos.
★ Fue propuesto por el Instituto nacional de estándares
y tecnología( NIST) en agosto del 1991.
★ Fue adoptado en 1993 como parte del estándar de
firmas digitales (DSS) .
5. Historia
El estándar DSS surge como una necesidad en las agencias
federales, ya que requerían de un método de seguridad
que les permitiera transmitir información no clasificada.
Por lo que estas agencias no contaban con un método de
seguridad que protegerán al comercio electrónico.
6. ¿Qué es una firma digital?
Las firmas digitales son un
método
para
asegurar
autenticidad de cualquier
documento electrónico (email, hoja de cálculo,
archivos de texto, etc.)
Existen varias formas de
autenticar una persona o
información en un equipo.
7. FUNCIONAMIENTO
Formas de autenticar una persona o información en un sistema
★ Password: uso de usuario y clave
★ Checksum: un checksum inválido sugiere que la información esta
comprometida
★ CRC (Cyclic Redundancy Check): asegura la integridad de la fuente
recibida.
★ Public Key Encryption : una combinación de una llave pública y una
llave privada
★ Digital Certificates: Otorgadas por las autoridades que certifican la
integridad de un sitio
8. FUNCIONAMIENTO
Una firma digital está representada por un hilo de dígitos
binarios. En una firma digital se contienen una serie de
parámetros que autentican la integridad de la fuente
firmada. Este algoritmo tiene la habilidad de generar y
verificar una firma.
9. (DSA) ALGORITMO DE FIRMA DIGITAL
● Es utilizada para proveer seguridad de los
datos de a la entidad que genera la firma.
● Detectar si la información es o no es
modificada después de que es firmada, es
decir que verifica la integridad de la
información firmada.
● Para ser implementado y ofrecer servicios
de seguridad, debe de conocer los
requerimientos definidos por el estándar
DSS .
11. PARÁMETROS (DSA)
● p =número primo, en donde 2L–1 < p < 2L, L es un
múltiplo de 64 y L es la longitud de bit de p.
● q = un número primo divisor de p-1, donde 2159 < q <
2160 , es la longitud de bit de q.
L
N
1024
160
2048
224
2048
256
3072
256
12. PARÁMETROS (DSA)
● g= es un generador del subgrupo de orden , q mod p,
tal que 1 < g < p
● x=la llave privada, la cual debe permanecer en secreto,
x es un número entero generado de manera aleatoria,
tal que 0 < x < q, x esté en el rango [1, q–1].
● y= la llave pública, donde y = gx mod p.
● k= un número secreto, y que único para cada mensaje;
k es un número entero generado de manera aleatoria,
tal que 0 < k < q, k este en el rango [1, q–1].
13. FUNCIÓN HASH PARA EL (DSA)
Una función hash mapea una cadena de bits de longitud
arbitraria para fijar una longitud de cadena de bits.
La seguridad está asociada con la longitud, en el proceso
de la firma digital.
La seguridad en el tamaño de caracteres para N y L se
proporciona a través de la función hash.
14. GENERACIÓN DE CLAVES (DSA)
DSA requiere de llaves, pública y privada que
son utilizadas para la generación y la
verificación de la firma digital. Son generadas
a través de un dominio de parámetros.
Ambas
claves
están
matemáticamente
relacionadas una con la otra.
15. GENERACIÓN DE CLAVES (DSA)
El algoritmo de generación de claves es el siguiente:
1. Seleccionar un número primo q tal que 2159 < q < 2160.
2. Escoger t tal que 0 ≤ t ≤ 8, y seleccionar un número primo p tal que
2511+64t < p < 2512+64t, y que además q sea divisor de (p - 1).
3. Seleccionar un elemento g Î Z*p y calcular α = g(p-1)/q mod p.
4. Si α = 1 volver al paso 3.
5. Seleccionar un número entero aleatorio a, tal que 1 ≤ a ≤ q - 1
6. Calcular y = αa mod p.
7. La clave pública es (p, q, α, y). La clave privada es a.
16. GENERACIÓN DE LA FIRMA DIGITAL
(DSA)
● Generar la clave privada.
● Generar la clave pública.
Obtener los números p y q, donde:
-p será divisible por 64 y de longitud 512 bits
-q será de longitud 160 bits y deberá de cumplir que p-1=q*z (z es un número natural entero)
-Calcular g utilizando la fórmula:
donde: 1<h<p-1
-Calcular la clave con la fórmula: y=g* mod p
● Número k correspondiente a la firma.
0<k<q
● Generar la firma del documento
Calcular
17.
18.
19. APLICACIÓN DSA
Este es un algoritmo estándar para aplicaciones que requieren una firma
digital, en lugar de una firma manuscrita.
Una firma digital se representa como una cadena de Bits. Se calcula utilizando
un conjunto de normas y parámetros que permiten que la identidad del firmante
y la integridad de los datos sean verificados.
20. PROBLEMAS PRINCIPALES
La elección de este algoritmo como estándar
de firmado generó multitud de críticas:
● Se perdía flexibilidad respecto al RSA (que
además, ya era un estándar).
● La versión original empleaba claves que lo
hacían poco seguro.
21. DIFERENCIAS PRINCIPALES ENTRE
RSA Y DSA
● El Algoritmo RSA es válido tanto para cifrar
como para firmar documentos mientras que
DSA sólo se ocupa para las firmas digitales
● El tamaños de las llaves generadas del DSA
eran menores a las del RSA
● Los tiempos de generación de llaves,
firmado y validación
22. Tabla de tiempos
●
El algoritmo DSA es más rápido para generar la firma que para verificarla,
al contrario de lo que sucede con el RSA.
23. DESVENTAJAS
●
●
Se requiere más tiempo de cómputo que el RSA.
Con el avance actual de los ordenadores,
los ataques por la fuerza bruta se puedan llevar
a cabo de manera más fácil.
VENTAJAS
●
DSA es compatible con la mayoría de los servidores porque es una
medida federal estándar
24. SEGURIDAD EN JAVA CON DSA
El API de seguridad está incluido en Java API
en la forma del paquete java.security. Este
paquete provee dos API, uno para los usuarios
de los algoritmos de seguridad y otro para
implementadores o proveedores de estos
algoritmos.
25. SEGURIDAD EN JAVA CON DSA
El API para usuarios está diseñado para que los distintos
algoritmos criptográficos sean utilizados en una aplicación,
sin tener que preocuparnos por la manera en la que éstos
han sido implementados.
Lo único que se necesita saber es el nombre del algoritmo.
Una compañía o algún programador puede añadir sus
propias implementaciones de los algoritmos usando la
interfaz Provider.
26. SEGURIDAD EN JAVA CON DSA
En general el API de seguridad incluye interfaces para
hacer manejo de identidades, para utilizar firmas digitales y
para encriptamiento de datos.
En caso de la certificación y la autentificación son usadas
para proteger el acceso a los recursos, asegurándose de
que sólo aquellos autorizados pueden hacer uso de ellos.
También son usadas para que tengamos la certeza de que
algún mensaje que recibimos viene de quien esperamos.
27. SEGURIDAD EN JAVA CON DSA
La manera en la que se firma un mensaje es utilizando la
criptografía de llave pública. El paquete de seguridad de
Java tiene incluido al algoritmo DSA (Digital Signature
Algorithm) que se basa en el uso de esta criptografía. Otro
algoritmo conocido es RSA (inventado por Rivest, Shamir y
Adleman).
28. SEGURIDAD EN JAVA CON DSA
Para que DSA funcione es necesario realizar tres pasos:
● Generar un par de llaves
● Firmar el mensaje
● Verificar la firma
29. IMPLEMENTACIÓN DEL DSA
La implementación software de DSA sobre una SPARC II permite firmar 512
bits en 0’20 segundos, y verificar la firma en 0’35 segundos. Las
implementaciones del DSA se pueden acelerar realizando algunos cálculos
previos.
30. SEGURIDAD DEL DSA
El algoritmo DSA no es lo suficientemente seguro si sólo se utilizan
512 bits; si lo es, sin embargo, cuando se utilizan 1024 bits (todo esto
según la opinión de la NSA), se conocen los siguientes problemas:
Problemas
con k
Dado que se necesita un nuevo
valor de k para cada firma, se
debe utilizar un generador
aleatorio, que puede repetir
valores de k. Si un oyente
detecta dos mensajes firmados
con el mismo valor de k, puede
recuperar la clave privada x.
Problemas
con el
módulo
común.
En muchas implementaciones
reales del DSA se comparte un
módulo común (p y q) entre
todos los usuarios. Esto puede
facilitar las tareas de análisis