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

下載本文檔

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

文檔簡介

第3章數據完整性機制主要內容3.1網絡安全中數據完整性概述3.2數據完整性機制的評價標準3.3網絡安全中數據完整性驗證機制與評價3.4MD5消息摘要計算算法與評價3.5MD5算法在數據安全方面的應用實例3.1網絡安全中數據完整性概述數據完整性驗證:驗證收到的數據是否與原來數據之間保持完全一致的證明手段稱為數據完整性驗證。數據的完整性驗證是用來抗擊主動攻擊的篡改等行為。數據完整性數據完整性數據完整性是防止非法實體對交換數據的修改、插入、替換和刪除,或者如果被修改、插入、替換和刪除時可以被檢測出來。數據完整性可以通過消息認證模式來保證。基本思路增加信息驗證碼對數據完整性進行驗證(1)發送方根據要發送的原信息M0,利用驗證碼函數產生與M0密切相關的信息驗證碼C0;(2)發送方把原始信息M0和信息驗證碼C0合在一起,并通過網絡發送給接收方;基本思路(3)接收方對所收到的原信息和驗證碼進行分離,假設分別為M1和C1,因為這兩個信息可能已被被篡改;(4)接收方使用與原始信息相同的信息驗證碼函數(雙方事先約定好的)對收到的信息部分M1計算其自己的信息驗證碼C2;基本思路(5)接收方將自己計算的接收方信息驗證碼C2同分離出來的信息驗證碼C1進行對比,如果相等,接收方斷定收到的信息M1與用戶發送的信息M0是相同的,如果不相等,則接收方知道原始信息已經被篡改過。基本思路模型圖3.2數據完整性機制的評價標準完整性驗證的安全性驗證碼的主要功能:實現數據完整性的驗證安全達到防偽造、防篡改目的。碰撞性:對于兩個不同的消息m1和m2,如果它們的驗證碼值相同,則就發生了碰撞完整性驗證的安全性驗證碼函數要求滿足的條件抗弱碰撞性:對于給定的消息m1和其驗證碼H(m1),找到滿足m2≠m1,且H(m2)=H(m1)的m2在計算上不可行抗強碰撞性:找到任何滿足H(m1)=H(m2)且m2≠m1的消息對(m1,m2)在計算上是不可行的完整性驗證的安全性在數據完整性的驗證中可能受到的攻擊有:對截獲的部分消息進行了增刪改;攻擊者不能分離信息和驗證碼,直接用自己的信息整體替換所有的發送信息;攻擊者可以分析信息和驗證碼,用自己的信息只替換信息部分,但無法替換驗證碼攻擊者不僅用自己的信息替換信息部分,同時重新計算驗證碼并替換之。完整性驗證中加密的安全數據完整性驗證的一些機制需要對其中的內容進行加密,如對驗證碼的加密等,因此密鑰的分發,密鑰空間的大小,加密算法的選取直接影響完整性驗證的性能和安全性。完整性驗證算法的性能數據完整性驗證包括發送方計算驗證碼,加密,接收方重新計算驗證碼,解密,驗證碼比較等。影響性能的主要因素是計算驗證碼和加解密,實際情況時要對完整性驗證的安全性和性能進行折中考慮。數據完整性驗證的信息有效率數據完整性驗證的有效率是指原信息部分長度與合并后總信息(包括原消息和驗證碼)的長度之比。過長:增加額外的網絡通信量過短:影響完整性驗證的準確率和安全性3.3網絡安全中數據完整性驗證機制與評價3.3.1基于數據校驗的完整性驗證機制與評價在計算機網絡原理中的循環冗余校驗的檢錯技術,目的就是防止計算機網絡中傳輸的數據幀出現錯誤,導致發送的數據幀與接收的數據幀不一致網絡安全中的數據完整性驗證機制與計算機網絡原理中的檢錯技術類似。參照CRC冗余碼基于數據校驗的完整性驗證機制步驟1:A計算數據M0的冗余碼N0;步驟2:A將M0和N0合在一起,通過網絡發送給B;步驟3:B收到合并的信息后,將二者分開,設為M1和N1;基于數據校驗的完整性驗證機制步驟4:B用與原始信息相同的循環冗余方法重新計算信息M1的冗余碼N2;步驟5:B將計算的冗余碼N2同分離的冗余碼N1進行對比,如果相等,B斷定信息是完整的,如果不相等,則B斷定信息是不完整的。基于數據校驗的完整性驗證機制機制評價優點:該機制可以對網絡系統造成的數據不一致進行驗證,特別是在實現對數據鏈路層每個幀的數據差錯檢驗中取得了很好的效果。數據校驗和完整性驗證的區別?數據校驗和完整性驗證的區別數據校驗是為了檢查出因為網絡自身的原因導致的數據不一致,是由網絡系統隨機產生的數據完整性驗證是為了檢查出可能的惡意主動攻擊者造成的數據不一致,后者會處心積慮地避開完整性驗證的校驗。缺點與改進CRC冗余碼長度短計算方法需改進,使得信息的每一位都與冗余碼密切相關目前常見得新的計算冗余碼的方法:MD5、SHA-1,冗余碼更名為消息摘要,長度分別為128、160位3.3.2基于消息摘要的完整性驗證機制消息摘要也稱為消息的指紋消息摘要一般通過摘要函數H生成,摘要函數是單向函數,不是一種加密,使用摘要函數從消息生成摘要很容易,但是通過摘要來還原消息卻很難。哈希函數是常用算法,也稱為雜湊函數、散列函數、hash函數等基于消息摘要的完整性驗證機制常用算法:MD4、MD5、SHA-1消息摘要使用散列函數把一段任意長度的消息M映射到一個短的固定長的數據MD雪崩效應:消息摘要的每一位與原消息的每一位都關聯。實現機制步驟1:A根據要發送的消息M0,利用MD5、SHA-1等哈希函數H(雙方事先商定好的)產生消息摘要MD0;步驟2:A通過網絡將M0和MD0一起發送到B實現機制步驟3:B收到的信息設為M1,摘要設為MD1,B重新用A使用的產生摘要的函數H計算消息摘要,設為MD2步驟4:B比較MD2和MD1是否相同,如果相等,B斷定數據是完整的,如果不相等,則B斷定數據遭到篡改。評價優點:雙方不需要共享密鑰;消息摘要與信息密切關聯,若驗證成功,接收者確信信息未被更改過;信息的有效率高。消息摘要算法通常產生長度為128位或160位的消息摘要,即任何兩個消息摘要相同的概率分別為2128或2160分之一,顯然,這在實際上沖突的可能性極小。評價如果攻擊者同時修改信息及其摘要,接收者就無法判斷其完整性將摘要與加密結合如何解決?消息摘要舉例摘要類似于縱向冗余校驗(LRC,LongitudinalRedundancyCheck)和循環冗余校驗(CRC,CyclicRedundancyCheck)

