がるの健忘録

エンジニアでゲーマーで講師で占い師なおいちゃんのブログです。

パスワード文字数の超おおざっぱな最小長の計算

ふと軽く気になったので、おおざっぱに。
前提として「パスワード 定期的 変更」というキーワードがありまして。
個人的に

パスワードの最適変更間隔とその定量的効果の評価
https://docs.google.com/document/d/1RWDerFjLc24nr_lDhF8s0vEOJ8DPKhEnEAYG9qr_oBY/pub

ここが非常に気にっております(笑*1

さて。
パスワードの「最低文字数」をどれくらいにするか……の前提として「空間の広さ」を検討付けておきたいかなぁ、と。

どっかで「5万語の英単語からランダムで5つ」ってのを記憶してたのですが……微妙に記憶違いしていましたな。
https://twitter.com/HiromitsuTakagi/status/978648962449129473

私の推奨は「5万語の語彙の辞書(広辞苑など)をランダムに開いて3つの語を選んで繋げる」(オフライン攻撃想定の「暗号の鍵」の場合は5つの語を選んでつなぐ)という提案。(NISCは採用していない。)

まぁおいちゃんの専門エリアは「オンライン」なのですが、せっかくですので(なにが)。

「5万語から5つ」の場合
50000 * 50000 * 50000 * 50000 * 50000 = 312,500,000,000,000,000,000,000
………単位がもはやよぉわからん(苦笑*2

一応「5万語から4つ」の場合も。
50000 * 50000 * 50000 * 50000 = 6,250,000,000,000,000,000
これもごいすー(笑

当初のお話の「5万語から3つ」だと
50000 * 50000 * 50000 * 50000 = 125,000,000,000,000
いやまぁ十分以下略。

もう一つ、こちらは「パスワードの最適変更間隔とその定量的効果の評価」にある「辞書に載っている10万語を2語組み合わせてパスワード」。
100,000 * 100,000 = 10,000,000,000
………なんだろうこの数値が穏当に見えるw

………うん、一旦、目安として「5万語から4つ」を採用してみましょう。なんとなく。
区切りを抜いて数値だけにすると
6250000000000000000
となります(625京………こんな単位、まぁ滅多に使わんなぁw)。
ので、これと同じくらいの空間をゲットしてみたいなぁ、と。

まずは「英大小文字+数字」。文字種類は26+26+10 = 62となります。
計算をしますと
10文字 → 839299365868340224
11文字 → 52036560683837093888
なので、まぁ「11文字以上」で十分な広さが確保できそう。

次に「英大小文字+数字+記号」。記号は一旦<>!\"#'$%&()=-@;:,.?*[]{}
の25種類と仮定します。
文字種類は26+26+10+25 = 87パターン。

9文字 → 285544154243029527
10文字 → 24842341419143568849
こちらは「10文字」でいけました。1文字の差を、大きいとみるか小さいとみるか。

で、まぁ、せっかくなので「5万語5文字」への対応も。

記号無し
13文字 → 200028539268669788905472
14文字 → 12401769434657526912139264

記号あり
12文字 → 188031682201497672618081
13文字 → 16358756351530297517773047

なので。
全体的に「14文字以上くらいあればよいかなぁ」と言えそうな感じですねぇ。
「ナニを基準にしてるんだよナニを」とか言われそうですが、あんまり気にしない方向で。

………どっかに「英単語5万語とか10万語とかの辞書データ」落ちてないかしらん?
とかたまに思うんですが、どうなんですかねぇ???

*1: 最近うまくググって見つけられなかったので、検索用に上述のメモを取りたかっただけ、って話も以下略

*2:3125垓、とか、ど~ゆ~www