クレジットカード番号の一部保存のリスク見積もり

クレジットカード番号の「先頭6桁と下4桁」は、PCI DSS で画面への表示が認められている形で、通販システムでもよく保存されています。 2026年10月には、BASE の子会社 Eストアーの「ショップサーブ」から約 210 万人分のこの形の番号が、名義・有効期限とともに漏れたと発表されました。

このツールは、番号の一部から全部の数字を復元しようとすると何通りになるのかを計算します。 PCI DSS で認められている保存の規定が安心できるものか確認してみましょう。 また、保存する桁を減らすと候補がどれだけ増えるかを確かめ、その桁を本当に保存する必要があるかを考えてみましょう。

保存する桁を選ぶ

桁を押すと、保存する(数字)と隠す(*)が切り替わります。

オプション
番号の桁数
BIN の桁数

BIN(IIN)は番号の先頭にあり、ブランド・発行会社・国・カードの種類を表します。図では枠の下の線で示します。

チェックディジット

番号全体から絞り込むと

* BIN の件数について

ほかの秘密との比べ方

入力した形の候補の数を、推測されにくさの目安になるものと並べます。

もの候補の数情報量

推測されにくいパスワードは、パスワード生成で作れます。サイトの条件(文字数・文字種・使える記号)に合わせて、Web ブラウザの中だけで作ります。

計算のしかた

参考: クレジットカードの番号(Wikipedia)

コラム

チェックディジットが漏れると、リスクは高まるか

「先頭 6 桁と下 4 桁」には、最後の 1 桁のチェックディジットが含まれています。 チェックディジットが分かれば、隠れた桁を補った番号が正しい形かどうかを確かめられます。 それなら、チェックディジットを隠して、代わりにその手前の桁を見せたほうが安全なのでしょうか。

答え: 見せる桁の数が同じなら、リスクは変わりません。

チェックディジットの式

番号の各桁を、右端(チェックディジット)から順に r0, r1, r2, … と呼びます。右から数えて偶数番目の桁(r1, r3, …)だけを 2 倍し、2 けたになったら 9 を引きます。

S = r0 + f(r1) + r2 + f(r3) + r4 + …

f(x) = 2x(x ≦ 4)、2x − 9(x ≧ 5)

正しい番号 ⇔ S が 10 の倍数

f は 0〜9 を 0〜9 に一つずつ対応させます。同じ値に移る数字はありません。

x0123456789
f(x)0246813579

このため、ほかの桁をすべて決めると、残る 1 桁は 0〜9 のうちちょうど 1 つに決まります。2 倍する位置の桁でも、2 倍しない位置の桁でも同じです。

2 つの見せ方を比べる(16 桁)

8888-88**-****-8888(チェックディジットを見せる)
隠れた 6 桁の並びは 106 通り。 そのうち 5 桁を自由に決めると、S が 10 の倍数になる残りの 1 桁は 1 つだけ。 候補は 105 通りです。
8888-88**-***8-888*(チェックディジットを隠し、手前の 4 桁を見せる)
隠れた 6 桁のうち、チェックディジットはほかの 15 桁から計算で決まります。 自由に決められるのは真ん中の 5 桁で、候補は 105 通りです。

どちらも 10 桁を見せていて、候補は同じ 105 通りです。 後者でも、候補の 105 通りはすべてチェックを満たす番号です。前者で「確かめられる」ことと、後者で「計算できる」ことは、同じ 1 つの式を両側から見ているにすぎません。

一般の式

チェックディジットのある L 桁の番号で、どれか k 桁(k < L)を見せたときの候補の数は、どの桁を選んでも次のとおりです。

候補の数 = 10L − 1 − k

正しい番号の全体は、チェックディジットの分だけ少ない 10L − 1 通りです。そこから、見せた 1 桁ごとに 10 分の 1 になります。 チェックディジットは、ほかの桁と同じく 1 桁分の情報しか持っていません。チェックディジットを見せるのも、ほかの 1 桁を見せるのも、候補を減らす効果は同じです。

保存の判断への当てはめ

保存する桁を減らしたいなら、チェックディジットかどうかは気にせず、見せる桁の数を減らします。 たとえば下 4 桁を下 3 桁にすると、候補は 10 倍になります。チェックディジットを隠して手前の桁を見せる形にしても、候補は変わりません。 また、チェックはよくある打ち間違いを見つけるためのもので、満たしても、その番号が実在して使えるかどうかは分かりません。

候補の数だけでは決まらないこと

保存してよいかは、候補の数のほかに、次の点も合わせて判断します。

PCI DSS は v4.0 の要件 3.4.1(表示のマスキング)と 3.3.1(認証データの保存の禁止)を参照しています。保存(切り捨て)の形式はクレジットカードのブランドごとに定めがあるため、実際の運用ではブランドと決済代行会社の基準を確認してください。