17 December 2008

How to verify you actually endorsed a check

Have you ever had someone claim that they paid you by check and you had no record of being paid? Did they offer to either fax a copy of the check or mail it to you? If they did either, were you sure that the back of the check (containing your signature) actually matched the front of the same check? Here is one way that you can be reasonably sure that you were actually paid, and without having to see the check itself.

Suppose that there were a way to make your signature unique on each check. My suggestion is to generate a number that you will write following your signature, and to have that number specific to the check that you're signing. (We'll use the phrase "magic number" to refer to the number you'll write after your signature when you sign your check.) The number should be generated in a way that makes it very hard for someone else to figure out how it was created. No, you won't have to remember how many checks you've signed, nor will it be the date that you signed the check (or received it, cashed it, deposited it, etc.). The magic number will be based on the serial number printed on the face of the check itself.

Here are the criteria for generating the magic number: The method must be difficult for the person paying you to determine, but easy for you to use. Having several cancelled checks should not help break the code. Check numbers of any length (3, 4, 5 digits or more) must be acceptable. You must not need a computer to generate or validate the number; a pen and paper or simple calculator should be enough. The magic number should be two or more digits, and short enough to be read easily over the phone.

You have probably already thought of some ideas. Good! Some possibilities include moving the digits around in some pattern (check number 1234 equals 2413, check 5678 equals 6857), adding a number to the check number (check number 1234 equals 1327, check 5678 equals 5771), etc. You may come up with a better way than I have, explained below.

What we need is a one-way transformation: A method that can't be traced backwards. It would be too easy to figure out that the magic numbers in the previous paragraph came from (respectively) taking the even digits then the odd digits, or adding 93 to the check number.

If you've done computer programming, you've probably already said "Aha! Modular arithmetic!" or "Modulo!". If not, please keep reading; the name may not be familiar, but it's an easy concept.

Not all numbers are evenly divisible by other (smaller) numbers. 10 divided by 3 is 3 with a remainder of 1, for example. 17 / 5 = 3 remainder 2. The simple way to refer to this relationship is 10 modulo 3 is 1, and 17 modulo 5 is 2. ("Modulo" is usually abbreviated "mod". 29 mod 6 = 5. 30 mod 6 = 0 [30 is evenly divisible by 6 so there's no remainder].)

The minimum result of a modulo operation is zero (no remainder). The maximum result is 1 less than the divisor. In order to get a two-digit result (most of the time, at least) we should use a two-digit number as our divisor. Some examples may help.

1234 mod 19 = 18. 1234 mod 58 = 16. 1234 mod 97 = 70. 5678 mod 19 = 16. 5678 mod 58 = 52. 5678 mod 97 = 52. Notice how we got 52 as the answer for two different divisors? That's what happens with modulus arithmetic, and that's why it is very difficult to reverse-engineer the divisor with just the original number and the result of the computation.

How can you calculate your own magic number easily? First, decide on your two-digit number, the divisor. For example, let's try 42 as our divisor and check number 1234. 1234 / 42 = 29.38095 (an exact number, including a decimal portion). Throw away the decimal portion and we have 29. Multiply 42 by 29 and we get 1218. Subtract 1218 from 1234 and we get our magic number: 16.

For check number 5678:
5678 / 42 = 135.1905 (approximately!)
42 * 135 = 5670
5678 - 5670 = 8
For check number 5678 out magic number is 8, so we can either use one digit or add a zero before or after the 8: 08 or 80.

If you use a spreadsheet program such as Microsoft Excel, you can have your magic number calculated for you even more easily because Excel has modulus arithmetic functions built in. It may help to label your columns "Check number", "Divisor", "Magic Number". To test, put 1234 in cell A2, put 42 in cell B2, and the formula =MOD(A2, B2) in cell C2. The result (16) should appear in cell C2 when you hit the Enter key.

As usual, the explanation takes much longer than the actual work! I can't guarantee that you won't have people cheating you, but you will be able to ask "What's the two-digit number after my signature?" and tell whether they're telling the truth.

Begin using your system soon, keep track of when you started using it, and use it for all checks. If you use the modulo method to generate magic numbers, be sure to use the same divisor at all times! (42 is a too commonly used number, thanks to Douglas Adams.) Print the magic number clearly so that 1's and 7's don't look alike, for example.

Questions and comments are very welcome. I'll help you if I can!

All opinions expressed are mine, and are not necessarily those of my employer. Comments are welcome; spam is not. Contrasting opinions are welcome; attacks are not.

No comments: