Jizzax filiali amaliy matematika fakulteti «kompyuter ilmlari va dasturlash texnologiyalari»


erase(const g) - mapdan "g" kalit qiymatini olib tashlaydi clear


Download 1.65 Mb.
bet7/8
Sana17.06.2023
Hajmi1.65 Mb.
#1533582
1   2   3   4   5   6   7   8
Bog'liq
struktura 2 maruza

erase(const g) - mapdan "g" kalit qiymatini olib tashlaydi
clear() - mapdagi barcha elementlarni olib tashlaydi
Kolliziya muammosi. Tabiiyki, savol tugʻiladi, nega biz bir qator katakchaga ikki marta kirib olishimiz mumkin emas, chunki har bir elementga mutlaqo boshqacha natural sonlarni taqqoslaydigan funksiyani taqdim etish shunchaki mumkin emas. Kolliziya muammosi xesh funksiyasi turli elementlar uchun bir xil natural sonni hosil qilganda paydo boʻladigan muammo.
Ushbu muammoning bir nechta yechimlari mavjud: zanjirlash usuli va ikki marta xeshlash usuli.
C# widows form muhitida xesh funksiyalarni realizatsiya qilish
SHA-256 raqamli imzolar, xabarlarni autentifikatsiya qilish kodlari (MAC) va boshqa xavfsizlik protokollari kabi turli xil xavfsizlik dasturlarida keng qoʻllaniladi. U Bitcoin kabi kriptovalyutalarda ham qoʻllaniladi, chunki u tranzaktsiyalarni tekshirish va firibgarlikning oldini olish uchun xavfsiz usulni taʻminlaydi. Bundan tashqari, SHA-256 parollar, kredit karta raqamlari va boshqa shaxsiy maʼlumotlar kabi maxfiy maʼlumotlarning himoyasi va maxfiyligini taʼminlaydi.
SHA-256 funksiya yordamida “Salom ” sozini xeshlaymiz:
C# widows form muhiti.


MD5 (Message Digest Algoritm 5) keng qoʻllaniladigan kriptografik xesh funksiyasidir. U 128 bitli xesh qiymatini ishlab chiqarish uchun ishlatiladi, bu odatda 32 xonali oʻn oltilik raqam sifatida taqdim etiladi.
MD5 ixtiyoriy uzunlikdagi kirish xabarini oladi va sobit oʻlchamdagi chiqish xesh qiymatini ishlab chiqaradi, bu esa asl xabarni aniqlashga yordam beradi. Xesh funksiyasi bir tomonlama boʻlib, asl xabarni uning xesh qiymatidan qaytarib boʻlmaydi.
MD5 raqamli fayllar yoki parollar yaxlitligini tekshirish kabi turli maqsadlarda ishlatilishi mumkin. Odatda raqamli sud ekspertizasi, ma‘lumotlarni tahlil qilish va kompyuter xavfsizligi dasturlarida qoʻllaniladi. Biroq, MD5ʻning kriptografik kamchiliklari borligi koʻrsatilgan va endi ayrim xavfsizlik ilovalarida foydalanish tavsiya etilmaydi.
C# da biz System.Security.Cryptography nom maydonidagi MD5 sinfidan foydalanib, MD5 xeshini yaratishingiz mumkin. Ushbu sinfning namunasini yaratganingizdan soʻng, MD5 xesh qiymatini hisoblash uchun unga bayt massivi yoki ma‘lumotlar oqimini oʻtkazishingiz mumkin.


DJBX33A odatda kriptografik boʻlmagan maqsadlarda qoʻllaniladigan xesh funksiyasidir. Bu berilgan kirish qatoridan 32 bitli xesh qiymatini yaratuvchi oddiy va tezkor algoritm. Algoritm Daniel J. Bernshteyn tomonidan ishlab chiqilgan, shuning uchun "DJBX" nomini oldi va uning oldingi DJBX31A funktsiyasini takomillashtirishdir. DJBX33A algoritmi boshlangʻich xesh qiymati 5381 dan boshlab, soʻngra kiritilgan belgilarning ASCII qiymatlari asosida bir qator siljishlar va qoʻshimchalar yordamida qiymatni iterativ ravishda yangilash orqali ishlaydi. DJBX33A toʻqnashuv hujumlariga moyilligi tufayli kriptografik ilovalar uchun mos boʻlmasa-da, u hali ham ma‘lumotlarni indekslash va qidirish jadvallari kabi ilovalarda keng qoʻllaniladi.






E’tibor bering, agar ikkita satr teng boʻlsa, ularning xesh qiymatlari ham teng boʻlishi kerak. Ammo buning teskari boʻlishi shart emas.
Polinomli haddeleme xesh funksiyasi Polinomli haddeleme xesh funksiyasi faqat koʻpaytirish va qoʻshimchalardan foydalanadigan xesh funksiyasidir. Funksiya quyidagicha:

y oki oddiygina,
ya‘ni


Funksiyaga kirish  uzunlikdagi satrdir  p va m baʻzi musbat sonlar.
Tanlash p va m hash funktsiyasining ishlashi va xavfsizligiga taʻsir qiladi.
Agar satr s faqat kichik harflardan iborat boʻlsa, unda p= 31 yaxshi tanlovdir.
Raqobatbardosh dasturchilar uchun kattaroq qiymatdan foydalanishni afzal koʻradilar p. Masalan 29791, , 11111, 111111.m ikki kalitning toʻqnashuvi (bir xil xeshni hosil qilish) ehtimoli deyarli ga teng boʻlgani uchun katta bosh boʻlishi shart 1/m. uchun keng foydalaniladigan 109 +7 qiymatlardir .109 +9m
Funksiyaning chiqishi qatorning xesh qiymati boʻlib, s u oʻrtasida 0 va (m-1) oʻz ichiga oladi.
String xeshlash muammosi soʻz yoki jumla kabi belgilar qatorini olish va uni xeshlash funksiyasi orqali raqamli qiymatga aylantirishni oʻz ichiga oladi. Bu raqamli qiymatdan keyin tenglik uchun satrlarni solishtirish yoki xesh-jadvallar kabi maʼlumotlar tuzilmalarida indekslash maqsadida foydalanish mumkin.
Umumiy xeshlash funksiyalaridan biri qatordagi belgilarning ASCII yoki Unicode qiymatlari asosida xesh qiymatini yaratuvchi Polynomial Rolling Hash funktsiyasidir. Bu funksiya quyidagicha aniqlanadi: hash(lar) = (s0 * p^(n-1)) + (s1 * p^(n-2)) + ... + (sn-1 * p^0 ) bu yerda s - satr, n - s uzunligi va p - funksiya uchun tanlangan tub son.
Boshqa xeshlash funksiyalari MD5 va SHA-1 algoritmlarini oʻz ichiga oladi, ular kirish qatoriga asoslangan noyob xesh qiymatini yaratadi.
Shuni E’tiborga olish kerakki, turli xil kiritish satrlari bir xil xesh qiymatini hosil qiladigan xesh funksiyalari bilan toʻqnashuvlar yuz berishi mumkin. Shuning uchun, toʻqnashuvlarni hal qilish uchun xesh-jadvallarni zanjirlash yoki tekshirish kabi usullardan foydalaniladi.



Download 1.65 Mb.

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




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