stringtranslate.com

Ejecutando cifrado de clave

En criptografía clásica , el cifrado de clave en ejecución es un tipo de cifrado de sustitución polialfabética en el que se utiliza un texto, normalmente de un libro, para proporcionar un flujo de claves muy largo . La primera descripción de un cifrado de este tipo la dio en 1892 el matemático francés Arthur Joseph Hermann (más conocido por fundar Éditions Hermann ). Por lo general, el libro que se utilizará se acordará de antemano, mientras que el pasaje que se utilizará se elegirá al azar para cada mensaje y se indicará en secreto en algún lugar del mensaje.

Ejemplo

El texto utilizado es The C Programming Language (edición de 1978) y la tabula recta es el cuadro. El texto claro es "Huye de inmediato".

Página 63, la línea 1 está seleccionada como clave de ejecución:

Los errores pueden ocurrir en varios lugares. Una etiqueta tiene...

Luego, la clave de ejecución se escribe debajo del texto sin formato:

Luego, el mensaje se envía como "JCVSR LQNPS". Sin embargo, a diferencia de un cifrado Vigenère , si el mensaje se extiende, la clave no se repite; el texto clave en sí se utiliza como clave. [ se necesita aclaración ] Si el mensaje se extiende, como por ejemplo, "Huye de inmediato. Nos descubren", entonces la tecla en ejecución continúa como antes:

Para determinar dónde encontrar la clave de ejecución, posteriormente se agrega un bloque falso de cinco caracteres de texto cifrado, tres de los cuales indican el número de página y dos el número de línea, utilizando A=0, B=1, etc. para codificar los dígitos. Un bloque de este tipo se denomina bloque indicador . El bloque indicador se insertará como el penúltimo de cada mensaje. (Son posibles muchos otros esquemas para ocultar bloques indicadores). Por lo tanto, en la página 63, la línea 1 se codifica como "AGDAB" (06301).

Esto produce un mensaje final de "JCVSR LQNPS YGUIM QAWXS AGDAB MECTO".

Variantes

Las variantes modernas del cifrado de clave en ejecución a menudo reemplazan la tabula recta tradicional con exclusiva bit a bit o , operan con bytes completos en lugar de letras alfabéticas y derivan sus claves de ejecución a partir de archivos grandes. Aparte de una posible mayor densidad de entropía de los archivos y la facilidad de automatización, existe poca diferencia práctica entre estas variantes y los métodos tradicionales.

Claves de ejecución generadas por permutación

Se puede utilizar una clave de ejecución más compacta si se genera texto de forma combinatoria utilizando varios punteros de inicio (o reglas de combinación). Por ejemplo, en lugar de comenzar en un lugar (un solo puntero), se podrían usar varios punteros de inicio y unir las secuencias para formar una nueva clave de ejecución; de manera similar, se pueden usar reglas de omisión. Lo que se intercambia entonces es una serie de punteros al libro de claves en ejecución y/o una serie de reglas para generar la nueva clave en ejecución permutada a partir del texto de clave inicial. (Estos se pueden intercambiar mediante cifrado de clave pública o en persona. También se pueden cambiar con frecuencia sin cambiar el libro de claves en ejecución).

Texto cifrado que parece texto sin formato

El texto cifrado tradicional parece ser bastante diferente del texto sin formato. Para solucionar este problema, una variante genera palabras de "texto sin formato" en lugar de letras de "texto sin formato" como salida de texto cifrado. Esto se hace creando un "alfabeto" de palabras (en la práctica, varias palabras pueden corresponder a cada carácter de salida de texto cifrado). El resultado es una salida de texto cifrado que parece una larga secuencia de palabras en texto plano (el proceso puede anidarse). En teoría, esto no es diferente del uso de caracteres de texto cifrado estándar como salida. Sin embargo, el texto cifrado que parece texto sin formato puede provocar que un "humano en el bucle" intente interpretarlo erróneamente como texto sin formato decodificado.

Un ejemplo sería BDA (algoritmo deflactor de Berkhoff) [ cita requerida ] , cada carácter de salida de texto cifrado tiene al menos un sustantivo, verbo, adjetivo y adverbio asociado. (Por ejemplo, (al menos) uno de cada uno por cada carácter ASCII ). Se generan oraciones gramaticalmente plausibles como salida de texto cifrado. El descifrado requiere asignar las palabras nuevamente a ASCII y luego descifrar los caracteres al texto sin formato real usando la clave en ejecución. Nested-BDA ejecutará la salida a través del proceso de reencriptación varias veces, produciendo varias capas de texto cifrado "con apariencia de texto sin formato", cada una de las cuales potencialmente requerirá "un ser humano en el bucle" para intentar interpretar su significado semántico inexistente .

