密碼學與信息安全第12章散列算法和MAC算法_第1頁
密碼學與信息安全第12章散列算法和MAC算法_第2頁
密碼學與信息安全第12章散列算法和MAC算法_第3頁
密碼學與信息安全第12章散列算法和MAC算法_第4頁
密碼學與信息安全第12章散列算法和MAC算法_第5頁
已閱讀5頁,還剩15頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第12章散列算法和MAC算法第12章散列算法和MAC算法消息認證是用來驗證消息完整性的一種機制或服務。產(chǎn)生消息認證符的函數(shù)分為如下三類:消息加密:整個消息的密文作為認證符。

消息認證碼(MAC):它是消息和密鑰的函數(shù),它產(chǎn)生定長的值,以該值作為認證符。目前有兩種MAC:HMAC和CMAC散列函數(shù):它是將任意長的消息映射為定長的散列值的函數(shù),以該散列值作為認證符。目前主要有:MD5,SHA-1,SHA256,SHA-384,SHA-512,Whirlpool等。在數(shù)字簽名方案中也要用到散列函數(shù)。對需要簽名的消息用一個函數(shù),產(chǎn)生一個固定長度的消息摘要(MessageDigest),最后對消息摘要進行簽名,得到確定長度的簽名消息。典型的安全散列函數(shù)的總體結(jié)構典型的安全散列函數(shù)的總體結(jié)構散列函數(shù)將輸入消息分為L個固定長度的分組,每一分組長為b位,最后一個分組不足b位時需要將其填充為b位,最后一個分組還需要一些空間保存輸入的總長度。散列函數(shù)中重復使用了壓縮函數(shù)f,它的輸入是前一步中得出的n位結(jié)果(稱為鏈接變量)和一個b位分組,輸出為一個n位分組。鏈接變量的初值由算法在開始時指定,其終值即為散列值,通常b>n,因此稱其為壓縮函數(shù)。散列函數(shù)可歸納如下:CV0=IV=初始n位值

CVi=f(CVi-1,Yi-1)1≤i≤LH(M)=CVL安全散列算法安全散列算法(SHA)是由美國標準與技術協(xié)會(NIST)設計,并于1993年作為聯(lián)邦信息處理標準(FIPS180)發(fā)布,修訂版于1995年發(fā)布(FIPS180-1),通常稱之為SHA-1.SHA-1產(chǎn)生160比特的散列值。2002年,NIST發(fā)布了修訂版2,F(xiàn)IPS180-2,其中給出了三種新的SHA版本,散列值長度依次為256,384和512比特。分別稱為SHA-256,SHA-384,SHA-512。這些新的版本和SHA-1具有相同的基礎結(jié)構,使用了相同的模算術和二元邏輯運算。2005年,NIST宣布了逐步廢除SHA-1的意圖,到2010年,逐步轉(zhuǎn)而依賴SHA的其他版本。安全散列算法1.所有的長度以比特為單位2.安全性是指對輸出長度為n比特散列函數(shù)的生日攻擊產(chǎn)生碰撞的工作量大約為2n/2SHA-1SHA-256SHA-384SHA-512消息摘要長度160256384512消息長度<264<264<2128<2128分組長度51251210241024字長度32326464步驟數(shù)80648080安全性80128192256SHA-512邏輯原理+為模264的逐字加SHA-512邏輯原理這個過程包含下列步驟:步驟1:附加填充位。填充消息使其長度模1024與896同余,即長度≡896(mod1024),即使消息已經(jīng)滿足上述長度要求,仍然需要進行填充,因此填充位數(shù)在1到1024之間。填充由一個1和后續(xù)的0組成。步驟2:附加長度。在消息后附加一個128比特的塊,將其看做是128比特的無符號整數(shù),它包含填充前消息的長度。SHA-512邏輯原理步驟3:初始化散列緩沖區(qū)。散列函數(shù)的中間結(jié)果和最終結(jié)果保存于512比特的緩沖區(qū)中,緩沖區(qū)用8個64比特的寄存器(a,b,c,d,e,f,g,h)表示,并將這些寄存器初始化為下列64比特的整數(shù):

a=6A09E667F3BCC908e=510E527FADE682D1b=BB67AE8584CAA73Bf=9B05688C2B3E6C1Fc=3C6EF372FE94F82Bg=1F83D9ABFB41BD6Bd=A54FF53A5F1D36F1h=5BE0CD19137E2179SHA-512邏輯原理步驟4:以1024比特的分組(16個字)為單位處理消息。算法的核心是具有80輪運算的模塊。每一輪,如t,使用一個64比特的值Wt,該值由當前被處理的1024比特消息分組Mi導出。每一輪還使用附加的常數(shù)Kt,其中0≤t≤79,用來表示輪數(shù)。這些常數(shù)如下獲得:前80個素數(shù)取三次根,取小數(shù)部分的前64比特。第80輪的輸出和第一輪的輸入Hi-1進行模264相加產(chǎn)生Hi步驟5:輸出。所有的N個1024比特分組都處理完以后,從第N階段輸出的是512比特的消息摘要。

Ho=IVHi=SUM64(Hi-1,abcdefghi)MD=HN

SHA-512輪函數(shù)SHA-512輪函數(shù)T1=h+Ch(e,f,g)+()+Wt+Kt

T2=()+Maj(a,b,c)a=T1+T2b=ac=bd=ce=d+T1f=eg=fh=gSHA-512輪函數(shù)

SHA-512輪函數(shù)

HMAC對于MAC,一種策略是利用hash函數(shù)來設計,因為:

1、一般像md5、sha-1這樣的散列函數(shù),其軟件執(zhí)行速度比諸如des這樣的對稱分組密碼鑰要快。

2、可以利用密碼散列函數(shù)代碼庫。由于散列函數(shù)不是專為MAC設計的,其不依賴于秘密鑰,所以不能直接用于MAC,目前提出了許多方案,其中HMAC是最受支持的一種方案。它是IP安全里必須實現(xiàn)的MAC方案,并且在其他Internet協(xié)議中也使用了HMACHMAC設計目標不必修改而直接使用現(xiàn)有的hash函數(shù)。特別地,很容易免費得到軟件上執(zhí)行速度較快的散列函數(shù)及其代碼。如果找到或者需要更快或更安全的hash函數(shù),應能很容易地替代原來嵌入的hash函數(shù)。應保持hash函數(shù)的原有性能。對密鑰的使用和處理應較簡單。如果已知嵌入的hash函數(shù)的強度,則完全可以知道認證機制抗密碼分析的強度。HMAC算法H:嵌入的hash函數(shù)IV:作為散列函數(shù)的輸入值M:HMAC的消息輸入Yi:M的第i個分組L:M中的分組數(shù)b:每一分組所含的位數(shù)n:嵌入的散列函數(shù)所產(chǎn)生散列碼長K:密鑰,若k長度大于b,

溫馨提示

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

最新文檔

評論

0/150

提交評論