Zamonaviy nosimmetrik kalit shifrlari asoslari bilan tanishtirish

Izoh: Ushbu ma'ruza bir nechta maqsadlarga ega. An'anaviy va o'rtasidagi farqni ko'rsating zamonaviy shifrlar nosimmetrik kalit bilan. 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. Oqim shifrlarini amalga oshirish uchun smenali registrlarning chiziqli va chiziqli teskari aloqalarini muhokama qiling.

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.

Ma'lumotlarni shifrlash maxfiylikni himoya qilish uchun juda muhimdir. Ushbu maqolada men haqida gaplashaman turli xil turlari va bugungi kunda ma'lumotlarni himoya qilishda ishlatiladigan shifrlash usullari.

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. Hozirgi 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. Ma'lumotlarning bu birlashtirilishi 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.

IN zamonaviy tizimlarah, kalit odatda kuchli paroldan yoki umuman tasodifiy manbadan olingan ma'lumotlar qatoridir. U nosimmetrik shifrlashga beriladi dasturiy ta'minotbu kirishni tasniflash uchun foydalanadi. 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 - bu 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 nosimmetrik kalitga o'xshash ishlaydi, chunki u uzatilgan xabarlarni shifrlash uchun kalitdan foydalanadi. Biroq, xuddi shu tugmachani ishlatish o'rniga, bu xabarni parolini hal qilish uchun mutlaqo boshqa tugmachani ishlatadi.

Shifrlash uchun ishlatiladigan kalit tarmoqdagi hamma va hamma 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 hal qilish 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 ochish 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 boshqa foydalanuvchi yoki xizmat bilan ma'lumotlarni xavfsiz almashtirish uchun ishlatiladigan ochiq kalit beriladi. Biroq, xakerlar hiyla-nayrang tarmoqlaridan foydalanib, ular bilan aloqa o'rnatishda aldanib, o'zingizni xavfsiz yo'nalishda ekanligingizga ishontirishga majbur qilmoqdalar.

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 oldi, 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 urinish 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) holda, uni asl shaklida qaytarib olish mumkin emas (shifrlangan). Bu haqiqat, xaker xashga qo'lini tushirib qo'ygan taqdirda ham, uning foydasiz bo'lishini kafolatlaydi, chunki u xabar tarkibini parolini hal qila olmaydi.

Message Digest 5 (MD5) va Secure Hashing Algorithm (SHA) ikkita keng tarqalgan ishlatiladigan xeshlash algoritmlari.

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 sust 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 xavfsizroq va boshqalarni taklif qiladi qulay usul maxfiy kalitni o'tkazish uchun. 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, 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 daqiqalarda 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.

Sergey Panasenko,
"Ankad" kompaniyasining dasturiy ta'minotni ishlab chiqish bo'limi boshlig'i,
[elektron pochta bilan himoyalangan]

Asosiy tushunchalar

Ochiq ma'lumotlarni shifrlangan va aksincha konvertatsiya qilish jarayoni odatda shifrlash deb ataladi va ushbu jarayonning ikkita komponenti mos ravishda shifrlash va parol hal qilish deb nomlanadi. Ushbu o'zgarish matematik jihatdan dastlabki ma'lumotlar bilan harakatlarni tavsiflovchi quyidagi bog'liqliklar bilan ifodalanadi:

S \u003d Ek1 (M)

M "\u003d Dk2 (C),

qaerda M (xabar) - ochiq ma'lumotlar (axborot xavfsizligi bo'yicha adabiyotlarda ko'pincha "manba kodi" deb nomlanadi);
C (shifr matni) - shifrlash natijasida olingan shifrlangan matn (yoki kriptogramma);
E (shifrlash) - asl matnda kriptografik o'zgarishlarni amalga oshiradigan shifrlash funktsiyasi;
k1 (kalit) - shifrlash kaliti deb ataladigan E funktsiya parametri;
M "- parolni hal qilish natijasida olingan ma'lumotlar;
D (parol hal qilish) - shifrlangan matn orqali teskari shifrlash kriptografik o'zgarishlarini amalga oshiradigan parolni hal qilish funktsiyasi;
k2 - bu ma'lumotni parolini hal qilish uchun ishlatiladigan kalit.

GOST 28147-89 standartidagi "kalit" tushunchasi (nosimmetrik shifrlash algoritmi) quyidagicha ta'riflanadi: "kriptografik o'zgartirish algoritmining ba'zi parametrlarining o'ziga xos maxfiy holati, bu barcha mumkin bo'lganlar to'plamidan bitta transformatsiyani tanlashni ta'minlaydi. ushbu algoritm Boshqa so'zlar bilan aytganda, kalit - bu noyob element bo'lib, u yordamida siz shifrlash algoritmining natijalarini o'zgartirishingiz mumkin: bir xil manba matni turli xil tugmachalardan foydalanishda har xil usullar bilan shifrlanadi.

Parolni echish natijasi dastlabki xabarga to'g'ri kelishi uchun (ya'ni M "\u003d M uchun) bir vaqtning o'zida ikkita shart bajarilishi kerak. Birinchidan, parol hal qilish funktsiyasi D shifrlash funktsiyasiga to'g'ri kelishi kerak. Ikkinchidan, k2 parolini ochish tugmasi mos kelishi kerak. shifrlash kaliti k1.

Agar shifrlash uchun kriptografik jihatdan kuchli shifrlash algoritmi ishlatilgan bo'lsa, unda to'g'ri k2 tugmachasi bo'lmagan taqdirda, M "\u003d M. ni olish mumkin emas. Kriptografik kuch shifrlash algoritmlarining asosiy xarakteristikasi bo'lib, birinchi navbatda k2 kalitisiz asl matnni shifrlashdan olishda qiyinchilik darajasini ko'rsatadi.

Shifrlash algoritmlarini ikkita toifaga bo'lish mumkin: nosimmetrik va assimetrik shifrlash... Birinchisi uchun shifrlash va parol hal qilish tugmachalarining nisbati k1 \u003d k2 \u003d k (ya'ni, E va D funktsiyalarida bir xil shifrlash kaliti ishlatiladi) deb belgilanadi. Asimmetrik shifrlashda k1 shifrlash kaliti k2 tugmachasi yordamida teskari konvertatsiya qilish imkonsiz bo'ladigan tarzda hisoblanadi, masalan, k1 \u003d ak2 mod p formulasi bilan (a va p ishlatiladigan algoritm parametrlari).

Nosimmetrik shifrlash

Simmetrik shifrlash algoritmlari qadimgi davrlardan beri o'z tarixiga ega: ma'lumotni yashirishning bu usuli miloddan avvalgi I asrda Rim imperatori Gay Yuliy Tsezar tomonidan qo'llanilgan. e., va u tomonidan ixtiro qilingan algoritm "Qaysarning kriptosistemasi" nomi bilan tanilgan.

Hozirda eng mashhuri 1977 yilda ishlab chiqilgan DES (Data Encryption Standard) nosimmetrik shifrlash algoritmi. Yaqin vaqtgacha u "AQSh standarti" edi, chunki ushbu mamlakat hukumati undan foydalanishni tavsiya qilgan turli xil tizimlar ma'lumotlarni shifrlash. Dastlab DESni 10-15 yildan ortiq bo'lmagan muddatda ishlatish rejalashtirilganligiga qaramay, uni almashtirishga urinishlar faqat 1997 yilda boshlangan.

Biz DESni batafsil yoritmaymiz (qo'shimcha materiallar ro'yxatidagi deyarli barcha kitoblarda mavjud) batafsil tavsif) va zamonaviyroq shifrlash algoritmlariga o'ting. Shuni ta'kidlash kerakki, shifrlash standartini o'zgartirishning asosiy sababi uning nisbatan zaif kriptografik kuchidir, buning sababi DES tugmachasining uzunligi atigi 56 ga teng. muhim bitlar... Ma'lumki, har qanday kriptografik jihatdan kuchli algoritm shifrlash kalitlarining barcha mumkin bo'lgan variantlarini sinab ko'rish orqali buzilishi mumkin (qo'pol kuch usuli deb ataladigan narsa - qo'pol kuch hujum). Hisoblash oson, har biri soniyasiga 1 million tugmachani hisoblab chiqadigan 1 million protsessordan iborat klaster deyarli 20 soat ichida 256 DES tugmachasini tekshiradi va bunday hisoblash quvvati bugungi kun me'yorlariga ko'ra haqiqat ekan, 56 bitli kalit juda qisqa ekanligi aniq va dES algoritmi kuchliroq bilan almashtirilishi kerak.

Bugungi kunda ikkita zamonaviy kriptografik kuchli shifrlash algoritmlari tobora ko'proq qo'llanilmoqda: mahalliy standart GOST 28147-89 va AQShning yangi kripto standarti - AES (Advanced Encryption Standard).

GOST 28147-89 standarti

GOST 28147-89 tomonidan belgilangan algoritm (1-rasm) shifrlash kaliti uzunligi 256 bitga teng. U ma'lumotlarni 64 bitli bloklarda shifrlaydi (bunday algoritmlar blok algoritmlari deb ataladi), keyinchalik ular 32 bitli (N1 va N2) ikkita kichik bloklarga bo'linadi. N1 pastki blok ma'lum bir usulda qayta ishlanadi, shundan so'ng uning qiymati N2 subblok qiymatiga qo'shiladi (qo'shimcha 2 modul bilan amalga oshiriladi, ya'ni XOR mantiqiy operatsiyasi - "eksklyuziv yoki" qo'llaniladi), so'ngra pastki bloklar almashtiriladi. Ushbu o'zgarish algoritmning ishlash rejimiga qarab ma'lum bir necha marta ("dumaloqlar") bajariladi: 16 yoki 32. Har bir turda ikkita operatsiya o'tkaziladi.

Birinchisi - bu asosiy qoplama. N1 kichik blok tarkibiga Kx tugmachasining 32 bitli qismi bilan 2 modul qo'shiladi. To'liq kalit shifrlash 32-bitli pastki tugmachalarning birikmasi sifatida ifodalanadi: K0, K1, K2, K3, K4, K5, K6, K7. Shifrlash jarayonida dumaloq raqamga va algoritmning ishlash rejimiga qarab ushbu pastki kalitlardan biri ishlatiladi.

Ikkinchi operatsiya - stolni almashtirish. Kalit qo'llanilgandan so'ng, N1 kichik blok 4 bitdan iborat 8 qismga bo'linadi, ularning har birining qiymati pastki blokning ushbu qismi uchun almashtirish jadvaliga muvofiq almashtiriladi. Keyin kichik blok 11 bitga chap tomonga siljiydi.

Jadvalni almashtirish(Substitution box - S-box) zamonaviy shifrlash algoritmlarida tez-tez ishlatiladi, shuning uchun bunday operatsiya qanday tashkil etilganligini tushuntirishga arziydi. Bloklarning chiqish qiymatlari jadvalga yozilgan. Ma'lum o'lchamdagi ma'lumotlar bloki (bizning holatimizda, 4-bit) chiqadigan qiymatning sonini belgilaydigan o'z raqamli ko'rinishiga ega. Masalan, agar S-box 4, 11, 2, 14, 15, 0, 8, 13, 3, 12, 9, 7, 5, 10, 6, 1 va 4-bitli bloklarga "0100" etib kelgan bo'lsa (qiymat 4), keyin jadvalga muvofiq chiqish qiymati 15 ga teng bo'ladi, ya'ni "1111" (0 a 4, 1 a 11, 2 a 2 ...).

