Ochiq kalitli shifrlash algoritmini dasturini ishlab chiqish




Download 134.97 Kb.
bet9/10
Sana30.05.2023
Hajmi134.97 Kb.
#67389
1   2   3   4   5   6   7   8   9   10
Bog'liq
Abdurasulov Alijon-Individual-2(beta)
Kompyuter arxitekturasi, kompyuter arxitekturasi 2-topshiriq (1), OLIMPIADA, Cholponning, 7-m.Qattiq diskni klonlash, 14-m.Video tizim va qurilmalar ishlashni diagnostikasi qilish, 9-m.Tizim bloklarining turlari., Jahon iqtisodiyotining globallashuvi to\'G\'risidagi ilmiy konseps, 2-sinf Matematika fanidan Bo\'lishga doir masalalar dars ishlanma 1, Substations (35 kV) eng, gilam yuvish, Maydonlar nazariyasi, Doc5, Множественное число имен существительных-fayllar.org
2.3. Ochiq kalitli shifrlash algoritmini dasturini ishlab chiqish.

Ochiq kalitli shifrlash algoritmini dasturini ishlab chiqish uchun quyidagi qadamlarni bajaring:


1. Algoritmda ishlatiladigan formulalarni o'rganing. Ochiq kalitli shifrlash algoritmlari uchun formulalar xamda qo'shimcha protokollar mavjud bo'ladi. Shu sababli, algoritmda ishlatiladigan formulalarni tushunish juda muhimdir.
2. Maxfiy va ochiq kalitni yaratish. Algoritmda ishlatiladigan ochiq va maxfiy kalitlarni yaratishingiz kerak. Maxfiy kalit, yagona foydalanuvchi tomonidan yaratiladi va ochiq kalit orqali maxfiy kalitni ochiq kalitga o'tkazish mumkin emas.
3. Shifrlash va de-shifrlash amallarini yaratish. Algoritmda shifrlash va de-shifrlash amallari uchun funksiyalar yaratish kerak. Shifrlash funksiyasi, shifrlangan ma'lumotni ochiq kalit va maxfiy kalit orqalishifrlash uchun ishlatiladi. De-shifrlash funksiyasi esa shifrlangan ma'lumotni ochiq kalit va maxfiy kalit orqali de-shifrlash uchun ishlatiladi.
4. Dastur interfeysini yaratish. Ochiq kalitli shifrlash algoritmini dasturini ishlab chiqish uchun, foydalanuvchiga algoritmdan foydalanish imkonini beruvchi interfeys yaratilishi kerak. Bu interfeys yordamida foydalanuvchi shifrlangan ma'lumotni kiritadi, ochiq kalitni kiritadi va shifrlangan ma'lumotni shifrlash yoki de-shifrlash uchun tanlov qiladi.
5. Dasturni tekshirish va to'g'irlash. Dastur ishga tushirilgandan so'ng, dasturni tekshirish va to'g'irlash kerak. Bu narsa, dasturning to'g'ri ishlashi va foydalanuvchiga ko'proq xavfsizlik ta'minlash uchun juda muhimdir.
Ochiq kalitlishifrlash algoritmini dasturini C++ dasturlash tili yordamida quyidagi kod orqali yaratishingiz mumkin:

#include


#include
#include
#include
using namespace std;
typedef struct {
int d;
int x;
int y;
} EE;
EE extended_euclid(int a, int b) {
EE ee1, ee2, ee3;
if (b == 0) {
ee1.d = a;
ee1.x = 1;
ee1.y = 0;
return ee1;
} else {
ee2 = extended_euclid(b, a % b);
ee3.d = ee2.d;
ee3.x = ee2.y;
ee3.y = ee2.x - floor(a / b) * ee2.y;
return ee3;
}
}
int gcd(int fi, int e)
{
// a va b ning minimalini topish.
int result = min(fi, e);
while (result > 0) {
if (fi % result == 0 && e % result == 0) {
break;
}
result--;
}

// a va b ning o’zaro tub ekanligini qaytarish


return result;
}
int modulo(int x, int N){
return (x % N + N) % N;
}
void decimal_to_binary(int op1, int aOp[]){
int result, i = 0;
do{
result = op1 % 2;
op1 /= 2;
aOp[i] = result;
i++;
}while(op1 > 0);
}
int modular_exponentiation(int a, int b, int n){
int *bb;
int count = 0, c = 0, d = 1, i;
//bning ikkilik o'lchamini topish
count = (int) (log(b)/log(2)) + 1;
bb = (int *) malloc(sizeof(int*) * count);
decimal_to_binary(b, bb);
for (i = count - 1; i >= 0; i--) {
c = 2 * c;
d = (d*d) % n;
if (bb[i] == 1) {
c = c + 1;
d = (d*a) % n;
}
}
return d;
}
int get_d(int e, int fi){
EE ee;
ee = extended_euclid(e, fi);
return modulo(ee.x, fi);
}
int main(int argc, char* argv[]) {
int p, q, fi, n, e, d, c, m;
printf("p ning qiymatini kiriting: ");
scanf("%d", &p);
printf("q ning qiymatini kiriting: ");
scanf("%d", &q);
n = p*q;
fi = (p - 1) * (q - 1);
printf("e ning qiymatini kiriting: ");
scanf("%d", &e);
printf("fi(N): %d\n", fi);
if(gcd(fi, e) == 1){
d = get_d(e, fi);
printf("Shaxsiy kalit: (n = %d, d = %d)\n", n, d);
printf("Shifrlash uchun xabarni kiriting: ");
scanf("%d", &m);
c = modular_exponentiation(m, e, n);
printf("Shifrlangan xabar: %d\n", c);
m = modular_exponentiation(c, d, n);
printf("deshifrlangan xabar %d\n", m);
}
else{
printf("fi(N) va e o'zaro tub emas !!!");
}

return 0;


}

