Posted By: Worlock (Stanik) on 'CZprogram'
Title: Re: CRC vzorec
Date: Fri Apr 7 11:11:33 1995
Nazdarek!
> Jak vypada vzorec na CRC?
> Je nejaky definovany?
No, protoze jsem zrovna vcera udelal zkousku z informatiky - jejiz
naplni byly (krome jineho) kody vcetene CRC, tak citim tu potrebu s k tomuto
tematu vyjadrit (alespon dokud se mi to nevycoudi z hlavy).
CRC je jen jedna zvlastni podmnozina linearnich kodu, ktera ma tu
vlastnost, ze kazda rotace kodove znacky (znacka = data + zabezpeceni) je
taky kodovou znackou. Kdyz si tedy vezmete soubor i s crc na konci a cely jej
zrotujete (libovolne krat), tak to bude vzdrycky davat smysl (jeden ze
zpusobu jak obelstit crc).
Zakladem crc je vzdy bazovy polynom (treba x+1 - pro nenarocne).
Vstupni data jsou chapana take jako polynom: treba 10010 je 1+x^3 (zleva od
nejnizzsiho stupne). Vynasobenim techto dvou polynomu (s uvazenim, ze pracuji
pouze s binarnimi cisly >> 2x=0 treba) a naslednym prevedenim zpet do binarni
podoby se dostane blok dat i ze zabezpecenim (tedy data + crc).
Bazovy polynom samozrejme nejde zvolit jen tak libovolne, nebot musi
splnovat urcite vlastnosti (jeho stupen je roven poctu bitu zabezpeceni - pro
32CRC je tedy potreba polynom 32teho stupne). V literature se to jenom hemzi
ruznymy polynomy (velmes 64, 32 nebo 16), pricemz ty se pouze lysi tim, kolik
n nasobnych chyb je schopen 100% detekovat.
Tento popsany algoritmus ma tu nevyhodu, ze neni systematycky - tedy, ze
vstupni data jsou navic zkodovana (nezustanou v puvodnim tvaru). Pokud by
nekdo potreboval systematicky kod, tka mu poradim, ze se to dela naopak
delenim (specialnim samozrejme).
CRC se dopotucuje pouzivat na kratsi bloky dat (tak 4k)....
Pekny balik CRC implementaci (v C) jsem kdysi stahnul na
a1wel.felk.cvut.cz, ale ten snad (jeste) nepracuje. Takze, kdo by mel
extremni zajem, at mi majlne a ja mu jej poslu.
Mejte se sqele
Stanik
ps: svymi majliky me muzete kamenovat na adr. <stanek3@scylla.zcu.cz>
(vitana jsou hlavne devcata - hi)
ps2: sorry za ukecanost - zrovna tu spadly vsechny servery a ja nemam co delat