viernes, 14 de febrero de 2020

CRIPTOGRAFÍA


 paso gigante es un algoritmo de encuentro en el medio para calcular el logaritmo discreto . El problema de registro discreto es de importancia fundamental para el área de la criptografía de clave pública .
Muchos de los sistemas de criptografía más utilizados se basan en el supuesto de que el registro discreto es extremadamente difícil de calcular; cuanto más difícil es, más seguridad proporciona una transferencia de datos. Una forma de aumentar la dificultad del problema de registro discreto es basar el sistema de cifrado en un grupo más grande.

Teoría editar ]

El algoritmo se basa en una compensación espacio-tiempo . Es una modificación bastante simple de la multiplicación de prueba, el método ingenuo para encontrar logaritmos discretos.
Dado un grupo cíclico  de orden un generador  del grupo y un elemento de grupo , el problema es encontrar un número entero  tal que
El algoritmo de pasos gigantes de baby-step se basa en la reescritura :
Por lo tanto, tenemos:
El algoritmo precalcula  para varios valores de Luego arregla un e intenta valores de en el lado derecho de la congruencia anterior, a modo de multiplicación de prueba. Comprueba si la congruencia se satisface para cualquier valor de, utilizando los valores calculados previamente de .

El algoritmo editar ]

Entrada : Un grupo cíclico G de orden n , que tiene un generador α y un elemento β .
Salida : un valor x satisfactorio.
  1. m ← Techo ( √ n )
  2. Para todo j donde 0 ≤ j < m :
    1. Calcule α j y almacene el par ( j , α j ) en una tabla. (Ver § En la práctica )
  3. Calcule α m .
  4. γ ← β . (conjunto γ = β )
  5. Para todo i donde 0 ≤ i < m :
    1. Verifique si γ es el segundo componente ( α j ) de cualquier par en la tabla.
    2. Si es así, devuelve im + j .
    3. Si no, γ ← γ • α m .

Algoritmo de C ++ (C ++ 17) editar ]

#include  
#include  
#include  

std :: uint32_t  pow_m ( std :: uint32_t  base ,  std :: uint32_t  exp ,  std :: uint32_t  mod )  { 
        // exponenciación modular utilizando el algoritmo de multiplicación cuadrada 
}


/// Calcula x tal que g ^ x% mod == h 
std :: opcional < std :: uint32_t >  babystep_giantstep ( std :: uint32_t  g ,  std :: uint32_t  h ,  std :: uint32_t  mod )  { 
        const  auto  m  =  static_cast < std :: uint32_t > ( std :: ceil ( std :: sqrt ( mod ))); 
        mesa de auto  =  Std :: unordered_map < std :: uint32_t ,  std :: uint32_t > {}; 
        auto  e  =  std :: uint64_t { 1 };  // los valores temporales pueden ser mayores de 32 bits 
        para  ( auto  i  =  std :: uint32_t { 0 };  i  <  m ;  ++ i )  { 
                table [ static_cast < std :: uint32_t >( e )]  =  i ; 
                e  =  ( e  *  g )  %  mod ; 
        } 
        factor auto const  = pow_m ( g , mod - m - 1 , mod ); e = h ; for ( auto i = std :: uint32_t {}; i < m ; ++ i ) { if ( auto it     
          
                 
                   =  mesa . find ( static_cast < std :: uint32_t > ( e ));  it  ! =  mesa . end ())  { 
                        return  { i * m  +  it -> second }; 
                } 
                e  =  ( factor e  *  ) % mod ; } return std :: nullopt ; }  
        
         

En la práctica editar ]

La mejor manera de acelerar el algoritmo de pasos gigantes es utilizar un esquema de búsqueda de tabla eficiente. Lo mejor en este caso es una tabla hash . El hashing se realiza en el segundo componente, y para realizar la verificación en el paso 1 del bucle principal, se analiza el hash y se verifica la dirección de memoria resultante. Dado que las tablas hash pueden recuperar y agregar elementos en tiempo (tiempo constante), esto no ralentiza el algoritmo general de pasos gigantes.
El tiempo de ejecución del algoritmo y la complejidad del espacio es , mucho mejor que el  Tiempo de ejecución del ingenuo cálculo de la fuerza bruta.
El algoritmo de paso gigante de Baby-step se usa a menudo para resolver la clave compartida en el intercambio de claves Diffie Hellman , cuando el módulo es un número primo. Si el módulo no es primo, el algoritmo de Pohlig-Hellman tiene una complejidad algorítmica más pequeña y resuelve el mismo problema.









