アカウント名:
パスワード:
入力ミスを検知できない場合が「ある」。有るか無いかだと、あって当たり前ですが。ここでの問題は1桁の入力誤りを 検知できない率が「高い」点だと思います。デジタル・フォレンジック研究会 の文章によるとマイナンバーの設計では「この見逃しは検査用数字が0の時のみ発生しますので、この場合に限ると実に1桁誤りの約9.1%を検出することが出来ません。」とのこと。 数字のケタをケチらずチェックデジット2ケタで設計しても良かったと思いますけど。なおオマケで懐かしネタ1980年代のマイコン誌と16進数ダンプリストとチェックサムの記事。「にがMSX OCRとMSXを利用してオールドPCのダンプリストを入力する」 [sytes.net]
そりゃチェックディジットの桁数を増やせば検出率は上がりますが、そんなのは自明で指摘するまでもないことでは。桁数や文字種を増やせば入力効率は当然低下するわけで、そこにはトレードオフがあります。マイナンバーを11桁から12桁に増やすということは、9.1%もの入力量増加になるわけで、それについて考慮しなくてよいのでしょうか?1桁の誤入力の場合の検出率が特定のケースで91.9%だからというだけの理由で現行の方法を批判するのが、公平な意見とは思えません。
元記事はVerhoeff algorithmというマイナーなアルゴリズムを使うと、1桁の数字のみのチェックディジットでもよい検出率を実現できるという紹介で、主眼はこちらではないでしょうか(私が見た時点では、コメントで誰一人言及していないようですが)。
桁数の問題ではなく仕様の問題だと思います。数字10文字しか使用しないのにモジュラス11を採用しており、11種類の計算結果を10種類に丸めています。例えばJAN13のチェックデジットは1桁ですが、モジュラス10を採用しており1桁の入力ミスを100%検出します。
開発者に∞責任取らせるための(こっちはちゃんとやってる言うための)仕様でしかないし、意味分かって選んでないからね。これだって10より11の方が数字デカいから良い程度の認識よ。
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
私はプログラマです。1040 formに私の職業としてそう書いています -- Ken Thompson
検知できない場合が「高い」のが問題でしょう (スコア:3)
入力ミスを検知できない場合が「ある」。有るか無いかだと、あって当たり前ですが。
ここでの問題は1桁の入力誤りを 検知できない率が「高い」点だと思います。
デジタル・フォレンジック研究会 の文章によるとマイナンバーの設計では
「この見逃しは検査用数字が0の時のみ発生しますので、
この場合に限ると実に1桁誤りの約9.1%を検出することが出来ません。」とのこと。
数字のケタをケチらずチェックデジット2ケタで設計しても良かったと思いますけど。
なおオマケで懐かしネタ1980年代のマイコン誌と16進数ダンプリストとチェックサムの記事。
「にがMSX OCRとMSXを利用してオールドPCのダンプリストを入力する」 [sytes.net]
トレードオフを無視してないかな (スコア:3, 興味深い)
そりゃチェックディジットの桁数を増やせば検出率は上がりますが、そんなのは自明で指摘するまでもないことでは。
桁数や文字種を増やせば入力効率は当然低下するわけで、そこにはトレードオフがあります。
マイナンバーを11桁から12桁に増やすということは、9.1%もの入力量増加になるわけで、それについて考慮しなくてよいのでしょうか?
1桁の誤入力の場合の検出率が特定のケースで91.9%だからというだけの理由で現行の方法を批判するのが、公平な意見とは思えません。
元記事はVerhoeff algorithmというマイナーなアルゴリズムを使うと、1桁の数字のみのチェックディジットでも
よい検出率を実現できるという紹介で、主眼はこちらではないでしょうか(私が見た時点では、コメントで誰一人言及していないようですが)。
Re:トレードオフを無視してないかな (スコア:1)
桁数の問題ではなく仕様の問題だと思います。
数字10文字しか使用しないのにモジュラス11を採用しており、11種類の計算結果を10種類に丸めています。
例えばJAN13のチェックデジットは1桁ですが、モジュラス10を採用しており1桁の入力ミスを100%検出します。
Re: (スコア:0)
開発者に∞責任取らせるための(こっちはちゃんとやってる言うための)仕様でしかないし、意味分かって選んでないからね。
これだって10より11の方が数字デカいから良い程度の認識よ。