《密码编码学与网络安全》复习题1.信息安全(计算机安全)目标是什么机密性(confidentiality):防止未经授权的信息泄漏完整性(integrity):防止未经授权的信息篡改可用性(avialbility):防止未经授权的信息和资源截留抗抵赖性、不可否认性、问责性、可说明性、可审查性(accountability):真实性(authenticity):验证用户身份2.;3.4.理解计算安全性(即one-time pad的理论安全性)使用与消息一样长且无重复的随机密钥来加密信息,即对每个明文每次采用不同的代换表不可攻破,因为任何明文和任何密文间的映射都是随机的,密钥只使用一次5.传统密码算法的两种基本运算是什么代换和置换前者是将明文中的每个元素映射成另外一个元素;后者是将明文中的元素重新排列。
6.流密码和分组密码区别是什么各有什么优缺点分组密码每次处理一个输入分组,对应输出一个分组;流密码是连续地处理输入元素,每次输出一个元素—流密码Stream: 每次加密数据流的一位或者一个字节。
连续处理输入分组,一次输出一个元素,速度较快。
7.8.利用playfair密码加密明文bookstore,密钥词是(HARPSICOD),所得的密文是什么I/JD RG LR QD HGHARPS bo ok st or ex I/JD DG PU GO GVI/JCODBEFGKL*MNQTUVWXYZ9.10.用密钥词cat实现vigenere密码,加密明文vigenere coper,所得的密文是什么XIZGNXTEVQPXTKey: catca t ca tcatcatcatPlaintext: vigenere coperChipertext: XIZGNXTE VQPXT11.;12.假定有一个密钥2431的列置换密码,则明文can you understand的密文是多少YNSDCODTNURNAUEAKey: 2 4 3 1Plaintext: c a n yo u u nd e r st a n d(Chipertext: YNSDCODTNURNAUEA13.什么是乘积密码多步代换和置换,依次使用两个或两个以上的基本密码,所得结果的密码强度将强与所有单个密码的强度.14.混淆和扩散的区别是什么扩散(Diffusion):明文的统计结构被扩散消失到密文的,使得明文和密文之间的统计关系尽量复杂.即让每个明文数字尽可能地影响多个密文数字混淆(confusion):使得密文的统计特性与密钥的取值之间的关系尽量复杂,阻止攻击者发现密钥15.Feistel密码中每轮发生了什么样的变化)将输入分组分成左右两部分。
以右半部数据和子密钥作为参数,对左半部数据实施代换操作。
将两部分进行互换,完成置换操作。
16.S-Box的概念S盒用在DES算法中,每个s盒都由6位输入产生4位输出,所有说,s盒定义了一个普通的可逆代换。
相当程度上,DES的强度取决于s盒的设计,但是,s盒的构造方法是不公开的17.AES每轮变化中设计的基本操作有哪些>每轮包括4个阶段:字节代换、行移位、列混淆、轮密钥加18.DES、AES 和RC4之间的比较(建议比较分组大小、密钥长度、相对速度、安全强算法DESAES ? RC4分组长度(bit)64128流密码密钥长度56—128/196/256不少于128相对速度较快慢很快安全强度2^55(穷举))很难轮数1610/12/14-是否Feistel体制【是不是19.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,则认定这两个密钥为正确的密钥20.>21.分组密码的工作模式有哪些及优缺点A.ECB,电码本模式,一次处理64位明文,每次使用相同的密钥加密。
任何64位的明文组都有唯一的密文与之对应,有“结构化”的缺点。
B.CBC,密码分组连接模式,克服了ECB中“结构化”的缺点,同样的明文变成密文之后就不同了,而且加密必须从头到尾C.D.CFB,密码反馈模式.一次处理M位,上一个分组的密文产生一个伪随机数输出的加密算法的输入,该输出与明文的异或,作为下一个分组的输入。
E.OFB,输出反馈模式,与CFB基本相同,只是加密算法的输入是上一次DES的输出。
F . 计数器模式,计数器被初始化为某个值,并随着消息块的增加其值加1,在于明文组异或得到密文组。
也可用于流密码。
22. '23. RSA 算法中密钥的生成和加密解密过程。
生成过程RSA 的加解密为: 给定消息M = 88 ( 88<187) 加密: C = 887 mod 187 = 11[解密:M = 1123 mod 187 = 8824.RSA 算法计算实例(给定p,q,e,m/c ,计算n, )(n ,d,c/m )1. 选择素数: p =17 & q =112. 计算n = pq =17×11=1873. 计算ø(n )=(p –1)(q-1)=16×10=1604. 选择e : gcd(e,160)=1; 选择e =7 /5. 确定d : de=1 mod 160 and d < 160, d=23 因为23×7=161= 1×160+16. 公钥KU={7,187}7. 私钥KR={23,17,11}25. 描述Diffie-Hellman 密钥交换机制。
算法:A .B . 双方选择素数p 以及p 的一个原根aC . ]D . 用户A 选择一个随机数Xa < p ,计算Ya=aXa mod pE . 用户B 选择一个随机数Xb < p ,计算Yb=aXb mod pF . 每一方保密X 值,而将Y 值交换给对方G . 用户A 计算出K=YbXa mod pH . 用户B 计算出K=YaXb mod pI . 双方获得一个共享密钥(aXaXbmod p)素数p 以及p 的原根a 可由一方选择后发给对方 26.27.,28.描述Diffie-Hellman 算法(DH 算法)中中间人攻击发生的过程。
中间人攻击1 双方选择素数p 以及p 的一个原根a(假定O 知道)2 A 选择Xa<p,计算Ya=aXa mod p, A B: Ya3 O 截获Ya,选Xo,计算Yo=aXo mod p,冒充A B:Yo4 B 选择Xb<p,计算Yb=aXb mod p, B A: Yb5 O 截获Yb,冒充B A:Yo6 A 计算: (Xo)Xa ≡(aXo)Xa ≡aXoXa mod p/7 B 计算: (Xo)Xb ≡(aXo)Xb ≡aXoXb mod p8 O 计算: (Ya)Xo ≡aXaXo mod p, (Yb)Xo ≡aXbXo mod p O 无法计算出aXaXb mod pO 永远必须实时截获并冒充转发,否则会被发现29. 如何使用公钥密码实现数据的保密性、完整性和数据源认证(签名) 发送方用其私钥对消息“签名”。
可以通过对整条消息加密或者对消息的一个小的数据块(消息认证码/摘要)加密来产生。
%产生随机数X A <q 计算Y A =aXAmodq计算K=(Y B )XA mod q产生随机数X B <q计算Y B =a XB modq计算K=(Y A )XB mod qY AY B用户A 用户BE(K,[M||E(PRa,H(M))]) 其中K为PUb解密时,第一步解密使用B的私钥,然后使用A的公钥。
30.对比对称算法和公钥算法(建议从用途,速度和效率等方面)对称算法:速度快,主要用于数据加密,只有一个密钥。
公钥算法:速度较慢,主要用于数字签名和密钥交换,有两个密钥31.对称密钥分配有哪些方法(注意和重放攻击相结合)]对于参与者A和B,密钥分配有以下几种:A.密钥由A选择,并亲自交给BB.C.第三方选择密钥后亲自交给A和BD.如果A和B以前或最近使用过某密钥,其中一方可以用它加密一个新密钥后在发送给另一方。
E.A和B与第三方均有秘密渠道,则C可以将一密钥分别发送给A和B<别人卷子上的分配方式:传统加密方法Needham/Schroeder Protocol [1978]1、A KDC:IDA||IDB||N12、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 已知道K s了。
第5步表明B相信A知道K s并且消息不是伪造的。
第4,5步目的是为了防止某种类型的重放攻击。
特别是,如果敌方能够在第3步捕获该消息,并重放之,这将在某种程度上干扰破坏B方的运行操作。
上述方法尽管有第4,5步的握手,但仍然有漏洞假定攻击方C已经掌握A和B之间通信的一个老的会话密钥。
C可以在第3步冒充A利用老的会话密钥欺骗B。
除非B记住所有以前使用的与A通信的会话密钥,否则B无法判断这是一个重放攻击。
如果C可以中途截获第4步的握手信息,则可以冒充A在第5步响应。
从这一点起,C就可以向B发送伪造的消息而对B来说认为是用认证的会话密钥与A进行的正常通信。
Denning Protocol [1982] 改进(加入时间戳):。
1、A KDC:ID A||ID B2、KDC A:E Ka[K s||ID B||T||E Kb[K s||ID A||T]]3、A B:E Kb[K s||ID A||T]4、B A:E Ks[N1]5、A B:E Ks[f(N1)]| Clock - T | < t1 + t2其中:t1是KDC时钟与本地时钟(A或B)之间差异的估计值;—t2 是预期的网络延迟时间。
32.公钥算法中公钥的分配和管理有哪些方法公钥的分配A.公开发布B.公开可访问目录C.D.公钥授权E.~F.公钥证书33.消息认证码的概念和基本用途(237页图)MAC(Message Authentication Code),消息认证码,也是一种认证技术,它利用密钥来产生一个固定长度的短数据块,并将数据块附加在消息之后,格式如:MAC(M)|| M。