|
A cyclic redundancy check (CRC) is a type of function that takes an input of data stream of any length and produces as output a value of a certain fixed size. The term CRC is often used to denote either the function or the function's output. A CRC can be used as a checksum to detect alteration of data during transmission or storage. CRCs are popular because they are simple to implement in binary hardware, are easy to analyze mathematically, and are particularly good at detecting common errors caused by noise in transmission channels. The CRC was invented by W. Wesley Peterson, and published in his 1961 paper[1]. Image File history File links This is a lossless scalable vector image. ...
A checksum is a form of redundancy check, a simple way to protect the integrity of data by detecting errors in data that are sent through space (telecommunications) or time (storage). ...
Computer hardware is the physical part of a computer, including the digital circuitry, as distinguished from the computer software that executes within the hardware. ...
William Wesley Peterson, PhD (born April 22, 1924 in Muskegon, Michigan) is an American mathematician and computer scientist. ...
Introduction A CRC is an error-detecting code whose computation resembles a long division computation in which the quotient is discarded and the remainder becomes the result, with the important distinction that the arithmetic used is the carry-less arithmetic of a finite field. The length of the remainder is always less than the length of the divisor, which therefore determines how long the result can be. The definition of a particular CRC specifies the divisor to be used, among other things. In information theory and coding, an error-detecting code is a code in which each data signal conforms to specific rules of construction so that departures from this construction in the received signal can generally be automatically detected. ...
In arithmetic, long division is a procedure for calculating the division of one integer, called the dividend, by another integer called the divisor, to produce a result called the quotient. ...
In abstract algebra, a finite field or Galois field (so named in honor of Ãvariste Galois) is a field that contains only finitely many elements. ...
Although CRCs can be constructed using any finite field, all commonly used CRCs employ the finite field GF(2), the field of two elements, usually called 0 and 1, comfortably matching computer architecture. The rest of this article will discuss only these binary CRCs, but the principles are more general. GF(2) is the Galois field (or finite field) of two elements. ...
An important reason for the popularity of CRCs for detecting the accidental alteration of data is their efficiency guarantee. Typically, an n-bit CRC, applied to a data block of arbitrary length, will detect any single error burst not longer than n bits (in other words, any single alteration that spans no more than n bits of the data), and will detect a fraction 1-2-n of all longer error bursts. Errors in both data transmission channels and magnetic storage media tend to be distributed non-randomly (i.e. are "bursty"), making CRCs' properties more useful than alternative schemes such as multiple parity checks. In telecommunication, an error burst is a contiguous sequence of symbols, received over a data transmission channel, such that the first and last symbols are in error and there exists no contiguous subsequence of m correctly received symbols within the error burst. ...
The simplest error-detection system, the parity bit, is in fact a trivial CRC: it uses the two-bit-long divisor 11. A parity bit is a binary digit that indicates whether the number of bits with value of one in a given set of bits is even or odd. ...
CRCs are not, by themselves, suitable for protecting against intentional alteration of data (for example, in authentication applications for data security), because their convenient mathematical properties make it easy to compute the CRC adjustment required to match any given change to the data.
CRCs and data integrity vs. correctness While useful for error detection, CRCs cannot be safely relied upon to fully verify data correctness in the face of deliberate (rather than random) changes. In computer science and information theory, error correction consists of using methods to detect and/or correct errors in the transmission or storage of data by the use of some amount of redundant data and (in the case of transmission) the selective retransmission of incorrect segments of the data. ...
It is often falsely assumed that when a message and its CRC are transmitted over an open channel, then when it arrives and the CRC matches the message's calculated CRC then the message can not have been altered in transit. This assumption is false because CRC is a poor method of data encryption. In fact, it is not really encryption at all: it is supposed to be used for data integrity checks, but is occasionally assumed to be used for encryption. When a CRC is calculated, the message is preserved (not encrypted) and the constant-size CRC is tacked onto the end (i.e. the message can be just as easily read as before the CRC was created). Additionally, as the length of the CRC is usually much smaller than the length of the message, it is impossible for a 1:1 relationship between CRCs and messages. So multiple codes will produce the same CRC. Of course, these codes are designed to be different enough such that random (and usually only one or two bit) changes in the codeword will produce a fantastically different CRC, and so the error is likely to be detected. If deliberate tampering (changes to bits) occurred in the message, then a new, phony CRC could be computed for the new message and replace the real CRC on the end of the packet (created a packet that would be verified by any Data-Link entity). So CRCs can be relied upon to verify integrity but not correctness. In contrast, an effective way to protect messages against intentional tampering is by the use of a message authentication code such as HMAC. A cryptographic message authentication code (MAC) is a short piece of information used to authenticate a message. ...
A keyed-hash message authentication code, or HMAC, is a type of message authentication code (MAC) calculated using a cryptographic hash function in combination with a secret key. ...
Computation of CRC -
Main article: Computation of CRC The mechanics of computing an n-bit binary CRC are simple. The bits representing the input are lined up in a row, and the (n+1)-bit pattern representing the CRC's divisor (called a "polynomial") is positioned underneath the left-hand end of the row. Here is the first calculation for computing a 3-bit CRC: 11010011101100 <--- Input 1011 <--- divisor (4 Bits) -------------- 01100011101100 <--- result If the input bit above the leftmost divisor bit is 0, do nothing and move the divisor to the right by one bit. If the input bit above the leftmost divisor bit is 1, the divisor is exclusive-ORed into the input (in other words, the input bit above each 1-bit in the divisor is toggled). The divisor is then shifted one bit to the right, and the process is repeated until the divisor reaches the right-hand end of the input row. Here is the last calculation: Exclusive disjunction (usual symbol xor) is a logical operator that results in true if one of the operands (not both) is true. ...
00000000001110 <--- result of multiplication calculation 1011 <--- divisor -------------- 00000000000101 <--- remainder (3 bits) Since the leftmost divisor bit zeroed every input bit it touched, when this process ends the only bits in the input row that can be nonzero are the n bits at the right-hand end of the row. These n bits are the remainder of the division step, and will also be the value of the CRC function (unless the chosen CRC specification calls for some postprocessing).
Mathematics of CRC -
Mathematical analysis of this division-like process reveals how to pick a divisor that guarantees good error-detection properties. In this analysis, the digits of the bit strings are thought of as the coefficients of a polynomial in some variable x -- coefficients that are elements of the finite field GF(2) instead of more familiar numbers. This "polynomial trick" allows bit strings to be viewed as elements of a ring. A ring is, loosely speaking, a set of elements somewhat like numbers, that can be operated on by an operation that somewhat resembles addition and another operation that somewhat resembles multiplication, these operations possessing many of the familiar arithmetic properties of commutativity, associativity, and distributivity. Many analytical tools commonly used with numbers also work on rings, and this is why the "polynomial" view helps the analysis. Cyclic redundancy check (CRC) is based on division in the ring of polynomials over the finite field GF(2) (the integers modulo 2). ...
GF(2) is the Galois field (or finite field) of two elements. ...
In mathematics, a ring is an algebraic structure in which addition and multiplication are defined and have properties listed below. ...
Specifying a CRC The concept of the CRC as an error-detecting code gets complicated when an implementer or standards committee turns it into a practical system. Here are some of the complications: - Sometimes an implementation prefixes a fixed bit pattern to the bitstream to be checked. This is useful when clocking errors might insert 0-bits in front of a message, an alteration that would otherwise leave the CRC unchanged.
- Sometimes an implementation appends n 0-bits (n being the size of the CRC) to the bitstream to be checked before the polynomial division occurs. This has the convenience that the CRC of the original bitstream with the CRC appended is exactly zero, so the CRC can be checked simply by performing the polynomial division on the expanded bitstream and comparing the remainder with zero.
- Sometimes an implementation exclusive-ORs a fixed bit pattern into the remainder of the polynomial division.
- Bit order: Some schemes view the low-order bit of each byte as "first", which then during polynomial division means "leftmost", which is contrary to our customary understanding of "low-order". This convention makes sense when serial-port transmissions are CRC-checked in hardware, because some widespread serial-port transmission conventions transmit bytes least-significant bit first.
- Byte order: With multi-byte CRCs, there can be confusion over whether the byte transmitted first (or stored in the lowest-addressed byte of memory) is the least-significant byte or the most-significant byte. For example, some 16-bit CRC schemes swap the bytes of the CRC.
- Omission of the high-order bit of the divisor polynomial: Since the high-order bit is always 1, and since an n-bit CRC must be defined by an (n + 1)-bit divisor which overflows an n-bit register, some writers assume that it is unnecessary to mention the divisor's high-order bit.
A male DE-9 connector used for a serial port on a PC style computer. ...
When integers or any other data are represented with multiple bytes, there is no unique way of ordering of those bytes in memory or in a transmission over some medium, and so the order is subject to arbitrary convention. ...
The term arithmetic overflow or simply overflow has the following meanings. ...
In computer architecture, a processor register is a small amount of very fast computer memory used to speed the execution of computer programs by providing quick access to frequently used valuesâtypically, these values are involved in multiple expression evaluations occurring within a small region on the program. ...
Commonly used and standardized CRCs | | This section needs additional citations for verification. Please help improve this article by adding reliable references. Unsourced material may be challenged and removed. (January 2008) | Image File history File links Question_book-3. ...
Criticism CRCs as used in globally standardized telecommunications systems have not been fully standardized. Most CRCs in current use have some weakness with respect to strength or construction. Standardization of CRCs would allow for better designed CRCs to come into common use. - Both forms of CRC-8 in use have notable weaknesses mathematically.
- The definition of CRC-12 is disputed, as there are 3 forms of CRC-12 in common use. [2]
- CCITT CRCs differ from ITU CRCs (of the same size), as the same entity has standardized checksums more than once but in different eras.
- Despite its popularity, the CRC-32 polynomial used by (among others) V.42, Ethernet, FDDI and ZIP and PNG files, was arbitrarily chosen and generally exhibits very poor error detection properties (in terms of Hamming distance per given block size) compared to polynomials selected by algorithmic means[3][4][5].
- It is assumed that at least 10 other forms of CRC-16 and CRC-32 exist, but no form of CRC-16 or CRC-32 in use is mathematically optimal.
- The ITU and IEEE have been historically helpful in standardizing checksums used in telecommunications equipment and protocols -- but have provided little to no support in standardization since the end of the Cold War.
V. 42 is an error correction protocol promoted by the ITU-T, a technical standards group within the United Nations]. Its function is to allow the receiver to immediately request re-transmission of any lost data packets. ...
Ethernet is a large, diverse family of frame-based computer networking technologies that operate at many speeds for local area networks (LANs). ...
In computer networking, fiber-distributed data interface (FDDI) is a standard for data transmission in a local area network that can extend in range up to 200 km (124 miles). ...
The ZIP file format is a popular data compression and archival format. ...
PNG (Portable Network Graphics), sometimes pronounced as ping, is a relatively new bitmap image format that is becoming popular on the World Wide Web and elsewhere. ...
In information theory, the Hamming distance between two strings of equal length is the number of positions for which the corresponding symbols are different. ...
This article is about the location. ...
The Institute of Electrical and Electronics Engineers or IEEE (pronounced as eye-triple-ee) is an international non-profit, professional organization incorporated in the State of New York, United States. ...
For other uses, see Cold War (disambiguation). ...
Common polynomials - As well as the polynomial, the prefix and the value exclusive-ORed with the remainder are important for some more complicated checksums (like most forms of CRC-32 and CRC-64).
- CRCs less than CRC-16 do not tend to use Initial or final XOR values.
- Very often custom versions of checksums are created by changing these values, as it does not alter the overall mechanics (or math) of the checksum algorithm -- and may provide some nominal security features. However a CRC algorithm can be reverse-engineered from a small number of message-CRC pairs by brute force search.
Note: in this table the high-order bit is omitted; see Specifying a CRC above. A cyclic redundancy check (CRC) is a type of function that takes an input of data stream of any length and produces as output a value of a certain fixed size. ...
| Name | Polynomial | Representations: Normal or Reverse (Normal of Reciprocal) | | CRC-1 | x + 1 (most hardware; also known as parity bit) | 0x1 or 0x1 (0x1) | | CRC-4-ITU | x4 + x + 1 (ITU G.704, p. 12) | 0x3 or 0xC (0x9) | | CRC-5-ITU | x5 + x4 + x2 + 1 (ITU G.704, p. 9) | 0x15 or 0x15 (0x0B) | | CRC-5-USB | x5 + x2 + 1 (USB token packets) | 0x05 or 0x14 (0x9) | | CRC-6-ITU | x6 + x + 1 (ITU G.704, p. 3) | 0x03 or 0x30 (0x21) | | CRC-7 | x7 + x3 + 1 (telecom systems, MMC) | 0x09 or 0x48 (0x11) | | CRC-8-ATM | x8 + x2 + x + 1 (ATM HEC) | 0x07 or 0xE0 (0xC1) | | CRC-8-CCITT | x8 + x7 + x3 + x2 + 1 (1-Wire bus) | 0x8D or 0xB1 (0x63) | | CRC-8-Dallas/Maxim | x8 + x5 + x4 + 1 (1-Wire bus) | 0x31 or 0x8C (0x19) | | CRC-8 | x8 + x7 + x6 + x4 + x2 + 1 | 0xD5 or 0xAB (0x57) | | CRC-8-SAE J1850 | x8 + x4 + x3 + x2 + 1 | 0x1D or 0xB8 (0x71) | | CRC-10 | x10 + x9 + x5 + x4 + x + 1 | 0x233 or 0x331 (0x263) | | CRC-11 | x11 + x9 + x8 + x7 + x2 + 1 (FlexRay) | 0x385 or 0x50E (0x21D) | | CRC-12 | x12 + x11 + x3 + x2 + x + 1 (telecom systems, [6][7] ) | 0x80F or 0xF01 (0xE03) | | CRC-15-CAN | x15 + x14 + x10 + x8 + x7 + x4 + x3 + 1 | 0x4599 or 0x4CD1 (0x19A3) | | CRC-16-Fletcher | Not a CRC; see Fletcher's checksum | Used in Adler-32 A & B CRCs | | CRC-16-CCITT | x16 + x12 + x5 + 1 (X.25, V.41, CDMA, Bluetooth, PPP, IrDA, BACnet; known as CRC-CCITT) | 0x1021 or 0x8408 (0x0811) | | CRC-16-IBM | x16 + x15 + x2 + 1 (SDLC, XMODEM, USB, many others; also known as CRC-16) | 0x8005 or 0xA001 (0x4003) | | CRC-24-Radix-64 | x24 + x23 + x18 + x17 + x14 + x11 + x10 + x7 + x6 + x5 + x4 + x3 + x + 1 (FlexRay) | 0x864CFB or 0xDF3261 (0xBE64C3) | | CRC-30 | x30 + x29 + x21 + x20 + x15 + x13 + x12 + x11 + x8 + x7 + x6 + x2 + x + 1 (CDMA) | 0x2030B9C7 or 0x38E74301 (0x31CE8603) | | CRC-32-Adler | Not a CRC; see Adler-32 | See Adler-32 | | CRC-32-IEEE 802.3 | x32 + x26 + x23 + x22 + x16 + x12 + x11 + x10 + x8 + x7 + x5 + x4 + x2 + x + 1 (V.42, MPEG-2) | 0x04C11DB7 or 0xEDB88320 (0xDB710641) | | CRC-32C (Castagnoli) | x32 + x28 + x27 + x26 + x25 + x23 + x22 + x20 + x19 + x18 + x14 + x13 + x11 + x10 + x9 + x8 + x6 + 1 | 0x1EDC6F41 or 0x82F63B78 (0x05EC76F1) | | CRC-32K (Koopman) | x32 + x30 + x29 + x28 + x26 + x20 + x19 + x17 + x16 + x15 + x11 + x10 + x7 + x6 + x4 + x2 + x + 1 | 0x741B8CD7 or 0xEB31D82E (0xD663B05D) | | CRC-64-ISO | x64 + x4 + x3 + x + 1 (HDLC — ISO 3309) | 0x000000000000001B or 0xD800000000000000 (0xB000000000000001) | | CRC-64-ECMA-182 | x64 + x62 + x57 + x55 + x54 + x53 + x52 + x47 + x46 + x45 + x40 + x39 + x38 + x37 + x35 + x33 + x32 + x31 + x29 + x27 + x24 + x23 + x22 + x21 + x19 + x17 + x13 + x12 + x10 + x9 + x7 + x4 + x + 1 (as described in ECMA-182 p.63) | 0x42F0E1EBA9EA3693 or 0xC96C5795D7870F42 (0x92D8AF2BAF0E1E85) | Known to exist, but technologically defunct -- mainly replaced by cryptographic hash functions A parity bit is a binary digit that indicates whether the number of bits with value of one in a given set of bits is even or odd. ...
This article is about the location. ...
This article is about the location. ...
Note: USB may also mean upper sideband in radio. ...
This article is about the location. ...
A 32 MB MultiMediaCard MultiMediaCard A 128 MB RS-MMC card and an adapter An RS-MMC card with adapter attached The MultiMediaCard (MMC) is a flash memory memory card standard. ...
Asynchronous Transfer Mode (ATM) is a cell relay, packet switching network and data link layer protocol which encodes data traffic into small (53 bytes; 48 bytes of data and 5 bytes of header information) fixed-sized cells. ...
The Header Error Correction (HEC) is a field in the Asynchronous Transfer Mode cell consisting of an 8-bit checksum of the cells header only. ...
ITU-T is the telecom standardization organization of the International Telecommunication Union (ITU). ...
An I-button in a plastic fob. ...
PCI Express bus card slots (from top to bottom: x4, x16, x1 and x16), compared to a traditional 32-bit PCI bus card slot (bottom) In computer architecture, a bus is a subsystem that transfers data or power between computer components inside a computer or between computers, and a bus...
Dallas Semiconductor, now a subsidiary of Maxim Integrated Products, designs and manufactures analog, digital, and mixed-signal semiconductors (integrated circuits, or ICs). ...
Maxim Integrated Products Stock symbol MXIM.PK, commonly known as Maxim, is a semiconductor company that designs and manufactures analog and mixed-signal integrated circuits. ...
An I-button in a plastic fob. ...
PCI Express bus card slots (from top to bottom: x4, x16, x1 and x16), compared to a traditional 32-bit PCI bus card slot (bottom) In computer architecture, a bus is a subsystem that transfers data or power between computer components inside a computer or between computers, and a bus...
FlexRay is a new automotive network communications protocol under development by the FlexRay Consortium. ...
Controller Area Network (CAN) is a broadcast, differential serial bus standard, originally developed in the 1980s by Robert Bosch GmbH, for connecting electronic control units (ECUs). ...
Fletchers checksum is one of several types of checksum algorithms, which are relatively simple processes used by computers to check the integrity of data. ...
Adler-32 is a checksum algorithm which was invented by Mark Adler. ...
X.25 is an ITU-T standard protocol suite for wide area networks using leased lines, the phone or ISDN system as the networking hardware. ...
This article details the ITU-T V-Series Recommendations for protocols that govern approved modem communication standards and interfaces. ...
General Information Generically (as a multiplexing scheme), code division multiple access (CDMA) is any use of any form of spread spectrum by multiple transmitters to send to the same receiver on the same frequency channel at the same time without harmful interference. ...
Bluetooth logo This article is about the electronic protocol named after Harald Bluetooth Gormson. ...
In computing, the Point-to-Point Protocol, or PPP, is commonly used to establish a direct connection between two nodes. ...
The initials IRDA can refer to various things: In Information Technology and Communications, IrDA refers to Infrared Data Association, a standard for communication between devices (such as computers, PDAs and mobile phones) over short distances using infrared signals. ...
BACnet is a Data Communications Protocol for Building Automation and Control Networks. ...
For other uses, see IBM (disambiguation) and Big Blue. ...
Synchronous Data Link Control (SDLC) is a computer communications protocol. ...
XMODEM is a simple file transfer protocol developed as a quick hack by Ward Christensen for use in his 1977 MODEM.ASM terminal program. ...
Note: USB may also mean upper sideband in radio. ...
Radix-64 is a data encoding scheme that consists of base64-encoded data with a 24-bit CRC appended to it, and is specified in RFC 2440. ...
FlexRay is a new automotive network communications protocol under development by the FlexRay Consortium. ...
General Information Generically (as a multiplexing scheme), code division multiple access (CDMA) is any use of any form of spread spectrum by multiple transmitters to send to the same receiver on the same frequency channel at the same time without harmful interference. ...
Adler-32 is a checksum algorithm which was invented by Mark Adler. ...
Adler-32 is a checksum algorithm which was invented by Mark Adler. ...
IEEE 802. ...
V. 42 is an error correction protocol promoted by the ITU-T, a technical standards group within the United Nations]. Its function is to allow the receiver to immediately request re-transmission of any lost data packets. ...
MPEG-2 is a standard for the generic coding of moving pictures and associated audio information [1]. It is widely used around the world to specify the format of the digital television signals that are broadcast by terrestrial (over-the-air), cable, and direct broadcast satellite TV systems. ...
High-Level Data Link Control (HDLC) is a bit-oriented synchronous data link layer protocol developed by the International Organization for Standardization (ISO). ...
Ecma International is an international, private (membership-based) standards organization for information and communication systems. ...
In cryptography, a cryptographic hash function is a hash function with certain additional security properties to make it suitable for use as a primitive in various information security applications, such as authentication and message integrity. ...
- CRC-128 (IEEE)
- CRC-256 (IEEE)
Designing CRC polynomials The selection of generator polynomial is the most important part of implementing the CRC algorithm. The polynomial must be chosen to maximize the error detecting capabilities while minimizing overall collision probabilities. The most important attribute of the polynomial is its length (the number of the highest nonzero coefficient), because of its direct influence of the length of the computed checksum. The most commonly used polynomial lengths are - 9 bits (CRC-8)
- 17 bits (CRC-16)
- 33 bits (CRC-32)
- 65 bits (CRC-64)
When creating a new CRC polynomial or improving an existing CRC the general mathematical advice is to use an irreducible polynomial that satisfies all polynomical irreducibility constraints from modular arithmetics. In mathematics, the adjective irreducible means that an object cannot be expressed as a product of at least two non-trivial factors in a given ring. ...
- Irreducibility in this case means that the polynomial cannot be divided by any polynomial except itself and 1 with zero remainder.
- Reducible polynomials can still be used, but their error correcting and detecting capabilities will be less effective. Some applications may choose to use reducible polynomials under certain conditions.
The properties of the generator polynomial can be derived from the algorithm definition - CRCs with more than one nonzero coefficients are able to detect all single bit errors in the input message.
- CRCs can be used to detect all double bit errors in the input message shorter than 2k, where k is the length of the longest irreducible part of the polynomial.
- If the CRC polynomial is divided by x + 1 then no polynomial with odd number of nonzero coefficients can be divided by it. Hence, it can be used to detect odd number of errors in the input message (like single bit parity function).
- CRC polynomials detect (single) burst errors shorter than the number of the position of the highest polynomial coefficient.
General category Specific Technological References In information theory and coding, an error-correcting code or ECC is a code in which each data signal conforms to specific rules of construction so that departures from this construction in the received signal can generally be automatically detected and corrected. ...
In telecommunication, a redundancy check is extra data added to a message for the purposes of error detection and error correction. ...
This is a list of checksum algorithms. ...
In the usage in telecommunication, the number of 1 bits in the binary value is counted. ...
Adler-32 is a checksum algorithm which was invented by Mark Adler. ...
Fletchers checksum is one of several types of checksum algorithms, which are relatively simple processes used by computers to check the integrity of data. ...
References - ^ Peterson, W. W. and Brown, D. T. (January 1961). "Cyclic Codes for Error Detection". Proceedings of the IRE. doi:10.1109/JRPROC.1961.287814. ISSN 0096-8390.
- ^ (slib) Cyclic Checksum. Retrieved on 2008-04-06.
- ^ Castagnoli, G. and Braeuer, S. and Herrman, M. (June 1993). "Optimization of Cyclic Redundancy-Check Codes with 24 and 32 Parity Bits". IEEE Transactions on Communications 41 (6). doi:10.1109/26.231911. ISSN 0090-6778. - Castagnoli's et al. work on algorithmic selection of CRC polynomials
- ^ Koopman, P. (June 2002). "32-Bit Cyclic Redundancy Codes for Internet Applications". The International Conference on Dependable Systems and Networks. - verification of Castagnoli's results by exhaustive search and some new good polynomials
- ^ [|Koopman, Philip] & Chakravarty, Tridib (2004), Cyclic Redundancy Code (CRC) Polynomial Selection For Embedded Networks, <http://www.ece.cmu.edu/~koopman/roses/dsn04/koopman04_crc_poly_embedded.pdf>
- ^ Perez, A.; Wismer & Becker (1983). "Byte-Wise CRC Calculations". IEEE Micro 3 (3): 40-50. doi:10.1109/MM.1983.291120. ISSN 0272-1732.
- ^ Ramabadran, T.V.; Gaitonde, S.S. (1988). "A tutorial on CRC computations". IEEE Micro 8 (4): 62-75. doi:10.1109/40.7773. ISSN 0272-1732.
A digital object identifier (or DOI) is a standard for persistently identifying a piece of intellectual property on a digital network and associating it with related data, the metadata, in a structured extensible way. ...
ISSN, or International Standard Serial Number, is the unique eight-digit number applied to a periodical publication including electronic serials. ...
2008 (MMVIII) is the current year, a leap year that started on Tuesday of the Anno Domini (or common era), in accordance to the Gregorian calendar. ...
is the 96th day of the year (97th in leap years) in the Gregorian calendar. ...
A digital object identifier (or DOI) is a standard for persistently identifying a piece of intellectual property on a digital network and associating it with related data, the metadata, in a structured extensible way. ...
ISSN, or International Standard Serial Number, is the unique eight-digit number applied to a periodical publication including electronic serials. ...
A digital object identifier (or DOI) is a standard for persistently identifying a piece of intellectual property on a digital network and associating it with related data, the metadata, in a structured extensible way. ...
ISSN, or International Standard Serial Number, is the unique eight-digit number applied to a periodical publication including electronic serials. ...
A digital object identifier (or DOI) is a standard for persistently identifying a piece of intellectual property on a digital network and associating it with related data, the metadata, in a structured extensible way. ...
ISSN, or International Standard Serial Number, is the unique eight-digit number applied to a periodical publication including electronic serials. ...
See also Information Security Components: whereas information is transmitted, stored, encrypted, or processed, its value derives from three main attributes or qualities, i. ...
Simple file verification (SFV) is a file format for storing CRC32 checksums of files in order to verify the integrity of files. ...
External links - Easy to understand CRC32 C++ Source Code
- Free CRC Source Code from the Boost C++ Libraries
- The CRC Pitstop
- Williams, R. (1993-09) A Painless Guide to CRC Error Detection Algorithms
- Understanding Cyclic Redundancy Check
- Black, R. (1994-02) Fast CRC32 in Software; algorithm 4 is used in Linux and info-zip's zip and unzip.
- Kounavis, M. and Berry, F. (2005). A Systematic Approach to Building High Performance, Software-based, CRC generators, Slicing-by-4 and slicing-by-8 algorithms
- CRC32: Generating a checksum for a file, C++ implementation by Brian Friesen
- CRC16 to CRC64 collision research
- Reversing CRC - Theory and Practice.
- 'CRC-Analysis with Bitfilters'.
- Another Bad CRC Reading Tool, but free
- MathPages - Cyclic Redundancy Checks
- Tool for Bad CRC Reading with advanced options
- A CRC calculation utility and C source code generator written in Python. (MIT licence)
- CRC Encoding - C# Implementation by Marcel de Wijs
- Cyclic Redundancy Check: theory, practice, hardware, and software with emphasis on CRC-32. A sample chapter from Henry S. Warren, Jr. Hacker's Delight.
- Duplicate File Finder Using CRC32 Calculations
Hackers Delight (ISBN 978-0-201-91465-8) by Henry S. Warren, Jr. ...
Online tools
In computer science and information theory, error correction consists of using methods to detect and/or correct errors in the transmission or storage of data by the use of some amount of redundant data and (in the case of transmission) the selective retransmission of incorrect segments of the data. ...
A check digit is a form of redundancy check used for error detection, the decimal equivalent of a binary checksum. ...
A checksum is a form of redundancy check, a simple way to protect the integrity of data by detecting errors in data that are sent through space (telecommunications) or time (storage). ...
In telecommunication, a Hamming code is a linear error-correcting code named after its inventor, Richard Hamming. ...
Reed-Solomon error correction is a coding scheme which works by first constructing a polynomial from the data symbols to be transmitted and then sending an over-sampled plot of the polynomial instead of the original symbols themselves. ...
In information theory, a low-density parity-check code (LDPC code) is an error correcting code, a method of transmitting a message over a noisy transmission channel[1][2]. While LDPC and other error correcting codes cannot guarantee perfect transmission, the probability of lost information can be made as small...
Turbo codes are a class of recently-developed high-performance error correction codes finding use in deep-space satellite communications and other applications where designers seek to achieve maximal information transfer over a limited-bandwidth communication link in the presence of data-corrupting noise. ...
A spaceâtime code (STC) is a method employed to improve the reliability of data transmission in wireless communication systems using multiple transmit antennas. ...
Not to be confused with information technology, information science, or informatics. ...
In information theory, the Shannon-Hartley theorem states the maximum amount of error-free digital data (that is, information) that can be transmitted over a communication link with a specified bandwidth in the presence of noise interference. ...
|