Checksum and CRC
Another secure-computing need is to ensure that the data has not been corrupted during transmission or encryption. There are a couple of popular ways to do this:
Checksum - Probably one of the oldest methods of ensuring that data is correct, checksums also provide a form of authentication because an invalid checksum suggests that the data has been compromised in some fashion. A checksum is determined in one of two ways. Let's say the checksum of a packet is 1 byte long. A byte is made up of 8 bits, and each bit can be in one of two states, leading to a total of 256 (28 ) possible combinations. Since the first combination equals zero, a byte can have a maximum value of 255.
- If the sum of the other bytes in the packet is 255 or less, then the checksum contains that exact value.
- If the sum of the other bytes is more than 255, then the checksum is the remainder of the total value after it has been divided by 256.
Let's look at a checksum example:
- Bytes total 1,151
- 1,151 / 256 = 4.496 (round to 4)
- 4 x 256 = 1,024
- 1,151 - 1,024 = 127 checksum
Cyclic Redundancy Check (CRC) - CRCs are similar in concept to checksums, but they use polynomial division to determine the value of the CRC, which is usually 16 or 32 bits in length. The good thing about CRC is that it is very accurate. If a single bit is incorrect, the CRC value will not match up. Both checksum and CRC are good for preventing random errors in transmission but provide little protection from an intentional attack on your data. Symmetric- and public-key encryption techniques are much more secure.
All of these various processes combine to provide you with the tools you need to ensure that the information you send or receive over the Internet is secure. In fact, sending information over a computer network is often much more secure than sending it any other way. Phones, especially cordless phones, are susceptible to eavesdropping, particularly by unscrupulous people with radio scanners. Traditional mail and other physical mediums often pass through numerous hands on the way to their destination, increasing the possibility of corruption. Understanding encryption, and simply making sure that any sensitive information you send over the Internet is secure (remember the "https" and padlock symbol), can provide you with greater peace of mind.
For more information on encryption and related topics, check out the links below.
More Great Links
- CES Communications. "What is encryption?" May 8, 2004. (Aug. 25, 2008) http://www.cescomm.co.nz/about/encryption.html
- Holzmann, Gerard. "Tales from the encrypt." Inc.com. Dec. 2007. (Aug. 25, 2008) http://www.inc.com/magazine/19971215/1446.html
- Kay, Russell. "QuickStudy: biometric authentication." Computer World. April 4, 2005. (Aug. 25, 2008) http://www.computerworld.com/securitytopics/security/story/0,10801,100772,00.html
- The LEDA User Manual. "Symmetric key cryptography." Jan. 9, 2008. (Aug. 25, 2008) http://www.algorithmic-solutions.info/leda_manual/Symmetric_Key_Cryptography.html
- Martin, Frank. "SSL Certificates HOWTO." The Linux Documentation Project. Oct. 20, 2002. (Aug. 25, 2008) http://tldp.org/HOWTO/SSL-Certificates-HOWTO/index.html
- Newcomer, Joseph. "Checksum algorithm." Flounder.com. June 15, 2005. (Aug. 25, 2008) http://www.flounder.com/checksum.htm
- SSH Communications Security. "Cryptographic protocols and standards." (Aug. 25, 2008) http://www.ssh.com/support/cryptography/protocols/
- SSH Communications Security. "Public key cryptosystems." (Aug. 25, 2008) http://www.ssh.com/support/cryptography/algorithms/asymmetric.html