網絡安全基礎(六)

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。

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