信息安全理論與技術(shù) 4、認(rèn)證與數(shù)字簽名_第1頁
信息安全理論與技術(shù) 4、認(rèn)證與數(shù)字簽名_第2頁
信息安全理論與技術(shù) 4、認(rèn)證與數(shù)字簽名_第3頁
信息安全理論與技術(shù) 4、認(rèn)證與數(shù)字簽名_第4頁
信息安全理論與技術(shù) 4、認(rèn)證與數(shù)字簽名_第5頁
已閱讀5頁,還剩121頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

信息安全基本原理與技術(shù)目錄信息安全概述常見攻擊手段密碼學(xué)知識認(rèn)證與數(shù)字簽名網(wǎng)絡(luò)安全防御體系訪問控制可信計(jì)算概念認(rèn)證(Authentication):即鑒別、確認(rèn),它是證實(shí)某事是否名副其實(shí),或是否有效的一個過程。認(rèn)證與加密的區(qū)別:加密用以確保數(shù)據(jù)的保密性,阻止對手的被動攻擊,如截取、竊聽。認(rèn)證用以確保報(bào)文發(fā)送者和接受者的真實(shí)性以及報(bào)文的完整性,阻止對手的主動攻擊,如冒充、篡改、重播等。認(rèn)證往往是應(yīng)用系統(tǒng)中安全保護(hù)的第一道防線,極為重要?;舅枷胪ㄟ^驗(yàn)證稱謂者(人或事)的一個或多個參數(shù)的真實(shí)性和有效性,來達(dá)到驗(yàn)證稱謂者是否名副其實(shí)的目的。常用的參數(shù)有:口令、標(biāo)識符、密鑰、信物、智能卡、指紋、視網(wǎng)紋等。利用人的生理特征參數(shù)進(jìn)行認(rèn)證的安全性高,但技術(shù)要求也高,至今尚未普及。目前廣泛應(yīng)用的還是基于密碼的認(rèn)證技術(shù)。沒有消息認(rèn)證的通信系統(tǒng)是極為危險(xiǎn)的消息認(rèn)證(MessageAuthentication)消息認(rèn)證用于抗擊主動攻擊驗(yàn)證接收消息的真實(shí)性和完整性真實(shí)性的確是由所聲稱的實(shí)體發(fā)過來的完整性未被篡改、插入和刪除驗(yàn)證消息的順序性和時間性(未重排、重放和延遲)需求泄密:將消息透露給沒有合法秘密鑰的任何人或程序。傳輸分析:分析通信雙方的通信模式,如連接頻率,時間等偽裝:攻擊者產(chǎn)生一條消息并聲稱來自某合法實(shí)體內(nèi)容修改:對消息進(jìn)行插入、刪除、轉(zhuǎn)化、修改順序修改:對消息順序進(jìn)行插入、刪除、重新排序計(jì)時修改:對消息的延時和重放發(fā)送方否認(rèn)接受方否認(rèn)對付1、2可用加密;對付3、4、5、6可用消息認(rèn)證;對付7、8可用數(shù)字簽名消息認(rèn)證的基本概念消息認(rèn)證:驗(yàn)證所收到的消息確定是來自真正的發(fā)送方且未被修改過。認(rèn)證符:一個用來認(rèn)證消息的值。由消息的發(fā)送方產(chǎn)生認(rèn)證符,并傳遞給接收方。認(rèn)證函數(shù):產(chǎn)生認(rèn)證符的函數(shù),認(rèn)證函數(shù)實(shí)際上代表了一種產(chǎn)生認(rèn)證符的方法。消息加密消息認(rèn)證碼Hash函數(shù)消息加密---在對稱加密體制下由于攻擊者不知道密鑰K,他也就不知道如何改變密文中的信息位才能在明文中產(chǎn)生預(yù)期的改變。接收方可以根據(jù)解密后的明文是否具有合理的語法結(jié)構(gòu)來進(jìn)行消息認(rèn)證。但有時發(fā)送的明文本身并沒有明顯的語法結(jié)構(gòu)或特征,例如二進(jìn)制文件,因此很難確定解密后的消息就是明文本身。MEKEK(M)DKM根據(jù)明文M和公開的函數(shù)F產(chǎn)生FCS,即錯誤檢測碼,或幀校驗(yàn)序列,校驗(yàn)和。把M和FCS合在一起加密,并傳輸。接收端把密文解密,得到M。根據(jù)得到的M,按照F計(jì)算FCS,并與接收到的FCS比較是否相等。MFFMFCS比較EKDKMFCS內(nèi)部錯誤控制攻擊者可以構(gòu)造具有正確錯誤控制碼的消息,雖然攻擊者不知道解密后的明文,但可以造成混淆并破壞通信。MFFCSEKDKM外部錯誤控制F比較消息加密---在公鑰加密體制下由于大家都知道B的公鑰,所以這種方式不提供認(rèn)證,只提供加密。MEKUbEKUb(M)DKRbMI.普通加密AB消息加密---在公鑰加密體制下由于只有A有用于產(chǎn)生EKRa(M)的密鑰,所以此方法提供認(rèn)證。由于大家都有KUa

