Copyright © University of Cambridge. All rights reserved.

There are many places in our lives where we meet
identification numbers; for example, passports, bank accounts,
credit cards, ISBN book numbers, and so on. Each identification
number obeys a rule which makes it easy to check (most of the time)
whether the number has been copied correctly or not and for this
reason they are also called check codes. Here are some of the
methods for checking the validity of these numbers. They use
modulus or clock arithmetic.

Which of the following are valid identification numbers? The
rules for each type are given below.

US Money Order: 123-123-123-45

Airline tickets: 123456780

Universal Product Code: 654321123456

Credit card: 1723-1001-2065-1098

ISBN number: 0 5215 3612 4

US banks: 07100013

US Postal
Service Money Order : This is an eleven digit number using
digits 1,2,...9 where the sum of the first ten digits is congruent
to the eleventh digit modulo 9. That is $a_1a_2\cdots a_{11}$ where
$a_1+ \cdots +a_{10} \equiv a_{11}$ mod 9. The last digit is called
the check digit. For example 23548762912 is a valid number because
the first ten digits add up to 47 which is congruent to 2 mod
9.

Airline
tickets : This number can be any length. It uses the digits
0 to 9 and the last digit is a check digit. The number formed by
omitting the check digit must be congruent to the check digit
modulo 7. That is $a_1\cdots a_na_{n+1}$ where $a_1a_2\cdots a_n
\equiv a_{n+1}$ mod 7. For example 2943739573 is a valid number
because $294373957\equiv 3 $ mod 7.

Universal
Product Code : This is a twelve digit number
$(a,b_1,b_2,b_3,b_4,b_5,c_1,c_2,c_3,c_5,c_5,d)$ using the digits 0
to 9, where

$a$ is the category of the goods (clothes, food,...),

$b_1,\ldots,b_5$ is the manufacturer's code

$c_1,\ldots,c_5$ is the code for the product,

$d$ is the check digit.

If we rewrite this type of identification code in the form
$(a_1,a_2,\ldots, a_{12})$, then these codes must satisfy the
following condition:

$$3(a_1+a_3+\cdots + a_{11}) + (a_2+a_4+\cdots +a_{12})\equiv
0 {\rm mod \ 10}.$$

Note that if a number $N$ is congruent to zero mod 10 it means
that $N$ is a multiple of 10. For example 582039827198 is a valid
code because 3(5+2+3+8+7+9)+(8+0+9+2+1+8)=130.

All Major
Credit Cards : These identification codes $a_1\cdots a_{16}$
have sixteen digits using digits 0 to 9, where

$\alpha + \beta + \gamma \equiv 0$ mod 10 and where

$$ \eqalign{\alpha &= 2(a_1 + a_3 + \cdots + a_{15}),\cr
\beta &= \hbox{the number of } a_j \hbox{with } j \hbox{ odd
and } a_j > 4,\cr \gamma &= a_2 + a_4 + \cdots
+a_{16}.}$$

For example 6356 0125 0327 9616 is a valid code because
$\alpha = 2(6+5+0+2+0+2+9+1)=50$, $\beta=3$, $\gamma=
(3+6+1+5+3+7+6+6) = 37$ and $\alpha +\beta +\gamma = 90$.

ISBN
Numbers : Books have ten digit identification numbers
$a_1\cdots a_{10}$ using the digits 0 to 9 where

$$10a_1+9a_2+8a_3+\cdots +3a_8+2a_9+a_{10} \equiv 0 \hbox{\
mod 11}.$$

Sometimes this forces the check-digit $a_{10}$ to be $10$; as
this would then give an eleven digit number the publishers use $X$
instead of $10$. For example, to check

0 7167 2393 X we calculate 0+63+8+42+42+10+12+27+6=210 so, as
the check digit is 10 which makes the total 220 (a multiple of 11)
we know this is a valid ISBN number.

US
Banks : These are nine digit identification numbers
$a_1a_2\cdots a_{9}$ using the digits 0 to 9 where

$7a_1 + 3a_2 + 9a_3 + 7a_4 + 3a_5 + 9a_6 + 7a_7 + 3a_8 \equiv
a_9$ mod 10. For example 123456780 is a valid US bank
identification number.

Further information of check codes can be found in this article written by Emily Dixon.