Mavzu: Pleyfeyr bigramma shifri, hill kriptotizimi


Playfair bigramma shifrlashni C++da ko’rinishi


Download 226.33 Kb.
bet4/6
Sana07.04.2023
Hajmi226.33 Kb.
#1338991
1   2   3   4   5   6
Bog'liq
muhriddin

1.3 Playfair bigramma shifrlashni C++da ko’rinishi
#include
#include
#include
#include
using namespace std;
int main(){
int i,j,k,n;
cout<<"Xabarni kiriting: "<string s,origin;
getline(cin,origin);
cout<<"Kalit so’zni kiriting: "<string key;
cin>>key;
for(i=0;iif(origin[i]!=' ')
s+= origin[i];
}
vectorchar> > a(5,vector<char>(5,' '));
n=5;
map<char,int> mp;
k=0;
int pi,pj;
for(i=0;ifor(j=0;jwhile(mp[key[k]]>0&&kk++;
}
if(ka[i][j]=key[k];
mp[key[k]]++;
pi=i;
pj=j;
}
if(k==key.size())
break;
}
if(k==key.size())
break;
}
k=0;
for(;ifor(;jwhile(mp[char(k+'a')]>0&&k<26){
k++;
}
if(char(k+'a')=='j'){
j--;
k++;
continue;
}
if(k<26){
a[i][j]=char(k+'a');
mp[char(k+'a')]++;
}
}
j=0;
}
string ans;
if(s.size()%2==1)
s+="x";
for(i=0;iif(s[i]==s[i+1])
s[i+1]='x';
}
map<char,pair<int,int> > mp2;
for(i=0;ifor(j=0;jmp2[a[i][j]] = make_pair(i,j);
}
}
for(i=0;iint y1 = mp2[s[i]].first;
int x1 = mp2[s[i]].second;
int y2 = mp2[s[i+1]].first;
int x2 = mp2[s[i+1]].second;
if(y1==y2){
ans+=a[y1][(x1+1)%5];
ans+=a[y1][(x2+1)%5];
}
else if(x1==x2){
ans+=a[(y1+1)%5][x1];
ans+=a[(y2+1)%5][x2];
}
else {
ans+=a[y1][x2];
ans+=a[y2][x1];
}
}
cout<return 0;
}
Natija:
Xabarni kiriting:
helloworld
Kalit so’zni kiriting
test
dbqspvpukf



2.1 Hill kriptotizimi tarixi


Affin almashtirishni umumlashtiruvchi algebraik usul

i-grammlarning ta'rifi uchun Lester S. Hill tomonidan tuzilgan.
Qo‘shish, ayirish va ko‘paytirish moduli m amallari aniqlangan Z m butun sonlar to‘plami halqaga misol bo‘la oladi. R halqasi algebraik tizim bo‘lib, unda juft elementlarni qo‘shish, ayirish va ko‘paytirish amallari aniqlanadi. Ushbu algebraik tizim bir qator xususiyatlarga ega:

  • R halqasining elementlari qo‘shish amaliga nisbatan kommutativ guruh hosil qiladi; bundan tashqari, qo'shish amaliga nisbatan o'ziga xoslik va teskari elementlar mavjud;

  • • ko‘paytirish va qo‘shish assotsiativ va taqsimot qonunlarini qanoatlantiradi.

Halqaning a elementining ko'paytmali teskari a * har doim ham mavjud bo'lmasligi mumkin. Misol uchun, agar modul m = 26 bo'lsa, u holda qiymatlar
2" 1 (mod26) 13 _1 (mod26) mavjud bo'lishi mumkin emas.
Agar m moduli p tub son bo'lsa , u holda Zp ning nolga teng bo'lmagan har qanday t elementining o'zaro nisbati mavjud ( m = p bo'lganda ), chunki qiymatlar

