精读《图解密码技术》--第二章 历史上的密码

一、凯撒密码

  凯撒密码是通过将明文中所使用的字母表按照一定的字数的“平移”来进行加密的,如下图所示。

1.加密

  假设发送者Alice需要保密的明文为“iloveyou”一共8个字母,接下来需要将明文加密为密文,密钥为4,也就是将明文的每个字母向右平移4个字母进行加密,则密文为“MPSZICSY”,然后将密文发送给接收者Bob。

2.解密

  假设接收者Bob收到的密文为“MPSZICSY”,密钥为4,也就是将密文的每个字母向左平移4个字母进行解密,则可以得到明文为“iloveyou”。

3.破译

  除了接收者Bob之外,恶意的第三方如果想要破译凯撒密码,最简单的方式便是将密钥0-25这26种密钥都尝试一遍,则会发现密钥为4的时候还原出的明文是有意义的字符串,即可破解凯撒密码。这种将所有可能的密钥都尝试一遍的破译方法称为暴力破解

二、简单替换密码

1.定义

  为解决凯撒密码的明文的英文字母和密文的英文字母一一对应的问题,我们引入简单替换密码,如下图所示。

2.加密

  与凯撒密码类似,简单替换密码的加密也是将明文中的字母按照顺序,对应字母表中的字母进行替换,即可得到相应的密文。

3.加密

  使用简单替换密码加密时所用的替换表进行反向替换,就可以对简单替换密码加密。替换表的功能相当于密钥。

4.密钥空间

  凯撒密码可以通过暴力破解来破译,但简单替换密码很难通过暴力破解来破译,这是因为简单替换密码中密钥的数量要比凯撒密码中多得多。一种密码能使用的“所有密钥的集合”称为密钥空间,所有可用密钥的总数就是密钥空间的大小,密钥空间越大,破解难度越高。

5.破译

  使用暴力破解很难破译简单替换密码,但使用频率分析的密码破译方法,就能破译简单替换密码。

三、Enigma

1.什么是Enigma

  Enigma是一种能进行加密和解密操作的机器,Enigma在德语中是“谜”的意思。Enigma是一种由键盘、齿轮、电池和灯泡组成的机器,通过机器可以完成加密解密两种操作。

2.用Enigma进行加密通信

  使用Enigma进行加密通信要求发送者和接收者各自拥有一台Enigma。发送者和接收者会实现收到一份叫做“国防军密码本”的册子,里面记载着发送者和接收者所使用的每日密码,发送者和接收者需要根据册子指示来设置Enigma,其加密通信过程如下图所示。

2.构造

  Enigma能对字母表中的字母进行加密和解密操作。当按下键盘上的一个键的时候,电信号会通过电路,点亮输出用的灯泡,如下图所示就是当输入A输出D时的情形。

  每当按下Enigma上的一个,就会点亮一个灯泡,操作Enigma的人可以读出亮的灯泡对应的字母,这个过程也就是加密。解密的时候只需要将按键和灯泡的读法互换一下,也就完成了。
  接线板是一种通过改变接线方式来改变字母对应关系的部件。接线方式是根据国防军密码本的每日密码来决定的,一天之内不会改变。
  电路中还有三个转子,每个转子是一个圆盘装置,其两侧的接触点之间通过电线相连。

3.加密

(1)设置Enigma

  根据国防军密码本查阅每日密码,按照密码来设置Enigma,也就是在接线板上接线,并将三个转子进行排列。

(2)加密通信密码

  接下来,发送者需要想出三个字母并将其加密,这三个字母称为通信密码,发送者需要在Enigma的键盘上输入两次该通信密码,通信密码也是通过Enigma加密,输入全部6个字母后,发送者需要记录下来加密后的密文记录下来。

(3)重新设置Enigma

  接下来,发送者需要根据通信密码重新设置Enigma,通信密码中的3个字母实际上代表3个转子的初始位置。

