El modelo de seguridad que subyace a la criptografía moderna se basa en varios principios bien establecidos, el más importante de los cuales es el Principio de Kerckhoff. Este principio afirma que la seguridad de un protocolo criptográfico debe basarse únicamente en la confidencialidad de la clave, no en la confidencialidad de los algoritmos utilizados para el cifrado o descifrado.
Por lo tanto, para abordar la cuestión: No, las funciones de cifrado y descifrado no necesitan mantenerse en secreto para que el protocolo criptográfico siga siendo seguro.
Fundamento teórico
El Principio de Kerckhoff, formulado en el siglo XIX, establece: «Un criptosistema debe ser seguro incluso si toda su información, excepto la clave, es de dominio público». Este concepto proporciona una guía fundamental para la práctica criptográfica moderna. El razonamiento es que si la seguridad de un protocolo depende de la oscuridad de los algoritmos, el sistema se vuelve vulnerable una vez que estos se descubren, analizan o se les aplica ingeniería inversa. Por el contrario, si solo la clave debe mantenerse en secreto, el sistema permanece seguro incluso si un adversario conoce todos los detalles del algoritmo.
Implicaciones prácticas
Los protocolos criptográficos modernos, como los utilizados en el Estándar de Cifrado Avanzado (AES), Rivest-Shamir-Adleman (RSA) y la Criptografía de Curva Elíptica (ECC), están diseñados con algoritmos públicos. Estos algoritmos se publican ampliamente, son examinados por la comunidad académica y profesional, y se someten a un análisis riguroso para garantizar la inexistencia de cualquier ataque, siempre que la clave se mantenga secreta y suficientemente robusta.
La publicación abierta de algoritmos criptográficos tiene varios propósitos:
1. Revisión y validación por pares: Los algoritmos públicos se benefician de una extensa revisión por pares, que ayuda a identificar y resolver posibles vulnerabilidades antes de su adopción generalizada.
2. Interoperabilidad: Cuando los algoritmos están disponibles públicamente, diferentes proveedores pueden implementar sistemas compatibles, lo que facilita una comunicación generalizada y segura.
3. Integridad: Los algoritmos abiertos permiten a los usuarios evaluar las propiedades de seguridad de forma independiente, reduciendo el riesgo de fallas ocultas o puertas traseras intencionales.
Contexto histórico
Históricamente, algunos sistemas criptográficos dependían del secreto del algoritmo para su seguridad (la llamada "seguridad por oscuridad"). Un ejemplo bien conocido es la máquina Enigma utilizada por Alemania durante la Segunda Guerra Mundial. Su seguridad dependía no solo de la clave (los ajustes diarios del rotor), sino también del secreto de su funcionamiento interno. Una vez que los criptoanalistas aliados reconstruyeron el mecanismo de la Enigma, la seguridad del sistema se vio gravemente debilitada.
En la actualidad, se desaconseja encarecidamente confiar en algoritmos secretos. Los algoritmos propietarios o no documentados tienen mayor probabilidad de albergar vulnerabilidades no descubiertas y no pueden beneficiarse de la experiencia colectiva de la comunidad criptográfica.
Criptografía simétrica versus asimétrica
Tanto los sistemas criptográficos simétricos (p. ej., AES, DES) como los asimétricos (p. ej., RSA, ECC) se rigen por el principio de que el algoritmo puede ser conocido públicamente sin comprometer la seguridad. En la criptografía simétrica, se utiliza la misma clave tanto para el cifrado como para el descifrado. En la criptografía asimétrica, una clave pública cifra los datos, mientras que una clave privada los descifra. La seguridad en ambos casos se basa en la imposibilidad de obtener la clave (o la clave privada en el caso asimétrico) dado el algoritmo y el texto cifrado.
Por ejemplo, la especificación para AES está publicada como FIPS 197 por el NIST. Cualquiera puede descargar el estándar e implementar el algoritmo. La seguridad de un mensaje cifrado con AES depende completamente de la confidencialidad e imprevisibilidad de la clave, no de la confidencialidad del algoritmo.
Confidencialidad del algoritmo: riesgos y limitaciones
Mantener en secreto las funciones de cifrado o descifrado introduce varios riesgos:
– Falta de transparencia: Los algoritmos cerrados no pueden evaluarse independientemente en términos de seguridad, lo que aumenta el riesgo de vulnerabilidades no detectadas o debilidades intencionales.
– Ingeniería inversa: Con suficiente acceso a datos cifrados y descifrados, un adversario a menudo puede reconstruir el algoritmo, eliminando cualquier ventaja obtenida mediante el secreto.
– Complejidad de la gestión de claves: Si tanto el algoritmo como la clave deben mantenerse en secreto, la logística de distribución y almacenamiento seguros se vuelve significativamente más complicada.
– Obsolescencia e inflexibilidad: Si se ve comprometido un algoritmo secreto, puede ser necesario reemplazar todo el sistema, mientras que el compromiso de claves en un sistema de algoritmo público puede remediarse emitiendo nuevas claves.
Ejemplos
1. AES (Estándar de cifrado avanzado): El algoritmo es público, revisado por pares y ampliamente implementado. La seguridad reside completamente en la confidencialidad de la clave.
2. RSA (Rivest-Shamir-Adleman): El algoritmo de cifrado y descifrado es público. La clave privada debe permanecer secreta; la clave pública y el algoritmo son públicos.
3. Cifrado César: Uno de los cifrados clásicos más simples, cuya función (desplazamiento de letras) es fácilmente detectable. La seguridad dependía de la cantidad de desplazamiento, pero en la práctica, estos cifrados se rompen fácilmente una vez que se conoce la función debido a su diseño débil.
4. Algoritmos propietarios (por ejemplo, Sistema de codificación de contenido de DVD – CSS): CSS intentó mantener el algoritmo en secreto, pero fue sometido a ingeniería inversa. Una vez conocido, sus vulnerabilidades de seguridad se explotaron rápidamente.
Valor Didáctico
Enseñar el principio de que la seguridad criptográfica debe depender únicamente de la clave, en lugar del secreto del algoritmo, proporciona varios beneficios educativos:
– Promueve un diseño robusto: Los estudiantes y profesionales desarrollan sistemas resistentes a la exposición, reduciendo la dependencia de la oscuridad.
– Fomenta la apertura: Apoya el proceso científico, donde la discusión abierta y el análisis fortalecen las afirmaciones de seguridad.
– Desarrolla el pensamiento adversarial: Los estudiantes aprecian que los adversarios a menudo tienen recursos importantes y pueden obtener detalles de los algoritmos, por lo que los sistemas deben construirse en consecuencia.
– Aspectos destacados de la gestión de claves: Una educación en seguridad eficaz centra la atención en la generación, distribución y almacenamiento adecuados de claves, que son los puntos débiles reales de muchos sistemas del mundo real.
Contraejemplos y aclaraciones
Existen situaciones en las que se utilizan algoritmos propietarios o secretos, a menudo en aplicaciones con criptografía integrada en hardware o en entornos restringidos con limitaciones de licencia o normativas. Sin embargo, estos sistemas suelen considerarse menos seguros que los que utilizan algoritmos públicos bien comprobados. La seguridad por oscuridad puede ofrecer una ventaja temporal, pero no puede sustituir a un diseño criptográfico sólido.
En algunos contextos militares o de inteligencia, se pueden utilizar algoritmos propietarios para retrasar a los adversarios, pero generalmente se trata de una capa adicional en lugar de la base de la seguridad.
El papel del secreto de los algoritmos en la seguridad
Si bien la práctica predeterminada y recomendada es asumir que los algoritmos se conocerán, puede haber razones operativas para mantener ciertos detalles privados por un tiempo limitado (por ejemplo, nuevas construcciones criptográficas aún no estandarizadas). Sin embargo, confiar en la confidencialidad a largo plazo de los algoritmos es contrario a las mejores prácticas en criptografía.
Al enseñar o diseñar sistemas criptográficos, es mejor asumir que los adversarios tienen pleno conocimiento de los procesos de cifrado y descifrado. Esta mentalidad garantiza que solo la confidencialidad de la clave se interponga entre un sistema seguro y una vulnerabilidad, en consonancia con el Principio de Kerckhoff y las nociones modernas de seguridad.
La seguridad criptográfica no debería depender, y en la práctica no depende, de la confidencialidad de las funciones de cifrado y descifrado. La solidez de un protocolo criptográfico se mide por su capacidad para resistir ataques, incluso cuando los algoritmos están completamente divulgados y disponibles para su análisis por cualquier persona. Al adherirse a este principio, los sistemas criptográficos alcanzan mayores niveles de seguridad, confianza y robustez.
Otras preguntas y respuestas recientes sobre Fundamentos de la criptografía clásica de EITC/IS/CCF:
- ¿Se introdujo la criptografía de clave pública para su uso en el cifrado?
- ¿El conjunto de todas las claves posibles de un protocolo criptográfico particular se denomina espacio de claves en criptografía?
- En un cifrado por desplazamiento, ¿las letras del final del alfabeto se reemplazan con letras del principio del alfabeto según la aritmética modular?
- ¿Qué debe incluir un cifrado por bloques según Shannon?
- ¿Se introdujo el protocolo DES para mejorar la seguridad de los criptosistemas AES?
- ¿La seguridad de los cifrados por bloques depende de la combinación de operaciones de confusión y difusión muchas veces?
- ¿Se puede utilizar el criptoanálisis para comunicarse de forma segura a través de un canal de comunicación inseguro?
- ¿Internet, GSM y las redes inalámbricas pertenecen a los canales de comunicación inseguros?
- ¿Es efectiva una búsqueda de clave exhaustiva contra los cifrados de sustitución?
- ¿La subcapa AES MixColumn incluye una transformación no lineal que pueda representarse mediante una multiplicación de matrices de 4×4?
Vea más preguntas y respuestas en Fundamentos de criptografía clásica EITC/IS/CCF

