こんにちは、阿久梨絵です!
私たちの納税や社会保障に関わる「 マイナンバー 」。
ランダムな数字のように見えて、実は最終桁にはミスを防ぐための“検査用数字”が使われているのをご存知ですか?
この記事では、マイナンバー12桁に込められた仕組みと、チェックディジットの計算方法までやさしく解説します。
まず結論:マイナンバーは11桁のID + 1桁の検査用数字でできている
桁 | 内容 |
---|---|
1〜11桁目 | 識別用のランダムな番号(再割当てなし) ※下記「ここで豆知識!」で深堀しています。 |
12桁目 | チェックディジット(検査用の数字)✅ |
つまり、「マイナンバーの最後の1桁=正しいかどうかを判断するための“数式上の答え”」なんです!
チェックディジットとは?
チェックディジット(Check Digit)は、数列が正しいか検査する仕組み。
バーコードや銀行口座番号、ISBN(書籍コード)などにも広く使われています。
マイナンバーでは、1〜11桁目に重みをかけた計算結果から12桁目を求めます。
実際の計算手順を見てみよう
1. 1〜11桁目の数字を右から順に、以下の重みで掛ける
2, 3, 4, 5, 6, 7, 2, 3, 4, 5, 6
2. 掛け算した数字を合計
3. 合計 ÷ 11 の余りを求める
4. 余りが「0」か「1」なら → チェックディジットは「0」
それ以外 → 11 − 余り がチェックディジットになる
計算例:上11桁が「12345678901」のとき
桁位置(左→右) | 数字 | 重み | 積(乗算) |
---|---|---|---|
1 | 1 | 6 | 6 |
2 | 2 | 5 | 10 |
3 | 3 | 4 | 12 |
4 | 4 | 3 | 12 |
5 | 5 | 2 | 10 |
6 | 6 | 7 | 42 |
7 | 7 | 6 | 42 |
8 | 8 | 5 | 40 |
9 | 9 | 4 | 36 |
10 | 0 | 3 | 0 |
11 | 1 | 2 | 2 |
合計 | 212 |
・212 ÷ 11 = 余り 3
・11 − 3 = 8 → チェックディジットは「8」
マイナンバー:123456789018(←12桁目が「8」)
何のためにこんな仕組みが?
目的 | 説明 |
---|---|
入力ミスの検出 | 手入力時に間違っていても、12桁目で“誤り”だとわかる |
偽造防止の足がかり | ランダムに12桁を作っても、有効な番号になるとは限らない |
セキュリティ保護 | 正しい番号かどうかをシステム的に判断できる |
ただし“完璧”ではない?
この方式でも、すべてのミスを100%検出できるわけではありません。
特にチェックディジットが「0」の場合、打ち間違いを検出しにくいという課題が指摘されています。
(とはいえ、業務上の多くの入力ミスを防げる精度です)
まとめ
・マイナンバーの12桁目は“答え合わせ用の桁”
・チェックディジットは人と機械が使う安全装置
・数字の羅列にも、ちゃんとした理由と設計思想がある
なんとなく扱っていた マイナンバー も、その数字の「並び」に理由があると知ると、ちょっと見方が変わりませんか?
セキュリティと実用性のバランスがとられた、意外と計算好きな仕組みなんです。
阿久梨絵でした!
ここで豆知識!
マイナンバー 1〜11桁目は「乱数」だけど、重複しないように管理されている
・マイナンバーの1〜11桁目は、住民票コードをもとに変換された番号です。
・完全な乱数ではなく、一意性(ユニーク性)を保つように生成されており、他人と重複することはありません。
・住民票コード自体も、全国で重複しないように割り当てられている11桁の番号です。
つまり、「意味を持たないように見せつつ、重複しないように設計された番号」というのが正確な表現です。
1〜11桁目に“意味”はあるのか?
・個人情報(生年月日・住所など)とは直接結びつかないように設計されています。
・これは「推測されにくくする」ためのセキュリティ配慮です。
・ただし、住民票コードを変換して生成されているため、完全な無意味な数字ではありません。
つまり、「意味を持たせないように設計された、意味ある番号」と言えるかもしれません。
なぜそんな仕組みに?
目的 | 説明 |
---|---|
重複防止 | 同姓同名・同生年月日の人がいても、番号は一意に管理される |
推測防止 | 生年月日や地域コードなどが含まれていないため、他人の番号を推測しにくい |
セキュリティ | 意味を持たせないことで、漏洩時の悪用リスクを下げる |