1、雜湊密碼算法
? ? ? ? 可以對任意長度的消息M進行壓縮,輸出定長的消息摘要/雜湊值h,表示為h = H(M)。
? ? ? ? 一般來說,H具備三個性質(zhì):
? ? ? ? (1)單向性。已知h,試圖找打M滿足h=H(M)是困難的。
? ? ? ? (2)抗第二/二次原像攻擊(弱抗碰撞性)。給定M1,試圖找到M2滿足h1=h2是困難的。
? ? ? ? (3)強抗碰撞性。試圖找到H(M1)=H(M2)是困難的。
? ? ? ? 密碼雜湊算法主要有2種結構:M-D結構(MD5、SHA1、SHA2、SM3)和海綿結構(SHA3)。對于MD結構,也就是對填充后的消息進行分組后依次輸入F函數(shù)進行壓縮,上一個分組的結果結果下一個分組的輸入之一,最后一個F的結果即是最終的雜湊值。所以可以說,雜湊算法的安全性取決于F,如果F具備抗碰撞能力,則雜湊函數(shù)也具備抗碰撞能力。
算法名稱 | 分組長度bit | 輸出長度bit | 結構 |
MD5 | 512 | 128 | MD |
SHA1 | 512 | 160 | MD |
SHA-224 | 512 | 224 | MD |
SHA-256 | 512 | 256 | MD |
SHA-384 | 1024 | 384 | MD |
SHA-512 | 1024 | 512 | MD |
SHA-512/224 | 1024 | 224 | MD |
SHA-512/256 | 1024 | 256 | MD |
SM3 | 512 | 256 | MD |
SHA3-224 | - | 224 | 海綿 |
SHA3-256 | - | 256 | 海綿 |
SHA3-384 | - | 384 | 海綿 |
SHA3-512 | - | 512 | 海綿 |
SHAKE128 | - | 變長 | 海綿 |
SHAKE256 | - | 變長 | 海綿 |
2、帶密鑰的雜湊算法
? ? ? ? 使用M||h的方式保護M的完整性是存在安全問題的,例如攻擊者可以將其整體替換為M'||h',完整性驗證也可通過。故認為只使用密碼雜湊算法是無法保證數(shù)據(jù)完整性的。HMAC(帶密鑰的雜湊算法)提出能夠解決這個問題。HMAC具體如hmac = HMAC(K,M),其中密鑰K的長度取對應的雜湊算法分組長度和輸出長度之間,如MD5,K的長度區(qū)間是[128,512]?bit。在HMAC過程中包括2次H計算,取第二次H計算的最左邊m比特,作為HMAC的輸出。
?3、SM3算法
? ? ? ? 關于SM3算法,具體標準見GMT 0004-2012 SM3 密碼雜湊算法,MD結構,輸入消息長度小于2^64bit,分組長度為512,輸出長度為256。
? ? ? ? 3.1 填充規(guī)則
? ? ? ? 在消息M的末尾填充1,然后填充k個0,最后填充64bit的二進制串(表示消息M的長度,這里對應輸入消息M長度不能大于2^64bit),從而得到n個512bit的分組。
? ? ? ? 3.2 迭代過程
? ? ? ? 對于n個分組B0-Bn-1,做迭代Vi+1 = CF(Vi,Bi)V0取256bit的IV,這里CF是壓縮函數(shù),壓縮結果為V。在壓縮函數(shù)之前,對Bi要進行擴展,擴展為132個消息字(32bit)。在壓縮函數(shù)CF中,產(chǎn)生64輪迭代,也就是說對于n個分組Bi,共要計算64n輪。
4、SM3安全性和效率
? ? ? ? SM3和SHA256消息分組、迭代輪數(shù)、輸出長度均相同,同時新引入16步全異或操作、消息雙字介入、加速雪崩效應的P置換。能有效抵抗強碰撞性的差分攻擊、弱碰撞性的線性分析和比特追蹤等密碼分析方法。文章來源:http://www.zghlxwxcb.cn/news/detail-427744.html
????????文章來源地址http://www.zghlxwxcb.cn/news/detail-427744.html
到了這里,關于商用密碼應用與安全性評估要點筆記(SM3密碼雜湊算法)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!