Análisis de frecuencia
Un método criptoanalítico que compara frecuencias de símbolos y grupos de letras con patrones lingüísticos para interpretar cifrados clásicos.
Definición
El análisis de frecuencia examina la aparición de letras, símbolos, palabras o grupos como bigramas y trigramas en un texto. Las lenguas naturales presentan patrones estadísticos recurrentes: en español, E, A y O suelen estar entre las letras más frecuentes.
Muchos cifrados clásicos cambian los símbolos sin borrar por completo esos patrones. El criptoanalista compara la distribución observada en el texto cifrado con un perfil del idioma y propone posibles letras y secuencias del texto original. El resultado son hipótesis fundamentadas, no un descifrado automático.
Cómo funciona
Primero se normaliza el texto y se cuentan los símbolos individuales. Después se prueban varias correspondencias entre los símbolos frecuentes del texto cifrado y las letras comunes del idioma supuesto. Los bigramas, trigramas, palabras repetidas y formas de las palabras sirven para confirmar o descartar cada posibilidad.
En el cifrado César, todo el perfil de frecuencias se desplaza la misma cantidad; en una sustitución monoalfabética, se permuta. Para un cifrado polialfabético con clave repetida, como Vigenère, primero se estima el período mediante el índice de coincidencia o el examen de Kasiski y luego se analizan por separado las columnas correspondientes.
Ejemplo práctico
Supongamos que un símbolo domina un texto cifrado monoalfabético de longitud suficiente. Podría representar E, pero también A, O, un espacio o una letra favorecida por el tema. El criptoanalista prueba varias opciones y busca más indicios: combinaciones habituales, palabras repetidas verosímiles y fragmentos legibles. Una correspondencia resulta convincente solo cuando explica muchas observaciones a la vez.
Limitaciones
Las frecuencias son poco fiables en textos muy cortos. Los nombres, el vocabulario especializado, las convenciones ortográficas y un género poco habitual también pueden deformar el perfil lingüístico. La sustitución homofónica, los sistemas polialfabéticos, la compresión y el relleno intencionado debilitan aún más los patrones visibles.
El cifrado moderno está diseñado para ocultar estas regularidades. En una libreta de un solo uso correctamente empleada, una clave aleatoria e independiente hace que el texto cifrado sea estadísticamente independiente del original. Un texto cifrado concreto no tiene por qué mostrar una distribución perfectamente plana; lo importante es que sus frecuencias no revelan el mensaje.
Es especialmente útil contra César, el cifrado afín y otras sustituciones monoalfabéticas. También ayuda a atacar Vigenère con clave repetida si se determina antes el período y se dispone de suficiente texto cifrado.
No existe un mínimo universal. Las muestras largas producen distribuciones de letras y n-gramas más estables; un mensaje corto puede admitir varias correspondencias igual de plausibles. El tipo de texto y el diseño del cifrado importan tanto como la longitud.
Si la clave es realmente aleatoria, tan larga como el mensaje, secreta y usada una sola vez, cualquier texto original de igual longitud es compatible con el texto cifrado observado. Sus estadísticas no permiten saber cuál se envió.
No cuando un algoritmo moderno como AES está bien implementado y utilizado. Estos algoritmos difunden los patrones del texto original por todo el texto cifrado; los ataques se dirigen a claves, protocolos, implementaciones o usos incorrectos.