第五章-消息認證與散列函數課件_第1頁
第五章-消息認證與散列函數課件_第2頁
第五章-消息認證與散列函數課件_第3頁
第五章-消息認證與散列函數課件_第4頁
第五章-消息認證與散列函數課件_第5頁
已閱讀5頁,還剩66頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

第五章消息認證與散列函數

1標題添加點擊此處輸入相關文本內容點擊此處輸入相關文本內容前言點擊此處輸入相關文本內容標題添加點擊此處輸入相關文本內容2消息認證第1章曾介紹過電子商務安全所面臨的基本攻擊類型,包括被動攻擊(竊聽、業務流分析)和主動攻擊(假冒、重放、消息的篡改、業務拒絕)。抗擊被動攻擊的方法是前面已介紹過的加密,本章介紹的消息認證則是用來抗擊主動攻擊的。消息認證是一個過程,用以驗證接收消息的真實性(的確是由它所聲稱的實體發來的)和完整性(未被篡改、插入、刪除),同時還用于驗證消息的順序性和時間性(未重排、重放、延遲)。除此之外,在考慮信息安全時還需考慮業務的不可否認性,即防止通信雙方中的某一方對所傳輸消息的否認。實現消息的不可否認性可通過數字簽名,數字簽名也是一種認證技術,它也可用于抗擊主動攻擊3認證的分類認證技術是解決電子商務活動中的安全問題的技術基礎。認證采用對稱密碼、公鑰加密、散列算法等技術為電子商務活動中的信息完整性和不可否認性以及電子商務實體的身份真實性提供技術保障。認證可分為消息認證(也稱數據源認證)和身份認證.消息認證:這消息真的是他發出來的嗎?是不是假冒的?有沒有被篡改過?身份的認證:和我通話/信的這個人真的是他嗎?是不是假冒的?是不是錄音重放?4MessageAuthentication:消息認證(報文鑒別,消息鑒別)Message:消息、報文。Authentication:鑒別、認證。認證:消息的接收者對消息進行的驗證真實性:消息確實來自于其真正的發送者,而非假冒;完整性:消息的內容沒有被篡改。信息的序號和時間是一個證實收到的消息來自可信的源點且未被篡改的過程。它也可以驗證消息的順序和及時性52 認證函數可用來做消息認證的函數分為三類(1)信息加密函數(Messageencryption)用完整信息的密文作為對信息的認證(2)消息認證碼MAC(MessageAuthenticationCode)是對信源消息的一個編碼函數(3)散列函數(HashFunction)是一個公開的函數 它將任意長的信息映射成一個固定長度的信息6(1)信息加密函數作認證

信息加密函數分二種,一種是常規的對稱密鑰加密函數,另一種是公開密鑰的雙密鑰加密函數。下圖的通信雙方是:用戶A為發信方,用戶B為接收方。用戶B接收到信息后,通過解密來判決信息是否來自A,信息是否是完整的,有無竄擾。7公開密鑰加密與認證的關系A->B:E(KUb,M)提供保密(僅B能解密)不提供認證A->B:E(KRa,M)提供認證和簽名(僅有A可加密,需要某種結構和冗余,任何一方均能驗證簽名)A->B:E(KUb,E(KRa,M))可提供保密可提供認證和簽名89MEEkRa(M)EEKUb(EkRa(M))A方KRaKUbDEkRa(M)DMB方KRbKUa(d)公鑰加密:機密性,可認證和簽名缺點:一次完整的通信需要執行公鑰算法的加密、解密操作各兩次10消息認證的方法消息認證機制和數字簽名機制都需有產生認證符的基本功能,這一基本功能又作為認證協議的一個組成部分。認證符是用于認證消息的數值,它的產生方法又分為消息認證碼MAC(messageauthenticationcode)和雜湊函數(hashfunction)兩大類,11消息認證碼的定義及使用方式消息認證碼是指消息被一密鑰控制的公開散列函數作用后產生的、用作認證符的、固定長度的數值,也稱為密碼校驗和。此時需要通信雙方A和B共享一密鑰K。設A欲發送給B的消息是M,A首先計算MAC=CK(M),其中CK(·)是密鑰控制的公開函數,然后向B發送M‖MAC,B收到后做與A相同的計算,求得一新MAC,并與收到的MAC做比較,如圖6.1(a)所示12消息認證碼的定義使用一個密鑰生成一個固定大小的短數據塊,并將該數據塊加載到消息后面,稱MAC(或密碼校驗和) MAC=Ck(M)MAC函數類似于加密函數,但不需要可逆性。因此在數學上比加密算法被攻擊的弱點要少預映射鑒別密鑰K單向散列函數散列值13基于消息認證碼(MAC)的認證特點:MAC函數無需可逆收發雙方使用相同的密鑰,MAC不能提供數字簽名只提供消息認證,不能提供機密性AliceM||CK(M)CCM比較Bob14

