打开/关闭菜单
切换首选项菜单
打开/关闭个人菜单
未登录
未登录用户的IP地址会在进行任意编辑后公开展示。

DES

来自迷雾wiki
Uiua留言 | 贡献2026年7月9日 (四) 21:46的版本 (开了个头)
(差异) ←上一版本 | 最后版本 (差异) | 下一版本→ (差异)

基本定义

DES全称为Data Encryption Standard,即数据加密标准,是一种使用密钥加密的块算法,1977年被美国联邦政府的国家标准局确定为联邦资料处理标准(FIPS),并授权在非密级政府通信中使用,随后该算法在国际上广泛流传开来。参见https://csrc.nist.gov/pubs/fips/46-3/final

加密过程

一开始输入64位的明文数据;

然后进行初始置换(IP);

初始置换之后,将生成的64位数据分为左右两部分,每部分为32位,命名为L0(Left0)、R0(Right0);

然后这两部分在密钥k的参与下,根据函数f进行16轮完全相同的运算,我们称为16轮迭代运算,每运算一次,左右两部分的命名就改变一次,比如第一轮运算后,L0、R0就变为L1、R1,直到16论运算完成,L0变为L16,R0变为R16;

在16轮运算完成之后,将L16和R16交换,并且合并为64位;再经过末置换(初始置换的逆置换/终止置换),输出密文。

初始置换

根据下表进行:

58 50 42 34 26 18 10 2

60 52 44 36 28 20 12 4

62 54 46 38 30 22 14 6

64 56 48 40 32 24 16 8

57 49 41 33 25 17 9 1

59 51 43 35 27 19 11 3

61 53 45 37 29 21 13 5

63 55 47 39 31 23 15 7

置换规则是以输入的第 58 位作为其第一位,第 50 位作为其第二位,依此类推,以第 7 位作为最后一位。

同时有其逆变换

40 8 48 16 56 24 64 3

39 7 47 15 55 23 63 31

38 6 46 14 54 22 62 30

37 5 45 13 53 21 61 29

36 4 44 12 52 20 60 28

35 3 43 11 51 19 59 27

34 2 42 10 50 18 58 26

33 1 41 9 49 17 57 25