彻底弄懂 https 原理本质(二)加密过程

一、加密知识回顾

单向加密

        不可逆,只要输入的内容一样,输出的密文一定是一样的,有任何修改, 产生的密文都是不同的。例如,md5。

对称加密

        加密和解密使用同一把密钥,加密解密速度特别快。例如, DES。

非对称加密

         使用公钥和私钥进行加密和解密,公钥加密私钥解,私钥加密公钥解。加密、解密的过程非常慢。例如, RSA。

注:以上内容,纯粹是加密的知识,和https没有任何关系。下面我们开始讲解 https的过程。

二、通过一个需求,明白https的过程

假设:小明 ❤️小花。青春期的男女通过写情书方式交往,怕人发现,需要保密传递。

Question: 💌情书如何安全传递?

        学完上面👆‘加密知识’,我们很容易想到,把通信的内容加密。

Question:💌情书什么方式加密?

        首先,单向加密肯定不行,小花收到信,解不出来,这恋爱还谈个屁。

        其次,对称加密是可以,小花只要有密钥,就可以把内容解出来。最后,非对称加密也是可以的,小明用自己的私钥加密,小花拿到小明的公钥,也可以把内容解出来

Question:对称🆚非对称如何抉择?

        学完上面👆‘加密知识’,对称加密速度快,非对称加密速度慢。

        那么,小明小花这俩人都是碎嘴子,话多的很,而去肯定也想快速交流。如果使用非对称方式加密解密很慢,那估计得郁闷死,太慢急死个人。

       因此,使用对称加密方式比较快的方式最合适。小明小花,都持有同一把密钥,双方互相都能解密出来对方发的信。

       小明❤️小花通信使用对称加密。假如密钥是 S🔑 ,双方都使用同一把密钥 S🔑 进行加密解密。

       这样小明就可以能愉快的和小花说情话了,而且内容是加密的,加密解密的速度也很快,也很nice。

        这时候,有一个情敌叫老王。在💌情书在传输的过程中,密钥 S 🔑被老王🐶截获了。小明、小花、老王,都有相同的密钥 S 🔑了。

        那么,小明和小花之间没有秘密可言了,他们发的信,老王都能解开看,看完再加密,再发给小花,这还得了。

        


三、如何解决密钥 S 🔑在传输的过程中被截获

        现在的问题变成了:小明如何把 密钥 S 🔑 安全的传给小花。 这和👆上面的问题“小明如何把情书传给小花”非常类似了。

Question:小明如何安全的把密钥 S 🔑 传输给小花?

        如果密钥S的传输过程不安全,那么后面的通信就是不安全的。反之,密钥S能安全的传输给小花,那么后面的通信就是安全的。

        学完上面👆‘加密知识’,我们很容易想到,把密钥 S 🔑用非对称加密。

        首先,小明生成一对私钥和公钥。小明把 公钥给了小花,

        方法一,👦小明用私钥密钥 S 🔑加密,加密后的密文S0🔒传输给小花👧,小花用公钥密文S0🔒解密得到密钥 S 🔑。

        方法二小花👧用公钥 对 密钥 S 🔑 进行加密,加密后的 密文S0🔒传输给小明,小明用 私钥密文S0🔒解密出来  密钥 S 🔑。

        但是,聪明的老王🐶发现,小明的 公钥 是公开的,谁都可以下载。也就是说,老王也可以对 密文S0🔒进行解密得到密钥 S 🔑。

        因此,方法一失败。方法二成功。


四、小结 

        为了方便理清思路,重新梳理一遍:小明选择使用效率高的‘对称加密’密钥 S 🔑方式给小花传递情书,再通过通过效率慢的‘非对称加密’🔐方式将密钥 S 🔑二次加密。而且此时‘非对称加密’工作量很小,密钥 S 🔑安全的传输给对方之后,后面的通信就直接使用对称加密了,这样效率就高了。

        我们懂了:如果用非对称加密,我只要拿到谁的公钥,我和谁通信,就是安全的。比如,你有一对私钥和公钥,我只要拿到你的公钥,然后用你的公钥进行加密传输内容,只有你自己能解开,因为私钥只有你自己有。反过来说,只要你用自己的私钥加密,其它人用你的公钥如果能解开,那么证明这封信一定以及肯定是你写的。比如,你需要发一个通知,但是又要确保这个通知一定是你发的,为了怕别人在中间窜改,你可以用你的私钥对通知进行加密,其它人想看的话,通过下载你的公钥,进行解密。能解密出来,说明通知一定是你发的,其它人想在中间涂改,因为没有你的私钥重新加密,所以行不通。


        当然,别以为到这,老王🐶就会轻易放弃,“没用挖补了的墙角,只有不努力的小三”。下一篇,看老王🐶如何进行反攻。

点击关注,持续更新。😍

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

艾阳Blog

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值