Zamenjaj kolizijo s trkom
This commit is contained in:
parent
65af0b39b0
commit
7c1bce0c99
2 changed files with 17 additions and 17 deletions
|
|
@ -130,14 +130,14 @@ zgoščevalne funkcije \(H(b)\) pravimo \emph{zgostitev} vsebine \(b\)
|
|||
vsebine. Kaj pa če imata dve različni vsebini isto zgostitev? Funkcija
|
||||
\(H\) ni injektivna, saj je množica nizov, bistveno večja od množice
|
||||
zgostitev. To pomeni, da imata lahko dve različni datoteki enako
|
||||
zgostitev. Če se to zgodi, rečemo, da pride do \emph{kolizije
|
||||
zgostitve}. V primeru kolizije zgostitve bi Git shranil le eno datoteko,
|
||||
zgostitev. Če se to zgodi, rečemo, da pride do \emph{trka
|
||||
zgostitve}. V primeru trka zgostitve bi Git shranil le eno datoteko,
|
||||
za drugo pa bi predpostavil da je že shranjena. Zato je funkcija \(H\)
|
||||
izbrana tako, da sprememba enega samega bita v besedilu \(b \in B\)
|
||||
spremeni vrednost \(H(b)\) in je porazdelitev vrednosti \(H(b)\) čim
|
||||
bližje enakomerni porazdelitvi. To pomeni, da so vse vrednosti \(H(b)\)
|
||||
približno enako verjetne. Na ta način zmanjšamo verjetnost kolizije(
|
||||
glej \hyperref[sec_kolizije]{{[}sec\_kolizije{]}}). Verjetnost kolizije
|
||||
približno enako verjetne. Na ta način zmanjšamo verjetnost trka(
|
||||
glej \hyperref[sec_trk]{{[}sec\_trk{]}}). Verjetnost trka
|
||||
je izjemno majhna, zato Git lahko predpostavi, da je niz \(b\) enolično
|
||||
določen z njegovo zgostitvijo \(H(b)\).
|
||||
|
||||
|
|
@ -279,8 +279,8 @@ objekta določena z njegovo zgostitvijo. To pomeni, da lahko enostavno
|
|||
preverimo verodostojnost vsebine, ki je shranjena v Gitu. Git hrani
|
||||
skladišče objektov v mapi \texttt{.git/objects}.
|
||||
|
||||
\section{Kolizije zgostitev in rojstnodnevni
|
||||
paradoks}\label{sec_kolizije}
|
||||
\section{Trki zgostitev in rojstnodnevni
|
||||
paradoks}\label{sec_trk}
|
||||
|
||||
Git hrani datoteke pod imeni, ki so enaka zgostitvi vsebine. Če imata
|
||||
dve datoteki z različno vsebino isto zgostitev, Git shrani le eno
|
||||
|
|
@ -288,7 +288,7 @@ datoteko in pride do izgubil podatkov. Git se zanaša na to, da je
|
|||
verjetnost za to izjemno majhna. Kako bi ocenili to verjetnost?
|
||||
|
||||
Koliko datotek bi morali shraniti v Git, da bi z znatno verjetnostjo
|
||||
prišlo do kolizije? Vprašanje je povezano z rojstnodnevnim problemom.
|
||||
prišlo do trka? Vprašanje je povezano z rojstnodnevnim problemom.
|
||||
Kako velika naj bo skupina ljudi, da bo vsaj \(50\%\) verjetnost, da
|
||||
imata dve osebi na isti dan rojstni dan? Velikost skupine je
|
||||
presenetljivo majhna(23), zato rojstnodnevnei problem imenujemo tudi
|
||||
|
|
@ -312,7 +312,7 @@ Za vrednosti \(1 \ll n \ll h\) je \(1 - e^{- \frac{n^{2}}{2h}}\) tudi
|
|||
dobra aproksimacija za \(p(n,h)\).
|
||||
|
||||
Da bi odgovorili kako odporna je zgoščevalna funkcija na morebitne
|
||||
kolizije, moramo rešiti obratno nalogo: največ koliko števil \(n(p,d)\)
|
||||
trka, moramo rešiti obratno nalogo: največ koliko števil \(n(p,d)\)
|
||||
lahko izberemo, da bo verjetnost pojava dveh enakih števil manjša od
|
||||
\(p \in \lbrack 0,1\rbrack\)? Natančen odgovor na to vprašanje ni tako
|
||||
preprost \cite{brink_probably_2012}. Lahko pa uporabimo oceno
|
||||
|
|
@ -328,10 +328,10 @@ Funkcija \(\sqrt{\log(\frac{1}{1 - p})}\) zelo počasi narašča, ko se
|
|||
\(p\) približuje \(1\), zato jo lahko zanemarimo. Če je zgoščevalna
|
||||
funkcija \(160\) bitna, kot na primer SHA1, je
|
||||
\(n \approx \sqrt{2^{160}} \approx 2^{80}\). Znatna verjetnost, da pride
|
||||
do kolizije zgostitev, bi se pojavila, ko bi shranili \(2^{80}\)
|
||||
do trka zgostitev, bi se pojavila, ko bi shranili \(2^{80}\)
|
||||
različnih verzij datotek v Git. Raziskovalci, ki so razvili napad
|
||||
\emph{SHAttered}, so se posebej potrudili in so potrebovali ``zgolj''
|
||||
približno \(2^{63}\) primerov, da so prišli do kolizije.
|
||||
približno \(2^{63}\) primerov, da so prišli do trka.
|
||||
|
||||
\section{Zgodovinski graf sprememb}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue