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的公钥

  • 相关阅读:
    Unity3d Platformer Pro 2D游戏开发框架使用教程
    程序员如何学习一门新的编程语言
    走进函数式编程
    1001. Exponentiation高精度运算总结
    Kindle PaperWhite3 越狱和PDF插件的安装
    Unity3d中的PlayerPrefs游戏存档API的扩展
    程序员学习路线和学习书单
    1000. A+B Problem
    Mac端SVN工具CornerStone详解
    Unity3d粒子系统详解
  • 原文地址:https://www.cnblogs.com/rower/p/12532709.html
Copyright © 2011-2022 走看看