DES加密原理与分析

1.简介

 数据加密标准(英语:Data Encryption Standard,缩写为 DES)是一种对称密钥加密块密码算法,1976年被美国联邦政府的国家标准局确定为联邦资料处理标准(FIPS),随后在国际上广泛流传开来。它基于使用56位密钥的对称算法。DES是Feistel型密码.

2.加密原理

 DES的总体结构包含密钥表(key schedule)、轮函数(round function)、开始和结束的置换表(permutation).

2.1 加密步骤

1.明文被分成若干个长度为64位的块
2.每个64位块使用初始置换IP表进行置换。//混淆,相当于按照IP表洗牌一样,打乱顺序
image

3.由步骤二所得的64位块,分为两个32位的块:左(L)和右(R),左(L)和右(R)块的初始值分别记为L0和R0
4.在L和R区块有16轮操作。在每一轮中,应用以下公式
  Ln = Rn-1
  Rn = Ln-1 XOR F(Rn-1,Kn)
4.1 轮函数F(.) 是DES的核心,它的计算规则如下:
 1.拓展:右边的32位半块使用拓展函数E拓展为48位
image
 2.与子密钥异或,使用XOR操作将展开的48位(由拓展函数)与子键组合。16个48位子密钥(每轮一个)使用密钥调度从主密钥派生,Kn + E(Rn-1)。
 3.替换:与子密钥异或后(第i轮使用第i个子密钥),块被分成8个6位块,送入S盒(s -box),实现非线性转换。每一个6位的片段用作S盒中的地址,其中第一个和最后一个位用于寻址第i行,中间的4位用于寻址S盒中的第j列。每个S-box的输出都是4位的长度。然后将所有8个s盒的输出组合成32位比特串。
image

Kn + E(Rn-1) = B1B2B3B4B5B6B7B8
S(Kn + E(Rn-1)) = S1(B1)S2(B2)S3(B3)S4(B4)S5(B5)S6(B6)S7(B7)S8(B8)
 4.置换:S-box的32位输出使用P-box重新排列,F=P(S(Kn + E(Rn-1)))
image
image

image

5.最后一轮DES(即L16和R16)的结果被重新组合为一个64位的比特串,并使用反向初始置换(IP-1)表重新置换。IP-1的输出是64位的密文块。
image

2.2 子密钥生成

假设现有一个64位的初始密钥,每个字节的最后一位为校验位
子密钥(KK1, K2,…K16)生成算法:
  1.经过PC-1表将64位比特转为56位(去除校验位)。
image
  2.56位被分成左右两个28位部分(C0和D0)。
  3.在每一轮中,两个28位比特串都循环左移一个或两个比特(由每一轮指定)(Ci,Di)。
image

  4.记过PC-2表替换后,获得48位子密钥(比特位排序从左28到右28)
image
  5.重复16轮,获得16个子密钥
image

3.解密原理

  DES解密过程即DES加密的逆过程

4.安全性

  对于任何密码,最基本的攻击方法是暴力破解,这包括尝试每个密钥,直到找到正确的密钥。密钥的长度决定了可能的密钥数量,因此也决定了这种攻击的可行性。有效的DES密钥长度为56位,最多需要2^56次尝试,即大约72千万亿次尝试才能找到正确的密钥。这还不足以保护使用DES的数据免受现代计算机的暴力攻击。
 在DES被AES取代之前,很少有使用DES加密的消息可能受到暴力破解的影响。然而,许多安全专家认为56位的密钥长度是不够的,甚至在DES被采用为标准之前。一直有人怀疑,来自国家安全局(National Security Agency)的干扰削弱了原始算法。
 直到20世纪90年代中期,DES仍然是一种值得信任和广泛使用的加密算法。然而,1998年,由电子前沿基金会(EFF)建造的一台计算机在56小时内解密了DES加密的信息。第二年,EFF利用数千台联网计算机的能量,将解密时间缩短至22小时。

5. 3DES

 3DES(即Triple DES)是DES向AES过渡的加密算法(1999年,NIST将3-DES指定为过渡的加密标准),加密算法,其具体实现如下:设Ek()和Dk()代表DES算法的加密和解密过程,K代表DES算法使用的密钥,P代表明文,C代表密文,这样:
3DES加密过程为:C=Ek3(Dk2(Ek1(P)))
3DES解密过程为:P=Dk1(EK2(Dk3(C)))

6. 工作模式

 常用模式有电子密码本(ECB)、密码块链接(CBC)、填充密码块链接(PCBC)、密文反馈(CFB)、输出反馈(OFB)、计数器模式(CTR)详情链接

posted @ 2022-10-18 22:19  浮生多少记  阅读(540)  评论(0编辑  收藏  举报