(68)对称加密和非对称加密的区别

对称加密和非对称加密,最重要的的区别就是加密算法的不同:对称加密算法在加密和解密时使用的是同一个秘钥,而非对称加密算法需要两个密钥来进行加密和解密,这两个秘钥是公开密钥(简称公钥)和私有密钥(简称私钥)。

加密,需要对加密和解密使用相同密钥的加密算法。由于其速度快,对称性加密通常在消息发送方需要加密大量数据时使用。所以,对称性加密也称为密钥加密。

1976年,美国学者Dime和Henman为解决信息公开传送和密钥管理问题,提出一种新的密钥交换协议,允许在不安全的媒体上的通讯双方交换信息,安全地达成一致的密钥,这就是“公开密钥系统”。

与对称加密算法不同,非对称加密算法需要两个密钥:公开密钥和私有密钥。公开密钥与私有密钥是一对,如果用公开密钥对数据进行加密,只有用对应的私有密钥才能解密;如果用私有密钥对数据进行加密,那么只有用对应的公开密钥才能解密。因为加密和解密使用的是两个不同的密钥,所以这种算法叫作非对称加密算法。

对于对称加密,我们可以用一个例子来形象描述:

假如甲和乙是一对生意搭档,他们住在不同的城市。由于生意上的需要,他们经常会相互之间邮寄重要的货物。为了保证货物的安全,他们商定制作一个保险盒,将物品放入其中。他们打造了两把相同的钥匙分别保管,以便在收到包裹时用这个钥匙打开保险盒,以及在邮寄货物前用这把钥匙锁上保险盒。这就是一个将重要资源安全传递到目的地的传统方式,只要甲乙小心保管好钥匙,那么就算有人得到保险盒,也无法打开。

因此这个思想被用到了现代计算机通信的信息加密中。在对称加密中,数据发送方将明文(原始数据)和加密密钥一起经过特殊加密算法处理后,使其变成复杂的加密密文发送出去。接收方收到密文后,若想解读原文,则需要使用加密密钥及相同算法的逆算法对密文进行解密,才能使其恢复成可读明文。在对称加密算法中,使用的密钥只有一个,发收信双方都使用这个密钥对数据进行加密和解密。

对称加密工作过程简要示意图:

而对于非对称加密,同样我们可以以一个例子来说明:

譬如,甲乙之间使用如果以非对称加密的方式完成重要信息的安全传输,那么其步骤如下:

1、乙方生成一对密钥(公钥和私钥)并将公钥向其它方公开。

2、得到该公钥的甲方使用该密钥对机密信息进行加密后再发送给乙方。

3、乙方再用自己保存的另一把专用密钥(私钥)对加密后的信息进行解密。乙方只能用其专用密钥(私钥)解密由对应的公钥加密后的信息。

在传输过程中,即使攻击者截获了传输的密文,并得到了乙的公钥,也无法破解密文,因为只有乙的私钥才能解密密文。同样,如果乙要回复加密信息给甲,那么需要甲先公布甲的公钥给乙用于加密,甲自己保存甲的私钥用于解密。

以下是非对称加密工作过程简要示意图:

综上所述,对称加密和非对称加密,区别关键是加密密钥的不同。

一般来讲,一个密码系统(通常简称为密码体制)由五部分组成,如图所示。

  1. 明文空间M,它是全体明文的集合。
  2. 密文空间C,它是全体密文的集合。
  3. 密钥空间K,它是全体密钥的集合,其中每一个密钥k均由加密密钥ke和解密密钥kd组成。
  4. 加密算法E,它是一族由M到C的加密变换。
  5. 解密算法D,它是一族由C到M的解密变换。

对于每一个确定的密钥,加密算法将确定一个具体的加密变换,解密算法将确定一个具体的解密变换,而且解密变换就是加密变换的逆变换。对于明文空间中的每一个明文M,加密算法E在密钥ke的控制下将明文M加密成密文C:
C = E(M, ke)
解密算法D在密钥kd的控制下将密文C解密出同一明文M:
M = D(C, kd) = D(E(M, ke) , kd)
如果一个密码体制的kd = ke,或由其中一个很容易推导出另一个,则称之为对称密码体制,否则称之为非对称密码体制。如果在计算上kd不能由ke推导出来,这样ke公开也不会损害kd的安全,于是便可以将ke公开,这种密码体制称为公开密钥密码体制。公开密钥密码体制的概念于1976年由Diffie和Hellman提出,它的出现是密码学发展史上的一个里程碑。

原文地址:https://www.cnblogs.com/wycBlog/p/7753421.html