CRC

Tomáš Hamouz hamouz@alsoft.cz
Čtvrtek Leden 11 12:32:10 CET 2007


JW> Tomáš Hamouz wrote:
>> Neprohlížel jsem proč je některý algoritmus "nekorektní", ale z
>> definice CRC vyplývá že správná hodnota může být jen jedna.
>> Rozdíl může být jak danou hodnotu vypočítám.
>> 
>> Pokud počítám CRC "z definice", tzn. po jednom bitu, je nutné používat
>> rozšíření zprávy o patřičný počet nul, podle délky generačního
>> polynomu.

JW> No praveze to rozsirenie nie je nutne. Je to zvlastne ale je to tak. 
JW> Dostane sa tym ten "nekorektny" algorimus, ale v skutocnosti ma presne
JW> tu istu silu odhalit prenosove chyby ako ten "korektny"; navyse sa tym
JW> usetri to priliepanie nul - to usetrenie nie je zaujimave ani tak kvoli
JW> tym par krokom naviac, ale kvoli tomu, ze po "normalnych" bytoch spravy
JW> by sme museli zavolat CRC este 2x s nulovym vstupom, je to proste take
JW> algoritmicky nepekne, nemat aktualne CRC hned po prijati/vyslani byte.

Souhlasím s tím že je vhodné mít výsledek ihned po započítání, ale to
i při korektní variantě řeší druhá fáze optimalizace, tak jak jsem to
uvedl v mailu. Co jsem se zatím setkal s implementacemi pomocí tabulky
tak všechny generovaly "správné" CRC a ještě ihned.

Zda je "nekorektní" výsledek stejně silný jsem se zatím nekoukal, ale
je dost pravděpodobné že ano. Jen nemám momentálně čas analyzovat jak
je tato metoda citlivá na koncové nuly.

JW> Na druhej strane, nie je problem dosiahnut vysledok "korektneho" 
JW> algoritmu pouzitim "nekorektneho" - staci zmenit pociatocnu hodnotu, a
JW> to na take cislo, ktore dostanete pouzitim "korektneho" algoritmu a 
JW> povodnej pociatocnej hodnoty a spravy s nulovou dlzkou. Konkretny 
JW> priklad, pre "polynom" 1021 a pociatocnu hodnotu FFFF je "korektny" 
JW> ("nondirect") vysledok pre nulovu spravu 1D0F; takze ak chceme pouzit 
JW> ten "nekorektny" algoritmus, treba pouzit pociatocnu hodnotu 1D0F 
JW> (namiesto FFFF) a vysledne CRC bude take iste pre akukolvek spravu.

Na stejném principu je založena výše/dříve zmíněná optimalizace.
Jen to je takové lépe čitelné a nemusí se vyvětlovat proč se
inicializuje na 1D0F, když norma předepisuje FFFF...

Tomáš

JW> wek







Další informace o konferenci Hw-list