チェックサム

クレジットカードの券面に書いてある16桁の番号は、今までは会員識別番号だと思っていたが、それだけではないようである。これはチェックサムも兼ねているようである。へぇ~、そうなの、である(笑)。チェックサムという語は、大昔、8ビットパソコンで16進数が羅列されたマシン語(死語か?)のソースなどによく出てきた記憶がある。なつかしい言葉である(笑)。まだ生きているようで、死語にはなってないようである。

MEMO
チェックサム check sum
データを最小限の計算量で誤りの混入や改竄の有無を検出する方式の一つ。たとえば、ブロック分けされたデータごとに合計を計算し、その数の下位の桁だけを保存しておいて、ブロック終了時にその正誤を判定するなどのパターンがある。

横山明日希「文系もハマる数学」(青春出版社)52p以下によると、クレジットカードの場合、これは「ルーン・アルゴリズム」というルールによって決められた数字の並びになっていて、この数値の入力に誤りがあれば、16桁の数字を入力したときに即座に整合性がないことが判明するということである(Fig.1)。そして、これをクリアした後に会員番号チェックをすればよいことになる。

(Fig.1)
横山明日希「文系もハマる数学」(青春出版社)55pによる。


ちなみに、手元にあった JCB, VISA, DC, MASTER などのカードを見てみたが、どの場合も確かにこのルールに当てはまっていた数字の並びになっていた。なるほどね。こういうカラクリだったのか。

単なる会員識別番号だとすると、数字の並びだけが入力された場合、その並びに入力の間違いがあることがわからない。しかし、このチェックサムのおかげで入力した直後に「入力間違い」があることがわかる。こういうカラクリを知っていれば、デタラメな番号でも最後に入力する数値を調整すれば、この段階のチェックサムは簡単にクリアできてしまう。しかし、次の本当の会員番号チェックには引っかかることになる。

- 2023/02/01 -