Хасх функције: концепт и основе

10. 4. 2019.

У различитим гранама информационе технологије користе се хеш функције. Оне су, с једне стране, дизајниране да значајно поједноставе размјену података између корисника и обраду датотека које се користе за различите намјене, ас друге стране, да оптимизирају алгоритме за осигурање контроле приступа одговарајућим ресурсима. Хеш функција је један од кључних алата за обезбеђивање заштите података лозинком, као и организовање размене докумената потписаних дигиталним потписом. Постоји велики број стандарда преко којих се датотеке могу кеширати. Многе од њих развијају руски специјалисти. Које варијације могу бити представљене у хасх функцијама? Који су главни механизми за њихову практичну примјену?

Хасх функција

Шта је то?

Прво, истражите концепт хасх функције. Овај термин се обично схвата као алгоритам за претварање одређене количине информација у краћи низ симбола помоћу математичких метода. Практични значај хасх функције може се пратити у различитим областима. Дакле, могу се користити за провјеру интегритета датотека и програма. Такође, криптографске хеш функције се користе у алгоритмима шифровања.

Карактеристике

Размотримо кључне карактеристике истраживаних алгоритама. Међу њима:

  • присуство интерних алгоритама за претварање података оригиналне дужине у краћи низ знакова;
  • отвореност за криптографску верификацију;
  • присуство алгоритама за поуздано шифровање оригиналних података;
  • прилагођавање дешифрирању када су укључене мале рачунске моћи.

Међу осталим најважнијим особинама хасх функције:

  • способност обраде почетних низова података произвољне дужине;
  • генеришу хеш блокове фиксне дужине;
  • равномерно расподели вредности функција на излазу.

Разматрани алгоритми такође сугеришу осетљивост на улазне податке на нивоу од 1 бита. То јест, чак и ако се, условно говорећи, најмање 1 слово промени у изворном документу, хасх функција ће изгледати другачије.

Хасх Рекуирементс

Постоје бројни захтеви за хеш функције дизајниране за практичну употребу у одређеној области. Прво, одговарајући алгоритам треба да буде осетљив на промене у унутрашњој структури распршених докумената. То јест, у хасх функцији се мора препознати, ако говоримо о текстуалној датотеци, пермутацијама параграфа, цртама. С једне стране, садржај документа се не мења, с друге стране - његова структура се прилагођава, а тај процес треба препознати током хеширања. Друго, разматрани алгоритам мора конвертовати податке тако да је инверзна операција (претварање хеша у оригинални документ) практично немогућа. Треће, хасх функција би требала укључивати употребу таквих алгоритама, који практично искључују вјероватноћу формирања исте секвенце знакова у облику хасха, другим ријечима - појаву такозваних колизија. Размотрићемо њихову суштину мало касније.

Означени захтјеви, којима се мора придржавати хасх функција, могу се задовољити углавном кориштењем сложених математичких приступа.

Типови хасх функција

Структура

Проучимо каква је структура разматраних функција. Као што смо горе навели, међу главним захтевима за разматране алгоритме је обезбеђивање једносмерности енкрипције. Особа која има само хасх на располагању, тешко би могла добити изворни документ на својој основи.

У којој се структури може користити хеш функција за такве сврхе? Пример његове компилације може бити: Х (хасх, то јест, хасх) = ф (Т (текст), Х1), где је Х1 алгоритам за обраду текста Т. Ова функција има Т тако да без познавања Х1, отвори га као потпуно опремљеног фајл ће бити готово немогућ.

Коришћење хасх функција у пракси: преузимање датотека

Сада ћемо детаљније испитати опције за употребу хасх функција у пракси. Употреба одговарајућих алгоритама може се користити приликом писања скрипти за преузимање датотека са Интернет сервера.

Појам хасх функције