,所以此方法不提供加密。MEKRaEKRa(M)DKUaMII.認(rèn)證和簽名AB消息加密---在公鑰加密體制下提供認(rèn)證和加密。一次通信中要執(zhí)行四次復(fù)雜的公鑰算法。MEKRaEKRa(M)DKUaMIII.加密認(rèn)證和簽名ABEKUbEKUb(EKRa(M))DKRbEKRa(M)消息認(rèn)證碼(MAC)MessageAuthenticaionCode消息認(rèn)證碼是消息和密鑰的公開函數(shù),它產(chǎn)生定長的值,以該值作為認(rèn)證符。利用密鑰和消息生成一個固定長度的短數(shù)據(jù)塊,并將其附加在消息之后。通信雙方共享密鑰K消息認(rèn)證碼用于認(rèn)證A和B共享密鑰KA計(jì)算MAC=Ck(M),M和MAC一起發(fā)送到BB對收到的M,計(jì)算MAC,比較兩個MAC是否相同。MCMACKC比較KMAC如果兩個MAC相等,則:接收方可以相信消息未被修改,因?yàn)槿绻粽吒淖兞讼ⅲ捎诓恢纊,無法生成正確的MAC。接收方可以相信消息的確來自確定的發(fā)送方。因?yàn)槠渌瞬荒苌珊驮枷⑾鄳?yīng)的MAC。MAC函數(shù)與加密函數(shù)的區(qū)別MAC函數(shù)與加密函數(shù)類似,都需要明文、密鑰和算法的參與。但MAC算法不要求可逆性,而加密算法必須是可逆的。例如:使用100比特的消息和10比特的MAC,那么總共有2100個不同的消息,但僅有210個不同的MAC。也就是說,平均每290個消息使用的MAC是相同的。因此,認(rèn)證函數(shù)比加密函數(shù)更不易被攻破,因?yàn)榧幢愎テ埔矡o法驗(yàn)證其正確性。關(guān)鍵就在于加密函數(shù)是一對一的,而認(rèn)證函數(shù)是多對一的。消息認(rèn)證碼的基本用途只提供消息認(rèn)證,不提供保密性。(見前)提供消息認(rèn)證和保密性:M||CK1CMCK(M)K1比較EK2DK2ABA和B共享K1和K2K1:用于生成MACK2:用于加密與明文有關(guān)的認(rèn)證消息認(rèn)證碼的基本用途提供消息認(rèn)證和保密性:ABA和B共享K1和K2K1:用于生成MACK2:用于加密與密文有關(guān)的認(rèn)證M||CK1CK1比較EK2DK2對MAC的攻擊—攻擊密鑰已知消息M1和MAC算法C,以及MAC1=

Ck1(M1)

,現(xiàn)要破解k1。密鑰為k個bit,MAC為n個bit。當(dāng)k>n:可能的密鑰個數(shù)為2k。可能的MAC個數(shù)為2n個。

所以許多不同的密鑰(約2k-n個),計(jì)算出來的MAC都等于MAC1。這些密鑰中哪一個是正確的密鑰不得而知。這時需要新的M-MAC對來測試這2k-n個密鑰,于是有如下的重復(fù)攻擊:重復(fù)攻擊Step1:給定M1和MAC1=

Ck1(M1)

對所有2k個密鑰,判斷MACi=

Cki(M1)

匹配數(shù)約為:2k-nStep2:給定M2和MAC2=

Ck2(M1)對所有2k個密鑰,判斷MACi=

Cki(M2)匹配數(shù)約為:2k-2n平均來講,若k=x*n,則需x次循環(huán)才能找到正確的密鑰。所以,用窮舉法攻破MAC比攻破加密算法要困難得多。對MAC的攻擊—攻擊算法考慮下面的算法:

消息M=(X1‖X2‖…‖Xm)是由64比特長的分組Xi(i=1,…,m)鏈接而成

MAC算法是:加密算法是DES。因此,密鑰長為56比特。如果敵手得到M‖CK(M),那么敵手使用窮搜索攻擊尋找K將需做256次加密。很困難!但攻擊者可以改變M的內(nèi)容,卻使MAC正確。方法如下:用Y1替換X1,Y2替換X2,…,Ym替換Xm,其中Y1

