1 / 68

密碼學

密碼學. Chapter 4 基於電腦的非對稱性金鑰密碼學演算法 Computer-based Asymmetric Key Cryptographic Algorithms (Part 2). 訊息摘要演算法. 原始訊息摘要演算法 (MD) 安全雜湊演算法 (SHA) 訊息鑑別碼 (MAC) 雜湊訊息鑑別碼 (HMAC). MD5. 原始訊息摘要演算法 (MD) 由 Ron River 所發展 MD -> MD2 -> MD3 -> MD4 -> MD5 MD5 十分快速 產生 128 位元訊息摘要 (4 個 32 位元區塊組成 ).

gates
Download Presentation

密碼學

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 密碼學 Chapter 4 基於電腦的非對稱性金鑰密碼學演算法 Computer-based Asymmetric Key Cryptographic Algorithms (Part 2)

  2. 訊息摘要演算法 • 原始訊息摘要演算法 (MD) • 安全雜湊演算法 (SHA) • 訊息鑑別碼 (MAC) • 雜湊訊息鑑別碼 (HMAC)

  3. MD5 • 原始訊息摘要演算法 (MD) • 由 Ron River 所發展 • MD -> MD2 -> MD3 -> MD4 -> MD5 • MD5十分快速 • 產生128位元訊息摘要 (4個32位元區塊組成)

  4. MD5 如何工作? • 填入 • 附加長度 • 將輸入分割成 512 位元區塊 • 初始化鏈結變數 • 處理區塊 • 複製鏈結變數到四個符合的變數中 • 將目前的 512 位元分割成 16 個子區塊 • 現在有四個回合。在每一個回合中,處理屬於每一個區塊的所有 16 個子區塊

  5. MD5 如何工作 (1/7) 步驟 1:填入

  6. MD5 如何工作 (2/7) 步驟 2:附加長度

  7. MD5 如何工作 (3/7) 步驟 3:將輸入分割成 512 位元區塊

  8. MD5 如何工作 (4/7) 步驟 4:初始化鏈結變數 A Hex 01 23 45 67 B Hex 89 AB CD EF C Hex FE DC BA 98 D Hex 76 54 32 10 鏈結變數 4個變數,各32位元,共128位元

  9. MD5 如何工作 (5/7) 步驟 5.1:複製鏈結變數A – D 到a – d 變數中 A B C D a b c d abcd a, b, c, d 視為128位元的單一暫存器 a b c d

  10. MD5 如何工作 (6/7) 步驟 5.2:將目前的 512 位元分割成 16 個子區塊

  11. MD5 如何工作 (7/7) 步驟 5.3:現在有四個回合。在每一個回合中, 處理屬於每一個區塊的所有 16 個子區塊

  12. 回合運算 程序 P 的步驟首先在 b、c、d 上執行 將變數 a 加入程序 P 的輸出 將訊息子區塊 M[i] 加入步驟2的輸出 將常數 t[k] 加入步驟3的輸出 將步驟4的輸出左循環位移 s 位元 將變數 b 加入步驟5的輸出 步驟6的輸出變成新的變數 aa = b + ((a + P(b, c, d) + M[i] + T[k] <<< s) 所有的變數向右移動一個位置

  13. MD5 的運作 步驟8 d a b c

  14. 程序P

  15. 回合對應表 (回合1)

  16. 回合對應表 (回合2)

  17. 回合對應表 (回合3)

  18. 回合對應表 (回合4)

  19. 表格t的值

  20. MD4與MD5差異

  21. 弱點 • MD5 較老,訊息摘要長度為128位,隨著電腦運算能力提高,找到「碰撞」是可能的 • MD5 演算法不應再被用於任何軟體完整性檢查或代碼簽名的用途

  22. 弱點 2004年,中國數學家王小雲證明 MD5 數位簽名演算法可以產生碰撞。 2007年,Marc Stevens、Arjen K. Lenstra 和 Benne de Weger 進一步指出透過偽造軟體簽名,可重複性攻擊MD5演算法。研究者使用前綴碰撞法 (字首碰撞法),使程式前端包含惡意程式,利用後面的空間添上垃圾代碼湊出同樣的 MD5 Hash 值。

  23. 弱點 2008年,荷蘭埃因霍芬技術大學科學家成功把2個可執行檔案進行了 MD5 碰撞,使得這兩個運行結果不同的程式被計算出同一個 MD5 ,顯然這樣會為病毒大開方便之門。 2008年12月一組科研人員透過MD5碰撞成功生成了偽造的SSL證書,這使得在https協議中伺服器可以偽造一些根CA的簽名。

  24. 安全雜湊演算法 (SHA) • Secure Hash Algorithm, SHA • 美國國家標準技術局(NIST)沿著 NSA 發展 • 1993年成為一個聯邦資料處理標準 (Federa Information Processing Standards, FIPS PUB 180) • 1995年修訂成FIPS PUB 180-1,並更名為SHA-1 • SHA是一個MD4的修正版,其設計與MD4非常相似

  25. SHA 如何工作? • 填入 • 附加長度 • 將輸入分割成 512 位元區塊 • 初始化鏈結變數 • 處理區塊 • 複製鏈結變數 A-E 到變數 a-e 中 • 目前的 512 位元區塊分割成 16 個子區塊,每一個包含 32 位元 • SHA 包含四個回合,每一個回合包含 20 個疊代

  26. SHA 如何工作 (1/7) 步驟 1:填入

  27. SHA 如何工作 (2/7) 步驟 2:附加長度

  28. SHA 如何工作 (3/7) 步驟 3:將輸入分割成 512 位元區塊

  29. SHA 如何工作 (4/7) 步驟 4:初始化鏈結變數 A Hex 01 23 45 67 B Hex 89 AB CD EF C Hex FE DC BA 98 D Hex 76 54 32 10 E Hex C3 D2 E1 F0 鏈結變數 5個變數,各32位元,共160位元

  30. SHA 如何工作 (5/7) 步驟 5.1:複製鏈結變數 A – E 到 a – e 變數中 A B C D E a b c d e abcde a, b, c, d, e 視為160位元的單一暫存器 a b c d e

  31. SHA 如何工作 (6/7) 步驟 5.2:將目前的 512 位元分割成 16 個子區塊

  32. SHA 如何工作 (7/7) 步驟 5.3:SHA 包含四個回合,每一個回合包含 20 個疊代 abcde = (e + P(b, c,d) + s5(a) + W[i] + K[i]), a, s30(b), c,d

  33. 單一 SHA-1 疊代

  34. W[t]的值 t = 0 到 15 W[t] = M[t] t = 16 到 79 W[t] = s1(W[t – 16] XOR W[t – 14] XOR W[t – 8] XOR W[t – 3]

  35. 程序P

  36. K[t]的值

  37. MD5 與 SHA-1 的比較

  38. SHA-1 的破解 2005年,Rijmen和Oswald發表了對SHA-1較弱版本(53次的加密迴圈而非80次)的攻擊:在2^80的計算複雜度之內找到碰撞。 2005年二月,王小雲、殷益群及於紅波發表了對完整版SHA-1的攻擊,只需少於2^69的計算複雜度,就能找到一組碰撞。

  39. SHA-1 的破解 2005年8月17日的CRYPTO會議尾聲中王小雲、姚期智、姚儲楓再度發表更有效率的SHA-1攻擊法,能在2^63個計算複雜度內找到碰撞。 2006年的CRYPTO會議上,Christian Rechberger和Christophe De Cannière宣布他們能在容許攻擊者決定部分原訊息的條件之下,找到SHA-1的一個碰撞。

  40. SHA-1 的安全 • 對 SHA-1 的實用攻擊目前能未成功 • 使用80次疊代並產生160位元訊息摘要 • SHA 是 MD4 再加上改良的位元雜湊 • 多一個額外的回合和更多隨機性

  41. 訊息鑑別碼 (MAC) • Message Authentication Code, MAC • 概念類似訊息摘要 • 發送方和接收方需要共用一把共享的對稱性(秘密)金鑰 • 特徵 • 確保接收方的訊息沒有改變 • 接收方可以確認訊息是來自正確的發送方 • 與對稱性金鑰密碼學的差異 • 加密程序不需要是可逆的,單向函數可用

  42. MAC 程序

  43. MAC 程序 • A 和 B 分享一個對稱性(秘密)金鑰 K,且此金鑰不被其他人知道。A 使用金鑰 K 在訊息 M 上計算 MAC H1。 • A 寄出原始訊息 M 和 MAC H1 給 B 。 • B 接收到訊息,B 也使用 K 在 M 上計算其 MAC H2。 • B 比較 H1 和 H2。假如兩個相符合,B 可得知在傳送中訊息 M 沒有改變。假如 H1 與 H2 不相等,B 將拒絕此訊息,因為訊息在傳送之間被改變。

  44. 雜湊訊息鑑別碼 (HMAC) • Hash-based Message Authentication Code, HMAC • 在網際網路上的使用相當廣泛 • 網際網路協定 (Internet Protocol, IP) • 安全插座層協定 (Secure Socket Layer, SSL)

  45. HMAC 概念

  46. HMAC變數定義 MD:訊息摘要/雜湊函數被使用(MD5, SHA-1等) M:原始訊息 L:訊息M中的區塊數目 b:每一區塊位元數目 K:對稱性金鑰 ipad:字串00110110重複b/8次 opad:字串01011010重複b/8次

  47. HMAC 如何工作? • 取金鑰 K 的長度等於 b (區塊的位元數) • 必要時須調整輸入金鑰的長度 • 以 ipad XOR K 以產生 S1 • 加入 M 到 S1 中 • 訊息摘要演算法 • 以 opad XOR K 以產生 S2 • 加入 H 到 S2 中 • 訊息摘要演算法

  48. HMAC 的步驟 (1/7) 步驟 1:取 K 的長度等於 b

  49. HMAC 的步驟 (2/7) 步驟 2:以 ipad XOR K 以產生 S1

  50. HMAC 的步驟 (3/7) 步驟 3:加入 M 到 S1 中

More Related