密码学算法分三大类:
1、对称算法
使用同一个密钥
常见的对称加密算法:DES、3DES、DESX、Blowfish、IDEA、RC4、RC5、RC6和AES
优点:
加解密的高速性和当使用长密钥时的难解性。
缺点:
当需要密钥的数量多时,密钥的生成和管理是一个大问题;
密钥的保管和传递也容易出现问题。
例子理解:
假如一个信息是数字3,算法是乘法,密钥是2,那么这个数字3经过加密后的数字就是6,他对外传递的数字也是6.
如果解密的后,在收到数字6后,使用逆算法除法,同时,解密者知道密钥也是2,那么6除以2,最后获取的解密信息是3.
2、非对称算法
使用不同的加解密钥。
常见的非对称加密算法:RSA、ECC(移动设备用)、Diffie-Hellman、El Gamal、DSA(数字签名用)
优点:
由于是解密密钥和加密不相同,所以在密钥泄露这块比对称算法更安全许多。
缺点:
加解密速度相对比对称算法来说较慢。
例子理解:
比如张三公钥-张三私钥,李四公钥-李四私钥。这个时候,李四想要给张三发信息,便用张三的公钥对信息进行加密(这个时候,哪怕这段信息在中途被截获了,除了张三知道
自己的私钥,没人知道,自然也就无法破解截获的信息),张三在收到信息后,用自己的私钥进行解密即可。
攻击者可以冒充张三,发送攻击的公钥,在中途骗取李四发送的信息。这个时候就需要用到数字签名和证书来确定对方的身份了。
3、摘要算法(HASH)
MD2、MD4、MD5、HAVAL、SHA、SHA-1、HMAC、HMAC-MD5、HMAC-SHA1
特征:
加密过程不需要密钥,所以不存在密钥分发和管理问题。
加密的数据无法被解密。是一个单向函数,无法从中获取原文,
只有输入相同的明文数据经过相同的消息摘要算法才能得到相同的密文。
长度固定(无论输入的原文消息有多长,输出的信息摘要长度都是固定的。
应用:
一般而言,摘要算法用于数据指纹(数字签名),而数字签名是保证数据完整性(无篡改,无假冒)和不可抵赖性的重要手段。