Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek dla www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Podwójne liczenie CRC32 tablicy danych

24 Kwi 2011 14:25 938 2
  • Poziom 20  
    Witam
    Mam tablicę danych konfiguracyjnych systemu mikroprocesorowego, którą zapisuję do pamięci EEPROM. Dane są krytyczne i muszą być dobrze zabezpieczone. Dla bezpieczeństwa stosuję 2-3krotny zapis kosztem miejsca pamięci. Za każdą tablicą jest dodane 4 bajty sumy CRC32. Co myślicie o dodatkowym liczeniu jeszcze jednej sumy CRC32 z tablicy zawierającej dane oraz to pierwsze CRC32 (wyliczone z samej tablicy) ? Czyli de facto za tablicą będzie dodanych 8 bajtów, dwie sumy CRC32, pierwsza liczona z samej tablicy a druga z tablicy+4bajty pierwszego CRC32.
    Zabezpieczam tym samym liczenie sumy kontrolnej przed "uszkodzeniem". Może zdażyć się taka sytuacja, że zostanie uszkodzone po 1 bicie w tablicy i w CRC32 a wyliczenie CRC32 da poprawną wartość...
    Co lepsze, kilkukrotne liczenie CRC32 czy może kilkukrotny zapis tego samego w różnych miejscach pamięci, kosztem jej pojemności, np. zapisujemy 5x to samo i sprawdzamy które dane współgrają ze swoim CRC32.
    Pozdrawiam
  • Pomocny post
    Poziom 31  
    Prawdopodobieństwo "trafienia" w taką jednoczesną zamianę bitów w sumie CRC i tablicy jest znikome. Poza tym CRC32 z samej siebie zabezpiecza wystarczająco. Nawet CRC16 jest dość silnym zabezpieczeniem (ale to zależy od ilości zabezpieczanych danych i ich ważności).
    Zabezpieczenie sumy CRC inną sumą nie ma za bardzo sensu (wykrycie błędu tak czy inaczej powoduje "wyeliminowanie" tablicy).
    Natomiast stosowanie podwójnej kopii pewnych danych jest moim zdaniem zupełnie wystarczające (tablica FAT też miała tylko jedną kopię i statystycznie to wystarczało). Wykrycie niezgodności w jednej z tablic powoduje odczyt kopii z drugiej.
    A jakie jest niebezpieczeństwo zamazania tablicy? Gdzie ta tablica jest zapisana?
  • Poziom 20  
    Witam
    "Zwykły" system mikroprocesorowy sterujący ważnym procesem...gdzie nastawy są krytyczne i wszystko od nich zależy. Sprawa bezpieczeństwa kodu we flash to osobna sprawa. Ale tak dochodzę do wniosku, że 2 kopie tego nazwijmy to "rejestru" z ustawieniami i CRC32 do niego wystarczą w zupełności. W razie niezgodności pierwszego przywróci dane z kopii.
    Pozdrawiam