,Y2

,…,Ym

是攻擊者編造的假消息。且

Ym=Y1Y2…Ym-1Δ(M),當(dāng)接收者收到這個消息:M’=(Y1‖Y2‖…‖Ym)

則Δ(M’)=Y1Y2…Ym

=

Δ(M)所以:CK(M)=CK(M’)通過了驗(yàn)證,攻擊得逞。MAC函數(shù)應(yīng)具有的性質(zhì)若攻擊者已知M和CK(M),則他構(gòu)造滿足:

CK(M)=CK(M’)的消息M’在計(jì)算上不可行CK(M)應(yīng)試均勻分布的,即對于隨機(jī)消息M和M’,

CK(M)=CK(M’)的概率是2-n,n是MAC的位數(shù)基于DES的消息認(rèn)證碼使用最廣泛的MAC算法之一:數(shù)據(jù)認(rèn)證算法過程:把需要認(rèn)證的數(shù)據(jù)分成連續(xù)的64位的分組。若最后一個分組不是64位,則填0利用DES加密算法E和密鑰K,計(jì)算認(rèn)證碼。數(shù)據(jù)認(rèn)證算法似乎可以滿足前面提出的要求。DACM-bits(16to64bits)為什么不直接使用加密而使用分離的消息認(rèn)證碼?保密性與真實(shí)性是兩個不同的概念根本上,信息加密提供的是保密性而非真實(shí)性加密代價(jià)大(公鑰算法代價(jià)更大)鑒別函數(shù)與保密函數(shù)的分離能提供功能上的靈活性某些信息只需要真實(shí)性,不需要保密性廣播的信息難以使用加密(信息量大)網(wǎng)絡(luò)管理信息等只需要真實(shí)性政府/權(quán)威部門的公告Hash函數(shù)(雜湊函數(shù)、散列函數(shù))Hash的特點(diǎn):與消息認(rèn)證碼一樣,hash函數(shù)的輸入是可變的消息M,輸出是固定大小的hash碼H(M),或稱消息摘要(MessageDigest)

、hash值。與消息認(rèn)證碼不同的是,hash碼的產(chǎn)生過程中并不使用密鑰。Hash碼是所有消息的函數(shù),改變消息的任何一位或多位,都會導(dǎo)致hash碼的改變。Hash算法通常是公開的。又稱為:哈希函數(shù)、數(shù)字指紋(Digitalfingerprint)、壓縮(Compression)函數(shù)、緊縮(Contraction)函數(shù)、數(shù)據(jù)鑒別碼DAC(Dataauthenticationcode)、篡改檢驗(yàn)碼MDC(Manipulationdetectioncode)h=H(M)假定兩次輸入同樣的數(shù)據(jù),那么散列函數(shù)應(yīng)該能夠生成相同的散列值。輸入數(shù)據(jù)中的一位發(fā)生了變化,會導(dǎo)致生成的散列值完全不一樣。散列函數(shù)有個非常重要的特性為單向性,也就是從M計(jì)算h容易,而從h計(jì)算M不可能。

散列函數(shù)H必須滿足以下幾個性質(zhì)H對于任何大小的數(shù)據(jù)分組,都能產(chǎn)生定長的輸出。對于任何給定的M,H(M)要相對易于計(jì)算。單向性:對于任何給定的hash值h,計(jì)算出M在計(jì)算上不可行。弱無碰撞性:對任何給定的M1,尋找M2,使H(M1)=H(M2)在計(jì)算上不可行。強(qiáng)無碰撞性:尋找任何的(M1,M2),使H(M1)=H(M2)在計(jì)算上不可行。Hash與MAC的區(qū)別MAC需要對全部數(shù)據(jù)進(jìn)行加密MAC速度慢Hash是一種直接產(chǎn)生鑒別碼的方法Hash可用于數(shù)字簽名常用Hash算法迭代型hash函數(shù)的一般結(jié)構(gòu)fffY0Y1YL-1bbbnnnnnIV=CV0CV1CVL-1CVL明文M被分為L個分組Y0,Y1,…,YL-1b:明文分組長度n:輸出hash長度CV:各級輸出,最后一個輸出值是hash值無碰撞壓縮函數(shù)f是設(shè)計(jì)的關(guān)鍵迭代型hash函數(shù)這種結(jié)構(gòu)的hash函數(shù)已被證明是合理的,如果采用其他結(jié)構(gòu),不一定安全。設(shè)計(jì)新的hash函數(shù)只是改進(jìn)這種結(jié)構(gòu),或者增加hash碼長。算法的核心技術(shù)是設(shè)計(jì)無碰撞的壓縮函數(shù)f,而敵手對算法的攻擊重點(diǎn)是f的內(nèi)部結(jié)構(gòu),由于f和分組密碼一樣是由若干輪處理過程組成,所以對f的攻擊需通過對各輪之間的位模式的分析來進(jìn)行,分析過程常常需要先找出f的碰撞。由于f是壓縮函數(shù),其碰撞是不可避免的,因此在設(shè)計(jì)f時就應(yīng)保證找出其碰撞在計(jì)算上是不可行的。MD5hash算法

