kad vec pomenu,
zasto nebi koristio neki cipher ?
koju prednost hash funkcije imaju u odnosu na blok ili stream ciphere u ovoj situaciji?
uzmes bilo koji stream cipher, sa dobrim inicijalizacionim vektorima , on generise keystream koji bi
trebaod da zadovoljava osobinu kriptografske sigurnosti
u svakom slucaju, da bi ovo ilo iole korisno potreban ti je skroz random inicijalizaccioni vektor,
kod tebe su to vreme, cpu usage i sl sto se sve da vrlo lako pogoditi
ja sam naveo samo neke a ima jos:
mouse(x,y)
ostali PID
UID, free mem, size of ram , serial number (disk), voulme serial numb ....
zasto ne kriptoalgoritam ?
zato sto su neki algoritmi dizajnirani za jednu stvar:
sakrivanje podataka , dok su hash funkcije dizajnirane sa kompresionim algoritimima (unutar sebe)
i samim tim sakrivaju ulaz na kvalitetniji nacin
dok kriptoalgoritmi ovise o nekompresiji
i dizajnirani su da sakriju podatke sa kljucem
npr md5 ima unutar sebe kompresionu rutinu koja ulaz ...imas link
o kompresiji unutar hash funkcija
takodje navescu da je takodje extra stvar md5_hmac
zasto je to extra ?
zato evo posmatram , koji god hash da "pukne" obicno hmac prezivi taj pad.
gledao sam kada je implementacija rng na linuxu uspjesno analizirana i doslo se do zakljucka da input bas nije ni slucajan
zato sto su koristili konstantno neke ulaze koje sam ja naveo u onom mom primjeru za seed
tu lezi zec. sta ako server samo tamo lezi i npr nema mouse inputa, nekog veceg cpu loadinga , i slicno ?
sta ako se to koristi svaki put (sve ovo navedeno za seed) ?
onda ne dobijamo slucajnost.
e onda su cike rekle
sha1_hmac, md5_hmac , i tako. ja sam rekao samo 1 koristis seed, svaki naredni se generise is md5_rand tj iz prethodnog
sa sha1_hmac to bi bilo predivno
i da , onda mozes zadnji npr sha1_rand koji bi koristio za sha1_hmac(sha1_rand) da sacuvas u neki fajl i da ponovo ga koristis
meni se najvise dopala situacija kad su ljudi davno nekad radili otp ovako:
(ovo je 199x i neka m4jk u mu)
seed(time())
x = rand()
y = text xor x
sacuvaj kljuc x
:) e onda uzmes time sa fajla i malo se igras , pomjeras unix time , i dodjes do pocetnog seed-a
znas koliko je ljudi znalo za ovo ?
0
e da mala napomena: dobra entropija, ne IV, po pravilu IV je statitcan
jedna od caka je sto se cesto traze ti IV u .exe i tako se i moze utvrditi
da se koristi neki sistem za sifrovanje
navodim:
"In cryptography, an initialization vector (IV) is a block of bits that is required to allow a stream cipher or a block cipher to be executed in any of several modes of operation to produce a unique stream independent from other streams produced by the same encryption key, without having to go through a (usually lengthy) re-keying process."
means mmix +1
eartquick -1
bambija X)
[Ovu poruku je menjao black_dog dana 23.03.2010. u 18:04 GMT+1]