El Comite para la Seguridad del Estado, también conocido como la K.G.B. opero desde 1954 hasta su colapso en 1991 siendo la agencia de seguridad de la Unión Soviética. Los espías de la KGB debían intercambiar mensajes tanto con la agencia como entre si. ¿Que mecanismo empleaban los espías?
En criptografia, la libreta de un solo uso (One-time pad) es una técnica que, empleada correctamente es indescifrable. Esto lo demostró matemáticamente Claude Shannon. En el futuro hemos de ocuparnos de este Ingeniero.
Suponga que estamos en 1960 y Ud. es un espía de la K.G.B. de nombre clave Nikita y desea enviar un mensaje a otro espía Natasha. Para que esto sea posible hay algunos arreglos que debían de hacerse de ante mano. Una libreta de claves era confeccionada y repartida a los espías. La libreta contiene secuencias de números (o letras) aleatorios. Que hoja de la libreta emplear para cifrar un mensaje o descifrarlo debía también ser arreglado con antelación, por ejemplo, emplear el numero de hoja correspondiente al día del mes.
De modo que, para ejemplificar el uso de la técnica, supongamos que Nikita desea enviar el texto Hello a Natasha. Es común asignar valores numéricos a las letras, de modo que, por ejemplo, se puede numerar el alfabeto de modo de manejar números en lugar de letras como se muestra a continuación.
El One-Time Pad consiste en combinar el mensaje y la clave (tomada del cuaderno con el mismo largo del mensaje) y realizar la adición (suma) de los valores de las letras. Esta suma tiene una particularidad, se hace mediante la aritmética de modulo.
El mensaje a enviar es HELLO y el cuaderno indica como primeras letras XMLCKL. Si el alfabeto esta numerado (como se ve en la imagen anterior) es fácil asignarle una valor numérico tanto al mensaje, como a la clave y sumarlos. Sumarlos en modulo 26 es como tener un reloj de pulsera con 26 horas. Si la suma pasa de 26 se reinicia la cuenta.
Ud emplea la aritmética de modulo todos los días con su reloj de 12 horas. Si son las 9 de la mañana y tiene una reunión en 8 horas, indicara que tiene que estar a las 5. Esto es, 9+8=5. Esta extravagancia se anota en matemáticas de la siguiente manera 9+8=5 mod 12. Por lo anterior, si el reloj tuviera 26 horas 7+23=4 mod 26.
Con los valores resultantes de la suma (4,16,13,21,25) se busca su correspondiente en el alfabeto numerado (primer figura) y se obtiene el mensaje cifrado.
De modo que HELLO se cifra como EQNYZ cuando se emplea esta técnica. La imagen final ilustra el proceso.
Aunque lo anterior le parezca escolar, es un poderoso mecanismo de cifrado por sustitución.
Puede ver un resumen de post relacionados con este aquí.