萌えハッカーニュースリーダー

2025/08/19 14:25 What Is the Luhn Algorithm? The Math Behind Credit Card Transactions

出典: https://www.scientificamerican.com/article/what-is-the-luhn-algorithm-the-math-behind-secure-credit-card-numbers/
hakase
博士

ロボ子、オンラインショッピングでクレカ番号入れるとき、たまに間違えちゃうことないかのじゃ?

roboko
ロボ子

ありますね。特にスマホだと押し間違えたり…。

hakase
博士

そうそう!でも、入力ミスするとすぐにエラーが出るじゃろ?あれは「Luhnアルゴリズム」っていう仕組みのおかげなんじゃ。

roboko
ロボ子

Luhnアルゴリズム…初めて聞きました。どんなものなんですか?

hakase
博士

Luhnアルゴリズムは、クレカ番号の入力ミスを検出するための数学的な方法なんじゃ。ハンス・ピーター・ルーンさんが1960年に特許を取ったらしいぞ。

roboko
ロボ子

へえ、そんな昔からあるんですね!具体的にはどうやってエラーを検出するんですか?

hakase
博士

クレカ番号は、主要産業識別子、発行銀行識別子、口座番号、チェックディジットで構成されてるんじゃ。Luhnアルゴリズムは、最後のチェックディジット以外の数字を使って計算するんじゃよ。

roboko
ロボ子

なるほど。計算方法を教えてください。

hakase
博士

まず、右から2番目の数字から1つ飛ばしに数字を2倍にする。2倍にした結果が2桁になったら、それぞれの数字を足し合わせる。そして、すべての数字を足し合わせて、最後にチェックディジットを足すんじゃ。

roboko
ロボ子

ちょっと複雑ですね…。

hakase
博士

大丈夫!たとえば、全部足した結果が10の倍数にならなかったら、そのクレカ番号は無効ってことじゃ。

roboko
ロボ子

10の倍数かどうかで判断するんですね。でも、それだけで全ての入力ミスを検出できるんですか?

hakase
博士

残念ながら、そうではないんじゃ。Luhnアルゴリズムは、1桁の入力ミスや隣接する桁の入れ替えは検出できるけど、09と90の入れ替えは検出できないんじゃ。

roboko
ロボ子

完璧ではないんですね。他に、もっと良いアルゴリズムはないんですか?

hakase
博士

Jacobus Verhoeffさんが、もっと包括的なアルゴリズムを開発したらしいけど、Luhnアルゴリズムほど普及しなかったみたいじゃな。

roboko
ロボ子

そうなんですね。でも、Luhnアルゴリズムがあるおかげで、カード検証サービスとの不要なやり取りを減らせて、時間とコストを節約できるのは大きいですね。

hakase
博士

その通り!ただ、Luhnアルゴリズムを通過したからといって、クレカ番号が絶対に有効とは限らないから、より厳密な検証サービスによる確認が必要なんじゃ。

roboko
ロボ子

なるほど。あくまで最初のチェックとして使われているんですね。

hakase
博士

そういうことじゃ!クレカ番号の各桁が、Luhnアルゴリズムの合計に影響を与えるから、入力ミスがあると合計が変わって、10の倍数にならなくなるんじゃな。

roboko
ロボ子

よくわかりました!Luhnアルゴリズムって、意外と奥が深いんですね。

hakase
博士

じゃろ?ちなみに、Luhnアルゴリズムをマスターすると、クレカ番号を見ただけで有効かどうか判断できるようになる…かもしれないぞ!

roboko
ロボ子

すごい!それって、もはや手品ですね!

hakase
博士

まあ、私は魔法使いみたいなものじゃからな!…って、ロボ子、そろそろおやつの時間じゃぞ!今日は特別に、10の倍数のカロリーがあるケーキを用意したぞ!

roboko
ロボ子

ええっ!?それってつまり…カロリー爆弾じゃないですか!

⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。

Search