第03章 數(shù)據(jù)完整性機制._第1頁
第03章 數(shù)據(jù)完整性機制._第2頁
第03章 數(shù)據(jù)完整性機制._第3頁
第03章 數(shù)據(jù)完整性機制._第4頁
第03章 數(shù)據(jù)完整性機制._第5頁
已閱讀5頁,還剩115頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

1、第第3 3章章 數(shù)據(jù)數(shù)據(jù)完整性機制完整性機制第第3 3章章 數(shù)據(jù)完整性機制數(shù)據(jù)完整性機制 主要內(nèi)容主要內(nèi)容3.1 網(wǎng)網(wǎng)絡絡安全中數(shù)據(jù)完整性概述安全中數(shù)據(jù)完整性概述3.2 數(shù)據(jù)完整性機制的數(shù)據(jù)完整性機制的評評價價標標準準3.3 網(wǎng)網(wǎng)絡絡安全中數(shù)據(jù)完整性安全中數(shù)據(jù)完整性驗證驗證機制與機制與評評價價3.4 MD5消息摘要消息摘要計計算算法與算算法與評評價價3.5 MD5算法在數(shù)據(jù)安全方面的算法在數(shù)據(jù)安全方面的應應用用實實例例第第3 3章章 數(shù)據(jù)完整性機制數(shù)據(jù)完整性機制 3.1 3.1 網(wǎng)絡安全中數(shù)據(jù)完整性概述網(wǎng)絡安全中數(shù)據(jù)完整性概述v數(shù)據(jù)完整性數(shù)據(jù)完整性驗證驗證:驗證驗證收到的數(shù)據(jù)是收到的數(shù)據(jù)是否與

2、原來數(shù)據(jù)之否與原來數(shù)據(jù)之間間保持完全一致的保持完全一致的證證明明手段稱手段稱為為數(shù)據(jù)完整性數(shù)據(jù)完整性驗證驗證。v數(shù)據(jù)的完整性數(shù)據(jù)的完整性驗證驗證是用來抗是用來抗擊擊主主動動攻攻擊擊的的篡篡改等行改等行為為。第第3 3章章 數(shù)據(jù)完整性機制數(shù)據(jù)完整性機制 數(shù)據(jù)完整性數(shù)據(jù)完整性v數(shù)據(jù)完整性數(shù)據(jù)完整性 數(shù)據(jù)完整性是數(shù)據(jù)完整性是防止防止非法非法實實體體對對交交換換數(shù)據(jù)的修改、插入、數(shù)據(jù)的修改、插入、替替換換和和刪刪除,或者如果被修改、插入、替除,或者如果被修改、插入、替換換和和刪刪除除時時可可以被以被檢測檢測出來出來。數(shù)據(jù)完整性可以通數(shù)據(jù)完整性可以通過過消息消息認證認證模式來保模式來保證證。第第3 3章

3、章 數(shù)據(jù)完整性機制數(shù)據(jù)完整性機制 基本思路基本思路v增加信息增加信息驗證碼對驗證碼對數(shù)據(jù)完整性數(shù)據(jù)完整性進進行行驗證驗證(1)發(fā)發(fā)送方根據(jù)要送方根據(jù)要發(fā)發(fā)送的原信息送的原信息M0,利用,利用驗證碼驗證碼函數(shù)函數(shù)產(chǎn)產(chǎn)生生與與M0密切相關的信息密切相關的信息驗證碼驗證碼C0;(2)發(fā)發(fā)送方把原始信息送方把原始信息M0和信息和信息驗證碼驗證碼C0合在一起,并通合在一起,并通過過網(wǎng)網(wǎng)絡發(fā)絡發(fā)送送給給接收方;接收方;第第3 3章章 數(shù)據(jù)完整性機制數(shù)據(jù)完整性機制 基本思路基本思路(3)接收方)接收方對對所收到的原信息和所收到的原信息和驗證碼進驗證碼進行分離,假行分離,假設設分別分別為為M1和和C1,因,因

4、為這為這兩個信息可能已被被兩個信息可能已被被篡篡改;改;(4)接收方使用與原始信息相同的信息)接收方使用與原始信息相同的信息驗證碼驗證碼函數(shù)(雙方事函數(shù)(雙方事先先約約定好的)定好的)對對收到的信息部分收到的信息部分M1計計算其自己的信息算其自己的信息驗證驗證碼碼C2;第第3 3章章 數(shù)據(jù)完整性機制數(shù)據(jù)完整性機制 基本思路基本思路(5)接收方將自己)接收方將自己計計算的接收方信息算的接收方信息驗證碼驗證碼C2同分離出來同分離出來的信息的信息驗證碼驗證碼C1進進行行對對比,如果相等,接收方斷定收到的比,如果相等,接收方斷定收到的信息信息M1與用與用戶發(fā)戶發(fā)送的信息送的信息M0是相同的,如果不相等

5、,是相同的,如果不相等,則則接接收方知道原始信息已收方知道原始信息已經(jīng)經(jīng)被被篡篡改改過過。第第3 3章章 數(shù)據(jù)完整性機制數(shù)據(jù)完整性機制 基本思路模型圖基本思路模型圖第第3 3章章 數(shù)據(jù)完整性機制數(shù)據(jù)完整性機制 3.2 3.2 數(shù)據(jù)完整性機制的評價標準數(shù)據(jù)完整性機制的評價標準v完整性完整性驗證驗證的安全性的安全性驗證碼驗證碼的主要功能:的主要功能:實現(xiàn)實現(xiàn)數(shù)據(jù)完整性的數(shù)據(jù)完整性的驗證驗證安全達到防安全達到防偽偽造、防造、防篡篡改目的。改目的。碰撞性:碰撞性:對對于兩個不同的消息于兩個不同的消息m1和和m2,如果它,如果它們們的的驗驗證碼值證碼值相同,相同,則則就就發(fā)發(fā)生了碰撞生了碰撞第第3 3章

6、章 數(shù)據(jù)完整性機制數(shù)據(jù)完整性機制 完整性驗證的安全性完整性驗證的安全性v驗證碼驗證碼函數(shù)要求函數(shù)要求滿滿足的條件足的條件抗弱碰撞性:抗弱碰撞性:對對于于給定給定的消息的消息m1和其和其驗證碼驗證碼H(m1),找到,找到滿滿足足m2m1,且,且H(m2)H(m1)的)的m2在在計計算算上不可行上不可行抗強碰撞性:找到抗強碰撞性:找到任何任何滿滿足足H(m1)H(m2)且)且m2m1的消息的消息對對( m1,m2 )在)在計計算上是不可行的算上是不可行的第第3 3章章 數(shù)據(jù)完整性機制數(shù)據(jù)完整性機制 完整性驗證的安全性完整性驗證的安全性v在數(shù)據(jù)完整性的在數(shù)據(jù)完整性的驗證驗證中可能受到的攻中可能受到的

7、攻擊擊有:有:對對截截獲獲的部分消息的部分消息進進行了增行了增刪刪改;改;攻攻擊擊者不能分離信息和者不能分離信息和驗證碼驗證碼,直接用自己的,直接用自己的信息整體替信息整體替換換所有的所有的發(fā)發(fā)送信息;送信息;攻攻擊擊者可以分析信息和者可以分析信息和驗證碼驗證碼,用自己的信息,用自己的信息只替只替換換信息部分,但無法替信息部分,但無法替換驗證碼換驗證碼攻攻擊擊者不者不僅僅用自己的信息替用自己的信息替換換信息部分,同信息部分,同時時重新重新計計算算驗證碼驗證碼并替并替換換之。之。第第3 3章章 數(shù)據(jù)完整性機制數(shù)據(jù)完整性機制 完整性驗證中加密的安全完整性驗證中加密的安全v數(shù)據(jù)完整性數(shù)據(jù)完整性驗證驗

