加密可以分为对称加密和非对称加密,对称加密有DES, TDES, AES,非对称加密有DSA, RSA。
对称加密就是通过一个key,或者叫密码,用已知公开的算法将其数据加密,然后使用同样的key来解密数据,从而得到原来的数据。而非对称加密则是加密使用一个key,而解密使用另外一个key,因此加密和解密用的不同的key,这2个我们称之为公钥和私钥。
这里简单提一下,还有一种加密算法,是无法解密出原来的内容的,这种加密算法成为不可逆加密,hash就属于这样的算法,而我们用的最多的hash算法就是md5,我们通常使用它来加密用户密码;有时我们还用它给文件生成一个指纹,其思想就是给整个文件进行一次md5加密,最后得到一个字符串,如果文件有改动,或者损坏,即使是一个字节,最后生成的md5的串都是不一样的,这就是为什么你在很多网站下载东西,他们给你提供一个字符串。
好了,回到我们的主题,谈对称加密。对称加密主流的有
- DES
- TDES(或者3DES)
- AES
DES
DES算法为密码体制中的对称密码体制,又被成为美国数据加密标准,是1972年美国IBM公司研制的对称密码体制加密算法。其密钥长度为56位,明文按64位进行分组,将分组后的明文组和56位的密钥按位替代或交换的方法形成密文组的加密方法。DES加密算法特点:分组比较短、密钥太短、密码生命周期短、运算速度较慢。最大的缺陷是这个加密容易被破解,并且已经有很多被破译的报道。
TDES(或者3DES)
其实T是Triple的首字母,而Triple就是3的意思,这就不奇怪为什么有人叫它3DES了。
这种并不是一种全新的算法,而是在DES的基础上提出的一种改进,TDES使用3个key,进行3重加密解密,过程是:
3个key1, key2还有key3,均为56bit
使用key1为密钥进行DES加密,再用key2为密钥进行DES“解密”,最后以key3进行DES加密。3个key可以:
- 三个密钥是独立的。
- key1和key2是独立的,而key3=key1
- 三个密钥均相等,即key1=key2=key3
AES
这中算法是目前较为安全的一种,还没有听说谁能够破解此种加密。
AES加密算法即密码学中的高级加密标准(Advanced Encryption Standard,AES),又称Rijndael加密法,是美国联邦政府采用的一种区块加密标准。这个标准用来替代原先的DES
AES的基本要求是,采用对称分组密码体制,密钥长度的最少支持为128、192、256,分组长度128位。
AES加密算法 – 加密模式
ECB模式
优点:
1.简单;
2.有利于并行计算;
3.误差不会被传送;
缺点:
1.不能隐藏明文的模式;
2.可能对明文进行主动攻击;
CBC模式:
优点:
1.不容易主动攻击,安全性好于ECB,适合传输长度长的报文,是SSL、IPSec的标准。
缺点:
1.不利于并行计算;
2.误差传递;
3.需要初始化向量IV
CFB模式:
优点:
1.隐藏了明文模式;
2.分组密码转化为流模式;
3.可以及时加密传送小于分组的数据;
缺点:
1.不利于并行计算;
2.误差传送:一个明文单元损坏影响多个单元;
3.唯一的IV;
OFB模式:
优点:
1.隐藏了明文模式;
2.分组密码转化为流模式;
3.可以及时加密传送小于分组的数据;
缺点:
1.不利于并行计算;
2.对明文的主动攻击是可能的;
3.误差传送:一个明文单元损坏影响多个单元;
版权所有,禁止转载. 如需转载,请先征得博主的同意,并且表明文章出处,否则按侵权处理.