La cifra de Bacon o la cifra de Baconian es un método de codificación de mensajes ideado por Francis Bacon en 1605. [1] [2] [3] Un mensaje está oculto en la presentación del texto, en lugar de su contenido.

Detalles de cifrado editar ]

Para codificar un mensaje, cada letra del texto sin formato se reemplaza por un grupo de cinco de las letras 'A' o 'B'. Este reemplazo es una codificación binaria de 5 bits y se realiza de acuerdo con el alfabeto del cifrado baconiano (del alfabeto latino), que se muestra a continuación:
LetraCódigoBinario
UNaaaaa00000
siaaaab00001
Caaaba00010
reaaabb00011
miaabaa00100
Faabab00101
solaabba00110
Haabbb00111
Yo jabaaa01000
Kabaab01001
Lababa01010
METROababb01011
LetraCódigoBinario
norteabbaa01100
Oabbab01101
PAGabbba01110
Qabbbb01111
Rbaaaa10000
Sbaaab10001
Tbaaba10010
U, Vbaabb10011
Wbabaa10100
Xbabab10101
Ybabba10110
Zbabbb10111
Una segunda versión del cifrado de Bacon usa un código único para cada letra. En otras palabras, I , J , U y V tienen cada uno su propio patrón en esta variante:
LetraCódigoBinario
UNaaaaa00000
siaaaab00001
Caaaba00010
reaaabb00011
miaabaa00100
Faabab00101
solaabba00110
Haabbb00111
yoabaaa01000
Jabaab01001
Kababa01010
Lababb01011
METROabbaa01100
LetraCódigoBinario
norteabbab01101
Oabbba01110
PAGabbbb01111
Qbaaaa10000
Rbaaab10001
Sbaaba10010
Tbaabb10011
Ubabaa10100
Vbabab10101
Wbabba10110
Xbabbb10111
Ybbaaa11000
Zbbaab11001
El escritor debe hacer uso de dos tipos de letra diferentes para este cifrado. Después de preparar un mensaje falso con el mismo número de letras que todos los As y Bs en el mensaje secreto real, se eligen dos tipos de letra, uno para representar As y el otro Bs . A continuación, cada letra del mensaje falso debe ser presentada en el tipo de letra adecuado, en función de si representa una A o una B . [4]
Para decodificar el mensaje, se aplica el método inverso. Cada letra "tipo de letra 1" en el mensaje falso se sustituye con una A y cada letra "tipo de letra 2" se sustituye con una B . El alfabeto baconiano se usa para recuperar el mensaje original.
Cualquier método para escribir el mensaje que permita dos representaciones distintas para cada carácter se puede usar para Bacon Cipher. Tocino sí mismo preparó un biliteral alfabeto [5] para el capital escrita a mano y minúsculas y cada una tiene dos formas alternativas, uno para ser utilizado como A y el otro como B . Esto fue publicado como una placa ilustrada en su De Augmentis Scientiarum (The Advancement of Learning).
Debido a que cualquier mensaje de la longitud correcta puede usarse para llevar la codificación, el mensaje secreto se oculta efectivamente a la vista. El mensaje falso puede ser sobre cualquier tema y, por lo tanto, puede distraer a una persona que busca encontrar el mensaje real.

Ejemplo de cifrado baconiano editar ]

La palabra 'esteganografía', codificada con comillas, donde el texto en cursiva representa "tipo de letra 2" y el texto estándar representa "tipo de letra 1":
T o en co de un mes s edad e ac h carta de la pl una i nt ex t i s sustituye b y ag rou p de f i he de º e lett ers 'A' o R 'B' .

Bacon y Shakespeare editar ]

Algunos defensores de la teoría baconiana de la autoría de Shakespeare , como Ignatius L. Donnelly y Elizabeth Wells Gallup , han afirmado que Bacon utilizó el cifrado para codificar mensajes que revelan su autoría en el Primer Folio . Sin embargo, los criptologistas estadounidenses William y Elizebeth Friedman refutaron las afirmaciones de que las obras de Shakespeare contienen cifras ocultas que revelan la autoría secreta de Bacon o de cualquier otro candidato en The Shakespeare Ciphers Examined.(1957) El análisis tipográfico del First Folio muestra que se utilizó una gran cantidad de tipos de letra, en lugar de los dos necesarios para el cifrado, y que las prácticas de impresión de la época habrían hecho imposible transmitir un mensaje con precisión.









