网络安全基础(六)

1.假设一个发生在运用CBC转换中密码文本块上的错误,被覆盖的明码文本块会产生什么作用?
正确答案:

如果在密文块Ci的传输中发生错误,则该错误传播到恢复的明文块Pi和Pi+1。其它块不受影响。

2.为什么一些分组密码操作模式只使用了加密。而其他的操作模式既使用了加密又使用了解密?
正确答案:

在某些模式下,明文不通过加密函数,而是与加密函数的输出异或。数学计算出,在这些情况下,对于解密,还必须使用加密函数。

3.密码分组链接(CBC)模式
正确答案:

在加密明文块前将它与以前的密文块进行XOR运算的过程。

4.密码反馈(CFB)模式
正确答案:

密文反馈(CFB,Cipherfeedback)模式类似于CBC,可以将块密码变为自同步的流密码;工作过程亦非常相似,CFB的解密过程几乎就是巅倒的CBC的加密过程。

5.计数器模式(CTR)
正确答案:

CTR模式是一种通过将逐次累加的计数器进行加密来生成密钥流的流密码,在CTR模式中,每个分组对应—个逐次累加的计数器,并通过对计数器进行加密来生成密钥流。最终的密文分组是通过将计数器加密得到的比特序列与明文分组进行XOR而得到的。

6.电子密码本(ECB)模式
正确答案:

一个明文分组加密成一个密文分组

7.请用公式描述CBC加密模式,并证明解密过程能还原出明文。
正确答案:

加密过程:Cj =E(K,[Cj-1⊕Pj]) 解密过程验证: 因:Cj =E(K,[Cj-1⊕Pj])
其中:E(K,X)是对明文X使用密钥K的加密 D(K, Cj) = D(K, E(K,[Cj-1⊕Pj]))= Cj-1⊕Pj 最终:
Cj-1⊕D(K, Cj)
= Cj-1⊕Cj-1⊕Pj
= Pj

8.在CBC加密模式中,如果第i组密文Ci传输出错,是否会导致第i组之后的解密出来的明文全部错误呢?为什么?
正确答案:

只会导致后续2组解密结果错误

9.在CBC加密模式中,如果IV传输出错,是否会导致所有解密出来的明文全部都是错误的?请说明理由。
正确答案:

只会影响第一组

10.如果攻击者成功欺骗接收者使其使用一个不同的IV值,他能篡改整个明文吗?说明理由。
正确答案:
在这里插入图片描述

11.CBC加密模式中,既然攻击者能够通过修改IV值,来篡改第一级明文,哪能不能通过修改C1,C2,…Cn来篡改整个明文吗?说明理由。(注意:之所以叫篡改,前提是能得到出明文,如果明文都不知道,那叫伪造)
正确答案:

不能,最多只能同时篡改一半的分组,因为要篡改第一组明文,只要篡改IV值就行了。但如果同样修改C1来篡改C2,虽然是可以做到,但P1的修改又无法保证了。因此,能通过篡改IV,C2,C4,C6,C8….等来篡改P1,P3,P5,P7…等一半的明文

12.在CBC模式中,可能同时为多层次的明码文本块并行实行加密运算吗?
正确答案:

在CBC加密中,每个前向密码操作(第一个除外)的输入块取决于前一个前向密码操作的结果,因此前向密码操作不能并行执行。然而,在CBC解密中,逆密码函数的输入块(即密文块)立即可用,以便可以并行地执行多个逆密码操作

13.CBC-Pad是RC5分组密码使用的分组密码操作模式,但是它能在任何分组密码中使用。CBC-Pad处理任何长度的明文。密文最多比明文长一个分组。填充字节用来保证明文输入是分组长度的倍数。这假设了原始明文是整数个字节。明文在末尾添加的字节数可以为1到bb,其中bb等于以字节表示的分组大小。填充的字节都相等并设为一个代表填充字节数的字节。例如,如果添加了8个字节。每个字节的比特表示则为00001000。
问:如果原始明文本来就是分组大小的整数倍,可不可以不用填充?为什么?
正确答案:

解密后,最后一个块的最后一个字节用于确定必须去除的填充量。因此必须至少有一个字节的填充

14.填充不总是合适的。例如,也许希望在存储明文的同一内存缓冲区中存储加密的数据。在这种情况下。密文必须与原始明文等长,用于此目的的一个模式是密文窃取(Cipher Text Stealing,CTS)模式。如下图(a)表示了这个模式的实现。
a.解释它是怎么工作的。
b.描述怎样解密Cn-1和Cn。
在这里插入图片描述
正确答案:
在这里插入图片描述