MD5HashAlgorithm

MD4是MD5雜湊算法的前身,由RonRivest于1990年10月作為RFC提出,1992年4月公布的MD4的改進(jìn)(RFC1320,1321)稱為MD5。MD5的算法框圖輸入消息可任意長,壓縮后輸出為128bits。算法步驟(1)-分組填充

消息100…064bit消息長度填充圖樣L×512bitKbit如果消息長度大于264,則取其對264的模。執(zhí)行完后,消息的長度為512的倍數(shù)(設(shè)為L倍),則可將消息表示為分組長為512的一系列分組Y0,Y1,…,YL-1,而每一分組又可表示為16個32比特長的字,這樣消息中的總字?jǐn)?shù)為N=L×16,因此消息又可按字表示為M[0,…,N-1]。算法步驟(2)-緩沖區(qū)初始化hash函數(shù)的中間結(jié)果和最終結(jié)果保存于128位的緩沖區(qū)中,緩沖區(qū)用32位的寄存器表示??捎?個32bits字表示:A,B,C,D。初始存數(shù)以十六進(jìn)制表示為A=01234567B=89ABCDEFC=FEDCBA98D=76543210算法步驟(3)-HMD5運(yùn)算以分組為單位對消息進(jìn)行處理每一分組Yq(q=0,…,L-1)都經(jīng)一壓縮函數(shù)HMD5處理。HMD5是算法的核心,其中又有4輪處理過程。HMD5的4輪處理過程結(jié)構(gòu)一樣,但所用的邏輯函數(shù)不同,分別表示為F、G、H、I。每輪的輸入為當(dāng)前處理的消息分組Yq和緩沖區(qū)的當(dāng)前值A(chǔ)、B、C、D,輸出仍放在緩沖區(qū)中以產(chǎn)生新的A、B、C、D。每輪又要進(jìn)行16步迭代運(yùn)算,4輪共需64步完成。第四輪的輸出與第一輪的輸入相加得到最后的輸出。壓縮函數(shù)中的一步迭代基本邏輯函數(shù)定義

