%0 Journal Article %A Koopman, Philip %A Driscoll, Kevin %A Hall, Brendan %D 2015 %T Selection of Cyclic Redundancy Code and Checksum Algorithms to Ensure Critical Data Integrity %U https://kilthub.cmu.edu/articles/journal_contribution/Selection_of_Cyclic_Redundancy_Code_and_Checksum_Algorithms_to_Ensure_Critical_Data_Integrity/6469286 %R 10.1184/R1/6469286.v1 %2 https://kilthub.cmu.edu/ndownloader/files/11897840 %K CRC %K Cyclic redundancy code %K Checksum %K Error coding %K Error detection %K Network data errors %K Memory data errors %X

This report explores the characteristics of checksums and cyclic redundancy codes (CRCs) in an aviation context. It includes a literature review, a discussion of error detection performance metrics, a comparison of various checksum and CRC approaches, and a proposed methodology for mapping CRC and checksum design parameters to aviation integrity requirements. Specific examples studied are Institute of Electrical and Electronics Engineers (IEEE) 802.3 CRC-32; Aeronautical Radio, Incorporated (ARINC)-629 error detection; ARINC-825 Controller Area Network (CAN) error detection; Fletcher checksum; and the Aeronautical Telecommunication Network (ATN)-32 checksum. Also considered are multiple error codes used together, specific effects relevant to communication networks, memory storage, and transferring data from nonvolatile to volatile memory.

Key findings include: (1) significant differences exist in effectiveness between error-code approaches, with CRCs being generally superior to checksums in a wide variety of contexts; (2) common practices and published standards may provide suboptimal (or sometimes even incorrect) information, requiring diligence in selecting practices to adopt in new standards and new systems; (3) error detection effectiveness depends on many factors, with the Hamming distance of the error code being of primary importance in many practical situations; (4) no one-size-fits-all error-coding approach exists, although this report does propose a procedure that can be followed to make a methodical decision as to which coding approach to adopt; and (5) a number of secondary considerations must be taken into account that can substantially influence the achieved error-detection effectiveness of a particular error-coding approach.

%I Carnegie Mellon University