密码在我们的日常生活中应用的非常广泛.....密码的身影可谓无处不在。密码不仅保护着人类信息的安全,更涉及了大量的数学原理。在这篇文章中,我们来给大家讲讲数学密码的一万种可能性。
不知道大家有没有看过本尼迪克特·康伯巴奇主演的《模仿游戏》(The Imitation Game),电影讲述了“计算机科学之父”艾伦·图灵的传奇人生。在二战中,图灵协助盟军破译了德国密码系统“恩尼格玛”(Enigma machine),有力地扭转了二战战局。
作家麦家也曾塑造过一位智商极高的解密者——数学奇才容金珍,在《解密》一书中,他生性孤僻,却天赋秉异,并成功破解了“紫密”和“黑密”。窗外硝烟弥漫,窗内又何尝不是战火纷飞。兵荒马乱的年代里,最惊心动魄的战场,可能也就是一张白纸,一支铅笔。我们今天来讲讲密码,数学家的战场。
隐匿法
希罗多德(Herodotus)的《历史》(The Historys)里曾记载,故事开始在公元前480年。当时,波斯秘密集结了强大的军队,准备对雅典和斯巴达发动一次突袭。希腊人狄马拉图斯(Demaratus)在波斯的苏萨城里看到了这次集结,将信息刻在木板上,并用一层蜡把木板上的字遮盖住,送往希腊人,摧毁了波斯的图谋。最后,波斯海军覆没于雅典附近的沙拉米斯湾。
这是密码的雏形,也是它第一次在战争中发挥决定性作用。这种通过掩饰信息存在性的保密方法被称为“隐匿法”(steganography),这个词源自希腊文“steganos”(意为“隐蔽的”)和“graphein”(意为“书写”)。中国古代也有类似的记载。譬如把消息写在柔软的丝绸上,揉成一个小球,再附上蜡,并且让信差吞进这粒蜡球。当然,这种传递信息的方式仍然是十分不安全的,只要敌人细致认真地搜查每一个过境的人,信息迟早会败露。
移位法
因此,人们便研究出了我们现在熟悉的“密码”(cryptography),这个词源自希腊文“kryptos”(意为“隐藏”)。
这里说的隐藏,不是隐藏信息的载体,也不是隐藏信息本身,而是隐藏信息的意思,也就是说即便你清楚地看到了每一个字母,也不明白它的含义是什么。密码的构成方法又可以分为两类:移位法(transposition)和替代法(substitution)。前者只调动字母的顺序,后者则是将某些字母进行对应,从而实现加密(encryption)。下面是两种较为常用的移位法。
“篱笆式”移位法
最简单的移位法叫“篱笆式”移位法,也就是把信息内容奇数位排成一排,偶数位排成另一排,再把偶数位接到奇数位后面。我们举个例子:
最后得到的密码“MTIFNAHSU”是 “MATH IS FUN”几千个不同回文中的一个,不知道我们是如何加密的话,可能要算几天几夜才能知道我们在说些什么。斯巴达移位法
历史上第一件军用密码装置诞生于公元前五世纪的斯巴达。密码棒是一根截面是正多边形的木棒,上面缠绕着一条皮革或者羊皮纸。
发信人在密码棒上横向写下消息,再解下这条长带,当作腰带系在身上,就是一条时髦的OFF-WHITE单品。当然,为了实现信息保密,发信人还是要把有字母的一面藏在里面啦。收信人收到这条皮带后,把它缠在相同的密码棒上,就能够读取信息了。替代法
恺撒密码法(Caesar cipher)
恺撒不仅仅精通兵法,更精通密码学。瓦莱里·普罗布斯(Valerius Probus)写了一篇论文专门讨论他的密码。这位罗马皇帝习惯把信息内容的每个字母改成其后三位的字母,比如A变成D, B变成E。我们再拿同样的信息作为例子:
我们成功地将这个信息转化成了一条“乱码”。在这里,我们虽然只讨论了移动三位的凯撒密码,但是这类密码的挪移法并不限于一种,如果使用26个英文字母,它的挪移位数可以达到25种之多,也就是说,同一条信息经过挪移后,我们可以得到25种不同的密码。实际上,每一种密码法都可以视为一般加密法,它是算法(algorithm)和一把钥匙(key)的结合。就拿凯撒算法来说,首先我们知道算法本身并不复杂,如果敌人拦截了我们的信息,并且怀疑这个信息是用凯撒算法加密的,那么他只要尝试25种不同的移位方法就能破解信息。这里的25种移位方法就是我们说的“钥匙”。假设我们有100,000,000,000,000把钥匙,且只有发送和接收消息的我们知道哪把钥匙有用,那么即便敌人截取了我们的信息,找到了正确的算法,也只能干瞪眼。
钥匙词组(key phrase)根据凯撒算法的原理,我们尝试将字母进行一一对应。首先我们选定一个喜欢的词组,比如“MATH IS FUN”然后去掉空格和重复的字母,我们得到了“MATHISFUN”。再以这些字母作为密码字母集的起始字母,得到新的密码表。
当然了,这样的单套字母替代式密码在秘密通讯界通用了一千年,直到来自东方的神秘力量打破了这个密码的独大地位。阿拉伯的密码分析学家阿拉伯学者发明了密码分析学(cryptanalysis),旨在在无从得知钥匙的情况下破译信息。编码专家在研发秘密数学的新方法时,密码分析学家却在冥思苦想这些方法的弱点,以破解信息的秘密,就像《解密》里容金珍和他的老师。单套字母替代式密码在盛行了上千年之后,终于迎来了它必然的终点。
值得一提的是,宗教学的发展也促进了密码分析学发挥作用。
神学家在研究《古兰经》的时候,想为这些天启编订年代顺序。他们的方法也很有趣,计算了各个单词在每一篇启示的出现频率。这个方法的原理是:因为有些单词在晚些时候出现,如果一篇启示有很多这样的单词,那么它在较晚时候出现的几率就很大。对密码学真正造成影响的是,这些宗教学者甚至分析精确到了单个字母,并且确定个别字母出现的频率较高。你可能已经猜到了,字母出现频率的差异成为了单个字母替代式密码的致命弱点。倘若我们知道加密信息所使用的语言,只需要找出一篇至少一页长的相同语言的明文文章,计算每个字母出现的次数。把最常出现的成为“一号”,次常出现的称为“二号”,以此类推,直到明文样本所有的字母都整理完毕。同样的,整理我们的密码文,再一一对应,就能找到我们的单套字母对应规律。事实上,频率法的威能远大于此。
苏格兰玛丽女王的密码
看过英剧《玛丽女王》的读者可能很熟悉这段历史。
1586年10月15 日,玛丽女王(Mary Stuart)身着肃穆的黑色天鹅绒,独坐在被告席上等待她的审判。原因是一群年轻的英格兰天主教贵族试图行刺英国伊丽莎白一世(Elizabeth I.),让同为天主教徒的玛丽女王取而代之。法庭试图证明他们的名义领袖玛丽事实上首肯并参与了这项行动。好在玛丽一向谨慎地使用密码与教徒沟通,如果这些信件不被破解,就不能称为呈堂证供,斩首的刑罚也无从说起。
玛丽女王的密码并不是单一的字母替代法,而是一种命名法。有23个符号来代替英文字母,36个符号代替特定词组等等。然而久而久之,英格兰方面仍然通过频率分析法成功破译了玛丽女王的密码,定了她的罪。
还记得《模拟游戏》里,图灵的机器第一次使用,并不成功。小酒馆里听到监听的姑娘提到总是出现的一个词组,他灵机一动。对应了“Heil, Hitler!”之后,通过频率分析法,一天就破译了德军的密码。编码和解码永远是此消彼长的,所谓道高一尺,魔高一丈。拥有频率分析法之后,当然也应该有更安全的编码算法。你想到了吗?
* 本文内容属罗博深数学及其母公司Expii, Inc所有,如需转载请联系罗博深数学团队,未经授权请勿转载。欢迎转发本文与全世界的朋友分享数学、教育的乐趣。
原标题:《滴——您的密码安全系数极低,请立即修改!》