“密码错误,账号已被锁定,请持本人身份证至某某线下服务柜台解锁。”
上面这段话,相信不少人看到之后会血压飙升。随着各种网上办公、无纸化平台的普及,我们需要输入密码的情况也越来越多,密码简单不安全,密码复杂记不住,密码这个小东西,让我们又爱又恨。那么密码是怎么来的?密码和现在的计算机算法之间有什么关系?今天的趣味IT小知识,带你了解密码的前生今世。
密码的诞生相当久远,可以说有了文字,就有了给文字加密的需求,密码便应运而生。在古代战争中,需要靠探子或斥候来传递军情。但这是一项非常危险的工作,敌人很可能会在半途截胡,然后拿到重要的情报。为了保护情报安全,古人发明了密码。在距今2000多年前的希腊,斯巴达人发明了塞塔式密码(又叫滚筒密码)。具体的书写方式为将一张纸条以一定的倾斜度绕到一根棱柱上,然后从左到右水平书写内容,写一个单词就转一面,当一行写满单词时就换一行按照相同方法操作,这样将纸条解下来之后,文字便会变成乱码,接到信息的人只需要用用一根相同的棱柱缠绕之后便能从乱码中得知信息。
另一种著名的古典密码就是凯撒密码,和塞塔式密码一样,也是在战场上诞生的,与我们大家都熟悉的历史名人——凯撒大帝有关。据说凯撒大帝在战场上使用一种密文来传递战争情报,这种密文的原理就是将字母差别对应,比如将A往后移两格变成C,那么D按照同样的原理就会变成F,and这个单词按照这种方式加密之后会变成cpf。但是这种密码太简单了,非常容易破译,所幸当时识字的人不多,还是具有一定的保密性。
其实咱们中国古代也有密码,各种藏头诗、藏尾诗、谶语等,其实也算是密码的表现方式。在民国背景的谍战片中,我们常常能看到这样的情境:我党的地下同志与线人在书店街头,给线人送了一本夹杂了乱码字条的《封神演义》,线人拿到之后根据字条上的提示,去《封神演义》上寻找对应的字,并组成一条情报,这就是密码的运用。
古典时代的密码原理基本上都是简单的替代和置换,通常谈不上什么算法,这样的密码安全性不够。到了近现代,随着电子计算机的发明,人类的计算能力获得了空前提升,密码学也有了长足发展。一篇名叫《保密系统通信理论》(1949年)的论文奠定了近代密码学的理论根基。近代的密码通常是通过大量复杂的算法进行加密,依靠人力很难将其破解。在https那期中,我们讲过对称加密与非对称加密。对称加密具有代表性的是1976年DES,该加密算法起源于一场官方举办的密码擂台赛,靠给信息加密和破解来角逐出最厉害的加密算法,最终,DES获此殊荣。在DES得奖的第二年,麻省理工学院提出了第一个非对称加密算法RSA,该算法因为引入了公钥,较之前的算法而言更复杂,也更加安全。
就和矛与盾一样,在加密的方式不断进化的同时,解密的方法也在随之发展,传统的加密算法虽然破解方式有难有易,但理论上而言,都是可以破解的,并不能做到100%的安全。但是利用量子纠缠特性的量子加密法可以做到无条件安全,是未来密码学前进的方向。