对称密钥算法和公钥算法的优缺点

对称密钥算法
对称密钥算法是应用较早的加密算法,技术成熟。在对称密钥算法中,数据发信方将明文(原始数据)和加密密钥一起经过特殊加密算法处理后,使其变成复杂的加密密文发送出去。收信方收到密文后,若想解读原文,则需要使用加密用过的密钥及相同算法的逆算法对密文进行解密,才能使其恢复成可读明文。在对称加密算法中,使用的密钥只有一个,发收信双方都使用这个密钥对数据进行加密和解密,这就要求解密方事先必须知道加密密钥
常见的对称加密算法有:
DES:分组式加密算法,以64位为分组对数据加密,加解密使用同一个算法。
3DES:三重数据加密算法,对每个数据块应用三次DES加密算法。
AES:高级加密标准算法,是美国联邦政府采用的一种区块加密标准,用于替代原先的DES,目前已被广泛应用。
Blowfish:是一个64位分组及可变密钥长度的对称密钥分组密码算法,可用来加密64比特长度的字符串。
优点:
算法公开、计算量小、对称加密算法采用单密钥加密,在通信过程中,数据发送方将原始数据分割成固定大小的块,加密速度快,经过密钥和加密算法逐个加密后,发送给接收方,接收方收到加密后的报文后,结合密钥和解密算法解密组合后得出原始数据,解密速度快
加密效率高、密钥管理简单、适宜一对一的信息加密传输,加密算法简单
使用长密钥时安全性较高破解困难
缺点:
密钥单一安全性得不到保证
由于加解密算法是公开的,因此在这过程中,密钥的安全传递就成为了至关重要的事了,交易双方都使用相同的密钥。在数据传送前,发送方和接收方必须商定好密钥,如果一方的密钥被泄露,那么加密信息失去安全性。而密钥通常来说是通过双方协商,以物理的方式传递给对方,或者利用第三方平台传递给对方,一旦这过程出现了密钥泄露,不怀好意的人就能结合相应的算法拦截解密出其加密传输的内容
密钥管理比较困难
对称加密算法在分布式网络系统上使用较为困难,每对用户每次使用对称加密算法时,都需要使用其他人不知道的惟一钥匙,这会使得发收信双方所拥有的钥匙数量呈几何级数增长,密钥管理成为用户的负担,使用成本较高。
假设两个用户需要使用对称密钥算法加密然后交换数据,则用户最少需要2个密钥并交换使用,如果企业内用户有n个,则整个企业共需要n×(n-1) 个密钥,密钥的生成和分发将极为困难。
使用范围不如公钥算法
而与公开密钥加密算法比起来,对称加密算法能够提供加密和认证却缺乏了签名功能,使得使用范围有所缩小。
公钥算法
这是一种不对称加密算法。公钥算法包括快速公钥算法与传统公钥算法。快速公钥算法与传统公钥算法相比具有更广泛地应用前景,对快速公钥系统的研究是当前公钥系统研究的一个热点。
公钥算法使用两把完全不同但又是完全匹配的一对公钥和私钥。其基本原理是,如果发信方想发送只有收信方才能解读的加密信息,发信者使用收信者的公钥加密信件,收信者使用自己的私钥钥解密信件。
常见的公钥算法有:
RSA:RSA算法基于一个十分简单的数论事实:将两个大素数相乘十分容易,但那时想要对其乘积进行因式分解却极其困难,因此可以将乘积公 开作为加密密钥,可用于加密,也能用于签名。
DSA:数字签名算法,仅能用于签名,不能用于加解密。
DSS:数字签名标准,技能用于签名,也可以用于加解密。
ELGamal:利用离散对数原理对数据进行加解密或数据签名,其速度非常慢。
优点:
安全性高
算法强度复杂,非对称密码体制有两种密钥,其中一个是公开的,这样就可以不需要像对称密码那样传输对方的密钥了,提高了安全性。由于不对称算法拥有两个密钥,因而特别适用于分布式系统中的数据加密。
缺点:
效率低
加解密耗时长、速度慢,只适合对少量数据进行加密,效率非常低,不适合经常为大量的原始信息进行加密。我们可以先用单密钥机制对原始信息进行加密,然后再通过公钥机制对这个单密钥进行加密。算法强度复杂、安全性依赖于算法与密钥但是由于其算法复杂,而使得加密解密速度没有对称加密解密的速度快。
公钥认证问题
有时有些简单的非对称加密算法的应用其安全性比对称加密算法来说要高,但是其不足之处在于无法确认公钥的来源合法性以及数据的完整性。
This entry was posted in 网络安全. Bookmark the permalink.