对称加密算法 VS 非对称加密算法

对称密钥加密

官方释义

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

不足问题

为什么叫对称加密呢,可以理解为:一方通过密钥将信息加密后,把密文传给另一方,另一方通过这个相同的密钥将密文解密,转换成可以理解的明文。
加密解密都是同一个密钥,所以需要让接受密文方事先知道密钥,而事先知道的方式一般通过网络或者预先存储在物理机器上,网络通信容易被获取,所以不安全。比如1000个人之间都使用同一个密钥进行密文传输,只要其中一个人密钥被盗窃了,那么整体加密的信息将都被破解了。

非对称加密算法

一种密码学算法类型,在这种密码学方法中,需要一对密钥,一个是私人密钥,另一个则是公开密钥。这两个密钥是数学相关,用某用户密钥加密后所得的信息,只能用该用户的解密密钥才能解密。如果知道了其中一个,并不能计算出另外一个。因此如果公开了一对密钥中的一个,并不会危害到另外一个的秘密性质。称公开的密钥为公钥;不公开的密钥为私钥。

简单来说,要想使用非对称加密算法,首先要有一对key,一个被称为private key私钥,一个成为public key公钥,然后可以把你的public key分发给想给你传密文的用户,然后用户使用该public key加密过得密文,只有使用你的private key才能解密,也就是说,只要你自己保存好你的private key,就能确保,别人想给你发的密文不被破解,所以你不用担心别人的密钥被盗。正因为,这种加密是单向的,所以被称为非对称加密算法。

不足问题

即使使用这种方式,仍然存在一个安全问题就是:
假如甲和乙在进行通信,出现丙冒充甲,给乙发了“丙的的公钥”,而非“甲的的公钥”。那么,乙接受到该公约(“丙的的公钥”)后,就根据该公约回复了信息,那么丙便截获了乙本应该传输给甲的信息。

为了解决上述问题,出现了数字签名。即为了证明“是我发的,也是要发给你的”,需要甲乙双方各自生成一对非对称加密密钥,并且通过一定的方法,交换双方的公钥。
当甲需要发消息给乙的时候,先将消息用甲私钥进行加密,证明是自己发的,然后再将消息用乙公钥进行加密,证明是发给乙的。同理,乙发消息给甲的操作一样。以此来达到“可靠加密传输”。

https://segmentfault.com/a/1190000004461428

你可能感兴趣的:(对称加密算法 VS 非对称加密算法)