




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
第三章信息認證技術3.1概述 3.2哈希函數 3.3消息認證技術 3.4數字簽名 3.5身份認證 第三章信息認證技術3.1概述 13.1概述在網絡通信和電子商務中很容易發生如下問題。1.否認,發送信息的一方不承認自己發送過某一信息。2.偽造,接收方偽造一份文件,并聲稱它來自某發送方的。3.冒充,網絡上的某個用戶冒充另一個用戶接收或發送信息。4.篡改,信息在網絡傳輸過程中已被篡改,或接收方對收到的信息進行篡改。用數字簽名(DigitalSignature)可以有效地解決這些問題。數字簽名就是主要用于對數字信息進行的簽名,以防止信息被偽造或篡改等。3.1概述在網絡通信和電子商務中很容易發生如下問題。用數字23.1概述一個安全的認證系統應滿足以下條件:(1)合法的接收者能夠檢驗所接收消息的合法性和真實性。(2)合法的發送方對所發送的消息無法進行否認。(3)除了合法的發送方之外,任何人都無法偽造、篡改消息。3.1概述一個安全的認證系統應滿足以下條件:33.2哈希函數
哈希函數,單向散列函數基本思想輸入任意長度的消息M,產生固定長度的數據輸出。向hash函數輸入一任意長度的信息M時,hash函數將輸出一固定長度為m的散列值h。即:h=H(M)
3.2哈希函數哈希函數,單向散列函數4性質:固定長度輸出散列值h。給定M,很容易計算h。給定h,根據H(M)=h計算M很難。給定M,找到另一消息M’,滿足H(M)=H(M’),在計算上是不可行的---弱抗碰撞性。對于任意兩個不同的消息M≠M’,它們的散列值不可能相同---強抗碰撞性。注:碰撞性是指對于兩個不同的消息M和M’,如果它們的摘要值相同,則發生了碰撞。3.2哈希函數
性質:3.2哈希函數5安全散列函數的一般結構與分組對稱密碼的CBC模式非常相似。函數的輸入M被分為b位的L個分組Y0,Y1,..YL-1,以及n位鏈接變量初值V0,通常b>n。反復調用壓縮函數f:Vi=f(Yi-1,Vi-1),i=1,2,..L。f輸出Vi仍然是n位。M的散列值H(M,V0)=VL算法的核心是壓縮函數f在對M的分組中,最后一組YL-1不足b位時填充0或者1將其補足。通常還將M的長度填充到最后一個分組中。fY0V0fY1V1fYL-1VL-1VL安全散列函數的一般結構安全散列函數的一般結構與分組對稱密碼的CBC模式6常用的哈希函數MD5SHA-1RIPEMD-160等等常用的哈希函數7MD5算法麻省理工學院RonRivest提出,可將任意長度的消息經過變換得到一個128位的散列值。MD5算法:MD5以512位分組來處理輸入的信息,每一分組又被劃分為16個32位子分組,經過了一系列的處理后,算法的輸出由四個32位分組組成,將這四個32位分組級聯后生成128位散列值。
MD5產生消息摘要的過程MD5算法麻省理工學院RonRivest提出,可將任意長度8MD5算法實現邏輯由4個步驟組成:S1:消息分組與填充。(1)將輸入信息M按順序每512位一組進行分組:M=M1,M2,…,Mn-1,Mn(2)將信息M的Mn長度填充為448位。 當Mn長度L(bit為單位)<448時,在信息Mn后加一個“1”,然后再填充447-L個“0”,使最后的信息Mn長度為448位。當Mn長度L>448時,在信息Mn后加一個“1”,然后再填充512-L+447個“0”,使最后的信息Mn長度為512位,Mn+1長度為448位最后一個分組的后64位為M的位長度(低字節優先)。S2:緩沖區初始化。MD5算法使用128位緩沖區存放處理過程的中間結果和最后的消息摘要值。這128位緩沖分為4個32位邏輯寄存器A、B、C、D。每個寄存器以Little-Endian存放數據,其初始值為:A=0x1234567,B=0x89abcdef,C=0xfedcba98,D=0x7543210這四個32位變量被稱為鏈接變量,它們始終參與運算并形成最終的散列值。MD5算法實現邏輯由4個步驟組成:9S3:對每個分組Mi進行壓縮處理HMD5。HMD5是算法核心。HMD5內部有4輪處理過程。每輪處理結構一樣,但使用的位邏輯函數不同,分別表示為F、G、H、I。每輪處理的輸入是當前正在處理的512位分組、128位緩沖區(A、B、C、D)的當前值和常量表T中四分之一的常數,即分別為T[1..16]、T[17…32]、T[33…48]、T[49...64]。第4輪處理的輸出再與第1輪的輸入CVq按照4個32位字進行模232相加,結果即為壓縮函數HMD5對當前512位分組的輸出。常量表T=T[1,…64]中各元素:T[i]=int(232×abs(sin(i))),為32位整型數。T作為予置的常數表,其作用是隨機化32位整型量,消除輸入數據的規律性。
壓縮函數HMD5每輪處理細節由對128位緩沖區(A、B、C、D)的16步迭代構成,每一步運算如下:
a←B+CLS(s,A+g(B,C,D)+X[k]+T[i]))其中,+為模232加法,CLS(s,w)是對32位字w循環左移s位。位邏輯函數g分別取F、G、H、I之一,X[k]=M[q×16+k],即消息的第q個分組中第k個32位字(k=1,2,..16)。512位分組的壓縮處理HMD5HMD5中每步的邏輯運算S3:對每個分組Mi進行壓縮處理HMD5。512位分組的壓10位邏輯運算函數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個32位字的不同次序(j=2,3,4)。其中第1輪按照初始次序;第2、3、4輪按照下式對(1,2,..16)進行置換:ρ2(i)=(1+5*i)mod16ρ3(i)=(5+3*i)mod16ρ4(i)=(7*i)mod16S4:將消息M的L個分組處理完畢,最后一個分組處理的輸出即為消息M的摘要。因此,第3、4步可以總結為:CV0=V1CVq+1=CVq+RFI(Yq,RFH(Yq,RFG(Yq,RFF(Yq,CVq))))q=1,2,..(L-1)MD=CVL其中RFX()為與位邏輯函數X結合的輪處理過程(X=F、G、H、I),+為對應32位字模232加法。V1取緩沖區(A、B、C、D)的初值。
位邏輯運算函數F、G、H、I定義如下:11MD5算法的核心處理HMD5中重復進行位邏輯運算F、G、H、I,使得最終輸出的摘要中每一位與輸入消息中所有位相關,因此達到很好的混淆效果。MD5在數據處理中廣泛使用。例如:用戶口令可以用MD5碼值秘密存儲。當用戶輸入口令時先轉換為對應MD5碼值,在和系統保存的密碼MD5值進行比較(Linux)。這樣系統在未知用戶口令的情況下即可實現對口令的驗證,同時用戶口令對于系統管理員也是未知的。MD5算法的核心處理HMD5中重復進行位邏輯運算F12SHA(SecureHashAlgorithm)是美國國家標準與技術研究所(NIST)提出,于1993年作為聯邦信息處理標準(FIPS180)發布的,1995年又發布了其修訂版(FIPS180-1),通常稱為SHA-1。與MD5相比,SHA-1生成160位的消息摘要,執行速度有所降低,卻被認為更安全。明文消息的最大長度可達到264位。3.2.3SHA-1算法SHA(SecureHashAlgorithm)是美國國13與MD5算法類似,SHA-1算法也需要對消息進行填充補位。補位是這樣進行的:先添加一個1,然后再添加多個0,使得消息長度滿足對512取模后余數是448。SHA-1的中間結果和最終結果保存在160位的緩沖區中,緩沖區用5個32位的變量表示,這些變量初始化為: A=0x67452301 B=0xefcdab89 C=0x98badcfe D=0x10325476 E=0xc3d2e1f03.2.3SHA-1算法與MD5算法類似,SHA-1算法也需要對消息進行填充補位。314SHA-1的主循環
3.2.3SHA-1算法SHA-1的主循環3.2.3SHA-1算法15SHA-1的非線性函數
3.2.3SHA-1算法SHA-1的非線性函數3.2.3SHA-1算法16對512位的消息進行處理,將其從16個32位的消息分組變成80個32位的消息分組。用到的80對常數:3.2.3SHA-1算法對512位的消息進行處理,將其從16個32位的消息分組變成817SHA-1的基本操作過程
3.2.3SHA-1算法SHA-1的基本操作過程3.2.3SHA-1算法181981年,NIST發布FIPS180-2,新增了三個哈希函數,分別為SHA-256,SHA-384,SHA-512,其散列值的長度分別為256,384,512。同時,NIST指出FIPS180-2的目的是要與使用AES而增加的安全性相適應。SHA-1SHA-256SHA-384SHA-512散列值長度160256384512消息大小<264<264<2128<2128分組大小51251210241024字長32326464步數808080803.2.3SHA-1算法1981年,NIST發布FIPS180-2,新增了三個哈希193.3消息認證技術網絡傳輸過程中信息保密性的要求: (1)對敏感的數據進行加密,即使別人截獲文件也無法得到真實內容。(2)保證數據的完整性,防止截獲人對數據進行篡改。(3)對數據和信息的來源進行驗證,以確保發信人的身份。消息認證是指使合法的接收方能夠檢驗消息是否真實的方法。檢驗內容包括驗證通信的雙方和驗證消息內容是否偽造或遭篡改。3.3消息認證技術網絡傳輸過程中信息保密性的要求:20常見的認證函數:(1)消息加密:將整個消息的密文作為認證碼。(2)哈希函數:通過哈希函數使消息產生定長的散列值作為認證碼。(3)消息認證碼(MAC):將消息與密鑰一起產生定長值作為認證碼。3.3消息認證技術常見的認證函數:3.3消息認證技術21基于對稱密鑰加密的消息認證過程3.3消息認證技術(1)消息加密認證基于對稱密鑰加密的消息認證過程3.3消息認證技術(1)消22添加校驗碼的消息認證過程3.3消息認證技術(1)消息加密認證添加校驗碼的消息認證過程3.3消息認證技術(1)消息加密23基于公鑰加密的消息認證過程(1)消息加密認證3.3消息認證技術基于公鑰加密的消息認證過程(1)消息加密認證3.3消息認24使用哈希函數的消息認證過程
3.3消息認證技術(2)哈希函數認證使用哈希函數的消息認證過程3.3消息認證技術(2)哈希25保證機密性的哈希函數消息認證過程(2)哈希函數認證3.3消息認證技術保證機密性的哈希函數消息認證過程(2)哈希函數認證3.326混合加密認證
(2)哈希函數認證3.3消息認證技術混合加密認證(2)哈希函數認證3.3消息認證技術27MAC函數與加密函數相似之處在于使用了密鑰,但差別在于加密函數是可逆的,而MAC函數可以是單向的,它無需可逆,因此比加密更不容易破解。哈希函數同樣也可以用來產生消息認證碼。假設K是通信雙方A和B共同擁有的密鑰,A要發送消息M給B,在不需要進行加密的條件下,A只需將M和K合起來一起通過哈希函數計算出其散列值,即H(M||K),該散列值就是M的消息認證碼。3.3消息認證技術(3)消息認證碼(MAC)的認證MAC函數與加密函數相似之處在于使用了密鑰,但差別在于加密函28基于消息認證碼的認證過程:MAC=C(M,K)=[H(M||k)或者DES密碼鏈接模式值]
(3)消息認證碼(MAC)的認證3.3消息認證技術基于消息認證碼的認證過程:(3)消息認證碼(MAC)的認證293.4數字簽名用戶A與B相互之間要進行通信,雙方擁有共享的會話密鑰K,在通信過程中可能會遇到如下問題:1)A偽造一條消息,并稱該消息來自B。A只需要產生一條偽造的息,用A和B的共享密鑰通過哈希函數產生認證碼,并將認證碼附于消息之后。由于哈希函數的單向性和密鑰K是共享的,因此無法證明該消息是A偽造的。2)B可以否認曾經發送過某條消息。因為任何人都有辦法偽造消息,所以無法證明B是否發送過該消息。哈希函數可以進行報文鑒別,但無法阻止通信用戶的欺騙和抵賴行為。當通信雙方不能互相信任,需要用除了報文鑒別技術以外的其他方法來防止類似的抵賴和欺騙行為。3.4數字簽名用戶A與B相互之間要進行通信,雙方擁有共享的303.4數字簽名數字簽名也稱電子簽名。“以電子形式所附或邏輯上與其他電子數據相關的數據,做為一種判別的方法。”聯合國貿法會《電子簽名示范法》定義為:“在數據電文中以電子形式所含、所附或在邏輯上與數據電文有聯系的數據,它可用于鑒別與數據電文相關的簽名人和表明簽名人認可數據電文所含信息。”數字簽名應該能夠在數據通信過程中識別通信雙方的真實身份,保證通信的真實性以及不可抵賴性,起到與手寫簽名或者蓋章同等作用。3.4數字簽名數字簽名也稱電子簽名。31簽名應該具有的特征:(1)可信。因為B是用A的公鑰解開加密文件的,這說明原文件只能被A的私鑰加密而只有A才知道自己的私鑰。(2)無法被偽造。只有A知道自己的私鑰。因此只有A能用自己的私鑰加密一個文件。(3)無法重復使用。簽名在這里就是一個加密過程,自己無法重復使用。(4)文件被簽名以后是無法被篡改的。因為加密后的文件被改動后是無法被A的公鑰解開的。(5)簽名具有不可否認性。因為除A以外無人能用A的私鑰加密一個文件。3.4數字簽名簽名應該具有的特征:3.4數字簽名321.直接數字簽名3.4.2數字簽名的實現1.直接數字簽名3.4.2數字簽名的實現33用戶A與B要進行通信,每個從A發往B的簽名報文首先都先發送給仲裁者C,C檢驗該報文及其簽名的出處和內容,然后對報文注明日期,同時指明該報文已通過仲裁者的檢驗。仲裁者的引入解決了直接簽名方案中所面臨的問題,及發送方的否認行為。2.仲裁數字簽名3.4.2數字簽名的實現用戶A與B要進行通信,每個從A發往B的簽名報文首先都先發送給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數字簽名的實現2.仲裁數字簽名方案1(基于對稱加密算法,消息M不加密)3.4.2數字簽名35數字簽名標準(DigitalSignatureStandard,DSS)是美國國家標準技術局(NIST)在1991年提出作為美國聯邦信息處理標準(FIPS)。它采用了美國國家安全局(NSA)主持開發的數字簽名算法(DigitalSignatureAlgorithm,DSA),DSS使用安全散列算法(SHA),給出一種新的數字簽名方法。DSS在出后,分別于1993年和1996年做了修改。2000年發布該標準的擴充版,即FIPS186-2,其中包括基于RSA和橢圓曲線密碼的數字簽名算法。3.4.3數字簽名標準數字簽名標準(DigitalSignatur36RSA數字簽名方法3.4.3數字簽名標準RSA數字簽名方法3.4.3數字簽名標準37DSS數字簽名方法3.4.3數字簽名標準DSS數字簽名方法3.4.3數字簽名標準38DSS簽名函數
3.4.3數字簽名標準DSS簽名函數3.4.3數字簽名標準39圖3.17DSS驗證函數
圖3.17DSS驗證函數403.5身份認證身份認證目的--對通信中一方的身份進行標識和驗證。方法驗證用戶所擁有的可被識別的特征。身份認證系統構成:被驗證身份者(示證者);驗證者攻擊者可信任的機構作為仲裁或調解機構。3.5身份認證身份認證目的--對通信中一方的身份進行標識413.5身份認證在網絡通信中,身份認證就是用某種方法證明用戶身份是合法的。口令技術是目前常用的身份認證技術。問題:口令泄露。口令泄露途徑登錄時被他人窺視;攻擊者從計算機中存放口令的文件中讀到;口令被在線攻擊猜測出;被離線攻擊搜索到。3.5身份認證在網絡通信中,身份認證就是用某種方法證明用戶423.5身份認證用密碼學方法的身份認證協議比傳統的口令認證更安全。身份認證協議構成:兩個通信方,可能還會有一個雙方都信任的第三方參與進行。其中一個通信方按照協議的規定向另一方或者第三方發出認證請求,對方按照協議的規定作出響應,當協議順利執行完畢時雙方應該確信對方的身份。從使用加密的方法分類:基于對稱密鑰的身份認證基于公鑰加密的身份認證。從認證的方向性分類:相互認證單向認證3.5身份認證用密碼學方法的身份認證協議比傳統的口令認證更433.5身份認證重放攻擊:簡單重放:攻擊者簡單地復制消息并在此之后重放這條消息。可檢測的重放:攻擊者在有效的時限內重放有時間戳的消息。不可檢測的重放:由于原始消息可能被禁止而不能到達接收方,只有通過重放消息才能發送給接收方,此時可能出現這種攻擊。不加修改的逆向重放:如果使用對稱密碼,并且發送方不能根據內容來區分發出的消息和接收的消息,那么可能出現這種攻擊。3.5身份認證重放攻擊:443.5身份認證對重放攻擊預防:序列號為每個需要認證的消息添加一個序列號,新的消息到達后先對序列號進行檢查,只有滿足正確次序的序列號的消息才能被接收。時間戳為傳送的報文添加時間戳,當接收到新的消息時,首先對時間戳進行檢查,只有在消息的時間戳與本地時鐘足夠接近時,才認為該消息是一個新的消息。隨機數/響應在接收消息前首先要發送一個臨時的交互號(隨機數),并要求所發送的消息要包含該臨時交互號。3.5身份認證對重放攻擊預防:453.5身份認證基于口令的身份認證(單向)1)A→S:IDA||PWA
Server保存(IDA,H(PWA))A→S:IDA||salt||PWA//salt:隨機數
Server保存(IDA,salt,H(PWA,salt))3)哈希鏈方法:倒序遞減保存口令的Hash值,防止對相同口令的竊聽3.5身份認證基于口令的身份認證(單向)463.5身份認證基于對稱密鑰的雙向身份認證
(1)Needham-Schroeder協議Needham-Schroeder協議利用KDC進行密鑰分配,同時具備了身份認證的功能。假設通信雙方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身份認證基于對稱密鑰的雙向身份認證473.5身份認證基于對稱密鑰的雙向身份認證
(2)Denning協議Denning協議對Needham-Schroeder協議進行了修改,引入了時間戳機制[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身份認證基于對稱密鑰的雙向身份認證483.5身份認證基于對稱密鑰的雙向身份認證
(3)Neuman-Stubblebine協議Neuman-Stubblebine協議的提出是為了試圖解決抑制-重放攻擊,同時解決Needham-Schroeder協議中出現的問題:[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身份認證基于對稱密鑰的雙向身份認證493.5身份認證2.基于對稱密鑰的單向身份認證 基于對稱密鑰的單向認證一般也采用以KDC為基礎的方法。但是在電子郵件的應用中,無法要求發送方和接收方同時在線,因此在協議過程中不存在雙方的交互。具體過程如下: [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身份認證2.基于對稱密鑰的單向身份認證503.5身份認證基于公鑰的雙向身份認證
(1)Denning-Sacco協議是一種使用時間戳機制的公鑰分配和認證方法。假設通信雙方分別為A和B,AS為認證服務器。
[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身份認證基于公鑰的雙向身份認證AS對A的證書簽名A513.5身份認證基于公鑰的雙向身份認證
(2)Woo-Lam協議Woo-Lam協議使用隨機數作為臨時交互值來代替時間戳。 [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身份認證基于公鑰的雙向身份認證523.5身份認證基于公鑰的雙向身份認證
改進[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身份認證基于公鑰的雙向身份認證533.5身份認證2.基于公鑰的單向身份認證使用公鑰進行驗證的步驟相對簡潔,主要有如下幾種使用方法:(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身份認證2.基于公鑰的單向身份認證CA的私鑰54序列密碼實現參照P298界面實現對文本文件的序列密碼加密序列密碼發生器選擇:1)RC42)混沌序列發生器:實驗一序列密碼實現實驗一55第三章信息認證技術3.1概述 3.2哈希函數 3.3消息認證技術 3.4數字簽名 3.5身份認證 第三章信息認證技術3.1概述 563.1概述在網絡通信和電子商務中很容易發生如下問題。1.否認,發送信息的一方不承認自己發送過某一信息。2.偽造,接收方偽造一份文件,并聲稱它來自某發送方的。3.冒充,網絡上的某個用戶冒充另一個用戶接收或發送信息。4.篡改,信息在網絡傳輸過程中已被篡改,或接收方對收到的信息進行篡改。用數字簽名(DigitalSignature)可以有效地解決這些問題。數字簽名就是主要用于對數字信息進行的簽名,以防止信息被偽造或篡改等。3.1概述在網絡通信和電子商務中很容易發生如下問題。用數字573.1概述一個安全的認證系統應滿足以下條件:(1)合法的接收者能夠檢驗所接收消息的合法性和真實性。(2)合法的發送方對所發送的消息無法進行否認。(3)除了合法的發送方之外,任何人都無法偽造、篡改消息。3.1概述一個安全的認證系統應滿足以下條件:583.2哈希函數
哈希函數,單向散列函數基本思想輸入任意長度的消息M,產生固定長度的數據輸出。向hash函數輸入一任意長度的信息M時,hash函數將輸出一固定長度為m的散列值h。即:h=H(M)
3.2哈希函數哈希函數,單向散列函數59性質:固定長度輸出散列值h。給定M,很容易計算h。給定h,根據H(M)=h計算M很難。給定M,找到另一消息M’,滿足H(M)=H(M’),在計算上是不可行的---弱抗碰撞性。對于任意兩個不同的消息M≠M’,它們的散列值不可能相同---強抗碰撞性。注:碰撞性是指對于兩個不同的消息M和M’,如果它們的摘要值相同,則發生了碰撞。3.2哈希函數
性質:3.2哈希函數60安全散列函數的一般結構與分組對稱密碼的CBC模式非常相似。函數的輸入M被分為b位的L個分組Y0,Y1,..YL-1,以及n位鏈接變量初值V0,通常b>n。反復調用壓縮函數f:Vi=f(Yi-1,Vi-1),i=1,2,..L。f輸出Vi仍然是n位。M的散列值H(M,V0)=VL算法的核心是壓縮函數f在對M的分組中,最后一組YL-1不足b位時填充0或者1將其補足。通常還將M的長度填充到最后一個分組中。fY0V0fY1V1fYL-1VL-1VL安全散列函數的一般結構安全散列函數的一般結構與分組對稱密碼的CBC模式61常用的哈希函數MD5SHA-1RIPEMD-160等等常用的哈希函數62MD5算法麻省理工學院RonRivest提出,可將任意長度的消息經過變換得到一個128位的散列值。MD5算法:MD5以512位分組來處理輸入的信息,每一分組又被劃分為16個32位子分組,經過了一系列的處理后,算法的輸出由四個32位分組組成,將這四個32位分組級聯后生成128位散列值。
MD5產生消息摘要的過程MD5算法麻省理工學院RonRivest提出,可將任意長度63MD5算法實現邏輯由4個步驟組成:S1:消息分組與填充。(1)將輸入信息M按順序每512位一組進行分組:M=M1,M2,…,Mn-1,Mn(2)將信息M的Mn長度填充為448位。 當Mn長度L(bit為單位)<448時,在信息Mn后加一個“1”,然后再填充447-L個“0”,使最后的信息Mn長度為448位。當Mn長度L>448時,在信息Mn后加一個“1”,然后再填充512-L+447個“0”,使最后的信息Mn長度為512位,Mn+1長度為448位最后一個分組的后64位為M的位長度(低字節優先)。S2:緩沖區初始化。MD5算法使用128位緩沖區存放處理過程的中間結果和最后的消息摘要值。這128位緩沖分為4個32位邏輯寄存器A、B、C、D。每個寄存器以Little-Endian存放數據,其初始值為:A=0x1234567,B=0x89abcdef,C=0xfedcba98,D=0x7543210這四個32位變量被稱為鏈接變量,它們始終參與運算并形成最終的散列值。MD5算法實現邏輯由4個步驟組成:64S3:對每個分組Mi進行壓縮處理HMD5。HMD5是算法核心。HMD5內部有4輪處理過程。每輪處理結構一樣,但使用的位邏輯函數不同,分別表示為F、G、H、I。每輪處理的輸入是當前正在處理的512位分組、128位緩沖區(A、B、C、D)的當前值和常量表T中四分之一的常數,即分別為T[1..16]、T[17…32]、T[33…48]、T[49...64]。第4輪處理的輸出再與第1輪的輸入CVq按照4個32位字進行模232相加,結果即為壓縮函數HMD5對當前512位分組的輸出。常量表T=T[1,…64]中各元素:T[i]=int(232×abs(sin(i))),為32位整型數。T作為予置的常數表,其作用是隨機化32位整型量,消除輸入數據的規律性。
壓縮函數HMD5每輪處理細節由對128位緩沖區(A、B、C、D)的16步迭代構成,每一步運算如下:
a←B+CLS(s,A+g(B,C,D)+X[k]+T[i]))其中,+為模232加法,CLS(s,w)是對32位字w循環左移s位。位邏輯函數g分別取F、G、H、I之一,X[k]=M[q×16+k],即消息的第q個分組中第k個32位字(k=1,2,..16)。512位分組的壓縮處理HMD5HMD5中每步的邏輯運算S3:對每個分組Mi進行壓縮處理HMD5。512位分組的壓65位邏輯運算函數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個32位字的不同次序(j=2,3,4)。其中第1輪按照初始次序;第2、3、4輪按照下式對(1,2,..16)進行置換:ρ2(i)=(1+5*i)mod16ρ3(i)=(5+3*i)mod16ρ4(i)=(7*i)mod16S4:將消息M的L個分組處理完畢,最后一個分組處理的輸出即為消息M的摘要。因此,第3、4步可以總結為:CV0=V1CVq+1=CVq+RFI(Yq,RFH(Yq,RFG(Yq,RFF(Yq,CVq))))q=1,2,..(L-1)MD=CVL其中RFX()為與位邏輯函數X結合的輪處理過程(X=F、G、H、I),+為對應32位字模232加法。V1取緩沖區(A、B、C、D)的初值。
位邏輯運算函數F、G、H、I定義如下:66MD5算法的核心處理HMD5中重復進行位邏輯運算F、G、H、I,使得最終輸出的摘要中每一位與輸入消息中所有位相關,因此達到很好的混淆效果。MD5在數據處理中廣泛使用。例如:用戶口令可以用MD5碼值秘密存儲。當用戶輸入口令時先轉換為對應MD5碼值,在和系統保存的密碼MD5值進行比較(Linux)。這樣系統在未知用戶口令的情況下即可實現對口令的驗證,同時用戶口令對于系統管理員也是未知的。MD5算法的核心處理HMD5中重復進行位邏輯運算F67SHA(SecureHashAlgorithm)是美國國家標準與技術研究所(NIST)提出,于1993年作為聯邦信息處理標準(FIPS180)發布的,1995年又發布了其修訂版(FIPS180-1),通常稱為SHA-1。與MD5相比,SHA-1生成160位的消息摘要,執行速度有所降低,卻被認為更安全。明文消息的最大長度可達到264位。3.2.3SHA-1算法SHA(SecureHashAlgorithm)是美國國68與MD5算法類似,SHA-1算法也需要對消息進行填充補位。補位是這樣進行的:先添加一個1,然后再添加多個0,使得消息長度滿足對512取模后余數是448。SHA-1的中間結果和最終結果保存在160位的緩沖區中,緩沖區用5個32位的變量表示,這些變量初始化為: A=0x67452301 B=0xefcdab89 C=0x98badcfe D=0x10325476 E=0xc3d2e1f03.2.3SHA-1算法與MD5算法類似,SHA-1算法也需要對消息進行填充補位。369SHA-1的主循環
3.2.3SHA-1算法SHA-1的主循環3.2.3SHA-1算法70SHA-1的非線性函數
3.2.3SHA-1算法SHA-1的非線性函數3.2.3SHA-1算法71對512位的消息進行處理,將其從16個32位的消息分組變成80個32位的消息分組。用到的80對常數:3.2.3SHA-1算法對512位的消息進行處理,將其從16個32位的消息分組變成872SHA-1的基本操作過程
3.2.3SHA-1算法SHA-1的基本操作過程3.2.3SHA-1算法731981年,NIST發布FIPS180-2,新增了三個哈希函數,分別為SHA-256,SHA-384,SHA-512,其散列值的長度分別為256,384,512。同時,NIST指出FIPS180-2的目的是要與使用AES而增加的安全性相適應。SHA-1SHA-256SHA-384SHA-512散列值長度160256384512消息大小<264<264<2128<2128分組大小51251210241024字長32326464步數808080803.2.3SHA-1算法1981年,NIST發布FIPS180-2,新增了三個哈希743.3消息認證技術網絡傳輸過程中信息保密性的要求: (1)對敏感的數據進行加密,即使別人截獲文件也無法得到真實內容。(2)保證數據的完整性,防止截獲人對數據進行篡改。(3)對數據和信息的來源進行驗證,以確保發信人的身份。消息認證是指使合法的接收方能夠檢驗消息是否真實的方法。檢驗內容包括驗證通信的雙方和驗證消息內容是否偽造或遭篡改。3.3消息認證技術網絡傳輸過程中信息保密性的要求:75常見的認證函數:(1)消息加密:將整個消息的密文作為認證碼。(2)哈希函數:通過哈希函數使消息產生定長的散列值作為認證碼。(3)消息認證碼(MAC):將消息與密鑰一起產生定長值作為認證碼。3.3消息認證技術常見的認證函數:3.3消息認證技術76基于對稱密鑰加密的消息認證過程3.3消息認證技術(1)消息加密認證基于對稱密鑰加密的消息認證過程3.3消息認證技術(1)消77添加校驗碼的消息認證過程3.3消息認證技術(1)消息加密認證添加校驗碼的消息認證過程3.3消息認證技術(1)消息加密78基于公鑰加密的消息認證過程(1)消息加密認證3.3消息認證技術基于公鑰加密的消息認證過程(1)消息加密認證3.3消息認79使用哈希函數的消息認證過程
3.3消息認證技術(2)哈希函數認證使用哈希函數的消息認證過程3.3消息認證技術(2)哈希80保證機密性的哈希函數消息認證過程(2)哈希函數認證3.3消息認證技術保證機密性的哈希函數消息認證過程(2)哈希函數認證3.381混合加密認證
(2)哈希函數認證3.3消息認證技術混合加密認證(2)哈希函數認證3.3消息認證技術82MAC函數與加密函數相似之處在于使用了密鑰,但差別在于加密函數是可逆的,而MAC函數可以是單向的,它無需可逆,因此比加密更不容易破解。哈希函數同樣也可以用來產生消息認證碼。假設K是通信雙方A和B共同擁有的密鑰,A要發送消息M給B,在不需要進行加密的條件下,A只需將M和K合起來一起通過哈希函數計算出其散列值,即H(M||K),該散列值就是M的消息認證碼。3.3消息認證技術(3)消息認證碼(MAC)的認證MAC函數與加密函數相似之處在于使用了密鑰,但差別在于加密函83基于消息認證碼的認證過程:MAC=C(M,K)=[H(M||k)或者DES密碼鏈接模式值]
(3)消息認證碼(MAC)的認證3.3消息認證技術基于消息認證碼的認證過程:(3)消息認證碼(MAC)的認證843.4數字簽名用戶A與B相互之間要進行通信,雙方擁有共享的會話密鑰K,在通信過程中可能會遇到如下問題:1)A偽造一條消息,并稱該消息來自B。A只需要產生一條偽造的息,用A和B的共享密鑰通過哈希函數產生認證碼,并將認證碼附于消息之后。由于哈希函數的單向性和密鑰K是共享的,因此無法證明該消息是A偽造的。2)B可以否認曾經發送過某條消息。因為任何人都有辦法偽造消息,所以無法證明B是否發送過該消息。哈希函數可以進行報文鑒別,但無法阻止通信用戶的欺騙和抵賴行為。當通信雙方不能互相信任,需要用除了報文鑒別技術以外的其他方法來防止類似的抵賴和欺騙行為。3.4數字簽名用戶A與B相互之間要進行通信,雙方擁有共享的853.4數字簽名數字簽名也稱電子簽名。“以電子形式所附或邏輯上與其他電子數據相關的數據,做為一種判別的方法。”聯合國貿法會《電子簽名示范法》定義為:“在數據電文中以電子形式所含、所附或在邏輯上與數據電文有聯系的數據,它可用于鑒別與數據電文相關的簽名人和表明簽名人認可數據電文所含信息。”數字簽名應該能夠在數據通信過程中識別通信雙方的真實身份,保證通信的真實性以及不可抵賴性,起到與手寫簽名或者蓋章同等作用。3.4數字簽名數字簽名也稱電子簽名。86簽名應該具有的特征:(1)可信。因為B是用A的公鑰解開加密文件的,這說明原文件只能被A的私鑰加密而只有A才知道自己的私鑰。(2)無法被偽造。只有A知道自己的私鑰。因此只有A能用自己的私鑰加密一個文件。(3)無法重復使用。簽名在這里就是一個加密過程,自己無法重復使用。(4)文件被簽名以后是無法被篡改的。因為加密后的文件被改動后是無法被A的公鑰解開的。(5)簽名具有不可否認性。因為除A以外無人能用A的私鑰加密一個文件。3.4數字簽名簽名應該具有的特征:3.4數字簽名871.直接數字簽名3.4.2數字簽名的實現1.直接數字簽名3.4.2數字簽名的實現88用戶A與B要進行通信,每個從A發往B的簽名報文首先都先發送給仲裁者C,C檢驗該報文及其簽名的出處和內容,然后對報文注明日期,同時指明該報文已通過仲裁者的檢驗。仲裁者的引入解決了直接簽名方案中所面臨的問題,及發送方的否認行為。2.仲裁數字簽名3.4.2數字簽名的實現用戶A與B要進行通信,每個從A發往B的簽名報文首先都先發送給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數字簽名的實現2.仲裁數字簽名方案1(基于對稱加密算法,消息M不加密)3.4.2數字簽名90數字簽名標準(DigitalSignatureStandard,DSS)是美國國家標準技術局(NIST)在1991年提出作為美國聯邦信息處理標準(FIPS)。它采用了美國國家安全局(NSA)主持開發的數字簽名算法(DigitalSignatureAlgorithm,DSA),DSS使用安全散列算法(SHA),給出一種新的數字簽名方法。DSS在出后,分別于1993年和1996年做了修改。2000年發布該標準的擴充版,即FIPS186-2,其中包括基于RSA和橢圓曲線密碼的數字簽名算法。3.4.3數字簽名標準數字簽名標準(DigitalSignatur91RSA數字簽名方法3.4.3數字簽名標準RSA數字簽名方法3.4.3數字簽名標準92DSS數字簽名方法3.4.3數字簽名標準DSS數字簽名方法3.4.3數字簽名標準93DSS簽名函數
3.4.3數字簽名標準DSS簽名函數3.4.3數字簽名標準94圖3.17DSS驗證函數
圖3.17DSS驗證函數953.5身份認證身份認證目的--對通信中一方的身份進行標識和驗證。方法驗證用戶所擁有的可被識別的特征。身份認證系統構成:被驗證身份者(示證者);驗證者攻擊者可信任的機構作為仲裁或調解機構。3.5身份認證身份認證目的--對通信中一方的身份進行標識963.5身份認證在網絡通信中,身份認證就是用某種方法證明用戶身份是合法的。口令技術是目前常用的身份認證技術。問題:口令泄露。口令泄露途徑登錄時被他人窺視;攻擊者從計算機中存放口令的文件中讀到;口令被在線攻擊猜測出;被離線攻擊搜索到。3.5身份認證在網絡通信中,身份認證就是用某種方法證明用戶973.5身份認證用密碼學方法的身份認證協議比傳統的口令認證更安全。身份認證協議構成:兩個通信方,可能還會有一個雙方都信任的第三方參與進行。其中一個通信方按照協議的規定向另一方或者第三方發出認證請求,對方按照協議的規定作出響應,當協議順利執行完畢時雙方應該確信對方的身份。從使用加密的方法分類:基于對稱密鑰的身份認證基于公鑰加密的身份認證。從認證的方向性分類:相互認證單向認證3.5身份認證用密碼學方法的身份認證協議比傳統的口令認證更983.5身份認證重放攻擊:簡單重放:攻擊者簡單地復制消息并在此之后重放這條消息。可檢測的重放:攻擊者在有效的時限內重放有時間戳的消息。不可檢測的重放:由于原始消息可能被禁止而不能到達接收方,只有通過重放消息才能發送給接收方,此時可能出現這種攻擊。不加修改的逆向重放:如果使用對稱密碼,并且發送方不能根據內容來區分發出的消息和接收的消息,那么可能出現這種攻擊。3.5身份認證重放攻擊:993.5身份認證對重放攻擊預防:序列號為每個需要認證的消息添加一個序列號,新的消息到達后先對序列號進行檢查,只有滿足正確次序的序列號的消息才能被接收。時間戳為傳送的報文添加時間戳,當接收到新的消息時,首先對時間戳進行檢查,只有在消息的時間戳與本地時鐘足夠接近時,才認為該消息是一個新的消息。隨機數/響應在接收消息前首先要發送一個臨時的交互號(隨機數),并要求所發送的消息要包含該臨時交互號。3.5身份認證對重放攻擊預防:1003.5身份認證基于口令的身份認證(單向)1)A→S:IDA||PWA
Server保存(IDA,H(PWA))A→S:IDA||salt||PWA//salt:隨機數
Server保存(IDA,salt,H(PWA,salt))3)哈希鏈方法:倒序遞減保存口令的Hash值,防止對相同口令的竊聽3.5身份認證基于口令的身份認證(單向)1013.5身份認證基于對稱密鑰的雙向身份認證
(1)Needham-Schroeder協議Needham-Schroeder協議利用KDC進行密鑰分配,同時具備了身份認證的功能。假設通信雙方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. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 公司楹聯征集活動方案
- 公司愛眼日活動方案
- 公司脫口秀活動方案
- 公司正式開業活動方案
- 公司自動化營銷策劃方案
- 公司知識問答活動方案
- 公司組織清潔活動方案
- 公司聚餐策劃方案
- 公司旅游策劃方案
- 公司考試策劃方案
- 中國執業醫師法課件
- 申論大學生村官考試試題及答案指導(2025年)
- DB34T 4090-2022 智能交通系統工程檢驗規范
- 2023年江蘇省五年制專轉本英語統考真題(試卷+答案)
- 2024年全國預防接種技能競賽【決賽】考試題庫-上(單選題)
- 湖南省長沙市雨花區2023-2024學年八年級下學期期末考試歷史試題(解析版)
- 預后預測模型的建立
- 2023-2024學年山東省濟南市高二下學期7月期末學習質量檢測數學試題(含答案)
- 《溫病學》復習考試題庫(帶答案)
- 雇傭協議書范本
- 四川省自貢市2023-2024學年八年級下學期期末歷史試題 (無答案)
評論
0/150
提交評論