You are on page 1of 51

Криптологија 1

11.. Хеш функције


11
Садржај

• Заштита од активних напада - захтеви


• Аутентификација поруке – захтеви

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
Аутентификација
(симетрични шифарски системи)
• Нема сервиса непорецивости
– обе стране познају кључ!

• Ако постоји поверење између страна у


комуникацији:
– Софтвер за детекцију грешке може да региструје
могуће измене на преносном путу
– Ако порука садржи податак о времену слања
(timestamp), може се открити покушај поновног слања
исте поруке

6
Аутентификација поруке, без шифровања

Kључ, К MAC
(message authentication code)
Кључ, К

М, MAC (Кључ, М)

Алиса ?
=
Порука М Боб

Израчунај MAC и провери да ли је


исти оном који је стигао са поруком

Интегритет и аутентификација: само онај ко зна КЉУЧ


може да израчуна MAC за дату поруку

7
Аутентификација поруке: МАС
К

MAC
алгоритам
Порука М

Порука М

Порука М
МАС

МАС МАС Упореди


MAC
МАС
алгоритам

8
Аутентификација поруке: МАС наставак
• Ако се претпостави да само две стране у
комуникацији знају тајну вредност кључа К:
– Пријемна страна на основу провере МАС
вредности има информацију о томе да ли је
порука мењана на преносном путу
– Пријемна страна зна ко је послао поруку
- само онај ко зна кључ може да израчуна МАС
• Ако порука садржи податак о времену слања,
избегава се могућност напада поновног
(закашњеног) слања исте поруке

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

10
Криптографске хеш функције
• Криптографска хеш функција је једносмерна
функција која за улазни податак (порука, фајл,...)
произвољне коначне дужине као излазну вредност
даје низ фиксне дужине
– Улаз: Порука произвољне коначне дужине
• У неким случајевима је ограничена максимална
дужина поруке!
– Излаз: Криптографска хеш вредност увек исте
коначне дужине
• Намена: Аутентификација поруке
• Хеш функција не служи за шифровање!
11
Поређење шифровања и хеш функције

Отв. текст Шифрат


шифровање
Величина
дешифровање шифрата =
величини отв.
шифровање текста.
дешифровање

Постоји инверзија.

Отв. текст Хеш вредност Величина хеш


вредности је
Хеш функција
константа (нпр. 128
бита), независно од
величине отв.
текста.
Хеш функција

исти број бита Једносмерна функ.


12
Хеш функције: основна идеја
Хеш функција h
Порука “хеш вредност”
x.
.y
x’’
. x’ . . y’
Низ бита било које дужине Низ бита фиксне дужине

• h представља функцију компресије са губицима


– Колизије: h(x)=h(x’) за неке улазе x, x’
– Резултат хеш функције треба да има особине
случајаности
• Криптографске хеш функције треба да имају и додатна
својства…
13
Хеш функције: основна идеја наставак

Хеш функција

Једносмерна
функција

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 )

– Највише је употребљаван у слоју везе података у РМ


– Уобичајено се користе: CRC-8, CRC-16, CRC-32, CRC-64
– Детектује се 100% грешака (ако је број грешака <=
величине R)
– Иначе: CRC-16 (99.998%) и CRC-32 (99.9999%)
– Све више се замењује криптолошком хеш (hash) функцијом
23
• CRC (Cyclic Redundancy Check)
Пример:
P = 58
P/G=Q+R/G G=8
Q=7
R=2
Порука
(посматра се Резултат Остатак:
као један дељења –Додатак уз поруку
дугачки (цео број)
–G може да буде
бинарни
Познат број дужине: G = 8,16,24
број)
(одређује или 32 бита
дужину R)

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
Предобрада
Дописивање

дописивање дужине блока


форматирани
улаз x1, x2... xt Итеративна
функција обрада
xi компресије f
ƒ
Hi
Hi-1
Ht H0=IV

g
излаз h(x)=g(Ht)
28
MD5

• MD- message digest


– Jедносмерна хеш функција која даје излаз од 128
бита
– Улаз произвољне дужине
– Представља унапређену верзију MD4
– Појавио се 1991. године (када и WWW)
– Примена на блок шифре (DES...)
– http://www.ietf.org/rfc/rfc1321.txt
• rfc1321.txt

29
•MD5 операција:
над 64 бита операције груписане
у 4 рунде од по 16 операција