8、證的一些機制需要的一些機制需要對對其中的內(nèi)容其中的內(nèi)容進進行加密,如行加密,如對驗證碼對驗證碼的加密等,因此密的加密等,因此密鑰鑰的分的分發(fā)發(fā),密,密鑰鑰空空間間的大小,加密算法的的大小,加密算法的選選取直接影響完整性取直接影響完整性驗證驗證的性能和安全性。的性能和安全性。第第3 3章章 數(shù)據(jù)完整性機制數(shù)據(jù)完整性機制 完整性驗證算法的性能完整性驗證算法的性能v數(shù)據(jù)完整性數(shù)據(jù)完整性驗證驗證包括包括發(fā)發(fā)送方送方計計算算驗證碼驗證碼,加密,接收方重,加密,接收方重新新計計算算驗證碼驗證碼,解密,解密,驗證碼驗證碼比比較較等。等。v影響性能的主要因素是影響性能的主要因素是計計算算驗證碼驗證碼和加解密,

9、和加解密,實際實際情況情況時時要要對對完整性完整性驗證驗證的安全性和性能的安全性和性能進進行折中考行折中考慮慮。第第3 3章章 數(shù)據(jù)完整性機制數(shù)據(jù)完整性機制 數(shù)據(jù)完整性驗證的信息有效率數(shù)據(jù)完整性驗證的信息有效率v數(shù)據(jù)完整性數(shù)據(jù)完整性驗證驗證的的有效率有效率是指原信息部分是指原信息部分長長度與合并后度與合并后總總信息(包括原消息和信息(包括原消息和驗證碼驗證碼)的)的長長度之比。度之比。v過長過長:增加:增加額額外的網(wǎng)外的網(wǎng)絡絡通信量通信量v過過短:影響完整性短:影響完整性驗證驗證的準確率和安全性的準確率和安全性第第3 3章章 數(shù)據(jù)完整性機制數(shù)據(jù)完整性機制 3.3 3.3 網(wǎng)絡安全中數(shù)據(jù)完整性驗

10、證機制與評價網(wǎng)絡安全中數(shù)據(jù)完整性驗證機制與評價3.3.1 3.3.1 基于數(shù)據(jù)校驗的完整性驗證機制與評價基于數(shù)據(jù)校驗的完整性驗證機制與評價v在計算機網(wǎng)絡原理中的在計算機網(wǎng)絡原理中的循環(huán)冗余校驗循環(huán)冗余校驗的檢錯技的檢錯技術,目的就是防止計算機網(wǎng)絡中傳輸?shù)臄?shù)據(jù)幀術,目的就是防止計算機網(wǎng)絡中傳輸?shù)臄?shù)據(jù)幀出現(xiàn)錯誤,導致發(fā)送的數(shù)據(jù)幀與接收的數(shù)據(jù)幀出現(xiàn)錯誤,導致發(fā)送的數(shù)據(jù)幀與接收的數(shù)據(jù)幀不一致不一致v 網(wǎng)絡安全中的數(shù)據(jù)完整性驗證機制與計算機網(wǎng)絡安全中的數(shù)據(jù)完整性驗證機制與計算機網(wǎng)絡原理中的檢錯技術類似。網(wǎng)絡原理中的檢錯技術類似。v參照參照CRCCRC冗余碼冗余碼第第3 3章章 數(shù)據(jù)完整性機制數(shù)據(jù)完整性機

11、制 基于數(shù)據(jù)校驗的完整性驗證機制基于數(shù)據(jù)校驗的完整性驗證機制步步驟驟1:A計計算數(shù)據(jù)算數(shù)據(jù)M0的冗余的冗余碼碼N0;步步驟驟2:A將將M0和和N0合在一起,通合在一起,通過過網(wǎng)網(wǎng)絡發(fā)絡發(fā)送送給給B;步步驟驟3:B收到合并的信息后,將二者分開,收到合并的信息后,將二者分開,設為設為M1和和N1;第第3 3章章 數(shù)據(jù)完整性機制數(shù)據(jù)完整性機制 基于數(shù)據(jù)校驗的完整性驗證機制基于數(shù)據(jù)校驗的完整性驗證機制步步驟驟4:B用與原始信息相同的循用與原始信息相同的循環(huán)環(huán)冗余方法重新冗余方法重新計計算信息算信息M1的冗余的冗余碼碼N2;步步驟驟5:B將將計計算的冗余算的冗余碼碼N2同分離的冗余同分離的冗余碼碼N1進

12、進行行對對比,比,如果相等,如果相等,B斷定信息是完整的,如果不相等,斷定信息是完整的,如果不相等,則則B斷定信斷定信息是不完整的。息是不完整的。第第3 3章章 數(shù)據(jù)完整性機制數(shù)據(jù)完整性機制 基于數(shù)據(jù)校驗的完整性驗證機制基于數(shù)據(jù)校驗的完整性驗證機制第第3 3章章 數(shù)據(jù)完整性機制數(shù)據(jù)完整性機制 機制評價機制評價v優(yōu)優(yōu)點:點:該該機制可以機制可以對對網(wǎng)網(wǎng)絡絡系系統(tǒng)統(tǒng)造成的數(shù)據(jù)不一致造成的數(shù)據(jù)不一致進進行行驗證驗證,特別是在,特別是在實現(xiàn)對實現(xiàn)對數(shù)據(jù)數(shù)據(jù)鏈鏈路路層層每個每個幀幀的數(shù)據(jù)差的數(shù)據(jù)差錯檢驗錯檢驗中取中取得了很好的效果。得了很好的效果。數(shù)據(jù)校驗和完整性驗證的區(qū)別?數(shù)據(jù)校驗和完整性驗證的區(qū)別?

13、第第3 3章章 數(shù)據(jù)完整性機制數(shù)據(jù)完整性機制 數(shù)據(jù)校驗和完整性驗證的區(qū)別數(shù)據(jù)校驗和完整性驗證的區(qū)別v數(shù)據(jù)校數(shù)據(jù)校驗驗是是為為了了檢查檢查出因出因為為網(wǎng)網(wǎng)絡絡自身的原因自身的原因?qū)е碌臄?shù)據(jù)不致的數(shù)據(jù)不一致,是由網(wǎng)一致,是由網(wǎng)絡絡系系統(tǒng)統(tǒng)隨機隨機產(chǎn)產(chǎn)生的生的v數(shù)據(jù)完整性數(shù)據(jù)完整性驗證驗證是是為為了了檢查檢查出可能的出可能的惡惡意主意主動動攻攻擊擊者造成者造成的數(shù)據(jù)不一致,后者會的數(shù)據(jù)不一致,后者會處處心心積慮積慮地避開完整性地避開完整性驗證驗證的校的校驗驗。第第3 3章章 數(shù)據(jù)完整性機制數(shù)據(jù)完整性機制 缺點與改進缺點與改進vCRC冗余冗余碼長碼長度短度短v計計算方法需改算方法需改進進,使得信息的

