目前已经学过密码相关的课程:

1.信息安全导论

2.信息安全数学基础

3.密码学原理与实践

4.Python与密码学

前言

为什么写这样一篇整合性的文章,因为看书时突发奇想,发现之前学过的内容之间都存在不小的联系,如果能将脑中混杂的理论盒思想整合一下,即可以给自己之后的复习与重温产生极大的效益,同时也能发布到网络上,让他人受益,并在其他人的审视下纠正我的错误。

密码学综述

密码的起源

从远古时代起,人类就能感知身边各种自然现象所隐含的信息。在狩猎和劳作的过程中,人类开发出属于自己的各种复杂系统——语言、数字、文字系统,用来表示一些抽象的概念,创造出人类最初的密码。例如,云的特征隐藏了不同的信息,远古人类通过观察云的特征来解密天气信息,以预测是否会刮风或下雨;狩猎时人类学习“解密“信息最初的实践之一,猎人在狩猎的过程中,会根据猎物遗留的足印、活动痕迹、啃食的草木等迹象,解读其中隐藏的信息,以判断猎物的种类、踪迹和活动规律等。

密码学的发展

古代岩画,将一些象征性图案以莫重方式排列组合来传达不同的信息,这是人类通过图形化符号来传递信息的最早手段之一。著名的有法国拉斯科洞窟壁画,挪威的阿尔塔岩画,我国宁夏银川的贺兰山岩画,古人类将当时人类的生活和劳动信息隐藏于岩画之中,现代才得以通过解读这些信息,还原远古人类所处的生活环境和一系列生活场景。技术与书写的抽象思维使得人类的发展史得以记载流传,玛雅数字,巴比伦数字,阿拉伯数字,罗马数字,楔形文字,还有菲斯托斯圆盘上记载的古希腊文字,这些抽象的符号表达记录着当时人类的生活。

早在公元前7世纪,密码棒就在古希腊的军事重镇斯巴达得到广泛应用。这就是斯巴达密码棒。古斯巴达人用一条带子缠绕在一根木棍上,沿木棍纵轴方向写好明文,解下来的带子上就只有杂乱无章的密文字母。解密者只需找到相同直径的木棍,再把带子缠上去,沿木棍纵轴方向即可读出有意义的明文。这种方式在现代密码学中仍有体现——行列变换。

密码史与人类文明发展史相生相伴,从古人类的符号标记,古文字的形成与解读,再到斯巴达密码棒等等,这些五彩斑斓的创作,体现了古人在秘密传递上的智慧,将密码学一步一步推向了以数学为基础的古典密码时代。

古典密码:

这一时期的密码学更像是一门艺术,其核心手段是代换和置换。代换是指明文中的每一个字符被替换成密文中的另一个字符,接收者对密文做反向替换便可恢复出明文;置换是密文和明文字母保持相同,但顺序被打乱。代换密码的著名例子有古罗马的凯撒密码(公元前1世纪)和法国的维吉尼亚密码(16世纪)。

凯撒密码

公元前1世纪,著名的凯撒密码,被用于高卢战争中,这是一种简单易行的单字母替代密码,这种加密方法就是将明文的字母按照字母顺序,往后依次递推相同的字母,就可以得到加密的密文,而解密的过程正好和加密的过程相反。

维吉尼亚密码

维吉尼亚密码是多表置换密码的一个典型代表,这种方法即一个明文字母可以表示为多个密文字母,多表密码加密算法结果将使得对单表置换用的简单频率分析方法失效。维吉尼亚密码使用一个词组(语句)作为密钥,词组中每一个字母都作为移位替换密码密钥确定一个替换表,维吉尼亚密码循环的使用每一个替换表完成明文字母到密文字母的变换,最后所得到的密文字母序列即为加密得到的密文。维吉尼亚是古典密码理论发展上的一个重要里程碑。

置换密码也是古典密码的重要一员,通过一定的规则重新排列明文,打破明文的结构,而不改变明文的内容,仅仅是对明文字母的重新排序,就可以实现加密。虽然设计思想简单,但其贡献不可磨灭。

