昨天我們提到雜湊和加密是完全不一樣的東西,也大概知道了雜湊演算法的流程,但你們知道雜湊演算法的種類有哪些嗎?今天我們來一起討論吧 !
MD ( Message-Digest Algorithm ) 訊息摘要演算法,由MD2 、MD3、MD4演變成MD5,但不論哪一種MD算法,它們都需要獲得一個隨機長度的資料並產生一個128位元的資料,將128位的二進制轉換成十六進制,就可以得到一個32位元的字串,大部分MD5的字串都是32位元十六進制的字串。
1996年後被證實存在弱點,可以被破解,對於需要高度安全性的資料,因此專家建議改用其他演算法。2004年,MD5被證實無法防止碰撞攻擊,因此不適用於安全性認證。
碰撞攻擊指的是對於同一個雜湊演算法來說,兩個不一樣的輸入通過雜湊計算得到了同樣的雜湊值,以MD5來說,如果惡意使用者建造一個和原始軟體一樣MD5軟體的話,就很可能實施碰撞攻擊。
簡單來說,今天A寫信給B請他今天下午三點在圖書館碰面,但是沒有直接交給B,而是請B的好朋友C轉交給B,於是偽造了這封信,希望B不要赴約,建造了和原來的信a同樣雜湊值的信b,並附帶了A的簽名。而B收到了信b和簽名,經過驗證發現確實是A寫的,於是就沒有去赴約。
碰撞攻擊取決於雜湊演算法的強度,像是MD5和SHA-1這些雜湊演算法已經被證明是不安全的,可以在很快的時間內被攻破,因此不建議使用。
SHA( 全名 : Secure Hash Algorithm ) 安全雜湊演算法,是一種單向函式,由美國國家安全局(NSA)所設計,並由美國國家標準與技術研究院(NIST)發佈。
以上資料參考網站[SHA家族]
SHA家族
密碼雜湊函式
MD5
密碼學系列之:碰撞抵禦和碰撞攻擊collision attack