CRC

Jan Waclawek wek@evona.sk
Čtvrtek Leden 11 12:08:18 CET 2007


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.

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

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

wek




Další informace o konferenci Hw-list