SlideShare une entreprise Scribd logo
1  sur  30
Télécharger pour lire hors ligne
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
¿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).
¿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.
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) .
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.
¿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.
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
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.
(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 .
PARÁMETROS (DSA)
➢
➢
➢
➢

una llave privada “X”,
un número de mensaje “k”
un mensaje para firmar
una función hash .
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
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].
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.
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.
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.
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
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.
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.
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
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.
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
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.
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.
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.
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).
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
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.
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

Contenu connexe

Tendances

Vc4 nm73 eq6-tls
Vc4 nm73 eq6-tlsVc4 nm73 eq6-tls
Vc4 nm73 eq6-tlsYare LoZada
 
Métodos de encriptación en vpn s
Métodos de encriptación en vpn sMétodos de encriptación en vpn s
Métodos de encriptación en vpn sespe
 
Cifrado vpn
Cifrado vpnCifrado vpn
Cifrado vpnIng Jaab
 
Protocolos de cifrado
Protocolos de cifradoProtocolos de cifrado
Protocolos de cifradoBolois
 
Exposicion del tls
Exposicion del tlsExposicion del tls
Exposicion del tlsBrifer Dagua
 
Protocolo SSL, TLS Y SSH
Protocolo SSL, TLS Y SSHProtocolo SSL, TLS Y SSH
Protocolo SSL, TLS Y SSHAbner Torres
 
Metodo de encriptacion_rsaa
Metodo de encriptacion_rsaaMetodo de encriptacion_rsaa
Metodo de encriptacion_rsaaT3rNuRA91
 
Actividad 5 administracion de redes
Actividad 5 administracion de redesActividad 5 administracion de redes
Actividad 5 administracion de redesJESSIKADG86
 
Métodos de encriptación de las vpns
Métodos de encriptación de las vpnsMétodos de encriptación de las vpns
Métodos de encriptación de las vpnsESPE
 
Encriptacion De Claves Publicas Y Claves Privadas
Encriptacion De Claves Publicas Y Claves PrivadasEncriptacion De Claves Publicas Y Claves Privadas
Encriptacion De Claves Publicas Y Claves Privadaschristian
 
Protocolo De Seguridad Y De Red
Protocolo De Seguridad Y De RedProtocolo De Seguridad Y De Red
Protocolo De Seguridad Y De Redguest3fa6c7
 

Tendances (17)

VC4NM73-EQ#6-TLS
VC4NM73-EQ#6-TLSVC4NM73-EQ#6-TLS
VC4NM73-EQ#6-TLS
 
Vc4 nm73 eq6-tls
Vc4 nm73 eq6-tlsVc4 nm73 eq6-tls
Vc4 nm73 eq6-tls
 
Ssh sftp y scp
Ssh sftp y scpSsh sftp y scp
Ssh sftp y scp
 
Métodos de encriptación en vpn s
Métodos de encriptación en vpn sMétodos de encriptación en vpn s
Métodos de encriptación en vpn s
 
Cifrado vpn
Cifrado vpnCifrado vpn
Cifrado vpn
 
Protocolos de cifrado
Protocolos de cifradoProtocolos de cifrado
Protocolos de cifrado
 
Exposicion del tls
Exposicion del tlsExposicion del tls
Exposicion del tls
 
Stiveeeeeeeeeeen[1]
Stiveeeeeeeeeeen[1]Stiveeeeeeeeeeen[1]
Stiveeeeeeeeeeen[1]
 
Protocolos SSL/TLS
Protocolos SSL/TLSProtocolos SSL/TLS
Protocolos SSL/TLS
 
Protocolo SSL, TLS Y SSH
Protocolo SSL, TLS Y SSHProtocolo SSL, TLS Y SSH
Protocolo SSL, TLS Y SSH
 
Metodo de encriptacion_rsaa
Metodo de encriptacion_rsaaMetodo de encriptacion_rsaa
Metodo de encriptacion_rsaa
 
Introducción a la Criptografia
Introducción a la CriptografiaIntroducción a la Criptografia
Introducción a la Criptografia
 
Actividad 5 administracion de redes
Actividad 5 administracion de redesActividad 5 administracion de redes
Actividad 5 administracion de redes
 
Métodos de encriptación de las vpns
Métodos de encriptación de las vpnsMétodos de encriptación de las vpns
Métodos de encriptación de las vpns
 
Encriptacion De Claves Publicas Y Claves Privadas
Encriptacion De Claves Publicas Y Claves PrivadasEncriptacion De Claves Publicas Y Claves Privadas
Encriptacion De Claves Publicas Y Claves Privadas
 
Protocolo SSL
Protocolo SSLProtocolo SSL
Protocolo SSL
 
Protocolo De Seguridad Y De Red
Protocolo De Seguridad Y De RedProtocolo De Seguridad Y De Red
Protocolo De Seguridad Y De Red
 

Similaire à Vc4 nm73 eq#6-dsa

Firmas y certificados digitales
Firmas y certificados digitalesFirmas y certificados digitales
Firmas y certificados digitalesTensor
 
