uy - Smart TV
Xeshdan foydalanish. Xesh-funksiyalar: tushuncha va asoslar

Xesh - bu ma'lumotlarga murojaat qilishning maxsus usuli (ma'lum bir tartibga solish algoritmi) noyob kalitlari bilan ( kalit ) kerakli ma'lumotlarni tezda topish uchun..

Asosiy tushunchalar

Xesh jadvali

Xesh-jadval - bu ba'zi bir funksiya (Xesh funktsiyasi) tomonidan belgilangan maxsus manzilga ega muntazam massiv.

Xesh funktsiyasi

Ma'lumotlar elementining kalitini jadvaldagi ba'zi indekslarga moslashtiradigan funksiya ( hash jadvali), chaqirildi xeshlash funktsiyasi yoki hash funktsiyasi :

i = h (kalit );

Qayerda kalit- konvertatsiya qilinadigan kalit, i- natijada olingan jadval indeksi, ya'ni. kalit, masalan, butun sonlar to'plamida ko'rsatiladi ( xesh manzillar ), keyinchalik ma'lumotlarga kirish uchun foydalaniladi.

Shu tarzda xeshlash - bu maxsus jadvaldagi o'rnini aniqlash uchun kalit qiymatidan foydalanishni o'z ichiga olgan usul.

Biroq, tartibga solish funktsiyasi mumkin bir nechta noyob kalit qiymatlari bir xil pozitsiya qiymatini beradi i hash jadvalida. Ikki yoki undan ortiq kalitlar bir xil indeksni (xesh-manzil) baham ko'rgan vaziyat chaqiriladi to'qnashuv (mojaro) xeshlashda.Shuning uchun xeshlash sxemasi o'z ichiga olishi kerak nizolarni hal qilish algoritmi , agar pozitsiya bo'lsa, harakatlar tartibini belgilaydi i=h(kalit) allaqachon boshqa kalitli yozuv bilan band bo'lib chiqadi.

Amaldagi xesh funktsiyasiga qarab, ko'plab xesh sxemalari mavjud. h(kalit) va nizolarni hal qilish algoritmlari.

Xesh funktsiyasini belgilashning eng keng tarqalgan usuli: Bo'linish usuli.

Dastlabki ma'lumotlar: - ba'zi bir butun kalit kalit va stol o'lchami m. Ushbu funktsiyaning natijasi, bu kalit jadvalning o'lchamiga bo'linganda qoldiqdir. C/C++ dasturlash tilida bunday funksiyaning umumiy ko‘rinishi quyidagicha:

