Вы находитесь на странице: 1из 29

: (DES DATA ENCRIPTION STANDARD)

. :
DES; DES; DES;
; DES. , DES
,
.

8.1.

(DES) ,
(NIST National Institute of Standards and Technology).

l973 NIST
.

IBM , Lucifer, DES. DES


1975 (FIPS
Federal Information Processing Standard).

. :
( 56 ), " ".
: DES.

, ( S -) ,
. IBM ,
, .

DES FIPS 46 1977 . FIPS DES


. DES
, . NIST (FIPS 46-
3), DES ( DES)
. , 9-10, , AES DES.

. 8.1. , DES .
. 8.1. DES

DES 64 - 64 -
; DES 64 - 64 -
. 56 -
.

8.2. DES

, .
( P -) , .
48 - .
. 8.2 DES .

8.3 ( P -). 64 -
.
. ,
. , 58 - .
, 58 - . ,
, 58 - ,
, 58 - .

. 8.2. DES
. 8.3. DES

P - 8.1. 64 -
. , ,
, () .

8.1.

58 50 42 34 26 18 10 02 40 08 48 16 56 24 64 32
60 52 44 36 28 20 12 04 39 07 47 15 55 23 63 31
62 54 46 38 30 22 14 06 38 06 46 14 54 22 62 30
64 56 48 40 32 24 16 08 37 05 45 13 53 21 61 29
57 49 41 33 25 17 09 01 36 04 44 12 52 20 60 28
59 51 43 35 27 19 11 03 35 03 43 11 51 19 59 27
61 53 45 37 29 21 13 05 34 02 42 10 50 18 58 26
63 55 47 39 31 23 15 07 33 01 41 09 49 17 57 25

DES.
. , DES, DES.
, DES , (
),
.

8.1

, ,

0x0002 0000 0000 0001

( 15 64 ); (
). 8.1, , . 15
63 . 64 25 .
25 63.

0x0000 0080 0000 0002

8.2

, .
.

0x0000 0080 0000 0002

25 63, . 25 - 64 -,
63 - 15 -.

0x0002000000000001
P -, .
DES.

DES 16 . DES , . 8.4.

. 8.4. DES ( )
LI-1 RI-1 ( )
LI RI, ( ).
" " , ,
( ). .
, .
, .
f (RI-1,KI).

DES

DES DES. DES 48 - 32


RI-1, 32 - . , .
8.5, : (whitener), P - , S - P -.

P- . RI-1 32 , KI 48 ,
RI-1 48 . RI-1 8 4 . 4 6 .
. 1,
2, 3 4 2, 3, 4 5 . 1
4 ; 6 1 .
1 8 , 1 32.
8.6 .

, P -
, DES 8.2. , 48,
1 32. . ,
5 6 8.

. 8.5. DES
. 8.6.

8.2. P-

32 01 02 03 04 05

04 05 06 07 08 09

08 09 10 11 12 13

12 13 14 15 16 17

16 17 18 19 20 21

20 21 22 23 24 25

24 25 26 27 28 29

28 29 31 31 32 01

(whitener). DES XOR ( )


. , 48 .
, .

S-. S - ( ). DES S -, 6 -
4 - (. . 8.7).

. 8.7. S -

48 DES 6 ,
. 4 ; , 32 -
. , 4 -
16 - . 1 6 ;
2 - 5 - , . 8.8.
.

. 8.8. S-

S - , , ,
8.3-8.10. ( )
, .
.

8.3. S- 1

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

0 14 04 13 01 02 15 11 08 03 10 06 12 05 09 00 07

1 00 15 07 04 14 02 13 10 03 06 12 11 09 05 03 08

2 04 01 14 07 13 06 02 11 15 12 09 07 03 10 05 00

3 15 12 08 02 04 09 01 07 05 11 03 14 10 00 06 13

8.4. S- 2

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

0 15 01 08 14 06 11 03 04 09 07 02 13 12 00 05 10

1 03 13 04 07 15 02 08 14 12 00 01 10 06 09 11 05
2 00 14 07 11 10 04 13 01 05 08 12 06 09 03 02 15

3 13 08 10 01 03 15 04 02 11 06 07 12 00 05 14 09