Firmas y certificados digitales
Firmas y certificados digitalesFirmas y certificados digitales
Firmas y certificados digitalesTensor
 
Protocolo de redes ssl
Protocolo de redes sslProtocolo de redes ssl
Protocolo de redes sslNANO-06
 
MéTodos De EncriptacióN
MéTodos De EncriptacióNMéTodos De EncriptacióN
MéTodos De EncriptacióNErika
 
Asegurando los API con Criptografía RSA: Más allá del SSL
Asegurando los API con Criptografía RSA: Más allá del SSLAsegurando los API con Criptografía RSA: Más allá del SSL
Asegurando los API con Criptografía RSA: Más allá del SSLTomás García-Merás
 
Algoritmos Para Encriptar Claves
Algoritmos Para Encriptar ClavesAlgoritmos Para Encriptar Claves
Algoritmos Para Encriptar ClavesDiana Yánez
 
Algoritmos De Cifrado Para El Encriptamiento De Claves
Algoritmos De Cifrado Para El Encriptamiento De ClavesAlgoritmos De Cifrado Para El Encriptamiento De Claves
Algoritmos De Cifrado Para El Encriptamiento De ClavesCristian Manobanda
 
Métodos de encriptación en las redes privadas virtuales
Métodos de encriptación en las redes privadas virtualesMétodos de encriptación en las redes privadas virtuales
Métodos de encriptación en las redes privadas virtualesESPE
 
Métodos de encriptación en las redes privadas virtuales
Métodos de encriptación en las redes privadas virtualesMétodos de encriptación en las redes privadas virtuales
Métodos de encriptación en las redes privadas virtualesESPE
 
Encriptacion De Claves Publicas Y Claves Privadas
Encriptacion De Claves Publicas Y Claves PrivadasEncriptacion De Claves Publicas Y Claves Privadas
Encriptacion De Claves Publicas Y Claves Privadaschristian
 
Interconexion de redes
Interconexion de redesInterconexion de redes
Interconexion de redesKary Gomez
 
Criptografia
CriptografiaCriptografia
Criptografiakatha4441
 
Algoritmos De Cifrado Para Claves PúBlicas Y Privadas
Algoritmos De Cifrado Para Claves PúBlicas Y PrivadasAlgoritmos De Cifrado Para Claves PúBlicas Y Privadas
Algoritmos De Cifrado Para Claves PúBlicas Y Privadasalejandro
 
Metodo De Encriptacion
Metodo De EncriptacionMetodo De Encriptacion
Metodo De EncriptacionStefany
 
Encriptacion De Claves Publicas Y Privadas
Encriptacion De Claves Publicas Y PrivadasEncriptacion De Claves Publicas Y Privadas
Encriptacion De Claves Publicas Y PrivadasDaniel Yánez
 

Similaire à Vc4 nm73 eq#6-dsa (20)

Vc4 n73 eq6-dsa
Vc4 n73 eq6-dsaVc4 n73 eq6-dsa
Vc4 n73 eq6-dsa
 
Vc4 n73 eq6-dsa
Vc4 n73 eq6-dsaVc4 n73 eq6-dsa
Vc4 n73 eq6-dsa
 
VC4NM73-EQ#6-DSA
VC4NM73-EQ#6-DSAVC4NM73-EQ#6-DSA
VC4NM73-EQ#6-DSA
 
Firmas y certificados digitales
Firmas y certificados digitalesFirmas y certificados digitales
Firmas y certificados digitales
 
Firmas y certificados digitales
Firmas y certificados digitalesFirmas y certificados digitales
Firmas y certificados digitales
 
Protocolo de redes ssl
Protocolo de redes sslProtocolo de redes ssl
Protocolo de redes ssl
 
MéTodos De EncriptacióN
MéTodos De EncriptacióNMéTodos De EncriptacióN
MéTodos De EncriptacióN
 
Asegurando los API con Criptografía RSA: Más allá del SSL
Asegurando los API con Criptografía RSA: Más allá del SSLAsegurando los API con Criptografía RSA: Más allá del SSL
Asegurando los API con Criptografía RSA: Más allá del SSL
 
Algoritmos Para Encriptar Claves
Algoritmos Para Encriptar ClavesAlgoritmos Para Encriptar Claves
Algoritmos Para Encriptar Claves
 
Algoritmos De Cifrado Para El Encriptamiento De Claves
Algoritmos De Cifrado Para El Encriptamiento De ClavesAlgoritmos De Cifrado Para El Encriptamiento De Claves
Algoritmos De Cifrado Para El Encriptamiento De Claves
 
encriptamiento de claves
encriptamiento de clavesencriptamiento de claves
encriptamiento de claves
 
Métodos de encriptación en las redes privadas virtuales
Métodos de encriptación en las redes privadas virtualesMétodos de encriptación en las redes privadas virtuales
Métodos de encriptación en las redes privadas virtuales
 
