La cifra VIC fue una cifra soviética empleada por el espía Reyno Häyhänen, nombre en clave, VICTOR.
Se supone que se trata de la más compleja cifra que puede ser empleada a mano que jamás se ha visto.[1] Es tan compleja que, en su análisis inicial, la Agencia de Seguridad Nacional no descartó que no se tratara de una cifra manual. En la práctica, su seguridad fue tan alta que los mensajes descubiertos en 1953 no fueron descifrados hasta la deserción del espía en 1957. En esa época, los soviéticos se estaban pasando a los cifrados empleando cuadernillos de uso único que son teóricamente indescifrables, no obstante, su reutilización permitió a la NSA descifrar algunos de estos mensajes mientras que la cifra VIC permaneció segura.
La cifra VIC derivaba su fuerza de la combinación de diversos elementos entre los que se encontraban: un tablero demediado, un generador de números pseudoaleatorios y una transposición interrumpida doble.[2][3]
Funcionamiento
El tablero demediado
El tablero demediado (en inglés, straddling checkerboard, en francés chiffre mônome binôme) es una forma de obtener una sustitución del texto claro del mensaje en dígitos obteniendo al mismo tiempo, un fraccionamiento y una relativa compresión de los datos.
El que se empleaba era algo como éste:
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | |
E | T | A | O | N | R | I | S | |||
2 | B | C | D | F | G | H | J | K | L | M |
6 | P | Q | / | U | V | W | X | Y | Z | . |
La primera fila está formada por dígitos simples que pueden ser presentados en orden, o no. La segunda fila suele llenarse con las letras más comunes (en este caso del idioma inglés), dejando dos huecos. No tiene ningún número asignado. Las dos filas restantes, con números asignados que se corresponden con las columnas dejadas en blanco en la segunda fila, se emplean para rellenar con las letras siguientes. Ya que el inglés, idioma en que operaba esta cifra, tiene solamente 26 letras, se completaban los dos huecos con dos signos convenidos. Estas tres filas pueden presentarse ordenadas o desordenadas, pero tanto emisor como receptor deben tener el mismo tablero.
Para convertir un texto empleando este tablero, se sustituyen las letras por las coordenadas insertando, en primer lugar, la referencia a la fila y luego a la columna. Empleando el texto en claro: Poderoso caballero es don Dinero, título del famoso poema de Quevedo, nos daría un texto como el siguiente:
P O D E R O S O C A B A L L E R O E S D O N D I N E R O 60 4 22 0 7 4 9 4 21 3 20 3 28 28 0 7 4 0 9 22 4 5 22 8 5 0 7 4
Mientras que con un cuadrado de Polibio cada letra es sustituida por una pareja de dígitos, con este sistema algunas letras son transcritas por un único dígito. A la hora de descifrarlo, la aparición de los números que, en la primera fila, carecen de correspondencia revela que se trata de las sucesivas filas, solo haría falta encontrar la columna correspondiente con el segundo dígito.
Para continuar los dividiremos en bloques de 5 por comodidad y añadiremos 4 ceros al final para que el número sea exacto.
60422 07494 21320 32828 07409 22452 28507 40000
La transposición interrumpida doble
Para generar la transposición interrumpida, que se ejecutará en la segunda fase de la transposición, ya que la primera es regular, se emplea el número obtenido con el generador de números pseudoaleatorios para generar una serie de áreas triangulares. Como en este caso tenemos un mensaje muy corto, emplearemos solamente los cinco últimos dígitos obtenidos por el generador para la demostración.
8 9 9 7 3 reordenando las columnas sale 3 7 8 9 9 3 4 5 2 1 1 2 3 4 5 --------- --------- 3 4 5 9 9 9 9 3 4 5 7 1 5 6 1 1 6 7 1 5 1 6 2 0 9 9 0 1 6 2 7 7 3 5 9 9 5 7 7 3 5 4 8 1 7 7 1 5 4 8 6 6 3 1 2 2 1 6 6 3 9 6 9 2 7 7 2 9 6 9 4 8 1 7 7 7 7 4 8 1
Lo que nos da un mensaje: 91997 27796 05112 73717 56944 16746 68552 38391
En la segunda fase de transposición, empleando los mismos números como guía, generamos un área triangular mediante el procedimiento de dejar vacío, primero, un hueco debajo del número más pequeño del grupo e irlo reduciendo progresivamente de tal modo que, en la siguiente línea, hay una columna rellenada más. Cuando se terminen los números, se proseguirá con el siguiente número más pequeño.
8 9 9 7 3 --------- 9 1 9 9
De momento el lugar bajo la columna marcada con el 3 se deja vacío, como es el último dígito, se prosigue con el siguiente número más bajo, el 7.
8 9 9 7 3 --------- 9 1 9 9 7 2 7 7 9 6 0 5 1 1 2 7
Como se ha terminado, proseguimos con la secuencia por el siguiente número más bajo, dejaremos vacía toda la línea y proseguiremos hasta alcanzar las ocho líneas del mensaje.
8 9 9 7 3 --------- 9 1 9 9 7 2 7 7 9 6 0 5 1 1 2 7 3 7 1 7 5 6
Ahora rellenaremos los huecos con las restantes. Para más fácil comprensión las marcaremos en negrita.
8 9 9 7 3 --------- 9 1 9 9 9 7 2 7 4 4 7 9 6 0 1 5 1 1 2 7 6 7 4 6 6 3 8 5 5 2 7 1 3 8 3 7 5 6 9 1
Con lo que tenemos el mensaje completo, una vez reordenadas las columnas: 94176 23194 02658 99775 63771 29178 15976 14536.[4]
El generador de números pseudoaleatorios
Referencias
- ↑ David Kahn. "Number One From Moscow". 1993.
- ↑ http://www.vectorsite.net/ttcode_03.html#m4
- ↑ http://www.ugr.es/~aquiran/cripto/enigma/boletin_enigma_38.htm
- ↑ http://everything2.com/user/raincomplex/writeups/VIC+cipher