嘘~这是我们的秘密!——一起来学《密码学》,开篇
发表于2016-04-07
写在前面的话
提到密码学,我便感到愧疚,愧对我大学期间的导师张方国。是他将我领入了密码学的天地,而我自2011年毕业后工作至今,感觉越来越偏离了当初兴趣方向。
在跟spraydong进行PDI面谈制定本期IDP时,我毫不犹豫地选择了密码学。作为刚加入鹅厂不久的新同学,借助KM平台,督促自己,不忘初心,不忘成长,同时学会分享。
关于密码学的学习,大家可以先拜读下bisonliao三年前在KM上发表的读书笔记(传送门),相信大家一定会有所收获。
下面和我一起遨游在密码学的知识海洋中,大家准备好了吗?
什么是密码学
关于密码学的定义,大家随便百度一下便可知道(为毛是百度?)。
密码学的英文是Cryptography,是由希腊语kryptós“隐藏的”和gráphein“书写”派生而来的,是研究如何隐密地传递信息的学科。
Cryptography is the practice and study of techniques for secure communication in the presence of third parties called adversaries.(此段来自wiki,译:找谷歌吧~)
著名的密码学者Ron Rivest解释道:“密码学是研究如何在敌人存在的环境中通讯”。
基本概念:
· 密码学(Cryptography),对信息进行编码实现隐蔽信息的一门学问。
· 密码分析学(Cryptanalytics),研究分析破译密码的学问。两者相互对立,而又互相促进地向前发展。
· 保密学(Cryptology):研究信息系统安全保密的科学。它包含以上两个分支。
· 密码分析(Cryptanalysis),截收者试图通过分析从截获的密文推断出原来的明文或密钥。
· 密码分析员(Cryptanalyst),从事密码分析的人。
· 被动攻击(Passive attack),对一个保密系统采取截获密文进行分析的攻击。
· 主动攻击(Active attack),非法入侵者(Tamper)、攻击者(Attacker)或黑客(Hacker)主动向系统窜扰,采用删除、增添、重放、伪造等窜改手段向系统注入假消息,达到利已害人的目的。
为什么要研究密码学
保密,自古以来就被非常重视:“事成于密,而败于泄”。
密码在古代就被用于传递秘密消息。在近代和现代战争中,传递情报和指挥战争均离不开密码。此外,外交斗争中也离不开密码。(PS:密码学就是在这一次次规模逐渐升级的战争中成长和进化的。)
在当今信息化社会中,Internet一方面成为人们离不开的信息工具,同时也成为公开的攻击对象目标和便利工具。其中的安全威胁,包括但不限于:信息泄露、破坏信息的完整性、拒绝服务、非法使用(非授权访问)、窃听、业务流分析、假冒、旁路控制、木马……本宝还能愉快地上网吗?
随着时代的发展,密码已经从军事走向日常生活,特别是Internet,具体表现在电子邮件、电子商务、电子政务、接入控制、软件保护、版权保护、云计算等等。
密码学中都有些啥
密码学以1976年为界,分为古典密码学(Classic Cryptography)和现代密码学(Modern Cryptography)。标志性事件是公钥密码学的提出和美国数据加密标准DES的颁布,其标志着密码学成为了一门科学,研究从军事和外交走向了公开。
古典密码学
1、远古密码(Anicent Ciphers)
· 至少4000 多年前古埃及人在金字塔中加密象形文字,这都是些什么玩意啊~~~简直了~~~
· 古中国周朝兵书《六韬.龙韬》也记载了密码学的运用,其中的《阴符》和《阴书》便记载 了周武王问姜子牙关于征战时与主将通讯的方式。
2、手工密码(Manual Systems)
· 斯巴达密码棒
曾有这样一件事,斯巴达是古希腊的一个城邦,里面的人以骁勇善战著称。有一天,距城很远的兵营中来了一个专程从斯巴达城赶来送信的奴隶,兵营中有位名叫莱桑德的将军读了信以后,感到很失望,因为信中毫无重要消息,就随手把它扔到一边去了。可是,刹那间,将军锐利的目光好像发现了什么,他立即命令侍卫人员暂时回避,然后对这个奴隶说:“把腰带给我。” 这是一条普通的腰带,只是与通常的略有不同,在腰带周围雕刻着一串字母,看上去毫无意义,大概只是做装饰之用罢了。但当将军把腰带螺旋式地绕在一根棍棒上时,奇迹出现了。显现在棍棒上的字母不再是无意义的了。它告诉将军一个极端重要的消息:斯巴达当时的同盟者波斯人正在搞阴谋,企图谋反夺权。于是将军立即带着他的队伍急速返回斯巴达城,粉碎了这起叛乱。
· 凯撒密码
明文:VENI VIDI VICI
密文:YHQL YLGL YLFL
这种加密方式,在现在看来那是相当地简单:将明文中的每个字母用字母表顺序的其后第三个字母来替换。
明文意思,在此传送。
· 达·芬奇密码
达·芬奇设计的密码筒内有一个装着醋液的容器,如果强行砸烂密码筒,醋液就会流出溶解莎草纸。要打开密码筒,必须解开一个5位数的密码,密码筒上有5个转盘,每个转盘上都有26个字母,可能作为密码的排列组合多达11881376种。
· 维吉尼亚密码——多表替换密码
意大利学者贝拉索1553年发明,维吉尼亚在1586年将其改进。久而久之,贝拉索密码就被叫成了维吉尼亚密码。
查尔斯·巴比奇(Charles Babbage,1791-1871),英国数学家,于1854年成功破解了维吉尼亚密码,结束了维吉尼亚200多年的神话。
3、机械密码(Machine Ciphers)
· 1790年代,杰弗逊圆盘(Jefferson cylinder)
· 1860年代,威特斯通圆盘(Wheatstone disc)
4、电子机械密码(Electro-machine Systems)
又称转轮密码,用一组转轮或接线编码轮所组成的机器,用以实现长周期的多表代换密码。最有名的代表:Enigma(恩尼格玛)和Purple(紫密)。
· Enigma
1918年德国发明家亚瑟·谢尔比乌斯和理查德·里特创办了一家新技术应用公司,谢尔比乌斯利用电气技术发明一种能够自动编码的机器,并给自己所发明的电气编码机械取名“恩尼格玛”(ENIGMA,意为哑谜)。
恩尼格玛在1920年代早期开始被用于商业,后来也被一些国家的军队与政府采用过,在这些国家中,最著名的是第二次世界大战时的纳粹德国。
二战中,德国军队大约装备了三万台ENIGMA。“闪电战”的提出者,德国装甲部队之父,纳粹德国的海因茨·古德里安(Heinz Guderian)将军在指挥车上。在照片的左下方我们可以看见一台ENIGMA。
二战中帮助英国破译恩尼格玛密码机的密码的最大功臣,非艾伦·麦席森·图灵(Alan Mathison Turing,1912.6.23-1954.6.7)莫属。他是英国数学家、逻辑学家,被称为计算机之父,人工智能之父。有“计算机界的诺贝尔奖”之称的图灵奖,便是以他为名。
· Purple
紫密,这货是日本的!
民间流传的紫密破译是在珍珠港事件之前。国民党戴笠曾破获日本军事情报得知日本战争将进攻珍珠港,送给美国大使馆却被搁置。
现代密码学
自1976年公钥密码学(Public-Key Cryptography)由Whit Diffie和Marty Hellman提出后,便涌出大量的加密算法。
岁月是把杀猪刀啊~~~~
· 流密码:RC4、A5
· 分组密码:DES、3DES、IDEA、AES
· 公钥密码:RSA公钥密码系统、离散对数公钥密码系统(ElGamal密码系统、椭圆曲线密码系统ECC、超椭圆曲线密码系统HECC)
· Hash函数:MD5、SHA-1
· 消息认证:HMAC
· 数字签名:RSA数字签名体制、ElGamal数字签名体制等等
关于现代密码学加密算法的剖析,敬请期待~~~