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
|