14、每一位都與冗余,使得信息的每一位都與冗余碼碼密切相關密切相關v目前常目前常見見得新的得新的計計算冗余算冗余碼碼的方法:的方法:MD5、SHA-1,冗余,冗余碼碼更名更名為為消息摘要,消息摘要,長長度分別度分別為為128、160位位第第3 3章章 數(shù)據(jù)完整性機制數(shù)據(jù)完整性機制 3.3.2 3.3.2 基于消息摘要的完整性驗證機制基于消息摘要的完整性驗證機制v消息摘要也稱消息摘要也稱為為消息的指消息的指紋紋v 消息摘要一般通消息摘要一般通過過摘要函數(shù)摘要函數(shù)H生成,摘要函數(shù)是生成,摘要函數(shù)是單單向函數(shù)向函數(shù),不是一種加密,使用摘要函數(shù)從消息生成摘要很容易,不是一種加密,使用摘要函數(shù)從消息生成摘要很

15、容易,但是通但是通過過摘要來摘要來還還原消息卻很原消息卻很難難。v哈希函數(shù)是常用算法,也稱哈希函數(shù)是常用算法,也稱為雜為雜湊函數(shù)、散列函數(shù)、湊函數(shù)、散列函數(shù)、hash函數(shù)等函數(shù)等第第3 3章章 數(shù)據(jù)完整性機制數(shù)據(jù)完整性機制 基于消息摘要的完整性驗證機制基于消息摘要的完整性驗證機制v常用算法:常用算法:MD4、MD5、SHA-1v消息摘要使用散列函數(shù)把一段任意消息摘要使用散列函數(shù)把一段任意長長度的消息度的消息M映射到一映射到一個短的固定個短的固定長長的數(shù)據(jù)的數(shù)據(jù)MDv雪崩效雪崩效應應:消息摘要的每一位與原消息的每一位都關:消息摘要的每一位與原消息的每一位都關聯(lián)聯(lián)。第第3 3章章 數(shù)據(jù)完整性機制數(shù)

16、據(jù)完整性機制 實現(xiàn)機制實現(xiàn)機制步步驟驟1:A根據(jù)要根據(jù)要發(fā)發(fā)送的消息送的消息M0,利用,利用MD5、SHA-1等哈希函等哈希函數(shù)數(shù)H(雙方事先商定好的)(雙方事先商定好的)產(chǎn)產(chǎn)生消息摘要生消息摘要MD0;步步驟驟2:A通通過過網(wǎng)網(wǎng)絡絡將將M0和和MD0一起一起發(fā)發(fā)送到送到B第第3 3章章 數(shù)據(jù)完整性機制數(shù)據(jù)完整性機制 實現(xiàn)機制實現(xiàn)機制步步驟驟3:B收到的信息收到的信息設為設為M1,摘要,摘要設為設為MD1,B重新用重新用A使使用的用的產(chǎn)產(chǎn)生摘要的函數(shù)生摘要的函數(shù)H計計算消息摘要,算消息摘要,設為設為MD2步步驟驟4:B比比較較MD2和和MD1是否相同,如果相等,是否相同,如果相等,B斷定數(shù)據(jù)斷

17、定數(shù)據(jù)是完整的,如果不相等,是完整的,如果不相等,則則B斷定數(shù)據(jù)遭到斷定數(shù)據(jù)遭到篡篡改。改。第第3 3章章 數(shù)據(jù)完整性機制數(shù)據(jù)完整性機制 評價評價v優(yōu)優(yōu)點:雙方不需要共享密點:雙方不需要共享密鑰鑰;v消息摘要與信息密切關消息摘要與信息密切關聯(lián)聯(lián),若,若驗證驗證成功,接收者確信信息未被更成功,接收者確信信息未被更改改過過;v信息的有效率高。信息的有效率高。v消息摘要算法通常消息摘要算法通常產(chǎn)產(chǎn)生生長長度度為為128位或位或160位的消息摘要,即任位的消息摘要,即任何兩個消息摘要相同的概率分別何兩個消息摘要相同的概率分別為為2128或或2160分之一,分之一,顯顯然,然,這這在在實際實際上沖突的可

18、能性極小。上沖突的可能性極小。第第3 3章章 數(shù)據(jù)完整性機制數(shù)據(jù)完整性機制 評價評價v如果攻如果攻擊擊者同者同時時修改信息及其摘要,接收者就無法判斷其修改信息及其摘要,接收者就無法判斷其完整性完整性v將摘要與加密將摘要與加密結結合合v如何解決?如何解決?第第3 3章章 數(shù)據(jù)完整性機制數(shù)據(jù)完整性機制 消息摘要舉例消息摘要舉例v摘要類似于縱向冗余校驗摘要類似于縱向冗余校驗(LRC,Longitudinal Redundancy Check)和循環(huán)冗余校驗和循環(huán)冗余校驗(CRC,Cyclic Redundancy Check) 第第3 3章章 數(shù)據(jù)完整性機制數(shù)據(jù)完整性機制 消息摘要消息摘要v下圖顯示

19、了發(fā)送方的下圖顯示了發(fā)送方的LRC計算。計算。LRCLRC將位塊組成列表將位塊組成列表( (行行) ),例如,如果要發(fā)送,例如,如果要發(fā)送3232位,則位,則把其排成四行,然后計算每個列把其排成四行,然后計算每個列( (共共8 8列列) )有多少個有多少個1 1位位如果如果1 1位為奇數(shù),則稱為奇性,在陰影位為奇數(shù),則稱為奇性,在陰影LRCLRC行中用一個行中用一個1 1位表示;位表示;相反,如果相反,如果1 1位為偶數(shù),則稱為偶性,在陰影位為偶數(shù),則稱為偶性,在陰影LRCLRC行中行中用一個用一個0 0位表示位表示) )。 第第3 3章章 數(shù)據(jù)完整性機制數(shù)據(jù)完整性機制 消息摘要例子消息摘要例

20、子第第3 3章章 數(shù)據(jù)完整性機制數(shù)據(jù)完整性機制 消息摘要舉例消息摘要舉例v每列計算奇偶位,生成一個每列計算奇偶位,生成一個新行新行,共八個奇偶位,成為整,共八個奇偶位,成為整個塊的奇偶位。這樣,個塊的奇偶位。這樣, LRC實際上是原消息的消息摘要實際上是原消息的消息摘要。 v計算結束后將數(shù)據(jù)和計算結束后將數(shù)據(jù)和LRC發(fā)送給接收方。接收方把數(shù)據(jù)和發(fā)送給接收方。接收方把數(shù)據(jù)和LRC分開,對數(shù)據(jù)塊分開,對數(shù)據(jù)塊重新重新執(zhí)行執(zhí)行LRC運算,然后將得到的運算,然后將得到的LRC值與從發(fā)送方收到的值與從發(fā)送方收到的LRC值比較。值比較。如果兩個如果兩個LRC值相值相同,則可以相信發(fā)送方發(fā)來的信息沒有在中途

