白话解释 对称加密算法 VS 非对称加密算法

如下白话解释针对小白级别,大牛勿喷。

来源:本人博客git

对称加密算法(Symmetric-key algorithm)和非对称加密算法(asymmetric key encryption algorithm)只不过就是密码学(cryptography)中的两种加密算法罢了,什么是算法,你就能够理解成为是一种规则吧,这种规则能够将信息从一种形式转变成另外一种形式,不懂不要紧,继续往下看。github

对称加密

首先,让咱们先从一个情景开始讲起,想当初咱们在初中,高中,甚至于大学,每次考试都有人在试图如何更加隐蔽的做弊!那你们都想了什么方法呢?好比张三学习比李四好,李四就想在考试的时候让张三“帮助”一下本身,固然,他们俩不可能像咱们日常对话同样说,第一题选A,第二题选B等等,为何?由于监考老师明白他俩在谈论什么,也就是说这种沟通交流方式属于“明文”,因此李四就想:“我须要发明一种,只有我和张三明白的交流方式”,那李四作了什么呢?恩,李四去找张三说:“当我连续咳嗽三声的时候你看我,而后若是我摸了下左耳朵,说明你能够开始给我传答案了,若是没反应,那说明我真的是在咳嗽。。。。”, 而后,怎么传答案呢?很简单,“你摸左耳朵表明A, 摸右耳朵表明B,左手放下表明C,右手放下表明D”,好了,这就是他们的“算法(规则)”,将信息的一种形式(A,B,C,D),这里咱们称为“明文”,转换成了另外一种形式(摸左耳朵,摸右耳朵,放左手,放右手),这里称为“密文”,通过这种转换,很显然监考老师不会明白这些“密文”,这样,张三和李四就经过“密文”的形式实现了信息的交换。算法

其实,密码学不就是为了人们更好的加密传输么?有不少学者,科学家成年累月的工做,为的就是改进或者发明更好的加密算法,让这些加密算法加密的文本难以破解,达到数据安全传输的目的。segmentfault

OK,回归正题,上面这个“做弊”的例子,其实就是一种对称加密算法!好了,咱们来看一下对称加密算法的定义(来源:wikipedia):安全

对称密钥加密(英语:Symmetric-key algorithm)又称为对称加密、私钥加密、共享密钥加密,是密码学中的一类加密算法。这类算法在加密和解密时使用相同的密钥,或是使用两个能够简单地相互推算的密钥。实务上,这组密钥成为在两个或多个成员间的共同秘密,以便维持专属的通信联系。与公开密钥加密相比,要求双方取得相同的密钥是对称密钥加密的主要缺点之一

这里我想说一点的是,wikipedia的把Symmetric-key algorithm中文翻译是 对称密钥加密,我不想把这个key翻译成密钥,由于key仅仅是一个“钥”,这里翻译成密钥会让你们对后面所说的“公钥”,“密钥”,“私钥”等等的概念弄混,好了,因此我仍是比较喜欢称之为“对称加密算法”,然后面说又称“私钥”加密,共享“密钥”,这里,“私钥”就等于“密钥”,没有任何区别,英文是“private key”。学习

ok,咱们将定义结合咱们前面的例子对应一下,“这类算法在加密和解密时使用相同的密钥,或是使用两个能够简单地相互推算的密钥”,其实在咱们例子中,密钥就是“将(A,B,C,D)转换成(摸左耳朵,摸右耳朵,放左手,放右手)”这么一个规则。“实务上,这组密钥成为在两个或多个成员间的共同秘密,以便维持专属的通信联系。” 这句话很好理解了吧,密钥是张三和李四间共同的秘密!只有他俩事先知道。加密

因此,为何叫对称加密呢,你能够这么理解,一方经过密钥将信息加密后,把密文传给另外一方,另外一方经过这个相同的密钥将密文解密,转换成能够理解的明文。他们之间的关系以下:翻译

明文 <-> 密钥 <-> 密文

这样看,是否是感受对称比较好理解了。ok,那么咱们如今有哪些现成的对称加密算法能够用么?固然有:code

常见的对称加密算法有DES、3DES、AES、Blowfish、IDEA、RC五、RC6。

想深刻了解的同窗,能够自行查阅资料了。ip

非对称加密

咱们再来讲说非对称加密,非对称加密是一种比对称加密更加优秀的加密算法,固然算法有利有弊,对称加密速度快可是安全性相对于非对称加密来讲低,为何呢,你想啊,要想使用对称加密,那么分享信息的各个个体之间都须要分享这个密钥,好比大家1000我的之间都使用同一个密钥进行密文传输,只要其中一我的密钥被盗窃了,那么总体加密的信息将都被破解了。好了,那么咱们开始说说非对称加密。

