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