2009-07-07

Luhn algorithm

今日のニュースから:
カード番号割りだす「クレジットマスター」 窃盗容疑で21歳女を逮捕

クレジットカード番号に特殊な計算を施して他人のカード番号を割り出す「クレジットマスター」という手口で不正にインターネットで商品を購入したとして、大阪市の無職、旭千鶴被告(21)が窃盗容疑などで逮捕、起訴されていたことが7日、警視庁中野署への取材でわかった。同署によると、クレジットマスターによるカード犯罪の摘発は異例という。

同署は旭被告の交際相手で同市の無職の男(47)についても同容疑などの逮捕状を取る方針。同署によると、男の所在は現在不明という。同署が男の自宅を家宅捜索した際に覚せい剤が見つかっており、覚せい剤取締法違反(所持)容疑でも逮捕状を取る方針。

同署によると、旭被告と男は昨年7月20日、クレジットマスターで作成した他人のカード番号を利用し、都内のネット通販会社からテレビモニターなど計7点(約20万円相当)を購入した疑いが持たれている。(15:02)

[引用は NIKKEI NET より]

なんだか "特殊な計算" の "すごい手口" って扱いで、おおげさだなあ。(爆笑)

クレジットカードの番号は任意の数字の並びが有効なわけではない。最後の1桁がチェックディジットになっているため、ランダムに数字を並べたとしたら、その 1/10 以下しか有効ではない(「以下」と書いたのは、未発行や廃止があるため)。

カード番号がチェックディジットの意味で「有効」かどうかは、1960年に H. P. Luhn さんが特許を取った方法(Luhn algorithm)でチェックされていて、ネット上で既に公開されている。たとえば、ここ(英文)に詳しい記述があるし、探せば他にもいくらでもあるだろう。

ここで簡単に翻訳してしまう(念のため。違法行為でもなんでもないからね):
  • (1) 右から偶数番目の数字だけを
    0→0 1→2 2→4 3→6 4→8 5→1 6→3 7→5 8→7 9→9
    に置き換える。
  • (2) 数字の総和が10の倍数ならクレジットカード番号として「有効」である。
例えば、16桁の数字 1234 5678 9012 3456 は、

(1)を適用: 2264 1658 9022 6416
(2)で、総和は 2+2+6+4+1+6+5+8+9+0+2+2+6+4+1+6=64

となり、「有効」ではない。しかし、最後の1桁を2に変えた 1234 5678 9012 3452 なら総和は60で、「有効」ということになる。これは、暗算でできるんだけど、どこが "特殊な計算" なのかな?

---

そして、この事実は、カードのセキュリティとは関係ない

大したことではないのだ:ネット通販で買うとか、カードリーダーで読むとか、昔あった「複写紙でガッチャン」とかいう状況で、番号の読み間違い(入力ミス)があればその場でわかる、そのためのチェックディジットなのだ。名義人とか、有効期限とか、カードの裏に書かれているセキュリティコードとか、暗証番号とかがこれでわかるわけではない。

なんていうのかなあ。犯人には失礼だけど、とっても "DQN な手口" って言っちゃおうかな。通販は、送付先で商品を受け取らないといけないわけで、犯人を捕まえるの簡単。 DQN すぎて誰もやらない。だからこそ "摘発は異例" なんじゃないの?

というわけで、

「クレジットの明細書は、不正利用されてないかどうか、いつもよく見ましょうね」

というごくあたりまえの結論で終了でした。今回のエントリは、内容が全然ないね。ごめんなさい。(_o_)
この下を閉じる このページを印刷

Comments 0