吉林财经大学 管信学院 计算机科学与技术专业 《密码学》实验指导书
【实验名称】
【实验目的】
使用 ENIGMA 模拟器进行数据加密和解密
1、掌握 ENIGMA 的加密原理
2、熟练使用 ENIGMA Simulator
v6.4.3
【实验原理】
1、ENIGMA 加密原理介绍
ENIGMA 是二战期间德军使用的机械加密装置。ENIGMA 看起来是一个装满
了复杂而精致的元件的盒子。不过要是把它打开来,就可以看到它可以被分解成
相当简单的几部分。下面的图是它的最基本部分的示意图,我们可以看见它的三
个部分:键盘、转子和显示器。
在上面 ENIGMA 的照片上,可看见水平面板的下面部分就是键盘,一共有
26 个键,键盘排列接近现在使用的计算机键盘。为了使消息尽量地短和更难以
破译,空格和标点符号都被省略。实物照片中,键盘上方就是显示器,它由标示
了同样字母的 26 个小灯组成,当键盘上的某个键被按下时,和此字母被加密后
的密文相对应的小灯就在显示器上亮起来。在显示器的上方是三个转子,它们的
主要部分隐藏在面板之下。
键盘、转子和显示器由电线相连,转子本身也集成了 26 条线路,把键盘的
信号对应到显示器不同的小灯上去。如果按下 a 键,那么灯 B 就会亮,这意味着
a 被加密成了 B。连接板允许使用者用一根连线把某个字母和另一个字母连接起
来,这样这个字母的信号在进入转子之前就会转变为另一个字母的信号。在上面
ENIGMA 的实物图里,我们看见这个连接板处于键盘的下方。当然连接板上的连
线状况也是收发信息的双方需要预先约定的。
德军的各支部队使用一些不同的通讯网络,每个网络中的恩尼格玛机都有不
同的设置。为了使一条信息能够正确地被加密及解密,发送信息与接收信息的恩
尼格玛机的设置必须相同,转子必须一模一样,而且它们的排列顺序,起始位置
编写人:宋佳丽
吉林财经大学 管信学院 计算机科学与技术专业 《密码学》实验指导书
和接线板的连线也必须相同。所有这些设置都需要在使用之前确定下来,并且会
被记录在密码本中。
2、ENIGMA Simulator
v6.4.3 软件简介
图 1 是启动该软件所弹出的窗口,图 2 是“set plugs”区,图 3 是掀开
盖子的内部结构。
图 1
图 2
编写人:宋佳丽
吉林财经大学 管信学院 计算机科学与技术专业 《密码学》实验指导书
图 3
【实验内容与步骤】
表 1 是德国空军电报员使用的密码本。德军部队的电报员会带着一个小本
本,上面记述着每天用的密码,据说在战败的时候,德军的电报员会与这个密码
本同生共死。以 31 日为例,当时使用的是 Wehrmacht/Luftwaffe – UKW = B 这套
英尼格玛机,德军作战密码本里面信息从左至右分别为天数,从左至右的内部齿
轮的型号,三个齿轮的起始对应数字(或者是字母)和字母插头插口情况。
表 1:电报员使用的密码本部分信息
(一)加密案例
步骤 1:设置英尼格玛机型号。单击图 3 中的“型号转换”按钮,按照密码
本要求设置成 Wehrmacht/Luftwaffe – UKW = B 型号。
编写人:宋佳丽
吉林财经大学 管信学院 计算机科学与技术专业 《密码学》实验指导书
步骤 2:调整内部齿轮的型号。单击图 4 中的第三组齿轮后,齿轮就被拆卸
下来,显示在显示器区,如图 5 所示。
图 4
图 5
用鼠标单击该齿轮,在点击一下该齿轮在备用齿轮区的对应位置,将这个不
用的齿轮放好,如图 6 所示。
编写人:宋佳丽
吉林财经大学 管信学院 计算机科学与技术专业 《密码学》实验指导书
图 6
在齿轮备用区点击今天所需要用到的“V”号齿轮,该齿轮就显示在显示器
区,如图 7 所示。
图 7
再次点击内部齿轮安装区的第 3 个空位置,“V”号齿轮就安装成功了。
步骤 3:调整三个齿轮的起始对应数字。“06 22 14”所对应的字母分别是
编写人:宋佳丽
吉林财经大学 管信学院 计算机科学与技术专业 《密码学》实验指导书
“FVN”,设置好后如图 8。
图 8
步骤 4:插线插口设置。按照 31 号密码册上的信息显示,设置“PO ML IU KJ
NH YT GB VF RE DC”连线,方法是先点击“P”字母,再点击“O”字母,则“P”
和“O”字母进行了替换,其他字母的设置操作如上所述。设置后如图 9 所示。
图 9
步骤 5:加密。这里我们要加密的信息为“I love you”。按照上面所说的方
法按当日密钥调整好 ENIGMA,然后随机地选择三个字母,这里选择 PGH。把 PGH
在键盘上连打两遍,加密为 DZWDNE(注意到两次 PGH 被加密为不同的形式,
第一次 DZW,第二次 DNE,这正是 ENIGMA 的特点,它是一种复式替换密码)。
然后他把 DZWDNE 记在电文的最前面。接下来重新调整三个转子的初始方向到
编写人:宋佳丽
吉林财经大学 管信学院 计算机科学与技术专业 《密码学》实验指导书
PGH,然后再正式对明文加密,如图 10 所示。
图 10
步骤 6:发送加密的报文。“I love you”加密后的密文为“CJZSBMAM”,无
线电发报员发送如下信息:U6Z DE C 1510 = 44 = DZWDNE = CJZSBMAM,其中,
“U6Z DE C 1510 = 44 =” 是指代的是收件人,DZWDNE 为随机秘钥,“CJZSBMAM”
为真正要传输的密文信息。
(二)解密案例
对方收到电报“U6Z DE C 1510 = 44 = DZWDNE = CJZSBMAM”后,按照密码
本中第 31 日的指示进行初始化设置,操作步骤如上面解密过程中的步骤 1 至步
骤 4,可以浏览秘钥设置情况如图 11 所示。
图 11
编写人:宋佳丽
吉林财经大学 管信学院 计算机科学与技术专业 《密码学》实验指导书
初始化设置好后,在键盘输入区输入“DZWDNE”,得到明文“PGHPGH”,
所以提取出随机秘钥为“PGH”,将外部密码轮调节至“PGH”之后,再输入
“CJZSBMAM”,还原出明文“ILOVEYOU”, 如图 12 所示。
图 12
(三)实战练习
现在的时间是 1941 年 7 月 7 日,正值德国闪电战“巴巴罗萨计划”前夕。苏
军指挥官要了解德军动向好进行下一步防御,他的手下军官突然截到了一条德国
陆军(党卫军 SS-Totenkopf 师团)的信息,现在你来要进行破解。
1. 当天英尼格玛初始配置情况如下
Machine model:Wehrmacht/Luftwaffe – UKW = B
Rotors: ⅡⅣⅤ
Ringsetting: BUL
Plug Connection: AV BS CG DL FU HZ IN KM OW RX
2. 信的正文
Befordert am: 07.07.1941 1925 Uhr Durch:
Funkspruch Nr.:20 Von/An: f8v/bz2
编写人:宋佳丽