信息認(rèn)證技術(shù)概述課件_第1頁
信息認(rèn)證技術(shù)概述課件_第2頁
信息認(rèn)證技術(shù)概述課件_第3頁
信息認(rèn)證技術(shù)概述課件_第4頁
信息認(rèn)證技術(shù)概述課件_第5頁
已閱讀5頁,還剩105頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

第三章信息認(rèn)證技術(shù)3.1概述 3.2哈希函數(shù) 3.3消息認(rèn)證技術(shù) 3.4數(shù)字簽名 3.5身份認(rèn)證 第三章信息認(rèn)證技術(shù)3.1概述 13.1概述在網(wǎng)絡(luò)通信和電子商務(wù)中很容易發(fā)生如下問題。1.否認(rèn),發(fā)送信息的一方不承認(rèn)自己發(fā)送過某一信息。2.偽造,接收方偽造一份文件,并聲稱它來自某發(fā)送方的。3.冒充,網(wǎng)絡(luò)上的某個(gè)用戶冒充另一個(gè)用戶接收或發(fā)送信息。4.篡改,信息在網(wǎng)絡(luò)傳輸過程中已被篡改,或接收方對收到的信息進(jìn)行篡改。用數(shù)字簽名(DigitalSignature)可以有效地解決這些問題。數(shù)字簽名就是主要用于對數(shù)字信息進(jìn)行的簽名,以防止信息被偽造或篡改等。3.1概述在網(wǎng)絡(luò)通信和電子商務(wù)中很容易發(fā)生如下問題。用數(shù)字23.1概述一個(gè)安全的認(rèn)證系統(tǒng)應(yīng)滿足以下條件:(1)合法的接收者能夠檢驗(yàn)所接收消息的合法性和真實(shí)性。(2)合法的發(fā)送方對所發(fā)送的消息無法進(jìn)行否認(rèn)。(3)除了合法的發(fā)送方之外,任何人都無法偽造、篡改消息。3.1概述一個(gè)安全的認(rèn)證系統(tǒng)應(yīng)滿足以下條件:33.2哈希函數(shù)

哈希函數(shù),單向散列函數(shù)基本思想輸入任意長度的消息M,產(chǎn)生固定長度的數(shù)據(jù)輸出。向hash函數(shù)輸入一任意長度的信息M時(shí),hash函數(shù)將輸出一固定長度為m的散列值h。即:h=H(M)

3.2哈希函數(shù)哈希函數(shù),單向散列函數(shù)4性質(zhì):固定長度輸出散列值h。給定M,很容易計(jì)算h。給定h,根據(jù)H(M)=h計(jì)算M很難。給定M,找到另一消息M’,滿足H(M)=H(M’),在計(jì)算上是不可行的---弱抗碰撞性。對于任意兩個(gè)不同的消息M≠M(fèi)’,它們的散列值不可能相同---強(qiáng)抗碰撞性。注:碰撞性是指對于兩個(gè)不同的消息M和M’,如果它們的摘要值相同,則發(fā)生了碰撞。3.2哈希函數(shù)

性質(zhì):3.2哈希函數(shù)5安全散列函數(shù)的一般結(jié)構(gòu)與分組對稱密碼的CBC模式非常相似。函數(shù)的輸入M被分為b位的L個(gè)分組Y0,Y1,..YL-1,以及n位鏈接變量初值V0,通常b>n。反復(fù)調(diào)用壓縮函數(shù)f:Vi=f(Yi-1,Vi-1),i=1,2,..L。f輸出Vi仍然是n位。M的散列值H(M,V0)=VL算法的核心是壓縮函數(shù)f在對M的分組中,最后一組YL-1不足b位時(shí)填充0或者1將其補(bǔ)足。通常還將M的長度填充到最后一個(gè)分組中。fY0V0fY1V1fYL-1VL-1VL安全散列函數(shù)的一般結(jié)構(gòu)安全散列函數(shù)的一般結(jié)構(gòu)與分組對稱密碼的CBC模式6常用的哈希函數(shù)MD5SHA-1RIPEMD-160等等常用的哈希函數(shù)7MD5算法麻省理工學(xué)院RonRivest提出,可將任意長度的消息經(jīng)過變換得到一個(gè)128位的散列值。MD5算法:MD5以512位分組來處理輸入的信息,每一分組又被劃分為16個(gè)32位子分組,經(jīng)過了一系列的處理后,算法的輸出由四個(gè)32位分組組成,將這四個(gè)32位分組級聯(lián)后生成128位散列值。

MD5產(chǎn)生消息摘要的過程MD5算法麻省理工學(xué)院RonRivest提出,可將任意長度8MD5算法實(shí)現(xiàn)邏輯由4個(gè)步驟組成:S1:消息分組與填充。(1)將輸入信息M按順序每512位一組進(jìn)行分組:M=M1,M2,…,Mn-1,Mn(2)將信息M的Mn長度填充為448位。 當(dāng)Mn長度L(bit為單位)<448時(shí),在信息Mn后加一個(gè)“1”,然后再填充447-L個(gè)“0”,使最后的信息Mn長度為448位。當(dāng)Mn長度L>448時(shí),在信息Mn后加一個(gè)“1”,然后再填充512-L+447個(gè)“0”,使最后的信息Mn長度為512位,Mn+1長度為448位最后一個(gè)分組的后64位為M的位長度(低字節(jié)優(yōu)先)。S2:緩沖區(qū)初始化。MD5算法使用128位緩沖區(qū)存放處理過程的中間結(jié)果和最后的消息摘要值。這128位緩沖分為4個(gè)32位邏輯寄存器A、B、C、D。每個(gè)寄存器以Little-Endian存放數(shù)據(jù),其初始值為:A=0x1234567,B=0x89abcdef,C=0xfedcba98,D=0x7543210這四個(gè)32位變量被稱為鏈接變量,它們始終參與運(yùn)算并形成最終的散列值。MD5算法實(shí)現(xiàn)邏輯由4個(gè)步驟組成:9S3:對每個(gè)分組Mi進(jìn)行壓縮處理HMD5。HMD5是算法核心。HMD5內(nèi)部有4輪處理過程。每輪處理結(jié)構(gòu)一樣,但使用的位邏輯函數(shù)不同,分別表示為F、G、H、I。每輪處理的輸入是當(dāng)前正在處理的512位分組、128位緩沖區(qū)(A、B、C、D)的當(dāng)前值和常量表T中四分之一的常數(shù),即分別為T[1..16]、T[17…32]、T[33…48]、T[49...64]。第4輪處理的輸出再與第1輪的輸入CVq按照4個(gè)32位字進(jìn)行模232相加,結(jié)果即為壓縮函數(shù)HMD5對當(dāng)前512位分組的輸出。常量表T=T[1,…64]中各元素:T[i]=int(232×abs(sin(i))),為32位整型數(shù)。T作為予置的常數(shù)表,其作用是隨機(jī)化32位整型量,消除輸入數(shù)據(jù)的規(guī)律性。

壓縮函數(shù)HMD5每輪處理細(xì)節(jié)由對128位緩沖區(qū)(A、B、C、D)的16步迭代構(gòu)成,每一步運(yùn)算如下:

