網絡安全基礎(八)

1.一種最簡單散列函數的每一個數據塊都按比特異或。爲什麼對於這種散列函數的有效性爲1-2-n(數據出錯卻不改變散列值的概率是 2−n)?
正確答案:

答:因爲每個 n 比特的散列值都有相同的出錯概率1/2,所以數據出錯卻不改變散列值的概率是
2−n,,因此判斷消息完整性正確的概率(即有效的概率)爲1-2-n。

2.一種最簡單散列函數的每一個數據塊都按比特異或。爲什麼對於這種散列函數隨着可預測的格式化數據增多,函數的有效性越來越差?
正確答案:

答:如:在大多數標準的文本文件中,每個 8 位字節的高階比特總是0。如果使用 128
比特的散列值,則作用於該類型數據塊的散列函數的有效(數據出錯卻不改變散列值)概率爲1-2-112而不是1-2-128。

3.消息認證碼常見的構建方法有哪些?
正確答案:

這裏是引用
答:兩種方法: 1)散列函數+密鑰(加密密鑰或當作祕密值) 2)直接用分組加密算法

4.散列函數加上密鑰來構建MAC有以哪些優勢?
正確答案:

答:散列函數(如SHA-1)加上密鑰開發MAC有以下優勢: 採用軟件實現時,加密散列函數執行速度比傳統密碼算法(如DES)快。
有許多共享的密碼學Hash函數代碼庫。

5.HMAC中爲什麼要把散列函數當成一個“黑盒”?
正確答案:

答:HMAC把散列函數當成一個“黑盒”。兩個優點:
實現HMAC時現有的散列函數可以用作一個模塊。這樣,已經預先封裝的大量HMAC代碼可以不加修改地使用。
如果想替換一個HMAC實現中的特定散列函數,所需做的只是除去現有的散列函數模塊,放入新模塊。如果需要更快的散列函數時就可以這樣操作。更爲重要的是,如果嵌入式散列函數的安全性受到威脅,可通過簡單地用更加安全的模塊取代嵌入式散列函數,從而保證了HMAC的安全。

6.請說明HMAC對消息的分組方案及安全性。
正確答案:

答:HMAC對消息的分組方案取決於嵌入其中的散列函數的分組方案。
其安全性也取決於嵌入其中的散列函數的安全性,如果能提供有一定合理性的抗密碼分析強度的嵌入式散列函數,就能夠證明HMAC是安全的。

7.HMAC
正確答案:

把密鑰合併到現有的散列算法中形成消息認證碼。具體方法是:不必修改而直接將現有的散列函數嵌入到此算法中(把散列函數當成一個“黑盒”)。特別是很容易免費得到軟件上執行速度較快的散列函數及其代碼。

8.MD5
正確答案:

MD5信息摘要算法(英語:MD5 Message-Digest Algorithm),一種被廣泛使用的散列函數,可以產生出一個128位(16字節)的散列值(hash value),用於確保信息傳輸完整一致。MD5由美國密碼學家羅納德·李維斯特(Ronald Linn Rivest)設計,於1992年公開,用以取代MD4算法。

9.安全散列函數
正確答案:

安全散列函數SHA是基於散列函數MD4,並且其構架跟 MD4高度相仿。截止到2005年,SHA或許是最後僅存的標準散列算法。

10.SHA-1
正確答案:

SHA由NIST開發,並在1993年公佈成爲FIPS。當人們發現SHA中也存在缺陷之後,FIPS 180的修訂版本FIPS180-1於1995年公佈出來,通常稱爲SHA-1。現行的標準文獻被命名爲“安全散列標準”。RFC3174中也列出了SHA-1,但它實質上是FIPS 180-1的複製品,只是增加了C語言代碼實現。SHA-1生成的160比特的散列值。

11.一種最簡單散列函數的每一個數據塊都按比特異或。對這種散列算法的改進方法是:在每個數據塊處理後,對散列值循環移動或翻轉1比特。改進後再用加密算法加密散列值,但當加密散列碼和明文消息一起使用時,仍然很容易篡改消息內容而不會被發現。請說明這種攻擊的原理。
正確答案:

答:給定消息,很容易生成新的具有相同散列碼的消息,具體方法:簡單地準備希望替換的消息,然後附加上n比特的數據塊,根據消息每組中相同位累計篡改的次數,如果呈奇數,則這n比特的數據塊的相應位爲1,否則爲0,這樣就迫使新消息連同該數據塊生成原消息的散列碼。當然驗證時是不會被發現的。

