◣ 1
第1章
分 组 密 码
1.1 数据加密标准和分组密码的四种工作方式
1.1.1 DES加密算法的研制经过
DES(Data Encryption Standard)加密算法的研究历经 6年的时间( 1968年—1974年)。
20世纪60年代末, IBM公司的一个研究组在菲斯特( Feistel)的带领下研制出了 Lucifer密
码。1971年,IBM公司请塔其曼( Tuchman)和迈耶( Meyer)在Lucifer密码的基础上进一
步做研究,以增加密码强度。他们经过 3年多的研究,试图破解 Lucifer密码,通过搜索强有
力的代替置换网络和密钥编制函数,完成了 DES加密算法的设计和编制工作。
1976年年底,DES加密算法被采纳为联邦标准,自 1977年7月15日起正式生效。 1986
年,NSA宣布停止执行 DES计划。从 1988年1月1日起,除了电子资金过户( Electronic Fund
Transfer),不再批准政府部门使用采用 DES加密算法的产品,但已批准的产品可继续销售和
使用。美国安全局( National Security Agency,NSA)感到DES加密算法的广泛使用已使之
成为众矢之的。
1.1.2 DES加密算法
1.DES加密算法的框架
DES加密算法如图 1.1.1所示。输入明文块 M
0(64比特),M 0=m0m1…m63,经初始置换
IP(见表1.1.1)换位成 M
0=m57m49…m6。
将M
0分成左右两个半块( 32比特),M 0=(L0,R0),(L 0,R0)经过第1层变换后记为 (L 1,R1),
其中,L
1=R0,R1=L0f(R0,K1)。
经过第i(i=1,2,…,16)层变换后记为 (L
i,Ri)。其中, L i=Ri1,Ri=Li1
f(Ri1,Ki),此处的
f函数将在下面详述, K
i为密钥,经过 16层变换后,预输出为 (R 16,L16),再经IP
1
置换成密文
块C。
2.f函数
f函数是DES加密算法的核心部分(见图 1.1.2),进入第 i层时,f函数的输入 R
i1(32
密码算法应用实践
◣ 2
比特)先经扩张函数 E变成48比特,设 R i1=r0r1r2…r31经E扩张后记为 T i1=E(R i1)。
T
i1=t0t1t2…t47
图1.1.1 DES加密算法
表1.1.1 置换表IP和IP
1
IP IP
1
57 49 41 33 25 17 9 1 39 7 47 15 55 23 63 31
59 51 43 35 27 19 11 3 38 6 46 14 54 22 62 30
61 53 45 37 29 21 13 5 37 5 45 13 53 21 61 29
63 55 47 39 31 23 15 7 36 4 44 12 52 20 60 28
56 48 40 32 24 16 8 0 35 3 43 11 51 19 59 27
58 50 42 34 26 18 10 2 34 2 42 10 50 18 58 26
60 52 44 36 28 20 12 4 33 1 41 9 49 17 57 25
62 54 46 38 30 22 14 6 32 0 40 8 48 16 56 24
第1章 分组密码
3 ◢
图1.1.2 f函数框图
《密码算法应用实践》.pdf