crcs can also be used as part of error-correcting codes, which allow not only the detection of transmission errors, but the reconstruction of the correct message. these codes are based on closely related mathematical principles.