クレジットカードを使うとき、私たちは番号の桁数をあまり気にしていません。ネットショッピングで入力するときも、財布から取り出して確認するときも、そこに並んでいる数字を「ただの番号」として見ている人が多いはずです。
ところが、この数字の並びには、思っている以上にきちんとしたルールが隠れています。
第58回雑学調査レポートでは、そんな「クレジットカード」に関する雑学をご紹介していきます。
クレジットカード番号は、ただの長い番号ではない
クレジットカードに書かれている番号は、一見するとランダムな数字の並びに見えます。しかし、実際にはすべてが適当に決められているわけではありません。
カード番号は「PAN(Primary Account Number)」と呼ばれる番号で、発行会社やカード利用者の口座を識別するために使われます。カード会社や決済システムは、この番号をもとに「どの発行会社のカードなのか」「どのアカウントにひもづくカードなのか」を判別します。
特に重要なのが、番号の最初の部分と最後の1桁です。
最初の6桁または8桁は「IIN(Issuer Identification Number)」または「BIN(Bank Identification Number)」と呼ばれ、カードを発行した機関を識別するために使われます。昔は6桁が一般的でしたが、カードの発行枚数や決済の種類が増えたため、現在は8桁のBINも使われるようになっています。

最後の1桁は「チェックデジット」
クレジットカード番号の最後の1桁は、多くの場合「チェックデジット」と呼ばれる数字です。
チェックデジットとは、番号が正しく入力されているかを確認するために付けられる数字です。日本語では「確認用の数字」と考えると分かりやすいです。
たとえば、オンラインショップでカード番号を入力するとき、1桁だけ打ち間違えることがあります。あるいは、隣り合う数字を逆に入力してしまうこともあります。
そのような単純な入力ミスを見つけるために、カード番号には計算によって決まる確認用の数字が含まれています。それが最後の1桁です。
つまり、カード番号の最後の数字は、単なる飾りでも、完全なランダムでもありません。前に並んでいる数字を使って計算される、意味のある数字なのです。
その計算に使われる「Luhnアルゴリズム」
このチェックデジットを計算する方法として広く知られているのが「Luhnアルゴリズム」です。読み方は「ルーン・アルゴリズム」とされることが多いです。
Luhnアルゴリズムは、IBMのハンス・ピーター・ルーンによって考案された仕組みです。ルーンは1954年に関連する特許を出願し、1960年に「Computer for Verifying Numbers」という名称で特許が登録されました。
この特許の内容を見ると、目的はとても現実的です。長い番号を扱うとき、人間は写し間違いや入力ミスをします。そのミスを、簡単な計算で見つけられるようにするための仕組みでした。
つまり、Luhnアルゴリズムはもともと「番号を安全に暗号化するための仕組み」ではありません。人間が数字を扱うときに起こしやすいミスを、機械が素早く見つけるための仕組みです。
実際にどのようにミスを見破るのか
Luhnアルゴリズムの考え方は、意外と単純です。
ここでは、説明用の番号として「79927398713」を使います。これはLuhnアルゴリズムの説明でよく使われる例であり、実在のカード番号として使うものではありません。
Luhnアルゴリズムでは、番号の右側から見て、決まった位置にある数字を2倍します。2倍した結果が10以上になった場合は、その数字を1桁ずつ足します。
たとえば、7を2倍すると14になります。この場合は「14」をそのまま使うのではなく、「1 + 4 = 5」とします。
このようにして数字を処理し、最後にすべての数字を足します。その合計が10で割り切れれば、Luhnアルゴリズム上は「正しい形式の番号」と判断されます。
説明用の番号「79927398713」の場合、計算結果の合計は70になります。70は10で割り切れるため、この番号はLuhnアルゴリズム上「有効な形式」と判定されます。

