前言
为什么要写这本书
《孙子兵法》中提到,“知彼知已,百战不殆”,意思是在战争中,只有掌握对手的情报,了解对手的动态,才能百战百胜。其实无论是战场还是商场,不管是国家、社会还是团体、个人,在任何较量中,谁能掌握对手的情报,谁就掌握了制胜的关键。在当下,依靠密码学的智慧,以少胜多、以一则情报扭转一场战役的战局已经不再是神话。
进入21世纪以来,随着计算机技术的不断发展和互联网的广泛应用,网络信息安全面临着前所未有的危机和挑战。地区冲突和情报战争的不断升级,使得信息安全成为国家安全的重要阵地,不容忽视。
信息安全作为国家安全的重要组成部分,受到国家的高度重视。“没有网络安全就没有国家安全”。2022年10月,中国共产党第二十次全国代表大会更是提出要推进国家安全体系和能力现代化,坚决维护国家安全和社会稳定。当今世界各国之间的网络攻击频仍,在这些看不见硝烟的战争中,信息安全已经成为一把“达摩克利斯之剑”,悬在各国信息安全的战场之上。而密码学作为信息安全技术的支撑,就成了抵御达摩克利斯之剑的坚固盾牌。
本书作者为我国航空工业的从业人员。航空是国防和民生的重要组成部分,航空数据大部分属于敏感机密信息,一旦泄露,就可能给公众权益、企业利益、政令政策乃至国家安全等造成不同程度的损害。而数据泄露可能会发生在数据采集、传输、存储、使用、共享和销毁的任何环节中。为了防止数据泄露给第三方,在各环节中经常需要使用技术手段对其加以保护。其中最高效的技术手段就是加密。通过对数据进行加密,可以保证其完整性、保密性、可用性这三大安全要素。
过去,密码学只被用于特定的领域,应用范围并不广泛。但在网络信息高度发达的今天,数据已经成为关系各行各业生死存亡的高度机密。从国防单位到民营企业,乃至个人,都需要在网络中频繁使用大量数据,这也使得网络攻击频繁出现,手段日新月异。黑客群体也越来越系统化、专业化,有些甚至掌握了非常尖端的网络攻击技术。因此网络安全,特别是对数据的保护变得尤为重要。2022年,境外针对我国西北工业大学的网络攻击,就是对我国航空工业数据安全发起的一次猛烈冲击,这引起了我国航空工业乃至全社会对数据安全的思考和重视,也让越来越多的人对密码学产生了浓厚的兴趣。
各种新型加密算法层出不穷,使得非密码学专业的初学者理解加密算法变得越来越吃力。为了帮助读者快速了解密码学的工作原理,本书深人浅出地介绍了古典与现代密码学背后的数学原理,包括密码学的底层算法,并对重要的数学知识进行了详细推导和分析,还为读者推荐了相关文献,以加深读者对算法的理解。同时本书提供了大量例题和习题,便于读者进行验证和提高。
与其他密码学图书不同,本书加入了大量的例证和详细推导过程,以帮助读者理解加密算法过程,并着重强调实际使用中需要注意的细节。同时本书也给出了各类密码加密和解密过程的相关Python/SageMath代码,以降低读者理解加密算法的难度。还有少部分代码涉及运算技巧,优化了加密算法的速度,提高了效率。读者掌握了相关代码后,就能完全掌握这类密码。
本书介绍的大多数算法只需要读者拥有适当的数学背景,如基础的微积分、线性代数和概率论知识,如果读者有一定的编程经验则更有助于对本书的阅读和理解。对于一些较为专业和晦涩的材料,作者通过详细示例对其进行拆解,并对所涉及的专业数学知识进行简要处理,为读者扫清阅读障碍,将阅读门槛降至无需特殊专业背景即可理解的程度。通过阅读本书,读者将获得对加密算法和密码分析的深刻理解,以及相关的知识、工具和经验,继而自信地探索前沿的密码学主题。