消息摘要下圖顯示了發送方的LRC計算。LRC將位塊組成列表(行),例如,如果要發送32位,則把其排成四行,然后計算每個列(共8列)有多少個1位如果1位為奇數,則稱為奇性,在陰影LRC行中用一個1位表示;相反,如果1位為偶數,則稱為偶性,在陰影LRC行中用一個0位表示)。消息摘要例子消息摘要舉例每列計算奇偶位,生成一個新行,共八個奇偶位,成為整個塊的奇偶位。這樣,LRC實際上是原消息的消息摘要。

計算結束后將數據和LRC發送給接收方。接收方把數據和LRC分開,對數據塊重新執行LRC運算,然后將得到的LRC值與從發送方收到的LRC值比較。如果兩個LRC值相同,則可以相信發送方發來的信息沒有在中途發生改變。

消息摘要的思想

消息摘要采用類似原理,但范圍更大一些例如,假設數字4000要用4除,得到1000。則4可以作為4000的摘要。

一個要點是:將4000除以4總是得到1000。如果改變4000,則結果不再是4,即原消息改了,則摘要一定會改變。消息摘要的思想

另一個要點是:如果只給出數字4而不給出更多信息,則無法追溯原來的公式4×1000=4000。即消息的摘要(這里是數字4)沒有暴露原消息的任何信息(這里是數字4000),不能逆向返回(單向函數,與加密不同,不能解密)

