加密方式总结

1、对称加密

1.1 DES

  • 已破解,不再安全,基本没有企业在用了
  • 是对称加密算法的基石,具有学习价值
  • 密钥长度56(JDK)、56/64(BC)

1.2 DESede(三重DES)

  • 早于AES出现来替代DES
  • 计算密钥时间太长、加密效率不高,所以也基本上不用
  • 密钥长度112/168(JDK)、128/192(BC)

1.3 AES

  • 最常用的对称加密算法
  • 密钥建立时间短、灵敏性好、内存需求低(不管怎样,反正就是好)
  • 实际使用中,使用工作模式为CTR(最好用BC去实现),此工作模式需要引入IV参数(16位的字节数组)
  • 密钥长度128/192/256,其中192与256需要配置无政策限制权限文件(JDK6)
  • 填充模式最常用的两种PKCS5Padding和PKCS7Padding,其中后者只有BC独有。

1.4 对比

称加密算法(加解密密钥相同)

名称

密钥长度

运算速度

安全性

资源消耗

DES

56位

较快

扫描二维码关注公众号,回复: 3272529 查看本文章

3DES

112位或168位

AES

128、192、256位

2、非对称加密

2.1 rsa

  • RSA 是一种非对称加解密算法。
  • 公钥用于加密,它是向所有人公开的;私钥用于解密,只有密文的接收者持有。
  • RSA 与 DSA 都是非对称加密算法。其中RSA的安全性是基于极其困难的大整数的分解(两个素数的乘积);DSA 的安全性
    是基于整数有限域离散对数难题。基本上可以认为相同密钥长度的 RSA 算法与 DSA 算法安全性相当。

2.2 dsa

  • DSA 一般用于数字签名和认证。
  • DSA是Schnorr和ElGamal签名算法的变种,被美国NIST作为DSS(DigitalSignature Standard)。
  • DSA是基于整数有限域离散对数难题的,其安全性与RSA相比差不多。
  • 在DSA数字签名和认证中,发送者使用自己的私钥对文件或消息进行签名,接受者收到消息后使用发送者的公钥
    来验证签名的真实性。DSA只是一种算法,和RSA不同之处在于它不能用作加密和解密,也不能进行密钥交换,
    只用于签名,它比RSA要快很多.(据说100倍不止哦)

2.3 ECC

 RSA 与 DSA 各有优缺点,那有没一个更好的选择呢?答案是肯定的,ECC(Elliptic Curves Cryptography):椭
圆曲线算法。

 ECC 与 RSA 相比,有以下的优点:

  • 相同密钥长度下,安全性能更高,如160位ECC已经与1024位RSA、DSA有相同的安全强度。
  • 计算量小,处理速度快,在私钥的处理速度上(解密和签名),ECC远 比RSA、DSA快得多。
  • 存储空间占用小 ECC的密钥尺寸和系统参数与RSA、DSA相比要小得多, 所以占用的存储空间小得多。
  • 带宽要求低使得ECC具有广泛得应用前景。

 这使得ECC 取代RSA成为可能。

2.4 对比

名称

成熟度

安全性(取决于密钥长度)

运算速度

资源消耗

RSA

DSA

只能用于数字签名

ECC

低(计算量小,存储空间占用小,带宽要求低)

3、对称与分对称比较

名称

密钥管理

安全性

速度

对称算法

比较难,不适合互联网,一般用于内部系统

快好几个数量级(软件加解密速度至少快100倍,每秒可以加解密数M比特数据),适合大数据量的加解密处理

非对称算法

密钥容易管理

慢,适合小数据量加解密或数据签名



 



 

猜你喜欢

转载自blog.csdn.net/xixingzhe2/article/details/82769422