Interruptor de cifrado de sustitución
Esta calculadora en línea intenta decodificar el cifrado de sustitución sin conocer la clave. Utiliza un algoritmo genético sobre la función de adecuación del texto para romper el texto codificado.
La calculadora siguiente intenta decodificar automáticamente el texto cifrado con el cifrado de sustitución simple sin conocer la clave. La lógica de la calculadora se explica debajo de la misma.
En criptografía, un cifrado de sustitución es un método de cifrado mediante el cual las unidades de texto sin formato se reemplazan con texto cifrado, de acuerdo con un sistema fijo; las "unidades" pueden ser letras simples (las más comunes), pares de letras, trillizos de letras, mezclas de las anteriores, etc. El receptor descifra el texto realizando la sustitución inversa. La sustitución de letras individuales por separado - sustitución simple - puede demostrarse escribiendo el alfabeto en algún orden para representar la sustitución. Es una clave de cifrado, y también se llama alfabeto de sustitución. 1
Para el cifrado de sustitución simple, el conjunto de todas las claves posibles es el conjunto de todas las permutaciones posibles. Por lo tanto, para el alfabeto inglés, ¡el número de teclas es 26! (factorial de 26), que se trata de . Debido a esto, si desea descifrar el texto sin conocer la clave, el enfoque de la fuerza bruta está fuera de discusión.
Sin embargo, el cifrado de sustitución simple se considera un cifrado débil, porque es vulnerable al criptoanálisis. En primer lugar, la sustitución no cambia las frecuencias de las letras, por lo tanto, si tiene una cantidad decente de texto cifrado y conoce el idioma en que se escribió, puede probar el análisis de frecuencia. Por ejemplo, la letra más común en inglés es E, por lo tanto, la letra más común en el texto encriptado es probable que sea la sustitución E. El analista también busca frecuencias de bigramas y trigramas, porque algunas frecuencias de unigrama están demasiado cerca una de la otra como para confiar en ellas. El uso del analista de frecuencias puede crear claves de prueba y probarlas para ver si revelan algunas palabras y fases en el texto cifrado.
Pero este enfoque manual lleva mucho tiempo, por lo que el objetivo de la solución automatizada es excluir a los humanos del proceso de romper el cifrado. Y es posible debido a otra vulnerabilidad de cifrado de sustitución simple, conocida como Utilidad de solución parcial.
En otras palabras, si hay muchos pares de claves en el espacio de claves donde el descifrado del texto cifrado por la clave más similar a la clave correcta se asemeja más al texto simple que al descifrado del texto cifrado por la otra clave, el cifrado tiene utilidad de soluciones parciales... Si existe una correlación entre el grado en que una clave se asemeja a la clave correcta y el grado en que el descifrado de esa clave del texto cifrado se asemeja al texto sin formato, debería ser posible buscar el espacio clave de manera eficiente descartando rápidamente las claves que son "peores" que cualquier clave que sea la coincidencia más cercana en cualquier momento, escalando cada vez más cerca de la clave óptima sin saberlo inicialmente. Más específicamente, estos espacios de claves se pueden buscar a través de algoritmos de optimización estocásticos. 2
La parte difícil aquí es cómo puede medir si una clave es "peor" que otra. Para abordar esto, necesitamos una adecuación del texto que nos brinde algún tipo de puntuación sobre cómo el texto dado se parece al texto típico en inglés. Hay diferentes enfoques, y he intentado esto y eso, pero uno que funcionó para mí se describe aquí: Adecuación del texto (versión 3). En resumen, utiliza la suma de las probabilidades de registro de los cuadrigramas y compara la suma con la suma del texto en inglés "normal" (creado como la suma de las probabilidades de registro de los cuadrigramas en inglés más frecuentes). Aquí me gustaría agradecer a Jens Guballa (sitio), autor de otro solucionador de sustitución, quien amablemente me da la pista de que la función de adecuación del texto debe "normalizarse".
La implementación a continuación utiliza un algoritmo genético para buscar la clave correcta. Si falla, puede intentar repetir un par de veces (cada vez que comienza desde un conjunto de claves aleatorias como generación inicial) o modificar la configuración, por ejemplo, aumentar el número de generaciones. Simplemente haga clic en Detalles para revelar configuraciones adicionales. En este modo, la calculadora también muestra la mejor clave en cada generación, lo cual es bastante curioso de ver.
Si ve que la clave encontrada está cerca de la correcta, pero desea modificar un par de letras, puede utilizar la Herramienta de Cifrado de Sustitución para probar manualmente las claves.
Comentarios