美文网首页
数字签名

数字签名

作者: 进击的小君君 | 来源:发表于2021-04-28 10:27 被阅读0次

    读阮一峰数字签名总结梳理:

    B:生成公钥B、私钥B
    A:持有公钥B
    CA(certificate authority):生成公钥CA、私钥CA

    A与B之间信息传递

    A写信给B

    A:contentA + publickeyB = 秘文A
    B:秘文A + privateKeyB= contentA
    只要B的privateKeyB不泄漏,这封信就是安全的,即使落在别人手里,也无法解密

    数字签名

    B回信给A (该情况只能证明contentB未被修改,并不能证明contenB是B所发)

    B:contentB + Hash = digestB
    digestB +privateKeyB = signatureB
    signatureB 和contentB 一起发送给A
    A:signatureB + publicKeyB = digestB
    contentB + Hash = digest
    digest == digestB ? contentB未被修改 : contentB被修改

    注意:但是这种情况下如果有人冒充B,冒充者C将A持有的公钥B替换为公钥C,此时A收到C的信息后,只能证明contentC未被修改,但并不能证明contentC是否是B所发。所以A需要想办法证明自己持有的公钥是B的,所以需要CA为公钥B做认证

    B回信给A

    CA(证书中心)为公钥做认证
    CA: publickKeyB+其他相关信息+CA 私钥 = 数字证书(Digital Certificate)
    B持有:数字证书
    A持有:CA公钥
    B:contentB + Hash + privateKey = signatureB
    数字证书 、signatureB 以及 contentB 一起发送给A
    A:数字证书 + CA公钥 = publicKeyB(证明是B的公钥)
    signatureB + publickeyB = digestB
    contentB + Hash = digest
    digest == digestB ?contentB未被修改 : contentB被修改

    参考链接

    http://www.ruanyifeng.com/blog/2011/08/what_is_a_digital_signature.html

    RSA加密+AES加密
    RSA:非对称加密,生成公私钥
    AES:对称加密,生成AES密钥
    客户端:用AES对content进行加密,RSA公钥对AES密钥进行加密
    服务端:RSA私钥进行解密得到AES密钥,从而得到content

    摘要算法:可以将任意长度的文本转化为固定长度的文本
    摘要算法具有以下重要特性:

    • 只要源内容不同,计算得到的结果,必然不同。
    • 无法通过摘要算法可逆拿到源内容

    典型的摘要算法有大名鼎鼎的MD5SHA。摘要算法主要用于比对信息源是否一致,因为只要源内容发生变化,得到的摘要必然不同;而且通常结果要比源短很多,所以称为“摘要信息”。

    相关文章

      网友评论

          本文标题:数字签名

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