Estás haciendo dos preguntas diferentes, lo cual es interesante porque tu pregunta realmente mezcla términos que no van del todo juntos.
Un código es un esquema de reemplazo. Si observa el menú Ver en su navegador, hay un elemento etiquetado como “Codificación de caracteres”, que básicamente dice “¿qué esquema de reemplazo debo usar para decidir qué glifos mostrarle?” Los códigos pueden ser prácticamente cualquier cosa, desde referirse a su jefe como “el imbécil” para evitar hacer explícito de quién está hablando a reemplazar letras, palabras o frases con … bueno, cualquier cosa, como tonos, diagramas, otras letras, otras palabras u otras frases.
Cuando un código es algorítmico y se usa para ocultar información, tienes un Cipher.
- ¿Se puede aplicar la proporción áurea (Fibonacci) con beneficios en informática?
- ¿Cuál es la base matemática necesaria para la programación competitiva?
- ¿Qué pasaría si probara P = NP?
- Si un problema np-hard se resuelve en tiempo polinómico, ¿es eso una prueba de que p = np o este problema se ha clasificado incorrectamente?
- ¿Cuántos dígitos de precisión pueden medir los experimentos físicos (PI)?
Debido a que un cifrado es algorítmico, a menos que haga algo para perder información a propósito en su mensaje de texto sin formato, se puede deshacer. Puede llevar un tiempo extraordinariamente largo, pero no existe un cifrado que no pueda ser descifrado por un atacante suficientemente motivado.
No sé por qué otras personas piensan que una almohadilla única es una solución, aquí. Una clave es una clave, y eventualmente puedes adivinarla. La ventaja de los sistemas tipo almohadilla es que cambia la clave de cada mensaje, lo que aumenta la dificultad de descifrar toda la conversación, pero eso no lo hace imposible, de ninguna manera. (Esta es una evaluación más realista que teórica. Las matemáticas dicen que pueden ser irrompibles, pero …)
Lo que quise decir con “perder información”, por cierto, es evidente por algo como el cifrado de la cerca del carril, que generalmente comienza con la eliminación de espacios, signos de puntuación y mayúsculas de su mensaje original y agrupando los caracteres en lotes de cinco. Puede adivinar el mensaje original por contexto, pero no puede determinar algorítmicamente que sea absolutamente el mensaje original.
Ahora, para volver a la pregunta: no hay cifrado posible que no pueda romperse, dada la motivación suficiente, porque el cifrado es algorítmico y eventualmente siempre encontrará la clave. Los códigos, siendo más generales, no son necesariamente descifrables; Si usted y yo acordamos que me refiero a “comprar papas” cuando le envío un mensaje que dice “muu” (en lugar de comprar leche ), no hay forma de que un lector haga la conexión solo con el mensaje, y no hay un único posible descodificación.