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

Search the boards