密码学原理-篇1:古典密码学
关键词: 恺撒密码 单表替换密码 多表替换密码 重合指数
古典密码学之所以被称为古典,是因为区别于现代密码学,这些密码理论虽然很有价值,但是现在很少使用。因此,学习古典密码学,主要是学习前人设计密码的思路,和他们成功或失败的历史。
一、恺撒密码
在古典密码学中,一个很重要的实例就是恺撒密码。
根据罗马早期纪传体作家盖乌斯·苏维托尼乌斯的记载,恺撒曾经用下述方法对重要的军事信息进行加密:
如果信件需要保密,信中便用暗号,也即是改变字母顺序,使局外人无法组成一个单词。如果想要读懂和理解它们的意思,得用第4个字母置换第一个字母,即以D代A,余下的以此类推。
恺撒的加密策略很简单,就是把明文中的每个字母按照字母表顺序向后移动若干位,这个位数被称为偏移量 k k k;如果移动后超过了字母表中最后一位(对于英文字母表而言就是’Z’),就从A重新开始下一轮。
例如,在偏移量为3时,A将会替换为D,D将会被替换为G,Z会被替换为C;明文“HIT”会被转换为密文“KLW”。
k = 3 P l a i n t e x t A B C D ⋯ W X Y Z C i p h e r T e x t D E F G ⋯ Z A B C \begin{array}{c|lll} {k=3}\\ \hline {Plaintext}&{A}&{B}&{C}&{D}&{\cdots}&{W}&{X}&{Y}&{Z}\\ {CipherText}&{D}&{E}&{F}&{G}&{\cdots}&{Z}&{A}&{B}&{C}\\ \end{array} k=3PlaintextCipherTextADBECFDG⋯⋯WZXA