Algoritmo de intercambio de claves Diffie-Hellman
Según la Enciclopedia Baidu, el algoritmo de intercambio de claves Diffie-Hellman es un método para garantizar la seguridad de la CLAVE disfrutada en una red insegura y también es un componente de OAKLEY. Whitefield y Martin-Hellman propusieron un fantástico protocolo de intercambio de claves en 1976 llamado "Algoritmo de protocolo/intercambio de claves Diffie-Hellman". La belleza de este mecanismo es que puede ser utilizado por dos partes que necesitan comunicarse de forma segura para determinar una clave simétrica. Esta clave se puede utilizar para cifrar y descifrar. Pero tenga en cuenta que este protocolo/algoritmo de intercambio de claves solo se puede utilizar para el intercambio de claves, no para cifrar y descifrar información. Después de que ambas partes determinen qué clave usar, deben manipular el algoritmo de cifrado utilizando otras claves simétricas para cifrar y descifrar realmente la información.
El principio básico de este algoritmo es que es muy difícil calcular logaritmos discretos en campos finitos.
El concepto de funciones unidireccionales está en el corazón del cifrado de clave pública. La idea básica de las funciones unidireccionales es que es relativamente fácil calcular una función unidireccional, pero muy difícil encontrar su inversa.
La función unidireccional utilizada en el algoritmo de intercambio de claves Diffie-Hellman es la operación de módulo:
Por ejemplo, si p = 7 y sabemos que x = 9, entonces f (x) = 2, que es fácil de calcular. Pero si sabes que f(x) = 2, entonces es casi imposible calcular x al revés porque hay muchas posibilidades para x.
Si sabes que f(x) = 2, entonces f(x) = 2 es muy fácil de calcular.
Supongamos que Bob y Jim necesitan intercambiar llaves y que hay una Eve escuchando a escondidas en el medio. Los pasos básicos son los siguientes ('^' a continuación indica cuántas veces):
La clave calculada por Bob en el paso 4 y la clave calculada por Jim en el paso 5 deben ser la misma. En este caso:
El caso general se demuestra a continuación.
Donde a y p son las claves públicas, b es el número aleatorio (clave privada) generado por Bob y c es el número aleatorio (clave privada) generado por Jim.
Primera prueba:
Es fácil probar la ecuación (1) usando la ecuación (2).