8.5. S- 3

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

0 10 00 09 14 06 03 15 05 01 13 12 07 11 04 02 08

1 13 07 00 09 03 04 06 10 02 08 05 14 12 11 15 01

2 13 06 04 09 08 15 03 00 11 01 02 12 05 10 14 07

3 01 10 13 00 06 09 08 07 04 15 14 03 11 05 02 12

8.6. S- 4

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

0 07 13 14 03 00 06 09 10 01 02 08 05 01 12 04 15

1 13 08 11 05 06 15 00 03 04 07 02 12 01 10 14 09

2 10 06 09 00 12 11 07 13 15 01 03 14 05 02 08 04

3 03 15 00 06 10 01 13 08 09 04 05 11 12 07 02 14

8.7. S- 5

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

0 02 12 04 01 07 10 11 06 08 05 03 15 13 00 14 09

1 14 11 02 12 04 07 13 01 05 00 15 10 03 09 08 06

2 04 02 01 11 10 13 07 08 15 09 12 05 06 03 00 14

3 11 08 12 07 01 14 02 13 06 15 00 09 10 04 05 03

8.8. S- 6

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

0 12 01 10 15 09 02 06 08 00 13 03 04 14 07 05 11

1 10 15 04 02 07 12 09 05 06 01 13 14 00 11 03 08

2 09 14 15 05 02 08 12 03 07 00 04 10 01 13 11 06
3 04 03 02 12 09 05 15 10 11 14 01 07 10 00 08 13

8.9. S- 7

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

0 04 11 02 14 15 00 08 13 03 12 09 07 05 10 06 01

1 13 00 11 07 04 09 01 10 14 03 05 12 02 15 08 06

2 01 04 11 13 12 03 07 14 10 15 06 08 00 05 09 02

3 06 11 13 08 01 04 10 07 09 05 00 15 14 02 03 12

8.10. S- 8

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

0 13 02 08 04 06 15 11 01 10 09 03 14 05 00 12 07

1 01 15 13 08 10 03 07 04 12 05 06 11 10 14 09 02

2 07 11 04 01 09 12 14 02 00 06 10 10 15 03 05 08

3 02 01 14 07 04 10 05 13 15 19 09 09 03 05 06 11

8.3

S 1 . ?

, 11,
3 . 0001 1
. 3 1 8.3 ( S - 1 ). 12
1100 . 1100011 1100.

8.4

S - 8 . ?

, 00,
0 . 0000 ,
0 . 0 0 8.10 ( S - 8 ).
13 1101 . 000000 1101.

DES 32
32 . "-" 8.11.
, . ,
.

8.11.

16 07 20 21 29 12 28 17

01 15 23 26 05 18 31 10

02 08 24 14 32 27 03 09

19 13 30 06 22 11 04 25

, 16 -
. ; .
.

, ( ), ,
;
, . 8.9.

" " ,
. .
L0 L16, L16 L0.
R0 R16.

, : ( K1 K16 )
.
K1, 16 K16 ; 1 K16, 16 K1.

.

. 8.9. DES

8.1. .
.

Cipher (plainBlock[64], Round Keys[16,48])


{
pemute (64,64, plainBlock, inBlock, IntialPermutationTable)
spilt (64, 32, inBlock, leftBlock, right Block)
for (round = 1 to 16)
{
mixer (leftBlock, right Block, RoundKey[round])
if (round!=16) swapper(leftBlock, right Block)
}
combine (32, 64, leftBlock, right Block, outBlock)
pemute (64,64, outBlock, cipherBlock, FinalPermutationTable)

mixer (leftBlock[48], right Block[48], RoundKey[48])


{
copy (32, rightBlock, T1)
function (T1, RoundKey,T2)
exclusive Or (32, leftBlock, T2,T3)
copy (32, rightBlock, T1)
}

swapper (leftBlock[32], right Block[32])


{
copy (32, leftBlock, T)
copy (32, rightBlock, leftBlock)
copy (32, T, rightBlock)
}

Substitute (in block[32], outblock[48], SubstituteTables[8,4,16])


{
for(I = 1 to 8)
{
row <- 2 x inBlock[i x 6+1] + inBlock[i x 6+6]
col <- 8 x inBlock[i x 6+2] + 4 x inBlock[i x 6+3]+2 x inBlock[i x 6+4] +
inBlock[i x 6+5]

value = SubstituteTables[i][row][col]

outBlock[i x 4+1] <- value/ 8 value <- value mod 8


outBlock[i x 4+2] <- value/ 4 value <- value mod 4
outBlock[i x 4+3] <- value/ 2 value <- value mod 8
outBlock[i x 4+4] <- value
}
}
}
8.1. DES

