古典密码学介绍-1-概论与替换式密码

什么是古典密码学

古典密码是密码学中的其中一个类型,其大部分加密方式都是利用替换式密码或移项式密码,有时则是两者的混合。

https://zh.m.wikipedia.org/wiki/古典密碼

简而言之,古典密码学处理的对象是字符(特别是拼音文字字符),而现代密码学则是更数学化的。
古典密码学有时候是和象棋,字谜,甚至语言学等分不开关系,这让它少一些严肃而多了一些浪漫。

古典密码的类型

替换式

替换式密码指将明文字符映射到对应的密文符号表中的密码。

单字母替换式

凯撒密码 Caesar Cipher

凯撒密码可能是古典密码里最出名的,它也可能是历史上第一个实际投入到战争中并起作用的密码。
它很简单,只需将字母表向后推移即可。
示例:

b c d e f g h i j k l m n o p q r s t u v w x y z
1
密文:d e f g h i j k l m n o p q r s t u v w x y z a b c

以上示例给出的是凯撒所使用的密码在英文字母表中的对应。
例如:对于 Apple 采用上述加密后对应的单词为 Dssoh
凯撒密码还有一些亲戚:例如

猪舍密码 Pigpen Cipher

这个奇怪名字的密码来源是它的符号表(如图,来自维基百科: 猪舍密码 。)
猪舍密码表
它的名字和阴谋论有关,它的另一个名字揭示了这一点:共济会密码。
早在1700年代,共济会就开始经常使用这种密码保护一些私密纪录或通讯。

关键词替换密码

觉得一个个换顺序太单调了?这里有个凯撒密码的略微升级版:用关键词改变顺序。
将你选择的关键词去除重复字母后写在对应表开头,然后按顺序(或者你愿意的话,乱序)去除出现过的字母写下去,得到对应表。
例如,我们选择 Duvet 作为关键词,则:

b c d e f g h i j k l m n o p q r s t u v w x y z
1
密文:d u v e t a b c f g h I j k l m n o p q r s w x y z

这些非常简单的密码有一个共同的特点:一一对应。
然而这也给它们带来了一个共同的巨大的弱点:字母在同一语言中出现的频率是不同的,以英/法语为例,它们中最常出现的是字母’E’,因此,文中出现次数最多的符号便很大概率代表’E’,由此类推,便可获得整个密码表,这种方法被称为频率分析。
为了对抗这种操作,后来又演变出了

多射密码

简单来说,就是一个字母可以对应多个符号,从而打乱单个字符频率。更有甚者,还可以插入空字符(指密文中无意义的字符),从而使频率分析歇菜。 这类中最出名的便是伟大密码。
这是替换密码发展的结束了么?显然不会。接下来还有:

多字母替代式密码

加密由两组或多组密码字母集组成,加密者可自由的选择然后交替使用多个密码字母集加密消息。这么做将会增加解码的困难度,因为破解者必须找出全部密码字母集才能解读。

另一个多字母替代式密

维吉尼亚密码

亦作维吉尼亚方格。
这是一个更难解读的多字母替代式密码的例子:使用的是多个密码字母集。这也是一种创新的加密方法。随着这个方格,它有26组不同用来加密的密码字母集。每个密码字母集就是多移了一位的凯撒密码。
维吉尼亚方格看起来就是这样:
维吉尼亚方格
使用时先选择一个关键字,接着重复这个关键字直到跟明文相同长度。然后看明文消息下方是哪一个密码字母集和关键字上的字母对应,并写下对应字母。
例如,假设明文为:

1
2
3
选择某一关键词并重复而得到密钥,如关键词为LEMON时,密钥为:

~~~~LEMONLEMONLE

对于明文的第一个字母A,对应密钥的第一个字母L,于是使用表格中L行字母表进行加密,得到密文第一个字母L。类似地,明文第二个字母为T,在表格中使用对应的E行进行加密,得到密文第二个字母X。以此类推,可以得到:

1
2
3
明文:ATTACKATDAWN
密钥:LEMONLEMONLE
密文:LXFOPVEFRNHR

解密的过程则与加密相反。例如:根据密钥第一个字母L所对应的L行字母表,发现密文第一个字母L位于A列,因而明文第一个字母为A。密钥第二个字母E对应E行字母表,而密文第二个字母X位于此行T列,因而明文第二个字母为T。以此类推便可得到明文。
显然,如果关键字长于原文这个密码几乎是不可破解的。但是密钥的重复会带来问题:会有the之类的小词被加密,透过它们便可找出关键字。这便是卡西斯基实验
如果更丧心病狂一点,还有弗里德曼试验来更高级的用概率论解决。
替换式密码的好处是可以设计方便的器具,例如著名的密码轮和可称为替换式密码巅峰的恩尼格玛
这个值得我们之后单开一篇讲述。
(本文中使用大量公有领域及维基百科内容)

 上一篇