59
第第第 第第第第第第 (DES)

第 五讲 数据加密标准 ( DES )

Embed Size (px)

DESCRIPTION

第 五讲 数据加密标准 ( DES ). 1974 年, IBM 向美国国家标准局 (NBS) 提交了一个名为 LUCIFER 的加密算法。 NBS 将其转给了国家安全局 (NSA) 进行审定,之后就得到了一个名为数据加密标准 DES 的算法。 1977 年, NBS 正式将其用于无限制级的政府通讯。其间 NBS 和 NSA 可能存在某些误会。 NSA 原本打算 DES 仅用于硬件执行,但是 NBS 却公布了过多的技术细节以致于人们可以根据其写出 DES 加密软件。如果 NSA 预料到后续的情况发展,他们或许不会同意公布 DES 。. - PowerPoint PPT Presentation

Citation preview

Page 1: 第 五讲  数据加密标准 ( DES )

第五讲 数据加密标准 (DES)

Page 2: 第 五讲  数据加密标准 ( DES )

1974 年, IBM 向美国国家标准局 (NBS) 提交了一个名为 LUCIFER 的加密算法。 NBS将其转给了国家安全局 (NSA) 进行审定,之后就得到了一个名为数据加密标准 DES的算法。 1977 年, NBS 正式将其用于无限制级的政府通讯。其间 NBS和 NSA 可能存在某些误会。 NSA 原本打算 DES 仅用于硬件执行,但是 NBS 却公布了过多的技术细节以致于人们可以根据其写出 DES 加密软件。如果 NSA 预料到后续的情况发展,他们或许不会同意公布 DES 。

Page 3: 第 五讲  数据加密标准 ( DES )

从 1975 年起,围绕 DES 的争论就没有停止。许多学者担心 NSA 无形的手对算法产生的干预。如:

(1) NSA 可能修改算法以安装陷门。 (2) NSA 将原先的 128 位密钥缩短到 56 位。 (3) 算法内部的运行机理始终没有得到明确

解释。例如,差分分析。 许多 NSA 设计算法的原理在 90 年代逐渐

清晰起来,但在 70 年代这些的确另人迷惑。

Page 4: 第 五讲  数据加密标准 ( DES )

DES 已经使用了三十多年,因此, 2000 年,国家标准与技术研究所 (NIST) 决定使用新的系统代替 DES 。但是 DES 仍然值得研究,它代表了一类曾经非常流行的对称加密算法。

DES 是分组密码,每个分组为 64 比特数据。 64 比特明文通过加密最后成为 64 比特密文。 DES 的核心是一个被称为 Feistel 系统的部件。

Page 5: 第 五讲  数据加密标准 ( DES )

本讲提要 简化 DES 型算法 差分分析 DES DES 不是一个群 破译 DES 口令安全 修改发现码 (MDC)

Page 6: 第 五讲  数据加密标准 ( DES )

1 简化 DES 型算法

Li Ri

Ri1(6 比特 )Li1(6 比特 )

Ki (8 比特 )

f

一轮 Feistel 系统

Page 7: 第 五讲  数据加密标准 ( DES )

一轮 Feistel 系统 (续 )

。。最后交换次序得到继续下去就能得到

。,,,

输出,则给出步输入使用相反的次序。第一

但是密钥使用加密相同的过程,。解密过程

。并产生密文次数这一操作会做某个固定。,,,异或表示这里,,和

加密过程

0000

11

111

