考研复习 Day 41 | 密码学--第四章 分组密码(下)

发布时间:2026/5/27 14:04:28

考研复习 Day 41 | 密码学--第四章 分组密码(下) 注以下内容参考《新编密码学》范九伦 张雪锋 侯红霞 编著第4章 分组密码下4.6 分组密码的工作模式实际应用中待加密消息的长度通常大于分组长度需要将长消息分成连续的分组进行处理。工作模式不仅增强算法的不确定性还可实现密文长度与明文长度不对等、控制错误传播等。常用的工作模式有五种ECB、CBC、CFB、OFB、CTR。定义以下符号E(x)分组加密过程D(y)分组解密过程n分组长度P1,P2,…,Pm​明文分组序列C1,C2,…,Cm​密文分组序列LSBn(A)A的最低n位MSBn(A)A的最高n位A∥BA与B的链接1) ECB模式电码本加密Ci←E(Pi)解密Pi←D(Ci)每个明文分组独立加密相同明文产生相同密文。优点可并行速度快一个密文错误只影响当前分组。缺点不隐藏明文模式安全性差。适用短数据如加密密钥。2) CBC模式密码分组链接加密C₀←IVCi←E(Pi⊕C(i−1))解密Pi←D(Ci)⊕C(i−1)​IV是随机初始向量需随密文一起发送。每个密文分组依赖于所有之前的明文分组。优点隐藏明文模式适合长消息。缺点不能并行错误会传播到后续分组。3) CFB模式密码反馈设分组长度为s1≤s≤n。加密I₁←IV,Ii←LSB(n−s)(I(i−1))∥C(i−1)​Oi←E(Ii),Ci←Pi⊕MSBs(Oi)解密公式相同将Ci与Oi​异或恢复Pi。优点可预处理可加密小于分组长度的数据。缺点不能并行错误传播。4) OFB模式输出反馈加密/解密I₁←IV,Ii←O(i−1)​Oi←E(Ii),Ci←Pi⊕Oi加密和解密过程相同。优点可预处理错误传播小1比特错误只影响1比特明文。缺点不能并行需双方同步。5) CTR模式计数器加密/解密Ci←Pi⊕E(Ctri),Pi←Ci⊕E(Ctri)计数器从IV开始递增。优点可并行可预处理加解密相同安全性好。缺点需保持同步。各种模式特点对比表4-13模式优点缺点ECB可并行速度快不隐藏明文模式抗攻击能力弱CBC隐藏明文模式适合长消息不能并行错误传播CFB可预处理支持短数据不能并行错误传播OFB可预处理错误传播小不能并行需同步CTR可并行可预处理加解密相同需同步4.7 分组密码的安全性常见攻击方法穷尽搜索攻击暴力枚举密钥。差分密码分析分析明文对差值对密文对差值的影响恢复密钥Biham Shamir, 1990。数据复杂度高但适用于评估安全性。线性密码分析寻找明文、密文、密钥之间的线性近似关系通过大量已知明文-密文对猜测密钥位Matsui, 1993。相关密钥攻击。习题4 解答4-1 证明DES算法的解密过程是加密的逆过程。证明DES是Feistel网络结构。对于Feistel网络加密过程为LiR(i−1),RiL(i−1)⊕f(R(i−1),Ki)解密时将密文作为输入使用相同的子密钥但逆序R(i−1)Li,L(i−1)Ri⊕f(Li,Ki)将加密最后一轮的输出(Ln,Rn)代入解密第一轮R(n−1)Ln,L(n−1)Rn⊕f(Ln,Kn)由加密过程知LnR(n−1)​RnL(n−1)⊕f(R(n−1),Kn)。代入得L(n−1)[L(n−1)⊕f(R(n−1),Kn)]⊕f(R(n−1),Kn)L(n−1)R(n−1)R(n−1)​因此一轮解密恢复出上一轮的状态。依此类推经过16轮后恢复出原始明文。所以解密是加密的逆过程。4-2 证明在DES算法中每一个子密钥的第一个24位来自初始密钥的同一个28位子集而每一个子密钥的第二个24位来自初始密钥的一个不相交的28位子集。证明DES初始密钥56位忽略奇偶校验位。密钥生成时先通过置换选择1PC-1将56位分成两个28位C₀​包含原密钥的第57, 49, …, 4位共28位D₀​包含原密钥的第63, 55, …, 7位共28位C₀和D₀​不相交且覆盖全部56位。每轮对C(i−1)​和D(i−1)分别循环左移得到Ci和Di​。通过置换选择2PC-2从56位Ci∥Di​中选取48位作为子密钥前24位来自Ci的14, 17, 11, 24, 1, 5, 3, 28, 15, 6, 21, 10, 23, 19, 12, 4, 26, 8, 16, 7, 27, 20, 13, 2后24位来自Di​的41, 52, 31, 37, 47, 55, 30, 40, 51, 45, 33, 48, 44, 49, 39, 56, 34, 53, 46, 42, 50, 36, 29, 32由于PC-2只从Ci​取前24位、从Di取后24位且Ci​始终是C₀​的移位Di​始终是D₀​的移位因此每个子密钥的前24位来自C₀对应的28位子集后24位来自D₀​对应的28位子集且这两个子集不相交。4-3 在DES和AES算法中找出代换密码和置换密码的部分。解答算法代换密码Substitution置换密码PermutationDESS-盒8个S-盒6位输入→4位输出IP初始置换、IP⁻¹逆初始置换、E-盒扩展、P-盒置换、PC-1、PC-2AESByteSubsS-盒ShiftRows、MixColumns部分置换性质4-4 证明y′c(y)其中yDES(x,k)y′DES(c(x),c(k))c(⋅)表示按位取反。证明DES的加密由IP初始置换、16轮Feistel操作、IP⁻¹逆初始置换组成。IP和IP⁻¹是线性置换不影响取反性质即IP(c(x))c(IP(x))。每轮Feistel操作轮函数f(R,K)中包含E-盒扩展线性、与子密钥异或、S-盒替换、P-盒置换。S-盒的输入是E(R)⊕K输出记为S(E(R)⊕K)。当R和K都取反时E(c(R))⊕c(K)c(E(R))⊕c(K)c(E(R)⊕K)。可以验证对于DES的S-盒有S(c(x))c(S(x))补码性质。因此f(c(R),c(K))c(f(R,K))。Feistel轮变换加密LiR(i−1)​RiL(i−1)⊕f(R(i−1),Ki)当输入和子密钥都取反时输出也取反异或性质。归纳可得DES(c(x),c(k))c(DES(x,k))即y′c(y)。4-5 设AES-128密钥十六进制为2B7E151628AED2A6ABF7158809CF4F3C要求根据以上密钥构造出完整的密钥编排方案。解答密钥长度128位轮数N10需生成44个字w[0]∼w[43]。步骤1初始字将16字节密钥按列排列w[0]2B7E1516,w[1]28AED2A6,w[2]ABF71588,w[3]09CF4F3C步骤2生成w[4]∼w[43]对于i4到43若imod 4≠0w[i]w[i−4]⊕w[i−1]若imod 40先计算tempSubWord(RotWord(w[i−1]))⊕RCon[i/4]然后w[i]w[i−4]⊕temp轮常数RCon[j]十六进制RCon[1]01000000, RCon[2]02000000, RCon[3]04000000, RCon[4]08000000,RCon[5]10000000, RCon[6]20000000, RCon[7]40000000, RCon[8]80000000,RCon[9]1B000000, RCon[10]36000000计算示例i4RotWord(w[3]) 09CF4F3C → CF4F3C09SubWord(CF4F3C09)查AES S-盒得 8A 84 EB 01 → 8A84EB01异或RCon[1]01000000 → 8B84EB01w[4] w[0] ⊕ 8B84EB01 2B7E1516 ⊕ 8B84EB01 A0FAFE17类似继续计算可得全部44个字。完整结果可查阅AES标准附录。4-6 通过式(4-1)计算对应x01010011的输出序列y。解答x01010011二进制 0x53。首先求x在GF(28)中的乘法逆元。查表或计算0x53的逆为0xCA二进制11001010。令b11001010应用仿射变换yA⋅b⊕b₀​其中b₀[0,1,1,0,0,0,1,1]^T转置。计算A⋅b后异或b₀​得到y0xED二进制11101101。所以输出y11101101。4-7 已知DES算法中明文消息x和密钥k试计算加密过程中的L₁和R₁​。解答这是一道计算量较大的题需按DES步骤计算。步骤1初始置换IP将64位明文按IP表重排得到L₀​和R₀​各32位。步骤2生成子密钥K₁​将64位密钥去掉奇偶校验位得56位。PC-1置换得C₀​和D₀​各28位。循环左移1位得C₁,D₁​。PC-2压缩置换得48位K₁​。步骤3计算f(R₀,K₁)E-盒扩展32位→48位与K₁异或8个S-盒48位→32位P-盒置换得32位结果步骤4计算L₁,R₁​L₁R₀,R₁L₀⊕f(R₀,K₁)由于手工计算繁琐建议使用编程验证。最终结果为L1和R1​各32位二进制数。4-8 证明DES算法中S-盒4的性质。解答(1) S-盒4的第一行和第二行已知。取第一行任意4位(x₁,x₂,x₃,x₄)映射为(x₂,x₁,x₄,x₃)⊕(0,1,1,0)可验证结果等于第二行对应位置的值。(2) S-盒4的每行之间都存在类似的线性变换关系可以通过列置换和位异或实现互变。具体可逐行验证。4-9 已知IDEA算法中明文消息x和密钥k试计算加密过程中第一轮的输出和第二轮的输入。解答IDEA第一轮操作参考教材图4-1964位明文分成4个16位子分组X₁,X₂,X₃,X₄。使用前6个子密钥进行乘、加、异或操作经过MA盒处理。输出4个16位子分组交换中间两个作为下一轮输入。因计算过程较复杂需分步进行。4-10 在GF(2⁸)中m(x)x⁸x⁴x3x1a(x)x⁶x⁴x²x1b(x)x⁴1求a(x)⋅b(x)mod m(x)。解答首先计算乘积a(x)⋅b(x)(x⁶x⁴x²x1)(x⁴1)展开x¹⁰x⁸x⁶x5x⁴x⁶x⁴x²x1合并x¹⁰x⁸(x⁶x⁶)x⁵(x⁴x⁴)x²x1x¹⁰x⁸(x⁶x⁶)x⁵(x⁴x⁴)x²x1模m(x)化简利用x⁸≡x⁴x³x1x¹⁰x²⋅x⁸≡x²(x⁴x³x1)x⁶x⁵x³x²代入(x⁶x⁵x³x²)x⁸x⁵x²x1x⁵x⁵0,x²x²0得x⁶x³x⁸x1再用x⁸≡x⁴x³x1x⁶x³(x⁴x³x1)x1x⁶x⁴(x³x³)(xx)(11)x⁶x⁴所以结果为x⁶x⁴对应二进制01010000十六进制0x50。4-11 在GF(2⁸)上(01)的逆是什么解答(01)在GF(28)中表示多项式1。1 × 1 1所以逆是自身。答案01。4-12 为了保证分组密码算法的安全强度对分组密码算法的要求有哪些解答足够大的密钥空间抵抗穷举搜索。混淆与扩散特性好满足雪崩效应。抵抗已知攻击差分分析、线性分析等。无弱密钥或半弱密钥。轮函数具有高非线性。加解密速度快适合软硬件实现。4-13 什么是雪崩效应解答雪崩效应明文或密钥中任意1位发生变化密文中平均约有一半50%的位发生变化。这确保了密文与明文、密钥之间无统计相关性。4-14 什么是Feistel密码结构实现Feistel密码结构所依赖的主要参数有哪些解答Feistel结构是一种迭代分组密码结构每轮将输入分为左右两半右半经轮函数处理后与左半异或然后交换左右。主要参数分组大小2L位轮数n子密钥生成算法轮函数F密钥大小4-15 什么是分组密码的操作模式有哪些主要的分组密码操作模式其工作原理是什么各有何特点解答操作模式是处理长消息时重复应用分组密码的方法。主要模式ECB独立加密每个分组。可并行但不隐藏模式。CBC前一分组密文与当前明文异或后加密。隐藏模式但有错误传播。CFB将前一分组密文作为加密输入输出与明文异或。支持短数据。OFB加密IV生成密钥流与明文异或。错误不传播需同步。CTR加密计数器值与明文异或。可并行可预处理。工作原理与特点见教材表4-13。注以上内容的理解和计算如果有任何错误希望各位读者和大佬指出改正非常感谢

相关新闻