Криптографска функција за сажимање

Из Википедије, слободне енциклопедије

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

Криптографски алгоритми не штите интегритет односно веродостојност поруке која је шифрована. Ово је врло важно из разлога јер је могуће да је кључ проваљен и да нам нападач шаље лажне поруке, али и могућности да је дошло до грешке приликом шифровања или дешифровања, тако да примљена порука није идентична оригиналном документу. Из тог разлога креиране су функције за сажимање или ти хаш (могу се сусрести и под именима енгл. one-way, hash function, message digest, fingerprint) алгоритми. Најпознатији и најкоришћенији хаш алгоритми су SHA-1, MD5, MDC-2, RIPEMD-160 i td. Хаш алгоритми се сврставају у криптографске алгоритме без кључа.

Начин рада[уреди]

Ови алгоритми просто сажму (самељу у буквалном преводу) сваку поруку или фајл без обзира на величину и на излазу добијамо низ од 128 или 160 нула и јединица, у зависности који алгоритам је коришћен. Врло је тешко готово немогуће реконструисати улазну поруку а исто тако готово је немогуће наћи два улаза са истом хаш вредношћу. Вероватноћа да у поруци неко измени неку ставку, тако да новодобијени текст има исту хаш вредност као и оригинална је {1/2} ^{160} у случају 160 битних алгоритама, дакле занемарљиво мала вероватноћа, зато се негде хаш функције називају и отисци прстију порука.

Пример примене хаш алгоритма[уреди]

Имамо поруку коју шаљемо на пример Bojan. Вредност коју добијемо када се реч Bojan пропусти кроз MD5 алгоритам износи:

Хексадецимално:MD5(Bojan) = 6d57f608bcd9be81cccf4b5e3af01cb1

Сада ову поруку шифрујемо неким алгоритмом на пример AES алгоритмом и шаљемо је путем Интернета особи X. Нека неко успе да пресретне поруку и некако открије кључ и измени поруку у на пример bojan (мало почетно слово), и такву поруку са измењеним садржајем пошаље нашој особи X. Вредност хаш функције измењене поруке износи:

Хексадецимално: MD5(bojan) = fee2c775c18a12b7b52b58129b00e1bd

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

Примена[уреди]

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

Напади[уреди]

Напади на ове алгоритме се своде на проналажење колизије, односно проналажење неке вредности која ће имати исту вредност као и оригинална порука, ово се још назива и парадокс рођендана. Данас се 128 битни алгоритми попут MD5 и MD4 могу сматрати несигурним односно проваљеним и препороручено је користити алгоритме са већом дужином кључа.

Листа криптографских хаш алгоритма[уреди]

Ово је листа најпопуларнијих и најкоришћенијих алгоритама при чему се неки од доле наведених алгоритам данас сматрају несигурним.

Хаш
алгоритам
Сажетак
(у битима)
Интерна дужина
(у битима)
Величина блока
(у битима)
HAVAL 128-256
MD2 128 512 16
MD4 128 128 64
MD5 128 128 64
RIPEMD-128 128 128 64
RIPEMD-160 160 160 64
SHA-0 160
SHA-1 160 160 64
SHA-224 224 256 64
SHA-256 256 256 64
SHA-384 384 512 128
SHA-512 512 512 128
Snefru 128-256
Tiger-128 128 192 64
Tiger-160 160 192 64
Tiger / Tiger2 192 192 64
WHIRLPOOL 512 512 64

Спољашње везе[уреди]