经典密码

科技工作者之家 2020-11-17

在密码学领域,经典密码是一种密码类型,过去历史上常用,但现代已经很少使用,大部分的已经不再使用了。一般而言,经典密码是基于一个拼音字母(像是 A-Z)、动手操作或是简单的设备。它们可能是一种简单的密码法,以致于不可信赖的地步,特别是有新技术被发展出来后。

简介现代的方法是用电脑或是其它数位科技,基于位元和字节上操作。许多经典密码被受尊重的人使用,像是尤利乌斯·凯撒和拿破仑,他们创造了一些常被人们使用的密码。许多密码起源于军事上,相同立场的人常使用来寄送秘密讯息。经典的方法常攻击密码文,有时候甚至不知其密码系统,也可以使用工具,像是频率分析法。有些经典密码是使用先进的机器或是机电密码机器,像是恩尼格玛密码机。1

经典密码的类型经典密码大致上分为替代式密码移位式密码

替代式密码替代式密码是字母(或是字母群)作有系统的代换,直到讯息被替换成其它难以解读的字。

凯撒密码是广为人知的替代式密码。为了用凯撒密码法加密讯息,每个密码字母集中的字母将会被其位置的后3个字母替代。因此字母A将会被字母D替代、字母B将会被字母E替代、字母C将会被字母F替代等,最后,X、Y和Z将分别的被替代成A、B和C。例如,"WIKIPEDIA"将被加密成"ZLNLSHGLD"。凯撒把字母向后移"3"位,但其他数字也可照著作。

另一种替代式密码是使用关键字,你可以选择一个单字或是短词组并去除所有的空格和重复的字母,接着把它当作密码字母集的开头。最后记得去除掉关键字的字母把其它字母接续排序。例如,如果关键字是CIPHER,则密码字母表是这样写的:

一般字母: a 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

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

维琼内尔密码凯撒密码的例子是所有单套字母替代式密码(monoalphabetic substitution ciphers)的典范,它只使用一个密码字母集。但我们也可以使用多套字母替代式密码(polyaphabetic substitution cipher),使用的是多个密码字母集。加密由两组或多组密码字母集组成,加密者可自由的选择然后用交替的密码字母集加密讯息。这么做将会增加解码的困难度,因为密码破解者必须找出这两组密码字母集。

另一个多套字母替代式密码的例子,这将更难解密,称作维琼内尔密码(Vigenère cypher),亦作维琼内尔方格,这是一种创新的加密方法。随着这个方格,它有26组不同用来加密的密码字母集。每个密码字母集就是多移了一位的凯撒密码。维琼内尔方格看起来就是这样:

A 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

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 A

C 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

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

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 D

F G H I J K L M N O P Q R S T U V W X Y Z A B C D E

G H I J K L M N O P Q R S T U V W X Y Z A B C D E F

H I J K L M N O P Q R S T U V W X Y Z A B C D E F G

I J K L M N O P Q R S T U V W X Y Z A B C D E F G H

J K L M N O P Q R S T U V W X Y Z A B C D E F G H I

K L M N O P Q R S T U V W X Y Z A B C D E F G H I J

L M N O P Q R S T U V W X Y Z A B C D E F G H I J K

M N O P Q R S T U V W X Y Z A B C D E F G H I J K L

N O P Q R S T U V W X Y Z A B C D E F G H I J K L M

O P Q R S T U V W X Y Z A B C D E F G H I J K L M N

P Q R S T U V W X Y Z A B C D E F G H I J K L M N O

Q R S T U V W X Y Z A B C D E F G H I J K L M N O P

R S T U V W X Y Z A B C D E F G H I J K L M N O P Q

S T U V W X Y Z A B C D E F G H I J K L M N O P Q R

T U V W X Y Z A B C D E F G H I J K L M N O P Q R S

U V W X Y Z A B C D E F G H I J K L M N O P Q R S T

V W X Y Z A B C D E F G H I J K L M N O P Q R S T U

W X Y Z A B C D E F G H I J K L M N O P Q R S T U V

X Y Z A B C D E F G H I J K L M N O P Q R S T U V W

Y Z A B C D E F G H I J K L M N O P Q R S T U V W X

