Quebrando el Cifrado por Sustitución
Recordemos por un instante que, en el cifrado por sustitución, el orden de las letras no ha cambiado pero si han sido sustituidas por otras letras (o símbolos o números). Aunque la sustitución y la transposición se pueden mezclarse esto hace que el proceso de cifrado y descifrado sea mucho mas complejo y por ende, propenso a errores. La complejidad y los errores pueden llegar a ser fatales en una comunicación sensible a los detalles.
Hasta el momento hemos empleado alegremente dos conceptos distintos codificar y cifrar. Técnicamente, codificar significa simplemente sustituir palabras (o frases) completas. Mientras que el cifrado opera a nivel de carácter o símbolo. De modo que codificar o decodificar, cifrar o descifrar aplican a ideas distintas. No obstante lo anterior, se suelen emplear como sinónimos. Volveremos a este punto para ilustrarlo mas tarde.
Para poder «quebrar» o descifrar un cifrado por sustitución es conveniente conocer datos relevantes del idioma en el cual esta escrito el texto plano. Tomemos como ejemplo la lengua inglesa.
Algunos datos:
- La letra mas usada es la E seguida en orden de frecuencia de aparición por T,A,O,N
- La letra mas común al final de una palabra también es la E
- Una letra aislada (si se cuenta con espacios en blanco) suele corresponder a A,I y O en alguna ocasion
- Los digramas (pares de letras) mas frecuentes son: OF,TO, IN
- Los trigramas mas frecuentes son THE, AND
- La Q siempre es seguida por una U
- La constante mas seguida por una vocal es N
- Las letras dobles mas comunes son, en orden de frecuencia: LL, EE, SS, OO, TT, PP, y CC
- El cuatrigrama mas frecuente es THAT
Utilicemos los datos para descifrar un un criptograma propuesto por el matemático y escritor americano Martin Gardner.
Como el criptograma es demasiado corto, no podemos confiar en que la letra con mayor frecuencia sea la E. Si podemos comenzar a realizar hipótesis sobre, por ejemplo el cuatrigrama ZSGZ que bien podría aplicar al item 9 y corresponderse con THAT.
El trigrama ZSO nos quedo como Z=T, S=H y podemos suponer, segun el item 5, que O=E
ZU es un digrama que ademas, se repite en el texto cifrado. Podemos aplicar el item 4 y suponer que es Z=T, U=O.
A esta altura, es evidente cual es el texto original.
Cuando el texto cifrado es lo suficientemente grande, es posible emplear el análisis de frecuencias para quebrar el mensaje. Dicho análisis es sencillo, pero aun requiere de enorme paciencia, disciplina y conocer atajos como los que se mostraron aquí. Mas sobre esto en otro post.