zoukankan      html  css  js  c++  java
  • 公钥、私钥、hash、数字签名、CA以及验证过程

    简单理解

    公钥私钥数字签名

    公钥和私钥互相对应,成对存在

    公钥加密私钥解密(密文),私钥加密公钥解密(数字签名)

    数字签名保证不可否认性,只有拥有私钥的人可以加密

    这个过程公钥是公开,用CA来保证公钥的安全,当然CA也有自己的公钥和私钥


    hash

    又叫做指纹,简单的说就是一种将任意长度的消息压缩到某一固定长度的消息摘要的函数。

    有很多种方法,通常来检验大文件的完整性


    CA和验证流程

    可以信任的第三方CA,用来对公钥进行合法性检验。

    完整的安全传输公钥并验证的过程:

    alice和bob通信

    1.alice:

    向CA申请证书,将公钥和个人信息发送给CA,申请数字证书

    2.CA:

    验证A,并制作数字证书

    数字证书的格式普遍采用的是X.509V3国际标准,一个标准的X.509数字证书包含以下一些内容:

    1、证书的版本信息;

    2、证书的序列号,每个证书都有一个唯一的证书序列号;

    3、证书所使用的签名算法;

    4、证书的发行机构名称,命名规则一般采用X.500格式;

    5、证书的有效期,通用的证书一般采用UTC时间格式;

    6、证书所有人的名称,命名规则一般采用X.500格式;

    7、证书所有人的公开密钥;

    8、证书发行者对证书的签名。

    CA为了保证证书没有被篡改,对主体内容生成hash生成指纹,并用自己的私钥加密指纹,再将算法和指纹密文一并放入证书中

    3.bob:

    使用CA公钥解密指纹密文

    再对证书主题内容进行hash

    结果与解密的指纹进行验证,保证没有被篡改

    之后,开始使用alice的公钥

    此时,只有alice、bob和可以信任的第三方CA知道alice的公钥

  • 相关阅读:
    [LeetCode]24. Search Insert Position插入位置
    [LeetCode]23. Set Matrix Zeroes矩阵清零
    [LeetCode]22. 3Sum Closest最近三者之和
    [LeetCode]21. 3Sum三者之和
    [LeetCode]20. Unique Paths II唯一路径
    [LeetCode]19. Unique Paths唯一路径
    [LeetCode]18. Contains Duplicate II重复检测
    [LeetCode]17. Majority Element主元素
    第13章建造者模式
    第15章抽象工厂模式
  • 原文地址:https://www.cnblogs.com/rower/p/12532709.html
Copyright © 2011-2022 走看看