1 < t < p - 1 bo'lsa farqlanadi .
Z p to'plami , bu erda p tub son, chekli maydon deb ataladigan algebraik tizimga misoldir. Z p ning nolga teng bo'lmagan elementlari multiplikativ guruhni tashkil qiladi.
m halqadan olingan komponentlar bilan barcha "-grammlar x = (x 0 ,x l ,x 2 f...,x n _ l ) to'plami Z w halqa ustida Zm,n vektor fazoni hosil qiladi . Har bir s-gramm x vektor deyiladi. Vektor fazosida m p vektorlar uchun x , qo'shish va ayirish moduli amallari ", shuningdek vektorni m halqasining t elementi bilan skaler ko'paytirish.Qo‘shish va skalyar ko‘paytirish kommutativ, assotsiativ va taqsimot qonunlarini qanoatlantiradigan amallardir. X vektori vektorlarning chiziqli birikmasidir

Chiziqli transformatsiya T bu xaritalashdir: 

chiziqlilik shartini qanoatlantiradi

barcha s uchun, t in m va xJb mn .
Chiziqli transformatsiya T shaklning php matritsasi bilan ifodalanishi mumkin

va

yoki

m p vektor fazosining asosi to'plamdir
vektorlar: 0 danm p . Z m p uchun har bir bazis n ta chiziqli mustaqil vektorni o'z ichiga oladi . Z m n dan chiziqli mustaqil bo'lgan har qanday n vektor to'plami bazis hisoblanadi.
T (1.7) matritsa bilan tasvirlangan chiziqli o'zgartirish bo'lsin va

Agar |3c^ : 0 < i < wj vektorlari mn dan chiziqli mustaqil boʻlsa , ularning tasvirlari {r(n: t): 0< i < u} mn ga nisbatan chiziqli mustaqil boʻladi.
faqat T matritsaning det T deb belgilangan determinanti t ni bo‘luvchi hech qanday tub p songa bo‘linmasa.Bunda
Bunday holda, T transformatsiyasi teskari transformatsiyaga ega bo'lgan inversiyali (yoki degenerativ bo'lmagan) chiziqli transformatsiya deb ataladi.
T~ X :

bu erda / - identifikatsiya matritsasi. Bundan tashqari, 1 ham chiziqli transformatsiyadir.
Masalan, w=26 bo'lganda va transformatsiya matritsasi  ushbu matritsaning determinanti bo'ladi. 
Shuning uchun T ~ X teskari transformatsiya mavjud Buni tekshirish oson

munosabatni qondiradi 
bilan Z26 2 da chiziqli transformatsiya bo'lsin
rika 
Ingliz alifbosidagi {ABCDEFGH...XYZ} bigramma almashtirishni aniqlash uchun biz ushbu T transformatsiyasidan foydalanamiz . Birinchidan, biz n-ni 2 ning karrali sifatida tanlab, ochiq matn n-grammini bigrammalarga ajratamiz. Masalan, 72 grammlik PAYMOREMONEY olti bigrammaga bo‘lingan:
RA YMOREMONEY
Keyin, har bir ochiq matnli bigrammada biz har bir harfni jadvaldagi raqamli ekvivalenti bilan almashtiramiz:

Ochiq matnning Xj bigrammalarini matn shifrining Jy bigrammasiga aylantirish tenglamaga muvofiq amalga oshiriladi.

yoki

Bu yerda Xj va y[ mos ravishda matn shifrlash va ochiq matn diagrammalarining ustun vektorlari.
olamiz


Jadvalga muvofiq diagrammadagi raqam matnining shifrini mos keladigan harflar bilan almashtirish. 1 . 2 , biz 12 grammli shifrlangan matnni olamiz:
TEEEPJWQDPGY
Bigramlar va shifrlangan matnlarni shifrlash va bigrammalarni ochiq matnni tiklash uchun siz teskari amalni bajarishingiz kerak.
transformatsiyasi G -1tenglamaga muvofiq

Ko'rib chiqilgan misolda transformatsiya matritsalari 2x2 o'lchamga ega va bigramlar (juftlar) harflar shifrlangan. harfi asl xabarning turli juftlarida turlicha shifrlanishi mumkin bo'lsa-da, bir xil juftlik, masalan, EM, butun asl matn davomida har doim bir xil tarzda shifrlangan bo'ladi.Xill tizimi keng ma'noda monoalfavitdir.



Download 226.33 Kb.

Do'stlaringiz bilan baham:
1   2   3   4   5   6




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling