Variados

Páginas: 5 (1043 palabras) Publicado: 27 de septiembre de 2011
José Agustín López Sánchez, ISC
Materia, Cuatrimestre
(
Algoritmo Diffie-Hellman (19 Marzo 2010)

Resumen— Los algoritmos de clave pública están basados en utilizar claves distintas para cifrar y descifrar, una de ellas se hace pública y la otra es privada para cada usuario. De este modo todos los usuarios del sistema tienen acceso a las claves públicas pero únicamente ellos conocen suclave privada.

Introducción

E
l algoritmo Diffie-Hellman permite que dos entidades se pongan de acuerdo en un número, a través de un canal público, sin que dicho número pueda ser conocido por ningún atacante que esté en ese momento monitorizando la comunicación. Es más, ambas entidades no necesitan compartir ningún secreto, por lo que puede utilizarse para comunicar de formasegura a dos entidades que nunca antes se hayan comunicado. Una vez que las dos partes hayan acordado un valor, este puede ser usado como por ejemplo para cifrar la información que ellos necesiten compartir de manera confidencial.

Algoritmo Diffie-Hellman

La criptografía de clave pública fueron inventados a finales de los años 70, se observó que un cifrado puede serdesarrollado teniendo dos claves, una privada y una pública.
Con la clave pública se puede cifrar mensajes, y descifrarlos con la clave privada. Así el propietario de la clave privada sería el único que podría descifrar los mensajes.
El protocolo Diffie-Hellman permite el intercambio secreto de claves entre dos partes que no hayan tenido ningún contacto previo, usando un canal inseguro y demanera anónima.
Su seguridad radica en la extrema dificultad (conjeturada, no demostrada) de calcular logaritmos discretos en un campo finito.
En la siguiente imagen se demuestra el funcionamiento del algoritmo de Diffie-Hellman.

[pic]
La variable:
-p debe ser un número primo (preferentemente grande).
–g es un número primitive root. Esto significa que g es un número coprimo de p. gno necesita ser muy grande. Ejemplo: 2, 3 ó 5.
–a y b pueden ser cualquier número secreto (preferentemente grande).
Alice genera los siguientes valores a, g, p, el valor (a) es la clave secreta de Alice y no la compartirá con nadie más, con estos valores obtiene el valor de (A), usando la formula A=ga mod p, g,p y A es la llave publica de Alice y serán enviados a Bob, donde Bob tendrásu propia clave secreta (b), con los valores que le fueron enviado y su clave privada calcula B y K, K es la llave que compartirán solo Alice y Bob, pero Alice aun no sabe la clave compartida, para ello Bob le envía el valor de B a Alice y así podrá generar la clave secreta que ellos compartirán para el intercambio de información de forma confidencial usando la llave que ahora comparten.implementación del algoritmo diffie-hellman

En este apartado se implementa de manera práctica el intercambio secreto de llaves entre dos partes usando el algoritmo de Diffie-Hellman.
El siguiente programa que implementa dicho algoritmo se realizó con el leguaje de programación JAVA, y usando para establecer la conexión entre Alice y Bob, el Método de Invocación Remota o RMIpor sus siglas en ingles.
Primero creamos nuestra interface (Commands.java), donde se declara el método a usar por el servidor, que para esta práctica tomara el rol de Bob, un detalle a destacar en este código es el uso de BinInteger, que es una clase que nos sirve para poder manejar números enteros largos.
El cliente (Cliente.java) que tomara el rol de Alice para efectos de esta práctica, sedeclara un arreglo de enteros donde se almacena una serie de números primos:
int[] prime = {17,19,31,61,89,107,127,521,607,1279,2203, 2281,3217,4253,4423,9689,9941,11213};.
Genero números aleatorios con Math.Random() para escoger al azar los números primos que tengo en el arreglo int prime[], para asignarles un valor a las variables p y g que deben ser números primos, a la variable a se...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • Variado
  • Varios
  • Varios
  • Varios
  • Variados
  • Varios
  • Varios
  • Varios

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS