HMAC

Hash-based Message Authentication Code算法

HMAC是IP安全裏必須實現的MAC方案,而且其餘Internet協議中(如SSL)也使用了HMAC。HMAC已做爲NIST標準發佈。安全

HMAC的設計目標函數

  一、能夠直接使用現成的Hash函數性能

  二、很容易用更好地Hash函數替代原來嵌入的Hash函數優化

  三、可以保持Hash函數的原有性能,不能過度下降其性能spa

  四、對密鑰的使用和處理應較簡單設計

  五、若是已知嵌入的Hash函數的強度,徹底能夠知道認證機制抗密碼分析的強度blog

正是HMAC的這些設計目標保證了HMAC的靈活性、可用性和擴展性,從而獲得了普遍的支持。ip

HMAC算法io

  

  HMAC描述以下:

    HMAC(K , M) = H[(K+opad) || H[(K+ipad) || M]]

  這種結構對於長消息,其執行時間與嵌入的Hash函數差很少,但不適合消息大多較短的狀況。這種狀況下則會使用以下結構進行優化。

    

  其中f(IV,S)是Hash函數的壓縮函數,其輸入是n位的初始變量和b位的分組,輸出是n位的連接變量。

HMAC的安全性

  已證實,對Hash函數有效的生日攻擊並不一樣樣對HMAC有效,緣由在於Hash函數的輸入(IP和M)都徹底已知,而HMAC的輸入受K的影響並不徹底可知,所以能夠抵抗生日攻擊。

  HMAC對於窮舉攻擊等其餘攻擊也保持了Hash函數的安全強度。

相關文章
相關標籤/搜索