a←B+CLS(s,A+g(B,C,D)+X[k]+T[i]))其中,+為模232加法,CLS(s,w)是對32位字w循環(huán)左移s位。位邏輯函數(shù)g分別取F、G、H、I之一,X[k]=M[q×16+k],即消息的第q個(gè)分組中第k個(gè)32位字(k=1,2,..16)。512位分組的壓縮處理HMD5HMD5中每步的邏輯運(yùn)算S3:對每個(gè)分組Mi進(jìn)行壓縮處理HMD5。512位分組的壓10位邏輯運(yùn)算函數(shù)F、G、H、I定義如下:F(x,y,z)=(x&y)|((~x)&z)G(x,y,z)=(x&z)|(y&(~z))H(x,y,z)=x⊕y⊕zI(x,y,z)=z⊕(y&(~z))

上圖中ρj(i)表示各輪處理中使用16個(gè)32位字的不同次序(j=2,3,4)。其中第1輪按照初始次序;第2、3、4輪按照下式對(1,2,..16)進(jìn)行置換:ρ2(i)=(1+5*i)mod16ρ3(i)=(5+3*i)mod16ρ4(i)=(7*i)mod16S4:將消息M的L個(gè)分組處理完畢,最后一個(gè)分組處理的輸出即為消息M的摘要。因此,第3、4步可以總結(jié)為:CV0=V1CVq+1=CVq+RFI(Yq,RFH(Yq,RFG(Yq,RFF(Yq,CVq))))q=1,2,..(L-1)MD=CVL其中RFX()為與位邏輯函數(shù)X結(jié)合的輪處理過程(X=F、G、H、I),+為對應(yīng)32位字模232加法。V1取緩沖區(qū)(A、B、C、D)的初值。

位邏輯運(yùn)算函數(shù)F、G、H、I定義如下:11MD5算法的核心處理HMD5中重復(fù)進(jìn)行位邏輯運(yùn)算F、G、H、I,使得最終輸出的摘要中每一位與輸入消息中所有位相關(guān),因此達(dá)到很好的混淆效果。MD5在數(shù)據(jù)處理中廣泛使用。例如:用戶口令可以用MD5碼值秘密存儲。當(dāng)用戶輸入口令時(shí)先轉(zhuǎn)換為對應(yīng)MD5碼值,在和系統(tǒng)保存的密碼MD5值進(jìn)行比較(Linux)。這樣系統(tǒng)在未知用戶口令的情況下即可實(shí)現(xiàn)對口令的驗(yàn)證,同時(shí)用戶口令對于系統(tǒng)管理員也是未知的。MD5算法的核心處理HMD5中重復(fù)進(jìn)行位邏輯運(yùn)算F12SHA(SecureHashAlgorithm)是美國國家標(biāo)準(zhǔn)與技術(shù)研究所(NIST)提出,于1993年作為聯(lián)邦信息處理標(biāo)準(zhǔn)(FIPS180)發(fā)布的,1995年又發(fā)布了其修訂版(FIPS180-1),通常稱為SHA-1。與MD5相比,SHA-1生成160位的消息摘要,執(zhí)行速度有所降低,卻被認(rèn)為更安全。明文消息的最大長度可達(dá)到264位。3.2.3SHA-1算法SHA(SecureHashAlgorithm)是美國國13與MD5算法類似,SHA-1算法也需要對消息進(jìn)行填充補(bǔ)位。補(bǔ)位是這樣進(jìn)行的:先添加一個(gè)1,然后再添加多個(gè)0,使得消息長度滿足對512取模后余數(shù)是448。SHA-1的中間結(jié)果和最終結(jié)果保存在160位的緩沖區(qū)中,緩沖區(qū)用5個(gè)32位的變量表示,這些變量初始化為: A=0x67452301 B=0xefcdab89 C=0x98badcfe D=0x10325476 E=0xc3d2e1f03.2.3SHA-1算法與MD5算法類似,SHA-1算法也需要對消息進(jìn)行填充補(bǔ)位。314SHA-1的主循環(huán)

3.2.3SHA-1算法SHA-1的主循環(huán)3.2.3SHA-1算法15SHA-1的非線性函數(shù)

3.2.3SHA-1算法SHA-1的非線性函數(shù)3.2.3SHA-1算法16對512位的消息進(jìn)行處理,將其從16個(gè)32位的消息分組變成80個(gè)32位的消息分組。用到的80對常數(shù):3.2.3SHA-1算法對512位的消息進(jìn)行處理,將其從16個(gè)32位的消息分組變成817SHA-1的基本操作過程

3.2.3SHA-1算法SHA-1的基本操作過程3.2.3SHA-1算法181981年,NIST發(fā)布FIPS180-2,新增了三個(gè)哈希函數(shù),分別為SHA-256,SHA-384,SHA-512,其散列值的長度分別為256,384,512。同時(shí),NIST指出FIPS180-2的目的是要與使用AES而增加的安全性相適應(yīng)。SHA-1SHA-256SHA-384SHA-512散列值長度160256384512消息大小<264<264<2128<2128分組大小51251210241024字長32326464步數(shù)808080803.2.3SHA-1算法1981年,NIST發(fā)布FIPS180-2,新增了三個(gè)哈希193.3消息認(rèn)證技術(shù)網(wǎng)絡(luò)傳輸過程中信息保密性的要求: (1)對敏感的數(shù)據(jù)進(jìn)行加密,即使別人截獲文件也無法得到真實(shí)內(nèi)容。(2)保證數(shù)據(jù)的完整性,防止截獲人對數(shù)據(jù)進(jìn)行篡改。(3)對數(shù)據(jù)和信息的來源進(jìn)行驗(yàn)證,以確保發(fā)信人的身份。消息認(rèn)證是指使合法的接收方能夠檢驗(yàn)消息是否真實(shí)的方法。檢驗(yàn)內(nèi)容包括驗(yàn)證通信的雙方和驗(yàn)證消息內(nèi)容是否偽造或遭篡改。3.3消息認(rèn)證技術(shù)網(wǎng)絡(luò)傳輸過程中信息保密性的要求:20常見的認(rèn)證函數(shù):(1)消息加密:將整個(gè)消息的密文作為認(rèn)證碼。(2)哈希函數(shù):通過哈希函數(shù)使消息產(chǎn)生定長的散列值作為認(rèn)證碼。(3)消息認(rèn)證碼(MAC):將消息與密鑰一起產(chǎn)生定長值作為認(rèn)證碼。3.3消息認(rèn)證技術(shù)常見的認(rèn)證函數(shù):3.3消息認(rèn)證技術(shù)21基于對稱密鑰加密的消息認(rèn)證過程3.3消息認(rèn)證技術(shù)(1)消息加密認(rèn)證基于對稱密鑰加密的消息認(rèn)證過程3.3消息認(rèn)證技術(shù)(1)消22添加校驗(yàn)碼的消息認(rèn)證過程3.3消息認(rèn)證技術(shù)(1)消息加密認(rèn)證添加校驗(yàn)碼的消息認(rèn)證過程3.3消息認(rèn)證技術(shù)(1)消息加密23基于公鑰加密的消息認(rèn)證過程(1)消息加密認(rèn)證3.3消息認(rèn)證技術(shù)基于公鑰加密的消息認(rèn)證過程(1)消息加密認(rèn)證3.3消息認(rèn)24使用哈希函數(shù)的消息認(rèn)證過程

3.3消息認(rèn)證技術(shù)(2)哈希函數(shù)認(rèn)證使用哈希函數(shù)的消息認(rèn)證過程3.3消息認(rèn)證技術(shù)(2)哈希25保證機(jī)密性的哈希函數(shù)消息認(rèn)證過程(2)哈希函數(shù)認(rèn)證3.3消息認(rèn)證技術(shù)保證機(jī)密性的哈希函數(shù)消息認(rèn)證過程(2)哈希函數(shù)認(rèn)證3.326混合加密認(rèn)證