輪基本函數(shù)gg(b,c,d)fFF(b,c,d)(b^c)V(bˉ^d)fGG(b,c,d)(b^d)V(c^dˉ)fHH(b,c,d)b?c?dfII(b,c,d)c?(bV

dˉ)X[k]當(dāng)前分組的第k個32位的字。第1輪x[0]x[1]x[2]x[3]x[4]x[5]x[6]x[7]x[8]x[9]x[10]x[11]x[12]x[13]x[14]x[15]第2輪x[1]x[6]x[11]x[0]x[5]x[10]x[15]x[4]x[9]x[14]x[3]x[8]x[13]x[2]x[7]x[12]第3輪x[5]x[8]x[11]x[14]x[1]x[4]x[7]x[10]x[13]x[0]x[3]x[6]x[9]x[12]x[15]x[2]第4輪x[0]x[7]x[14]x[5]x[12]x[3]x[10]x[1]x[8]x[15]x[6]x[13]x[4]x[11]x[2]x[9]T[i]T[1,…,64]為64個元素表,分四組參與不同輪的計(jì)算。T[i]為232×abs(Sin(i))的整數(shù)部分,i是弧度。T[i]可用32bit二元數(shù)表示,T是32bit隨機(jī)數(shù)源。T[1]=d76aa478T[17]=f61e2562T[33]=fffa3942T[49]=f4292244T[2]=e8c7b756T[18]=c040b340T[34]=8771f681T[50]=432aff97T[3]=242070dbT[19]=265e5a51T[35]=6d9d6122T[51]=ab9423a7T[4]=c1bdceeeT[20]=e9b6c7aaT[36]=fde5380cT[52]=fc93a039T[5]=f57c0fafT[21]=d62f105dT[37]=a4beea44T[53]=655b59c3T[6]=4787c62aT[22]=02441453T[38]=4bdecfa9T[54]=8f0ccc92T[7]=a8304613T[23]=d8a1e681T[39]=f6bb4b60T[55]=ffeff47dT[8]=fd469501T[24]=e7d3fbc8T[40]=bebfbc70T[56]=85845dd1T[9]=698098d8T[25]=21e1cde6T[41]=289b7ec6T[57]=6fa87e4fT[10]=8b44f7afT[26]=c33707d6T[42]=eaa127faT[58]=fe2ce6e0T[11]=ffff5bb1T[27]=f4d50d87T[43]=d4ef3085T[59]=a3014314T[12]=895cd7beT[28]=455a14edT[44]=04881d05T[60]=4e0811a1T[13]=6b901122T[29]=a9e3e905T[45]=d9d4d039T[61]=f7537e82T[14]=fd987193T[30]=fcefa3f8T[46]=e6db99e5T[62]=bd3af235T[15]=a679438eT[31]=676f02d9T[47]=1fa27cf8T[63]=2ad7d2bbT[16]=49b40821T[32]=8d2a4c8aT[48]=c4ac5665T[63]=eb86d391CLSs:循環(huán)左移s位第一輪:7、12、17、22第二輪:5、9、14、20第三輪:4、11、16、23第四輪:6、10、15、21MD-5的安全性MD-5的輸出為128-bit,若采用純強(qiáng)力攻擊尋找一個消息具有給定Hash值的計(jì)算困難性為2128,用每秒可試驗(yàn)1000000000個消息的計(jì)算機(jī)需時1.07×1022年。采用生日攻擊法,找出具有相同雜湊值的兩個消息需執(zhí)行264次運(yùn)算。SHA算法SecureHashAlgorithm算法簡介美國標(biāo)準(zhǔn)與技術(shù)研究所NIST設(shè)計(jì)1993年成為聯(lián)邦信息處理標(biāo)準(zhǔn)(FIPSPUB180)基于MD4算法,與之非常類似。輸入為小于264比特長的任意消息分組512bit長輸出160bit迭代型hash函數(shù)的一般結(jié)構(gòu)fffY0Y1YL-1bbbnnnnnIV=CV0CV1CVL-1CVL明文M被分為L個分組Y0,Y1,…,YL-1b:明文分組長度n:輸出hash長度CV:各級輸出,最后一個輸出值是hash值無碰撞壓縮函數(shù)f是設(shè)計(jì)的關(guān)鍵算法描述消息填充:與MD5完全相同附加消息長度:64bit長度緩沖區(qū)初始化A=67452301B=EFCDAB89C=98BADCFBD=10325476E=C3D2E1F0分組處理模232加SHA-1壓縮函數(shù)(單步)ft----基本邏輯函數(shù)CLS5:32位的變量循環(huán)左移5位。CLS30:32位的變量循環(huán)左移30位。Wt---從當(dāng)前512位輸入分組導(dǎo)出的32位字前16個值(即W0,W1,…,W15)直接取為輸入分組的16個相應(yīng)的字,其余值(即W16,W17,…,W79)取為Kt---加法常量步驟十六進(jìn)制0≤t≤19Kt=5A82799920≤t≤39Kt=6ED9EBA140≤t≤59Kt=8F1BBCDC60≤t≤79Kt=CA62C1D6SHA與MD5的比較抗窮舉搜索能力尋找指定hash值,SHA:O(2160),MD5:O(2128)生日攻擊:SHA:O(280),MD5:O(264)抗密碼分析攻擊的強(qiáng)度SHA似乎高于MD5速度SHA較MD5慢簡捷與緊致性描述都比較簡單,都不需要大的程序和代換表其它hash算法MD4MD4使用三輪運(yùn)算,每輪16步;MD5使用四輪運(yùn)算,每輪16步。MD4的第一輪沒有使用加法常量,第二輪運(yùn)算中每步迭代使用的加法常量相同,第三輪運(yùn)算中每步迭代使用的加法常量相同,但不同于第二輪使用的加法常量;MD5的64步使用的加法常量T[i]均不同。MD4使用三個基本邏輯函數(shù),MD5使用四個。MD5中每步迭代的結(jié)果都與前一步的結(jié)果相加,MD4則沒有。MD5比MD4更復(fù)雜,所以其執(zhí)行速度也更慢,Rivest認(rèn)為增加復(fù)雜性可以增加安全性。RIPEMD-160歐共體RIPE項(xiàng)目組研制。輸入可以是任意長的報(bào)文,輸出160位摘要。對輸入按512位分組。以分組為單位處理。算法的核心是具有十輪運(yùn)算的模塊,十輪運(yùn)算分成兩組,每組五輪,每輪16步迭代。對Hash函數(shù)的攻擊對一個hash算法的攻擊可分三個級別:預(yù)映射攻擊(PreimageAttack):給定Hash值h,找到其所對應(yīng)的明文M,使得Hash(M)=h,這種攻擊是最徹底的,如果一個hash算法被人找出預(yù)映射,那這種算法是不能使用的。次預(yù)映射攻擊(SecondPreimageAttack):給定明文M1,找到另一明文M2(M1≠M(fèi)2),使得hash(M1)=hash(M2),這種攻擊其實(shí)就是要尋找一個弱碰撞;碰撞攻擊(CollisionAttack):找到M1和M2,使得hash(M1)=hash(M2),這種攻擊其實(shí)就是要尋找一個強(qiáng)碰撞。生日攻擊給定一個散列函數(shù)H和某hash值H(x),假定H有n個可能的輸出。如果H有k個隨機(jī)輸入,k必須為多大才能使至少存在一個輸入y,使得H(y)=H(x)的概率大于0.5?K=n/2結(jié)論如果hash碼為m位,則有2m個可能的hash碼。如果給定h=H(X),要想找到一個y,使H(y)=h的概率為0.5,則要進(jìn)行多次的嘗試,嘗試的次數(shù)k=2m/2=2m-1所以,對于一個使用64位的hash碼,攻擊者要想找到滿足H(M’)=H(M)的M’來替代M,平均來講,他要找到這樣的消息大約要進(jìn)行263次嘗試。但是,存在一種攻擊,稱為“生日攻擊”,卻可以大大減小嘗試的次數(shù),對于64位的hash碼,所需的代價(jià)僅為232次。生日悖論一個教室中,最少應(yīng)有多少學(xué)生,才使至少有兩人具有相同生日的概率不小于1/2?概率結(jié)果與人的直覺是相違背的.實(shí)際上只需23人,即任找23人,從中總能選出兩人具有相同生日的概率至少為1/2。一個不等式:(1-x)≤e-x(x≥0)當(dāng)x很小,趨近于0時,(1-x)≈e-x兩個集合中元素的重復(fù)給定兩個集合X和Y,每個集合有k個元素:

