




免費(fèi)預(yù)覽已結(jié)束,剩余107頁可下載查看
下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
網(wǎng)絡(luò)安全與管理,第7章數(shù)據(jù)加密技術(shù),知識目標(biāo)掌握數(shù)據(jù)加密的有關(guān)概念、數(shù)據(jù)加密的模型了解傳統(tǒng)的加密技術(shù)掌握現(xiàn)代加密技術(shù)的原理及其分類掌握非對稱加密算法的基本原理掌握報(bào)文鑒別的概念技能目標(biāo)掌握DES算法的基本思想及其加密、解密過程和安全性掌握RSA算法的基本思想及其加密、解密過程了解報(bào)文摘要MD5和安全散列算法了解數(shù)據(jù)加密技術(shù)的應(yīng)用,7.1數(shù)據(jù)加密概述,7.1.1密碼學(xué)的有關(guān)概念,1.消息:消息(message,M)是用語言、文字、數(shù)字、符號、圖像、聲音或其組合等方式記載或傳遞的有意義的內(nèi)容。如果消息被攻擊者竊取,就能夠讀懂其中的含義,所以在密碼學(xué)中,保護(hù)的對象就是消息。2.明文:未經(jīng)過任何偽裝或技術(shù)處理的消息稱為明文(plaintext,P)。3.加密:利用某些方法或技術(shù)對明文進(jìn)行偽裝或隱藏的過程稱為加密(encryption,E)。4.密文:被加密的消息稱為密文(ciphertext,C)。密文看起來是一堆雜亂無章、沒任何意義的數(shù)據(jù)。,7.1.1密碼學(xué)的有關(guān)概念,5.解密:將密文恢復(fù)為原明文的過程或操作稱為解密(decryption,)。解密也稱為脫密,可以看成加密的逆過程。6.加密算法:加密算法(encryptionalgorithm)是將明文消息加密成密文所采用的一組規(guī)則或數(shù)學(xué)函數(shù)。7.解密算法:解密算法(decryptionalgorithm)是將密文消息解密成明文所采用的一組規(guī)則或數(shù)學(xué)函數(shù)。8.密鑰:密鑰(key,K)是進(jìn)行加密或解密操作所需要的秘密參數(shù)或關(guān)鍵信息。如果缺少密鑰,就不能正確地進(jìn)行加密或者解密。在加密算法中,密鑰又分為加密密鑰(加密時(shí)采用的密鑰)和解密密鑰(解密時(shí)采用的密鑰)。,7.1.2加密算法的模型,圖7-1加密算法的一般模型,加密和解密的描述公式,發(fā)送端對數(shù)據(jù)的處理可以用下式描述:接收端對數(shù)據(jù)的處理可以用下式描述:,密碼學(xué)的內(nèi)容,密碼學(xué)包括兩方面密切相關(guān)的內(nèi)容:一方面是密碼編碼學(xué),主要是研究各種加密方案,保護(hù)信息不被敵方或者任何無關(guān)的第三方偵悉;另一方面是密碼分析學(xué),研究攻破一個(gè)加密算法的途徑,恢復(fù)被隱藏的信息的本來面目。這兩個(gè)部分相輔相成,互相促進(jìn),也是矛盾的兩個(gè)方面。,7.1.3傳統(tǒng)的加密技術(shù),在計(jì)算機(jī)出現(xiàn)之前,密碼學(xué)由基于字符的密碼算法構(gòu)成(即針對字符進(jìn)行操作)的。密碼算法主要采用的是替代(substitution)和置換(transposition)這兩種方法,好的密碼算法是結(jié)合這兩種方法,每次進(jìn)行多次運(yùn)算。現(xiàn)代的計(jì)算機(jī)密碼算法要復(fù)雜得多,但基本原理沒有變化,其重要的變化是算法只對位而不是字符進(jìn)行變換。傳統(tǒng)的加密技術(shù)有以下幾種。,1.替代密碼,替代密碼是將明文中的每一個(gè)字符替換成密文中的另一個(gè)字符,接收者對密文進(jìn)行逆替換就恢復(fù)出明文來。在傳統(tǒng)的加密技術(shù)中有3種類型的替代密碼:單表替代密碼、多表替代密碼和多字母替代密碼。,1)單表替代密碼,所謂的單表替代密碼,就是明文中的每一個(gè)字符用相應(yīng)的密文字符代替。著名的“凱撒密碼”就是一種單表替代密碼,也稱為循環(huán)移位密碼。這是一種古老的加密方法,當(dāng)年凱撒大帝行軍打仗時(shí)用這種方法進(jìn)行通信,因此得名。,凱撒密碼加密的原理,凱撒密碼加密的原理是把明文中的每一個(gè)字母都用該字母在字母表中右邊的第個(gè)字母替代(這里k就是加密密鑰),并認(rèn)為Z后邊又是A。例如,假如k為3,其替代表(在這里,為了不出現(xiàn)混淆,明文使用的是小寫字母,密文使用的是大寫字母,在實(shí)際使用中可不作這樣要求)如下:,凱撒密碼舉例,例如,明文為:networksecurity則密文為:QHWZRUNVHFXULWB,如果將26個(gè)字母分別對應(yīng)于整數(shù)025,可得凱撒密碼變換為:加密:解密,一般的凱撒密碼變換,加密:解密:,凱撒密碼的缺點(diǎn),顯然,這種加密算法是不安全的,它非常容易被攻破。首先,簡單的單表替代沒有掩蓋明文不同字母出現(xiàn)的頻率;其次,移位替代的密鑰空間有限,只有26個(gè)密鑰,利用暴力攻擊很容易破解,2)多表替代密碼,大多數(shù)多表替代密碼是周期替代密碼,當(dāng)周期為1時(shí),就是單表替代密碼。多表替代密碼的種類很多,一種常用的多表替代密碼叫Vigenere(維吉尼亞)密碼。它是循環(huán)使用有限個(gè)字母實(shí)現(xiàn)替代的。在Vigenere密碼中,把26個(gè)字母循環(huán)移位,排列在一起,形成一個(gè)2626的方陣表,如下表所示。,Vigenere密碼加密原理,實(shí)際使用時(shí),往往把某個(gè)容易記憶的詞或詞組當(dāng)做密鑰。給一個(gè)信息加密時(shí),只要把密鑰反復(fù)寫在明文下方,以明文字母選擇列,以密鑰字母選擇行,兩者的交點(diǎn)就是加密生成的密文字母。例如,以HOW為密鑰,明文為ILOVEYOUP=ILOVEYOUK=HOWHOWHO加密后的密文Ek(P)=PZKCSUVI解密時(shí),以密鑰字母選擇行,從中找到密文字母,密文字母所在列的列名即為明文字母。,3)多字母替代密碼,多字母替代密碼是每次對多于一個(gè)的字母進(jìn)行替代的加密方法。例如,將明文中的字符每3個(gè)分為一組,當(dāng)出現(xiàn)AAA時(shí)用RTQ替代,當(dāng)出現(xiàn)AAB時(shí)用SLL替代,等等。在進(jìn)行解密時(shí),再按照這個(gè)對應(yīng)關(guān)系進(jìn)行逆替換就可以恢復(fù)出原來的明文。多字母替代密碼的優(yōu)點(diǎn)在于將字母的出現(xiàn)頻率隱蔽或者均勻化,從而利于抗統(tǒng)計(jì)分析。多字母替代密碼是在19世紀(jì)中期發(fā)明的,在第一次世界大戰(zhàn)中,英國人就采用了這種對成組字母加密的密碼。,2.置換密碼,置換密碼也稱為換位密碼,是根據(jù)一定的規(guī)則重新排列明文字母的順序,使之成為密文。常用的置換密碼有列置換密碼和周期置換密碼兩種。,1)列置換密碼,列置換密碼是將明文分割成n列的分組形式(即每行n個(gè)字符),按照每一列從上向下產(chǎn)生密文。例如,將明文WHATYOUCANLEARNFROMTHISBOOK分割成為5列的分組(這里5就成為密鑰k),最后不全的組可以用不常使用的字符填滿,如右所示:,按照每一列,從上向下,就可以得到密文:WOLFHOHUERIKACAOSXTARMBXYNNTOX,這里的密鑰是數(shù)字5。,2)周期置換密碼,周期置換密碼是把明文中的字母按照給定的順序排在一個(gè)矩陣中,然后用另一種順序選出矩陣中的字母來產(chǎn)生明文。例如,將上例中的明文按行排在一個(gè)56的矩陣中。給定一個(gè)置換,密鑰為24513,即按第二列,第四列,第五列,第一列,第三列的次序排列,可得到如右的矩陣:,然后按每一行,從左向右讀出,即可得到密文:HTYWAUANOCERNLARMTFOIBOHSKXXOX。,7.1.4現(xiàn)代加密技術(shù),在傳統(tǒng)的加密技術(shù)中,算法的安全性主要是基于算法的保密性,一旦算法被泄露,很容易就被破解。這種算法稱為受限制的算法。在現(xiàn)代密碼學(xué)中,由于加密技術(shù)的普遍應(yīng)用,不可能為每一個(gè)應(yīng)用都開發(fā)一個(gè)成熟、有效的加密算法,因此算法的安全性就不能基于算法的保密性,而要基于密鑰的保密性。也就是說,只要密鑰不公開,即使算法公開并被分析,不知道密鑰的人也無法理解加密過的消息?,F(xiàn)代加密技術(shù)中,引入了計(jì)算機(jī)對信息進(jìn)行加密和解密處理,因此,運(yùn)算速度大大提高,要求的密鑰長度也越來越長。,7.1.5現(xiàn)代加密技術(shù)的分類,密碼學(xué)發(fā)展至今,產(chǎn)生了很多密碼算法。有的算法已在學(xué)術(shù)刊物中披露,而更多的卻作為軍事、商業(yè)及貿(mào)易等秘密被嚴(yán)加保密。因此,密碼算法的分類也是多種多樣的。這里,重點(diǎn)介紹以下分類。,1.分組密碼和序列密碼,按照對明文的處理方式,密碼算法可以分為分組密碼和序列密碼。,1)分組密碼,分組密碼的加密方式是首先將明文序列以固定長度進(jìn)行分組,每一組明文用相同的密鑰和加密函數(shù)進(jìn)行運(yùn)算。分組密碼的優(yōu)點(diǎn)是:明文信息良好的擴(kuò)散性。對插入的敏感性。不需要密鑰同步。較強(qiáng)的適用性,適宜作為加密標(biāo)準(zhǔn)。缺點(diǎn)是:加密速度慢,錯(cuò)誤擴(kuò)散和傳播。,2)序列密碼,序列密碼的加密過程是把報(bào)文、語音、圖像和數(shù)據(jù)等原始信息轉(zhuǎn)換成明文數(shù)據(jù)序列,然后將它同密鑰序列進(jìn)行逐位模2加生成密文序列發(fā)送給接收者。接收者用相同的密鑰序列進(jìn)行逐位解密來恢復(fù)明文序列。序列密碼的安全性主要依賴于密鑰序列。序列密碼的優(yōu)點(diǎn)是:處理速度快,實(shí)時(shí)性好。錯(cuò)誤傳播少。不存在串破譯問題。適用于軍事、外交等保密信道。缺點(diǎn)是:明文擴(kuò)散性差。插入信息的敏感性差。需要密鑰同步。,2.對稱加密算法和非對稱加密算法,按加密和解密密鑰的類型劃分,可分為對稱加密算法和非對稱加密算法兩種。1)對稱加密算法如果加密密鑰和解密密鑰相同,或由其中一個(gè)很容易得出另一個(gè),這樣的密碼算法稱為對稱加密算法。在這種算法中,加密和解密密鑰都需要保密。對稱加密算法也稱為單密鑰算法或私鑰加密算法。常用的對稱加密算法有DES、IDEA、RC2、RC4、SKIPJACK等。2)非對稱加密算法如果加密密鑰與解密密鑰不同,且由其中一個(gè)不容易得到另一個(gè),則這種加密算法是非對稱加密算法。這兩個(gè)不同的密鑰,往往其中一個(gè)是公開的,另一個(gè)是保密的。非對稱加密算法也稱為公鑰加密算法。常用的非對稱加密算法有RSA、Elgamal、背包算法、Rabin、ECC(橢圓曲線加密算法)等。,3.單向加密算法和雙向加密算法,根據(jù)加密變換是否可逆,可以將加密算法分為單向加密算法和雙向加密算法。1)單向加密算法單向加密算法使用的是單向函數(shù)(也稱為散列函數(shù)、Hash函數(shù)),可以將明文加密成密文,但卻不能將密文轉(zhuǎn)換為明文(或在計(jì)算上不可行),只有同樣的輸入數(shù)據(jù)經(jīng)過同樣的不可逆運(yùn)算才能得到同樣的加密數(shù)據(jù)。單向加密算法用于不需要解密的場合,因此不需要密鑰。單向加密算法主要用來進(jìn)行數(shù)據(jù)完整性校驗(yàn)和身份驗(yàn)證。單向加密算法的代表有MD4算法、MD5算法、安全散列算法SHA。2)雙向變換加密算法通常的加密解密都屬于雙向變換加密算法,即可以把加密的密文通過解密恢復(fù)為原來的明文。,7.2對稱加密算法,對稱加密算法是應(yīng)用較早的數(shù)據(jù)加密方法,技術(shù)成熟。對稱密鑰加密算法中應(yīng)用最廣泛的數(shù)據(jù)加密標(biāo)準(zhǔn)(dataencryptionstandard,DES)算法。,7.2.1DES算法及其基本思想,1973年,美國國家標(biāo)準(zhǔn)局NBS在認(rèn)識到建立數(shù)據(jù)保護(hù)標(biāo)準(zhǔn)的需要的情況下,開始征集聯(lián)邦數(shù)據(jù)加密標(biāo)準(zhǔn)的方案,1975年3月17日,NBS公布了IBM公司提供的密碼算法,以標(biāo)準(zhǔn)建議的形式在全國范圍內(nèi)征求意見。經(jīng)過兩年多的公開討論之后,1977年7月15日NBS宣布接受這個(gè)建議,并作為第46號聯(lián)邦信息處理標(biāo)準(zhǔn),即DES正式頒布,供民用、商業(yè)和非國防性政府部門使用,也使得DES成為使用最廣泛的一種加密算法。,1.DES算法描述,DES采用分組密碼,它把要加密的明文以64位為一組,分成若干個(gè)分組,若最后一個(gè)分組不足64位,則在分組之后用0補(bǔ)足。分組之后,利用給定的密鑰,依次對每個(gè)分組進(jìn)行加密,每個(gè)分組都會產(chǎn)生64位的密文分組。把所有的分組加密完之后,把產(chǎn)生的所有64位密文分組按順序組合起來就構(gòu)成了用戶需要的整個(gè)密文。DES算法所使用的密鑰長度為64位,但實(shí)際只使用其中的56位,其余的8位用做奇偶校驗(yàn)位。,1)DES算法的過程,第一個(gè)階段為初始置換(IP),IP表,第二個(gè)階段是進(jìn)行16輪的迭代運(yùn)算。,在第i(1i16)輪運(yùn)算中,輸入的是Li-1、Ri-1和該輪需要的子密鑰Ki(第1輪的輸入是L0、R0和K1),輸出的是Li、Ri。Li、Ri和子密鑰Ki+1就成為下一輪的輸入。兩次相鄰的運(yùn)算之間的關(guān)系是:Li=Ri-1Ri=Li-1g(Ri-1,Ki)其中表示異或操作。當(dāng)進(jìn)行完16輪的操作之后,把輸出的L16、R16進(jìn)行對換,并合并為64位的輸出。,第三個(gè)階段完成逆初始置換(IP-1),IP-1表,剩下的兩個(gè)問題,每一輪的子密鑰K1、K2、K3、K16是如何產(chǎn)生的。g函數(shù)的結(jié)構(gòu)。,2)子密鑰的產(chǎn)生,子密鑰產(chǎn)生,密鑰置換PC1,每輪移動(dòng)的位數(shù),置換選擇PC2,3)g函數(shù),擴(kuò)展置換E,S盒結(jié)構(gòu),S盒的具體置換過程,S盒的具體置換過程為:某個(gè)S盒的6位輸入的第1位和第6位形成一個(gè)2位的二進(jìn)制數(shù)(從03),對應(yīng)表中的行號;同時(shí),輸入的中間4位構(gòu)成4位二進(jìn)制數(shù)(從015)對應(yīng)表中的列號(注意:行和列均從0開始計(jì)數(shù))。將8個(gè)S盒的輸出連在一起生成一個(gè)32位的輸出,輸出結(jié)果再通過如下表所示的P盒置換產(chǎn)生一個(gè)32位的輸出,這個(gè)輸出的值就是g函數(shù)的輸出值g(Ri-1,Ki)。,P盒置換,2.DES解密,DES解密操作與加密采用相同的算法,如下圖所示。解密算法使用子密鑰的順序與加密過程相反。,DES解密算法,7.2.2DES算法的安全性分析,1.56位的密鑰長度對于當(dāng)前的計(jì)算速度來說太小2.16輪的迭代運(yùn)算次數(shù)可能太少3.S盒中可能存在著不安全的因素4.DES的一些關(guān)鍵部分不應(yīng)當(dāng)保密,7.3非對稱加密算法,7.3.1非對稱加密算法概述,在介紹非對稱加密算法之前,先介紹對稱加密算法的一些缺陷。(1)密鑰數(shù)量大。(2)密鑰分配困難。(3)無法抗抵賴。,非對稱加密算法的概念,在這之前,加密和解密算法都是建立在替代和置換的基礎(chǔ)上,而非對稱加密算法則是建立在數(shù)學(xué)函數(shù)的基礎(chǔ)之上,更重要的是,非對稱加密算法是非對稱的,加密密鑰與解密密鑰不同,且由其中一個(gè)不容易得到另一個(gè),用其中一個(gè)密鑰加密的數(shù)據(jù),必須用另外一個(gè)密鑰才能進(jìn)行解密。因此在使用的時(shí)候,可以公開其中一個(gè)密鑰(稱為公開密鑰,簡稱公鑰),而保密另外一個(gè)密鑰(私人密鑰,簡稱私鑰)。這對于保密通信、密鑰分配和鑒別等領(lǐng)域產(chǎn)生深遠(yuǎn)的影響。,公鑰加密算法可用于以下兩個(gè)方面:,(1)保密通信(2)數(shù)字簽名,(1)保密通信,(2)數(shù)字簽名,非對稱加密算法的基礎(chǔ),非對稱加密算法的算法基礎(chǔ)是基于一些數(shù)學(xué)難題的。比如有基于背包問題的背包算法(這是最早的非對稱加密算法),基于大整數(shù)因數(shù)分解的RSA算法、LUC算法、Rabin體制等,基于有限域中計(jì)算離散對數(shù)的困難的ElGamal算法、橢圓曲線加密算法(EllipticCurveCryptosystems,ECC)、Diffie-Hellman算法。,7.3.2RSA算法及其基本思想,著名的非對稱加密算法RSA是由美國麻省理工學(xué)院的位科學(xué)家Rivest、Shamir和Adleman于1976年提出的,故名RSA,并在1978年正式發(fā)表。RSA是非對稱加密算法中最具有典型意義的算法,大多數(shù)使用非對稱加密算法進(jìn)行加密和數(shù)字簽名的產(chǎn)品和標(biāo)準(zhǔn)使用的都是RSA算法。,1.RSA基于的數(shù)學(xué)難題,RSA算法的安全性基于大整數(shù)因數(shù)分解的困難性。我們知道,求一對大素?cái)?shù)的乘積很容易,但要對這個(gè)乘積進(jìn)行因式分解則非常困難,迄今為止在數(shù)學(xué)上還沒有找到有效的辦法。,2.RSA的數(shù)學(xué)基礎(chǔ),如果要想更好地了解RSA的加密和解密的原理,先補(bǔ)充一些數(shù)學(xué)知識。1)模運(yùn)算mod2)乘法逆元3)歐拉數(shù)4)歐拉定理,1)模運(yùn)算mod,如果a是一個(gè)整數(shù),而n是一個(gè)正整數(shù),定義amodn的結(jié)果為為a除以n得到的余數(shù)。例如,11mod7=4,25mod7=4。如果兩個(gè)整數(shù)a、b滿足:(amodn)=(bmodn),則稱整數(shù)a和b模n同余,可記為:abmodn例如,1125mod7。,2)乘法逆元,如果兩個(gè)整數(shù)x、y滿足:xy1modn則稱y是x的關(guān)于模n的乘法逆元(也可稱為x是y的關(guān)于模n的乘法逆元)。需要注意的是,并非所有整數(shù)都有乘法逆元。性質(zhì):若n為素?cái)?shù),對于所有非0的x(xn)都存在乘法逆元。,3)歐拉數(shù),設(shè)n是正整數(shù),那么從1到n-1中與n互素的數(shù)的個(gè)數(shù)稱為n的歐拉數(shù),記為(n)。例如,n=10,從1到9之間與10互素的數(shù)有1、3、7、9共4個(gè),因此(10)=4。歐拉數(shù)的兩個(gè)性質(zhì):(1)若p是素?cái)?shù),則(p)=p-1。(2)若pq,且均為素?cái)?shù),則(pq)=(p)(q)=(p-1)(q-1)。例如p=3,q=5,(35)=(15)=(3-1)(5-1)=8。,4)歐拉定理,設(shè)pq,且均為素?cái)?shù),n=pq,那么任取整數(shù)x(0xn),則:xm(n)+1xmodn其中,m可為任意整數(shù)由于0xn,上式也可以寫成:xm(n)+1modn=x,歐拉定理得到的結(jié)論,這樣我們得到一個(gè)很有趣的結(jié)果,就是x經(jīng)過一系列運(yùn)算之后又變回了x。我們可以想象把x看成明文,中間的運(yùn)算結(jié)果可以看成密文y(上式并沒給出中間結(jié)果),經(jīng)過最后的運(yùn)算又恢復(fù)成了明文x。,3.RSA密鑰對的產(chǎn)生,(1)隨機(jī)地選取兩個(gè)不同的大素?cái)?shù)p和q(一般為150位以上的十進(jìn)制數(shù),可以從網(wǎng)上下載)。(2)計(jì)算乘積n=pq。(3)計(jì)算n的歐拉數(shù)(n)=(p-1)(q-1)。(4)隨機(jī)取一個(gè)整數(shù)e,1e(n),且e和(n)互素。此時(shí)可求得滿足下式的整數(shù)d:ed1mod(n)因?yàn)閑和(n)互素,所以e的乘法逆元d是存在的。(5)把e,n公開作為公鑰,把d,n作為私鑰,而p、q、(n)要銷毀。,4.RSA加密的過程,RSA加密明文消息p時(shí)(這里假設(shè)p是以十進(jìn)制表示的數(shù)),首先將消息分成大小合適的數(shù)據(jù)分組,然后對分組分別進(jìn)行加密。每個(gè)分組的大小應(yīng)該比n小。設(shè)ci為明文分組pi加密后的密文,則加密公式為:ci=piemodn,5.RSA解密的過程,解密時(shí),對每一個(gè)密文分組進(jìn)行如下運(yùn)算:pi=cidmodn,7.3.3RSA算法的安全性分析,RSA的安全性基于這么一種想法,那就是模n(即選取的大素?cái)?shù)p、q的乘積)要足夠大以至于在適當(dāng)?shù)臅r(shí)間內(nèi)把它分解是不可能的。目前,還沒有一種有效的方法可以對大數(shù)進(jìn)行因數(shù)分解。,7.4報(bào)文鑒別,7.4.1報(bào)文鑒別的概念和一般實(shí)現(xiàn)方法,數(shù)據(jù)加密主要防止的是被動(dòng)攻擊,而報(bào)文鑒別的目的是保護(hù)數(shù)據(jù)不受主動(dòng)攻擊,也就是保護(hù)數(shù)據(jù)的完整性。數(shù)據(jù)即使被非法用戶改變了或者數(shù)據(jù)是攻擊者偽造的,數(shù)據(jù)的使用者也能發(fā)現(xiàn)。報(bào)文鑒別的主要方式有以下幾種。1.報(bào)文加密函數(shù)2.報(bào)文鑒別碼3.散列函數(shù),7.4.2散列函數(shù),散列函數(shù)又稱Hash函數(shù)、單向函數(shù),它將任意長度的報(bào)文M變換成固定長度的散列值(即報(bào)文摘要)h,散列函數(shù)表示為:h=H(M)它生成報(bào)文所獨(dú)有的“指紋”。如果原始報(bào)文改變,再次通過散列函數(shù)時(shí),它將生成不同的散列值,因此散列函數(shù)能用來檢測報(bào)文的完整性,保證報(bào)文從建立開始到收到始終沒有被改變或破壞。收到報(bào)文的接收者,使用同樣的散列函數(shù)對報(bào)文重新計(jì)算散列值,并與收到的散列值相比較。如果相同,則證明報(bào)文在傳輸過程中沒有被修改,否則報(bào)文是不可信的。,散列函數(shù)必須具備如下特征:,(1)對于不同的報(bào)文不能產(chǎn)生相同的散列值,改變原始報(bào)文中的任意一位數(shù)值將產(chǎn)生完全不同的散列值。(2)對于任意一個(gè)報(bào)文無法預(yù)知它的散列值。(3)無法根據(jù)散列值倒推報(bào)文,因?yàn)橐粭l報(bào)文的散列值可能是由無數(shù)的報(bào)文產(chǎn)生的。(4)散列算法是公開的,不需要保密,它的安全性來自它產(chǎn)生單向散列的能力。(5)散列值有固定的長度,一個(gè)短報(bào)文的散列與一個(gè)非常長的報(bào)文的散列可以產(chǎn)生相同長度的散列值。(6)要找到兩個(gè)不同報(bào)文產(chǎn)生相同的散列值在計(jì)算上是不可行的。,7.4.3報(bào)文摘要MD5,MD表示報(bào)文摘要(messagedigest),MD5是MD4的改進(jìn)版,是由RonRivest在麻省理工學(xué)院提出的,曾是使用最廣泛的散列算法。該算法對輸入任意長度的報(bào)文進(jìn)行計(jì)算,以512bit的分組進(jìn)行處理,產(chǎn)生一個(gè)128位長度的報(bào)文摘要。MD5算法的實(shí)現(xiàn)要經(jīng)過以下5個(gè)步驟。,1.附加填充比特,通過附加填充比特,使其長度成為一個(gè)比512的倍數(shù)小64的數(shù),即將報(bào)文擴(kuò)展至L512-64(L為正整數(shù))位,留出64位在步驟2使用。填充方法為:在報(bào)文后面填充一位1,然后填充所需數(shù)量的0。即使原始報(bào)文長度已經(jīng)滿足比512的倍數(shù)小64,仍然要進(jìn)行填充。即最少要填充1位,最多填充512位。,2.附加長度值,用步驟1留出的64位填充報(bào)文的原始長度。當(dāng)原始長度大于264時(shí)(即使現(xiàn)在看來,幾乎不會出現(xiàn)這種情況),用消息長度模264之后的值填充。這時(shí),填充之后的報(bào)文長度恰好是512的整數(shù)倍(如512的L倍)。把擴(kuò)展后的消息以512位為一組進(jìn)行分組,可以分為L組,表示為Y0,Y1,Y2,YL-1。,3.初始化MD緩存器,在MD5算法中,需要一個(gè)128位的緩存器,用來存放中間結(jié)果和最終結(jié)果。這個(gè)緩存器由4個(gè)32位寄存器A、B、C、D表示。這4個(gè)寄存器的初始值(十六進(jìn)制,按低位字節(jié)在前的順序存放)為:,4.處理512位的分組,這一步驟為MD5的主循環(huán),如圖7-10所示。每次主循環(huán)處理一個(gè)512位的分組,處理L個(gè)分組總共要進(jìn)行L次循環(huán)。第q(q=0,1,L-1)次循環(huán)是以當(dāng)前正在處理的512位分組Yq和128位的緩存值A(chǔ)BCD為輸入,然后更新緩存值A(chǔ)BCD的內(nèi)容,作為下一次主循環(huán)的緩存值的輸入。當(dāng)q=0時(shí),輸入的ABCD正好是初始化的緩存值。每次主循環(huán)共包含4圈主操作,每圈主操作又包含16輪迭代運(yùn)算,即每次主循環(huán)總共包括64輪迭代運(yùn)算。某一輪運(yùn)算的過程如圖7-11所示。,MD5主循環(huán)處理,圖7-10MD5主循環(huán)處理,MD5某一輪的運(yùn)算操作,圖7-11MD5某一輪的運(yùn)算操作,(1)i,表示第i輪操作,i取值范圍為063。,(2)g函數(shù),g函數(shù)的輸入值為B、C、D。共有4圈主操作,每圈主操作使用的g函數(shù)不同,如表7-10所示。,表7-10g函數(shù),(3)Xi,Xi是由輸入的512位的分組Yq得出的。把512位的分組以32位為一組,分為16組,表示為M0,M1,M2,M15。Xi就是由Mi通過運(yùn)算得出的,每一的輪Xi如表7-11所示。,每一輪的Xi,表7-11每一輪的Xi,(4)Ti,Ti為232*abssin(i+1)的整數(shù)部分值(0i63),其中abs表示取絕對值。運(yùn)算時(shí),要轉(zhuǎn)換為二進(jìn)制數(shù),不夠32位,前面用0填充。,(5)S,表示循環(huán)左移S位,每一輪左移的位數(shù)S見表7-12。,表7-12每一輪循環(huán)左移的位數(shù),5.輸出,對所有的512位分組運(yùn)算完之后,由A、B、C、D四個(gè)寄存器的輸出按位低字節(jié)在前的順序(即以A的低字節(jié)開始、D的高字節(jié)結(jié)束)得到的值即為所求出的128位的報(bào)文摘要。以上就是對MD5算法的描述。MD5算法的運(yùn)算均為基本運(yùn)算,易于用硬件實(shí)現(xiàn),可以達(dá)到較高的運(yùn)算速度。,7.4.4安全散列算法,SHA是美國國家標(biāo)準(zhǔn)技術(shù)研究院和NSA共同設(shè)計(jì)的安全散列算法(securehashalgorithm,SHA),用于數(shù)字簽名標(biāo)準(zhǔn)(digitalsignaturestandard,DSS)。SHA1產(chǎn)生報(bào)文摘要的過程類似MD5。SHA1的輸入為長度小于264位的報(bào)文,輸出為160位的報(bào)文摘要,算法的安全性比MD5要高。具體過程如下。,1.附加填充比特,通過附加填充比特,使其長度成為一個(gè)比512的倍數(shù)小64的數(shù),即將報(bào)文擴(kuò)展至L*512-64(L為正整數(shù))位,留出64位在步驟2使用。填充方法:在報(bào)文后面填充一位1,然后填充所需數(shù)量的0。即使原始報(bào)文長度已經(jīng)滿足比512的倍數(shù)小64,仍然要進(jìn)行填充。即最少要填充1位,最多填充512位。,2.附加長度值,用步驟1留出的64位填充報(bào)文的原始長度。這時(shí),填充之后的報(bào)文長度恰好是512的整數(shù)倍(即512的L倍)。把擴(kuò)展后的消息以512位為一組進(jìn)行分組,可以分為L組,表示為Y0,Y1,Y2,YL-1。,3.初始化MD緩存器,在SHA算法中,需要一個(gè)160位的緩存器,用來存放中間結(jié)果和最終結(jié)果。這個(gè)緩存器由5個(gè)32位寄存器A、B、C、D、E表示。這5個(gè)寄存器的初始值為(十六進(jìn)制,按低位字節(jié)在前的順序存放):,4.處理512位的分組,這一步驟為SHA的主循環(huán),如圖7-12所示。每次主循環(huán)處理一個(gè)512位的分組,處理L個(gè)分組總共要進(jìn)行L次循環(huán)。第q(q=0,1,L-1)次循環(huán)是以當(dāng)前正在處理的512位分組Yq和160位的緩存值A(chǔ)BCDE為輸入,然后更新緩存值A(chǔ)BCDE的內(nèi)容,作為下一次主循環(huán)的緩存值的輸入。當(dāng)q=0時(shí),輸入的ABCDE正好是初始化的緩存值。每次主循環(huán)共包含4圈主操作,每圈主操作又包含20輪迭代運(yùn)算,即每次主循環(huán)總共包括80輪迭代運(yùn)算。某輪運(yùn)算的過程如圖7-13所示。,SHA主循環(huán)處理,圖7-12SHA主循環(huán)處理,SHA某一輪的運(yùn)算操作,圖7-13SHA某一輪的運(yùn)算操作,(1)i,i表示第i輪操作,i取值范圍為079。,(2)5、30,5、30:分別表示循環(huán)左移5位、循環(huán)左移30位,(3)f函數(shù),f函數(shù)的輸入值為B、C、D。共有4圈主操作,每圈主操作使用的f函數(shù)如表7-13所示(其中第2圈和第4圈的f函數(shù)相同)。,表7-13f函數(shù),(4)Wi,Wi:是由輸入的512位的分組Yq得出的。把512位的分組以32位為一組,分為16組,表示為M0,M1,M2M15。Wi就是由Mi通過運(yùn)算得出的,每一輪的Wi如表7-14所示。表中的S表示把括號內(nèi)的數(shù)值循環(huán)左移1位。,表7-14每一輪的Wi,(5)Ki,Ki:表示一個(gè)額外的常數(shù),見表7-15。,表7-15SHA的常數(shù)Ki,5.輸出,對所有的512位分組運(yùn)算完之后,最后輸出的A、B、C、D、E五個(gè)寄存器的值即為所求出的160位的報(bào)文摘要。,7.4.5SHA-1與MD5的比較,表7-17SHA-1與MD5的比較,7.5數(shù)據(jù)加密技術(shù)的應(yīng)用,隨著計(jì)算機(jī)技術(shù)和Internet技術(shù)的發(fā)展和廣泛應(yīng)用,在越來越多的場合使用了數(shù)據(jù)加密技術(shù)。數(shù)據(jù)加密技術(shù)除了具有最常用的數(shù)據(jù)加密功能之外,還有其他一些作用,如電子簽名、數(shù)字時(shí)間戳、數(shù)字證書等。,7.5.1數(shù)字簽名,在計(jì)算機(jī)網(wǎng)絡(luò)通信中,不容易通過親筆簽名或印章的形式來確認(rèn)身份,經(jīng)常會發(fā)生發(fā)送方不承認(rèn)自己曾發(fā)送過的文件,接收方偽造發(fā)送方文件等現(xiàn)象。解決這種問題的方法就是數(shù)字簽名。數(shù)字簽名與書面文件簽名有相同之處,采用數(shù)字簽名也能確認(rèn)以下兩點(diǎn):信息是由簽名者發(fā)送的。信息在傳輸過程中未曾作過任何修改。,1.改進(jìn)的RSA方案,(1)文件的發(fā)送者A對要發(fā)送的文件M使用SHA算法進(jìn)行加密,產(chǎn)生一個(gè)160位的報(bào)文摘要h:h=SHA(M)(2)發(fā)送者A生成自己的RSA密鑰對,并公布自己的公鑰KUA。然后用私鑰KRA對生成的報(bào)文摘要h再加密,加密后的密文C就成了數(shù)字簽名。C=EKRA(h)(3)將原文M和數(shù)字簽名C同時(shí)傳給對方。(4)對方用發(fā)送者公布的公鑰KUA對數(shù)字簽名進(jìn)行解密,同時(shí)對收到的文件M用SHA算法產(chǎn)生又一摘要h1。h=DKUA(C)h1=SHA(M)(5)將h和h1進(jìn)行對比。如兩者一致,則說明傳送過程中文件沒有被破壞或篡改過。否則不然。,2.數(shù)字簽名算法,1991年8月,美國NIST公布了用于數(shù)字簽名標(biāo)準(zhǔn)DSS的數(shù)字簽名算法DSA,1994年12月1日正式采用為美國聯(lián)邦信息處理標(biāo)準(zhǔn)。DSA中用到了以下參數(shù):(1)p為L位長的素?cái)?shù),其中,L為5121024之間且是64倍數(shù)的數(shù)。(2)q是160位長的素?cái)?shù),且為p-1的因子。(3)g=h(p-1)/qmodp,其中,h是滿足1hp-1且h(p-1)/qmodp大于1的整數(shù)。(4)x是隨機(jī)產(chǎn)生的大于0而小于q的整數(shù)。(5)y=gxmodp。(6)k是隨機(jī)產(chǎn)生的大于0而小于q的整數(shù)。前三個(gè)參數(shù)p、q、g是公開的;x為私鑰,y為公鑰;x和k用于數(shù)字簽名,必須保密;對于每一次簽名都應(yīng)該產(chǎn)生一次k。,簽名和驗(yàn)證簽名過程,對消息m簽名:r=(gkmodp)modqs=(k-1(SHA(m)+xr)modqr和s就是簽名。驗(yàn)證簽名時(shí),算法如下:w=s-1modqu1=(SHA(m)w)modqu2=(rw)modqv=(gu1yu2)modp)modq如果v=r,則簽名有效。,7.5.2數(shù)字時(shí)間戳,交易文件中,時(shí)間是十分重要的信息。在書面合同中,文件簽署的日期和簽名一樣均是十分重要的防止文件被偽造和篡改的關(guān)鍵性內(nèi)容。在電子交易中,同樣需對交易文件的日期和時(shí)間信息采取安全措施,而數(shù)字
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 決策性學(xué)習(xí)的衛(wèi)生資格考試試題及答案
- 中國呼吸道感染門診治療課件
- 醫(yī)學(xué)信息檢索方法與技術(shù)應(yīng)用
- 護(hù)理考試復(fù)習(xí)策略分享試題及答案
- 行政法學(xué)中的實(shí)務(wù)案例分析與試題及答案
- 2025年中國文化概論考試復(fù)習(xí)資料與試題及答案
- 高級審計(jì)師考試真題回顧試題及答案
- 網(wǎng)紅奶茶店加盟店拓展與區(qū)域市場擴(kuò)張合同
- 文旅景區(qū)資源整合與開發(fā)投資合伙協(xié)議
- 國際學(xué)校幼兒園入學(xué)協(xié)議及教育服務(wù)
- 2025年健康管理師職業(yè)技能考試筆試試題(100題)含答案
- 消防文職考試試題及答案
- 2025年企業(yè)管理專業(yè)考試試題及答案詳解
- 2024年甘肅蘭州事業(yè)單位考試真題
- 小學(xué)語文古詩詞教學(xué)策略探究
- 2025年4月《粉塵涉爆重大事故隱患解讀》應(yīng)急部
- 四川省綿陽市2025屆高三下學(xué)期第三次診斷性測試數(shù)學(xué)試卷(含答案)
- 智能界面布局研究-全面剖析
- 課題申報(bào)書:數(shù)智融合驅(qū)動(dòng)高校教師數(shù)字素養(yǎng)提升路徑研究
- 2025年北京市房山區(qū)九年級初三一模物理試卷(含答案)
- 2025年青海省西寧市中考一模道德與法治試題(原卷版+解析版)
評論
0/150
提交評論