¿Se comprime primero y luego se cifra, o se cifra y luego se comprime?
Respuesta breve
Comprime primero y luego cifra. Un buen cifrado produce una salida estadísticamente indistinguible de lo aleatorio, así que el texto cifrado no tiene patrones que comprimir: comprimir después es inútil. La advertencia importante: comprimir juntos datos secretos y datos controlados por el atacante antes de cifrar puede filtrar información a través de la longitud del texto cifrado, que es exactamente lo que hacen los ataques CRIME y BREACH.
La respuesta refleja «comprimir luego cifrar» es correcta, pero el entrevistador realmente sondea si sabes por qué y si conoces la excepción peligrosa. Decir las palabras correctas por las razones equivocadas es lo que esta pregunta expone.
El razonamiento del tamaño
La compresión funciona localizando y eliminando redundancia y patrones. Un cifrado bien diseñado está específicamente concebido para que su salida parezca ruido aleatorio uniforme: esencialmente no queda redundancia que explotar. Así que si cifras primero, el texto cifrado es incompresible y has desperdiciado tu única oportunidad de reducir los datos. Comprime primero, mientras la estructura todavía existe, y luego cifra el resultado más pequeño. Los distractores que afirman «no hay diferencia» o «el cifrado repara la aleatoriedad» lo tienen al revés.
La excepción peligrosa
El orden no es una victoria gratis. Los ataques CRIME y BREACH muestran que cuando comprimes una mezcla de datos secretos y datos influidos por el atacante y luego la cifras, la longitud del texto cifrado resultante filtra información. Si la conjetura del atacante coincide con el secreto, la compresión reduce la salida, y el tamaño observable confirma la conjetura byte a byte. Por eso se eliminó en la práctica la compresión a nivel de TLS (CRIME) y por eso comprimir respuestas HTTP de páginas que contienen secretos es arriesgado (BREACH).
La regla práctica
Comprime antes de cifrar por el tamaño, pero nunca comprimas juntos datos controlados por el atacante y datos secretos en la misma unidad cifrada. En caso de duda para respuestas sensibles a la seguridad, desactiva la compresión.
Qué buscan los entrevistadores
El orden correcto con la justificación por la entropía, y la mención espontánea de CRIME/BREACH como la trampa. Esa combinación señala comprensión real, no un eslogan memorizado.
Posibles preguntas de seguimiento
- ¿Por qué los datos correctamente cifrados no se comprimen?
- ¿Cómo explotan CRIME y BREACH el esquema comprimir-luego-cifrar?
- ¿Cuándo elegirías desactivar la compresión por completo?