对称加密与非对称加密

2018-03-16
  • 1086
  • 0

加密算法分为对称加密和非对称加密,现在被百度全面支持的HTTPS,使用的是非对称加密。虽然网站HTTPS化是被公认的防止被劫持的有利手段,而且百度站长平台已经全面支持HTTPS站点,且提出HTTPS的网页具有排名优待,但是还是有很多小伙伴连对称加密与非对称加密都没搞明白。

了帮助大家尽快理解并记住,我们来用通俗易懂的语言诠释一下这两个小概念。在解释什么是对称加密和非对称加密之前,我们先来看个小故事。

《火烧圆明园》有个桥段:八国联军挺起刺刀戳进了北京城时,慈禧带着儿子坐轿子要跑路,有大臣密谋要对这位还在实习期的太后下手,意图颠覆政权。小皇帝的亲叔叔奕訢把这一切看在眼里,但是却不能跟太后明讲。于是有了正面这封奏折:

blob.png 

在大清,这再普通不过的奏折了,当太后拿着上图左边那张挖了不少洞洞的纸,再来看这封奏折时:

blob.png 

“当心肃顺、端华、戴桓“,这才是奕訢想跟太后讲的话。

上述故事中,洞洞纸就像一把钥匙,加密就是取下洞洞纸,解密就是盖上洞洞纸。所以,我们现在来了解这个最重要的概念:加解密互为逆操作的加密方式,就是对称加密,这种加密方式的加密和解密都使用的是同一个密钥:

blob.png 

比如银行支票上的大写金额(壹贰叁肆……)也是一种对称加密方式,因为存在与阿拉伯数字(1234……)的对应关系。解密对汉语使用者毫无难度,但外国人还是一眼难以识别。可如果老外去查查字典,还是比较容易弄明白的支票大写金额含义的,所以对称加密是一种相对容易被破解的加密方式。这就是为什么HTTP容易被劫持的原因。

相反的,非对称加密则是使用不同的钥匙加密或解密。私钥加的密只能用公钥解;公钥加的密只能用私钥解,公钥和私钥互为加解密工具,私钥是一串和公钥完全不同的字符串:

blob.png 

最后,再来简单做个类比,对称加密就是用同一把钥匙开锁和上锁;非对称加密就是用一把钥匙锁门,但你却要用另一把钥匙来开锁。