密码学初探:信息的艺术――区块链技术引卷之十一
导读
密码学(Cryptography),是一门将信息进行加密处理与传递,以及分析加密信息的学科。根据以RSA为代表的公钥加密体系的出现,可以将密码学的发展过程分为古典密码学与现代密码学两部分。古典密码学以“置换法”与“替换法”为基础,多应用于军事与情报领域;现代密码学则建立在数学、计算机与通信科学的基础上,除了加密信息之外,数字签名、数据完整性、身份认证等也是现代密码学的研究课题。
摘要
置换法依照一定的规则,改变原始信息中的字母排列顺序;替换法将原始信息中的字母按照一定的规则替换成其他字母。置换法与替换法的安全性较差,古阿拉伯的学者们开创了破译加密信息的科学――密码分析学,通过频率分析的方法破解替换式加密法。
在长达一千多年的时间里,古典密码学以置换法与替换法为基础不断演进。以维吉尼亚密码为代表的多字母表替换式加密法轮流使用多个不同的替换式密码表,依次对明文中的字母进行加密。第二次世界大战时德军使用的“恩尼格玛”是一种基于复杂的多表替换加密原理的机械式密码机,但最终由于自身加密算法的缺陷,被图灵设计的“炸弹”攻克。
置换式与替换式加密法的弱点在于没能完全消除密文中有关明文的某些特征,保留了明文中的某些信息。奥古斯特・柯克霍夫在19世纪提出的柯克霍夫原则(Kerckhoff's Principle)概括性地总结了加密算法应遵循的设计原则:即使加密系统的各个环节都是公开知识(Public knowledge),只要密钥未被泄漏,加密系统都应该是安全的。
加密算法的安全性问题本质在于:如何降低攻击者在了解加密算法,并拥有足够长的密文片段的前提下,猜测出正确密钥的可能性?1948年,香农创立了信息论,并在次年的一篇论文中从数学的角度讨论了加密系统,人们开始从科学的角度探究密码学的奥秘。
风险提示:量子计算技术的潜在威胁
目录
1 隐匿法
2 加密法
3 持续千年的智力竞赛:加密与解密
4 古典密码学的圣杯
5 攻克“恩尼格玛”
正文
密码学(Cryptography),是一门将信息进行加密处理与传递,以及分析加密信息的学科。“密码学”一词的词源来自古希腊语“”(Kryptós)和“书写”(Graphein),意为“秘密书写”,其历史几乎与人类有文字记载的文明一样悠久。古希伯来学者在公元前六世纪左右就掌握了“单字母表替换式加密法”,在之后的两千五百多年里,古典密码学在替换式加密法的基础之上不断发展演进。古典密码学多应用于军事与情报领域,而微型计算机与现代密码学的发展能够保护普通人的日常通信免受第三方的窥探。现代密码学建立在数学、计算机科学与通信科学的基础上,除了信息的加密与解密之外,数字签名、数据完整性、身份认证等也是现代密码学的研究课题。今天人们日常生活中的网络支付、电子商务、电子货币等都是密码学这一人类两千多年来智慧结晶的应用。
密码学的概念与人们平时登陆网站、使用银行账户的“密码”并不相同。这些用于身份认证的“密码”,更准确的翻译是“通行词”或“通行码”(password),它是现代密码学的诸多应用之一,请读者注意区分两者的区别。
受限于篇幅,有关密码学以及密码学在区块链中应用的内容将分两篇专题介绍。
1
隐匿法
隐匿法的历史非常久远,可以追溯到公元前5世纪古希腊与波斯帝国的战争年代。公元前480年,波斯舰队在“万王之王”薛西斯一世的率领下秘密集结,准备对希腊发起进攻,然而这一秘密行动被一位遭到流放、居住在波斯的希腊人狄马图拉斯发现了。他将波斯军队准备进攻希腊的消息写在木板上,并用一层蜡将文字遮住,成功骗过了路途中的波斯卫兵,将信息传回了希腊。希腊城邦联合起来,抵御住了波斯人的突袭。而遭遇挫败之后,曾经盛极一时的波斯阿契美尼德王朝也开始走向衰退。