15.填充不总是合适的。例如,也许希望在存储明文的同一内存缓冲区中存储加密的数据。在这种情况下。密文必须与原始明文等长,用于此目的的一个模式是密文窃取(Cipher Text Stealing,CTS)模式。如下图(b)显示了当明文不是分组大小的整数倍时产生和明文等长的密文的CTS的替代方法。
a.解释此算法。
b.解释为什么CTS优于图(b)的方法。
在这里插入图片描述
正确答案:

a假设最后一个块PN有j位。在加密最后一个完整块PN–1之后,再次加密密文CN–1,选择加密密文的最左边j位,并与短块异或以生成输出密文。
b虽然攻击者无法恢复最后一个明文块,但他可以通过更改密文中的各个位来系统地更改它。如果明文的最后几位包含基本信息,这是一个弱点

16.OFB模式可以做预处理吗?能并行处理吗?为什么?
正确答案:

答:虽然理论上可行,但没有实际意义,因为加密过程是主要的开销,如果为了后面的组并行或预处理,则前面的加密过程要先做并不保留。显然是多余的不可忽略的开销。

17.如果在以8比特CFB模式加密传输密文时,某组Ci密文发生了1比特的错误,解密时会影响后续所有密文的解密吗?如果不会,会影响多少组的解密结果?
正确答案:

答:后续9个明文字符受影响。明文字符相应的密文字符有明显的变化。在另外,修改后的密文字符进入移位寄存器和直到下面八个字符被处理后才会移出寄存器。

18.怎样的RC4密钥会使S在初始化时不被改变?即在S的初始排列之后,S中各元素的值等于0~255的升序排列值。
正确答案:

答:使用长度为255字节的密钥。前两个字节是零,即K[0]=K[1]=0。此后,我们得到:K[2]=255;K[3]=254;…K[255]=2。(即各字节递减到2)

19.RC4有一个秘密的内部状态,它是向量S以及两个下标i和j的所有可能值的排列。
a.使用一个简单的方案来存储此内部状态,要使用多少比特?
b.假设从这个状态能代表多少信息髦的观点来思考它。这样需要判断有多少种不同的状态,然后取以2为底的对数来得到它代表了多少比特的信息量。使用此方法,需要多少比特来代表此状态?
正确答案:

答:a.简单存储 i, j and S, 需要 8+8+(256*8)=2064位
b.状态的个数是256!*2562≈21700,因此需要1700比特。

20.Alice和Bob同意使用RC4通过E-mail秘密通信,但是他们想要避免在每次传输中使用新的密钥。Alice和Bob私下同意使用128比特的密钥k。为了对一串比特的信息m进行加密,使用下列流程:
(1)选择一个80比特的值v。
(2)生成密文c=RC4(v ll k)⊕m。 (其中:II表示前后拼接)
(3)发送比特流(v ll c)。
a.假设Alice用这个流程来给Bob发送信息,描述Bob怎样能利用k从(vllc)回复信息m。
b.如果攻击者观察到Alice和Bob之间传输的数值(v1 ll c1),(v2 ll c2);…他/她怎样决定什么时候相同的密钥流已经被用来加密两个信息?
正确答案:

答:a 取v | | c的前80位,得到初始化向量,v、 由于v,c,k是已知的,所以可以通过计算RC4(v | |
k)⨁c来恢复(即解密)消息。 b、
如果对手发现vi=vj代表不同的i,j,那么他/她知道相同的密钥流被用来加密mi和mj。在这种情况下,消息mi和mj可能容易受到在(a)部分中执行的密码分析类型的攻击。
c、 由于密钥是固定的,密钥流随随机选择的80位v的选择而变化。因此,大约之后发送 在这里插入图片描述条消息,我们期望相同的v,因此同一个密钥流,要多次使用。
d、 密钥k应该在发送240条消息之前更改。

21.利用ECB模式,如果传输密文的一个分组出错,只有对应的明文分组受影响。但是利用CBC模式,会传播错误。例如,传输的C1(见图2.9)中的错误显然会破坏P1和P2。
a.除P1P2之外还有其他分组受影响吗?为什么?
b.假设在加密前P1的源版本中有1比特错误。此错误会传播多少密文分组?接收端所受的影响是什么?
正确答案:

答:a.没有。例如,假设C1已损坏。输出块P3仅依赖于输入块C2和C3。 b.
P1中的错误影响C1。但由于C1是C2计算的输入,C2受到影响。这种影响是无限期的,因此所有密文块都会受到影响。然而,在接收端,解密算法能恢复正确的明文(除了错误块P1之外的块)。你可以通过写出解密的方程式来说明这一点。因此,错误只影响相应的解密明文块P1。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章