X:{x1,x2,…,xk},Y:{y1,y2,…,yk},其中,各元素的取值是1~n之間的均勻分布的隨機(jī)值(k<n)那么,這兩個集合中至少有一個元素相同(重復(fù))的概率R(n,k)是多少呢?給定x1,那么y1=x1的概率為1/n,所以y1≠x1的概率為1-1/n。那么Y中的k個值都不等于x1的概率為(1-1/n)k同理,給定x2,那么Y中的k個值都不等于x2的概率為(1-1/n)k同理,給定xk,那么Y中的k個值都不等于xk的概率為(1-1/n)k所以,Y中沒有元素與X中元素相同的概率為:那么,Y中至少有一個元素與X中元素相同的概率為:根據(jù)不等式:(1-x)≤e-x(x≥0)可知:

實(shí)施生日攻擊前面提到過,對于一個使用64位的hash碼,攻擊者要想找到滿足H(M’)=H(M)的M’來替代M,平均來講,他要找到這樣的消息大約要進(jìn)行263次嘗試。這太困難了!設(shè)M和hash算法生成64位的hash值。攻擊者可以根據(jù)M,產(chǎn)生232個表達(dá)相同含義的變式(例如在詞與詞之間多加一個空格)。同時準(zhǔn)備好偽造的消息M’,產(chǎn)生232個表達(dá)相同含義的變式。在這兩個集合中,找出產(chǎn)生相同hash碼的一對消息M1和M1’。根據(jù)生日悖論,找到這樣一對消息的概率大于0.5。最后,攻擊者將拿M1給發(fā)送者簽名,但發(fā)送時,把M1’和經(jīng)加密的hash碼一起發(fā)送。BirthdayAttacks:exampleA準(zhǔn)備兩份合同M和M′,一份B會同意,一份會取走他的財(cái)產(chǎn)而被拒絕A對M和M′各做32處微小變化(保持原意),分別產(chǎn)生232個64位hash值根據(jù)前面的結(jié)論,超過0.5的概率能找到一個M和一個M′,它們的hash值相同A提交M,經(jīng)B審閱后產(chǎn)生64位hash值并對該值簽名,返回給AA用M′替換M身份認(rèn)證身份認(rèn)證是驗(yàn)證主體的真實(shí)身份與其所聲稱的身份是否符合的過程。認(rèn)證的結(jié)果只有兩個:符合和不符合。適用于用戶、進(jìn)程、系統(tǒng)、信息等。身份認(rèn)證的例子郵件登錄Client與Server之間的鑒別Telnet遠(yuǎn)程登錄Ftp服務(wù)登錄到某臺電腦上身份認(rèn)證系統(tǒng)的組成出示證件的人,稱作示證者P(Prover),又稱聲稱者(Claimant)。驗(yàn)證者V(Verifier),檢驗(yàn)聲稱者提出的證件的正確性和合法性,決定是否滿足要求。第三方是可信賴者TP(Trustedthirdparty),參與調(diào)解糾紛。在許多應(yīng)用場合下沒有第三方。身份認(rèn)證的物理基礎(chǔ)Somethingtheuserknow(例如口令)簡單,但不安全設(shè)計(jì)依據(jù)安全水平、系統(tǒng)通過率、用戶可接受性、成本等身份認(rèn)證的物理基礎(chǔ)Somethingtheuserpossesses(例如證件)認(rèn)證系統(tǒng)相對復(fù)雜身份認(rèn)證的物理基礎(chǔ)Somethingtheuseris(例如指紋識別)更復(fù)雜,而且有時會牽涉到本人意愿身份認(rèn)證方式單向認(rèn)證(One-wayAuthentication)雙向認(rèn)證(Two-wayAuthentication)信任的第三方認(rèn)證(TrustedThird-partyAuthentication)單向認(rèn)證通信的一方認(rèn)證另一方的身份用對稱密碼體制來實(shí)現(xiàn)單向認(rèn)證某函數(shù)變換f雙方共享的密鑰KS隨機(jī)數(shù)RA用非對稱密碼體制來實(shí)現(xiàn)單向認(rèn)證隨機(jī)數(shù)RAB的私鑰KSB雙向認(rèn)證

