Функција за сажимање
Из пројекта Википедија
Криптографски алгоритми (симетрични и асиметрични) шифровања не штите интегритет односно веродостојност поруке која је шифрована. Ово је врло важно из разлога јер је могуће да је кључ проваљен и да нам нападач шаље лажне поруке, али и могућности да је дошло до грешке приликом шифровања или дешифровања, тако да примљена порука није идентична оригиналном документу. Из тог разлога креиране су функције за сажимање или ти хаш (могу се сусрести и под именима енгл. one-way, hash function, message digest, fingerprint) алгоритми. Најпознатији и најкоришћенији хаш алгоритми су SHA-1, MD5, MDC-2, RIPEMD-160 i td. Хаш алгоритми се сврставају у криптографске алгоритме без кључа.
Садржај |
[уреди] Начин рада
Ови алгоритми просто сажму (самељу у буквалном преводу) сваку поруку или фајл без обзира на величину и на излазу добијамо низ од 128 или 160 нула и јединица, у зависности који алгоритам је коришћен. Врло је тешко готово немогуће реконструисати улазну поруку а исто тако готово је немогуће наћи два улаза са истом хаш вредношћу. Вероватноћа да у поруци неко измени неку ставку, тако да новодобијени текст има исту хаш вредност као и оригиналнa је 1 / 2160 у случају 160 битних алгоритама, дакле занемарљиво мала вероватноћа, зато се негде хаш функције називају и отисци прстију порука.
[уреди] Пример примене хаш алгоритма
Имамо поруку коју шаљемо на пример Bojan. Вредnост коју добијем када се име 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 |
[уреди] Спољашње везе
- The Hash function lounge — листа хаш функција и позантих напада
- Helger Lipmaa's links on hash functions
- Diagrams explaining cryptographic hash functions
- An Illustrated Guide to Cryptographic Hashes by Steve Friedl
- Cryptanalysis of MD5 and SHA: Time for a New Standard by Bruce Schneier
- Hash collision Q&A
- Attacking hash functions by poisoned messages (construction of multiple sensible Postscript messages with the same hash function)