加密方式的分类
常见的加密算法可以分成三类,对称加密算法,非对称加密算法和Hash算法。
对称加密
指加密和解密使用相同密钥的加密算法。对称加密算法的优点在于加解密的高速度和使用长密钥时的难破解性。
常见的对称加密算法有DES、3DES、AES、Blowfish、IDEA、RC5、RC6
非对称加密
指加密和解密使用不同密钥的加密算法,也称为公私钥加密。非对称加密的缺点是加解密速度要远远慢于对称加密,在某些极端情况下,甚至能比非对称加密慢上1000倍。
常见的非对称加密算法有:RSA、ECC(移动设备用)、Diffie-Hellman、El Gamal、DSA(数字签名用)
Hash算法
Hash算法特别的地方在于它是一种单向算法,用户可以通过Hash算法对目标信息生成一段特定长度的唯一的Hash值,却不能通过这个Hash值重新获得目标信息。因此Hash算法常用在不可还原的密码存储、信息完整性校验等。
常见的Hash算法有MD2、MD4、MD5、HAVAL、SHA
对称密钥和非对称密钥结合使用
对称加密和非对称加密一般是要结合使用来扬长避短:即先用非对称秘钥的公钥对对称密钥加密然后传输给对方,然后双方都使用这个对称密钥去加密实际的数据再传输。
简言之,非对称加密作为密钥交换算法,用交换得到的对称密钥去加密实际数据。
(1) Alice需要在银行的网站做一笔交易,她的浏览器首先生成了一个随机数作为对称密钥。
(2) Alice的浏览器向银行的网站请求公钥。
(3) 银行将公钥发送给Alice。
(4) Alice的浏览器使用银行的公钥将自己的对称密钥加密。
(5) Alice的浏览器将加密后的对称密钥发送给银行。
(6) 银行使用私钥解密得到Alice浏览器的对称密钥。
(7) Alice与银行可以使用对称密钥来对沟通的内容进行加密与解密了。
加密和数字签名 (公钥加密和私钥签名)
接受者产生密钥对,并把公钥传给发送者。发送者使用公钥加密数据,接受者使用私钥解密。是公钥加密。
发送者产生密钥对,并把公钥传给接受者。发送者使用私钥加密数据,接受者使用公钥解密。是数字签名。
不管是哪种,都是把公钥透露给对方,私钥留给自己。这是因为从私钥可以算出到公钥,从公钥不能算出私钥,所以不能把私钥泄露。
数字签名的时候,都是对实际内容的消息摘要进行加密而得到签名,而不是对整个内容。
数字证书
解决中间人攻击的问题。即在公钥加密体系里面,接受者首先要把公钥发给发发送者,数字证书就是可以保证公钥确实是接受者发过来的。
参考
http://yuxin.blog.51cto.com/869751/317142
案例
wifi的加密
仅适用了对称加密,没有适用非对称加密。
WEP-RC4.使用一个静态的密钥来加密所有的通信
WPA-TKIP(RC4的修改),WPA不断的转换密钥,采用有效的密钥分发机制
WPA2-AES
IPSEC的加密
使用公钥加密来交换对称密钥和数字签名,使用对称密钥加密实际数据。
SSH的加密
使用公钥加密来交换对称密钥和数字签名,使用对称密钥加密实际数据,比如3DES,AES。
SSL的加密