16 , .
, .
16 , 16 - (
). .

48 56 .
64 - , 8 .
, . 8. 10.

,
. ( 8, 16, 24, 32..., 64 ) 64 -
8.12. 56
, , .
( P - ), 8.12.

8.12.

57 49 41 33 25 17 09 01

58 50 42 34 26 18 10 02

59 51 43 35 27 19 11 03

60 52 44 36 63 55 47 39

31 23 15 07 62 54 46 37

30 22 14 06 61 53 45 37

29 21 13 05 28 20 12 04
. 8.10.

28 .
( ) . 1, 2, 9 16 ,
. , 56 . 8.13
.

8.13.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16

1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 1

( P -) 56 48 ,
. 8.14.

8.14.

14 17 11 24 01 05 03 28

15 06 21 10 23 19 12 04

26 08 16 07 27 20 13 02

41 52 31 37 47 55 30 40

51 45 33 48 44 49 39 56

34 53 46 42 50 36 29 32

.
8.2 8.1.
( ShiftLeft ). , T .

Key_Generator (keyWithParities[64], RoundKeys[16. 48]. SinfTable[16])


{ '
permute (64, 56, keyWithParities, cipherKey, ParityDropTable)
spilt (56, 28, cipherKey, leftKey, rightKey)
for (round = 1 to 16)
{
shiftLeft (leftKey, ShiftTable[round1]) I
shiftLeft (rightKey, ShiftTable [round])
combine (28, 56, leftKey, rightKey, preRoundKey)
permute (56, 48, preRoundKey, RoundKeys[round], KevCompressionTable)
}
}

shiftLeft (block[28], NumOfShifts)


{
for (i = 1 to numShifts)
{
T <- block[ 1]
for (j = 2 to 28)
{
block [j-1] <- block [j]
}
block[28] <- T
}
}
8.2. 8.2.

DES , ,
.

8.5

,
( ).

Plaintext: 123456ABCD 132536 Key: AABB09182736CCDD


Cipher Text: COB7ASD05F3AS29C

, . 8.15
.
64 ( 16 ).

8.15. 8.5

: 123456ABCD 132536

: 14A7D67818CA18D : L0= 14A7D678 R0 =


18CA18D

1 18CA18AD 5A78E394 194CD072DE8C

2 5A78E394 4A1210F6 4568581ABCCE

3 4A1210F6 B8089591 06EDA4ACF5B5

4 B8089591 236779C2 DA2D032B6EE3

5 236779C2 A15A4B87 69A629FEC913

6 A15A4B87 2E8F9C65 C1948E87475E

7 2E8F9C65 A9FC20A3 708AD2DDB3C0

8 A9FC20A3 308BEE97 34F822F0C66D

9 308BEE97 10AF9D37 84BB4473DCCC


10 10AF9D37 6CA6CB20 02765708B5BF

11 6CA6CB20 FF3C485F 6D5560AF7CA5

12 FF3C485F 22A5963B C2C1E96A4BF3

13 22A5963B 387CCDAA 99C31397C91F

14 387CCDAA BD2DD2AB 251B8BC717D0

15 BD2DD2AB CF26B472 3330C5D9A36D

16 19BA9212 CF26B472 181C5D75C66D

: 19BA9212 CF26B472

: C0B7A8D05F3A829C ( )

16 , ( ).
( L16 R16 ) . , ,
.

.
. , ,
. ,R1 , ,
, L2. :
. R15 R16 L16.

8.6

, ,
, . .
8.16 . :
. 8.15 8.16. 1 16.
L0 R0 , L16 R16 .
. ,
, ,
. ,
.

8.16. 8.6

: C0B7A8D05F3A829C