Z A B C D E F G H I J K L M N O P Q R S T U V W X Y

为了使用维琼内尔方格加密讯息,必须先选择一个关键字,接着重复这个关键字直到跟明文相同长度。然后看明文讯息下方是哪一个密码字母集可供使用,就是明文的第一个字母下方对映到的关键字母。另外,每个密码字母集由它自己的第一个字母作为名称。

例如关键字是WORD、明文是I LOVE CRYPTOGRAPHY,则:

讯息: I LOVE CRYPTOGRAPHY

关键字: W ORDW ORDWORDWORDW

密码讯息: E ZFYA QIBLHFJNOGKU

一些替代式密码牵涉使用数字而非字母。一个例子是Great Cipher,其数字代表音节。还有另一种数字替代式密码,一个字母基于关键字而使用4种不同选项的数字对。相对的,符号也可以用来替代字母或音节。一个例子是12星座字母,每个星座的象征符号代表不同字母,例如,太阳的象征符号替代A、木星替代B、土星替代C。另外,点、线、破折号也可拿来使用,例如,摩斯电码,虽然它并不是真的密码,但是它的点、破折号就是代表一个字母。

另一种是猪圈密码 (pigpen cipher),运用格子系统或线和点为字母建立一些象征符号。当然,还有其它方法也是用符号、点、破折号来建立密码字母集。2

移位式密码移位式密码,它们字母本身不变,但它们在讯息中顺序是依照一个定义明确的计划改变。许多移位式密码是基于几何而设计的。一个简单的加密(也易被破解),可以将字母向右移1位。例如,明文"Hello my name is Alice."将变成"olleH ym eman si ecilA."。密码棒(scytale)也是一种运用移位方法工具。

一个移位式密码的具体例子columnar cipher.先选择一个关键字,把原来的讯息由左而右、由上而下依照关键字长度转写成长方形。接着把关键字的字母依照字母集顺序编号,例如A就是1、B就是2、C就是3等。例如,关键字是CAT,明文是THE SKY IS BLUE,则讯息应该转换成这样:

C A T 3 1 20 T H E S K Y I S B L U E最后把讯息以为单位,依照编号大小调换位置。呈现的应该是A行为第一行、C行为第二行、T行为第三行。然后就可以把讯息"The sky is blue"转写成HKSUTSILEYBE。

另一种移位式密码是Chinese cipher,移位的方法是将讯息的字母加密成由右而左、上下交替便成不规则的字母。范例,如果明文是:THE DOG RAN FAR,则Chinese cipher看起来像这样:

R R G T A A O H F N D E 密码文将写成:RRGT AAOH FNDE

绝大多数的移位式密码与这两个范例相类似,通常会重新排列字母的行或列,然后有系统的移动字母。其它一些例子包括Vertical Parallel和双移位式(Double Transposition)密码。

更复杂的算法可以混合替代和移位成为积密码(product cipher);现代资料区段密码像是DES反复位移和替代的几个步骤。2

经典密码的破译经典密码由于规律性很强,通常很容易被破解。许多经典密码可单单经由密文而破解,所以它们容易受到唯密文攻击法攻击(ciphertext-only attack)。有些经点密码(像是凯撒密码)的金钥个数有限,所以这类密码可以使用暴力破解尝试所有的金钥。替代式密码有比较大的金钥数,但是容易被频率分析,因为每个密码字母各代表了一个明文字母。Polyalphabetic密码,像是维琼内尔密码使用多个替换防止了简单的频率分析,然而,更先进的技术Kasiski examination就可用来破解这类密码。

另一方面,现代密码的设计可以承受更强大的ciphertext-only attacks。一个优秀的现代密码必须保证广泛潜在的攻击,包括known-plaintext attack和chosen-plaintext attack以及chosen-ciphertext attack。对于密码破解者来说,应不能够找到关键,即使他知道明文和对应的密码文、即是他可以选择明文或密码文。经典密码再也不能满足这些强大的标准,因此,有兴趣者再也不拿它来作安全应用了。2

本词条内容贡献者为:

鄢志丹 - 副教授 - 中国石油大学(华东)

科技工作者之家

科技工作者之家APP是专注科技人才,知识分享与人才交流的服务平台。