This Article 
 Bibliographic References 
 Add to: 
Error-Detection Codes: Algorithms and Fast Implementation
January 2005 (vol. 54 no. 1)
pp. 1-11
Web Extra: View supplemental material
Binary CRCs are very effective for error detection, but their software implementation is not very efficient. Thus, many binary non-CRC codes (which are not as strong as CRCs, but can be more efficiently implemented in software) are proposed as alternatives to CRCs. The non-CRC codes include WSC, CXOR, one's-complement checksum, Fletcher checksum, and block-parity code. In this paper, we present a general algorithm for constructing a family of binary error-detection codes. This family is large because it contains all these non-CRC codes, CRCs, perfect codes, as well as other linear and nonlinear codes. In addition to unifying these apparently disparate codes, our algorithm also generates some non-CRC codes that have minimum distance 4 (like CRCs) and efficient software implementation.

[1] D. Bertsekas and R. Gallager, Data Networks, second ed. Englewood Cliffs, N.J.: Prentice Hall, 1992.
[2] A. Binstock and J. Rex, Practical Algorithms for Programmers. Reading, Mass.: Addison-Wesley, 1995.
[3] P. Farkas, “Comments on 'Weighted Sum Codes for Error Detection and Their Comparison with Existing Codes',” IEEE/ACM Trans. Networking, vol. 3, no. 2, pp. 222-223, Apr. 1995.
[4] D.C. Feldmeier, “Fast Software Implementation of Error Detection Codes,” IEEE/ACM Trans. Networking, vol. 3, no. 6, pp. 640-651, Dec. 1995.
[5] J.G. Fletcher, “An Arithmetic Checksum for Serial Transmissions,” IEEE Trans. Comm., vol. 30, pp. 247-252, Jan. 1982.
[6] J.G. Fletcher, ACM Computing Rev., vol. 36, no. 1, p. 66, Jan. 1995.
[7] T. Klove and V. Korzhik, Error Detecting Codes: General Theory and Their Application in Feedback Communication Systems. Kluwer Academic, 1995.
[8] F.J. MacWilliams and N.J. A. Sloan, The Theory of Error-Correcting Codes. New York: North-Holland, 1977.
[9] A.J. McAuley, “Weighted Sum Codes for Error Detection and Their Comparison with Existing Codes,” IEEE/ ACM Trans. Networking, vol. 2, no. 1, pp. 16-22, Feb. 1994.
[10] G.D. Nguyen, “A General Class of Error-Detection Codes,” Proc. 32nd Conf. Information Sciences and Systems, pp. 451-453, Mar. 1998.
[11] A. Perez, “Byte-Wise CRC Calculations,” IEEE Micro, vol. 3, pp. 40-50, June 1983.
[12] T.V. Ramabadran and S.S. Gaitonde, “A Tutorial on CRC Computations,” IEEE Micro, vol. 8, pp. 62-75, Aug. 1988.
[13] D.V. Sarwate, “Computation of Cyclic Redundancy Checks via Table-Lookup,” Comm. ACM, vol. 31, no. 8, pp. 1008-1013, Aug. 1988.
[14] J. Stone, M. Greenwald, C. Partridge, and J. Hughes, “Performance of Checksums and CRC's over Real Data,” IEEE/ACM Trans. Networking, vol. 6, no. 5, pp. 529-543, Oct. 1998.
[15] J.L. Vasilev, “On Nongroup Close-Packed Codes (in Russian),” Problemi Cybernetica, vol. 8, pp. 337-339, 1962.

Index Terms:
Fast error-detection code, Hamming code, CRC, checksum.
Gam D. Nguyen, "Error-Detection Codes: Algorithms and Fast Implementation," IEEE Transactions on Computers, vol. 54, no. 1, pp. 1-11, Jan. 2005, doi:10.1109/TC.2005.7
Usage of this product signifies your acceptance of the Terms of Use.