Tizim administratori bu algoritmlardan qachon foydalanishi mumkin? Ko'pincha, ishlab chiqaruvchining veb-saytidan dasturlar, musiqa, filmlar yoki boshqa ma'lumotlar kabi har qanday tarkibni yuklab olayotganda, ma'lum bir algoritm yordamida hisoblangan nazorat qiymati mavjud. Xavfsizlik nuqtai nazaridan, yuklab olingandan so'ng, siz hash funktsiyasini mustaqil ravishda hisoblashingiz va qiymatni saytda yoki faylga ilovada ko'rsatilgan bilan solishtirishingiz kerak. Siz buni hech qachon qilganmisiz?
Xeshni hisoblash uchun nima qulayroq? Endi pullik va bepul foydalanish uchun bunday kommunal xizmatlar juda ko'p. Shaxsan menga HashTab yoqdi. Birinchidan, o'rnatish vaqtida yordamchi dastur fayl xususiyatlariga yorliq sifatida kiritilgan, 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 nazorat qilish dasturidir. Ushbu dastur axborot xavfsizligi vositalaridan 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 nazorat qilish.
Dasturiy ta'minot paketi versiyalarini solishtirish.
Kataloglarni tuzatish va boshqarish.
Belgilangan fayllar (kataloglar)dagi o'zgarishlarni nazorat qilish.
TXT, HTML, SV formatlarida hisobotlarni yaratish.
Mahsulot 2013-yil 01-iyungacha NDV 3 No 913 ga muvofiq FSTEC sertifikatiga ega.
Va ECP haqida nima deyish mumkin? Xesh-funksiyani hisoblash natijasi foydalanuvchining maxfiy kaliti bilan birgalikda kriptografik algoritmning kiritilishiga kiradi, bu yerda raqamli imzo hisoblab chiqiladi. To'g'ri aytganda, xesh funktsiyasi EDS algoritmining bir qismi emas, lekin ko'pincha bu ochiq kalit hujumini istisno qilish uchun ataylab amalga oshiriladi.
Hozirgi vaqtda ko'plab elektron tijorat ilovalari foydalanuvchining shaxsiy kalitini tokenning shaxsiy maydonida (ruToken, eToken) uni texnik imkoniyatisiz saqlashga imkon beradi. Tokenning o'zi kilobaytlarda o'lchanadigan juda cheklangan xotira maydoniga ega. Hujjatni imzolash uchun hujjatni tokenning o'ziga o'tkazishning hech qanday usuli yo'q, lekin hujjatning xeshini tokenga o'tkazish va chiqishda ERI olish juda oson.
Yangi boshlanuvchilar blokcheyn haqida o'rganganlarida eshitadigan kalit so'zlardan biri bu xavfsizlik uchun odatiy bo'lgan xesh va xesh algoritmi tushunchalari. Bitkoin yoki p2p orqali ulangan o'n minglab tugunlarga ega bo'lgan ethereum tarmog'i kabi markazlashtirilmagan tarmoq va konsensusni ishga tushirish ham "ishonchlilik" va tekshirish samaradorligini talab qiladi. Ya'ni, bu tizimlar ishtirokchilarga uni xavfsiz va tez tekshirish imkonini beruvchi ixcham formatda axborotni kodlash usullariga muhtoj.
Xatcho'plar uchun
Bitcoin va Ethereum tomonidan boshqariladigan asosiy ibtidoiy kontseptsiyadir blok, bu tranzaktsiyalar, vaqt tamg'asi va boshqa muhim metama'lumotlarni o'z ichiga olgan ma'lumotlar tuzilmasi. Ularning xavfsizligining muhim qismi global tarmoq holati ma'lumotlarining katta qismlarini qisqa xabar standartiga siqish qobiliyatini o'z ichiga oladi, agar kerak bo'lsa, samarali tarzda tekshirilishi mumkin. hash.
Kirishdagi bitta belgini o'zgartirish ham butunlay boshqacha xeshga olib keladi.
Kriptografik xeshlar parolni saqlashdan tortib fayllarni tekshirish tizimlarigacha bo'lgan hamma narsada qo'llaniladi. Asosiy g'oya bitta kirishni qabul qiladigan va har safar qat'iy uzunlikdagi qatorni ishlab chiqaradigan deterministik algoritmdan (kirish berilgan topshiriq uchun noyob va oldindan belgilangan natijani ishlab chiqaradigan algoritmik jarayon) foydalanishdir. Ya'ni, bir xil kirishdan foydalanish har doim bir xil natijaga olib keladi. Determinizm nafaqat xeshlar uchun, balki kirishda o'zgarib turadigan, butunlay boshqacha xeshni keltirib chiqaradigan bir bit uchun muhimdir. Xeshlash algoritmlari bilan bog'liq muammo to'qnashuvlarning muqarrarligidir. Ya'ni, xeshlar qat'iy uzunlikdagi satr ekanligi, biz tasavvur qila oladigan har bir kirish uchun, bir xil xeshga olib keladigan boshqa mumkin bo'lgan kirishlar ham mavjud. To'qnashuv yomon. Bu shuni anglatadiki, agar tajovuzkor to'qnashuvlar yaratishga qodir bo'lsa, u zararli fayllar yoki ma'lumotlarni to'g'ri va noto'g'ri xeshga ega sifatida uzatishi va to'g'ri xesh ostida yashirishi mumkin. Yaxshi xesh funktsiyasining maqsadi tajovuzkorlarga bir xil qiymatga hashga ega bo'lgan kirishlarni yaratish usullarini topishni juda qiyinlashtirishdir. Xeshni hisoblash juda oddiy bo'lmasligi kerak, chunki bu hujumchilarga to'qnashuvlarni sun'iy ravishda hisoblashni osonlashtiradi. Xeshlash algoritmlari "preimage hujumlariga" chidamli bo'lishi kerak. Ya'ni, xeshni hisobga olgan holda, xeshni hosil qilgan qiymatni ko'paytirish uchun qilingan teskari deterministik qadamlarni hisoblash (ya'ni, oldingi tasvirni topish) juda qiyin bo'ladi.
S = hash (x) berilgan bo'lsa, X topish imkonsiz bo'lishi kerak.
Eslatib o'tamiz, "yaxshi" xeshlash algoritmlari quyidagi xususiyatlarga ega:
Kirishdagi bir bitni o'zgartirish butun xeshni o'zgartirish effektiga ega bo'lishi kerak;
Xeshni hisoblash juda oson bo'lmasligi kerak, preimageni topishning murakkabligi yuqori;
To'qnashuv ehtimoli juda past bo'lishi kerak;
Xesh yorilishi Birinchi xeshlash algoritmi standartlaridan biri MD5 xesh bo'lib, u fayllarning yaxlitligini (chekssumlar) tekshirish va veb-ilovalar ma'lumotlar bazalarida xeshlangan parollarni saqlash uchun keng qo'llanilgan. Uning funksionalligi juda oddiy, chunki u har bir kirish uchun sobit 128-bitli qatorni chiqaradi va deterministik natijani hisoblash uchun bir necha turda ahamiyatsiz bir tomonlama operatsiyalardan foydalanadi. Qisqa chiqish uzunligi va ishlash qulayligi MD5-ni yorilishni juda oson qildi va "tug'ilgan kun" hujumlariga moyil bo'ldi.
"Tug'ilgan kun hujumi" nima?
Agar siz xonaga 23 kishini joylashtirsangiz, ulardan ikkitasining tug'ilgan kuni bir xil bo'lishi ehtimoli 50% ekanligini eshitganmisiz? Bir xonadagi raqamni 70 kishiga yetkazish sizga 99,9% imkoniyat beradi. Agar kaptarlar qutilarga o'tirgan bo'lsa va kaptarlar soni qutilar sonidan ko'p bo'lsa, unda kataklarning kamida bittasida bir nechta kaptar mavjud. Ya'ni, qat'iy chiqish cheklovlari to'qnashuvni topish uchun ma'lum darajadagi almashtirishlar mavjudligini anglatadi.
Kamida bitta bo'linma ichida 2 ta kaptar bo'ladi.
Darhaqiqat, MD5 to'qnashuvga qarshilikda shunchalik zaifki, oddiy iste'molchi 2,4 gigagertsli Pentium protsessori bir necha soniya ichida sun'iy xesh to'qnashuvlarini hisoblashi mumkin. Bundan tashqari, joriy Internetning dastlabki kunlarida uning keng qo'llanilishi Internetda minglab MD5 preimage sızıntılarını yaratdi, ularni xesh uchun oddiy Google qidiruvi orqali topish mumkin.
Xesh algoritmining farqlari va rivojlanish boshlanishi: SHA1 va SHA2
NSA (Milliy xavfsizlik agentligi) uzoq vaqtdan beri 160 bitli qattiq uzunlikdagi chiqishlarni ishlab chiqaradigan Secure Hashing Algoritmi yoki SHA1 uchun dastlabki taklifi bilan xeshlash algoritmi standartlarining kashshofi hisoblanadi. Afsuski, SHA1 chiqish uzunligini, bir tomonlama operatsiyalar sonini va ushbu bir tomonlama operatsiyalarning murakkabligini oshirish orqali MD5-ni yaxshiladi, ammo turli hujumlarni sinab ko'radigan kuchliroq mashinalarga nisbatan hech qanday fundamental yaxshilanishni ta'minlamaydi. Xo'sh, qanday qilib yaxshiroq narsani qilishimiz mumkin?
SHA3 dan foydalanish
2006 yilda Milliy standartlar va texnologiyalar instituti (NIST) standart bo'lish uchun arxitekturasida tubdan farq qiladigan SHA2 muqobilini topish uchun tanlovni boshladi. Shunday qilib, SHA3 KECCAK (ketch-Ak deb talaffuz qilinadi) deb nomlanuvchi kattaroq xesh algoritmi sxemasining bir qismi sifatida paydo bo'ldi. Nomiga qaramay, SHA3 o'zining ichki mexanizmida juda farq qiladi, bu "shimgich konstruktsiyasi" deb nomlanadi, bu ma'lumotlarni "cho'ktirish" va "siqish" uchun tasodifiy almashtirishlardan foydalanadi va xesh algoritmiga kiradigan kelajakdagi kirishlar uchun tasodifiylik manbai bo'lib xizmat qiladi. .
Xeshlash va ishni isbotlash
Xeshlash algoritmini blokcheyn protokollariga integratsiya qilish haqida gap ketganda, Bitcoin SHA256 dan, Ethereum esa o'zining PoW uchun o'zgartirilgan SHA3 (KECCAK256) dan foydalangan. Biroq, ish isboti yordamida blokcheyn uchun xesh funksiyasini tanlashning muhim sifati belgilangan xeshni hisoblash samaradorligi hisoblanadi. Bitkoinning SHA256 xesh algoritmini dasturga xos integral mikrosxemalar (yoki ASIC) deb nomlanuvchi maxsus uskuna yordamida oddiygina hisoblash mumkin. ASIC-larni kon havzasida ishlatish va ular protokolni hisoblashni markazlashtirishni maqsad qilgani haqida ko'p narsa yozilgan. Ya'ni, ish isboti hisoblash samarali mashinalar guruhlarini birlashtirishga va "xesh quvvati" deganda nimani nazarda tutayotganimizni yoki mashina vaqt oralig'ida hisoblashi mumkin bo'lgan xeshlar sonini ko'paytirishga undaydi. Ethereum KECCAK 256 deb nomlanuvchi o‘zgartirilgan SHA3-ni tanladi. Bundan tashqari, Ethereumning PoW algoritmi Dagger-Hashimoto-ni apparatda hisoblash qiyin bo‘lishi kerak edi.
Nima uchun bitcoin ikki tomonlama SHA256 shifrlashdan foydalanadi?
Bitcoin SHA256 bilan ma'lumotlarni xeshlashning qiziqarli usuliga ega, chunki u o'z protokolida algoritmni ikki marta takrorlaydi. E'tibor bering, bu tug'ilgan kun hujumlariga qarshi chora emas, chunki agar hash(x) = hash(y) bo'lsa, hash(hash(x)) = hash(hash(y)) ekanligi aniq. Buning o'rniga, ikki tomonlama SHA256 "Xabarni uzaytirish hujumlari - asl xabarning oxiriga yangi ma'lumotlarni qo'shadigan xesh funktsiyasi hujumi" ni yumshatish uchun ishlatiladi. Hujum xavfli, chunki siz so'rovni o'zgartirishingiz va shunga mos ravishda ushbu so'rov uchun javobgarlikni bajarishingiz mumkin (masalan, pul o'tkazish)
SHA3 2006 yilgi NIST xesh-tanlovidan chiqqan yagona yutuq emas edi. SHA3 g'alaba qozongan bo'lsa ham, BLAKE deb nomlanuvchi algoritm ikkinchi o'rinni egalladi. Shardingni amalga oshirish uchun Ethereum 2.0 yanada samaraliroqdan foydalanadi. Raqobatchilar tomonidan ishlab chiqilgan BLAKE-ning yuqori darajada ishlab chiqilgan versiyasi bo'lgan BLAKE2b xeshlash algoritmi yuqori darajadagi xavfsizlikni ta'minlagan holda KECCAK256 bilan taqqoslaganda ajoyib ishlashi uchun intensiv ravishda o'rganilmoqda. BLAKE2b-ni hisoblash zamonaviy protsessorda KECCAK-dan 3 baravar tezroq.
Xash algoritmlarining kelajagi
Aftidan, biz nima qilsak ham, biz ham xuddi shunday (1) ichki hash operatsiyalari murakkabligini oshirish, yoki (2) tajovuzkorlarning kompyuterlari uning to'qnashuvini samarali hisoblash uchun etarlicha tez bo'lmasligiga umid qilib, xesh chiqishi uzunligini oshiring. Tarmoqlarimiz xavfsizligini ta'minlash uchun biz bir tomonlama operatsiyalarning dastlabki tasvirlarining noaniqligiga tayanamiz. Ya'ni, xeshlash algoritmining xavfsizlik maqsadi cheksiz ko'p to'qnashuvlar bo'lishiga qaramay, bir xil natijaga olib keladigan ikkita qiymatni topishga harakat qilayotgan har bir kishi uchun uni iloji boricha qiyinlashtirishdir. “Kvant kompyuterlarining kelajagi haqida nima deyish mumkin? Hashing algoritmlari xavfsiz bo'ladimi? Qisqa javob va hozirgi tushunish shundan iboratki, ha, xeshlash algoritmlari kvant hisoblashlariga qarshi vaqt sinovidan o'tadi. Kvant hisoblashlari RSA shifrlash kabi aniq hiyla va nazariyaga asoslangan qat'iy matematik tuzilishga ega bo'lgan muammolarni sindira oladi. Boshqa tomondan, xeshlash algoritmlari ichki konstruktsiyalarida kamroq rasmiy tuzilishga ega. Kvant kompyuterlari xeshlash kabi tuzilmagan muammolarni hisoblashda yuqori tezlikni beradi, lekin oxir-oqibat ular hali ham xuddi bugungi kompyuter harakat qiladigan tarzda qo'pol kuch ishlatadilar. Protokollarimiz uchun qaysi algoritmlarni tanlashimizdan qat'i nazar, biz hisoblash jihatidan samarali kelajak sari intilayotganimiz aniq va biz ish uchun to'g'ri vositalarni va vaqt sinoviga dosh beradigan vositalarni tanlash uchun eng yaxshi fikrimizdan foydalanishimiz kerak.
C++ da muammolarni hal qilishda xeshlash.
Katta hajmdagi ma'lumotlarda ma'lumotlarni izlash jarayoni ko'p vaqt talab etadi, bu esa qidiruv kaliti yordamida sezilarli miqdordagi elementlarni ko'rish va taqqoslash zarurati bilan bog'liq. Ko'rish oynasini mahalliylashtirish orqali qidiruvni qisqartirish mumkin. Misol uchun, ma'lumotlarni qidirish kaliti bo'yicha tartiblang, ularni biron bir guruh atributiga ko'ra bir-biriga mos kelmaydigan bloklarga bo'ling yoki haqiqiy ma'lumotlarni qidirish jarayonini soddalashtiradigan kod bilan moslang.
Hozirgi vaqtda tashqi xotirada saqlanadigan ma'lumotlarga tezkor kirishni ta'minlashning keng tarqalgan usuli bu xeshlashdir.