消息摘要的思想假設要計算數字7391743的消息摘要,則可以將數字中每個位與下一個位相乘(是0時排除),忽略乘積中的第一位。這樣,我們對數據塊進行散列運算(或消息摘要算法),得到其散列或消息摘要要比原消息小得多。

一個簡單消息摘要簡例兩個消息摘要相同的概率前面考慮的是非常簡單的消息摘要。例如,如果前兩位篡改為99,則摘要的結果不變,即兩個不同的消息有相同的摘要,而且很容易求出實際上,消息摘要的計算沒有這么簡單。消息摘要通常占128位以上,選擇這么長的消息摘要是有目的的,是為了減少兩個消息摘要相同的范圍。消息摘要要求

(1)給定某個消息,消息摘要應該相同。即同一個消息不能有不同的摘要。(2)兩個不同的原消息很難求出相同的摘要(3)給定消息摘要,應該很難求出原先的消息,即,消息摘要不能反向求出(單向函數),否則就會出現通過摘要暴露原消息的情況消息摘要要求沖突的概念如果兩個消息得到相同的消息摘要,則會違背上述原則,稱為沖突(collision)。如果兩個消息摘要發生沖突,則表示其摘要相同。消息摘要算法通常產生長度為128位或160位的消息摘要,即任何兩個消息摘要相同的概率分別為2128或2160分之一,顯然,這在實際上可能性極小。3.3.3基于消息摘要與對稱密鑰加密的完整性驗證機制A用消息摘要算法H計算信息M0的消息摘要MD0A將M0和MD0和在一起,并使用K加密合并的消息,并通過網絡發送給BB收到加密的消息后,用同一密鑰K把密文解密,并將二者分開,分別設為M1和MD1基于消息摘要與對稱密鑰加密的完整性驗證機制B用與原始信息相同的消息摘要計算方法H重新計算M1的消息摘要MD2B將計算的消息摘要MD2與分離出來的消息摘要MD1進行對比,如果相等,B斷定信息是完整的;如果不相等,B就斷定信息遭到篡改機制評價優點:防止攻擊者篡改消息防止攻擊者同時把信息部分和消息摘要部分替換并同時保持它們之間的匹配關系的攻擊機制評價缺點:雙方需共享密鑰K,存在密鑰的發布問題如何改進?3.3.4基于非對稱密鑰和對稱密鑰結合的完整性驗證機制步驟1:A計算信息M0的消息摘要(MD0)步驟2:A選定一次性對稱密鑰K1,用完即放棄,防止重放攻擊;步驟3:A取一次性對稱密鑰(K1),用B的公鑰(K2)加密K1,結果設為Bk2(K1)。這個過程稱為對稱密鑰的密鑰包裝(keywrapping);基于非對稱密鑰和對稱密鑰結合的完整性驗證機制步驟4A將M0和MD0合在一起,并使用對稱密鑰(K1)加密合并后的數據,結果設為:Ak1(M0+MD0),并通過網絡將Bk2(K1)+Ak1(M0+MD0)發送給B;步驟5:B用A所用的非對稱密鑰算法和自己的私鑰(K3)解密Bk2(K1),這個過程的輸出是對稱密鑰K1;基于非對稱密鑰和對稱密鑰結合的完整性驗證機制步驟6:B用A所用的對稱密鑰算法和對稱密鑰K1解密Ak1(M0+MD0),并將二者分開,設為M1和MD1;步驟7:B用與原始信息相同的消息摘要計算方法重新計算信息M1的的消息摘要MD2基于非對稱密鑰和對稱密鑰結合的完整性驗證機制步驟8:B將計算的的消息摘要MD2同分離的消息摘要MD1進行對比,如果相等,B斷定信息是完整的,如果不相等,則B斷定信息遭到篡改。機制評價優點:這個機制防止了攻擊者替換和篡改信息的攻擊外,解決了密鑰的發布問題,A隨機選定一次性對稱密鑰K1,用完即放棄,防止了重放攻擊。機制評價缺點:需要保證公鑰的真實可信性是需要計算信息摘要,可以簡化驗證的步驟,不用計算信息摘要,一個最直接的方法是直接用加密方法實現數據完整性驗證3.3.5基于對稱密鑰直接加密原消息的完整性驗證機制與評價加密本身提供一種消息完整性驗證方法,假設A、B雙方共享密鑰K,并且發送的是有意義的消息,則直接加密原消息也可以起到完整性驗證的作用。由于攻擊者不知道密鑰K,因此攻擊者就不知道如何改變密文中的消息位才能在明文中產生預期的改變。接收方可以根據解密后的明文是否有意義來進行完整性驗證。實現機制A使用對稱密鑰機密機制加密M0,并通過網絡發送給BB收到加密的信息后,用同一密鑰解密B根據解密后的明文是否有意義來判斷消息是否完整,如果有意義,B認為數據是完整的,如果是無意義的亂碼,B就認為數據遭到篡改。機制評價優點:不增加額外的驗證碼,數據完整性的信息有效率高具有保密性和完整性驗證的雙重功能缺點:密鑰的發布問題改進:與非對稱密鑰加密體制結合來解決密鑰的發布3.3.6基于RSA數字簽名的完整性驗證機制步驟1:A用自己的私鑰加密消息M,用EA私(M)表示;步驟2:把加密的消息發送給B;步驟3:B接收到加密的消息后用A的公鑰解密,用公式DA公(EA私(M))表示;3.3.6基于RSA數字簽名的完整性驗證機制步驟4:B根據解密后的明文是否有意義來進行消息完整性驗證,如果有意義,B認為數據是完整的,如果是無意義的亂碼,則B認為的數據遭到篡改。機制評價優點:在本機制中,參照物的依據就是解密后的信息是否有意義。解決了密鑰的分發問題。在完整性驗證方面,即使攻擊者C在中途截獲了加密消息,能夠用A的公鑰解密消息,然后篡改消息,也沒法達到任何目的機制評價缺點:加密的速度慢;第二個缺點是發送的明文必須是有意義的明文,在某些場合下,有意義的明文并不好判斷。因此二進制文件需要通過增加額外驗證碼來進行完整性驗證。由于A的公鑰是公開的,任何人都可以解密A加密的消息,因此該機制不具有保密作用。3.3.7加密原消息作為驗證碼的完整性驗證機制A使用對稱密鑰加密機制加密M0,設為EK(M0),作為驗證碼A將M0和EK(M0)合在一起,并通過網絡發送給BB收到數據后,將兩者分開,設原消息為M1(可能已被篡改),用同一密鑰K解密驗證碼,解密的結果設為M2B將M2與M1進行對比,如果相等,B斷定信息是完整的;如果不相等,B就斷定信息遭到篡改。機制評價優點:不需要額外算法去產生驗證碼,只需把加密的原消息作為驗證碼(篡改、替換)缺點:驗證碼太大沒有保密作用3.3.8基于消息認證碼的數據完整性驗證機制如果攻擊者同時修改摘要及信息,并使他們相匹配,則接收者無法判斷其完整性,為此將摘要與加密結合,這種技術稱為消息鑒別碼(MessageAuthenticationCode,MAC)基于消息認證碼的數據完整性驗證機制實現機制步驟1:A根據要發送的消息M0,利用密鑰K通過MAC產生函數C產生MAC0=Ck(M0);步驟2:A將M0和MAC0合在一起,并通過網絡發送到B;步驟3:B收到信息后,并將二者分開,設為M1和MAC1;基于消息認證碼的數據完整性驗證機制步驟4:B利用密鑰K對收到的信息M1用與A相同的MAC產生函數C重新計算M1的驗證碼,設為MAC2步驟5:B比較MAC2和MAC1是否相同,如果相等,B斷定數據是完整的,如果不相等,則B斷定數據遭到篡改。機制評價優點:這種機制使接收者確信信息未被更改過防止消息被整體替換,因為攻擊者替換了消息,并計算自己的MAC,由于不知道K,無法再次生成正確的MAC。具有身份鑒別的作用,其他人不能假冒信息有效率高消息認證碼(MAC)的計算眼熟么?取左邊n位消息認證碼(MAC)的計算典型的鑒別碼生成算法主要基于DES的認證算法,該算法采用CBC模式。最后一輪迭代結束后,取結果的左邊n位作為鑒別碼。信息的有效率為m/L,其中m為信息長度,n為鑒別碼長度,L=m+n缺點是:驗證過程需要加密。機制評價缺點:沒有保密作用,只有完整性驗證作用密鑰的發布問題(共享密鑰K)算法改進對于密鑰的發布問題,可以采用基于哈希函數的完整性驗證機制來改進哈希函數的計算類似MAC,但不需要雙方共享密鑰hash與MAC的區別MAC在產生消息認證碼時需要對全部數據進行加密,速度慢;Hash是一種直接產生認證碼的方法,不需要雙方共享密鑰Hash可以用于數字簽名MAC函數與加密函數的聯系與區別MAC函數與加密函數類似,需要明文、密鑰和算法的參與MAC算法不要求可逆性,而加密算法必須是可逆的。復習簡述基于數據校驗的完整性驗證機制簡述基于消息摘要與對稱密鑰加密的完整性驗證機制簡述基于非對稱密鑰和對稱密鑰結合的完整性性驗證機制3.4MD5消息摘要計算算法與評價

消息摘要能夠完成完整性驗證必須滿足的要求:兩個不同的原消息很難求出相同的摘要給定消息摘要,很難求出原來的消息3.4.1MD5概述

MD5消息摘要算法是90年代初由RonRivest開發的。MD5的全稱是message-digestalgorithm5(信息-摘要算法),作用是把一個隨機長度的信息變化產生一個128位的信息摘要。MD5概述

MD5根源于一系列消息摘要算法,都是由RonRivest開發的。原先的消息摘要算法稱為MD,很快進入下一版MD2,但很脆弱。RonRivest開始開發MD3,結果失敗了(因此沒有發布)。后來,RonRivest開發了MD4,但很快發現其還是不理想,因此最終推出了MD5。

MD2簡介Rivest在1989年開發出MD2算法。在這個算法中,首先對信息進行數據補位,使信息的字節長度是16的倍數。然后,以一個16位的檢驗和追加到信息末尾,并且根據這個新產生的信息計算出散列值。后來,Rogier和Chauvaud發現如果忽略了檢驗將和MD2產生沖突。MD2算法加密后結果是唯一的。

MD4簡介Rivest在1990年又開發出MD4算法。Denboer和Bosselaers以及其他人很快的發現了攻擊MD4版本中第一步和第三步的漏洞。Dobbertin向大家演示了如何利用一部普通的個人電腦在幾分鐘內找到MD4完整版本中的沖突。毫無疑問,MD4就此被淘汰掉了。盡管MD4算法在安全上有個這么大的漏洞,但它對在其后才被開發出來的好幾種信息安全加密算法的出現卻有著不可忽視的引導作用。MD5簡介1991年,Rivest開發出技術上更為趨近成熟的md5算法。它在MD4的基礎上增加了“安全-帶子”(safety-belts)的概念。雖然MD5比MD4復雜度大一些,但卻更為安全。這個算法很明顯的由四個和MD4設計有少許不同的步驟組成在MD5算法中,信息-摘要的大小和填充的必要條件與MD4完全相同。Denboer和Bosselaers曾發現MD5算法中的假沖突(pseudo-collisions),但除此之外就沒有其他被發現的加密后結果了。

