30
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

Vc4 nm73 eq#6-dsa

Embed Size (px)

Citation preview

Page 1: Vc4 nm73 eq#6-dsa

INSTITUTO POLITÉCNICO NACIONALUPIICSA

INTEGRANTES:> Apolinar Crisóstomo Jessica>Camacho Flores Sarahí Montserrat

>Hernández González Ivonne Valeria>Lozada Perez Yarely Guadalupe

VIROLOGÍA Y CRIPTOGRAFÍA

PROTOCOLO TLS

ALGORITMO DSAEQUIPO 6

Page 2: Vc4 nm73 eq#6-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?

Page 3: Vc4 nm73 eq#6-dsa

¿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.

Page 4: Vc4 nm73 eq#6-dsa

★ 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

Page 5: Vc4 nm73 eq#6-dsa

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.

Historia

Page 6: Vc4 nm73 eq#6-dsa

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.

¿Qué es una firma digital?

Page 7: Vc4 nm73 eq#6-dsa

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

Page 8: Vc4 nm73 eq#6-dsa

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.

FUNCIONAMIENTO

Page 9: Vc4 nm73 eq#6-dsa

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

(DSA) ALGORITMO DE FIRMA DIGITAL

Page 10: Vc4 nm73 eq#6-dsa

➢una llave privada “X”, ➢un número de mensaje “k” ➢un mensaje para firmar ➢una función hash .

PARÁMETROS (DSA)

Page 11: Vc4 nm73 eq#6-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.

PARÁMETROS (DSA)

L N

1024 160

2048 224

2048 256

3072 256

Page 12: Vc4 nm73 eq#6-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

PARÁMETROS (DSA)

Page 13: Vc4 nm73 eq#6-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.

FUNCIÓN HASH PARA EL (DSA)

Page 14: Vc4 nm73 eq#6-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)

Page 15: Vc4 nm73 eq#6-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 - 16. Calcular y = αa mod p.7. La clave pública es (p, q, α, y). La clave privada es a.

GENERACIÓN DE CLAVES (DSA)

Page 16: Vc4 nm73 eq#6-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 documentoCalcular

GENERACIÓN DE LA FIRMA DIGITAL (DSA)

Page 17: Vc4 nm73 eq#6-dsa
Page 18: Vc4 nm73 eq#6-dsa
Page 19: Vc4 nm73 eq#6-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.

APLICACIÓN DSA

Page 20: Vc4 nm73 eq#6-dsa

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.

PROBLEMAS PRINCIPALES

Page 21: Vc4 nm73 eq#6-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

DIFERENCIAS PRINCIPALES ENTRE RSA Y DSA

Page 22: Vc4 nm73 eq#6-dsa

•El algoritmo DSA es más rápido para generar la firma que para verificarla, al contrario de lo que sucede con el RSA.

Tabla de tiempos

Page 23: Vc4 nm73 eq#6-dsa

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

DESVENTAJAS

Page 24: Vc4 nm73 eq#6-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

Page 25: Vc4 nm73 eq#6-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

Page 26: Vc4 nm73 eq#6-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

Page 27: Vc4 nm73 eq#6-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

Page 28: Vc4 nm73 eq#6-dsa

Para que DSA funcione es necesario realizar tres pasos:

●Generar un par de llaves●Firmar el mensaje●Verificar la firma

SEGURIDAD EN JAVA CON DSA

Page 29: Vc4 nm73 eq#6-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.

IMPLEMENTACIÓN DEL DSA

Page 30: Vc4 nm73 eq#6-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:

SEGURIDAD DEL DSA

Problemas con k

Problemas con el

módulo común.

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.

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