《密码编码学与网络安全》复习题答案文档格式.docx
《《密码编码学与网络安全》复习题答案文档格式.docx》由会员分享,可在线阅读,更多相关《《密码编码学与网络安全》复习题答案文档格式.docx(17页珍藏版)》请在冰豆网上搜索。
![《密码编码学与网络安全》复习题答案文档格式.docx](https://file1.bdocx.com/fileroot1/2022-10/29/bcd3acaf-1a23-4644-a256-0e1bbd92c673/bcd3acaf-1a23-4644-a256-0e1bbd92c6731.gif)
I/JDRGLRQDHG
HARPSbookstorexI/JDDGPUGOGV
I/JCODB
EFGKL
MNQTU
VWXYZ
6.用密钥词cat实现vigenere密码,加密明文vigenerecoper,所得的密文是什么?
XIZGNXTEVQPXT
Key:
catcatcatcatcatcat
Plaintext:
vigenerecoper
Chipertext:
XIZGNXTEVQPXT
7.假定有一个密钥2431的列置换密码,则明文canyouunderstand的密文是多少?
YNSDCODTNURNAUEA
2431
cany
ouun
ders
tand
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之间的比较(建议比较分组大小、密钥长度、相对速度、安全强度、轮数、是否Feistel体制、基本操作等若干方面)*
算法
DES
AES
RC4
分组长度(bit)
64
128
流密码
密钥长度
56
128/196/256
不少于128
相对速度
较快
慢
很快
安全强度
2^55(穷举)
很难
轮数
16
10/12/14
-
是否Feistel体制
是
不是
?
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)
l对所有256个密钥,加密P,对结果按X排序与T中
l对所有256个密钥,解密C,解密结果与T中的值比较
l找出K1,K2使得EK1(P)=DK2(C)
l用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=887mod187=11
解密:
M=1123mod187=88
17.RSA算法计算实例(给定p,q,e,m/c,计算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=1mod160andd<
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=aXamodp
C.用户B选择一个随机数Xb<
p,计算Yb=aXbmodp
D.每一方保密X值,而将Y值交换给对方
E.用户A计算出K=YbXamodp
F.用户B计算出K=YaXbmodp
G.双方获得一个共享密钥(aXaXbmodp)
素数p以及p的原根a可由一方选择后发给对方
19.描述Diffie-Hellman算法(DH算法)中中间人攻击发生的过程。
中间人攻击
1双方选择素数p以及p的一个原根a(假定O知道)
2A选择Xa<
p,计算Ya=aXamodp,AB:
Ya
3O截获Ya,选Xo,计算Yo=aXomodp,冒充AB:
Yo
4B选择Xb<
p,计算Yb=aXbmodp,BA:
Yb
5O截获Yb,冒充BA:
6A计算:
(Xo)Xa≡(aXo)Xa≡aXoXamodp
7B计算:
(Xo)Xb≡(aXo)Xb≡aXoXbmodp
8O计算:
(Ya)Xo≡aXaXomodp,(Yb)Xo≡aXbXomodp
O无法计算出aXaXbmodp
O永远必须实时截获并冒充转发,否则会被发现
20.如何使用公钥密码实现数据的保密性、完整性和数据源认证(签名)?
发送方用其私钥对消息“签名”。
可以通过对整条消息加密或者对消息的一个小的数据块(消息认证码/摘要)加密来产生。
E(K,[M||E(PRa,H(M))])其中K为PUb
解密时,第一步解密使用B的私钥,然后使用A的公钥。
21.对比对称算法和公钥算法?
(建议从用途,速度和效率等方面)
对称算法:
速度快,主要用于数据加密,只有一个密钥。
公钥算法:
速度较慢,主要用于数字签名和密钥交换,有两个密钥
22.对称密钥分配有哪些方法?
(注意和重放攻击相结合)
对于参与者A和B,密钥分配有以下几种:
A.密钥由A选择,并亲自交给B
B.第三方选择密钥后亲自交给A和B
C.如果A和B以前或最近使用过某密钥,其中一方可以用它加密一个新密钥后在发送给另一方。
D.A和B与第三方均有秘密渠道,则C可以将一密钥分别发送给A和B
别人卷子上的分配方式:
传统加密方法Needham/SchroederProtocol[1978]
1、AKDC:
IDA||IDB||N1
2、KDCA:
EKa[Ks||IDB||N1||EKb[Ks||IDA]]
3、AB:
EKb[Ks||IDA]
4、BA:
EKs[N2]
5、AB:
EKs[f(N2)]
保密密钥Ka和Kb分别是A和KDC、B和KDC之间共享的密钥。
本协议的目的就是要安全地分发一个会话密钥Ks给A和B。
A在第2步安全地得到了一个新的会话密钥,第3步只能由B解密、并理解。
第4步表明B已知道Ks了。
第5步表明B相信A知道Ks并且消息不是伪造的。
第4,5步目的是为了防止某种类型的重放攻击。
特别是,如果敌方能够在第3步捕获该消息,并重放之,这将在某种程度上干扰破坏B方的运行操作。
上述方法尽管有第4,5步的握手,但仍然有漏洞
假定攻击方C已经掌握A和B之间通信的一个老的会话密钥。
C可以在第3步冒充A利用老的会话密钥欺骗B。
除非B记住所有以前使用的与A通信的会话密钥,否则B无法判断这是一个重放攻击。
如果C可以中途截获第4步的握手信息,则可以冒充A在第5步响应。
从这一点起,C就可以向B发送伪造的消息而对B来说认为是用认证的会话密钥与A进行的正常通信。
DenningProtocol[1982]改进(加入时间戳):
1、AKDC:
IDA||IDB
2、KDCA:
EKa[Ks||IDB||T||EKb[Ks||IDA||T]]
3、AB:
EKb[Ks||IDA||T]
4、BA:
EKs[N1]
5、AB:
EKs[f(N1)]
|Clock-T|<
t1+t2
其中:
t1是KDC时钟与本地时钟(A或B)之间差异的估计值;
t2是预期的网络延迟时间。
23.公钥算法中公钥的分配和管理有哪些方法?
公钥的分配
A.公开发布
B.公开可访问目录
C.公钥授权
D.公钥证书
24.消息认证码的概念和基本用途?
(237页图)
MAC(MessageAuthenticationCode),消息认证码,也是一种认证技术,它利用密钥来产生一个固定长度的短数据块,并将数据块附加在消息之后,格式如:
MAC(M)||M。
消息和MAC一起发送到接受方。
从而,接受方可以知道消息没有经过篡改,真正来自发送方(MAC的密钥)和消息的时效性(如果MAC中包含序列号)。
从这个层面来说,hash是没有密钥的MAC
25.什么是散列函数的基本用途有哪些?
(239页图)
保密、认证和签名
26.安全散列函数有哪些特性?
什么是碰撞?
找到一个碰撞意味着什么?
代价是多大?
生日悖论和生日攻击。
Hash算法的特点有
●输入变长的分组,输出是一定长的分组;
●任意x,计算H(x)容易,软件和硬件都可以实现
●已知H(x)=h,求x是不可行的,只是在计算上不可行(单向性)
●任意x,找到y,使H(x)=H(y)