Shifrni ochish. M= modp formula orqali shifr ochiladi.
Misol. Tub son p=89, yopiq kalit x=3 va M=BBC matn berilgan. Shu matnni Elgamal algoritmidan foydalanib shifrlaymiz.
Shifrlash. Foydalanuvchilar guruhi uchun umumiy g = 11 (g
x =3 yopiq kalit.
Matnni ikkilik sanoq tizimida ifodalaymiz:
. Demak, BBC matn ikkilik sanoq tizimida quyidagicha ifodalanadi:
M=
Matnni 6 bit uzunlikda bloklarga ajratamiz: M1=0100002 1610, M2=1001002 3610, M3=0010012 910, M4=0000112 310,
y = g x mod p= 113mod89=85
k=7.
a=gkmodp =117mod89=87
b1=(yk*M1)modp=(857*16)mod89=(81*16)mod89=50
b2=(yk*M2)modp=(857*36)mod89=(81*36)mod89=68
b3=(yk*M3)modp=(857*9)mod89=(81*9)mod89=17
b4=(yk*M4)modp=(857*3)mod89=(81*3)mod89=65
C={a,b1,b2,b3,b4}={87,50,68,17,65} shifrtekst hosil bo’ladi. Shifrni ochish. Shifrni ochish jarayoniga ko’proq vaqt sarflanadi. Shifrtekstdagi har bir son alohida ochiladi. M=(b*(a-1)x)modp formuladan foydalanamiz.
M1=(b1*(a-1)x)modp=(50*443)mod89=(50*11)mod89=16
M2=(b2*(a-1)x)modp=(68*443)mod89=(68*11)mod89=36
M3=(b3*(a-1)x)modp=(17*443)mod89=(17*11)mod89=9
M4=(b4*(a-1)x)modp=(65*443)mod89=(65*11)mod89=3
Olingan M1,M2,M3,M4 larni ikkilik sanoq tizimiga o’tkazamiz:
1610=>0100002, 3610=>1001002, 910=>0010012, 310=>0000112.
Ularni ketma-ket yozib, 8 bitdan bo’laklarga ajratib, harflarga o’tamiz.
0100001001000010010000112=>(01000010,01000010,01000011)2=> =>(42,42,43)16=>BBC. Ochiq matn hosil bo’ldi.
Mustaqil ish uchun misollar. p=83, x=3, a=34, b=32,32,73,74 bo’lsa, M=?
p=83, x=3, a=39, b=71,8,34,49 bo’lsa, M=?
p=83, x=3, a=34, b=56,32,73,19 bo’lsa, M=?
p=89, x=3, a=61, b=67,14,28,60 bo’lsa, M=?
p=89, x=3, a=61, b=51,48,12,4 bo’lsa, M=?
p=97, x=3, a=21, b=93,93,26,63 bo’lsa, M=?
p=79, x=4, a=32, b=76,26,17,19 bo’lsa, M=?
p=83, x=3, a=42, b=2,13,53,57 bo’lsa, M=?
p=103, x=3, a=35, b=49,19,11,53 bo’lsa, M=?
p=107, x=3, a=22, b=24,54,67,58 bo’lsa, M=? 11. p=97, x=3, a=49, b=39,39,86,89 bo’lsa, M=?
p=79, x=3, a=32, b=32,65,3,8 bo’lsa, M=?
p=83, x=3, a=3, b=17,69,77,28 bo’lsa, M=?
p=103, x=3, a=51, b=48,6,36,33 bo’lsa, M=?
p=107, x=3, a=5, b=74,6,55,54 bo’lsa, M=?
p=97, x=3, a=21, b=93,93,26,63 bo’lsa, M=?
p=79, x=3, a=59, b=7,71,13,61 bo’lsa, M=?
p=83, x=4, a=3, b=51,41,65,1 bo’lsa, M=?
p=103, x=3, a=30, b=83,49,88,12 bo’lsa, M=?
p=107, x=3, a=57, b=44,99,105,35 bo’lsa, M=?
Nosimmеtrik kripto algoritmlarda simmеtrik kripto algoritmlardagi quyidagi kamchiliklar bartaraf etilgan:
kalitlarni maxfiy tarzda yetkazish zaruriyati yo’q; nosimmеtrik shifrlash ochiq kalitlarni dinamik tarzda yetkazishga imkon bеradi, simmеtrik shifrlashda esa himoyalangan aloqa sеansi boshlanishidan avval maxfiy kalitlar almashinishi zarur edi;
kalitlar sonining foydalanuvchilar soniga kvadratli bog’lanishligi yo’qoladi; RSA nosimmеtrik kriptotizimda kalitlar sonining foydalanuvchilar soniga bog’liqligi chiziqli ko’rinishga ega (N foydalanuvchisi bo’lgan tizimda 2N kalit ishlatiladi).
hozirgacha nosimmеtrik algoritmlarda ishlatiluvchi funksiyalarning qaytarilmasligining matеmatik isboti yo’q;
nosimmеtrik shifrlash simmеtrik shifrlashga nisbatan sеkin amalga oshiriladi, chunki shifrlashda va shifrni ochishda katta rеsurs talab etiladigan amallar ishlatiladi (xususan, RSA da katta sonni katta sonli darajaga oshirish talab etiladi). Shu sababli nosimmеtrik algoritmlarni qurilmalarda amalga oshirilishi simmеtrik algoritmlardagiga nisbatan anchagina murakkab;
ochiq kalitlarni almashtirib qo’yilishidan himoyalash zarur. Faraz qilaylik "A" abonеntning kompyutеrida "V" abonеntning ochiq kaliti "KV" saqlanadi. "p" buzg’unchi odam "A" abonеntda saqlanayotgan ochiq kalitlardan foydalana oladi. U o’zining juft (ochiq va maxfiy) "Kp" va "kp" kalitlarini yaratadi va "A" abonеntda saqlanayotgan "V" abonеntning "KV" kalitini o’zining ochiq "Kp" kaliti bilan almashtiradi.
"A" abonеnt qandaydir axborotni "V" abonеntga jo’natish uchun uni "Kp" kalitda (bu "KV" kalit dеb o’ylagan holda) shifrlaydi. Natijada, bu xabarni "V" abonеnt o’qiy olmaydi, " p" abonеnt osongina ochadi va o’qiydi. Ochiq kalitlarni almashtirishning oldini olish uchun kalitlar sеrtifikatlaniladi.