
1. 章节整体框架这门课到底在考什么先说说我对第5章的整体判断。作为一门偏应用又带点理论深度的专业课密码与加密技术这一章在期末考试里占的比重通常不低一般在15%到25%之间有些学校甚至是简答和计算的必考章节。很多同学复习的时候容易陷入一个误区就是拿着教材从头背到尾概念背了一堆结果看到计算题还是不会做看到分析题不知道从哪里下手。出现这个问题的原因其实很简单——没有把这章的知识点按照“考法”来分类整理。教材里讲的是知识体系但考试考的是知识点的具体呈现方式。就拿“对称密码”来说教材里花了很多篇幅介绍DES的轮函数结构、S盒置换、Feistel网络这些底层机制但期末考试的客观题往往只考“DES的有效密钥长度是多少位”“AES的分组长度是多少位”这样的结论性内容。所以复习的时候要做到心里有数哪些知识点只需要记结论哪些知识点需要理解原理哪些知识点必须会动手计算。这一章的内容主线其实非常清晰就三条围绕“明文—加密—密文—解密”这个基本流程延展开核心解决的是数据保密性问题从古典密码到对称密码再到非对称密码这条发展线展示的是一次又一次的安全权衡与升级在加密基础上进一步延伸出完整性验证、身份认证等需求于是有了哈希函数、数字签名、数字证书和PKI体系我在复习的时候喜欢画一张流程草图把这条主线用箭头串起来。当你看到“保密→完整性→认证→抗抵赖”这条需求链条的时候就会明白教材为什么要把这些内容堆在同一章里而不是各讲各的。搞清楚了这条逻辑链复习的时候就能顺着往下推而不是东一榔头西一棒子。1.1 教材知识点的考试权重划分根据我翻教材和往年试题的经验这一章的考点分布大致可以分成四档。第一档是必考且分值较高的内容主要集中在对称密码体制DES、AES、非对称密码体制RSA以及数字签名与哈希函数这几个部分。这几块内容既能出选择题也能出简答题RSA还可能直接出计算题。第二档是高频选择题和填空题主要是古典密码凯撒密码、维吉尼亚密码、密码攻击的基本类型、密钥管理的概念性内容。这些知识点难度不大但考得频繁属于“送分题”范畴复习时不能丢分。第三档是理解分析类题目常见考法包括给出一个加密场景要求判断使用了哪种加密体制或者给出一个安全需求要求选择合适的技术手段。这类题目考察的是知识的运用能力需要建立“需求—技术”的对应关系。第四档是比较容易忽略的内容比如国产密码算法SM2、SM3、SM4、密码技术的发展趋势、量子密码的简单概念。这些内容在教材占比不大但近几年的考试中出现的概率在上升建议花少量时间把基本特点记住。1.2 为什么说密码学是网络安全的基石我上课的时候听老师说了一句话印象特别深“网络安全的所有技术手段本质上都是在解决一个问题——信息在不可信的环境中如何安全地传递。”这句话放到密码学上特别合适。试想一下如果没有加密技术我们在网络上传输的账号密码、支付信息、聊天记录全都等同于明文摆在那里任何人只要拿到数据包就能直接读取。所谓的安全体系就无从谈起。从这个角度去理解就能明白教材为什么把“密码与加密技术”放在一个非常靠前且核心的章节——它不只是一个孤立的技术点而是身份认证、访问控制、数据完整性校验、安全通信协议等几乎所有其他安全机制的基础设施。理解这层关系对做简答题很有帮助。比如说考试问“加密技术主要解决网络安全中的哪些问题”如果你只回答“保密性”那只能拿一半分。正确的思路是加密技术是保密性的核心手段但密码学的整体技术体系加密、哈希、数字签名、密钥管理实际上还支撑着真实性、完整性和不可否认性。把这些关联答上去答案的层次就上来了。2. 核心知识点精讲把原理吃透再刷题2.1 密码学基本概念与安全目标这一章开篇的基本概念属于必背内容但更要理解它们之间的区别。六个核心术语是明文、密文、加密、解密、密钥、密码体制。明文是原始的可读信息密文是经过变换后不可直接阅读的信息。加密就是把明文变成密文的过程解密是逆过程。密钥是控制加密和解密变换的参数这一点特别重要因为现代密码学的核心原则之一就是“算法公开密钥保密”——密码体制的安全性不依赖于算法保密而依赖于密钥的保密程度。这也是柯克霍夫原则的核心思想判断一个密码系统是否安全默认的前提是攻击者知道算法的全部细节但不知道密钥。教材里常出的选择题就会考这个原则题目往往这样出“现代密码学中密码体制的安全性主要取决于什么”答案是密钥的保密性不是算法的隐蔽性。安全目标也是高频考点有五个基本目标需要记住保密性、完整性、可用性、真实性认证性和不可否认性。这里需要注意区分完整性和真实性完整性保证数据没有被篡改通常用哈希或消息认证码实现真实性验证数据确实来自声称的发送方通常通过数字签名实现。考试时如果混淆这两个概念简答题很容易丢分。2.2 古典密码凯撒密码与维吉尼亚密码古典密码虽然在实际系统中已经不再使用但在教材和习题中占据固定位置因为它们是理解密码学基本思维的最简单载体。考法有两种一是直接给出明文和密钥要求计算密文二是反过来给密文要求推断明文。凯撒密码是最简单的移位密码。它的加密方式非常直白将字母表中的每个字母按统一位移量进行替换。比如密钥为3明文中的A就会变成D、B变成E。数学表达为 E(x) (x 3) mod 26解密则是 D(x) (x - 3) mod 26。举一个教科书上常见的例子。假设密钥k3明文是“HELLO”。H对应字母表位置7从0开始编号加上3得到10对应字母KE是4加3得到7对应HL是11加3得到14对应O。所以HELLO在凯撒密钥3下加密的结果是KHOOR。解密就是用相同位移反向操作把KHOOR每个字母减3变回HELLO。凯撒密码的缺点极其明显——只有25种有效密钥位移量1到25攻击者只要逐一尝试所有可能位移最多25次就能破解。这就是典型的穷举攻击。注意一个细节教材里有时会问“凯撒密码的密钥空间是多少”很多人回答25、26或者26的阶乘其实正确答案是25种有效偏移方式偏移0等于没加密不计入有效密钥。维吉尼亚密码比凯撒前进了一步它使用一个密钥字来动态确定每个字母的位移量。加密时把密钥字循环重复与明文逐字母相加。举例来说密钥为“KEY”明文为“HELLO”。密钥字母对应的位移量分别是K10、E4、Y24。加密第一段H(7)K(10)17对应R第二段E(4)E(4)8对应I第三段L(11)Y(24)35模26后为9对应J第四段L(11)K(10)21对应V第五段O(14)E(4)18对应S。最终密文是“RIJVS”。维吉尼亚密码的进步之处在于同一个明文字母在不同位置可能被加密成不同的密文字母因此比凯撒密码更能抵抗简单的频率分析攻击。但考试计算时要注意两点一是字母位置从0开始计还是从1开始计教材一般用0到25的编号做题前看清题目有没有特殊说明二是加法和乘法之后要记得模26结果始终保持在0到25的范围内。2.3 对称密码体制DES、3DES与AES对称密码是整个章节的重头戏。对称的意思是加密和解密使用同一个密钥或者加密密钥能很容易地推算出解密密钥。DES是数据加密标准诞生于20世纪70年代。它的分组长度是64位即每次加密处理64位数据块密钥长度看起来是64位但其中有8位是奇偶校验位实际有效密钥长度只有56位。DES的核心结构是16轮的Feistel网络每一轮通过轮函数F、异或运算和左右交换来实现混淆和扩散。复习时至少要知道以下几个数字分组长度64位、有效密钥56位、轮数16轮。3DES是为了增强DES强度而设计的过渡方案。它有几种模式教材常讲的是使用两个或三个不同密钥的三重加密。以三密钥模式为例首先用密钥K1加密然后用密钥K2解密再用密钥K3加密。为什么中间用解密而不是加密原因在于这样做可以与单DES系统兼容——如果三个密钥相同3DES就退化成DES。3DES的有效密钥长度是112位或168位安全强度比DES高了很多但由于轮次多处理速度相对较慢。AES是目前的对称加密主流标准。它的分组长度固定为128位密钥长度支持128位、192位和256位三个档位对应的加密轮数分别是10轮、12轮和14轮。AES采用的是Substitution-Permutation NetworkSPN结构而不是DES的Feistel结构。这一区别经常考请务必记住DES和3DES是Feistel结构AES是SPN结构。复习对称密码时建议自己做一个参数对照表把算法名称、分组长度、密钥长度、轮数、结构类型都列进去。考试时看到具体参数能快速判断属于哪个算法选择题基本就稳了。2.4 非对称密码体制RSA与ECC非对称密码是期末复习的另一大核心也是最容易出计算题的部分。非对称密码体制的特点在于加密和解密使用不同的密钥这两个密钥组成一个密钥对一个是公开的公钥可以随意分发另一个是私钥必须严格保密。用公钥加密的数据只能用对应的私钥解密私钥加密的数据只能用公钥验证。这个特性不仅解决了对称密码的密钥分发难题还为数字签名提供了基础。RSA是应用最广泛的非对称加密算法它的安全性建立在“大整数分解困难”这个数学难题之上。RSA的密钥生成过程分成五步选择两个不同的大素数p和q计算n p × qn称为模数计算欧拉函数φ(n) (p - 1)(q - 1)选择一个整数e要求1 e φ(n)且e与φ(n)互质计算e的模逆元d使得(e × d) mod φ(n) 1公钥是(e, n)私钥是(d, n)。加密时计算 c m^e mod n其中m是明文数值且必须小于n解密时计算 m c^d mod n。举一个具体的教材风格计算例子取p3、q11。可得n 33φ(n) (3-1)(11-1) 20。选择e 7因为7与20互质。现在求d需要满足7d mod 20 1。通过扩展欧几里得算法可以得到d 3因为7×3 2121除以20余1。设明文m 5数值要小于n33。加密c 5^7 mod 33。5^155^2255^3125 mod 33 265^426×5130 mod 33315^531×5155 mod 33235^623×5115 mod 33165^716×580 mod 3314。所以密文c14。解密m 14^3 mod 33。14^2196 mod 333131×14434 mod 335。成功还原明文m5。计算过程中要注意科学计算模运算时中间结果可以先取模再继续算不需要硬算大数这样既不容易出错速度也快。考试时如果数字选得比较大可以用平方-乘法来简化。ECC椭圆曲线密码在教材中的篇幅不算大但近年来的选择题出现频率在上升。记住几个关键结论ECC的安全性基于椭圆曲线离散对数难题相同安全强度下ECC的密钥长度比RSA短得多例如160位的ECC大致相当于1024位RSA这带来看两个优势——存储开销小、计算效率高。如果选择题问“哪种密码算法在相同安全强度下密钥长度最短”答案应该选ECC。2.5 哈希函数与数字签名不只是加密哈希函数在考试中经常和加密算法放在一起比较但它们的性质完全不同。哈希函数是一种单向映射把任意长度的输入变成固定长度的输出这个输出称为哈希值或摘要。常见的哈希算法中MD5输出128位、SHA-1输出160位、SHA-256输出256位。哈希函数有三个核心性质一是单向性从哈希值反向推出原始数据在计算上不可行二是抗碰撞性找到两个不同输入产生相同哈希值在计算上不可行这种碰撞概率非常非常低三是雪崩效应输入哪怕只改变一个比特输出的哈希值也会有大约一半的比特发生变化。选择题经常考“哈希函数能解决什么问题”答案是完整性与数据校验不是保密性。哈希不提供保密性因为原始数据本身并没有被隐藏只是被压缩成摘要。注意一个容易踩的坑MD5和SHA-1由于已经被找到有效的碰撞攻击方法在现代安全系统中已经不再推荐用于安全要求高的场景教材基础概念部分虽然会提到它们但应用类题目中建议回答“SHA-256作为更安全的替代方案”。国产的SM3输出的哈希长度是256位这一点需要知道。数字签名建立在非对称密码之上但容易和“加密”混在一起。数字签名的流程是发送方使用自己的私钥对消息的哈希值进行签名运算接收方使用发送方的公钥验证签名。它的核心作用是提供真实性和不可否认性而不负责保密——私钥签名、公钥验证这个方向不能用来加密消息内容任何持有公钥的人都能解开它。考试常出判断题“数字签名就是私钥加密公钥解密”从运算形式上这个说法没错但从功能定位上容易误导人正确答案要强调数字签名解决认证和抗抵赖问题。数字证书和PKI体系在教材里属于了解层次但需要理清逻辑关系。数字证书由证书颁发机构CA签发将身份信息与公钥绑定在一起解决了非对称密码中“公钥到底属于谁”的问题。PKI公钥基础设施则是一整套包括证书颁发、撤销、管理在内的完整体系。复习时记住这条链路用户向CA申请证书CA核验身份后签发证书验证方通过信任CA来信任证书从而信任公钥。3. 高频题型拆解与实战思路3.1 选择题的命题套路这一章的选择题数量多、覆盖广但命题套路相对固定。我把常见考法整理为四类。第一类考“参数记忆”。比如DES的有效密钥长度是多少位答案是56AES分组长度是多少位答案是128SM3输出多长答案是256MD5输出多长答案是128。这类题目没有技巧只能背下来。建议自己整理一个算法参数速查表考前反复看几遍。第二类考“特性区分”。比如Feistel结构与SPN结构的区别对称与非对称加密的主要区别哈希与加密的区别数字签名与消息认证码MAC的区别。这类题目重在理解能做对比表是最好的复习方式。第三类考“安全性质”。比如密码系统安全性取决于什么密钥而非算法DES为什么不再安全密钥过短MD5为什么不安全碰撞已被攻破。这类题需要联系实际发展来判断理解比单纯记忆更重要。第四类考“场景应用”。题干给出一个需求要求选合适的技术数据完整性验证选哈希身份认证加抗抵赖选数字签名大文件大量数据加密选对称加密密钥分发密钥交换选非对称加密需要高安全性且密钥长度短选ECC。3.2 计算题完整解法演练计算题是很多同学怕的部分。其实期末能考的计算题类型非常有限我把最核心的题型按步骤写清楚。凯撒密码和维吉尼亚密码是计算题的入门级别出现概率很高。做维吉尼亚密码题时先画出密钥字母对应的数字序列再按明文字母逐一加密每步模26。我上面已经给了完整的“HELLO”加“KEY”算“RIJVS”的例子。需要注意如果题目给的是大写字母字母编号从A0到Z25如果题目另行指定从A1开始则结果会有偏差做题前先确认编号规则。RSA计算题通常有三个变体变体一是已知p、q、e求d。做法是先算n和φ(n)再用扩展欧几里得求逆元。以p11、q13、e7为例n143φ(n)120。求d满足7d mod 120 1。用扩展欧几里得120 17×7 1所以1 120 - 17×7即(-17)×7 ≡ 1 (mod 120)取正数则d103。验证7×103721721 mod 120 1。变体二是对给定明文加密。直接用c m^e mod n计算。我上面的5^7 mod 33例子就是完整过程。这类题建议用递推乘法手算边乘边取模避免中间数爆炸。变体三是解密即给密文求明文。做法与加密相同只是底数换成密文、指数换成私钥d。关键是明确公钥(e, n)用于加密私钥(d, n)用于解密。实际考试卷面注意把步骤写清楚即使最后算错步骤分也能拿不少。还有一类概率较高的简答题让描述“利用扩展欧几里得算法求逆元”这需要掌握标准流程先用辗转相除法求最大公约数再回代整理成模线性方程。如果一时算不出来考试中也可以采用逐个试数的方法——对于小数字直接从1开始试满足乘积余数为1即可因为数小试得很快。3.3 分析题与简答题答题模板分析题一般给一个场景让你说明应该使用什么密码技术。答题时不是只写一个技术名称而是按“需求分析→技术选择→理由说明”三步走。举例说明题目问“银行网银系统在用户登录、交易签名、数据存储三个场景下分别应采用什么密码技术为什么”参考答案思路用户登录场景下需要保护口令传输的保密性和完整性使用SSL协议中的非对称加密来协商会话密钥、使用对称加密加密数据传输口令本身存储时用哈希加盐处理而不是明文存储交易签名场景下需要不可否认性使用数字签名技术具体算法可以选RSA或SM2数据存储场景下需要保证数据库内容即使被拖库也不泄露使用对称加密算法如AES或SM4。简答题还有一种固定问法就是对比对称加密与非对称加密的优缺点。答题要点对称加密加密解密速度块、效率高适合大量数据的加密但密钥分发和管理困难无法解决身份认证问题非对称加密密钥分发简单、能提供数字签名能力但计算速度慢不适合直接处理大数据量。实际应用中通常采用混合加密方案非对称加密用来保护对称加密所需的会话密钥对称加密负责主体数据的加解密兼顾了速度与密钥分发安全性。这种“混合加密”的方案在简答题中值得写明。4. 易错点和疑难辨析4.1 对称、非对称、哈希三种技术的混淆问题这三者是最容易搞混的三组概念。我用一个表格来区分复习时对着这个表反复看几遍对比维度对称加密非对称加密哈希函数密钥数量一个加密解密共用两个公钥与私钥无密钥运算主要用途数据保密性密钥交换、数字签名、保密完整性验证运算方向可逆加密/解密可逆但方向区分不可逆单向典型算法DES、3DES、AES、SM4RSA、ECC、SM2MD5、SHA-1、SHA-256、SM3输出与输入等长的密文与输入等长的密文固定长度摘要典型优势速度快、效率高密钥管理方便、支持认证轻量、校验快速很多题目会考“下列算法中属于对称加密的是哪一个”如果你已经把这张表记住了这类题就是送分题。4.2 数字签名与身份认证的方向性陷阱考卷上最高频的一个陷阱是把“数字签名”和“用私钥加密”画上等号然后让你判断功能。要清楚这个等号只在运算形式层面成立从功能层面说数字签名的主要功能是认证和抗抵赖不是保密。还有一个容易混淆的对比是数字签名与消息认证码MAC。MAC使用对称密钥能够提供完整性验证和一定程度上的身份验证但它不具备不可否认性——因为发送方和接收方共享同一个密钥接收方也能伪造出一样的MAC。而数字签名使用私钥签名只有签名者本人持有私钥因此无法否认。考试问“哪项技术可以提供不可否认性”优先答数字签名问“哪项技术需要共享密钥来验证完整性”优先答MAC。4.3 密钥管理中的常见误区密钥管理是教材相对靠后的内容虽然硬核计算题不多但选择题和简答题经常出现基本概念。最容易错的知识点有以下几个第一密钥长度与安全强度的关系不是线性的。密钥长度增加一位暴力破解的尝试次数翻倍所以安全强度是成指数级增长的。这也是为什么现代系统广泛采用128位或更高密钥长度的AES。第二公钥和私钥的关系公钥是从私钥推导出来的但反过来从公钥推出私钥在计算上不可行。RSA的安全性正是依赖这道单向关口。如果考试问“能否从公钥直接计算私钥”答案是否定的只能通过解决大整数分解问题才能推导而普通实例下这个计算是无法完成的。第三密钥的分发与更新是安全体系中最薄弱的环节之一。对称密钥的分发本质上叫“先有鸡还是先有蛋”的问题——安全地发送密钥需要先有一条安全通道。非对称加密解决了分发主体的问题但公钥的真实性还需要CA通过数字证书来保证。回答密钥管理类简答题时把这个逻辑链条理顺得分率会明显提升。4.4 经典密码技术的局限性总结期末简答和论述题中有一道高频题为什么古典密码已经被现代密码取代答题思路从多个维度展开。古典密码主要基于替换和置换没有结合现代数学难题本质上属于代换密码体系密钥空间很小无法抵御穷举攻击明文中的语言统计特征会通过密文泄露比如字母频率分布容易被频率分析法破解无法区分现代密码体制提出的密码算法公开原则。而现代密码设计目标中加入了混淆与扩散的标准密钥空间大到穷举完全不可行算法安全性建立在可量化的数学难题上。这样对比作答内容既全面又能体现理解深度。5. 期末突击策略与复习节奏安排5.1 三天复习清单如果你的复习时间很紧下面这组精简清单是我的实际经验按天拆解。第一天主攻知识框架梳理通读教材第5章的小结部分和课后概念题画出本章知识树把五种安全目标、对称与非对称基本概念、哈希与数字签名关系一次性搞清楚。再对着教材目录回忆每个小节讲了什么想不起来的再翻书。这一天不需要做计算题只求建立全局图景。第二天专攻计算题与算法参数背诵把凯撒密码、维吉尼亚密码、RSA加密解密各做至少3道题做完对照答案检查步骤。再看算法参数表中DES、3DES、AES、MD5、SHA-256、SM2、SM3、SM4各自的参数反复记忆。计算题训练的核心就是手感步骤不出错数字算对就是满分。第三天围绕简答题与真题练习把课后思考题和往年题里出现的简答题过一遍尤其是对称与非对称加密对比、数字签名流程、密码攻击类型分类、混合加密方案这四道高频题。按我上面给的三步模板需求分析→技术选择→理由说明写完整答案框架。如果还有时间把易错点表格重新浏览一遍。5.2 做题顺序和时间分配策略实际考卷上碰到计算题时建议先把步骤框架写在草稿纸上再回头填具体数字。以RSA题为例先画好表格列写p、q、n、φ(n)、e、d六个值然后按公钥、私钥、加密、解密四个环节推进。遇到卡壳先跳过不要因为一个RSA卡十分钟影响到后面的简答题。时间分配上选择填空控制在20分钟内完成计算题每道控制在10分钟左右简答分析题控制在15分钟左右留出最后的10分钟检查计算题的模运算步。密码学计算题的最主要失分点是算错模运算尤其是在递推乘法时中间结果没有及时取模导致大数运算出错。5.3 复习过程中最容易被忽略的三个盲区第一个盲区是教材中“明文空间”“密文空间”“密钥空间”等术语的准确含义。选择题可能会直接考这些定义比如问“密钥空间的大小决定了算法的什么能力”答案是抵御穷举攻击的能力。这些词平时看书容易略过但考选择题很直接。第二个盲区是“混合加密方案”的细节。很多同学知道AES和RSA各自是什么但问“为什么实际通信中两者要结合使用”就答不清楚了。正确的理解是RSA保护AES的密钥AES加密实际数据。先说一下为什么只用一种不行——只用RSA加密大量数据计算开销太大效率低得无法接受只用AES密钥分发又无法安全完成。所以混合方案结合了两者优点既保证了密钥分发的安全也保证了数据加解密的高效。第三个盲区是课后习题里关于“密码破解难度”的判断。碰到这类题目先判断攻击类型再判断工作量大小。简单记法现代加密算法的安全强度目标是密钥空间大到即使动用全球计算资源穷举也不可行如果题目要求判断加密强度不足通常的原因是密钥太短或算法存在已被公开的漏洞。6. 复盘我的复习方法与实战心得这一章复习到最后想跟正在备考的同学说几句实在话。我第一遍复习的时候犯了错把教材从头一个字一个字看到尾看到DES轮函数那一节大量时间花在记住Feistel网络的每一个细节上做题却发现考的根本不是这个。后来我才想明白教材的深度和考试的深度之间有一个落差复习的重点不是把教材每一个字背下来而是搞清楚考试会用什么方式去考这些知识。这是教材习题复习和课外能力拓展的本质区别。我建议备考的同学们这样做先用自己的话把整章的知识树写一遍写不出来就翻书写完再对照题目验证。这个过程看起来慢实际上很高效——因为写出来的是你自己的逻辑不是教材的原文。尤其是RSA的加解密流程和数字签名的运作流程能用自己的话一句一句讲清楚考试的时候不用临场组织语言答题自然流畅。最后再分享一个小技巧计算题做多了以后你会发现不管题目给的数字有多大RSA的核心步骤翻来覆去就是六个表格值和两次模幂运算。把这个固定套路印在脑子里考试时等于带了一张自动答题卡。预祝期末顺利。