对称加密技术 - DES系列

本文介绍了DES算法及其变种3DES的发展历程、算法流程、安全痛点等内容。DES算法是一种经典的对称加密算法,因其密钥较短易受攻击而逐渐被3DES取代。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

DES算法和DESSede算法统称DES系列算法,是对称加密算法领域的经典加密算法。DESSede使用三次迭代,又称3DES,增加算法安全性。DES算法是众多对称加密算法的基础,很多算法都是基于该算法演变而来。

DES家族发展历史

  • 1973年,美国国家标准计算研究所(NIST)征求对称加密算法方案,IBM提交了自己的算法;
  • 1977年,IBM的算法(Luciffer算法)被正式采用,成为数据加密标准:Data Encryption Standard即DES算法;
  • DES算法密钥比较短,只有56位,迭代次数少,很容易受到密码分析手段的攻击,因此DES算法半公开,被怀疑是NSA安置的后门,因此被各大密码学机构强烈质疑;
  • 1998年,出现DES算法破译机,DES算法被攻破,宣告不安全;
  • 1999年,NIST版本新标准3DES,也就是DESede(TripleDES),3DES取代DES,DES作为遗留系统的加密手段被废弃;
  • 目前攻破DES已经很简单-AES正式替代了DES;

虽然DES被取代了,但是DES的CBC工作模式是基础性的算法和工作模型,有很强的意义,在遗留系统中也有一些使用的。

大致算法流程

DES的算法是一种分组密码工作模式,流程比较复杂,大致流程如下:

  • 1.将要加密的数据进行分组,56位为一组;
  • 2.以组为单位进行加密处理,这个时候对每块的加密操作就有了不同的工作模式;
    • 不同的工作模式算法效率和产生的密文差别比较大;
  • 3.最后一块儿不足56位,则需要填充到56位或者不填充,这就是填充模式;
    • 不同的填充模式,影响到数据的安全性;

应用场景及算法特点

一般加密性场景,大部分是遗留系统,还有一部分可能是系统没有支持AES等其他加密手段被迫使用。

JDK 6仅支持56位的密钥长度(出口限制),密钥长度越高安全性越高,Bouncy Castle提供了64位密钥长度的支持。

算法密钥长度密钥长度默认值工作模式填充方式实现
DES5656ECB、CBC、PCBC、CTR、CTS、CFB、CFB8-CFB128、OFB、OFB8-OFB128NoPadding、PKCS5Padding、ISO10126PaddingJDK 6实现
DES6456ECB、CBC、PCBC、CTR、CTS、CFB、CFB8-CFB128、OFB、OFB8-OFB128PKCS7Padding、ISO10126d2Padding、X932Padding、ISO7816d4Padding、ZeroBytePaddingBoouncy Castle实现

DES和3DES的比较

3DES是对DES的一种改良算法,针对DES算法密钥短,迭代次数少的缺点做了改进。但是3DES算法速度慢,密钥计算时间长,加密效率不高,实际使用也不多。

DES的3大安全痛点:

  • 密钥短:56位、68位确实不长 ;
  • 迭代偏少:16次迭代;
  • 半公开性:违反了科克霍夫原则,被怀疑有后门,主要是S盒没被公布,因此S盒被怀疑是后门;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值