Ishdan maqsad: assimetrik shifrlash algoritmlarini amalda foydalanish xususida ko’nikmalarga EGA bo’lish



Yüklə 107,94 Kb.
səhifə3/3
tarix22.03.2024
ölçüsü107,94 Kb.
#180766
1   2   3
071-20 Nematov Sherbek Jamoaviy loyiha

Kalit generatori. El-Gamal algoritmida kalit generatori quyidagi bosqichlardan iborat:

  • p – tub son tanlanadi;

  • g
    shartni qanoatlantiruvchi g butun son tanlanadi;

  • maxfiy kalit sifatida a
    shartni qanoatlantiruvchi butun son tanlanadi;

  • ochiq kalit sifatida y = ga mod p hisoblanadi;

  • ochiq kalitlar jufti (y, g, p) ma’lumotni shifrlovchi tomonlarga yoki ixtiyoriy odamlarga tarqatiladi.

Shifrlash qoidasi: Biror foydalanuvchi (A) maxfiy kalit a sonini tanlab oladi va y = ga mod p bolgan ochiq kalitni hisoblaydi. Agarda foydalanuvchi A bo’lsa, boshqa foydalanuvchi B - maxfiy ma’lumotni jonatuvchi bo’lsa, u holda B tomon p sonidan kichik bolgan biror kriptotizim uchun talab etiluvchi sonni tanlab olib,
y1 = gk (mod p) va y2 = (m* yk )(mod p),
sonlarini hisoblaydi. Bu yerda k EKUB( k, p -1) =1 shartni qanoatlantiruvchi butun son. So’ngra (B) (y1>y2) ma’lumotlarini (A)ga jo’natadi.
Deshifrlash qoidasi: Oz navbatida (A) bu shifrlangan ma’lumotni qabul qilib, quyidagi
(y2 * yp-1-a mod p) = m
bolgan hisoblash bilan ma’lumotning ochiq matnini tiklaydi.
Misol. A tomon o’zining maxfiy kaliti asosida ochiq kalit juftini hosil kiladi va uni B tomonda yuboradi. Olingan qiymatlar quyidagilar: g=3; p=31; a=4; y=(g^a)modp=(3^4)mod31=19. Bu yerda (p,g,y) - ochiq kalitlar jufti va a maxfiy kalit.
Shifrlash. Bu bosqich A tomonning ochiq kalitlari orqali B foydalanuvchi tomonidan amalga oshiriladi. Ochiq ma’lumot sifatida M=CDEF (2,3,4,5 -alifbodani o’rni) olinib, EKUB(k, p-1) =1 shartni qanoatlantiruvchi k=7 tanlandi. Shundan so’ng quyidagilar hisoblanadi:
r=(g^k)modp=(3^7)mod31=17;
C1=m*y^k=2 *(19^7)mod31=14;
C2= m*y^k =3 *(19^7)mod31=21;
C3= m*y^k =4*(19^7)mod31=28;
C4= m*y^k =5*(19^7)mod31=4;
Shundan so’ng C1,C2,C3,C4 lardan iborat S va r A tomonga yuboriladi. Deshifrlash. Bu jarayon maxfiy kalitga ega bo’lgan A tomondan amalga oshiriladi va ochiq matn olinadi:
M1=C1 *r^(p-1 -a)modp=14*17^(31-1 -4)mod31=2;
M2= C2 *r^(p-1 -a)modp =21*17^(31-1 -4)mod31=3;
M3= C3 *r^(p-1 -a)modp =28* 17^(31-1 -4)mod31=4;
M4=C4 *r^(p-1 -a)modp=4 * 17^(31-1 -4)mod31=5.
p = int(input("PPP="))
q = int(input("qqq="))
e = int(input("eee="))
fn = (p-1)*(q-1)
n = q*p
S = [2201, 4565, 1019, 1087, 2989, 4565, 667, 1019,1087,1334,1505,1,2201]
k = []
for j in range(1,fn):
if (e*j)%fn==1:
d=j
print("ddd==",d)
for i in S:
r = ((i**d)%n)%26
k.append(r)
print(k)
for a in k:
print(chr(a+64))

Yüklə 107,94 Kb.

Dostları ilə paylaş:
1   2   3




Verilənlər bazası müəlliflik hüququ ilə müdafiə olunur ©genderi.org 2024
rəhbərliyinə müraciət

    Ana səhifə