1、消息摘要概述
??數(shù)據(jù)摘要算法是密碼學(xué)算法中非常重要的一個(gè)分支抒线,它通過(guò)對(duì)所有數(shù)據(jù)提取指紋信息以實(shí)現(xiàn)數(shù)據(jù)簽名缸浦、數(shù)據(jù)完整性校驗(yàn)等功能夕冲,由于其不可逆性,有時(shí)候會(huì)被用做敏感信息的加密裂逐。
2歹鱼、消息摘要算法特點(diǎn)
2.1 變成輸入、定長(zhǎng)輸出
無(wú)論輸入的消息有多長(zhǎng)卜高,計(jì)算出來(lái)的消息摘要的長(zhǎng)度總是固定的醉冤。例如應(yīng)用MD5算法摘要的消息有128個(gè)比特位,用SHA-1算法摘要的消息最終有160比特位的輸出篙悯。
2.2 輸入不同蚁阳、摘要不同,輸入相同鸽照、摘要相同
只要輸入的消息不同螺捐,對(duì)其進(jìn)行摘要以后產(chǎn)生的摘要消息也必不相同;但相同的輸入必會(huì)產(chǎn)生相同的輸出矮燎。這正是好的消息摘要算法所具有的性質(zhì):輸入改變了定血,輸出也就改變了;兩條相似的消息的摘要確不相近诞外,甚至?xí)笙鄰酵ダ焦怠睦碚撋蟻?lái)說(shuō),不管使用什么樣的摘要算法峡谊,必然存在2個(gè)不同的消息茫虽,對(duì)應(yīng)同樣的摘要。因?yàn)檩斎胧且粋€(gè)無(wú)窮集合既们,而輸出是一個(gè)有限集合濒析,所以從數(shù)學(xué)上來(lái)說(shuō)夹纫,必然存在多對(duì)一的關(guān)系递惋。但是實(shí)際上锌妻,很難或者說(shuō)根本不可能人為的造出具有同樣摘要的2個(gè)不同消息恢恼。
2.3 單向、不可逆七扰、散列值不同照弥、原始值不同
消息摘要是單向毕谴、不可逆的荣暮。只能進(jìn)行正向的信息摘要庭惜,而無(wú)法從摘要中恢復(fù)出任何的原始消息,甚至根本就找不到任何與原信息相關(guān)的信息渠驼。當(dāng)然蜈块,可以采用強(qiáng)力攻擊的方法,即嘗試每一個(gè)可能的信息迷扇,計(jì)算其摘要百揭,看看是否與已有的摘要相同,如果這樣做蜓席,最終肯定會(huì)恢復(fù)出摘要的消息器一。但實(shí)際上,要得到的信息可能是無(wú)窮個(gè)消息之一厨内,所以這種強(qiáng)力攻擊幾乎是無(wú)效的祈秕。
2.4 “碰撞” 難找到
好的摘要算法,沒(méi)有人能從中找到“碰撞”雏胃,雖然“碰撞”是肯定存在的请毛。即無(wú)法找到兩條不同消息,但是它們的摘要相同瞭亮。
3方仿、消息摘要的分類
(1)MD(Message Digest) 消息摘要算法
(2)SHA(Secure Hash Algorithm) 安全散列算法
(3)MAC(Message Authentication Code) 消息認(rèn)證碼算法
4、消息摘要用途
4.1统翩、檢查軟件與數(shù)據(jù)是否被篡改
檢查我們下載的軟件是否被篡改過(guò)仙蚜。很多軟件,都會(huì)將軟件通過(guò)單向散列值函數(shù)計(jì)算厂汗,將散列值公布自己在官網(wǎng)上委粉。網(wǎng)盤4G文件秒傳也是應(yīng)用的次特性。
4.2娶桦、基于口令的加密
單向散列函數(shù)也被用于基于口令加密(Password Base Encryption PBE)
PBE的原理是將口令和鹽(salt贾节,通過(guò)隨機(jī)數(shù)生成器生成)混合后計(jì)算其散列值。防御口令字典的攻擊衷畦。
4.3氮双、消息認(rèn)證碼
消息認(rèn)證碼是將“發(fā)送者和接收者直接的共享的密鑰”和“消息” 進(jìn)行混合后計(jì)算出散列值。使用消息認(rèn)證碼可以防止消息的錯(cuò)誤霎匈、篡改戴差、偽裝。
4.4铛嘱、數(shù)據(jù)簽名
數(shù)據(jù)簽名非常耗時(shí)暖释,一般會(huì)對(duì)消息先進(jìn)行摘要處理,處理后直接對(duì)象消息摘要信息進(jìn)行述職簽名墨吓。
4.5球匕、偽隨機(jī)數(shù)
密碼技術(shù)中,所使用的隨機(jī)數(shù)需要“不能根據(jù)過(guò)去的隨機(jī)數(shù)數(shù)列帖烘,預(yù)測(cè)未來(lái)的隨機(jī)數(shù)數(shù)列”這樣的性質(zhì)亮曹,可以利用單向哈希函數(shù)的性質(zhì)。
4.6、一次性口令
使用單向哈希函數(shù)照卦,可以構(gòu)造一次性口令式矫。一次性口令常被用于服務(wù)器和客戶端的合法認(rèn)證,在這種方式中役耕,通過(guò)單向散列函數(shù)可以保證采转,口令只在通訊鏈路上傳遞一次,因此即使竊聽者獲取瞬痘,也無(wú)法使用故慈。
5. 散列算法破解
(1) 算法破解
已知數(shù)據(jù)A和消息的散列值,找到另外一個(gè)數(shù)據(jù)B和A的散列值相同框全。例如2005年2月察绷,王小云破解SHA-1 算法。
(2) 假破解
根據(jù)數(shù)據(jù)庫(kù)查詢散列值津辩,查詢數(shù)據(jù)對(duì)應(yīng)的明文克婶。數(shù)據(jù)樹數(shù)據(jù)越多破解的概率越大,例如密碼使用md5加密丹泉,因?yàn)槊艽a長(zhǎng)度一般都是1-8位的情萤,所以數(shù)據(jù)庫(kù)可以窮舉這些值,提供逆向查詢摹恨。
如果讀完覺(jué)得有收獲的話筋岛,歡迎點(diǎn)贊、關(guān)注晒哄、加公眾號(hào)【小工匠技術(shù)圈】
個(gè)人公眾號(hào)睁宰,歡迎關(guān)注,查閱更多精彩歷史寝凌!