Jadvallarni almashtirish(Zaxira qutisi - S-box) ko'pincha zamonaviy shifrlash algoritmlarida qo'llaniladi, shuning uchun bunday operatsiya qanday tashkil etilganligini tushuntirishga arziydi. Bloklarning chiqish qiymatlari jadvalga yoziladi. Ma'lum bir o'lchamdagi ma'lumotlar bloki (bizning holimizda, 4-bit), chiqish qiymatining sonini aniqlaydigan o'zining raqamli ifodasiga ega. Masalan, agar S-box 4, 11, 2, 14, 15, 0, 8, 13, 3, 12, 9, 7, 5, 10, 6, 1 kabi ko'rinishga ega bo'lsa va "0100" 4 bitli blok kirishga kelgan bo'lsa. (qiymat 4), keyin jadvalga ko'ra, chiqish qiymati 15 bo'ladi, ya'ni "1111" (0 a 4, 1 a 11, 2 a 2 ...).
GOST 28147-89 tomonidan aniqlangan algoritm to'rtta ish rejimini ta'minlaydi: oddiy almashtirish, gamming, fikr-mulohazalar bilan gamming va simulyatorlarni yaratish. Ular yuqorida tavsiflangan bir xil shifrlash transformatsiyasidan foydalanadilar, ammo rejimlarning maqsadi har xil bo'lganligi sababli, ushbu transformatsiya ularning har birida har xil yo'llar bilan amalga oshiriladi.
Ish rejimida oddiy almashtirishhar bir 64 bitli ma'lumot blokini shifrlash uchun yuqorida tavsiflangan 32 tur o'tkaziladi. 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.
Ushbu rejimda shifrlash xuddi shu tarzda amalga oshiriladi, ammo kichik tugmachalarni ishlatish bir oz boshqacha ketma-ketlikda:
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 (manba matnning tegishli blokiga) bog'liq. Agar asl (oddiy) matnning bir xil bir xil bloklari bo'lsa, shifr matnining tegishli bloklari ham bir xil bo'ladi, bu qo'shimcha ma'lumot beradi. foydali ma'lumotlar kodni buzishga harakat qilayotgan kriptovalyut uchun. Shuning uchun, ushbu rejim asosan shifrlash kalitlarini o'zlari shifrlash uchun ishlatiladi (ko'p kalitli sxemalar juda tez-tez amalga oshiriladi, bunda bir necha sabablarga ko'ra kalitlar bir-birining ustiga shifrlanadi). Ma'lumotni o'zi shifrlash uchun boshqa ikkita ish rejimi - fikr va gamma va fikr-mulohazalar bilan o'ynash mo'ljallangan.
IN gamma rejimi har bir oddiy matnning blokiga 64 bitli shifrli gamma-blokli bitli modul 2 qo'shiladi. Shifrning gammasi - bu N1 va N2 registrlari bilan muayyan operatsiyalar natijasida olingan maxsus ketma-ketlik (1-rasmga qarang).
1. N1 va N2 registrlarida ularning boshlang'ich to'ldirilishi yozilgan - 64 bitli qiymat sinxronlash deb nomlanadi.
2. N1 va N2 registrlarining tarkibini shifrlash (bu holda - xabarlarni sinxronlashtirish) oddiy almashtirish rejimida amalga oshiriladi.
3. N1 registrining tarkibiga doimiy C1 \u003d 224 + 216 + 28 + 24 modulli (232 - 1) qo'shiladi va qo'shimcha natija N1 registriga yoziladi.
4. N2 registrning tarkibiga doimiy S2 \u003d 224 + 216 + 28 + 1 bo'lgan 232 modul qo'shiladi va qo'shimcha natija N2 ni ro'yxatdan o'tkazish uchun yoziladi.
5. N1 va N2 registrlarining tarkibi shifrlangan gammaning 64 bitli bloki ko'rinishida chiqariladi (bu holda N1 va N2 gammaning birinchi blokini hosil qiladi).
Agar keyingi gamma bloki kerak bo'lsa (ya'ni, shifrlashni yoki shifrni ochishni davom ettirish kerak), u 2-bosqichga qaytadi.
Shifrni ochish uchun gamma shunga o'xshash tarzda hosil bo'ladi, keyin XOR operatsiyasi shifr matniga qo'llaniladi va gamma bitlari yana chiqariladi. Ushbu operatsiya teskari ravishda amalga oshirilganligi sababli, to'g'ri tuzilgan miqyosda asl matn (jadval) olinadi.
Gamma holatida shifrlash va shifrni ochish
Shifrni ochish uchun zarur bo'lgan shifrli gamutni yaratish uchun kriptogrammani shifrlashda foydalanuvchi ma'lumotni shifrlash uchun ishlatiladigan kalit va sinxron qiymatga ega bo'lishi kerak. Aks holda, asl matnni shifrlangan matndan olishning iloji bo'lmaydi.
GOST 28147-89 algoritmining aksariyat dasturlarida sinxronlash xabari sir emas, ammo tizimlar mavjud, ularda sinxronizatsiya xabari shifrlash kaliti bilan bir xil maxfiy element hisoblanadi. Bunday tizimlar uchun algoritm kalitining (256 bit) samarali davomiyligi maxfiy 64-bitli maxfiy sinxronizatsiya xabari bilan ko'paytirilib, uni asosiy element sifatida ko'rib chiqish mumkin.
Qayta aloqa gamma rejimida N1 va N2 registrlarini to'ldirish uchun 2-blokdan boshlab avvalgi gamma blok emas, balki oldingi oddiy matn blokining shifrlash natijasi qo'llaniladi (2-rasm). Ushbu rejimdagi birinchi blok avvalgisiga to'liq o'xshash tarzda yaratiladi.
Anjir. 2. Qayta aloqa gamma rejimida shifrli gamma hosil qilish.
Rejimni hisobga olgan holda simulyatorlar avlodi, avlod predmeti tushunchasi aniqlanishi kerak. Prefiks - bu xabarlarning yaxlitligini tekshirish uchun shifrlash kaliti yordamida hisoblangan kriptografik tekshirish summasi. Prefiksni yaratishda quyidagi operatsiyalar bajariladi: prefiks hisoblab chiqilgan ma'lumotlarning birinchi 64-bitli bloki N1 va N2 registrlariga yoziladi va qisqartirilgan oddiy almashtirish rejimida shifrlanadi (32-turdan dastlabki 16-tur amalga oshiriladi). Olingan natija N1 va N2-larda saqlanib, keyingi ma'lumot bloki bilan 2-modulga qo'shiladi.
Tsikl oxirgi ma'lumot blokigacha takrorlanadi. N1 va N2 registrlarining 64 bitli tarkibiga yoki ushbu o'zgartirishlar natijasida olingan qism prefiks deb ataladi. Prefiksning o'lchami kerakli xabarlarning ishonchliligi asosida tanlanadi: prefiks uzunligi r bit bilan, xabarning o'zgarishi e'tiborga olinmaydi 2-r. Ko'pincha 32-bitli prefiks ishlatiladi, ya'ni registr tarkibining yarmi. Bu etarli, chunki har qanday nazorat summasi singari simulyator asosan ma'lumotlarning tasodifiy buzilishidan himoya qilish uchun mo'ljallangan. Ma'lumotni qasddan o'zgartirishdan himoya qilish uchun boshqa kriptografik usullar qo'llaniladi - birinchi navbatda elektron raqamli imzo.
Ma'lumot almashishda simulyator qo'shimcha nazorat vositasi sifatida xizmat qiladi. Ba'zi ma'lumotlar shifrlangan va shifrlangan matn bilan birga yuborilganida, bu oddiy matn uchun hisoblanadi. Shifrni ochgandan so'ng, yuborilgan bilan taqqoslanadigan yangi prefiks qiymati hisoblanadi. Agar qiymatlar bir-biriga mos kelmasa, bu shifrlangan matn uzatish paytida buzilganligini yoki shifrni ochishda noto'g'ri kalitlardan foydalanilganligini anglatadi. Prefiks, ayniqsa, ko'p kalitli sxemalardan foydalanganda kalit ma'lumotlarning to'g'ri parolini tekshirish uchun foydalidir.
GOST 28147-89 algoritmi juda kuchli algoritm hisoblanadi - hozirgi vaqtda uni ochish uchun yuqorida aytib o'tilgan "shafqatsiz kuch" usulidan ko'ra samaraliroq usullar taklif qilinmagan. Uning yuqori darajadagi xavfsizligiga birinchi navbatda katta kalit 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 kuchlanish o'zgaruvchan aylanishlar soniga bog'liq, ulardan GOST 28147-89 ga binoan 32 bo'lishi kerak (kirish ma'lumotlari tarqalishining to'liq samarasiga 8 turdan keyin erishiladi).
AES standarti
Uzoq vaqt davomida sir bo'lib kelgan GOST 28147-89 algoritmidan farqli o'laroq, DES o'rnini bosish uchun ishlab chiqilgan Amerika AES shifrlash standarti ochiq tanlovda tanlab olindi, unda barcha manfaatdor tashkilotlar va shaxslar nomzod algoritmlarini o'rganib, izohlashlari mumkin edi.
DESni almashtirish bo'yicha tanlov 1997 yilda AQSh Milliy standartlar va texnologiyalar instituti (NIST) tomonidan e'lon qilingan. Tanlovga kriptografiya sohasida yaxshi tanilgan tashkilotlar (RSA Security, Counterpane va boshqalar) tomonidan ishlab chiqilgan 15 ta ariza beruvchi algoritmlar va jismoniy shaxslar taqdim etildi. Tanlov natijalari 2000 yil oktyabr oyida e'lon qilindi: g'olib Belgiya, Vinsent Riymen va Joan Daemen tomonidan ishlab chiqarilgan kriptograflar tomonidan ishlab chiqilgan Rijndael algoritmi.
Rijndael algoritmi ko'pchilikka ma'lum nosimmetrik shifrlash algoritmlariga o'xshamaydi, ularning tuzilishi "Feistel tarmog'i" deb nomlanadi va Rossiya GOST 28147-89 ga o'xshaydi. Feistel tarmog'ining o'ziga xos xususiyati shundaki, kirish qiymati ikki yoki undan ortiq pastki bloklarga bo'linadi, ularning ba'zilari ma'lum bir qonunga muvofiq har bir turda qayta ishlanadi va keyin ishlov berilmagan pastki bloklarga o'rnatiladi (1-rasmga qarang).
Undan farqli o'laroq ichki standart shifrlash, Rijndael algoritmi 4X4, 4X6 yoki 4X8 o'lchamdagi ikki o'lchovli bayt qatori ko'rinishidagi ma'lumotlar blokini ifodalaydi (shifrlangan ma'lumot blokining bir nechta qat'iy o'lchamlariga ruxsat beriladi). Barcha operatsiyalar massivning alohida baytlarida, shuningdek mustaqil ustun va satrlarda bajariladi.
Rijndael algoritmi to'rtta o'zgarishlarni amalga oshiradi: BS (ByteSub) - massivning har bir baytini jadvalga almashtirish (3-rasm); SR (ShiftRow) - qatorning siljish joylari (4-rasm). Ushbu operatsiya davomida birinchi qator o'zgarishsiz qoladi, qolganlari esa massivning o'lchamiga qarab, baytlar soni bo'yicha chapga siljiydi. Masalan, 4X4 massivi uchun 2, 3 va 4 qatorlar mos ravishda 1, 2 va 3 baytga siljiydi. Keyinchalik MC (MixColumn) keladi - har bir ustun ma'lum bir qoidaga muvofiq sobit matritsa c (x) bilan ko'paytirilganda, massivning mustaqil ustunlaridagi operatsiya (5-rasm). Va nihoyat, AK (AddRoundKey) - kalit qo'shish. Massivning har bir bitiga dumaloq tugmachaning tegishli biti bilan 2-modul qo'shiladi, bu esa o'z navbatida shifrlash kalitidan ma'lum bir tarzda hisoblab chiqiladi (6-rasm).
Shakl: 3. BS operatsiyasi.
Shakl: 4. SR operatsiyasi.
Shakl: 5. Operatsion MC.
Rijndael algoritmidagi (R) shifrlash turlarining soni o'zgaruvchan (10, 12 yoki 14 tur) va blokning o'lchamiga va shifrlash kalitiga bog'liq (shuningdek, kalit uchun bir nechta sobit o'lchamlar mavjud).
Shifrni ochish quyidagi teskari operatsiyalar yordamida amalga oshiriladi. Jadval teskari bo'lib, jadvalni almashtirish teskari stolda amalga oshiriladi (shifrlash uchun ishlatiladigan stolga nisbatan). SR ning teskari tomoni satrlarni chapga emas, balki o'ngga burishdir. MC uchun teskari operatsiya ushbu qoidalarga muvofiq shartni qondiradigan boshqa d (x) matritsasida ko'paytirishdir: c (x) * d (x) \u003d 1. AK kalitini qo'shish o'zi teskari, chunki u faqat XOR operatsiyasidan foydalanadi. Ushbu teskari operatsiyalar shifrlash paytida ishlatilganga teskari tartibda dekryrovka paytida qo'llaniladi.
Rijndael boshqa algoritmlarga nisbatan bir qator afzalliklari tufayli ma'lumotlarni shifrlash uchun yangi standartga aylandi. Birinchidan, u barcha platformalarda yuqori darajada shifrlash tezligini ta'minlaydi: ham dasturiy ta'minotda, ham uskunada. Bu tanlov uchun taqdim etilgan boshqa algoritmlar bilan taqqoslanganda parallelizatsiya qilinadigan hisoblashlarning mislsiz yaxshiroq imkoniyatlari bilan ajralib turadi. Bundan tashqari, uning ishlashi uchun resurslarga talab minimaldir, bu uni cheklangan hisoblash qobiliyatiga ega qurilmalarda ishlatishda muhimdir.
Algoritmning yagona noqulayligi uning o'ziga xos an'anaviy bo'lmagan sxemasidir. Haqiqat shundaki, Feistel tarmog'iga asoslangan algoritmlarning xususiyatlari yaxshi o'rganilgan va Rijndael, ulardan farqli o'laroq, yashirin zaifliklarni o'z ichiga olishi mumkin, ularni keng tarqalishidan bir muncha vaqt o'tgandan keyingina topilishi mumkin.
Asimmetrik shifrlash
Yuqorida aytib o'tilganidek, assimetrik shifrlash algoritmlarida ikkita kalit ishlatiladi: k1 - bu shifrlash kaliti yoki ommaviy, k2 - bu shifrlash kaliti yoki maxfiy. Ochiq kalit sirdan hisoblanadi: k1 \u003d f (k2).
Asimmetrik shifrlash algoritmlari bir tomonlama funktsiyalardan foydalanishga asoslangan. Ta'rif bo'yicha y \u003d f (x) funktsiya bir yo'nalishda emas, agar: barchasini hisoblash oson bo'lsa mumkin bo'lgan variantlar x va mumkin bo'lgan y qiymatlari uchun y \u003d f (x) bo'lgan x qiymatini hisoblash juda qiyin.
Bir tomonlama funktsiyaga misol qilib ikkita katta raqamni ko'paytirishni aytish mumkin: N \u003d P * Q. Bunday ko'payishning o'zi oddiy operatsiya. Ammo, zamonaviy vaqt hisob-kitoblariga ko'ra, faktorizatsiya deb nomlangan teskari funktsiya (N ni ikkita katta omilga ajratish) ancha murakkab matematik muammodir. Masalan, P-da 664 bitdan N faktoring? Q, taxminan 1023 ta operatsiyani bajarish kerak, va x, a, p va y (a va p o'lchovlari bilan) ma'lum bo'lgan y \u003d ax mod p modulli ko'rsatkich uchun taxminan 1026 ta operatsiyani bajarish talab etiladi. Ushbu misollarning oxirgisi "Diskret logaritm 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 funktsiyalarning yana bir muhim klassi orqa tarafdagi bir tomonlama funktsiyalardir. Ularning ta'rifida aytilishicha, funktsiya sirli o'tish bilan bir yo'nalishga ega va agar u bir yo'nalishda bo'lsa va teskari funktsiyani x \u003d f-1 (y) ni samarali hisoblash mumkin, ya'ni "yashirin o'tish" ma'lum bo'lsa (ma'lum bir maxfiy raqam, unga nisbatan qo'llaniladigan). assimetrik shifrlash algoritmlari uchun - maxfiy kalitning qiymati).
Tashqi ko'rinishdagi bir tomonlama funktsiyalar 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 familiyasining birinchi harflaridan oldi. Algoritmning mustahkamligi ko'p sonli faktorlarni aniqlash va diskret logaritmlarni hisoblashning murakkabligiga asoslanadi. RSA algoritmining asosiy parametri N tizim moduli bo'lib, unga muvofiq tizimdagi barcha hisob-kitoblar amalga oshiriladi va N \u003d P * Q (P va Q - yashirin tasodifiy katta raqamlar, odatda bir xil o'lchamdagi).
K2 maxfiy kaliti tasodifiy tanlanadi va quyidagi shartlarga javob berishi kerak:
1bu erda GCD eng katta umumiy bo'linuvchi, ya'ni k1 Euler F (N) funktsiyasining qiymati bilan tenglashtirilishi kerak, u 1 dan N gacha bo'lgan musbat butun sonlar soniga teng, N bilan yozish va quyidagicha hisoblanadi. F (N) \u003d (P - 1) * (Q - 1).
Ochiq kalit k1 aloqadan hisoblanadi (k2 * k1) \u003d 1 mod F (N)va buning uchun umumlashtirilgan Evklid algoritmi (eng katta umumiy bo'linuvchini hisoblash algoritmi) qo'llaniladi. M bloklar bloki RSA algoritmi yordamida quyidagicha shifrlangan: C \u003d M [k1 kuchiga] mod N... Shuni yodda tutingki, RSA-dan foydalanib haqiqiy kriptotizim tizimida k1 soni juda katta (hozirgi vaqtda uning o'lchami 2048 bitgacha yetishi mumkin), M ni to'g'ridan-to'g'ri hisoblash [k1 kuchiga] xayoliy emas. Uni olish uchun ko'p sonli M ning natijalarini ko'paytirish bilan birikmasidan foydalaniladi.
Katta o'lchovlar uchun ushbu funktsiyani burish mumkin emas; boshqacha qilib aytganda, ma'lum C, N va k1 dan M ni topish mumkin emas. Shu bilan birga, k2 maxfiy kalitiga ega bo'lib, oddiy o'zgarishlardan foydalanib, 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 qo'lga kiritsa, u k2 maxfiy kalitini hisoblash imkoniyatiga ega bo'ladi.
Qaysi shifrlash yaxshiroq?
Nosimmetrik shifrlashning asosiy kamchiligi bu kalitlarni "qo'ldan qo'lga" o'tkazish zarurati. Ushbu kamchilik juda jiddiy, chunki cheklanmagan miqdordagi ishtirokchilar tizimlarida nosimmetrik shifrlashdan foydalanishni imkonsiz qiladi. Shu bilan birga, nosimmetrik shifrlashning qolgan afzalliklari bor, ular asimmetrik shifrlashning jiddiy kamchiliklari fonida aniq ko'rinadi.
Ulardan birinchisi, resurslarni ko'p sarflaydigan operatsiyalar mavjudligi sababli shifrlash va shifrlash operatsiyalarining past tezligi. Yana bir "nazariy" kamchilik - matematik jihatdan, assimetrik shifrlash algoritmlarining kriptografik kuchi isbotlanmagan. Bu, birinchi navbatda, diskret logarifm muammosi bilan bog'liq - shu paytgacha uni maqbul vaqt ichida echib bo'lmasligini isbotlash imkoni bo'lmadi. Ochiq kalitlarni almashtirishdan himoya qilish zarurati keraksiz qiyinchiliklarni ham keltirib chiqaradi - qonuniy foydalanuvchining ochiq kalitini o'zgartirish orqali tajovuzkor muhim xabarni ochiq kalit yordamida shifrlashi mumkin va keyinchalik uni osonlikcha shaxsiy kaliti yordamida hal qiladi.
Biroq, bu kamchiliklar assimetrik shifrlash algoritmlarining keng qo'llanilishiga to'sqinlik qilmaydi. Bugungi kunda ochiq kalitlarni sertifikatlashni, shuningdek simmetrik va assimetrik shifrlash algoritmlarining kombinatsiyasini qo'llab-quvvatlaydigan kriptosistemalar mavjud. 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.
Brassard J. "Zamonaviy kriptologiya".
Petrov A. A. "Kompyuter xavfsizligi: himoya qilishning kriptografik usullari".
Romanets Yu. V., Timofeev PA, Shangin VF "Zamonaviy kompyuter tizimlarida axborotni himoya qilish".
Sokolov A. V., Shangin V. F. "Taqsimlangan korporativ tarmoqlar va tizimlarda axborot xavfsizligi".
Shifrlash algoritmlarining to'liq tavsifini quyidagi hujjatlarda topish mumkin:
GOST 28147-89. Axborotni qayta ishlash tizimi. Kriptografik himoya. Kriptografik o'zgartirish algoritmi. - M .: SSSR Gosstandart, 1989 yil.
Rossiyada davlat shifrlash standarti GOST 28147-89 sifatida ro'yxatdan o'tgan algoritmdir. Bu blokli shifr, ya'ni u individual belgilar emas, balki 64 bitli bloklarni shifrlaydi. Algoritm 256 bitli kalit bilan 32 ma'lumotni almashtirish siklini ta'minlaydi, shuning uchun u juda ishonchli (yuqori kriptografik kuchga ega). Zamonaviy kompyuterlarda bu shifrni shafqatsiz kuch ishlatadigan shafqatsiz kuch hujumi bilan sindirish uchun kamida yuzlab yillar kerak bo'ladi, bu esa bunday hujumni ma'nosiz qiladi. AQSh shunga o'xshash blok shifrini - AES dan foydalanadi.
RSA algoritmi Internetda mashhurdir, shuning uchun uning mualliflarining ismlari - R. Rivest, A. Shamir va L. Adleman ismlarining bosh harflari bilan nomlangan. Bu ochiq kalit algoritmi bo'lib, uning kuchi asosiy sonlarning xususiyatlaridan foydalanishga asoslangan. Uni sindirish uchun siz juda ko'p sonni oddiy omillarga ajratishingiz kerak. Hozirgi kunda ular ushbu muammoni qanday hal qilishni faqat variantlarni ro'yxati bilan bilishadi. Tanlovlar soni juda katta bo'lgani sababli, shifrni buzish uchun ko'p yillar davomida zamonaviy kompyuterlar ishlashi kerak.
Algoritmni qo'llashUmumiy va shaxsiy kalitlarni qurish uchun RSA quyidagicha talab qilinadi.
1. Ikki katta tub sonlarni tanlang, p va q.
2. Ularning n \u003d p * q va f \u003d (p - 1) (q - 1) qiymatlarini toping.
3. e (1) sonini tanlang< e < k), которое не имеет общих делителей с f.
4. k butun butun son uchun d e \u003d k f + 1 shartlarini qondiradigan d sonini toping
5. (e, n) qiymatlar juftligi - RSA ochiq kaliti (erkin nashr etilishi mumkin), va juftlik (d, n) maxfiy kalit.
Berilgan xabar avval 0 dan n gacha bo'lgan raqamlar ketma-ketligi sifatida ko'rsatilishi kerak. Shifrlash uchun y \u003d x e mod n formulasidan foydalaning, bu erda x - asosiy xabarning raqami, (e, n) ochiq kalit, y - kodlangan xabarning raqami. , x e mod n notasi x ni n ga bo'linganligini bildiradi. Xabarning shifrini ochish x \u003d y d mod n formulasi bilan amalga oshiriladi.
Bu shuni anglatadiki, har bir kishi xabarni shifrlay oladi (ochiq kalit hammaga ma'lum) va uni faqat d maxfiy sirini bilganlar bilishi mumkin.
Yaxshiroq tushunish uchun biz RSA algoritmining ishlashini oddiy misol bilan ko'rsatamiz. MISOL: R \u003d 3 va q \u003d 7 ni oling, keyin n \u003d r q \u003d 21 va f \u003d (r - 1) (q - 1) \u003d 12. e \u003d 5 ni tanlang, keyin d e \u003d k tenglikni toping.f + 1, masalan, d \u003d 17 (va k \u003d 7) uchun. Shunday qilib, biz ochiq kalitni (5, 21) va shaxsiy kalitni (17, 21) oldik.
Ochiq kalit (5,21) yordamida "123" xabarini shifrlaymiz. Biz olamiz