CONTRATAPA

Estrategia con dos candados

 Por Adrián Paenza

Muchísimas escuelas reciben alumnos en dos o hasta tres turnos: mañana, tarde y –eventualmente– noche. Esto hace que la cantidad de estudiantes que recibe el establecimiento sea muy grande. De todas formas, cada estudiante tiene su propio “armario” o “casillero” al que puede agregarle un candado, de manera tal de mantener seguras sus pertenencias.

La cuestión es que un alumno A, que concurre al turno mañana, le quiere dejar un reloj a otro estudiante B, que concurre a la noche. La idea de A es poner el reloj dentro de su propio armario (el de A) pero lo que no quiere hacer es dejar las llaves de su candado a una tercera persona por temor a que esa llave sea luego “copiada” y/o utilizada en otro momento. ¿Qué estrategia idear para que A le pueda dejar el reloj a B en su propio casillero sin tener que dejarle la llave a nadie y manteniendo la seguridad que es habitual?

Antes de dejarla/o en paz para que pueda pensar, siéntase libre en usar el candado que tiene B para elaborar su estrategia, pero lo que debería evitar es que intervenga otra persona: los dos únicos involucrados tienen que ser A y B. Ahora sí, su turno.

Solución

Me imagino que debe haber varias formas de resolver este problema y debe haber varias estrategias posibles. Yo voy a proponer una, pero estoy seguro que si a usted se le ocurrió cualquier otra, tiene que ser mejor. ¿Sabe por qué? Porque es suya, es la que pensó usted y eso termina siendo impagable.

Acá voy. El estudiante A pone el reloj en su casillero y lo cierra con el candado que usa siempre. Cuando a la noche llega B, está claro que no puede abrir el armario de A porque no tiene la llave, pero lo que sí puede hacer, es agregarle un candado (que voy a llamar candado B), cerrarlo y llevarse la llave. El armario queda cerrado por dos candados: el de A y el de B.

A la mañana siguiente, cuando A llega al colegio ahora no puede abrir su propio casillero. El reloj (y el resto de los objetos que allí guarda A) están protegidos ahora por esos dos candados y A solamente tiene la llave de uno de ellos. ¿Qué hacer? Bueno... A usa su llave, abre su candado y deja el casillero custodiado solamente por el candado B, pero no puede acceder a lo que hay guardado allí adentro ahora.

Pero quien sí va a poder abrirlo es B. Cuando B llegue a la noche junto con sus compañeras y compañeros de turno, él tiene la llave que hace falta para abrir el candado que cerró la noche anterior.

Uno podría terminar acá el problema original. Sin embargo, como el candado que habitualmente usa A no está (ni cerrado ni abierto... directamente no está), entonces, ¿cómo hacer si A tuviera en el armario otros objetos que no quiere que queden expuestos y sin protección?

(Intuyo que a esta altura usted ya debe haber pensado una respuesta, pero igualmente, acá va la mía):

B cierra el armario con su candado. Cuando llegue la mañana siguiente, A no lo puede abrir (porque no tiene la llave de B). Pero lo que sí puede hacer es volver a usar su candado y dejar el armario cerrado con dos candados otra vez.

A la noche, B, usa su llave para abrir su candado y todos los objetos de A quedan asegurados y protegidos únicamente por el candado que habitualmente usa A.

Con esta idea, el problema ahora sí termina a la mañana siguiente. Cuando A llega a la escuela, usa su llave para abrir el candado y termina todo.

Esta idea sirve/sirvió para resolver el problema original: sin tener que entregarle la llave a una tercera persona, A y B pudieron diseñar una estrategia que le permitió a A entregarle el reloj a B tal como se había propuesto y en el camino, no dejar nunca el armario abierto.

Por último: si bien el problema que yo planteé tiene que ver con un reloj, dos candados y un armario, la misma estrategia se puede utilizar para enviar un mensaje: lo codifica A para que no lo pueda leer nadie que no tenga la “llave” (para decodificarlo) y se lo envía a B. Cuando B lo recibe, lo codifica también. Es decir, ahora el mensaje tiene dos codificaciones: la de A y la de B. Ahora B se lo re-envía a A. Cuando A lo recibe, lo decodifica con su “clave”, y se lo vuelve a mandar a B. Esta última versión tiene solamente la codificación de B, y B tiene su propia clave para leerlo. Y listo.[1]

[1] Yo terminé esta historia sobre los candados y escribí (como usted acaba de leer): “Y listo”. Carlos Sarraute, pensó que podía aportar algo más y de hecho sirvió para educarme en algo que no solo no sabía sino que no advertí. Acá va.

Respecto del último párrafo sobre codificación de mensajes.

Llamemos E_A la función para encriptar de A, y D_A su función para desencriptar. Se cumple que D_A(E_A(m)) = m

De la misma manera, E_B y D_B son las funciones para encriptar y desencriptar de B.

Lo que vos proponés es:

- A manda E_A(m)

- B le responde E_B(E_A(m))

- A lo recibe y responde D_A(E_B(E_A(m)))

- Finalmente B calcula D_B(D_A(E_B(E_A(m))))

Para que esto funcione, se tiene que cumplir una condición muy exigente: que se pueda intercambiar el orden de las funciones de encripción, o sea que:

E_B(E_A(m)) = E_A(E_B(m))

Hay sistemas criptográficos que cumplen esa propiedad, pero tienen que haber sido diseñados específicamente con ese objetivo. En la práctica, lo que se usa para mensajes son los sistemas de clave pública y privada.

Compartir: 

Twitter
 

 

Logo de Página/12

© 2000-2019 www.pagina12.com.ar | República Argentina | Política de privacidad | Todos los Derechos Reservados

Sitio desarrollado con software libre GNU/Linux.