Enigma Machine: como um passo em seu rotor muda o mapeamento
Estou lendo o e-book publicamente disponível “Criptografia: Uma Introdução (3ª Edição)” Por Nigel Smart, estou confuso ao ler a seção a seguir na página 50. Agora, assuma que o rotor se move em um passo, então um agora mapeia a Declaração de Rotor, B para A, C a C e D para B. Conforme descrito dentro do livro, o mapeamento em Rotor 1 pode ser formulizado como abaixo: entrada A B C D Saída (Etapa = 0) C a B D Saída (Etapa = 1) D A C B Eu esperava que a saída no Rotor 1 depois de mover uma etapa para ser uma mudança de sua saída inicial, de CABD se tornar Abdc ou DCAB. Mas, para minha surpresa, o livro diz DACB. A explicação disponível na Wikipedia não é suficiente para mim, está pulando muitos detalhes. Então eu vejo um post relacionado em cripto.stackexchange.com que pode esclarecer minha confusão. A maneira correta do meu erro é mudar o caractere de saída, mas devo mudar as compensações. Se a entrada for A e a saída for B, o deslocamento será 1. Se a entrada for D e a saída for C, o deslocamento será -1 (ou 3 no módulo 4, porque temos apenas 4 caracteres do alfabeto ABCD). Portanto, precisamos calcular as compensações e mudar o deslocamento para determinar a saída para a etapa a seguir. Entrada a B C D Saída (Etapa = 0) C A B D Offset (Etapa = 0) 2 -1 -1 0 deslocamento (Etapa = 1) (deslocamento à esquerda) -1 -1 0 2 saída (Etapa = 1) D A C B Explicação (entrada+deslocamento) A -1 B -1 C+0 D+2 Offset (passo = 1) A saída final (etapa = 1) pode ser obtida da aplicação de deslocamento (etapa = 1) à entrada. Agora a saída final é DACB, corresponde exatamente ao que explicou no livro 😄
Fonte