AYAME

安全なパスワードの長さと文字種(組み合わせ数とエントロピー)

公開日:

パスワードの強さは、使える文字の種類数と長さで決まります。本記事は、組み合わせ数とエントロピー(ビット数)の計算例を示し、長さと文字種がどの程度安全性に影響するかを説明します。パスワードが推測されにくいかどうかは、辞書に載っている単語や個人情報を使っていないかにも左右されますが、本記事では文字の組み合わせ方に絞って計算します。

組み合わせ数とエントロピーの計算式

候補の文字数をN、パスワードの長さをLとすると、組み合わせ数はNL通りです。これを2を底とする対数で表した「log2(N)×L」がエントロピー(ビット数)で、総当たり攻撃にかかる手間の目安になります。半角英大文字・小文字・数字・記号(ここでは!@#$%^&*()-_=+[]{};:,.?の23種)を使うと候補は26+26+10+23=85文字になります。

文字種を増やした場合の計算例

候補85文字で長さ16文字なら、エントロピーはlog2(85)×16=約102.6ビットです。同じ85文字で長さを12文字に減らすと、log2(85)×12=約76.9ビットに下がります。数字だけ(候補10文字)で長さ16文字にした場合はlog2(10)×16=約53.2ビットで、文字種を広げたほうが同じ桁数でも強くなることが分かります。

長さを増やした場合の計算例

英大文字・小文字・数字の62文字を使う場合、長さ8文字ではlog2(62)×8=約47.6ビット、長さ12文字では約71.5ビットで、4文字延ばすだけで約24ビット増えます。一方、長さ12文字のまま候補を62文字から記号を加えた94文字に増やしても、log2(94)×12=約78.7ビットで、増加は約7ビットにとどまります。このように、文字種を1種類増やすより、長さを数文字延ばすほうがエントロピーの増加量が大きくなる場合があります。長さと文字種のどちらも増やせない事情があるときは、まず長さを優先すると効果が出やすいといえます。

NISTの定める長さ

米国国立標準技術研究所(NIST)の指針SP 800-63B(第4版、2025年8月公開)は、パスワードだけで認証する場合は最低15文字を要求しなければならない(SHALL)とし、多要素認証の一部としてだけ使うパスワードは最低8文字まで短くしてよいとしています。また、少なくとも64文字までの長さを設定できるようにすべき(SHOULD)としています。旧版(第3版)の最低8文字から、単独で使うパスワードの下限が引き上げられました。これは「このビット数なら安全」という基準ではなく、短すぎるパスワードを排除し、長いパスワードを使えるようにするための長さの指針です。

参考資料

手で考えた文字列は、特定のパターンに偏りやすく、計算上のエントロピーより実際には推測されやすいことがあります。この記事の考え方に基づき、乱数で文字を選ぶパスワードはパスワード生成ツールで作成できます。

関連記事