MD5算法的目的在驗證數據完整性方面是安全的:找到兩個具有相同摘要的消息在計算上是不可行的(不是理論上不可行)。直接安全性:算法不基于任何安全性假設,例如因子分解難度。算法有效率高:算法基于32位的簡單操作,適于高速軟件實現。算法簡單:算法中沒有大型數據結構和復雜的程序。基本概述MD5以512位分組來處理輸入的信息,且每一分組又被劃分為16個32位子分組經過了一系列的處理后,算法的輸出由四個32位分組組成,將這四個32位分組連接后將生成一個128位消息摘要。

每組:512

128,位數是原來的1/4,不是指所有信息的長度,是指每組的512位被縮減到原來的1/4,原消息額可以任意長。MD5工作的第1步:填充MD5的第1步是在原消息中增加填充位,目的是使原消息長度等于一個值,即比512的倍數少64位(64位留下來放原消息的長度)例如,如果原消息長度為1000位,則要填充多少位?512*3-64-1000=472MD5工作的第1步:填充填充對是由一個1和多個0組成的位串。注意填充總是增加,即使消息長度已經是比512的倍數少64。因此,如果消息長度已經是448,則要填充512位,使長度變成960位。因此,填充長度為1——512的值。填充過程第2步:添加長度增加填充位后,下一步要計算消息原長,這個消息原長表示為64位值,添加到加進填充后的消息末尾。先計算消息長度,不包括填充位(即增加填充位前的長度)。例如,如果原消息為1000位,則填充472位,但長度為1000,而不是1472。第2步:添加長度注意:如果消息長度超過264位(即64位無法表示,因為消息太長),則只用長度的低64位,即等于計算lengthmod264。我們看到,這時消息長度為512的倍數。第2步:添加長度第3步:將輸入分成512位的塊第4步:初始化鏈接變量A,B,C,D都是32位的鏈接變量(ChainingVariable),實際是常量, A=0x01234567, B=0x89abcdef, C=0xfedcba98, D=0x76543210。第5步:處理塊預處理結束后,開始實際的計算,對消息中的每個512位塊計算4輪,在每一輪中每個小塊按不同的順序參與運算4輪的第一步進行不同的P處理,其他步驟相同。第5步:處理塊1、將四個鏈接變量復制到四個變量中使a=A,b=B,c=C,d=D,實際上,這個算法將a、b、c、d組合成128位寄存器(abcd),寄存器(abcd)在實際算法運算中保存中間結果和最終結果。第5步:處理塊2、將當前512位塊分解為16個子塊,每個子塊為32位3、四輪的每一輪有16次迭代(共64次迭代),每一次迭代處理一個塊中的16個子塊。第5步:處理塊每一輪(16次迭代)的輸入如下:(a)16個子塊(32位)M[0],M[1],…,M[15]

