Domingo, 26 de julio de 2015 | Hoy
Por Adrián Paenza
¿Qué título, no? Cierto, pero sígame por acá. En el mundo digital/virtual las cuestiones que involucran temas de seguridad se transformaron en aspectos relevantes de nuestra vida cotidiana. Operaciones bancarias, compras por Internet, tarjetas de crédito o de débito, contraseñas, cajeros automáticos, correos electrónicos, transacciones de compra y venta... No va a ser acá la primera vez que usted reflexione sobre la posibilidad de que alguien le robe la identidad y se haga pasar por usted. El anonimato que ofrece este mundo hubiera sido impensable muy poco tiempo atrás. ¿Cómo probar que somos quienes decimos ser y como verificar que otra u otro es verdaderamente quien creemos que es?
Acá es donde aparece la criptografía, la ciencia que se dedica a estudiar las técnicas que permiten establecer comunicaciones seguras entre dos “entidades”/personas/instituciones. La pregunta obvia es: ¿seguras ante quien? Es que si no hubiera terceros involucrados, no tendría sentido modificar nada de la información: uno podría leerla en voz alta o enviar una carta con un sobre abierto. En algún lugar, cerrar un sobre con el que uno hace un envío, es la forma “antigua” en donde se enviaban “átomos”/paquetes/mensajes en papel o mercadería. El cheque reemplaza en ese sentido al dinero en efectivo. De la misma forma, las comunicaciones virtuales requieren de otro tipo de “sobres” y de “firmas” que garanticen que uno es quien dice ser. La criptografía es la ciencia que ofrece las técnicas y elementos para la protección de los que se comunican.
En general uno supone que el problema reside en que dos personas se quieren comunicar o intercambiar un mensaje y que hay una tercera que pretende interceptar la información. Y ahí parece terminar todo: protegerse frente al “atentado” desde afuera. Pero, también podría darse el caso en el que una de las dos personas afirma conocer o tener algo valioso y necesita convencer a la otra. Es decir, que la otra persona “le crea” que la tiene pero –y esto es importante– sin necesidad de divulgarla. ¿Cómo hace uno para probar que sabe algo sin necesidad de exhibirlo y por lo tanto, cómo hace el otro para creerle?
Pongamos nombres tal como están en la literatura que se ocupa del tema: digamos que una persona es P y la otra es V. Las iniciales no son casuales porque P es quien quiere probar que sabe algo sin exhibirlo explícitamente y V es quien quiere verificar que lo que dice P es cierto. De hecho, hay un interjuego de uno que quiere probar y otro que necesita verificar.
Me apuro en poner un ejemplo, pero junto con él quiero hacerle una observación: es posible que todo esto parezca entre infantil y elemental. Créame que no lo es.
Suponga que hay dos amigos, que a los efectos prácticos voy a llamar Ana y José que se encuentran a tomar un café. José sigue soltero y Ana tiene muchas amigas. Ana sabe que hay en particular una amiga de ella que siente un atractivo particular por José, pero su personalidad le impediría hacérselo saber. Ana, respetuosa de su amiga, no quiere filtrar la información porque le parece improcedente.
Curiosamente, José siente también una particular atracción por una de las amigas de Ana, pero no quiere elaborar sobre el tema porque siente que no necesita de intermediarios para dirigir su atención.
Lo que transforma la historia en interesante, es que tanto Ana como José conocen la misma información: es decir, Ana sabe que hay una amiga de ella que gusta de José y sabe que José gusta de una amiga de ella. Y hasta allí llegan ambos. ¿Qué hacer? José no tendría problemas en juntarse con la amiga de Ana si lograra saber que ella es justo la persona que a él le gusta. Y Ana no tendría problemas en divulgar el nombre de su amiga, si ella lograra saber que José siente justamente atracción por esa particular amiga suya.
¿Hay alguna forma de intercambiar la información sin que ninguno de los dos haya tenido que divulgar algo que no debía? Puesto de otra forma, si la amiga de Ana en cuestión fuera la misma persona en ambos casos, ninguno de los dos tendría dificultades en avanzar. El problema es que si eso no fuera así, ambos se sentirían incómodos y preferirían que la situación se mantuviera como está hasta ahí.
Todo este preámbulo fue para sugerirle que piense qué camino tomaría usted. Qué hacer para saber si es posible cooperar con ambos sin que en el camino quede expuesta información que debería mantenerse privada.
La que sigue es una potencial forma de encarar el problema. Claramente no hay una única forma de resolverlo. Uno podría hacer lo siguiente. Tomemos diez amigas de Ana. Podrían ser más, pero en cualquier caso, elijamos una buena cantidad como para “diluir” más la potencial información.
Consiga diez vasos iguales. En cada vaso ponga una etiqueta con el nombre de cada una de las amigas de Ana.
Una vez hecho esto, José prepara diez “papelitos”, todos iguales. En nueve de ellos anota el número cero. En el único distinto, pone un número uno.
Por su parte Ana hace lo mismo: prepara diez papelitos, todos con el número cero, salvo uno que llevará al número uno.
Una vez que ambos están listos, José coloca todos los papelitos con el número cero en los vasos que llevan la etiqueta de amigas de Ana que a él no le interesan. Como usted conjetura correctamente, José coloca el papel con el número uno en el vaso que contiene el nombre de la amiga de Ana que a él le interesa.
A su vez Ana hace lo mismo: pone los papelitos con el número cero en los vasos en donde los nombres de sus amigas no reflejan ningún interés en José (que al menos ella esté enterada). Solamente ubicará el papelito con el número uno, dentro del vaso que tenga como etiqueta el nombre de la amiga de ella que gusta de José.
De esta forma resulta que cuando los dos terminaron de ubicar sus respectivos papeles, en algún vaso tienen que estar los números unos. ¿Estarán en el mismo?
Hasta acá, todo perfecto. ¿Y después? ¿Cómo seguir?
Bien, lo que uno puede hacer es lo siguiente: retira todas las etiquetas. Ahora ya no hay más nombres involucrados. Cada vaso sigue teniendo dos papeles pero ahora ya no se sabe a qué amiga de Ana correspondían. Los intercambiamos de posición para evitar que ninguno de ellos pueda “rastrear” los nombres y/o los vasos. De esa forma se evita que quede ningún “residuo” de la información que había originalmente. Y acá llega el final: tanto José como Ana van recorriendo los distintos vasos. Si en algún momento aparece uno de ellos que contiene dos papelitos con el número uno, eso quiere decir que existe la coincidencia que ambos buscaban: la amiga de Ana que gusta de José es la misma que le gusta a José.
En cambio, si no hay ningún vaso que contenga los dos papelitos con el número uno, todo sigue como estaba antes. José no tuvo que divulgar cuál amiga de Ana le gusta y Ana no tuvo que decirle a José qué amiga de ella gusta de él. Esta situación, que parece totalmente infantil, no lo es tanto cuando uno entiende que esto puede tener suma utilidad en situaciones un poco más interesantes.
Acompáñeme con la siguiente adaptación. Suponga que Ana sabe que hay una acción en la bolsa argentina que va a subir fuertemente en una semana. Es una información confidencial que ella posee y que no quiere comentar. Por su parte, José le dice que él tiene una información equivalente, pero lo que no sabe es si el nombre de la acción que tiene él es el mismo que el que tiene Ana. ¿Cómo hacer para compararlos sin que ninguno de los dos tenga que develarle al otro algo que no supiera de antemano? Si fuera cierto que los dos tienen el mismo nombre podrían aliarse y hacer una compra mayor y por lo tanto hacer una mayor diferencia económica.
Una propuesta es que hagan lo mismo que planteé en el caso anterior, sólo que en lugar de poner nombres de mujeres en las etiquetas pegadas a los vasos, lo que pueden hacer ahora es pegar el nombre de diez o veinte acciones.
No quiero terminar sin proponer otro ejemplo de los considerados “clásicos” y que sirve –una vez más– para plantear el problema de la prueba con “conocimiento cero” o “sin exhibir o divulgar”.
Suponga que hay dos amigos discutiendo sobre “daltonismo”. Uno de ellos (A) le dice al otro (B) que sospecha que él es daltónico. Ante la negativa de B en aceptarlo, A decide –por ejemplo– conseguir dos bolas de billar de dos colores diferentes (digamos roja y verde, que suelen ser dos colores que habitualmente presentan mayores dificultades para ser diferenciados entre las personas que sufren de este problema), pero ambas bolas son totalmente indistinguibles si no fuera por el color.
¿Cómo hacer entonces? Lo que quiere A es “convencer” a B de que tiene un problema, pero al mismo tiempo, no quiere que B sepa cuál bola es de color roja y cuál de color verde.
Entonces le propone la siguiente estrategia: A le entrega a B las dos bolas y le pregunta si él las puede distinguir. B dice que no. A sostiene que son diferentes, solo que B no se da cuenta. Para convencerlo de que es así, A le pide a B que tome cada una con una mano diferente y que ponga ambas manos atrás, en su espalda. De esa forma ahora A perdió de vista a las dos bolas.
Ahora A le dice a B: “Si querés, cambiá las bolas de mano sin que yo te vea. Yo te voy a decir si lo hiciste....¡o no!”.
Si las dos bolas fueran del mismo color y no hubiera nada que las distinguiera entonces, la probabilidad de que A acierte sería 1/2. Pero en este caso no se trata de “acertar” ni de “probabilidad” sino de “certeza”: A está convencido de que puede determinar en el ciento por ciento de los casos si B intercambió las bolas o no. Si solamente se basaran en la probabilidad de que esto suceda, sería 1/2 si lo hicieran una vez, pero si repitieran el proceso diez veces (por ejemplo), entonces la probabilidad de acertar sería (aproximadamente) de uno en mil. Y si lo hicieran veinte veces, esa probabilidad sería aún mucho más pequeña: una en un millón.
Como A es capaz de determinar si B cambió de mano o no ¡en todas las oportunidades! eso permite suponer que B ahora se tiene que haber convencido. Pero lo importante además, es que A no necesitó descubrir ante B cuál es el color de ninguna de las bolas.
El ejemplo que figura acá arriba parece elemental, pero la criptografía está repleta de situaciones que requieren de matemática profunda y a la vez preciosa, especialmente la que proviene de la Teoría de Números. Estoy seguro que los expertos en el tema tendrán muchas cosas para agregar/corregir/señalar, pero los legos, los que estamos de ‘este lado del mostrador’, nos contentamos con entender un poco más de qué se trata.
* El nombre del artículo es una traducción libre mía. En inglés se conoce como “Zero Knowledge Proof”.
© 2000-2022 www.pagina12.com.ar | República Argentina | Política de privacidad | Todos los Derechos Reservados
Sitio desarrollado con software libre GNU/Linux.