Bu kod, p, q va e tub sonlarni tanlash, n va fi ni hisoblash, ochiq va maxfiy kalitlarni topish, shifrlash va de-shifrlash amallarini bajarishni o'z ichiga oladi. C++ dasturlash tili yordamida yaratilgan bu kod, RSA algoritmini ishga tushiradi va shifrlangan ma'lumotni de-shifrlash imkonini beradi.


Xulosa.
Ochiq kalitli shifrlash algoritmlari dasturiy modullari, ma’lumotlarni himoyalash uchun keng ko‘lamda foydalaniladigan vositalardir. Bu algoritmlar, matematik va kompyuterning bir qator asosiy konseptlariga asoslangan holda, ma’lumotni himoya qilish uchun maxsus tartibda tuzilganlar.
Ochiq kalitli shifrlash algoritmlari quyidagi turlarda bo‘ladi:
1. Simmetrik algoritmlar: Bu algoritmlarda, ma’lumotni shifrlash uchun yagona kalit foydalaniladi. Bu kalit, ma’lumotni shifrlash va unshifrlash uchun bir xil ishlatiladi. Masalan, DES, AES va Blowfish kabi shifrlash algoritmlari bu turga kiradi.
2. Asimmetrik algoritmlar: Bu algoritmlarda esa, shifrlash uchun ikkita kalit foydalaniladi. Bu kalitlar, o‘zaro bog‘lanishli bo‘lib, ma’lumotni shifrlash va unshifrlash uchun farqli ishlatiladi. Bunday algoritmlar, Maxfiylikni ta’minlashda keng qo‘llaniladi.
3. Hash algoritmlar: Bu algoritmlar, ma'lumotlar to'plamini (hash) tuzish uchun ishlatiladi. Ma'lumotlar to'plami, ma'lumotni qaytadan tiklash uchun ishlatiladi va ma'lumotni to'g'ridan-to'g'ri o'zgartirib yuborishga imkon beradi. Hash algoritmlarning namunalariga misol sifatida, SHA-1, SHA-2, MD5 va Whirlpool kabi algoritmlar kiritiladi. Shifrlash algoritmlari, ma'lumotlar himoyalashining katta ahamiyatiga ega bo‘lib, banklar, hukumat tashkilotlari va boshqa ko‘p tashkilotlar kabi muhim sohalarda intensiv tarqatiladi. Bu algoritmlar, ma'lumotlar himoyalashida juda muhim bir ahamiyatga ega bo‘lib, maxfiylikni ta’minlash, yolg‘onlik va xavfsizlikni ta’minlash uchun foydalaniladi. Shifrlash algoritmlarini ishlab chiqish, dasturiy modullarni yaratish, ma’lumotlar himoyalash sohasidagi ko‘p muammolarga yechim topishga yordam beradi. Bu modullar, maxfiylikni ta’minlashda keng qo‘llaniladi va xavfsizlikning yuqori darajada ta’minlashga imkon beradi. Ochiq kalitli shifrlash algoritmlari dasturiy modullari, matematik va kompyuter ilmi asoslari asosida tuzilgan holda, ma'lumotlar himoyalash sohasida juda muhim bir ahamiyatga ega bo‘lib, shaxsiy va tijoratiy ma'lumotlar kabi maxfiy ma'lumotlarni himoyalashda juda katta yordam beradi.



Download 134.97 Kb.
1   2   3   4   5   6   7   8   9   10




Download 134.97 Kb.

Bosh sahifa
Aloqalar

    Bosh sahifa



Ochiq kalitli shifrlash algoritmini dasturini ishlab chiqish

Download 134.97 Kb.