古典密码

古典密码密码学中的其中一个类型,其大部分加密方式都是利用替换式密码移项式密码,有时则是两者的混合。其于历史中经常使用,但现代已经很少使用,大部分的已经不再使用了。一般而言,经典密码是基于一个拼音字母(像是 A-Z)、动手操作或是简单的设备。它们可能是一种简单的密码法,以致于不可信赖的地步,特别是有新技术被发展出来后。

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

经典密码的类型

经典密码大致上分为替换式密码和移项式密码。

替换式密码

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

凯撒密码

凯撒密码是广为人知的代换密码。为了用凯撒密码法加密消息,每个密码字母集中的字母将会被其位置的后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)的典范,它只使用一个密码字母集。但我们也可以使用多字母替代式密码(英语:polyalphabetic 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

一些替代式密码牵涉使用数字而非字母。一个例子是伟大密码(法语:Grand Chiffre),其数字代表音节。还有另一种数字替代式密码,一个字母基于关键字而使用4种不同选项的数字对。相对的,符号也可以用来替代字母或音节。一个例子是12星座字母,每个星座的象征符号代表不同字母,例如,太阳的象征符号替代A、木星替代B、土星替代C。另外,点、线、破折号也可拿来使用,例如,摩斯电码,虽然它并不是真的密码,但是它的点、破折号就是代表一个字母。另一种是猪圈密码(英语:pigpen cipher),运用格子系统或线和点为字母创建一些象征符号。当然,还有其它方法也是用符号、点、破折号来创建密码字母集。

移位式密码

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

一个移位式密码的具体例子纵栏式移项密码.先选择一个关键字,把原来的消息由左而右、由上而下依照关键字长度转写成长方形。接着把关键字的字母依照字母集顺序编号,例如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,则中国式密码看起来像这样:

                           R R G T
                           A A O H  
                           F N D E  

密码文将写成:RRGT AAOH FNDE

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

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

经典密码的破译

经典密码通常很容易被破解。许多经典密码可单单经由密文而破解,所以它们容易受到唯密文攻击法攻击(英语:ciphertext-only attack)。有些经典密码(像是凯撒密码)的密钥个数有限,所以这类密码可以使用暴力破解尝试所有的密钥。替代式密码有比较大的密钥数,但是容易被频率分析,因为每个密码字母各代表了一个明文字母。多字母替代式密码密码,像是维吉尼亚密码使用多个替换防止了简单的频率分析,然而,更先进的技术卡西斯基试验就可用来破解这类密码。

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

参考文献

引用

来源

  • Hand Ciphers页面存档备份,存于互联网档案馆) Pencil-and-paper ciphers on Ciphermachines & Cryptology
  • Trinity College Department of Computer Science: Historical Cryptography Information about many different types of encryption algorithms including substitution and transposition ciphers
  • Singh, Simon. The Code Book The Science of Secrecy from Ancient Egypt to Quantum Cryptography. New York: Anchor, 2000.
  • D'Agapeyeff, Alexander. Codes and Ciphers. Oxford UP, 1939.
  • Laffin, John. Codes and Ciphers: Secret Writing through the Ages. Abelard-Schuman, 1964.
  • Wrixon, Fred B. Codes, Ciphers, and Secret Languages. New York: Bonanza Books, 1989.

参见