パスワードを忘れた? アカウント作成
この議論は、yasuoka (21275)によって ログインユーザだけとして作成されたが、今となっては 新たにコメントを付けることはできません。

末尾が「01」のマイナンバー」記事へのコメント

  • 直感的には「1/11(9%)の割合で検出できないケースがありそう」と思ったのですが…

    もしかしたらすでにお読みになられてるかもしれませんが、上原哲太郎氏の考察 [digitalforensic.jp]によると、末尾チェックデジットが0の場合、
    ・「隣あう数字が入れ替わった場合」の9.6%が検出できない
    ・「ある一桁の数字を間違えた場合」の9.1%が検出できない
    そうです。

    モンテカルロな調査なので数式的な説明はありませんが、そういった操作で mod 11 が1→0または0→1と変化する(そのためどちらもチェックデジットが0になる)ような数字列が9.6%/9.1%の割合で存在する、という話で。

    • 「11%ほど」ってところは、私(安岡孝一)自身ちゃんと条件を書いてないのですが、まあ、予想される最悪値なのです。例を挙げると、「000000000000」っていう(絶対に使われない)マイナンバーに対しては、各桁は、上から順に2,9,3,4,6,8,2,9,3,4,6っていう打ち間違いが素通しされうるので、「11%ほど」だったりします。もちろん平均値は、もう少し下がるかもしれません。

      • なるほど了解しました。
        そういう考え方でしたら、上原氏の調査では「平均値で9.1%になる」ということになりますかね。

        • 平均値は、うーん、「ある一桁の数字を間違えた場合」の「ある一桁」にチェックディジットを含んでない場合は1/10、含んでる場合は11/120あたりになるかしら。いえ、その、まだ真面目に検討してないので、間違ってたらごめんなさい。

          • 私もちょっと考えて見ました。

            チェックデジットが0のままであるためには、p が 1 だけずれる必要がありますが、mod 11 は11通りなのに各桁の数字は10通りしかないので、ある一桁に対して、1/10の割合で「mod 11 が1つずれるような数は存在しない」ことになり「ある一桁の数字を変えても、チェックデジットがやっぱり0になる」ような間違いが存在するケースは 9/10 だけ。
            (例えば、000000000140は、j = 1、k = 4 → sum = 11 → p = 0 で、チェックデジット 0 ですが、p = 1 になる(k×2 mod 11 = 9 になる) k は存在しませんので、kの桁では、間違えてもチェックデジットの衝突するケースはありません)

            そのため、桁毎に見て「その1桁を変えて、チェックデジットが0のまま」な数の存在割合が9/10で、それが11桁あるので、
            ある数値に対して「ある一桁の間違いだけどチェックデジットが一致する数値」の数は平均(9×11/10)個。

            結果、
            「ある一桁」にチェックディジットを含んでない場合は、「ある一桁の間違い」が各桁9通り×11桁なので、衝突割合は (9×11/10)/(9×11) = 1/10。
            「ある一桁」にチェックディジットを含む場合は、「ある一桁の間違い」が各桁9通り×12桁なので、衝突割合は (9×11/10)/(9×12) = 11/120。
            になる、って感じでしょうか。

            親コメント

UNIXはシンプルである。必要なのはそのシンプルさを理解する素質だけである -- Dennis Ritchie

処理中...