如果僅收發雙方知道K,且B計算得到的MAC與接收到的MAC一致,則這一系統就實現了以下功能:①接收方相信發送方發來的消息未被篡改,這是因為攻擊者不知道密鑰,所以不能夠在篡改消息后相應地篡改MAC,而如果僅篡改消息,則接收方計算的新MAC將與收到的MAC不同。②接收方相信發送方不是冒充的,這是因為除收發雙方外再無其他人知道密鑰,因此其他人不可能對自己發送的消息計算出正確的MAC。15改進方案:提供機密性M||K1CK(M)CK2CM比較EK2MDK1MAliceBob提供認證,提供保密與明文有關的認證16改進方案2:提供機密性M||K1CK1(Ek2(M))CCM比較EK2K1MMDK2BobAliceEk2(M)提供認證,提供保密與秘文有關的認證17兩種改進方案的比較上述過程中,由于消息本身在發送過程中是明文形式,所以這一過程只提供認證性而未提供保密性。為提供保密性可在MAC函數以后(如圖6.1(b))或以前(如圖6.1(c))進行一次加密,而且加密密鑰也需被收發雙方共享。在圖6.1(b)中,M與MAC鏈接后再被整體加密,在圖6.1(c)中,M先被加密再與MAC鏈接后發送。通常希望直接對明文進行認證,因此圖6.1(b)所示的使用方式更為常用。18認證函數:Hash函數HashFunction哈希函數、散列函數、摘要函數輸入:任意長度的消息報文M輸出:一個固定長度的散列碼值H(M)是報文中所有比特的函數值單向函數(轉換過程中信息是有損失的,因此無法恢復到明文)散列計算不可能對兩條信息求出相同的摘要19(3)Hash函數(散列,哈希函數)Hash函數Hash函數是將任意長度的報文映射成一個較短的定長輸出報文的函數.如下形式:h=H(M),M是變長的報文,h是定長的Hash值.Hash函數的目的是為文件、報文或其它的分組數據產生“數字指紋”.Hash函數是一種有損加密,信息有損失20Hash函數的分類根據是否使用密鑰帶秘密密鑰的Hash函數:消息的散列值由只有通信雙方知道的秘密密鑰K來控制。此時,散列值稱作MAC。不帶秘密密鑰的Hash函數:消息的散列值的產生無需使用密鑰。此時,散列值稱作MDC(Manipulationdetectioncode)篡改檢驗碼

