Vc4 n73 eq6-dsa

186 views

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
186
On SlideShare
0
From Embeds
0
Number of Embeds
14
Actions
Shares
0
Downloads
1
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Vc4 n73 eq6-dsa

  1. 1. INSTITUTO POLITÉCNICO NACIONAL UNIDAD PROFESIONAL INTERDISCIPLINARIA DE INGENIERÍA Y CIENCIAS SOCIALES Y ADMINISTRATIVAS INTEGRANTES: Apolinar Crisóstomo Jessica Camacho Flores Sarahí Montserrat Hernández González Ivonne Valeria Lozada Pérez Yareli Guadalupe TEMAS: ALGORITMO DSA FECHA DE EXPOSICIÓN:20 DE NOVIEMBRE DE 2013 Coordinador de equipo INTRODUCCIÓN En esta ocasión trataremos el tema del algoritmo DSA el cual nos ayuda para crear firmas digitales, estas firmas son las que nos ayudan a poder identificar quien envía la información, además se debe de tener en cuenta que este algoritmo no es para encriptar mensajes, solo es para poder identificar a las personas. ÍNDICE ¿QUÉ ES DSA? POCO DE HISTORIA ¿QUÉ SON LAS FIRMAS DIGITALES? Funcionamiento CREACIÓN DEL PAR CLAVE PÚBLICA-CLAVE PRIVADA GENERACIÓN DE LA FIRMA DIGITAL PROBLEMAS PRINCIPALES DESVENTAJAS APLICACIÓN DSA SEGURIDAD EN JAVA CON DSA IMPLEMENTACIÓN DEL DSA SEGURIDAD DEL DSA CAPITULADO ¿QUÉ ES DSA? Algoritmo estándar estadounidense de firma digital para aplicaciones gubernamentales diseñado por el National Institute for Standards and Technology (NIST). Es una variante con apéndice del esquema de firma digital de El Gamal. Como su nombre indica, 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.
  2. 2. INSTITUTO POLITÉCNICO NACIONAL UNIDAD PROFESIONAL INTERDISCIPLINARIA DE INGENIERÍA Y CIENCIAS SOCIALES Y ADMINISTRATIVAS INTEGRANTES: Apolinar Crisóstomo Jessica Camacho Flores Sarahí Montserrat Hernández González Ivonne Valeria Lozada Pérez Yareli Guadalupe TEMAS: ALGORITMO DSA FECHA DE EXPOSICIÓN:20 DE NOVIEMBRE DE 2013 Coordinador de equipo DSA primero selecciona un algoritmo de resumen (generalmente uno de la familia SHA) y una longitud de clave (inicialmente un múltiplo de 64 entre 512 y 1024, pero actualmente 1024, 2048 o 3072). POCO DE HISTORIA El algoritmo de firmas digitales (DSA) fue implementado por la agencia federal de estándares de los Estados Unidos.Este fue propuesto por el Instituto nacional de estándares y tecnología( NIST) en agosto del 1991 como parte del estándar de firmas digitales (DSS) , el cual fue adoptado en 1993. 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 protegiera sus comunicaciones. Generalmente el estándar es implementado por el sector privado y por las empresas e instituciones que se dedican al comercio electrónico. Este algoritmo se le atribuye al Dr.David W. Kravitz un empleado de agencia nacional de seguridad quien archivo la patente en julio del 1991. Esta patente fue expropiada y dada a los Estados Unidos de América. Luego hecha pública y libre de regalías para su uso e implementación. ¿QUÉ SON LAS FIRMAS DIGITALES? 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.) Estas firmas necesitan utilizar algunos tipos de encriptación para asegurar la Autenticación. Estos dos procesos funcionan mano a mano para garantizar una firma digital. Existen varias formas de autenticar una persona o información en un equipo.
  3. 3. INSTITUTO POLITÉCNICO NACIONAL UNIDAD PROFESIONAL INTERDISCIPLINARIA DE INGENIERÍA Y CIENCIAS SOCIALES Y ADMINISTRATIVAS INTEGRANTES: Apolinar Crisóstomo Jessica Camacho Flores Sarahí Montserrat Hernández González Ivonne Valeria Lozada Pérez Yareli Guadalupe TEMAS: ALGORITMO DSA FECHA DE EXPOSICIÓN:20 DE NOVIEMBRE DE 2013 Coordinador de 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 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. En la generación de la firma utiliza una llave privada. Y la verificación se utiliza una llave pública. Estas llaves no son iguales y cada usuario posee un par de llaves. El funcionamiento del DSA está ligado a SHA-1 el cual es un algoritmo de Hashing seguro. Mejor dicho DSA es un algoritmo de llave pública (Public key); esta llave pública es generada por SHA-1 para verificar la firma. Para esto se recomputa el hash del mensaje usando la llave publica para descifrar la firma. La llave es una variable de 512 – 1024 bits CREACIÓN DEL PAR CLAVE PÚBLICA-CLAVE PRIVADA 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
  4. 4. INSTITUTO POLITÉCNICO NACIONAL UNIDAD PROFESIONAL INTERDISCIPLINARIA DE INGENIERÍA Y CIENCIAS SOCIALES Y ADMINISTRATIVAS INTEGRANTES: Apolinar Crisóstomo Jessica Camacho Flores Sarahí Montserrat Hernández González Ivonne Valeria Lozada Pérez Yareli Guadalupe TEMAS: ALGORITMO DSA FECHA DE EXPOSICIÓN:20 DE NOVIEMBRE DE 2013 Coordinador de equipo 1. Generar su clave privada La clave privada x deberá ser un número aleatorio de 160 bits el cual no es del todo "aleatorio" ya que debe cumplir con ciertas características según el estándar de DSS. 2. Generar su clave pública Para generar la clave pública necesita: 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 3.- Número k correspondiente a la firma. Número k correspondiente a la firma. Éste número será único para cada firma y será un parámetro más para poder comprobarla, además que también debe cumplir con las características específicas del estándar donde: 0<k<q 4. Generar la Firma de su documento Calcular:
  5. 5. INSTITUTO POLITÉCNICO NACIONAL UNIDAD PROFESIONAL INTERDISCIPLINARIA DE INGENIERÍA Y CIENCIAS SOCIALES Y ADMINISTRATIVAS INTEGRANTES: Apolinar Crisóstomo Jessica Camacho Flores Sarahí Montserrat Hernández González Ivonne Valeria Lozada Pérez Yareli Guadalupe TEMAS: ALGORITMO DSA FECHA DE EXPOSICIÓN:20 DE NOVIEMBRE DE 2013 Coordinador de equipo Donde: SHA(M), es el resultado de aplicarle la función hash SHA-1 al documento, el cual no importando la longitud que tenga el SHA resultante tendrá siempre la misma longitud. Esquema que resume el funcionamiento del algoritmo: Imagen obtenida de http://es.calameo.com/read/000578884c567a67a7b98. PROBLEMAS PRINCIPALES El DSA (Digital Signature Algorithm o Algoritmo Estándar de Firmado) es el algoritmo de firmado digital incluido en el DSS (Digital Signature Standard o Estándar de Firmas Digitales) del NIST Norteamericano. La elección de este algoritmo como estándar de firmado generó multitud de críticas: se pierde flexibilidad respecto al RSA (que además, ya era un estándar), la verificación de firmas es lenta, el proceso de elección fue poco claro y la versión original empleaba claves que lo hacían poco seguro. El algoritmo es más rápido para generar la firma que para validarla, al revés de lo que sucede con el RSA. Emplea claves de 1024 bits (originalmente eran 512 bits, pero se aumentó por falta de seguridad). No se conocen ataques eficientes contra este algoritmo, sólo existen problemas con un conjunto de números primos, pero son fácilmente evitables si se siguen los sistemas adecuados de generación de claves Diferencias de tiempos entre RSA Y DSA Algoritm Generación de llaves * Firmado * 100 Verificación*100(ms.
  6. 6. INSTITUTO POLITÉCNICO NACIONAL UNIDAD PROFESIONAL INTERDISCIPLINARIA DE INGENIERÍA Y CIENCIAS SOCIALES Y ADMINISTRATIVAS INTEGRANTES: Apolinar Crisóstomo Jessica Camacho Flores Sarahí Montserrat Hernández González Ivonne Valeria Lozada Pérez Yareli Guadalupe TEMAS: ALGORITMO DSA FECHA DE EXPOSICIÓN:20 DE NOVIEMBRE DE 2013 o 1(ms.) Coordinador de equipo (ms.) ) RSA 512 544.61 915 160 RSA 1024 1120.46 4188 263 DSA 512 6.62 634 988 DSA 1024 17.87 1775 3397 DESVENTAJAS ● ● Emplea una clave demasiado corta, lo cual hace que con el avance actual de los ordenadores, los ataques por la fuerza bruta se puedan llevar a cabo. Se requiere más tiempo de cómputo que el RSA. APLICACIÓN DSA Este estándar especifica los algoritmos para aplicaciones que requieren una firma digital, en lugar de una firma manuscrita. Una firma digital se representa en un equipo 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 para ser verificados 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. En los últimos 50 años los matemáticos y los científicos de la computación han desarrollado algoritmos que aseguran la integridad de los datos y que permiten hacer firmas digitales. El paquete java.security contiene implementaciones para muchos de estos algoritmos.
  7. 7. INSTITUTO POLITÉCNICO NACIONAL UNIDAD PROFESIONAL INTERDISCIPLINARIA DE INGENIERÍA Y CIENCIAS SOCIALES Y ADMINISTRATIVAS INTEGRANTES: Apolinar Crisóstomo Jessica Camacho Flores Sarahí Montserrat Hernández González Ivonne Valeria Lozada Pérez Yareli Guadalupe TEMAS: ALGORITMO DSA FECHA DE EXPOSICIÓN:20 DE NOVIEMBRE DE 2013 Coordinador de equipo 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. 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. A cada entidad (persona, servidor, agente) se le otorga algún tipo de certificación sobre de su identidad o sobre su membresía a algún grupo en particular. Cada entidad tiene que proporcionar este certificado para autentificar su identidad y poder hacer uso de los recursos. Cuando un mensaje es autenticado debemos saber que el mensaje proviene de quien esperamos y que el mensaje no ha sido alterado. 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), para utilizar este algoritmo en Java es necesario comprarlo. Para que DSA funcione es necesario realizar tres pasos: ● Generar un par de llaves ● Firmar el mensaje ● Verificar la firma Para generar un par de llaves se utiliza un objeto del tipo KeyPairGenerator. Con la clase Signature se genera una firma digital y se verifica la identidad de un agente remoto que esté mandando datos; esta clase utiliza pares de llaves pública y privada para generar y verificar las firmas. IMPLEMENTACIÓN DEL DSA
  8. 8. INSTITUTO POLITÉCNICO NACIONAL UNIDAD PROFESIONAL INTERDISCIPLINARIA DE INGENIERÍA Y CIENCIAS SOCIALES Y ADMINISTRATIVAS INTEGRANTES: Apolinar Crisóstomo Jessica Camacho Flores Sarahí Montserrat Hernández González Ivonne Valeria Lozada Pérez Yareli Guadalupe TEMAS: ALGORITMO DSA FECHA DE EXPOSICIÓN:20 DE NOVIEMBRE DE 2013 Coordinador de equipo 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 reales del DSA se pueden acelerar realizando algunos cálculos previos. Puesto que el valor r no depende del mensaje, se puede crear una cadena de valores aleatorios k, y después recalcular el valor de r para cada uno de ellos, y los valores k − 1. Después, cuando se tenga un mensaje determinado, basta con calcular el valor de s para un r y k − 1 determinado. 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 CONCLUSIONES Este algoritmo es uno de los utilizados para poder realizar las firmas digitales, este algoritmo, tal vez es uno de los más importantes, ya que, como sabemos en un futuro ya absolutamente todo será digital, además de que esta firma nos ayuda para poder tener seriedad en los documentos y a su vez una seguridad para poder saber quien es quien envía los mensajes, esto es que se le da una identidad a la persona y se asegura la integridad de los mensajes. La firma digital hoy en día es esencial para verificar la identidad del emisor o la entidad que envía un mensaje a través de internet. Dichas firmas son protegidas por medio de algoritmos criptográficos tal como lo es el DSA. Son representadas como caracteres o dígitos binarios lo cual permite que sean confiables y seguros. La característica que hace seguro a este algoritmo es la utilización de llaves.
  9. 9. INSTITUTO POLITÉCNICO NACIONAL UNIDAD PROFESIONAL INTERDISCIPLINARIA DE INGENIERÍA Y CIENCIAS SOCIALES Y ADMINISTRATIVAS INTEGRANTES: Apolinar Crisóstomo Jessica Camacho Flores Sarahí Montserrat Hernández González Ivonne Valeria Lozada Pérez Yareli Guadalupe TEMAS: ALGORITMO DSA FECHA DE EXPOSICIÓN:20 DE NOVIEMBRE DE 2013 Coordinador de equipo Actualmente este algoritmo es utilizado para generar firmas digitales al utilizar el correo electrónico, realizando transferencias bancarias, en el envío de mensajes, al adquirir distribuciones de software, en almacenamiento de datos y generalmente en cualquier aplicación que requiera asegurar la integridad y originalidad de los datos. En la actualidad, la protección de los datos se ha vuelto indispensable, debido al gran crecimiento de los sistemas informáticos y para ello hay técnicas que nos ayudan a proteger los datos sensibles, como es el DSA que es un algoritmo siméticro que nos permite utilizar llaves públicas y privadas para mantener los datos íntegros y seguros, también nos ayuda a la generación de firmas digitales, para poder autentificar a personas o documentos legales. Otra característica más es que nos ayuda a incrementar nuestra seguridad. Hoy en día se ha vuelto fundamental adoptar medidas de seguridad para proteger nuestros datos y para ello se hace uso de varias técnicas y una de ellas es la firma digital, la cual sirve para identificar que el remitente o usuario es quien dice ser, para realizar la firma digital se hace uso de los algoritmos de firma digital como lo son el DSA que es un algoritmo que se ha establecido como estándar, cabe aclarar que cada opción de algoritmo tiene sus vulnerabilidades y además estos tienen que ir mejorando ya que con el surgimiento de nuevos avances tecnológicos van surgiendo máquinas que pueden facilitar el descubrimiento del funcionamiento de estos algoritmos. BIBLIOGRAFÍA http://es.scribd.com/doc/98896469/DSA-PTT-20056312 http://redyseguridad.fi-p.unam.mx/proyectos/criptografia/criptografia/index.php/5-criptografiaasimetrica-o-de-clave-publica/56-firmas-digitales/562-dsa-digital-signature-algorithm http://guimi.net/monograficos/G-Redes_de_comunicaciones/G-RCnode60.html http://www.mcc.unam.mx/~cursos/Algoritmos/javaDC99-1/resumen5.html http://cala.unex.es/cala/epistemowikia/index.php?title=Criptografia#Algoritmo_DSA

×