batbug sanoi:
3. - hash algorithm SHA-1 (vaikka se onkin murrettu...)
SHA-1 -tiivistefunktiota
ei ole murrettu. Tutkijaryhmä on kehittänyt keinon, jonka avulla voidaan luoda aikaisempaa helpommin kaksi syötettä, jotka tuottavat saman tiivisteen. Jos SHA-1 olisi murrettu, olisi keksitty keino tuottaa tiivisteestä mieluummin useita lähtösisältöjä.
Tiivistefunktio tiivistää tietoja. Niitä käytetään eheyden tarkastamisen ohella tietojen hajauttamiseen hakujen nopeuttamisessa. Eheydellä tarkoitetaan sitä, että tiedon muuttuminen vaikkapa siirtovirheen vuoksi havaittaisiin. Ja juuri tähän kryptossa tiivistettä käytetään. Jos vahvasti salakirjoitettua tietoa muutetaan yhdenkin bitin verran, sen avaaminen tuottaa pelkkää roskaa. Niinpä tarvitaan luotettava ja helppo tapa huomata tapaturmalliset ja tahalliset muutokset.
SHA-1 -tiivisteessä, kuten muissakin tiivisteissä, on törmäyksiä. Tällöin on olemassa {n|n>=2} syötettä, joiden tiiviste T=Hash(n1)=Hash(n2). Syynä tähän on yksinkertaisesti se, että tiivisteessä on syötettä vähemmän informaatiota. Eheyden tarkistamiseen soveltuva tiiviste on laadittava niin, että on hyvin vaikeaa löytää n1 ja n2 s.e Hash(n1)=Hash(n2).
Jokaista syötettä n1 kohden on olemassa m syötettä, joista kaikista tulee sama tiiviste. Mikäli aikaa ja vaivaa halutaan nähdä, ruvetaan luomaan järjestyksessä tai satunnaisesti syötteitä m1...mn ja tuotetaan niistä tiiviste. Jossain vaiheessa syötteestä mm saadaan sama tiiviste kuin alkuperäisestä syötteestä n. SHA-1:n tapauksessa tämä vaatii keskimäärin 2^80 yritystä (tosi iso luku). Uusi hyökkäys mahdollistaa syötteen mm selvittämisen nopeammin, nyt siihen kuluu enää 2^69 yritystä. Tämäkin on niin iso luku, että ihan äkkiseltään ei kannata yöuniaan menttää uhan vuoksi.
Otetaan vielä lopuksi Pakkislaisille tutusta ympäristöstä esimerkki tiivisteiden käytöstä. Punttisalilla on neljä räkkiä käsipainoille. Räkkiin 1 sijoitetaan 1-10 kg painot, räkkiin 2 ladotaan 11-20 kg hanttelit, räkkiin 3 puolestaan 21-40 kg punnukset ja räkkiin 4 kasataan 41 kg ja raskaammat painot. Nyt painot on hajautettu tiivisteiden avulla helposti löydettäviin kokonaisuuksiin.
Kun punttaaja hakee vaikka 5 kilon painoa, hän tietää etsimänsä painon olevan 1. räkissä. Hän on käyttänyt tiivistettä haun nopeuttamiseen, eikä hänen tarvitse etsiä hanttelia räkeistä 2-4. Räkissä 1 on kuitenkin mutakin painoja: 1, 2, 3... 8, 9 ja 10 kiloisia. Juuri nämä useat saman tiivisteen (eli räkki ykkösen) alle kuuluvat monet painot muodostavat törmäyksen tiivisteessä. Onko tästä haittaa? Useinmiten ei ole. Jos painoja olisi vaikka 50 gramman välein, niin käyttämämme tiiviste ei ole kovin hyödyllinen. Vaikka oikea räkki löytyykin helposti, siellä on aivan liikaa punnuksia eli törmäyksiä.
Hmm... Nyt ollaan aika kaukana Pakkiksen pääasiallisesta aihepiiristä, mutta onhan täällä ratkottu muitakin off-topic -keskusteluja parisuhdeongelmista pakolaispulmiin ;)