O‘zbekiston respublikasiaxborot texnologiyalari va kommunikatsiyalarini rivojlantirish vazirligi muhammad al-xorazmiy nomidagi toshkent axborot texnologiyalari universiteti samarqand filiali



Download 482,82 Kb.
Sana26.02.2022
Hajmi482,82 Kb.
#471921
Bog'liq
4-amaliy ish




O‘ZBEKISTON RESPUBLIKASIAXBOROT TEXNOLOGIYALARI VA KOMMUNIKATSIYALARINI RIVOJLANTIRISH VAZIRLIGI


MUHAMMAD AL-XORAZMIY NOMIDAGI
TOSHKENT AXBOROT TEXNOLOGIYALARI UNIVERSITETI SAMARQAND FILIALI


"Axborot xavfsizligi" kafedrasi


Fan: Kriptografiya 1
Amaliy ish №4


Guruh: AX19-09


Talaba: Xudayberdiyev G’
Rahbar: Shakarov A

Samarqand-2021 y.


Mavzu: RC4 shifrlash algoritmi yordamida M ma’lumotlarni shifrlash.





8

M(13,11,74)

K(1,5,9,2)

Nazariya:
RC4 shifrlash algoritmi haqida (oqimli)
RC4 shifrlash algoritmi ma'lumotlar grafiklarining yuklamasini buzish uchun ishlatiladi. RC4-kompyuter tarmoqlarida (masalan, SSL protokolida va Windows NT-da parollarni shifrlash uchun) turli xil axborotni himoya qilish tizimlarida keng qo’llaniladigan oqim shifrlash. Shifrlash RSA Security Inc. tomonidan ishlab chiqilgan. Va uni ishlatish uchun litsenziya talab qilinadi. RC4 muallifi Ronald Rivest (Ronald Rivest). RC Ron’s Code yoki Rivest’s Cipher deb ataladi. 1995gacha RC4 kodi hech qanday joyda chop etilmadi.
Rc4 algoritmi parametrlangan kalit asosida yagona taqsimlangan psevdosluchaynyh bit generatoriga asoslangan har qanday oqim shifrlash kabi qurilgan. Shifrlashning asosiy afzalliklari-yuqori tezlik va o’zgaruvchan kalit hajmi. Odatda, har bir matn baytiga 19 ta mashina buyrug’i bajariladi.
RC4-aslida uning blok hajmi bilan belgilanadi algoritmlar bir sinf. Bu parametr n algoritm uchun so'z hajmi hisoblanadi. Odatda, n = 8, lekin tahlil qilish uchun uni kamaytirish mumkin. Biroq, xavfsizlikni oshirish uchun bu qiymatni oshirish kerak. Ichki davlat RC4 bir qator hajmi iborat 2n so'zlar va ikki metr, har bir so'z hajmi. Qator s-box sifatida tanilgan, va keyin S sifatida belgilangan bo'ladi. Ikki metr i va j orqali belgilanadi.

Dastur kodi:


#include
#include
#include
using namespace std;

vector permute(vector, vector);


string encrypt(vectors , vector t, string p);
string decrypt(vectors, vector t, string p);

int main() {


string plaintext = "13 11 74";


string plaintext2 = "Giyosiddin Xudayberdiyev";
vector S(256); //For loop uchun maximal qiymat sifatida kiritiladi
vector T(256); // Kiritilgan qiymatning baytlar soniga ko'ra kalit generatsiya qiladi bu uchun maximal qiymat 256

int key[] = { 1,2,3,6 };


int key2[] = { 5,7,8,9 };

int tmp = 0;


for (int i = 0; i < 256;i++) {
S[i] = i;
T[i] = key[( i % (sizeof(key)/sizeof(*key)) )];
}

S = permute(S, T);


for (int i = 0; i < 256 ;i++) {


cout << S[i] << " ";
if ((i + 1) % 16 == 0)
cout << endl;
}

cout << endl;


string p = encrypt(S, T, plaintext);
cout << "Ochiq matn: " << plaintext << endl;
cout << "Shifrlangan matn: " << " " << p << endl;
cout << "Deshifrlangan matn: " << decrypt(S, T, p) << endl << endl;
tmp = 0;
for (int i = 0; i < 256;i++) {
S[i] = i;
T[i] = key2[(i % (sizeof(key) / sizeof(*key)))];
}

S = permute(S, T);


for (int i = 0; i < 256;i++) {


cout << S[i] << " ";
if ((i + 1) % 16 == 0)
cout << endl;
}

cout << endl;


p = encrypt(S, T, plaintext2);
cout << "Matn 2: " << plaintext2 << endl;
cout << "Shifrlangan matn: " << p << endl;
cout << "Deshifrlangan matn: "<system("pause");
return 0;
}

string decrypt(vectors, vector t, string p) {


int i = 0;
int j = 0;
int tmp = 0;
int k = 0;

int b;
int c;


int * plain = new int[p.length()];


string plain_T;

for (int r = 0; r < p.length(); r++) {


i = (i + 1) % 256;


j = (j + s[i]) % 256;

b = s[i];


s[i] = s[j];
s[j] = b;

tmp = (s[i] + s[j]) % 256;


k = s[tmp];

c = ((int)p[r] ^ k);


plain[r] = c;


plain_T += (char)plain[r];


}
return plain_T;


}

string encrypt(vectors, vector t, string p) {


int i = 0;


int j = 0;
int tmp = 0;
int k = 0;
int b;
int c;

int * cipher = new int [p.length()];


string cipher_T;
cout << "Generatsiyalangan kalit: ";

for (int r = 0; r < p.length(); r++) {


i = (i + 1) % 256;


j = (j + s[i]) % 256;
b = s[i];
s[i] = s[j];
s[j] = b;

tmp = (s[i] + s[j]) % 256;


k = s[tmp];

cout << k << " ";


c = ((int)p[r] ^ k);

cipher[r] = c;


cipher_T += (char)cipher[r];


}
cout << endl;


return cipher_T;
}
vector permute(vector s, vector t) {
int j = 0;
int tmp;
for (int i = 0; i< 256; i++) {
j = (j + s[i] + t[i]) % 256;

tmp = s[i];


s[i] = s[j];
s[j] = tmp;
}
return s;
}
Dasturdan olingan natija:




Download 482,82 Kb.

Do'stlaringiz bilan baham:




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

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish