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 (e-mail, 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 .
10. PARÁMETROS (DSA)
➢ una llave privada “X”,
➢ un número de mensaje “k”
➢ un mensaje para firmar
➢ una función hash .
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)
•
•
•
•
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].
g= es un generador del subgrupo de orden , q mod p, tal que 1 < g < p
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,
son utilizadas para
verificación de la
generadas a través
parámetros.
pública y privada que
la generación y la
firma digital. Son
de un dominio de
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
•
● 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
Se requiere más tiempo de cómputo que el RSA.
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