(2)哈希函數(shù)認(rèn)證3.3消息認(rèn)證技術(shù)混合加密認(rèn)證(2)哈希函數(shù)認(rèn)證3.3消息認(rèn)證技術(shù)27MAC函數(shù)與加密函數(shù)相似之處在于使用了密鑰,但差別在于加密函數(shù)是可逆的,而MAC函數(shù)可以是單向的,它無需可逆,因此比加密更不容易破解。哈希函數(shù)同樣也可以用來產(chǎn)生消息認(rèn)證碼。假設(shè)K是通信雙方A和B共同擁有的密鑰,A要發(fā)送消息M給B,在不需要進(jìn)行加密的條件下,A只需將M和K合起來一起通過哈希函數(shù)計(jì)算出其散列值,即H(M||K),該散列值就是M的消息認(rèn)證碼。3.3消息認(rèn)證技術(shù)(3)消息認(rèn)證碼(MAC)的認(rèn)證MAC函數(shù)與加密函數(shù)相似之處在于使用了密鑰,但差別在于加密函28基于消息認(rèn)證碼的認(rèn)證過程:MAC=C(M,K)=[H(M||k)或者DES密碼鏈接模式值]

(3)消息認(rèn)證碼(MAC)的認(rèn)證3.3消息認(rèn)證技術(shù)基于消息認(rèn)證碼的認(rèn)證過程:(3)消息認(rèn)證碼(MAC)的認(rèn)證293.4數(shù)字簽名用戶A與B相互之間要進(jìn)行通信,雙方擁有共享的會話密鑰K,在通信過程中可能會遇到如下問題:1)A偽造一條消息,并稱該消息來自B。A只需要產(chǎn)生一條偽造的息,用A和B的共享密鑰通過哈希函數(shù)產(chǎn)生認(rèn)證碼,并將認(rèn)證碼附于消息之后。由于哈希函數(shù)的單向性和密鑰K是共享的,因此無法證明該消息是A偽造的。2)B可以否認(rèn)曾經(jīng)發(fā)送過某條消息。因?yàn)槿魏稳硕加修k法偽造消息,所以無法證明B是否發(fā)送過該消息。哈希函數(shù)可以進(jìn)行報(bào)文鑒別,但無法阻止通信用戶的欺騙和抵賴行為。當(dāng)通信雙方不能互相信任,需要用除了報(bào)文鑒別技術(shù)以外的其他方法來防止類似的抵賴和欺騙行為。3.4數(shù)字簽名用戶A與B相互之間要進(jìn)行通信,雙方擁有共享的303.4數(shù)字簽名數(shù)字簽名也稱電子簽名?!耙噪娮有问剿交蜻壿嬌吓c其他電子數(shù)據(jù)相關(guān)的數(shù)據(jù),做為一種判別的方法?!甭?lián)合國貿(mào)法會《電子簽名示范法》定義為:“在數(shù)據(jù)電文中以電子形式所含、所附或在邏輯上與數(shù)據(jù)電文有聯(lián)系的數(shù)據(jù),它可用于鑒別與數(shù)據(jù)電文相關(guān)的簽名人和表明簽名人認(rèn)可數(shù)據(jù)電文所含信息。”數(shù)字簽名應(yīng)該能夠在數(shù)據(jù)通信過程中識別通信雙方的真實(shí)身份,保證通信的真實(shí)性以及不可抵賴性,起到與手寫簽名或者蓋章同等作用。3.4數(shù)字簽名數(shù)字簽名也稱電子簽名。31簽名應(yīng)該具有的特征:(1)可信。因?yàn)锽是用A的公鑰解開加密文件的,這說明原文件只能被A的私鑰加密而只有A才知道自己的私鑰。(2)無法被偽造。只有A知道自己的私鑰。因此只有A能用自己的私鑰加密一個(gè)文件。(3)無法重復(fù)使用。簽名在這里就是一個(gè)加密過程,自己無法重復(fù)使用。(4)文件被簽名以后是無法被篡改的。因?yàn)榧用芎蟮奈募桓膭雍笫菬o法被A的公鑰解開的。(5)簽名具有不可否認(rèn)性。因?yàn)槌鼳以外無人能用A的私鑰加密一個(gè)文件。3.4數(shù)字簽名簽名應(yīng)該具有的特征:3.4數(shù)字簽名321.直接數(shù)字簽名3.4.2數(shù)字簽名的實(shí)現(xiàn)1.直接數(shù)字簽名3.4.2數(shù)字簽名的實(shí)現(xiàn)33用戶A與B要進(jìn)行通信,每個(gè)從A發(fā)往B的簽名報(bào)文首先都先發(fā)送給仲裁者C,C檢驗(yàn)該報(bào)文及其簽名的出處和內(nèi)容,然后對報(bào)文注明日期,同時(shí)指明該報(bào)文已通過仲裁者的檢驗(yàn)。仲裁者的引入解決了直接簽名方案中所面臨的問題,及發(fā)送方的否認(rèn)行為。2.仲裁數(shù)字簽名3.4.2數(shù)字簽名的實(shí)現(xiàn)用戶A與B要進(jìn)行通信,每個(gè)從A發(fā)往B的簽名報(bào)文首先都先發(fā)送給34方案1(基于對稱加密算法,消息M不加密)[1]A→C:M||EKA(IDA||H(M))[2]C→B:EKB(IDA||M||EKA(IDA||H(M))||T)方案2(基于對稱加密算法,消息M加密)[1]A→C:IDA||EKS(M)||EKA(IDA||H(EKS(M)))[2]C→B:EKB(IDA||EKS(M)||EKA(IDA||H(EKS(M)))||T)方案3(基于公鑰加密算法,消息M加密)[1]A→C:IDA||EKAS(IDA||EKBP(EKAS(M)))[2]C→B:EKCS(IDA||EKBP(EKAS(M))||T)3.4.2數(shù)字簽名的實(shí)現(xiàn)2.仲裁數(shù)字簽名方案1(基于對稱加密算法,消息M不加密)3.4.2數(shù)字簽名35數(shù)字簽名標(biāo)準(zhǔn)(DigitalSignatureStandard,DSS)是美國國家標(biāo)準(zhǔn)技術(shù)局(NIST)在1991年提出作為美國聯(lián)邦信息處理標(biāo)準(zhǔn)(FIPS)。它采用了美國國家安全局(NSA)主持開發(fā)的數(shù)字簽名算法(DigitalSignatureAlgorithm,DSA),DSS使用安全散列算法(SHA),給出一種新的數(shù)字簽名方法。DSS在出后,分別于1993年和1996年做了修改。2000年發(fā)布該標(biāo)準(zhǔn)的擴(kuò)充版,即FIPS186-2,其中包括基于RSA和橢圓曲線密碼的數(shù)字簽名算法。3.4.3數(shù)字簽名標(biāo)準(zhǔn)數(shù)字簽名標(biāo)準(zhǔn)(DigitalSignatur36RSA數(shù)字簽名方法3.4.3數(shù)字簽名標(biāo)準(zhǔn)RSA數(shù)字簽名方法3.4.3數(shù)字簽名標(biāo)準(zhǔn)37DSS數(shù)字簽名方法3.4.3數(shù)字簽名標(biāo)準(zhǔn)DSS數(shù)字簽名方法3.4.3數(shù)字簽名標(biāo)準(zhǔn)38DSS簽名函數(shù)

3.4.3數(shù)字簽名標(biāo)準(zhǔn)DSS簽名函數(shù)3.4.3數(shù)字簽名標(biāo)準(zhǔn)39圖3.17DSS驗(yàn)證函數(shù)

圖3.17DSS驗(yàn)證函數(shù)403.5身份認(rèn)證身份認(rèn)證目的--對通信中一方的身份進(jìn)行標(biāo)識和驗(yàn)證。方法驗(yàn)證用戶所擁有的可被識別的特征。身份認(rèn)證系統(tǒng)構(gòu)成:被驗(yàn)證身份者(示證者);驗(yàn)證者攻擊者可信任的機(jī)構(gòu)作為仲裁或調(diào)解機(jī)構(gòu)。3.5身份認(rèn)證身份認(rèn)證目的--對通信中一方的身份進(jìn)行標(biāo)識413.5身份認(rèn)證在網(wǎng)絡(luò)通信中,身份認(rèn)證就是用某種方法證明用戶身份是合法的??诹罴夹g(shù)是目前常用的身份認(rèn)證技術(shù)。問題:口令泄露??诹钚孤锻緩降卿洉r(shí)被他人窺視;攻擊者從計(jì)算機(jī)中存放口令的文件中讀到;口令被在線攻擊猜測出;被離線攻擊搜索到。3.5身份認(rèn)證在網(wǎng)絡(luò)通信中,身份認(rèn)證就是用某種方法證明用戶423.5身份認(rèn)證用密碼學(xué)方法的身份認(rèn)證協(xié)議比傳統(tǒng)的口令認(rèn)證更安全。身份認(rèn)證協(xié)議構(gòu)成:兩個(gè)通信方,可能還會有一個(gè)雙方都信任的第三方參與進(jìn)行。其中一個(gè)通信方按照協(xié)議的規(guī)定向另一方或者第三方發(fā)出認(rèn)證請求,對方按照協(xié)議的規(guī)定作出響應(yīng),當(dāng)協(xié)議順利執(zhí)行完畢時(shí)雙方應(yīng)該確信對方的身份。從使用加密的方法分類:基于對稱密鑰的身份認(rèn)證基于公鑰加密的身份認(rèn)證。從認(rèn)證的方向性分類:相互認(rèn)證單向認(rèn)證3.5身份認(rèn)證用密碼學(xué)方法的身份認(rèn)證協(xié)議比傳統(tǒng)的口令認(rèn)證更433.5身份認(rèn)證重放攻擊:簡單重放:攻擊者簡單地復(fù)制消息并在此之后重放這條消息??蓹z測的重放:攻擊者在有效的時(shí)限內(nèi)重放有時(shí)間戳的消息。不可檢測的重放:由于原始消息可能被禁止而不能到達(dá)接收方,只有通過重放消息才能發(fā)送給接收方,此時(shí)可能出現(xiàn)這種攻擊。不加修改的逆向重放:如果使用對稱密碼,并且發(fā)送方不能根據(jù)內(nèi)容來區(qū)分發(fā)出的消息和接收的消息,那么可能出現(xiàn)這種攻擊。3.5身份認(rèn)證重放攻擊:443.5身份認(rèn)證對重放攻擊預(yù)防:序列號為每個(gè)需要認(rèn)證的消息添加一個(gè)序列號,新的消息到達(dá)后先對序列號進(jìn)行檢查,只有滿足正確次序的序列號的消息才能被接收。時(shí)間戳為傳送的報(bào)文添加時(shí)間戳,當(dāng)接收到新的消息時(shí),首先對時(shí)間戳進(jìn)行檢查,只有在消息的時(shí)間戳與本地時(shí)鐘足夠接近時(shí),才認(rèn)為該消息是一個(gè)新的消息。隨機(jī)數(shù)/響應(yīng)在接收消息前首先要發(fā)送一個(gè)臨時(shí)的交互號(隨機(jī)數(shù)),并要求所發(fā)送的消息要包含該臨時(shí)交互號。3.5身份認(rèn)證對重放攻擊預(yù)防:453.5身份認(rèn)證基于口令的身份認(rèn)證(單向)1)A→S:IDA||PWA