一次一密费纳姆密码作为绝对安全密码,其保密性在理论意义上绝对安全,虽然真正实现困难,但它对现代序列密码的设计的影响意义深远。

中国古代兵书《六韬》中的阴符和阴书:《六韬》又称《太公六韬》或《太公兵法》,据说是由西周的开国功臣太公望(又名吕尚或姜子牙,约公元前1128—公元前1015)所著。书中以周文王和周武王与太公问答的形式阐述军事理论,其中《龙韬•阴符》篇和《龙韬•阴书》篇,讲述了君主如何在战争中与在外的将领进行保密通信。

以下是关于“阴符”使用方法对话的译文。

武王问太公说:领兵深入敌国境内,军队突然遇到紧急情况,战事或有利,或失利。我要与各军远近相通,内外相应,保持密切的联系,以便及时应对战场上军队的需求,应该怎么办呢?

太公回答说:国君与主将之间用阴符秘密联络。阴符共有八种:一种长一尺,表示大获全胜,摧毁敌人;一种长九寸,表示攻破敌军,杀敌主将;一种长八寸,表示守城的敌人已投降,我军已占领该城;一种长七寸,表示敌军已败退,远传捷报;一种长六寸,表示我军将誓死坚守城邑;一种长五寸,表示请拨运军粮,增派援军;一种长四寸,表示军队战败,主将阵亡;一种长三寸,表示战事失利,全军伤亡惨重。如奉命传递阴符的使者延误传递,则处死;如阴符的秘密被泄露,则无论无意泄密者或有意传告者也处死。只有国君和主将知道这八种阴符的秘密。这就是不会泄露朝廷与军队之间相互联系内容的秘密通信语言。敌人再聪明也不能识破它。

在计算机时代来临之前,古典密码的破译还是一个困难问题,但随着计算机的发明,破译这些古典密码在今天看来轻而易举,但古典密码的设计思想给现代密码的设计产生了不可磨灭的影响,其工作原理——代换和置换,仍然是构造现代对称密码算法的最重要核心技术。

近代密码

近代密码是指从第一次世界大战、第二次世界大战到1976年这段时期密码的发展阶段。

电报的出现第一次使远距离快速传递信息成为可能,事实上,它增强了西方各国的通讯能力;20世纪初,意大利物理学家奎里亚摩•马可尼发明了无线电报,让无线电波成为新的通讯手段,它实现了远距离通讯的即时传输,但是通过无线电波送出的每条信息不仅传给了己方,也传送给了敌方,因此这就意味着必须给每条信息加密,随着第一次世界大战的爆发,对密码和解码人员的需求急剧上升,一场秘密通讯的全球战役打响了。

公元20世纪初,第一次世界大战进行到关键时刻,英国破译密码的专门机构“40号房间”利用缴获的德国密码本破译了著名的“齐默尔曼电报”,促使美国放弃中立参战,改变了战争进程。

随着计算机科学的发展,快速电子计算机和现代数学方法一方面为加密技术提供了新的方法、新的概念和新的工具,另一方面也为破译者提供了有力的武器。计算机和电子时代的到来给密码设计者们带来了前所未有的自由,他们可以轻松地减少原先用铅笔和纸在做手工设计时易犯的错误,也不用再担心使用电子机械方式实现密码机的高额费用。总之,利用电子和计算机技术可以设计出更加复杂的密码体系。

这一阶段真正开始源于香农在20世纪40年代末发表的一系列论文,特别是1949年的《保密系统通信理论》,把已有数千年历史的密码学推向了基于信息论的科学轨道。近代密码发展中一个重要突破是“数据加密标准”(DES)的出现。DES密码的意义在于,首先,其出现使密码学得以从政府走向民间,其设计主要由IBM公司完成,国家安全局等政府部门只是参与其中,最终经美国国家标准局公开征集遴选后,确定为联邦信息处理标准。其次,DES密码设计中的很多思想(Feistel结构、S盒等),被后来大多数分组密码所采用。再次,DES出现之后,不仅在美国联邦部门中使用,而且风行世界,并在金融等商业领域广泛使用。

