信息安全复习题答案.docx
《信息安全复习题答案.docx》由会员分享,可在线阅读,更多相关《信息安全复习题答案.docx(20页珍藏版)》请在冰豆网上搜索。
信息安全复习题答案
《密码编码学与网络安全》复习题
1.信息安全(计算机安全)目标是什么?
性(confidentiality):
防止XX的信息泄漏
完整性(integrity):
防止XX的信息篡改
可用性(avialbility):
防止XX的信息和资源截留
抗抵赖性、不可否认性、问责性、可说明性、可审查性(accountability):
真实性(authenticity):
验证用户身份
2.理解计算安全性(即one-timepad的理论安全性)
使用与消息一样长且无重复的随钥来加密信息,即对每个明文每次采用不同的代换表不可攻破,因为任何明文和任何密文间的映射都是随机的,密钥只使用一次
3.传统密码算法的两种基本运算是什么?
代换和置换
前者是将明文中的每个元素映射成另外一个元素;后者是将明文中的元素重新排列。
4.流密码和分组密码区别是什么?
各有什么优缺点?
分组密码每次处理一个输入分组,对应输出一个分组;流密码是连续地处理输入元素,每次输出一个元素
流密码Stream:
每次加密数据流的一位或者一个字节。
连续处理输入分组,一次输出一个元素,速度较快。
5.利用playfair密码加密明文bookstore,密钥词是(HARPSICOD),所得的密文是什么?
I/JDRGLRQDHG
HARPSbookstorexI/JDDGPUGOGV
I/JCODB
EFGKL
MNQTU
VWXYZ
6.用密钥词cat实现vigenere密码,加密明文vigenerecoper,所得的密文是什么?
XIZGNXTEVQPXT
Key:
catcatcatcatcatcat
Plaintext:
vigenerecoper
Chipertext:
XIZGNXTEVQPXT
7.假定有一个密钥2431的列置换密码,则明文canyouunderstand的密文是多少?
YNSDCODTNURNAUEA
Key:
2431
Plaintext:
cany
ouun
ders
tand
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之间的比较(建议比较分组大小、密钥长度、相对速度、安全强度、轮数、是否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)
对所有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=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
C.用户B选择一个随机数Xb
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
Ya
3O截获Ya,选Xo,计算Yo=aXomodp,冒充A◊B:
Yo
4B选择Xb
Yb
5O截获Yb,冒充B◊A:
Yo
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、A→KDC:
IDA||IDB||N1
Ø2、KDC→A:
EKa[Ks||IDB||N1||EKb[Ks||IDA]]
Ø3、A→B:
EKb[Ks||IDA]
Ø4、B→A:
EKs[N2]
Ø5、A→B:
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、A→KDC:
IDA||IDB
2、KDC→A:
EKa[Ks||IDB||T||EKb[Ks||IDA||T]]
3、A→B:
EKb[Ks||IDA||T]
4、B→A:
EKs[N1]
5、A→B:
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)计算上不可行(抗弱碰撞性)
●找到满足H(x)=H(y)的(x,y)计算上不可行(抗强碰撞性)
碰撞指的是散列值相同而原值不同。
找到一个碰撞意味着可以替换原来的消息。
单向2^n
弱无碰撞2^n
强无碰撞2^n/2
生日问题:
一个教室中,最少应有多少学生,才使至少有两人具有相同生日的概率不小于1/2?
概率结果与人的直觉是相违背的.实际上只需23人,即任找23人,从中总能选出两人具有相同生日的概率至少为1/2。
根据生日攻击原理,对长度为m位的散列码,共有2^m个可能的散列码,若要使任意的x,y有H(x)=H(y)的概率为0.5,只需k=2m/2
27.消息认证码和散列函数有哪些区别?
散列函数(Hash):
将任意长度的消息变换为定长的消息摘要,并加以认证。
消息认证码(MAC):
依赖公开的函数(密钥控制下)对消息进行处理,生成定长的认证标识,并加以认证。
28.HMAC的原理
hash是没有密钥的MAC,所以不可以直接将hash算法(MD5,SHA1)直接用在MAC上,所以,HMAC实现的目标就是将密钥加入到hash函数中,简单的说,就是“带密钥的hash”。
29.安全hash码的基本结构(Merkle提出的)?
30.MD5和SHA-1间的差异?
(建议从输入、输出、轮数、强度和速度等几个方面比较)
MD5SHA-1
摘要长度128位160位
基本处理单位512位512位
步数64(4of16)80(4of20)
最大消息长度无限264-1位
基本逻辑函数44
加法常数644
EndiannessLittle-endianBig-endian
性能32.4Mbps14.4Mbps
31.什么是数字签名?
如何理解RSA私钥运算结果做为数字签名?
【提示:
最简单的数字签名是:
EKRa(M)即用a的私钥(KRa)加密消息M,接受方b用a的公钥解密,得到M,b就可以认为M来自a,因为其他人不可能有a的私钥;而且消息没有经过修改,因为修改后的秘文不能用a的公钥解开,从而实现了数字签名。
】
32.如何实现用签名进行身份和消息认证?
【提示:
上面算法的改进算法就可以实现用签名进行身份和报文鉴别:
EKRa(H(M))||M。
先将消息M用hash算法(MD5orSHA1)算出mac(消息认证码),然后,用a的私钥加密此认证码,最后和原始的消息并在一起,发送到接受方b。
b首先用a的公钥KPa解密前面部分,然后用同样的hash算法对M进行hash操作,比较两个结果是否相等。
从而实现身份和消息认证。
33.数字签名的作用是什么
当通信双方发生了下列情况时,数字签名技术必须能够解决引发的争端:
(1)否认,发送方不承认自己发送过某一报文。
(2)伪造,接收方自己伪造一份报文,并声称它来自发送方。
(3)冒充,网络上的某个用户冒充另一个用户接收或发送报文。
(4)篡改,接收方对收到的信息进行篡改。
34.公钥算法RSA、DH和DSS算法的用途是什么?
RSA——加密/解密、数字签名、密钥交换
DH——密钥交换
DSS——数字签名
35.实体认证(身份认证)和消息认证的区别是什么?
身份认证是验证主体的真实身份与其所声称的身份是否符合的过程。
消息认证是是一个证实收到的消息来自可信的源点且未被篡改的过程。
即验证收到的消息确实是来自真正的发送方且未被修改的消息,也验证消息的顺序和及时性。
是为了确认被认证的实体与一些特定数据项有着静态的联系,而身份认证主要是在连接建立或者在数据传送阶段的某些时刻使用的。
36.什么是消息重放?
有哪些方法可以抵御消息的重放攻击,各有什么特点?
消息重放:
攻击者发送一个目的主机已接收过的包,来达到欺骗系统的目的。
对付重放攻击的一种方法是在认证交换中使用一个序列号来给每一个消息报文编号。
仅当收到的消息序数顺序合法时才接受之。
但这种方法的困难是要求双方必须保持上次消息的序号。
两种更为一般的方法是:
时间戳:
A接受一个新消息仅当该消息包含一个时间戳,该时间戳在A看来,是足够接近A所知道的当前时间;这种方法要求不同参与者之间的时钟需要同步。
挑战/应答方式。
(Challenge/Response)A期望从B获得一个新消息,首先发给B一个临时值(challenge),并要求后续从B收到的消息(response)包含正确的这个临时值。
Ø挑战问/应答方法不适应非连接性的应用,因为它要求在传输开始之前先有握手的额外开销,这就抵消了无连接通信的主要特点。
37.对称密钥分配方式中有什么问题,如何避免?
(针对消息重放攻击)
当采用传统对称加密方式时,发送者不能根据容区分是发送的消息还是接收的消息,这种攻击是可能的。
加入时间戳。
38.Kerberos系统适合什么样环境中的认证服务?
它采用了什么方法来防止攻击者窃取并使用票据?
kerberos系统的认证过程,每个步骤的作用?
分布式服务器C/S环境
AS用安全方式向用户和TGS各自提供一个秘密信息,然后用户也以安全方式向TGS出示该秘密来证明自己的身份。
这个秘密就是会话密钥。
认证服务交换:
获得票据许可票据
(1)C→AS:
IDC||IDtgs||TS1
(2)AS→C:
EKC[Kc,tgs||IDtgs||TS2||Lifetime2||Tickettgs]
Tickettgs=EKtgs[Kc,tgs||IDC||ADC||IDtgs||TS2||Lifetime2]
客户端收到消息
(2)后,输入口令,生成kC,解密获得Tickettgs,及AS产生的tgs和客户共享密钥Kc,tgs
票据许可服务交换:
获得服务许可票据
(3)C→TGS:
IDV||Tickettgs||Authenticatorc
接收方tgs接收Tickettgs,验证票据,获取Kc,tgs,并用该密钥解密客户端发来的认证符Authenticatorc,验证客户端身份
Tickettgs=EKtgs[Kc,tgs||IDC||ADC||IDtgs||TS2||Lifetime2]
Authenticatorc=EKc,tgs[IDc||ADc||TS3]
为被请求的服务器生成服务授权票据Ticketv,并发送给客户端
(4)TGS→C:
EKc,tgs[Kc,v||IDV||TS4||Ticketv]
Ticketv=EKV[Kc,v||IDC||ADC||IDv||TS4||Lifetime4]
当客户端收到tgs发送的该消息后,使用Kc,tgs,解密获得Ticketv,及tgs产生的客户和服务器共享的密钥Kc,v
39.什么是证书和CA?
X.509证书包含哪些容?
证书:
CA颁发的一种数字介质(文件),用来对证书主体的身份进行鉴别和认证。
证书的容包含证书主体的信息,公钥,以及CA的签名等等。
CA:
CA是PKI的核心执行机构,是PKI的主要组成部分,它是数字证书的申请注册、证书签发和管理机构.
CA的主要职责是:
●验证并标识证书申请者的身份。
●确保CA用于签名证书的公钥的质量和安全性。
●管理证书信息资料。
(CRL,LDAP等等)
主要容
Ø版本:
标识不同版本的证书;
Ø序列号:
标识证书唯一性的整数;
Ø签名算法标识符:
标识签名算法及参数;
Ø颁发者名字:
创建和签名该证书的CA的X.500名字;
Ø有效期:
两个日期组成:
起始时间和结束时间;
Ø主体名:
证书提及的用户名;
Ø主体的公钥信息:
主体的公钥及这个密钥使用算法的标识符,和算法的相关参数;
40.PKI公钥基础设施是基于证书的认证体系结构。
它包含哪些基本元素?
【提示:
包含认证机构CA、证书和证书库(X.509标准)、密钥备份及恢复、密钥和证书的更新(CRL)、交叉认证(证书链或者信任树的概念)
41.安全电子
(1)SMTP/POP3的安全问题?
SMTP(simplemailtransferprotocal)简单传输协议和POP3(postofficeprotocal)邮局协议用于Internet上的传输和发送,协议设计的本身没有安全性的,在传输的过程中容易被偷听或者篡改。
1)垃圾包括广告、骚扰、连锁、反动等。
垃圾会增加网络负荷,影响网络传输速度,占用服务器的空间。
2)诈骗通常指那些带有恶意的欺诈性。
利用电子的快速、便宜,发信人能迅速让大量受害者上当。
3)炸弹指在短时间向同一信箱发送大量电子的行为,信箱不能承受时就会崩溃。
4)通过电子传播的病毒通常用VBScript编写,且大多数采用附件的形式夹带在电子中。
当收信人打开附件后,病毒会查询他的通讯簿,给其上所有或部分人发信,并将自身放入附件中,以此方式继续传播扩散。
端到端的安全电子技术,保证从被发出到被接收的整个过程中,容、无法修改、并且不可否认。
目前的Internet上,有两套成型的端到端安全电子标准:
PGP和S/MIME。
它一般只对信体进行加密和签名,而信头则由于传输中寻址和路由的需要,必须保证原封不动。
(2)PGP的原理
发送方首先使用md5实现对明文的完整性认证,然后使用私钥对散列值进行数字签名,再对签名散列值以及明文消息拼接,对该拼接结果进行压缩,利用随机产生的密钥对压缩结果进行加密,增加了加密速度,实现消息的性。
该随钥用接收方公钥加密,将加密后的密钥与密文拼接,实现密钥的性。
再经过基64位变换,得到ascII文本在网络中传输。
当数据到达接收方时,通过私钥解密对称密钥,然后对密文解密,进行压缩逆变换,得到明文消息和用发送方私钥签名的明文消息的散列值,通过公钥解密验证发送方签名,获得消息的散列值,并对明文消息做通用的变换,对比,验证消息的完整性。
总之PGP实现了消息的性和完整性,以及发送方不可否认(源认证)、并通过压缩提高了加密的速度。
42.设计一种报文安全交换方案,要求性、完整性和不可抵赖性。
可以使用公钥算法、对称算法和Hash函数。
[参考安全电子PGP的设计原理即可]
发送方发送Eks(M||ERa(H(M)))||EUb(Eks),发方通过私钥签名消息的认证码,实现对消息完整性和自己身份的证明,并将结果与M一起用会话密钥Eks加密,在将Eks用收方公钥加密。
实现消息和密钥的性。
接收方私钥DRb(EUb(Eks))获得ks,然后使用ks解密,Dks(Eks(M||ERa(H(M)))),获得M||ERa(H(M)),然后计算H(M),并与DUa(ERa(H(M))解密后的H(M),对比验证消息完整性。
43.IP安全性
(1)VPN&IPSec&Tunnel
●Vpn
Vpn,virtureprivatenet,虚拟专用网,终结了租用专线的年代。
通讯双方可以通过建立一条虚拟的通信线路(隧道)的方式实现数据的加密传输,可以提供安全的远程访问、分布式办公、电子商务、EDI等,主要的协议有:
PPTP和L2TP。
原理图如下
F1
F2
Addition
源IP
目的IP
数据
F1是发送方防火墙的IP,F2是接受方防火墙的IP后面3段实现了加密
●Ipsec
多服务,多算法,多粒度的框架,位于ip层,主要的服务是性,数据完整性及针对重放攻击的保护,有两种模式:
传输模式和隧道模式。
●Tunnel
要点是:
加密整个IP分组,并放在一个新的IP分组的有效载荷部分
(2)IPSec提供哪些服务?
IPSec在IP层提供安全服务,使得系统可以选择所需