マイナンバーにおける個人番号の検査用数字ごとの誤り率を乱数で計算
注:このサイトでは、計算処理は全てブラウザ内で行われますので、
生成された個人番号はサーバ含めどこにも送信されいませんが、
これを不用意に公開したり他人に渡したりしないで下さい。
ここではデジタル・フォレンジック研究会で書いたコラム
「マイナンバーのチェックデジットについて」
で指摘した問題を検証します。ただし、コラムを書くときに用いたプログラムと微妙に「誤り発生率」の定義が違うので、数値も少し違います。
このプログラムでは以下の手順で誤り率を計算しています。
- 11桁の乱数を発生し、それに検査用数字を計算して加えて個人番号を生成。検査用数字に応じて出現数を1増やす。
- 12桁のうち乱数で決めた桁の数字を書き換え、それでも個人番号として有効(検査用数字が一致)なら、1桁誤り発生数を1増やす。
- 12桁のうち乱数で決めた隣り合う2桁の数字を入れ替え、それでも個人番号として有効(検査用数字が一致)なら、2桁入替誤り発生数を1増やす。
なお、2桁入替誤りが発生したときにはその個人番号を下に列挙しています。赤字の2桁を入れ替えても、個人番号として有効なので確かめてみて下さい。
検査用数字 | 出現数 | 1桁誤り発生数 | 2桁入替誤り発生数 |
0 | | | |
1 | | | |
2 | | | |
3 | | | |
4 | | | |
5 | | | |
6 | | | |
7 | | | |
8 | | | |
9 | | | |
合計 | | | |
2桁入れ替え誤り発生個人番号
Written by Tetsutaro UEHARA.
すなばに戻る