《密码编码学与网络安全》复习题答案
时间:2025-07-15
时间:2025-07-15
《密码编码学与网络安全》复习题
1. 信息安全(计算机安全)目标是什么?
机密性(confidentiality):防止未经授权的信息泄漏 完整性(integrity):防止未经授权的信息篡改 可用性(avialbility):防止未经授权的信息和资源截留
抗抵赖性、不可否认性、问责性、可说明性、可审查性(accountability): 真实性(authenticity):验证用户身份 2. 理解计算安全性(即one-time pad的理论安全性)
使用与消息一样长且无重复的随机密钥来加密信息,即对每个明文每次采用不同的代换表不可攻破,因为任何明文和任何密文间的映射都是随机的,密钥只使用一次 3. 传统密码算法的两种基本运算是什么?
代换和置换
前者是将明文中的每个元素映射成另外一个元素;后者是将明文中的元素重新排列。 4. 流密码和分组密码区别是什么?各有什么优缺点?
分组密码每次处理一个输入分组,对应输出一个分组;流密码是连续地处理输入元素,每次输出一个元素
流密码Stream: 每次加密数据流的一位或者一个字节。连续处理输入分组,一次输出一个元素,速度较快。
5. 利用playfair密码加密明文bookstore,密钥词是(HARPSICOD),所得的密文是什么?
I/JD RG LR QD HG
HARPS bo ok st or ex I/JD DG PU GO GV I/JCODB EFGKL MNQTU VWXYZ
6. 用密钥词cat实现vigenere密码,加密明文vigenere coper,所得的密文是什么?
XIZGNXTEVQPXT
Key: catca t ca tcatcatcat Plaintext: vigenere coper
Chipertext: XIZGNXTE VQPXT
7. 假定有一个密钥2431的列置换密码,则明文can you understand的密文是多少?
YNSDCODTNURNAUEA Key: 2 4 3 1 Plaintext: c a n y o u u n d e r s t a n d
Chipertext: YNSDCODTNURNAUEA 8. 什么是乘积密码?
多步代换和置换,依次使用两个或两个以上的基本密码,所得结果的密码强度将强与所有单个密码的强度.
9. 混淆和扩散的区别是什么?
扩散(Diffusion):明文的统计结构被扩散消失到密文的,使得明文和密文之间的统计关系尽量复杂.即让每个明文数字尽可能地影响多个密文数字
混淆(confusion):使得密文的统计特性与密钥的取值之间的关系尽量复杂,阻止攻击者发现密钥 10. Feistel密码中每轮发生了什么样的变化? 将输入分组分成左右两部分。
以右半部数据和子密钥作为参数,对左半部数据实施代换操作。 将两部分进行互换,完成置换操作。
11.
S-Box的概念
S盒用在DES算法中,每个s盒都由6位输入产生4位输出,所有说,s盒定义了一个普通的可逆代换。相当程度上,DES的强度取决于s盒的设计,但是,s盒的构造方法是不公开的
12. AES每轮变化中设计的基本操作有哪些?
每轮包括4个阶段:字节代换、行移位、列混淆、轮密钥加
13. DES、AES和RC4之间的比较(建议比较分组大小、密钥长度、相对速度、安全
14. AES与DES相比有优点?3DES与DES相比的变化有哪些?什么是2DES中的中
间相遇攻击?
(1) AES更安全。
(2) 3DES增加了1到2个密钥,进行多轮DES,安全性更高。 (3) C = EK2(EK1(P)) X = EK1(P) = DK2(C) 给定明文密文对(P,C) 对所有256个密钥,加密P,对结果按X排序与T中 对所有256个密钥,解密C,解密结果与T中的值比较 找出K1,K2使得EK1(P) = DK2(C) 用k1和k2对P加密,若结果为C,则认定这两个密钥为正确的密钥
15. 分组密码的工作模式有哪些?及优缺点?
A. ECB,电码本模式,一次处理64位明文,每次使用相同的密钥加密。任何64位的
明文组都有唯一的密文与之对应,有“结构化”的缺点。
B. CBC,密码分组连接模式,克服了ECB中“结构化”的缺点,同样的明文变成密
文之后就不同了,而且加密必须从头到尾
C. CFB,密码反馈模式.一次处理M位,上一个分组的密文产生一个伪随机数输出的
加密算法的输入,该输出与明文的异或,作为下一个分组的输入。
D. OFB,输出反馈模式,与CFB基本相同,只是加密算法的输入是上一次DES的
输出。
E. 计数器模式,计数器被初始化为某个值,并随着消息块的增加其值加1,在于明文
组异或得到密文组。也可用于流密码。
16. RSA算法中密钥的生成和加密解密过程。 生成过程
RSA的加解密为:
给定消息M = 88 ( 88<187) 加密: C = 887 mod 187 = 11
解密: M = 1123 mod 187 = 88
17.
RSA算法计算实例(给定p,q,e,m/c,计算n, (n),d,c/m)
1. 选择素数: p=17 & q=11
2. 计算n = pq =17×11=187
3. 计算ø(n)=(p–1)(q-1)=16×10=160 4. 选择e : gcd(e,160)=1; 选择e=7
5. 确定d: de=1 mod 160 and d < 160, d=23 因为23×7=161= 1×160+1 6. 公钥KU={7,187} 7. 私钥KR={23,17,11}
18. 描述Diffie-Hellman密钥交换机制。 算法:
A. 双方选择素数p以及p的一个原根a B. 用户A选择一个随机数Xa < p,计算Ya=aXa mod p C. 用户B选择一个随机数Xb < p,计算Yb=aXb mod p D. 每一方保密X值,而将Y值交换给对方 E. 用户A计算出K=YbXa mod p F. 用户B计算出K=YaXb mod p
G. 双方获得一个共享密钥(aXaXbmod p)
素数p以及p的原根a可由一方选择后发给对方