首页 > 编程知识 正文

对称加密和非对称加密算法有哪些,对称加密 非对称加密算法

时间:2023-05-04 14:51:51 阅读:220425 作者:1787

本文主要介绍对称加密算法(symmetric encryption algorithm)和非对称加密算法(asymmetric cryptographic algorithm)的相关知识。

1 对称加密算法 1.1 概述

对称加密算法是应用较早的加密算法,技术成熟。

在对称加密算法中,数据发送方利用加密密钥、通过指定的加密算法将明文(原始数据)加密处理后,使明文加密为密文,然后发送出去。数据接收方在收到密文后,需要使用加密时使用的密钥、以及加密算法的逆算法对该密文进行解密,才能对应的明文。

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

1.2 示例及隐患

对称加密的一方(比如zxdxbc)用密钥 K 给文本 M 加密,另一方(比如机灵的胡萝卜)用同一个密钥 K 解密。

在此过程中,加解密的模型如下:

zxdxbc:C = E(M, K)

机灵的胡萝卜:M = D(C, K)

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

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

2 非对称加密算法 2.1 概述

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

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

说明:非对称加密算法的一般应用场景是“公钥加密、私钥解密”。

2.2 示例及隐患

现有用于非对称加密的密钥对:K1 和 K2。zxdxbc用其中一个密钥加密文本,机灵的胡萝卜可以用另一个密钥解密文本。比如,zxdxbc用 K1 加密,机灵的胡萝卜用 K2 解密。

上述加解密过程的模型如下:

zxdxbc:C = E(M, K1)

机灵的胡萝卜:M = D(C, K2)

根据上述模型,双方中的一方(比如zxdxbc)可以生成 K1 和 K2,然后把其中一个密钥(比如 K1)私藏,称为私钥;另一个密钥(比如 K2)公开,称为公钥。当另一方(比如机灵的胡萝卜)得到zxdxbc公开的公钥之后,双方就可以通信了。双方的加解密过程,如下图所示:

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

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

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

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。