恺撒大帝的秘密
———替代之恺撒码
恺撒大帝是古罗马共和国末期著名的统帅和政治家。虽然他一生从未登上过皇位,但是直到今天在西方国家,他的名字仍是君主的代名词。他博学多才、文武双全,既是卓越的军事家又是雄辩的文学家。在掌权期间,恺撒南征北伐使罗马的版图得到了空前的扩大,他还把自己的亲身经历写成著名的战争回忆录--《高卢战记》和《内战记》。而现在我们使用的公历就是从他所采用的"儒略历"演变过来的。当然最富娱乐性的还有他和"埃及艳后"的一段风流情史。
话题好像有点扯远了,不过今天要讲的是恺撒大帝使用的密码--恺撒码。
大家都知道,密码最早就是应用在军事上的。在恺撒大帝出征时,为了避免军令落入敌军手中而泄漏军情,他自己发明了一种单字替代密码。所谓"单字替代密码"就是把明文中的每个字母用密文中的对应字母替代,明文字符集与密文字符集是一一对应的关系。
恺撒码用每个字母其后的第三个字母表示,解码的过程只需把密文字母前移3位即可。要注意的是字母的顺序是循环的,所以Z后面又回到A。其密码本如下
明文:ABCDEFGHIJKLMNOPQRSTUVWXYZ
密文:defghijklmnopqrstuvwxyzabc
如果指定一个数字给每个字母(a=0,b=1,…z=25),则可得明文P与密文C的关系式
C=E(p)=(p+3) mod 26, P=D(c)=(c-3) mod 26
例如,明文:CRACK IT
可得,密文:FUDFN LW
我们可以移动任意长度,即 C=E(p)=(p+K) mod 26??? K的范围是1~25
在恺撒的时代只有贵族才识字,要瞒天过海是很容易的。但是在今天恺撒码就变得很不安全。因为K仅有25种可能,只要知道是用恺撒码加密,那尝试25次就可以得到明文。因此,由恺撒码又出现了其它的替代方法。