在加密算法界,大致将加密算法分为对称加密与非对称加密两种形式,那么我们今天来了解一下对称加密与非对称加密的算法原理以及它们各自都有哪些优缺点。

对称加密算法

对称加密算法在加密传输中最初是采用对称密钥方式,也就是加密和解密都用相同的密钥。

对称加密

  • 对称加密算法加密过程
  1. 对称加密算法采用单密钥加密,在通信过程中,数据发送方将原始数据分割成固定大小的块,经过密钥和加密算法逐个加密后,发送给接收方
  2. 接收方收到加密后的报文后,结合解密算法使用相同密钥解密组合后得出原始数据。

对称加密算法

  • 优点

效率高,算法简单,系统消耗小,适合加密大量数据。

  • 缺点

安全性差

对称加密的加解密算法是公开的,因此在这过程中,密钥的安全传递就成为了至关重要的事了。而密钥通常来说是通过双方协商,以物理的方式传递给对方,或者利用第三方平台传递给对方,一旦这过程出现了密钥泄露,不怀好意的人就能结合相应的算法拦截解密出其加密传输的内容。

扩展性差

使用对称加密,每对通信用户之间都需要协商密钥,n个用户的团体就需要协商n*(n-1)/2个不同的密钥,不便于管理;而如果都使用相同密钥的话,密钥被泄漏的机率大大增加,加密也就失去了意义。

  • 常见的对称加密算法

DES:分组式加密算法,以64位为分组对数据加密,加解密使用同一个算法。

3DES:三重数据加密算法,对每个数据块应用三次DES加密算法。

AES:高级加密标准算法,是美国联邦政府采用的一种区块加密标准,用于替代原先的DES,目前已被广泛应用。

Blowfish:Blowfish算法是一个64位分组及可变密钥长度的对称密钥分组密码算法,可用来加密64比特长度的字符串。

非对称加密算法

非对称加密算法采用公钥和私钥两种不同的密码来进行加解密。公钥和私钥是成对存在,公钥是从私钥中提取产生公开给所有人的,如果使用公钥对数据进行加密,那么只有对应的私钥(不能公开)才能解密,反之亦然。N个用户通信,需要2N个密钥。

非对称加密

  • 非对称加密算法加密过程
  1. 甲使用乙的公钥并结合相应的非对称算法将明文加密后发送给乙,并将密文发送给乙。
  2. 乙收到密文后,结合自己的私钥和非对称算法解密得到明文,得到最初的明文。

非对称加密算法

  • 优点

非对称加密算法具有比对称密钥加密方式更高的安全性,因为加密和解密用的是不同密钥,而且无法从一个密钥推导出另一个密钥,且公钥加密的信息只能用同一方的私钥进行解密。

  • 缺点

算法复杂

非对称加密的缺点是算法非常复杂,导致加密大量数据所用的时间较长,只适合对少量数据进行加密。而且由于在加密过程中会添加较多附加信息,使得加密后的报文比较长,容易造成数据分片,不利于网络传输。

公钥安全

非对称加密算法无法确认公钥的来源合法性以及数据的完整性。

  • 常见算法包括:

RSA:RSA算法基于一个十分简单的数论事实,那就是将两个大素数相乘十分容易,但那时想要对其乘积进行因式分解却极其困难,因此可以将乘积公开作为加密密钥,可用于加密,也能用于签名。

DSA:数字签名算法,仅能用于签名,不能用于加解密。

DSS:数字签名标准,技能用于签名,也可以用于加解密。

ELGamal:利用离散对数的原理对数据进行加解密或数据签名,其速度是最慢的。

以上就是对称加密与非对称加密的算法原理和它们各自的优缺点,以及常见的加密算法。在现实中很多情况下,对称加密与非对称加密并非单独出现,而是相辅相成,这样才能保证加密的安全性。

免责声明:素材源于网络,如有侵权,请联系删稿。