版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
網(wǎng)絡(luò)信息安全第二章第1頁,共68頁,2023年,2月20日,星期六2.1密碼技術(shù)的基本概念采用密碼方法可以隱藏和保護需要保密的信息,使未授權(quán)者不能獲得該信息。加密技術(shù)是對傳輸過程中的數(shù)據(jù)進行保護的重要方法,也是對存儲在媒體上的數(shù)據(jù)內(nèi)容加以保護的一種有效手段。加密已經(jīng)成為實現(xiàn)網(wǎng)絡(luò)安全的一種有效又必不可少的技術(shù)手段。傳統(tǒng)加密體制的整個過程如圖2.1所示。此圖是加密/解密的一個基本原理圖,需要加密的信息稱為明文(Plaintext),這個明文信息由一個加密函數(shù)變換成密文(Ciphertext),這個函數(shù)以一個密鑰(Key)作為參數(shù),所以可以用c=E(m,ke)來表達這個加密過程。第2頁,共68頁,2023年,2月20日,星期六解密過程基本類似,用一個解密函數(shù)和解密密鑰對密文進行變換,成為明文,即m=D(c,kd),所以有m=D(E(m,ke),kd)。如果ke=kd,那么這種加密體制稱為單鑰或?qū)ΨQ密碼體制(One[CD*2]KeyorSymmetricCryptosystem)。如果ke≠kd,那么這種加密體制稱為雙鑰或非對稱密碼體制(Two-KeyorAsymmetricCryptosystem)。這是1976年由Diffie和Hellman等人所開創(chuàng)的新體制。密鑰是密碼體制安全的關(guān)鍵,它的產(chǎn)生和管理是密碼技術(shù)中的重要研究課題。第3頁,共68頁,2023年,2月20日,星期六圖2.1傳統(tǒng)加密體制的基本過程第4頁,共68頁,2023年,2月20日,星期六一般加密/解密的函數(shù)(算法)是公開的,一個算法的強度(被稱為破解的難度)除了依賴于算法本身以外,還往往與密鑰長度有關(guān)。通常密鑰越長,強度越高,這是因為密鑰越長,被猜出的可能性越低。所以,保密性在于一個強度高的算法加上一個長度長的密鑰。第5頁,共68頁,2023年,2月20日,星期六2.2古典加密技術(shù)2.2.1置換密碼置換密碼亦稱換位密碼。置換只不過是一個簡單的換位。每個置換都可以用一個置換矩陣來Ek表示。每個置換都有一個與之對應(yīng)的逆置換Dk。置換密碼的特點是僅有一個發(fā)送方和接收方知道的加密置換(用于加密)及對應(yīng)的逆置換(用于解密)。它是對明文L長字母組中的字母位置進行重新排列,而每個字母本身并不改變。第6頁,共68頁,2023年,2月20日,星期六令明文m=m1,m2,…,mL。令置換矩陣所決定的置換為π,則加密置換c=Ek(m)=(c1,c2,…,cL)=mπ(1),mπ(2),…,mπ(L)
解密置換例,置換密碼。第7頁,共68頁,2023年,2月20日,星期六最后一段長不足5,加添一個字母x。將各段的字母序號按下述置換矩陣進行換位:得到密文如下:STIEHEMSLPSTSOPEITLBSRPNATOIISIOPCNSHXRE第8頁,共68頁,2023年,2月20日,星期六利用下述置換矩陣:可將密文恢復(fù)為明文。
L=5時可能的置換矩陣總數(shù)為5!=120。一般為L!個。可以證明,在給定L下所有的置換矩陣構(gòu)成一個L!對稱群。第9頁,共68頁,2023年,2月20日,星期六2.2.2代換密碼令Γ表示明文字母表,內(nèi)有q個“字母”或“字符”。設(shè)其順序號為:0,1,…,q-1,可以將Γ映射為一個整數(shù)集Zq={0,1,2,…,q-1},在加密時常將明文信息劃分為長為L的信息單元,稱為明文組。以m表示,如m=(m0,m1,…,mL),mi∈Zq第10頁,共68頁,2023年,2月20日,星期六令Γ′表示明文字母表,內(nèi)有q′個“字母”或“字符”。設(shè)其順序號為:0,1,:,q′-1,可以將?!溆成錇橐粋€整數(shù)集Z-q′={0,1,2,:,q′-1},密文組為c=(c1,c2,…,cL′-1),ci∈Zq′,代換密碼的加密變換是由明文空間到密文空間的映射。f:m→c,m∈Γ,c∈?!浼俣ê瘮?shù)f是一對一的映射,那么,給定密文c,有且僅有一個對應(yīng)的明文組m,即對于f存在逆映射f-1,使f-1(c)=f-1f(m)=m加密變換通常是在密鑰控制下進行的,即c=f(m,k)=Ek(m)
第11頁,共68頁,2023年,2月20日,星期六
1.單表代換密碼單表代換密碼是對明文的所有字母都用同一個固定的明文字母表到密文字母表的映射,即f:Zq→Zq若明文為m=m0,m1,……,則相應(yīng)的密文為c=c0,c1,….=f(m0),f(m1),…第12頁,共68頁,2023年,2月20日,星期六1)位移代換密碼位移代換密碼是最簡單的一種代換密碼,其加密變換為Ek(i)=(i+k)≡jmodq0≤i,j<q,0≤k<q密鑰空間元素個數(shù)為q,其中有一恒等變換,k=0,解密變換為D(j)=Eq-k(j)≡j+q-k≡(i+k)-k≡imodq例如,凱撒密碼變換是對英文26個字母進行位移代換的密碼,即將每一字母向前推移k位。若q=26,如選擇密鑰k=5,則有下述變換:明文:abcdefghijklmnopqrstuvwxyz密文:ABCDEFGHIJKLMNOPQRSTUVWXYZ第13頁,共68頁,2023年,2月20日,星期六不同的k將得到不同的密文。于是對于明文:
m=caesarcipherisashiftsubstitution經(jīng)凱撒密碼變換后得到的密文:
c=FDVHDUFLSKHULVDVKLIWVXEVWLWXWLRQ反向利用同一個對應(yīng)表,就可以很容易地從密文:
c=E(m)=FDVHDUFLSKHULVDVKLIWVXEVWLWXWLRQ中恢復(fù)出原來的明文:
m=caesarcipherisashiftsubstitution第14頁,共68頁,2023年,2月20日,星期六2)乘數(shù)密碼乘數(shù)密碼的加密變換為Ek(i)=ik≡jmodq0≤j<q這種密碼也稱采樣密碼,是將明文字母表按序號每隔k位取出一個字母排列而成密文(字母表首尾相連)。顯然,當(k,q)=1,即k與q互素時才是一一對應(yīng)的。若q為素數(shù),則有q-2個可用密鑰。第15頁,共68頁,2023年,2月20日,星期六例如,英文字母表q=26,選k=9,則由明文密文字母對應(yīng)表明文:abcdefghijklmnopqrstuvwxyz密文:AJSBKTCLUDMVENWFOXGPYHQZIR于是對明文:Multiplicativercipher有密文:EYVPUFVUSAPUHKSUFLKX。第16頁,共68頁,2023年,2月20日,星期六3)仿射密碼將移位密碼和乘數(shù)密碼進行組合就可以得到更多的選擇方式獲得密鑰。按Ek(i)=ik1+k0≡jmodqk1,k0∈Zq其中,(k1,q)=1,以[k1,k0]表示密鑰。當k0=0時就得到乘數(shù)密碼,當k1=1時就得到位移密碼,q=26時可能的密鑰數(shù)為26×12-1=311個。第17頁,共68頁,2023年,2月20日,星期六
2.多表代換密碼多表代換密碼是一系列(兩個以上)代換表依次對明文信息的字母進行代換的加密方法。令明文字母表為Zq,令π=(π1,π2,…)為代換序列,明文字母序列為m=m1,m2,…,則相應(yīng)的密文字母序列為c=Ek(m)=π(m)=π1(m),π2(m),…,若π為非周期的無限序列,則相應(yīng)的密碼為非周期多表代換密碼,否則,為周期多表代換密碼。維吉尼亞是法國的密碼專家,以他的名字命名的維吉尼亞密碼加密算法是多表密碼的典型代表。方法如下:第18頁,共68頁,2023年,2月20日,星期六設(shè)密鑰k=k1,k2,…,kn,明文m=m1,m2,…,mn,加密變換為Ek(m)=c1,c2,…,cn
其中ci≡mi+kimodq
i=1,2,…,n
例如,令q=26,明文m=polyalphabeticcipher,k=RADIO,即周期為5。首先將m分解成長為5的序列:polyalphabeticcipher每一段用密鑰k=RADIO加密得密文:
c=GOOGOCPKTPNTLKQZPKMF第19頁,共68頁,2023年,2月20日,星期六表2.1是維吉尼亞代換方陣,利用它可進行加密和解密。利用密鑰k=RADIO對明文polya加密得GOOGO,第一個G是在r行p列上,第二個O是在a行o列上,第三個O是在d行l(wèi)列上,以此類推。解密時p是r行含G的列,同理o是a行含O的列。以此可以推出全部密文,從而恢復(fù)明文。第20頁,共68頁,2023年,2月20日,星期六表2.1維吉尼亞密碼代換方陣第21頁,共68頁,2023年,2月20日,星期六表2.1維吉尼亞密碼代換方陣第22頁,共68頁,2023年,2月20日,星期六2.3現(xiàn)代加密技術(shù)
1.對稱加密技術(shù)對稱密碼技術(shù)包括任何加密形式,其中同一個密鑰既用于加密又用于解密所涉及的文本,被稱為對稱密碼,這點也是對非對稱密碼而言的。下面介紹幾種著名的對稱密碼技術(shù)。1)分組密碼分組密碼將定長的明文塊轉(zhuǎn)換成等長的密文,這一過程是在密鑰的控制之下。使用逆向變換和同一個密鑰來實現(xiàn)解密。對于當前的許多分組密碼,分組大小是64位,但這種長度可能會增加。第23頁,共68頁,2023年,2月20日,星期六明文信息通常要比特定的分組大小長得多,而且使用不同的技術(shù)或操作方式。這樣的方式示例有:電子編碼本(ECB)、密碼分組鏈接(CBC)或密碼反饋(CFB)。ECB使用同一個密鑰簡單地將每個明文塊一個接一個地進行加密;在CBC方式中,每個明文塊在加密前先與前一密文塊進行“異或”運算,從而增加了復(fù)雜程度,可以使某些攻擊更難以實施。“輸出反饋”方式(OFB)類似CBC方式,但是進行“異或”的量是獨立生成的。目前CBC受到廣泛使用,例如在DES(qv)實現(xiàn)中。第24頁,共68頁,2023年,2月20日,星期六迭代的分組密碼是那些在加密過程有多次循環(huán)的密碼,因此提高了安全性。在每個循環(huán)中,可以通過使用特殊的函數(shù)從初始密鑰派生出的子密鑰來應(yīng)用適當?shù)淖儞Q。該附加的計算需求必然會影響加密的速度,因此在安全性需要和執(zhí)行速度之間存在著一種平衡。天下沒有免費的午餐,密碼術(shù)也是如此;與其它地方一樣,應(yīng)用適當方法的技巧中有一部分是源于對需要進行的權(quán)衡以及它們與需求平衡的關(guān)系如何的理解。分組密碼包括DES、IDEA、SAFER、Blowfish和Skipjack最后一個是“美國國家安全局(NSA,USNationalSecurityAgency)”限制器芯片中使用的算法。第25頁,共68頁,2023年,2月20日,星期六下面介紹具體的分組密碼的實現(xiàn)。(1)DES數(shù)據(jù)加密算法(DEA,DataEncryptionAlgorithm)的數(shù)據(jù)加密標準(DES,DataEncryptionStandard)是規(guī)范的描述,它出自IBM的研究工作,并在1997年被美國政府正式采納。它很可能是使用最廣泛的密鑰系統(tǒng),特別是在保護金融數(shù)據(jù)的安全中,最初開發(fā)的DES是嵌入硬件中的。通常,自動取款機(ATM,AutomatedTellerMachine)都使用DES。第26頁,共68頁,2023年,2月20日,星期六DES使用一個56位的密鑰以及附加的8位奇偶校驗位,產(chǎn)生最大64位的分組大小。這是一個迭代的分組密碼,使用稱為Feistel的技術(shù),其中將加密的文本塊分成兩半。使用子密鑰對其中一半應(yīng)用循環(huán)功能,然后將輸出與另一半進行“異或”運算;接著交換這兩半,這一過程會繼續(xù)下去,但最后一個循環(huán)不交換。DES使用16個循環(huán)。第27頁,共68頁,2023年,2月20日,星期六設(shè)明文m是0和1組成的長度為64bit的符號串,密鑰k也是64bit的0、1符號串,即m=m1,m2,…,m64(mi=0或1)k=k1,k2,…,k64(ki=0或1)其中,密鑰k只有56bit有效,k8,k16,k24,…,k64是奇偶校驗位,在算法中不起作用。加密過程為DES(m)=IP-1。T16。T15…T2。T1。IP(m)IP是初始置換,IP-1是它的逆置換。第28頁,共68頁,2023年,2月20日,星期六表2.2IP的初始置換及逆置換第29頁,共68頁,2023年,2月20日,星期六①DES的加密過程。將DES的加密過程用圖2.2表示。初始化換位IP,是將輸入的二進制明文塊T變換成T0=IP(T),然后T0經(jīng)過16次函數(shù)f的迭代,最后通過逆初始換位IP-1得到64位的二進制密文輸出。兩次相鄰的迭代之間的關(guān)系是Li=Ri-1Ri=Li-1⊕f(Ri-1,ki)其中,⊕表示按位做不進位的加法運算,即1⊕0=0⊕1=1,0⊕0=1⊕1=0,ki表示48位的子密鑰。第30頁,共68頁,2023年,2月20日,星期六圖2.2DES加密過程第31頁,共68頁,2023年,2月20日,星期六②函數(shù)f(Ri-1,ki)的結(jié)構(gòu)如圖2.3所示。圖2.3中E是位選擇表(見表2.3),它將Ri-1擴展成48位二進制塊E(Ri=1)然后對E(Ri=1)和ki進行操作,并將結(jié)果分成8個6bit二進制塊B1,B2,…,B8,此處B1,B2,…,B8=ki⊕E(Ri-1),每個6位子塊Bi都是選擇(代換)函數(shù)Si的輸入,其輸出是一個4位的二進制塊,把這些子塊合并成32位二進制塊后,用置換表P(如表2.4)將它變成P(S1(B1),S2(B2),…,S8(B8))這就是函數(shù)f(Ri-1,ki)的輸出。每個Si將一個6位塊Bi=b1,b2,…,b6轉(zhuǎn)換成一個4位塊(如表2.5),與b1,b6對應(yīng)的整數(shù)確定表中的行號,與b2,b3,b4,b5相對應(yīng)的整數(shù)確定表中的列號,Si(Bi)的值就是位于該行和該列的整數(shù)的4位二進制表示形式。第32頁,共68頁,2023年,2月20日,星期六圖2.3DES中間變換過程第33頁,共68頁,2023年,2月20日,星期六表2.3位選擇表第34頁,共68頁,2023年,2月20日,星期六表2.4換位表第35頁,共68頁,2023年,2月20日,星期六表2.5選擇(替代)函數(shù)S第36頁,共68頁,2023年,2月20日,星期六表2.5選擇(替代)函數(shù)S第37頁,共68頁,2023年,2月20日,星期六表2.5選擇(替代)函數(shù)S第38頁,共68頁,2023年,2月20日,星期六密鑰ki是由初始密鑰推導(dǎo)得到的,初始密鑰k是一個64位的二進制塊,其中8位是奇偶校驗位,分別位于第8、16、……、64位。子密鑰換位函數(shù)PC-1把這些奇偶校驗去掉,并把剩下的56位進行換位,如表(2.3)。換位后的結(jié)果PC-1(k)被分成兩半C和D,各有28位,令Ci和Di分別表示推導(dǎo)ki時所用的C和D的值,變換公式如下Ci=LS(Ci-1)Di=LS(Di-1)第39頁,共68頁,2023年,2月20日,星期六式中,LS是循環(huán)左移位變換,其中LS1,LS2,LS9,LS16是循環(huán)左移一位變換,其余的LSi是循環(huán)左移兩位變換。C0,D0是C和D的初始值。最后,通過子密鑰變換函數(shù)PC2(參見表2.5)得出ki=PC-2(Ci,Di)解密算法和加密算法相同,但是它使用的子密鑰順序是相反的。第一次是用k16,第2次迭代用k15,最后一次用k1,這是因為最終換位IP-1是初始換位IP的逆變換且Ri-1=LiLi-1=Ri⊕f(Li,ki)DES代換使得輸出成為輸入的非線性函數(shù),換位擴展了輸出對輸入的依賴性。第40頁,共68頁,2023年,2月20日,星期六(2)IDEA國際數(shù)據(jù)加密算法IDEA(InternationalDataEncryptionAlgorithm)是由兩位研究員XuejiaLai和JamesL.Massey在蘇黎世的ETH公司開發(fā)的,一家瑞士Ascomsystec公司擁有專利權(quán)。IDEA是作為迭代的分組密碼實現(xiàn)的,使用128位的密鑰和8個循環(huán)。這比DES提供了更多的安全性,但是在選擇用于IDEA的密鑰時,應(yīng)該排除那些稱為“弱密鑰”的密鑰。DES只有四個弱密鑰和12個次弱密鑰,而IDEA中的弱密鑰數(shù)相當可觀,有251個。但是,如果密鑰的總數(shù)非常大,達到2128個,那么仍有277個密鑰可供選擇。第41頁,共68頁,2023年,2月20日,星期六2)序列密碼與分組密碼相比,序列密碼是非??焖俚?,盡管某些方式下工作的一些分組密碼(如CFB或OFB中的DES)可以與序列密碼一樣有效地運作,但序列密碼作用于由若干位組成的一些小型組,通常使用稱為密鑰流的一個位序列作為密鑰對它們逐位應(yīng)用“異或”運算。有些序列密碼基于一種稱做“線性反饋移位寄存器(LFSR,LinearFeedbackShiftRegister)”的機制,該機制生成一個二進制位序列。第42頁,共68頁,2023年,2月20日,星期六
2.非對稱密碼非對稱密碼術(shù)相對于對稱密碼術(shù)的最大區(qū)別就在于它的加密和解密不是使用同一個密鑰和算法。在對稱密碼術(shù)中加密和解密都需要共享一個密鑰,這可能是使用密碼術(shù)的對稱密碼體制的主要弱點。在非對稱密碼術(shù)或公鑰密碼術(shù)中沒有這樣的問題。使用在數(shù)學(xué)上相關(guān)的兩個密鑰,并通過用其中一個密鑰加密的明文只能用另一個密鑰進行解密的方法來使用它們。通常,其中一個密鑰由個人秘密持有,因此幾乎沒有必要共享密鑰,從而避免了對安全性的威脅。第二個密鑰,即所謂的公鑰,需要讓盡可能多的人知道。第43頁,共68頁,2023年,2月20日,星期六非對稱密碼體制提供的安全性取決于難以解決的數(shù)學(xué)問題。例如,將大整數(shù)因式分解成質(zhì)數(shù)。公鑰系統(tǒng)使用這樣兩個密鑰,一個是公鑰,用來加密文本;另一個是安全持有的私鑰,只能用此私鑰來解密。也可以使用私鑰加密某些信息,然后用公鑰來解密,而公鑰是大家都知道的,這樣拿此公鑰能夠解密的人就知道此消息是來自持有私鑰的人,從而達到了認證作用。對于認證的應(yīng)用方式我們下面會給出幾種常見的非對稱密碼加密算法。第44頁,共68頁,2023年,2月20日,星期六1)Diffie-HellmanDiffie-Hellman協(xié)議允許兩個用戶通過某個不安全的交換機制來共享密鑰,而不需要首先就某些秘密值達成協(xié)議。它有兩個系統(tǒng)參數(shù),每個參數(shù)都是公開的,其中一個是質(zhì)數(shù)p,另一個通常稱為生成元,是比p小的整數(shù);這一生成元經(jīng)過一定次數(shù)冪運算之后再對p取模,可以生成從1到p-1之間任何一個數(shù)。第45頁,共68頁,2023年,2月20日,星期六在實際情況下,可能涉及以下過程:首先,每個人生成一個隨機的私有值,即a和b。然后,每個人使用公共參數(shù)p和g以及它們特定私有值a或b通過一般公式gnmodp(其中n是相應(yīng)的a或b)來派生公共值。然后,他們交換這些公共值。最后,一個人計算kab=(gb)amodp,另一個人計算kba=(ga)bmodp。當kab=kba=k時,即是共享的秘鑰。第46頁,共68頁,2023年,2月20日,星期六這一密鑰交換協(xié)議容易受到偽裝攻擊,即所謂中間人(middleperson)攻擊。如果A和B正在尋求交換密鑰,則第三個人C可能介入每次交換。A認為初始的公共值正在發(fā)送到B,但事實上,它被C攔截,然后向B傳送了一個別人的公共值,然后B給A的消息也遭受同樣的攻擊,而B以為它給A的消息直接送到了A。這導(dǎo)致A與C就一個共享秘鑰達成協(xié)議而B與C就另一個共享秘鑰達成協(xié)議。然后,C可以在中間攔截從A到B的消息,并使用A/C密鑰解密,修改它們,再使用B/C密鑰轉(zhuǎn)發(fā)到B,B到A的過程與此相反,而A和B都沒有意識到發(fā)生了什么。第47頁,共68頁,2023年,2月20日,星期六為了防止這種情況,1992年Diffie和其他人一起開發(fā)了經(jīng)認證的Diffie-Hellman密鑰協(xié)議。在這個協(xié)議中,必須使用現(xiàn)有的私鑰/公鑰對以及與公鑰元素的相關(guān)數(shù)字證書,由數(shù)字證書驗證交換的初始公共值。第48頁,共68頁,2023年,2月20日,星期六2)RSARSA使用很大的質(zhì)數(shù)來構(gòu)造密鑰對。每個密鑰對共享兩個質(zhì)數(shù)的乘積,即模數(shù),但是每個密鑰對還具有特定的指數(shù)。RSA實驗室對RSA密碼體制的原理做了如下說明:“用兩個很大的質(zhì)數(shù)p和q,計算它們的乘積n=pq,n是模數(shù)。選擇一個比n小的數(shù)e,它與(p-1)(q-1)互為質(zhì)數(shù),即除了1以外,e和(p-1)(q-1)沒有其它的公因數(shù)。找到另一個數(shù)d,使(ed-1)能被(p-1)(q-1)整除。值e和d分別稱為公共指數(shù)和私有指數(shù)。公鑰是這一對數(shù)(n,e);私鑰是這一對數(shù)(n,d)。”第49頁,共68頁,2023年,2月20日,星期六知道公鑰可以得到獲取私鑰的途徑,但是這取決于將模數(shù)因式分解成組成它的質(zhì)數(shù),這是很困難的,因為通過選擇足夠長的密鑰,可以使其基本上不可能實現(xiàn)。需要考慮的是模數(shù)的長度。RSA實驗室目前建議:對于普通公司使用的密鑰大小為1024位,對于極其重要的資料,使用雙倍大小,即2048位。對于日常使用,768位的密鑰長度已經(jīng)足夠,因為當前技術(shù)無法破解它。第50頁,共68頁,2023年,2月20日,星期六3.散列函數(shù)散列函數(shù)與公鑰密碼體制不同,但因為散列函數(shù)通常用于消息摘要,因此在這里將它們視為認證和數(shù)字簽名的整個系統(tǒng)的一部分也是適宜的。1)MD4和MD5MD2、MD4和MD5是由RonRivest開發(fā)的用于數(shù)字簽名應(yīng)用程序的消息——摘要算法,在數(shù)字簽名應(yīng)用程序中將消息壓縮成摘要,然后由私鑰加密。MD2是為8位計算機系統(tǒng)設(shè)計的,而MD4和MD5是為32位計算機系統(tǒng)開發(fā)的。MD4是在1990開發(fā)的,現(xiàn)在它被認為是不安全的。第51頁,共68頁,2023年,2月20日,星期六RSA實驗室將MD5描述為“系有安全帶的MD4”,它雖然比MD4慢,但卻被認為是安全的。與使用MD4時相同,會填補明文消息以確保其位的長度加上448可以被512整除。然后添加表示原始消息長度的64位二進制數(shù),然后使用循環(huán)壓縮函數(shù)在512位塊中處理該消息,每塊都要經(jīng)過四輪各不相同的處理。我們給出MD5的算法描述,對MD5算法簡要的敘述可以為:MD5以512位分組來處理輸入的信息,且每一分組又被劃分為16個32位子分組,經(jīng)過了一系列的處理后,算法的輸出由四個32位分組組成,將這四個32位分組級聯(lián)后將生成一個128位散列值。第52頁,共68頁,2023年,2月20日,星期六在MD5算法中,首先需要對信息進行填充,使其字節(jié)長度對512求余的結(jié)果等于448。因此,信息的字節(jié)長度(bitslength)將被擴展至n×512+448,即n×64+56個字節(jié)(bytes),n為一個正整數(shù)。填充的方法如下,在信息的后面填充一個1和無數(shù)個0,直到滿足上面的條件時才停止用0對信息的填充。然后,在這個結(jié)果后面附加一個以64位二進制數(shù)表示的填充前信息長度。經(jīng)過這兩步的處理,現(xiàn)在的信息字節(jié)長度為n×512+448+64=(n+1)×512,即長度恰好是512的整數(shù)倍。這樣做的原因是為滿足后面處理中對信息長度的要求。第53頁,共68頁,2023年,2月20日,星期六MD5中有四個32位被稱為鏈接變量(ChainingVariable)的整數(shù)參數(shù),它們分別為:a=0x01234567,b=0x89abcdef,c=0xfedcba98,d=0x76543210。當設(shè)置好這四個鏈接變量后,就開始進入算法的四輪循環(huán)運算。循環(huán)的次數(shù)是信息中512位信息分組的數(shù)目。將上面四個鏈接變量復(fù)制到另外四個變量中:a到a,b到b,c到c,d到d。主循環(huán)有四輪(MD4只有三輪),每輪循環(huán)都很相似。第一輪進行16次操作,每次操作對a、b、c和d中的其中三個作一次非線性函數(shù)運算,然后將所得結(jié)果加上第四個變量,文本的一個子分組和一個常數(shù)。再將所得結(jié)果向右環(huán)移一個不定的數(shù),并加上a、b、c或d中之一。最后用該結(jié)果取代a、b、c或d中之一。以下是每次操作中用到的四個非線性函數(shù)(每輪一個)。第54頁,共68頁,2023年,2月20日,星期六
f(x,y,z)=(x&y)|((~x)&z);
g(x,y,z)=(x&z)|(y&(-z));
h(x,y,z)=x⊕y⊕z;
i(x,y,z)=y⊕(x|(~z))式中,&是與操作,|是或操作,~是非操作,⊕是異或操作。第55頁,共68頁,2023年,2月20日,星期六這四個函數(shù)的說明:如果x、y和z的對應(yīng)位是獨立和均勻的,那么結(jié)果的每一位也應(yīng)是獨立和均勻的。f是一個逐位運算的函數(shù)。即,如果x為1,那么選擇y位上的數(shù)據(jù),否則選擇z位上的數(shù)據(jù)。函數(shù)h是逐位奇偶操作符,壓縮過程如圖2.4所示。
第56頁,共68頁,2023年,2月20日,星期六圖2.4第57頁,共68頁,2023年,2月20日,星期六假設(shè)Tj表示消息的第j個子分組(從0~15),F(xiàn)(a,b,c,d,Tj,s,X[i])表示a=b+((a+(f(b,c,d)+Tj+X[i])G(a,b,c,d,Tj,s,X[i])表示a=b+((a+(g(b,c,d)+Tj+X[i])H(a,b,c,d,Tj,s,X[i])表示a=b+((a+(h(b,c,d)+Tj+X[i])I(a,b,c,d,Tj,s,X[i])表示a=b+((a+(i(b,c,d)+Tj+X[i])第58頁,共68頁,2023年,2月20日,星期六這四輪(64步)是:第一輪F(a,b,c,d,T0,7,0xd76aa478)F(d,a,b,c,T1,12,0xe8c7b756)F(c,d,a,b,T2,17,0x242070db)F(b,c,d,a,T3,22,0xc1bdceee)F(a,b,c,d,T4,7,0xf57c0faf)F(d,a,b,c,T5,12,0x4787c62a)F(c,d,a,b,T6,17,0xa8304613)第59頁,共68頁,2023年,2月20日,星期六F(b,c,d,a,T7,22,0xfd469501)F(a,b,c,d,T8,7,0x698098d8)F(d,a,b,c,T9,12,0x8b44f7af)F(c,d,a,b,T10,17,0xffff5bb1)F(b,c,d,a,T11,22,0x895cd7be)F(a,b,c,d,T12,7,0x6b901122)F(d,a,b,c,T13,12,0xfd987193)F(c,d,a,b,T14,17,0xa679438e)F(b,c,d,a,T15,22,0x49b40821)第60頁,共68頁,2023年,2月20日,星期六第二輪G(a,b,c,d,T1,5,0xf61e2562)G(d,a,b,c,T6,9,0xc040b340)G(c,d,a,b,T11,14,0x265e5a51)G(b,c,d,a,T0,20,0xe9b6c7aa)G(a,b,c,d,T5,5,0xd62f105d)G(d,a,b,c,T10,9,0x02441453)G(c,d,a,b,T15,14,0xd8a1e681)G(b,c,d,a,T4,20,0xe7d3fbc8)第61頁,共68頁,2023年,2月20日,星期六G(a,b,c,d,T9,5,0x21e1cde6)G(d,a,b,c,T14,9,0xc33707d6)G(c,d,a,b,T3,14,0xf4d50d87)G(b,c,d,a,T8,20,0x455a14ed)G(a,b,c,d,T13,5,0xa9e3e905)G(d,a,b,c,T2,9,0xfcefa3f8)G(c,d,a,b,T7,14,0x676f02d9)G(b,c,d,a,T12,20,0x8d2a4c8a)第62頁,共68頁,2023年,2月20日,星期六第三輪H(a,b,c,d,T5,4,0xfffa3942)H(d,a,b,c,T8,11,0x8771f681)H(c,d,a,b,T11,16,0x6d9d6122)H(b,c,d,a,T14,23,0xfde5380c)H(a,b,c,d,T1,4,0xa4beea44)H(d,a,b,c,T4,11,0
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 合作多方股權(quán)轉(zhuǎn)讓合同示例
- 規(guī)范化商用公寓租賃合同樣本
- 供應(yīng)商合作聯(lián)盟服務(wù)合同
- 人才培養(yǎng)與就業(yè)安置合同
- 重點工程項目投資生產(chǎn)合同性協(xié)議
- 國際農(nóng)產(chǎn)品購銷合同
- 租賃合同的終止與賠償
- 醫(yī)療設(shè)施建設(shè)貸款合同集中展示
- 汽車交易合同樣本
- 網(wǎng)店推廣方案范文
- 胎兒性別鑒定報告模板
- 大學(xué)生就業(yè)指導(dǎo)PPT(第2版)全套完整教學(xué)課件
- 家具安裝工培訓(xùn)教案優(yōu)質(zhì)資料
- 湖南大一型抽水蓄能電站施工及質(zhì)量創(chuàng)優(yōu)匯報
- 耳穴療法治療失眠
- 少兒財商教育少兒篇
- GB 1886.114-2015食品安全國家標準食品添加劑紫膠(又名蟲膠)
- 初二上冊期末數(shù)學(xué)試卷含答案
- envi二次開發(fā)素材包-idl培訓(xùn)
- 2022年上海市初中語文課程終結(jié)性評價指南
- 西門子starter軟件簡易使用手冊
評論
0/150
提交評論