Server保存(IDA,H(PWA))A→S:IDA||salt||PWA//salt:隨機(jī)數(shù)

Server保存(IDA,salt,H(PWA,salt))3)哈希鏈方法:倒序遞減保存口令的Hash值,防止對相同口令的竊聽3.5身份認(rèn)證基于口令的身份認(rèn)證(單向)463.5身份認(rèn)證基于對稱密鑰的雙向身份認(rèn)證

(1)Needham-Schroeder協(xié)議Needham-Schroeder協(xié)議利用KDC進(jìn)行密鑰分配,同時(shí)具備了身份認(rèn)證的功能。假設(shè)通信雙方A、B和KDC分別共享密鑰Ka和Kb。 [1]A→KDC:IDA||IDB||N1 [2]KDC→A:EKa(Ks||IDB||N1||EKb(Ks||IDA)) [3]A→B:EKb(Ks||IDA)//有可能被重放 [4]B→A:EKs(N2) [5]A→B:EKs(f(N2))3.5身份認(rèn)證基于對稱密鑰的雙向身份認(rèn)證473.5身份認(rèn)證基于對稱密鑰的雙向身份認(rèn)證

(2)Denning協(xié)議Denning協(xié)議對Needham-Schroeder協(xié)議進(jìn)行了修改,引入了時(shí)間戳機(jī)制[1]A→KDC:IDa||IDb

[2]KDC→A:EKa(Ks||IDb||T||EKb(Ks||IDa||T))[3]A→B:EKb(Ks||IDa||T)[4]B→A:EKs(N1)[5]A→B:EKs(f(N1))3.5身份認(rèn)證基于對稱密鑰的雙向身份認(rèn)證483.5身份認(rèn)證基于對稱密鑰的雙向身份認(rèn)證

(3)Neuman-Stubblebine協(xié)議Neuman-Stubblebine協(xié)議的提出是為了試圖解決抑制-重放攻擊,同時(shí)解決Needham-Schroeder協(xié)議中出現(xiàn)的問題:[1]A→B:IDA||N1[2]B→KDC:IDB||N2||EKb(IDA||N1||T)[3]KDC→A:EKa(IDB||N1||KS||T)||EKb(IDA||KS||T)||N2[4]A→B:EKb(IDA||KS||T)||EKs(N2)3.5身份認(rèn)證基于對稱密鑰的雙向身份認(rèn)證493.5身份認(rèn)證2.基于對稱密鑰的單向身份認(rèn)證 基于對稱密鑰的單向認(rèn)證一般也采用以KDC為基礎(chǔ)的方法。但是在電子郵件的應(yīng)用中,無法要求發(fā)送方和接收方同時(shí)在線,因此在協(xié)議過程中不存在雙方的交互。具體過程如下: [1]A→KDC:IDA||IDB||N1 [2]KDC→A:EKa(KS||IDB||N1||EKb(KS||IDA))[3]A→B:EKb(IDA||KS)||EKs(M)3.5身份認(rèn)證2.基于對稱密鑰的單向身份認(rèn)證503.5身份認(rèn)證基于公鑰的雙向身份認(rèn)證

(1)Denning-Sacco協(xié)議是一種使用時(shí)間戳機(jī)制的公鑰分配和認(rèn)證方法。假設(shè)通信雙方分別為A和B,AS為認(rèn)證服務(wù)器。