cifrado de gromark

El "cifrado Gromark" (" cifrado de Gronsfeld con alfabeto mixto y clave continua") utiliza una clave numérica continua formada añadiendo pares sucesivos de dígitos. [1] El cifrado VIC utiliza un generador de Fibonacci retrasado similar .

Seguridad y criptoanálisis

Si la clave de ejecución es verdaderamente aleatoria, nunca se reutiliza y se mantiene en secreto, el resultado es un pad de un solo uso , un método que proporciona un secreto perfecto (no revela información sobre el texto sin formato). Sin embargo, si (como es habitual) la clave en ejecución es un bloque de texto en un lenguaje natural , la seguridad en realidad se vuelve bastante pobre, ya que ese texto tendrá características no aleatorias que pueden usarse para ayudar en el criptoanálisis: por ejemplo, William F. Friedman sugirió un ataque de texto cifrado durante la Primera Guerra Mundial contra las letras más frecuentes codificadas por otras letras más frecuentes. [2] Como resultado, la entropía por carácter tanto del texto sin formato como de la clave en ejecución es baja, y la operación de combinación se invierte fácilmente.

Para atacar el cifrado, un criptoanalista puede ejecutar textos claros probables adivinados a lo largo del texto cifrado, restándolos de cada posición posible. Cuando el resultado es un fragmento de algo inteligible, existe una alta probabilidad de que el texto sin formato adivinado sea correcto para esa posición (ya sea como texto sin formato real o como parte de la clave en ejecución). El 'trozo de algo inteligible' a menudo puede extenderse en cualquiera de los extremos, proporcionando así un texto plano aún más probable, que a su vez puede ampliarse, y así sucesivamente (para una explicación más detallada, consulte el cifrado Autokey ). Con el tiempo, es probable que se identifique la fuente de la clave en ejecución y que todo esté listo.

Hay varias formas de mejorar la seguridad. La primera y más obvia es utilizar un cuadro secreto de alfabetos mixtos en lugar de una tabula recta . De hecho, esto complica mucho las cosas, pero no es una solución completa. Como se explota en el método de Friedman, es mucho más probable que los pares de texto sin formato y caracteres clave en ejecución sean pares de alta frecuencia como 'EE' que, digamos, 'QQ'. La desviación que esto causa en la distribución de frecuencia de salida se ve empañada por el hecho de que es muy posible que 'EE' y 'QQ' se correspondan con el mismo carácter de texto cifrado, pero aun así la distribución no es plana. Esto puede permitir al criptoanalista deducir parte del cuadro y luego proceder como antes (pero con espacios en los que faltan secciones del cuadro reconstruido).

Otra posibilidad es utilizar un texto clave que tenga más entropía por carácter que el inglés típico. Para ello, la KGB aconsejó a los agentes utilizar documentos como almanaques e informes comerciales, que a menudo contienen largas listas de números que parecen aleatorios.

Otro problema es que el espacio de claves es sorprendentemente pequeño. Supongamos que hay 100 millones de textos clave que podrían usarse de manera plausible y que, en promedio, cada uno tiene 11 mil posiciones iniciales posibles. Para un oponente con una colección masiva de posibles textos clave, esto deja posible una búsqueda de fuerza bruta del orden de , que según los estándares de criptografía informática es un objetivo relativamente fácil. (Consulte las claves de ejecución generadas por permutación arriba para obtener una solución a este problema).

Confusión

Debido a que ambos cifrados empleaban clásicamente novelas como parte de su material clave, muchas fuentes confunden el cifrado de libro y el cifrado de clave corriente. En realidad, sólo tienen un parentesco muy lejano. El cifrado de clave corriente es una sustitución polialfabética, el cifrado de libro es una sustitución homofónica. Quizás la distinción se hace más claramente por el hecho de que un cifrado continuo funcionaría mejor con un libro de números aleatorios, mientras que un libro así (que no contiene texto) sería inútil para un cifrado de libro.

Ver también

Referencias

  1. ^ Asociación Estadounidense de Criptogramas. «La ACA y tú» Archivado el 3 de abril de 2016 en Wayback Machine . 2016.
  2. ^ "Criptología: cifrados de texto continuo: criptoanálisis según Friedman". www.staff.uni-mainz.de . Consultado el 10 de enero de 2024 .