O’ZBEKISTON RESPUBLIKASI AXBOROT TEXNOLOGIYALARI VA KOMMUNIKATSIYALARINI RIVOJLANTIRISH VAZIRLIGI
MUHAMMAD AL-XORAZMIY NOMIDAGI TOSHKENT AXBOROT TEXNOLOGIYALARI UNIVERSITETI QARSHI FILIALI
“ KI ” FAKULTETI
2 – BOSQICH DI-13-19 GURUH TALABASINING
KIBERXAVFSIZLIK ASOSLARI
FANIDAN TAYYORLAGAN
2-Amaliy mashg‘ulot
Bajardi: Abdurashidov Sh
Qabul qildi: Bekkamov F
QARSHI – 2020
Mavzu: Axborotni kriptografik himoyalash.
SEZAR usuli- Qadimgi rim imperatori Yuliy Sezar ham axborotni maxfiyligini saqlash uchun matnni kodlash usulini o'ylab topgan. "Sezar shifri"da matndagi harf alifboda o'zidan keyin kelgan uchinchi harfga almashtiriladi. Bunda alifbo doiraviy yozilgan hisoblanadi. Bu kodlash usul alifboni surish usuli deyiladi.
Sezar usuli. Sezar shifri oddiy siljitish shifrining bir qismi hisoblanadi. Bu shifrni rimlik imperator Gole Yuliy Sezar oʻylab topgan. Shifrlashda matnning har bir harfi boshqa harf bilan quyidagi qoida asosida almashtiriladi. Harflarni almashtirishda kelayotgan yozuv harflarini k-ga siljitib almashtiriladi. Bu erda M – butun son hisoblanib, ochiq matni belgisini biror alfavitdagi oʻrni, S – butun son boʻlib, shifr belgini biror alfavitdagi oʻrni. C=(M+k)modm, m – alfavit uzunligi. Deshifrlash ifodasi esa M=(C-k)modm ifoda bilan ifodalanadi. Yuliy Sezar bevosita k = 3 boʻlganda ushbu usuldan foylangan. Sezar usulining kamchiligi bu bir xil harflarning oʻz navbatida, bir xil harflarga almashishidir.
Masalan, matn sifatida T=shoxrux soʻzini va K=3 deb oladigan boʻlsak Sezar usuli natijasida quyidagi shifrlangan yozuv hosil boʻladi: T = vkrauxa.
Quyida k=3 bo’lganda harflar jadvali:
Dastur kodi:
#include
#include
using namespace std;
int main(){
char s1[50],s2[50];
int k;
cout<<"Shifrlash:"<cout<<"so'zni kiriting:";
cin.getline(s1,sizeof(s1));
cout<<"K ni kiriting:";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<
cout<<"Deshifrlash:"<
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<
return 0;}
Do'stlaringiz bilan baham: |