111

]][[])(

)(][[])(][[

2 1 XOR

)(

RLLR

LRKLf

KRfLRKLfRL

LRK

LRRL

RL n

i

KRfLRRL

nnnn

nnnnnnnn

nni

nnnn

nn

iiiiii

Page 8: 第 五讲  数据加密标准 ( DES )

一轮 Feistel 系统 (续 )函数 f(Ri1,Ki)

Ri1

E

E (Ri1)

Ki

4 bits

S1

4 bits

S2

f(Ri1, Ki)

Page 9: 第 五讲  数据加密标准 ( DES )

一轮 Feistel 系统 (续 )扩张函数

1 32 4

3

5

4

6

1 32 4 5 6

S- 盒

100001010110111000011101

010011001111101110000100

011101111000010110100001

000111100011110001010101

2

1

S

S

Page 10: 第 五讲  数据加密标准 ( DES )

一轮 Feistel 系统 (续 )

011000100110

100110011000000100011100

)( 000100)(

100 1111 000

1100 110011110110010110101010

(100110)100110 01100101

100111001001

1

111

2

1

1

11

。我们得到

,。并且,接着。,因此,。得到输出送给。比特得到输出送给比特。

和。也就是和假定输入是

ii

ii

iiiiii

ii

iii

RL

RL

KRfLRKRf

S

S

KER

KRL1例子

Page 11: 第 五讲  数据加密标准 ( DES )

2 差分分析 思路:通过适当选择明文得到密文比较

它们的差异以推导出使用的密钥。我们从前面的操作可以看出密钥与 E(Ri1) 进行异或得到结果,因此,我们可以通过再次异或移除由密钥引入的部分随机性。

Page 12: 第 五讲  数据加密标准 ( DES )

2.1 针对三轮的差分分析

参数。以外的除密钥通过输入输出知道所有在最后这个式子中我们

。,,

我们得到,,由于

重新安排一下得到。

因此,。,定义。且假定另一条消息

。,,,,我们有。应该得到相应

不同的输入消息为起点进行分析。使用而不是我们先以

4

4*44414

*4

*343

4*34314

4*3431

*444

***11

*1

*1

432114334

32112

4411

0011

)()(

),(),(

),(),(

)()()(

)(

K

KLfKLfLR

LRLR

KRfKRfLR

KRfKRfLRRR

LLLRRRRRRL

KRfKRfLKRfLR

LKRfLR

RLRL

RLRL

iiiiii

Page 13: 第 五讲  数据加密标准 ( DES )

2.1 针对三轮的差分分析 (续 )

。比特比特和后的前也就是盒输出的异或两个输出是两个异或

;为

这是因,比特比特和后的前就是扩张函数也盒的输入两个操作可以延伸入异或

知道的分析,我们,和,通过对函数

)33 (

XOR-S XOR (2)

)()()()(

)44)(

(-S XOR (1)

)( )(

14

4*44

*44

4

4*444

LR

LELLELELE

LE

KLfKLf

Page 14: 第 五讲  数据加密标准 ( DES )

2.1 针对三轮的差分分析 (续 )

。下一个密钥重复以上过程直到只剩。推导可能的密钥

是否在列表上。,对

。和输出列表查看输入列表

总结攻击过程如下:

4

4

4*444

14

4

(4)

(3)

))()(( (2)

XOR

)(XOR (1)

K

K

KLEKLE

LR

LE

Page 15: 第 五讲  数据加密标准 ( DES )

2.1 针对三轮的差分分析 (续 )

。密钥就是。的可以产生正确仅有。中。因此,

,在比特的密钥后中,,在比特的密钥前。我们发现和现在重复

中。,在比特的密钥以推出后使用同样的方法我们可中。,在比特的密钥前因此,。输出等于异或

,,和,。对于对的输出是,的输出是这意味着。和此,

。因可以得到我们选择

如果。我们得到比特开始。并从其的第特

比轮加密只使用其中的在第密钥。假定我们不知道密钥

。和密钥我们开始于

001001101

001001101 001101?00 1011}

{ 4 1000}{ 4

111011100110110101110110

}{1111 4

}{1001 4 010 XOR

1001)(00110011)(1001 001 010

010100 10101011)()()(

001001000110111011100110

010000111001

8

001001101 110001110110

44

44

*1

*111

4

4

21

14*444

*4

*4

*1

*1

44

11

KRL

KK

KK

RLRL

K

K

SS

LRLELELE

RLRL

RLi

iKK

KR L

i

01000011

0100

0011

2例子

Page 16: 第 五讲  数据加密标准 ( DES )

2.2 针对四轮的差分分析四轮差分分析是建立在三轮基础之上的,但是要扩展到四轮还需要使用一些统计方面的知识。这里我们关注 S- 盒的一些弱点。

Page 17: 第 五讲  数据加密标准 ( DES )

2.2 针对四轮的差分分析 (续 )

。也就是

,。这样满足

和。现在我们假定选择的概率为输出等于们可以得到盒的输出相互独立,我两个

。如果我们假定这通过扩展函数得到。满足和假定我们开始随机选择

。输出等于个的异或的对中,存在等于或

个输入的异盒中。在。类似的缺陷也存在于等于输出都个异或的对,我们发现等于异或

个输入的我们关注盒存在一个缺陷。如果在

000000011010011010

3/816)(12/16)(8/011010

XOR-S

00111100)001100(

001100

010 XOR81100XOR

16011

XOR120011 XOR

16

*11

01*000

*0

0

*000

*00

2

1

RR

LRLLLL

L

E

RRRRR

S

S

1事实

Page 18: 第 五讲  数据加密标准 ( DES )

2.2 针对四轮的差分分析 (续 )

出很多。钥高数将比其它不正确的密密钥的列表中出现的次在现,因此,正确的密钥确的密钥不可能频繁出

。由于不正出可能的密钥使用三轮差分分析推导接着。。假定,察输出观。等于随机选择输入对的异或

分析策略:

000011000000

000110100011 XOR

4

4

11

*

4

*

444

K

K

RLRLRL

Page 19: 第 五讲  数据加密标准 ( DES )

2.2 针对四轮的差分分析 (续 )

。我们就能得出正确密钥加密消息。使用两种可能的密钥因此,密钥

频率位后频率位后频率位前频率位前下表。

的密钥频率列于。我们可以将每种可能和百个随机输入对假定我们已经实验了几

110000?10

17111111011139111160111

611108011028111040110

23110110010132110130101

8110027010040100

181011100011351011150011

8101035101080010

1610016000140100170001

81000140000331000120000

44 44

00011010001100

*0

*000

K

RL

RLRL

591100

420010

3例子

Page 20: 第 五讲  数据加密标准 ( DES )

2.3 关于差分分析 (1) 我们注意到前面的例子表明差分攻击至少和强力攻击有相同的速度。然而,对于更优异的系统如 DES ,在一定的轮数下,差分攻击的效率将明显快于搜索全部密钥空间的强力攻击。

(2) Mitsuru Matsui 发明了另一种名为线性攻击的分析方法。这一攻击使用线性估计来描述分组密码的行为。线性分析可以看作是一种效率改进的新型差分分析 ( 理论上需要大约 243 明 - 密文对 ) 。但是并没有证据显示其可以有效的在实际中攻击 DES 。

Page 21: 第 五讲  数据加密标准 ( DES )

3 DES DES 的密钥通常写为 64 比特,但每 8 比特

有一位奇偶效验位,可以忽略,因此,实际只有 56 比特。算法只使用不超过 64 位的标准算术操作和逻辑操作,所以在 70 年代仅使用硬件就可以容易地实现算法。算法的重复特性非常适合专用芯片执行。起初采用软件执行的 DES显得笨拙,但目前的软件执行效果也相当不错。

Page 22: 第 五讲  数据加密标准 ( DES )

3.1 DES 算法描述

DES)3(

)(

(3)

48

)(

161 (2)

32 32

)( (1)

DES

16161

1616

111

00000

0

特串的次序。调换前后比算法一样在解密过程中步意味着无需像简化

相反的次序。第的过程,除了密钥使用解密过程使用完全相同

初始计算的逆得到密文接着使用,调换前后次序得到要定义的函数。

是一个在后面将比特的串,产生的一个是从密钥这里

,,进行如下操作:,对于

比特。是后比特是前,这里写为,初始计算得到的比特串通过一个固定消息

组成:算法的加密由三个阶段

LRIPc

LR

fKK

KRf LR RL

i

RLRLm

mIPmm

i

iiiiii

Page 23: 第 五讲  数据加密标准 ( DES )

3.1 DES 算法描述 (续 )明文

IP

L0 R0

fK1

L1 R1

L16 R16

密文

IP1

Page 24: 第 五讲  数据加密标准 ( DES )

3.2 初始计算

入芯片而提出的。为了使算法更有效的载年代意义,它可能只是在初始计算没有任何密码

初始计算

70

715233139475563

513212937455361

311192735435159

19172533414957

816243240485664

614223038465462

412202836445260

210182634425058

Page 25: 第 五讲  数据加密标准 ( DES )

3.3 函数 f(Ri1 , Ki)Ri1

扩张

E(Ri1)

Ki

B1 B2 B3 B4 B5 B6 B7 B8

S1 S2 S3 S4 S5 S6 S7 S8

C1 C2 C3 C4 C5 C6 C7 C8

计算

f(Ri-1, Ki)

Page 26: 第 五讲  数据加密标准 ( DES )

3.3 函数 f(Ri1, Ki) (续 )

。,,,比特输出到每个盒的决定。通过这种方法得列由由

盒的行的输入。盒做为为写

比特。为,这里每个并将其写成计算

扩展计算

。比特使用如下表扩展为比特按如下描述运行:函数

821

543261

621

8211

11

1

4

- - . (3)

6

)( )2(

13231302928292827262524

252423222120212019181716

1716151413121312111098

9876545432132

) (48 )( ) (32 (1)

),

CCC

bbbbbb

SSSBbbbB

B

BBBKRE

RER

Kf(R

jjj

j

ii

ii

ii

Page 27: 第 五讲  数据加密标准 ( DES )

3.3 函数 f(Ri1 , Ki) (续 )

9145012761124153110813

1523961285113410117140

5119610101214821574133

1050121327943116148115

2-S

1360101431157194281215

0510379121511261381414

8359111261011321447150

7095126103811152113414

1-S

-S

盒盒

Page 28: 第 五讲  数据加密标准 ( DES )

1427121154981311060153

4825143115137111209610

9141011227430156511813

1541211582110960314137

4 -S

1225113141547896013101

7141051221110315894613

1151112145821064390713

8241171213151536149010

3 -S

)( -S

盒续盒

Page 29: 第 五讲  数据加密标准 ( DES )

1380671141110155912234

6111311040731282515149

8311014131659127241510

1157144313086291510112

6 -S

3541090156132141712811

1403651291587131011124

6893101505113741221114

9140131535861110714122

5 -S

)( -S

盒续盒

Page 30: 第 五讲  数据加密标准 ( DES )

1165309121513810471412

8531513106021412914117

2914011651247310813151

7120514391011115648213

8 -S

1232141505971041813116

2950861510147312131141

6815212531410194711013

1610579123138015142114

7 -S

)( -S

盒续盒

Page 31: 第 五讲  数据加密标准 ( DES )

3.3 函数 f(Ri1 , Ki) (续 )

25411226301319

932732142482

10311852623151

172812292120716

-P

)(32

(4)

1

821

计算盒

的值。,比特串就是函数结果算。通过下面的表做一次计串

ii KRf

CCC

Page 32: 第 五讲  数据加密标准 ( DES )

3.4 密钥变换

412202851321

2937455361614

2230384654627

15233139475563

3644526031119

2735435159210

1826344250581

9172533414957

28

56 DES 64 (1)

00

00

密钥计算

比特。有和这里,写成做一个计算。计算结果剩下的比特位通过下表

比特密钥。密钥变为比特的忽略奇偶效验位

DC

DC

Page 33: 第 五讲  数据加密标准 ( DES )

3.4 密钥变换 (续 )

次。轮中大约使用原始密钥中每比特在

。就是输出的值比特。中提取比特按照下表,从移位轮

特数每一轮对密钥移位的比位的左移操作。或根据下表做

表示。,和令

1416 #

322936504246533456394944

483345514030554737315241

21320277168264121923

10216152835124111714

4856 )3(

1222222122222211

16151413121110987654321

21

161)()( (2) 11

iii

iiiiiii

KDC

LSiDLSDCLSC

Page 34: 第 五讲  数据加密标准 ( DES )

3.5 DES 的安全DES 存在关于密钥长度、叠代次数、 S- 盒设计准则的问题。特别是 S- 盒以常量形式给出,但并未明确说明这些常量为何以这种形式出现。虽然 IBM声称这些是经过 17 年大量密码分析得出的结果,但是人们还是十分担心NSA 的介入可能为算法安装陷门以利于其解密。

Page 35: 第 五讲  数据加密标准 ( DES )

3.5 DES 的安全 (续 ) 在 90 年代初期, IBM 终于公开了 S- 盒

设计的基本原理。 (1) 每个 S- 盒为 6 比特输入和 4 比特输出。

这是 1974 年芯片处理数据的最大能力。 (2) S- 盒的输出不应该和输入接近线性的

函数关系。 (3) S- 盒的每一行都应该包括全部 0到 15这 16 个数字。

(4) 如果输入每个 S- 盒的两个数据有一位不相同,则输出必须有至少两位不同。

Page 36: 第 五讲  数据加密标准 ( DES )

3.5 DES 的安全 (续 )

(5) 如果两个 S- 盒输入的前两位不同但最后两位相同,则输出必不相等。

(6) 对于每个给定的异或 XOR 值存在 32种可能的输入对。这些输入对可以得到相应异或 XOR 输出。所有这些输出不得有 8 个的值完全相同。 这一原则显然是用来阻止差分分析的。

(7) 这一原则与 (6) 类似,只是这里考虑 3个 S-盒的情况。

( 详细 论述,参见 "D. Coppersmith, The data encryption standard and its strength against attacks")

Page 37: 第 五讲  数据加密标准 ( DES )

4 DES 不是一个群 选 择两个 密 钥 K1和 K2 加 密 明 文 P 得 到

EK2(EK1

(P)) 。这样的做法是否可以增加安全性?如果攻击者有足够的存储空间,这样做提供的安全保障有限。进一步,如果两次加密等于单次加密,密码的安全性将比我们想象的还要弱。例如,这一条件要是对 DES 成立,那么穷尽搜索 256 的密钥空间将被搜索大约 228 的密钥空间所替代。

Page 38: 第 五讲  数据加密标准 ( DES )

。出我们得,的最小正整数而是满足由于

因此,。是某个整数且,这里假定证明。则

,满足于某个特定是循环长度,也就是对同时

的最小正整数,都满足是对所有如果

叫做循环长度。的这里最小的满足

,,,,

的序列加密为个明文的密钥进行加密。对某

表示使用全的密钥进行加密而表示使用全令

0

0)()(

)()()()()()()(

0 .

|

)()(

)()(

)()(

)()())(()(

1 0

0010

010010100100

00100

10

10

10101010

10

r

nrPPEEn

PEEPEEEEPEEP

nrqrnqm

mn

PPEEPn

PPEEPm

nPPEE

PPEEPEEEEPEE

P

EE

n

rnqrm

n

m

n

n

1性质

1定义

Page 39: 第 五讲  数据加密标准 ( DES )

不是一个群。。因此,大约为发现它们的最小公倍数个明文实验了

度的倍数。,其应该是各个循环长根据

。同时应该满足数为恒等映射的最小正整满足

,,这是恒等映射。由于

次:。我们解密时,有满足和某个

,我们得到对于的密钥空间仅为由于。有

。也就是对于某个对于组合操作是封闭的假定证明

。满足一个存在,不和对于任意也就是说,不是一个群。

DES

1033

h Coppersmit

2

20

121

2 DES

DES .

DES

2770

56

56

56

5601

3

21

123

P

mmE

ijEDEDE

iEEjiji

EEE

K

EEEK

K K

mK

iK

iK

jK

iK

ijK

iK

jK

K

KKK

1性质

1定理

Page 40: 第 五讲  数据加密标准 ( DES )

5 破译 DES 5.1 DES 已显老迈 (1) 1977 年, Diffie和 Hellman 估计如果花费 2千万美元制造一台机器大约仅需一天就可以破译 DES 。

(2) 1993 年, Wiener利用开关技术设计了更加有效的破译 DES 设备。

(3) 到 1996 年逐渐形成了三种破译 DES 的基本方法。一种方法是利用分布计算。一种是设计专用攻击芯片。折中的方法是使用可编程逻辑门阵列。

Page 41: 第 五讲  数据加密标准 ( DES )

5.1 DES 已显老迈 (续 )

(4) 分布计算方法破译 DES变得十分流行,特别是在 Internet兴起和壮大的情况下。 1997 年, RSA 数据安全公司开展了破译 DES 密钥和其加密消息的竞赛。仅仅 5 个月, Rocke Verser 就在搜索了25% 的 密 钥空间 后 发 现 密 钥 。接下来, RSA 数据安全公司又开展了第二次竞赛。结果用时 39天搜索了密钥空间的85% 发现了对应密钥。

Page 42: 第 五讲  数据加密标准 ( DES )

5.1 DES 已显老迈 (续 )

(5) 1998 年,电子领域基金会 (EFF) 展开了一项名为 DES 破译的计划。计划的基本思想是 : 一般使 用 的 计 算 机 对 于完成 破 译DES 的任务来说不是最优的。计划使用的结构是硬件用来判定排除大量不可能的密钥并返回那些可能的密钥。软件则用来处理每一个可能的密钥,判定这些密钥是否确实为密 码 系 统 使 用 的 密 钥 。 结 果 是 计划使 用1500 个芯片平均在大约 4.5天可以完成对DES 的破译。

Page 43: 第 五讲  数据加密标准 ( DES )

5.1 DES 已显老迈 (续 )

(6) 有传言说根据预先处理的不同, NSA 可以在 3到 5 分钟成功破译 DES 。而在机器方面的开销仅有 5万美元。

# 上述结果说明对于 90 年代晚期的计算技术而言,加密系统使用 56 比特的密钥显得过短,不能提供强有利的安全保护。

Page 44: 第 五讲  数据加密标准 ( DES )

5.2 增加安全性的 DES变化

中间人攻击。这两个版本都可以抵抗

。,另一个是

。,加密执行。一是少有两个版本的三重

比特。至以达到加密的安全强度大约可三重全强度相当。

比特的安比特而不是加密与双重人攻击表明使用中间和。另一个不同的密钥加密

密明文接着再用加密是使用一个密钥加双重

)))((( )))(((

)))((( )))(((

DES

112 DES (2)

11257 DES

HellmanMerkle

DES (1)

121121

123321

cDEDmmEDEc

cDDDmmEEEc

KKKKKK

KKKKKK

Page 45: 第 五讲  数据加密标准 ( DES )

5.2 增加安全性的 DES变化 (续 )

硬件上执行。能够很容易地在现有这个版本的好处在于它

具包。工年起用于电子邮件安全系统,自

年起被用于已经自安全强度。已经证明了其有相当的,这一方法也叫做

。提出加密方法由另一个版本的

DES #

BSAFE 1987

MailSafe1986DESX

DESX

)( ),(

Rivest DES (3)

1313 22KcKDmmKEKc KK

Page 46: 第 五讲  数据加密标准 ( DES )

6 口令安全 问题 . 口令一般与每一个实体相关联,是一个 6到 10 或更多的方便记忆的字符串。口令由实体和系统共享。为了获得访问系统资源的权限 ( 例如,计算帐户,打印机,或软件应用 ) , 实体输入身份 - 口令对。系统则核实对于相应的身份和口令输入是否正确。如果正确,系统就按照身份分配实体相应的访问授权。系统通过实体展示其掌握口令秘密来将其与声称身份挂钩。

Page 47: 第 五讲  数据加密标准 ( DES )

6.1 口令方案(1) 存储口令文件(2) 加密口令文件

(IDA , pwdA

)

实体 A

拒绝

接受

系统口令表

f()

IDA

……

f(pwdA)

……

=pwdA

f(pwdA)

f(pwdA)

Page 48: 第 五讲  数据加密标准 ( DES )

6.1 口令方案 (续 )

(3) 降低口令映射速度 (4) 口令加盐 为了使口令猜测攻击无效,每一个口令条目都增加 t 比特的随机串叫做盐,将盐和口令一同作为单向函数的输入。口令 Hash 值和盐一同记入口令文件,以供验证使用。

(5) 口令短语

Page 49: 第 五讲  数据加密标准 ( DES )

6.2 常见攻击 (1) 重放固定口令 (2) 穷尽搜索口令 攻击的成功依赖于在成功发现口令之前

需要验证的口令数量以及每次验证测试所需要的时间。

(3) 口令猜测或字典攻击 在线 /离线口令猜测攻击

Page 50: 第 五讲  数据加密标准 ( DES )

6.3 实例 – UNIX 口令系统

用户口令

12 用 户盐

64数 据Ii

I1=00…0

密钥 K

56

1264

加密口令/etc/passwd

截成 8 个 ASCII字符;如需要添加0

*DES#

重新打包 76 比特为 11个 7 比特字符

O25

下一次输入Ii,2≤i≤25

输出 Oi

Page 51: 第 五讲  数据加密标准 ( DES )

6.3 实例 – UNIX 口令系统 (续 )

(1) 口令盐。 UNIX 口令盐是将 12 位的随机串与用户选择口令关联。这 12 位的随机串做为 DES的标准扩展函数 E 的一个变量,提供 4096种不同的变化情形,也就是盐的第 1 比特对应输入的第 1比特和第 25 比特,第 2 比特对应输入的第 2 比特和第 26 比特如此下去。如果盐比特值为 1 ,则输入的相对应位做交换,如果盐比特值为 0 ,则保持不变。 Hash 口令值和盐都保存在系统口令文件的一条目录之中。对于单个用户而言,口令的安全并没有增加,但对于字典攻击整体口令文件而言,对于每一个可能口令却增加了 4096种不同的口令测试计算。

Page 52: 第 五讲  数据加密标准 ( DES )

6.3 实例 – UNIX 口令系统 (续 ) (2) 防止使用现成的 DES芯片攻击系统。由于 DES 的扩展计算需要使用盐,因此,标准的 DES 算法不再能执行 UNIX 口令算法。如果攻击者希望采用硬件加速攻击,他就不能直接选择一般商用 DES芯片,而要自己设计DES芯片。这毫无疑问增加了攻击成本。

Page 53: 第 五讲  数据加密标准 ( DES )

7 修改发现码 (MDC) 定义 2 修改发现码 (MDC)是 Hash 函数 h 。

对于输入 x和 x’ 以及相应输出 y和 y’满足如下性质:

(1) 原像不可逆:对于几乎所有的 Hash输出不可能计算出其的 Hash输入。也就是,在不知道输入的情况下给定任意一个输出 y ,找到任意一个输入 x’满足 h(x’)=y 是计算不可能的。

(2) 二次原像不可逆:对于任何一个给定的输入 x ,找到 另 一 个输入 x’x ,且满足h(x)=h(x’) ,在计算上不可能。

(3) 抵抗碰撞:找到两个不同的输入 x和 x’ ,满足 h(x)=h(x’) ,在计算上不可能 ( 注意:这里两个输入可以自由选择 ) 。

Page 54: 第 五讲  数据加密标准 ( DES )

7.1 攻击 MDC 的目标 攻击者攻击 MDC 的主要目标如下: (1) 给定 Hash值 y ,发现原像 x满足 y

=h(x);或者给定对 (x, h(x)) 发现另一个像 x’满足 h(x)=h(x’) 。

(2) 发现两个 Hash输入 x和 x’满足h(x)=h(x’) 。

Page 55: 第 五讲  数据加密标准 ( DES )

7.2 实例 – 使用 DES的MDC-2

在分组密码基础上建立 Hash 函数的主要动机是:如果系统已经拥有了非常有效的分组密码,那么以分组密码作为实现 Hash 函数的主要部件,将既可以提供 Hash 函数的功能,又能使额外开销最小。

Page 56: 第 五讲  数据加密标准 ( DES )

7.2 实例 – 使用 DES的MDC-2 (续 )

。,:十六进制值为一组默认。验证中也需要使用这两个常量在

和比特常量个无需保密的从推荐值集合中选择两

。,

特值如下:比密钥的映射成适合于比特的,将和数

,定义两个函对于。为标准假定

55252525252

25252=5252525252525252 = )(

)MDC(

64

01)(

10)(

56DES64

DES

6310976541

6310976541

6421

VIIV

VI

IV

uuuuuuuuUg

uuuuuuuuUg

Ugg

uuuUEK

Page 57: 第 五讲  数据加密标准 ( DES )

7.2 实例 – 使用 DES的MDC-2 (续 )

||||

)( )(

)( )(

) 1 (

||= )( Hash

32 || )2(

(1)

2-MDCDES

][ 46

1

1

00

21

。;

;,

;,:式计算

按如下公,是值比特位。输出的左和右表示和表示连接操作,

。,令按如下步骤进行:的使用

。,,,比特分组按将消息

iiiiii

iikiii

iikiii

tt

iii

t

CRLCH RCCLH

MMECHgk

MMECHgk

ti

HHMh

CCRCL

VIHIVH

MMMMM

i

i

Page 58: 第 五讲  数据加密标准 ( DES )

Eg(Hi1) Eg'(Hi1)

Mi

CLi CRi CL'i CR'i

CLi CR'i CL'i CRi

HiH'i

Page 59: 第 五讲  数据加密标准 ( DES )

谢谢 !