密码学 - 三重DES(数据加密标准)



1990年后,针对DES的穷举密钥搜索速度开始让DES用户感到不安。然而,用户并不想替换DES,因为更换已被广泛采用并嵌入大型安全架构中的加密算法需要花费大量时间和金钱。

务实的做法不是完全放弃DES,而是改变DES的使用方式。这导致了三重DES(有时称为3DES)的改进方案。

需要注意的是,三重DES有两个版本:2密钥三重DES(2TDES)和3密钥三重DES(3TDES)。

什么是三重DES?

三重数据加密算法,通常称为三重DES、TDEA和3DES,是一种使用三个独立的DES版本加密单个文本片段的加密方法。在第一个版本中,每个使用的密钥都是唯一的;在第二个版本中,两个密钥相同,一个密钥不同;在第三个版本中,每个密钥都相同。这些是使用的不同的密钥选择方法。

三重DES首次引入于1998年。为了获得更长的有效密钥长度,它对每个数据块运行DES密码算法三次。

TDES Encryption Scheme

三重DES的加密过程

  • 三重DES操作的三个阶段是加密-解密-加密(EDE)。它的功能是使用密钥包,该密钥包由三个56位密钥(K1、K2和K3)组成。
  • 最初使用K1进行加密;然后使用K2进行解密;最后使用K3进行最终加密。还有一个双密钥三重DES版本,其中K1用于第一步和最后一步,但相同的算法运行三次。2015年,这个双密钥版本被淘汰。
  • 由于双重加密的限制,算法执行三次。中间相遇攻击是一种从一端加密,从另一端解密,并搜索冲突或导致两个方向结果相同的密钥的攻击类型。如果内存足够,双重DES或任何其他运行两次的密码将只有基准密码的两倍强度。
  • 简单来说,如果双重密码的密钥长度较短,其强度与相同的密码运行一次的强度相同。
  • 不仅如此,如果密码组合在一起,使用两个密钥进行两次加密等同于使用备用密钥进行一次加密。但是确定另一个密钥并不简单,使用暴力攻击中的每个密钥都会导致发现第三个密钥。
  • 因此,如果密码是一个群,则多次加密是浪费时间。
  • 运算符和集合之间存在称为群的关系。如果它们与加法的行为与整数几乎相同,则它们构成一个群。
  • 如果您继续加密一个块并且它在潜在块的集合上完成一个完整的循环,那么也会形成一个群。
  • DES不属于群。但DES具有流行的结构特征,这导致一些人坚持认为它绝对不是一个群,换句话说,它可能是一个群。
  • 例如,已知DES循环,您可以通过连续使用相同的密钥进行加密而陷入无限循环。

加密模式

三重DES允许在三个轮次中的每一个轮次中以任一方向(加密或解密)使用DES算法。因此,三重DES有八种不同的可能模式。

模式 加密序列
DDD 解密-解密-解密
DDE 解密-解密-加密
DED 解密-加密-解密
DEE 解密-加密-加密
EDD 加密-解密-解密
EDE 加密-解密-加密
EED 加密-加密-解密
EEE 加密-加密-加密

如果存在更好的选择,您不太可能想出于与您不想使用EED、DEE、DDE或EDD相同的结构原因而使用EEE或DDD模式。由于DES的弱非群性,最有效的组合是EDE或DED。EDE也更有意义。如果您决定使用DED,则必须阐明三重DES如何以解密开始。

三重DES的模块

三重DES有一些模块,如下所示:

  • 管理员登录 - 在这个项目中,管理员可以使用用户名和密码进行验证,以访问帐户面板模块。
  • 用户登录 - 在此模块中,用户可以使用用户名和密码进行身份验证,以访问其帐户面板模块。
  • 用户注册模块 - 在此模块中,用户可以输入用户名、密码、地址、手机号码和邮箱地址进行注册,以访问帐户面板模块。
  • 管理员发消息模块 - 在此模块中,管理员可以选择用户名,然后输入消息以及主题,以及可用于加密消息和主题的输入加密密钥,然后将其发送给所选用户,消息和主题都保存在用户收件箱中。
  • 管理员检查可疑邮件 - 在此模块中,管理员可以检查通常不存储在用户收件箱中而是标记为可疑状态的可疑邮件,并将其作为包含用户元素的可疑邮件发送给管理员。
  • 管理员数据字典 - 在此模块中,管理员可以将可疑词添加到当前数据字典中,以便更直接、更有效地检测用户发送的可疑邮件。
  • 管理员查看数据字典 - 在此模块中,管理员可以看到数据字典中存在哪些可疑词,还可以删除数据字典中当前的可疑词。
  • 管理员查看用户列表 - 在此模块中,管理员可以看到已注册的用户及其完整信息,如果发现任何已注册用户在网站上进行可疑活动,则可以删除这些用户。
  • 用户发消息模块 - 在此模块中,用户可以选择其他用户,然后输入消息和主题,然后将其发送给所选用户,消息和主题都保存在接收用户的收件箱中,并在网站后端。处理可疑邮件检测模块,该模块将发送的邮件标记为可疑或正常。
  • 用户收件箱模块 − 在此模块中,用户可以查看已注册用户发送的收件箱消息。如果用户是已注册用户,则此消息将在无需任何解密模块的情况下被查看,并且用户也有权删除该邮件。

三重 DES 的安全性

三重 DES 方法使用密钥加密数据以确保其安全。三重 DES 可以通过两种不同的方式使用。第一种方法必须高度安全,因为它使用了三个不同的密钥。然而,由于攻击者可以利用的一种方式,它并不像我们想象的那么安全。这就像一扇门上有三个锁,但攻击者仍然可以很容易地打开。

第二种方法较弱,因为其中一个密钥与第一个密钥相同。可以将其想象成一扇门有两个锁,其中一个很容易打开。因此,它不再推荐使用,因为它不够安全。

此外,当多个数据片段由同一个密钥保护时,三重 DES 存在问题。这类似于密码过短,很容易被破译。这个问题存在于 TLS 和 OpenVPN 系统中。

由于这些问题,三重 DES 已不再建议使用,并且在 OpenSSL 等较新版本的安全程序中也不再存在。

优点

以下是三重 DES 的一些优点:

  • 与原始 DES 的三层加密相比,安全性得到了增强。
  • 3DES 通过保持与当前 DES 实现的连接性,允许平滑迁移。
  • 通过将所有三个密钥设置为相同的值,3DES 可以针对向后兼容性用作单 DES。
  • 3DES 广泛应用于各种硬件、协议和应用程序。

缺点

以下是使用三重 DES 时必须考虑的一些缺点:

  • 与 AES 等较新的加密方法相比,3DES 的速度较慢,降低了处理效率。
  • 即使 3DES 比 DES 更强大,但其有效密钥长度仍然有限,尤其是在使用三个 56 位密钥时。
  • 在资源有限的情况下,三重加密过程会降低性能,因为它需要更多的计算能力。
  • 3DES 的安全裕度低于 AES 等较新的加密方法,但比 DES 更安全。

三重 DES 的实现

以下应用程序可以使用三重 DES 加密数据:

Botan、Bouncy Castle、cryptlib、Crypto++、Libgcrypt、Nettle、OpenSSL、wolfSSL、可信平台模块 (TPM)。

但请记住,在最新的版本中,其中一些程序可能没有将三重 DES 作为默认选项。务必确认您正在使用的特定版本中是否可用。

广告