Professional Documents
Culture Documents
11 - Hash Funkcije
11 - Hash Funkcije
2
Заштита од активних напада
• Шифровање нуди заштиту од пасивних
напада
• Како се заштитити од активних напада?
– Заштита од оваквих напада може да се реализује
кроз аутентификацију поруке
• Порука, фајл или други скуп подататака је
аутентификован:
– када није било измена на преносном путу и
– када се може утврдити порекло поруке (ко је
послао поруку, непорецивост)
3
Аутентификација поруке – захтеви:
• Могућност да се утврди да ли је примљена
порука измењена на преносном путу
• Могућност да се установи идентитет
пошиљаоца
• Могућност да се установи време када је порука
послата:
– Пoрука може бити снимљена и поново послата ...
– Пример:
Алиса је јавила банци да на Бобов рачун уплати
100$. Боб сними поруку и након 15 дана поново
пошаље банци ...
4
Потреба за хеш функцијама
• Претпоставимо да је Алиса потписала М
– Алиса шaље M и S = [M]Alice Бобу
– Боб верификујe да je M = {S}Alice
– Да ли је довoљнo пoслaти saмo S?
• Ако је М вeликo, [M]Alice је рачунски
зaхтeвно
• Уместо тoга, Алиса потписује h(M), где је
h(M) далеко краће од M
– Алиса шaље M и S = [h(M)]Alice Бобу
– Боб верификујe да je h(M) = {S}Alice
Аутентификација
(симетрични шифарски системи)
• Нема сервиса непорецивости
– обе стране познају кључ!
6
Аутентификација поруке, без шифровања
Kључ, К MAC
(message authentication code)
Кључ, К
М, MAC (Кључ, М)
Алиса ?
=
Порука М Боб
7
Аутентификација поруке: МАС
К
MAC
алгоритам
Порука М
Порука М
Порука М
МАС
8
Аутентификација поруке: МАС наставак
• Ако се претпостави да само две стране у
комуникацији знају тајну вредност кључа К:
– Пријемна страна на основу провере МАС
вредности има информацију о томе да ли је
порука мењана на преносном путу
– Пријемна страна зна ко је послао поруку
- само онај ко зна кључ може да израчуна МАС
• Ако порука садржи податак о времену слања,
избегава се могућност напада поновног
(закашњеног) слања исте поруке
9
Аутентификација поруке
применом
криптографске хеш функције
10
Криптографске хеш функције
• Криптографска хеш функција је једносмерна
функција која за улазни податак (порука, фајл,...)
произвољне коначне дужине као излазну вредност
даје низ фиксне дужине
– Улаз: Порука произвољне коначне дужине
• У неким случајевима је ограничена максимална
дужина поруке!
– Излаз: Криптографска хеш вредност увек исте
коначне дужине
• Намена: Аутентификација поруке
• Хеш функција не служи за шифровање!
11
Поређење шифровања и хеш функције
Постоји инверзија.
Хеш функција
Једносмерна
функција
14
Хеш функције: основна идеја наставак
• Хеш функција не сме бити инвертибилна:
– Нека је h(x’)=y∈{0,1}n за неко случајно x’
– За дато y, треба да буде тешко да се нађе било које x,
такво да је h(x)=y
• Колико тешко?
– Потпуна претрага: пробати свако могуће x, проверити да ли
је h(x)=y
– SHA-1 (стандардна хеш функција) има излаз дужине 160 бита
• Нека постоји HW такав да испитује 234 вредности
(различитих порука х) у секунди
• Следи да ће се за годину дана испитати 289 вредности х
• Потребно је 271 година да се инвертује SHA-1 хеш
вредност
15
Крипто хеш функције - захтеви
Крипто хеш функција, h(x), мора да обезбеди:
• Компресију излаз мора да буде мале дужине
• Ефикасност h(x) треба да се лако рачуна за
било које x
• Једносмерност за задато y практично је
немогуће наћи x такво да је h(x) = y
• Oтпорност на колизије
– За задато x и h(x), практично је немогуће наћи
y ≠ x, такво да је h(y) = h(x).
– Практично је немогуће наћи било које x и y, x ≠ y
такве да је h(x) = h(y).
– Колизије постоје али хеш функција треба да је
пројектована тако да их је тешко пронаћи!
16
Пример колизије
Слажем се да са
мог рачуна Различит улаз исти излаз!
пренесете на
Бобов рачун
5000€ Хеш
функција
Слажем се да са
мог рачуна
пренесете на
Бобов рачун
5€
17
Рођендански проблем - увод
Нека се у соби налази n особа
• Колика је вероватноћа да нека (једна) особа нема рођендан
истог датума као и ја (случајан избор)?
– Решење: 364/365 (број повољних/број могућих догађаја)
• Колика је вероватноћа да ни једна од n особа нема...?
– Решење: (364/365)n (једна ос. нема И друга нема .... И
n-та нема)
• Колика је вероватноћа да бар једна особа има....?
– Решење: 1 − (364/365)n
• Колико мора бити n да би вероватноћа да бар једна особа
има рођендан истог датума као и ја, била већа или једнака
1/2?
– Решење: 1/2 ≤ 1 − (364/365) n , резултат је n ≥ 253
18
Рођендански проблем
• Колика је вероватноћа да нико од n особа у соби нема
рођендан истог датума?
– Решење: 364/365 ⋅ 363/365 ⋅ … ⋅(365− − n +1)/365
• Колика је вероватноћа да oд n oсоба двоје или више
људи има рођендан истог датума?
– Решење: 1 − 364/365 ⋅ 363/365 ⋅ ⋅ ⋅(365− − n +1)/365
• Колико мора бити најмање људи у соби, да би
вероватноћа да двоје или више људи има рођендан истог
датума, била ≥ 1/2?
– 1/2 ≤ 1 − 364/365 ⋅ 363/365 ⋅ ⋅ ⋅(365 − n + 1)/365 ⇒ n ≥ 23
• Изненађење? Парадокс?
• Можда и није: број поређења је n (n -1)/2 ≈ n 2, како је
број дана у години 365, може се очекивати поклапање за
n 2 = 365 ⇒ n = √(365) ≈ 19
19
Рођендански проблем
Извор: http://www.people.virginia.edu/~rjh9u/birthday.html
20
Хеш функција и рођендански проблем
Каква веза постоји?
• Ако хеш функција h(x) даје излаз дужине N бита, онда постоји 2N
различитих хеш вредности
√(2N ) = 2N /2
• Следи, ако се израчунају хеш функције за око 2N /2 случајних
вредности, очекује се појава једне колизије (2 различита улаза дају исти
хеш)
• Последица:
– да би се разбио безбедан N битски симетрични кључ захтева
2N /2 = 2N −1 операција,
– да би се разбио безбедан N битски хеш потребно je
2N /2 операција
– Излаз хеш функције мора бити 2 пута већи од дужине кључа
симетричног система да би имао исту безбедност!
21
Некриптолошки хеш (1)
• Нека су улазни подаци X = (X0,X1,X2,…,Xn-1),
свако Xi представља један бајт (Chеcksum)
• Нека је h(X) = X0 + X1 + X2 + … + Xn-1 (mod 256)
• Компресија постоји, излаз је увек 8 бита:
2N/2= 24 = 16
• Да ли је безбедан?
• Пример: X = (10101010, 00001111)
• Хеш је 10111001
• Али, ово је хеш и за Y = (00001111, 10101010)
• Лако се налазе колизије, па ово није сигуран
хеш
22
Некриптолошки хеш (2)
• Cyclic Redundancy Check (CRC)
• Добар је за детекцију усмерених (burst) грешака
• Лако се могу наћи колизије
• CRC се понекад погрешно користи у криптолошким
применама (WEP )
24
Популарне крипто хеш функције
• MD5 - аутор Р. Ривест
– Хеш вредност дужине 128 бита
– Примедба: MD5 колизије су пронађене
• RIPEMD-160 – 160 битска варијанта MD5
• SHA-1, SHA-2 - Стандард америчке владе (у основи
сличан са MD5)
– ЅНА-1: Хеш вредност дужине 160 бита
• Стандард FIPS 180-1 1995., и RFC3174
– ЅНА-2: Хеш вредност дужине до 512 бита
• Стандард FIPS 180-2 2002.
• Постоје и многе друге хеш функције али се наведене
најчешће примењују
• Порука се прво дели на блокове а потом се рачуна хеш
вредност сваког блока
25
Дизајн крипто хеш функција
• Поред наведених особина пожељно је да поседују
и особину лавинског ефекта
– Промена у 1 биту улаза (поруке) изазивају промене у
бар половини излазних бита (хеш вредности)
• Криптолошке хеш функције се састоје од неколико
рунди
• Пожељна су брзина и сигурност
– Лавински ефекат треба да се манифестује већ након
неколико рунди
– Рунде морају да буду једноставне за извршавање
• Дизајн сличан блоковским шифрама
26
Општи модел итеративних хеш функција
Улаз
произвољне дужине
итеративна функција
компресије
оптимална
излаз
трансформација фиксне дужине
излаз
27
Детаљан модел
оригинални улаз x
Предобрада
Дописивање
g
излаз h(x)=g(Ht)
28
MD5
29
•MD5 операција:
над 64 бита операције груписане
у 4 рунде од по 16 операција
31
MD5 алгоритам
32
MD5: опис рада
• На поруку дописати бите тако да укупна дужина
буде 448 (mod 512)
– порука се дели на блокове од 512 бита, у последњи
блок треба дописати 64 (512-448) бита
• У последњи блок уписати 64 битску вредност
дужине оригиналне поруке (дужина пре
претходног корака)
– Укупна дужина форматиране поруке је k*512 бита.
• Иницијализовати MD бафер који чува тренутне
(и коначне) вредности функције (4 32-битска
регистра A,B,C и D).
33
MD5: опис рада наставак
35
Нострадамусов напад наставак
• Како су знали?
– Нису! Направили су више докумената са истим хешом
– Колизије постоје!
36
Колизије MD5
• 1. марта 2005, Arjen Lenstra, Xiaoyun Wang, и
Benne de Weger демонстрирали слабости MD5
хеш функције
• Неколико дана касније, (Vlastimil Klima),
представљен је бољи алгоритам за генерисање
MD5 колизија који може да се изврши за
неколико часова на једном notebook рачунару.
– 18. марта 2006. објављен алгоритам који може
пронаћи колизије за један минут на једном notebook
рачунару користећи ефекат назван tunneling
37
SHA
• Secure Hash Algorithm
http://www.itl.nist.gov/fipspubs/fip180-1.htm
• http://csrc.nist.gov/publications/fips/fips180-2/fips180-
2withchangenotice.pdf
38
SHA
• NIST је издао ревизију стандарда 2002. године и
предложио нове верзије:
http://csrc.nist.gov/groups/ST/toolkit/secure_hashing.html
• SHA-2 представља фамилију алгоритама који се
разликују по дужини хеш вредности и
означавају се: SHA-256, SHA-384, и SHA-512
• SHA-2 представља варијанту претходног
решења
• Компатибилан са АЕЅ шифром
• SHA-3 се још увек развија, план да се уведе у
употребу до краја 2012. године
– Већ развијене: SHA-1024, SHA-2048 ....
39
SHA-512: блок шема
40
SHA-512: кораци алгоритма
• SHA-512 се састоји из следећих корака:
– Корак 1: Дописивање бита
– Корак 2: Дописивање дужине
– Корак 3: Иницијализација бафера
– Корак 4: Дељење поруке на блокове од 1024 бита
– Корак 5: Процесирање
– Корак 6: Генерисање излазне вредности
41
SHA-512:функција компресије
42
Поређење ЅНА
43
Безбедност ЅНА хеш финкције
44
SHA-1: MD5
• Принципски слични
• Напад потпуном претрагом је тежи (160 према 128 бита
код MD5)
46
Кандидати за ЅНА-3
47
Кандидати за ЅНА-3
• NIST : http://csrc.nist.gov/groups/ST/hash/sha-
3/index.html
• Hash ZOO
http://ehash.iaik.tugraz.at/index.php?title=The_SHA
-3_Zoo&oldid=3106
• Јавни позив:
http://www.nist.gov/itl/csd/ct/hash_competition.cfm
• Водич за хеш функције:
http://unixwiz.net/techtips/iguide-crypto-hashes.html
48
Кандидати након 2. круга
49
Хеш функције: тренутно стање
50
Хвала на пажњи
51