8.2. Klassik shifrlash usullari: o'rniga qo'yish va o'rin almashtirish

Kriptografiya tarixining bosqichlari

Zamonaviy shifrlash algoritmlarini tushunish uchun ularning qanday paydo bo'lganini bilish foydali, chunki eng murakkab hozirgi algoritmlar ham ikkita oddiy amalga tayanadi. Kriptografiya tarixini shartli ravishda to'rt bosqichga ajratish mumkin (8.1-jadval).

Bosqich

Xususiyati

Misollar

Qadimgi davr

Bir alfavitli o'rniga qo'yish va o'rin almashtirish

Sezar shifri, Polibiy kvadrati

O'rta davr

Ko'p alfavitli o'rniga qo'yish, bardoshlik ortadi

Vijiner shifri, Atbash

Jahon urushlari davri

Elektromexanik shifrlash mashinalari

Enigma, SIGABA

Kompyuter davri

Hisoblash texnikasiga mo'ljallangan zamonaviy shifrlar

DES, AES, RC4 (simmetrik); RSA (ochiq kalitli)

8.1-jadval. Kriptografiya taraqqiyotining asosiy bosqichlari (Ganiyev asosida).

Ushbu jadvaldan bir qonuniyat ko'rinadi: har bir bosqichda shifrlar oldingisidan bardoshliroq bo'lgan, biroq vaqt o'tishi bilan yangi tahlil usullari paydo bo'lib, avvalgi shifrlar ishonchini yo'qotgan. Enigma o'z davrida buzib bo'lmas deb hisoblangan edi, bugun esa uni oddiy shaxsiy kompyuter bir necha soniyada ochib beradi. Bu kriptografiyaning muhim xususiyatini ko'rsatadi: xavfsizlik doimiy emas, u hisoblash quvvati va tahlil usullariga nisbatan baholanadi.

O'rniga qo'yish (almashtirish) akslantirishi

Kriptografiyada ma'lumotni o'zgartirishning ikki asosiy usuli mavjud, ular zamonaviy algoritmlarning ham negizini tashkil etadi. Birinchisi o'rniga qo'yish (substitution), ya'ni almashtirish akslantirishidir. Bu usulda ochiq matndagi har bir belgi boshqa belgi bilan almashtiriladi, belgilarning o'rni esa o'zgarmaydi.

Eng mashhur misol Sezar shifri bo'lib, u Rim imperatori Yuliy Sezar nomi bilan bog'liq: rivoyatga ko'ra u Tsitseron bilan yozishmalarida shu usuldan foydalangan. Shifrlash qoidasi juda sodda: har bir harf alfavit bo'yicha ma'lum sondagi pozitsiyaga suriladi. Bu son shifrlash kaliti bo'lib xizmat qiladi. Kalit uchga teng bo'lsa, A harfi D ga, B harfi E ga aylanadi va hokazo; alfavit oxiriga yetganda hisob boshiga qaytadi (8.4-rasm).

