资讯详情

密码学期末复习指南:核心模块解析与计算题实战

📅 2026/10/14 1:33:31 | 华诺云谱 👁 阅读
密码学期末复习指南:核心模块解析与计算题实战
1. 密码学期末复习的全局思路拆解1.1 为什么密码学复习不能靠“背”密码学这门课跟很多文科类课程不一样它表面上公式多、定义多但真正考起来老师想筛的是“你到底有没有理解这套安全机制是怎么运转的”。我见过太多同学复习的时候把AES的S盒、RSA的公式、哈希函数的性质一条条抄在本子上背结果一到考场题目稍微换个场景就懵了。原因很简单密码学是一门逻辑链条极强的学科每一个知识点都是从前一个知识点推导出来的你只背结论不理解推导过程等于把链条拆成了一颗颗散珠子串不起来。举个最典型的例子。很多同学背“RSA的安全性基于大整数分解难题”但如果你不理解为什么“分解难”就能保证“解密难”那考试里一旦问你“如果存在一个多项式时间的大整数分解算法RSA会怎样”你就答不上来。反过来如果你理解了RSA的加密和解密是互为逆运算、私钥d的求解依赖于φ(n)、而φ(n)的求解又依赖于p和q的分解那这道题就是送分题。所以我的复习思路很明确先搭骨架再填血肉最后刷题验证。骨架就是整门课的几大模块——古典密码、对称加密、公钥加密、哈希与消息认证、数字签名、密钥管理、协议安全。血肉就是每个模块里的核心算法、数学原理、安全性分析和典型攻击方式。刷题则是检验你有没有真正把骨架和血肉连起来。1.2 复习优先级的判断逻辑时间永远是有限的尤其是期末周可能同时有好几门课要复习。密码学这门课我的建议是按“考试分值权重 × 个人掌握程度”来排优先级。通常来说以下模块是绝大多数密码学课程的考试重点对称加密DES、AES的流程和轮结构分组密码的工作模式ECB、CBC、CFB、OFB、CTR这是必考的而且容易出计算题。公钥加密RSA的密钥生成、加解密过程、参数计算ElGamal的基本原理椭圆曲线密码的直观理解。RSA几乎百分百出计算题。哈希与消息认证SHA系列的基本流程HMAC的构造思路生日攻击的原理和复杂度计算。数字签名签名与加密的区别RSA签名和DSA签名的流程签名中可能存在的安全问题。密钥管理Diffie-Hellman密钥交换的流程和中间人攻击问题密钥分发的基本模型。而像古典密码凯撒、维吉尼亚、Playfair等通常分值不高但胜在简单复习性价比高花半小时过一遍就能拿分。零知识证明、秘密共享这类进阶内容要看老师有没有重点讲过如果课时少、作业少大概率不是考试重点。注意不同学校、不同老师的出题风格差异很大。最靠谱的优先级判断依据是老师上课反复强调的内容、作业里出现过的题型、往年真题里反复出现的考点。如果能有往年卷子那是最好的复习指南。1.3 复习资料的选择与取舍市面上的密码学教材很多比较常见的有Stinson的《Cryptography: Theory and Practice》、Katz和Lindell的《Introduction to Modern Cryptography》国内也有不少自编教材。但期末复习阶段我不建议你再去啃大部头教材时间根本不够。最有效的资料组合是老师的课件这是最直接的考试范围来源课件上的例题往往就是考试题型的原型。作业题作业里出现过的计算题、证明题考试大概率会变形出现。一本精简的复习笔记或知识点总结用来快速过一遍框架查漏补缺。往年真题如果拿得到至少做两遍第一遍按模块做第二遍按考试时间模拟。我个人的习惯是先把课件从头到尾翻一遍用A4纸手写一份“知识地图”把每个模块的核心概念、关键公式、典型题型列出来。这份地图不用很详细但一定要自己动手写因为写的过程就是梳理逻辑的过程。写完后再对照作业和真题看哪些地方是薄弱环节重点突破。2. 核心模块的细节解析与实操要点2.1 对称加密从DES到AES的演进逻辑对称加密是密码学里最“实在”的部分因为它直接涉及到数据的加解密操作考试里也最容易出计算题。复习这个模块核心要抓住两条线算法结构和工作模式。先说算法结构。DES和AES虽然都是分组密码但设计思路差别很大。DES的Feistel结构是它的灵魂——加密和解密可以用同一套电路实现因为Feistel结构的轮函数不需要可逆。这一点经常考简答题“为什么DES的解密过程和加密过程结构相同”答案就在于Feistel结构的对称性每一轮的操作是Li Ri-1Ri Li-1 ⊕ F(Ri-1, Ki)解密时只需要把子密钥顺序反过来用就行了。AES则不同它用的是SPN代换-置换网络结构每一步都必须是可逆的。AES的四个操作——SubBytes、ShiftRows、MixColumns、AddRoundKey——中除了AddRoundKey之外其他三个都是可逆的代换或置换。AddRoundKey之所以可逆是因为异或运算的逆运算就是它自己。这里经常考的一个细节是AES的最后一轮为什么没有MixColumns因为加上去也不会增加安全性反而浪费计算资源去掉之后解密流程更简洁。再说工作模式。ECB、CBC、CFB、OFB、CTR这五种模式考试里最常考的是ECB和CBC的对比。ECB的问题是相同的明文块会产生相同的密文块所以它不能隐藏明文的模式。经典的例子就是“ECB加密图片后仍然能看出原图轮廓”。CBC通过引入初始化向量IV和前一密文块的异或操作解决了这个问题。但CBC也有自己的问题加密是串行的不能并行IV必须随机且不可预测否则会有安全问题。CFB和OFB可以把分组密码变成流密码来用CTR模式则支持并行加密而且不需要填充。这些模式的优缺点对比建议整理成一张表格来记忆。模式是否需填充能否并行加密能否并行解密主要安全问题ECB是是是明文模式泄露CBC是否是IV可预测导致攻击CFB否否是IV重用问题OFB否否否IV重用问题CTR否是是计数器重用问题实操心得考试里如果让你“选择合适的工作模式并说明理由”一般答案是CBC或CTR。CBC适合文件加密CTR适合实时通信。如果题目强调“需要并行处理”选CTR如果强调“隐藏明文模式”选CBC。ECB基本不会作为正确答案出现除非题目明确说“加密随机数据”。2.2 公钥加密RSA计算题的套路与陷阱RSA是密码学考试里出计算题频率最高的知识点没有之一。它的核心流程看起来简单——选两个大素数p和q算n p × q算φ(n) (p-1)(q-1)选一个e满足gcd(e, φ(n)) 1算d e^(-1) mod φ(n)公钥是(e, n)私钥是(d, n)——但考试里会在各个环节设置陷阱。第一个陷阱是模逆运算。很多同学卡在“怎么求d”这一步。手算模逆最常用的方法是扩展欧几里得算法。我建议你复习的时候一定要亲手算几遍不要只看答案。具体步骤是用欧几里得算法求出gcd(e, φ(n)) 1的表达式然后回代得到e的逆元。举个例子e 17φ(n) 3120求d。先用欧几里得算法3120 17 × 183 9 17 9 × 1 8 9 8 × 1 1 8 1 × 8 0然后回代 1 9 - 8 × 1 9 - (17 - 9 × 1) × 1 9 × 2 - 17 × 1 (3120 - 17 × 183) × 2 - 17 × 1 3120 × 2 - 17 × 366 - 17 × 1 3120 × 2 - 17 × 367所以-367 mod 3120 2753即d 2753。这个过程考试里一定要写清楚因为步骤分往往比结果分还多。第二个陷阱是加密和解密的计算。RSA的加密是C M^e mod n解密是M C^d mod n。当数字很大的时候直接算是算不出来的必须用快速幂取模的方法。快速幂的核心思想是把指数写成二进制然后逐位平方和乘。比如算3^2753 mod 3233你把2753写成二进制然后从低位到高位每次平方底数如果当前位是1就乘到结果里。这个方法一定要练熟因为考试里几乎不可能让你用计算器直接算大数的幂。第三个陷阱是参数选择的合理性。考试里可能会问你“p和q应该满足什么条件”。标准答案是p和q必须是足够大的素数且差值不能太小否则容易被Fermat分解法攻破p-1和q-1都应该有大素数因子否则容易被Pollard的p-1算法攻破。另外e通常选65537因为它二进制表示里只有两个1加密速度快而且足够大以避免小指数攻击。注意RSA的题目里经常出现“已知公钥(e, n)求私钥d”的题型。如果n比较小你可以直接分解n得到p和q。如果n很大题目一定会给你额外的提示比如“已知p和q的差值很小”或者“已知φ(n)的值”。看到这类题先想想有没有特殊条件可以利用。2.3 哈希与消息认证生日攻击的复杂度计算哈希函数这个模块概念不难但考试里容易出“计算生日攻击复杂度”的题目。生日攻击的核心结论是对于一个输出长度为n比特的哈希函数找到一对碰撞所需的尝试次数大约是2^(n/2)。这个结论的推导用到了生日悖论——在一个有N个可能的输出空间中随机选取大约√N个输入就有超过50%的概率出现碰撞。考试里常见的问法是“SHA-1的输出长度是160比特问生日攻击的复杂度是多少”答案是2^80次哈希运算。如果题目再进一步问“如果要把安全强度提高到128比特哈希函数的输出长度至少是多少”答案是256比特因为2^(256/2) 2^128。这里有一个容易混淆的点抗原像攻击、抗第二原像攻击、抗碰撞攻击这三者的区别。抗原像是指给定哈希值h找不到M使得H(M) h复杂度是2^n。抗第二原像是指给定M1找不到M2 ≠ M1使得H(M2) H(M1)复杂度也是2^n。抗碰撞是指找不到任意一对M1 ≠ M2使得H(M1) H(M2)复杂度是2^(n/2)。很多同学把第二原像和碰撞搞混记住一个关键区别第二原像是“给定一个特定的输入”碰撞是“任意两个输入”。HMAC的构造也是常考点。HMAC(K, M) H((K ⊕ opad) || H((K ⊕ ipad) || M))其中opad和ipad是固定的填充常量。为什么要嵌套两次哈希因为外层哈希和内层哈希的组合可以防止长度扩展攻击。如果只用H(K || M)攻击者可以在不知道K的情况下通过长度扩展攻击构造出H(K || M || padding || M)。HMAC的双层结构把这个漏洞堵死了。2.4 数字签名签名与加密的本质区别数字签名这个模块考试里最爱考的一道题是“数字签名和公钥加密有什么区别”标准答案要从目的和密钥使用顺序两个角度来回答。公钥加密的目的是保证机密性发送方用接收方的公钥加密接收方用自己的私钥解密。数字签名的目的是保证完整性和不可否认性签名方用自己的私钥签名验证方用签名方的公钥验证。简单记就是加密是“公钥加密、私钥解密”签名是“私钥签名、公钥验证”。RSA签名是最简单的签名方案签名过程是S M^d mod n验证过程是M S^e mod n然后比较M和M是否相等。但这里有一个安全问题如果直接对消息M签名攻击者可以利用RSA的乘法同态性质伪造签名。具体来说如果攻击者获得了M1和M2的签名S1和S2那么S1 × S2就是M1 × M2的有效签名。为了防止这种攻击实际使用中要先对消息做哈希然后对哈希值签名即S H(M)^d mod n。这样攻击者就无法利用乘法同态性质了因为H(M1) × H(M2) ≠ H(M1 × M2)。DSA签名和RSA签名不同它基于离散对数难题签名过程中会引入一个随机数k。这个k非常关键如果k泄露或者被重用私钥就会暴露。考试里可能会出这样的题“如果两次签名使用了相同的k会发生什么”答案是攻击者可以通过两个签名方程联立解出私钥x。这个结论在2010年索尼PS3的签名密钥泄露事件中被真实验证过虽然我们不能提具体事件但原理是一样的。实操心得数字签名的大题通常分两步——先让你描述签名和验证的流程再让你分析某个攻击场景。答题的时候流程部分要写清楚每一步用了谁的密钥、做了什么运算分析部分要指出攻击者能获得什么信息、能构造出什么伪造品、最终破坏了哪个安全属性。2.5 密钥交换与密钥管理Diffie-Hellman的中间人问题Diffie-Hellman密钥交换是密码学里最优雅的协议之一但它的中间人攻击问题也是考试必考。协议本身很简单Alice选一个随机数a计算A g^a mod p发给BobBob选一个随机数b计算B g^b mod p发给Alice双方各自计算共享密钥K B^a A^b g^(ab) mod p。问题在于攻击者Mallory可以在中间截获A和B然后分别和Alice、Bob建立独立的共享密钥。Alice以为她在和Bob通信实际上她在和Mallory通信。防御中间人攻击的标准方法是认证的密钥交换比如用数字签名或证书来验证对方的身份。考试里如果问“如何防止Diffie-Hellman的中间人攻击”答案就是“引入认证机制确保公钥参数的来源可信”。密钥管理还有一个常考点是密钥分发中心KDC模型。在对称密钥体制下如果n个人要两两通信需要n(n-1)/2个密钥。KDC的作用是集中管理密钥每个人只需要和KDC共享一个主密钥通信时由KDC生成会话密钥分发给双方。这个模型的优点是密钥数量从O(n^2)降到了O(n)缺点是KDC成为了单点故障和性能瓶颈。3. 实操过程与核心环节实现3.1 手算RSA完整流程的现场记录我拿一道典型的RSA计算题来完整走一遍流程你可以跟着一起算。题目选择p 61q 53e 17求私钥d并对明文M 65进行加密和解密。第一步计算n和φ(n)n p × q 61 × 53 3233 φ(n) (p-1) × (q-1) 60 × 52 3120第二步验证e的合法性gcd(17, 3120) 1所以e 17是合法的公钥指数。第三步用扩展欧几里得算法求d3120 17 × 183 9 17 9 × 1 8 9 8 × 1 1 8 1 × 8 0回代 1 9 - 8 9 - (17 - 9) 9 × 2 - 17 (3120 - 17 × 183) × 2 - 17 3120 × 2 - 17 × 366 - 17 3120 × 2 - 17 × 367所以d -367 mod 3120 3120 - 367 2753。验证17 × 2753 4680146801 mod 3120 46801 - 3120 × 15 46801 - 46800 1。正确。第四步加密C M^e mod n 65^17 mod 3233用快速幂计算 65^2 4225 mod 3233 992 65^4 992^2 984064 mod 3233 984064 - 3233 × 304 984064 - 982832 1232 65^8 1232^2 1517824 mod 3233 1517824 - 3233 × 469 1517824 - 1516277 1547 65^16 1547^2 2393209 mod 3233 2393209 - 3233 × 740 2393209 - 2392420 78917 16 1所以65^17 65^16 × 65^1 789 × 65 51285 mod 3233 51285 - 3233 × 15 51285 - 48495 2790所以密文C 2790。第五步解密M C^d mod n 2790^2753 mod 3233这个指数太大了手算不现实。但考试里一般不会让你算这么大的指数通常会给你一个小的d或者让你用中国剩余定理CRT来加速。CRT的思路是分别在mod p和mod q下计算然后用CRT合并。具体来说 M1 C^(d mod (p-1)) mod p M2 C^(d mod (q-1)) mod q 然后用CRT求M。d mod (p-1) 2753 mod 60 2753 - 60 × 45 2753 - 2700 53 d mod (q-1) 2753 mod 52 2753 - 52 × 52 2753 - 2704 49M1 2790^53 mod 61 2790 mod 61 2790 - 61 × 45 2790 - 2745 45 45^53 mod 61用快速幂算一下这里省略中间步骤最终得到M1 4。M2 2790^49 mod 53 2790 mod 53 2790 - 53 × 52 2790 - 2756 34 34^49 mod 53最终得到M2 12。然后用CRT合并 M ≡ 4 (mod 61) M ≡ 12 (mod 53)M 4 61 × t代入第二个同余式 4 61t ≡ 12 (mod 53) 61t ≡ 8 (mod 53) 8t ≡ 8 (mod 53)因为61 mod 53 8 t ≡ 1 (mod 53)取t 1M 4 61 65。解密成功。注意考试里如果让你手算RSA一般会选很小的p和q而且d也不会太大。如果遇到大指数先想想能不能用CRT简化。另外快速幂的每一步都要写清楚因为步骤分很关键。3.2 AES轮操作的逐步拆解AES的轮操作是考试里容易出细节题的地方。我以AES-128为例把每一轮的操作拆开讲。AES-128的明文是128比特即16字节排列成4×4的字节矩阵。初始时先做一次AddRoundKey然后进行10轮操作。前9轮每轮包含四个步骤SubBytes、ShiftRows、MixColumns、AddRoundKey。第10轮没有MixColumns。SubBytes对状态矩阵的每个字节应用S盒替换。S盒是一个16×16的查找表它的构造基于GF(2^8)上的乘法逆元和仿射变换。考试里一般不会让你构造S盒但可能会让你查表。比如输入字节0x53查S盒得到0xED。ShiftRows对状态矩阵的每一行进行循环左移。第0行不移第1行左移1字节第2行左移2字节第3行左移3字节。这个操作的目的是把不同列的数据混合起来增加扩散性。MixColumns对状态矩阵的每一列进行矩阵乘法。乘法的定义在GF(2^8)上矩阵是固定的 [02 03 01 01] [01 02 03 01] [01 01 02 03] [03 01 01 02]每一列的四个字节与这个矩阵相乘得到新的四个字节。这个操作是AES里最复杂的部分考试里可能会让你算一列。比如输入列是[0xDB, 0x13, 0x53, 0x45]计算过程是 新字节0 02·DB ⊕ 03·13 ⊕ 01·53 ⊕ 01·45 其中02·DB表示DB在GF(2^8)上乘以2规则是左移一位如果最高位是1就异或0x1B。DB 11011011左移一位得到10110110最高位是1异或0x1B00011011得到10110101 0xB5。所以02·DB 0xB5。 03·13 02·13 ⊕ 13。13 00010011左移一位得到00100110 0x26最高位是0所以02·13 0x26。03·13 0x26 ⊕ 0x13 0x35。 01·53 0x5301·45 0x45。 所以新字节0 0xB5 ⊕ 0x35 ⊕ 0x53 ⊕ 0x45 0xB5 ⊕ 0x35 0x800x80 ⊕ 0x53 0xD30xD3 ⊕ 0x45 0x96。AddRoundKey把状态矩阵和轮密钥进行异或。轮密钥是从主密钥通过密钥扩展算法生成的。密钥扩展的细节也可能考核心是把128比特主密钥分成4个字然后逐个扩展每4个字为一轮密钥。扩展过程中用到了RotWord、SubWord和Rcon。实操心得AES的细节题通常不会让你完整加密一个分组但可能会让你算一轮或者一个步骤。复习的时候至少要把SubBytes的查表、ShiftRows的移位规则、MixColumns的一列计算练熟。密钥扩展的流程也要能说清楚尤其是Rcon的作用和轮密钥的生成规律。3.3 哈希链与消息认证码的构造实验哈希链是一个很有意思的结构考试里可能会让你分析它的安全性。哈希链的构造是选择一个种子s然后反复应用哈希函数H得到h1 H(s)h2 H(h1)...hn H(hn-1)。验证的时候如果你知道hn别人给你hn-1你可以验证H(hn-1) hn。这个结构的优点是验证只需要一次哈希运算而且不能从hn反推出hn-1因为哈希函数的单向性。哈希链的典型应用是一次性密码。服务器存储hn用户第一次登录时发送hn-1服务器验证H(hn-1) hn然后把hn-1存下来。第二次登录时用户发送hn-2服务器验证H(hn-2) hn-1。这样每次登录用的密码都不同而且即使被截获攻击者也无法推出下一次的密码。HMAC的构造实验可以用Python来做。Python的hmac模块直接支持HMAC但考试里你需要手写HMAC的计算过程。我建议你用一个小例子手动算一遍假设H是简化的哈希函数比如取模运算K 0x0b重复到块长度M Hi There。ipad 0x36opad 0x5c。内层哈希的输入是(K ⊕ ipad) || M外层哈希的输入是(K ⊕ opad) || 内层哈希结果。你可以用Python验证你的手算结果import hmac import hashlib K b\x0b * 16 M bHi There result hmac.new(K, M, hashlib.md5).hexdigest() print(result)这个实验的目的是让你理解HMAC的双层结构为什么能抵抗长度扩展攻击。如果你只用H(K || M)攻击者可以在不知道K的情况下构造出H(K || M || padding || M)。但HMAC的外层哈希把内层结果作为输入攻击者无法控制内层哈希的输出所以长度扩展攻击就失效了。4. 常见问题与排查技巧实录4.1 计算题常见错误与规避方法密码学考试里的计算题错误往往不是出在“不会”而是出在“粗心”。我整理了几类最常见的错误你对照一下自己有没有踩过。第一类模逆算错。扩展欧几里得算法的回代过程很容易出错尤其是符号搞反。我的建议是算完之后一定要验证e × d mod φ(n)是否等于1。如果不等于1说明算错了赶紧重算。另外d必须是正数如果算出来是负数要加上φ(n)变成正数。第二类快速幂的指数二进制展开搞错。快速幂的核心是把指数写成二进制然后从低位到高位处理。很多同学会把顺序搞反或者漏掉某一位。我的建议是先把指数的二进制写出来然后在旁边标注每一位对应的平方结果最后把需要乘的项圈出来逐个相乘。这样不容易漏。第三类AES的MixColumns计算错误。GF(2^8)的乘法规则是“左移一位如果溢出就异或0x1B”。很多同学忘记异或0x1B或者异或的时机搞错。记住先左移再看移位前的最高位是不是1如果是1才异或0x1B。另外03·x 02·x ⊕ x这个技巧可以简化计算。第四类Diffie-Hellman的共享密钥算错。DH的共享密钥是g^(ab) mod p但很多同学会算成g^a × g^b mod p这是完全不同的。记住指数是相乘不是底数相乘。另外p必须是大素数g必须是p的本原根否则生成的密钥空间会很小。常见错误正确做法验证方法模逆算错用扩展欧几里得算法回代时注意符号e × d mod φ(n) 1快速幂指数展开错先写二进制标注平方结果再圈出需要乘的项用Python验证MixColumns忘记异或0x1B左移后检查移位前的最高位用已知测试向量验证DH共享密钥算错指数相乘不是底数相乘双方算出的K应该相同4.2 证明题与简答题的答题模板密码学考试里证明题和简答题的分值往往不低但很多同学不知道怎么组织语言。我总结了一个答题模板你可以参考。证明题模板明确要证明的命题是什么。列出已知条件和需要用的定义、定理。从已知条件出发逐步推导每一步都要写清楚依据。得出结论并说明这个结论的意义。比如证明“如果RSA的模数n可以被分解那么私钥d可以被计算出来”命题已知n p × q可以计算出d。已知公钥(e, n)n p × q。推导由p和q可以算出φ(n) (p-1)(q-1)。由e和φ(n)可以用扩展欧几里得算法算出d e^(-1) mod φ(n)。结论n的分解直接导致私钥d的泄露所以RSA的安全性依赖于n的分解难度。简答题模板先给出核心结论一句话。展开解释分点说明。如果有必要举一个例子或反例。最后点明这个知识点的实际意义。比如回答“为什么ECB模式不安全”核心结论ECB模式对相同的明文块产生相同的密文块会泄露明文的模式信息。展开ECB独立加密每个分组没有引入随机性或链式依赖。如果明文中有重复的块密文中也会有重复的块。攻击者可以通过分析密文的重复模式来推断明文的结构。例子加密一张图片时ECB加密后的图片仍然能看出原图的轮廓。意义ECB不适合加密有结构的数据实际应用中应该使用CBC或CTR等更安全的模式。4.3 复习时间不够时的急救策略如果你离考试只剩两三天时间肯定不够面面俱到。这时候我的建议是“抓大放小保计算题争简答题”。第一天集中攻克RSA和AES的计算题。RSA的密钥生成、加解密、模逆运算AES的轮操作、S盒查表、MixColumns计算这些是必考的而且分值高。把课件和作业里的相关题目全部做一遍确保每一步都能手算出来。第二天复习哈希和数字签名。生日攻击的复杂度计算、HMAC的构造、RSA签名和DSA签名的流程这些是简答题的高频考点。不需要手算太复杂的题但流程和原理要能说清楚。第三天过一遍古典密码和密钥管理。凯撒密码、维吉尼亚密码的加解密Diffie-Hellman的流程和中间人攻击KDC模型的基本原理。这些内容相对简单花半天就能过完。剩下的时间做一套往年真题模拟考试节奏。注意如果时间实在不够优先保证计算题的准确率。简答题即使答不全写对核心结论也能拿部分分。但计算题如果第一步就算错后面全错损失很大。4.4 考场上的时间分配与检查技巧密码学考试的题量通常不会太大但计算题很耗时间。我的建议是拿到卷子先花2分钟浏览一遍判断哪些题是“必拿分”的哪些是“尽力而为”的。先做计算题因为计算题需要清醒的头脑而且分值高。如果卡住了先跳过做完其他题再回来。简答题要写全不要只写结论。老师看的是你的思路步骤分往往比结果分还多。留出10分钟检查。重点检查模逆运算、快速幂的指数展开、AES的MixColumns计算这些地方最容易出错。检查的时候可以用不同的方法验证。比如模逆算完之后用e × d mod φ(n) 1验证。快速幂算完之后用Python或计算器验证。AES的MixColumns算完之后用已知的测试向量验证。最后再分享一个小技巧考试前把常用的公式和流程写在一张纸上进考场前再看一遍。比如RSA的密钥生成流程、AES的轮操作顺序、生日攻击的复杂度公式、Diffie-Hellman的协议流程。这些内容在考场上很容易因为紧张而记混考前过一遍能帮你稳住心态。我个人在实际复习中的体会是密码学这门课理解比记忆重要动手比看书重要。你把RSA的模逆亲手算五遍比看十遍答案都管用。你把AES的一轮操作亲手走一遍比背十遍流程都记得牢。期末复习时间紧但只要抓住核心模块把计算题练熟简答题能说清楚原理拿一个不错的分数并不难。
📝

华诺云谱内容团队

资深建站顾问 · 行业研究员

10年+企业数字化服务经验,专注智能建站、SEO优化与品牌营销,持续输出建站技巧、行业洞察与营销干货,已帮助5000+企业实现数字化增长。

你可能需要的服务

订阅华诺云谱资讯周报

每周一封,精选建站技巧、SEO与营销干货,直达邮箱。已有 8,000+ 企业主订阅,助你少走弯路。

↑