。21雜湊函數的目的是為需認證的數據產生一個“指紋”。為了能夠實現對數據的認證,雜湊函數應滿足以下條件:①函數的輸入可以是任意長。②函數的輸出是固定長。③已知x,求H(x)較為容易,可用硬件或軟件實現。④已知h,求使得H(x)=h的x在計算上是不可行的,這一性質稱為函數的單向性,稱H(x)為單向雜湊函數。22⑤已知x,找出y(y≠x)使得H(y)=H(x)在計算上是不可行的。如果單向雜湊函數滿足這一性質,則稱其為弱單向雜湊函數。⑥找出任意兩個不同的輸入x、y,使得H(y)=H(x)在計算上是不可行的。如果單向雜湊函數滿足這一性質,則稱其為強單向雜湊函數。第⑤和第⑥個條件給出了雜湊函數無碰撞性的概念,如果雜湊函數對不同的輸入可產生相同的輸出,則稱該函數具有碰撞性23哈希函數的基本用法(a)M||H(M)HKHM比較EKMDMBobAlice提供認證提供保密EK(M|H(M))24哈希函數的基本用法(b)M||KEK(H(M))HHM比較EDBobAlice提供認證優點:可減少處理負擔,適用于不需加密的情況K25哈希函數的基本用法(c)M||K’bDK’b(H(M))HHM比較EDBobAlice提供認證就是普通的數字簽名Kb26哈希函數的基本用法(d)M||KDK’b(H(M))HHM比較EDBobAlice提供認證提供保密KMMEK’bDKbEk(M|DK’b(H(M))2728哈希函數的基本用法(e)M||H(M||S)||HM比較BobAlice提供認證SS||H29哈希函數的基本用法(f)M||H(M||S)||KHM比較EKMDMBobAlice提供認證提供保密EK(M||H(M||S)SS||H30使用Hash碼提供報文認證的方式(a)A->B:Ek(M||H(M))提供保密(僅A和B共享K)提供認證(加密保護H(M))(b)A->B:M||Ek(H(M))提供認證(加密保護H(M))(c)A->B:M||EKRa(H(M))提供認證和數字簽名(加密保護H(M),且僅A能生成EKRa(H(M))31Hash函數使用Hash碼提供報文認證的方式(續.)(d)A->B:Ek(M||EKRa(H(M)))提供認證和數字簽名提供保密(僅A和B共享K)(e)A->B:M||H(M||S)提供認證(S是通信雙方共享的一個秘密值,僅A和B共享S)(f)A->B:Ek(M||H(M||S))提供認證和數字簽名(僅A和B共享S)提供保密(僅A和B共享K)32單向散列(Hash)函數

——功能把可變輸入長度串(稱預映射,pre_image)轉換成固定長度的輸出串(稱散列值)。——特點難于產生兩個預映射的值,使它們的散列值相同散列函數是公開的,對處理過程不保密。平均而言,預映射的單個位的改變,將引起散列值中一半以上位的改變(彌散性)。實驗33設計一個hash函數散列表法通用迭代散列模式34Hash函數題目設有一個含有13個元素的Hash表,Hash函數是:H(key)=key%13,用線性探查法解決沖突,則對于序列(2、8、31、20、19、18、53、27),18應放在第幾號格中()。A)5B)9C)4D)0

35已知一個散列值,要找到預映射,使它的散列值等于已知的散列值在計算上是不可行的。一般情況下,應使用不帶密鑰的單向散列函數,以便任何人都能驗證散列值。說明:

消息認證碼(MessageAuthenticationCode,MAC),它是帶有秘密密鑰的單向散列函數,散列值是預映射的值和密鑰的函數。預映射鑒別密鑰K單向散列函數散列值36生日悖論生日悖論是指,如果一個房間里有23個或23個以上的人,那么至少有兩個人的生日相同的概率要大于50%。這就意味著在一個典型的標準小學班級(30人)中,存在兩人生日相同的可能性更高。對于60或者更多的人,這種概率要大于99%。從引起邏輯矛盾的角度來說生日悖論并不是一種悖論,從這個數學事實與一般直覺相抵觸的意義上,它才稱得上是一個悖論。大多數人會認為,23人中有2人生日相同的概率應該遠遠小于50%。37生日悖論問題38生日悖論攻擊的數學背景:到底k要多大,才能在k個人中,至少找到兩個人有同一天生日的概率大于1/2?

k個人的生日總排列數是365k,k個人有不同生日的總排列數為:

N=Pk365=即第一個人可能有365種生日選擇,第二個人必須不同于第一個人,所以有364種選擇,依此類推。39生日攻擊(基于生日悖論)

