DES alqoritmi ilə şifrləmənin həyata keçirilməsi üçün dörd işçi rejimdən istifadə olunur: elektron kodlaşdırma kitabı - ECB (Electronic Code Book), şifr bloklarının qarışdırılması - CBC (Cipher Block Chaining), şifrlənmiş mətnə görə əks əlaqə - CFB (Cipher Feedback) və çıxışa görə əks əlaqə - OFB (Output Feedback).
DES alqoritmi şifrləmə zamanı çoxsaylı əvəzetmə və yerdəyişmə əməliyyatları kombinasiyasından istifadə edir. DES 64 bit uzunluğa malik bloklarla işləyir və onların 16 qat yerdəyişməsinə əsaslanır.
Şifrləmə üçün 56 bit (8 ədəd yeddi bitlik ASCII simvol) uzunluğa malik açardan istifadə olunur. Əslində açarın uzunluğu 64 bit olur, lakin onların 56-sı əhəmiyyətə malikdir, qalan 8-i isə yoxlama-nəzarət məqsədilə istifadə olunur. Başqa sözlə, parolun uzunluğu 8 simvoldan artıq ola bilməz. Əgər parolda yalmz hərf və rəqəmlərdən istifadə olunarsa, onda parol variantlarının sayı maksimal mümkün saydan (256) əhəmiyyətli dərəcədə kiçik olar.
DES alqoritmində şifrləmə prosesinin ümumiləşdirilmiş sxemi 5.7 saylı şəkildə göstərilmişdir.
Şək.5.7. DES alqoritmində şifrləmə prosesinin
ümumiləşdirilmiş sxemi
Qeyd etmək lazımdır ki, DES alqoritmi vasitəsilə şifrləmək üçün çoxlu sayda cədvəllərdən istifadə olunur. Açarın seçilməsi vasitəsilə şifrin açılması prosesini maksimal dərəcədə çətinləşdirmək məqsədilə müəlliflər tərəfindən diqqətlə tərtib olunmuş bu cədvəllər standart cədvəllər kimi qəbul edilməli və DES alqoritminin reallaşdırılması zamanı dəyişdirilmədən istifadə olunmalıdır.
Tutaq ki, T - ilkin mətnin 64 bit (8 bayt) uzunhığunda bloku, L (left) - T blokunun sol 32 bitlərinin ardıcıllığı, R (right) - T blokunun sağ 32 bitlərinin bitlər ardıcıllığıdır. saylı cədvəldə göstərilən IP matrisinə uyğun olaraq, T blokunun bitlərinin yerləri dəyişdirilir: 7b=IP(T).
Yerdəyişmə nəticəsində T blokunun 58-ci, 50-ci, 42-ci və s. bitləri Toblokunun, uyğun olaraq, 1-ci, 2-ci, 3-cü və s. bitləri olur.
Cədvəl 5.1. IP ilkin yerdəyişmə matrisi
58
50
42
34
26
18
10
2
60
52
44
36
28
20
12
4
62
54
46
38
30
22
14
6
64
56
48
40
32
24
16
8
57
49
41
33
25
17
9
1
59
51
43
35
27
19
11
3
61
53
45
37
29
21
13
5
63
55
47
39
31
23
15
7
Bundan sonra 16 addımdan ibarət olan aşağıdakı şifrləmə prosesi iterativ şəkildə yerinə yetirilir (şək.5.8). Tutaq ki,
z-ci iterasiya nəticəsində alınmış 64 bitdən ibarət blok, Lz = t1t2t3...t32 - Ti blokunun ilk 32 bitindən ibarət sol alt bloku, Ri = t33t34t35...t64 isə axırıncı 32 bitdən ibarət sağ alt blokudur. Onda 16 addımdan ibarət olan hər bir i iterasiyasmm nəticəsini aşağıdakı düsturla təsvir etmək olar:
L. =Ri_l, i = U6,
1,2.... 64
Şək.5.8. DES alqoritminin strukturu
R^L^F^K^, z = 1,16.
Qeyd etmək lazımdır ki, sonuncu iterasiyada alman və Li6 ardıcıllıqların yerləri dəyişdirilmədən birləşdirilir və bir 64 bitlik ardıcıllıq alınır. Şifrləmə prosesinin sonunda alman bu ardıcıllıqdan İP1 yekun yerdəyişməsi matrisinin köməyi ilə bitlərin mövqeləri bərpa olunur (cədvəl 5.2).
Burada F - şifrləmə (Feystel) funksiyasıdır. Onun arqumentləri əvvəlki iterasiyada alınmış 32 bitlik RİA ardıcıllığı və 64 bitlik açarın çevrilməsi nəticəsində alman 48 bitlik Ki açandır.
Cədvəl 5.2. IP 1 əks (yekun) yerdəyişmə matrisi
40
8
48
16
56
24 64 32 39
7
47
15
55 23
63
31
38
6
46
14
54
22 62 30 37
5
45
13
53 21
61
29
36
4
44
12
52
20 60 28 35
3
43
11
51 19
59
27
34
2
42
10
50
18 58 26 33
1
41
9
49 17
57
25
FtR^Kı) şifrləmə funksiyasının qiymətinin hesablanması sxemi 5.9 saylı şəkildə göstərilmişdir. Şəkildən göründüyü kimi, F funksiyasının qiymətinin hesablanması üçün aşağıdakı funksiyalardan istifadə olunur:
32 bitlik R,_\ ardıcıllığının 48 bitə qədər genişləndirilməsini yerinə yetirən E funksiyası;
6 bitlik ədədin 4 bitə çevrilməsi üçün səkkiz ədəd Sı, S2,... S8 funksiyaları;
32 bitlik ardıcıllıqda bitlərin yerlərinin dəyişdirilməsini təmin edən P funksiyası.
32 bitlik RİA ardıcıllığının E funksiyası vasitəsilə 48 bitə qədər genişləndirməsi 5.3. saylı cədvələ əsasən həyata
keçirilir. Burada E(R;\) funksiyası nəticəsində alınan ardıcıllığın ilk üç biti ilkin ardıcıllığın 32, 1, 2-ci bitləri, sonuncu bitləri isə ilkin ardıcıllığın 31, 32, 1-ci bitləridir.
Rt.ı G2 bit)
E genişləndirmə funksiyası
Bitlərin yerdəyişməsi - P
1
F(RM -32 bit
Şək.5.9. F şifrləmə funksiyasının qiymətinin
hesablanması sxemi
Cədvəl 5.3. E genişləndirmə funksiyası
32
1
2
3
4
5
4
5
6
7
8
9
8
9
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
30
31
32
1
Genişləndirmə nəticəsində alınmış 48 bit açarın 48 bit- lik cari qiyməti ilə 2 moduluna görə toplanır və alman ardıcıllıq səkkiz ədəd 6 bitlik bloklara bölünür:
E(R, ı) ®Kı=B ı B2 ■■■B%.
S; funksiyaları B, bloklarında olan 6 biti 4 bitə çevirmək üçün 5.4 saylı cədvəldən istifadə edir. Bu, aşağıdakı alqo- ritm vasitəsilə həyata keçirilir. Tutaq ki, -
6 bitlik blokdur. Onda S, funksiyası bıb6 iki bitlik ədədinə görə cədvəlin sətrin nömrəsini, Z?2^3^4^5 dörd bitlik ədədinə görə isə sütunun nömrəsini müəyyən edir. Həmin sətirlə sütunun kəsişməsində duran ədəd götürülür və ikilik sistemə çevrilərək müvafiq dörd bit kimi qəbul edilir.
Tutaq ki, Sı funksiyasının girişinə altı bitlik B;=Z?ıZ?2^3^4^5^6=111001(2) verilmişdir, onda iki bitlik Z?ıZ?6=ll(2)=3(io) ədədi 5.4 saylı cədvəlin Si-ə uyğun matrisinin 3-cü sətrini, dörd bitlik Z?2^3^4^5=HOO(2)=12(io) ədədi isə həmin matrisin 12-ci sütununu göstərir. Bu, o deməkdir ki, B;=111001(2) bloku Sı cədvəlindən 3-cü sətirlə 12- ci sütunun kəsişməsində duran elementlə, yəni dörd bitlik lO(ıo)=lOlO(2) ardıcıllığı ilə əvəz olunur.
Belə çevirmə nəticəsində 8 ədəd 6 bitlik blok, yəni 48 bitlik BıB2-. #8 ardıcıllığı əvəzinə 8 ədəd 4 bitlik blok, yəni 32 bitlik Sı(#ı), S2(#2). ••• S8(#8) ardıcıllığı almır. Bu ardıcıllıq da öz növbəsində 5.5 cədvəlinə uyğun olaraq çevrilir və şifrləmə funksiyasının