12.一種最簡單散列函數的每一個數據塊都按比特異或。如果連同散列碼一起加密消息,是否可以達到很好的認證效果?
正確答案:

答:仍有篡改消息密文而不會被散列碼檢測到的方法。例如,根據CBC定義,有: X1=IV⊕D(K,Y1) Xi=Ci-1⊕D(K,Yi)
XN+1=CN⊕D(K,YN+1) 但散列碼XN+1: XN+1=P1⊕P2 ⊕ … ⊕ Pn
=[IV⊕D(K,Y1)]⊕[Y1⊕D(K,Y2)]⊕…⊕[YN-1⊕D(K,YN)] 因爲上述等式中的項可以按任意順序進行異或,所以如果對密文分組進行置換則散列碼不變。 如:將第1組與第2組密文置換
[IV⊕D(K,Y1)]⊕[Y1⊕D(K,Y2)]⊕…⊕[YN-1⊕D(K,YN)]
=[IV⊕D(K,Y2)]⊕[Y1⊕D(K,Y1)]⊕…⊕[YN-1⊕D(K,YN)]

13.試用代數式表示HMAC算法,並用文字加以說明
正確答案:

HMAC可用下式表示: HMAC(K, M)=H[(K+⊕opad)ǁH[(K+⊕ipad) ǁM]] 該算法描述如下:
(1)在K的左端追加0構成b比特的字符串K+(如K的長度爲160比特,b=512, K 將被追加44個0字節0x00)。
(2)ipad與K+進行XOR生成b比特的分組Si。
(3) 將M追加在Si上。
(4) 將H應用於步驟(3)所產生的數據流。
(5) opad與K+進行XOR生成b比特的分組S0。
(6) 將步驟(4)產生的散列結果追加在S0上。
(7)將H應用於步驟(6)產生的數據流,輸出結果。

14.考慮將32比特的散列函數定義爲兩個16比特散列函數的串接:XOR和RXOR簡單的散列函數(這種簡單散列函數定義爲:每一個數據塊都按比特異或)。
a. 這種校驗和能檢測到所有奇數個錯誤比特所造成的錯誤嗎?請解釋。
b. 這種校驗和能檢測到所有偶數個錯誤比特所造成的錯誤嗎?如果不能,說明造成校驗和失敗的錯誤特徵。
c.評價這種函數用作散列函數進行認證的效率。
正確答案:

答:a. 是的。 XOR函數是垂直奇偶校驗。 如果有奇數個錯誤,那麼必須至少有一個列包含奇數個錯誤,以及奇偶校驗位數據。
如果有奇數個錯誤,那麼必須至少有一個螺旋包含奇數個錯誤,該螺旋的奇偶校驗位將檢測到該錯誤。
b. 不。當XOR和RXOR函數都失敗時,校驗和將無法檢測到偶數錯誤。 爲了使兩者都失敗,錯誤位的模式必須位於兩者之間的交點
奇偶螺旋和奇偶列,使得每個奇偶列中有偶數個錯誤位,每個螺旋中有偶數個錯誤位。
c.它太簡單,不能用作安全哈希函數;找到具有相同哈希函數的多個消息將太容易。

15.當消息的長度分別爲以下值的時候,計算在SHA-512中填充域的值:
a.1919比特 b. 1920比特 c. 1921比特
正確答案:

答:a.1bit b. 1024 bits c. 1023 bits

16.當消息的長度分別爲以下值的時候,計算在SH A-512中長度域的值;
a.1919比特 b.1920比特 c.1921比特
正確答案:

答:a. 1919 b. 1920 c. 1921

17.a.考慮下面的散列函數。消息是一列十進制數字:M=(a1,a2,…,at)。對於某一預先定義的值n,計算散列值 在這裏插入圖片描述。該散列函數能滿足3.4節列出的關於散列函數的一些要求嗎?請解釋你自己的回答。
b.當散列函數 在這裏插入圖片描述時,重做(a)。
c.當M=(189,632,900,722,349)和n=989時,計算(b)的散列函數。

正確答案:

答:a. 它滿足性質I通過3,但不滿足剩餘性質。 例如,對於屬性4,由值h組成的消息滿足H(h)-。 h.對於屬性5,請接受任何消息M和a
將十進制數字“0”轉換爲序列;它將具有相同的哈希值。
b. 它滿足性質I到3。如果n是一個大的複合數,則性質4也是滿足的,因爲取平方根模這樣的整數n被認爲是不可行的。 屬性 不滿足5和6,因爲-M將具有與M相同的值。
c.955.

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