[1]A→AS:IDA||IDB [2]AS→A:EKsas(IDA||Kpa||T)||EKsas(IDB||Kpb||T) [3]A→B:EKsas(IDA||Kpa||T)||EKsas(IDB||Kpb||T)||EKpb(EKsa(KS||T))AS對A的證書簽名AS對B的證書簽名A對本次回話密鑰簽名3.5身份認(rèn)證基于公鑰的雙向身份認(rèn)證AS對A的證書簽名A513.5身份認(rèn)證基于公鑰的雙向身份認(rèn)證

(2)Woo-Lam協(xié)議Woo-Lam協(xié)議使用隨機(jī)數(shù)作為臨時(shí)交互值來代替時(shí)間戳。 [1]A→KDC:IDA||IDB [2]KDC→A:EKsk(IDB||KPb) [3]A→B:EKPb(N1||IDA) [4]B→KDC:IDB||IDA||EKPk(N1) [5]KDC→B:EKsk(IDA||KPa)||EKPb(EKsk(N1||KS||IDB)) [6]B→A:EKPa(EKsk(N1||KS||IDB)||N2) [7]A→B:EKs(N2)3.5身份認(rèn)證基于公鑰的雙向身份認(rèn)證523.5身份認(rèn)證基于公鑰的雙向身份認(rèn)證

改進(jìn)[1]A→KDC:IDA||IDB[2]KDC→A:EKRk(IDB||KUb)[3]A→B:EKub(N1||IDA)[4]B→KDC:IDB||IDA||EKUk(N1)[5]KDC→B:EKRk(IDA||KUa)||EKUb(EKRk(N1||KS||IDA||IDB))[6]B→A:EKUa(EKRk(N1||KS||IDA||IDB)||N2)[7]A→B:EKs(N2)3.5身份認(rèn)證基于公鑰的雙向身份認(rèn)證533.5身份認(rèn)證2.基于公鑰的單向身份認(rèn)證使用公鑰進(jìn)行驗(yàn)證的步驟相對簡潔,主要有如下幾種使用方法:(1)A→B:EKPb(KS)||EKs(M)(2)A→B:EKsa(H(M))||M(3)A→B:EKPb(KS)||EKs(M||EKsa(H(M)))(4)A→B:EKPb(KS)||EKs(M||EKsa(H(M)))||EKsca(T||IDA||KUa)CA的私鑰3.5身份認(rèn)證2.基于公鑰的單向身份認(rèn)證CA的私鑰54序列密碼實(shí)現(xiàn)參照P298界面實(shí)現(xiàn)對文本文件的序列密碼加密序列密碼發(fā)生器選擇:1)RC42)混沌序列發(fā)生器:實(shí)驗(yàn)一序列密碼實(shí)現(xiàn)實(shí)驗(yàn)一55第三章信息認(rèn)證技術(shù)3.1概述 3.2哈希函數(shù) 3.3消息認(rèn)證技術(shù) 3.4數(shù)字簽名 3.5身份認(rèn)證 第三章信息認(rèn)證技術(shù)3.1概述 563.1概述在網(wǎng)絡(luò)通信和電子商務(wù)中很容易發(fā)生如下問題。1.否認(rèn),發(fā)送信息的一方不承認(rèn)自己發(fā)送過某一信息。2.偽造,接收方偽造一份文件,并聲稱它來自某發(fā)送方的。3.冒充,網(wǎng)絡(luò)上的某個(gè)用戶冒充另一個(gè)用戶接收或發(fā)送信息。4.篡改,信息在網(wǎng)絡(luò)傳輸過程中已被篡改,或接收方對收到的信息進(jìn)行篡改。用數(shù)字簽名(DigitalSignature)可以有效地解決這些問題。數(shù)字簽名就是主要用于對數(shù)字信息進(jìn)行的簽名,以防止信息被偽造或篡改等。3.1概述在網(wǎng)絡(luò)通信和電子商務(wù)中很容易發(fā)生如下問題。用數(shù)字573.1概述一個(gè)安全的認(rèn)證系統(tǒng)應(yīng)滿足以下條件:(1)合法的接收者能夠檢驗(yàn)所接收消息的合法性和真實(shí)性。(2)合法的發(fā)送方對所發(fā)送的消息無法進(jìn)行否認(rèn)。(3)除了合法的發(fā)送方之外,任何人都無法偽造、篡改消息。3.1概述一個(gè)安全的認(rèn)證系統(tǒng)應(yīng)滿足以下條件:583.2哈希函數(shù)

哈希函數(shù),單向散列函數(shù)基本思想輸入任意長度的消息M,產(chǎn)生固定長度的數(shù)據(jù)輸出。向hash函數(shù)輸入一任意長度的信息M時(shí),hash函數(shù)將輸出一固定長度為m的散列值h。即:h=H(M)

3.2哈希函數(shù)哈希函數(shù),單向散列函數(shù)59性質(zhì):固定長度輸出散列值h。給定M,很容易計(jì)算h。給定h,根據(jù)H(M)=h計(jì)算M很難。給定M,找到另一消息M’,滿足H(M)=H(M’),在計(jì)算上是不可行的---弱抗碰撞性。對于任意兩個(gè)不同的消息M≠M(fèi)’,它們的散列值不可能相同---強(qiáng)抗碰撞性。注:碰撞性是指對于兩個(gè)不同的消息M和M’,如果它們的摘要值相同,則發(fā)生了碰撞。3.2哈希函數(shù)

性質(zhì):3.2哈希函數(shù)60安全散列函數(shù)的一般結(jié)構(gòu)與分組對稱密碼的CBC模式非常相似。函數(shù)的輸入M被分為b位的L個(gè)分組Y0,Y1,..YL-1,以及n位鏈接變量初值V0,通常b>n。反復(fù)調(diào)用壓縮函數(shù)f:Vi=f(Yi-1,Vi-1),i=1,2,..L。f輸出Vi仍然是n位。M的散列值H(M,V0)=VL算法的核心是壓縮函數(shù)f在對M的分組中,最后一組YL-1不足b位時(shí)填充0或者1將其補(bǔ)足。通常還將M的長度填充到最后一個(gè)分組中。fY0V0fY1V1fYL-1VL-1VL安全散列函數(shù)的一般結(jié)構(gòu)安全散列函數(shù)的一般結(jié)構(gòu)與分組對稱密碼的CBC模式61常用的哈希函數(shù)MD5SHA-1RIPEMD-160等等常用的哈希函數(shù)62MD5算法麻省理工學(xué)院RonRivest提出,可將任意長度的消息經(jīng)過變換得到一個(gè)128位的散列值。MD5算法:MD5以512位分組來處理輸入的信息,每一分組又被劃分為16個(gè)32位子分組,經(jīng)過了一系列的處理后,算法的輸出由四個(gè)32位分組組成,將這四個(gè)32位分組級聯(lián)后生成128位散列值。

