zoukankan      html  css  js  c++  java
  • HMAC

    Hash-based Message Authentication Code

    HMAC是IP安全里必须实现的MAC方案,并且其他Internet协议中(如SSL)也使用了HMAC。HMAC已作为NIST标准发布。

    HMAC的设计目标

      1、可以直接使用现成的Hash函数

      2、很容易用更好地Hash函数替代原来嵌入的Hash函数

      3、能够保持Hash函数的原有性能,不能过分降低其性能

      4、对密钥的使用和处理应较简单

      5、如果已知嵌入的Hash函数的强度,完全可以知道认证机制抗密码分析的强度

    正是HMAC的这些设计目标保证了HMAC的灵活性、可用性和扩展性,从而得到了广泛的支持。

    HMAC算法

      

      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函数的安全强度。

      

  • 相关阅读:
    prototype的本质
    如何只用CSS做到完全居中
    CSS3 过渡效果触发时机的问题
    HTML转义字符
    SVG总结小知识
    JavaScript中Switch使用
    AngularJS注入依赖路由总结
    echart模块化单文件引入
    CSS定义input disabled样式
    海盗船长小米首页小船来回摆动CSS3.0效果
  • 原文地址:https://www.cnblogs.com/block2016/p/5635111.html
Copyright © 2011-2022 走看看