对称加密
加密和解密使用相同密钥的加密算法。所谓对称,就是采用这种加密方法的双方使用方式用同样的密钥进行加密和解密。
采用单钥密码的加密方法,同一个密钥可以同时用来加密和解密,这种加密方法称为对称加密,也称为单密钥加密。常用的单向加密算法:
1、DES(Data Encryption Standard):数据加密标准,速度较快,适用于加密大量数据的场合;
2、3DES(Triple DES):是基于DES,对一块数据用三个不同的密钥进行三次加密,强度更高;
3、AES(Advanced Encryption Standard):高级加密标准,是下一代的加密算法标准,速度快,安全级别高,支持128、192、256、512位密钥的加密;
4、Blowfish
算法特征
1、加密方和解密方使用同一个密钥;
2、加密解密的速度比较快,适合数据比较长时的使用;
3、密钥传输的过程不安全,且容易被破解,密钥管理也比较麻烦;
优缺点
对称加密算法的优点是算法公开、计算量小、加密速度快、加密效率高。
对称加密算法的缺点是在数据传送前,发送方和接收方必须商定好秘钥,然后使双方都能保存好秘钥。其次如果一方的秘钥被泄露,那么加密信息也就不安全了。另外,每对用户每次使用对称加密算法时,都需要使用其他人不知道的独一秘钥,这会使得收、发双方所拥有的钥匙数量巨大,密钥管理成为双方的负担。
非对称加密
对称加密算法在加密和解密时使用的是同一个秘钥;而非对称加密算法需要两个密钥来进行加密和解密,这两个密钥是公开密钥(公钥)和私有密钥(私钥)。
常用的非对称加密算法有:
RSA:RSA 是一种目前应用非常广泛、历史也比较悠久的非对称秘钥加密技术,由于难于破解,RSA 是目前应用最广泛的数字加密和签名技术,它的安全程度取决于秘钥的长度,目前主流可选秘钥长度为 1024位、2048位、4096位等,理论上秘钥越长越难于破解,当然更长的秘钥更安全,但也意味着会产生更大的性能开销。
DSA:数字签名算法,和 RSA 不同的是 DSA 仅能用于数字签名,不能进行数据加密解密,其安全性和RSA相当,但其性能要比RSA快。
ECDSA:椭圆曲线签名算法,是ECC(Elliptic curve cryptography,椭圆曲线密码学)和 DSA 的结合,相比于RSA算法,ECC 可以使用更小的秘钥,更高的效率,提供更高的安全保障,据称256位的ECC秘钥的安全性等同于3072位的RSA秘钥,和普通DSA相比,ECDSA在计算秘钥的过程中,部分因子使用了椭圆曲线算法。
公钥密码体制采用的加密密钥(公开钥)和解密密钥(秘密钥)是不同的。由于加密密钥是公开的,密钥的分配和管理就很简单,而且能够很容易地实现数字签名,因此最适合于电子商务应用的需要。其主要的优点是:
(1)密钥分配简单。
(2)密钥的保存量少。
(3)可以满足互不相识的人之间进行私人谈话时的保密性要求。
(4)可以完成数字签名和数字鉴别。
但在实际应用中,公钥密码体制并没有完全取代私钥密码体制,这是因为公钥密码体制在应用中存在以下几个缺点:
(1)公钥密码是对大数进行操作,计算量特别浩大,速度远比不上私钥密码体制。
(2)公钥密码中要将相当一部分密码信息予以公布,势必对系统产生影响。
(3)在公钥密码中,若公钥文件被更改,则公钥被攻破。
最后来看上面那张图的区别。
其中,过程是一样的,都是由明文加密后得到密文,密文解密后得到明文
看中间的过程。
对称加密,加密的过程:采用密钥和加密算法得到密文,解密的过程:采用密钥和解密算法得到明文。
非对称加密,加密的过程,采用加密密钥和加密算法得到密文,解密的过程:采用解密密钥和加密算法得到明文。
看出区别了吗?
除了密钥的区别,还有一点是算法,对称加密的加密算法和解密算法是不同的、而非对称加密的加密算法和解密算法,其实是一样的。
延伸:
验证。非对称加密,通常用于验证。
过程是这样子的、原文经过HASH,得到原文的摘要,然后对得到的这个摘要进行加密,得到密文。
传输的时候,将原文+密文(摘要的密文)传送过去
接收者验证:1、原文经过HASH得到原文的摘要。2、密文经过传送者的公钥进行解密,得到原文的摘要。3、将步骤1和2得到的摘要进行对比,如果一致则验证通过。
看图: