信息安全原理與技術之消息認證與數字簽名_第1頁
信息安全原理與技術之消息認證與數字簽名_第2頁
信息安全原理與技術之消息認證與數字簽名_第3頁
信息安全原理與技術之消息認證與數字簽名_第4頁
信息安全原理與技術之消息認證與數字簽名_第5頁
已閱讀5頁,還剩56頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

信息安全原理與技術郭亞軍宋建華李莉清華大學出版社2023/1/121第5章消息認證與數字簽名主要知識點:

--認證

--認證碼

--散列函數

--MD5

--SHA-512

--數字簽名2023/1/122認證認證則是防止主動攻擊的重要技術,可以防止如下一些攻擊:偽裝:攻擊者生成一個消息并聲稱這條消息是來自某合法實體,或者攻擊者冒充消息接收方向消息發送方發送的關于收到或未收到消息的欺詐應答。內容修改:對消息內容的修改,包括插入、刪除、轉換和修改。順序修改:對通信雙方消息順序的修改,包括插入、刪除和重新排序。計時修改:對消息的延遲和重放。在面向連接的應用中,攻擊者可能延遲或重放以前某合法會話中的消息序列,也可能會延遲或重放是消息序列中的某一條消息。2023/1/123認證的目的第一,驗證消息的發送者是合法的,不是冒充的,這稱為實體認證,包括對信源、信宿等的認證和識別;第二,驗證信息本身的完整性,這稱為消息認證,驗證數據在傳送或存儲過程中沒有被篡改、重放或延遲等。2023/1/124認證的目的可提供認證功能的認證碼的函數可分為三類:加密函數:使用消息發送方和消息接收方共享的密鑰對整個消息進行加密,則整個消息的密文作為認證符。消息認證碼:它是消息和密鑰的函數,產生定長度值,該值作為消息的認證符。散列函數:它是將任意長的消息映射為定長的hash值的函數,以該hash值作為認證符。2023/1/125基本的認證系統模型2023/1/126消息認證碼消息認證碼,簡稱MAC(MessageAuthenticationCode),是一種使用密鑰的認證技術,它利用密鑰來生成一個固定長度的短數據塊,并將該數據塊附加在消息之后。在這種方法中假定通信雙方A和B共享密鑰K。若A向B發送消息M時,則A使用消息M和密鑰K,計算MAC=C(K,M)2023/1/127消息認證碼的使用2023/1/128消息認證碼的使用(續)2023/1/129MAC的安全要求MAC中使用了密鑰,這點和對稱密鑰加密一樣,如果密鑰泄漏了或者被攻擊了,則MAC的安全性則無法保證。在基于算法的加密函數中,攻擊者可以嘗試所有可能的密鑰以進行窮舉攻擊,一般對k位的密鑰,窮舉攻擊需要2(k-1)步。2023/1/1210對MAC的攻擊第一輪·給定M1,MAC1=CK(M1)·對所有2k個密鑰判斷MACi=CKi(M1)·匹配數2(k-n)。第二輪·給定M2,MAC2=CK(M2)·對循環1中找到的2(k-n)個密鑰判斷MACi=CKi(M2)·匹配數2(k-2n)。攻擊者可以按按此方法不斷斷對密鑰進行行測試,直到到將匹配數縮縮寫到足夠小小的范圍。平平均來講,若若k=an,則需a次循環2022/12/3111針對MAC算法的攻擊攻擊者針對下下面的MAC算法,則不需需要使用窮舉舉攻擊即可獲獲得密鑰信息息。設消息M=(X1||X2||…||Xm),即由64位分組Xi聯結而成。定定義Δ(M)=X1X2…XmCk(M)=EK[Δ(M)]攻擊者可以用用任何期望的的Y1至Ym-1替代X1至Xm-1,用Ym替代Xm來進行攻擊,,其中Ym如下計算的::Ym=Y1Y2…Ym-1Δ(M)攻擊者可以將將Y1至Ym-1與原來的MAC連結成一個新新的消息M’,接收方收到到(M’,Ck(M))時,由于Δ(M’)=Y1Y2…Ym=Δ(M),因此Ck(M)=EK[Δ(M’)],接受者會認認為該消息是是真實。用這這種辦法,攻攻擊者可以隨隨意插入任意意的長為64(m-1)位的消息。2022/12/3112MAC的性質質一個安安全的的MAC函數應應具有有下列列性質質:若攻擊擊者知知道M和Ck(M),則他他構造造滿足足Ck(M’)=Ck(M)的消息息M’在計算算上是是不可可行的的。Ck(M)應是均均勻分分布的的,即即對任任何隨隨機選選擇的的消息息M和M’,Ck(M)=Ck(M’)的概率率是2-n,其中n是MAC的位數數。設M’是M的某個個已知知的變變換,,即M’=f(M),則Ck(M)=Ck(M’’)的概率率為2-n。2022/12/3113基于DES的消息息認證證碼2022/12/3114Hash函數Hash函數(也稱散散列函函數或或雜湊湊函數數)是將任任意長長的輸輸入消消息作作為輸輸入生生成一一個固固定長長的輸輸出串串的函函數,,即h=H(M)。這個個輸出出串h稱為該該消息息的散散列值值(或或消息息摘要要,或或雜湊湊值))。2022/12/3115安全全的的Hash函數數的的要要求求H可以以應應用用于于任任意意長長度度的的數數據據塊塊,,產產生生固固定定長長度度的的散散列列值值;;對每每一一個個給給定定的的輸輸入入m,計計算算H(m)是很很容容易易的的;;給定定Hash函數數的的描描述述,,對對于于給給定定的的散散列列值值h,找找到到滿滿足足H(m)=h的m在計計算算上上是是不不可可行行的的;;給定定Hash函數數的的描描述述,,對對于于給給定定的的消消息息m1,找找到到滿滿足足m2m1且H(m2)=H(m1)的m2在計計算算上上是是不不可可行行的的;;找到到任任何何滿滿足足H(m1)=H(m2)且m1m2的消息對對(m1,m2)在計算上上是不可可行的。。2022/12/3116安全的Hash函數的要要求H可以應用用于任意意長度的的數據塊塊,產生生固定長長度的散散列值;;對每一個個給定的的輸入m,計算H(m)是很容易易的;給定Hash函數的描描述,對對于給定定的散列列值h,找到滿滿足H(m)=h的m在計算上上是不可可行的;;給定Hash函數的描描述,對對于給定定的消息息m1,找到滿滿足m2m1且H(m2)=H(m1)的m2在計算上上是不可可行的;;找到任何何滿足H(m1)=H(m2)且m1m2的消息對對(m1,m2)在計算上上是不可可行的。。2022/12/3117Hash的一般結結構2022/12/31182022/12/3119Hash函數的安全要要求1.單向性:對任何給定定的散列碼h,找到滿足H(x)=h的x在計算上是不不可行的。2.抗弱碰撞性:對任何給定定的消息x,找到滿足y≠x且H(x)=H(y)的y在計算上是不不可行的。3.抗強碰撞性::找到任何滿足足H(x)=H(y)的偶對(x,y)在計算上是不不可行的。2022/12/3120生日攻擊(BirthdayAttack)如果攻擊者希希望偽造消息息M的簽名來欺騙騙接收者,則則他需要找到到滿足H(M’)=H(M)的M’來替代M。對于生成64位散列值的散散列函數,平平均需要嘗試試263次以找到M’。但是建立在在生日悖論上上的生日攻擊擊法,則會更更有效。對于上述問問題換種說說法:假設設一個函數數有n個函數值,,且已知一一個函數值值H(x)。任選k個任意數作作為函數的的輸入值,,則k必須為多大大才能保證證至少找到到一個輸入入值y且H(x)=H(y)的概率大于于0.5?2022/12/3121生日悖論我們可以如如下描述這這類問題::k為多大時,,在k個人中至少少找到兩個個人的生日日相同的概概率大于0.5?不考慮二二月二十九九日并且假假定每個生生日出現的的概率相同同。2022/12/3122首先k個人的生日日排列的總總數目是365k。這樣,k個人有不同同生日的排排列數為::因此,k個人有不同同生日的概概率為不重重復的排列列數除以總總數目,得得到:則,k個人中,至至少找到兩兩個人同日日出生的概概率是:2022/12/3123Yuval的生日攻擊擊(1)合法的簽名名方對于其其認為合法法的消息愿愿意使用自自己的私鑰鑰對該消息息生成的m位的散列值值進行數字字簽名。(2)攻擊者為了了偽造一份份有(1)中的簽名者者簽名的消消息,首先先產生一份份簽名方將將會同意簽簽名的消息息,再產生生出該消息息的2m/2種不同的變變化,且每每一種變化化表達相同同的意義((如:在文文字中加入入空格、換換行字符))。然后,,攻擊者再再偽造一條條具有不同同意義的新新的消息,,并產生出出該偽造消消息的2m/2種變化。2022/12/3124Yuval的生生日日攻攻擊擊((續續))(3)攻擊擊者者在在上上述述兩兩個個消消息息集集合合中中找找出出可可以以產產生生相相同同散散列列值值的的一一對對消消息息。。根根據據““生生日日悖悖論論””理理論論,,能能找找到到這這樣樣一一對對消消息息的的概概率率是是非非常常大大的的。。如如果果找找不不到到這這樣樣的的消消息息,,攻攻擊擊者者再再產產生生一一條條有有效效的的消消息息和和偽偽造造的的消消息息,,并并增增加加每每組組中中的的明明文文數數目目,,直直至至成成功功為為止止。。(4)攻擊擊者者用用第第一一組組中中找找到到的的明明文文提提供供給給簽簽名名方方要要求求簽簽名名,,這這樣樣,,這這個個簽簽名名就就可可以以被被用用來來偽偽造造第第二二組組中中找找到到的的明明文文的的數數字字簽簽名名。。這這樣樣,,即即使使攻攻擊擊者者不不知知道道簽簽名名私私鑰鑰也也能能偽偽造造簽簽名名。。2022/12/3125中間間相相遇遇攻攻擊擊法法((MeetintheMiddleAttack)(1)根據據已已知知數數字字簽簽名名的的明明文文,,先先產產生生散散列列函函數數值值h。(2)再根根據據意意圖圖偽偽造造簽簽名名的的明明文文,,將將其其分分成成每每個個64位長長的的明明文文分分組組::Q1,Q2,……,QN-2。Hash函數數的的壓壓縮縮算算法法為為::hi=EQi[hi-1],1iN-2。(3)任意意產產生生232個不不同同的的X,對對每每個個X計算算EX[hN-2]。同同樣樣的的,,任任意意產產生生232個不不同同的的Y,對對每每個個Y計算算DY[G],D是相相對對應應E的解解密密函函數數。。2022/12/3126中間相遇遇攻擊法法(MeetintheMiddleAttack)-續(4)根據“生生日悖論論”,有有很大的的概率可可以找到到一堆X及Y滿足EX[hN-2]=DY[G]。(5)如果找到到了這樣樣的X和Y,攻擊者者重新構構造一個個明文::Q1,Q2,…,QN-2,X,Y。這個新新的明文文的散列列值也為為h,因此攻攻擊者可可以使用用已知的的數字簽簽名為這這個構造造的明文文偽造新新的明文文的簽名名。2022/12/3127MD5MD5(Message-DigestAlgorithm5)是由RonaldL.Rivest(RSA算法中的的“R”)這90年代初開開發出來來的,經經MD2、MD3和MD4發展而來來。它比比MD4復雜,但但設計思思想類似似,同樣樣生成一一個128位的信息息散列值值。其中中,MD2是為8位機器做做過設計計優化的的,而MD4和MD5卻是面向向32位的計算算機。2004年8月,在美美國召開開的國際際密碼學學會議((Crypto’’2004)上,王王小云教教授給出出破解MD5、HAVAL-128、MD4和RIPEMD算法的報報告。給給出了一一個非常常高效的的尋找碰碰撞的方方法,可可以在數數個小時時內找到到MD5的碰撞。。2022/12/3128MD5算法步步驟1)填充消消息:任意意長度度的消消息首首先需需要進進行填填充處處理,,使得得填充充后的的消息息總長長度與與448模512同余((即填填充后后的消消息長長度448mod512)。填填充的的方法法是在在消息息后面面添加加一位位“1”,后續續都是是“0”。2)添加原原始消消息長長度:在填填充后后的消消息后后面再再添加加一個個64位的二二進制制整數數表示示填充充前原原始消消息的的長度度。這這時經經過處處理后后的消消息長長度正正好是是512位的倍倍數。。3)初始值值(IV)的初初始化化:MD5中有四四個32位緩沖沖區,,用((A,B,C,D)表示示,用用來存存儲散散列計計算的的中間間結果果和最最終結結果,,緩沖沖區中中的值值被稱稱為鏈鏈接變變量。。首先先將其其分別別初始始化為為為::A=0x01234567,B=0x89abcdef,C=0xfedcba98,D=0x76543210。2022/12/3129MD5算法步步驟-續4)以512位的分分組為為單位位對消消息進進行循循環散散列計計算:經過過處理理的消消息,,以512位為單單位,,分成成N個分組組,用用Y0,Y1,…,YN-1。MD5對每個個分組組進行行散列列處理理。每每一輪輪的處處理會會對((A,B,C,D)進行行更新新。5)輸出散散列值值:所有有的N個分組組消息息都處處理完完后,,最后后一輪輪得到到的四四個緩緩沖區區的值值即為為整個個消息息的散散列值值。2022/12/3130MD5算法步步驟-續2022/12/3131MD5應用舉例利用給出的的MD5程序對“helloworld!””進行處理,,計算它的的HASH值。微軟的系統統軟件都有有MD5驗證,嘗試試查找軟件件的MD5值。在WINDOWS操作系統中中,可以通通過開始——>運行——>sigverif命令,利用用數字簽名名查找驗證證非WINDOWS的系統軟件件。2022/12/3132SHA-512算法步驟對消息進行行填充:對原始消消息進行填填充使其長長度與896模1024同余(即填充后的的消息長度度896mod1024)。即使原始始消息已經經滿足上述述長度要求求,仍然需需要進行填填充,因此此填充位數數在1到1024之間。填充充部分由一一個1和后續的0組成。添加消息長長度信息::在填充后的的消息后添添加一個128位的塊,用用來說明填填充前消息息的長度,,表示為一一個無符號號整數(最高有效字字節在前)。至此,產產生了一個個長度為1024整數倍的擴擴展消息。。2022/12/3133SHA-512算法步驟驟初始化Hash緩沖區:Hash函數計算算的中間間結果和和最終結結果保存存在512位的緩沖沖區中,,分別用用64比特的寄寄存器(A,B,C,D,E,F,G,H)表示,并并將這些些寄存器器初始化化為下列列64位的整數數(十六進制制值):A=0x6A09E667F3BCC908B=0xBB67AE8584CAA73BC=0x3C6EF372FE94F82BD=0xA54FF53A5F1D36F1E=0x510E527FADE682D1F=0x9B05688C2B3E6C1FG=0x1F83D9ABFB41BD6BH=0x5BE0CD19137E21792022/12/3134SHA-512算法步驟驟-續以1024位分組((16個字)為為單位處處理消息息:處理算算法的核核心是需需要進行行80輪運算的的模塊。。輸出:所有的N個1024位分組都都處理完完以后,,最后輸輸出的即即是512位的消息息散列值值。2022/12/3135SHA-512算法步驟驟-續2022/12/3136SHA-512每一步的的核心處處理2022/12/3137HMACHMAC的設計目標包包括:可以直接使用用現有的Hash函數;不針對于某一一個Hash函數,可以根根據需要更換換Hash函數模塊;可保持Hash函數的原有性性能,不能過過分降低其性性能;對密鑰的使用用和處理應較較簡單;如果已知嵌入入的Hash函數的強度,,則可以知道道認證機制抵抵抗密碼分析析的強度。2022/12/3138HMAC的結構2022/12/3139HMAC的實現方案2022/12/3140數字簽名數字簽名也是是一種認證機機制,它是公公鑰密碼學發發展過程中的的一個重要組組成部分,是是公鑰密碼算算法的典型應應用。數字簽簽名的應用過過程是,數據據源發送方使使用自己的私私鑰對數據校校驗和或其他他與數據內容容有關的信息息進行處理,,完成對數據據的合法“簽簽名”,數據據接收方則利利用發送方的的公鑰來驗證證收到的消息息上的“數字字簽名”,以以確認簽名的的合法性。2022/12/3141數字簽名數字簽名需要要滿足以下條條件:簽名的結果必必須是與被簽簽名的消息相相關的二進制制位串;簽名必須使用用發送方某些些獨有的信息息(發送者的的私鑰),以以防偽造和否否認;產生數字簽名名比較容易;;識別別和和驗驗證證簽簽名名比比較較容容易易;;給定定數數字字簽簽名名和和被被簽簽名名的的消消息息,,偽偽造造數數字字簽簽名名在在計計算算上上是是不不可可行行的的。。保存存數數字字簽簽名名的的拷拷貝貝,,并并由由第第三三方方進進行行仲仲裁裁是是可可行行的的。。2022/12/3142數字字簽簽名名的的典典型型使使用用(1)消息息發發送送方方式式與與散散列列函函數數對對消消息息進進行行計計算算,,得得到到消消息息的的散散列列值值。。(2)發送送方方使使用用自自己己的的私私鑰鑰對對消消息息散散列列值值進進行行計計算算,,得得到到一一個個較較短短的的數數字字簽簽名名串串。。(3)這個個數數字字簽簽名名將將和和消消息息一一起起發發送送給給接接收收方方。。(4)接收收方方首首先先從從接接收收到到的的消消息息中中用用同同樣樣的的散散列列函函數數計計算算出出一一個個消消息息摘摘要要,,然然后后使使用用這這個個消消息息摘摘要要、、發發送送者者的的公公鑰鑰以以及及收收到到的的數數字字簽簽名名,,進進行行數數字字簽簽名名合合法法性性的的驗驗證證。。2022/12/3143Schnorr數字字簽簽名名系統統參參數數的的選選擇擇p,q:滿滿足足q|p-1,q2160,q2512g:gZp,滿滿足足gq=1modp,g1H:散散列列函函數數x:用用戶戶的的私私鑰鑰,,1<x<qy:用用戶戶的的公公鑰鑰,,y=gxmodp2022/12/3144Schnorr數字字簽簽名名簽名名設要要簽簽名名的的消消息息為為M,0<M<p。簽簽名名者者隨隨機機選選擇擇一一整整數數k,1<k<q,并并計計算算::e=H(r,M)s=k–xemodq(e,s)即為為M的簽簽名名。。簽簽名名者者將將M連同同(r,s)一起起存存放放,,或或發發送送給給驗驗證證者者。。2022/12/3145Schnorr數字字簽簽名名驗證證驗證證者者獲獲得得M和(e,s),需需要要驗驗證證(e,s)是否否是是M的簽簽名名。。計算算::r’=gsremodp檢查查H(r’’,M)=e是否否正正確確,,若若是是,,則則(e,s)為M的合合法法簽簽名名。。2022/12/3146DSSDSA的系系統統參參數數選選擇擇如如下下::p:512的素素數數,,其其中中2L-1<p<2L,512L1024,且且L是64的倍倍數數,,即即L的位位長長在在512至1024之間間并并且且其其增增量量為為64位。。q:160位的的素素數數且且q|p-1。g:滿滿足足g=h(p-1)/qmodpH:為為散散列列函函數數x:用用戶戶的的私私鑰鑰,,0<x<qy:用用戶戶的的公公鑰鑰,,y=gxmodpp、q、g為系系統統發發布布的的公公共共參參數數,,與與公公鑰鑰y公開開;;私私鑰鑰x保密密。。2022/12/3147DSS簽名設要簽簽名的的消息息為M,0<M<p。簽名名者隨隨機選選擇一一整數數k,0<k<q,并計計算::r=(gkmodp)modqs=[k-1(H(M)+xr)]modq(r,s)即為M的簽名名。簽簽名者者將M連同(r,s)一起存存放,,或發發送給給驗證證者。。2022/12/3148DSS驗證驗證者者獲得得M和(r,s),需要要驗證證(r,s)是否是是M的簽名名。首先檢檢查r和s是否屬屬于[0,q],若不不是,,則(r,s)不是簽簽名值值。否則,,計算算:w=s-1modqu1=(H(M)w)modqu2=rwmodqv=((gu1yu2)modp)modq如果v=r,則所所獲得得的(r,s)是M的合法法簽名名。2022/12/3149仲裁數字簽簽名仲裁簽名中中除了通信信雙方外,,還有一個個仲裁方發送方A發送給B的每條簽名名的消息都都先發送給給仲裁者T,T對消息及其其簽名進行行檢查以驗驗證消息源源及其內容容,檢查無無誤后給消消息加上日日期再發送送給B,同時指明明該消息已已通過仲裁裁者的檢驗驗。仲裁數字簽簽名實際上上涉及到多多余一步的的處理,仲仲裁者的加加入使得對對于消息的的驗證具有有了實時性性。2022/12/3150仲裁數字簽簽名(1)AT:M||EKAT[IDA||H(M)](2)TB:EKTB[IDA||M||EKAT[IDA||H(M)]||T](1)AT:IDA||EPRA[IDA||EPUB(EPRA[M])](2)TB:EPRT[IDA||EPUB[EPRA[M]]||T]2022/12/3151盲簽名盲簽名是Chaum在1982年首次提出出的,并利利用盲簽名名技術提出出了第一個個電子現金金方案。盲盲簽名因為為具有盲性性這一特點點,可以有有效的保護護所簽名的的消息的具具體內容,,所以在電電子商務等等領域有著著廣泛的應應用。盲簽名允許許消息發送送者先將消消息盲化,,而后讓簽簽名者對盲盲化的消息息進行簽名名,最后消消息擁有者者對簽名除除去盲因子子,得到簽簽名者關于于原消息的的簽名。2022/12/3152盲簽名的的性質它除了滿滿足一般般的數字字簽名條條件外,,還必須須滿足下下面的兩兩條性質質:1.簽名者不不知道其其所簽名名的消息息的具體體內容。。2.簽名消息息不可追追蹤,即即當簽名名消息被被公布后后,簽名名者無法法知道這這是他哪哪次的簽簽署的。。2022/12/3153盲簽名的的步驟A期望獲得得對消息息m的簽名,,B對消息m的盲簽名名的實現現描述如如下:盲化:A對于消息息進行處處理,使使用盲因因子合成成新的消消息M并發生給給B;簽名:B對消息M簽名后,

溫馨提示

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

評論

0/150

提交評論