Métodos de encriptación en las redes privadas virtuales
Métodos de encriptación en las redes privadas virtualesMétodos de encriptación en las redes privadas virtuales
Métodos de encriptación en las redes privadas virtuales
 
Encriptacion De Claves Publicas Y Claves Privadas
Encriptacion De Claves Publicas Y Claves PrivadasEncriptacion De Claves Publicas Y Claves Privadas
Encriptacion De Claves Publicas Y Claves Privadas
 
Interconexion de redes
Interconexion de redesInterconexion de redes
Interconexion de redes
 
claves de seguridad
claves de seguridadclaves de seguridad
claves de seguridad
 
Criptografia
CriptografiaCriptografia
Criptografia
 
Algoritmos De Cifrado Para Claves PúBlicas Y Privadas
Algoritmos De Cifrado Para Claves PúBlicas Y PrivadasAlgoritmos De Cifrado Para Claves PúBlicas Y Privadas
Algoritmos De Cifrado Para Claves PúBlicas Y Privadas
 
Metodo De Encriptacion
Metodo De EncriptacionMetodo De Encriptacion
Metodo De Encriptacion
 
Encriptacion De Claves Publicas Y Privadas
Encriptacion De Claves Publicas Y PrivadasEncriptacion De Claves Publicas Y Privadas
Encriptacion De Claves Publicas Y Privadas
 

Plus de SaMoCaFlo

Vc4 nm73 equipo6-w7u8t6
Vc4 nm73 equipo6-w7u8t6Vc4 nm73 equipo6-w7u8t6
Vc4 nm73 equipo6-w7u8t6SaMoCaFlo
 
Vc4 nm73 eq6-exploit
Vc4 nm73 eq6-exploitVc4 nm73 eq6-exploit
Vc4 nm73 eq6-exploitSaMoCaFlo
 
Vc4 n73 eq6-dsa
Vc4 n73 eq6-dsaVc4 n73 eq6-dsa
Vc4 n73 eq6-dsaSaMoCaFlo
 
Vc4 nm73 eq6-textsecure
Vc4 nm73 eq6-textsecureVc4 nm73 eq6-textsecure
Vc4 nm73 eq6-textsecureSaMoCaFlo
 
Vc4 nm73 eq6-tls
Vc4 nm73 eq6-tlsVc4 nm73 eq6-tls
Vc4 nm73 eq6-tlsSaMoCaFlo
 
Vc4 nm73 equipo#6-presentacion
Vc4 nm73 equipo#6-presentacionVc4 nm73 equipo#6-presentacion
Vc4 nm73 equipo#6-presentacionSaMoCaFlo
 
Vc4 nm73 equipo#6-exploit
Vc4 nm73 equipo#6-exploitVc4 nm73 equipo#6-exploit
Vc4 nm73 equipo#6-exploitSaMoCaFlo
 
Vc4 nm73 eq#6-dsa
Vc4 nm73 eq#6-dsaVc4 nm73 eq#6-dsa
Vc4 nm73 eq#6-dsaSaMoCaFlo
 
Vc4 nm73 eq#6-textsecure
Vc4 nm73 eq#6-textsecureVc4 nm73 eq#6-textsecure
Vc4 nm73 eq#6-textsecureSaMoCaFlo
 

Plus de SaMoCaFlo (9)

Vc4 nm73 equipo6-w7u8t6
Vc4 nm73 equipo6-w7u8t6Vc4 nm73 equipo6-w7u8t6
Vc4 nm73 equipo6-w7u8t6
 
Vc4 nm73 eq6-exploit
Vc4 nm73 eq6-exploitVc4 nm73 eq6-exploit
Vc4 nm73 eq6-exploit
 
Vc4 n73 eq6-dsa
Vc4 n73 eq6-dsaVc4 n73 eq6-dsa
Vc4 n73 eq6-dsa
 
Vc4 nm73 eq6-textsecure
Vc4 nm73 eq6-textsecureVc4 nm73 eq6-textsecure
Vc4 nm73 eq6-textsecure
 
Vc4 nm73 eq6-tls
Vc4 nm73 eq6-tlsVc4 nm73 eq6-tls
Vc4 nm73 eq6-tls
 
Vc4 nm73 equipo#6-presentacion
Vc4 nm73 equipo#6-presentacionVc4 nm73 equipo#6-presentacion
Vc4 nm73 equipo#6-presentacion
 
Vc4 nm73 equipo#6-exploit
Vc4 nm73 equipo#6-exploitVc4 nm73 equipo#6-exploit
Vc4 nm73 equipo#6-exploit
 
Vc4 nm73 eq#6-dsa
Vc4 nm73 eq#6-dsaVc4 nm73 eq#6-dsa
Vc4 nm73 eq#6-dsa
 
Vc4 nm73 eq#6-textsecure
Vc4 nm73 eq#6-textsecureVc4 nm73 eq#6-textsecure
Vc4 nm73 eq#6-textsecure
 

Vc4 nm73 eq#6-dsa

  • 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 .
  • 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) ● 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