8.4-rasm. O'rniga qo'yish akslantirishi: Sezar shifri, kalit K = 3 (muallif ishlanmasi; Ganiyev va Borbot'ko asosida).
8.4-rasm. O'rniga qo'yish akslantirishi: Sezar shifri, kalit K = 3 (muallif ishlanmasi; Ganiyev va Borbot'ko asosida).

Masalan, HELLO so'zi KHOOR ga aylanadi. Shifrni ochish uchun teskari amal bajariladi, ya'ni har bir harf uch pozitsiya orqaga suriladi. Sezar shifrining zaifligi shundaki, uning kalitlar to'plami juda kichik: lotin alfaviti uchun jami yigirma beshta variant mavjud, ularning barchasini qo'lda ham tez tekshirib chiqish mumkin. Bunday hujum barcha kalitlarni sinab ko'rish (brute force) deb ataladi.

Sezar shifri bir alfavitli o'rniga qo'yishga misol, chunki butun matn davomida bitta almashtirish jadvalidan foydalaniladi. Bunday shifrlarning yana bir jiddiy zaifligi bor: ular tildagi harflar chastotasini saqlab qoladi. Har bir tabiiy tilda ayrim harflar boshqalaridan ko'ra ko'proq uchraydi. Shifrmatnda eng ko'p takrorlangan belgi katta ehtimol bilan aynan shu ko'p uchraydigan harfga to'g'ri keladi. Shu tariqa kriptotahlilchi kalitni bilmasdan ham shifrni ocha oladi. Bu usul chastota tahlili deb ataladi.

Chastota tahliliga qarshi turish uchun ko'p alfavitli o'rniga qo'yish yaratilgan. Bunga eng mashhur misol Vijiner shifri bo'lib, unda surish qiymati harfdan harfga o'zgarib turadi: kalit sifatida so'z olinadi va uning har bir harfi navbatdagi belgi uchun o'z surishini belgilaydi. Natijada ochiq matndagi bir xil harf shifrmatnda turli belgilarga aylanadi va chastota qoliplari yo'qoladi. Ushbu shifr bir necha asr davomida buzilmas deb hisoblangan edi.

O'rin almashtirish akslantirishi

Ikkinchi asosiy usul o'rin almashtirish (permutation) akslantirishidir. Bu usulda belgilarning o'zi o'zgarmaydi, faqat ularning matndagi o'rni ma'lum qoida bo'yicha almashtiriladi. Ya'ni shifrmatnda ochiq matndagi barcha belgilar saqlanadi, biroq boshqa tartibda joylashadi (8.5-rasm).

8.5-rasm. O'rin almashtirish akslantirishiga misol (muallif ishlanmasi; Ganiyev asosida).
8.5-rasm. O'rin almashtirish akslantirishiga misol (muallif ishlanmasi; Ganiyev asosida).

Masalan, POSSIBLE so'zidagi belgilar o'rni ma'lum qoida bo'yicha almashtirilsa, SIPLOSBE shifrmatni hosil bo'ladi. Ushbu usulning o'ziga xos zaifligi shundaki, u harflar chastotasini butunlay saqlab qoladi: shifrmatnda ham ochiq matndagi harflar aynan o'sha miqdorda uchraydi. Shu sababli faqat o'rin almashtirishga asoslangan shifr ham yetarli darajada bardoshli emas.

Endi eng muhim xulosaga kelamiz. Har ikkala usul alohida olinganda zaif, biroq ularni ko'p marta, navbatma-navbat qo'llash kuchli shifr hosil qiladi. Aynan shu g'oya zamonaviy blokli shifrlarning asosini tashkil etadi: masalan, AES algoritmi ma'lumot bloki ustida o'rniga qo'yish va o'rin almashtirish amallarini bir necha bosqichda takrorlaydi. Har bir bosqich alohida oddiy, biroq ularning ketma-ketligi ochiq matn bilan shifrmatn o'rtasidagi har qanday statistik bog'liqlikni yo'qotadi. Shunday qilib, qadimgi Rim davridagi ikki sodda g'oya bugungi kunda ham kriptografiyaning negizi bo'lib qolmoqda.

Bir martali bloknot

Klassik davrning alohida o'rin egallaydigan usuli bir martali bloknot (one time pad) yoki Vernam shifri deb ataladi. U 1918-yilda taklif qilingan bo'lib, nazariy jihatdan mutlaqo buzib bo'lmaydigan yagona shifrlash usuli hisoblanadi. Uning qoidasi sodda: kalit tasodifiy tanlanadi, uzunligi xabar uzunligiga teng bo'ladi va har bir kalit faqat bir marta ishlatiladi. Shifrlash ochiq matn va kalit ustida XOR amalini bajarish orqali amalga oshiriladi.

Bu usulning matematik kuchi shundan iboratki, kalit haqiqatan tasodifiy bo'lsa, shifrmatn ochiq matn haqida hech qanday statistik ma'lumot bermaydi: istalgan shifrmatnga istalgan ochiq matn mos kelishi mumkin. Biroq amalda uni qo'llash juda qiyin. Birinchidan, kalit xabar bilan bir xil uzunlikda bo'lishi kerak, ya'ni bir gigabaytlik faylni shifrlash uchun bir gigabaytlik kalit zarur. Ikkinchidan, kalitni oldindan xavfsiz yetkazish kerak, bu esa asosiy muammoni hal qilmaydi, balki uni siljitadi. Uchinchidan, kalitni takroran ishlatish butun himoyani yo'q qiladi. Shu sabablarga ko'ra bir martali bloknot faqat alohida hollarda, masalan yuqori darajadagi davlat va harbiy aloqada qo'llanilgan.

Amaliy misol

Bekzod amaliyot davomida oddiy tajriba o'tkazadi: u dastur yozib, o'z ismini Sezar shifri bilan shifrlaydi va natijani ko'radi. So'ngra u kalitni bilmagan holda barcha yigirma besh variantni ketma-ket sinab chiqadi va bir soniyadan kamroq vaqtda dastlabki matnni topadi. Bu tajriba unga muhim saboq beradi: kalitlar to'plamining kichikligi shifrni butunlay ishonchsiz qiladi, algoritm qanchalik chiroyli bo'lmasin. Aynan shu sababli zamonaviy algoritmlarda kalit uzunligi 128 bit va undan yuqori bo'ladi, chunki bunday kalitlar to'plamini to'liq sinab chiqish hozirgi hisoblash quvvati bilan amalda mumkin emas.

Kasbiy vaziyat

Kompaniyada bir xodim taklif kiritadi: mijozlar parollarini bazada saqlashda ularni oddiy o'rin almashtirish usuli bilan «chalkashtirib» qo'ysak yetarli emasmi, chunki bu tez ishlaydi va dasturlash oson. Otabek bunga qat'iy qarshi chiqadi va sababini tushuntiradi. Birinchidan, o'rin almashtirish qaytariladigan amal bo'lib, qoidani bilgan har qanday shaxs matnni tiklay oladi. Ikkinchidan, bu usul harflar chastotasini saqlaydi, ya'ni statistik tahlilga zaif. Uchinchidan va eng muhimi, parollarni umuman qaytariladigan shaklda saqlash noto'g'ri: ular uchun boshqa vosita, ya'ni xesh-funksiya ishlatiladi, u 8.5-§da ko'rib chiqiladi. Bu vaziyat mutaxassisning vazifasi shunchaki «biror himoya qo'yish» emas, balki masalaga mos to'g'ri vositani tanlash ekanini ko'rsatadi.

Amaliy topshiriq

Quyidagi topshiriqni qo'lda bajaring. (a) O'z ismingizni lotin alfavitida yozing va uni Sezar shifri bilan K = 5 kalitida shifrlang, natijani yozing. (b) Sherigingiz shifrlagan so'zni kalitni bilmagan holda barcha variantlarni sinab ochishga urinib ko'ring va necha urinishda topganingizni qayd eting. (v) So'ngra bir xil so'zni o'rin almashtirish usuli bilan (o'z qoidangizni belgilab) shifrlang. (g) Ikki usulning zaifliklarini taqqoslab, qaysi biri chastota tahliliga ko'proq bardoshli ekanini asoslang.

Nazorat savollari

  1. 1Kriptografiya tarixining to'rt bosqichini sanang va har biriga bittadan misol keltiring.
  2. 2O'rniga qo'yish va o'rin almashtirish akslantirishlari bir-biridan qanday farq qiladi?
  3. 3Sezar shifrining asosiy zaifliklari nimadan iborat?
  4. 4Chastota tahlili qanday ishlaydi va unga qarshi qanday usul yaratilgan?
  5. 5Zamonaviy blokli shifrlar ikki klassik usuldan qanday foydalanadi?
  6. 6Bir martali bloknot nima uchun nazariy jihatdan buzilmas, biroq amalda kam qo'llanadi?