Asimmetrik shifrlash - I bob. Kriptografiyada shifrlash algoritmlari

|
I bob. Kriptografiyada shifrlash algoritmlari
|
bet | 4/6 | Sana | 05.01.2024 | Hajmi | 0,58 Mb. | | #130547 |
Asimmetrik shifrlash:
Tavsif: Ochiq kalitli shifrlash sifatida ham tanilgan assimetrik shifrlash bir juft ochiq va shaxsiy kalitlardan foydalanadi. Ochiq kalit shifrlash uchun, shaxsiy kalit esa shifrni ochish uchun ishlatiladi. Bu umumiy maxfiy kalitga ehtiyoj sezmasdan xavfsiz muloqot qilish imkonini beradi.
Afzalliklari:
Xavfsiz kalit almashinuvi zaruratini yo‘q qiladi, chunki har bir ishtirokchi bir juft kalitga ega.
Xavfsiz raqamli imzolar va kalit almashish protokollarini yoqadi.
Kamchiliklari:
Odatda nosimmetrik shifrlashdan ko‘ra sekinroq, ayniqsa katta hajmdagi ma'lumotlar uchun.
Ommaviy ma'lumotlarni shifrlash uchun unchalik mos emas.
Umumiy assimetrik shifrlash algoritmlari:
RSA (Rivest-Shamir-Adleman): Xavfsiz ma'lumotlarni uzatish va raqamli imzolar uchun keng qo‘llaniladi.
DSA (Digital Signature Algoritm): Raqamli imzolar uchun maxsus ishlab chiqilgan.
Elliptik egri kriptografiya (ECC): Boshqa assimetrik algoritmlarga qaraganda qisqaroq kalit uzunligi bilan kuchli xavfsizlikni taklif qiladi.
Diffie-Hellman: Asosan tomonlar o‘rtasida xavfsiz kalit almashinuvi uchun ishlatiladi.
Ko‘pgina amaliy dasturlarda ko‘pincha simmetrik va assimetrik shifrlash kombinatsiyasi qo‘llaniladi. Misol uchun, simmetrik shifrlash tezligi tufayli haqiqiy ma'lumotlarni shifrlash uchun ishlatilishi mumkin, assimetrik shifrlash esa xavfsiz kalit almashinuvi va raqamli imzolar uchun ishlatilishi mumkin. Bu kombinatsiya ko‘pincha gibrid shifrlash deb ataladi.
II BOB. OPENSSL DA SHIFRLASH VA XESHLASH ALGORITMLARINI QO‘LLANILISHI VA TAHLILI.
2.1. OPENSSL DA AES SHIFRLASH ALGORITMI.
Ushbu algoritm AQSH davlat shifrlash stanlarti DES kriptotahlil hujumiga uchragandan so‘ng ishlab chiqildi va standart sifatida qabul qilindi. Ushbu standart DES dan farqli o‘laroq turli xil kalit uzunliklaridan (128,192 va 256 bit) foydalanadi. Blokli shifrlashga asoslangan bo‘lib, blok uzunligi 128 bitga teng bo‘lib kalitga mos ravishda (10, 12 va 14) raund davomida shifrlanadi.
AES shifrlash algoritmi matematik tomondan ko‘phadlar ustida amal bajarishga asoslangan bo‘lib, ma’lumotlar baytlab kiritiladi. AES shifrlash algoritmi har bir raundi quyidagi amallardan iborat:
SubBytes bosqichi. Ushbu bosqichda kiruvchi matritsa baytlari o‘zgarmas S-box jadvali bo‘yicha almashtiriladi.
4 - rasm. SubBytes bosqichi
ShiftRows qadami. Ushbu bosqichda birinchi bosqichdan chiqqan natijaviy matritsa bayotlari suriladi. Bunda 1-satr o‘zgarmas, 2-satr 1 bayt chapga, 3-satr 2 bayt chapga va 4-satr 3 bayt chapga suriladi.
5 - rasm. ShiftRows qadami
MixColumns qadami. Ushbu qadamda ShiftRows dan chiqqan matritsa bilan o‘zgarmas matritsa bayti bilan o‘zaro ko‘paytiriladi.
6 - rasm. MixColumns qadami
AddRoundKey qadami. Raundning oxirgi bosqichi sanalib, 3-bosqichdan chiqqan natija bilan kalit baytlari XOR amalida qo‘shiladi.
7 - rasm. AddRoundKey qadami
Ushbu standart XXI asrning eng kriptobardoshli kriptografik tizimi sanalib, hozirda amaliy hujumga uchramagan.
AES shifrlash algoritmi kiruvchi blokni butunlay o‘zgarishi 2 - raunddan so‘ng yuz beradi.
8 - rasm. Kiruvchi ma’lumotlarning almashinish holati (AES) AES shifrlash algoritmida chiziqsiz funksiya sifatida SubBytes va MixColumns funksiyalaridan foydalanilgan.
Blowfish algoritmi. Blowfish algoritmi B. Shnayer tomonidan ishlab chiqilgan bo‘lib, 1993 yilda e’lon qilingan. B. Shnayer algoritmga quyidagilarni asos qilib olingan.
1. Tezlik. 32 razryadli mikroprotsessorlarda Blowfish algoritmi 26 taktda shifrlaydi.
2. Kompaktlilik. Blowfish kompyuter xotirasida eng kamida 5 kilobayt joy egallaydi.
3. Oddiylik. Blowfish algoritmida qo‘shish, XOR, va tablitsadan o‘rin almashtirish qo‘llaniladi. Bu esa tahlilni osonlashtiradi.
4. O‘zgaruvchan bardoshlilik. Blowfish algoritmi kaliti uzunligi o‘zgaruvchan va 448 bitgacha yetish mumkin.
Bu algoritm Feystel tarmog‘iga asoslangan bo‘lib, blokni uzunligi 64 bitga, raundlar soni 16 ga va raund kalitlari uzunligi esa 32 bitga teng. Blowfish shifrlash algoritmi i-raundi quyidagi funksional sxemada keltirilgan:
Ki
9-rasm. Blowfish kriptoalgoritmining i-raundi
Blowfish kriptoalgoritmi raundilari F funksiyasi quyidagicha:
1.32 bitli Li-1 chap qism 8 bitli (a,b,c,d) qismlarga bo‘linadi.
2.(a,b,c,d) 8 bitli qismlar S bloklar yordamida o‘rin almashtiriladi. O‘rin almashtirish formulasi quyidagicha:
Bu yerda har bir S -blok 256 ta 32 bitli elementga ega, ya’ni 8 bitli sonni 32 bitli songa akslantirib beradi. Masalan, birinchi S -blok keltirilgan.
Bu S -blokka kiruvchi qiymat 85 ga teng bo‘lsin, u holda S -blokdan chiquvchi qiymat sifatida S -blokning 85-o‘rnida joylashgan 0x21c6684216=56665094610=001000011100011001101000010000102 olinadi.
Bu algoritm asosida yotadigan tamoyil qo‘llanish konstruksiyasining oddiyligidadir. Kriptoalgoritmda qo‘llanilgan: MOV, ADD va XOR amallari zamonaviy mikroprotsessor arxitekturalarida effektiv qo‘llaniladi. Blowfish algoritmida chap yarim blokning o‘zgarishi o‘ng yarim blok o‘zgarishiga olib keladi. Bundan tashqari kalitning o‘zgarishi har bir raunddan so‘ng chap va o‘ng yarim bloklarga ham ta’sir etadi. Algoritmda to‘rtta S -blok qo‘llanilgan bo‘lib, bu S - bloklarning kirishi 8 bitga va chiqishi 32 bitga teng, ya’ni har bir S -blokda 32 razradli 256 ta bir-birini takrorlamaydigan sonlar qatnashgan. S -bloklar maxfiy bo‘lgan holatda bitta S-blokni to‘liq tanlash 256! ni tashkil etadi.
Openssl kutubxonasidan foydalanish uchun cmd buyrug‘idan foydalaniladi (pusk va R teng bosiladi):
10 -rasm. Cmd buyrug‘ini ishga tushiriladi
Cmd oynasidagi joriy papkasidan chiqish uchun cd.. buyrug‘idan foydalaniladi:
11 -rasm. cd.. buyrug‘idan foydalanish
Openssl kutubxonasi uchun foydalanadigan certificate papkasiga quyidagi buyrug‘ orqali ochiq ma’lumotni xosil qilib olamiz:
12 -rasm. Ochiq ma’lumotni yaratib olish
Certificate papkasida xosil bo‘lgan butun.txt fayl:
13 -rasm. Ochiq ma’lumot
Openssl kutubxonasini aktiv holatga o‘tkazishimiz uchun quydagi buyrug‘dan foydalanamiz:
14 -rasm. Opensslni aktiv holati
Help buyrug‘i orqali kerakli bo‘lgan shifrlash algoritmlarini va ulardan foydalanish tartibini ko‘rish mumkin bo‘ladi:
15 -rasm. Opensslda help buyrug‘i
Ochiq ma’lumotni shifrlash uchun AES shifrlash algoritmidan foydalanish aes-256-cbc -e -in butun.txt -out butun.txt.enc buyrug‘i orqali amalga oshiriladi. Bu yerda –e = encryption(shifrlash), -in= faylni nomi va formati, -out=shifr fayl. Shiflash davomida parol qo‘yish talab etiladi va ko‘rinmagan holda kiritamiz:
16 -rasm. Opensslda ma’lumotni shifrlash
Shifrlangan ma’lumotni ko‘rish quydagicha:
17 -rasm. AES-256 shifrlash algoritmida shifrlash
Shifr ma’lumotni deshifrlash uchun aes-256-cbc -d -in butun.txt.enc -out butun.txt.dec buyrug‘i orqali amalga oshiriladi. Bu yerda –d = decryption (deshifrlash), -in= faylni nomi va formati, -out=ochiq matn fayl. Deshiflash davomida parolga oldingi kiritgan paroldan foydaniladi:
19 -rasm. AES-256 shifrlash algoritmida deshifrlash.
|
| |