このプログラムは、「もし個人番号の検査用数字がISBN13やJANコードなどと互換の1-3 mod 10方式だったらどうだったか」という話を 検証するために造ったものです。 実は私(上原)はパブリックコメントにおいて検査用数字をISBN13互換にするべきじゃないのかと提案していました。 ただ、実際にこのプログラムで調べたら実はISBN13互換はイマイチ2桁入替誤りに弱いのでどっちもどっちという気もしています。 本来はコラムで指摘したように Dammのアルゴリズムの方がずっと良いのですが、 パブコメ書いていたときは本当に時間がなくて…残念です。
このプログラムでは以下の手順で誤り率を計算しています。
| 検査用数字 | 出現数 | 1桁誤り発生数 | 2桁入替誤り発生数 |
|---|---|---|---|
| 0 | |||
| 1 | |||
| 2 | |||
| 3 | |||
| 4 | |||
| 5 | |||
| 6 | |||
| 7 | |||
| 8 | |||
| 9 | |||
| 合計 |
2桁入れ替え誤り発生個人番号