密码学的发展直接影响了二战的战局。Arthur Scherbius于1919年设计出了历史上最著名的密码机—德国的Enigma机,它的设计结合了机械系统与电子系统。它被证明是有史以来最为可靠的加密系统之一,从而使得二战期间德军的保密通讯技术处于当时的领先地位。随着Enigma的破译,人们意识到其实真正保证密码安全的往往不是算法,而是密钥。即使算法外泄,但只要密钥保密,密码就不会失效。

荷兰密码学家Kerckhoffs于1883年在其名著作《军事密码学》中提出密码学的基本假设:密码系统中的算法即使为密码分析者所知,对推导出明文或密钥也没有帮助。也就是说,密码系统的安全性应只取决于可随时改变的密钥,而不应取决于不易被改变的事物(算法)。

在二次世界大战中,印第安纳瓦霍土著语言被美军用作密码,美国二战时候特别征摹使用印第安纳瓦霍通信兵。在二次世界大战日美的太平洋战场上,美国海军军部让北墨西哥和亚历桑那印第安纳瓦霍族人使用纳瓦霍语进行情报传递。纳瓦霍语的语法、音调及词汇都极为独特,不为世人所知道,当时纳瓦霍族以外的美国人中,能听懂这种语言的也就一二十人。这是密码学和语言学的成功结合,纳瓦霍语密码成为历史上从未被破译的密码。

现代密码

现代密码学的发展与计算机技术、电子通信技术密切相关。在这一阶段,密码理论得到了蓬勃发展,密码算法的设计与分析互相促进,从而出现了大量的加密算法和各种分析方法。除此之外,密码的使用扩张到各个领域,而且出现了许多通用的加密标准,从而促进了网络和技术的发展。

现代密码学有两个重要标志:一是美国制定并于1977年1月15日批准公布了公用数据加密标准DES。二是1976年,美国密码学家迪菲和赫尔曼在“密码学的新方向”的文章,首次提出公钥密码体制的构想和理论方法。即不仅加密算法本身可以公开,甚至加密用的密钥也可以公开,但这并不意味着保密程度的降低,因为加密密钥和解密密钥不一样,将解密密钥保密就可以,这就是著名的公钥密码体制。若存在这样的公钥体制,都可以将加密密钥像电话簿一样公开,任何用户想经其他用户传送一加密信息时,都可以从这本密钥薄中查到该 用户的公开密钥,用它来加密,而接收者能用只有它所具有的 解密密钥得到明文,任何第三者不能获得明文。1978年,美国麻省理工学院的里维斯特、沙米尔和阿德曼提出了RSA公钥密码体制,它是第一个成熟的、迄今为止理论上最成功的公钥密码体制。它的安全性是基于数论中的大整数因子分解。该问题是数论中的一个困难问题,至今没有有效的算法,这使得该体制具有较高的保密性。在现代密码学中,除了信息保密外,还有另一方面的要求,即信息安全体制还要能抵抗对手的主动攻击。所谓主动 攻击指的是攻击者可以在信息通道中注入自己伪造的消息,以骗取合法接收者的相信。主动攻击可能窜改信息,也可能冒名顶替,这就产生了现代密码学中的认证体制。该体制的 目的就是保证用户收到一个信息时,能验证消息是否来自 合法发送者,同时还能验证该信息是否被窜改。在许多场合中,如电子汇款,能对抗主动攻击的认证体制甚至比信息保密还重要。

编码与密码

摩尔斯电码

摩尔斯电码对照表

后续

三种古典密码的认识(置换密码,代换密码和轮换密码)-CSDN博客

CTF—古典密码(凯撒密码、维吉尼亚密码、培根密码等)-CSDN博客

[密码学基础_密码学有那些性质-CSDN博客](https://blog.csdn.net/qq_40843499/article/details/117813551#:~:text=密码学的特性及功能: 1 机密性 (Confidentiality):非授权者无法获取明文内容。 2 完整性 (Integrity):接收者能够验证消息是否在传输过程中被 增加、删除、修改,(Authenticity):接收者能够确认 消息来源 的真实性。 4 不可抵赖性 (Nonrepudiation):发送者无法否认其 签发 的消息。)