(b)變量a,b,c,d(每個32位)(c)常量t(16/64個,每個32位)表示為t[k],其中k為1~64。由于有四輪,因此每一輪用64個t值中的16個(d)S(循環左移S位)常量數組t的構成常量數組t的構成是:t[i]=int(232xabs(sin(i)))=int(4294967296

xabs(sin(i)))為32位整型數。函數sin(i)中i取弧度。其作用是隨機化32位整型量,消除輸入數據的規律性。每一輪的輸入第1輪的輸入內容變量a、b、c、d參加16個子塊的運算的順序按子塊序號的遞增順序參加,即:M[1]、M[2]、……M[16]64個常量數組元素的前16個元素參加運算,即:t[1]、t[2]、……t[16]第1輪的輸入內容每一輪的每次運算結果循環左移S位,S在不斷變化,分別是7、12、17、22,重復四次,一共是16次。每一次新的操作前a、b、c、d循環右移一位見P66,表3-9第1輪輸入的內容第2輪的輸入內容變量a、b、c、d參加16個子塊參加的運算的順序按近似遞增等差數列參加,公差為5,下標為:1,6,11,0,5,10,15,4,9,14,3,8,13,2,7,1264個常量數組元素的第2組16個元素參加運算,即:t[17]、t[18]、……t[32]第2輪的輸入內容第二輪的每次運算結果循環左移S位,S在不斷變化,分別是5、9、14、20,重復四次,一共是16次。每一次新的操作前a、b、c、d循環右移一位見P67,表3-10第2輪的輸入內容第3輪的輸入內容變量a、b、c、d參加16個子塊參加的運算的順序按近似遞增等差數列參加,公差為3,下標為:5,8,11,14,1,4,7,10,13,0,3,6,9,12,15,264個常量數組元素的第三組16個元素參加運算,即:t[33]、t[34]、……t[48]第3輪的輸入內容每一輪的每次運算結果循環左移S位,S在不斷變化,分別是4、11、16、23,重復四次,一共是16次。每一次新的操作前a、b、c、d循環右移一位見P68,表3-11第3輪的輸入內容第4輪的輸入內容變量a、b、c、d參加16個子塊參加,運算的順序按近似遞增等差數列參加,公差為7,下標為:0,7,14,5,12,3,10,1,8,15,6,13,4,11,2,964個常量數組元素的第四組16個元素參加運算,即:t[49]、t[50]、……t[64]第4輪的輸入內容每一輪的每次運算結果循環左移S位,S在不斷變化,分別是6、10、15、21,重復四次,一共是16次。每一次新的操作前a、b、c、d循環右移一位見P69,表3-12第4輪的輸入內容每一輪的操作(壓縮操作)(1)處理P首先處理b、c、d,這個處理P在四輪中不同。(32位)(2)變量a加進處理P的輸出(即寄存器abcd)。(3)消息子塊M[i]加進第2步輸出。(4)常量t[k]加進第3步輸出。每一輪的操作(壓縮操作)(5)第4步的輸出(即寄存器abcd內容)循環左移S位(S值不斷改變)。(6)變量b加進第5步輸出(即寄存器abcd)。(7)第6步的輸出(即寄存器abcd內容)賦值給變量a(8)第7步的輸出成為下一步的新abcd。(128位)(9)新一輪迭代之前,abcd循環右移一位每一輪的操作處理P輪次處理P1(bANDc)OR(NOTb)AND(d))2(bANDd)OR(cAND(NOTd))3bXORcXORd4cXOR(bOR(NOTd))MD5算法評價該機制將要輸入的信息分割成等長的512的塊,每一塊計算出自己的摘要,并將每塊的摘要參與到下一塊摘要的計算中,這種鏈接模式使最后一塊的摘要(整個消息的摘要)跟原信息的每一塊都關聯,思路與CBC思路類似。MD5滿足的要求在驗證數據完整性方面是安全的算法效率高算法簡單MD5算法的核心處理是重復進行位邏輯運算,使得最終輸出的摘要中每一位與輸入消息中所有位相關,因此達到很好的混淆效果,具有雪崩現象。MD5的破解在2004年8月17日美國加州圣巴巴拉召開的國際密碼學會議(Crypto’2004)上,來自中國山東大學的王小云教授做了破解MD5算法的報告。國內有些媒體甚至認為這一破解會導致數字簽名安全大廈的轟然倒塌。MD5的破解一個安全散列算法的安全性是基于這樣的假設:知道一個信息

溫馨提示

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

評論

0/150

提交評論