ここで大事なのは、「有効な形式」と「本当に使えるカード」は別物だという点です。
Luhnアルゴリズムを通過したからといって、そのカードが実在するとは限りません。限度額があるか、カードが停止されていないか、本人のカードか、といったことまでは分かりません。あくまで「番号の形として明らかな入力ミスがないか」を見るための仕組みです。
1桁間違えると、かなりの確率で気づける
Luhnアルゴリズムの興味深いところは、簡単な計算なのに、よくある入力ミスを見つけやすいことです。
たとえば、本来の番号のどこか1桁を間違えて入力すると、多くの場合、合計が10で割り切れなくなります。そのため、システムは「この番号は形式としておかしい」と判断できます。
また、人間が数字を入力するときによくあるミスとして、隣り合う2つの数字を入れ替えてしまうことがあります。
たとえば「37」と入力するべきところを「73」と入力してしまうようなミスです。Luhnアルゴリズムは、このような数字の入れ替わりも、ある程度検出できるように設計されています。
ただし、すべてのミスを完璧に見つけられるわけではありません。万能のセキュリティ機能ではなく、あくまで「よくある入力ミスを効率よく見つける仕組み」です。
暗証番号やセキュリティコードとは役割が違う
クレジットカードには、カード番号のほかに、有効期限、セキュリティコード、暗証番号などがあります。
これらはそれぞれ役割が違います。
カード番号は、カードや口座を識別するための番号です。有効期限は、そのカードがいつまで使えるかを示します。セキュリティコードは、主にネット決済などでカードが手元にあることを確認するために使われます。暗証番号は、店頭決済やATM利用などで本人確認の一部として使われます。
一方、Luhnアルゴリズムによるチェックデジットは、本人確認や不正利用対策そのものを目的にしたものではありません。
役割はもっと地味です。
「番号が、少なくとも形式上は正しく入力されているか」を見るためのものです。
たとえば、オンライン決済画面でカード番号を入力した瞬間に「カード番号が正しくありません」と表示されることがあります。この時点では、カード会社に本格的な照会をする前に、まずLuhnアルゴリズムのような仕組みで形式チェックをしている場合があります。
つまり、チェックデジットは、決済の入口で単純なミスをはじく門番のような存在です。

なぜこんな仕組みが必要だったのか
クレジットカード番号は長いです。多くのカード番号は15桁や16桁ですが、カード番号の体系ではさらに長い番号も扱われます。
これだけ長い数字を人間が手で入力すると、ミスが起こります。紙に書かれた番号を読み取るとき、電話口で番号を聞き取るとき、キーボードで番号を打ち込むとき、どこかで数字を間違える可能性があります。
もし入力ミスのたびに、決済ネットワークやカード会社へ確認を投げていたら、無駄な処理が増えてしまいます。
そこで、まず番号そのものの形を簡単にチェックできる仕組みが役立ちます。Luhnアルゴリズムなら、複雑な暗号処理をしなくても、短時間で入力ミスの可能性を判定できます。
この「軽くて速い」という点が重要です。
カード決済は、世界中で大量に行われています。その入口で使われる仕組みは、正確であるだけでなく、素早く処理できる必要があります。Luhnアルゴリズムは、その条件に合っていたため、クレジットカード番号の確認方法として広く使われるようになりました。
身近な番号にも似た考え方がある
チェックデジットの考え方は、クレジットカードだけに使われているわけではありません。
商品についているバーコード、書籍に付けられるISBN(国際標準図書番号)、銀行口座や各種ID番号など、さまざまな番号体系で似たような確認用の数字が使われています。
考え方はどれも似ています。
長い番号を人間が扱うと、必ずどこかで間違いが起こります。そのため、番号の中に「この番号は正しい形になっているか」を確認するための仕掛けを入れておくのです。
クレジットカード番号の最後の1桁も、そのような仕掛けの一種です。
普段は何気なく見ているカード番号の末尾には、世界中の決済システムで入力ミスを減らすための、小さな数学的工夫が隠れています。
まとめ
- クレジットカード番号は、ただのランダムな数字ではない
- 番号の最初の部分には、カード発行会社を識別する情報が含まれている
- 番号の最後の1桁は、入力ミスを見つけるためのチェックデジットになっている
- チェックデジットの計算には、Luhnアルゴリズムという仕組みが使われている
- Luhnアルゴリズムは、暗号ではなく番号の入力ミスを検出するための方法である
- 1桁の打ち間違いや一部の数字の入れ替えを見つけやすくする役割がある
- Luhnアルゴリズムを通過しても、そのカードが実在するとは限らない
- カード番号の形式チェックは、決済前の単純なミスを減らすために役立っている
- 高度な金融システムの入口に、足し算や2倍といったシンプルな計算が使われている
クレジットカード番号は、ただの長い数字の羅列ではありません。その中には、発行会社を示す情報や、入力ミスを見つけるための仕組みが組み込まれています。特に最後の1桁は、人間が数字を打ち間違えることを前提にした、ささやかな数学的工夫です。
普段何気なく使っているカードにも、こうした見えない仕組みが隠れていると知ると、いつもの番号が少し違って見えてきます。
☆「なるほど」と思ったら押してね!☆
参考文献
- American Bankers Association「ISO/IEC 7812 Issuer Identification Numbers」
- PCI Security Standards Council「8-digit BINs and PCI DSS: What You Need to Know」
- Google Patents「US2950048A – Computer for verifying numbers」
- IBM Documentation「SSDCS validations」
- Stripe「What is the Luhn algorithm and how does it work?」