21、發(fā)生改變。同,則可以相信發(fā)送方發(fā)來的信息沒有在中途發(fā)生改變。 第第3 3章章 數(shù)據(jù)完整性機制數(shù)據(jù)完整性機制 消息摘要的思想消息摘要的思想 v消息摘要采用類似原理,但范圍更大一些消息摘要采用類似原理,但范圍更大一些v例如,假設數(shù)字例如,假設數(shù)字4000要用要用4除,得到除,得到1000。則。則4可以作為可以作為4000的的摘要摘要。 v一個要點是:將一個要點是:將4000除以除以4總是得到總是得到1000。如果改變。如果改變4000,則結果不再是則結果不再是4,即,即原消息改了,則摘要一定會改變原消息改了,則摘要一定會改變。第第3 3章章 數(shù)據(jù)完整性機制數(shù)據(jù)完整性機制 消息摘要的思想消息摘要的思

22、想 v另一個要點是:如果只給出數(shù)字另一個要點是:如果只給出數(shù)字4而不給出更多信息,則無而不給出更多信息,則無法追溯原來的公式法追溯原來的公式41000=4000。即即消息的摘要消息的摘要( (這里是數(shù)這里是數(shù)字字4)4)沒有暴露原消息的任何信息沒有暴露原消息的任何信息( (這里是數(shù)字這里是數(shù)字4000)4000),不能,不能逆向返回(單向函數(shù),與加密不同,不能解密)逆向返回(單向函數(shù),與加密不同,不能解密) 第第3 3章章 數(shù)據(jù)完整性機制數(shù)據(jù)完整性機制 消息摘要的思想消息摘要的思想v假設要計算數(shù)字假設要計算數(shù)字7391743的消息摘要,則可以將數(shù)字中每個的消息摘要,則可以將數(shù)字中每個位與下一個

23、位相乘位與下一個位相乘(是是0時排除時排除),忽略乘積中的第一位。,忽略乘積中的第一位。v這樣,我們對數(shù)據(jù)塊進行散列運算這樣,我們對數(shù)據(jù)塊進行散列運算(或消息摘要算法或消息摘要算法),得,得到其散列或到其散列或消息摘要要比原消息小得多消息摘要要比原消息小得多。 第第3 3章章 數(shù)據(jù)完整性機制數(shù)據(jù)完整性機制 一個簡單消息摘要簡例一個簡單消息摘要簡例第第3 3章章 數(shù)據(jù)完整性機制數(shù)據(jù)完整性機制 兩個消息摘要相同的概率兩個消息摘要相同的概率v前面考慮的是非常簡單的消息摘要。例如,如果前兩位篡前面考慮的是非常簡單的消息摘要。例如,如果前兩位篡改為改為9999,則摘要的結果不變,即兩個不同的消息有相同的

24、,則摘要的結果不變,即兩個不同的消息有相同的摘要,而且很容易求出摘要,而且很容易求出v實際上,消息摘要的計算沒有這么簡單。消息摘要通常占實際上,消息摘要的計算沒有這么簡單。消息摘要通常占128位以上位以上,選擇這么長的消息摘要是有目的的,是為了減,選擇這么長的消息摘要是有目的的,是為了減少兩個消息摘要相同的范圍。少兩個消息摘要相同的范圍。第第3 3章章 數(shù)據(jù)完整性機制數(shù)據(jù)完整性機制 消息摘要要求消息摘要要求 (1)給定某個消息,消息摘要應該相同。即同一個消息不能有給定某個消息,消息摘要應該相同。即同一個消息不能有不同的摘要。不同的摘要。(2)(2)兩個不同的原消息兩個不同的原消息很難求很難求出

25、相同的摘要出相同的摘要(3)給定消息摘要,應該很難求出原先的消息,即,消息摘要給定消息摘要,應該很難求出原先的消息,即,消息摘要不能反向求出(單向函數(shù)),否則就會出現(xiàn)通過摘要暴露不能反向求出(單向函數(shù)),否則就會出現(xiàn)通過摘要暴露原消息的情況原消息的情況第第3 3章章 數(shù)據(jù)完整性機制數(shù)據(jù)完整性機制 消息摘要要求消息摘要要求v沖突的概念沖突的概念如果兩個消息得到相同的消息摘要,則會違背上述原如果兩個消息得到相同的消息摘要,則會違背上述原則,稱為則,稱為沖突沖突(collision)。如果兩個消息摘要發(fā)生沖突,如果兩個消息摘要發(fā)生沖突,則表示其摘要相同。消息摘要算法通常產(chǎn)生長度為則表示其摘要相同。消

26、息摘要算法通常產(chǎn)生長度為128位位或或160位的消息摘要,即任何兩個消息摘要相同的概率分位的消息摘要,即任何兩個消息摘要相同的概率分別為別為2128或或2160分之一,顯然,這在實際上可能性極小。分之一,顯然,這在實際上可能性極小。第第3 3章章 數(shù)據(jù)完整性機制數(shù)據(jù)完整性機制 3.3.3 3.3.3 基于消息摘要與對稱密鑰加密的基于消息摘要與對稱密鑰加密的完整性驗證機制完整性驗證機制A用消息摘要算法用消息摘要算法H計計算信息算信息M0的消息摘要的消息摘要MD0A將將M0和和MD0和在一起,并使用和在一起,并使用K加密合并的消息,并加密合并的消息,并通通過過網(wǎng)網(wǎng)絡發(fā)絡發(fā)送送給給BB收到加密的消息

27、后,用同一密收到加密的消息后,用同一密鑰鑰K把密文解密,并將二把密文解密,并將二者分開,分別者分開,分別設為設為M1和和MD1第第3 3章章 數(shù)據(jù)完整性機制數(shù)據(jù)完整性機制 基于消息摘要與對稱密鑰加密的完整性基于消息摘要與對稱密鑰加密的完整性驗證機制驗證機制B用與原始信息相同的消息摘要用與原始信息相同的消息摘要計計算方法算方法H重新重新計計算算M1的的消息摘要消息摘要MD2B將將計計算的消息摘要算的消息摘要MD2與分離出來的消息摘要與分離出來的消息摘要MD1進進行行對對比,如果相等,比,如果相等,B斷定信息是完整的;如果不相等,斷定信息是完整的;如果不相等,B就斷定信息遭到就斷定信息遭到篡篡改改

28、第第3 3章章 數(shù)據(jù)完整性機制數(shù)據(jù)完整性機制 機制評價機制評價v優(yōu)優(yōu)點:點:防止攻防止攻擊擊者者篡篡改消息改消息防止攻防止攻擊擊者同者同時時把信息部分和消息摘要部分替把信息部分和消息摘要部分替換換并同并同時時保持它保持它們們之之間間的匹配關系的攻的匹配關系的攻擊擊第第3 3章章 數(shù)據(jù)完整性機制數(shù)據(jù)完整性機制 機制評價機制評價v缺點:缺點:雙方需共享密雙方需共享密鑰鑰K,存在密,存在密鑰鑰的的發(fā)發(fā)布布問題問題如何改進?如何改進?第第3 3章章 數(shù)據(jù)完整性機制數(shù)據(jù)完整性機制 3.3.4 3.3.4 基于非對稱密鑰和對稱密鑰結合基于非對稱密鑰和對稱密鑰結合的完整性驗證機制的完整性驗證機制v步步驟驟1

