A. 密码那些事儿|(五)换个位置,面目全非
移位法和替代法大约5000年前出现,但直到9世纪才被阿拉伯人发明的频率分析法破解,中间隔了足足有4000年。在另一边的欧洲,实际上直到16世纪,都还没掌握这种破解方法。从这里我们也能感受到,阿拉伯文明曾经的辉煌。
移位法很简单。我举个例子,比如你的答乎电话号码13911095871,把每个数字都在数列中往后加1,那么1变2,2变3,加密后就变成了24022106982。
13911095871叫做明文,24022106982则是它对应的密文。
字母的移位也是同样的道理,因为字母是遵循着abcdef……xyz的顺序排列,一共26个,看起来会比单纯的数字移位复杂一些,但本质上仍是一样的。
比如要对iron man加密,加密规则选择每个字母都向后移动3位, “iron man”就变成了“lurq pdq”。
没有经验的人乍看一下,完全就是乱码,实际上它只不过做了基础加密而已。这就是最基础的移位法。
大约在公元前700年左右,出现了用一种叫做Scytale的圆木棍来进行保密通信的方式。这种Scytale圆木棍也许是人类最早使用的文字加密解密工具,据说主要是古希腊城邦中的斯巴达人(Sparta)在使用它,所以又被叫做“斯巴达棒”。
相传雅典和斯巴达之间的伯罗奔尼撒战争中,斯巴达军队截获了一条写满杂乱无章的希腊字母的腰带,斯巴达将军在百思不得其解之际,胡乱将腰带缠到自己的宝剑上,从而误打误撞发清竖悉现了其中隐藏的军机。这就是斯巴达密纤缓码棒的由来。
“斯巴达棒”的加密原理就是,把长带子状羊皮纸缠绕在圆木棍上,然后在上面写字;解下羊皮纸后,上面只有杂乱无章的字符,只有再次以同样的方式缠绕到同样粗细的棍子上,才能看出所写的内容。
比如像上图那样,在缠好的布带上写上“ YOU ARE IN DANGER”,然后再拆下来,布带上的文字顺序就变成了“YIONUDAARNEGER”,完全看不出任何头绪,这样就起到了加密的作用。
2100年前,古罗马的执政官和军队统帅恺撒(Julius Caesar,公元前100—前44)发明了一种把所有的字母按字母表顺序循环移位的文字加密方法。例如,当规定按字母表顺移3位的话,那么a就写成d,b写成e,c写成f,…,x写成a,y写成b,z写成c。单词Hello就写成了Khoor。如果不知道加密方法,谁也不会知道这个词的意思。解密时,只需把所有的字母逆移3位,就能读到正确的文本了。
上图就是根据恺撒加密法的原理而制作的字母循环移位盘。可以根据需要设定加密时移位的位数,以供加密或解密时快速查询。据说恺撒当年就是使用这种加密方法与手下的将军们通信的。
从密码学的角度来看,虽然恺撒加密法的规则很简单,然而,恺撒加密的思想对于西方古典密码学的发展有着很大影响。
事实上,直到第二次世界大战结束,西方所使用的加密方法原理大多与恺撒加密法类似,只是规则越来越复杂而已。
尽管移位法加密在西方得到了很普遍的应用,但在中国的史书上却很少记载,各位朋友可以想一想是为什么?
感兴趣的朋友们不妨在评论区一起聊一聊。
下一次,我们继续了解移位法和替代法的故事。
往期文章:
密码那些事儿|(四)隐藏的消息
密码那些事儿|(三)“风语者”——从未被破解的密码
密码那些事儿|(二)密码学发展的七个阶段
密码那些事儿|(一)无所不在的密码
本人是官方授权会员推广专员,点击 会员专属通道 成为会员,您将会获得钻奖励及诸多权益!
《钻奖励调整公告》