公私钥加解密,加验签梳理

对称加密和非对称加密。

  • 对称加密:也就是加密和解密所使用的密钥是同一个,常用到的有AES、DES、3DES等等,这类加密方式容易理解,不过多赘述。
  • 非对称加密:加密和解密所使用的密钥是一对,也就是两个,
    • 若A、B是一对密钥,那么加密使用A则解密只能使用B,
    • 加密使用B则解密只能使用A。
  • 这也就是公私钥的原型。
  • 公钥加密,私钥解密。

数字签名

​ 加解密问题解决了,但是网络通讯远没有这么简单,报文信息被黑客拦截了怎么办?拦截后黑客替换成他的报文,还能用公钥继续加密发出去,那不就完了,所以我们还需要个方式来验证发送方的身份,也就是我们经常听说的数字签名。

​ 数字签名和加解密不同,是对一段信息做hash算法(MD5,RSA等)运算,生成唯一标识该信息的一个特征串,比如你小时候背课文,背完让家长签名(加签),然后第二天老师检查签名(验签),老师就会认为你完成了作业。老师认为该签名唯一且只能由你家长生成,所以认同你背过课文。(虽然你可以模仿)。

​ 那么我们要做的就是对我们的密文信息再进行一次签名,将签名得到的签名特征串附在原文后,那么对方接收到报文以后,如果能验签通过,那就能确定消息是你发的了。

  • 私钥加签,公钥验签

​ 网络通讯中我们一般用自己的私钥加签将报文,用第三方提供的公钥将报文中涉及安全隐私的部分加密,然后第三方会用我们提供公钥进行验签,验签通过后再用他们自己的私钥将报文加密部分解密。

​ 如果还需要响应返回,那么他们还将重复一遍我们这边的过程,我们这边也需要重复一边他们那边的过程,用他们提供的公钥验签返回回来的报文,并用自己的私钥解密隐私部分。

​ 这里又有个问题,既然公钥是公开的,你如何确定这个公钥是你的而不是别人的?这样一想,其实就变成了一个循环,没法证明绝对安全,鸡生蛋蛋生鸡的问题。

证书链

位于签名后面。为证书的一条链,顶级为ca,下级由上一级的私钥加签,一级级下去,这样可以判断是否有效。其中签名可以由上一级的公钥验签,判断是否合法

ca

其实在密码学中也是这样,你必须建立一个信赖点,不然任何都是无法信赖的。所以在此基础上,出现了一个可信任的第三方认证中心(CA),

  • CA把你的公钥进行认证,并颁发一个数字证书给到你,该证书里面包含了你的公钥,
  • 而你给别人的公钥也替换成数字证书,
  • 别人拿到数字证书,看了下,确实是CA签发的,那么这里面的公钥就是你的,你是可信的。
  • 这里就又把大家所迷惑的一个概念理清楚了,
  • 证书就是经过认证的公钥。