非对称加密算法:
加密和解密使用不同的密钥。公钥只能用来加密,而私钥只能用来解密。私钥由用户自己拥有。公钥公开配送,只要有需求即可获得。
优点:
算法安全性高,公钥公开,私钥自己保存
缺点:
加密和解密的时间较长,速度慢,只适用于少量数据或要求保密性的文件进行加密。
Alice与Bob的通信过程:
1、 原始信息进过hash算法加密形成数据摘要。
2、 信息摘要经过Alice的私钥加密,形成数字签名。
3、 (原始信息+数字签名+Alice的公钥)用Alice和Bob的对称加密的密钥进行加密,形成加密信息。
4、用Bob的公钥加密Alice和Bob对称加密的密钥形成密钥信封。
5、将加密信息和密钥信封由公网发送给接收者Bob。
6、Bob用自己的私钥,解密出(Alice和Bob的对称加密密钥)
7、用(Alice和Bob的对称加密)密钥对加密信息进行解密,生成原始信息、数字签名、和Alice的公钥。
8、将数字签名用Alice的公钥解密,形成信息摘要
9、原始信息经过hash算法形成信息摘要。
10、将两个信息摘要(8、9)进行对比。若相同则信息未被中途修改,若不同则信息在中途被修改。
常见的非对称加密算法:RSA、DSA、ECC、Elgamal、背包算法
对称加密:
加密和解密使用相同的密钥。对称加密只有一个密钥。
优点:
算法公开,计算量小,加密速度快,加密效率高。
缺点:
密钥管理较为困难,不安全。在数据传送完之前发送发和接收方必须保存好密钥,否则加密信息不安全。发送中途容易被抓包、修改。每次使用对称加密都会产生一对密钥,这会使得发送和接收方的密钥数量大大增加,造成密钥管理困难。
**注:**对称加密算法的前提条件是发送方和接收方都知道同一密钥
对称加密的加密过程:
发送方将原始信息经过对称密钥K进行加密形成密文,密文经过公网传输发送到接收方。
接收方收到密文后用对称密钥进行解密产生明文。
常用算法:DES、3DES、AES等等。