Ruxsat etilgan modul N uchun xabar blokining m eng katta hajmi qancha?
RSA shifrlashda ruxsat etilgan modul N uchun xabar blokining eng katta hajmi (ya'ni blok uzunligi) qancha bo'lishi mumkunligiga qarab belgilanadi.
Shuning uchun, xabarimizni bloklarga ajratishning oddiy usulini amalga oshirib, bloklarni N ning yoki undan kichik bo'lgan qiymatlarga ajratish tavsiya etiladi. Shu holda, bloklar N dan kichik bo'lsa ham, shifrlangan blok hajmi N dan katta bo'lishi mumkin bo'lgan holat yuzaga kelmaydi.
Bunday usulda, har bir blok matnning to'liq uzunligi bo'yicha o'zini turli uzunlikda bo'lishi mumkin. Misol uchun, agar biz 2048 bit modul N ni foydalanishni rejalashtirsak, blok uzunligi 2047 bit (yoki undan kam) bo'lishi tavsiya etiladi, shunday qilib bloklarimiz N dan kichik bo'lishi mumkin. Shu bilan birga, har bir blok hajmi 256 baytdan (2048 bit) kichik bo'lishi kerak, chunki bu standart shifrlash protokollari uchun ko'p xatolikni chetlash imkonini beradi.
Bularni birga olishimizda, blok hajmi va bloklar soni xabar uzunligiga qarab belgilanadi.
Quyida amaliy misol bilan qadamba-qadam qanday amalga oshirishni ko'rsatishga harakat qilamiz.
Birinchi qadam: Modul N ni aniqlang. Misol uchun, N = 221 deb olamiz.
Ikkinchi qadam: Modul N uchun eng katta yuzsizlikni toping. Bu bir nechta bloklar yaratishda ishlatiladi. Agar N 2048 bitga teng bo'lsa, eng katta yuzsizlik 2047 bit bo'ladi (ya'ni N ni bit uzunligi - 1). Shu sababli, eng katta yuzsizlik 2047 bo'ladi.
Uchinchi qadam: Xabarni bloklarga ajrating. Misol uchun, xabaringiz "Hello,world!" bo'lsin. Xabar uzunligi 12 belgidan iborat.
To'rtinchi qadam: Bloklarni yaratish. Xabarni N dan kichik bo'lgan bloklarga ajratish kerak. Bizning eng katta yuzsizlik 2047 bit, shuning uchun birinchi blok 2047 bitdan kam bo'lishi kerak. Biz bloklarni o'lchamlarini oshirish orqali tayinlaymiz. Misol uchun, birinchi blok 2047 bit (255 bayt) va ikkinchi blok 12 bit (2 bayt) bo'ladi.
Beshinchi qadam: Bloklarni shifrlash. Bloklarni o'zining moduliga ko'ra shifrlashingiz kerak. Misol uchun, birinchi blok uchun shifrlash kaliti (e) va moduli (N) o'zingizda saqlangan bo'lsin. Shuningdek, ikkinchi blok uchun ham e va N ni ishlatish kerak.
Oltinchi qadam: Shifrlangan bloklarni yaratish. Bloklar shifrlangan xabarining bo'lganiga qarab ko'p bit uzunligida bo'lishi mumkin. Misol uchun, birinchi blok 2047 bit va ikkinchi blok 12 bit bo'ladi.
Natijada, sizning xabaringiz "Hello, world!" bo'lganida, bloklar soni 2 ta bo'ladi: birinchi blok 255 bayt (2047 bit), ikkinchi blok 2 bayt (12 bit) bo'ladi. Shuningdek, xabar bloklari N dan kichik bo'lib, shifrlangan blok hajmi N dan katta bo'lishi mumkin bo'ladi.
RSA shifrlashda, ruxsat etilgan modul N uchun xabar blokining eng katta hajmi (maksimal hajmi) N-1 bo'ladi. Bu asosan shifrlash jarayonidagi modul o'lchamining eng katta qiymati bilan bog'liq. Modul o'lchami N bo'lgan RSA shifrlashda, shifrlanadigan harf indeksi m qiymati 0 dan N-1 gacha bo'lishi kerak. Shuning uchun eng katta hajmga ega bo'lishi uchun xabar blokining harf indekslarining umumiy qiymati N-1 dan kam bo'lishi kerak.
Bunday limitatsiyaga ega bo'lgan xabar blokining hajmi modul o'lchamidan (N) kichik bo'lishi lozim. Agar xabar blokining hajmi N yoki undan katta bo'lsa, shifrlash jarayoni bo'lishi mumkin emas.
RSA shifrlashda ruxsat etilgan modul N uchun xabar blokining maksimum hajmi, blokning uzunligi bilan bog'liq bo'ladi.
Xabar blokining uzunligini bitlar (yoki baytlar) bilan ifodalashimiz mumkin. Agar N modulining uzunligi "n" bit bo'lsa, xabar blokining uzunligi ham "n" bit bo'lishi kerak. Shu sababli, xabar blokining hajmi ham N ni o'tkazishi mumkin.
Misol uchun, agar N moduli 2048 bitga teng bo'lsa, xabar blokining ham 2048 bit uzunligi bo'lishi kerak. Agar N moduli 4096 bitga teng bo'lsa, xabar blokining ham 4096 bit uzunligi bo'lishi kerak.
Bunga qarab, shifrlangan xabar bloklarining hajmi, ruxsat etilgan modul N ning uzunligiga teng yoki undan kichik bo'lishi mumkin, ammo undan katta bo'lishi mumkin emas.
|