消息认证概述

在网络环境中的攻击类型算法

  消息保密性范畴:    一、泄密  二、传输分析  安全

  消息认证/数字签名:     三、假装  四、内容修改 插入/删除/转换/修改(消息内容) 五、顺序修改 插入/删除/重排(以消息为单位) 六、计时修改  延时/重播网络

  数字签名:         七、发送方否定  八、接收方否定函数

消息认证函数加密

  该函数用来产生认证符,可分红三类spa

  一、Hash函数--以Hash值为认证符blog

  二、消息加密--以整个信息加密后的密文做为认证符图片

  三、消息认证符(MAC)--以消息和密钥做输入,产生定长值做为认证符数学

 消息加密io

  一、对称加密

    

    可行性:既提供了保密性,又提供了认证。保密性源自加密和密钥共享,认证则来自于密钥共享。

    不足:若明文合法性难以断定(如图片或二进制文件等),则仅知足保密性,却没法认证。根源在于没有可以识别的结构对明文合法性进行验证。

    解决办法:由于进行传输前只有发送方A知道明文M,A用函数F计算M生成错误检测码FCS,附在M后,而后一块儿加密发送给B。第三方在不能破解密文状况下不知道明文M,所以也就没法伪造出符合条件的FCS,而接收方也就可以根据FCS进行身份认证。

    

  二、公钥加密

    

     A用B的公钥加密,B用本身的私钥解密。因为任何人都能获取B的公钥,仅此没法判断消息是从哪里发过来的,即没法认证。

 

    

     A用本身的私钥加密或者签名,因为B只能用A的公钥解密(约定明文合法性),所以有认证和签名的功能。因为任何人均可以获得A的公钥,所以不具备保密性。

    

    A用本身的私钥签名,而后再用B的公钥加密。因为只有B可以用本身的私钥解密,所以保证了保密性。而又只有A的公钥可以验证签名,所以还有认证和签名的功能。

 

消息认证码(MAC)   Message Authentication Codes

  MAC = C(K , M)

  M是输入消息;C是MAC函数;K是共享密钥;

  A计算出MAC后,将之附在不加密的明文M后面一块儿发送给B。B根据K和M从新计算MAC进行比对认证。

  MAC有如下三种基本模式:

  

  MAC函数与加密的区别:MAC算法不要求可逆,而加密算法必须可逆。

  MAC函数与Hash函数的区别:MAC算法的输入包含密钥,而Hash不包含。

  因为MAC基于共享密钥,所以不能提供数字签名。

  使用MAC的优势:

    一、MAC将加密性与认证分离开来,能够知足只须要认证不须要加密的需求。同时MAC使得层次结构更加灵活,如能够在传输的不一样的层次来分别完成加密和认证。

    二、MAC不影响明文的读取,能够一直附在明文后面,在须要的时候灵活认证。也能够延长对消息的保护时间,而不只仅只是在传输的时候。也正是基于这一点,上图b方案比c方案要更好一些。

  MAC的安全性:

  因为认证函数的数学性质,与加密相比,认证函数更不易被攻破。

  由于MAC函数是一种多对一的函数,在穷举攻击下,给定明文和MAC值,攻击者须遍历全部可能的K以重现MAC值。因为可能有许多K均可以重现MAC值,于是并不能肯定具体的认证密钥,还必须再用新的明文MAC对再作验证,直到K只剩下一种可能。

  MAC函数应具备的性质:

    一、攻击者在已知M和MAC值以及MAC函数的状况下,要构造知足MAC(K , M') = MAC(K , M)的消息M'在计算上不可行

      该要求是防止攻击者不知道密钥的状况下也可以构造出与给定MAC匹配的新消息。

    二、对随机的消息M和M',MAC(K , M) = MAC(K , M')的几率是2-n,其中n是MAC的位数

      该要求是使MAC函数具备均匀分布的特色,对于选择明文的穷举攻击平均都须要2n-1步才能找到具备给定MAC的消息

    三、设M' = f(M),例如f多是将M的一位或者多位取反,要求Pr[MAC(K , M) = MAC(K , M')] = 2-n

      该要求是认证算法不该对消息的某些部位比其余部位的处理不均匀。

  常见的MAC函数实现:

    一、基于Hash函数的MAC--HMAC

    二、基于分组密码的MAC--DAA和CMAC

    三、认证加密:CCM和GCM

相关文章
相关标签/搜索