Kriptografiya darslari. Zamonaviy blok shifrlari. Ma'lumotlarni shifrlash usullari - veb-dasturchining blogi

Izoh: Ushbu ma'ruza bir nechta maqsadlarga ega. An'anaviy va zamonaviy nosimmetrik kalit shifrlari o'rtasidagi farqni ko'rsating. Zamonaviyni keltiring blok shifrlari va ularning xususiyatlarini muhokama qiling. Nima uchun zamonaviy blokli shifrlarni almashtirish shifrlari sifatida ishlab chiqish kerakligini tushuntiring. P-box va S-box kabi blok shifrlarining tarkibiy qismlarini tanishtiring. Ikki sinf shifrlari o'rtasidagi farqni muhokama qiling va ko'rsating: Feistel shifrlari va Feistel bo'lmagan shifrlar. Zamonaviy blok shifrlarini buzishga qaratilgan ikki turdagi hujumlarni muhokama qiling: differentsial va chiziqli kriptanaliz. "Oqim shifrlari" tushunchasini kiriting va sinxron va sinxron bo'lmagan shifrlarning farqini ko'rsating. Lineer va nonlineerni muhokama qiling mulohaza oqim shifrlarini amalga oshirish uchun smenali registrlar.

Bilan an'anaviy shifrlar nosimmetrik kalitbiz hozirgacha o'rganganimiz ramzga yo'naltirilgan. Kompyuter paydo bo'lishi bilan bit yo'naltirilgan shifrlar zarur bo'ldi. Shifrlanadigan ma'lumot har doim ham faqat matn emas; u shuningdek raqamlar, grafikalar, audio va video ma'lumotlardan iborat bo'lishi mumkin. Ushbu oqimni shifrlash va keyin shifrlangan oqimni uzatish uchun ushbu ma'lumotlar turlarini bit oqimiga o'tkazish qulay. Bundan tashqari, matn bit darajasida qayta ishlanganda, har bir belgi 8 (yoki 16) bit bilan almashtiriladi, ya'ni belgilar soni 8 (yoki 16) baravar ko'p bo'ladi. Ko'proq belgilarni aralashtirish xavfsizlikni oshiradi.

Ushbu bobda keyingi uch bobda keltirilgan zamonaviy blok va oqim shifrlarini o'rganish uchun zarur asos yaratildi. Ushbu bobning aksariyati zamonaviy blok shifrlarining umumiy g'oyalarini muhokama qilishga bag'ishlangan bo'lib, kichik bir qismi zamonaviy oqim shifrlari tamoyillariga bag'ishlangan.

7.1. Zamonaviy blok shifrlari

Zamonaviy blok shifr nosimmetrik tugmalar asl matnning n-bitli blokini shifrlaydi yoki shifrlangan matnning n-bitli blokini ochadi. Shifrlash yoki parol hal qilish algoritmida k-bitli kalit ishlatiladi. Parolni hal qilish algoritmi shifrlash algoritmiga teskari bo'lishi kerak va ikkalasi ham bir xil shifrlash kaliti yordamida ishlaydi, shunda Bob Elis yuborgan xabarni tiklaydi. 7.1-rasmda zamonaviy blok shifrdagi shifrlash va parolni hal qilishning umumiy g'oyasi ko'rsatilgan.


Shakl: 7.1.

Agar xabar n bitdan kam bo'lsa, ushbu n-bitli blokni yaratish uchun plomba qo'shilishi kerak; agar xabarda n bitdan ortiq bit bo'lsa, uni n-bitli bloklarga bo'lish kerak va agar kerak bo'lsa, oxirgi blokga to'ldirishni qo'shish kerak. N uchun umumiy qiymatlar odatda 64, 128, 256 yoki 512 bit.

7.1-misol

Agar kodlash uchun 8 bitli ASCII ishlatilsa va blok shifri 64 bitli bloklarni olsa, 100 belgidan iborat xabarga qancha qo'shimcha bit qo'shishingiz kerak?

Qaror

8-bitli ASCII yordamida 100 ta belgini kodlang. Ushbu xabar 800 bitni o'z ichiga oladi. Asl matn 64 ga bo'linishi kerak. Agar | M | va | Pad | - xabar uzunligi va to'ldirish uzunligi, keyin

| M | + | Pad | \u003d\u003d 0 mod 64 -\u003e | Pad | \u003d -800 tartib 64 -\u003e 32 tartib 64

Bu shuni anglatadiki, xabarga 32 bit to'ldirish (masalan, nol) qo'shilishi kerak. Keyin matn 832 bit yoki o'n uch 64 bitli blokdan iborat bo'ladi. Shuni esda tutingki, faqat oxirgi blokda to'ldirish mavjud. Shifrlovchi o'n uchta shifrlangan matn bloklarini yaratish uchun shifrlash algoritmidan o'n uch marta foydalanadi.

Almashtirish yoki transpozitsiya

Zamonaviy blokli shifr o'rnini bosuvchi shifr yoki transpozitsiya shifri vazifasini bajarishi mumkin. Bu an'anaviy shifrlarda ishlatiladigan bir xil fikrdir, faqat almashtirish yoki ko'chiriladigan belgilarda belgilar o'rniga bitlar bo'lishi kerak.

Agar shifr quyidagicha ishlab chiqilgan bo'lsa almashtirish shifri, matnning 1 yoki 0 bit qiymatlari 0 yoki 1 bilan almashtirilishi mumkin. Bu shuni anglatadiki, asl matn va shifrlangan matn turli xil birliklarga ega bo'lishi mumkin. 12 ta nol va 52 ni o'z ichiga olgan 64 bitli manba matn bloki 34 nol va 30 ta bilan shifrlangan matnda ifodalanishi mumkin. Agar shifr quyidagicha ishlab chiqilgan bo'lsa permutatsion (transpozitsiya) shifr, bitlar faqat tartibni (harakatlanishni) o'zgartiradi, asl va shifrlangan matnda bir xil sonli belgilar saqlanadi. Qanday bo'lmasin, mumkin bo'lgan n-bitli manbalar yoki shifrlarning soni 2 n ni tashkil qiladi, chunki blokda ishlatiladigan n bitlarning har biri ikkita qiymatdan biriga ega bo'lishi mumkin - 0 yoki 1,2 64 ta bit 64 ta bittasini topish uchun bu mantiqiy. Agar Momo Havo soniyada 1 milliard blokni tanlay oladigan bo'lsa, unda bu ish muvaffaqiyatli bo'lishiga qadar yuzlab yillar kerak bo'ladi.

b. Ikkinchi holatda (almashtirish), Momo Havo asl matnda to'liq 10 birlik borligini biladi, chunki transpozitsiya shifrlangan matndagi (yoki nol) sonini o'zgartirmaydi. Momo Havo faqat to'liq 10 birlikdan iborat 64-bitli bloklardan foydalangan holda to'liq qidiruv hujumini boshlashi mumkin. Faqatgina bor (64!) / [(10!) (54!)] = 151 473 214 816 64 bitdan 2 64 ta so'z, ya'ni 10 ta so'z. Momo Havo, agar u soniyasiga 1 milliard sinovni bajara olsa, 3 daqiqadan kamroq vaqt ichida sinovdan o'tishi mumkin.

To'liq qidiruv hujumlariga chidamli, zamonaviy blok shifr o'rnini bosuvchi shifr sifatida ishlab chiqilishi kerak.

09.07.2003

Shifrlash nima?

Shifrlash insoniyat tomonidan birinchi maxfiy ma'lumotlar paydo bo'lgan paytdan boshlab qo'llanilgan, ya'ni kirish cheklangan bo'lishi kerak. Bu juda uzoq vaqt oldin edi - masalan, eng mashhur shifrlash usullaridan biri Qaysar nomi bilan atalgan, agar u o'zi ixtiro qilmasa, keyin uni faol ishlatgan bo'lsa (yon panelga qarang).

Kriptografiya xabarning ma'nosini yashirishni va uni maxsus algoritmlar va kalitlar yordamida parolini ochish orqali ochib berishni ta'minlaydi. Biz kalitni shifrlash va parol hal qilish algoritmlari parametrlarining o'ziga xos maxfiy holati deb tushunamiz. Kalitni bilish maxfiy xabarni o'qishga imkon beradi. Biroq, quyida ko'rib turganingizdek, har doim ham kalitni bilish notanish odam xabarni o'qiy olmasligiga kafolat bermaydi.

