Hašovacia funkcia je matematická transformácia, ktorá digitálnym dokumentom rozličnej dĺžky priradí také čísla vopred ustanovenej nenulovej pevnej dĺžky, že umožňujú overiť integritu digitálneho dokumentu, z ktorého boli odvodené transformáciou a nemožno z nich spätne odvodiť digitálny dokument.
Haš je jednovstupá (až dvoustupá funkce) kdy se se zadaného řetězce (případně +dalšího zesilující toto zabezpečení (soli) ) vypočítá jiný řetězec s pevnou dálkou. Z haše pak neni možné dostat zpět originální text: a) je to neuvěřitelně náročné, pokud neni algoritmus prolomen tak je to složitost 2naN (N=počet bitů šifry). b)nelze zjistit, co byl origniál existuje spoustu konkrétně 2na(2na(64-N)) řetězců se stejným hashem.
K čemu je hash dobrý? a) hashujou se hesla do databáze, po zjískání hackerem má jen hashe a nikoliv hesla, při loginu se pak zadané heslo zahasjuje a porovnává s hašem (no to jsem sem nenapsal: pro jednotlivé vstupy (+soli) jsou haše vždy stejné) b) kontrola stejnosti (souborů,dokumentů, ruzné otisky) třeba na DC++. Tady je ovšem problém, že udělat dva originály se stejným hašem je sice výpočetně náročné 2na(N/2) ale dost často to jde udělat, proto se v bankách puživají hodněbitové šifry.
Prolomení hashe: z kryptografického hladiska je to pokud se najde kolize dřív než ve 2na(N/2) nebo originál 2naN, pak je to prolomeno a je jedno jestli je to použitelné, protože už je jasné, že to neni náhodné orákuum.
To co robi Win XP pri sifrovani udajov v NTFS suborovom systeme je to co je popisane tu alebo to funguje na inom principe?
Šifrování neni hashování to jsou jiné funkce. Hasování je ztrátové tzn: když zahašuju 700MB video tak mi z toho vyjde třebas 16znaků. Zatimco při šifrování se zašifruje celejch 700MB (a jiným principem)
hashujou se hesla do databáze, po zjískání hackerem má jen hashe a nikoliv hesla, při loginu se pak zadané heslo zahasjuje
pro zajímavost, samozřejmě i tak je pro hackera užitečné získat databázi hashů hesel. Provádí slovníkový útok, z kandidátů na hesla a jejich mutací (abcdef, fedcba, AbCdEf,...) ze slovníku vytváří hash a porovnává s ukradenými. Shoda -- > bingo.
A nebo, když je někdo bohatej a má velké diskové pole má vypočítané haše a jenom je porovnává, což je mnohem rychlejší v proovnání brutalforce. Někde jsem tušim viděl na netu prodej takovéhle databáze pro MD5.
tie pocitace su zlozita vec... nechapem ako moze napr z nejakeho dokumentu ktory sa sklada z 1 a 0 vyrobit dalsie 1 a 0 a to bude nejaky jeho "ciselny nazov", podlo coho to pocita?
// viem ze podla algoritmu ale ako ... napriklad mam slovo heslo ktore sa sklada z bitov 1111111100000000111111110000000011111111 a ako k tomu vytovrim hash?
třeba PS Pad obsahuje Generátor MD5 otisku...
Hash má spoustu pod_algoritmů, začíná se od začátku, kdy do funkce vstupuje "nic"(případně ta sůl) a první část řetězce. Ve kterém se to smíchá (smíchá = jde o obdobu blokové šifry, jsou předdefinovány nějaké spočítané konstanty). Výsledek je pak vstupem do další části řetězce a takhle to pokračuje až do předposlední části, v poslední části je pak zahašována i délka originální řetězce (doplněná 0 aby odpovídala délka)-jako zesílení. S tím, že se to pak projede i pozpátku (8x tuším) aby neba poslední část slabší, pak je tam tušim ještě jedno zesílení se sčítáním ale název a princip už nevím. Mělo by to bejt v té přednášce od Klímy
Povedal by som ze vyraz "Hash má spoustu pod_algoritmů" je trochu blby, slovo hash znamena len to ze z nejakeho vstupu vytvorim vystup mensi tak, ze nebude zachovana povodna informacia, slovo hash samo o sebe neznamena ziaden konkretny algoritmus. Ak hovoris o nejakom algoritme tak uz hovoris o nejakom konkretnom sposobe hashovania, napr. MD5, alebo inom.
tak nevím jestlu uplně blbý ale pravdou je, že to zastak dobrý slovní obrat neni, jen jsem chtěl napsat, že je tam několik ruzných zesílení, aby to nešlo jednoduše a rychle získat zpět (jako je třeba ta délka nakonci, nebo součty)
Ja len stale neviem o akom hash-i pises :) "Hash" mozem volat aj vysledok funkcie ktora napr. len spocita ASCII kody znakov (samozrejme bol by to blby hash ale za urcitych okolnosti by to mohlo stacit :)
tak ty si za některé mé "hash" doplň "hašovací funkce". když jinak nedáš....
Nerozumies co pisem. Napisal si nejaky algoritmus (pre nejaku konkretnu hashovaciu funkciu), ale "hash" alebo "hashovacia funkcia" je vseobecny pojem, znamena len ze zo vstupu sa nejako urobi vystup s pevnou dlzkou, tak aby pravdepodobne vstupy boli rozlozene do hash hodnot rovnomerne.
aha, ted už ti rozumim jak to asi namyslí. V tom případě jsem popisoval Md5 a její podobné (určitě tam bude dost podobných věcí). ale ok, obecně je tedy hasování to co píšeš.
Pocitac len robi to co mu programator prikazal, neviem co je na tom zlozite. Hashovanie ma principy v matematike, ide o to co uz spominal Azor, aby boli rozne vstupy rozdelene na rozne hash hodnoty rovnomerne, prip. aby boli splnene dalsie kriteria podla toho kde ma byt hash pouzity (na zakodovanie hesla, na dig.podpis, alebo len v databaze na zrychlenie hladania, apod.) Algoritmov na hasovanie je viac, nesnaz sa ich pochopit je to extremne tazka matematika, proste si najdes uz vymysleny algoritmus ktory vyhovuje tomu kde to chces pouzit, a podla toho algoritmu z tych tvojich 1 a 0 vyratas ine 1 a 0 (hash).
Hašovacia funkcia je matematická transformácia, ktorá digitálnym dokumentom rozličnej dĺžky priradí také čísla vopred ustanovenej nenulovej pevnej dĺžky, že umožňujú overiť integritu digitálneho dokumentu, z ktorého boli odvodené transformáciou a nemožno z nich spätne odvodiť digitálny dokument.
wow, tak tomu hovorim definicia!
hash
Už tomu trochu rozumiem.
Haš je jednovstupá (až dvoustupá funkce) kdy se se zadaného řetězce (případně +dalšího zesilující toto zabezpečení (soli) )
vypočítá jiný řetězec s pevnou dálkou.
Z haše pak neni možné dostat zpět originální text:
a) je to neuvěřitelně náročné, pokud neni algoritmus prolomen tak je to složitost 2naN (N=počet bitů šifry).
b)nelze zjistit, co byl origniál existuje spoustu konkrétně
2na(2na(64-N)) řetězců se stejným hashem.
K čemu je hash dobrý?
a) hashujou se hesla do databáze, po zjískání hackerem má jen hashe a nikoliv hesla, při loginu se pak zadané heslo zahasjuje
a porovnává s hašem (no to jsem sem nenapsal: pro jednotlivé vstupy (+soli) jsou haše vždy stejné)
b) kontrola stejnosti (souborů,dokumentů, ruzné otisky) třeba na DC++. Tady je ovšem problém, že udělat dva originály se stejným hašem je sice výpočetně náročné 2na(N/2) ale dost často to jde udělat, proto se v bankách puživají hodněbitové šifry.
Prolomení hashe:
z kryptografického hladiska je to pokud se najde kolize dřív než ve 2na(N/2) nebo originál 2naN, pak je to prolomeno a je jedno jestli je to použitelné, protože už je jasné, že to neni náhodné orákuum.
Ale líp ti na tvuj dotaz odpoví Vlastimil Klíma, který je špičkou v tomhle oboru:
http://avc.sh.cvut.cz/archiv/index.php?id=1041&rid= 191&offset=0&select=Cryptofest
To co robi Win XP pri sifrovani udajov v NTFS suborovom systeme je to co je popisane tu alebo to funguje na inom principe?
Šifrování neni hashování to jsou jiné funkce. Hasování je ztrátové
tzn: když zahašuju 700MB video tak mi z toho vyjde třebas 16znaků. Zatimco při šifrování se zašifruje celejch 700MB (a jiným principem)
pro zajímavost,
samozřejmě i tak je pro hackera užitečné získat databázi hashů hesel. Provádí slovníkový útok, z kandidátů na hesla a jejich mutací (abcdef, fedcba, AbCdEf,...) ze slovníku vytváří hash a porovnává s ukradenými. Shoda -- > bingo.
Hacker odsud vejce používal mj. tuto metodu.
A nebo, když je někdo bohatej a má velké diskové pole má vypočítané haše a jenom je porovnává, což je mnohem rychlejší v proovnání brutalforce. Někde jsem tušim viděl na netu prodej takovéhle databáze pro MD5.
tie pocitace su zlozita vec... nechapem ako moze napr z nejakeho dokumentu ktory sa sklada z 1 a 0 vyrobit dalsie 1 a 0 a to bude nejaky jeho "ciselny nazov", podlo coho to pocita?
// viem ze podla algoritmu ale ako ... napriklad mam slovo heslo ktore sa sklada z bitov 1111111100000000111111110000000011111111 a ako k tomu vytovrim hash?
třeba PS Pad obsahuje Generátor MD5 otisku...
Hash má spoustu pod_algoritmů, začíná se od začátku, kdy do funkce vstupuje "nic"(případně ta sůl) a první část řetězce.
Ve kterém se to smíchá (smíchá = jde o obdobu blokové šifry, jsou předdefinovány nějaké spočítané konstanty). Výsledek je pak vstupem do další části řetězce a takhle to pokračuje až do předposlední části, v poslední části je pak zahašována i délka originální řetězce (doplněná 0 aby odpovídala délka)-jako zesílení. S tím, že se to pak projede i pozpátku (8x tuším)
aby neba poslední část slabší, pak je tam tušim ještě jedno zesílení se sčítáním ale název a princip už nevím. Mělo by to bejt v té přednášce od Klímy
Povedal by som ze vyraz "Hash má spoustu pod_algoritmů" je trochu blby, slovo hash znamena len to ze z nejakeho vstupu vytvorim vystup mensi tak, ze nebude zachovana povodna informacia, slovo hash samo o sebe neznamena ziaden konkretny algoritmus.
Ak hovoris o nejakom algoritme tak uz hovoris o nejakom konkretnom sposobe hashovania, napr. MD5, alebo inom.
tak nevím jestlu uplně blbý ale pravdou je, že to zastak dobrý slovní obrat neni, jen jsem chtěl napsat, že je tam několik ruzných zesílení, aby to nešlo jednoduše a rychle získat zpět (jako je třeba ta délka nakonci, nebo součty)
Ja len stale neviem o akom hash-i pises :) "Hash" mozem volat aj vysledok funkcie ktora napr. len spocita ASCII kody znakov (samozrejme bol by to blby hash ale za urcitych okolnosti by to mohlo stacit :)
tak ty si za některé mé "hash" doplň "hašovací funkce". když jinak nedáš....
Nerozumies co pisem. Napisal si nejaky algoritmus (pre nejaku konkretnu hashovaciu funkciu), ale "hash" alebo "hashovacia funkcia" je vseobecny pojem, znamena len ze zo vstupu sa nejako urobi vystup s pevnou dlzkou, tak aby pravdepodobne vstupy boli rozlozene do hash hodnot rovnomerne.
aha, ted už ti rozumim jak to asi namyslí. V tom případě jsem popisoval Md5 a její podobné (určitě tam bude dost podobných věcí). ale ok, obecně je tedy hasování to co píšeš.
Pocitac len robi to co mu programator prikazal, neviem co je na tom zlozite.
Hashovanie ma principy v matematike, ide o to co uz spominal Azor, aby boli rozne vstupy rozdelene na rozne hash hodnoty rovnomerne, prip. aby boli splnene dalsie kriteria podla toho kde ma byt hash pouzity (na zakodovanie hesla, na dig.podpis, alebo len v databaze na zrychlenie hladania, apod.)
Algoritmov na hasovanie je viac, nesnaz sa ich pochopit je to extremne tazka matematika, proste si najdes uz vymysleny algoritmus ktory vyhovuje tomu kde to chces pouzit, a podla toho algoritmu z tych tvojich 1 a 0 vyratas ine 1 a 0 (hash).