那些不可思议的古典密码学
密码学(Cryptography),是一门将信息进行加密处理与传递,以及分析加密信息的学科。根据以 RSA 为代表的公钥加密体系的出现,可以将密码学的发展过程分为古典密码学与现代密码学两部分。古典密码学以「置换法」与「替换法」为基础,多应用于军事与情报领域;现代密码学则建立在数学、计算机与通信科学的基础上,除了加密信息之外,数字签名、数据完整性、身份认证等也是现代密码学的研究课题。
古典密码学(Classic cryptography)和现代密码学(Modern cryptography)的主要差别在于计算机的使用,一般来说,古典密码学是基于字符的,而现代密码学是基于二进制位的。
密码学的概念与人们平时登录网站、使用银行账户的「密码」并不相同。这些用于身份认证的「密码」,更准确的翻译是通行词(password),它是现代密码学的诸多应用之一。
一般来说,古典密码学主要包括两类,即替换和置换。
置换法依照一定的规则,改变原始信息中的字母排列顺序;替换法将原始信息中的字母按照一定的规则替换成其他字母。置换法与替换法的安全性较差,古阿拉伯的学者们开创了破译加密信息的科学 — — 密码分析学,通过频率分析的方法破解替换式加密法。
代换
代换密码是将明文中的字符替代成其他字符,即替代转换,若整个加密过程中每个字符采用同一张表替代,则为单表代换密码,类似的,若整个加密过程中每个字符采用不同的表替代,则为多表代换密码,典型的单表代换密码有凯撒密码、培根密码等,多表代换密码有维吉尼亚密码等。
凯撒密码
凯撒密码(Caesar cipher)就是将明文中的所有字母都在字母表上向后(或向前)按照一个固定数目进行偏移后被替换成密文。例如,当偏移量为3时,所有的字母A将被替换成D,B变成E,以此类推。明文Hello World的加密过程如下:
取偏移量为3
计算H的后3位为K
以此类推
密文为:Khoor Zruog
类似的,解密过程如下:
计算K的前3位为H
以此类推
明文为:Hello World
注意:当偏移量为13时,这种凯撒密码的特例又被称为ROT13(回转13位)加密,ROT13加密是一种对等加密(Reciprocal cipher),对等加密是对称加密的一个特例,即该类密码的加密算法是它自己本身的逆反函数,换言之,要对其解密,只需对其密文再次套用加密算法即可。当偏移量未知时,可采用穷举法一个个试,偏移量必定小于26。
培根密码
培根密码(Bacon’s cipher)加密时,明文中的每个字母都会转换成一组5个英文字母。其转换依靠下表:
按照上表,明文hello的密文为AABBBAABAAABABBABABBABBBA,显然,密文的长度是明文长度的5倍。除了上表用来加密小写明文外,还有一张用来加密大写明文的表。
同理,明文HELLO的密文为aabbbaabaaababbababbabbba。注意:虽然表中出现了A B两种字符,但培根密码的本质是二进制,即用两种不同的特征来加密明文,可以是字母的大小写或字体的样式等等。例如采用字母的大小写加密hello为GOod gOOd STUdY, dAY dAy UP, haHa,其中大写代表A,小写代表B;类似的,也可以用粗体代表A,正常代表B,以字体的样式加密hello。显然,培根密码所包含的信息可以和用于承载其的文章完全无关。
维吉尼亚密码
维吉尼亚密码是使用一系列凯撒密码组成密码字母表的加密算法,
这一表格包括了26行字母表,每一行都由前一行向左偏移1位得到。行为明文行,列为密钥列,密文位于表格内。 明文HELLOWORLD的加密结果如下:
选择某一关键词作为密钥,如SECRET
对于明文第1个字母H,对应密钥的第1个字母S,于是使用表格中S行字母表进行加密,得到密文第一个字母Z
以此类推,若密钥长度小于明文长度,则转到密钥第1个字母继续循环,最终得到密文ZINCSPGVNU
类似的,解密过程如下:
根据密钥第1个字母S所对应的S行字母表,发现密文第1个字母Z位于H列,因而明文第1个字母为H
依次类推
显而易见,维吉尼亚密码相对于本文介绍的其他古典密码,很难利用穷举法破解。
置换
置换密码是将明文中的字母重新排列,字母本身不变,但其位置改变,即位置转换,典型的有栅栏密码等。
栅栏密码
栅栏密码(Rail fence cipher),又称篱笆密码,就是把要加密的明文分成n个一组,然后把每组的第一个字连起来,紧接着把每组的第二个字连起来,以此类推,形成一段无规律的话。明文Hello World的加密过程如下:
去掉空格:HelloWorld
5个一组:Hello,World
取出每组第1个字母:HW
取出每组第2个字母:eo
以此类推
连在一起:HWeolrllod
加上适当空格:HWeol rllod
类似的,解密过程如下:
去掉空格:HWeolrllod
分成5栏:HW、eo、lr、ll、od
取出每栏第1个字母:Hello
依次类推
连在一起:HelloWorld
加上适当空格:Hello World
注意:这里栅栏的栏数取决于n的取值,一般而言,n要整除字母数,n不可能大于或等于字母数,当不知道n为多少时,可采用穷举法一个个试。
其他
当铺密码
准确来说,当铺密码不是一种加密方式而是一种编码方式,它是将中文和数字进行转化的算法,具体为:当前汉字有多少笔画出头,就转化成数字几。如王夫 井工 夫口 由中人即为67 84 70 123。
猪圈密码
猪圈密码(Pigpen cipher),又称共济会密码(Masonic cipher),是一种以格子为基础的简单代换式密码。下图为猪圈密码中所用符号与26个英语字母之间的对应关系:
明文X MARKS THE SPOT的加密结果如下:
在长达一千多年的时间里,古典密码学以置换法与替换法为基础不断演进。以维吉尼亚密码为代表的多字母表替换式加密法轮流使用多个不同的替换式密码表,依次对明文中的字母进行加密。第二次世界大战时德军使用的「恩尼格玛」是一种基于复杂的多表替换加密原理的机械式密码机,但最终由于自身加密算法的缺陷,被图灵设计的「炸弹」攻克。
休·怀特摩尔创作的戏剧“破译密码”的内容为艾伦·图灵的生活,艾伦·图灵是在二战中帮助英国破译恩尼格玛密码机的密码的最大功臣。
英国畅销书作家罗伯特·哈里斯于1996年出版的小说“恩尼格玛”讲述的是布莱切利园的密码学家们破译恩尼格玛的过程。2001年这本小说被拍成了电影“恩尼格玛”。
由乔纳森·莫斯托拍摄并于2000年上映的电影U-571讲的是一群美国潜艇兵为缴获一台恩尼格玛密码机而抢了一艘德国潜艇后的故事。电影中的恩尼格玛密码机是一个收藏家手里的真品。这部电影的情节并没有严格地按照历史发展,英国皇家海军在1941年击败德军潜艇U-110号最早获得德国海军密码机,也是猎杀U-571电影的真实版本,美国只是在1944年诺曼底登陆之前缴获了一艘U型潜艇。
2014年上映的电影《模仿游戏》讲述了艾伦·图灵等英国的数学家、逻辑学家协助军方破译恩尼格玛密码机的过程。
2019年网易推出的非对称对抗悬疑手游《第五人格》中求生者阵营需要破译五台密码机让大门通电输入密码逃生所需破译的五台密码机就是恩尼格玛密码机。
置换式与替换式加密法的弱点在于没能完全消除密文中有关明文的某些特征,保留了明文中的某些信息。奥古斯特·柯克霍夫在 19 世纪提出的柯克霍夫原则(Kerckhoff’s Principle)概括性地总结了加密算法应遵循的设计原则:即使加密系统的各个环节都是公开知识(Public knowledge),只要密钥未被泄漏,加密系统都应该是安全的。
加密算法的安全性问题本质在于:如何降低攻击者在了解加密算法,并拥有足够长的密文片段的前提下,猜测出正确密钥的可能性?
1948 年,香农创立了信息论,并在次年的一篇论文中从数学的角度讨论了加密系统,人们开始从科学的角度探究密码学的奥秘。
欢迎加入PlatON Network技术研究社区
Discord开发者社群
https://discord.com/invite/jAjFzJ3Cff
Reference:
[1] https://howiezhao.github.io/2018/08/10/classical-crypto/
[2] https://www.chainnews.com/articles/577594859080.htm
[3] The Code Book, Simon Singh (1999)
[4] The Code Breakers, David Kahn (1996)
[5] https://en.wikipedia.org/wiki/Enigma_machine
微信掃描關注公眾號,及時掌握新動向
2.本文版權歸屬原作所有,僅代表作者本人觀點,不代表比特範的觀點或立場
2.本文版權歸屬原作所有,僅代表作者本人觀點,不代表比特範的觀點或立場