: 19BA9212 CF26B472 : L0= 19BA9212 R0 =


CF26B472

1 CF26B472 BD2DD2AB 181C5D75C66D


2 BD2DD2AB 387CCDAA 3330C5D9A36D

......... ......... ......... .........

15 5A78E394 18CA182AD 4568581ABCCE

16 19BA9212 18CA18AD 194CD072DE8C

: 14A7D67818CA18D

: 123456ABCD 132536 ( )

8.3. DES

DES . ,
. DES
. .

, ( )
. , DES .

8.7

DES, ,
,
.

: 0000000000000000 : 22234512987ABB23
: 4789FD476E82A5F1

: 0000000000000001 : 22234512987ABB23
: OA4ED5C15A63FEA3

,
29 . , 1,5
45 . 8.17
. , .

8.17. 8.7

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16

1 6 20 29 30 33 32 29 32 39 33 28 30 31 30 29

,
. , P - S - DES,
.

DES

DES IBM 1994 . DES ,


. DES.

S-

S - "
" . , DES.
.
, S -.

1. 0 15.
2. S - . , . (. "
" ( ) " " ,
S -.)
3. , .
4. S - ( 3 4 ),
. , S

(x) , x S(x)
.
5. S - ( 1 2 )
( 5 6 ), . ,

: , b .

6. 32 "-" ( xi xj ), .
32 32 4 . -

32 , , d 8.
7. , 6, S -.
8. S -, ( 0 1 ),
, .
P-

S - ( ), P - ( 32 32 ) P -
( 32 48 ). P - .
P - " " .
P -, DES. P -
:

1. S - S - ( ).
2. S - (
).
3. S - S - ( ).
4. S - S - ( ).
5. S - 8, S1, S2,..., S 8.

o Sj-2 Sj ( ).
o Si-1 Sj ( ).
o Sj +1 Sj ( ).
6. S - S - .
S - .
7. Sj Sk ( ), Sk
Sj. j = k, , S -
S - .

DES . ,
,
.
. , .
, DES
, ,
DES.

DES

DES.

, .

S-. S -.

1. S - 4 , :
.
2. S - .
3. ,
S -.

P-. P - .

1. , DES .
.
2. ( ) 4
.

. , DES ( 56 ).
,
256 .

a. , . ,
, DES,
.

b. ( ),
20 . DES,
, .
1998 112 .

c. . 1977
3500, Internet, RSA 120 .
,
DES. 3500 120 ,
42 000 10 .

, DES 56
. ,
DES(3DES) ( 112) DES ( 16 ).

. 256 .
, ( 8.12)
. 8.18.

8.18.

(64 ) (56 )

0101 0101 0101 0101 0000000 0000000

1F1F 1F1F 1F1F 1F1F 0000000 FFFFFFF

E0E0 E0E0 E0E0 E0E0 FFFFFFF 0000000

FEFE FEFE FEFE FEFE FFFFFFF FFFFFFF

, , ,
. , ,
.

,
. , , ,
.

?
, .
, . ,
: Ek. (Ek (P)) = P, . 8.11.
. 8.11.

, .
, , .

8.8

8.18, .
, .
, , .

: 0x0101 0101 0101 0101


: 0x814FE938589154F7
: 0xl234.56887654321

: 0x0101 0101 0101 0101


: 0x814FE938589154F7
: 0xl234.56887654321

. , .
8.19 ( 64 ).
. , ,
, .

8.19.

01FE 01FE 01FE 01FE FE01 FE01 FE01 FE01

1FEO 1FEO OEF1 OEF1 E01F E01F F10E F10E

01EO 01E1 01F1 01F1 E001 E001 F101 F101

1FFE 1FFE OEFE OEFE FE1F FE1F FEOE FEOE


011F 011F 010E 010E 1F01 1F01 OE01 OE01

EOFE EOFE FIFE FIFE FEEO FEEO FEF1 FEFl

, , :