29、:A計計算信息算信息M0的消息摘要(的消息摘要(MD0)v步步驟驟2:A選選定一次性定一次性對對稱密稱密鑰鑰K1,用完即放棄,防止重放攻,用完即放棄,防止重放攻擊擊;v步步驟驟3:A取一次性取一次性對對稱密稱密鑰鑰(K1),用,用B的公的公鑰鑰(K2)加密加密K1,結結果果設為設為Bk2(K1)。這這個個過過程稱程稱為對為對稱密稱密鑰鑰的密的密鑰鑰包裝包裝(key wrapping);第第3 3章章 數(shù)據(jù)完整性機制數(shù)據(jù)完整性機制 基于非對稱密鑰和對稱密鑰結合的完整基于非對稱密鑰和對稱密鑰結合的完整性驗證機制性驗證機制v步步驟驟4 A將將M0和和MD0合在一起,并使用合在一起,并使用對對稱密稱密

30、鑰鑰(K1)加密合加密合并后的數(shù)據(jù),并后的數(shù)據(jù),結結果果設為設為:Ak1(M0+MD0),并通,并通過過網(wǎng)網(wǎng)絡絡將將Bk2(K1)+Ak1(M0+MD0)發(fā)發(fā)送送給給B;v步步驟驟5:B用用A所用的非所用的非對對稱密稱密鑰鑰算法和自己的私算法和自己的私鑰鑰(K3)解密解密Bk2(K1),這這個個過過程的程的輸輸出是出是對對稱密稱密鑰鑰K1;第第3 3章章 數(shù)據(jù)完整性機制數(shù)據(jù)完整性機制 基于非對稱密鑰和對稱密鑰結合的完整基于非對稱密鑰和對稱密鑰結合的完整性驗證機制性驗證機制v步步驟驟6:B用用A所用的所用的對對稱密稱密鑰鑰算法和算法和對對稱密稱密鑰鑰K1解密解密Ak1(M0+MD0),并將二者分

31、開,),并將二者分開,設為設為M1和和MD1;v步步驟驟7:B用與原始信息相同的消息摘要用與原始信息相同的消息摘要計計算方法重新算方法重新計計算算信息信息M1的的消息摘要的的消息摘要MD2第第3 3章章 數(shù)據(jù)完整性機制數(shù)據(jù)完整性機制 基于非對稱密鑰和對稱密鑰結合的完整基于非對稱密鑰和對稱密鑰結合的完整性驗證機制性驗證機制v步步驟驟8:B將將計計算的的消息摘要算的的消息摘要MD2同分離的消息摘要同分離的消息摘要MD1進進行行對對比,如果相等,比,如果相等,B斷定信息是完整的,如果不相等,斷定信息是完整的,如果不相等,則則B斷定信息遭到斷定信息遭到篡篡改。改。第第3 3章章 數(shù)據(jù)完整性機制數(shù)據(jù)完整

32、性機制 機制評價機制評價v優(yōu)優(yōu)點:點:這這個機制防止了攻個機制防止了攻擊擊者替者替換換和和篡篡改信息的攻改信息的攻擊擊外,外,解決了密解決了密鑰鑰的的發(fā)發(fā)布布問題問題,A隨機隨機選選定一次性定一次性對對稱密稱密鑰鑰K1,用完即放棄,防止了重放攻用完即放棄,防止了重放攻擊擊。第第3 3章章 數(shù)據(jù)完整性機制數(shù)據(jù)完整性機制 機制評價機制評價v缺點:缺點: 需要保需要保證證公公鑰鑰的真的真實實可信性可信性 是需要是需要計計算信息摘要,可以算信息摘要,可以簡簡化化驗證驗證的步的步驟驟,不用,不用計計算算信息摘要,一個最直接的方法是直接用加密方法信息摘要,一個最直接的方法是直接用加密方法實現(xiàn)實現(xiàn)數(shù)數(shù)據(jù)完整

33、性據(jù)完整性驗證驗證第第3 3章章 數(shù)據(jù)完整性機制數(shù)據(jù)完整性機制 3.3.5 3.3.5 基于對稱密鑰直接加密原消息的基于對稱密鑰直接加密原消息的完整性驗證機制與評價完整性驗證機制與評價v加密本身提供一種消息完整性加密本身提供一種消息完整性驗證驗證方法,假方法,假設設A、B雙方共享密雙方共享密鑰鑰K,并且,并且發(fā)發(fā)送的是有意送的是有意義義的消息,的消息,則則直接加密原消息也可以起到完整性直接加密原消息也可以起到完整性驗證驗證的作用。的作用。v由于攻由于攻擊擊者不知道密者不知道密鑰鑰K,因此攻,因此攻擊擊者就不知道如者就不知道如何改何改變變密文中的消息位才能在明文中密文中的消息位才能在明文中產(chǎn)產(chǎn)生

34、生預預期的改期的改變變。接收方可以根據(jù)解密后的明文是否有意。接收方可以根據(jù)解密后的明文是否有意義義來來進進行完整性行完整性驗證驗證。第第3 3章章 數(shù)據(jù)完整性機制數(shù)據(jù)完整性機制 實現(xiàn)機制實現(xiàn)機制vA使用使用對對稱密稱密鑰鑰機密機制加密機密機制加密M0,并通,并通過過網(wǎng)網(wǎng)絡發(fā)絡發(fā)送送給給BvB收到加密的信息后,用同一密收到加密的信息后,用同一密鑰鑰解密解密vB根據(jù)解密后的明文是否有意根據(jù)解密后的明文是否有意義義來判斷消息是否完整,如來判斷消息是否完整,如果有意果有意義義,B認為認為數(shù)據(jù)是完整的,如果是無意數(shù)據(jù)是完整的,如果是無意義義的亂的亂碼碼,B就就認為認為數(shù)據(jù)遭到數(shù)據(jù)遭到篡篡改。改。第第3

35、3章章 數(shù)據(jù)完整性機制數(shù)據(jù)完整性機制 機制評價機制評價v優(yōu)優(yōu)點:點:不增加不增加額額外的外的驗證碼驗證碼,數(shù)據(jù)完整性的信息有效,數(shù)據(jù)完整性的信息有效率高率高具有保密性和完整性具有保密性和完整性驗證驗證的雙重功能的雙重功能v缺點:缺點:密密鑰鑰的的發(fā)發(fā)布布問題問題v改改進進:與非與非對對稱密稱密鑰鑰加密體制加密體制結結合來解決密合來解決密鑰鑰的的發(fā)發(fā)布布第第3 3章章 數(shù)據(jù)完整性機制數(shù)據(jù)完整性機制 3.3.6 3.3.6 基于基于RSARSA數(shù)字簽名的完整性驗證機制數(shù)字簽名的完整性驗證機制步步驟驟1:A用自己的私用自己的私鑰鑰加密消息加密消息M,用,用EA私私(M)表示;)表示;步步驟驟2:把加

36、密的消息:把加密的消息發(fā)發(fā)送送給給B;步步驟驟3:B接收到加密的消息后用接收到加密的消息后用A的公的公鑰鑰解密,用公式解密,用公式DA公公(EA私私(M))表示;表示;第第3 3章章 數(shù)據(jù)完整性機制數(shù)據(jù)完整性機制 3.3.6 3.3.6 基于基于RSARSA數(shù)字簽名的完整性驗證機制數(shù)字簽名的完整性驗證機制v步步驟驟4:B根據(jù)解密后的明文是否有意根據(jù)解密后的明文是否有意義義來來進進行消息完整性行消息完整性驗證驗證,如果有意,如果有意義義,B認為認為數(shù)據(jù)是完整的,如果是無意數(shù)據(jù)是完整的,如果是無意義義的的亂亂碼碼,則則B認為認為的數(shù)據(jù)遭到的數(shù)據(jù)遭到篡篡改。改。第第3 3章章 數(shù)據(jù)完整性機制數(shù)據(jù)完整

