Vissza

DES ( Data Encryption Standard )

Blokk titkosító a {0,1} ábécé felett, ahol egy bemeneti blokk hossza 64 bit hosszúságú. A titkosító kulcs is 64 bit hosszúságú, a következő tulajdonsággal: elosztva a 64 bitet 8 felé, mindegyik 8 bites részben az 1-es bitek száma páratlan kell legyen.

Kulcs generálás:
A titkosító kulcs alapján 16  különböző kulcsot: Ki -t ( i = 1,2,...,16) határozunk meg a következő lépéssorozattal:
    1. A  64 bit hosszúságú titkosító kulcsra alkalmazzuk a PC1 függvényt ( Permuted Choice), ezáltal egy 56 bit hosszúságú bitsort kapunk: K0
    2. K0 -t felosztjuk két 28 hosszúságú blokkra, ezáltal megkapjuk  C0, D0 -t
    3. Sorra meghatározzuk Ki -t ( i = 1,2,...,16), 16-szor ismételve következő lépessorozatot:
  • meghatározzuk Ci -t, vi darab balra történő bitrotációt alkalmazva Ci-1-en
  • meghatározzuk Di -t, vi darab balra történő bitrotációt alkalmazva Di-1-en
  • alkalmazzuk a PC2 függvényt ( Ci, Di ) -re, megkapva ezáltal Ki -t

Titkosítás:
    1. A bemeneten alkalmazzunk egy kezdeti permutációt: IP permutációt ( Initial Permutation )
    2. A kapott bitsort, 2 részre osztjuk: L0 és R0 , mindegyik 32 bit hosszúságú lesz
    3. Sorra meghatározzuk Li, Ri -t  ( i = 1,2,...,16) a következő képletek alapján Li = Ri-1,  Ri = Li-1 xor F(Ri-1), ahol F a következő lépésekből álló titkosító függvény:

  • Ri-1 -re alkalmazzuk az E expansion függvényt, ezáltal egy 32 bit hosszúságú kódból kapunk egy 48 bit hosszúságú kódot: E(Ri-1)
  • meghatározzuk E(Ri-1) xor Ki -t, ahol Ki ( i = 1,2,...16) a kulcs generálás során kapott i-ik kulcs
  • 8 egyenlő hosszúságú blokkra osztjuk a kapott  kódot: B1, B2, B3, B4, B5, B6 -ra, ahol mindegyik Bi 6 bit hosszúságú lesz
  • minegyik Bi blokkra alakalmazzuk a megfelelő Si függvényt (S -Box i -t, i = 1, 2, 3, 4, 5, 6, 7, 8, a substitution boxot), ezáltal 8 darab 4 bit hosszúságú kódot kapunk, vagyis egy 32 bit hosszúságú  kódot, legyen ez C
  • alkalmazzuk a P permutációt erre a C kódra, megkapjuk ezáltal F(Ri-1) -t

    4. Az utoljára kapott L16 R16, párra alkalmazzuk az IP-1 permutációt

Visszafejtés:
    A titkosított szövegre fordított sorrendben alkalmazzuk a kulcsokat

 PC-1 függvény

Bit

0

1

2

3

4

5

6

1

57

49

41

33

25

17

9

8

1

58

50

42

34

26

18

15

10

2

59

51

43

35

27

22

19

11

3

60

52

44

36

29

63

55

47

39

31

23

15

36

7

62

54

46

38

30

22

43

14

6

61

53

45

37

29

50

21

13

5

28

20

12

4

Vissza

PC-2 függvény

Bit

0

1

2

3

4

5

1

14

17

11

24

1

5

7

3

28

15

6

21

10

13

23

19

12

4

26

8

19

16

7

27

20

13

2

25

41

52

31

37

47

55

31

30

40

51

45

33

48

37

44

49

39

56

34

53

43

46

42

50

36

29

32

Vissza


vi = 1,  ha i = 1, 2, 9, 16
vi = 2, másképp
Vissza


IP permutáció

Bit

0

1

2

3

4

5

6

7

1

58

50

42

34

26

18

10

2

9

60

52

44

36

28

20

12

4

17

62

54

46

38

30

22

14

6

25

64

56

48

40

32

24

16

8

33

57

49

41

33

25

17

9

1

41

59

51

43

35

27

19

11

3

49

61

53

45

37

29

21

13

5

57

63

55

47

39

31

23

15

7

Vissza

 IP-1: inverz permutáció

Bit

0

1

2

3

4

5

6

7

1

40

8

48

16

56

24

64

32

9

39

7

47

15

55

23

63

31

17

38

6

46

14

54

22

62

30

25

37

5

45

13

53

21

61

29

33

36

4

44

12

52

20

60

28

41

35

3

43

11

51

19

59

27

49

34

2

42

10

50

18

58

26

57

33

1

41

9

49

17

57

25

Vissza

E- expansion függvény

Bit

0

1

2

3

4

5

1

32

1

2

3

4

5

7

4

5

6

7

8

9

13

8

9

10

11

12

13

19

12

13

14

15

16

17

25

16

17

18

19

20

21

31

20

21

22

23

24

25

37

24

25

26

27

28

29

43

28

29

30

31

32

1

Vissza

P-Permutació

Bit

0

1

2

3

1

16

7

20

21

5

29

12

28

17

9

1

15

23

26

13

5

18

31

10

17

2

8

24

14

21

32

27

3

9

25

19

13

30

6

29

22

11

4

25

Vissza

S-Box i, i = 1,  2, 3, 4, 5, 6, 7, 8

S-Box 1

Sor / Oszlop

0

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

0

14

4

13

1

2

15

11

8

3

10

6

12

5

9

0

7

1

0

15

7

4

14

2

13

1

10

6

12

11

9

5

3

8

2

4

1

14

8

13

6

2

11

15

12

9

7

3

10

5

0

3

15

12

8

2

4

9

1

7

5

11

3

14

10

0

6

13

S-Box 2

Sor / Oszlop

0

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

0

15

1

8

14

6

11

3

4

9

7

2

13

12

0

5

10

1

3

13

4

7

15

2

8

14

12

0

1

10

6

9

11

5

2

0

14

7

11

10

4

13

1

5

8

12

6

9

3

2

15

3

13

8

10

1

3

15

4

2

11

6

7

12

0

5

14

9

S-Box 3

Sor / Oszlop

0

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

0

10

0

9

14

6

3

15

5

1

13

12

7

11

4

2

8

1

13

7

0

9

3

4

6

10

2

8

5

14

12

11

15

1

2

13

6

4

9

8

15

3

0

11

1

2

12

5

10

14

7

3

1

10

13

0

6

9

8

7

4

15

14

3

11

5

2

12

S-Box 4

Sor / Oszlop

0

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

0

7

13

14

3

0

6

9

10

1

2

8

5

11

12

4

15

1

13

8

11

5

6

15

0

3

4

7

2

12

1

10

14

9

2

10

6

9

0

12

11

7

13

15

1

3

14

5

2

8

4

3

3

15

0

6

10

1

13

8

9

4

5

11

12

7

2

14

S-Box 5

Sor / Oszlop

0

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

0

2

12

4

1

7

10

11

6

8

5

3

15

13

0

14

9

1

14

11

2

12

4

7

13

1

5

0

15

10

3

9

8

6

2

4

2

1

11

10

13

7

8

15

9

12

5

6

3

0

14

3

11

8

12

7

1

14

2

13

6

15

0

9

10

4

5

3

S-Box 6

Sor / Oszlop

0

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

0

12

1

10

15

9

2

6

8

0

13

3

4

14

7

5

11

1

10

15

4

2

7

12

9

5

6

1

13

14

0

11

3

8

2

9

14

15

5

2

8

12

3

7

0

4

10

1

13

11

6

3

4

3

2

12

9

5

15

10

11

14

1

7

6

0

8

13

S-Box 7

Sor / Oszlop

0

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

0

4

11

2

14

15

0

8

13

3

12

9

7

5

10

6

1

1

13

0

11

7

4

9

1

10

14

3

5

12

2

15

8

6

2

1

4

11

13

12

3

7

14

10

15

6

8

0

5

9

2

3

6

11

13

8

1

4

10

7

9

5

0

15

14

2

3

12

S-Box 8

Sor / Oszlop

0

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

0

13

2

8

4

6

15

11

1

10

9

3

14

5

0

12

7

1

1

15

13

8

10

3

7

4

12

5

6

11

0

14

9

2

2

7

11

4

1

9

12

14

2

0

6

10

13

15

3

5

8

3

2

1

14

7

4

10

8

13

15

12

9

0

3

5

6

11

Vissza