El banburismo fue un proceso criptoanalítico desarrollado por Alan Turing en Bletchley Park en Gran Bretaña durante la Segunda Guerra Mundial . Fue utilizado por la cabaña 8 de Bletchley Park para ayudar a romper los mensajes alemanes de Kriegsmarine (naval) cifrados en las máquinas Enigma . El proceso utilizó la probabilidad condicional secuencial para inferir información sobre la configuración probable de la máquina Enigma. [1] Dio lugar a la invención de la prohibición de Turing como una medida del peso de la evidencia a favor de una hipótesis. [2] [3]Este concepto se aplicó más tarde en Turingery y en todos los demás métodos utilizados para romper el cifrado de Lorenz .

Descripción general editar ]

El objetivo de Banburismus era reducir el tiempo requerido de las máquinas Bombe electromecánicas mediante la identificación de las ruedas centrales y derechas más probables del Enigma . [5] [6] Hut 8 realizó el procedimiento de forma continua durante dos años, deteniéndose solo en 1943 cuando el tiempo de bombeo suficiente se hizo fácilmente disponible. [7] [8] El banburismo fue un desarrollo del " método del reloj " inventado por el criptoanalista polaco Jerzy Różycki . [9]
Hugh Alexander fue considerado como el mejor de los banburistas. Él y IJ Good consideraron el proceso más un juego intelectual que un trabajo. "No fue lo suficientemente fácil como para ser trivial, pero no lo suficientemente difícil como para causar un colapso nervioso". [10]

Historia editar ]

En los primeros meses después de llegar a Bletchley Park en septiembre de 1939, Alan Turing dedujo correctamente que los ajustes de mensajes de las señales de Kriegsmarine Enigma estaban cifrados en un Grundstellung común (posición inicial de los rotores), y luego se supercifraron con un bigram y una tabla de búsqueda de trigram . Estas tablas de trigrama estaban en un libro llamado Kenngruppenbuch (libro K) . Sin embargo, sin las tablas bigram, Hut 8 no pudo comenzar a atacar el tráfico. [11] Se logró un gran avance después de la pizca de Narvik en la cual el arrastrero armado disfrazado Polares , que se dirigía a Narvik en Noruega, fue capturado por el HMS  Griffin en el Mar del Norte el 26 de abril de 1940. [12] Los alemanes no tuvieron tiempo de destruir todos sus documentos criptográficos, y el material capturado reveló la forma precisa del sistema de indicación, suministró las conexiones del tablero y Grundstellung. para el 23 y 24 de abril y el registro de los operadores, que dio un largo tramo de texto sin formato emparejado y un mensaje cifrado para los días 25 y 26. [13]
Las tablas bigram en sí mismas no formaban parte de la captura, pero Hut 8 pudo usar las listas de configuración para leer retrospectivamente todo el tráfico de Kriegsmarine que había sido interceptado del 22 al 27 de abril. Esto les permitió hacer una reconstrucción parcial de las tablas de bigram y comenzar el primer intento de usar Banburismus para atacar el tráfico de Kriegsmarine, a partir del 30 de abril. Los días elegibles fueron aquellos en los que se recibieron al menos 200 mensajes y para los cuales las tablas de bigram parcial descifraron los indicadores . El primer día en romperse fue el 8 de mayo de 1940, celebrado a partir de entonces como el "Día de Foss" en honor a Hugh Foss , el criptoanalista que logró la hazaña.
Esta tarea tomó hasta noviembre de ese año, momento en el cual la inteligencia estaba muy desactualizada, pero demostró que Banburismus podía funcionar. También permitió que se reconstruyeran muchas más mesas bigram, lo que a su vez permitió que se rompieran el 14 de abril y el 26 de junio. Sin embargo, el Kriegsmarine había cambiado las tablas de bigram el 1 de julio. [14] A finales de 1940, gran parte de la teoría del sistema de puntuación Banburismus se había resuelto.
El pellizco Primera Lofoten del barco rastreador de Krebs el 3 de marzo 1941 proporcionado las claves completas para febrero - pero no hay mesas bigrama o libro de K . Los descifrados consecuentes permitieron que el sistema de puntuación estadística se refinara para que Banburismus pudiera convertirse en el procedimiento estándar contra Kriegsmarine Enigma hasta mediados de 1943. [14]

