什么是双重DES?
数据加密标准(DES)是一种对称密钥分组密码,它将64位明文和56位密钥作为输入,并输出64位密文。DES函数由P盒和S盒组成。P盒转置位,S盒替换位以生成密文。
DES是一种Feistel分组密码的实现,称为LUCIFER。它需要一个具有16轮的Feistel结构,其中每一轮可以使用不同的密钥。了解DES(数据加密标准)的主要原因在于它构成了加密算法的基础。这使得人们更容易学习当前使用的加密算法或方法的实现或操作,这些方法比DES算法快得多。
双重DES是一种加密方法,它对相同的明文使用两次DES。在这两个示例中,它提供不同的密钥来加密明文。双重DES很容易学习。
双重DES使用两个密钥,例如k1和k2。它可以使用k1对原始明文进行DES加密以获得密文。它可以对密文进行DES加密,但这次使用不同的密钥k2。最终输出是密文的加密,如图所示。

双重加密的密文块首先使用密钥K2解密以生成单重加密的密文。然后使用密钥K1对该密文块进行解密以获取原始明文块。

如果使用仅1位的密钥,则有两个可能的密钥,包括0和1。如果使用2位密钥,则有四个可能的密钥值,例如(00、01、10和11)。
通常,如果使用n位密钥,则密码分析师必须执行2n次操作来尝试所有可能的密钥。如果使用两个不同的密钥,每个密钥包含n位,则密码分析师需要22n次尝试才能破解密钥。
双重DES需要进行(22*56)的密钥搜索,即2112个密钥。它引入了中间相遇攻击的概念。这种攻击包括从一端加密,从另一端解密,并在中间连接结果。
假设密码分析师了解两条基本信息,包括P(明文块)和C(对应最终密文块)用于一条消息。双重DES的数值表达式如图所示。
第一次加密的结果称为T,表示为T = Ek1(P) [即,使用密钥K1加密块P]。在用另一个密钥K2加密此加密块后,它将结果表示为C = EK2(EK1(P)) [即,用不同的密钥K2加密已加密的块T,并将最终密文称为C]。

数据结构
网络
关系型数据库管理系统
操作系统
Java
iOS
HTML
CSS
Android
Python
C语言编程
C++
C#
MongoDB
MySQL
Javascript
PHP