Algoritmo DH para intercambio de claves

marca de agua, tamaño_16, texto_QDUxQ1RP5Y2a5a6i, color_FFFFFF, t_100, g_se, x_10, y_10, shadow_90, type_ZmFuZ3poZW5naGVpdGk =Algoritmo de intercambio de claves dh

Varios tipos de mecanismos de negociación / intercambio de claves

Confíe en el algoritmo de cifrado asimétrico

Principio: La parte que ha obtenido la clave pública primero genera una clave de sesión aleatoria y luego la encripta con la clave pública; luego envía el resultado de la encriptación a la otra parte, y la otra parte usa la clave privada para desencriptar; entonces ambas partes obtener la clave de sesión.

Ejemplo: RSA

Confíe en un algoritmo de intercambio de claves dedicado

Principio: vea la imagen a continuación

Ejemplo: algoritmo DH y sus variantes (algoritmo ECDH)

Algoritmo DH

El algoritmo DH resuelve el problema de completar el intercambio de claves cuando las dos partes no pasan directamente la clave Este principio de intercambio mágico está totalmente respaldado por la teoría matemática.

1. Alice elige un número primo p, como 509, una base g como 5 y un número aleatorio a como 123
    Luego calcule y luego calcule A = g ^ a mod p = bcmod (bcpow (5,123), 509) = 215
    Alice ahora tiene [p = 509, g = 5, a = 123, A = 215], envía p, g, A a Bob
    
2. Después de recibir p = 509, g = 5, Bob elige un número aleatorio b = 456
    Calcular B = g ^ b mod p = bcmod (bcpow (5,456), 509) = 181
    Al mismo tiempo, calcule s = A ^ b mod p = bcmod (bcpow (215,456), 509) = 121
    
    Bob ahora tiene [p = 509, g = 5, b = 456, B = 181, s = 121, A = 125]
    Bob envía B = 181 a Alice
    
3.
    Alice ahora tiene [p, g, a, A, B]

    Alice calcula s = B ^ a mod p = bcmod (bcpow (181,123), 509) = 121

Por tanto, la clave negociada por ambas partes es 121. Tenga en cuenta que esta clave no se transmite en la red. Los p, g, A y B transmitidos a través de la red no se pueden usar para calcular s, porque el número primo elegido por el algoritmo real es muy grande.

Por lo tanto, para ser más precisos, el algoritmo DH es un algoritmo de acuerdo de claves.Las dos partes finalmente negocian una clave común, y esta clave no se transmitirá por la red.

Si consideramos a como la clave privada de A, A como la clave pública de A, b como la clave privada de B y B como la clave pública de B, la esencia del algoritmo DH es que ambas partes generan sus propias claves pública y privada. La clave privada solo es visible para uno mismo, y luego se intercambia la clave pública, y la clave secreta final secretKey se genera de acuerdo con la clave privada de uno mismo y la clave pública de la otra parte. El algoritmo DH garantiza que la clave secreta calculada por ambas partes es lo mismo a través de leyes matemáticas.

Pero el algoritmo DH no resuelve el intermediario ***, es decir, ambas partes no pueden asegurar si la comunicación con ellos es realmente la otra parte. Eliminar al intermediario *** requiere otros métodos

  • El algoritmo DH es un protocolo de intercambio de claves en el que ambas partes en la comunicación negocian una clave a través de un canal inseguro y luego realizan una transmisión de cifrado simétrico.
  • El algoritmo DH no resuelve el intermediario ***.

Pero el algoritmo DH en sí mismo tiene desventajas: no admite la autenticación.

Es decir: aunque puede luchar contra el "espiar", no puede luchar contra la "manipulación" y, naturalmente, no puede luchar contra el "intermediario *** / MITM" (falta de autenticación de identidad, [debe ser) sufrida por "intermediario *** / MITM "")

ECDHE

  • 1. El cliente genera aleatoriamente un Ra
    cálculo de valor aleatorio Pa(x, y) = Ra * Q(x, y)y envía Pa (x, y) al servidor
    Q(x, y)para el punto base de un determinado algoritmo de curva elíptica reconocido en todo el mundo.

  • 2. El servidor genera aleatoriamente un Rb
    cálculo de valor aleatorio y Pb(x,y) = Rb * Q(x, y)
    se Pb(x,y)enviará al cliente.

  • 3. Informática cliente informática Sa(x,y) = Ra * Pb(x,y)
    servidorSb(x,y) = Rb *Pa(x,y)

  • 4. El algoritmo está garantizado Sa = Sb = Sy el vector x de S se extrae como clave (clave pre-maestra)

Supongo que te gusta

Origin blog.51cto.com/huangkui/2677734
Recomendado
Clasificación