GOST 28147-89 tomonidan belgilangan algoritm to'rtta ish rejimini ta'minlaydi: oddiy almashtirish, gamming, gamming mulohaza va simulyatorlarni yaratish. Ular yuqorida tavsiflangan bir xil shifrlash transformatsiyasidan foydalanadilar, ammo rejimlarning maqsadi turlicha bo'lganligi sababli, bu konvertatsiya ularning har birida turlicha amalga oshiriladi.

Rejimda oddiy almashtirishhar bir 64 bitli ma'lumot blokini shifrlash uchun yuqorida tavsiflangan 32 ta tur bajariladi. Bunday holda, 32-bitli pastki tugmalar quyidagi ketma-ketlikda ishlatiladi:

K0, K1, K2, K3, K4, K5, K6, K7, K0, K1 va boshqalar - 1 dan 24 gacha bo'lgan turlarda;

K7, K6, K5, K4, K3, K2, K1, K0 - 25 dan 32 gacha bo'lgan turlarda.

Shifrni ochish ushbu rejim xuddi shu tarzda, lekin pastki tugmachalardan foydalanishning biroz boshqacha ketma-ketligi bilan amalga oshiriladi:

K0, K1, K2, K3, K4, K5, K6, K7 - 1 dan 8 gacha bo'lgan turlarda;

K7, K6, K5, K4, K3, K2, K1, K0, K7, K6 va boshqalar - 9 dan 32 gacha bo'lgan turlarda.

Barcha bloklar bir-biridan mustaqil ravishda shifrlanadi, ya'ni har bir blokning shifrlash natijasi faqat uning tarkibiga bog'liq (manba matnining mos keladigan bloki). Agar asl (oddiy) matnning bir nechta bir xil bloklari bo'lsa, tegishli shifrlangan matn bloklari ham bir xil bo'ladi, bu qo'shimcha beradi foydali ma'lumotlar kodni buzishga urinayotgan kriptanalizator uchun. Shuning uchun bu rejim asosan shifrlash kalitlarini o'zi shifrlash uchun ishlatiladi (ko'pincha bir nechta sabablarga ko'ra kalitlar bir-birining ustiga shifrlangan ko'p kalitli sxemalar amalga oshiriladi). Axborotni o'zi shifrlash uchun yana ikkita ishlash tartibi mo'ljallangan - teskari aloqa bilan gamming va gamming.

IN gamma rejimi oddiy matnning har bir blokiga 64-bitli shifrli gamma-blok bilan modul 2 qo'shiladi. Gamma shifr - bu N1 va N2 registrlari bilan muayyan operatsiyalar natijasida olingan maxsus ketma-ketlik (1-rasmga qarang).

1. N1 va N2 registrlarida ularning dastlabki to'ldirilishi yozilgan - 64-bitli qiymat, sinxronizatsiya portlashi deb nomlanadi.

2. N1 va N2 registrlarining tarkibi oddiy almashtirish rejimida shifrlangan (bu holda xabarlarni sinxronlashtirish).

3. N1 registri tarkibiga doimiy (C1 \u003d 224 + 216 + 28 + 24) modul (232 - 1) qo'shiladi va qo'shilish natijasi N1 registrga yoziladi.

4. N2 registrning tarkibi 232 moduli bilan doimiy C2 \u003d 224 + 216 + 28 + 1 bilan qo'shiladi va qo'shilish natijasi N2 registriga yoziladi.

5. N1 va N2 registrlarining tarkibi shifr gammasining 64 bitli bloki sifatida chiqariladi (bu holda N1 va N2 gammaning birinchi blokini tashkil qiladi).

Agar navbatdagi gamma bloki kerak bo'lsa (ya'ni, shifrlashni yoki parolni hal qilishni davom ettirishingiz kerak bo'lsa), siz 2-bosqichga qaytasiz.

Parolni hal qilish uchun gamma xuddi shu tarzda hosil bo'ladi, keyin yana XOR operatsiyasi shifrlangan va gamma-bitlarga qo'llaniladi. Ushbu operatsiyani qaytarish mumkin bo'lganligi sababli, to'g'ri ishlab chiqilgan o'lchovda asl matn (jadval) olinadi.

Gama rejimida shifrlash va parolni hal qilish

Parolni hal qilish uchun kerakli shifr gamutini yaratish uchun kriptogrammani parolini hal qilgan foydalanuvchi bir xil kalit va ma'lumotni shifrlash uchun ishlatilgan sinxron-xabar qiymatiga ega bo'lishi kerak. Aks holda, shifrlangan matndan asl nusxasini olish mumkin bo'lmaydi.

GOST 28147-89 algoritmining aksariyat dasturlarida sinxronlash xabari sir emas, ammo sinxronlash xabari shifrlash kaliti bilan bir xil maxfiy element bo'lgan tizimlar mavjud. Bunday tizimlar uchun algoritm kalitining samarali uzunligi (256 bit) maxfiy sinxronlash xabarining yana 64 bitiga ko'payadi, bu ham asosiy element sifatida qaralishi mumkin.

Qayta aloqa bilan gamma holatida, 2-blokdan boshlab N1 va N2 registrlarini to'ldirish uchun avvalgi gamma blok emas, balki avvalgi oddiy matnli blokni shifrlash natijasi ishlatiladi (2-rasm). Ushbu rejimdagi birinchi blok butunlay oldingisiga o'xshash tarzda yaratiladi.

Shakl: 2. Teskari gamma rejimida shifr shkalasini yaratish.

Rejimni hisobga olgan holda simulyatorlar avlodi, avlod mavzusining kontseptsiyasi aniqlanishi kerak. Prefiks - bu xabarlarning yaxlitligini tekshirish uchun shifrlash kaliti yordamida hisoblangan kriptografik nazorat summasi. Prefiksni yaratishda quyidagi amallar bajariladi: prefiks hisoblangan ma'lumot massivining birinchi 64-bitli bloki N1 va N2 registrlariga yoziladi va oddiy almashtirishning qisqartirilgan rejimida shifrlanadi (32 ta birinchi 16 tur bajariladi). Olingan natija 2-modul bilan keyingi ma'lumotlar bloki bilan yig'ilib, natijani N1 va N2-da saqlaydi.

Tsikl oxirgi ma'lumot blokiga qadar takrorlanadi. Olingan N1 va N2 registrlarining 64-bitli tarkibi yoki uning bir qismi, bu konvertatsiyalar natijasida hosil bo'ladi, prefiks deb ataladi. Prefiksning kattaligi talab qilinadigan xabarning ishonchliligi asosida tanlanadi: r bitli prefiksning uzunligi bilan xabar o'zgarishi sezilmasdan qolishi ehtimoli 2-r ni tashkil qiladi, ko'pincha 32-bitli prefiks ishlatiladi, ya'ni registr tarkibining yarmi. Bu etarli, chunki har qanday chegara summasi singari, simulyator ham birinchi navbatda ma'lumotlarning tasodifiy buzilishidan himoya qilish uchun mo'ljallangan. Ma'lumotlarni qasddan o'zgartirishdan himoya qilish uchun boshqa kriptografik usullar, birinchi navbatda elektron raqamli imzo qo'llaniladi.

Axborot almashish paytida simulyator qo'shimcha nazorat vositasi bo'lib xizmat qiladi. Ba'zi ma'lumotlar shifrlangan va shifrlangan matn bilan birga yuborilganida, u oddiy matn uchun hisoblanadi. Shifrni echishdan so'ng, yangi prefiks qiymati hisoblanadi, u yuborilgan bilan taqqoslanadi. Agar qiymatlar mos kelmasa, demak, uzatish paytida shifrlangan matn buzilgan yoki parol hal qilinayotganda noto'g'ri tugmalar ishlatilgan. Prefiks, ayniqsa, parolni hal qilishning to'g'riligini tekshirish uchun foydalidir asosiy ma'lumotlar ko'p kalitli sxemalardan foydalanganda.

GOST 28147-89 algoritmi juda kuchli algoritm hisoblanadi - hozirgi paytda uni oshkor qilish uchun hozircha taklif qilinmagan. samarali usullaryuqorida aytib o'tilgan "qo'pol kuch" usulidan ko'ra. Uning yuqori xavfsizligiga birinchi navbatda kalitning katta uzunligi - 256 bit tufayli erishiladi. Yashirin sinxronlash xabaridan foydalanganda samarali kalit uzunligi 320 bitgacha oshiriladi va almashtirish jadvalining maxfiyligi qo'shimcha bitlarni qo'shadi. Bundan tashqari, kriptografik kuch transformatsiyalar turlarining soniga bog'liq bo'lib, ulardan GOST 28147-89 ga binoan 32 bo'lishi kerak (kirish ma'lumotlarining dispersiyasining to'liq samarasi 8 turdan so'ng amalga oshiriladi).

AES standarti

Uzoq vaqt davomida maxfiy bo'lib qolgan GOST 28147-89 algoritmidan farqli o'laroq, Amerika standarti aES shifrlashDES o'rnini bosuvchi, ochiq tanlov orqali tanlandi, unda barcha manfaatdor tashkilotlar va shaxslar algoritm-abituriyentlarni o'rganish va sharhlashlari mumkin edi.

DES o'rnini bosuvchi tanlov 1997 yilda AQSh Milliy Standartlar va Texnologiyalar Instituti (NIST) tomonidan e'lon qilingan. Kriptografiya sohasida taniqli tashkilotlar (RSA Security, Counterpane va boshqalar) tomonidan ham, jismoniy shaxslar tomonidan ham ishlab chiqilgan 15 ta algoritm-da'vogarlar taqdim etildi. Tanlov natijalari 2000 yil oktyabr oyida e'lon qilindi: Belgiyadan ikki kriptograf - Vinsent Raymen va Joan Daemen tomonidan ishlab chiqilgan Rijndael algoritmi g'olib bo'ldi.

Rijndael algoritmi taniqli nosimmetrik shifrlash algoritmlarining ko'pchiligiga o'xshamaydi, ularning tuzilishi "Feistel tarmog'i" deb nomlanadi va Rossiyaning GOST 28147-89 ga o'xshashdir. Feistel tarmog'ining o'ziga xos xususiyati shundaki, kirish qiymati ikki yoki undan ortiq subbloklarga bo'linadi, ularning ba'zilari ma'lum bir qonun bo'yicha har bir turda qayta ishlanadi, so'ngra ishlov berilmagan subbloklarga joylashtiriladi (1-rasmga qarang).

