售前客服二维码
文章均源于网络收集编辑侵删
提示:仅接受技术开发咨询!
柏拉图向你介绍了密码学。
作者|塞拉斯,|柏拉图技术预备组
图像来源| Unsplash
密码学是一门加密和传输信息并分析加密信息的学科。根据以RSA为代表的公钥密码的出现,密码学的发展过程可以分为经典密码学和现代密码学两个部分。经典密码学是建立在“替代法”和“替代法”的基础上的,多用于军事和情报领域。现代密码学以数学、计算机和通信科学为基础。除了加密信息,数字签名、数据完整性和身份认证也是现代密码学的研究课题。
经典密码学和现代密码学的主要区别在于计算机的使用。一般来说,经典密码学是基于字符的,而现代密码学是基于二进制位的。
密码学的概念不同于人们用来登录网站和使用银行账户的“密码”。用于身份认证的这些“密码”更准确的翻译是密码,这是现代密码学的许多应用之一。
一般来说,经典密码学主要包括两种类型,即置换和置换。
置换法按照一定的规则改变原始信息中字母的顺序;替换方法是将原始信息中的字母按照一定的规则替换为其他字母。置换法和置换法安全性差。古代阿拉伯学者开创了破译加密信息的科学——密码学,并通过频率分析破解了置换加密法。
取代
替换密码是用其他字符替换明文字中的字符,即替换转换。如果在整个加密过程中每个字符都被同一个表替换,则是单表替换密码。同样,如果在整个加密过程中,每个字符都被不同的表替换,那么就是多表替换密码。典型的单表替代密码包括凯撒密码和培根密码,多表替代密码包括弗吉尼亚密码。
凯撒密码是指明的所有字母在字母表上向后(或向前)移动一个固定的数字,然后用秘密字母替换。比如当偏移量为3时,所有字母A都会被D替换,B变成E,以此类推。明文Hello World的加密过程如下:
取偏移量为3
将h的最后3位数字计算为k
等等等等
密文:Khoor Zruog
同样,解密过程如下:
将k的前3位数字计算为h
等等等等
明文是:你好世界
注:当偏移量为13时,凯撒密码的特例也称为ROT13(旋转13位)加密,是倒数密码,倒数密码是对称密码的特例,即这类密码的加密算法是其自身的反函数,换句话说,要解密,只需要将加密算法再次应用到其密文上即可。当偏移量未知时,可以用穷举法逐个尝试,偏移量必须小于26。
从上表可以看出,明文hello的密文是AABBBAABAAABABBABABBABBBA,显然,密文的长度是明文的5倍。除了上面加密小写明文的表格,还有加密大写明文的表格。
同理,明文HELLO的密文是aabbbaabaaababbababbabbba。注意:虽然表中出现了AB字符,但培根密码的本质是二进制的,即使用两种不同的特征对明文进行加密,可以是字母的大小写,也可以是字体的样式。比如用字母的大小写来加密hello就是GOod gOOd STUdY,dAY dAy UP,哈哈,其中大写代表A,小写代表B;同样的,你也可以加粗表示A,正常表示B,字体样式加密hello。很明显,培根密码里包含的信息可以和用来携带它的文章无关。
该表包括26行字母表,每行通过将前一行向左移动一位而获得。行是明文行,列为密钥列,密文位于表中。明文HELLOWORLD的加密结果如下:
选择一个关键字作为关键字,如SECRET
对于明文的第一个字母H,对应的是密钥的第一个字母S,所以用表中S行的字母表进行加密,得到密文的第一个字母Z
以此类推,如果密钥长度小于明文长度,则转到密钥的第一个字母继续循环,最终得到密文ZINCSPGVNU
同样,解密过程如下:
根据密钥首字母S对应的S线字母表,发现密文首字母Z位于H列,所以明文首字母为H。
等等
显然,与本文介绍的其他经典密码相比,弗吉尼亚密码很难用穷举的方法破解。
铁路栅栏密码,又称栅栏密码,是将待加密的明文分成n组,然后连接每组的第一个字,再连接每组的第二个字,以此类推,形成一个不规则字。明文Hello World的加密过程如下:
删除空间:HelloWorld
五人组:你好,世界
取出每组的第一个字母:HW
取出每组的第二个字母:eo
等等等等
连接在一起:HWeolrllod
添加适当的空间:HWeol rllod
同样,解密过程如下:
删除空格:HWeolrllod
分为5栏:HW、eo、lr、ll和od
取出每一栏的第一个字母:你好
等等
连接在一起:HelloWorld
添加适当的空格:Hello World
注意:这里栅栏的列数取决于n的值,一般来说,字母数要能被n整除,n不能大于等于字母数。如果不知道n是多少,可以用穷举法逐一尝试。
Pigpen密码又称共济会密码,是一种基于格的简单替代密码。下图显示了猪圈密码中使用的符号与26个英文字母之间的对应关系:
明文X标记斑点的加密结果如下:
一千多年来,经典密码学都是在置换和置换的基础上进化而来的。以Virginia cipher为代表的多字母替代加密依次使用几个不同的替代密码表对明文中的字母进行加密。英格玛,二战时德国人使用的,是基于多表替换的复杂加密原理的机械密码机,但由于自身的加密算法缺陷,最终被图灵的“炸弹”所征服。
休怀特摩尔的戏剧《破译密码》讲述了艾伦图灵的一生,艾伦图灵是二战中帮助英国破译英格玛密码机密码的最大贡献者。
英国畅销书作家罗伯特哈里斯的小说《谜》出版于1996年,讲述了布莱奇利公园的密码学家破译谜的过程。2001年,这部小说被拍成了电影《谜》。
由乔纳森莫斯托拍摄并于2000年上映的电影U-571讲述了一群美国潜艇士兵抢劫德国潜艇以夺取一台英格玛密码机的故事。电影中的英格玛密码机是收藏家手中的真品。这部电影的情节没有严格遵循历史发展。1941年英国皇家海军击败德国潜艇U-110,首次获得德国海军密码机,也是猎U-571电影的真实版。美国只是在1944年诺曼底登陆前缴获了一艘U型潜艇。
2014年上映的电影《模仿游戏》讲述了艾伦图灵和其他英国数学家和逻辑学家协助军方破译英格玛密码机的故事。
网易2019年推出的非对称对抗悬疑手游《第五人格》中,幸存者阵营需要破译5台密码机,需要破译才能逃脱的5台密码机是英格玛密码机。
置换加密和替换加密的弱点是不能完全消除明文在秘密文本中的一些特征,而保留明文中的一些信息。19世纪奥古斯特柯克霍夫(Auguste Kirkhoff)提出的Kerckhoff原理概括了加密算法应该遵循的设计原则:即使加密系统的所有环节都是公共知识,只要密钥不泄露,加密系统就应该是安全的。
加密算法安全问题的本质在于:如何在知道加密算法并且有足够长的密文片段的前提下,降低攻击者猜出正确密钥的可能性?
1948年,香农创立了信息论,并在次年的一篇论文中从数学的角度讨论了加密系统。人们开始从科学的角度探索密码学的奥秘。
欢迎来到柏拉图网络技术研究社区
不和谐开发者社区
https://discord.com/invite/jAjFzJ3Cff
参考:
[1]https://howiezhao.github.io/2018/08/10/classical-crypto/
[2]https://www.chainnews.com/articles/577594859080.htm
[3]《法典》,西蒙辛格(1999年)
[4]密码破译者,大卫卡恩(1996)
[5]https://en.wikipedia.org/wiki/Enigma_machine
文章均源于网络收集编辑侵删
提示:仅接受技术开发咨询!