If you receive some information, how do you know if it’s intact or has been changed?

I’m going to continue explaining how you can detect errors in this episode. Make sure to listen to the previous episode also. And the best option is to subscribe to the podcast through your podcast application so you’ll be sure to get episodes automatically as soon as they’re published.

This is a simple episode but don’t be fooled. I actually learned something myself while preparing this. Something very basic about math. I’ve said many times that you don’t need to know a lot about math in order to program and I’ll always try to simplify and reduce the amount of math that’s needed.

This episode will contain a lesson in logic and another brief math lesson. The actual subject of checksums will then use these techniques. What I’m going to explain about logic is easy but you might want to make sure to listen to the Q&A Friday episode from 2015-Dec-18 first about logic operators. And you should be able to follow along the math lesson with a basic ability to do long division.

Before we get into that, why are checksums used and what are they? A checksum is another way to detect errors. This could help you detect errors when reading, writing, or receiving and sending information. The previous episode explains parity and you can use parity along with checksums if you want. Neither of these will help you detect errors made on purpose where an attacker has tried to hide the evidence. They’re easy to get around and really only good for detecting errors caused by random events or noise.

Using a checksum is not as complicated as using cryptography. I’ll explain cryptography in future episodes. Checksums have an advantage similar to parity; they’re easy and fast to calculate.

The word checksum usually refers to the result of the calculation. It’s an extra piece of information that gets added onto your data that does as the name suggests. It allows you to check the sum.

I’ll describe two different ways to create a checksum in this episode, longitudinal parity check and Fletcher checksum.