Mahalliy shifrlash standartidan farqli o'laroq, Rijndael algoritmi ma'lumotlar blokini 4X4, 4X6 yoki 4X8 o'lchamdagi ikki o'lchovli baytlar qatori shaklida taqdim etadi (shifrlangan axborot blokining bir nechta belgilangan o'lchamlariga ruxsat beriladi). Barcha operatsiyalar massivning alohida baytlarida, shuningdek mustaqil ustunlar va qatorlarda bajariladi.

Rijndael algoritmi to'rtta transformatsiyani amalga oshiradi: BS (ByteSub) - massivning har bir baytini jadvalga almashtirish (3-rasm); SR (ShiftRow) - qator qatorlarining siljishi (4-rasm). Ushbu operatsiyani bajarish paytida birinchi satr o'zgarishsiz qoladi, qolganlari esa massivning kattaligiga qarab baytlarning sobit soniga chapga siljiydi. Masalan, 4X4 qatori uchun 2, 3 va 4 qatorlar mos ravishda 1, 2 va 3 baytga siljiydi. Keyinchalik MC (MixColumn) keladi - bu massivning mustaqil ustunlaridagi operatsiya (5-rasm), har bir ustunni ma'lum bir qoidaga muvofiq sobit matritsa (x) bilan ko'paytirganda. Va nihoyat, AK (AddRoundKey) - kalitni qo'shish. Massivning har bir bitiga dumaloq tugmachaning mos keladigan biti bilan 2-modul qo'shiladi, bu esa o'z navbatida shifrlash tugmachasidan ma'lum tarzda hisoblab chiqiladi (6-rasm).


Shakl: 3. BS operatsiyasi.

Shakl: 4. SR operatsiyasi.

Shakl: 5. MC operatsiyasi.

Rijndael algoritmidagi shifrlash turlarining soni (R) o'zgaruvchan (10, 12 yoki 14 tur) va blok kattaligiga va shifrlash kalitiga bog'liq (shuningdek, kalit uchun bir nechta aniq o'lchamlar mavjud).

Shifrni echish quyidagi teskari operatsiyalar yordamida amalga oshiriladi. Jadval teskari bo'lib, jadvalni almashtirish teskari jadvalda amalga oshiriladi (shifrlash uchun ishlatiladiganga nisbatan). SR ning teskari tomoni qatorlarni chapga emas, balki o'ngga aylantirishdir. MC uchun teskari operatsiya - bu xuddi shu qoidalar bo'yicha shartni qondiradigan boshqa d (x) matritsa bilan ko'paytirish: c (x) * d (x) \u003d 1. AK tugmachasini qo'shish o'z-o'zidan teskari, chunki u faqat XOR operatsiyasidan foydalanadi. Ushbu teskari operatsiyalar shifrlash paytida shifrlash paytida ishlatilgan tartibda teskari tartibda qo'llaniladi.

Rijndael boshqa algoritmlarga nisbatan bir qator afzalliklari tufayli ma'lumotlarni shifrlashning yangi standartiga aylandi. Avvalo, u barcha platformalarda yuqori tezlikda shifrlashni ta'minlaydi: dasturiy ta'minotda ham, apparatni amalga oshirishda ham. Bu tanlov uchun taqdim etilgan boshqa algoritmlar bilan taqqoslaganda hisoblashlarni parallellashtirishning eng yaxshi imkoniyatlari bilan ajralib turadi. Bundan tashqari, uning ishlashi uchun resurslarga bo'lgan talablar minimaldir, bu uni hisoblash qobiliyatlari cheklangan qurilmalarda qo'llashda muhim ahamiyatga ega.

Algoritmning birdan-bir kamchiligi uning o'ziga xos noan'anaviy sxemasidir. Haqiqat shundaki, Feistel tarmog'iga asoslangan algoritmlarning xususiyatlari yaxshi o'rganilgan va Rijndael, aksincha, yashirin zaifliklarni o'z ichiga olishi mumkin, uni faqat keng tarqalgandan beri bir muncha vaqt o'tgach topish mumkin.

Asimmetrik shifrlash

Yuqorida ta'kidlab o'tilganidek, assimetrik shifrlash algoritmlari ikkita tugmachadan foydalanadi: k1 - shifrlash kaliti yoki umumiy, k2 - bu parolni hal qilish kaliti yoki sir. Ochiq kalit sirdan hisoblangan: k1 \u003d f (k2).

Asimmetrik shifrlash algoritmlari bir tomonlama funktsiyalardan foydalanishga asoslangan. Y \u003d f (x) funktsiya ta'rifi bo'yicha bir yo'nalishli bo'ladi, agar: hamma uchun hisoblash oson mumkin bo'lgan variantlar $ x $ va $ y $ ning mumkin bo'lgan qiymatlari uchun $ y \u003d f (x) $ uchun x ning bunday qiymatini hisoblash juda qiyin.

Ikki katta sonni ko'paytirish: N \u003d P * Q. Bir tomonlama funktsiyaga misol. Ushbu ko'paytirishning o'zi oddiy operatsiya. Ammo, faktorizatsiya deb ataladigan teskari funktsiya (N ning ikkita katta omilga ajralishi) zamonaviy zamon taxminlariga ko'ra ancha murakkab matematik muammo. Masalan, P da 664 bitli faktoring N? Q uchun taxminan 1023 ta operatsiya talab qilinadi va $ a, p $ va $ y $ ma'lum bo'lgan ($ a $ va $ p $ o'lchovlari bilan) modulli y \u003d ax mod p ko'rsatkichi uchun $ x $ ni qaytarish uchun taxminan 1026 ta operatsiya kerak bo'ladi. Ushbu misollarning oxirgisi Diskret Logaritma Muammosi (DLP) deb nomlanadi va bunday funktsiya ko'pincha assimetrik shifrlash algoritmlarida, shuningdek elektron raqamli imzolarni yaratish uchun ishlatiladigan algoritmlarda qo'llaniladi.

Asimmetrik shifrlashda ishlatiladigan yana bir muhim funktsiya sinfi - bu orqa eshikli bir tomonlama funktsiyalar. Ularning ta'rifida ta'kidlanishicha, funktsiya maxfiy yo'l bilan bir tomonlama bo'lib, agar u bir yo'nalishli bo'lsa va teskari funktsiyani x \u003d f-1 (y) ni samarali hisoblash mumkin bo'lsa, ya'ni "maxfiy o'tish" ma'lum bo'lsa (ma'lum bir maxfiy raqam, qo'llanilganda assimetrik shifrlash algoritmlari - maxfiy kalit qiymati).

Orqa eshikning bir yo'nalishli funktsiyalari mashhur RSA assimetrik shifrlash algoritmida qo'llaniladi.

RSA algoritmi

1978 yilda uchta muallif (Rivest, Shamir, Adleman) tomonidan ishlab chiqilgan bo'lib, u o'z nomini ishlab chiquvchilar familiyalarining birinchi harflaridan oldi. Algoritmning ishonchliligi katta sonlarni faktorizatsiya qilish va diskret logarifmlarni hisoblashning murakkabligiga asoslanadi. RSA algoritmining asosiy parametri N tizim moduli bo'lib, unga ko'ra tizimdagi barcha hisob-kitoblar amalga oshiriladi va N \u003d P * Q (P va Q maxfiy tasodifiy oddiy sonlar, odatda bir xil o'lchamdagi).

K2 maxfiy kaliti tasodifiy tanlanadi va quyidagi shartlarga javob berishi kerak:

1

bu erda GCD eng katta umumiy bo'luvchi, ya'ni k1 Eyler funktsiyasi qiymati bilan tenglashtirilgan bo'lishi kerak F (N), ikkinchisi 1 dan N gacha bo'lgan oraliqdagi musbat tamsayılar soniga teng, N bilan koprime va quyidagicha hisoblanadi. F (N) \u003d (P - 1) * (Q - 1).

K1 ochiq kaliti aloqadan hisoblanadi (k2 * k1) \u003d 1 mod F (N)va buning uchun umumlashtirilgan Evklid algoritmi (eng katta umumiy bo'luvchini hisoblash algoritmi) ishlatiladi. Ma'lumotlar bloki RSA algoritmi yordamida quyidagicha shifrlanadi: C \u003d M [k1 kuchiga] mod N... RSA-dan foydalangan holda haqiqiy kriptosistemada k1 soni juda katta bo'lganligi sababli (hozirgi vaqtda uning hajmi 2048 bitga yetishi mumkin), to'g'ridan-to'g'ri hisoblash M [k1 kuchiga] real bo'lmagan. Uni olish uchun natijalarni ko'paytirish bilan M kvadratini ko'paytirishning kombinatsiyasi qo'llaniladi.

Ushbu funktsiyani teskari yo'naltirish katta o'lchamlar uchun mumkin emas; boshqacha qilib aytganda, ma'lum bo'lgan C, N va k1 dan M ni topish mumkin emas. Biroq, oddiy o'zgarishlardan foydalanib, k2 maxfiy kaliti mavjud bo'lib, biz M \u003d Ck2 mod N ni hisoblashimiz mumkin. Shubhasiz, maxfiy kalitning o'zi bilan bir qatorda, P va Q parametrlarining maxfiyligini ta'minlash kerak. Agar tajovuzkor ularning qiymatlarini oladigan bo'lsa, u k2 maxfiy kalitini hisoblashi mumkin bo'ladi.

Qaysi shifrlash yaxshiroq?

Nosimmetrik shifrlashning asosiy kamchiligi - tugmachalarni "qo'ldan qo'lga" uzatish zaruriyati. Ushbu kamchilik juda jiddiy, chunki cheklanmagan miqdordagi ishtirokchilari bo'lgan tizimlarda nosimmetrik shifrlashni qo'llash mumkin emas. Biroq, nosimmetrik shifrlashning qolgan qismi ba'zi bir afzalliklarga ega bo'lib, ular assimetrik shifrlashning jiddiy kamchiliklari fonida aniq ko'rinadi.

Ulardan birinchisi - bu resurslarni talab qiladigan operatsiyalar mavjudligi sababli shifrlash va parol hal qilish operatsiyalarining past tezligi. Yana bir "nazariy" nuqson shundaki, assimetrik shifrlash algoritmlarining kriptografik kuchi matematik jihatdan isbotlanmagan. Bu, avvalambor, diskret logaritma muammosi bilan bog'liq - hozirgacha uni oqilona vaqt ichida hal qilishning iloji yo'qligini isbotlashning iloji bo'lmadi. Keraksiz qiyinchiliklar, shuningdek, ochiq kalitlarni almashtirishdan himoya qilish zarurati tufayli yuzaga keladi - qonuniy foydalanuvchining ochiq kalitini o'zgartirib, tajovuzkor muhim xabarni o'zining ochiq kalitiga shifrlashi va keyinchalik uni shaxsiy kaliti bilan osonlikcha parolini hal qilishi mumkin.

Shunga qaramay, ushbu kamchiliklar assimetrik shifrlash algoritmlaridan keng foydalanishga to'sqinlik qilmaydi. Kriptosistemalar bugungi kunda ochiq kalitlarni sertifikatlashni qo'llab-quvvatlaydi, shuningdek simmetrik va assimetrik shifrlash algoritmlarini birlashtiradi. Ammo bu allaqachon alohida maqola uchun mavzu.

Qo'shimcha ma'lumot manbalari

Shifrlashga qiziqqan o'quvchilar uchun muallif quyidagi kitoblar yordamida o'z ufqlarini kengaytirishni tavsiya qiladi.

  1. Brassard J. "Zamonaviy kriptologiya".
  2. Petrov A. A. "Kompyuter xavfsizligi: himoya qilishning kriptografik usullari".
  3. Romanets Yu. V., Timofeev PA, Shangin VF "Zamonaviy kompyuter tizimlarida axborotni muhofaza qilish".
  4. Sokolov A. V., Shangin V. F. "Tarqatilgan korporativ tarmoqlar va tizimlarda axborot xavfsizligi".

Shifrlash algoritmlarining to'liq tavsifini quyidagi hujjatlarda topishingiz mumkin:

  1. GOST 28147-89. Axborotni qayta ishlash tizimi. Kriptografik himoya. Kriptografik o'zgartirish algoritmi. - M.: Gosstandart SSSR, 1989 y.
  2. AES algoritmi: http://www.nist.gov/ae.
  3. RSA algoritmi: http://www.rsasecurity.com/rsalabs/pkcs/pkcs-1.

So'nggi marta siz ajoyib va \u200b\u200bdahshatli mahalliy shifrlarni uchratdingiz. Bu juda qiyin dars edi, chunki bu kriptotizimlar davlat sirlarini qo'riqlaydi. Ayting-chi, qanchalik murakkabroq? Va mana, iltimos! Darhaqiqat, qo'rqmang, bu safar biz matematikaga chuqur singib ketmaymiz va shifrlash rejimlarini ko'rib chiqamiz - ularning printsiplarini allaqachon o'zlashtirgansiz (yaxshi yoki o'rganilmagan). Keling, eng yaxshi xorijiy shifrlarni ko'rib chiqamiz va ularning amalda qanday ishlatilishini ko'rib chiqamiz.

Yo'l xaritasi

Bu Crypt Dive turkumidagi to'rtinchi dars. Tsiklning barcha darslari xronologik tartibda:

  • Asoslar va tarixiy skramblerlar. Shift, Almashtirish, Richard Sorge, Vernam Ciphers va Cipher Machines qanday ishlaydi (va tahlil qiladi)
  • Bu nima, kalitlarni taqsimlash qanday amalga oshiriladi va kriptografik jihatdan kuchli kalitni qanday tanlash kerak
  • Feistel tarmog'i nima va zamonaviy protokollarda ishlatiladigan ichki blok shifrlari qanday - GOST 28147-89, "Grasshopper"
  • 4-dars. Zamonaviy xorijiy shifrlar. Bryus Shnayerning 3DES, AES, Blowfish, IDEA, Threefish o'rtasidagi farq nima va ular qanday ishlaydi (Shu yerdamisan)
  • Elektron imzo turlari, ularning ishlashi va ulardan qanday foydalanish
  • 6-dars. Kvantli kriptografiya. Bu nima, qaerda ishlatiladi va qanday qilib maxfiy kalitlarni tarqatishda, tasodifiy raqamlar va elektron imzolarni yaratishda yordam beradi

3DES

Shunday qilib, biz chet el shifrlari qatorida birinchi bo'lib biz 3DESni, aniqrog'i u endi ishlatilmasa ham, 3DES ning ajdodi bo'lgan uning eng yaqin qarindoshi DESni (Ma'lumotlarni shifrlash standarti) ko'rib chiqamiz.

DES IBM tadqiqot laboratoriyasida matematiklar jamoasi tomonidan ishlab chiqilgan bo'lib, uning tarkibiga allaqachon tanish bo'lgan Feystel kiritilgan. Shifrning birinchi versiyasi "Lusifer" deb nomlangan, ammo keyinchalik u o'zgartirilgan va natijada ma'lumotlarni shifrlashning rasmiy algoritmi (DEA) sifatida qabul qilingan. Yigirma yildan ko'proq vaqt davomida u Triple DES bilan almashtirilguncha global standart bo'lib qoldi.

Keling, DES shifrlash algoritmi qanday ishlashini ko'rib chiqamiz. Buning uchun Feistel tarmog'ining ishini esga olish kerak. DES - bu nosimmetrik shifrlash kalitlariga ega 16-turli Feistel tarmog'i. Matn blokining uzunligi 64 bit, dumaloq tugmachaning uzunligi 48 bit. Shunday qilib, DES shifrlashning asosiy bosqichlaridan o'tib, qattiq matematik tomonni qoldirib chiqamiz:

  1. Matn, boshqa har qanday shifrlash singari, 64 bitli bloklarga bo'lingan.
  2. 16-bitli 16 yumaloq tugmachalar 56-bitli tugmachadan hosil bo'ladi.
  3. Har bir blokga ruxsat beriladi, ya'ni ma'lum bir jadvalga muvofiq kirish blokining barcha bitlari aralashtiriladi.
  4. Blok ikkiga bo'linib, taniqli Feistel tarmog'iga kiradi, u erda 16 tur o'raladi.
  5. Biz yarmlarni birlashtiramiz.
  6. Va yana bitta almashtirish.

Dastlabki va yakuniy almashtirishlarning DES kriptografiyasi uchun ma'nosi yo'q. Ikkala almashtirish ham kalitsiz va ular uchun jadvallar oldindan belgilangan. Ularning DESga kiritilishining sababi aniq emas va DES dizaynerlari bu haqda hech narsa demadilar. Algoritmni apparatda (mikrosxemalarda) amalga oshirish rejalashtirilgan deb taxmin qilish mumkin va bu ikkita murakkab almashtirish, dasturiy ta'minotda shifrlash mexanizmini simulyatsiya qilishni qiyinlashtirishi kerak edi.

DES haqida bilishingiz kerak bo'lgan hamma narsalar. Agar siz Feistel tarmog'ida aniqlangan funktsiya qanday ishlashini ko'rib chiqsangiz, unda hamma narsa yaxshi. U almashtirishni ham, almashtirishni ham (avvalgi maqoladan eslayotganingizdek S-qutilar) va yumaloq kalit bilan qo'shib bajaradi.

Ammo uch karra DES yoki Uch karra DES-ga qaytish. Bunga ehtiyoj paydo bo'ldi, chunki 56-bitli DES kaliti qo'pol kuchga qarshi bo'lib, hisoblash quvvatining o'sishi bilan bu muammo tobora keskinlashib bormoqda. Bugungi kunda mavjud bo'lgan texnologiyadan foydalanib, soniyada bir million kalitni tekshirish mumkin. Bu shuni anglatadiki, faqat bitta protsessorli kompyuter yordamida DES kodini parolini parchalash uchun ikki ming yildan ko'proq vaqt kerak bo'ladi.

Ammo biz kalitlarni parallel ravishda qayta ishlaydigan million protsessor yadrosi bo'lgan kompyuterni olsak, taxminan 20 soat ichida butun tugmalar to'plamini tekshirishimiz mumkin. DES taqdim etilganda, bunday kompyuterning narxi bir necha million dollarni tashkil etgan, ammo u tezda pasayib ketgan. Maxsus kompyuter 1998 yilda yaratilgan - va kalitni 112 soat ichida topdi.

Kalitni tezda topish muammosini hal qilish uchun aqlli xorijiy kriptograflar ikkita kalitdan foydalanishni va DES-dan ikki marta foydalanishni taklif qilishdi. Biroq, er-xotin DES o'rtada kutib olinadigan hujumga qarshi himoyasiz bo'lib chiqdi. Ushbu hujumni amalga oshirish uchun tajovuzkor aniq va mos keladigan shifrlangan matnga ega bo'lishi kerak. Hujumchi barcha mumkin bo'lgan tugmachalar yordamida aniq matnni shifrlaydi va natijalarni 1-jadvalga yozadi. So'ngra barcha mumkin bo'lgan kalitlar bilan shifrlangan matnni parolini ochadi va natijani 2-jadvalga yozadi. So'ngra tajovuzkor 1 va 2-jadvallarda gugurt qidiradi.

Hujumning bu turi shifrlangan va ochiq matnning yon tomonidagi tugmachalarni sanashdan iborat bo'lib, oddiy DES tugmachasini hisoblashdan to'rt barobar ko'proq hisoblashni va oraliq natijalarni saqlash uchun juda ko'p xotirani talab qiladi. Biroq, amalda, hujumni amalga oshirish mumkin, bu esa Double DES algoritmini yaroqsiz holga keltiradi.

Triple DES bilan vaziyat butunlay boshqacha. Uchta kalitdan foydalanish va algoritmlarni diagrammada ko'rsatilgan ketma-ketlikda qo'llash DESning ishlash muddatini yana bir necha yilga uzaytirdi.


Ajoyib DES

Xo'sh, DES haqida juda yaxshi narsa nima? Ushbu shifrlash algoritmi to'liq tahlil qilindi. DES blok shifrlarining ikkita juda muhim sifatiga ega edi - toshqin va to'liqlik. Kriptografik so'z boyligingizni kengaytirish vaqti keldi!
Ko'chki effekti manba matnidagi (yoki kalitdagi) kichik o'zgarishlar shifrlangan matnda sezilarli o'zgarishlarga olib kelishi mumkinligini anglatadi.

DES ushbu xususiyatning barcha xususiyatlariga ega ekanligi isbotlangan.

Dastlabki matnning ikkita bloki faqat o'ng tomondagi bit bilan mos kelmasa ham, shifrlangan matn bloklari 29 bit bilan farq qiladi. Bu shuni anglatadiki, asl matnning taxminan 1,5% o'zgarishi shifrlangan matnning taxminan 45% o'zgarishiga olib keladi.

To'liqlik effekti shundaki, shifrlangan matnning har bir biti asl matnning ko'p qismlariga bog'liq bo'lishi kerak. Biz allaqachon bilib olganimizdek, DES-da ikkala almashtirish va almashtirish qo'llaniladi - barcha transformatsiyalar shifrlangan matnning har bir bitining asl matnning bir necha bitiga bog'liqligini o'rnatadi.

DES qayerda ishlatiladi? Deyarli hamma joyda uni amalga oshirish dasturiy ta'minotning ko'pgina kutubxonalarida mavjud. Biroq, bugungi kunda DES qanchalik xavfsizligini kim biladi? IBM bu algoritm 17 yil davomida olib borilgan intensiv kriptanaliz natijasi deb da'vo qilgan bo'lsa-da, ba'zi odamlar NSA agentlikka ushlangan xabarlarni osonlikcha parolini ochish imkonini beradigan algoritmga bo'shliq kiritganidan qo'rqishdi. AQSh Senatining Razvedka qo'mitasi ushbu masalani sinchkovlik bilan o'rganib chiqdi va, albatta, hech narsa topmadi, NSAga qo'yilgan ayblovlar bekor qilindi, tadqiqot natijalari baribir tasniflanadi. Xulosa qilib aytganda, Amerikada DESga ishonish kerakmi yoki yo'qmi degan mish-mishlar va spekülasyonlar uzoq vaqt davomida tarqaldi. Ammo, men ishonganimdek, bu erda vaziyatni "Aqlli odam aytmaydi, ahmoq tushunmaydi" degan so'zlar bilan ta'riflaydi. Oxir-oqibat, NSA IBM-ga bunday muhim vazifani ishonib topshirolmasligini tan oldi va S-box topshirig'i kabi bir nechta tuzatishlar kiritdi.

Butun DES davomida u turli xil kriptanaliz usullarining maqsadi bo'lgan. Kriptanalizatorlar hech qachon DESni yorish uchun mashinalarni o'lchashni to'xtatmaganlar - matnni parolini kim hal qila oladi. Shu nuqtai nazardan, ushbu algoritmning son-sanoqsiz turli xil modifikatsiyalari paydo bo'ldi va 3DES ularning eng zamonaviylaridan ancha uzoqdir.

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