274
d
e
=1(modf(p,q)).
Bu
shartga binoan
d
e
ko‘paytmaning
f(p,q) funksiyaga bo‘lishdan qolgan
qoldiq 1ga teng. e soni ochiq kalitning ikkinchi tashkil
etuvchisi sifatida qabul
qilinadi. Maxfiy kalit sifatida
d va
n sonlari ishlatiladi.
Listing (S++ dasturlash tilida).
while(FLAG==1);
d = 1;
do
{
s = (d*e)%phi;
d++;
}while(s!=1);
d = d-1;
6-qadam. Dastlabki axborotuning fizik tabiatidan qat’iy nazar raqamli ikkili
ko‘rinishda ifodalanadi. Bitlar ketma-ketligi
L bit uzunlikdagi bloklarga ajratiladi,
bu erda
L–
L
log
2
(
n+1) shartini qanoatlantiruvchi eng kichik butun son. Har bir
blok [0,
n-1] oraliqka taalluqli butun musbat son kabi ko‘riladi.
Shunday qilib,
dastlabki axborot
X(
i), i=
I
,
1
sonlarning ketma-ketligi orqali ifodalanadi.
I ning
qiymati shifrlanuvchi ketma-ketlikning uzunligi orqali aniqlanadi.
7-qadam. Shifrlangan axborot quyidagi formula bo‘yicha aniqlanuvchi
Y(
i)
sonlarning ketma-ketligi ko‘rinishida olinadi:
).
(mod
))
(
(
)
(
n
i
X
i
Y
e
Listing (S++ dasturlash tilida).
voidencrypt()
{
inti;
C = 1;
for(i=0;i
C=C*M%n;
C = C%n;
275
printf("\n\tShifrlanganso’z: %d",C);
}
Axborotni rasshifrovka qilishda quyidagi munosabatdan foydalaniladi:
).
(mod
))
(
(
)
(
n
i
Y
i
X
d
Listing (S++ dasturlash tilida).
voiddecrypt()
{
inti;
M = 1;
for(i=0;i
M=M*C%n;
M = M%n;
printf("\n\tDeshifrlanganso’z : %d",M);
}