雙方都要提供用戶名和密碼給對方,才能通過認(rèn)證。

用對稱密碼體制來實(shí)現(xiàn)雙向認(rèn)證A產(chǎn)生一個隨機(jī)數(shù)RA雙方共享的密鑰KSB產(chǎn)生一個隨機(jī)數(shù)RB用非對稱密碼體制來實(shí)現(xiàn)雙向認(rèn)證A產(chǎn)生一個隨機(jī)數(shù)RAB產(chǎn)生一個隨機(jī)數(shù)RBB的私鑰KSBA的私鑰KSA信任的第三方認(rèn)證

當(dāng)兩端欲進(jìn)行連線時,彼此必須先通過信任第三方的認(rèn)證,然后才能互相交換密鑰,而后進(jìn)行通信一種第三方認(rèn)證機(jī)制SKAU:管理員的私鑰PKB:B的公鑰PKA:A的公鑰N1:A的臨時交互號N2:B產(chǎn)生的新臨時交互號Kerberos協(xié)議Kerberos是在80年中期作為美國麻省理工學(xué)院“雅典娜計(jì)劃”(ProjectAthena)的一部分被開發(fā)的。Kerberos是一個分布式的認(rèn)證服務(wù),它允許一個進(jìn)程(或客戶)代表一個主體(或用戶)向驗(yàn)證者證明他的身份,而不需要通過網(wǎng)絡(luò)發(fā)送那些有可能會被攻擊者用來假冒主體身份的數(shù)據(jù)。Kerberos協(xié)議的應(yīng)用環(huán)境

KerberosClientServerKerberos系統(tǒng)架構(gòu)Kerberosv4認(rèn)證協(xié)議的流程(1)客戶端認(rèn)證Kerberosv4認(rèn)證協(xié)議的流程(2)取得與服務(wù)器通信的票據(jù)Kerberosv4認(rèn)證協(xié)議的流程(3)客戶端與服務(wù)器通信零知識證明Alice:“我知道聯(lián)邦儲備系統(tǒng)計(jì)算的口令”Bob:“不,你不知道”Alice:我知道Bob:你不知道Alice:我確實(shí)知道Bob:請你證實(shí)這一點(diǎn)Alice:好吧,我告訴你。(她悄悄說出了口令)Bob:太有趣了!現(xiàn)在我也知道了。我要告訴《華盛頓郵報(bào)》Alice:啊呀!零知識證明技術(shù)零知識證明技術(shù)可使信息的擁有者無需泄露任何信息就能夠向驗(yàn)證者或任何第三方證明它擁有該信息。零知識證明的基本協(xié)議

設(shè)P知道咒語,可打開C和D之間的秘密門,不知道者都將走向死胡同中。ABCD零知識證明的基本協(xié)議

(1)V站在A點(diǎn);

(2)P進(jìn)入洞中任一點(diǎn)C或D;

(3)當(dāng)P進(jìn)洞之后,V走到B點(diǎn);

(4)V叫P:(a)從左邊出來,或(b)從右邊出來;

(5)P按要求實(shí)現(xiàn)(以咒語,即解數(shù)學(xué)難題幫助);