У већини случајева одређена је контролна сума за сваки фајл - то је хеш. Требало би да буде исто за објекат који се налази на серверу и да се преузме на рачунар корисника. Ако то није случај, датотека се можда неће отворити или се можда неће исправно покренути.

Хасх функција и ЕДС

Употреба хасх функција је уобичајена када се организује размена докумената који садрже дигитални потпис. У овом случају, потписана датотека се хешира тако да прималац може да потврди да је оригиналан. Иако формално хеш функција није укључена у структуру електронског кључа, може се снимити у фласх меморији хардвера са којим се потписују документи, као што је, на пример, еТокен.

Електронски потпис је шифровање датотека уз коришћење јавних и приватних кључева. То значи да је порука шифрована приватним кључем повезана са изворном датотеком, а ЕДС се верификује помоћу јавног кључа. Ако је хасх функција оба документа иста, датотека коју прима прималац препознаје се као аутентична, а потпис пошиљатеља се признаје као ваљан.

Хасхинг, као што смо већ напоменули, није директно компонента ЕДС-а, међутим, омогућава веома ефикасно оптимизирање алгоритама за активирање електронских потписа. Дакле, само се хеш може шифровати, а не сам документ. Као резултат тога, брзина обраде датотека се значајно повећава, ау исто вријеме постаје могуће обезбиједити ефикасније механизме за заштиту ЕДС-а, будући да ће нагласак у рачунским операцијама у овом случају бити стављен не на обраду изворних података, већ на осигуравање криптографске снаге потписа. Хеш функција такође омогућава потписивање разних типови података а не само текст.

Провера лозинке

Друга могућа област примене хасховања је организација алгоритама за верификацију лозинке подешених да ограниче приступ одређеним ресурсима датотека. Како одређене врсте хасх функција могу бити укључене у рјешавање таквих проблема? Врло једноставно.

Чињеница је да су на већини сервера, којима је приступ ограничен, лозинке похрањене у облику распршених вриједности. Ово је сасвим логично - ако су лозинке представљене у оригиналном тексту, хакери који су добили приступ њима лако могу да читају тајне податке. Заузврат, на бази хасха за израчунавање лозинке није лако.

Коришћење Хасх функција

Како се проверава приступ корисника када се користе разматрани алгоритми? Лозинка коју је корисник унио провјерава се у односу на оно што је похрањено у хасх функцији која је похрањена на послужитељу. Ако су вриједности текстуалних блокова исте, корисник добива потребан приступ ресурсима.

Најједноставнија хасх функција може се користити као алат за провјеру лозинке. Али у пракси, ИТ стручњаци најчешће користе сложене криптографске алгоритме вишестепеног типа. По правилу, оне се допуњују примјеном стандарда пренос података преко сигурног канала - тако да хакери не могу да открију или израчунају лозинку која се преноси са корисничког рачунара на сервер - пре него што је провере са блокираним текстом.

Хасх Цоллисионс

У теорији хасх функција, такав феномен је обезбеђен као судар. У чему је његова суштина? Хасх колизија је ситуација у којој два различита фајла имају исту шифровану шифру. Ово је могуће ако је дужина циљног низа знакова мала. У овом случају, вероватноћа хеш меча ће бити већа.

Да би се избегли судари, препоручује се, посебно, да се користи двоструки алгоритам који се зове "хасх-функција хеширања". То укључује формирање отвореног и затвореног кода. Многи програмери у рјешавању важних проблема препоручују да се не користе хеш функције у случајевима када није потребно и увијек тестирати одговарајуће алгоритме за најбољу компатибилност с одређеним кључевима.

Историја изгледа

Оснивачи теорије хасх функција могу се сматрати истраживачима Цартер, Вегман, Симонсон, Биербрауер. У првим верзијама, одговарајући алгоритми су коришћени као алат за формирање јединствених слика секвенци знакова произвољне дужине са накнадним циљем идентификације и провјере аутентичности. С друге стране, хасх, према специфицираним критеријумима, треба да има дужину од 30-512 бита. Као посебно корисна карактеристика одговарајућих функција, сматрало се да је погодна за коришћење као ресурса брзо претраживање датотека или њихово сортирање.