int h (int kalit , int m ) {

Uchun m= 10 xesh funksiyasi kalitning eng kam ahamiyatli raqamini qaytaradi.

m= 100 uchun xesh funksiyasi kalitning eng muhim ikkita raqamini qaytaradi.

Ko'rib chiqilgan misollarda hash funktsiyasi i=h(kalit) faqat kalit yordamida yozuvni qidirish (yoki dastlab jadvalga joylashtirish) kerak bo'lgan pozitsiyani belgilaydi kalit. Keyinchalik, ba'zi bir xeshlash sxemasidan (algoritm) foydalanishingiz kerak.

Xesh sxemalari

Ko'pgina muammolarda ikki yoki undan ortiq kalitlar bir xil xeshga ega, ammo ular xesh jadvalidagi bir xil katakni egallamaydi. Ikkita mumkin bo'lgan variant mavjud: yangi kalit uchun boshqa joyni toping yoki ushbu indeksga mos keladigan barcha kalitlarni o'z ichiga olgan har bir xesh jadvali indeksi uchun alohida ro'yxat yarating.

Ushbu variantlar ikkita klassik xeshlash sxemasini ifodalaydi:

    chiziqli tanlab olish bilan ochiq manzillash usuli yordamida xeshlash - chiziqli prob ochiq murojaat qilish.

    zanjir usuli yordamida xeshlash (ro'yxatlar bilan) yoki ko'p o'lchovli xeshlash - zanjirband qilish bilan alohida ro'yxatlar;

Chiziqli tanlama bilan ochiq adreslash usuli . Dastlab, oddiy bir o'lchovli massiv bo'lgan xesh-jadvalning barcha kataklari band emas deb belgilanadi. Shuning uchun, yangi kalit qo'shganda, berilgan katakning bandligi tekshiriladi. Agar hujayra band bo'lsa, algoritm bo'sh joy topilmaguncha aylana bo'ylab qidiradi ("ochiq manzil").

Bular. bir hil kalitlarga ega bo'lgan elementlar olingan indeks yaqiniga joylashtiriladi.

Kelajakda, qidiruvda, birinchi navbatda kalit bo'yicha pozitsiyani toping i jadvalda va agar kalit mos kelmasa, keyingi qidiruv nizolarni hal qilish algoritmiga muvofiq, pozitsiyadan boshlab amalga oshiriladi. i. .

Zanjir usuli ustun strategiya hisoblanadi . Ushbu holatda i tanlangan xesh funksiyasidan olingan h(kalit)=i, ro'yxatlarning xesh jadvalida indeks sifatida ko'rib chiqiladi, ya'ni. birinchi navbatda kalit kalit keyingi yozuv joylashuv bilan taqqoslanadi i = h(kalit) jadvallar. Agar pozitsiya bo'sh bo'lsa, unda kaliti bo'lgan element joylashtiriladi kalit, agar u band bo'lsa, nizolarni hal qilish algoritmi ishlab chiqiladi, buning natijasida bunday kalitlar ro'yxatda boshlanadi. i-xesh jadvalining o'sha katagi. Masalan

Natijada, bizda bog'langan ro'yxatlar yoki daraxtlar qatori jadvali mavjud.

Xesh-jadvalni to'ldirish (o'qish) jarayoni oddiy, ammo elementlarga kirish quyidagi operatsiyalarni talab qiladi:

Indeksni hisoblash i;

Tegishli mavzuni qidiring.

Yangi element qo'shganda qidiruvni yaxshilash uchun siz qo'shish algoritmini ro'yxatning oxirida emas, balki buyurtma bilan ishlatishingiz mumkin, ya'ni. kerakli joyga element qo'shing.

Chiziqli tanlash bilan to'g'ridan-to'g'ri adreslash usulini amalga oshirishga misol . Manba ma'lumotlari 7 ta yozuvdan iborat (oddiylik uchun ma'lumot qismi faqat butun son ma'lumotlaridan iborat), e'lon qilingan tuzilma turi:

int kaliti; // Kalit

int info; // Ma `lumot

(59.1), (70.3), (96.5), (81.7), (13.8), (41.2), (79.9); xesh-jadval hajmi m=10.

Xesh funktsiyasi i=h(ma'lumotlar) =ma'lumotlar.kalit% 10; bular. 10 ga bo'linishning qolgan qismi - i.

Dastlabki ma'lumotlarga asoslanib, biz hash jadvalini ketma-ket to'ldiramiz.

Birinchi beshta kalitni xeshlash turli indekslarni (xesh manzillarini) beradi:

Birinchi to'qnashuv 81 va 41 tugmalari o'rtasida sodir bo'ladi - indeks 1 bo'lgan joy egallangan. Shuning uchun, biz eng yaqin bo'sh joyni topish uchun xesh jadvalini ko'rib chiqamiz, bu holda shunday i = 2.

Keyingi kalit 79 ham to'qnashuvni keltirib chiqaradi: 9-pozitsiya allaqachon ishg'ol qilingan. Algoritmning samaradorligi keskin pasayadi, chunki bo'sh joyni topish uchun 6 ta namuna (taqqoslash) oldi, indeks bepul bo'lib chiqdi i= 4.

Ushbu usul namunalarining umumiy soni har bir element uchun 1 dan n-1 gacha bo'lgan namunadir, bu erda n - xesh jadvalining o'lchami.

Zanjirli usulni amalga oshirish oldingi misol uchun. Biz ro'yxat elementi uchun tuzilgan turni e'lon qilamiz (bir yo'nalishli):

int kaliti; // Kalit

int info; // Ma `lumot

zap*Keyingi; // Ro'yxatdagi keyingi elementga ko'rsatgich

Dastlabki ma'lumotlarga asoslanib, biz xesh jadvalini ketma-ket to'ldiramiz, agar joy allaqachon olingan bo'lsa, ro'yxat oxiriga yangi element qo'shamiz.

Birinchi beshta kalitni xeshlash, avvalgi holatda bo'lgani kabi, turli indekslarni (xesh-manzillarni) beradi: 9, 0, 6, 1 va 3.

To'qnashuv sodir bo'lganda, ro'yxat oxiriga yangi element qo'shiladi. Shuning uchun 41-kalitli element 81-kalitli elementdan keyin, 79-kalitli element esa 59-kalitli elementdan keyin joylashtiriladi.

Shaxsiy vazifalar

1. Ikkilik daraxtlar. Tasodifiy sonlar sensori dasturidan foydalanib, 1 dan 99 gacha bo'lgan 10 ta qiymatni oling va ikkilik daraxtni yarating.

Aylanma yo'lni amalga oshiring:

1.a Chapdan o'ngga o'tish: Chap-Ildiz-O'ng: avval chap pastki daraxtga, keyin ildizga va nihoyat o'ng pastki daraxtga tashrif buyuramiz.

(Yoki aksincha, o'ngdan chapga: o'ngga - ildiz - chapga)

1.b Yuqoridan pastga o'tish: Ildiz-Chap-O'ng: biz pastki daraxtlarga ildizga tashrif buyuramiz.

1.c Pastdan yuqoriga o'tish: Chap-O'ng-Ildiz: pastki daraxtlardan keyin ildizga tashrif buyuring

Xeshlash(inglizcha xeshlashdan) - ixtiyoriy uzunlikdagi kirish ma'lumotlarini kirish ma'lumotlaridagi o'zgarish chiqish ma'lumotlarining oldindan aytib bo'lmaydigan o'zgarishiga olib keladigan tarzda sobit uzunlikdagi chiqish bit qatoriga aylantirish. Bunday transformatsiyalar xesh funksiyalar yoki konvolyutsiya funksiyalari deb ham ataladi va ularning natijalari xesh yoki xesh-kod deb ataladi.

Hash muammolari

Parolni tekshirish

Bugungi kunda parollarni maqsadli ob'ektlarda saqlash xavfli, chunki u yerdan ular tajovuzkorlar tomonidan o'g'irlanishi va o'z maqsadlari uchun ishlatilishi mumkin. Shuning uchun, u erda faqat parol xeshlari saqlanadi, ularni qaytarib bo'lmaydi va parolni topib bo'lmaydi. Parolni tekshirishda kiritilgan parol xeshlanadi va xesh qiymatlari solishtiriladi.

Eng keng tarqalgan algoritmlar: MD5 (MD4, MD2), SHA1.

Ma'lumotlarni qidirishni tezlashtiring

Masalan, ma'lumotlar bazasida matn maydonlarini yozishda ularning xesh-kodi hisoblanishi va alohida maydonga yozilishi mumkin. Keyin, ma'lumotlarni qidirishda siz ma'lumotlarning xesh kodini hisoblashingiz va butun ma'lumotlar bazasi bo'ylab emas, balki uning faqat bitta bo'limi orqali qidirishingiz kerak bo'ladi.

Tekshirish summasini hisoblash.

Xatolar uchun paketni tekshirish uchun ko'pincha nazorat summasi ishlatiladi, bu xabar bilan birga uzatiladi. Qabul qiluvchining oxirida, xabar qabul qilinganda, nazorat summasi yana hisoblab chiqiladi va agar qiymat uzatilgan qiymatga to'g'ri kelsa, u holda xabar xatosiz uzatiladi.

Elektron raqamli imzoni hisoblash.

Elektron raqamli imzo elektron hujjatni qalbakilashtirishdan himoya qilish uchun ishlatiladi. Maxfiy kalit yordamida ma'lumotni o'zgartirish natijasida olingan, bu sizga imzo kaliti egasini aniqlash va elektron hujjatdagi ma'lumotlarning buzilishi yo'qligini aniqlash imkonini beradi.

Xeshlash algoritmiga qo'yiladigan talablar

    Xesh funktsiyasi har qanday o'lchamdagi argumentga qo'llanilishi mumkin.

    Chiqish qiymati belgilangan o'lchamga ega.

    Xesh funktsiyasini hisoblash tezligi shunday bo'lishi kerakki, xesh funktsiyasidan foydalanganda raqamli imzoni yaratish tezligi xabarning o'zidan foydalanganda raqamli imzoni yaratish tezligidan sezilarli darajada oshib ketishi kerak.

    Xesh funksiyasi bir tomonlama funksiyadir. Shunday qilib, har qanday m uchun bunday ochiq matn X, h(X) = m ni topish mumkin emas.

    Ikki xil hujjatning xesh qiymatlari (ularning uzunligidan qat'i nazar) mos kelishi ehtimoli ahamiyatsiz bo'lishi kerak.

AlgoritmM.D.5

MD5(Message Digest 5) 1991 yilda Massachusets Texnologiya Instituti (MIT) xodimi R. Rivest tomonidan ishlab chiqilgan xeshlash algoritmidir.

Algoritmning batafsil tavsifini RFC 1321 da topish mumkin.

Chiqishda algoritm 128 bitli xabarlar dayjestini (barmoq izi) ishlab chiqaradi. Asl xabarning uzunligi har qanday bo'lishi mumkin.

MD5 algoritmi bir xil xesh summasi bilan ikkita xabar yaratish imkoniyati kabi ba'zi hujumlarga nisbatan zaifdir, shuning uchun uni yangi loyihalarda ishlatish tavsiya etilmaydi.

AlgoritmSHA-1

SHA (Secure Hash Algorithm) xesh algoritmi 1992 yilda AQSh standarti sifatida qabul qilingan.

RFC 3174 da tavsiflangan.

Raqamli imzo algoritmi bilan birgalikda foydalanish uchun mo'ljallangan. To'g'ri matn kiritilganda, algoritm 160 bitli chiqish xabarini (dijest) ishlab chiqaradi, bu raqamli imzoni yaratish uchun ishlatiladi.

SHA xeshlash algoritmi xavfsiz deb ataladi, chunki u shunday tuzilganki, ma'lum bir dayjestga mos keladigan xabarni qayta tiklash, shuningdek, bir xil dayjestni beradigan ikki xil xabarni topish mumkin emas.

SHA va MD5 algoritmlari o'rtasidagi farqlar quyidagicha:

1. SHA 160 bitli xesh qiymatini ishlab chiqaradi va 128 bitli xesh qiymatini ishlab chiqaradigan MD5 ga qaraganda qo'pol kuch hujumlariga chidamliroq.

2. SHA siqish funktsiyasi MD5 da bo'lgani kabi 64 emas, 80 ta turni o'z ichiga oladi.

3. Aralashtirish jarayoni murakkab.

Algoritmlar oilasiSHA-2

Subfamily algoritmlari SHA-2 , xuddi algoritm kabi SHA-1 , AQSh Milliy Xavfsizlik Agentligi tomonidan ishlab chiqilgan va Milliy Standartlar va Texnologiyalar Instituti (NIST) tomonidan 2002 yil avgust oyida FIPS PUB 180-2 ma'lumotlarni qayta ishlash federal standartida nashr etilgan.

SHA-2 oilasining algoritmlari qo'llaniladi SSL, SSH, S/ MIME, DNSSEC, X.509 , PGP, IPSec, fayllarni tarmoq orqali uzatishda ( BitTorrent).

Algoritmlarxeshlash

MD5 md5 = yangi MD5CryptoServiceProvider();

string stringToHash = "Bu yumshoq frantsuz rulolaridan yana bir oz yeb, choy iching";

bayt xesh = md5.ComputeHash(Encoding.Unicode.GetBytes(stringToHash));

Console.WriteLine(ByteHelper.ByteArrayToHexString(xesh));

string anotherStringToHash = "Tez jigarrang tulki dangasa itning ustidan sakrab o'tadi";

HashAlgorithm sha512 = HashAlgorithm.Create("SHA512");

Console.WriteLine(

ByteHelper.ByteArrayToHexString(

sha512.ComputeHash(

Encoding.Unicode.GetBytes(

Xeshlash yoki xeshlash(inglizcha xeshlash) - ixtiyoriy uzunlikdagi kirish ma'lumotlari massivini ma'lum bir algoritm tomonidan amalga oshiriladigan, belgilangan uzunlikdagi (chiqish) bit qatoriga aylantirish. Algoritmni amalga oshiradigan va o'zgartirishni amalga oshiradigan funktsiya deyiladi. hash funktsiyasi "yoki" konvolyutsiya funktsiyasi " Asl ma'lumotlar kirish massivi deb ataladi " kalit"yoki" xabar " Transformatsiyaning natijasi (chiqish) " hash », « hash kodi », « hash summasi ", "xabar xulosasi".

Hashing quyidagi hollarda qo'llaniladi:

  • assotsiativ massivlarni qurishda;
  • bir qator ma'lumotlar to'plamida dublikatlarni qidirishda;
  • ma'lumotlar to'plamlari uchun noyob identifikatorlarni qurishda;
  • ma'lumotlarni saqlash va (yoki) uzatishda yuzaga keladigan xatolarni (tasodifan yoki qasddan kiritilgan) keyinchalik aniqlash uchun ma'lumotlardan (signallardan) nazorat summalarini hisoblashda;
  • parollarni saqlashda himoya tizimlarida xesh-kod ko'rinishida (xesh-kod yordamida parolni tiklash uchun foydalanilgan xesh funktsiyasining teskarisi bo'lgan funksiya talab qilinadi);
  • elektron imzoni ishlab chiqishda (amalda, ko'pincha xabarning o'zi emas, balki uning "xesh tasviri" imzolanadi);
  • va boshq.

Xesh funksiyalarning turlari

"Yaxshi" xesh funktsiyasi ikkitani qondirishi kerak xususiyatlari:

  • tez hisoblash;
  • minimal "to'qnashuvlar" soni.

Keling, quyidagi belgini kiritamiz:

∀ k ∈ (0 ; K) : h (k)< M {\displaystyle \forall k\in (0;\,K):h(k).

"Yomon" xesh-funktsiyaga misol - bu funktsiya M = 1000 (\displaystyle M=1000), bu o'n xonali natural son K (\displaystyle K) solishtiradi uch sonning yigirma xonali kvadratining o'rtasidan tanlangan raqamlar K (\displaystyle K). Ko'rinishidan, "xesh kodlari" qiymatlari bo'lishi kerak teng ravishda orasida taqsimlanadi" 000 "Va" 999 ", lekin " uchun haqiqiy"ma'lumotlar bu faqat agar" kalitlari» chap yoki o‘ng tomonda “ko‘p” nol soni bo‘lmasligi kerak.

Keling, xash-funksiyalarning bir nechta oddiy va ishonchli ilovalarini ko'rib chiqaylik.

Bo'linishga asoslangan "xesh funktsiyalari"

1. "Xesh kodi" barcha mumkin bo'lgan "xeshlar" soniga bo'linishning qolgan qismi sifatida

Xesh funksiyasi "xesh" ni kiritilgan ma'lumotlarni bo'lishning qolgan qismi sifatida hisoblashi mumkin M (\displaystyle M):

h (k) = k mod M (\displaystyle h(k)=k\mod M)

Qayerda M (\displaystyle M)- barcha mumkin bo'lgan "xeshlar" soni (chiqish ma'lumotlari).

Bundan tashqari, bu hatto uchun ham aniq M (\displaystyle M) funksiya qiymati juft bo'lganda ham bo'ladi k (\displaystyle k) va g'alati - g'alati bo'lsa k (\displaystyle k). sifatida ham ishlatilmasligi kerak M (\displaystyle M) kompyuterning raqam tizimining radikali, chunki "xesh-kod" faqat bog'liq bo'ladi bir nechta raqamlar raqamlari k (\displaystyle k), o'ng tomonda joylashgan bo'lib, bu ko'p sonli to'qnashuvlarga olib keladi. Amalda ular odatda oddiyni tanlaydilar M (\displaystyle M); ko'p hollarda bu tanlov juda qoniqarli.

2. “Xesh-kod” natijaviy ko‘phadning koeffitsientlari to‘plami sifatida

Xesh funktsiyasi kirish ma'lumotlarini polinom tomonidan modulga ikki bo'linishni amalga oshirishi mumkin. Ushbu usulda M (\displaystyle M) ikkining kuchi va ikkilik kalitlari bo'lishi kerak ( K = k n - 1 k n - 2. . . k 0 (\displaystyle K=k_(n-1)k_(n-2)...k_(0))) shaklida ifodalanadi polinomlar, koeffitsientlarning qiymatlari "xesh-kod" sifatida qabul qilinadi polinom, kirish ma'lumotlarini bo'lishning qolgan qismi sifatida olinadi K (\displaystyle K) oldindan tanlangan polinomga P (\displaystyle P) daraja m (\displaystyle m):

K (x) mod P (x) = h m - 1 x m - 1 + ⋯ + h 1 x + h 0 (\displaystyle K(x)\mod P(x)=h_(m-1)x^(m- 1)+\nuqtalar +h_(1)x+h_(0)) h (x) = h m - 1 . . . h 1 h 0 (\displaystyle h(x)=h_(m-1)...h_(1)h_(0))

To'g'ri tanlov bilan P(x) (\displaystyle P(x)) deyarli bir xil kalitlar o'rtasida to'qnashuvlarning yo'qligi kafolatlanadi.

Ko'paytirishga asoslangan "xesh funktsiyalari"

Belgi bilan belgilaymiz w (\displaystyle w) mashina so'zi bilan ifodalangan raqamlar soni. Masalan, IBM PC bilan mos keladigan 32 bitli kompyuterlar uchun, w = 2 32 (\displaystyle w=2^(32)).

Keling, bir necha doimiyni tanlaylik A (\displaystyle A) Shuning uchun; ... uchun; ... natijasida A (\displaystyle A) bilan ustun edi w (\displaystyle w). Keyin ko'paytirish yordamida xesh funktsiyasi quyidagicha ko'rinishi mumkin:

h (K) = [ M ⌊ A w ∗ K ⌋ ] (\displaystyle h(K)=\chap)

Bunda ikkilik sanoq sistemasiga ega kompyuterda M (\displaystyle M) ikkining kuchi va h (K) (\displaystyle h(K)) mahsulotning o'ng yarmining eng muhim bitlaridan iborat bo'ladi A ∗ K (\displaystyle A*K).

Bo'lish va ko'paytirishga asoslangan xesh funktsiyalarining afzalliklari orasida haqiqiy kalitlarning tasodifiy bo'lmaganligidan foydali foydalanishni ta'kidlash kerak. Misol uchun, agar tugmalar arifmetik progressiya bo'lsa (masalan, "Ism 1", "Ism 2", "Ism 3" nomlari ketma-ketligi), ko'paytirishdan foydalanadigan xesh funktsiyasi arifmetik progressiyani taxminan arifmetik progressiya bilan taqqoslaydi. tasodifiy vaziyatga nisbatan to'qnashuvlar sonini kamaytiradigan turli xil xesh qiymatlari.

Ko'paytirishdan foydalanadigan xesh funksiyalaridan biri Fibonachchi xeshini ishlatadigan xesh funktsiyasidir. Fibonachchi xashing oltin nisbatning xususiyatlariga asoslanadi. Doimiy sifatida A (\displaystyle A) bu erda eng yaqin butun son ph − 1 ∗ w (\displaystyle \varphi ^(-1)*w) va bilan tenglashing w (\displaystyle w), Qayerda ph (\displaystyle \varphi)- bu oltin nisbat.

O'zgaruvchan uzunlikdagi satrlarni xeshlash

Yuqoridagi usullar, agar bir nechta so'zlardan tashkil topgan kalitlarni yoki o'zgaruvchan uzunlikdagi kalitlarni ko'rib chiqish zarur bo'lsa ham qo'llaniladi. Masalan, modul qo'shilishidan foydalanib, so'zlarni birlashtira olasiz w (\displaystyle w) yoki "eksklyuziv yoki" operatsiyalar. Ushbu printsip asosida ishlaydigan algoritmlardan biri Pearson xesh funktsiyasidir.

Universal xeshlash

To'qnashuvlarni bartaraf etish usullari

To'qnashuv (ba'zan to'qnashuv yoki to'qnashuv) turli xil kirish bloklari uchun bitta xesh funktsiyasi bir xil xesh kodlarini qaytaradigan holatdir.

Xesh-jadvallardagi to'qnashuvlarni bartaraf etish usullari

Hashingni tavsiflovchi dastlabki ishlarning aksariyati xesh jadvallaridagi to'qnashuvlarni bartaraf etish usullariga bag'ishlangan. O'sha paytlarda katta hajmdagi fayllardagi matnni qidirish uchun xesh funksiyalaridan foydalanilgan. Xesh-jadvallardagi to'qnashuvlarni bartaraf etishning ikkita asosiy usuli mavjud:

  1. zanjir usuli (to'g'ridan-to'g'ri bog'lash usuli);
  2. ochiq manzillash usuli.

Zanjirlash usulidan foydalanganda, xesh jadvali "bog'langan kalitlar ro'yxati" va "xesh-kod" juftlarini saqlaydi. Har bir kalit uchun xesh funksiyasi xesh kodini hisoblab chiqadi; agar xesh-kod ilgari olingan bo'lsa (boshqa kalit uchun), kalit xesh-kod bilan bog'langan kalitlarning mavjud ro'yxatiga qo'shiladi; aks holda, yangi "kalitlar ro'yxati" - "xesh-kod" juftligi yaratiladi va kalit yaratilgan ro'yxatga qo'shiladi. Umuman olganda, agar mavjud bo'lsa N (\displaystyle N) kalitlari va M (\displaystyle M) ro'yxatlar, hash jadvalining o'rtacha hajmi bo'ladi N M (\ displaystyle (\ frac (N) (M))). Bunday holda, jadval orqali qidirishda, qidiruv ketma-ket amalga oshiriladigan holatga nisbatan, o'rtacha ish hajmi taxminan kamayadi. M (\displaystyle M) bir marta.

Ochiq manzillash usulidan foydalanganda, xesh-jadval kalit-xesh-kod juftlarini saqlaydi. Har bir kalit uchun xesh funksiyasi xesh kodini hisoblab chiqadi; Jadvalda "kalit" - "xesh-kod" juftligi saqlanadi. Bunday holda, jadvalni qidirishda, bog'langan ro'yxatlar qo'llaniladigan, havolalar ishlatilmaydigan holatga nisbatan, "kalit" - "xesh-kod" juftliklari uchun ketma-ket qidiruv amalga oshiriladi, kerakli kalit topilgandan so'ng qidiruv to'xtaydi. . Jadval katakchalarini skanerlash ketma-ketligi zondlar ketma-ketligi deyiladi.

Kriptografik tuz

Xesh funksiyalaridan foydalanish

Xesh funktsiyalari kriptografiyada, shuningdek, ko'plab ma'lumotlar tuzilmalarida - xesh jadvallarida, Bloom filtrlarida va Dekart daraxtlarida keng qo'llaniladi.

Kriptografik xesh funksiyalari

Mavjud ko'plab xesh funktsiyalari orasida ajratish odatiy holdir

Xesh-funksiyalar o'z qo'llanilishini turli xil axborot texnologiyalari sohalarida topadi. Ular, bir tomondan, foydalanuvchilar o'rtasida ma'lumotlar almashinuvini va turli maqsadlarda foydalaniladigan fayllarni qayta ishlashni sezilarli darajada soddalashtirish, boshqa tomondan, tegishli resurslarga kirishni boshqarishni ta'minlash algoritmlarini optimallashtirish uchun mo'ljallangan. Xesh funksiyasi maʼlumotlarni parol bilan himoyalashni taʼminlash, shuningdek, elektron raqamli imzo yordamida imzolangan hujjatlar almashinuvini tashkil etishning asosiy vositalaridan biridir. Fayllarni keshlashni amalga oshirish mumkin bo'lgan ko'plab standartlar mavjud. Ularning aksariyati rus mutaxassislari tomonidan ishlab chiqilgan. Xesh-funksiyalarning qanday turlarida taqdim etilishi mumkin? Ularni amaliy qo‘llashning asosiy mexanizmlari qanday?

Bu nima?

Birinchidan, hash funktsiyasi tushunchasini o'rganamiz. Bu atama odatda matematik usullar yordamida ma'lum miqdordagi ma'lumotni qisqaroq belgilar ketma-ketligiga aylantirish algoritmi sifatida tushuniladi. Xesh funktsiyasining amaliy ahamiyatini turli sohalarda ko'rish mumkin. Shunday qilib, ular fayllar va dasturlarning yaxlitligini tekshirishda ishlatilishi mumkin. Kriptografik xesh funksiyalari shifrlash algoritmlarida ham qo'llaniladi.

Xususiyatlari

O'rganilayotgan algoritmlarning asosiy xarakteristikalarini ko'rib chiqamiz. Ular orasida:

  • asl uzunlikdagi ma'lumotlarni qisqaroq belgilar ketma-ketligiga aylantirish uchun ichki algoritmlarning mavjudligi;
  • kriptografik tekshirish uchun ochiq;
  • original ma'lumotlarni ishonchli shifrlash imkonini beruvchi algoritmlarning mavjudligi;
  • kichik hisoblash quvvatidan foydalanganda shifrni ochishga moslashish.

Xesh funktsiyasining boshqa muhim xususiyatlariga quyidagilar kiradi:

  • ixtiyoriy uzunlikdagi dastlabki ma'lumotlar massivlarini qayta ishlash qobiliyati;
  • belgilangan uzunlikdagi xeshlangan bloklarni yaratish;
  • chiqishdagi funktsiya qiymatlarini teng ravishda taqsimlang.

Ko'rib chiqilayotgan algoritmlar, shuningdek, 1-bitli darajadagi kirish ma'lumotlariga nisbatan sezgirlikni ham qabul qiladi. Ya'ni, nisbatan aytganda, dastlabki hujjatda kamida 1 harf o'zgargan bo'lsa ham, xesh funktsiyasi boshqacha ko'rinadi.

Xesh funksiyalariga qo'yiladigan talablar

Muayyan sohada amaliy foydalanish uchun mo'ljallangan hash funktsiyalari uchun bir qator talablar mavjud. Birinchidan, tegishli algoritm xeshlangan hujjatlarning ichki tuzilishidagi o'zgarishlarga sezgir bo'lishi kerak. Ya'ni, xesh funktsiyasida, agar biz matnli fayl haqida gapiradigan bo'lsak, paragraflarni o'zgartirish va defislar tan olinishi kerak. Bir tomondan, hujjatning mazmuni o'zgarmaydi, boshqa tomondan, uning tuzilishi moslashtiriladi va bu jarayon xeshlash paytida tan olinishi kerak. Ikkinchidan, ko'rib chiqilayotgan algoritm ma'lumotlarni teskari operatsiya (xeshni asl hujjatga aylantirish) amalda imkonsiz bo'ladigan tarzda o'zgartirishi kerak. Uchinchidan, xesh funksiyasi xesh shaklida bir xil belgilar ketma-ketligini shakllantirish imkoniyatini, boshqacha aytganda, to'qnashuvlar deb ataladigan ko'rinishni deyarli yo'q qiladigan algoritmlardan foydalanishni o'z ichiga olishi kerak. Biz ularning mohiyatini birozdan keyin ko'rib chiqamiz.

Xesh-funktsiya algoritmi javob berishi kerak bo'lgan talablarga asosan murakkab matematik yondashuvlardan foydalanish orqali erishish mumkin.

Tuzilishi

Keling, ko'rib chiqilayotgan funktsiyalarning tuzilishi qanday bo'lishi mumkinligini o'rganamiz. Yuqorida ta'kidlaganimizdek, ko'rib chiqilayotgan algoritmlarga qo'yiladigan asosiy talablardan biri bir tomonlama shifrlashni ta'minlashdir. Faqat hashga ega bo'lgan shaxs undan hujjatning asl nusxasini ololmasligi kerak.

Bunday maqsadlar uchun ishlatiladigan xesh-funksiya qanday tuzilmada ifodalanishi mumkin? Uning tarkibiga misol bo'lishi mumkin: H (xesh, ya'ni hash) = f (T (matn), H1), bu erda H1 - matnni qayta ishlash algoritmi T. Bu funksiya T ni shunday xeshlaydiki, bilimsiz H1 ning to'liq huquqli fayl sifatida ochilishi mumkin, deyarli imkonsiz bo'ladi.

Amalda hash funksiyalaridan foydalanish: fayllarni yuklab olish

Keling, hash funksiyalarini amalda qo'llash variantlarini batafsil o'rganamiz. Internet-serverlardan fayllarni yuklab olish uchun skriptlarni yozishda tegishli algoritmlardan foydalanish mumkin.

Ko'pgina hollarda, har bir fayl uchun ma'lum bir nazorat summasi aniqlanadi - bu xesh. Bu serverda joylashgan va foydalanuvchi kompyuteriga yuklab olingan ob'ekt uchun bir xil bo'lishi kerak. Agar bunday bo'lmasa, fayl ochilmasligi yoki to'g'ri ishga tushmasligi mumkin.

Xesh funksiyasi va raqamli imzo

Raqamli imzoni o'z ichiga olgan hujjatlar almashinuvini tashkil qilishda xesh funksiyalaridan foydalanish keng tarqalgan. Bunday holda, imzolanayotgan fayl uni qabul qiluvchi uning haqiqiyligini tekshirishi uchun xeshlanadi. Xesh-funksiya elektron kalitning tuzilishiga rasmiy ravishda kiritilmagan bo‘lsa-da, u eToken kabi hujjatlarni imzolash uchun foydalaniladigan apparatning flesh-xotirasiga yozilishi mumkin.

Elektron imzo ochiq va shaxsiy kalitlar yordamida faylni shifrlashdir. Ya'ni, shaxsiy kalit yordamida shifrlangan xabar manba faylga biriktiriladi va elektron raqamli imzo ochiq kalit yordamida tekshiriladi. Agar ikkala hujjatning xesh funktsiyasi mos keladigan bo'lsa, qabul qiluvchining fayli haqiqiy deb tan olinadi va jo'natuvchining imzosi to'g'ri deb tan olinadi.

Yuqorida ta'kidlaganimizdek, xeshlash to'g'ridan-to'g'ri raqamli imzoning tarkibiy qismi emas, lekin u elektron imzodan foydalanish algoritmlarini juda samarali optimallashtirish imkonini beradi. Shunday qilib, aslida hujjatning o'zi emas, balki faqat xesh shifrlanishi mumkin. Natijada, fayllarni qayta ishlash tezligi sezilarli darajada oshadi va shu bilan birga, raqamli imzoni himoya qilishning yanada samarali mexanizmlarini ta'minlash mumkin bo'ladi, chunki bu holda hisoblash operatsiyalariga asosiy e'tibor dastlabki ma'lumotlarni qayta ishlashga emas, balki imzoning kriptografik mustahkamligini ta'minlash. Xesh funksiyasi nafaqat matnni, balki turli xil ma'lumotlar turlarini ham imzolash imkonini beradi.

Parollarni tekshirish

Hashingni qo'llashning yana bir mumkin bo'lgan sohasi - bu ma'lum fayl resurslariga kirishni cheklash uchun o'rnatilgan parolni tekshirish algoritmlarini tashkil etish. Bunday muammolarni hal qilish uchun ma'lum turdagi xesh funktsiyalaridan qanday foydalanish mumkin? Juda oddiy.

Haqiqat shundaki, kirish cheklanishi mumkin bo'lgan aksariyat serverlarda parollar xeshlangan qiymatlar shaklida saqlanadi. Bu juda mantiqiy - agar parollar oddiy matn shaklida taqdim etilgan bo'lsa, ularga kirish huquqiga ega bo'lgan xakerlar maxfiy ma'lumotlarni osongina o'qiy olishadi. O'z navbatida, parolni xesh asosida hisoblash oson emas.

Ko'rib chiqilayotgan algoritmlardan foydalanganda foydalanuvchining ruxsati qanday tekshiriladi? Foydalanuvchi tomonidan kiritilgan parol serverda saqlanadigan xesh funksiyasida yozilgan narsalarga nisbatan tekshiriladi. Agar matn bloklarining qiymatlari mos kelsa, foydalanuvchi resurslarga kerakli kirish huquqini oladi.

Eng oddiy xesh funksiyasi parolni tekshirish vositasi sifatida ishlatilishi mumkin. Ammo amalda IT mutaxassislari ko'pincha murakkab ko'p bosqichli kriptografik algoritmlardan foydalanadilar. Qoida tariqasida, ular xavfsiz kanal orqali ma'lumotlarni uzatish standartlarini qo'llash bilan to'ldiriladi - shuning uchun xakerlar foydalanuvchi kompyuteridan serverlarga uzatilgan parolni xeshlangan matn bloklari bilan tekshirishdan oldin aniqlay olmaydi yoki hisoblay olmaydi.

Xesh funktsiyasi to'qnashuvi

Xesh funktsiyalari nazariyasi to'qnashuv kabi hodisani ta'minlaydi. Uning mohiyati nimada? Xesh to'qnashuvi ikki xil fayl bir xil xesh kodiga ega bo'lgan vaziyatdir. Agar maqsadli belgilar ketma-ketligi uzunligi kichik bo'lsa, bu mumkin. Bunday holda, hash o'yinining ehtimoli yuqori bo'ladi.

To'qnashuvlarning oldini olish uchun, xususan, xesh funktsiyasi xeshlash deb ataladigan ikkita algoritmdan foydalanish tavsiya etiladi. Bu ochiq va yopiq kodni shakllantirishni o'z ichiga oladi. Ko'pgina dasturchilar, muhim muammolarni hal qilishda, bu kerak bo'lmagan hollarda xesh funktsiyalaridan foydalanmaslikni tavsiya qiladilar va har doim ma'lum tugmachalar bilan eng yaxshi muvofiqlik uchun tegishli algoritmlarni sinab ko'rishadi.

Tashqi ko'rinish tarixi

Karter, Vegman, Simonson va Bierbrauerni tadqiqotchilar xesh-funksiyalar nazariyasi asoschilari deb hisoblash mumkin. Birinchi versiyalarda tegishli algoritmlar ixtiyoriy uzunlikdagi belgilar ketma-ketligining noyob tasvirlarini yaratish uchun vositalar sifatida, keyinchalik ularni aniqlash va haqiqiyligini tekshirish uchun ishlatilgan. O'z navbatida, xesh, belgilangan mezonlarga muvofiq, 30-512 bit uzunlikka ega bo'lishi kerak edi. Tegishli funktsiyalarning ayniqsa foydali xususiyati uning fayllarni tezda qidirish yoki ularni saralash uchun manba sifatida foydalanishga yaroqliligi hisoblanadi.

Ommabop xeshlash standartlari

Keling, qaysi mashhur standartlarda xesh-funksiyalar taqdim etilishi mumkinligini ko'rib chiqaylik. Ular orasida CRC bor. Ushbu algoritm tsiklik kod bo'lib, nazorat summasi deb ham ataladi. Ushbu standart soddaligi va shu bilan birga universalligi bilan ajralib turadi - undan eng keng doiradagi ma'lumotlarni xeshlash uchun foydalanish mumkin. CRC eng keng tarqalgan kriptografik bo'lmagan algoritmlardan biridir.

O'z navbatida, shifrlashda MD4 va MD5 standartlari keng qo'llaniladi. Yana bir mashhur kriptografik algoritm bu SHA-1. Xususan, u 160 bitli xesh hajmi bilan tavsiflanadi, bu MD5 dan kattaroqdir - bu standart 128 bitni qo'llab-quvvatlaydi. Xash funksiyalaridan foydalanishni tartibga soluvchi rus standartlari mavjud - GOST R 34.11-94, shuningdek, uning o'rnini bosgan GOST R 34.11-2012. Shuni ta'kidlash mumkinki, Rossiya Federatsiyasida qabul qilingan algoritmlar tomonidan taqdim etilgan xesh qiymati 256 bit.

Ko'rib chiqilayotgan standartlarni turli asoslarga ko'ra tasniflash mumkin. Masalan, blok va maxsus algoritmlardan foydalanadiganlar mavjud. Birinchi turdagi standartlarga asoslangan hisob-kitoblarning soddaligi ko'pincha ularning past tezligi bilan birga keladi. Shuning uchun bloklash algoritmlariga muqobil sifatida zaruriy hisoblash operatsiyalarini kamroq miqdorda talab qiladiganlardan foydalanish mumkin. Yuqori tezlik standartlari odatda, xususan, yuqorida aytib o'tilgan MD4, MD5, shuningdek, SHA ni o'z ichiga oladi. Keling, misol sifatida SHA dan foydalangan holda maxsus xeshlash algoritmlarining o'ziga xos xususiyatlarini batafsil ko'rib chiqaylik.

SHA algoritmining xususiyatlari

SHA standartiga asoslangan xesh funksiyalaridan foydalanish ko'pincha DSA hujjatlari uchun raqamli imzo vositalarini ishlab chiqishda amalga oshiriladi. Yuqorida aytib o'tganimizdek, SHA algoritmi 160 bitli xeshni qo'llab-quvvatlaydi (belgilar ketma-ketligini "hazm qilish" deb ataladigan narsani ta'minlaydi). Dastlab, ko'rib chiqilayotgan standart ma'lumotlar massivini 512 bitli bloklarga ajratadi. Agar kerak bo'lsa, oxirgi blokning uzunligi belgilangan raqamga etib bormasa, fayl strukturasi 1 va kerakli miqdordagi nol bilan to'ldiriladi. Shuningdek, tegishli blokning oxirida xabarning uzunligini aniqlaydigan kod yoziladi. Ko'rib chiqilayotgan algoritm 80 ta mantiqiy funktsiyadan foydalanadi, ular orqali 32 bitda taqdim etilgan 3 ta so'z qayta ishlanadi. SHA standarti 4 ta konstantadan foydalanishni ham nazarda tutadi.

Xeshlash algoritmlarini solishtirish

Keling, biz yuqorida ko'rib chiqqan Rossiya standarti GOST R 34.11-94 va Amerika SHA xususiyatlarini taqqoslash misolidan foydalanib, turli standartlarga tegishli xesh funktsiyalarining xususiyatlari qanday bog'liqligini o'rganamiz. Avvalo shuni ta'kidlash kerakki, Rossiya Federatsiyasida ishlab chiqilgan algoritm 1 tsikl uchun 4 ta shifrlash operatsiyasini amalga oshirishni nazarda tutadi. Bu 128 raundga to'g'ri keladi. O'z navbatida, 1 raund davomida, SHA ishlatilganda, jami 80 tur bo'lsa, 20 ga yaqin buyruqlar hisoblanishi kutiladi.Shunday qilib, SHA dan foydalanish 1 tsikl ichida 512 bit manba ma'lumotlarini qayta ishlash imkonini beradi. Rossiya standarti 256 bit ma'lumotlar tsiklida operatsiyalarni bajarishga qodir.

Eng so'nggi rus algoritmining o'ziga xos xususiyatlari

Yuqorida biz GOST R 34.11-94 standarti yangisi - GOST R 34.11-2012 "Stribog" bilan almashtirilganini ta'kidladik. Keling, uning xususiyatlarini batafsilroq ko'rib chiqaylik.

Ushbu standartdan foydalanib, yuqorida ko'rib chiqilgan algoritmlar misolida bo'lgani kabi, kriptografik xesh funksiyalarini amalga oshirish mumkin. Shuni ta'kidlash kerakki, eng so'nggi rus standarti 512 bitli kirish ma'lumotlar blokini qo'llab-quvvatlaydi. GOST R 34.11-2012 ning asosiy afzalliklari:

  • kodlarni buzishdan yuqori darajadagi xavfsizlik;
  • tasdiqlangan dizaynlardan foydalanish bilan qo'llab-quvvatlanadigan ishonchlilik;
  • xesh-funktsiyani tez hisoblash, algoritmda funktsiyani loyihalashni murakkablashtiradigan va hisoblashni sekinlashtiradigan transformatsiyalarning yo'qligi.

Yangi rus kriptografik shifrlash standartining qayd etilgan afzalliklari uni tartibga solish qonunchiligi qoidalarida belgilangan eng qat'iy mezonlarga javob beradigan hujjat aylanishini tashkil qilishda foydalanish imkonini beradi.

Kriptografik xesh funksiyalarining o'ziga xos xususiyatlari

Keling, biz o'rganayotgan algoritmlar turlarini kriptografiya sohasida qanday qo'llash mumkinligini batafsil ko'rib chiqaylik. Tegishli funktsiyalar uchun asosiy talab - biz yuqorida aytib o'tgan to'qnashuvlarga qarshilik. Ya'ni, agar bu qiymatlar qo'shni algoritm tarkibida mavjud bo'lsa, ikki nusxadagi xesh funktsiyasi qiymatlari yaratilmasligi kerak. Kriptografik funksiyalar yuqorida qayd etilgan boshqa mezonlarga ham javob berishi kerak. Xesh asosida asl faylni qayta tiklashning har doim nazariy imkoniyatlari mavjudligi aniq, ayniqsa kuchli hisoblash vositasi mavjud bo'lsa. Biroq, ishonchli shifrlash algoritmlari tufayli bunday stsenariyni minimallashtirish kutilmoqda. Shunday qilib, agar uning hisoblash kuchi 2^(n/2) formulaga mos kelsa, hash funksiyasini hisoblash juda qiyin bo'ladi.

Kriptografik algoritmning yana bir muhim mezoni - dastlabki ma'lumotlar massivi tuzatilgan taqdirda xeshning o'zgarishi. Yuqorida biz shifrlash standartlari 1 bitli sezgir bo'lishi kerakligini ta'kidladik. Shunday qilib, bu xususiyat fayllarga kirishning ishonchli parol himoyasini ta'minlashning asosiy omilidir.

Iterativ sxemalar

Keling, kriptografik xeshlash algoritmlarini qanday qurish mumkinligini o'rganamiz. Ushbu muammoni hal qilishning eng keng tarqalgan sxemalari orasida iterativ ketma-ket modeldan foydalanish hisoblanadi. Bu kirish bitlari soni chiqishda olinganidan sezilarli darajada ko'p bo'lgan siqish funktsiyasidan foydalanishga asoslangan.

Albatta, siqish funktsiyasi zarur kriptografik kuch mezonlariga javob berishi kerak. Interaktiv sxemada kiritilgan ma'lumotlar oqimini qayta ishlash bo'yicha birinchi operatsiya bloklarga bo'linadi, ularning o'lchamlari bitlarda hisoblanadi. Tegishli algoritm ma'lum miqdordagi bitlarning vaqtinchalik o'zgaruvchilaridan ham foydalanadi. Birinchi qiymat sifatida taniqli raqam ishlatiladi, ma'lumotlarning keyingi bloklari esa chiqish sifatida ko'rib chiqilayotgan funktsiyaning qiymati bilan birlashtiriladi. Xesh qiymati oxirgi iteratsiya uchun chiqish bitlariga aylanadi, bu butun kirish oqimini, shu jumladan birinchi qiymatni hisobga oladi. Hashingning "ko'chki effekti" deb ataladigan narsa ta'minlanadi.

Iterativ sxema sifatida amalga oshirilgan xeshlashni tavsiflovchi asosiy qiyinchilik shundaki, agar kirish oqimi dastlabki ma'lumotlar massivi bo'lingan blokning o'lchamiga mos kelmasa, xesh funktsiyalarini qurish ba'zan qiyin. Ammo bu holda, xeshlash standartida asl oqimni u yoki bu tarzda kengaytirish mumkin bo'lgan algoritmlar bo'lishi mumkin.

Ayrim hollarda takroriy sxema doirasida ma'lumotlarni qayta ishlash jarayonida ko'p o'tishli deb ataladigan algoritmlardan foydalanish mumkin. Ular yanada kuchli "ko'chki effekti" ni shakllantirishni taklif qilishadi. Bunday stsenariy takroriy ma'lumotlar to'plamlarini shakllantirishni o'z ichiga oladi va faqat ikkinchi o'rinda kengayish sodir bo'ladi.

Bloklash algoritmi

Siqish funksiyasi shifrlash amalga oshiriladigan blok algoritmiga ham asoslanishi mumkin. Shunday qilib, xavfsizlik darajasini oshirish uchun siz joriy iteratsiyada xeshingga duchor bo'lgan ma'lumotlar bloklarini kalit sifatida va siqishni funktsiyasini bajarish paytida olingan operatsiyalar natijasini kiritish sifatida ishlatishingiz mumkin. Natijada, oxirgi takrorlash algoritmning chiqishini ta'minlaydi. Xeshlashning xavfsizligi ishlatiladigan algoritmning mustahkamligi bilan bog'liq bo'ladi.

Biroq, yuqorida ta'kidlaganimizdek, har xil turdagi xesh funktsiyalarini hisobga olgan holda, blok algoritmlari ko'pincha katta hisoblash quvvatidan foydalanish zarurati bilan birga keladi. Agar ular mavjud bo'lmasa, faylni qayta ishlash tezligi hash funktsiyalaridan foydalanish bilan bog'liq amaliy muammolarni hal qilish uchun etarli bo'lmasligi mumkin. Shu bilan birga, kerakli kriptografik quvvatga manba ma'lumotlar oqimlari bilan kichik miqdordagi operatsiyalar bilan erishish mumkin, xususan, biz ko'rib chiqqan algoritmlar - MD5, SHA va Rossiya kriptografik shifrlash standartlari - bunday muammolarni hal qilish uchun moslashtirilgan.

Xesh nima? Xesh-funksiya - bu ma'lumotni qisqa, aniqlangan qatorga matematik tarzda o'zgartirish.

Bu nima uchun kerak? Xesh funksiyalaridan foydalangan holda tahlil qilish ko'pincha muhim operatsion tizim fayllari, muhim dasturlar va muhim ma'lumotlarning yaxlitligini kuzatish uchun ishlatiladi. Nazorat kerak bo'lganda yoki muntazam ravishda amalga oshirilishi mumkin.

Bu qanday amalga oshirildi? Birinchidan, qaysi fayllarning yaxlitligini nazorat qilish kerakligini aniqlang. Har bir fayl uchun uning xesh qiymati maxsus algoritm yordamida hisoblab chiqiladi va natija saqlanadi. Kerakli vaqtdan keyin shunga o'xshash hisob-kitob qilinadi va natijalar solishtiriladi. Agar qiymatlar boshqacha bo'lsa, fayldagi ma'lumotlar o'zgartirilgan.

Xesh funktsiyasi qanday xususiyatlarga ega bo'lishi kerak?

  • ixtiyoriy ravishda belgilangan uzunlikdagi ma'lumotlarni o'zgartirishni amalga oshirish imkoniyatiga ega bo'lishi kerak;
  • uning kriptografik kuchini tekshirish uchun ochiq algoritmga ega bo'lishi kerak;
  • bir tomonlama bo'lishi kerak, ya'ni natijaga qarab dastlabki ma'lumotlarni aniqlashning matematik imkoni bo'lmasligi kerak;
  • to'qnashuvlarga "qarshilik ko'rsatishi" kerak, ya'ni u turli xil kirish ma'lumotlari uchun bir xil qiymatlarni yaratmasligi kerak;
  • katta hisoblash resurslarini talab qilmasligi kerak;
  • kiritilgan ma'lumotlarning eng kichik o'zgarishi bilan natija sezilarli darajada o'zgarishi kerak.

Mashhur xesh algoritmlari qanday? Hozirgi vaqtda quyidagi xesh-funksiyalar qo'llaniladi:

  • CRC - siklik ortiqcha kodi yoki nazorat summasi. Algoritm juda oddiy va kerakli chiqish uzunligiga qarab ko'p sonli o'zgarishlarga ega. Kriptografik emas!
  • MD 5 - juda mashhur algoritm. Oldingi versiyasi singari, MD 4 ham kriptografik funktsiyadir. Xesh hajmi 128 bit.
  • SHA -1 ham juda mashhur kriptografik funktsiyadir. Xesh hajmi 160 bit.
  • GOST R 34.11-94 - xesh-funksiyalarni hisoblash uchun rus kriptografik standarti. Xesh hajmi 256 bit.

Tizim administratori bu algoritmlardan qachon foydalanishi mumkin? Ko'pincha, har qanday tarkibni, masalan, ishlab chiqaruvchining veb-saytidan dasturlarni, musiqalarni, filmlarni yoki boshqa ma'lumotlarni yuklab olayotganda, ma'lum bir algoritm yordamida hisoblangan nazorat summalarining qiymati mavjud. Xavfsizlik nuqtai nazaridan, yuklab olingandan so'ng, siz hash funktsiyasini mustaqil ravishda hisoblashingiz va qiymatni veb-saytda yoki faylga ilovada ko'rsatilgan bilan solishtirishingiz kerak. Siz buni hech qachon qilganmisiz?

Xeshni hisoblash uchun nima qulayroq? Endi ko'plab shunga o'xshash kommunal xizmatlar mavjud, ulardan foydalanish uchun pullik va bepul. Shaxsan menga HashTab yoqdi. Birinchidan, o'rnatish paytida yordamchi dastur fayl xususiyatlarida yorliq sifatida o'rnatiladi, ikkinchidan, u sizga ko'p sonli xesh algoritmlarini tanlash imkonini beradi va uchinchidan, xususiy notijorat maqsadlarda foydalanish uchun bepul.

Rus tili nima? Yuqorida aytib o'tilganidek, Rossiyada axborot xavfsizligi vositalarining ko'plab ishlab chiqaruvchilari tomonidan keng qo'llaniladigan GOST R 34.11-94 xeshlash standarti mavjud. Ushbu vositalardan biri FIX dasturiy paketining dastlabki holatini tuzatish va monitoring qilish dasturidir. Ushbu dastur axborot xavfsizligidan foydalanish samaradorligini nazorat qilish vositasidir.

Windows 9x/NT/2000/XP uchun FIX (versiya 2.0.1).

  • Amalga oshirilgan 5 ta algoritmdan biri yordamida berilgan fayllarning nazorat summalarini hisoblash.
  • Dasturiy ta'minot to'plamining dastlabki holatini tuzatish va keyinchalik monitoring qilish.
  • Dastur paketi versiyalarini solishtirish.
  • Kataloglarni tuzatish va nazorat qilish.
  • Belgilangan fayllar (kataloglar)dagi o'zgarishlarni kuzatish.
  • TXT, HTML, SV formatlarida hisobotlarni yaratish.
  • Mahsulot 2013-yil 1-iyungacha NDV 3 No 913 uchun FSTEC sertifikatiga ega.

Raqamli imzo haqida nima deyish mumkin? Xesh-funktsiyani hisoblash natijasi foydalanuvchining maxfiy kaliti bilan birgalikda elektron raqamli imzo hisoblangan kriptografik algoritm kiritishiga o'tadi. To'g'ri aytganda, xesh funktsiyasi raqamli imzo algoritmining bir qismi emas, lekin ko'pincha bu ochiq kalit yordamida hujumni istisno qilish uchun ataylab amalga oshiriladi.

Hozirgi vaqtda ko'plab elektron tijorat ilovalari foydalanuvchining maxfiy kalitini u yerdan olishning texnik imkoniyatisiz shaxsiy token sohasida (ruToken, eToken) saqlash imkonini beradi. Tokenning o'zi kilobaytlarda o'lchanadigan juda cheklangan xotira maydoniga ega. Hujjatni imzolash uchun hujjatni tokenga o'tkazishning hech qanday usuli yo'q, lekin hujjatning xeshini tokenga o'tkazish va natijada elektron raqamli imzoni olish juda oddiy.



 


O'qing:



Android-ga Play Market ilovasini o'rnatish

Android-ga Play Market ilovasini o'rnatish

Google Play Market - bu Android mobil operatsion tizimi uchun kontent va ilovalarning virtual ko'rgazmasi. Ko'rgazmada foydali dasturlar mavjud ...

Kon tushunchasi nimani anglatadi va uni qanday boshlash kerak?

Kon tushunchasi nimani anglatadi va uni qanday boshlash kerak?

Aleksey Russkix Bugungi kunda konchilik haqida eshitmagan odamlarni deyarli topa olmaysiz. Kriptovalyutalarning kelib chiqishi va jahon iqtisodiyotiga integratsiyalashuvi...

Tarifga kiritilgan o'zgartirishlar

Tarifga kiritilgan o'zgartirishlar

Bugungi kunda uyali aloqa operatorini tanlashni ham, keyinchalik optimal tarif rejasini tanlashni ham tasavvur qilish qiyin, jumladan...

Buxgalteriya hisobidagi interfeysni qanday o'zgartirish mumkin 3

Buxgalteriya hisobidagi interfeysni qanday o'zgartirish mumkin 3

1C: Enterprise 8.1 platformasida u yoki bu konfiguratsiyada ishlaydigan buxgalterlar har kuni asosan bir xil menyudan foydalanadilar va...

tasma tasviri RSS