Cyklisk redundanstjek

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 publiceret 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

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

  1. ^ Ritter, Terry (februar 1986). "The Great CRC Mystery". Dr. Dobb's Journal. 11 (2): 26–34, 76–83. Hentet 21. maj 2009.
  2. ^ Peterson, W. W. and Brown, D. T. (januar 1961). "Cyclic Codes for Error Detection". Proceedings of the IRE. 49: 228. doi:10.1109/JRPROC.1961.287814.{{cite journal}}: CS1-vedligeholdelse: Flere navne: authors list (link)
  3. ^ Brayer, K.; Hammond, J. L., Jr. (december 1975). "Evaluation of error detection polynomial performance on the AUTOVON channel". Conference Record. National Telecommunications Conference, New Orleans, La. Vol. 1. New York: Institute of Electrical and Electronics Engineers. s. 8-21 to 8-25.{{cite conference}}: CS1-vedligeholdelse: Flere navne: authors list (link)
  4. ^ "Eurocontrol – FAQ: Technologies". European Organisation for the Safety of Air Navigation. Arkiveret fra originalen 29. maj 2009. 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.