1 / 28

雜湊與 MAC 演算法 Hash and MAC Algorithms

雜湊與 MAC 演算法 Hash and MAC Algorithms. 報告者: G962102  曾郁茹. 內容大綱. Secure Hash Algorithm (SHA ,安全雜湊演算法 ) Whirlpool HMAC CMAC. MD5 簡介. MD5 ( Message-Digest algorithm 5) 雜湊演算法,是過去 (90 年代 ) 最常用的一種加密演算法

Download Presentation

雜湊與 MAC 演算法 Hash and MAC Algorithms

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. 雜湊與MAC演算法Hash and MAC Algorithms 報告者:G962102 曾郁茹

  2. 內容大綱 • Secure Hash Algorithm(SHA,安全雜湊演算法) • Whirlpool • HMAC • CMAC

  3. MD5簡介 • MD5 ( Message-Digest algorithm 5)雜湊演算法,是過去(90年代)最常用的一種加密演算法 • MD5雜湊演算法可以將任意長度的資料經由運算之後,得到一組固定長度為128 位元(32 個十六進制數字)的結果,使用這個結果當作檢查碼(Checksum),只需要比對檢查碼是否一致,便可得知經過傳遞之後的檔案是否與原檔案完全相同

  4. MD5簡介 • 採用該方法以作為確認碼運算法則之原因: • 雖然不同的資料經由MD5雜湊演算法計算所得到的結果有可能相同,但是根據統計顯示,重覆的機率低於百萬分之一 • MD5為一個單向雜湊演算法,即不易以逆向運算得到原始資料。例如:要計算字串vote123的MD5結果很簡單,但是要將MD5計算後的結果逆向運算得到vote123卻相當困難 【EX.】 計算 X = MD5("vote1234") = 8339e38c61175dbd07846ad70dc226b2 非常簡單 知道 X 逆向運算得到 vote1234卻非常困難

  5. MD5簡介 • 但就密碼破解的角度來說,現在的MD5算是不安全的 • 就暴力破解法的觀點來說,MD5在生日破解法之下只需要花費264的成本就可以破解了 • 因此,需要具備較長的雜湊碼的替代方案

  6. 安全雜湊演算法(SHA) • 安全雜湊演算法(SHA)是由 NIST及NSA於1993年所發展 • 在1995年公佈修訂版本 SHA-1

  7. 安全雜湊演算法(SHA) • SHA是以MD4雜湊函數為基礎 • 而其設計方式與MD4、MD5非常類似 • SHA-1會產生160位元的雜湊值 • 因為輸出長度比MD5長,所以比較不會被暴力法破解

  8. 安全雜湊演算法(SHA) • NIST在2002年又對此標準修訂並公佈了FIPS 180-2,這定義了SHA的三個新版本: • SHA-256 • SHA-384 • SHA-512 • 這些新版的架構都相同,也使用如同SHA-1的模數算術和二進位邏輯運算 • NIST在2005年表示將逐步淘汰SHA-1,並且將在2010年之前以其他的SHA作為正式標準

  9. SHA屬性的比較

  10. SHA-512處理過程

  11. SHA-512處理步驟 • 步驟一:加上附加位元(padding bits)。使其位元長度在取1024的同餘之後會等於896(訊息長度≡896 (mod 1024)) • 附加方式:先加一個1,然後再用0補到所需長度(100…0) • 步驟二:加上長度。在訊息末端加上一段128位元的資料

  12. SHA-512處理步驟 • 步驟三:設定暫存區的初值。使用一個512位元的暫存區來儲存這個雜湊函數的中間值,及最後的結果 • 使用8個64位元的暫存器(a, b, c, d, e, f, g, h)來表示這個暫存區,初始值設定如下:a = 6A09E667F3BCC908b = BB67AE8584CAA73Bc = 3C6EF372FE94F82Bd = A54FF53A5F1D36F1e = 510E527FADE682D1f = 9B05688C2B3E6C1Fg = 1F83D9ABFB41BD6Bh = 5BE0CDI9137E2179

  13. SHA-512處理步驟 • 步驟四:處理訊息中所有1024位元(128個字元)區段。 • 演算法的核心是由80個回合所組成 • 每個回合的輸入是512位元的暫存區 • 每個回合t會利用源自目前1024位元區塊所要處理的64位元的Wt • 第8回合的輸出會加到第1回合(Hi-1)的輸入而產生Hi • 步驟五:輸出。

  14. SHA-512處理步驟

  15. Whirlpool • Rijndael是Whirlpool的設計者之一,也是AES的共同創造者 • 採用AES之後能強健的區塊加密發展安全的雜湊函數 • 不僅重新引起大家的興趣,也呈現出優秀的執行效能 • Whirlpool具備以下的特點: • 雜湊碼的長度是512位元,等同於SHA最長的雜湊碼 • 整個結構已被證實能抵抗區塊加密雜湊碼的一般攻擊 • 以AES為基礎,能同時以軟體和硬體實作,兼具體積小、效率高的優點

  16. Whirlpool原理

  17. Whirlpool區塊加密法W • Whirlpool使用了專為雜湊函數所設計的區塊加密法,這種區塊加密法不太可能單獨當作加密函數 • 因為設計者希望利用到AES區塊加密的安全性和效率,以及相當於SHA-512雜湊長度所提供的安全性 • 這個想法的結果就是區塊加密法W • 結構和AES類似 • 基本功能和AES相同 • 使用的區塊長度和金鑰長度則是512位元 • 雖然W類似AES,但W並非AES的擴充

  18. Whirlpool區塊加密法W

  19. 執行Whirlpool • Rijndael所定的規格必須能於軟體及硬體展現優異效能,也必須能適用受限較多的硬體環境,這對Rijndael所選的AES相當重要 • 因為Whirlpool使用了與AES的相同基礎功能及結構,因此Whirlpool也將擁有類似的效能和特性 • SHA-512和Whirlpool雖然需要較多的硬體資源,但能獲得更好的執行效能

  20. HMAC • 利用雜湊碼建構MAC,也成為近年來的新趨勢: • 因為雜湊函數通常較快 • 密碼雜湊函數的程式庫函式相當普遍 • SHA之類的雜湊函數並非為MAC設計,且因這類的雜湊函數不依靠金鑰,因此不能直接用在MAC • 目前已經提出很多將金鑰加入雜湊函數的方法,其中廣為普遍的是HMAC: KeyedHash = Hash(Key|Message)

  21. HMAC • HMAC已經被納入多項國際標準的規格 • RFC 2104的內容就是HMAC • IP Security規格要求需以HMAC實作MAC • SSL等網際網路協定也採用HMAC • HMAC也已經是NIST標準(FIPS 198)

  22. HMAC • HMAC可以如下表示: HMACK = Hash[(K+ XOR opad) || Hash[(K+ XOR ipad)||M)]] • K+= 在K的左邊附加0,使其長度為b位元 • ipad = 將00110110(也就是16進位的36)重複b / 8次 • opad = 將01011100(也就是16進位法的5C)重複b / 8次 • 可以使用任何雜湊函數,例如: • MD5、SHA-1、RIPEMD-160、Whirlpool

  23. HMAC架構

  24. HMAC的安全性 • 任何以雜湊函數為基礎的MAC函數安全性,是由所採用的雜湊函數強度決定 • MAC函數的安全性通常會這麼定義: • 偽造者在給定的時間內成功偽造訊息的機率 • 利用相同金鑰產生訊息-MAC組的數量 • 合法使用者產生的訊息若被攻擊者得知,而攻擊者破解HMAC的機率,就等於以下任一種情況雜湊函數被破解的機率: • IV是隨機選取、秘密等不為攻擊者所知的情況下,攻擊者仍可計算出壓縮函數的輸出 • IV是隨機選取、秘密等情況下,攻擊者仍可找出雜湊函數的碰撞

  25. CMAC • 定義在FIPS PUB 113的資料認證演算法(DAA),也稱為CBC MAC(加密區塊串鍊訊息認證碼) • 以加密法為基礎的MAC廣為政府及業界採用 • 但只能處理固定長度的訊息 • 這項限制可藉由使用三把金鑰而克服: • 在加密區塊串鍊的每個步驟使用一把長度k的金鑰,及兩把長度為n的金鑰 • k是金鑰長度,n是加密區塊長度

  26. CMAC • 這項提案的架構後由Iwata和Kurosawa加以精進,以便兩把n位元金鑰得以源自加密金鑰 • 這項改進也獲得NIST採納而成為CMAC運算模式,可與AES和3DES使用(也就是NIST Special Publication 800-38B)

  27. CMAC架構

  28. 總結 • 目前常見的雜湊演算法: • SHA-512 • Whirlpool • 使用雜湊函數的HMAC認證 • 使用區塊加密的CMAC認證

More Related