1 9153E54319BD 6EAC1ABCE642
2 6EAC1ABCE642 9153E54319BD
3 6EAC1ABCE642 9153E54319BD
4 6EAC1ABCE642 9153E54319BD
5 6EAC1ABCE642 9153E54319BD
6 6EAC1ABCE642 9153E54319BD
7 6EAC1ABCE642 9153E54319BD
8 6EAC1ABCE642 9153E54319BD
9 9153E54319BD 6EAC1ABCE642
10 9153E54319BD 6EAC1ABCE642
11 9153E54319BD 6EAC1ABCE642
12 9153E54319BD 6EAC1ABCE642
13 9153E54319BD 6EAC1ABCE642
14 9153E54319BD 6EAC1ABCE642
15 9153E54319BD 6EAC1ABCE642
16 6EAC1ABCE642 9153E54319BD

, . ,
1 , 16 ; 2
, 15 , . ,
: Ek2. (Ek1E (P)) = P, . 8.12.

. 8.12.

. 48 , .
; ,
, .
8.9

, ?

DES 256. 64 (4 + 12 + 48).

, .. .

. (256)
( 0 1 1 0 ) . .
( 255 ), ,

C=E(K,P) -> C=E(K,P)

, ,
. 256 ,
.

8.10

. ,
.
, i ( 8.20).

8.20. 8.10

1234123412341234 EDCBEDCBEDCBEDCB

12345678ABCDEF12 EDCBA987543210ED

E112BE1DEFC7A367 1EED41E210385C98

. ,
. ,
. . ,
, .

8.4. DES

, DES .
.
DES . 9-10 AES.
() . ,
,
. .
" " , ,
,
.
, ,
( ). , DES , DES k3
( 8.13).

. 8.13.

DES . :

. DES N = 264. , N!= (264)! = 10347 380 000 000 000


000 000. DES

log2 (264!) 270 . , DES 56 (


).

. DES ,
; , ,
, 56 .

DES , , k3, ,

Ek2(Ek1(P)) = Ek3(P)

, DES, .

DES

, DES (2DES).
DES .
, , ( 112 ). DES
, .

DES 256 ( DES)


2112 ( DES). ,
, , DES ( 257 ),
( 2112 ). 8.14 DES.
, k1 k2, P C ;
C , k2 k1, P.

. 8.14. DES

, .
. ,
:

M = EK1(P) M = EK2(C)

, P C ( ).
, P, (256) k1,
, . , ,
C, ( 256 ) k2. ,
. , M. ,
k1 k2, (
. 8.15). , ,
.

1. . ( k1 k2 ). ,
.

2.
, ,
. , 2,
, , .
. 8.15. " "

, "
" . ,
2112 , 256 (
, ). ,
DES DES, 256 257 ( 2112,
).

DES

DES, DES (3DES).


DES . DES:
DES DES .

DES

DES : k1 k2.
k1 ; k2. DES DES,
( ) ()
. , DES- k,
DES, k1 = k2 = k. DES "
", , DES. .
8.16 DES .

DES

" " DES ""


DES .
DES .
DES EDE, DED. E
(encryption) , D (decryption) .
DES k1 = k k2 k3 ,
. DES ,
PGP (Pretty Good Privacy), .
. 8.16. DES

8.5. DES

DES, , , .
: ,
.

.
, , DES 255.
3DES ( 2112 ), 3DES
( 2168 ). DES
.

" "
. DES
. , DES
S - , DES .
, DES , ,
247 255 . ,
, , - 247 255
, . , DES
. , 20
264. ,
DES 264.


"
" . ,
. DES ,
,
DES S - . ,
DES 243 .
.

8.6.

, ,

http://www.itl.nist.gov/fipspubs/np46-2.htm
www.nist.gov/director/prog-ofc/report01-2.pdf
www.engr.mun.ca/-how ard/PAPERS/ldc_tutorial.ps
islab.oregonstate.edu/koc/ece575/notes/dc 1.pdf
homes.esat.kuleuven.be / ~ abiryuko/Cryptan/matsui_des
8.7.
(DES) ,
(NIST) FIPS 46 .
DES 64 64 .
DES 64 64
. 56 , .
( P -),
, . DES
( ). .
DES DES. DES 48 32 ,
32 . : ,
( ), S - .
56 48 .
64 , 8
.
DES ()
. DES : ( S - P -) (),
, , .
DES , DES ,
DES, ( DES).
DES ,
DES .
S - DES
. DES ,
.

Вам также может понравиться