MD5產(chǎn)生消息摘要的過程MD5算法麻省理工學(xué)院RonRivest提出,可將任意長度63MD5算法實(shí)現(xiàn)邏輯由4個(gè)步驟組成:S1:消息分組與填充。(1)將輸入信息M按順序每512位一組進(jìn)行分組:M=M1,M2,…,Mn-1,Mn(2)將信息M的Mn長度填充為448位。 當(dāng)Mn長度L(bit為單位)<448時(shí),在信息Mn后加一個(gè)“1”,然后再填充447-L個(gè)“0”,使最后的信息Mn長度為448位。當(dāng)Mn長度L>448時(shí),在信息Mn后加一個(gè)“1”,然后再填充512-L+447個(gè)“0”,使最后的信息Mn長度為512位,Mn+1長度為448位最后一個(gè)分組的后64位為M的位長度(低字節(jié)優(yōu)先)。S2:緩沖區(qū)初始化。MD5算法使用128位緩沖區(qū)存放處理過程的中間結(jié)果和最后的消息摘要值。這128位緩沖分為4個(gè)32位邏輯寄存器A、B、C、D。每個(gè)寄存器以Little-Endian存放數(shù)據(jù),其初始值為:A=0x1234567,B=0x89abcdef,C=0xfedcba98,D=0x7543210這四個(gè)32位變量被稱為鏈接變量,它們始終參與運(yùn)算并形成最終的散列值。MD5算法實(shí)現(xiàn)邏輯由4個(gè)步驟組成:64S3:對每個(gè)分組Mi進(jìn)行壓縮處理HMD5。HMD5是算法核心。HMD5內(nèi)部有4輪處理過程。每輪處理結(jié)構(gòu)一樣,但使用的位邏輯函數(shù)不同,分別表示為F、G、H、I。每輪處理的輸入是當(dāng)前正在處理的512位分組、128位緩沖區(qū)(A、B、C、D)的當(dāng)前值和常量表T中四分之一的常數(shù),即分別為T[1..16]、T[17…32]、T[33…48]、T[49...64]。第4輪處理的輸出再與第1輪的輸入CVq按照4個(gè)32位字進(jìn)行模232相加,結(jié)果即為壓縮函數(shù)HMD5對當(dāng)前512位分組的輸出。常量表T=T[1,…64]中各元素:T[i]=int(232×abs(sin(i))),為32位整型數(shù)。T作為予置的常數(shù)表,其作用是隨機(jī)化32位整型量,消除輸入數(shù)據(jù)的規(guī)律性。

壓縮函數(shù)HMD5每輪處理細(xì)節(jié)由對128位緩沖區(qū)(A、B、C、D)的16步迭代構(gòu)成,每一步運(yùn)算如下:

a←B+CLS(s,A+g(B,C,D)+X[k]+T[i]))其中,+為模232加法,CLS(s,w)是對32位字w循環(huán)左移s位。位邏輯函數(shù)g分別取F、G、H、I之一,X[k]=M[q×16+k],即消息的第q個(gè)分組中第k個(gè)32位字(k=1,2,..16)。512位分組的壓縮處理HMD5HMD5中每步的邏輯運(yùn)算S3:對每個(gè)分組Mi進(jìn)行壓縮處理HMD5。512位分組的壓65位邏輯運(yùn)算函數(shù)F、G、H、I定義如下:F(x,y,z)=(x&y)|((~x)&z)G(x,y,z)=(x&z)|(y&(~z))H(x,y,z)=x⊕y⊕zI(x,y,z)=z⊕(y&(~z))

上圖中ρj(i)表示各輪處理中使用16個(gè)32位字的不同次序(j=2,3,4)。其中第1輪按照初始次序;第2、3、4輪按照下式對(1,2,..16)進(jìn)行置換:ρ2(i)=(1+5*i)mod16ρ3(i)=(5+3*i)mod16ρ4(i)=(7*i)mod16S4:將消息M的L個(gè)分組處理完畢,最后一個(gè)分組處理的輸出即為消息M的摘要。因此,第3、4步可以總結(jié)為:CV0=V1CVq+1=CVq+RFI(Yq,RFH(Yq,RFG(Yq,RFF(Yq,CVq))))q=1,2,..(L-1)MD=CVL其中RFX()為與位邏輯函數(shù)X結(jié)合的輪處理過程(X=F、G、H、I),+為對應(yīng)32位字模232加法。V1取緩沖區(qū)(A、B、C、D)的初值。

位邏輯運(yùn)算函數(shù)F、G、H、I定義如下:66MD5算法的核心處理HMD5中重復(fù)進(jìn)行位邏輯運(yùn)算F、G、H、I,使得最終輸出的摘要中每一位與輸入消息中所有位相關(guān),因此達(dá)到很好的混淆效果。MD5在數(shù)據(jù)處理中廣泛使用。例如:用戶口令可以用MD5碼值秘密存儲。當(dāng)用戶輸入口令時(shí)先轉(zhuǎn)換為對應(yīng)MD5碼值,在和系統(tǒng)保存的密碼MD5值進(jìn)行比較(Linux)。這樣系統(tǒng)在未知用戶口令的情況下即可實(shí)現(xiàn)對口令的驗(yàn)證,同時(shí)用戶口令對于系統(tǒng)管理員也是未知的。MD5算法的核心處理HMD5中重復(fù)進(jìn)行位邏輯運(yùn)算F67SHA(SecureHashAlgorithm)是美國國家標(biāo)準(zhǔn)與技術(shù)研究所(NIST)提出,于1993年作為聯(lián)邦信息處理標(biāo)準(zhǔn)(FIPS180)發(fā)布的,1995年又發(fā)布了其修訂版(FIPS180-1),通常稱為SHA-1。與MD5相比,SHA-1生成160位的消息摘要,執(zhí)行速度有所降低,卻被認(rèn)為更安全。明文消息的最大長度可達(dá)到264位。3.2.3SHA-1算法SHA(SecureHashAlgorithm)是美國國68與MD5算法類似,SHA-1算法也需要對消息進(jìn)行填充補(bǔ)位。補(bǔ)位是這樣進(jìn)行的:先添加一個(gè)1,然后再添加多個(gè)0,使得消息長度滿足對512取模后余數(shù)是448。SHA-1的中間結(jié)果和最終結(jié)果保存在160位的緩沖區(qū)中,緩沖區(qū)用5個(gè)32位的變量表示,這些變量初始化為: A=0x67452301 B=0xefcdab89 C=0x98badcfe D=0x10325476 E=0xc3d2e1f03.2.3SHA-1算法與MD5算法類似,SHA-1算法也需要對消息進(jìn)行填充補(bǔ)位。369SHA-1的主循環(huán)

3.2.3SHA-1算法SHA-1的主循環(huán)3.2.3SHA-1算法70SHA-1的非線性函數(shù)

3.2.3SHA-1算法SHA-1的非線性函數(shù)3.2.3SHA-1算法71對512位的消息進(jìn)行處理,將其從16個(gè)32位的消息分組變成80個(gè)32位的消息分組。用到的80對常數(shù):3.2.3SHA-1算法對512位的消息進(jìn)行處理,將其從16個(gè)32位的消息分組變成872SHA-1的基本操作過程