Популар Хасх Стандардс

Сада разматрамо популарне стандарде у којима се хеш функције могу представити. Међу њима - ЦРЦ. Овај алгоритам је циклички код, који се назива и контролни сум. Овај стандард одликује једноставност и истовремено универзалност - кроз њега се може добити најшири опсег података. ЦРЦ је један од најчешћих не-криптографских алгоритама.

Заузврат, код шифровања, стандарди МД4 и МД5 се широко користе. Други популарни криптографски алгоритам је СХА-1. Посебно, карактерише га хеш величина од 160 бита, што је веће од МД5 - овај стандард подржава 128 бита. Постоје руски стандарди који регулишу употребу хасх функција, - ГОСТ Р 34.11-94, као и замену са ГОСТ Р 34.11-2012. Може се приметити да хасх вредност коју обезбеђују алгоритми усвојени у Руској Федерацији је 256 бита.

Спорни стандарди се могу класификовати из различитих разлога. На пример, постоје они који користе блок и специјализоване алгоритме. Једноставност прорачуна на основу стандарда првог типа често је праћена њиховом малом брзином. Због тога, као алтернатива блок-алгоритмима, могу бити укључени они који укључују мању количину рачунских операција. Уобичајено је да се стандардима високе брзине додељују, пре свега, горе поменути МД4, МД5, као и СХА. Размотрите детаљније специфичности посебних алгоритама за хеширање на примеру СХА.

Карактеристике СХА алгоритма

Употреба хасх функција заснованих на СХА стандарду најчешће се спроводи у области развоја дигиталних потписа за ДСА документе. Као што смо већ напоменули, СХА алгоритам подржава 160-битни хеш (обезбеђује такозвани "дигест" низа знакова). Почетно разматрани стандард дели низ података на блокове од 512 бита. Ако је потребно, ако дужина последњег блока не достигне специфицирану цифру, структура датотеке се допуњује са 1 и потребним бројем нула. На крају одговарајућег блока одговара и код који фиксира дужину поруке. Разматрани алгоритам обухвата 80 логичких функција, помоћу којих се обрађује 3 речи, представљене у 32 бита. Такође, у стандардној СХА употреби 4 константе.

Хасх Алгоритхмс Цомпарисон

Хајде да испитамо како се карактеристике хеш функција које се односе на различите стандарде корелирају, на пример, поредећи карактеристике руског стандарда ГОСТ Р 34.11-94 и америчког СХА, о чему смо већ говорили. Прије свега, треба напоменути да алгоритам развијен у Руској Федерацији подразумијева имплементацију 4 операције шифрирања по једном циклусу. То одговара 128 рунди. Заузврат, за 1 круг, када се активира СХА, претпоставља се да се израчунава око 20 команди, док је укупан број рунди 80. Дакле, коришћење СХА вам омогућава да обрадите 512 бита изворних података током једног циклуса. Истовремено, руски стандард је способан да обавља операције по циклусу од 256 бита података.

Хасхинг хасх функција

Специфичности најновијег руског алгоритма

Изнад, приметили смо да је стандард ГОСТ Р 34.11-94 замењен новијим - ГОСТ Р 34.11-2012 "Стрибог". Његове специфичности детаљније истражујемо.

Кроз овај стандард могу се имплементирати криптографске хеш функције, као што је то случај са горе описаним алгоритмима. Може се примијетити да најновији руски стандард подржава блок улазних података у износу од 512 бита. Главне предности ГОСТ Р 34.11-2012:

  • висок ниво сигурности од пуцања шифара;
  • поузданост, подржана употребом доказаних структура;
  • оперативни прорачун хеш функције, недостатак трансформација у алгоритму, који компликују конструкцију функције и успоравају прорачун.