Principios editar ]

Banburismus utilizó una debilidad en el procedimiento del indicador (la configuración de mensajes cifrados) del tráfico de Kriegsmarine Enigma. A diferencia de los procedimientos del Enigma de la Fuerza Aérea y el Ejército alemán , la Kriegsmarine utilizó un Grundstellung proporcionado por listas clave, por lo que fue el mismo para todos los mensajes en un día en particular (o un par de días). Esto significaba que los indicadores de tres letras estaban cifrados con la misma configuración de rotor, de modo que todos estaban en profundidad entre sí. [15] Normalmente, los indicadores para dos mensajes nunca fueron los mismos, pero podría suceder que, a mitad de un mensaje, las posiciones del rotor se volvieran iguales a la posición inicial de los rotores para otro mensaje, las partes de los dos mensajes que se superponían de esta manera fueron en profundidad.
El extremo izquierdo de una "Hoja de Banbury" de la Segunda Guerra Mundial encontrada en 2014 en el espacio del techo de Hut 6 en Bletchley Park .
El principio detrás de Banburismus es relativamente simple (y parece ser bastante similar al Índice de coincidencia ). Si se escriben dos oraciones en inglés o alemán, una encima de la otra, y se hace un recuento de la frecuencia con la que una letra en un mensaje es igual a la letra correspondiente en el otro mensaje; Habrá más coincidencias de las que ocurrirían si las oraciones fueran cadenas de letras aleatorias. Para una secuencia aleatoria, se espera que la tasa de repetición para letras individuales sea de 1 en 26 (alrededor del 3.8%), y para los mensajes de la Armada alemana se demostró que es de 1 en 17 (5.9%). [dieciséis]Si los dos mensajes fueron en profundidad, entonces las coincidencias ocurren tal como ocurrieron en los textos claros. Sin embargo, si los mensajes no fueron en profundidad, los dos textos cifrados se compararán como si fueran aleatorios, dando una tasa de repetición de aproximadamente 1 en 26. Esto permite que un atacante tome dos mensajes cuyos indicadores difieren solo en el tercer carácter, y deslícelos uno contra el otro buscando el patrón de repetición del sorteo que muestra dónde se alinean en profundidad.
La comparación de dos mensajes para buscar repeticiones se hizo más fácil al perforar los mensajes en tarjetas delgadas de aproximadamente 250 mm de alto (10 ") por varios metros de ancho (tenían diferentes tarjetas para diferentes longitudes de mensaje). Un agujero en la parte superior de un la columna en la tarjeta representaba una 'A' en esa posición, un agujero en la parte inferior representaba una 'Z'. Las dos tarjetas de mensajes se colocaron una encima de la otra en una caja de luz y donde la luz brillaba, había una repetición. Esto hizo mucho más simple detectar y contar las repeticiones. Las tarjetas se imprimieron en Banbury en Oxfordshire. Se hicieron conocidas como 'banburies' en Bletchley Park, y de ahí el procedimiento que las usaba: Banburismus. [17]
La aplicación del procedimiento scritchmus (ver más abajo) da una pista sobre el posible rotor de la derecha.

Ejemplo editar ]

Mensaje con indicador " VFG ": XCYBGDSLVWBDJLKWIPEHVYGQZWDTHRQXIKEESQSSPZXARIXEABQIRUCKHGWUEBPF
Mensaje con indicador " VFX ": YNSCFCCPVIPEMSGIZWFLHESCIYSPVRXMCFQAXVXDVUQILBJUABNLKMKDJMENUNQ
La cabaña 8 los perforaría en banburies y contaría las repeticiones para todas las compensaciones válidas de -25 letras a +25 letras. Hay dos posiciones prometedoras:
XCYBGDSLVWBDJLKWIPEHVYGQZWDTHRQXIKEESQSSPZXARIXEABQIRUCKHGWUEBPF
        YNSCFCCPVIPEMSGIZWFLHESCIYSPVRXMCFQAXVXDVUQILBJUABNLKMKDJMENUNQ
                      - - - - - - -
Este desplazamiento de ocho letras muestra nueve repeticiones, incluidas dos bigramas, en una superposición de 56 letras (16%).
La otra posición prometedora se ve así:
XCYBGDSLVWBDJLKWIPEHVYGQZWDTHRQXIKEESQSSPZXARIXEABQIRUCKHGWUEBPF
       YNSCFCCPVIPEMSGIZWFLHESCIYSPVRXMCFQAXVXDVUQILBJUABNLKMKDJMENUNQ
                ---
Este desplazamiento de siete muestra un solo trigrama en una superposición de 57 letras.
El método de Turing de acumular una puntuación de varios decibans permite calcular cuál de estas situaciones es más probable que represente mensajes en profundidad. Como era de esperar, el primero es el ganador con probabilidades de 5: 1 en adelante, el último es solo 2: 1 en adelante. [18]
Turing calculó los puntajes para el número de repeticiones individuales en superposiciones de tantas letras, y el número de bigrams y trigrams. Los tetragramas a menudo representaban palabras alemanas en el texto simple y sus puntajes se calculaban según el tipo de mensaje (del análisis de tráfico) e incluso su posición dentro del mensaje. [19] Estos fueron tabulados y los valores relevantes sumados por Banburists al evaluar pares de mensajes para ver cuáles eran más profundos.
Bletchley Park usó la convención de que el indicador de texto sin formato de "VFX", que está ocho caracteres por delante de "VFG", o (en términos de la tercera letra, diferente) que "X = G + 8".

Scritchmus editar ]

Scritchmus fue la parte del procedimiento de Banburismus que podría conducir a la identificación de la rueda derecha (rápida). El Banburist podría tener evidencia de varios pares de mensajes (con solo la tercera letra indicadora diferente) que muestra que "X = Q − 2", "H = X − 4" y "B = G + 3". Él [20] buscaría en las hojas de deciban todas las distancias con probabilidades mejores que 1: 1 (es decir, con puntajes ≥ +34). Luego se intentó construir el 'alfabeto de la rueda final' formando 'cadenas' de letras de la rueda final a partir de estas repeticiones. [21] Luego podrían construir una "cadena" de la siguiente manera:
G - BH --- XQ
Si esto se compara en desplazamientos progresivos con la secuencia de letras conocida de un rotor Enigma, se descartan bastantes posibilidades debido a que viola la propiedad "recíproca" o la propiedad "sin autocifrado" de la máquina Enigma:
G - BH --- XQ
ABCDEFGHIJKLMNOPQRSTUVWXYZ ......... es posible

 G - BH --- XQ
ABCDEFGHIJKLMNOPQRSTUVWXYZ ......... es imposible (G cifra a B, pero B cifra a E)

  G - BH --- XQ
ABCDEFGHIJKLMNOPQRSTUVWXYZ ......... es imposible (H aparentemente se cifra con H)

   G - BH --- XQ
ABCDEFGHIJKLMNOPQRSTUVWXYZ ......... es imposible (G cifra a D, pero B cifra a G)

    G - BH --- XQ
ABCDEFGHIJKLMNOPQRSTUVWXYZ ......... es imposible (B cifra a H, pero H cifra a J)

     G - BH --- XQ
ABCDEFGHIJKLMNOPQRSTUVWXYZ ......... es imposible (Q aparentemente se cifra con Q)

      G - BH --- XQ
ABCDEFGHIJKLMNOPQRSTUVWXYZ ......... es imposible (G aparentemente se cifra con G)

       G - BH --- XQ
ABCDEFGHIJKLMNOPQRSTUVWXYZ ......... es imposible (G cifra a H, pero H cifra a M)

        G - BH --- XQ
ABCDEFGHIJKLMNOPQRSTUVWXYZ ......... es posible

         G - BH --- XQ
ABCDEFGHIJKLMNOPQRSTUVWXYZ ......... es posible

          G - BH --- XQ
ABCDEFGHIJKLMNOPQRSTUVWXYZ ......... es posible

           G - BH --- XQ
ABCDEFGHIJKLMNOPQRSTUVWXYZ ......... es imposible (H cifra a Q, pero Q cifra a W)

            G - BH --- XQ
ABCDEFGHIJKLMNOPQRSTUVWXYZ ......... es imposible (X cifra a V, pero Q cifra a X)

             G - BH --- XQ
ABCDEFGHIJKLMNOPQRSTUVWXYZ ......... es imposible (B cifra a Q, pero Q cifra a Y)

              G - BH --- XQ
ABCDEFGHIJKLMNOPQRSTUVWXYZ ......... es imposible (X cifra a X)

Q G - BH --- X->
ABCDEFGHIJKLMNOPQRSTUVWXYZ ......... es posible

-Q G - BH --- X->
ABCDEFGHIJKLMNOPQRSTUVWXYZ ......... es imposible (Q cifra a B, pero B cifra a T)

XQ G - BH --->
ABCDEFGHIJKLMNOPQRSTUVWXYZ ......... es posible

-XQ G - BH ->
ABCDEFGHIJKLMNOPQRSTUVWXYZ ......... es imposible (X cifra a B, pero B cifra a V)

--XQ G - BH->
ABCDEFGHIJKLMNOPQRSTUVWXYZ ......... es posible

--- XQ G - BH->
ABCDEFGHIJKLMNOPQRSTUVWXYZ ......... es imposible (X cifra a D, pero B cifra a X)

H --- XQ G - B->
ABCDEFGHIJKLMNOPQRSTUVWXYZ ......... es imposible (Q cifra a G, pero G cifra a V)

-H --- XQ G - B->
ABCDEFGHIJKLMNOPQRSTUVWXYZ ......... es imposible (H cifra a B, pero Q cifra a H)

BH --- XQ G ->
ABCDEFGHIJKLMNOPQRSTUVWXYZ ......... es posible (tenga en cuenta los cifradores G a X, los cifrados X a la propiedad G)

-BH --- XQ G->
ABCDEFGHIJKLMNOPQRSTUVWXYZ ......... es imposible (B cifra a B)

--BH --- XQ G->
ABCDEFGHIJKLMNOPQRSTUVWXYZ ......... es posible
El llamado "alfabeto de la rueda final" ya está limitado a solo nueve posibilidades, simplemente estableciendo una cadena de letras de cinco letras derivadas de solo cuatro pares de mensajes. La cabaña 8 ahora intentaría encajar otras cadenas de letras, unas sin letras en común con la primera cadena, en estos nueve alfabetos candidatos de rueda final.
Eventualmente esperarán quedarse con un solo candidato, tal vez así:
         NUP
F ---- A - D --- O
--XQ G - BH->
ABCDEFGHIJKLMNOPQRSTU VWXYZ
No solo esto, sino que el alfabeto de la rueda final obliga a concluir que la rueda final es en realidad "Rotor I". Esto se debe a que "Rotor II" habría causado una rotación en la mitad de la rueda al pasar de "E" a "F", sin embargo, eso se encuentra en el medio de la cadena de letras "F ---- A - D --- O ". Del mismo modo, se excluyen todas las otras posibles pérdidas de balón en la mitad de la rueda. Rotor I realiza su rotación entre "Q" y "R", y esa es la única parte del alfabeto que no abarca una cadena.
El hecho de que las diferentes ruedas Enigma tuvieran diferentes puntos de rotación fue, presumiblemente, una medida de los diseñadores de la máquina para mejorar su seguridad. Sin embargo, esta complicación le permitió a Bletchley Park deducir la identidad de la rueda final.

Rueda central editar ]

Una vez que se identifica la rueda final, estos mismos principios pueden extenderse para manejar el rotor central, aunque con la complejidad adicional de que la búsqueda es de superposiciones en pares de mensajes que comparten solo la primera letra indicadora, y que las superposiciones podrían ocurrir por lo tanto hacia arriba a 650 caracteres de diferencia. [22]
La carga de trabajo de hacer esto va más allá del trabajo manual, por lo que BP introdujo los mensajes en tarjetas de 80 columnas y usó máquinas Hollerith para buscar repeticiones de tetragramas o mejores. Eso les dijo qué banburies establecer en las cajas de luz (y con qué superposición) para evaluar todo el patrón de repetición.
Armado con un conjunto de superposiciones probables en la mitad de la rueda, Hut 8 podría componer cadenas de letras para la rueda central de la misma manera que se ilustra arriba para la rueda final. Eso a su vez (después de Scritchmus) daría al menos un alfabeto parcial de la rueda central, y con suerte al menos algunas de las posibles opciones de rotor para la rueda central podrían eliminarse del conocimiento de rotación (como se hizo al identificar la rueda final).
En conjunto, la probable mano derecha y las ruedas del medio darían un conjunto de carreras de bombeo para el día, que se reduciría significativamente de las 336 posibles.

No hay comentarios:

Publicar un comentario