3.2.3SHA-1算法SHA-1的基本操作過程3.2.3SHA-1算法731981年,NIST發(fā)布FIPS180-2,新增了三個(gè)哈希函數(shù),分別為SHA-256,SHA-384,SHA-512,其散列值的長度分別為256,384,512。同時(shí),NIST指出FIPS180-2的目的是要與使用AES而增加的安全性相適應(yīng)。SHA-1SHA-256SHA-384SHA-512散列值長度160256384512消息大小<264<264<2128<2128分組大小51251210241024字長32326464步數(shù)808080803.2.3SHA-1算法1981年,NIST發(fā)布FIPS180-2,新增了三個(gè)哈希743.3消息認(rèn)證技術(shù)網(wǎng)絡(luò)傳輸過程中信息保密性的要求: (1)對敏感的數(shù)據(jù)進(jìn)行加密,即使別人截獲文件也無法得到真實(shí)內(nèi)容。(2)保證數(shù)據(jù)的完整性,防止截獲人對數(shù)據(jù)進(jìn)行篡改。(3)對數(shù)據(jù)和信息的來源進(jìn)行驗(yàn)證,以確保發(fā)信人的身份。消息認(rèn)證是指使合法的接收方能夠檢驗(yàn)消息是否真實(shí)的方法。檢驗(yàn)內(nèi)容包括驗(yàn)證通信的雙方和驗(yàn)證消息內(nèi)容是否偽造或遭篡改。3.3消息認(rèn)證技術(shù)網(wǎng)絡(luò)傳輸過程中信息保密性的要求:75常見的認(rèn)證函數(shù):(1)消息加密:將整個(gè)消息的密文作為認(rèn)證碼。(2)哈希函數(shù):通過哈希函數(shù)使消息產(chǎn)生定長的散列值作為認(rèn)證碼。(3)消息認(rèn)證碼(MAC):將消息與密鑰一起產(chǎn)生定長值作為認(rèn)證碼。3.3消息認(rèn)證技術(shù)常見的認(rèn)證函數(shù):3.3消息認(rèn)證技術(shù)76基于對稱密鑰加密的消息認(rèn)證過程3.3消息認(rèn)證技術(shù)(1)消息加密認(rèn)證基于對稱密鑰加密的消息認(rèn)證過程3.3消息認(rèn)證技術(shù)(1)消77添加校驗(yàn)碼的消息認(rèn)證過程3.3消息認(rèn)證技術(shù)(1)消息加密認(rèn)證添加校驗(yàn)碼的消息認(rèn)證過程3.3消息認(rèn)證技術(shù)(1)消息加密78基于公鑰加密的消息認(rèn)證過程(1)消息加密認(rèn)證3.3消息認(rèn)證技術(shù)基于公鑰加密的消息認(rèn)證過程(1)消息加密認(rèn)證3.3消息認(rèn)79使用哈希函數(shù)的消息認(rèn)證過程

3.3消息認(rèn)證技術(shù)(2)哈希函數(shù)認(rèn)證使用哈希函數(shù)的消息認(rèn)證過程3.3消息認(rèn)證技術(shù)(2)哈希80保證機(jī)密性的哈希函數(shù)消息認(rèn)證過程(2)哈希函數(shù)認(rèn)證3.3消息認(rèn)證技術(shù)保證機(jī)密性的哈希函數(shù)消息認(rèn)證過程(2)哈希函數(shù)認(rèn)證3.381混合加密認(rèn)證

(2)哈希函數(shù)認(rèn)證3.3消息認(rèn)證技術(shù)混合加密認(rèn)證(2)哈希函數(shù)認(rèn)證3.3消息認(rèn)證技術(shù)82MAC函數(shù)與加密函數(shù)相似之處在于使用了密鑰,但差別在于加密函數(shù)是可逆的,而MAC函數(shù)可以是單向的,它無需可逆,因此比加密更不容易破解。哈希函數(shù)同樣也可以用來產(chǎn)生消息認(rèn)證碼。假設(shè)K是通信雙方A和B共同擁有的密鑰,A要發(fā)送消息M給B,在不需要進(jìn)行加密的條件下,A只需將M和K合起來一起通過哈希函數(shù)計(jì)算出其散列值,即H(M||K),該散列值就是M的消息認(rèn)證碼。3.3消息認(rèn)證技術(shù)(3)消息認(rèn)證碼(MAC)的認(rèn)證MAC函數(shù)與加密函數(shù)相似之處在于使用了密鑰,但差別在于加密函83基于消息認(rèn)證碼的認(rèn)證過程:MAC=C(M,K)=[H(M||k)或者DES密碼鏈接模式值]

