对称加密、非对称加密、数字证书各方交互过程简介

  一、文章来源参考文章

  二、术语

  三、对称加密过程

  四、非对称加密过程

  五、基于非对称加密算法的数字签名过程

  六、基于非对称加密算法服务端S公钥传输前过程

  七、【重要】基于非对称加密算法的数字证书C/S架构传输过程

 

 

一、文章来源参考文章

数字签名与数字证书技术简介(一)

数字签名与数字证书技术简介(二)

数字签名与数字证书技术简介(三)

 (以下内容为本人阅读以上文章后的个人总结,方便日后复习,有不足之处,欢迎指教)

二、术语

 密码:分以下两种
       1.登录各个系统的用户密码口令,是便于用户记忆的一类密钥;
       2.密码学中的密码,包含了信息加密编码、密文解密解码、数据完整性验证等一系列信息变换过程
 密钥:secret key 是一种参数,具体来说,密钥是一组信息编码,它参与密码的“运算”,并对密码的“运算”起特定的控制作用
 信息摘要:(信息指纹/数字摘要/消息摘要/数字指纹)将任意长度的消息变成固定长度的短消息
 加密算法:
 加密:具备三要素,数据源+密钥+加密算法
 对称加密:A使用密钥k进行加密,B使用密钥k进行解密。常用的对称加密算法:   DES,3DES,AES
 非对称加密:使用一对密钥,分公钥和私钥,两者可互为加密和解密,如私钥加密公钥解密,或者公钥加密私钥解密,常用加密算法:RSA
 公钥:PublicKey 一段固定长度的字符串。一般密钥会用于传输,交给远端客户,
 私钥:privateKey 存放在本地,不对外传播的密钥
 HASH算法:任意长度内容P通过散列算法变成固定长度的哈希值H,单向不可逆(即H不能反推回P)
 PKI:Public Key Infrastructure
 CA:Certficate Authority 数字证书认证中心
 数字签名:
 签名结果:原始文件和摘要密文的形成称为签名结果
 PKCS10数据包:包含公钥,算法(RSA),公钥的所有者(主题),该公钥的有效期等一系列属性
 数字证书:为了给客户端传输公钥而存在的安全机制。PKCS10数据包经过CA签名后生成数字证书

 

三、对称加密过程

  1.对称加密过程图

     服务端S:

 

    客户端C:

 

 

  

  2.对称加密流程解说

    1)明文内容P 加上密钥K,通过对称加密算法,如DES,形成密文M
    2)(通过互联网)传输密文M给客户C
    3)客户C通过密钥K和算法DES将密文M进行解密,得到明文内容P

 

  3.不足点

    1)安全性方面有泄密风险
        
    2)可用性方面低
        如果有100个客户要与服务端通信,每个客户之间不能使用相同密码(增加泄密可能),使用100个不同密码(可用性降低)

 

四、非对称加密过程

  1.非对称加密过程图

 

 

 

 

  2.非对称加密流程解说

    1)服务端S使用本地私钥pri+明文内容P,通过非对称加密算法RSA,得到密文M
    2)(通过互联网)传输密文M给客户C
    3)客户C获得服务端S的公钥Pub(通过互联网,第三方,U盘....)
    4)客户C用公钥Pub和算法RSA,将密文M解密后,得到明文内容P

 

  3.不足点

    1)不知道服务器身份是否可靠
    (比如你要访问建行网站,被攻击者重定向到了钓鱼网站,页面跟真实建行一模一样,用户在不知情的情况下,输入了账号密码,就会被恶意盗取)
    2)算法效率低

 

五、基于非对称加密算法的数字签名过程

  1.数字签名过程图

    服务端S:

 

 

  客户端C:

 

 

  2.数字签名流程解说

    1)服务端将明文内容P进行hash算法(如SHA1),转化成固定长度的唯一哈希值H,H称为信息摘要I
    2)服务端使用本地私钥Pri通过RSA算法,将信息摘要I转化成密文M
    3)服务端将原始内容P和密文M一起发送给客户端
    4)客户端接收到服务端原始内容P和密文M
    5)客户端使用服务端的公钥Pub对密文M,采用RSA算法进行解密得到信息摘要I
    6)客户端将收到的原始内容P,进行hash算法(与步骤1算法一致,如SHA1),转化成固定长度的哈希值H’,H‘称为信息摘要I’
    7)客户端比对信息摘要I和信息摘要I'是否一致,一致则代表数据未被篡改,5,6,7这个过程称为验签

 

  3.不足点

    1)防止不了钓鱼网站
    2)服务端身份合法性无法验证

 

六、基于非对称加密算法服务端S公钥传输前过程

  1.服务端S公钥与CA机构传输过程图

 

 

  2.服务端S公钥与CA机构传输流程解说

    1)服务端将自己的公钥附加一系列信息,形成PKCS10数据包,发送给CA进行签名
    2)CA机构通过技术手段,认可了服务端发来的PKCS10数据包合法
    3)CA使用自己本地私钥Priv02 对PKCS10数据包(有时CA会简单修改PKCS10的一些内容,将本地公钥Pub02记录到数字证书),采用RSA算法进行签名,生成数字证书D(数字证书遵循X509标准)

 

七、【重要】基于非对称加密算法的数字证书C/S架构传输过程

  1.过程图

   服务端S(数字证书获取参考上面"六、基于非对称加密算法服务端S公钥传输前过程"):

 

 

  客户端C:

 

 

  2.流程解说

    1)服务端S将明文内容P进行hash算法(如SHA1),转化成固定长度的唯一哈希值H,H称为信息摘要I
    2)服务端S使用本地私钥Pri通过RSA算法,将信息摘要I转化成密文M
    3)服务端S将自己的公钥附加一系列信息,形成PKCS10数据包,发送给CA进行签名
    4)CA机构通过技术手段,认可了服务端发来的PKCS10数据包合法
    5)CA使用自己本地私钥Priv2 对PKCS10数据包(有时CA会简单修改PKCS10的一些内容,将本地公钥Pub02记录到数字证书),采用RSA算法进行签名,生成数字证书D(数字证书遵循X509标准)
    6)服务端S获得数字证书D
    7)服务端S将明文内容P、密文M、数字证书D发送给客户端C
    8)客户端C将从数字证书里提取CA的公钥Pub02,对数字证书进行验签后,得到服务端S的公钥Pub
    9)客户端C使用服务端S的公钥Pub对密文M,采用RSA算法进行解密得到信息摘要I
    10)客户端将收到的原始内容P,进行hash算法(与步骤1算法一致,如SHA1),转化成固定长度的哈希值H’,H‘称为信息摘要I’
    11)客户端比对信息摘要I和信息摘要I'是否一致,一致则代表数据未被篡改,9,10,11这个过程称为验签
    12)此为行业解决目前主流解决方案

 

posted @ 2021-02-07 12:45  森林326  阅读(411)  评论(0编辑  收藏  举报