もしマイナンバーにおける個人番号の検査用数字の計算法がLuhn法だったら

このプログラムは、「もし個人番号の検査用数字がクレジットカードなどと互換のLuhnアルゴリズムだったらどうだったか」という話を 検証するために造ったものです。といってもLuhn法の性能は判ってるのでそれを確かめる以上のものではありません。

このプログラムでは以下の手順で誤り率を計算しています。

  1. 11桁の乱数を発生し、それにLuhn法で検査用数字を計算して加えてニセの個人番号を生成。検査用数字に応じて出現数を1増やす。
  2. 12桁のうち乱数で決めた桁の数字を書き換え、それでもニセ個人番号として有効(Luhn法の検査用数字が一致)なら、1桁誤り発生数を1増やす。
  3. 12桁のうち乱数で決めた隣り合う2桁の数字を入れ替え、それでもニセ個人番号として有効(Luhn法の検査用数字が一致)なら、2桁入替誤り発生数を1増やす。
なお、2桁入替誤りが発生したときにはその個人番号を下に列挙しています。 ホンモノの個人番号の時と比較して確かめてみて下さい。

検査用数字出現数1桁誤り発生数2桁入替誤り発生数
0
1
2
3
4
5
6
7
8
9
合計

2桁入れ替え誤り発生個人番号

Written by Tetsutaro UEHARA.
すなばに戻る