🔐

CRYPTANALYSIS LAB

TALLER DE CRIPTOANÁLISIS CLÁSICO — MÓDULO I
SISTEMA ACTIVO
César · Afín · Vigenère
LOCAL v4.0 ✓
⚡ ANÁLISIS AUTOMÁTICO DE CRIPTOGRAMA
📥 ENTRADA DE CRIPTOGRAMA
📊 ÍNDICE DE COINCIDENCIA
IC CALCULADO
0.0385
UNIFORME (POLY)
0.0667
ESPAÑOL (MONO)
🔍 RESULTADO DEL ANÁLISIS
TIPO DE CIFRADO DETECTADO:
MÉTODO DE ATAQUE:
CLAVE ENCONTRADA:
TEXTO DESCIFRADO:
📈 TABLA DE FRECUENCIAS

Ingresa un criptograma y analiza para ver la tabla de frecuencias.

I. CIFRADO CÉSAR
ℹ CONCEPTO
El Cifrado César desplaza cada letra del alfabeto un número fijo k posiciones. C = (P + k) mod 26  |  P = (C - k + 26) mod 26 Espacio de claves: 26. IC cercano a 0.065-0.07
🔒 CIFRAR CON CÉSAR
TEXTO CIFRADO:
🔓 DESCIFRAR / FUERZA BRUTA
CLAVE MANUAL:
RESULTADO:
⚡ TABLA FUERZA BRUTA — TODAS LAS CLAVES

Ejecuta "Fuerza Bruta" para ver todos los desplazamientos posibles.

📊 ANÁLISIS DE FRECUENCIAS
II. CIFRADO AFÍN
ℹ CONCEPTO
El Cifrado Afín usa dos parámetros: a (debe ser coprimo con 26) y b (desplazamiento). C = (a·P + b) mod 26  |  P = a⁻¹·(C - b) mod 26 Valores válidos de a: 1,3,5,7,9,11,15,17,19,21,23,25  (mcd(a,26)=1)
🔒 CIFRAR CON AFÍN
TEXTO CIFRADO:
🔓 DESCIFRAR AFÍN
RESULTADO:
🧮 CRIPTOANÁLISIS AFÍN — ANÁLISIS MATEMÁTICO
Si sabemos que la letra más frecuente del criptograma corresponde a E (4) en español, y la segunda más frecuente a A (0), podemos resolver el sistema de ecuaciones: C₁ = (a·4 + b) mod 26    C₂ = (a·0 + b) mod 26

Los resultados del criptoanálisis aparecerán aquí...

⚡ TABLA FUERZA BRUTA — AFÍN (TODAS LAS CLAVES VÁLIDAS)

Ejecuta "Fuerza Bruta" para ver todas las combinaciones válidas de (a,b).

III. CIFRADO VIGENÈRE
ℹ CONCEPTO
Vigenère usa una clave de longitud L que se repite sobre el texto plano. Cᵢ = (Pᵢ + Kᵢ) mod 26  |  Pᵢ = (Cᵢ - Kᵢ + 26) mod 26  |  Kᵢ = K[i mod L] El IC de un texto Vigenère es bajo (~0.04–0.05). Se usa el Test de Kasiski para determinar L.
🔒 CIFRAR CON VIGENÈRE
TEXTO CIFRADO:
🔓 DESCIFRAR VIGENÈRE
RESULTADO:
🔍 TEST DE KASISKI — DETERMINAR LONGITUD DE CLAVE
El test de Kasiski busca secuencias repetidas en el criptograma. Las distancias entre ellas suelen ser múltiplos de la longitud de la clave L.

Los resultados del test de Kasiski aparecerán aquí...

🔬 ANÁLISIS DE SUBCONJUNTOS (IC POR POSICIÓN DE CLAVE)

Ejecuta el criptoanálisis completo para ver el IC por subconjunto.

CLAVE ENCONTRADA:
TEXTO DESCIFRADO:
📖 BASE TEÓRICA — CRIPTOANÁLISIS CLÁSICO

1. ÍNDICE DE COINCIDENCIA (IC)