(4)加密信息

  接下来,发送者对消息进行加密。

(5)拼接

  最后由发送者将“加密后的通信密码”和加密后的消息进行拼接后,通过无线电发送给接收者。

4.解密

(1)分解

  接收者将接收到的内容分解为两个部分,即开头6个字母和其他部分。

(2)设置Enigma

  接收者根据国防军密码本查阅每日密码,按照密码来设置Enigma。

(3)解密通信密码

  接收者将开头6个字母解密,结果也就是通信密码重复两次,进而可以得到通信密码。

(4)重新设置Enigma

  接下来,发送者需要根据通信密码重新设置Enigma,通信密码中的3个字母实际上代表3个转子的初始位置。

(5)解密消息

  接下来接收者就可以对消息进行解密,并记录密文。

5.弱点

(1)Enigma每次输入时,可以通过3个转子来改变电路,但是在加密通信密码时,实际上只有1号转子会旋转;
(2)通信密码会进行连续两次的输入并加密,而且将会放在传输内容的开头6个字母,方便了破译者破译;
(3)通信密码是人为设定的,不够随机;
(4)Enigma必须使用国防军密码本。

四、小测验

1.破译凯撒密码

假设你收到了以下用恺撒密码加密过的密文,但你不知道密钥(平移的字母数),请破译这段密文。
PELCGBTENCUL

我的答案:
密钥: 0,明文:PELCGBTENCUL
密钥: 1,明文:ODKBFASDMBTK
密钥: 2,明文:NCJAEZRCLASJ
密钥: 3,明文:MBIZDYQBKZRI
密钥: 4,明文:LAHYCXPAJYQH
密钥: 5,明文:KZGXBWOZIXPG
密钥: 6,明文:JYFWAVNYHWOF
密钥: 7,明文:IXEVZUMXGVNE
密钥: 8,明文:HWDUYTLWFUMD
密钥: 9,明文:GVCTXSKVETLC
密钥:10,明文:FUBSWRJUDSKB
密钥:11,明文:ETARVQITCRJA
密钥:12,明文:DSZQUPHSBQIZ
密钥:13,明文:CRYPTOGRAPHY
密钥:14,明文:BQXOSNFQZOGX
密钥:15,明文:APWNRMEPYNFW
密钥:16,明文:ZOVMQLDOXMEV
密钥:17,明文:YNULPKCNWLDU
密钥:18,明文:XMTKOJBMVKCT
密钥:19,明文:WLSJNIALUJBS
密钥:20,明文:VKRIMHZKTIAR
密钥:21,明文:UJQHLGYJSHZQ
密钥:22,明文:TIPGKFXIRGYP
密钥:23,明文:SHOFJEWHQFXO
密钥:24,明文:RGNEIDVGPEWN
密钥:25,明文:QFMDHCUFODVM
可知,密钥为13,密文为cryptography,是“密码”的意思。

2.简单替换密码的“改良”

在上面的例子中,我们发现存在如c→C,q→Q这样,明文中的字母被替换成了相同字母的密文的情况。于是 Alice就想:如果替换表中不出现这种被替换为相同字母的情况,那么密文应该会更难被破译吧?请问 Alice 的想法正确吗?

  不正确,Alice的想法会使破译更加容易,因为原来的简单替换密码的某字母对应密文A,现在要找到某字母,有26种可能,而经过Alice改良后,则只有25种可能了,会使破译更加容易。

3.没有L的密文

第二次世界大战中,英军的密码破译者截获了一段Enigma的密文,他们发现在密文中字母L一次都没有出现。据说密码破译者根据没有L这一事实推测出了明文,那么明文到底是什么呢?
(本小测验是根据 Rudolf Kippenhahn所著的 Code Breaking:A History and
Exploration-书中的记载改编而来的)

  我的答案:密文是全为L的明文。由Enigma的原理易知,无论接线版和转子如何设置,都不可能替换为输入字母本身,所以这串密文的明文为全L的字符。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值