就从上面提到的这个对称加密的缺点开始,怎么作到即时一我的的密钥被盗窃了,最起码保证你给其余人发送密文不被破解。因而,人们就想出了这么个办法,首先,咱们中止分享共同的密钥,由于上面的bug就是来源于共享一个密钥,那么怎么办呢?每一个人生成一个“私钥-公钥”对,这个私钥须要每一个人自行进行保护!公钥能够随便分享,后面详细说,同时,生成的这个“私钥-公钥”对还有个强大的功能就是,使用私钥加密的信息,只能由该私钥对应的公钥才能解密,使用公钥加密的信息,只能由该公钥对应的私钥才能解密!

好了,好比说张三生成了他本身的一个“私钥-公钥”对,叫作“张三私钥-张三公钥”,李四生成了他本身的一个“私钥-公钥”对,叫作“李四私钥-李四公钥”,以前咱们说过私钥要每一个个体本身进行保存,公钥能够随便分享,目的是为何呢?是为了加密信息!

好比,李四想给张三发送密文。
因而李四开始给张三发QQ

李四:
“hi哥们,我想给你发个密文,把你的公钥给我发过来用用。”

张三:
“没问题的,这是个人公钥: d#8yHE8eU#hb*!neb,用这个公钥加密你的信息后给我发过来吧”

李四:
“这是我想对你说的话: *&#@uehuu(**#eehu&$##bfeu&&”

恩?你是否是有点疑问呢?咳咳,李四这是做死的节奏?为何公开问公钥?不怕被网警查水表?哈哈,非对称解密算法的威力就在这里!无所谓!随便谁截取!咱们上面说了,公钥能够随意分发,因此即便别人截取了,也只是知道该公钥而已,可是要是想解密使用该公钥加密的密文!只有一我的能够办获得!就是张三! 为何?李四使用张三的公钥加密的信息,只有张三的公钥所对应的私钥,这里就是“张三私钥”,该私钥才能够解密!因此,没有张三私钥的第三方即时截取了这些密文,也破解不了!或者更严格的说在有限时间内好比说几千年内是暴力破解不出的!

懂了吧?因此网警们哭了,本觉得想监视他们的对话,惋惜一无所得!

咱们来看看非对称加密的官方定义:

公开密钥加密(英语:public-key cryptography,又译为公开密钥加密),也称为非对称加密(asymmetric cryptography),一种密码学算法类型,在这种密码学方法中,须要一对密钥(其实这里密钥说法很差,就是“钥”),一个是私人密钥,另外一个则是公开密钥。这两个密钥是数学相关,用某用户密钥加密后所得的信息,只能用该用户的解密密钥才能解密。若是知道了其中一个,并不能计算出另一个。所以若是公开了一对密钥中的一个,并不会危害到另一个的秘密性质。称公开的密钥为公钥;不公开的密钥为私钥。

hmm。。这个定义有点绕,不过就是说,要想使用非对称加密算法,首先要有一对key,一个被称为private key私钥,一个成为public key公钥,而后能够把你的public key分发给想给你传密文的用户,而后用户使用该public key加密过得密文,只有使用你的private key才能解密,也就是说,只要你本身保存好你的private key,就能确保,别人想给你发的密文不被破解,因此你不用担忧别人的密钥被盗,不要紧。

正由于,这种加密是单向的,因此被称为非对称加密算法。

这种加密算法应用很是普遍,SSH, HTTPS, TLS,电子证书,电子签名,电子身份证等等。

这篇文章先写到这里,接下来我将像你们挨个介绍这些加密算法的应用,不过我在这里先埋个伏笔,上面我提到的李四和张三发qq,即时使用非对称加密算法,你们有没有发现仍然有哪些隐患呢?

给点提示,好比说,某个网警想知道到底李四要给张三发什么信息?网警想破解李四的密文,那么网警有什么办法能够得到李四要发的信息呢?很显然得到密文直接暴力破解是不可能的!

小提示,网警能够冒充张三!!!!发送给李四“网警的公钥”,而不是“张三的公钥”,那么当李四收到该公钥的时候,就不假思索的使用该公钥加密了他的信息,而后坚决果断的将加密的密文发了过去,而后网警得意的笑了。

因此,问题在哪呢?这就是数字签名和数字证书的来历!咱们下回接着白话。

白话解释 电子签名,电子证书,根证书,HTTPS,PKI 究竟是什么

更多内容欢迎访问:做者博客


读完本文章,你能够继续看以下文章:

  1. 白话解释 OSI模型,TLS/SSL 及 HTTPS(属于非对称加密算法的实际应用)
相关文章
相关标签/搜索