Notas sobre Criptografía Clásica

Fundamentos de los Sistemas de Cifrado

Las bases de la criptografía moderna se asientan en principios establecidos por figuras históricas. Bacon, en el siglo XVI, definió que un sistema de cifrado debe ser sencillo de operar para los usuarios legítimos, pero imposible de descifrar para intrusos que desconozcan la función de descifrado DkD_k. Además, el criptograma debe mantener una apariencia inocente. En el siglo XIX, Kerckhoffs complementó estos requisitos con principios fundamentales: la seguridad del sistema debe residir exclusivamente en el secreto de la clave y no en el algoritmo (el cual debe poder caer en manos del enemigo sin comprometer la seguridad), las claves deben ser fáciles de recordar y el equipo de cifrado debe ser portable y de fácil uso. Actualmente, la fortaleza de un sistema se mide por su imposibilidad computacional, donde el tiempo necesario para romper la cifra excede cualquier valor razonable.

Evolución Histórica y Clasificación

La criptografía clásica se extiende desde la antigüedad hasta mediados del siglo XX. El desarrollo histórico se divide por tres hitos principales: la publicación de la Teoría de la Información de Claude Shannon en 1948, el estándar DES en 1974 y el desarrollo del cifrado de clave pública por Whitfield Diffie y Martin Hellman en 1976. Los sistemas clásicos se basan principalmente en dos herramientas: técnicas de sustitución, donde los caracteres se reemplazan por otros, y técnicas de transposición o permutación, donde los caracteres originales se redistribuyen siguiendo reglas específicas.

Cifradores de Transposición y Sustitución Monoalfabética

La Escítala, utilizada por los lacedemonios en el siglo V a.d.C., es el primer cifrador de transposición conocido; la clave reside en el diámetro del bastón donde se enrolla la cinta. En cuanto a la sustitución, el sistema de Polybios (siglo II a.d.C.) utiliza una cuadrícula para convertir letras en coordenadas numéricas. El cifrador de César (siglo I a.d.C.) aplica un desplazamiento fijo de tres posiciones en el alfabeto, utilizando aritmética modular nn. El cifrado Afín generaliza este concepto mediante la función Ci=(aimesMi+b)(modn)C_i = (a imes M_i + b) \pmod n, donde el factor aa debe ser primo relativo con el cuerpo nn para que exista el inverso a1a^{-1}. Ambos sistemas son vulnerables al análisis estadístico de frecuencias del lenguaje.

El Cifrador de Vigenère y el Método de Kasiski

El cifrador de Vigenère es un sistema polialfabético que utiliza una clave KK de longitud LL para sumar cada carácter del mensaje mediante la fórmula Ci=(Mi+Ki)(mod27)C_i = (M_i + K_i) \pmod{27}. Aunque difumina la redundancia del lenguaje, no es seguro frente a técnicas de criptoanálisis. El método de Kasiski permite romper la cifra buscando repeticiones en el criptograma para determinar la longitud de la clave mediante el máximo común divisor de las distancias. Complementariamente, el Índice de Coincidencia (ICIC) ayuda a identificar si un cifrado es monoalfabético (IC0.072IC \approx 0.072 para el castellano) o polialfabético (valor significativamente menor).

Cifrados Poligrámicos: Playfair y Hill

Los sistemas poligrámicos cifran bloques de caracteres para dificultar el análisis estadístico. El cifrador de Playfair emplea una matriz de 5×55 \times 5 letras para cifrar digramas basándose en su posición relativa (fila, columna o diagonal). El cifrador de Hill, propuesto en 1929 por Lester Hill, utiliza una matriz clave KK para transformar NN-gramas mediante la operación C=KimesM(modn)C = K imes M \pmod n. Para descifrar, se requiere que la matriz clave tenga inversa K1K^{-1}, lo que implica que su determinante det(K)\det(K) no sea cero ni comparta factores con nn. A pesar de su gran espacio de claves, el sistema de Hill es vulnerable a ataques de texto claro conocido mediante la eliminación de Gauss Jordan debido a su naturaleza lineal.

El Cifrador de Vernam

Propuesto en 1917 por Gilbert Vernam, es el único sistema matemáticamente seguro e imposible de criptoanalizar. Se basa en el concepto de "one-time pad" (clave de un solo uso), donde la operación de cifra es la función XOR (\oplus) entre el mensaje y una secuencia binaria aleatoria SS. Para garantizar la seguridad perfecta, la clave debe ser tan larga como el mensaje, ser totalmente aleatoria y utilizarse una sola vez, lo que anula cualquier posibilidad de ataque por correlación de bits o estadísticas del lenguaje.