(6)P和V重復(fù)執(zhí)行(1)~(5)共n次。若A不知咒語,則在B點(diǎn),只有50%的機(jī)會猜中B的要求,協(xié)議執(zhí)行n次,則只有2-n的機(jī)會完全猜中,若n=16,則若每次均通過B的檢驗(yàn),B受騙機(jī)會僅為1/65536最簡單的零知識證明問題要求:假如P想說服V,使V相信他確實(shí)知道n的因數(shù)p和q,但不能告訴V最簡單的步驟:V隨機(jī)選擇一整數(shù)x,計(jì)算x4modn的值,并告訴PP求x2modn并將它告訴VV驗(yàn)證x4modnV知道求x2modn等價(jià)于n的因數(shù)分解,若不掌握n的因數(shù)p和q,求解很困難。數(shù)字簽名消息認(rèn)證碼的不足可以保護(hù)通信雙方以防止第3者攻擊,不能保護(hù)通信雙方中一方防止另一方的欺騙和偽造。B偽造一個消息并使用與A共享的密鑰產(chǎn)生該消息的認(rèn)證碼,然后聲稱該消息來自于AB有可能偽造A發(fā)來的消息,所以A就可以對自己發(fā)過的消息予以否認(rèn)數(shù)字簽名的基本概念數(shù)字簽名由公鑰密碼發(fā)展而來,它在網(wǎng)絡(luò)安全,包括身份認(rèn)證、數(shù)據(jù)完整性、不可否認(rèn)性以及匿名性等方面有著重要應(yīng)用。手寫簽名的特征簽名是可信的簽名是不可偽造的簽名不可重用簽名后的文件是不可變的簽名是不可抵賴的簡單掃描手寫簽名是不能滿足要求的對數(shù)字簽名的要求要保證能夠驗(yàn)證作者及其簽名的日期時間必須能夠認(rèn)證簽名時刻的內(nèi)容簽名必須能夠由第三方驗(yàn)證,以解決爭議。更進(jìn)一步的要求依賴性:簽名必須是依賴于被簽名信息來產(chǎn)生;唯一性:簽名必須使用某些對發(fā)送者是唯一的信息,以防止雙方的偽造與否認(rèn);可驗(yàn)性:必須相對容易識別和驗(yàn)證該數(shù)字簽名;抗偽造:偽造該數(shù)字簽名在計(jì)算上是不可行的,根據(jù)一個已有的數(shù)字簽名來構(gòu)造消息是不可行的;對一個給定消息偽造數(shù)字簽名是不可行的;可用性:在存儲器中保存一個數(shù)字簽名副本是現(xiàn)實(shí)可行的。簽名方法直接數(shù)字簽名方法仲裁數(shù)字簽名方法直接數(shù)字簽名AB消息加密后的摘要消息散列函數(shù)A的私鑰摘要加密算法消息加密后的摘要A的公鑰解密算法解密后的摘要散列函數(shù)摘要比較加密后的摘要直接數(shù)字簽名的缺點(diǎn)直接數(shù)字簽名的執(zhí)行過程只有通信的雙方參與,并假定雙方有共享的秘密密鑰或者接收一方知道發(fā)送方的公開鑰。缺點(diǎn):方案的有效性取決于發(fā)方密鑰的安全性。發(fā)方可聲稱秘密鑰丟失或被竊仲裁數(shù)字簽名具有仲裁方式的數(shù)字簽名發(fā)方X對發(fā)往收方Y(jié)的消息簽名將消息和簽名先發(fā)往仲裁者AA對消息和簽名驗(yàn)證完后,再連同一個表示已通過驗(yàn)證的指令一起發(fā)給Y.具有仲裁方式的數(shù)字簽名例1:XA:M||AY:E:單鑰加密算法KXA,KAY:A與X和Y的共享密鑰M:消息T:時戳IDX:X的身份H(M):M的雜湊值在1中,X以EKXA[IDX‖H(M)]作為自己對M的簽名,將M及簽名發(fā)往A。在2中A將從X收到的內(nèi)容和IDX、T一起加密后發(fā)往Y,其中的T用于向Y表示所發(fā)的消息不是舊消息的重放。Y對收到的內(nèi)容解密后,將解密結(jié)果存儲起來以備出現(xiàn)爭議時使用。如果出現(xiàn)爭議,Y可聲稱自己收到的M的確來自X,并將EKAY[IDX‖M‖EKXA[IDX‖H(M)]]發(fā)給A,由A仲裁,A由KAY解密后,再用KXA對EKXA[IDX‖H(M)]解密,并對H(M)加以驗(yàn)證,從而驗(yàn)證了X的簽名。具有仲裁方式的數(shù)字簽名例2XA:IDX||AY:X

溫馨提示

  • 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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論