对称加密算法与非对称加密算法

本文主要介绍对称加密算法与非对称加密算法。

1 对称加密算法

1.1 概述

对称加密算法(symmetric encryption algorithm)是应用较早的加密算法,技术成熟。

在对称加密算法中,数据发送方将明文(原始数据)通过使用加密秘钥、进行加密算法处理后,使其(明文)变成复杂的加密密文,然后发送出去。数据接收方在收到密文后,若想获取发送方的明文,则需要使用加密时使用的秘钥、以及加密所用算法的逆算法对密文进行解密,才能使其恢复成可读的明文。

在对称加密算法中,使用的秘钥只有一个,消息发送方和接收方都使用这个秘钥,对数据进行加密和解密,所以,对称加密要求解密方必须事先知道加密秘钥。

1.2 示例及隐患

对称加密的一方(比如小红)用秘钥 K 给文本 M 加密,另一方(比如小明)用同一个秘钥 K 解密。

模型如下:

小红: C = E(M, K)

小明: M = D(C, K)

根据对称加密原理,通信一方(如小明)必须要事先知道秘钥 K ,才能够对通信另一方(如小红)发送过来的消息进行解密,双方的加解密原理,如下图所示:


不过,上图中存在这样一个问题:当一方(如小红)生成了秘钥 K 之后,把 K 分享给另一方(小明)的过程中,有可能被人窃听到了秘钥 K ,那么此时这个窃听者就可以假扮双方中的任何一方与另一方进行通信。这叫中间人攻击 mim(Man-in-the-middle_attack)。如下图所示:


2 非对称加密算法

2.1 概述

非对称加密算法(asymmetric cryptographic algorithm)需要两个秘钥,即公钥(public key)和私钥(private key),公钥和私钥是一对,如果用公钥对数据进行加密,只有用对应的私钥才能解密;如果用私钥对数据进行加密,那么只有用对应的公钥才能解密。因为加密和解密使用的是两个不同的秘钥,所以这种加密算法叫作非对称加密算法。

非对称加密算法实现机密信息交换的基本过程是:甲方生成一对秘钥,并将其中的一把作为公钥向其它方公开,得到该公钥的乙方使用该密钥(公钥)对机密信息进行加密后发送给甲方;甲方接收加密信息后,用自己保存的另一把专用密钥(私钥)对加密信息进行解密。

2.2 示例及隐患

非对称加密利用成对的两个秘钥:K1 和 K2 。小红用其中一个加密文本,小明可以用另一个解密文本。比如,小红用 K1 加密,小明用 K2 解密。

模型如下:

小红: C = E(M, K1)

小明: M = D(C, K2)

这样一来,双方中的一方(比如小红)可以生成 K1 和 K2 ,然后把其中一个秘钥(比如 K1 )私藏,称为私钥;另一个秘钥(比如 K2 )公开,称为公钥。当另一方(比如小明)得到小红公开的公钥之后,双方就可以通信了。如下图所示:

不过,上图中依然存在一个问题:中间人mim还是可能截获小红公开的公钥 K2 ,然后自己弄一对秘钥(K1, K2),然后欺骗小明说 K2 是小红的公钥,这样中间人mim每次都可以用截获的 K2 解密小红发给小明的文本(然后窃取甚至篡改文本),再用自己制造的 K1 加密了发给小明,小明收到消息后,用中间人mim制造的 K2 解密文本。如下图所示:


为了避免上述问题的出现,帮助小明确定得到的公钥确实是小红公开的公钥 K2 ,而不是中间人mim伪造的 K2,数字签名(digital signature)技术应运而生。

关于数字签名技术的相关知识,点击此处


猜你喜欢

转载自blog.csdn.net/liitdar/article/details/80738272