Kalitni bilmasdan shifrni sindirish jarayoni kriptanaliz deyiladi. Shifrni sindirish vaqti uning kriptografik kuchi bilan belgilanadi. U qanchalik katta bo'lsa, shifrlash algoritmi shunchalik kuchli bo'ladi. Bundan ham yaxshiroq, agar siz dastlab xakerlik natijasiga erishish mumkinligini aniqlay olmasangiz.

Asosiy zamonaviy shifrlash usullari

Shifrlash usullari xilma-xilligi orasida quyidagi asosiy usullarni ajratish mumkin:

  • O'zgartirish yoki almashtirish algoritmlari - asl matnning belgilarini oldindan belgilangan sxemaga muvofiq boshqa (yoki bir xil) alifbo belgilariga almashtirish amalga oshiriladi, bu ushbu shifrning kaliti bo'ladi. Bundan tashqari, ushbu usul zamonaviy kriptosistemalarda juda past kriptografik quvvat tufayli amalda qo'llanilmaydi.
  • Permutatsiya algoritmlari - asl matnning belgilarini maxfiy kalit bo'lgan ma'lum bir printsipga ko'ra almashtiriladi. Almashtirish algoritmining o'zi past kriptografik kuchga ega, ammo u juda ko'p zamonaviy kriptosistemalarning elementi sifatida kiritilgan.
  • Gamma algoritmlari - asl matnning belgilari ma'lum bir tasodifiy ketma-ketlik belgilariga qo'shiladi. Eng keng tarqalgan misol - bu "username.pwl" fayllarini shifrlash operatsion tizim Microsoft Windows 95-ga parollarni saqlaydi tarmoq manbalari berilgan foydalanuvchi (NT-serverlarni kiritish uchun parollar, Internetga kirish uchun DialUp uchun parollar va boshqalar).

Windows 95 tizimiga kirishda foydalanuvchi o'z parolini kiritganda, undan shifrlash uchun ishlatiladigan RC4 shifrlash algoritmi yordamida gamma (har doim bir xil) hosil bo'ladi. tarmoq parollari... Parolni taxmin qilish qulayligi, bu holda Windows har doim bir xil gamutni afzal ko'rishi bilan bog'liq.

  • Dastlabki matnni ma'lum bir formulaga muvofiq murakkab matematik o'zgartirishga asoslangan algoritmlar. Ularning aksariyati hal qilinmagan matematik muammolardan foydalanadi. Masalan, Internetda keng qo'llaniladigan RSA shifrlash algoritmi tub sonlarning xususiyatlariga asoslangan.

Simmetrik va assimetrik kriptosistemalar

Alohida algoritmlarga o'tishdan oldin simmetrik va assimetrik kriptosistemalar tushunchasini qisqacha ko'rib chiqamiz. Shaxsiy kalitni yaratish va u bilan xabarni shifrlash - bu ishning yarmi. Ammo qanday qilib bunday kalitni asl xabarni parolini hal qilish uchun ishlatishi mumkin bo'lgan kishiga yuborishingiz mumkin? Shifrlash kalitining uzatilishi kriptografiyaning asosiy muammolaridan biri hisoblanadi.

