古典密码

古典密码是密码学中的其中一个类型，其大部分加密方式都是利用替换式密码或移项式密码，有时则是两者的混合。其于历史中经常使用，但现代已经很少使用，大部分的已经不再使用了。一般而言，经典密码是基于一个拼音字母（像是 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
维吉尼亚密码.
凯撒密码的例子是所有单字母替代式密码（）的典范，它只使用一个密码字母集。但我们也可以使用多字母替代式密码（），使用的是多个密码字母集。加密由两组或多组密码字母集组成，加密者可自由的选择然后用交替的密码字母集加密讯息。这么做将会增加解码的困难度，因为密码破解者必须找出这两组密码字母集。
另一个多字母替代式密码的例子，这将更难解密，称作维吉尼亚密码（），亦作维吉尼亚方格，这是一种创新的加密方法。随著这个方格，它有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
一些替代式密码牵涉使用数字而非字母。一个例子是伟大密码（），其数字代表音节。还有另一种数字替代式密码，一个字母基于关键字而使用4种不同选项的数字对。相对的，符号也可以用来替代字母或音节。一个例子是12星座字母，每个星座的象征符号代表不同字母，例如，太阳的象征符号替代A、木星替代B、土星替代C。另外，点、线、破折号也可拿来使用，例如，摩斯电码，虽然它并不是真的密码，但是它的点、破折号就是代表一个字母。另一种是猪圈密码（），运用格子系统或线和点为字母建立一些象征符号。当然，还有其它方法也是用符号、点、破折号来建立密码字母集。
移位式密码.
移位式密码，它们字母本身不变，但它们在讯息中顺序是依照一个定义明确的计划改变。许多移位式密码是基于几何而设计的。一个简单的加密（也易被破解），可以将字母向右移1位。例如，明文"Hello my name is Alice."将变成"olleH ym eman si ecilA."。密码棒（）也是一种运用移位方法工具。
一个移位式密码的具体例子纵栏式移项密码。先选择一个关键字，把原来的讯息由左而右、由上而下依照关键字长度转写成长方形。接著把关键字的字母依照字母集顺序编号，例如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。
另一种移位式密码是中国式密码（），移位的方法是将讯息的字母加密成由右而左、上下交替便成不规则的字母。范例，如果明文是：THE DOG RAN FAR，则中国式密码看起来像这样:
 R R G T
 A A O H 
 F N D E
密码文将写成：RRGT AAOH FNDE
绝大多数的移位式密码与这两个范例相类似，通常会重新排列字母的行或列，然后有系统的移动字母。其它一些例子包括Vertical Parallel和双移位式（）密码。
更复杂的演算法可以混合替代和移位成为积密码（product cipher）；现代资料区段密码像是DES反复位移和替代的几个步骤。
经典密码的破译.
经典密码通常很容易被破解。许多经典密码可单单经由密文而破解，所以它们容易受到唯密文攻击法攻击（）。有些经典密码（像是凯撒密码）的金钥个数有限，所以这类密码可以使用暴力破解尝试所有的金钥。替代式密码有比较大的金钥数，但是容易被频率分析，因为每个密码字母各代表了一个明文字母。多字母替代式密码密码，像是维吉尼亚密码使用多个替换防止了简单的频率分析，然而，更先进的技术卡西斯基试验就可用来破解这类密码。
另一方面，现代密码的设计可以承受更强大的唯密文攻击。一个优秀的现代密码必须保证广泛潜在的攻击，包括known-plaintext attack和chosen-plaintext attack以及chosen-ciphertext attack。对于密码破解者来说，应不能够找到关键，即使他知道明文和对应的密码文、即使他可以选择明文或密码文。经典密码再也不能满足这些强大的标准，因此，有兴趣者再也不拿它来作安全应用了。