2020年03月08日

◆ マイナンバーのチェック桁

 マイナンバーの最後の1桁は、チェック桁(チェック・デジット)だ。

  ※ 数学や計算機の話です。


 ──

 マイナンバーの最後の1桁は、チェック桁(チェック・デジット)と呼ばれるもので、検査用の数字となる。
 この数は、それまでの 11桁から自動的に決まる数だ。これが正しく掲載されていれば、その 12桁の数字は正しい数字だと判明する。これが正しく掲載されていなければ、その 12桁の数字は正しくない数字だと判明する。(入力ミスなどがあったと推定される。)

 ここまでは、すでに知られた通り。
  → マイナンバーのチェックデジットの計算をわかりやすく解説 - Qiita

 ──

 ただし、私はもっとその先を考えた。
 「 12桁は、1兆だ。11桁なら、1000億だ。日本の人口が1億であることを考えると、使える数字が多すぎて、数字がもったいない。チェックデジットをもっと増やせるのでは? もし増やせば、マイナンバーの偽造対策になる」

 そこで考えてみた。
 数が 1000億で、人口が1億なら、1000年もつか? いや、違う。毎年の出生数は 100万人以下だ。だから、
  1000億(個) ÷ 100万(個/年)= 10万(年)

 となって、10万年ももつ。こんなに長くもつ必要はないんだが。
 逆に言えば、チェックデジットをもっと増やす余地がある。

 ──

 そこで考えたすえ、私の提案は、こうだ。
 「チェックデジットを3桁にする。残りは9桁( 10億)。つまり、同時に使える番号の総数を 10億とする」
 「この 10億を順々に使えば、年 100万ずつ消費していくので、1000年で一巡する。つまり、1000年後には、また同じ9桁の番号を使う必要が出てくる」
 「ただし、一巡したあとでは、チェックデジットの算出方法を変えればいい。一巡目のチェックデジット(3桁)と、二巡目のチェックデジット(3桁)は、異なるわけだ」
 「こうしてチェックデジットを変えることで、100巡させることが可能となる。かくて、1000年後というのを 100回も繰り返せるので、10万年も長持ちする。しかも、3桁のチェックデジットを保有できる」
( ※ なぜ 100巡かというと、3桁のうち1桁はすでに公開して使用済みなので、残るのは2桁だけだから。)

 なお、チェックデジットの利用目的は、こうだ。
 「3桁のチェックデジットのうち、1桁は算出方法を公開して、民間での利用を許可する。これは入力ミスの補正用」
 「3桁のチェックデジットのうち、2桁は算出方法を非公開にして、民間での利用を許可しない。これは行政内部で使う偽造防止用」

 ──

 上記では「 10万年もつ」と言ったが、これは現状における容量と同じである! つまり、容量は変わらない。それでいて、内部的なチェックデジットを2桁分、追加できるのだ。
 これぞ「うまい方法」だろう。



      ※ 以下は読まなくてもいい。


 【 追記 】
 例を示そう。
 「123456789XXY」
 という番号がある。ここで、最初の9桁は、個人に割り当てられる番号だ。( 10億人分ある。)
 最後の Y は、記入ミスのチェック用だ。一定の算式で決まる。
 残る XX は、秘密の算式で決まる。最初の 10億人( 1000年 )については、同じ算式で済む。次の 10億人( 1000年 )については、新たな算式で決まる。
 いずれにせよ、その XX は、特定の番号である場合にのみ、偽造ではないことが(いくらか)保証される。特定の番号ではないとしたら、偽造であると判明する。
 1500年後ぐらいになると、新たな算式ではなく古い算式で決まる番号を使った番号をもつ人物が現れるかもしれない。その場合、それが現存の人物であるならば、その人は大昔の番号を使っていることになるので、その番号は偽造であるとわかる。一方、その番号が大昔の人物( 1000年前の人物)であるとすれば、その番号は偽造だとは言えないことになる。(その当時のチェックデジットに合致しているので。)


posted by 管理人 at 23:42 | コンピュータ_04 | 更新情報をチェックする
  ※ コメントが掲載されるまで、時間がかかることがあります。

過去ログ