Odp.: RE: CRC, hash, urceni jak se pocita

Jan Waclawek konfera@efton.sk
Úterý Srpen 25 22:06:56 CEST 2009


Tak nikto? ;-)

Na www.efton.sk/tmp/csum.pas je zdrojak toho programceka.

Algoritmus je (p0+01) * (p1+12) * (p2+23) * (p3+34) * ... atd.
p0, p1, p2... su prve, druhe, tretie atd. pismeno resp. ich ASCII hodnota. Pozor, prve pismeno je implicitne p0='/' (imituje sa tam aj filesystem). To nasobenie v skutocnosti nie je celkom nasobenie, ale je to nasobenie 16 bit * 16 bit, a potom sa z vyslednych 32 bit zoberie hornych 16 bit a pripocita k dolnym.

To, co sa pricita, sa pre kazde dalsie pismeno zvysuje o 11; nie som si vsak isty, co sa stane pre velmi vela pismen, ked ten sucet presiahne 8 resp. 16 bitov, tak si to este odskusajte.

Predpokladam, ze ten prvy "index.html" nebol v "roote", a tym sa dosiahla rozdielna checksuma.

>da se odhadnout jak je ten algoritmus odolny proti vygenerovani stejneho 
>checksumu pro rozdilne nazvy?

No, z principu to ma nejake nedostatky, napr. "wek" a "plk" ma tu istu checksumu, teraz je otazne, nakolko to je relevantne :-D

>proc autor pouzil tak sileny postup, proc tam nema 
>jmeno?

Zrejme preto, lebo a) vyhol sa tym skutocnemu filesystemu; b) vyhol sa tym problemom s potencialne donekonecna nafukovatelnym menom.



wek


PS. Odmena... Vyriesme to tak, ze poslete flasku panovi kolegovi Trollerovi, lebo uprmine povedane, kym nenapisal ten nastrel, tapal som v kalnych vodach CRC a uz som to chcel vzdat. Takze mu patri tak zhruba polovica tej flasky, a ked sa s nim stretnem, tak mi potom tu dlznu pol flasku da :-)



----- Original Message ---------------
>zkousel jsem to na par divnych nazvech a opravdu to asi chodi v pohode.
>da se odhadnout jak je ten algoritmus odolny proti vygenerovani stejneho 
>checksumu pro rozdilne nazvy?
>a hlavne netusi nekdo proc autor pouzil tak sileny postup, proc tam nema 
>jmeno?
>
>Pavel
>
>
>----- Original Message ----- 
>From: "Jan Waclawek" <konfera@efton.sk>
>To: "HW-news" <hw-list@list.hw.cz>
>Sent: Monday, August 24, 2009 8:05 PM
>Subject: Re: Odp.: RE: CRC, hash, urceni jak se pocita
>
>
>No tak zhruba to mam, ale ozaj len zhruba. Nechcem vsak pokazit zabavu 
>ostatnym :-P
>
>Na www.efton.sk/tmp/csum.exe je kratky programcek ktory pocita tu checksumu. 
>Nie je to len "if input="a" then print "70 14" ;-) . Mozete si vyskusat, ci 
>to sedi pre e, f, g, atd.; predpokladam, ze do tych 3 pismen to bude sediet.
>
>Pre index.html mi to nesedi, takze by som poprosil i, in, ind, inde, atd. az 
>kym sa to nezacne rozchadzat.
>
>wek
>
>
>----- Original Message ---------------
>>Hmmm, teda vyzera to na nejake krat-plus. Povedal by som, ze pismena do 
>>algoritmu vstupuju sprava. Plati aj bb-ba = bc-bb = b = 0x14a0 = 110*48.
>>
>>> K aac je pøedem nutno
>>>pøièíst 65535 (èekal bych, ¾e to bude 65536, ale není).
>>
>>To je zrejme preto, lebo tym pricitanim medzi aab a aac nastalo pretecenie, 
>>takze do "plus" vstupuje aj carry.
>>
>>wek
>>
>>
>>
>>----- Original Message ---------------
>>
>>> > > a        70 14
>>>> > > b        A0 14
>>>> > > c        D0 14
>>>> > > index.html    A0 F4
>



Další informace o konferenci Hw-list