Mavzu: Openssl kutubxonasi yordamida blok shifrlari yordamida ma'lumotlarni shifrlash



Yüklə 18,37 Kb.
tarix19.11.2023
ölçüsü18,37 Kb.
#133218
5-amaliy ish


5-amaliy ish
Mavzu: OpenSSL kutubxonasi yordamida blok shifrlari yordamida ma'lumotlarni shifrlash (3DES algoritmi va OpenSSL kutubxonasida foydalanish)
Ishning maqsadi: zamonaviy blokli shifrlash algoritmlari asosida ma'lumotlarni shifrlash ko'nikmalarini egallash.
Nazariy qism
DES (Data Encryption Standard) simmetrik shifrlash algoritmi bo'lib, unda bitta kalit ma'lumotlarni shifrlash va shifrlash uchun ishlatiladi. DES IBM tomonidan ishlab chiqilgan va 1977 yilda AQSh hukumati tomonidan rasmiy standart (FTPS 46-3) sifatida tasdiqlangan. DES 64 bitli bloklarga va Feistel tarmog'ining 16 tsiklli tuzilishiga ega, shifrlash uchun 56 bitli kalitdan foydalanadi. Algoritm chiziqli bo'lmagan (s-bloklar) va chiziqli (E, IP, IP-1 permutatsiyalari) transformatsiyalarining kombinatsiyasidan foydalanadi. DES uchun bir nechta rejimlar tavsiya etiladi:
- elektron kod kitobi rejimi (ECB-elektron kod kitobi),
- bloklarni ulash rejimi (SVS-Cipher blok zanjiri),
- shifr matni bilan aloqa qilish rejimi (CFB-Cipher Feed Back),
- chiqish teskari aloqa rejimi (OFB — Output Feed Back).
Blok shifrining kirish ma'lumotlari:
- n bitli blok;
- k bitli kalit.
Chiqishda (shifrlash o'zgarishlarini qo'llaganidan keyin) n bitli shifrlangan blok olinadi va kirishdagi kichik farqlar, qoida tariqasida, natijaning sezilarli o'zgarishiga olib keladi.
Blok shifrlari asl matn bloklariga ba'zi bir asosiy o'zgarishlarni qayta-qayta qo'llash orqali amalga oshiriladi.
Asosiy transformatsiyalar:
- blokning bir mahalliy qismida murakkab transformatsiya;
- blok qismlari o'rtasida oddiy konvertatsiya.
Transformatsiyalar blokda amalga oshirilganligi sababli, dastlabki ma'lumotlarni kerakli o'lchamdagi bloklarga bo'lish talab etiladi. Shu bilan birga, manba ma'lumotlarining formati muhim emas (matnli hujjatlar, rasmlar yoki boshqa fayllar bo'lsin). Ma'lumotlar ikkilik shaklda talqin qilinishi kerak (nol va birliklarning ketma-ketligi sifatida) va shundan keyingina bloklarga bo'linishi kerak. Yuqorida aytilganlarning barchasi dasturiy ta'minot va apparat vositalari tomonidan amalga oshirilishi mumkin.
Transformatsiyaning har bir bosqichi blokning o'ng tomonini o'zgartirishni o'z ichiga oladi va kengaytirish modulining kirishiga 32 bitli raqam beriladi va undan 48 bitli raqam olinadi (kirish raqamining ba'zi bitlari chiqishga ikki marta ko'chiriladi). Kalit materiali bilan qo'shilgandan so'ng, jadvalni almashtirish amalga oshiriladi, buning natijasida 8 ta almashtirish jadvali 48 bitli kirishni 32 bitli chiqishga almashtiradi (har bir s-almashtirish jadvali 6 bitli kirishni 4 bitli chiqishga almashtiradi). S-blokning chiqishi almashtirish blokiga o'tadi, bu erda bitlar maxsus P-jadval bilan belgilangan qonunlarga muvofiq qayta tartibga solinadi. Raund Feistel tarmoqlari uchun an'anaviy bo'lgan shoxlarni bir-biriga aralashtirish bilan tugaydi. Chiziqli bo'lmagan transformatsiya operatsiyalaridan foydalanib, 56 bitli kalit o'lchamida raundlar sonini 16 tagacha kamaytirish mumkin edi.
DES algoritmining shifrlash sxemasi quyida keltirilgan. Asl matn 64 bitli blokdir. Shifrlash jarayoni dastlabki almashtirish, 16 shifrlash tsikli va yakuniy almashtirishdan iborat.
Dastlabki almashtirish
Asl matn t (blok 64 bit) 5.1-jadval bilan belgilanadigan ip-ning dastlabki o'zgarishi yordamida o'zgartiriladi:
Jadval 5. 1.
Ip-ning dastlabki o'zgarishi
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
Jadvalga ko'ra, dastlabki ip almashtirishdan keyin olingan IP(t) blokining dastlabki 3 biti t kirish blokining 58, 50, 42 bitlari, uning oxirgi 3 biti esa kirish blokining 23, 15, 7 bitlari.
Shifrlash davrlari
Dastlabki almashtirishdan so'ng olingan 64-bitli ip(t) bloki Feistel konvertatsiyasining 16 tsiklida ishtirok etadi.
- Feistelni o'zgartirishning 16 tsikli:
Ip(T) ni l0 , R0 ning ikki qismiga bo'ling, bu erda l0, R0 - mos ravishda 32 ta katta bit va t0 ip(T) \ u003d l0r0 blokining 32 kichik bitlari.
Ti−1 \ u003d Li−1ri−1 iteratsiya natijasi (i-1) bo'lsin, keyin ti \ u003d LiRi i iteratsiyasining natijasi aniqlanadi:

{█(L_i=R_(i-1),@R_i=L_(i-1)⨁F(R_(i-1),K_i ),i=1,2,…,16;)┤

Li ning chap yarmi oldingi li-1ri-1 vektorining o'ng yarmiga teng. Va Ri ning o'ng yarmi li−1 va f(Ri−1,ki) modul 2 ning bit qo'shilishi.
Feistel konvertatsiyasining 16 tsiklida f funktsiyasi shifrlash rolini o'ynaydi. F funktsiyasini batafsil ko'rib chiqing.
Shakl: DES algoritmining batafsil shifrlash sxemasi
Asosiy shifrlash funktsiyasi (Feistel funktsiyasi)
F funktsiyasining argumentlari 32−bitli ri-1 vektori va 48-bitli ki kaliti bo'lib, bu k shifrining 56-bitli asl kalitini konvertatsiya qilish natijasidir.
F funktsiyasini hisoblash uchun ketma-ket foydalaniladi
- e kengaytirish funktsiyasi,
- ki kaliti bilan 2-modulni qo'shish
- S1, S2,S3...S8 s-bloklarining 8 ta o'zgarishidan iborat s transformatsiyasi
- p ni qayta tashkil etish.
E funktsiyasi Ri-1 ning ba'zi bitlarini takrorlash orqali 32−bitli ri-1 vektorini 48−bitli e vektoriga(Ri−1) kengaytiradi; e(Ri−1) vektorining bit tartibi 5.2-jadvalda keltirilgan.
Jadval 5.2.
Kengaytma funktsiyasi E
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
E vektorining birinchi uchta biti (Ri−1) ri−1 vektorining 32, 1, 2 bitlari. 2-jadvalda bitlar ko'rsatilgan 1, 4, 5, 8, 9, 12, 13, 16, 17, 20, 21, 24, 25, 28, 29, 32 takrorlangan. E vektorining oxirgi 3 biti (Ri−1) ri - 1 vektorining 31, 32, 1 bitlari. Qayta tashkil etilgandan so'ng olingan e(Ri−1) bloki 2-modulda ki kalitlari bilan katlanmış va keyin sakkizta ketma-ket B1,b2, bloklari sifatida taqdim etilgan...B8.
E(Ri−1)⊕ki=B1B2...B8
Har bir Bj 6 bitli blokdir. Keyinchalik, Bj bloklarining har biri SJ transformatsiyalari yordamida 4 bitli b'j blokiga aylantiriladi. SJ konversiyalari 5.3-jadval bilan belgilanadi.
5.3-jadval
Transformatsiyalar i=1...8
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

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

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

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

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

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

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

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
Aytaylik, B3=101111 va biz b'3 ni topmoqchimiz. B3 ning birinchi va oxirgi razryadlari a sonining ikkilik yozuvi, 0<=a < =3, o'rtacha 4 razryad b sonini ifodalaydi, 0<=b<=15. S3 jadvalining qatorlari 0 dan 3 gacha, S3 jadvalining ustunlari 0 dan 15 gacha raqamlangan. Raqamlar juftligi (a, b) qator kesishmasida joylashgan raqamni aniqlaydi a va ustun b. ushbu raqamning ikkilik vakili beradi B'3. Bizning holatlarimizda a=112=3, b=01112=7 va juftlik bilan aniqlangan raqam (3,7) 7 ga teng. Uning ikkilik vakili B ' 3=0111.
F(Ri−1, ki) funktsiyasining qiymati(32 bit) 32 bitli b'1 b'2 blokiga qo'llaniladigan p ni almashtirish orqali olinadi...B′8. R ning o'zgarishi 5.4-jadvalda ko'rsatilgan.
Jadval 5.4.
P-Ni Qayta Tashkil Etish
16 7 20 21 29 12 28 17
1 15 23 26 5 18 31 10
2 8 24 14 32 27 3 9
19 13 30 6 22 11 4 25

f(Ri-1,ki)=P(B'1B'2...B'8)


4-jadvalga ko'ra, f funktsiyasidan keyin hosil bo'lgan vektorning dastlabki to'rt biti b'1 b'2 vektorining 16, 7, 20, 21 bitlari...B′8.
Ki kalitlarini yaratish.
Ki kalitlari k boshlang'ich kalitidan (56 bit = 7 bayt yoki ASCII-da 7 belgi) quyidagicha olinadi. Pozitsiyalarga bitlar qo'shiladi 8, 16, 24, 32, 40, 48, 56, 64 kalit k shunday qilib, har bir baytda toq sonli birliklar mavjud. Bu kalitlarni almashtirish va saqlashda xatolarni aniqlash uchun ishlatiladi. Keyin kengaytirilgan kalit uchun almashtirish amalga oshiriladi (qo'shilgan bitlardan tashqari 8, 16, 24, 32, 40, 48, 56, 64). Bunday almashtirish 5.6-jadvalda belgilangan
5.6-jadval
Kalitni birlashtirish
57 49 41 33 25 17 9 1 58 50 42 34 26 18

10 2 59 51 43 35 27 19 11 3 60 52 44 36


63 55 47 39 31 23 15 7 62 54 46 38 30 22

14 6 61 53 45 37 29 21 13 5 28 20 12 4



Ushbu almashtirish har biri 28 bitdan iborat ikkita C0 va D0 bloklari bilan belgilanadi. Birinchi 3 bit C0 kengaytirilgan kalitning 57, 49, 41 bitlari mavjud. Va D0 ning dastlabki uchta biti kengaytirilgan kalitning 63, 55, 47 bitlariga ega. Ci, Di i=1,2,3 ... Ci−1,Di−1 dan 5.6-jadvalga muvofiq bir yoki ikkita chap tsiklik siljishlar bilan olinadi.
Jadval 5.6.
Shift tsikllari
i 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
Shift raqami 1 1 2 2 2 2 2 2 1 2 2 2 2 2 2 1
Kalit ki, i=1,...16 5.7-jadvalga muvofiq cidi vektorining bitlaridan(56 bit) tanlangan 48 bitdan iborat. Birinchi va ikkinchi ki bitlari CiDi vektorining 14, 17 bitlari.
Jadval 5.7.
O'zgartirish jadvali
14 17 11 24 1 5 3 28 15 6 21 10 23 19 12 4
26 8 16 7 27 20 13 2 41 52 31 37 47 55 30 40
51 45 33 48 44 49 39 56 34 53 46 42 50 36 29 32
Yakuniy almashtirish
Ip−1 ning yakuniy o'zgarishi t16 ga ta'sir qiladi va dastlabki almashtirishning teskari tomonidir. Yakuniy almashtirish 5.8-jadval bilan belgilanadi.
Jadval 5.8.
Teskari almashtirish
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
Dekodlash sxemasi
Yüklə 18,37 Kb.

Dostları ilə paylaş:




Verilənlər bazası müəlliflik hüququ ilə müdafiə olunur ©muhaz.org 2024
rəhbərliyinə müraciət

gir | qeydiyyatdan keç
    Ana səhifə


yükləyin