对称加密与非对称加密
-
对称加密:加密解密用的是同样的“钥匙”
-
非对称加密:加密解密用的是不同的“钥匙”
1、对称加密
又称公开**加密,加密和解密都会用到同一个**,发收信双方都使用这个**对数据进行加密和解密,这就要求解密方事先必须知道加***。如果**被攻击者获得,此时加密就失去了意义。
对称加密算法的特点是算法公开、计算量小、加密速度快、加密效率高。
2、非对称加密
又称共享**加密。非对称加密算法需要两个**:公有**(publickey)和私有**(privatekey)。公开**与私有**是一对,如果用公开**对数据进行加密,只有用对应的私有**才能解密。因为加密和解密使用的是两个不同的**,所以这种算法叫作非对称加密算法。 非对称加密算法实现机密信息交换的基本过程是:甲方生成一对**并将其中的一把作为公用**向其它方公开;得到该公用**的乙方使用该**对机密信息进行加密后再发送给甲方;甲方再用自己保存的另一把专用**对加密后的信息进行解密。甲方想要回复乙方时正好相反,使用乙方的公钥对数据进行加密,同理,乙方使用自己的私钥来进行解密。
不对称加密算法使用两把完全不同但又是完全匹配的一对钥匙—公钥和私钥。在使用不对称加密算法加密文件时,只有使用匹配的一对公钥和私钥,才能完成对明文的加密和解密过程。加密明文时采用公钥加密,解密密文时使用私钥才能完成,而且发信方(加密者)知道收信方的公钥,只有收信方(解密者)才是唯一知道自己私钥的人。不对称加密算法的基本原理是,如果发信方想发送只有收信方才能解读的加密信息,发信方必须首先知道收信方的公钥,然后利用收信方的公钥来加密原文;收信方收到加密密文后,使用自己的私钥才能解密密文。显然,采用不对称加密算法,收发信双方在通信之前,收信方必须将自己早已随机生成的公钥送给发信方,而自己保留私钥。由于不对称算法拥有两个**,因而特别适用于分布式系统中的数据加密。
常见的公钥加密算法有:RSA、ElGamal、背包算法、Rabin(RSA的特例)、迪菲-赫尔曼**交换协议中的公钥加密算法、椭圆曲线加密算法)。
例子:
Alice使用**K加密消息并将其发送给Bob,Bob收到加密的消息后,使用**K对其解密以恢复原始消息。这里存在一个问题,即Alice如何将用于加密消息的**值发送给 Bob?答案是,Alice发送**值给Bob时必须通过独立的安全通信信道(即没人能监听到该信道中的通信),但这种需要独立的安全信道,且不能确定他们的**值可以保持多久而不泄露。
非对称加密算法,Alice需要通过电子邮件给Bob发送一个机密文档。首先,Bob使用电子邮件将自己的公钥发送给Alice。然后Alice用Bob的公钥对文档加密并通过电子邮件将加密消息发送给Bob。由于任何用Bob 的公钥加密的消息只能用Bob的私钥解密,因此即使窥探者知道Bob的公钥,消息也仍是安全的。Bob在收到加密消息后,用自己的私钥进行解密从而恢复原始文档。
应用:
https采用非对称加密算法+对称加密算法来保证数据的安全。
DES是数据加密标准,AES是高级加密标准
AES的区块长度固定为256比特,**长度则可以是256,192或256比特