在k個人中,找一個與某人生日相同的人的概率超過0.5時,只需k>183;而在此人群中,至少有兩個人生日相同的概率超過0.5,只需k>23.40哈希函數的特點原始信息只要改變一點點,哪怕是幾比特,對應的消息摘要也會改變很大哈希函數把任意有限長的輸入行映射到固定長的行哈希函數的值域與定義域相比規模要小得多,它是“多對一”的映射,因此可能會發生碰撞。所謂碰撞(Collision)是指定義域的兩個不同元素x1、x2映射到同一個消息摘要,即h(x1)=h(x2),也就是存在不同的消息具有相同的消息摘要。從信息論的觀點看,哈希函數存在碰撞是必然的,這一點在數學上可以嚴格的證明。41雜湊函數的設計要求安全的雜湊函數在設計時必須滿足兩個要求:其一是尋找兩個輸入得到相同的輸出值在計算上是不可行的,這就是我們通常所說的抗碰撞的;其二是找一個輸入,能得到給定的輸出在計算上是不可行的,即不可從結果推導出它的初始狀態42MD5算法被破解的含義2004年8月,山東大學王小云教授宣布MD5算法被破解。破解≠解密,并不能由散列碼恢復到明文MD5算法被破解的含義:可以找到兩個不同的明文,它們的MD5碼相同,即能找到碰撞43報文時間性的認證報文的時間性即指報文的順序性。簡單的實現報文時間性的認證方法有:序列號、時間戳和隨機數/響應。攻擊者將所截獲的報文在原密鑰使用期內重新注入到通信線路中進行搗亂、欺騙接收方的行為稱為重放攻擊(replayattacks)。報文的時間性認證就是解決重放攻擊的。下面給出幾個抗重放攻擊的協議。44數字簽名-一種特殊的認證一般的消息認證只能保護信息交換雙方不受第三方的攻擊,但是它不能處理通信雙方的相互抵賴接收方可以偽造消息并稱消息來自發送方,接收方產生一條消息,并用和發送方共享的密鑰產生認證碼,并將認證碼附于消息之后發送方可以否認曾發送過某消息,因為接收方可以偽造消息,所以發送方可以誣賴消息是接收方偽造的只有數字簽名才可實現認證中的不可否認性45數字簽名考慮一種相反的過程,發送者用自己的私鑰“加密”消息得到“密文”,然后利用發送者的公鑰“解密”密文得到消息。很顯然,加密只有發送者能夠完成,而解密任何人都可以完成。所以,任何人都可相信是特定的發送者產生了該消息,這就相當于“簽名”,證明一個消息的所屬46傳統簽名的基本特點與被簽的文件在物理上不可分割簽名者不能否認自己的簽名簽名不能被偽造容易被驗證數字簽名是傳統簽名的數字化能與所簽文件“綁定”簽名者不能否認自己的簽名容易被自動驗證簽名不能被偽造472.7.1數字簽名在書面文件上簽名是確認文件的一種手段,其作用有兩點:第一,因為自己的簽名難以否認,從而確認了文件已簽署這一事實;第二,因為簽名不易仿冒,從而確定了文件是真的這一事實。數字簽名也能確認以下兩點:第一,信息是由簽名者發送的;第二,信息自簽發后到收到為止未曾作過任何修改48數字簽名的作用(1)簽名是可以被確認的,即收方可以確認或證實簽名確實是由發方簽名的;(2)簽名是不可偽造的,即收方和第三方都不能偽造簽名(unforgeable);(3)簽名不可重用,即簽名是消息(文件)的一部分,不能把簽名移到其它消息(文件)上;(4)簽名是不可抵賴的,即發方不能否認他所簽發的消息;(5)第三方可以確認收發雙方之間的消息傳送但不能篡改消息。49數字簽名應具有的性質(1)能夠驗證簽名產生者的身份(獨有信息,以防偽造和否認),以及產生簽名的日期和時間;(2)能用于證實被簽消息的內容;(3)數字簽名可由第三方驗證,從而能夠解決通信雙方的爭議。(4)簽名的產生應較為容易;(5)簽名的識別和驗證應較為容易;(6)對已知的數字簽名構造一新的消息或對已知的消息構造一假冒的數字簽名在計算上都是不可行的。50數字簽名的實現最常用的方式公鑰加密和散列函數相結合的數字簽名方式51數字簽名的實現用對稱加密算法和仲裁者進行數字簽名仲裁者是可信的第三方T,他能同時與發送方A和接收方B通信,而且他和發送方A共享一個密鑰K1,和接收方B也共享一個密鑰K21)A用K1加密他欲發送給B的消息,把它傳送給T2)T對消息進行解密,和他收到A消息的聲明,一起用K2加密,并把加密后的加密包傳給B3)由于T是可信的,而密鑰K2是B和T共享的,B可以解密此消息,而且B可以相信消息是從A那里來的52DSS數字簽名標準美國國家標準與技術研究所NIST發布的聯邦信息處理標準FIPS186,稱為數字簽名標準DSS(DigitalSignatureStandard)于1991年最初提出,DSS為EIGamal和Schnorr簽名方案的改進,其使用的算法為DSA(DigitalSignatureAlgorithm)。DSS使用了SHA,只能用于數字簽名,不能用于加密或密鑰分配安全性基于離散對數難題DSS是一個產生簽名比驗證簽名快得多的方案,驗證簽名太慢!53DSS的簽名和驗證過程DSS采用的是SHA散列函數計算消息摘要D。簽名方在簽名時,將消息摘要D和一個隨機數k一起作為簽名函數的輸入。簽名函數使用發送方的私鑰Ks和一組公共參數P,產生兩個輸出(s,r)作為簽名結果。驗證方就是通過比較接收到的簽名結果與自己計算出來的簽名結果,根據它們是否相等來判斷簽名的有效性。

