MD5 — разлика између измена

Садржај обрисан Садржај додат
м Бот Додаје: bg:MD5
мНема описа измене
Ред 1:
'''-{MD5}-''' (од {{јез-ен|Message-Digest algorithm 5}}) је криптографски алгоритам који спада у групу [[ФункцијаКриптографска функција за сажимање|хаш алгоритама]] или алгоритама за сажимање (ови алгоритми се још називају и дигест, иреверизибилни или алгоритми без кључа ) и био је веома је примењен у многим областима заштите података, мада се данас сматра подложним криптографским нападима тако да се ређе примењује у криптографији, али је нашао веома честу примену у провери интегритета већих фајлова због своје брзине. Дужина дигеста (дигест се може превести као сажетак) је 128 [[бит]]а.
 
==Настанак алгоритма==
 
 
== Настанак алгоритма ==
-{MD5}- [[алгоритам]] је развио [[1991]]. године [[Роналд Ривест]]. Базиран је на -{[[MD4]]}- алгоритму, и иако је нешто спорији од -{[[MD4]]}- алгоритма, -{MD5}- је много сигурнији. Величина дигеста, као и број додатних битова додатих изворној поруци су остали исти. Због разлога што је -{[[MD4]]}- [[алгоритам]] развијен с намером да буде најбржи [[алгоритам]], алгоритам се налазио „на самом рубу“ у погледу ризика успешних криптоаналитичких напада. При развоју -{MD5}- алгоритма, програмери су се одрекли одређеног коефицијента брзине извођења како би остварили већу сигурност.
 
== Разбијање -{MD5}- алгоритма ==
Дужина дигеста овог алгоритма је 128 [[бит]]а, чему многи криптоаналитичари замерају овом алгоритму тако да се сматра да је подложан -{''brute force birthday attack''}-. Један такав пројекат под именом -{''MD5CRK''}- је покренут [[1. март]]а [[2004]]. године са намером да докажу да овај [[алгоритам]] није сигуран. Не дуго затим [[17. август]]а [[2004]]. објављено је да су Ксиаоун Ванг, Денгуо Фенг, Ксуејиа Лаи и Ксонгбо Ју -{('''Xiaoyun Wang, Dengguo Feng, Xuejia Lai, Hongbo Yu''')}- успешно разбили алгоритам односно да су пронашли колизију на алгоритму. За разбијање овог алгоритма било им је потребан само један сат на -{IBM p690}- кластеру.
 
[[1. март]]а [[2005]]. Арјен Ленстра, Ксиаоун Ванг, и Бене де Вегер демонстрирали су креирање два -{X.509}- сертификата са различитим јавним кључевима али истим -{MD5}- дигестом. Неколико дана потом Властимил Клима је креирао унапређени алгоритам који је у стању да на обичном лап топу за неколико сати креира колизију -{MD5}- алгоритма.
 
== Примена ==
Због пронађених недостатака овог алгоритма, данас се све ређе користи у криптографији за потписивање дигиталних сертификата и складиштење шифри и уместо њега се најчешће користе неки други алгоритми, као на пример -{''[[SHA-1]], [[WHIRLPOOL]], [[RIPEMD-160]]''}-. Данас се овај алгоритам најчешће примењује за проверу интегритета фајлова ({{јез-ен|checksum}}, контролни збир).
 
== Опис алгоритма ==
[[Слика:MD5.png|десно|мини|300п|Слика 3. Једна -{MD5}- операција - -{MD5 }- се састоји од 64 ових операција , груписаних у четри корака од 16 операција. ''-{F}-'' је нелинеарна функција; једна функција се користи за сваки корак . -{''М<sub>i</sub>''}- представља 32-битни блок улазне поруке, и -{''К<sub>и</sub>''}- представља 32-битну константу, другачију за сваку операцију.]]
 
-{MD5}- алгоритам као улаз користи б-битну поруку где је б произвољни ненегативни цели број. Поруку можемо замислити као низ битова:
 
-{<math>m0 m1 m2 ... m{b-2} m{b-1}</math>}-
 
Порука се мора надопунити битовима како би њена дужина (у битовима) одговарала броју 448 модуо 512. Другим речима, порука се мора проширити тако да јој недостају 64 бита да њена укупна дужина у битовима буде дељива са 512.
Линија 36 ⟶ 34:
После иницијализације покреће се -{MD5}- алгоритам који се поново изводи за сваких следећих 512 бита поруке. Само језгро алгоритма представља компресијска функција која се састоји од четири циклуса. Сваки од четири циклуса има сличну структуру, али сваки користи другачију примитивну логичку функцију -{F, G, H}- или -{I}-. Коначан резултат представљају вредности у [[регистар|регистрима]] -{А, B, C}- и -{D}- које се збрајају са њиховим иницијалним вредностима. Сваки од тих четири регистара представља једну четвртину дигеста улазне поруке.
 
== Пример ==
Пример примене -{MD5}- алгоритма. Реченицу у -{[[ASCII]]}- формату -{„The quick brown fox jumps over the lazy dog“}- пустићемо кроз -{MD5}- алгоритам и добићемо 128-битни излаз у хексадецималном облику
 
Линија 49 ⟶ 47:
-{MD5("") = d41d8cd98f00b204e9800998ecf8427e}-
 
== Упоређење -{MD5}-, -{SHA-1}- и -{RIPEMD-160}- алгоритма ==
32 бита дужи дигест -{[[SHA-1]]}- и -{[[RIPEMD-160]]}- алгоритама су главне предности тих алгоритама у односу на -{MD5}-. Тежина добијања идентичног дигеста за две различите поруке тим алгоритмима са 2<sup>80</sup> [[комбинација]] што изгледа супериорно према тежини -{MD5}- алгоритма која износи 2<sup>64</sup>.
 
32 бита дужи дигест [[SHA-1]] и [[RIPEMD-160]] алгоритама су главне предности тих алгоритама у односу на -{MD5}-. Тежина добијања идентичног дигеста за две различите поруке тим алгоритмима са 2<sup>80</sup> [[комбинација]] што изгледа супериорно према тежини -{MD5}- алгоритма која износи 2<sup>64</sup>.
 
Упоређења -{[[SHA-1]]}- алгоритма са -{MD5}- алгоритмом показују да је -{[[SHA-1]]}- [[алгоритам]] сигурнији од -{MD5}- алгоритма.
 
{| {{prettytable}}
!
!-{MD5}-
!-{SHA-1}-
!-{RIPEMD-160}-
|----
|Дужина дигеста
Линија 92 ⟶ 89:
|----
|Запис битова
|-{[[Little endian]]}-
|-{[[Big endian]]}-
|-{[[Little endian]]}-
|}
 
Преузето из „https://sr.wikipedia.org/wiki/MD5