(3)消息認(rèn)證碼(MAC)的認(rèn)證3.3消息認(rèn)證技術(shù)基于消息認(rèn)證碼的認(rèn)證過程:(3)消息認(rèn)證碼(MAC)的認(rèn)證843.4數(shù)字簽名用戶A與B相互之間要進(jìn)行通信,雙方擁有共享的會話密鑰K,在通信過程中可能會遇到如下問題:1)A偽造一條消息,并稱該消息來自B。A只需要產(chǎn)生一條偽造的息,用A和B的共享密鑰通過哈希函數(shù)產(chǎn)生認(rèn)證碼,并將認(rèn)證碼附于消息之后。由于哈希函數(shù)的單向性和密鑰K是共享的,因此無法證明該消息是A偽造的。2)B可以否認(rèn)曾經(jīng)發(fā)送過某條消息。因?yàn)槿魏稳硕加修k法偽造消息,所以無法證明B是否發(fā)送過該消息。哈希函數(shù)可以進(jìn)行報(bào)文鑒別,但無法阻止通信用戶的欺騙和抵賴行為。當(dāng)通信雙方不能互相信任,需要用除了報(bào)文鑒別技術(shù)以外的其他方法來防止類似的抵賴和欺騙行為。3.4數(shù)字簽名用戶A與B相互之間要進(jìn)行通信,雙方擁有共享的853.4數(shù)字簽名數(shù)字簽名也稱電子簽名?!耙噪娮有问剿交蜻壿嬌吓c其他電子數(shù)據(jù)相關(guān)的數(shù)據(jù),做為一種判別的方法?!甭?lián)合國貿(mào)法會《電子簽名示范法》定義為:“在數(shù)據(jù)電文中以電子形式所含、所附或在邏輯上與數(shù)據(jù)電文有聯(lián)系的數(shù)據(jù),它可用于鑒別與數(shù)據(jù)電文相關(guān)的簽名人和表明簽名人認(rèn)可數(shù)據(jù)電文所含信息。”數(shù)字簽名應(yīng)該能夠在數(shù)據(jù)通信過程中識別通信雙方的真實(shí)身份,保證通信的真實(shí)性以及不可抵賴性,起到與手寫簽名或者蓋章同等作用。3.4數(shù)字簽名數(shù)字簽名也稱電子簽名。86簽名應(yīng)該具有的特征:(1)可信。因?yàn)锽是用A的公鑰解開加密文件的,這說明原文件只能被A的私鑰加密而只有A才知道自己的私鑰。(2)無法被偽造。只有A知道自己的私鑰。因此只有A能用自己的私鑰加密一個(gè)文件。(3)無法重復(fù)使用。簽名在這里就是一個(gè)加密過程,自己無法重復(fù)使用。(4)文件被簽名以后是無法被篡改的。因?yàn)榧用芎蟮奈募桓膭雍笫菬o法被A的公鑰解開的。(5)簽名具有不可否認(rèn)性。因?yàn)槌鼳以外無人能用A的私鑰加密一個(gè)文件。3.4數(shù)字簽名簽名應(yīng)該具有的特征:3.4數(shù)字簽名871.直接數(shù)字簽名3.4.2數(shù)字簽名的實(shí)現(xiàn)1.直接數(shù)字簽名3.4.2數(shù)字簽名的實(shí)現(xiàn)88用戶A與B要進(jìn)行通信,每個(gè)從A發(fā)往B的簽名報(bào)文首先都先發(fā)送給仲裁者C,C檢驗(yàn)該報(bào)文及其簽名的出處和內(nèi)容,然后對報(bào)文注明日期,同時(shí)指明該報(bào)文已通過仲裁者的檢驗(yàn)。仲裁者的引入解決了直接簽名方案中所面臨的問題,及發(fā)送方的否認(rèn)行為。2.仲裁數(shù)字簽名3.4.2數(shù)字簽名的實(shí)現(xiàn)用戶A與B要進(jìn)行通信,每個(gè)從A發(fā)往B的簽名報(bào)文首先都先發(fā)送給89方案1(基于對稱加密算法,消息M不加密)[1]A→C:M||EKA(IDA||H(M))[2]C→B:EKB(IDA||M||EKA(IDA||H(M))||T)方案2(基于對稱加密算法,消息M加密)[1]A→C:IDA||EKS(M)||EKA(IDA||H(EKS(M)))[2]C→B:EKB(IDA||EKS(M)||EKA(IDA||H(EKS(M)))||T)方案3(基于公鑰加密算法,消息M加密)[1]A→C:IDA||EKAS(IDA||EKBP(EKAS(M)))[2]C→B:EKCS(IDA||EKBP(EKAS(M))||T)3.4.2數(shù)字簽名的實(shí)現(xiàn)2.仲裁數(shù)字簽名方案1(基于對稱加密算法,消息M不加密)3.4.2數(shù)字簽名90數(shù)字簽名標(biāo)準(zhǔn)(DigitalSignatureStandard,DSS)是美國國家標(biāo)準(zhǔn)技術(shù)局(NIST)在1991年提出作為美國聯(lián)邦信息處理標(biāo)準(zhǔn)(FIPS)。它采用了美國國家安全局(NSA)主持開發(fā)的數(shù)字簽名算法(DigitalSignatureAlgorithm,DSA),DSS使用安全散列算法(SHA),給出一種新的數(shù)字簽名方法。DSS在出后,分別于1993年和1996年做了修改。2000年發(fā)布該標(biāo)準(zhǔn)的擴(kuò)充版,即FIPS186-2,其中包括基于RSA和橢圓曲線密碼的數(shù)字簽名算法。3.4.3數(shù)字簽名標(biāo)準(zhǔn)數(shù)字簽名標(biāo)準(zhǔn)(DigitalSignatur91RSA數(shù)字簽名方法3.4.3數(shù)字簽名標(biāo)準(zhǔn)RSA數(shù)字簽名方法3.4.3數(shù)字簽名標(biāo)準(zhǔn)92DSS數(shù)字簽名方法3.4.3數(shù)字簽名標(biāo)準(zhǔn)DSS數(shù)字簽名方法3.4.3數(shù)字簽名標(biāo)準(zhǔn)93DSS簽名函數(shù)

3.4.3數(shù)字簽名標(biāo)準(zhǔn)DSS簽名函數(shù)3.4.3數(shù)字簽名標(biāo)準(zhǔn)94圖3.17DSS驗(yàn)證函數(shù)

圖3.17DSS驗(yàn)證函數(shù)953.5身份認(rèn)證身份認(rèn)證目的--對通信中一方的身份進(jìn)行標(biāo)識和驗(yàn)證。方法驗(yàn)證用戶所擁有的可被識別的特征。身份認(rèn)證系統(tǒng)構(gòu)成:被驗(yàn)證身份者(示證者);驗(yàn)證者攻擊者可信任的機(jī)構(gòu)作為仲裁或調(diào)解機(jī)構(gòu)。3.5身份認(rèn)證身份認(rèn)證目的--對通信中一方的身份進(jìn)行標(biāo)識963.5身份認(rèn)證在網(wǎng)絡(luò)通信中,身份認(rèn)證就是用某種方法證明用戶身份是合法的。口令技術(shù)是目前常用的身份認(rèn)證技術(shù)。問題:口令泄露??诹钚孤锻緩降卿洉r(shí)被他人窺視;攻擊者從計(jì)算機(jī)中存放口令的文件中讀到;口令被在線攻擊猜測出;被離線攻擊搜索到。3.5身份認(rèn)證在網(wǎng)絡(luò)通信中,身份認(rèn)證就是用某種方法證明用戶973.5身份認(rèn)證用密碼學(xué)方法的身份認(rèn)證協(xié)議比傳統(tǒng)的口令認(rèn)證更安全。身份認(rèn)證協(xié)議構(gòu)成:兩個(gè)通信方,可能還會有一個(gè)雙方都信任的第三方參與進(jìn)行。其中一個(gè)通信方按照協(xié)議的規(guī)定向另一方或者第三方發(fā)出認(rèn)證請求,對方按照協(xié)議的規(guī)定作出響應(yīng),當(dāng)協(xié)議順利執(zhí)行完畢時(shí)雙方應(yīng)該確信對方的身份。從使用加密的方法分類:基于對稱密鑰的身份認(rèn)證基于公鑰加密的身份認(rèn)證。從認(rèn)證的方向性分類:相互認(rèn)證單向認(rèn)證3.5身份認(rèn)證用密碼學(xué)方法的身份認(rèn)證協(xié)議比傳統(tǒng)的口令認(rèn)證更983.5身份認(rèn)證重放攻擊:簡單重放:攻擊者簡單地復(fù)制消息并在此之后重放這條消息??蓹z測的重放:攻擊者在有效的時(shí)限內(nèi)重放有時(shí)間戳的消息。不可檢測的重放:由于原始消息可能被禁止而不能到達(dá)接收方,只有通過重放消息才能發(fā)送給接收方,此時(shí)可能出現(xiàn)這種攻擊。不加修改的逆向重放:如果使用對稱密碼,并且發(fā)送方不能根據(jù)內(nèi)容來區(qū)分發(fā)出的消息和接收的消息,那么可能出現(xiàn)這種攻擊。3.5身份認(rèn)證重放攻擊:993.5身份認(rèn)證對重放攻擊預(yù)防:序列號為每個(gè)需要認(rèn)證的消息添加一個(gè)序列號,新的消息到達(dá)后先對序列號進(jìn)行檢查,只有滿足正確次序的序列號的消息才能被接收。時(shí)間戳為傳送的報(bào)文添加時(shí)間戳,當(dāng)接收到新的消息時(shí),首先對時(shí)間戳進(jìn)行檢查,只有在消息的時(shí)間戳與本地時(shí)鐘足夠接近時(shí),才認(rèn)為該消息是一個(gè)新的消息。隨機(jī)數(shù)/響應(yīng)在接收消息前首先要發(fā)送一個(gè)臨時(shí)的交互號(隨機(jī)數(shù)),并要求所發(fā)送的消息要包含該臨時(shí)交互號。3.5身份認(rèn)證對重放攻擊預(yù)防:1003.5身份認(rèn)證基于口令的身份認(rèn)證(單向)1)A→S:IDA||PWA

Server保存(IDA,H(PWA))A→S:IDA||salt||PWA//salt:隨機(jī)數(shù)

Server保存(IDA,salt,H(PWA,salt))3)哈希鏈方法:倒序遞減保存口令的Hash值,防止對相同口令的竊聽3.5身份認(rèn)證基于口令的身份認(rèn)證(單向)1013.5身份認(rèn)證基于對稱密鑰的雙向身份認(rèn)證

(1)Needham-Schroeder協(xié)議Needham-Schroeder協(xié)議利用KDC進(jìn)行密鑰分配,同時(shí)具備了身份認(rèn)證的功能。假設(shè)通信雙方A、B和KDC分別共享密鑰Ka和Kb。 [1]A→KDC:IDA||IDB||N1 [2]KDC→A:EKa(Ks||IDB||N1||EKb(Ks||IDA)) [3]A→B:EKb

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論