37、性機制 機制評價機制評價v優(yōu)優(yōu)點:點: 在本機制中,參照物的依據(jù)就是解密后的信息是否有意在本機制中,參照物的依據(jù)就是解密后的信息是否有意義義。 解決了密解決了密鑰鑰的分的分發(fā)問題發(fā)問題。 在完整性在完整性驗證驗證方面,即使攻方面,即使攻擊擊者者C在中途截在中途截獲獲了加密消息了加密消息,能夠用,能夠用A的公的公鑰鑰解密消息,然后解密消息,然后篡篡改消息,也沒法達到改消息,也沒法達到任何目的任何目的第第3 3章章 數(shù)據(jù)完整性機制數(shù)據(jù)完整性機制 機制評價機制評價v缺點:缺點: 加密的速度慢;加密的速度慢; 第二個缺點是第二個缺點是發(fā)發(fā)送的明文必送的明文必須須是有意是有意義義的明文,在某些的明文,在

38、某些場場合下,有意合下,有意義義的明文并不好判斷。因此二的明文并不好判斷。因此二進進制文件需制文件需要通要通過過增加增加額額外外驗證碼驗證碼來來進進行完整性行完整性驗證驗證。 由于由于A的公的公鑰鑰是公開的,任何人都可以解密是公開的,任何人都可以解密A加密的消加密的消息,因此息,因此該該機制不具有保密作用。機制不具有保密作用。第第3 3章章 數(shù)據(jù)完整性機制數(shù)據(jù)完整性機制 3.3.7 3.3.7 加密原消息作為驗證碼的完整性驗證機制加密原消息作為驗證碼的完整性驗證機制vA使用使用對對稱密稱密鑰鑰加密機制加密加密機制加密M0,設為設為EK(M0),作作為驗證碼為驗證碼vA將將M0和和EK(M0)合

39、在一起,并通合在一起,并通過過網(wǎng)網(wǎng)絡發(fā)絡發(fā)送送給給BvB收到數(shù)據(jù)后,將兩者分開,收到數(shù)據(jù)后,將兩者分開,設設原消息原消息為為M1(可能可能已被已被篡篡改改),用同一密,用同一密鑰鑰K解密解密驗證碼驗證碼,解密的,解密的結結果果設為設為M2vB將將M2與與M1進進行行對對比,如果相等,比,如果相等,B斷定信息是斷定信息是完整的;如果不相等,完整的;如果不相等,B就斷定信息遭到就斷定信息遭到篡篡改。改。第第3 3章章 數(shù)據(jù)完整性機制數(shù)據(jù)完整性機制 機制評價機制評價v優(yōu)優(yōu)點:點:不需要不需要額額外算法去外算法去產(chǎn)產(chǎn)生生驗證碼驗證碼,只需把加密的原消息作,只需把加密的原消息作為驗證碼為驗證碼(篡篡改、

40、替改、替換換)v缺點:缺點:驗證碼驗證碼太大太大沒有保密作用沒有保密作用第第3 3章章 數(shù)據(jù)完整性機制數(shù)據(jù)完整性機制 3.3.8 3.3.8 基于消息認證碼的數(shù)據(jù)完整基于消息認證碼的數(shù)據(jù)完整性驗證機制性驗證機制v如果攻如果攻擊擊者同者同時時修改摘要及信息,并使他修改摘要及信息,并使他們們相匹配,相匹配,則則接接收者無法判斷其完整性,收者無法判斷其完整性,為為此將摘要與加密此將摘要與加密結結合,合,這這種技種技術術稱稱為為消息消息鑒鑒別別碼碼(Message Authentication Code, MAC)第第3 3章章 數(shù)據(jù)完整性機制數(shù)據(jù)完整性機制 基于消息認證碼的數(shù)據(jù)完整性驗證基于消息認證

41、碼的數(shù)據(jù)完整性驗證機制機制實現(xiàn)實現(xiàn)機制機制v步步驟驟1:A根據(jù)要根據(jù)要發(fā)發(fā)送的消息送的消息M0,利用密,利用密鑰鑰K通通過過MAC產(chǎn)產(chǎn)生生函數(shù)函數(shù)C產(chǎn)產(chǎn)生生MAC0=Ck(M0);v步步驟驟2:A將將M0和和MAC0合在一起,并通合在一起,并通過過網(wǎng)網(wǎng)絡發(fā)絡發(fā)送到送到B;v步步驟驟3:B收到信息后,并將二者分開,收到信息后,并將二者分開,設為設為M1和和MAC1;第第3 3章章 數(shù)據(jù)完整性機制數(shù)據(jù)完整性機制 基于消息認證碼的數(shù)據(jù)完整性驗證基于消息認證碼的數(shù)據(jù)完整性驗證機制機制v步步驟驟4:B利用密利用密鑰鑰K對對收到的信息收到的信息M1用與用與A相同的相同的MAC產(chǎn)產(chǎn)生函數(shù)生函數(shù)C重新重新計計

42、算算M1的的驗證碼驗證碼,設為設為MAC2v步步驟驟5:B比比較較MAC2和和MAC1是否相同,如果相等,是否相同,如果相等,B斷定斷定數(shù)據(jù)是完整的,如果不相等,數(shù)據(jù)是完整的,如果不相等,則則B斷定數(shù)據(jù)遭到斷定數(shù)據(jù)遭到篡篡改。改。第第3 3章章 數(shù)據(jù)完整性機制數(shù)據(jù)完整性機制 機制評價機制評價v優(yōu)優(yōu)點:點: 這這種機制使接收者確信信息未被更改種機制使接收者確信信息未被更改過過 防止消息被整體替防止消息被整體替換換,因,因為為攻攻擊擊者替者替換換了消息,并了消息,并計計算算自己的自己的MAC,由于不知道,由于不知道K,無法再次生成正確的,無法再次生成正確的MAC。 具有身份具有身份鑒鑒別的作用,其

43、他人不能假冒別的作用,其他人不能假冒 信息有效率高信息有效率高第第3 3章章 數(shù)據(jù)完整性機制數(shù)據(jù)完整性機制 消息認證碼(消息認證碼(MACMAC)的計算)的計算眼熟么?眼熟么?取左邊取左邊n n位位第第3 3章章 數(shù)據(jù)完整性機制數(shù)據(jù)完整性機制 消息認證碼(消息認證碼(MACMAC)的計算)的計算v典型的典型的鑒鑒別別碼碼生成算法主要基于生成算法主要基于DES的的認證認證算法,算法,該該算法算法采用采用CBC模式。模式。v最后一最后一輪輪迭代迭代結結束后,取束后,取結結果的左果的左邊邊n位作位作為鑒為鑒別別碼碼。v信息的有效率信息的有效率為為m/L,其中,其中m為為信息信息長長度,度,n為鑒為鑒

44、別別碼長碼長度度,L=m+nv缺點是:缺點是:驗證驗證過過程需要加密。程需要加密。第第3 3章章 數(shù)據(jù)完整性機制數(shù)據(jù)完整性機制 機制評價機制評價v缺點:缺點: 沒有保密作用,只有完整性沒有保密作用,只有完整性驗證驗證作用作用 密密鑰鑰的的發(fā)發(fā)布布問題問題(共享密(共享密鑰鑰K)第第3 3章章 數(shù)據(jù)完整性機制數(shù)據(jù)完整性機制 算法改進算法改進v對對于密于密鑰鑰的的發(fā)發(fā)布布問題問題,可以采用基于哈希函數(shù)的完整性,可以采用基于哈希函數(shù)的完整性驗驗證證機制來改機制來改進進v哈希函數(shù)的哈希函數(shù)的計計算類似算類似MAC,但不需要雙方共享密,但不需要雙方共享密鑰鑰第第3 3章章 數(shù)據(jù)完整性機制數(shù)據(jù)完整性機制

45、hashhash與與MACMAC的區(qū)別的區(qū)別vMAC在在產(chǎn)產(chǎn)生消息生消息認證碼時認證碼時需要需要對對全部數(shù)據(jù)全部數(shù)據(jù)進進行加密,速度行加密,速度慢;慢;vHash是一種直接是一種直接產(chǎn)產(chǎn)生生認證碼認證碼的方法,不需要雙方共享密的方法,不需要雙方共享密鑰鑰vHash可以用于數(shù)字可以用于數(shù)字簽簽名名第第3 3章章 數(shù)據(jù)完整性機制數(shù)據(jù)完整性機制 MACMAC函數(shù)與加密函數(shù)的聯(lián)系與區(qū)別函數(shù)與加密函數(shù)的聯(lián)系與區(qū)別vMAC函數(shù)與加密函數(shù)類似,需要明文、密函數(shù)與加密函數(shù)類似,需要明文、密鑰鑰和算法的參與和算法的參與vMAC算法不要求可逆性,而加密算法必算法不要求可逆性,而加密算法必須須是可逆的。是可逆的。第

46、第3 3章章 數(shù)據(jù)完整性機制數(shù)據(jù)完整性機制 復習復習v簡簡述基于數(shù)據(jù)校述基于數(shù)據(jù)校驗驗的完整性的完整性驗證驗證機制機制v簡簡述基于消息摘要與述基于消息摘要與對對稱密稱密鑰鑰加密的完整性加密的完整性驗證驗證機制機制v簡簡述基于非述基于非對對稱密稱密鑰鑰和和對對稱密稱密鑰結鑰結合的完整性性合的完整性性驗證驗證機制機制第第3 3章章 數(shù)據(jù)完整性機制數(shù)據(jù)完整性機制 3.4 MD5消息摘要計算算法與評價消息摘要計算算法與評價 v消息摘要能夠完成完整性驗證必須滿足的要求:消息摘要能夠完成完整性驗證必須滿足的要求: 兩個不同的原消息很難求出相同的摘要兩個不同的原消息很難求出相同的摘要 給定消息摘要,很難求出

47、原來的消息給定消息摘要,很難求出原來的消息第第3 3章章 數(shù)據(jù)完整性機制數(shù)據(jù)完整性機制 3.4.1 MD5概述概述 vMD5消息摘要算法是消息摘要算法是9090年代初由年代初由Ron Rivest開發(fā)的。開發(fā)的。MD5的全稱是的全稱是message-digest algorithm 5(信息信息-摘要算法)摘要算法),作用是,作用是把把一個一個隨機長度隨機長度的信息變化產(chǎn)生一個的信息變化產(chǎn)生一個128位的信息位的信息摘要。摘要。第第3 3章章 數(shù)據(jù)完整性機制數(shù)據(jù)完整性機制 MD5 概述概述 vMD5根源于一系列消息摘要算法,都是由根源于一系列消息摘要算法,都是由Ron Rivest開發(fā)開發(fā)的。

48、的。v原先的消息摘要算法稱為原先的消息摘要算法稱為MD,很快進入下一版很快進入下一版MD2,但但很脆弱。很脆弱。Ron Rivest開始開發(fā)開始開發(fā)MD3,結果失敗了結果失敗了(因此沒有因此沒有發(fā)布發(fā)布)。v后來,后來,RonRivest開發(fā)了開發(fā)了MD4,但很快發(fā)現(xiàn)其還是不理想,但很快發(fā)現(xiàn)其還是不理想,因此最終推出了因此最終推出了MD5。 第第3 3章章 數(shù)據(jù)完整性機制數(shù)據(jù)完整性機制 MD2MD2簡介簡介vRivest在在1989年開發(fā)出年開發(fā)出MD2算法。算法。v在這個算法中,首先對信息進行數(shù)據(jù)補位,使信在這個算法中,首先對信息進行數(shù)據(jù)補位,使信息的字節(jié)長度是息的字節(jié)長度是16的倍數(shù)。的倍

49、數(shù)。v然后,以一個然后,以一個16位的檢驗和追加到信息末尾,并位的檢驗和追加到信息末尾,并且根據(jù)這個新產(chǎn)生的信息計算出散列值。且根據(jù)這個新產(chǎn)生的信息計算出散列值。v后來,后來,Rogier和和Chauvaud發(fā)現(xiàn)如果忽略了檢驗發(fā)現(xiàn)如果忽略了檢驗將和將和MD2產(chǎn)生沖突。產(chǎn)生沖突。MD2算法加密后結果是唯一算法加密后結果是唯一的。的。 第第3 3章章 數(shù)據(jù)完整性機制數(shù)據(jù)完整性機制 MD4MD4簡介簡介vRivest在在1990年又開年又開發(fā)發(fā)出出MD4算法。算法。vDen boer和和Bosselaers以及其他人很快的以及其他人很快的發(fā)現(xiàn)發(fā)現(xiàn)了了攻攻擊擊MD4版本中第一步和第三步的漏洞。版本中第

50、一步和第三步的漏洞。Dobbertin向大家演示了如何利用一部普通的個人向大家演示了如何利用一部普通的個人電腦電腦在幾分在幾分鐘鐘內(nèi)找到內(nèi)找到MD4完整版本中的沖突。毫無完整版本中的沖突。毫無疑疑問問,MD4就此被淘汰掉了。就此被淘汰掉了。 v盡管盡管MD4算法在安全上有個算法在安全上有個這這么大的漏洞,但它么大的漏洞,但它對對在其后才被開在其后才被開發(fā)發(fā)出來的好幾種信息安全加密算法出來的好幾種信息安全加密算法的出的出現(xiàn)現(xiàn)卻有著不可忽卻有著不可忽視視的引的引導導作用。作用。 第第3 3章章 數(shù)據(jù)完整性機制數(shù)據(jù)完整性機制 MD5MD5簡介簡介v1991年,年,Rivest開發(fā)出技術上更為趨近成熟

51、的開發(fā)出技術上更為趨近成熟的md5算法。算法。v它在它在MD4的基礎上增加了的基礎上增加了“安全安全-帶子帶子”(safety-belts)的)的概念。雖然概念。雖然MD5比比MD4復雜度大一些,但卻更為安全。這復雜度大一些,但卻更為安全。這個算法很明顯的由四個和個算法很明顯的由四個和MD4設計有少許不同的步驟組成設計有少許不同的步驟組成v在在MD5算法中,信息算法中,信息-摘要的大小和填充的必要條件與摘要的大小和填充的必要條件與MD4完全相同。完全相同。Denboer和和Bosselaers曾發(fā)現(xiàn)曾發(fā)現(xiàn)MD5算法中的假算法中的假沖突(沖突(pseudo-collisions),但除此之外就沒

52、有其他被發(fā)),但除此之外就沒有其他被發(fā)現(xiàn)的加密后結果了?,F(xiàn)的加密后結果了。 第第3 3章章 數(shù)據(jù)完整性機制數(shù)據(jù)完整性機制 MD5MD5算法的目的算法的目的v在驗證數(shù)據(jù)完整性方面是安全的:在驗證數(shù)據(jù)完整性方面是安全的:找到兩個具有找到兩個具有相同摘要的消息在相同摘要的消息在計算上是不可行的(不是理論上計算上是不可行的(不是理論上不可行)不可行)。v直接安全性:直接安全性:算法不基于任何安全性假設,例如算法不基于任何安全性假設,例如因子分解難度。因子分解難度。v算法有效率高:算法有效率高:算法基于算法基于3232位的簡單操作,適于位的簡單操作,適于高速軟件實現(xiàn)。高速軟件實現(xiàn)。v算法簡單:算法簡單:

53、算法中沒有大型數(shù)據(jù)結構和復雜的程算法中沒有大型數(shù)據(jù)結構和復雜的程序。序。第第3 3章章 數(shù)據(jù)完整性機制數(shù)據(jù)完整性機制 基本概述基本概述vMD5以以512位分位分組組來來處處理理輸輸入的信息,且每一分入的信息,且每一分組組又被劃分又被劃分為為16個個32位子分位子分組組v經(jīng)過經(jīng)過了一系列的了一系列的處處理后,算法的理后,算法的輸輸出由出由四個四個32位位分分組組組組成,將成,將這這四個四個32位分位分組組連接連接后將生成一個后將生成一個128位位消息摘要消息摘要。 v每組:每組: 512 128,位數(shù)是原來的位數(shù)是原來的1/4,不是指所有,不是指所有信息的長度,是指每組的信息的長度,是指每組的5

54、12位被縮減到原來的位被縮減到原來的1/4,原消息額可以任意長。,原消息額可以任意長。第第3 3章章 數(shù)據(jù)完整性機制數(shù)據(jù)完整性機制 MD5MD5工作的第工作的第1 1步:填充步:填充vMD5的第的第1步是在原消息中增加填充位,目的是使原消息步是在原消息中增加填充位,目的是使原消息長長度等于一個度等于一個值值,即比,即比512的倍數(shù)少的倍數(shù)少64位位(64位留下來放原位留下來放原消息的長度)消息的長度)v例如,如果原消息例如,如果原消息長長度度為為1000位,位,則則要填充多少位?要填充多少位?v512*3-64-1000=472第第3 3章章 數(shù)據(jù)完整性機制數(shù)據(jù)完整性機制 MD5MD5工作的第

55、工作的第1 1步:填充步:填充v填充填充對對是由一個是由一個1和多個和多個0組組成的位串。成的位串。v注意填充注意填充總總是增加是增加,即使消息,即使消息長長度已度已經(jīng)經(jīng)是比是比512的倍數(shù)少的倍數(shù)少64。v因此,如果消息因此,如果消息長長度已度已經(jīng)經(jīng)是是448,則則要填充要填充512位,使位,使長長度度變變成成960位。因此,位。因此,填充填充長長度度為為1512的的值值。第第3 3章章 數(shù)據(jù)完整性機制數(shù)據(jù)完整性機制 填充過程填充過程第第3 3章章 數(shù)據(jù)完整性機制數(shù)據(jù)完整性機制 第第2 2步:添加長度步:添加長度v增加填充位后,下一步要增加填充位后,下一步要計計算算消息原消息原長長,這這個消

56、息原個消息原長長表表示示為為64位位值值,添加到加,添加到加進進填充后的消息末尾。填充后的消息末尾。v先先計計算消息算消息長長度,度,不包括填充位不包括填充位(即增加填充位前的即增加填充位前的長長度度)。例如,如果原消息例如,如果原消息為為1000位,位,則則填充填充472位,但位,但長長度度為為1000,而不是,而不是1472。第第3 3章章 數(shù)據(jù)完整性機制數(shù)據(jù)完整性機制 第第2 2步:添加長度步:添加長度v注意注意:如果消息如果消息長長度超度超過過264位位(即即64位無法表示,因位無法表示,因為為消消息太息太長長),則則只用只用長長度的低度的低64位位,即等于,即等于計計算算length

57、 mod 264。v我我們們看到,看到,這時這時消息消息長長度度為為512的倍數(shù)的倍數(shù)。第第3 3章章 數(shù)據(jù)完整性機制數(shù)據(jù)完整性機制 第第2 2步:添加長度步:添加長度第第3 3章章 數(shù)據(jù)完整性機制數(shù)據(jù)完整性機制 第第3 3步:將輸入分成步:將輸入分成512512位的塊位的塊第第3 3章章 數(shù)據(jù)完整性機制數(shù)據(jù)完整性機制 第第4 4步:初始化鏈接變量步:初始化鏈接變量vA,B,C,D都是都是32位的鏈接變量(位的鏈接變量(Chaining Variable),實際是常量實際是常量,A=0 x01234567,B=0 x89abcdef,C=0 xfedcba98,D=0 x76543210。第第

58、3 3章章 數(shù)據(jù)完整性機制數(shù)據(jù)完整性機制 第第5 5步:處理塊步:處理塊v預處理結束后,開始實際的計算,對消息中的每個預處理結束后,開始實際的計算,對消息中的每個512512位塊位塊計算計算4 4輪,在每一輪中每個小塊按不同的順序參與運算輪,在每一輪中每個小塊按不同的順序參與運算v4 4輪的第一步進行不同的輪的第一步進行不同的P P處理,其他步驟相同。處理,其他步驟相同。第第3 3章章 數(shù)據(jù)完整性機制數(shù)據(jù)完整性機制 第第5 5步:處理塊步:處理塊1 1、將四個鏈接變量復制到四個變量中、將四個鏈接變量復制到四個變量中v使使a=a=A A,b b= =B B,c c= =C C,d d=D=D,實

59、際上,這個算法將實際上,這個算法將a a、b b、c c、d d組合成組合成128128位位寄存器寄存器( (abcdabcd) ),寄存器寄存器( (abcdabcd) )在實際算法運算在實際算法運算中保存中間結果和最終結果中保存中間結果和最終結果。第第3 3章章 數(shù)據(jù)完整性機制數(shù)據(jù)完整性機制 第第5 5步:處理塊步:處理塊2 2、將當前、將當前512512位塊分解為位塊分解為1616個個子塊,子塊,每個子塊為每個子塊為3232位位3 3、四輪四輪的每一輪有的每一輪有1616次迭代(共次迭代(共6464次迭代),每一次迭代處次迭代),每一次迭代處理一個塊中的理一個塊中的1616個子塊。個子塊

60、。第第3 3章章 數(shù)據(jù)完整性機制數(shù)據(jù)完整性機制 第第5 5步:處理塊步:處理塊v每一輪(每一輪(1616次迭代)的輸入如下:次迭代)的輸入如下:( (a)16a)16個子塊個子塊(32(32位位) ) M0,M1,M15 ( (b)b)變量變量a,b,c,da,b,c,d(每個每個3232位)位)( (c)c)常量常量t t(16/6416/64個,每個個,每個3232位)位) 表示為表示為tk,其中其中k為為164。由于有四。由于有四輪輪,因此每,因此每一一輪輪用用64個個t值值中的中的16個個( (d)Sd)S ( (循環(huán)左移循環(huán)左移S S位位) )第第3 3章章 數(shù)據(jù)完整性機制數(shù)據(jù)完整性

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論