密码学复习-4 认证、数字签名

哈希函数:h=H(M)

其中M是变长的消息,h是定长的哈希值

Hash函数的目的是为文件、消息、其他分组数据产生指纹。

Hash函数用于消息认证时,Hash函数值通常称为消息摘要。

消息认证:就是验证消息的完整性。它包含两层含义:验证消息的发送者是真正的而不是冒充的;验证消息在传送过程中未被篡改、重放、延迟。

消息认证码(带秘钥的hash函数):MAC,也称为密码检验和,由如下形式的函数C生成                               

MAC=CK(M),其中M是变长的消息,K是收发双方共享的密钥,CK(M)是定长的认证码

Hash函数:H将可变长度的数据块作为输入,产生固定长度的Hash值:h=H(M)

抗弱碰撞:对于给定的任何分组X,寻找X不等于Y,使得H(X)=H(Y)在计算上是不可行的。

抗强碰撞:对于任何的(X,Y)偶对,寻找H(X)=H(Y)在计算上是不可行的。

如果一个Hash函数是抗强碰撞的,那么也是抗弱碰撞的。

对一个长度为n的hash码

        单向   2^{n}          

        弱抗碰撞     2^{n} 

        强抗碰撞      2^{2/n}

消息认证是为了对付哪些类型的攻击?

        重复、重组、冒充、篡改。

生成消息认证的方法有哪些?

         对报文进行加密,对整个报文消息作为鉴别符。

        消息认证码

        hash函数

设H(M)是一个抗弱碰撞的Hash函数,将任意长度消息映射为定长的n位Hash值。对于所有的消息x,x’≠x,都有H(x)≠H(x’)。

上述说法是否正确?

        这是错误的,这样的函数不是1对1的,因为函数的输入数量是任意的,但是函数的输出的数量是2^{n},因此有多个输入映射到相同的输出。

利用加密算法RSA构造Hash函数 给定两个分组消息B1和B2,其Hash码为RSAH(B1,B2)=RSA(RSA(B1)⊕B2)。

试分析该Hash函数是否满足抗弱碰撞性?

        C2=RSA(C1)⊕RSA(B1)⊕B2

        RSAH(C1,C2)=RSA(RSA(C1)⊕RSA(C1)⊕RSA(B1)⊕B2)=RSA(RSA(B1)⊕B2)=RSAH(B1,B2        ),所以不满足抗弱碰撞性。

Hash算法:MD5、SHA1

MD5:输入是按512 bit的分组进行处理的,产生一个128 bit的消息摘要作为输出。

SHA1:输入是按512 bit的分组进行处理的,最后产生的输出是一个160 bit的消息摘要。

网络环境下面临的安全威胁:

  1.  泄露

  2.  通信量分析

  3.  伪装

  4.  内容篡改

  5.  序号篡改

  6.  计时篡改

  7.  抵赖

MAC算法的攻击路线:

        攻击密钥空间—确定MAC密钥

         攻击强度—如果密钥的长度为k bit,则约为2^{k}

        攻击MAC值—对给定的消息产生有效的MAC值或找到与给定MAC值匹配的消息

        攻击强度—如果MAC的长度为n bit,则约为2^{k}

        总结:对MAC算法强行攻击的有效级可以表示为(2^{k}2^{k})中的最小值。

数字签名:只有信息的发送者才可以产生的别人无法伪造的一段数字串。

密码学复习-4 认证、数字签名_第1张图片

 

发送方用自己的私钥进行数字签名

接收方用发送方的公钥验证数字签名

签名是基于消息摘要实施的

数字签名应满足以下三个条件:

        签名者事后不能抵赖自己的签名

        任何其他人不能伪造签名

        能由第三方仲裁以解决争执

时间戳:产生数字签名的时间。

列出消息认证中出现的两种争议。

        接收方可以伪造一条信息说是发送方发送的;发送方也可以否认发送过信息。

数字签名应具有哪些性质?

  1. 它必须能够效验作者和签名的时间。
  2. 它必须能够在签名时对内容进行身份验证。
  3. 必须能被第三方核查,以解决争议。

你可能感兴趣的:(哈希算法,学习,安全)