2026/10/20 11:20:30

[图解密码学]第2章 密码学简史与时间线

[图解密码学]第2章 密码学简史与时间线 第2篇 密码学入门第2章 密码学简史与时间线本章知识地图一条从公元前5世纪延伸到21世纪的时间轴。时间轴上方是“加密技术”斯巴达天书、凯撒密码、单表替换、维吉尼亚密码、恩尼格玛、DES、Diffie-Hellman、RSA、AES、SHA-3、SM2/SM3/SM4、后量子密码。时间轴下方是“密码分析技术”频率分析、卡西斯基测试、图灵炸弹机、差分分析、Shor算法。​本章知识地图本章目标理解密码学发展的主线攻防交替、需求驱动、标准化推动。认识古典密码的基本思想与局限。理解频率分析为何是密码分析史上的第一次重大突破。了解恩尼格玛与二战密码战如何推动计算机诞生。掌握DES、公钥革命、AES三大现代转折点以及国密体系SM2/SM3/SM4的诞生背景。建立后量子密码迁移的时间意识。2.1 为什么要学习密码学史很多人以为密码学历史只是“故事会”凯撒、图灵、恩尼格玛听起来有趣但和今天的AES、TLS、区块链有什么关系关系很大。密码学不是某一天突然被发明出来的。它更像一场持续了两千多年的攻防战。每当有人设计出一种新的加密方法很快就会有人找到破解它的办法而破解方法一旦公开又会逼着人们设计更强的加密。凯撒密码被频率分析击败维吉尼亚密码被卡西斯基测试击败DES被专用破解机击败RSA和ECC如今又面临量子计算的威胁。今天你看到的每一种密码学技术几乎都能在历史上找到它的“前身”和“动机”。图2-1画出了这条攻防螺旋加密技术上升一级密码分析技术也上升一级然后加密再上升一级。它不是简单的循环而是螺旋式上升——每一代方案都比上一代更数学化、更标准化、更公开。​图2-1 密码学攻防螺旋图图中用蓝色箭头表示加密技术演进红色箭头表示破译技术演进。蓝色和红色交替领先形成螺旋上升结构。学习历史还有第二个好处理解设计动机。为什么现代分组密码需要工作模式因为ECB模式会泄露明文结构。为什么需要公钥密码因为对称密码的密钥分发在开放网络中几乎无法解决。为什么需要认证加密因为“只加密不认证”会遭受篡改和重放攻击。每一个现代设计背后都有一个历史教训。最后历史能帮你建立“安全不是绝对”的观念。古典密码经常依赖算法保密结果一旦算法泄露就全线崩溃。现代密码学接受柯克霍夫原则算法公开只有密钥保密。这个原则不是凭空出现的而是无数次失败换来的。同样我国在发展商用密码国密体系时也严格遵循了算法公开、接受全球密码学界检验的原则从而确保了SM系列算法的安全性和国际可信度。2.2 古代密码从斯巴达到凯撒2.2.1 斯巴达天书公元前5世纪斯巴达人使用一种叫“天书”的装置。它其实是一根木棍发送者把一条皮带缠绕在木棍上然后在皮带上写字。解开皮带后字母顺序被打乱看起来毫无意义。接收者只要把皮带缠在同样直径的木棍上就能读出原文。这就是最早的换位密码之一字母本身没有被替换只是顺序被重新排列。密钥就是木棍的直径。图2-2展示了这个过程。木棍直径不同缠绕后字母的对齐方式就不同。攻击者如果不知道直径看到的就是一串乱码。图2-2 斯巴达天书缠绕示意图左侧发送者将皮带缠在木棍上书写。中间解开后的皮带显示乱序字母。右侧接收者用同直径木棍恢复明文。斯巴达天书很巧妙但它有一个致命限制必须依赖物理载体。皮带长度有限木棍直径必须提前约定。如果敌人截获皮带并尝试不同直径的木棍也可能恢复明文。它适合小规模军事通信不适合大规模网络。补充中国古代也有类似的密码学智慧。例如先秦时期的“阴符”通过不同长度的符节来传递特定军情后来的“阴书”则将一份完整书信拆成三部分由三人分别传递接收方合三为一才能读懂这体现了早期的信息分割与完整性思想。2.2.2 凯撒移位密码更广为人知的是凯撒移位密码。传说古罗马统帅凯撒用移位3的方式加密信件每个字母向后移动3位。A变成DB变成EX变成A依此类推。例如明文HELLO密文KHOOR解密时反向移位3位即可。凯撒密码的密钥空间非常小。英文字母只有26个移位0到25总共26种可能。去掉移位0只剩25种。攻击者甚至不需要频率分析直接暴力尝试26次就能破解。图2-3是一个凯撒圆盘外圈是明文字母内圈是密文字母转动内圈就改变移位量。图2-3 凯撒圆盘与移位表外圈A-Z内圈A-Z。内圈相对外圈旋转3格表示移位3。凯撒密码在今天看来极其脆弱但它第一次把“加密”变成了可计算的规则明文、密文、密钥、算法四个要素齐全。它也是现代移位密码和模运算的雏形。2.2.3 单表替换密码如果不想只做固定移位可以打乱整个字母表。比如明文ABCDEFGHIJKLMNOPQRSTUVWXYZ密文QWERTYUIOPASDFGHJKLZXCVBNM这就是单表替换密码。每个明文字母都映射到一个固定的密文字母。密钥是整张替换表。单表替换的密钥空间巨大。26个字母的全排列有26!种约等于4×10^26。暴力破解几乎不可能。在很长一段时间里人们认为单表替换非常安全。但它有一个致命弱点字母频率没有改变。英语中e出现最多t、a、o、i、n紧随其后。如果明文中e很多密文中对应e的那个字母也会很多。攻击者只要统计密文字母频率再和语言频率表对比就能逐步还原替换表。图2-4展示了单表替换的加密和解密过程。图2-5则把英文字母频率画成柱状图e高耸在第一位。​图2-4 单表替换加密解密图上方是明文字母表下方是打乱的密文字母表。箭头表示一一映射。加密时查表向右解密时查表向左。​图2-5 英文字母频率柱状图横轴A-Z纵轴出现频率。e最高t、a、o、i、n次之。2.2.4 古代密码的局限古代密码有三个共同局限第一依赖算法保密。如果敌人不知道替换表或木棍直径就难以破解。但一旦有人叛变或算法泄露整个系统就崩溃。第二手工加密效率低。长文本加密耗时耗力容易出错。第三无法抵抗统计攻击。单表替换看似密钥空间巨大但频率分析绕过了密钥空间直接攻击语言规律。2.3 阿拉伯密码学与频率分析2.3.1 阿尔·金迪的突破公元9世纪阿拉伯学者阿尔·金迪在《关于破译加密信息的手稿》中提出了频率分析。他发现阿拉伯语中不同字母的出现频率不同。如果一段密文足够长其中高频字母很可能对应明文中的高频字母。这是密码分析史上的第一次重大突破。它意味着即使不知道密钥只要知道语言统计规律也能破解替换密码。2.3.2 频率分析原理频率分析的核心思想很简单统计密文中每个字母出现的次数。把密文频率从高到低排序。和明文语言的字母频率表对比。猜测高频密文字母对应高频明文字母。利用常见双字母、三字母组合修正猜测。例如英语中“e”最常见“the”是最常见三字母组合“th”“he”“in”“er”是常见双字母组合。如果密文中某个三字母组合反复出现它很可能就是“the”。图2-6展示了频率分析破解流程图从密文统计开始到频率排序到对照语言频率表再到猜测和修正。图2-6 频率分析破解流程图2.3.3 单表替换的破解示例假设密文是WKH TXLFN EURZQ IRA MXPSV RYHU WKH ODCB GRJ统计后会发现W、K、H出现频繁。尝试把W对应tK对应hH对应e就会得到the ???? ??e??? ...继续猜测很快能恢复THE QUICK BROWN FOX JUMPS OVER THE LAZY DOG这就是频率分析的威力。它不需要知道替换表只需要语言统计。2.3.4 密码分析成为独立学科频率分析的出现让密码分析从“艺术”走向“科学”。攻击者不再只是靠灵感猜测而是可以系统性地收集数据、统计规律、验证假设。从此加密和破译成为一对相互推动的力量。加密者必须想办法打乱频率破译者则想办法恢复频率规律。维吉尼亚密码就是在这种背景下出现的。2.4 维吉尼亚密码与多表替换2.4.1 多表替换思想单表替换的问题是同一个明文字母永远对应同一个密文字母所以频率特征被保留下来。如果让同一个明文字母在不同位置对应不同密文字母频率就被“抹平”了。这就是多表替换。维吉尼亚密码是多表替换的经典代表。它使用一个关键词循环移位。图2-7是维吉尼亚方阵图26×26字母表。这张表怎么用非常简单首列最左侧竖排是密钥字母首行最顶部横排是明文字母行列交叉点就是密文。假设你想加密明文H密钥是K先看左侧第一列找到密钥K第10行。再看顶部第一行找到明文H第7列。顺着第10行往右看顺着第7列往下看它们“撞在一起”的那个格子写的是r。所以明文 H 用密钥 K 加密得到密文r。现在我们加密完整的单词“HELLO”密钥是“KEY”循环使用明文H E L L O密钥K E Y K EK、E、Y用完后又回到K、E查表后H(第7列) 查 K(第10行) 得rE(第4列) 查 E(第4行) 得iL(第11列) 查 Y(第24行) 得jL(第11列) 查 K(第10行) 得vO(第14列) 查 E(第4行) 得s最终密文是“RIJVS”。同一个明文字母L在第三位和第四位分别变成了j和v。频率被分散了。​图2-7 维吉尼亚方阵图26×26字母表。左侧为密钥行A-Z索引0-25顶部为明文列A-Z索引0-25。加密时用密钥字母定位左侧行用明文字母定位顶部列行列交叉点即为密文字母。​图2-8 密钥流循环图左侧展示了密钥“KEY”的循环复用机制其周期为 3。按照密码学标准A0, B1, …, Z25字母 K 对应数字10E 对应4Y 对应24。右侧展示了生成的密钥流序列。当加密较长的明文时密钥“KEY”会无限循环生成一串长长的数字流10 - 4 - 24 - 10 - 4 - 24 ...。加密时只需要将这个数字流与明文的数字序列逐位相加并模26就能连续加密任意长度的文本而不必每次重新查表。加密的数学公式其实就是一句话明文数字 密钥数字 临时数字 → 对临时数字取模26 → 密文数字我们拿明文H密钥K举例 明文数字比如H对应数字7密钥流数字比如遇到K对应数字10逐位相加7 10 17模 2617 模 26 17如果是35模26就是9密文数字17 对应字母R​2.4.2 卡西斯基测试与弗里德曼测试维吉尼亚密码曾被称为“不可破译的密码”。但它有一个弱点密钥循环使用。如果密文中出现重复片段可能意味着密钥周期重复。19世纪卡西斯基提出一种测试寻找密文中重复出现的三字母组合记录它们之间的距离。这些距离的最大公约数可能就是密钥长度。20世纪弗里德曼提出重合指数IC进一步用统计方法估计密钥长度。一旦密钥长度被猜出维吉尼亚密码就可以被拆成多个凯撒密码逐个破解。图2-9展示了卡西斯基测试密文中两个相同片段之间相隔18个字母18的因子可能是3、6、9密钥长度很可能是其中之一。图2-9 卡西斯基测试示意图卡西斯基测试Kasiski Examination是破解维吉尼亚密码的第一步它的目标是猜出密钥的长度周期。它的原理非常巧妙如果密文中出现了一段重复的字母片段比如“QWE”这通常意味着明文中出现了相同的单词比如“THE”且它们刚好遇到了相同的密钥字母序列。假设我们在一段长长的密文中找到了两个相隔 18 个字母的“QWE”。这告诉我们密钥的周期长度一定是 18 的某个因子。列出 18 的所有因子1、2、3、6、9、18。密钥长度为 1意味着没有循环移位这只是简单的凯撒密码直接排除。密钥长度为 2太短很容易被穷举通常优先排除。密钥长度为 18太长导致每个密钥字母只被使用一次无法形成有效的统计规律通常结合其他方法验证。最有可能的密钥长度落在中间区域3、6、9。图2-9展示了这个过程。一旦猜出了密钥长度比如 3我们就可以把密文切成 3 组每一组都用简单的频率分析逐个击破。维吉尼亚密码就这样被降维成了 3 个凯撒密码。2.4.3 维吉尼亚的教训维吉尼亚密码的兴衰告诉我们没有经过公开检验的“安全”不可靠。它曾经被当作绝对安全但最终被统计方法击败。更重要的是它揭示了一个规律加密者试图隐藏的统计规律往往就是破译者攻击的入口。现代密码学中的混淆与扩散、分组密码的雪崩效应都可以看作对频率分析的终极回应。2.5 机械密码时代与恩尼格玛2.5.1 从手工到机械进入20世纪通信量爆炸式增长手工加密已经不够用。工业革命带来了齿轮、转轮和电路密码机登上历史舞台。最著名的密码机是德国的恩尼格玛。它不是一台简单的替换机而是一套复杂的机电系统。2.5.2 恩尼格玛结构恩尼格玛的核心部件包括转子多个转子每个转子有26个触点每次按键后转子转动。反射器把电流反射回来使加密和解密可以对称进行。插线板交换若干对字母进一步增加密钥空间。每按一个键电流经过插线板、转子、反射器再返回经过转子、插线板点亮一个密文字母。转子每次转动映射关系就改变。图2-10展示了恩尼格玛的内部结构。​图2-10 恩尼格玛机器结构图左侧键盘右侧灯板。中间是插线板、三个转子和反射器。红色箭头表示电流路径。恩尼格玛的密钥空间巨大。转子选择、初始位置、插线板连接组合起来数量级达到10^23以上。暴力破解在当时完全不可行。2.5.3 波兰数学家的早期破译恩尼格玛并非不可破。20世纪30年代波兰密码局的三位数学家——雷耶夫斯基、齐加尔斯基、罗日茨基——利用数学结构和重复密钥成功重建了恩尼格玛的内部接线。他们发现操作员有时会重复使用密钥设置这给攻击者提供了线索。雷耶夫斯基还设计了“炸弹机”的早期版本用机器辅助搜索密钥。2.5.4 图灵与布莱切利园二战爆发后英国布莱切利园成为盟军密码分析中心。艾伦·图灵等人改进了炸弹机利用“已知明文”片段即crib来排除错误密钥。例如德军每天会发送天气预报其中可能包含“WETTER”这样的固定词。分析人员猜测密文中某段对应“WETTER”然后让炸弹机测试大量密钥设置寻找一致的电信号。图2-11是布莱切利园的破译流程泳道图截获密文 → 寻找crib → 炸弹机搜索 → 验证密钥 → 解密情报。​图2-11 布莱切利园破译流程泳道图泳道截获、分析、机器搜索、验证、情报分发。恩尼格玛的破译对二战产生了重大影响也直接推动了现代计算机的诞生。图灵的工作不仅是密码学的胜利也是计算理论的里程碑。2.5.5 恩尼格玛的教训恩尼格玛的失败不是因为它不够复杂而是因为操作流程有漏洞比如重复使用密钥。已知明文攻击可以利用固定格式。机器可以辅助搜索抵消复杂度优势。密码分析需要数学、工程和组织协作。这些教训至今仍然适用算法安全不等于系统安全人为因素和协议流程同样关键。2.6 计算机时代DES与标准化2.6.1 从Lucifer到DES20世纪70年代计算机开始进入商业和政府领域。美国国家标准局NBSNIST前身需要一种标准加密算法。IBM开发了Lucifer算法经过修改后成为DES。1977年DES成为美国联邦标准。2.6.2 DES结构与争议DES是一种分组密码分组长度64位密钥长度64位但有效密钥只有56位因为8位用于奇偶校验。DES采用Feistel结构把64位明文分成左右两半经过16轮迭代。每轮使用48位子密钥经过S盒代替和P盒置换。图2-12展示了DES轮结构。​图2-12 DES加密流程图64位明文分为L0和R0。每轮R0经过扩展置换变成48位与子密钥异或经过8个S盒变成32位再经过P盒置换与L0异或得到R1。左右交换进入下一轮。DES的S盒设计曾引发争议。有人怀疑NSA植入了后门。但后来公开分析表明S盒设计能抵抗差分分析反而比当时公开知识更先进。真正的问题在于密钥长度。56位密钥意味着256种可能约7.2×1016。随着算力增长这个空间越来越小。2.6.3 3DES与DES破解为了延长DES寿命人们提出3DES用两个或三个密钥多次执行DES。3DES虽然慢但在金融领域使用了很久。1998年EFF用专用机器Deep Crack在56小时内破解了DES。图2-13展示了DES密钥长度与算力增长的关系。​图2-13 DES密钥长度对比图横轴年份纵轴可暴力搜索的密钥位数。曲线显示算力指数增长56位在90年代末已经不安全。2.6.4 标准化的意义与国密的起步DES的历史意义不仅在于算法本身更在于它建立了公开标准化的模式公开算法、公开评审、公开实现。虽然DES最终被AES取代但它为现代密码学标准化铺平了道路。与此同时中国也在探索自己的密码标准化道路。20世纪90年代随着信息化建设的推进中国开始立项研制自主的商用密码算法。SM1硬件分组密码和SM4当时称为SMS4后于2006年公开发布正是这一时期的产物旨在满足国内无线局域网WLAN等场景的安全需求。这标志着中国密码学从“引进跟随”走向“自主创新”。2.7 公钥革命2.7.1 密钥分发的千年难题对称密码有一个根本问题加密和解密使用同一把密钥。那么通信双方如何在不安全信道上安全地交换密钥传统方案是信使、线下见面、密钥本。但在互联网时代这不可扩展。如果Alice想和Bob安全通信他们必须先共享密钥但共享密钥本身就需要安全信道。这是一个循环难题。2.7.2 Diffie-Hellman密钥交换1976年Whitfield Diffie和Martin Hellman提出了公钥密码思想并给出了Diffie-Hellman密钥交换协议。他们用颜色混合做类比Alice和Bob各自选择一种秘密颜色然后交换混合后的颜色。第三方Eve知道混合颜色但无法分离出秘密颜色。最终Alice和Bob能计算出相同的共享颜色。图2-14是DH颜色混合类比图。​图2-14 DH颜色混合类比图Alice选红色Bob选蓝色。Alice发送黄色红色橙色Bob发送黄色蓝色绿色。Alice用绿色红色得到棕色Bob用橙色蓝色得到棕色。Eve只知道黄色、橙色、绿色无法得到棕色。数学上DH基于离散对数问题给定g和g^a mod p求a很困难。2.7.3 RSA的诞生1977年Rivest、Shamir和Adleman提出RSA。RSA基于大整数分解难题给定两个大素数乘积n分解n很困难。RSA同时支持加密和签名公钥加密私钥解密。私钥签名公钥验证。图2-15展示了RSA公钥私钥流程图。图2-15 RSA公钥私钥流程图Bob生成公钥(e,n)和私钥(d,n)公钥公开。Alice用公钥加密。Bob用私钥解密。签名时私钥签名公钥验证。2.7.4 公钥密码的影响公钥密码解决了密钥分发问题使数字签名、证书、PKI成为可能。今天你访问HTTPS网站时TLS握手就用到了公钥密码。但公钥密码很慢通常只用于密钥交换和签名。大量数据加密仍然使用对称密码。这就是混合加密。2.7.5 从RSA到ECC再到国密SM2RSA密钥越来越长。1024位已不安全2048位是当前基线未来可能需要3072位或更长。1985年Neal Koblitz和Victor Miller分别提出椭圆曲线密码。ECC在相同安全强度下密钥更短。例如256位ECC约等于3072位RSA。图2-16对比了RSA和ECC密钥长度。​图2-16 RSA与ECC密钥长度对比80位安全强度RSA 1024ECC 160128位RSA 3072ECC 256256位RSA 15360ECC 512。在国际ECC发展的同时中国也自主设计了基于椭圆曲线的公钥密码算法——SM2。SM2于2010年由国家密码管理局公开发布它不仅包含加密算法还包含数字签名算法和密钥交换协议是一个“三合一”的综合标准。SM2的推荐曲线参数与国际NIST曲线完全不同且强制搭配SM3哈希算法使用形成了完全自主可控的公钥密码体系。在同等安全强度下SM2的运算效率甚至优于部分国际ECC算法。2.8 AES与现代对称密码2.8.1 AES竞赛DES破解后NIST在1997年公开征集新一代加密标准AES。要求128位分组支持128、192、256位密钥全球公开评审。15个候选算法经过多轮分析最终Rijndael胜出。2001年成为AES。图2-17是AES竞赛时间线。​图2-17 AES竞赛时间线1997征集 → 1998公布15候选 → 1999第一轮 → 2000选定Rijndael → 2001发布FIPS 197。2.8.2 Rijndael与AES结构AES采用SPN结构不是Feistel。每一轮包括SubBytes字节代替S盒非线性变换。ShiftRows 行移位行循环移位。MixColumns列混合列线性变换。AddRoundKey轮密钥加与子密钥异或。注意AES 在最后一轮会省略MixColumns步骤直接进行SubBytes、ShiftRows和AddRoundKey以保证加解密结构的对称性。在 AES 中数据被排列成一个4×4 的字节矩阵状态矩阵这四个步骤就是每一轮对这个矩阵进行的“手术”1. SubBytes字节代替—— 混淆打乱字面意思Substitute Bytes替换字节。它在干嘛把状态矩阵里的每一个字节通过一张叫做 **S盒S-Box**的替换表一对一替换成另一个字节。目的这是 AES 中唯一的非线性变换。它让数据变得极其混乱防止攻击者用数学公式线性代数来倒推密钥。生活类比就像给每个字母发了一个密码本A 换成 QB 换成 W彻底打乱。2. ShiftRows行移位—— 扩散打乱位置字面意思Shift Rows移动行。它在干嘛把 4×4 矩阵的每一行进行循环左移。第1行不移动。第2行左移 1 个字节。第3行左移 2 个字节。第4行左移 3 个字节。目的让原本在同一列的数据被分散到不同的列去实现横向扩散。生活类比就像把麻将牌每一排的牌分别往左推不同数量的格子原本对齐的牌就全部错位了。3. MixColumns列混合—— 扩散深度混合字面意思Mix Columns混合列。它在干嘛把 4×4 矩阵的每一列拿出来当作一个多项式在有限域GF(2⁸)上乘以一个固定的矩阵。目的实现纵向扩散。经过这一步矩阵中一个字节的改动会影响到这一整列的全部4个字节。生活类比就像把一列牌拿出来洗牌一样进行复杂的数学组合让上下左右的数据彻底融合。4. AddRoundKey轮密钥加—— 注入密钥字面意思Add Round Key加上这一轮的密钥。它在干嘛把当前的状态矩阵与这一轮生成的子密钥Round Key进行异或XOR运算。目的这是这四步中唯一一个把“密钥”混入数据的步骤没有这一步加密就与密钥无关了。生活类比就像把水密钥倒进面粉数据里开始和面。图2-18是AES轮结构图。​图2-18 AES轮结构图状态矩阵4×4字节。每轮SubBytes → ShiftRows → MixColumns → AddRoundKey。最后一轮省略MixColumns。AES在软硬件中都很高效成为现代密码套件核心。2.8.3 国密对称密码SM4与ZUC在国际AES成为主流的同期中国的对称密码算法也取得了突破。SM4是一种分组密码分组长度和密钥长度均为128位采用32轮非线性迭代结构。它的设计公开、安全强度高且硬件实现效率极佳。SM4最初用于无线局域网标准后于2006年公开发布并于2012年成为国家标准。在物联网、金融IC卡、无线通信等领域SM4已得到广泛应用。除了分组密码中国还设计了ZUC祖冲之序列密码。ZUC于2011年发布是4G/5G移动通信国际标准中唯一的中国密码算法。它由一个线性反馈移位寄存器LFSR和两个非线性函数组成在保证高安全强度的同时具有极高的软件实现效率。图2-19对比了国际主流对称算法与国密对称算法的定位。​图2-19 国际与国密对称算法对比图分组密码AES vs SM4序列密码ChaCha20 vs ZUC。标注各自的应用场景与标准发布年份。2.8.4 现代密码套件今天推荐使用认证加密如AES-GCM和ChaCha20-Poly1305。它们同时提供保密性和完整性。从“只加密”到“加密认证”是密码学工程的重要进步。图2-20展示了现代密码套件组成。​图2-20 现代密码套件组成图密钥交换ECDHE认证ECDSA对称加密AES-GCM哈希SHA-256。箭头表示TLS握手组合。而在国密体系中对应的密码套件为密钥交换与认证采用SM2对称加密采用SM4哈希采用SM3共同构成国密TLSTLCP的核心。2.9 哈希、MAC与协议标准化2.9.1 哈希家族哈希函数把任意长度输入变成固定长度输出。MD5和SHA-1曾广泛使用但已被碰撞攻击击败。SHA-2仍然安全SHA-3是新一代标准。图2-21是哈希家族树。​图2-21 哈希家族树MD4 → MD5SHA-0 → SHA-1SHA-2SHA-224/256/384/512SHA-3Keccak。哈希算法经历了多代演进。早期的 MD4 衍生出 MD5而 SHA-0 演变为 SHA-1这些算法如今均已被证明不再安全。目前主流的国际标准是SHA-2家族包括 SHA-256、SHA-384、SHA-512其安全性至今未受实质性威胁。SHA-3Keccak是 2015 年 NIST 发布的新一代标准它不依赖 SHA-2 的结构而是采用全新的“海绵结构”作为 SHA-2 的备用方案。在中国对应的哈希标准是SM3。SM3 于 2010 年公布采用 Merkle-Damgård 结构输出长度为 256 位。其雪崩效应和抗碰撞能力与 SHA-256 相当。目前SM3 已广泛应用于国密数字签名、国密 TLS、区块链和电子政务等领域是中国商用密码体系的重要组成部分。2.9.2 HMAC与认证加密HMAC用哈希和密钥生成消息认证码验证消息完整性。AEAD把加密和认证结合防止篡改和重放。图2-22是HMAC结构图。​图2-22 HMAC结构图HMAC(K,m) H((K⊕opad) || H((K⊕ipad) || m))。图中展示内外两层哈希。几个要点密钥填充K₀密钥 K 若短于哈希函数的分块大小 B如 SHA-256 为 64 字节右侧补零到 B 位若比 B 长则先做一次哈希压缩成 H(K)。两个常量填充ipad 是0x36重复 B 次opad 是0x5C重复 B 次分别与 K₀ 异或。内外双层内层先算H((K₀⊕ipad)∥m)外层再把这个结果作为输入与(K₀⊕opad)拼接后哈希一次。为什么两层单层构造H(K∥m)对 MD5/SHA-1/SHA-2 这类 Merkle–Damgård 结构容易受到长度扩展攻击——攻击者看到 tag 和消息长度后可以悄悄在消息后面追加内容而不需要知道密钥。双层结构切断了这条路径。常配合HMAC-SHA-256、HMAC-SHA-1等使用定义见 RFC 2104。在国密体系中可以使用HMAC-SM3来实现消息认证。而在认证加密方面国密标准也支持SM4-GCM等AEAD模式或采用“SM4-CBC HMAC-SM3”的组合模式加密然后MAC。2.9.3 TLS版本演进与国密TLCPSSL 2.0、SSL 3.0、TLS 1.0、1.1、1.2、1.3。每次版本更新都修复了前代漏洞。TLS 1.3简化握手强制前向保密支持0-RTT。图2-23是TLS版本时间线与漏洞。​图2-23 TLS版本时间线与漏洞1995 SSL 2.01996 SSL 3.01999 TLS 1.02006 TLS 1.12008 TLS 1.22018 TLS 1.3。在中国为了满足国内合规需求基于TLS 1.1/1.2规范设计了国密SSL/TLS协议TLCP。TLCP使用SM2进行密钥交换和身份认证SM3进行哈希和MAC计算SM4进行对称加密并采用双证书体系签名证书加密证书。TLCP已成为国内金融、政务、能源等领域安全通信的重要标准。2.10 后量子密码与未来时间线2.10.1 量子计算威胁量子计算机利用量子比特和量子门进行计算。Shor算法可以在多项式时间内分解大整数和求离散对数直接威胁RSA和ECC也包括SM2。Grover算法对暴力搜索提供平方加速使对称密钥需要加倍长度AES-256、SM4-256应对。图2-24是量子计算威胁图。​图2-24 量子计算威胁图三个核心信息威胁的不对称性Shor 算法直接“杀死”整个公钥体系RSA/ECC/SM2 无一幸免而 Grover 算法只把对称密钥的强度减半。因此AES-256 在量子时代仍然相对安全但 AES-128 和国密 SM4均为128位的有效强度会降至64位必须升级到256位密钥或迁移至后量子密码。真正的燃眉之急是公钥加密体系。“先存储后解密”Harvest Now, Decrypt Later意味着威胁不是未来 tense 的需要保密 10 年以上的数据政务、医疗、金融、军工此刻被截获的密文就已经处于危险中。这正是各国政府要求尽快迁移 PQC 的现实理由。出路NIST 已于 2024 年正式标准化后量子算法ML-KEM 用于密钥交换、ML-DSA 用于签名过渡期普遍采用「经典算法 PQC」混合密钥交换防的就是量子计算机提前到来。2.10.2 NIST后量子标准化与中国布局NIST从2016年开始征集后量子算法。2024年发布首批标准ML-KEMKyber密钥封装。ML-DSADilithium数字签名。SLH-DSASPHINCS哈希签名。图2-25是后量子算法家族图。​图2-25 后量子算法家族图分支格密码、编码密码、多变量密码、哈希签名、同源密码。中国也在积极推进后量子密码的研究与标准化。国家密码管理局和中国密码学会已启动抗量子密码算法的征集与评估工作重点布局格密码、多变量密码等方向旨在未来形成自主可控的抗量子国密标准体系。2.10.3 迁移路线图后量子迁移不是一夜之间完成的。建议路线盘点现有密码资产。试点混合密钥交换。更新协议和库。逐步迁移长期数据。保持密码敏捷性。图2-26是后量子迁移路线图。​图2-26 后量子迁移路线图阶段盘点 → 试点 → 混合 → 迁移 → 敏捷。2.11 本章小结2.11.1 一页时间线复习图图2-27是本章一页复习图从古典密码到后量子密码上方加密下方破译中间标注关键人物和事件。特别增加“国密体系建立”分支。​图2-27 第2章一页复习图古典斯巴达、凯撒、单表替换、维吉尼亚。机械恩尼格玛。计算机DES、AES、SM4。公钥DH、RSA、ECC、SM2。哈希SHA、SM3。未来后量子。2.11.2 关键教训算法保密不可靠柯克霍夫原则成为现代密码学基础。密钥长度必须随算力增长。标准化与公开评审至关重要。攻防交替永不停息。后量子迁移已经开始密码敏捷性是未来必备能力。国密体系SM2/SM3/SM4/ZUC的建立是中国密码学从跟随到自主创新的重要里程碑。2.11.3 常见问题凯撒密码为什么危险密钥空间只有25种暴力破解瞬间完成。维吉尼亚密码为什么曾被误认为不可破多表替换打乱了频率但密钥循环留下了周期规律。恩尼格玛为什么被破操作漏洞、已知明文、机器搜索和数学分析共同作用。公钥密码解决了什么问题在不安全信道上协商密钥、实现数字签名。国际上有RSA/ECC中国有SM2。后量子密码为什么重要量子计算机将破解RSA、ECC和SM2必须提前迁移。SM3和SHA-256有什么区别两者输出长度相同256位安全性相当但消息扩展和压缩函数设计不同。SM3是中国自主设计的哈希标准。2.12 习题与实验2.12.1 概念题解释频率分析原理并说明它为什么能破解单表替换。比较单表替换与维吉尼亚密码的频率特征。说明公钥革命对互联网安全的意义。后量子密码威胁来自哪些量子算法简述国密SM2、SM3、SM4分别对应国际上的哪些算法并说明其自主创新点。2.12.2 图解题补全密码学时间线标注至少10个关键事件含国密里程碑。画出恩尼格玛内部结构标注转子、反射器、插线板。画出DH颜色混合图并解释为什么Eve无法得到共享颜色。画出后量子迁移路线图。画出国际密码套件与国密TLCP密码套件的对比图。2.12.3 实验一凯撒与频率分析用Python实现凯撒加密统计密文字母频率自动破解凯撒密码。观察密钥空间大小与暴力破解时间。2.12.4 实验二维吉尼亚破解实现维吉尼亚加密使用卡西斯基测试猜测密钥长度再用频率分析逐段破解。2.12.5 实验三观察现代协议版本与国密支持普通浏览器如 Edge访问https://sm2test.ovssl.cn时服务器会协商国际 TLS 协议并返回国际证书如 RSA/ECDSA 证书。通过开发者工具安全性面板可查看协商的Protocol如 TLS 1.3、Key Exchange如 X25519和Cipher Suite如 AES_128_GCM。使用国密浏览器如红莲花、密信访问同一站点时浏览器会自动优先发起国密握手服务器则返回SM2 证书。在证书详情中可观察到公钥算法为SM2签名算法为SM3withSM2且证书链包含签名证书与加密证书两张终端证书。该站点同时部署了国际与国密两套证书浏览器会根据自身协议栈自动选择合适的证书完美演示了“双证书自适应”机制。2.12.6 延伸阅读密码学历史书籍与图灵传记。布莱切利园博物馆资料。NIST后量子标准化文档。国家密码管理局发布的SM2/SM3/SM4/SM9/ZUC标准文档。第2章配图总清单编号配图名称用途图2-1密码学攻防螺旋图建立攻防交替演进的总体直觉图2-2斯巴达天书缠绕示意图建立换位密码与物理密钥的直观认知图2-3凯撒圆盘与移位表理解移位密码原理与模运算雏形图2-4单表替换加密解密图展示单表替换的一一映射关系图2-5英文字母频率柱状图展示语言统计规律为频率分析铺垫图2-6频率分析破解流程图讲解频率分析的系统化破解步骤图2-7维吉尼亚方阵图展示多表替换的加密查表机制图2-8密钥流循环图展示维吉尼亚密码的周期性弱点图2-9卡西斯基测试示意图讲解如何利用重复片段推算密钥长度图2-10恩尼格玛机器结构图展示机械密码机的内部构造与加密流程图2-11布莱切利园破译流程泳道图展示二战密码分析的组织协作与工程化流程图2-12DES加密流程图展示DES的Feistel结构与单轮运算过程图2-13DES密钥长度对比图展示算力增长与密钥长度面临的破解威胁图2-14DH颜色混合类比图用颜色混合直观解释DH密钥交换思想图2-15RSA公钥私钥流程图展示RSA加密与签名的密钥使用方向图2-16RSA与ECC密钥长度对比图展示ECC在同等安全强度下的密钥长度优势图2-17AES竞赛时间线展示AES标准化的公开征集与评选过程图2-18AES轮结构图展示AES的SPN结构与单轮运算过程图2-19国际与国密对称算法对比图对比AES/SM4、ChaCha20/ZUC的定位与应用图2-20现代密码套件组成图展示现代TLS密码套件的组合方式图2-21哈希家族树展示MD5/SHA-1/SHA-2/SHA-3的演进关系图2-22HMAC结构图展示HMAC的内外双层哈希结构图2-23TLS版本时间线与漏洞展示TLS版本演进历程及历史安全漏洞图2-24量子计算威胁图展示Shor/Grover算法对现有密码体系的威胁图2-25后量子算法家族图展示后量子密码的数学分支及NIST入选算法图2-26后量子迁移路线图展示向后量子密码迁移的五个阶段图2-27第2章一页复习图本章知识点总结与时间线回顾本地知识图本地知识图本地章概览图