第23回:カード番号を誤って入力しても大丈夫なの?

クレジットカード番号を入力ミスしたら他人の番号になるのか?

店頭やネットショッピングに便利なのがクレジットカード。ネットショッピングの場合、自分で番号をキーボード入力することになります。それも10ケタ以上。人間のすることだから入力ミスはつきものです。

もし入力ミスしてしまったら、入力された番号が他人のものになってしまわないか心配になるかもしれません。もちろん、十数ケタある番号のうち何個も変えてしまえば他人の番号になる可能性はあります。

そのためにクレジットカードにはクレジットカード番号の他に、暗証番号・有効期限・セキュリティコードといった本人を認証する情報入力が必要とされます。これらすべてが揃わないとカードが使えないようになっています。

実はクレジットカード番号を入力すると即座にその番号が正しい番号かどうかの判定がされるようになっています。入力した番号を会員番号データベースといちいち照合していたら時間がかかってしまいます。面白いことにそのような照合することなしに判定ができる仕掛けがクレジットカード番号自体にあります。

クレジットカード番号の右端がチェックディジット

16ケタのクレジットカード番号3141 5926 5358 9796で説明してみます。16桁の内訳は
314159(発行会社番号)-265358979(会員口座番号)-6(チェックディジット)
のようになっています。

冒頭6桁が発行会社番号でカード番号入力の際に訪ねられる「カード種類」がチェックとして機能します。続く9ケタが個人を特定する会員口座番号、そして鍵となるのが最後の1ケタです。これはチェックディジットと呼ばれる特別な番号です。

16ケタのうち最初の15ケタが決まった後、最後に決まるのが右端のチェックディジットです。チェックディジットは最初の15ケタからある計算方法によって計算されて決定する数です。この計算方法が「Luhn(ルーン)のアルゴリズム」です。

Luhn(ルーン)のアルゴリズム

【ステップ1】右端から偶数桁目を2倍する。これが2桁になる場合には一と十の位の桁の和とする。
【ステップ2】【ステップ1】の結果と右端から奇数桁目(そのまま)の総和を求める。
【ステップ3】総和が10の倍数であれば、この番号はLuhnのアルゴリズムでは正当な番号で、そうでない場合には正しくない番号と判定。

IBMのHans Peter Luhn(ハンス・ピーター・ルーン)によって開発され1960年に特許が発効した仕組みがルーンのアルゴリズムです。

カード番号3141 5926 5358 9796で検証してみよう。
【ステップ1】右端から2桁目9を2倍して18、2桁なので一と十の位の和1+8=9
右端から10桁目4を2倍して8、1桁なのでそのまま
というように偶数桁目を計算する
【ステップ2】6+1+8+1+1+9+4+6+1+3+1+8+9+7+9+6=80
【ステップ3】80は10の倍数。この番号はルーンのアルゴリズムでは正しい!

 

自分のクレジットカード番号をチェックしてみよう

ルーンのアルゴリズムの計算はたし算とかけ算だけなので簡単にためしてみることができます。ぜひお持ちのクレジットカード番号で計算してみてください。とはいえ面倒なのでエクセルファイルを用意しました。

ここからLuhnAlgorithm20250106.xlsxをダウンロードできます。番号入力の欄に左端の番号から16桁を入力すれば【ステップ2】の合計が出力されます。10の倍数であることが確認できます

これを使って16桁のうち1桁間違った場合を検証してみます。例えば3141 5926 5358 9796の11桁目9を6に間違えた場合には6+1+8+1+1+6+4+6+1+3+1+8+9+7+9+6=77となり10の倍数ではありません。

隣り合う数字の順序間違いの場合、例えば3141 5926 5358 9796の1桁目6と2桁目9を間違えた場合には、1桁目が9、2桁目が6になるので2倍して12、1+2=3になるので6+1+8+1+1+6+4+6+1+3+1+8+9+7+3+9=74となり10の倍数ではありません。

万能ではないルーンのアルゴリズム

このようにルーンのアルゴリズムでクレジットカード番号のチェックディジットが決められています。そのおかげで入力されたクレジットカード番号が正しいかどうかの判定ができるようになっています。

「ルーンのアルゴリズムでは正しい」とは、総和が10の倍数であるからといって本当の番号とは限らないということです。ルーンのアルゴリズムですべての桁の誤読の判定はできません。09と90の順序間違い、同じ数字が2文字連続する場合の間違いも、22と55、33と66、44と77は検出できません。

ルーンのアルゴリズムのおかげで、1つの数字ミスや順序間違いをした場合の番号が誰かの番号になることはほとんどなくなり、安心してクレジットカード番号を使えるようになっています。

 

執筆者プロフィール

桜井 進(さくらい すすむ)

1968年山形県東根市生まれ。サイエンスナビゲーターⓇ。株式会社sakurAi Science Factory 代表取締役CEO。東京理科大学大学院非常講師。東京工業大学理学部数学科卒。同大学大学院院社会理工学研究科博士課程中退。小学生からお年寄りまで、誰でも楽しめて体験できる数学エンターテイメントは日本全国で反響を呼び、テレビ・新聞・雑誌など多くのメディアに出演。著書に『雪月花の数学』『感動する!数学』『わくわく数の世界の大冒険』『面白くて眠れなくなる数学』など50冊以上。「桜井進の魔法の算数教室」と「桜井進の数学浪漫紀行」を毎月開催。
サイエンスナビゲーターは株式会社sakurAi Science Factoryの登録商標です。
桜井進WebSite

スペシャルレポート(注目校を徹底研究レポート!)

子どもたちの可能性を引き出す!最先端の教育がわかるスペシャルレポート

スペシャルレポートをみる
中学受験スタディ(首都圏) 中学受験スタディ(関西)
高校受験スタディ(首都圏) 高校受験スタディ(関西)
スタディ公式SNSで最新情報をチェックしよう!