在计算机出现之前, 密码学由基于字符的密码算法构成, 各种密码算法是字符之间的互相替代或互相之间的换位, 好的密码算法通常结合这两种方法, 每次进行多轮运算。 这些算法的安全性都基于算法的保密性, 一旦算法被泄露, 就很容易被破译。 在今天看来, 它们都是比较简单的密码。 现在加密算法虽然复杂得多, 但加密原理没变, 因此了解过去的密码算法仍然很有意义。
1. 换位密码
换位密码是指在简单的纵行换位中, 明文以固定的宽度水平地写在一张图表纸上, 密文按垂直方向读出, 其解密就是将密文按相同的宽度垂直地写在图表纸上, 然后水平地读出明文。
例如, 周期为e 的换位是将明文字母分组, 每组有e 个字母, 密钥分别是1,2,…,e 的一个置换f。 然后, 按照公式Yi =Xf(i)(i=1,2,…,e), 将明文X1X2X3…加密为密文Y1Y2Y3…。 解密过程则按照公式Xj =Yf -1(j)(j=1,2,…,e) 进行。 例如, 有明文:
COMPUTER GRAPHICS MAY BE SLOW BUT ATLEASTTIE'S EXPENSIVE
对其进行周期为10 的换位, 因此分组为
C O M P U T E R G R
A P H I C S M A Y B
E S L O W B U T A T
L E A S T T I E S E
X P E N S I V E
得到密文: CAELX OPSEP MHLAE PIOSN UCWTS TSBTI EMUIV RATEE GYASR BTE
由于密文字符和明文字符相同, 因此对密文的频数分析将揭示与英语字母有相似的或然值。 这为密码分析者提供了很好的线索, 他能用各种技术去决定字母的准确顺序, 从而得到明文。 密文通过两次换位密码, 极大地增强了安全性。
虽然现代密码也用换位, 但由于它对存储要求很大, 且有时还要求消息为某个特定的长度, 因此比较麻烦。(www.daowen.com)
2. 恺撒密码
恺撒密码的替换方法是排列明文和密文字母表, 密文字母表示通过将明文字母表向左(或向右) 移动一个固定数目的位置。
例如, 若偏移量是左移3 (解密时的密钥就是3), 则有
明文字母表: ABCDEFGHIJKLMNOPQRSTUVWXYZ。
密文字母表: DEFGHIJKLMNOPQRSTUVWXYZABC。
使用时, 加密者查找明文字母表中需要加密的消息中的每个字母所在位置, 并且写下密文字母表中对应的字母。 需要解密的人则根据事先已知的密钥反过来操作, 得到原来的明文。 例如,
明文字母表: THE QUICK BROWN FOX JUMPS OVER THE LAZY DOG。
密文字母表: WKH TXLFN EURZQ IRA MXPSV RYHU WKH ODCB GRJ。
恺撒密码的加密、 解密方法还能通过求余的数学方法进行计算。 首先将字母用数字代替, A=0,B=1,…,Z=25。 此时, 偏移量为n 的加密算法即
En(x) =(x+n)mod 26
解密法为
Dn(x) =(x-n)mod 26
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。