导航
导航
文章目录
  1. 概念
  2. 分类
  3. 选用

加密算法

概念

明文:加密前的信息
密文:加密后的信息
密钥:控制加密及解密过程的指令
算法:算法是一组规则,规定如何进行加密和解密

分类

对称加密:
定义:也称密钥加密,采用单钥密码系统的加密方法,同一个密钥可以同时用作信息的加密和解密
优点:算法公开、计算量小、加密速度快、加密效率高,通常在消息发送方需要加密大量数据时使用
缺点:安全性取决于加密算法本身,以及密钥的管理,如果一方密钥泄露,加密信息就不安全了;另外,如果使用每次使用唯一密钥的方式,则收发双方所拥有的钥匙数量巨大,密钥管理成为双方的负担
例子:DES、3DES、TDEA、Blowfish、RC2、RC4、RC5、IDEA、SKIPJACK、AES等
常用:AES
比较:
DES是一种分组数据加密技术(先将数据分成固定长度的小数据块,之后进行加密),速度较快,适用于大量数据加密,而3DES是一种基于DES的加密算法,使用3个不同密匙对同一个分组数据块进行3次加密,如此以使得密文强度更高。
相较于DES和3DES算法而言,AES算法有着更高的速度和资源使用效率,安全级别也较之更高了,被称为下一代加密标准。

非对称加密:
定义:非对称加密算法需要两个密钥来进行加密和解密,这两个秘钥是公开密钥(public key,简称公钥)和私有密钥(private key,简称私钥)
机制:公开密钥与私有密钥是一对,如果用公开密钥对数据进行加密,只有用对应的私有密钥才能解密;如果用私有密钥对数据进行加密,那么只有用对应的公开密钥才能解密。因为加密和解密使用的是两个不同的密钥,所以这种算法叫作非对称加密算法。
优点:安全性更好
缺点:解密时间长、速度慢,适合对少量数据进行加密
例子:RSA、Elgamal、背包算法、Rabin、D-H、ECC(椭圆曲线加密算法)等
常用:RSA
比较:
RSA和DSA的安全性及其它各方面性能都差不多,而ECC较之则有着很多的性能优越,包括处理速度,带宽要求,存储空间等等。

散列算法:
定义:产生一些数据片段(例如消息或会话项)的散列值的算法
特点:1、任何两个不同的输入不会得到相同的输出;2、不可逆
例子:MD2、MD4、MD5、SHA-1、HMAC
常用:MD5、SHA-1
比较:
这几种算法只生成一串不可逆的密文,经常用其效验数据传输过程中是否经过修改,因为相同的生成算法对于同一明文只会生成唯一的密文,若相同算法生成的密文不同,则证明传输数据进行过了修改。通常在数据传说过程前,使用MD5和SHA1算法均需要发送和接收数据双方在数据传送之前就知道密匙生成算法,而HMAC与之不同的是需要生成一个密匙,发送方用此密匙对数据进行摘要处理(生成密文),接收方再利用此密匙对接收到的数据进行摘要处理,再判断生成的密文是否相同。

选用

由于对称加密算法的密钥管理是一个复杂的过程,密钥的管理直接决定着他的安全性,因此当数据量很小时,我们可以考虑采用非对称加密算法。
在实际的操作过程中,我们通常采用的方式是:采用非对称加密算法管理对称算法的密钥,然后用对称加密算法加密数据,这样我们就集成了两类加密算法的优点,既实现了加密速度快的优点,又实现了安全方便管理密钥的优点。
如果在选定了加密算法后,那采用多少位的密钥呢?一般来说,密钥越长,运行的速度就越慢,应该根据的我们实际需要的安全级别来选择,一般来说,RSA建议采用1024位的数字,ECC建议采用160位,AES采用128为即可。

参考:
http://baike.baidu.com/item/%E9%9D%9E%E5%AF%B9%E7%A7%B0%E5%8A%A0%E5%AF%86
http://baike.baidu.com/item/%E5%AF%B9%E7%A7%B0%E5%8A%A0%E5%AF%86
http://baike.baidu.com/item/%E6%95%A3%E5%88%97%E7%AE%97%E6%B3%95
http://blog.csdn.net/cws1214/article/details/18604075