¿Cómo podría funcionar el cifrado en línea? [duplicar]

2

Recientemente he leído sobre la máquina enigma alemana en la Segunda Guerra Mundial. Funcionó de manera que todos los días se enviaba la configuración de la máquina por correo a los diferentes operadores. (No pude encontrar fuentes oficiales sobre esto, por favor sugiera una edición si dije algo mal)

Obviamente, estos cifrados podrían ser confiscados por los aliados, pero eso aparentemente no fue muy efectivo en comparación con la fuerza bruta. (Turing)

Ahora, sobre el cifrado en línea como https, ¿cómo es posible cifrar cualquier cosa en línea, si la clave de descifrado también debería transferirse de alguna manera?

Para mí nunca tuvo sentido, incluso si hay un escenario de clave pública + privada. Si alguien puede conectarse a la conexión, puede ver que ambos se envían, ¿no?

Me encantaría informarme sobre esto, aquí es donde se rompen mis teorías de aficionado sobre la criptografía ... ¡Gracias!

    
pregunta downrep_nation 27.03.2016 - 06:43
fuente

4 respuestas

8

Eche un vistazo a esta explicación del intercambio de claves de Diffie Helmann. El punto central es que, debido a algunas matemáticas inteligentes, ambas partes pueden calcular la clave secreta, al tiempo que están seguros de que nadie más podría haber hecho lo mismo.

Si pasas un par de minutos estudiando las matemáticas, debería ser más claro por qué esto es posible.

    
respondido por el Hans Kristian 28.03.2016 - 16:46
fuente
2

Aquí hay muchos conceptos complejos, pero se pueden dividir en unas pocas declaraciones simples. Explicaré el intercambio de claves RSA aquí, ya que es bastante sencillo. Primero, tenemos que comenzar con un par de datos básicos:

Dado: el cifrado simétrico utiliza la misma clave para el cifrado que para el descifrado.

  • La clave simétrica debe mantenerse en secreto por todos los que la conocen.
  • El cifrado simétrico es rápido y eficiente.

Dado: el cifrado asimétrico utiliza una 'clave pública' para cifrar y una 'clave privada' para descifrar.

  • Como lo indican los nombres, una clave pública puede compartirse públicamente con todos, no es un secreto.
  • Una clave pública se puede entregar en un "certificado", que es un documento firmado digitalmente que indica que es auténtico y que pertenece a este servidor.
  • Una clave privada debe mantenerse en secreto por la parte que la conoce.
  • Juntos, llamamos a estos un par de claves.
  1. Un cliente se conecta a un servidor y recibe un certificado que contiene la clave pública del servidor.
    • (El cliente valida la firma en el certificado antes de continuar)
  2. El cliente genera un valor aleatorio secreto para usar como clave de un algoritmo simétrico.
    • Esta es una clave temporal que llamamos "clave de sesión".
  3. El cliente cifra la clave de sesión con la clave pública del servidor.
  4. El cliente envía la clave de sesión cifrada al servidor.
  5. El servidor descifra la clave de sesión cifrada utilizando su clave privada y recupera la clave de sesión original del cliente.
    • El servidor ahora tiene una copia de la misma clave de sesión que generó el cliente.
  6. El cliente cifra sus datos con el algoritmo simétrico y la clave de sesión y los envía.
  7. El servidor recibe los datos cifrados y los descifra mediante la clave de sesión.
  8. El servidor genera la respuesta y la cifra mediante la clave de sesión.
  9. El cliente recibe la respuesta y la descifra con la clave de sesión.

La clave de sesión secreta siempre está cifrada por el cliente antes de que se transmita. Un oyente que escucha en la red no puede decir cuál fue el valor aleatorio original. Pueden aprender el valor aleatorio cifrado, pero como no tienen la clave privada, no pueden descifrarla.

Hay otras formas de intercambiar claves de sesión. Otros carteles han mencionado a Diffie-Hellman (DH) como uno de los principales protocolos, pero hay incluso otros.

    
respondido por el John Deters 28.03.2016 - 22:10
fuente
2

Varias otras personas han contribuido con respuestas sobre los problemas técnicos que tiene problemas para entender. Pero me doy cuenta de al menos dos suposiciones erróneas en sus preguntas.

1) La máquina alemana Enigma era un dispositivo bastante innovador, y tuvimos la suerte de vencerlo. No era solo la fuerza bruta, al menos un dispositivo fue capturado y diseñado por ingeniería inversa, por lo que sabíamos cómo aplicar un algoritmo de fuerza bruta. Una vez que entendimos el sistema de rotor, el siguiente problema fue la configuración inicial de la máquina para una transmisión determinada. Eso había que adivinar. Porque ....

2) Una clave simétrica tiene que ser "transferida de alguna manera" pero no necesariamente en línea. Los alemanes utilizaron canales separados para distribuir las configuraciones para el estado de inicio de las máquinas.

En Internet, hacemos esto con los intercambios Diffie-Hellman (o con un PKI). Cuando se crea una clave simétrica aleatoria de forma independiente en cada lado, para esa sesión de conversación se descarta. La inteligencia viene del hecho de que observar la conversación no revela la clave definitiva.

    
respondido por el DaveM 28.03.2016 - 23:14
fuente
0

Con la criptografía de clave pública, todos conocen la clave pública, pero es inútil si desea descifrar los datos. Solo puede cifrar datos que se enviarán al usuario que tiene la clave privada asociada con esa clave pública específica.

Por lo tanto, la clave pública tiene una clave privada asociada que se utiliza para descifrar.

Lee sobre RSA.

    
respondido por el yoyo_fun 27.03.2016 - 06:52
fuente

Lea otras preguntas en las etiquetas