古典密码

古典密码是密码学中的其中一个类型，其大部分加密方式都是利用替换式密码或移项式密码，有时则是两者的混合。其于历史中经常使用，但现代已经很少使用，大部分的已经不再使用了。一般而言，经典密码是基于一个拼音字母（像是 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.