Cyklisk redundanstjek

Fra Wikipedia, den frie encyklopædi
Gå til: navigation, søg

En cyclic redundancy check (CRC) er en ikke-sikker hashfunktion designet til at detektere tilfældige datafejl på rå computer data, som almindeligvis anvendes i datanet og datalager såsom harddiske.

Et stykke udstyr, der anvender CRC, beregner en kort binær datamængde, som også benævnes CRC-koden eller blot CRC, for hver datablok. Både datablokken og CRC sendes eller gemmes sammen. Når en blok med datablok og CRC senere læses eller modtages, beregner udstyret CRC beregningen igen; hvis den nye CRC ikke er lig den læste eller modtagne CRC (eller i nogle tilfælde ikke udlignes), så indeholder blokken en eller flere datafejl – og i så tilfælde beder udstyret om at få genlæst eller gensendt den fejlbehæftede blok. [1]

CRC blev opfundet af W. Wesley Peterson, og publiseret i hans artikel fra 1961.[2] Den IEEE-anbefalede 32-bit CRC, anvendt i ethernet og andre steder, kom frem ved en telekommunikationsconference i 1975. [3]

CRC og dataintegritet[redigér | redigér wikikode]

CRC er ikke i sig selv anvendelige til at sikre mod bevidst ændring af data, fordi deres matematiske egenskaber gør det let at beregne en CRC justering til en vilkårlig ændring af data.

Det formodes ofte forkert[4] at når en datablok og dens CRC modtages over en åben kanal og CRCen stemmer, kan de sendte data ikke have været ændret. Det er selvfølgelig forkert, fordi både data og CRC kan have være blevet ændret, så CRC stemmer med den nye datablok. Derfor kan CRCs kun anvendes til at verificere korrekthed men ikke dataintegritet.

Der findes en lang række standard CRC polynomier. I praksis er CRC koder på 8, 16, 32 og 64 bit de mest anvendte, men de kan laves med en vilkårlig længde.

Kilder/referencer[redigér | redigér wikikode]

  1. Ritter, Terry (February 1986). "The Great CRC Mystery". Dr. Dobb's Journal 11 (2): 26–34, 76–83. http://www.ciphersbyritter.com/ARTS/CRCMYST.HTM. Hentet 21 May 2009. 
  2. Peterson, W. W. and Brown, D. T. (January 1961). "Cyclic Codes for Error Detection". Proceedings of the IRE 49: 228. doi:10.1109/JRPROC.1961.287814. 
  3. Brayer, K; Hammond, J L Jr.(December 1975). "Evaluation of error detection polynomial performance on the AUTOVON channel"in National Telecommunications Conference, New Orleans, La. Conference Record1: 8-21 to 8-25, New York:Institute of Electrical and Electronics Engineers. 
  4. "Eurocontrol – FAQ: Technologies". European Organisation for the Safety of Air Navigation. http://www.eurocontrol.int/aim/public/faq/chain_faq3.html. Hentet 29 April 2009. "A Cyclic Redundancy Check (CRC) is a means by which a data item may be assessed to verify that it has not been changed (either intentionally or unintentionally) since the CRC value was applied to it."  Arkiveret 29 May 2009.