美文网首页安全
消息摘要与数字签名

消息摘要与数字签名

作者: 修行者12138 | 来源:发表于2020-12-25 09:17 被阅读0次

    消息摘要

    把一段文本或一个文件用单向hash函数得到一段字符串(或文件),这段字符串(或文件)就是消息摘要(Message Digest),单向hash函数也叫消息摘要算法或散列算法。

    如果文本或文件发生了变化,消息摘要也会变化,因此消息摘要可以用于判断文本或文件有没有被修改。

    消息摘要有可能发生碰撞(即不同的文本/文件产生了一样的摘要),但概率极低。

    常见的消息摘要算法有:
    MD5(Message-Digest Algorithm 5),可以生成128位(16字节)的散列值,
    SHA-1(Secure Hash Algorithm 1),可以生成160位(20字节)的散列值,
    SHA系列除了SHA-1,还有SHA256(256位)、SHA384(384位)、SHA512(512位)等,
    消息摘要长度越长,碰撞概率越低,但是计算速度也越慢。

    数字签名

    理解数字签名前,需要先理解非对称加密的两种应用场景

    数字签名=私钥+消息摘要
    消息摘要可以保证消息没有被篡改,但是不能保证消息发送方是可信任的。

    消息发送者A要发送消息给消息接收者B,流程如下
    1.A使用消息摘要算法对消息计算消息摘要M1,然后用A的私钥对M1加密,得到签名;
    2.A用B的公钥对消息明文和签名加密,把加密后的消息明文和签名发给B;
    3.B用B的私钥对密文解密,得到明文和签名,对明文使用同样的消息摘要算法计算出消息摘要M2;
    4.B用A的公钥对签名解密,得到消息摘要M1,这里用A的公钥解密成功,可以证明消息发送方可信任,因为只有可信任的消息发送方有A的私钥;
    5.B对比M1和M2,如果一致,说明消息没有被篡改。

    相关文章

      网友评论

        本文标题:消息摘要与数字签名

        本文链接:https://www.haomeiwen.com/subject/nbiwnktx.html