Ko'ngil ochish shifrlash. Kriptografiya darslari. Zamonaviy blok shifrlari

Izoh: Ushbu ma'ruza bir nechta maqsadlarga ega. An'anaviy va zamonaviy nosimmetrik kalit shifrlari o'rtasidagi farqni ko'rsating. Zamonaviy blok shifrlarini olib keling 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 nosimmetrik kalit blok shifrlari 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 xuddi shu shifrlash kalitidan foydalanadi, 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 shifr 64 bitli bloklarni qabul qilsa, 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 plomba qo'shilishi kerak (masalan, nol). 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 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 uning muvaffaqiyati uchun 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 o'tkaza olsa, 3 daqiqadan kamroq vaqt ichida sinovdan o'tishi mumkin.

To'liq qidiruv hujumiga 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 foydalanilgan, 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, kalitni bilmaslik har doim ham xabarni begona kishi tomonidan o'qib bo'lmasligiga 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 almashtiriladi, bu kalit bo'ladi ushbu shifr... 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 ko'plab zamonaviy kriptosistemalarning elementi sifatida kiritilgan.
  • Miqyoslash algoritmlari - ma'lum bir tasodifiy ketma-ketlik belgilariga asl matnning belgilari qo'shiladi. Eng keng tarqalgan misol - operatsion tizim joylashgan "username.pwl" fayllarini shifrlash Microsoft Windows 95-ga parollarni saqlaydi tarmoq manbalari ushbu foydalanuvchi (NT serverlarini kiritish uchun parollar, DialUp Internetga kirish uchun parollar va boshqalar).

Windows 95 tizimiga kirishda foydalanuvchi o'z parolini kiritganda, undan tarmoq parollarini shifrlash uchun ishlatiladigan RC4 shifrlash algoritmi yordamida gamma (har doim bir xil) hosil bo'ladi. 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 kontseptsiyasini ishlab chiqdilar. 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: kriptotekst va ochiq kalitdan manba matnini chiqaradigan bunday algoritm yo'q (yoki hali ma'lum emas). Bunday tizimning misoli taniqli RSA kriptosistemasi.

RSA algoritmi

RSA algoritmi (uning yaratuvchilari Rivest-Shamir-Adleman familiyalarining birinchi harflariga ko'ra) tub sonlarning (va juda katta) xususiyatlariga asoslangan. Asosiy sonlar - bu o'zlari va bitta raqamidan tashqari, bo'linuvchisi bo'lmagan raqamlar. 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, katta tasodifiy raqamni tanlaymiz va unga qo'ng'iroq qilamiz 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 ulanganingizda, kompyuteringizga WebMoney sertifikatini o'rnatganingizda yoki Open SSH yoki SecureShell-dan foydalangan holda uzoq serverga ulanganingizda, ushbu dasturlarning barchasi RSA algoritmining g'oyalaridan foydalangan holda ochiq kalit shifrlashdan foydalanadi. 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 mag'lubiyatni bergan maqola chop etishdi. Xabarni birinchi bo'lib tushungan odamga 100 dollar mukofot berildi, ammo buning uchun 129 xonali sonni ikkita omilga ajratish kerak edi. Bu RSA-ni buzish bo'yicha birinchi musobaqa 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 u analitik usullar hech kim qaror qilmagan va RSA algoritmini faqat qo'pol kuch ishlatishi 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!, qo'shish uchun o'rnatilgan imkoniyatlarga ega elektron raqamli imzolar xatlarga (xatni tahrirlashda Maxfiylik menyusi bandiga e'tibor bering). Ushbu texnika haqida ko'proq ma'lumotni maqolada o'qing (qarang "Kompyuter dunyosi", № 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, 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 bir klasterlarda sonli o'qda joylashgan bo'lib, ularni topishni biroz osonlashtiradi.

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 (Advanced Encryption Standard) tanlovi

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

    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 xesh natijasiga asoslangan kirish qiymati (qaytarilmaslik); MD5 uchun dastlabki xabarni hisoblash uchun zarur bo'lgan operatsiyalar soni 2128 tani tashkil qiladi.

    Esingizda bo'lsa, almashtirish, almashtirish, almashtirish va Vernam shifrlari amalni matndagi har bir aniq belgiga qo'llaydi. Siz oddiy matndagi barcha belgilarni shifrlamaguncha almashtirishingiz kerak - belgini siljiting, kalitni qo'llang - belgiga, so'ngra keyingi belgiga va boshqalarga murojaat qiling. 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'rt 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 bunday blokirovka yondashuvi bilan tajovuzkor blok uzunligini tanlashdan oldin boshini juda ko'p sindirishi kerak va keyin har bir blok uchun shifrlarni almashtirish uchun kriptanalizni qo'llashi kerak.

    FEISTEL zanjiri

    Endi biz cheksiz dunyoga eshikni 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: x \u003d f (L, K) tugmachasi yordamida f funktsiyasi bilan o'zgartiriladi. 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 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.

    Keling, Feistel tarmog'ining qanday ishlashini misol bilan ko'rib chiqamiz. Keling, AVADAKEDAVRA so'zini olamiz va oltita belgidan iborat ikkita blokga ajratamiz - AVADAK | EDAVRA. Funktsiya uchun 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 bo'linib, so'ngra blokbloklarga 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 formulalar bilan tushuntirishga harakat qilaman. Agar siz standartni o'zi o'qishga qaror qilsangiz, unda vaqt, kuch, sabr-toqat va oziq-ovqatni zaxiralashingiz kerak, chunki siz bilganingizdek, standartlarni inson tilida 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 kuchini ushlab turadi.

    GOST 28147 uning almashtirish jadvallarini juda kam xarakterlaydi. Faqat ular qo'shimcha maxfiy element (maxfiy kalit bilan birga) ekanligi va "kerakli tartibda etkazib berilishi" haqida aytilgan. Boshqa hech narsa yo'q. GOST 28147 qabul qilinganidan beri S-qutilarini tanlash bilan bog'liq bo'lgan ilmiy va texnik noaniqliklar 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 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, unda 5 bo'ladi (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 sinxron-xabaridan hosil bo'ladi - bu har bir takrorlanish bilan o'zgarib turadigan va oddiy almashtirish rejimida shifrlangan, so'ngra u gamaga aylanib, oddiy matnga joylashtirilgan psevdo-tasodifiy ketma-ketlik.

    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 aytish kerakki, 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 ulanish 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 ham 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. Ichki 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 rivojlanishning zamonaviy texnologik 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 aniq tavsiflar etarli 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?!

    Ma'lumotlarni shifrlash maxfiylikni himoya qilish uchun juda muhimdir. Ushbu maqolada men bugungi kunda ma'lumotlarni himoya qilish uchun ishlatiladigan shifrlashning har xil turlari va usullarini muhokama qilaman.

    Bilasizmi?
    Rim imperiyasi davrida Yulius Tsezar tomonidan shifrlash dushmanga o'qimaydigan xat va xabarlarni tayyorlash uchun ishlatilgan. Bu, ayniqsa, urushlar paytida harbiy taktika sifatida muhim rol o'ynadi.

    Internet imkoniyatlari tobora o'sib borar ekan, tobora ko'proq biznesimiz onlayn yollanmoqda. Bular orasida eng muhimi Internet-banking, onlayn to'lov, elektron pochta xabarlari, maxfiy ma'lumotlar va ma'lumotlar almashinuvini ta'minlaydigan shaxsiy va rasmiy xabarlar almashish va boshqalar. Agar ushbu ma'lumotlar noto'g'ri qo'llarga tushib qolsa, bu nafaqat shaxsiy foydalanuvchiga, balki butun onlayn biznes tizimiga zarar etkazishi mumkin.

    Bunga yo'l qo'ymaslik uchun shaxsiy ma'lumotlar uzatilishini himoya qilish uchun ba'zi tarmoq xavfsizligi choralari ko'rildi. Kriptografiya deb nomlanuvchi ma'lumotlar shifrlash va parol hal qilish jarayonlari shular jumlasidandir. Bugungi kunda ko'pgina tizimlarda uchta asosiy shifrlash usuli qo'llaniladi: xeshlash, nosimmetrik va assimetrik shifrlash. Keyingi satrlarda ushbu shifrlash turlarining har birini batafsilroq muhokama qilaman.

    Shifrlash turlari

    Nosimmetrik shifrlash

    Nosimmetrik shifrlash bilan oddiy matn deb nomlanadigan oddiy o'qiladigan ma'lumotlar shifrlanadi (shifrlanadi), shunda u o'qilmaydi. Ushbu ma'lumotlarni skriptlash kalit yordamida amalga oshiriladi. Ma'lumotlar shifrlanganidan so'ng, uni qabul qiluvchiga xavfsiz o'tkazish mumkin. Qabul qiluvchida shifrlangan ma'lumotlar shifrlash uchun ishlatilgan bir xil kalit yordamida dekodlanadi.

    Shunday qilib, kalit nosimmetrik shifrlashning eng muhim qismi ekanligi aniq. Buni begonalardan yashirish kerak, chunki unga kirgan har bir kishi shaxsiy ma'lumotlarning parolini ochishi mumkin. Shuning uchun ushbu turdagi shifrlash "maxfiy kalit" nomi bilan ham tanilgan.

    Zamonaviy tizimlarda kalit odatda kuchli paroldan yoki umuman tasodifiy manbadan olinadigan ma'lumotlar qatoridir. U nosimmetrik shifrlash dasturiga kiritilgan bo'lib, undan foydalanishni kodlashni ishlatadi. Ma'lumotlarni shifrlashga ma'lumotlar shifrlash standarti (DES), kengaytirilgan shifrlash standarti (AES) yoki xalqaro ma'lumotlarni shifrlash algoritmi (IDEA) kabi simmetrik shifrlash algoritmlari yordamida erishiladi.

    Cheklovlar

    Ushbu turdagi shifrlashning eng zaif havolasi - bu autentifikatsiya qilingan foydalanuvchini saqlash va uzatish nuqtai nazaridan kalitning xavfsizligi. Agar xaker bu kalitni ushlab tura olsa, u shifrlangan ma'lumotni osonlikcha parolini ochib, butun shifrlash nuqtasini yo'q qiladi.

    Yana bir kamchilik, ma'lumotlarni qayta ishlaydigan dasturiy ta'minot shifrlangan ma'lumotlar bilan ishlay olmasligi bilan bog'liq. Shuning uchun, ushbu dasturiy ta'minotdan foydalanish uchun avval ma'lumotlar dekodlanishi kerak. Agar dasturning o'zi buzilgan bo'lsa, tajovuzkor ma'lumotlarni osongina olishlari mumkin.

    Asimmetrik shifrlash

    Asimmetrik shifrlash kaliti xuddi shunday ishlaydi nosimmetrik kalit, unda uzatilgan xabarlarni kodlash uchun kalit ishlatiladi. Biroq, xuddi shu tugmachani ishlatish o'rniga, bu xabarni parolini hal qilish uchun mutlaqo boshqa tugmachani ishlatadi.

    Shifrlash uchun ishlatiladigan kalit hamma va barcha tarmoq foydalanuvchilari uchun mavjud. Shunday qilib, u "ochiq" kalit sifatida tanilgan. Boshqa tomondan, parolni ochish uchun ishlatiladigan kalit sir saqlanadi va foydalanuvchi o'zi tomonidan shaxsiy foydalanish uchun mo'ljallangan. Demak, u "xususiy" kalit sifatida tanilgan. Asimmetrik shifrlash ochiq kalit shifrlash deb ham ataladi.

    Ushbu usul yordamida xabarni parolini ochish uchun zarur bo'lgan maxfiy kalit har safar uzatilishi shart emasligi va odatda u faqat foydalanuvchiga (qabul qiluvchiga) ma'lum bo'lganligi sababli xakerning xabarni parolini hal qilish ehtimoli ancha past bo'ladi.

    Diffie-Hellman va RSA ochiq kalitlarni shifrlashdan foydalanadigan algoritmlarning namunalari.

    Cheklovlar

    Ko'plab xakerlar ushbu turdagi shifrlashni chetlab o'tish uchun o'rtada odamni hujum shakli sifatida ishlatishadi. Asimmetrik shifrlashda sizga berilgan ochiq kalitma'lumotlar boshqa shaxs yoki xizmat bilan xavfsiz ravishda almashish uchun ishlatiladi. Biroq, xakerlar hiyla-nayrang tarmoqlaridan foydalanib, ular bilan aloqa o'rnatishingizga imkon beradi, ular sizni xavfsiz yo'nalishda ekanligingizga ishontirishga majbur qiladi.

    Ushbu turdagi buzg'unchilikni yaxshiroq tushunish uchun o'zaro ta'sir qiluvchi ikki tomon Sasha va Natasha va xaker Sergey ularning suhbatini to'xtatish niyatida ko'rib chiqing. Birinchidan, Sasha Natasha uchun mo'ljallangan tarmoq orqali uning ochiq kalitini so'rab xabar yuboradi. Sergey ushbu xabarni ushlab turadi va u bilan bog'liq bo'lgan ochiq kalitni oladi va Sasha o'rniga o'zining ochiq kalitini o'z ichiga olgan yolg'on Natasha xabarini shifrlash va uzatish uchun foydalanadi.

    Natasha, bu xabarni Sashadan kelgan deb o'ylar ekan, endi uni Sergeyning ochiq kalitidan foydalanib shifrlaydi va qaytarib yuboradi. Ushbu xabarni Sergey yana ushlab turdi, parolini ochdi, o'zgartirdi (agar xohlasa), Sasha dastlab yuborgan ochiq kalit yordamida yana shifrlandi va Sashaga qaytdi.

    Shunday qilib, Sasha ushbu xabarni olganida, u Natashadan kelgan deb ishonadi va yomon o'yinlardan bexabar qolishda davom etadi.

    Hashing

    Hashlash texnikasi ishlab chiqarish uchun xash funktsiyasi deb ataladigan algoritmdan foydalanadi maxsus chiziq xash deb nomlanuvchi berilgan ma'lumotlardan. Ushbu xash quyidagi xususiyatlarga ega:

    • bir xil ma'lumotlar har doim bir xil xashni ishlab chiqaradi.
    • faqat xashdan xom ma'lumotlarni yaratish mumkin emas.
    • Xuddi shu xashni yaratishga harakat qilish uchun turli xil birikmalar kombinatsiyasini sinab ko'rish maqsadga muvofiq emas.

    Shunday qilib, xeshlashning ma'lumotlarni shifrlashning boshqa ikki shaklidan asosiy farqi shundaki, ma'lumotlar shifrlangan (xeshlangan) bo'lsa, uni asl shaklida qaytarib olish mumkin emas (parol hal qilingan). Bu haqiqat, xaker xeshga qo'l urgan taqdirda ham, u befoyda bo'lishini kafolatlaydi, chunki u xabar tarkibini parolini hal qila olmaydi.

    Message Digest 5 (MD5) va Secure Hashing Algorithm (SHA) - bu keng qo'llaniladigan ikkita xeshlash algoritmi.

    Cheklovlar

    Avval aytib o'tganimizdek, berilgan xashdan ma'lumotlarni parolini hal qilish deyarli mumkin emas. Biroq, bu faqat kuchli xeshlash amalga oshirilsa to'g'ri bo'ladi. Heshlash texnikasi zaif qo'llanilganda, etarli miqdordagi resurslardan va qo'pol kuch hujumlaridan foydalangan holda, doimiy xaker xashga mos keladigan ma'lumotlarni topishi mumkin.

    Shifrlash usullarining kombinatsiyasi

    Yuqorida muhokama qilinganidek, ushbu uchta shifrlash usulining har biri ba'zi kamchiliklarga duch keladi. Biroq, ushbu usullarning kombinatsiyasidan foydalanilganda, ular ishonchli va yuqori samarali shifrlash tizimini tashkil qiladi.

    Ko'pincha shaxsiy va ochiq kalit texnikasi birlashtiriladi va birgalikda qo'llaniladi. Shaxsiy kalit usuli tez shifrni ochishga imkon beradi, ochiq kalit usuli esa shaxsiy kalitni uzatishning xavfsiz va qulay usulini taklif qiladi. Ushbu texnikaning kombinatsiyasi raqamli konvert sifatida tanilgan. Shifrlash dasturi elektron pochta PGP raqamli konvert texnikasiga asoslangan.

    Hashing parolning mustahkamligini tekshirish vositasi sifatida ishlatiladi. Agar tizim parolning o'rniga parolning xashini saqlasa, u yanada xavfsizroq bo'ladi, chunki xaker bu xashga qo'lini tekkizsa ham, u uni tushunolmaydi (o'qiy olmaydi). Tekshirish paytida tizim kiruvchi parolning xashini tekshiradi va natijaning saqlangan narsaga mos kelishini tekshiradi. Shunday qilib, haqiqiy parol faqat uni o'zgartirish yoki tasdiqlash kerak bo'lgan qisqa vaqtlarda ko'rinadi, bu uning noto'g'ri qo'llarga tushib qolish ehtimolini sezilarli darajada kamaytiradi.

    Hash, shuningdek, maxfiy kalit bilan ma'lumotlarni tasdiqlash uchun ishlatiladi. Xash ma'lumotlar va ushbu kalit yordamida hosil bo'ladi. Shuning uchun faqat ma'lumotlar va xashlar ko'rinadi va kalitning o'zi uzatilmaydi. Shu tarzda, agar ma'lumotlarga yoki xashga o'zgartirishlar kiritilsa, ular osongina aniqlanadi.

    Xulosa qilib aytish mumkinki, ushbu texnikani xavfsizligini ta'minlashga imkon beradigan ma'lumotlarni o'qib bo'lmaydigan formatga samarali kodlash uchun ishlatish mumkin. Ko'pgina zamonaviy tizimlar odatda xavfsizlikni yaxshilash uchun kuchli algoritmlar bilan bir qatorda ushbu shifrlash texnikasining kombinatsiyasidan foydalanadilar. Xavfsizlikdan tashqari, ushbu tizimlar foydalanuvchi identifikatorini tekshirish va olingan ma'lumotlarni buzib bo'lmasligini ta'minlash kabi ko'plab qo'shimcha afzalliklarni ham beradi.

    21-asrda kriptografiya raqamli hayotda muhim rol o'ynaydi zamonaviy odamlar... Axborotni shifrlash usullarini qisqacha ko'rib chiqamiz.

    Kriptografiya shunchaki kompyuter narsalari emas

    Ehtimol, siz allaqachon asosiy kriptografiyaga duch kelgansiz va ehtimol ba'zi bir shifrlash usullarini bilasiz. Masalan, Qaysar shifridan ko'pincha bolalarning 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, tortib olmasligi uchun ma'lumotlarni xavfsiz saqlashingiz mumkin qattiq disk va bor 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_shifrlashdastlab "endi siz meni o'qiysiz!" degan satr edi, 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-saytlarga nisbatan, 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, yordamida satrni shaxsiy kalit bilan 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 xeshlashni unchalik yaxshi qilmaydi qulay usulda ma'lumotlarni saqlash, lekin ba'zi ma'lumotlarning yaxlitligini tekshirish uchun javob beradi.

    Funktsiya 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, xesh yordamida ma'lumotlarning yaxlitligini tekshirish uchun foydalanish mumkin.

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