¿Qué es un cifrado asimétrico extremadamente básico que puedo presentar en el pub?

30

Estoy tratando de explicar los conceptos básicos de Bitcoin a mis padres.

Uno de los componentes principales de bitcoin es firmar transacciones para asegurarse de que su identidad no se pueda suplantar y, por lo tanto, la necesidad de explicar un cifrado asimétrico simplificado.

¿Qué es un cifrado asimétrico extremadamente simple que puedo usar como ejemplo?

¿Cómo se puede utilizar este cifrado simplificado para firmar?

Ryan The Leach
fuente
17
¿Por qué necesitarías entrar en criptografía para que un pub hable sobre bitcoin? A mi entender, el bitcoin resuelve el problema de mantener un libro mayor distribuido, evitando específicamente el problema del doble gasto. La motivación es evitar tener una autoridad central, y esto se puede lograr permitiendo que cada participante apruebe una transacción (en lugar de otorgar esta autoridad al banco). Para evitar que los participantes adversarios aprueben sus propias transacciones inválidas, se introduce el concepto de prueba de trabajo. No es necesario hablar sobre criptografía de clave pública.
Ariel
@Ariel La criptografía de clave pública, o al menos las firmas digitales, entra cuando quieres saber que la persona que dice enviar 3 BTC de Ariel a Ryan es en realidad Ariel.
Derek Elkins, el
1
Correcto, pero esto no es específico de Bitcoin, por lo que sus padres solo lo encontrarán confuso.
Ariel
1
Puede explicar la criptografía asimétrica, la cadena de bloques o Bitcoin. Elegir uno.
Raphael
2
Esta pregunta puede ser más adecuada para la criptografía .
Raphael

Respuestas:

28

Si desea presentar criptografía de clave pública a sus padres o amigos, le sugiero que siga algunas pautas. Primero, no hable sobre funciones específicas, a nadie le importa SHAxxx, mantenga su charla conceptual. El problema resuelto por la criptografía de clave pública es permitir que dos partes que nunca se conocieron intercambien información de forma segura en un canal público. No confunda esto con otras aplicaciones que se logran mediante cifrado de clave pública, como firmas digitales o autenticación.

Una ilustración simple e iluminadora de esto que he visto es la siguiente. Suponga que dos partes tienen una cubeta y varios colores, y quieren acordar un compuesto secreto específico. Se les permite enviarse un cubo con cierto compuesto, pero cualquier cosa enviada está expuesta a un adversario malvado. La suposición de subrayado es que mezclar colores es fácil, pero descomponer una mezcla en sus ingredientes es difícil. Esta suposición (que se conecta fácilmente con el lado formal de las cosas) le permite lograr su objetivo. Elija un color público y permita que ambas partes elijan un color secreto, por . La primera parte envía un cubo de una mezcla de . Del mismo modo, la segunda parte envía un cubo que contiene una mezcla deS 1 , S 2 P , S 1 P , S 2 P , S 1 , S 2PS1,S2P,S1P,S2 . Finalmente, cada lado agrega su color privado a la mezcla que recibió, y ahora ambas partes tienen una mezcla de , que (por nuestra suposición) permanece en secreto de cualquier espía. Una versión formal de esto es el protocolo de intercambio de claves Diffie-Hellman, que se basa en la dureza del registro discreto.P,S1,S2

Ahora, mi comprensión del protocolo bitcoin es limitada, pero cuando hablo con tus padres al respecto, no veo ninguna razón para entrar en criptografía. La mayoría de las explicaciones populares que he visto profundizan innecesariamente en los detalles de implementación, y comienzan a hablar sobre encontrar una preimagen de un hash tal que el resultado tenga número de ceros, perdiendo de vista el problema real. Como antes, sugiero mantener la charla conceptual. ¿Qué problema está tratando de resolver el bitcoin y por qué no es tan trivial? A mi entender, el bitcoin resuelve el problema de mantener un libro mayor distribuido, evitando específicamente el doble gastoxproblema. La motivación es evitar tener una autoridad central, y esto se puede lograr permitiendo que cada participante apruebe una transacción (en lugar de otorgar esta autoridad al banco). Para evitar que los participantes adversarios aprueben sus propias transacciones inválidas, se introduce el concepto de prueba de trabajo. POW usa el hash como un cuadro negro, por lo que puede evitar mencionar candidatos específicos.

Ariel
fuente
Bitcoin resuelve tanto el problema del doble gasto (que lo hace a través de la cadena de bloques, para lo cual el algoritmo de "prueba de trabajo" que describe es esencial) como la autenticación distribuida de las solicitudes de transferencia (que se discute con menos frecuencia, ya que simplemente se reduce a un -resuelto problema, es decir, autenticación de mensajes a través de claves asimétricas).
Jules
15

Una metáfora común que escuché es fabricar un montón de candados, guardar todas las llaves y enviar candados abiertos a cualquiera que quiera uno. Entonces, cualquier persona con un candado de este tipo puede enviarle mensajes secretos colocándolos en una caja y luego usando uno de sus candados para bloquearlo antes de enviárselo. Nadie más que usted tiene las llaves, por lo que incluso el remitente no puede desbloquear la caja después de que esté bloqueada, en particular, el servicio postal no puede espiar su mensaje en absoluto. Incluso pueden tener un candado suyo, pero eso no los ayuda a desbloquear la caja.

(Proporciono este ejemplo para responder a su pregunta como se indicó, sin ninguna opinión particular sobre si realmente es útil para la explicación de bitcoin).

Ben Millwood
fuente
1
Esta es una explicación útil del cifrado asimétrico, pero para explicar cómo funciona Bitcoin lo que realmente necesita es la verificación de firma , que es lo contrario: tiene un lote de candados que se rompen cuando los abre y envía las llaves a cualquier persona que pueda necesitar ellos. Luego, cuando envía un mensaje, lo pone en una caja y le pone un candado para que cualquiera que tenga la llave pueda decirle que lo envió.
Julio
@Jules Me gusta mucho esta explicación, ya que es análoga a un sello de manipulación.
Ryan The Leach
7

El problema con la explicación de las cifras asimétricas (y la razón por la cual la mayoría de las explicaciones pop realmente no explican nada) es que están entrelazadas con la idea de que existen problemas que son (supuestamente) intratables, que es una de las ideas detrás de la complejidad computacional.

Una vez que entiendes ese punto, un cifrado asimétrico es "simplemente" una función que es fácil de calcular pero que se considera difícil de invertir. Incluso podría hacer la suya, vea la implementación original del intercambio de claves Diffie-Hellman como referencia.

ordenación rápida
fuente
3
Esa no es toda la historia. Tiene que ser difícil de invertir a menos que tenga la clave privada.
Ben Millwood
+1 para Diffie-Hellman. Es un protocolo bastante simple de explicar, que corresponde al ejemplo de colores.
Ariel
4

No creo que haya un sistema de cifrado asimétrico fácilmente demostrable. En cambio, describa lo que hace, no cómo lo hace. De hecho, he tenido que hacer esto recientemente, para describir cómo funciona PGP. Para BitCoin, concéntrese en la segunda parte, firmar mensajes.

Puedo crear dos números relacionados. Una se llama la clave privada , la otra la clave pública . Guardo el primer secreto y les digo a todos el segundo. Cualquiera que quiera enviarme un mensaje toma mi clave pública y encripta su mensaje con ella. Una vez hecho esto, nadie puede descifrar el mensaje, ni siquiera el remitente. Cuando recibo el mensaje, puedo descifrarlo con mi clave privada.

O bien, puedo cifrar un mensaje con mi clave privada y enviar el mensaje cifrado y el no cifrado a una segunda persona. Si tienen mi clave pública, pueden descifrar la parte cifrada del mensaje, y será lo mismo que la parte no cifrada. Esto muestra que yo fui la persona que cifró el mensaje.

Si preguntan cómo se generan las claves, entonces diga

Pienso en dos números primos muy grandes y luego los transformo a través de una función matemática. Escupe las claves privadas y públicas.

Esto es, por supuesto, pasar por alto el hecho de que el cifrado asimétrico normalmente no funciona en el mensaje en sí, sino en una clave de sesión (para cifrado) o en un hash (verificación de firma). También ignora el requisito muy importante de que debe mantener su clave privada privada: cualquier persona con acceso a ella puede pretender ser usted.

CSM
fuente