对称加密
对称加密,顾名思义就是信息的加密和解密都是使用同一个密钥,掌握密钥才能获取信息;常见的对称加密算法有 DES、3DES 和 AES 等,其优缺点如下:
优点:算法公开、计算量小、加密速度快、加密效率高,适合加密比较大的数据;
缺点:
- 交易双方需要使用相同的密钥,也就无法避免密钥的传输,而密钥在传输过程中无法保证不被截获,因此对称加密的安全性得不到保证;
- 每对用户每次使用对称加密算法时,都需要使用其他人不知道的惟一密钥,这会使得发收信双方所拥有的钥匙数量急剧增长,密钥管理成为双方的负担;对称加密算法在分布式网络系统上使用较为困难,主要是因为密钥管理困难,使用成本较高;
对称加密数据传输过程如下:
从图中可以看出,被加密的数据在传输过程中是无规则的乱码,即便被第三方截获,在没有密钥的情况下也无法解密数据,也就保证了数据的安全;
但是有一个致命的问题,那就是既然双方要使用相同的密钥,那就必然要在传输数据之前先由一方把密钥传给另一方,那么在此过程中密钥就很有可能被截获,这样一来加密的数据也会被轻松解密;
非对称加密
非对称加密,顾名思义,就是加密和解密需要使用两个不同的密钥:公钥( key)和私钥(private key);
公钥与私钥是一对,如果用公钥对数据进行加密,只有用对应的私钥才能解密;如果用私钥对数据进行加密,那么只有用对应的公钥才能解密;
非对称加密算法实现机密信息交换的基本过程是:
- 甲方生成一对密钥并将其中的一把作为公钥对外公开;得到该公钥的乙方使用公钥对机密信息进行加密后再发送给甲方;
- 甲方再用自己保存的私钥对加密后的信息进行解密;
如果对公钥和私钥不太理解,可以想象成一把钥匙和一个锁头,只是全世界只有你一个人有这把钥匙,你可以把锁头给别人,别人可以用这个锁把重要的东西锁起来,然后发给你,因为只有你一个人有这把钥匙,所以只有你才能看到被这把锁锁起来的东西;
常用的非对称加密算法是 RSA 算法,还包括 ECC、DH 等算法,
非对称加密算法的优缺点如下:
- 优点:算法公开,加密和解密使用不同的钥匙,私钥不需要通过网络进行传输,安全性很高;
- 缺点:计算量比较大,加密和解密速度相比对称加密慢很多;
非对称加密公钥和私钥的其他使用方法:私钥做数字签名,公钥验证;