根据密钥长度不同,对称算法提供了多种级别的安全度。如果使用1024位或更长的密钥,非对称加密也被认为是安全的。
对称加密算法有:
(1)DES: 对称分组密码。56位,常用的加密算法,然而其安全性能较差
(2)TripleDES :对称分组密码,168位(112位有效),对DES做了一些比较好的改进,而且它能满足当前的安全需要。
(3)Blowfish: 对称分组密码,长度可变可以达到448位,长的密钥长度提供很好的安全性
(4)RC4: 对称流密码,长度可变通常从40-128位,快速的流密码。主要用在SSL中。使用128位密钥时安全性比较好
(5)AES: 对称分组密码,长度可变(128、192、256),提供很好的安全性
非对称加密算法:
(1) RSA :非对称分组密码,长度可变(512/1024/2048),最流行的公钥算法。它的美国专利于2000年9月到期。可以免费使用
(2)ELGamal 非对称分组密码,长度可变(512,1024,2048)不如RSA常用,但也用于一些协议,如PGP
(3)Diffie-Hellman :密钥协定,长度可变(512,1024),第一个公钥密码算法,现在仍然用于各种协议,如SSL和PGP
Steganography :
指的是把消息隐藏在其他消息中的方法。例如,吧每段话的第一个字母拼接成一条消息。它本身并不是加密算法,但它可以用于传送秘密消息。在某些场合,把Steganography和加密方法结合起来非常有用。主要用于你不想让窃听者知道公开信息中还有隐藏的加密信息的情况。
一次性填充
最安全的加密方式是一次性填充。它要求创建一个与要传送的消息长度完全一样的复杂的随机密码,密码只被使用一次,并且必须是完全随机的,否则就可能被破解。
一次性填充系统的好处在于,攻击者根本无法破解密钥,因为密文可能是与原始文本等长的任何消息。
一次性填充的问题也是密钥的传递问题。在发送消息前,密钥必须完全秘密地传送。
一次性填充最明显应用是发送需要绝对安全的单一消息。
椭圆曲线加密ECC
ECC是基于椭圆曲线的对数问题,所以没有因式分解的弱点。而RSA的安全性是基于对大树进行因式分解的困难性。理论上没有简单方法能做到因式分解,但如果能找到,RSA将崩溃。