Уочене предности новог руског стандарда криптографског шифровања омогућавају да се он користи при организовању тока докумената који задовољава најстроже критеријуме који су наведени у одредбама регулаторног законодавства.

Специфичност криптографских хеш функција

Размотримо детаљније како се типови алгоритама које користимо могу користити у области криптографије. Кључни захтев за одговарајуће функције је отпор према сударима, што смо већ поменули. То значи да дупле вриједности хасх функције не би требале бити формиране ако су ове вриједности већ присутне у структури сусједног алгоритма. Други горе наведени критеријуми такође треба да задовоље криптографске функције. Јасно је да увек постоји теоретска могућност опоравка изворне датотеке засноване на хешу, посебно ако постоји моћан рачунарски алат у приступу. Међутим, овај сценарио би требало да буде сведен на минимум, захваљујући робусним алгоритмима шифровања. Дакле, бит ће врло тешко израчунати хасх функцију ако њена рачунска снага одговара формули 2 ^ {н / 2}.

Други важан критеријум криптографског алгоритма је промена у хасх-у у случају корекције почетног скупа података. Изнад, приметили смо да стандарди за енкрипцију треба да имају осетљивост од 1 бита. Дакле, ово својство је кључни фактор у обезбеђивању поуздане заштите лозинке приступа датотекама.

Криптографске хеш функције

Итеративне шеме

Сада испитујемо како криптографски алгоритми хеширања могу бити изграђени. Међу најчешћим решењима за решавање овог проблема је употреба итеративног секвенцијалног модела. Она се заснива на употреби такозване функције компресије, у којој је број улазних битова знатно већи од оних забиљежених на излазу.

Наравно, функција компресије мора задовољити потребне критерије за криптографску снагу. У интерактивној шеми, прва операција за обраду улазних података је подељена на блокове, чија се величина израчунава у битовима. Одговарајући алгоритам такође укључује временске варијабле датог броја битова. Прва вриједност користи добро познати број, док се накнадни блокови података комбинирају с вриједношћу функције на излазу. Хеш вредност постаје излазни бит за последњу итерацију, која узима у обзир цео улазни ток, укључујући и прву вредност. Обезбеђен је такозвани "лавински ефекат" хеширања.

Главна потешкоћа која карактерише хеширање имплементирана као итеративна шема је да је понекад тешко изградити хасх функције ако улазни ток није идентичан величини блока у који је подељен почетни низ података. Али у овом случају, стандард распршивања може бити исписан алгоритмима помоћу којих се изворни ток може проширити на овај или онај начин.

У неким случајевима, такозвани алгоритми вишеструког проласка могу бити укључени у обраду података унутар итеративне схеме. Они сугеришу формирање још интензивнијег "лавинског ефекта". Такав сценарио претпоставља формирање низа поновљених података, а само секундарно постоји експанзија.

Вредност хасх функције ако су вредности

Блоцк алгоритхм

Функција компресије може се базирати и на блоковском алгоритму којим се врши енкрипција. Дакле, да би се повећао ниво сигурности, можете користити блокове података који се хешују на тренутној итерацији, као кључ, и резултат операција добијених током извршавања функције компресије пре тога - као улаз. Као резултат, последња итерација ће дати излаз алгоритма. Хасх сигурност ће корелирати са робустношћу укљученог алгоритма.

Међутим, као што смо горе навели, разматрајући различите типове хеш функција, блоковски алгоритми су често праћени потребом да се користе велике рачунске моћи. Ако нису доступни, брзина обраде датотека можда неће бити довољна за рјешавање практичних проблема везаних за кориштење хасх функција. Истовремено, тражена крипто-отпорност се може реализовати са малим бројем операција са изворима изворних података, а посебно су алгоритми које смо разматрали прилагођени за решавање таквих проблема - МД5, СХА, руски криптографски стандарди за шифровање.