对称加解密

本文详细介绍了对称加密算法中的DES、3DES、AES以及PBE。DES由于秘钥长度短,已被破解,不再安全。3DES通过增加秘钥长度提高安全性,但速度较慢。AES成为DES的替代品,因其更高级的算法和未被破解的安全性而广泛使用。PBE结合了对称加密和消息摘要算法,提供了一种基于口令的加密方式,增加了安全性。
摘要由CSDN通过智能技术生成

文章目录

DES

对称加密算法DES
对称加密算法不仅在软件行业使用,在硬件行业也有很多使用。为什么叫对称加密算法呢?因为这种加密算法的加密秘钥=解密秘钥,是一种初等的加密算法,常见的有DES算法,但是由于DES的秘钥长度不够,所以衍生出了3DES(三重DES),它的秘钥要长了很多,可正因为秘钥长了,性能降低了,又出现了叫AES、PBA、IDEA的算法。

DES又名Data Encryption Standard (数据加密标准),DES的出身比较好,他是由于美国的国家标准研究所提出需求,IBM提交的。但是,1998年后DES是不断的被破解,因此在实际使用中DES已经不具备安全性。现在如果是新作的项目、或者没有使用加密算法将要使用的系统中不建议使用DES,DES的出现在一些介绍呀、案例呀、比较老的项目中。

秘钥长度默认工作模式填充方式实现方
5656ECP、CBC、PCBC、CTR、CTS、CFB、CFB8到128、OFB、OFB8到128NoPadding、PKCS5Padding、ISO10126PaddingJDK
6456同上PKCS7Padding、ISO10126d2Padding、X932Padding、ISO7816d4Padding、ZerobytePaddingBC

不同的工作模式、填充方式,决定了DES算法在破解上的难度。
todo 工作模式:

工作模式解释
ECP
CBC
PCBC
CTR
CTS
CFB
CFB8到128
OFB
OFB8到128

todo 填充方式:

填充方式解释
NoPadding
PKCS5Padding
ISO10126Padding
ISO10126d2Padding
X932Padding
ISO7816d4Padding
ZerobytePadding

在这里插入图片描述

3DES

为什么会有3重des算法?是因为des算法被很多密码学机构质疑,因为它的算法是半公开的,这一点违反了柯克霍夫原则,所以很多密码学机构不推荐使用des,而且更多的人怀疑美国的安全局会在des安装一些后门,以达到截取信息的目的,这也是des广受诟病的原因之一。
3DES的好处:

  1. 密钥长度增强
  2. 迭代次数提高(说到迭代次数,其实也会有二重、四重des)

3DES又叫 Triple DES 或者 DESede

秘钥长度默认工作模式填充方式实现方
112、168168ECP、CBC、PCBC、CTR、CTS、CFB、CFB8到128、OFB、OFB8到128NoPadding、PKCS5Padding、ISO10126PaddingJDK
128、192168同上PKCS7Padding、ISO10126d2Padding、X932Padding、ISO7816d4Padding、ZerobytePaddingBC

AES

之前有了DES、3DES,为什么会有AES呢?是因为A比D的级别高一点?不是,是因为DES的算法有些漏洞,3DES的算法相对来说比较低、处理速度比较慢,这才是AES出现的原因,并且AES是目前使用最多的对称加密算法。
AES还有一个优势是官方并未报道它已经被破解了,AES通常用于移动通信系统的加密、基于SSH协议的软件(如SSH Client、SecureCRT)。
AES是比DES更高级的算法,是DES的替代者,当一个东西被另一个东西替代,替代者往往比被替代者更牛一些、更高级一些,这是替代者的一些特点。

秘钥长度默认工作模式填充方式实现方
128、192、256128ECP、CBC、PCBC、CTR、CTS、CFB、CFB8到128、OFB、OFB8到128NoPadding、PKCS5Padding、ISO10126PaddingJDK(256位秘钥需要获得无政策限制权限文件)
同上同上同上PKCS7Padding、ZerobytePaddingBC

注:
无政策限制权限文件 :指美国对于软件出口的一些限制才有的

PBE

在这里插入图片描述

我们看到了AES、DES、3重DES在实现上是非常非常接近的,只是个别的参数不同,其实在使用上没啥不同的。但是,PBE算法综合了对称加密算法、消息摘要算法的优势,形成了一个特殊的对称加密算法,这也就是PBE名字古怪的原因。
PBE 又叫Password Based Encryption(基于口令加密),特点在于口令是由用户自己来管理的,但是通常这个口令又不会特别的复杂,就是不会像BASE64编码搞出来的复杂的那么难记,通常口令是比较简单容易记的,在这种方式下,口令其实很容易被穷举的方式破译,我们也知道其实网上有一些黑客会用穷举不停找相应的内容来达到破解的目的,对于这种情况,我们通常的方式是通过加盐来处理,什么意识呢?就是通过额外的引入东西去扰乱,这就是PBE算法的特点,采用的是口令替代了DES、AES算法里的秘钥。
其实,在PBE里并没有新的计算方式产生,而只是对于已有算法的包装。实现方也是有JDK、BC,实现方式有PBEWithMD5AndDES等

算法秘钥长度默认工作模式填充方式实现
PBEWithMD5AndDES6464CBCPKCS5Padding、PKCS7Padding、ISO10126Padding、ZeroBytePaddingBC
PBEWithMD5AndRC2112128CBCPKCS5Padding、PKCS7Padding、ISO10126Padding、ZeroBytePaddingBC
PBEWithSHA1AndDES6464CBCPKCS5Padding、PKCS7Padding、ISO10126Padding、ZeroBytePaddingBC
PBEWithSHA1AndRC2128128CBCPKCS5Padding、PKCS7Padding、ISO10126Padding、ZeroBytePaddingBC
PBEWithSHAAndIDEA-CBC128128CBCPKCS5Padding、PKCS7Padding、ISO10126Padding、ZeroBytePaddingBC
PBEWithSHAAnd2-KeyTripleDES-CBC128128CBCPKCS5Padding、PKCS7Padding、ISO10126Padding、ZeroBytePaddingBC
PBEWithSHAAnd3-KeyTripleDES-CBC192192CBCPKCS5Padding、PKCS7Padding、ISO10126Padding、ZeroBytePaddingBC
PBEWithSHAAnd128BitRC2-CBC128128CBCPKCS5Padding、PKCS7Padding、ISO10126Padding、ZeroBytePaddingBC
PBEWithSHAAnd40BitRC2-CBC4040CBCPKCS5Padding、PKCS7Padding、ISO10126Padding、ZeroBytePaddingBC
PBEWithSHAAnd128BitRC4128128CBCPKCS5Padding、PKCS7Padding、ISO10126Padding、ZeroBytePaddingBC
PBEWithSHAAnd40BitRC44040CBCPKCS5Padding、PKCS7Padding、ISO10126Padding、ZeroBytePaddingBC
PBEWithSHAAndTwofish-CBC256256CBCPKCS5Padding、PKCS7Padding、ISO10126Padding、ZeroBytePaddingBC
PBEWithMD5AndDES5656CBCPKCS5PaddingJDK
PBEWithMD5AndTripleDES112、168168CBCPKCS5PaddingJDK
PBEWithSHA1AndDESede112、168168CBCPKCS5PaddingJDK
PBEWithSHA1AndRC2_4040~1024(8的倍数)128CBCPKCS5PaddingJDK

在这里插入图片描述

总结

DES、3DES、AES的秘钥可以使用程序的方式生成,也可以双方约定一个相同的秘钥如“12345678”

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值