引子
我们日常所说的密码,其学名叫做口令,是认证方式的一种,有关认证的文章我们之后会单独用一篇文章来讲解。这里所说的密码,不是我们平常使用的密码,而是一种加密技术。
古今中外,密码在历史上做出了巨大贡献,无论是军事上还是其他方面,加密方式的演进,也见证了时代的变化。从最早的古典密码(滚筒密码、 凯撒密码、培根密码),到后来的机械加密机器(转轮密码、恩尼格玛),以至于现在的计算机密码(DES、AES、RSA),都是伴随科学进步而发展的。
人类越来越依赖于密码,而且在以后的生活中对密码的依赖程度会更高。我们身处一个充满密码的世界,手机,电脑,饭卡等都依赖密码保护我们的信息。在网上与朋友聊天,用支付软件剁手,同样需要密码把信息加密成密文来传输。接下来我们将了解密码的由来,发展,并看看前人的智慧。
我们日常所说的密码,其学名是口令,是认证的一种,认证的方式也不限于密码,指纹等,关于认证我们以后单独开一篇文章来科普,这里粗略带过。接下来的内容有关古典密码。
古典密码
古典密码的种类有很多,这里我们选择其中经典的两种:滚筒密码、凯撒密码。感兴趣的读者可以自行搜索相关知识来扩展了解其他古典密码的知识。
这两种密码是当今密码学体系的两大基石,至今使用的加密方式都是基于这两种方式进行复杂结合,即置换和代换。
滚筒密码相传发源于2400多年前的欧洲,当时,希腊两大城邦雅典和斯巴达为了争夺霸权,彼此带领着各自的盟国曾经进行了长达20多年的战争。一次偶然的机会,斯巴达抓获了一名前往波斯的雅典信使。信使身上有一条特殊的腰带。
然而斯巴达的统帅莱桑德无意间将腰带缠到一根木棍上的时候,发现这原来是一封雅典和波斯联络的密信。根据这个情报,莱桑德一方面假意和雅典和谈,另一方面发兵击败了波斯军队,然后杀个回马枪击败雅典,从而最终确立了斯巴达的霸权。
滚筒密码腰带
滚筒密码的加密原理就是双方规定好木棍的直径,写信人把腰带绑在木棍上书写,在收信人收到信之后,只需要把腰带绑到相同规格的木棍上就能还原信的内容。
而凯撒密码的名称则取自"凯撒大帝",凯撒一辈子都在于战争打交道,其常胜的战绩也同样离不开密码,这套密码的发明者我们已经不得而知,但是凯撒是个将这种密码的作用发挥到极致的人。相传凯撒和朋友之间的书信也会使用密码来加密。
凯撒密码的的解密解密方式依赖于字母表的替换,核心要义是把字母表平移,加密解密双方约定一个小于26的数字,将字母表平移,比如当平移为3时,字母表就变成了
DEFGHIJKLMNOPQRSTUVWXYZABC
使用这个新的字母表对原来的字母替换即可,解密只需要按照相反的操作,把字母表反向移动相应的位数就可以解密原有的消息。现在我们会觉得这密码的破解十分简单,凯撒怎么保证这套密码的安全性呢,事实上,在2000多年之前,能看懂文字的人非常少,而且凯撒会使用一些更高明的方式,比如使用其他国家的字母来混淆,所以凯撒密码的安全性在当时是可以保证的。
近现代密码
近现代的密码学发展迅速,从以精巧机械结构加密的恩尼格玛密码机,到随着计算机科学的发展而诞生的计算机密码,密码学产生了一个巨大的飞跃。
恩尼格玛密码机
恩尼格玛是德国在二战时期使用的密码机,键盘一共有26个键,键盘排列和广为使用的计算机键盘基本一样,只不过为了使通讯尽量地短和难以破译,空格、数字和标点符号都被取消,而只有字母键。键盘上方是标示了同样字母的26个小灯泡,当键盘上的某个键被按下时,和这个字母被加密后的密文字母所对应的小灯泡就亮了起来。这种密码是一种复式替换密码,通常的概率统计破解难以发挥作用。
1928年,波兰情报局在偶然情况下得到一部恩尼格玛,紧接着,1931年,德国的奸细将恩尼格玛的详细情报,泄露给了法国的情报人员,进而到了波兰的手里,有了这些情报,三位波兰的数学家 亨利克·佐加尔斯基、杰尔兹·罗佐基、马里安·雷杰夫斯基,这三位密码专家潜心研究,发明了一种名为“炸弹”的机械破译机器,作为对恩尼格玛的回应。
道高一尺,魔高一丈。德国人对密码机进行了改进,原本的破译工作受到了极大打击,波兰没有足够的财力来建造足够多的“炸弹”破译机。但是事件没有告一段落,这时候图灵登场了,没错,就是号称计算机界诺贝尔奖的“图灵奖”的那个图灵,图灵提出了一种特殊的破解方法,用四两拨千斤的方式将恩尼格玛请出了密码界,这段历史也成为了一个传奇。
计算机密码
对称密码DES AES
DES诞生于一场擂台赛,1976年,美国摆了场擂台战,向公众征集可靠的密码,任何人都可以提出自己的密码,也可以去破译其他人的密码,经过三年多的赛程,DES从中脱颖而出,这是IBM公司的研究成果,自此DES称为面向全世界的数据加密标准。
在大约30年之后,美国用相同的方式,选出了AES,这次的获胜者是来自比利时的两位密码学家Joan Daemen和Vincent Rijmen。
但是这种密码使用的是对称密钥,加密和解密使用的密钥是一致的,这样也会产生一些问题。这种密码的有效性依赖于密钥,随着网络的发展,密钥容易被黑客窃取,一旦密钥不能做好保密,数据的安全也就不能确保。这里用一个小故事来解释窃取密钥的原理。用户A和用户B在进行通信,A先向B发送加密的数据,这时候黑客C偷偷在网线上搭了条线,窃取了A和B的通信内容,但是这些内容是加密的,这时候,A通过网络把密钥发送给B,黑客C继续监听,窃取了密钥,这时候,拿到密钥的黑客就能轻易读取加密的数据。长江后浪推前浪,对称密码也逐渐成为了历史,它的替代者是非对称密码RSA。
非对称密码RSA
rsa的发明者
这种密码是当前适用范围最广的密码,在我们生活中,看得到或者看不到的地方都在工作,RSA加密算法是一种非对称加密算法。在公开密钥加密和电子商业中RSA被广泛使用。RSA是1977年由罗纳德·李维斯特(Ron Rivest)、阿迪·萨莫尔(Adi Shamir)和伦纳德·阿德曼(Leonard Adleman)一起提出的。当时他们三人都在麻省理工学院工作。RSA就是他们三人姓氏开头字母拼在一起组成的。这种密码有两个钥匙,分别是公钥和私钥,所谓“公钥”,就是可以向公众公开的密钥,这个密钥每个人都可以持有,但是私钥只有密码的主人才能知道,是私密的,所以称为“私钥”,由于私钥不在网络上进行分发,黑客也不能通过公钥推导出私钥的内容,数据的安全性也得到了保证。同样一个例子:用户A只需要向每个通信的用户发送公钥,因为公钥是每个人都可以获取的,也包括黑客,用户用公钥对数据加密,把加密的数据交给另一方,但是公钥只能加密而不能解密,使用公钥加密的信息需要使用私钥才能解密,所以这种密码的破解方式只有暴力破解,按照现在计算机的计算速度,差不多要等100余年才能破解加密的信息,到这时信息已经失去了它的时效性,所以信息安全得以保证。
但是量子计算机的发展,对RSA也产生了极大的挑战。RSA的原理是依赖于大质数难以被分解,做乘法容易,做除法难。但是量子计算机的计算速度大,一个拥有N量子比特的量子计算机,每次可进行2^N次运算,理论上讲,密钥为1024位长的RSA算法,用一台512量子比特位的量子计算机在1秒内即可破解。对这方面感兴趣的读者可以阅读秀尔算法相关的内容。
至此,密码的历史就说完了,当然这只是众多密码的冰山一角,一篇小文难以讲明其全貌,感兴趣的读者可以自己寻找相关文献来阅读。而现在我们的生活中越来越离不开密码,国家也出台了一部《密码法》,来规定密码的使用和保护,密码未来的发展趋势,我们尚不能说清,但是能肯定的一点是,密码的发展方向一定是向更安全的方向来发展的。文章最后,提醒大家树立安全意识,谨防钓鱼站点,近期会发布有关防范黑客攻击相关的文章,敬请期待。
参考文献
[1]杨义先,钮心忻.《安全简史》.电子工业出版社
[2]密码_百度百科