Mavzu: Pleyfeyr bigramma shifri, hill kriptotizimi
Playfair bigramma shifrlashni C++da ko’rinishi
Download 226.33 Kb.
|
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: "< getline(cin,origin); cout<<"Kalit so’zni kiriting: "< cin>>key; for(i=0;i s+= origin[i]; } vector n=5; map<char,int> mp; k=0; int pi,pj; for(i=0;i } if(k mp[key[k]]++; pi=i; pj=j; } if(k==key.size()) break; } if(k==key.size()) break; } k=0; for(;i 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;i s[i+1]='x'; } map<char,pair<int,int> > mp2; for(i=0;i } } for(i=0;i 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< } Natija: Xabarni kiriting: helloworld Kalit so’zni kiriting test dbqspvpukf 2.1 Hill kriptotizimi tarixiAffin 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. Z 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 Z m p vektorlar uchun x , qo'shish va ayirish moduli amallari ", shuningdek vektorni Z 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 Z m va xJb Z mn . Chiziqli transformatsiya T shaklning php matritsasi bilan ifodalanishi mumkin va yoki Z m p vektor fazosining asosi to'plamdir vektorlar: 0 danZ m 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 Z mn dan chiziqli mustaqil boʻlsa , ularning tasvirlari {r(n: t): 0< i < u} Z 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, T 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 T 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 u 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. E 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: |
Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling
ma'muriyatiga murojaat qiling