|
O’zbekiston respublikasi axborot texnologiyalari va telekomunikatsiyalarini rivojlantirish vazirligi muhammad al-xorazmiy nomidagi toshkent axborot texnologiyalari universiteti qarshi filiali
|
Sana | 17.11.2023 | Hajmi | 78.65 Kb. | | #100581 |
Bog'liq KI
O’ZBEKISTON RESPUBLIKASI AXBOROT TEXNOLOGIYALARI VA TELEKOMUNIKATSIYALARINI RIVOJLANTIRISH VAZIRLIGI
MUHAMMAD AL-XORAZMIY NOMIDAGI TOSHKENT AXBOROT TEXNOLOGIYALARI UNIVERSITETI QARSHI FILIALI
“Kiberxavfsizlik asoslari” fanidan
Amaliy ish
Bajardi :KI fakulteti DI 12-22 guruh talabasi NURMATOV BEKZOD
QARSHI 2023
Sezar usuli. Sezar shifri oddiy siljitish shifrining bir qismi xisoblanadi. Bu shifrini rimlik imperator Gole Yuliy Sezar o`ylab topgan. Shifrlashda matining xar biri boshqa xarf bilan quyidagi qoida asosida almashtiriladi. Xarflarni almashtirishda kelayotgan yozuv xarflarni k-ga siljitib alamshtirildi. Bu yerda M- butun son xisoblanib, ochiq matni belgisini biror alfavitdagi o`rini, C – butun son bo`lib, shifr belgini biror alfavitagi o`rni. C=(M+k)modm, m – alfavit uzunligi. Deshifrlash ifodasi esa M=(C-k)modm ifoda bilan ifodalanadi. Yuliy Sezar bevosita k = 10 bo`lganda ushbu usuldan foydalangan.
Sezar usulining kamchiligi bu bir xil xarflarning o`z navbatida, bir xil xarflarga almashishidir.
Berilgan ochiq matnimiz: T0=NURMATOV BEKZOD
Shifrlashda ishlatiladigan kalit jurnaldagi raqamimga mos ravishda 5 ga teng: K=5
Lotin alfabitida 26 ta harf borligi uchun jadvalni shunga moslab olamiz,ya`ni jadvalimizda 26 ta ustun 2 ta qatordan iborat bo`ladi.Jadvalni birinchi qatorini lotin alfabiti harflari ketma-ketligi bilan to`ldiramiz.(A,B,C,D X,Y,Z)
Jurnaldagi raqamim 17bo`lganligi uchun jadvalni ikkichi qatorini 5 ta harf qoldirib 6-harfdan boshlab lotin alfaviti ketma-ketligi yozib chiqamiz.Bu yerda 1-qator oxiridagi Z harfiga 2-qatordan E harfi to`gri keladi,shunda 1-qatordagi A harfiga 2- qatordan F harfi most ravishda yoziladi va shu tariqa davom ettiriladi
A
|
B
|
C
|
D
|
E
|
F
|
G
|
H
|
I
|
J
|
K
|
L
|
M
|
N
|
O
|
P
|
Q
|
R
|
S
|
T
|
U
|
V
|
W
|
X
|
Y
|
Z
|
G
|
H
|
I
|
J
|
K
|
L
|
M
|
N
|
O
|
P
|
Q
|
R
|
S
|
T
|
U
|
V
|
W
|
X
|
Y
|
Z
|
A
|
B
|
C
|
D
|
E
|
F
|
Berilgan: T0= DAVRONOV BEHRUZ
Kalit: K=17
1-qatordagi B harfiga 2-qatordan G harfi to`g`ri keladi,1-qatordagi A harfiga 2- qatordan F harfi to`g`ri keladi va shu yo`sinda berilgan ochiq matnimiz 2-qatorda turgan mos harflarga almashtiriladi,shundan so`ng shifrmatin hosil bo`ladi.
Natija: 17=HOLGGTIPVYETIX
Deshifrlash:
Deshifrlashda bizga kalit va shifrmatin ma`lum bo`lsin.
K=17, C=HOLGGTIPVYETIX
A
|
B
|
C
|
D
|
E
|
F
|
G
|
H
|
I
|
J
|
K
|
L
|
M
|
N
|
O
|
P
|
Q
|
R
|
S
|
T
|
U
|
V
|
W
|
X
|
Y
|
Z
|
G
|
H
|
I
|
J
|
K
|
L
|
M
|
N
|
O
|
P
|
Q
|
R
|
S
|
T
|
U
|
V
|
W
|
X
|
Y
|
Z
|
A
|
B
|
C
|
D
|
E
|
F
|
Deshifrlash uchun ham shifrlashda ishlatilgan jadvaldan foydalanamiz,ya`ni jadvalni birinichi qatorini Lotin alfabiti harflarini tartibli ketma-ketligida to`ldiramiz,ikkinchi qatorni esa kalitimiz 5 ga teng bo`lganligi uchun,5 ta harf qoldirib Lotin harflari ketma-ketligini yozamiz,bu yerda 2-qator F harfidan boshlanadi.
Keyingi qiladigan ishimiz 2-qatordan shifrmatndagi harflarni topamiz va 1-qatorda turgan mos harfga almashtiramiz:
Masalan,shifrmatndagi G harfini 2-qatordan topamiz va G harfi tepasidagi B harfi ekanligiga guvoh bo`lamiz, 2-qatordagi J harfi,1-qatordan E harfiga to`g`ri keladi va shu yo`sinda davom etamiz.
Deshifrlangan matn tayyor: T0= NURMATOV BEKZOD
Dastur kodi:
#include
#include
using namespace std;
int main()
{
char s1[50], s2[50];
int k;
cout << "Shifrlash:" << endl;
cout << "Satrni kiriting:";
cin.getline(s1, sizeof(s1));
cout << "Kalitni kiriting:K=";
cin >> k;
for (int i = 0; s1[i] != '\0'; i++)
{
if ((int)s1[i] >= 65 and (int) s1[i] <= 90)
{
if ((int)s1[i] + k > 90)
s2[i] = (int)s1[i] + k - 26;
else
s2[i] = (int)s1[i] + k;
}
else if ((int)s1[i] >= 97 and (int) s1[i] <= 122)
{
if ((int)s1[i] + k > 122)
s2[i] = (int)s1[i] + k - 26;
else
s2[i] = (int)s1[i] + k;
}
}
for (int i = 0; i <= strlen(s2) - 1; i++)
cout << s2[i];
cout << endl;
cout << "Deshifrlash:" << endl;
for (int i = 0; s2[i] != '\0'; i++)
{
if ((int)s2[i] >= 65 and (int) s2[i] <= 90)
{
if ((int)s2[i] - k < 65)
s1[i] = (int)s2[i] - k + 26;
else
s1[i] = (int)s2[i] - k;
}
else if ((int)s2[i] >= 97 and (int) s2[i] <= 122)
{
if ((int)s2[i] - k < 97)
s1[i] = (int)s2[i] - k + 26;
else
s1[i] = (int)s2[i] - k;
}
}
cout << s1 << endl;
return 0;
}
Dastur natijasi:
|
|
Bosh sahifa
Aloqalar
Bosh sahifa
O’zbekiston respublikasi axborot texnologiyalari va telekomunikatsiyalarini rivojlantirish vazirligi muhammad al-xorazmiy nomidagi toshkent axborot texnologiyalari universiteti qarshi filiali
|