54數字簽名算法DSA全局公鑰(p,q,g)p為512~1024bit的大素數,q是(q-1)的素因子,為160比特的素數g=h(p-1)/qmodp,且1<h<(p-1),使得

h(p-1)/qmodp>1用戶私鑰x:x為0<x<q內的隨機數用戶公鑰y:y=gxmodp55盲簽名盲簽名一般數字簽名中,總是要先知道文件內容而后才簽署,這正是通常所需要的。但有時需要某人對一個文件簽名,但又不讓他知道文件內容,稱此為盲簽名(BlindSignature)Chaum在1983年提出適應于電子選舉、數字貨幣協議中56群簽名群體密碼學由Desmedt于1987年提出,群簽名是群體密碼學中的課題,1991由Chaum和vanHeyst提出,其特點有:只有群體成員才能代表群體簽名;接收到簽名的人可以用公鑰驗證群簽名,但不可能知道由群體中那個成員所簽;發生爭議時可由群體中的成員或可信賴機構識別群簽名的簽名者57群簽名的實現群簽名需要用到秘密分割技術(中國剩余定理)答曰:二十三58群簽名的應用例如在電子投標中,所有公司應邀參加投標,這些公司組成一個群體,且每個公司都匿名地采用群簽名對自己的標書簽名。事后當選中了一個滿意的標書,就可識別出簽名的公司,而其它標書仍保持匿名。中標者若想反悔已無濟于事,因為在沒有他參加下仍可以正確識別出他的簽名。群簽名也可以由可信賴中心協助執行,中心掌握各簽名人與所簽名之間的相關信息,并為簽名人匿名簽名保密;在有爭執時,可以由簽名識別出簽名人59公鑰加密技術(RSA,DSS,ECC)和散列算法

散列算法:輸入:可以任意長度;輸出:必須固定長度,一般64、128、160bits.60數字信封技術

61身份認證技術身份認證又叫身份識別,它是正確識別通信用戶或終端身份的重要途徑。從身份認證過程中與系統的通信次數分:一次認證、兩次認證或多次認證。從身份認證所應用的系統來分:單機系統身份認證和網絡系統身份認證。從身份認證的基本原理上來說:靜態身份認證和動態身份認證。1.口令認證2.持證認證3.生物識別認證621.口令認證(1)口令加密技術:用單向散列函數對口令進行處理;再采用加密技術對該散列碼進行加密。認證中心數據庫中存儲口令的的散列碼

口令以散列碼的密文傳輸到認證中心后解密生成散列碼,以此來核對身份.困難在于加密密鑰的交換,涉及密鑰分發管理問題.攻擊者仍可以采用離線方式對口令密文實施字典攻擊。63(2)時間戳技術在書面合同中,文件簽署的日期和簽名一樣均是十分重要的防止文件被偽造和竄改的關鍵性內容。電子交易文件中,時間是十分重要的信息,在經過數字簽名的交易上打上一個可信賴的時間戳,從而解決一系列的實際和法律問題。

需要一個可信任的第三方-時間戳權威TSA(timestampauthority),來提供可信賴的且不可抵賴的時間戳服務。

64獲得數字時間戳的過程

Hash算法

原文

摘要

1

加時間

數字

時間戳

Internet

用DTS機構的私鑰加密

發送方

TSA機構

Hash算法

加了時間后的新摘要

摘要

1

摘要1

+時間

數字

時間戳

65(3)零知識證明技術1.示證者:Petor;驗證者:Vetor; 被認證方P掌握某些秘密信息,P想設法讓認證方V相信他確實掌握那些信息,但又不想讓V也知道那些信息(如果連V都不知道那些秘密信息,第三者想盜取

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論