F је нелинеарна функција; једна


функција се користи у свакој
рунди. Mi означава 32-bit блок
улазне поруке,

Ki - 32-bit константу, различиту за


сваку операцију.
s означава леву ротацију
бита за s места; s варира за
сваку операцију;
означава сабирање по
модулу 232. 30
MD5 алгоритам

31
MD5 алгоритам

32
MD5: опис рада
• На поруку дописати бите тако да укупна дужина
буде 448 (mod 512)
– порука се дели на блокове од 512 бита, у последњи
блок треба дописати 64 (512-448) бита
• У последњи блок уписати 64 битску вредност
дужине оригиналне поруке (дужина пре
претходног корака)
– Укупна дужина форматиране поруке је k*512 бита.
• Иницијализовати MD бафер који чува тренутне
(и коначне) вредности функције (4 32-битска
регистра A,B,C и D).
33
MD5: опис рада наставак

• Обрада поруке подељене у блокове од 512 бита:


– Сваки блок се подвргава обради у 4 рунде
– Свака рунда има сличну структуру али различите
логичке функције
– Свака рунда има улаз од 512 бита и тренутне
вредности регистара ABCD
– Након сваке рунде се модификује вредност регистара
• Након обраде свих блокова добија се излаз:
хеш вредност
• Излаз (хеш вредност) је добијена 128 битска
вредност
34
Нострадамусов напад
• 30.11.2007. објављено....
http://www.win.tue.nl/hashclash/Nostradamus/

• Као доказ, понуђена је 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

Постоје три групе алгоритама: SHA-0, SHA-1, и SHA-2.


• SHA-0 је дизајнирала NSA, а објавио NIST 1993. године
• SHA-1 представља ревизију претходне верзије
– SHA-1 је је најдуже коришћен
– Установљен 1995. године
– Хеш вредност дужине 160 бита
– 2005. године су откривени потенцијални недостаци.
http://www.schneier.com/blog/archives/2005/02/sha1_broken.html

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:функција компресије

• Представља основу алгоритма


• Делује на блок података дужине 1024 бита
• Обавља се у 80 рунди
– као улаз користи:
512 бита из бафера (ABCDEFGH)
64 битска вредноста Wt која се добија из текућег
блока поруке
Константа Kt
– ....

42
Поређење ЅНА

• SHA-1 обухвата 80 корака за обављање операција.


– Сваки корак се назива „рунда." По правилу, већи број
рунди значи већу безбедност.
• Колизије постоје ако је за хеш вредност дужине n потребно
мање од 2(n/2) провера.

43
Безбедност ЅНА хеш финкције

• Како је за напад потпуном претрагом


потребно приближно 2(n/2) операција (n-број
бита хеш вредности) алгоритам се сматра
разбијеним ако постоји напад који ће пронаћи
колизије за мање од 2(n/2) операција.

44
SHA-1: MD5
• Принципски слични
• Напад потпуном претрагом је тежи (160 према 128 бита
код MD5)

• Нешто је спорији од MD5 (80 према 64 корака)

• Оба алгоритма су релативно једноставна и компактна


• NIST је издао ревизију стандарда: FIPS 180-2,
предложена 3 нова хеш алгоритма:
– SHA-256, SHA-384, SHA-512
– Развијени до сада и SHA-1024, SHA-2048
– Намењени за рад са AES шифарским системима
– По структури слични са SHA-1 алгоритмом
45
Поређење

‘ MD5 ‘ SHA-1 ‘ SHA-2

46
Кандидати за ЅНА-3

• NIST је организовао јавни конкурс 2.11.2007.


године за развој новог криптографског хеш
алгоритма
• Употреба за дигитални потпис,
аутентификацију поруке и сл
• Нови хеш алгоритам се води под ознаком
“SHA-3”
• Коначан избор се очекује до краја 2012. године

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. круга

• BLAKE, Blue Midnight Wish,


• Cubehash, ECHO,
• Fugue, Grøstl,
• Hamsi, JH,
• Keccak, Luffa,
• Shabal, SHAvite-3,
• SIMD, Skein

49
Хеш функције: тренутно стање

• Не користити MD5, MD4, MD2


• SHA-1 се не препоручује за употребу после
2009. године
– Користити SHA-2
• SHA-3 је стандард у изради
• Криптоанализа предложених решења се очекује

50
Хвала на пажњи

51

You might also like