Re: Vypoet CRC

Va Sm SpiritusII@seznam.cz
Úterý Červenec 22 14:56:46 CEST 2008


Trochu konkretneji
mam nasledujici zpravu:
0x02,0xa0,0x04,0x21,0x03,0xf3,0x01,0x00,0x02,0x00,0x0c,0x00,0x1f,0xff,0x41,0x00,0x00,0x02,0x00,0x64,0x10
Posledni 2 bajty jsou pridany CRC k puvodni zprave (urcite jsou ok).
Otazka zni, jak se dopocitat k tem poslednim 2B???

K zabezpeceni pouzit polynom 0x8408
inicializece crc 0xFFFF
porovnavaci konstanta 0xF0B8

Pokud vsechny bajty projdou crc algoritmem skutecne vyjde 0xF0B8 - data jsou tedy ok.
Pokud crc algoritmem projdou jen informacni bajty je vysledek oxEF9B, ale to je  zvlastni, cekal bbych vysledek 0x6410. Jak se tedy od 0xEF9B dostat k 0x6410?

Omlouvam se za konkretni cisla, ale mozna je takto muj dotaz trochu srozumitelnejsi

V. Smidl




> ------------ Původní zpráva ------------
> Od: Tomáš Hamouz <hamouz@alsoft.cz>
> Předmět: Re: Vypoet CRC
> Datum: 22.7.2008 14:07:50
> ----------------------------------------
> VS> Zdravim,
> VS> resim kontrolni soucty kolem HDLC protokolu. Pokud data v HDLC
> VS> prijimam neni v overeni CRC problem. Vezmu pocatecni plneni
> VS> algoritmu vsechna prichozi data (vcetne crc) timto algoritmem
> VS> prozenu a pokud dostanu "spravny zbytek" data prisla v poradku.
> VS> Problem nastava pri opacnem procesu. Tedy hledam takove bajty,
> VS> ktere kdyz pripojim ke svoji zprave, daji po pruchodu crc
> VS> algoritmem ten "spravny zbytek". Jak na to???
> 
> Nerozumím tomu co potřebujete udělat.
> Standardní postup je
> Vysílání:
>   - inicializji generátor CRC na počáteční hodnotu
>   - spočítám CRC přes všechny _informační_ byty
>   - připojím CRC (pokud se jedná o sériový přenos odesílá se CRC v
>     opačném pořadí bitů)
> 
> Příjem:
>   - inicializuji generátor CRC
>   - spočítám CRC nad všemi znaky včetně CRC
>   - porovnám výsledek s _konstantou_ "správný výsledek"
> 
> Alternativní, ale pracnější metoda příjmu:
>   - inicializji generátor CRC na počáteční hodnotu
>   - spočítám CRC přes všechny _informační_ byty
>   - porovnám výsledek s přijatým CRC
> Tato metoda je pracnější, protože musím na začátku znát kolik bytů
> bude zpráva obsahovat a kdy mám skončit s výpočtem CRC při příjmu,
> proto se používá první varianta. Odeslání CRC v obráceném pořadí
> zajišuje že výsledek kontroly všetně CRC dává konstantu.
> 
> 
> To co popisujete vypadá jako když se snažíte najít kolizi CRC
> algoritmu.
> 
> Tomáš
>   
> 
>     
> 
> 
> _______________________________________________
> HW-list mailing list  -  sponsored by www.HW.cz
> Hw-list@list.hw.cz
> http://list.hw.cz/mailman/listinfo/hw-list
> 
> 
> 



Další informace o konferenci Hw-list