根据维基百科:BDZGO是预期的结果时,在字母AAAAA与转子I,II,III和反射器B的神秘密码。
ABCDEFGHIJKLMNOPQRSTUVWXYZ | Alphabet
EKMFLGDQVZNTOWYHXUSPAIBRCJ | Rotor I wiring
AJDKSIRUXBLHWTMCQGZNPYFVOE | Rotor II wiring
BDFHJLCPRTXVZNYEIWGAKMUSQO | Rotor III wiring
YRUHQSLDPXNGOKMIEBFZCWVJAT | Reflector B wiring
ABCDEFGHIJKLMNOPQRSTUVWXYZ | Reflector B wiring如果我们现在追踪第一个A:
A-E | etw to rotor I
E-A | rotor I to rotor II
A-B | rotor II to rotor III
B-R | Reflector B
R-X | rotor III to rotor II
X-V | rotor II to rotor I
V-I | rotor I to etw所以输出是I而不是B,我的错误在哪里?
发布于 2019-06-11 20:33:44
正如我在这是先前对一个相关问题的回答中所指出的,在您的示例中,转子排列是用一个简写符号编写的,它只显示置换的输出字母表,并且隐含地假定输入字母表总是ABCDEFGHIJKLMNOPQRSTUVWXYZ。也就是说,你的转子描述:
EKMFLGDQVZNTOWYHXUSPAIBRCJ | Rotor I wiring
AJDKSIRUXBLHWTMCQGZNPYFVOE | Rotor II wiring
BDFHJLCPRTXVZNYEIWGAKMUSQO | Rotor III wiring实际上描述了以下排列:
ABCDEFGHIJKLMNOPQRSTUVWXYZ
↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓ | Rotor I
EKMFLGDQVZNTOWYHXUSPAIBRCJ
ABCDEFGHIJKLMNOPQRSTUVWXYZ
↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓ | Rotor II
AJDKSIRUXBLHWTMCQGZNPYFVOE
ABCDEFGHIJKLMNOPQRSTUVWXYZ
↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓ | Rotor III
BDFHJLCPRTXVZNYEIWGAKMUSQO此外,示例加密还有另外两个问题:
综合起来,第一个字母的正确路径是:
A⤑B→D⤑C (位置B处的转子III )C⤑C→D⤑D (A位置的转子II )D⤑D→F⤑F (A位置为转子I)F↔S (反射器B)S⤑S→S⤑S ( A位置的转子I,反向)S⤑S→E⤑E ( A位置的转子II,反向)E⤑F→C⤑B ( B位旋翼III,反向)对于每个转子,有效地有三种排列:字母表移动到转子的当前位置(即A位置0步,B位置1步,C位置2步等等),固定转子布线排列,最后从转子位置反向移位。
在上面的列表中,我使用了一个虚线箭头⤑来表示位移,使用了一个实心箭头→来表示转子布线排列(对于反射器使用了一个双头箭头↔)。在这个例子中,三个转子中的两个仍然处于A位置,所以对它们来说,移位没有任何影响,但我已经向它们展示了它们的完整性。另外,只是偶然,在转子的布线,我碰巧映射的字母S到自己。
https://crypto.stackexchange.com/questions/71231
复制相似问题