El Índice de Coincidencia mide la probabilidad de que dos letras escogidas al azar de un texto sean iguales. Fue introducido por William Friedman en 1922.

IC = Σ nᵢ(nᵢ-1) / N(N-1)  |  donde nᵢ = frecuencia de cada letra, N = longitud total

Interpretación:

  • IC ≈ 0.065–0.07 Cifrado monoalfabético (César o Afín): el IC se parece al del español natural.
  • IC ≈ 0.04–0.055 Cifrado polialfabético (Vigenère): distribución más uniforme.
  • IC ≈ 0.038 Distribución completamente uniforme (ideal teórico de Vigenère con clave muy larga).
⚠ IC en español sin cifrar: aproximadamente 0.0718

2. ANÁLISIS DE FRECUENCIAS

En cualquier idioma, las letras no se distribuyen uniformemente. En español, las más frecuentes son:

E (12.5%) · A (11.6%) · O (8.7%) · S (7.2%) · N (6.7%) · R (6.1%) · I (5.9%) · L (5.2%)

En un cifrado monoalfabético, la distribución relativa de frecuencias se preserva (solo se desplazan o transforman las letras). Esto permite hacer correspondencias entre las letras más frecuentes del criptograma y las esperadas del idioma.

3. IDENTIFICACIÓN DEL TIPO DE CIFRADO

Paso 1 — Calcular IC:

  • Si IC > 0.060 → Cifrado monoalfabético → César o Afín
  • Si IC < 0.060 → Cifrado polialfabético → Vigenère

Paso 2 — Para distinguir César vs Afín:

Ambos tienen IC similar. La diferencia está en el ataque: en César con fuerza bruta (26 claves) se puede ver cuál produce texto legible. Para Afín, se hacen 312 combinaciones posibles (12 valores de a × 26 valores de b).

Paso 3 — Para Vigenère, usar Kasiski:

Buscar trigramas o ngramas repetidos, calcular distancias, encontrar el MCD de las distancias → esa es la longitud probable de la clave.

4. ATAQUE POR FUERZA BRUTA — CÉSAR

Dado que el espacio de claves es solo 26, se prueban todos los desplazamientos posibles del 0 al 25. Para cada desplazamiento se calcula el IC del texto descifrado y se compara con el IC del español (0.0718). El desplazamiento con IC más cercano al español corresponde muy probablemente a la clave.

Clave k = argmax IC(Decrypt(C, k)) para k ∈ {0,...,25}

5. ANÁLISIS MATEMÁTICO — AFÍN

Si conocemos que las dos letras más frecuentes del criptograma son C₁ y C₂, y sabemos que corresponden a 'E' (p=4) y 'A' (p=0) del español, podemos plantear:

C₁ ≡ 4a + b (mod 26)   C₂ ≡ 0a + b (mod 26)

Restando: C₁ - C₂ ≡ 4a (mod 26), por lo que a = (C₁-C₂) · inv(4) mod 26

Y b = C₂ mod 26

⚠ El inverso modular de 4 (mod 26) = 20, ya que 4·20 = 80 ≡ 2 (mod 26). Nota: mcd(4,26)=2≠1, así que se prueban combinaciones de las 3 letras más frecuentes.

6. TEST DE KASISKI — VIGENÈRE

Procedimiento:

  1. Buscar todos los trigramas (o ngramas) que aparezcan más de una vez en el criptograma.
  2. Para cada repetición, calcular la distancia entre las apariciones.
  3. El MCD de todas estas distancias suele ser (o un múltiplo de) la longitud de la clave L.
  4. Con L conocido, dividir el criptograma en L subconjuntos: las posiciones 0, L, 2L,... forman el subconjunto 1; las posiciones 1, L+1, 2L+1,... el subconjunto 2; etc.
  5. Cada subconjunto es un César puro. Atacar cada uno por frecuencias o fuerza bruta.
  6. La letra con mayor frecuencia en cada subconjunto corresponde a 'E' (en español), por lo que la clave = (FreqMax - índice('E') + 26) mod 26.
Kᵢ = (LetraMásFrecuente[i] - 4 + 26) mod 26