各种加解密算法分类及其各自的安全性能对比

常用的加解密算法分三大类:非对称密钥加密算法、对称密钥加密算法、Hash加密算法

一、非对称密钥加密算法(RSA、DSA、ECC、DH等):

非对称加密又叫公开密钥算法(public key algorithm)。这种加密算法是这样设计的:用作加密的密钥不同于用作解密的密钥,而且解密密钥不能根据加密密钥计算出来(至少在合理假定的长时间内)。之所以又叫做公开密钥算法是由于加密密钥可以公开,即陌生人可以得到它并用来加密信息,但只有用相应的解密密钥才能解密信息。在这种加密算法中,加密密钥被叫做公开密钥,而解密密钥被叫做私有密钥。非对称加密算法的加密、解密的效率比较低。在算法设计上,非对称加密算法对待加密的数据长度有着苛刻的要求。例如RSA算法要求待加密的数据不得大于53个字节。

   表1 非对称密钥加密算法安全性对比:

攻破时间

(MIPS年)

RSA/DSA

(密钥长度)

ECC

密钥长度

RSA/ECC

密钥长度比

104

512

106

5:1

108

768

132

6:1

1011

1024

160

7:1

1020

2048

210

10:1

1078

21000

600

35:1


注:1MIPS年是1MIPS的机器一年所能处理的数据量,如上表中的10000MIPS年,即表示处理速度为10000MIPS的CPU需要1年才能攻破。

表中红色表示不安全、黄色表示中等安全、绿色表示安全级别较高。

由上表可知,ECC算法抗攻击能力强、计算量小、处理速度快、存储空间小、带宽要求低。使得ECC在无线通信安全、IC卡数据加密等领域广泛应用。这些特点必将使其替换RSA等算法,而成为通用的公钥加密算法。然而由于非对称算法本身的复杂性,使得其对大数据加解密的适用性不强,所以非对称算法常与对称加密算法结合使用,即利用非对称算法对对称算法的密钥进行加密传输。

Java代码的DH算法,参考:http://blog.csdn.net/kongqz/article/details/6302913


二、对称密钥加密算法(DES、3DES、AES等)

对称钥匙加密系统是加密和解密均采用同一把秘密钥匙,而且通信双方都必须获得这把钥匙,并保持钥匙的秘密。

表2 AES与3DES的比较

算法名称

算法类型

密钥长度

速度

解密时间(建设机器每秒尝试255个密钥)

资源消耗

AES

对称block密码

128、192、256位

1490000亿年

3DES

对称feistel密码

112位或168位

46亿年


三、Hash加密算法(MD5、SHA等):

散列是信息的提炼,通常其长度要比信息小得多,且为一个固定长度。加密性强的散列一定是不可逆的,这就意味着通过散列结果,无法推出任何部分的原始信息。任何输入信息的变化,哪怕仅一位,都将导致散列结果的明显变化,这称之为雪崩效应。散列还应该是防冲突的,即找不出具有相同散列结果的两条信息。具有这些特性的散列结果就可以用于验证信息是否被修改。


  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值