Nosimmetrik tizim doirasida qolgan (xuddi shu kalit shifrlash va parolni hal qilish uchun mos bo'lganligi sababli shunday nomlangan), maxfiy kalitni uzatish uchun ishonchli aloqa kanaliga ega bo'lish kerak. Ammo bunday kanal har doim ham mavjud emas va shuning uchun amerikalik matematiklar Diffie, Hellman va Merkle 1976 yilda ochiq kalit va assimetrik shifrlash... Bunday kriptotizimlarda faqat shifrlash jarayonining kaliti hammaga ma'lum bo'lib, parolni hal qilish protsedurasi faqat maxfiy kalit egasiga ma'lum.

Masalan, menga xabar yuborishni xohlasam, men ochiq va yopiq kalitlarni yarataman. Men sizni ochiq yuboraman, siz u bilan xabarni shifrlaysiz va menga yuborasiz. Faqat men xabarni parolini hal qila olaman, chunki men sirli kalitni hech kimga bermaganman. Albatta, ikkala tugma ham o'zaro bog'liqdir (har bir kriptosistemada har xil yo'llar bilan) va ochiq kalitning taqsimlanishi tizimning kriptografik kuchini yo'q qilmaydi.

Asimmetrik tizimlarda quyidagi talab bajarilishi kerak: kriptotekstdan va ochiq kalitdan manba matnini chiqaradigan bunday algoritm yo'q (yoki hali ma'lum emas). Bunday tizimga misol sifatida taniqli RSA kriptosistemasi keltirilgan.

RSA algoritmi

RSA algoritmi (uning yaratuvchilari Rivest-Shamir-Adleman familiyalarining birinchi harflariga ko'ra) tub sonlarning (va juda katta) xususiyatlariga asoslangan. Oddiy sonlar deganda, o'zlari va bitta raqamidan tashqari bo'linishi bo'lmagan raqamlar tushuniladi. Va koprime - bu 1dan tashqari umumiy bo'luvchisi bo'lmagan raqamlar.

Birinchidan, ikkita juda katta sonni tanlaymiz (katta kriptografik jihatdan kuchli kalitlarni yaratish uchun katta boshlang'ich raqamlar kerak bo'ladi. Masalan, Unix dasturi ssh-keygen sukut bo'yicha uzunligi 1024 bit bo'lgan tugmachalarni ishlab chiqaradi).

Keling, parametrni aniqlaymiz nko'paytirish natijasida pva q... Keling, kattasini tanlaymiz tasodifiy raqam va buni chaqiramiz dva uni ko'paytirish natijasi bilan nusxalash kerak (p -1) * (q -1).

Keling, munosabat uchun e sonini topaylik

(e * d) mod ((p -1) * (q -1)) \u003d 1

(modbo'linishning qolgan qismi, ya'ni e d ga ko'paytirilsa, bo'linadi ((p -1) * (q -1)), keyin qolgan qismida biz 1) olamiz.

Ochiq kalit - bu raqamlar juftligi e va nva yopiq - d va n.

Shifrlash paytida asl matn raqamlar qatori sifatida ko'rib chiqiladi va biz uning har bir raqamiga operatsiya o'tkazamiz

C (i) \u003d (M (i) e) mod n.

Natijada ketma-ketlik hosil bo'ladi C (i), bu kriptotekstni tashkil qiladi. Axborotni dekodlash formulaga muvofiq amalga oshiriladi

M (i) \u003d (C (i) d) mod n.

Ko'rib turganingizdek, parolni hal qilish uchun maxfiy kalitni bilish kerak.

Keling, kichik raqamlarni sinab ko'raylik.

O'rnatish p \u003d 3, q \u200b\u200b\u003d 7... Keyin n \u003d p * q \u003d 21. Biz tanlaymiz dsifatida 5. formuladan (e * 5) mod 12 \u003d 1 hisoblash e \u003d 17... Ochiq kalit 17, 21 , maxfiy - 5, 21 .

"12345" ketma-ketligini shifrlaylik:

C (1) \u003d 1 17 mod 21 \u003d 1

C (2) \u003d 2 17 mod 21 \u003d 11

C (3) \u003d 3 17 mod 21 \u003d 12

C (4) \u003d 4 17 mod 21 \u003d 16

C (5) \u003d 5 17 mod 21 \u003d 17

Kriptotekst - 1 11 12 16 17.

Shifrlashni tekshiramiz:

M (1) \u003d 1 5 mod 21 \u003d 1

M (2) \u003d 11 5 mod 21 \u003d 2

M (3) \u003d 12 5 mod 21 \u003d 3

M (4) \u003d 16 5 mod 21 \u003d 4

M (5) \u003d 17 5 mod 21 \u003d 5

Ko'rib turganingizdek, natija bir xil.

RSA kripto tizimi Internetda keng qo'llaniladi. SSL orqali xavfsiz serverga ulanganda, kompyuteringizga WebMoney sertifikatini o'rnating yoki Open SSH yoki SecureShell yordamida uzoq serverga ulang, shunda ushbu dasturlarning hammasi shifrlashdan foydalanadi ochiq kalit RSA algoritmining g'oyalaridan foydalangan holda. Ushbu tizim haqiqatan ham ishonchli emasmi?

RSA xakerlik tanlovlari

Yaratilishidan beri RSA doimiy ravishda qo'pol kuch hujumlariga (qo'pol kuch hujumlari) duch kelmoqda. 1978 yilda algoritm mualliflari o'zlari ixtiro qilgan usul bilan shifrlangan satrni taqdim etgan maqolani chop etishdi. Xabarni birinchi bo'lib tushungan odamga 100 dollar mukofot berildi, ammo buning uchun 129 xonali raqamni ikkita omilga bo'lish kerak edi. Bu RSA-ni buzish bo'yicha birinchi tanlov edi. Maqola nashr etilganidan atigi 17 yil o'tgach, muammo hal qilindi.

RSA-ning kriptografik kuchi ochiq kalitdan maxfiy kalitni aniqlash nihoyatda qiyin, hatto imkonsiz, degan taxminga asoslanadi. Buning uchun ulkan butun sonning bo'linuvchilari mavjudligi muammosini hal qilish kerak edi. Hozirgacha hech kim uni analitik usullar yordamida hal qilmagan va RSA algoritmini faqat to'liq izlash bilan buzish mumkin. To'liq aytganda, faktoring muammosi qiyin va RSA tizimini buzish qiyin degan da'vo ham isbotlanmagan.

Xash matnini xash funktsiyasi bilan qayta ishlash natijasida olingan raqam RSA algoritmi yordamida foydalanuvchining shaxsiy kalitida shifrlanadi va manzilga xat va ochiq kalit nusxasi bilan birga yuboriladi. Adresent, jo'natuvchining ochiq kalitidan foydalanib, kelgan xabarda xuddi shu xash funktsiyasini bajaradi. Agar ikkala raqam teng bo'lsa, bu xabar aslligini anglatadi va agar kamida bitta belgi o'zgartirilgan bo'lsa, unda raqamlar mos kelmaydi.

Rossiyada eng keng tarqalganlardan biri pochta mijozlari, dastur Yarasa!, elektron raqamli imzolarni harflarga qo'shish uchun o'rnatilgan imkoniyatlarga ega (xatni tahrirlashda Maxfiylik menyusi bandiga e'tibor bering). Ushbu texnika haqida ko'proq ma'lumotni maqolada o'qing (qarang "PC World", № 3/02).

Shakl: 3

Kriptografiya

Kriptografiya - bu axborotni ruxsatsiz kirish va buzilishdan himoya qilish uchun o'zgartirish tamoyillari, vositalari va usullari haqidagi fan. IN so'nggi paytlarda u juda tez rivojlanmoqda. Bu juda ko'p vaqt va kuch talab qiladigan cheksiz va hayajonli poyga: kriptanalizatorlar yaqin vaqtgacha standartlar bo'lgan va keng qo'llanilgan algoritmlarni buzmoqdalar. Aytgancha, yaqinda matematiklar Dan Goldston (AQSh) va Kem Ildirim (Turkiya) tub sonlarni taqsimlashda birinchi qonuniyatni isbotladilar (ular shu paytgacha bunday qonuniyatlarni sezmagan edilar). Asosiy sonlar ba'zi klasterlarda sonlar o'qida joylashganki, ularni topish osonroq bo'ladi.

Butun dunyoda olib borilgan matematik tadqiqotlar doimo hamma narsani yangi va yangi kashfiyotlarga olib boradi. Kim biladi, ehtimol biz RSA algoritmini yoki boshqa kriptosistemalarni echilmagan matematik muammolarga asoslanib sindirish arafasida turibmiz.

Oleg Bunin - yirik Internet-loyihalar uchun dasturiy ta'minotni ishlab chiqish bo'yicha mutaxassis, Rambler xodimi, http: //www..htm).

  • Kriptografiyaga kirish / Ed. V.V. Yashchenko. Moskva: MTsNMO, 2000 yil.
  • Nosov V. A. Kriptografiya rivojlanishining qisqacha tarixiy sxemasi // "Moskva universiteti va Rossiyada kriptografiyaning rivojlanishi" konferentsiyasi materiallari, Moskva davlat universiteti, 2002 yil 17-18 oktyabr.
  • Salomaa A. Ochiq kalit kriptografiyasi. M., 1996 yil.
  • Zimmermann F. PGP - hamma uchun ochiq kalit shifrlash.
  • Qaysarning shifrlash tizimi

    O'zgartirish algoritmiga Qaysar shifrlash tizimi misol bo'la oladi. Ushbu usul xabarning har bir harfini ikkinchisiga belgining sobit soniga almashtirish orqali asl nusxadan almashtirishga asoslangan. Omar Xayyomning kvatrinasini tushunishga harakat qiling (ijro vaqti - 10 daqiqa).

    RLZ YOMEYZ AVBZHU IYZAVLU, BZHSCHLU ZHSCHEZZHZ ZHYUYOSCHEZ, EYSH YSHAZHFO ISYSCHYVESH BSHIZEZHV EESH ZHRSCHSCH: LF EMRSU YZEZESHGU, RYUKUZU, RYUKU

    Vaqtingiz bormi? Mana "javob":

    Hayotda oqilona yashash uchun ko'p narsalarni bilishingiz kerak,

    Ikki muhim qoidalar boshlashni unutmang:

    Siz hech narsa yeyishdan ko'ra och qolishni afzal bilasiz

    Va faqat birov bilan bo'lishdan ko'ra, yolg'iz qolish yaxshiroqdir.

    Parolni hal qilish kaliti: alfavit bo'yicha ettita belgini (ettinchisini oling) chapga siljiting. Alfavit halqalangan. Belgilar katta-kichikligi sezgir emas.

    Windows va parollar

    Windows parollarini qanday shifrlaydi?

    Tizim parolni oladi, uni katta harfga aylantiradi, 14 belgigacha qisqartiradi, so'ng ularni ikkiga bo'linib 7 qismga ajratadi, har birini alohida shifrlaydi va shu tarzda saqlaydi, bu esa yorilishni biroz osonlashtiradi. Aytgancha, parolni o'ylab topganingizda, 14 belgidan uzunroq kombinatsiyani mantiqiy emasligini yodda tuting.

    AES (kengaytirilgan shifrlash standarti) tanlovi

    80-yillarda. Amerika Qo'shma Shtatlarida ichki foydalanish uchun nosimmetrik shifrlash standarti - DESni qabul qildi ((Ma'lumotlarni shifrlash standarti, Rossiyada ham shunga o'xshash standart mavjud). Ammo 1997 yilda 56-bitli DES kaliti ishonchli kriptosistema uchun etarli emasligi aniqlanganda Amerika Standartlari Instituti yangi standart algoritm uchun tanlov, 15 variantdan eng yaxshisi tanlandi: Belgiyaning Rijndael algoritmi (mualliflarning familiyalaridan tashkil topgan - Rijmen va Daemen, "Reindal".) Ushbu algoritm allaqachon bozorga etkazib beriladigan turli xil kriptografik vositalarga kiritilgan). MARS, RC6, Serpent, TwoFish raqobati bo'lib o'tdi. Ushbu algoritmlarning barchasi ancha ishonchli va barcha taniqli kriptanaliz usullariga qarshi turdilar.

    Kriptografik xash funktsiyalari

    Kriptografik xash funktsiyalari har qanday o'lchamdagi kirish ma'lumotlarini sobit o'lchamdagi qatorga o'zgartiradi. Ularni topish juda qiyin:

    • bir xil transformatsiya natijasiga ega bo'lgan ikki xil ma'lumotlar to'plami (to'qnashuv qarshiligi); masalan, MD5 xash funktsiyasi uchun qisqa xabarga ega bo'lgan ma'lumotlar blokini topish uchun zarur bo'lgan arifmetik operatsiyalar soni taxminan 2 64;
    • ma'lum bo'lgan xeshlash natijasiga asoslangan kirish qiymati (qaytarilmaslik); MD5 uchun dastlabki xabarni hisoblash uchun zarur bo'lgan operatsiyalar soni 2128 tani tashkil qiladi.

    21-asrda kriptografiya raqamli hayotda muhim rol o'ynaydi zamonaviy odamlar... Keling, ma'lumotni shifrlash usullarini tezda ko'rib chiqamiz.

    Kriptografiya shunchaki kompyuter narsalari emas

    Ehtimol, siz allaqachon eng oddiy kriptografiyaga duch kelgansiz va ehtimol ba'zi bir shifrlash usullarini bilasiz. Masalan, Qaysar shifridan ko'pincha bolalar uchun ta'lim o'yinlarida foydalaniladi.

    ROT13 - bu xabarlarni shifrlashning yana bir keng tarqalgan turi. Unda alfavitning har bir harfi rasmda ko'rsatilgandek 13 ta pozitsiyaga siljiydi:

    Ko'rib turganingizdek, ushbu shifr haqiqatan ham ta'minlamaydi ishonchli himoya ma'lumotlar: bu butun kriptografiya g'oyasining sodda va sodda namunasidir.

    Bugun biz ko'pincha ba'zi bir texnologiyalar nuqtai nazaridan kriptografiya haqida gaplashamiz. Shaxsiy va moliyaviy ma'lumotlar qanday qilib onlayn tarzda xarid qilish yoki bankdagi hisobvaraqlarni ko'rish paytida xavfsiz tarzda uzatiladi? Qanday qilib hech kim kompyuterni ocholmasligi, qattiq diskni tortib ololmasligi uchun ma'lumotlarni xavfsiz saqlashingiz mumkin to'liq kirish undagi barcha ma'lumotlarga? Ushbu va boshqa savollarga ushbu maqolada javob beramiz.

    Ta'riflar va tezkor qo'llanma kiberxavfsizlik to'g'risida

    Kiberxavfsizlikda har qanday ma'lumot haqida gap ketganda foydalanuvchilarni xavotirga soladigan bir qator narsalar mavjud. Bularga maxfiylik, yaxlitlik va ma'lumotlarning mavjudligi kiradi.

    Maxfiylik - ma'lumotlar ruxsatsiz foydalanuvchilar tomonidan qabul qilinishi yoki o'qilishi mumkin emas.

    Axborotning yaxlitligi - ma'lumot 100% buzilmasligiga va tajovuzkor tomonidan o'zgartirilmasligiga ishonch.

    Axborotning mavjudligi - kerak bo'lganda ma'lumotlarga kirish huquqini olish.

    Maqolada, shuningdek, raqamli kriptografiyaning turli shakllari va ular yuqorida sanab o'tilgan maqsadlarga erishishda qanday yordam berishi mumkinligi ko'rib chiqiladi.

    Asosiy shifrlash usullari:
    • Nosimmetrik tarzda
    • Asimmetrik
    • Hashing
    • Elektron raqamli imzo

    Nosimmetrik shifrlash

    Mavzuni tushunishni boshlashdan oldin, oddiy savolga javob beraylik: "shifrlash" deganda aniq nima tushuniladi? Shifrlash - bu ma'lumotni ruxsatsiz shaxslardan yashirish uchun o'zgartirish, lekin shu bilan birga vakolatli foydalanuvchilarga ularga kirish imkoniyatini berishdir.

    Ma'lumotlarni to'g'ri shifrlash va parolini hal qilish uchun sizga ikkita narsa kerak: ma'lumotlar va parol hal qilish kaliti. Nosimmetrik shifrlashdan foydalanganda ma'lumotlarni shifrlash va parolini hal qilish uchun kalit bir xil bo'ladi. Keling, mag'lubiyatni olib, uni Ruby va OpenSSL yordamida shifrlaymiz:

    Yoqut

    talab "openssl" talab "pry" data_to_encrypt \u003d "endi siz meni o'qiysiz!" cipher \u003d OpenSSL :: Cipher.new ("aes256") cipher.encrypt key \u003d cipher.random_key iv \u003d cipher.random_iv data_to_encrypt \u003d cipher.update (data_to_encrypt) + cipher.final binding.pry true

    "openssl" ni talab qilish

    "qiziqish" ni talab qilish

    shifr \u003d OpenSSL :: shifr. yangi ("aes256")

    shifr. shifrlash

    kalit \u003d shifr. tasodifiy_ kalit

    iv \u003d shifr. tasodifiy _ iv

    data_to_encrypt \u003d shifr. yangilash (data_to_encrypt) + shifr. final

    majburiy. qiziqtirmoq

    to'g'ri

    Dastur quyidagicha chiqadi:

    O'zgaruvchiga e'tibor bering ma'lumotlar_to_shifrlash, dastlab "endi siz meni o'qiysiz!" qatori bo'lgan, endi tushunarsiz belgilar to'plami. Dastlab o'zgaruvchida saqlangan kalit yordamida jarayonni teskari yo'naltiring kalit.

    Shifrlash uchun o'rnatgan bir xil tugmachani ishlatganimizdan so'ng, biz xabarning parolini echib, asl satrini olamiz.

    Boshqa shifrlash usullarini ham ko'rib chiqamiz.

    Asimmetrik shifrlash

    Nosimmetrik shifrlash bilan bog'liq muammo shu: Internet orqali ba'zi ma'lumotlarni yuborishni xohlaysiz. Agar ma'lumotlarni shifrlash va parolini hal qilish uchun bir xil kalit zarur bo'lsa, unda siz avval kalitni yuborishingiz kerak bo'ladi. Bu shuni anglatadiki, siz ishonchsiz ulanish orqali kalitni yuborishingiz kerak bo'ladi. Ammo shu tarzda kalitni ushlab qolish va uni uchinchi tomon ishlatishi mumkin. Ushbu natijadan qochish uchun assimetrik shifrlash ixtiro qilindi.

    Asimmetrik shifrlashdan foydalanish uchun ikkita matematik bog'liq kalit yaratilishi kerak. Bittasi shaxsiy kalitfaqat siz kirishingiz mumkin. Ikkinchisi ochiq, ochiq holda mavjud.

    Asimmetrik shifrlash yordamida aloqa misolini ko'rib chiqamiz. Unda server va foydalanuvchi bir-biriga xabar yuboradi. Ularning har birida ikkita kalit mavjud: shaxsiy va ochiq. Ilgari kalitlar izchil ekanligi aytilgan edi. O'sha. shaxsiy kalit bilan shifrlangan xabarni faqat unga yaqin bo'lgan ochiq kalit yordamida ochish mumkin. Shuning uchun, aloqani boshlash uchun siz ochiq kalitlarni almashtirishingiz kerak.

    Ammo serverning ochiq kaliti aynan shu serverga tegishli ekanligini qayerdan bilasiz? Ushbu muammoni hal qilishning bir necha yo'li mavjud. Eng keng tarqalgan usul (va Internetda ishlatiladigan usul) ochiq kalit infratuzilmasi (PKI) dan foydalanish. Veb-saytlarda, sertifikatlar va ochiq kalitlar berilgan barcha saytlarning katalogiga ega bo'lgan Sertifikatlashtirish markazi mavjud. Veb-saytga ulanishda uning ochiq kaliti avval sertifikatlashtirish markazi tomonidan tekshiriladi.

    Bir juft ochiq va xususiy kalitlarni yarataylik:

    Yoqut

    talab "openssl" talab "pry" data_to_encrypt \u003d "endi siz meni o'qiysiz!" key \u003d OpenSSL :: PKey :: RSA.new (2048) binding.pry true

    "openssl" ni talab qilish

    "qiziqish" ni talab qilish

    data_to_encrypt \u003d "endi siz meni o'qiysiz!"

    kalit \u003d OpenSSL :: PKey :: RSA. yangi (2048)

    majburiy. qiziqtirmoq

    to'g'ri

    Aniqlanishicha:

    Shuni esda tutingki, shaxsiy kalit va ochiq kalit - bu turli xil identifikatorlarga ega bo'lgan alohida ob'ektlar. Foydalanish # xususiy_shifrlash, satrni shaxsiy kalit yordamida shifrlash mumkin #public_decrypt - xabarni parolini hal qilish:

    Axborotni xashlash

    Hashlash, nosimmetrik va assimetrik shifrlashdan farqli o'laroq, bir tomonlama funktsiyadir. Ba'zi ma'lumotlardan xash yaratish mumkin, ammo jarayonni orqaga qaytarishning imkoni yo'q. Bu xeshlash ma'lumotlarni saqlashning juda qulay usuli emas, lekin ba'zi ma'lumotlarning butunligini tekshirish uchun javob beradi.

    Funksiya ba'zi ma'lumotlarni kirish sifatida qabul qiladi va tasodifiy ko'rinadigan mag'lubiyatni chiqaradi, ular har doim bir xil uzunlikda bo'ladi. Ideal xeshlash funktsiyasi turli xil kirish uchun noyob qiymatlarni yaratadi. Xuddi shu kirish har doim bir xil xashni ishlab chiqaradi. Shuning uchun, ma'lumotlar butunligini tekshirish uchun siz xeshlashdan foydalanishingiz mumkin.

    Kirish

    Axborotni o'zgartirish orqali himoya qilish muammosi, ruxsatsiz shaxs tomonidan o'qilishini istisno qilish, inson ongini uzoq vaqtdan beri tashvishga solmoqda. Kriptografiya tarixi inson tili tarixi bilan bir yoshdadir. Bundan tashqari, dastlab yozuvning o'zi kriptografik tizim edi, chunki qadimgi jamiyatlarda faqat tanlanganlar unga egalik qilgan.

    Qadimgi Misr, Qadimgi Hindistonning muqaddas kitoblari bunga misoldir.

    Yozuvdan keng foydalanish bilan kriptografiya mustaqil fan sifatida shakllana boshladi. Birinchi kriptotizimlar bizning davrimizning boshlarida topilgan. Shunday qilib, Qaysar o'z yozishmalarida uning ismini olgan ozmi-ko'pmi sistematik shifrdan foydalangan.

    Birinchi va Ikkinchi Jahon Urushlari davrida kriptografik tizimlar jadal rivojlandi. Urushdan keyingi davrdan to hozirgi kungacha kompyuterning paydo bo'lishi kriptografik usullarning rivojlanishi va takomillashishini tezlashtirdi.

    Kriptografik usullardan foydalanish muammosi nima uchun axborot tizimlari (IP) hozirgi paytda ayniqsa dolzarb bo'lib qoldi?

    Bir tomondan, foydalanish kompyuter tarmoqlari, jumladan global tarmoq Internet, bu orqali davlat, harbiy, tijorat va xususiy xarakterdagi katta hajmdagi ma'lumotlar uzatiladi, bu esa ruxsatsiz shaxslarga kirish huquqini bermaydi.

    Boshqa tomondan, yangi kuchli kompyuterlarning paydo bo'lishi, tarmoq va neyron hisoblash texnologiyalari yaqin vaqtgacha oshkor qilinmagan deb hisoblangan kriptografik tizimlarni obro'sizlantirishga imkon berdi.

    Ushbu asarning birinchi bobida siz zamonaviy kriptografiyaning asosiy tushunchalari, ularga qo'yiladigan talablar, uni amalda qo'llash imkoniyatlari bilan tanishishingiz mumkin.

    Kriptografik kalitlarni tarqatish protokollari bilan ishlashning ikkinchi bobida tushuncha elektron imzo va elektron imzo protokollari ..

    Ushbu ishning uchinchi bobida xash funktsiyalari va ularni yaratish algoritmlari haqida so'z boradi.

    To'rtinchi bobda El Gamal elektron imzosini modernizatsiya qilish va diskret logaritma muammosi haqida so'z boradi.

    1-bob. Zamonaviy kriptografiyaning asosiy tushunchalari

    Kriptologiya (kryptos - maxfiy, logos - fan) ma'lumotni o'zgartirish orqali uni himoya qilish muammosi bilan shug'ullanadi. Kriptologiya ikki sohaga bo'linadi - kriptografiya va kriptanaliz. Ushbu yo'nalishlarning maqsadlari to'g'ridan-to'g'ri qarama-qarshidir.

    Kriptografiya ma'lumotni o'zgartirish uchun matematik usullarni topish va tadqiq qilish bilan bog'liq.

    Kriptoanalizning qiziqish doirasi - bu kalitlarni bilmasdan ma'lumotlarni parolini hal qilish imkoniyatlarini o'rganishdir.

    Ushbu ish kriptografik texnikaga qaratilgan.

    Zamonaviy kriptografiya to'rtta asosiy bo'limni o'z ichiga oladi:

    Simmetrik kriptotizimlar.

    Ochiq kalit kriptosistemalari.

    Elektron imzo tizimlari.

    Asosiy boshqaruv.

    Kriptografik usullardan foydalanishning asosiy yo'nalishlari maxfiy ma'lumotlarni aloqa kanallari orqali uzatishdir (masalan, elektron pochta), uzatilgan xabarlarning autentifikatsiyasi, axborotni (hujjatlar, ma'lumotlar bazalari) shifrlangan shaklda tashuvchida saqlash.

    Kriptografiya ma'lumotni o'qishga (tiklashga) faqat kalitni bilish bilan imkon beradigan tarzda o'zgartirishga imkon beradi.

    Shifrlangan va shifrlangan ma'lumot sifatida ma'lum bir alifboga asoslangan matnlar ko'rib chiqiladi. Ushbu atamalar quyidagilarni anglatadi.

    Alfavit - bu ma'lumotni kodlash uchun ishlatiladigan cheklangan belgilar to'plami.

    Matn - alifbo elementlarining tartiblangan to'plami.

    Zamonaviy IP-da ishlatiladigan alfavitlarga quyidagilar kiradi:

    alifbo Z33 - rus alifbosidagi 32 ta harf va bo'sh joy;

    alifbo Z256 - standart ASCII va KOI-8 kodlariga kiritilgan belgilar;

    ikkilik alifbo - Z2 \u003d (0,1);

    sakkizli alfavit yoki o'n oltinchi alfavit;

    Shifrlash - bu transformatsiya jarayoni: asl matn, oddiy matn deb ham ataladigan, shifr matni bilan almashtiriladi.

    Shifrni echish - bu shifrlashning teskari jarayoni. Kalit asosida shifrlangan matn asl nusxaga o'tkaziladi.

    Kalit matnlarni to'siqsiz shifrlash va parolini hal qilish uchun zarur bo'lgan ma'lumotdir.

    Kriptografik tizim bu ochiq matnli T transformatsiyalar turkumidir. Ushbu oila a'zolari indekslanadi yoki k belgisi bilan belgilanadi; parametr k - bu kalit. K bo'sh joy - bu mumkin bo'lgan asosiy qiymatlar to'plami. Odatda, kalit - bu alifbo harflarining ketma-ket ketma-ketligi.

    Kriptosistemalar nosimmetrik va ochiq kalitlarga bo'linadi.

    Nosimmetrik kriptotizimlarda xuddi shu kalit shifrlash uchun ham, parolni hal qilish uchun ham ishlatiladi.

    Ochiq kalit tizimlarida bir-biri bilan matematik jihatdan bog'liq bo'lgan ikkita ochiq va yopiq kalitlardan foydalaniladi. Ma'lumot hamma uchun ochiq bo'lgan ochiq kalit yordamida shifrlanadi va faqat xabarni qabul qiluvchiga ma'lum bo'lgan shaxsiy kalit yordamida shifrlanadi. Kalitlarni taqsimlash va kalitlarni boshqarish atamalari axborotni qayta ishlash tizimining jarayonlarini anglatadi, ularning tarkibi foydalanuvchilar o'rtasida kalitlarni taqsimlash va tarqatishdir.

    Elektron (raqamli) imzo - bu matnga biriktirilgan kriptografik o'zgartirish, bu matn boshqa foydalanuvchi tomonidan qabul qilinganda xabarning muallifligi va haqiqiyligini tekshirishga imkon beradi.

    Kripto qarshiligi - bu kalitni bilmasdan (ya'ni kriptanaliz) parol hal qilishga chidamliligini aniqlaydigan shifrning o'ziga xos xususiyati. Kriptografik quvvatning bir nechta ko'rsatkichlari mavjud, jumladan:

    barcha mumkin bo'lgan kalitlarning soni;

    kriptanaliz uchun zarur bo'lgan o'rtacha vaqt.

    Transformatsiya Tk mos algoritm va k parametr qiymati bilan aniqlanadi. Axborotni himoya qilish uchun shifrlash samaradorligi kalitning sirini va shifrning kriptografik kuchini saqlashga bog'liq.

    Kriptografik ma'lumotlarni yopish jarayoni dasturiy ta'minotda ham, qo'shimcha qurilmalarda ham amalga oshirilishi mumkin. Uskuna vositasi sezilarli darajada qimmatroq, ammo uning afzalliklari ham bor: yuqori ishlash, soddaligi, xavfsizligi va boshqalar. Dasturiy ta'minotni amalga oshirish yanada amaliy va foydalanishda ma'lum bir moslashuvchanlikni ta'minlashga imkon beradi.

    Zamonaviy kriptografik axborot xavfsizligi tizimlari uchun quyidagi umumiy qabul qilingan talablar ishlab chiqilgan:

    shifrlangan xabar faqat kalit mavjud bo'lganda o'qilishi kerak;

    shifrlangan xabarning fragmentidan va unga mos keladigan oddiy matndan foydalanilgan shifrlash kalitini aniqlash uchun zarur bo'lgan operatsiyalar soni mumkin bo'lgan tugmachalarning umumiy sonidan kam bo'lmasligi kerak;

    barcha mumkin bo'lgan kalitlarni sanab, ma'lumotlarni parolini hal qilish uchun zarur bo'lgan operatsiyalar soni pastki chegaraga ega bo'lishi va imkoniyatlardan yuqori bo'lishi kerak. zamonaviy kompyuterlar (tarmoq hisoblashidan foydalanish imkoniyatini hisobga olgan holda);

    shifrlash algoritmini bilish himoya ishonchliligiga ta'sir qilmasligi kerak;

    kalitning ozgina o'zgarishi, xuddi shu tugmachadan foydalanganda ham, shifrlangan xabar turining sezilarli o'zgarishiga olib kelishi kerak;

    shifrlash algoritmining tarkibiy elementlari o'zgarishsiz bo'lishi kerak;

    shifrlash jarayonida xabarga kiritilgan qo'shimcha bitlar shifrlangan matnda to'liq va ishonchli tarzda yashirin bo'lishi kerak;

    shifrlangan matn uzunligi asl matn uzunligiga teng bo'lishi kerak;

    shifrlash jarayonida doimiy ravishda foydalaniladigan kalitlar o'rtasida oddiy va osonlik bilan o'rnatiladigan bog'liqliklar bo'lmasligi kerak;

    turli xil mumkin bo'lgan har qanday kalit ishonchli axborot himoyasini ta'minlashi kerak;

    algoritm dasturiy ta'minotni ham, apparatni ham amalga oshirishga imkon berishi kerak, shu bilan birga kalit uzunligini o'zgartirish shifrlash algoritmining sifat jihatidan yomonlashishiga olib kelmasligi kerak.

    2-bob. Kriptografik kalitlarni tarqatish protokollari va elektron imzo protokollari.

    Kriptografik tizimlar qanchalik murakkab va ishonchli bo'lmasin, ularning zaif nuqta amaliy amalga oshirishda kalitlarni taqsimlash muammosi. Almashish imkoniyatiga ega bo'lish uchun maxfiy ma'lumotlar ikkita IP mavzusi o'rtasida kalit ulardan biri tomonidan yaratilishi kerak, keyin qandaydir tarzda yana maxfiy tarzda boshqasiga o'tkazilishi kerak. O'sha. umumiy holatda yana kalitni uzatish uchun qandaydir kriptosistemadan foydalanish talab etiladi.

    Ushbu muammoni hal qilish uchun klassik va zamonaviy algebra tomonidan olingan natijalar asosida ochiq kalit tizimlar taklif qilingan.

    Ularning mohiyati shundan iboratki, ISning har bir adresatchisi ma'lum qoidaga muvofiq bir-biriga bog'langan ikkita kalitni yaratadi. Bitta kalit ochiq, ikkinchisi shaxsiy deb e'lon qilinadi. Ochiq kalit e'lon qilinadi va manzilga xabar yuborishni istagan har bir kishi uchun mavjud. Yashirin kalit sir saqlanadi.

    Asl matn qabul qiluvchining ochiq kaliti bilan shifrlanadi va unga uzatiladi. Shifrlangan matn, printsipial jihatdan, bir xil ochiq usul bilan parolni ochib bo'lmaydi


    kalit. Xabarni parolini hal qilish faqat shaxsiy kalit yordamida amalga oshiriladi, uni faqat adresning o'zi biladi.

    Ochiq kalitli kriptografik tizimlarda quyidagi xususiyatga ega bo'lgan qaytarilmas yoki bir tomonlama funktsiyalar deyiladi: agar x qiymati berilgan bo'lsa, f (x) ni hisoblash oson, lekin y \u003d f (x) bo'lsa, u holda x qiymatini hisoblashning oson usuli yo'q.

    Qaytarib bo'lmaydigan funktsiyalarning ko'plab sinflari va ochiq kalit tizimlarining har xilligini keltirib chiqaradi. Biroq, har qanday qaytarib bo'lmaydigan funktsiya haqiqiy ICda foydalanish uchun mos emas.

    Esingizda bo'lsa, almashtirish, almashtirish, almashtirish va Vernam shifrlari amalni matndagi har bir aniq belgiga qo'llaydi. Siz siljitishingiz kerak - biz belgini siljitamiz, kalitni qo'llaymiz - belgiga, so'ngra keyingi belgiga va hokazolarga murojaat qilamiz, biz barcha oddiy matn belgilarini shifrlamagunimizcha. Ushbu shifrlash usuli oqim deb ataladi - biz har bir belgini alohida-alohida shifrlaymiz. Yana bir yondashuv mavjud: asl matnni bir nechta belgilar (bloklar) guruhlariga ajratish va har bir blokda shifrlash operatsiyalarini bajarish. Bu blokirovkalash usulidir.

    Blok va oqim shifrlari orasidagi farqni aniqroq qilish uchun oddiy almashtirish shifridan foydalanib misol keltiramiz.

    Oqimlarni shifrlash

    Keling, CIPHER so'zini almashtiriladigan oqim shifr bilan shifrlaylik:

    Har bir belgi shifrlangan va shifrlangan matnni olgan. Pirog kabi oson.

    Blokni shifrlash

    Keling, AVADAKEDAVRA so'zini shifrlaymiz. Shifr blok bo'lgani uchun biz oddiy matnni to'rtta belgidan iborat bloklarga ajratamiz: AVAD | AKED | AVRA (amalda matn bloklari 64-256 bit). Keling, har bir blok uchun o'zimizning almashtirish jadvalimizni ishlab chiqamiz:

    Endi biz har bir blokni tegishli alifbo bilan shifrlaymiz:
    Chidamlilik nuqtai nazaridan inline yondashuvdan biroz yaxshiroq chiqdi. Axir biz odatdagi almashtirish shifrini bitta chap bilan ochib berishni o'rgandik. Va blokirovka qilishning bunday yondashuvi bilan tajovuzkor blok uzunligini tanlashdan oldin boshini juda ko'p sindirishi kerak va hattoki har bir blok uchun shifrlarni almashtirish uchun kriptanalizni qo'llashi kerak.

    FEISTEL zanjiri

    Endi biz cheksiz dunyoga eshik ochadigan juda muhim mavzuga o'tishga tayyormiz. zamonaviy tizimlar shifrlash. Feistel tarmog'i - bu Horst Feistel tomonidan IBM laboratoriyasida 1971 yilda ishlab chiqilgan blokirovka shifrlash texnikasi. Bugungi kunda Feistel tarmog'i juda ko'p sonli kriptografik protokollar asosida ishlaydi. Keling, nima ekanligini "barmoqlar ustida" aniqlashga harakat qilaylik.

    Feistel tarmog'i oddiy matn bloklari bilan ishlaydi, shuning uchun biz bloklardan birida uning ishlash mexanizmini ko'rib chiqamiz. Qolgan bloklar bilan harakatlar o'xshash bo'ladi.

    • Blok ikkita teng qismga bo'linadi - chap (L) va o'ng (R).
    • Bo'linishdan so'ng, chap pastki blok K funktsiyasi yordamida o'zgartiriladi: K: x \u003d f (L, K) tugmachasi. Funktsiya sifatida siz xohlagan har qanday o'zgarishni tasavvur qilishingiz mumkin - masalan, K tugmachasi bilan yaxshi eski smenali shifr.
    • Olingan pastki blokga oldin ishsiz bo'lgan o'ng pastki blok R bilan 2 modul qo'shiladi: x \u003d x + R
    • Bundan tashqari, natijada olingan qismlar almashtiriladi va bir-biriga yopishtiriladi.

    Ko'rib turganingizdek, hamma narsa juda oddiy. Buning qanday ishlashini tushunish uchun diagrammani ko'rib chiqing:

    Bunga Feistel xujayrasi deyiladi. Feistel tarmog'ining o'zi bir nechta katakchalardan iborat. Birinchi hujayraning chiqishida olingan pastki bloklar ikkinchi hujayraning kiritilishiga, ikkinchi hujayradan hosil bo'lgan pastki bloklar Feistel tarmog'ining turlarining soniga qarab, uchinchi katakning kirishiga o'tadi va hokazo. Har bir bunday tur oldindan belgilangan yumaloq kalitni qo'llaydi. Ko'pincha, dumaloq tugmachalar asosiy maxfiy kalit K dan olinadi, barcha turlar tugagandan so'ng, matnning pastki bloklari bir-biriga yopishtiriladi va oddiy shifrlangan matn olinadi.

    Endi Feistel tarmog'ining qanday ishlashini misol bilan ko'rib chiqamiz. Keling, AVADAKEDAVRA so'zini olamiz va oltita belgidan iborat ikkita blokga bo'linamiz - AVADAK | EDAVRA. Funktsiya sifatida biz vites o'zgartirish shifrini dumaloq tugma bilan belgilangan pozitsiyalar soni bo'yicha olamiz. Yashirin kalit K \u003d bo'lsin. K \u003d 1, K \u003d 2 ni dumaloq tugmalar sifatida qabul qilaylik.2-modul uchun biz telegraf alifbosi bo'yicha matnni ikkilik kodga aylantiramiz, uni deyarli hech kim ishlatmaydi.

    Mana nima bo'ldi:

    Endi Feistel tarmog'i orqali birinchi blokni ikki turdan o'tkazamiz:

    Ikkinchi blokni o'zingiz shifrlashga harakat qiling, menda MOSSTR bor.

    Parolni hal qilish xuddi shu tarzda amalga oshiriladi: shifrlangan matn bloklarga, so'ngra subbloklarga bo'linadi, chap pastki blok funktsiyaga kiradi, o'ng moduli bilan 2 modul qo'shiladi, so'ngra pastki bloklar almashtiriladi. Farqi shundaki, dumaloq tugmachalar teskari tartibda xizmat qiladi, ya'ni bizning holatimizda birinchi turda biz K \u003d 2 tugmachasini ishlatamiz, keyin ikkinchi davrada K \u003d 1.

    Feystel tarmog'ini o'rganish shuni ko'rsatdiki, mustaqil dumaloq tugmachalar va kriptografik jihatdan kuchli psevdo-tasodifiy funktsiya bilan, Feystel tarmog'ining uchta davri shifrlangan matn psevdo-tasodifiy bo'lishi uchun etarli bo'ladi. Bu shuni ko'rsatadiki, Feistel tarmog'iga asoslangan shifrlar hozirda juda kriptografik jihatdan kuchli.

    GOST 28147-89 (MAGMA)

    Arsenalda deyarli barcha kerakli tushunchalar mavjud, shuning uchun biz mahalliy kriptografiyaning birinchi muhim mavzusi - GOST 28147-89 ga o'tishga tayyormiz. Aytish joizki, faqat dangasa bu standart haqida hali yozmagan, shuning uchun men millionlab odamlarga birinchi marta buyuk va dahshatli Magmaning shifrlash rejimlarining mohiyatini qisqacha va bulutsiz formulalarsiz tushuntirishga harakat qilaman. Agar siz standartni o'zi o'qishga qaror qilsangiz, unda o'z vaqtida, kuchingizni, sabr-toqatingizni va oziq-ovqatingizni zaxiralashingiz kerak, chunki inson tilidagi standartlarni yozish qat'iyan man etiladi.

    Asosiy xususiyatlar: 256 bitli kalit, 64 bitli blok.

    Magmani tahlil qilishdan oldin siz yangi kontseptsiyani o'rganishingiz kerak - almashtirish jadvallari yoki S-qutilar. Bu almashtirish shifridagi jadval bilan bir xil turdagi jadval. Subblock belgilarini jadvalda belgilangan belgilar bilan almashtirish uchun mo'ljallangan. S-box rand () funktsiyasi tomonidan hosil qilingan tasodifiy raqamlar deb o'ylamang. S-qutilar puxta o'ylangan hosil qilingan ketma-ketliklar natijasidir, chunki ular butun shifrning kriptografik quvvatiga ega.

    GOST 28147 uning almashtirish jadvallarini juda kam xarakterlaydi. Faqatgina ular qo'shimcha maxfiy element (maxfiy kalit bilan birga) va "ta'minlangan" deb aytilgan belgilangan tartib". Boshqa hech narsa yo'q. GOST 28147 qabul qilinganidan beri S-qutilarini tanlash bilan bog'liq bo'lgan ilmiy va texnik noaniqlik mish-mishlar va taxminlarni keltirib chiqardi. Faqat GOST ishlab chiquvchilariga ma'lum bo'lgan maxfiy mezonlar haqida gaplashildi. Tabiiyki, bu noaniqlik kriptotizimning ishonchliligini pasaytirdi.

    Ushbu kamchilik standartni tanqid qilish uchun ajoyib zamin yaratdi. Frantsuz kriptografi Nikolas Kurtua GOSTning mustahkamligi bilan bog'liq bir qator bahsli qoidalarni o'z ichiga olgan bir nechta maqolalarni nashr etdi. Kurtuaning fikriga ko'ra, rus standartiga qarshi hujumni qurish oson va hech qanday tarzda xalqaro deb bo'lmaydi. Biroq, Kurtua o'zining tahlilini hozirgi qutilaridan farq qiladigan S-boxlar uchun o'tkazadi, shuning uchun siz uning fikriga ishonmasligingiz kerak.

    Endi ular g'amgin Lubyanka devorlari ichida nima haqida o'ylashganlarini ko'rib chiqamiz.

    Oson almashtirish rejimi

    32 dumaloq oddiy almashtirish rejimida, standartga muvofiq, bizga 32 dumaloq kalit kerak. Dumaloq tugmachalarni yaratish uchun asl 256 bitli kalit sakkizta 32 bitli bloklarga bo'linadi: K1 ... K8. K9 ... K24 tugmachalari - K1 ... K8 tugmalarining tsiklik takrorlanishi. K25 ... K32 tugmachalari K8 ... K1 tugmachalari.

    1. 64 bitli har bir blok ikkita kichik blokga bo'linadi - Ai va Bi.
    2. Ai chap pastki blokiga 232 modulo qo'shilib, K1 dumaloq tugmachasi qo'shiladi: Ai + 1 \u003d Ai + Ki mod 232.
    3. Chap pastki blok S-quti orqali o'tadi.
    4. Chap pastki blokning bitlari 11 pozitsiyaga siljiydi (tsiklik siljish).
    5. Chap pastki blok o'ng tomonga 2 modul qo'shiladi: A \u003d A ⊕ B. iii
    6. O'ng pastki blok chap pastki blokning asl qiymatini oladi: Bi + 1 \u003d Ai.
    7. Subbloklar almashtiriladi.

    Faqat bitta turga misol. 256 bitli kalit:

    arvadek adava arvadek adava arvadek adava arvadek adava arva

    00011 01010 11110 00011 01001 00001 01111 00011 01001 00011 11110

    00011... . . . 00011 01010 11110 0

    Keyin dumaloq tugmalar

    K1 \u003d 00011 01010 11110 00011 01001 00001 01

    K2 \u003d 111 00011 01001 00011 11110 00011 0001

    K3 \u003d. ... ...

    S - quti \u003d [1, 15, 13, 0, 5, 7, 10, 4, 9, 2, 3, 14, 6, 11, 8, 12]

    Ushbu S-qutidan qanday foydalanish kerak? Juda oddiy! Agar S-qutining kiritilishi 0 bo'lsa, unda 1 chiqadi (biz S-qutining 0-belgisini olamiz), agar 4 bo'lsa, u holda 5 chiqadi (biz 4-belgini olamiz), agar kirish 7 ga teng bo'lsa, u holda 4 chiqadi, va boshqalar.

    Oddiy matn:

    Eng muhim va ahamiyatsiz bo'lmagan ikkita 32-bitli bloklarga bo'lingan:

    Misol, albatta, yovvoyi bo'lib chiqdi, chunki GOST hali ham hamma qalam bilan tegishi mumkin bo'lgan bunday standart emas.

    Oddiy almashtirish rejimi juda sodda va muhim kamchiliklarga ega:

    • shifrlangan blokdagi bitta xato bu blokning barcha bitlarini buzadi;
    • bir xil aniq matn bloklarini shifrlashda kriptanalizatorga ma'lum ma'lumotlarni taqdim etishi mumkin bo'lgan bir xil shifrlangan matn bloklari olinadi.

    Shunday qilib, GOST 28147-89-ni oddiy almashtirish rejimida faqat asosiy ma'lumotlarni shifrlash uchun ishlatish maqsadga muvofiqdir.

    O'YIN TARTIBI

    Ushbu rejimda oddiy almashtirish rejimining kamchiliklari yo'q. Gamma rejimi shunday deyiladi, chunki u gamma - psevdo-tasodifiy ketma-ketlikni ishlatadi, bu har bir turda 2-modul oddiy matn bilan qo'shiladi. Gamma S sinxronlash xabaridan hosil bo'ladi - bu har bir iteratsiya bilan o'zgarib turadigan va oddiy almashtirish rejimida shifrlashdan o'tadigan psevdo-tasodifiy ketma-ketlik, undan keyin u gamaga aylanib, oddiy matnga joylashtirilgan.

    Va endi hamma narsa tartibda.

    Har bir blok uchun 3-5 qadam takrorlanadi. Ushbu barcha manipulyatsiyalarni diagrammada ko'rish mumkin.

    Shifrni echish xuddi shu tarzda amalga oshiriladi, oddiy matn bloki o'rniga shifrlangan matn bloki beriladi.

    Fikr-mulohazali gamma rejimi

    Biz asoratga boramiz. Algoritm gamma rejimiga o'xshaydi, ammo gamma avvalgi shifrlangan ma'lumotlar bloki asosida hosil bo'ladi, shuning uchun joriy blokning shifrlash natijasi avvalgi bloklarga ham bog'liq. 1. Sinxron xabar S - 64 bitli psevdo-tasodifiy ketma-ketlik.

    2. S oddiy almashtirish rejimida shifrlangan.
    3. Oddiy matn, natijada gamut bilan 2-modul qo'shiladi.
    4. Qabul qilingan shifrlangan matn keyingi blok uchun sinxron xabar sifatida keladi va chiqishga ham boradi. Diagrammada qanday ko'rinishini ko'rishingiz mumkin.

    Simulyatsiya rejimi

    Ushbu rejimda taqlid qo'shimchasi hosil bo'ladi - manba matni va tugmachalarga qarab qat'iy uzunlikdagi qo'shimcha blok. Shifrlangan matn tasodifan yoki qasddan buzilmaganligini tasdiqlash uchun - ya'ni yaxlitlikni tekshirish uchun bunday kichik blok kerak. Ushbu rejim quyidagicha ishlaydi:

    1. Oddiy matn bloki oddiy almashtirish rejimida 16 turdan o'tadi.
    2. Olingan mod 2 blokiga yana bir tekis matnli blok qo'shiladi.
    3. Yigit oddiy almashtirish rejimida yana 16 ta aylana boradi.
    4. Oddiy matnning navbatdagi bloki qo'shiladi va yana oddiy almashtirish va shunga o'xshash, oddiy matn bloklari tugamaguncha.

    Tekshirish uchun qabul qiluvchi matnning parolini ochgandan so'ng, ta'riflanganidek, shunga o'xshash protsedurani amalga oshiradi. Agar natija uzatilgan taqlid qo'shimchasiga to'g'ri kelmasa, barcha mos keladigan M bloklar yolg'on deb hisoblanadi.

    GOST 34.12-2015 (Kuznechik)

    Ko'pchilik GOST 28147-89 ni chet el algoritmlari bilan taqqoslaganda axloqiy jihatdan eskirgan va etarlicha barqaror deb hisoblaydi. Buning o'rniga mahalliy kriptograflar yangi shifrlash standartini chiqardi. Ularning aytishicha, bu eski GOSTga qilingan ko'plab hujumlar tufayli yoki bunday blok uzunligi allaqachon eskirgan va zamonaviy ma'lumotlar massivlari uchun juda kichik bo'lganligi sababli sodir bo'lgan. Haqiqiy sabablarni hech kim reklama qilmaydi. Albatta, asosiy xarakteristikalarda ba'zi o'zgarishlar yuz berdi.

    Asosiy xususiyatlar: 256 bitli kalit, 128 bitli blok.

    Shuni ham aytib o'tish joizki, yangi standartda S-qutilar aniqlangan va o'ylangan, shuning uchun siz o'zingizning mo''jizaviy tasodifiy almashtirishlaringizni o'ylab topmasligingiz kerak. Yangi GOSTda juda ko'p shifrlash usullari mavjud:
    oson almashtirish rejimi (Elektron kod daftari, ECB);
    gamma rejimi (Counter, CTR);
    chiqish teskari aloqasi bo'lgan gamma rejimi (Outback Feedback, OFB);
    qo'shilish bilan oddiy almashtirish tartibi (Cipher Block Chaining, CBC);
    shifrli teskari aloqa bilan gamma rejimi (CFB);
    simulyatsiya yaratish rejimi (Message Authentication Code algoritmi).

    Keling, yangi rejimlarni ko'rib chiqaylik.

    Mesh oddiy almashtirish rejimi

    Oldingi standartda ko'rinib turganidek, oddiy almashtirish rejimi rejimlarning eng zaifidir, shuning uchun yangi standartda u endi qo'shilish bilan paydo bo'ladi va umuman unchalik sodda bo'lmagan.

    1. Boshlash vektori qo'rqinchli tuyuladi, lekin aslida bu kiritishga kiradigan bitlarning ketma-ketligi.
    2. Vektor ikki qismga bo'linadi - L va R, ulardan biriga oddiy matn bilan modul 2 qo'shiladi, ikkinchisi esa keyingi blok uchun boshlang'ich vektorining yarmiga aylanadi.
    3. Oddiy matnning yig'indisi va boshlang'ich vektorining bo'lagi oddiy almashtirish shifridan o'tadi.
    4. Olingan shifrlangan matn bloklari bir-biriga yopishtirilgan.

    Diagrammani ko'rib chiqishga arziydi va hamma narsa birdaniga aniq bo'ladi.

    Albatta, initsializatsiya vektori unchalik oddiy emas: yangi blokni shifrlashni boshlashdan oldin u bir qator chiziqli o'zgarishlardan (chiziqli siljish registridan foydalangan holda) o'tadi. Ammo shifr bilan tanishish uchun bunday sxemani tasavvur qilish kifoya. Ushbu rejimda parolni hal qilish ham aniq emas, shuning uchun diagramaga qarash yaxshiroqdir.

    Taroziga solish uchun - shifrlash. Mahalliy ishlanmalar orasida bu CryptoPro CSP kripto provayderi.

    Shifrlash rejimlarining kuchliligi haqida bir necha so'z. Ko'pgina xorijiy kriptograflar bizning standartimizga qarshi qo'llarini ko'tarishga harakat qilishdi, ammo hozirgi vaqtda zamonaviy texnologik rivojlanish darajasida amalga oshiriladigan bironta hamon hujum mavjud emas. Uzoq vaqt davomida ushbu standart dasturchilar orasida juda mashhur emas edi, chunki uning algoritmini uning matnidan tushunish qiyin va etarli aniq tavsiflar mavjud emas. Ammo hozirda ko'plab dasturlash tillarida ko'plab dasturlar mavjud. Shunday qilib, endi GOSTdan foydalanish juda aniq va ko'p jihatdan u chet el standartlaridan ustundir. Axir vatanparvarlik qayerda?!

    Maqola sizga yoqdimi? Do'stlar bilan bo'lishish uchun: