エントロピー (情報量)
情報理論における不確実性の尺度。テキストのエントロピーが高いほど予測が困難で圧縮しにくく、低いほど冗長で圧縮しやすい。
エントロピー (entropy) は、クロード・シャノンが 1948 年に提唱した情報理論の中核概念です。テキストにおけるエントロピーは「次の文字がどれだけ予測しにくいか」を数値化したもので、単位はビット/文字です。エントロピーが高いテキストは情報密度が高く、低いテキストは冗長性が高いことを意味します。
英語テキストのエントロピーは、シャノン自身が人間に次の文字を予測させる実験から 0.6〜1.3 ビット/文字と見積もりました。アルファベット 26 文字が等確率で出現するなら log₂(26) ≈ 4.7 ビット/文字ですが、実際には「e」が最頻出で「z」はほとんど出現しないという偏りがあり、さらに「th」「ing」「tion」のような頻出パターンがあるため、実効的なエントロピーは大幅に低くなります。
日本語テキストの 1 文字あたりのエントロピーは英語より高くなります。漢字だけでも数千種類が使われ、ひらがな、カタカナ、英数字が混在するため、次の文字の予測が英語より困難です。ただし、日本語は 1 文字あたりの情報量が英語より多い (漢字 1 文字で英単語数文字分の意味を表せる) ため、同じ内容を伝えるのに必要な文字数は日本語の方が少なくなります。
エントロピーとテキスト圧縮は直結しています。シャノンの情報源符号化定理により、テキストの圧縮限界はエントロピーで決まります。エントロピーが 1.3 ビット/文字のテキストは、理論上 1 文字あたり 1.3 ビットまでしか圧縮できません。ASCII の 1 文字 = 8 ビットから見ると、削減率で約 84% が理論的な上限という読み方になります (「圧縮率」という語は元サイズに対する残りの割合を指す場合と削減した割合を指す場合の両方で使われるため、どちらの意味かを確認してから数字を読む必要があります)。ただし、この上限に迫れるのは文脈から次の文字を強く予測するモデルを持つ圧縮器で、英語テキストで 1.5 ビット/文字程度が報告されているのは PPM 系の手法です。gzip や Brotli のような汎用の圧縮器は、辞書と符号化の効率で稼ぐ設計上、理論限界にはかなりの余裕を残した水準にとどまります。
パスワードの強度評価にもエントロピーが使われます。8 文字の英小文字パスワードのエントロピーは log₂(26⁸) ≈ 37.6 ビット、英大小文字+数字+記号 (95 種) なら log₂(95⁸) ≈ 52.6 ビットです。文字数を増やすか文字種を増やすかでエントロピーを高められますが、効くのは文字数の方です。文字種は底 (26 か 95 か) を変えるだけなのに対し、文字数はその底に指数として掛かるためで、上の例で文字種を 26 から 95 へ広げて得られる 15 ビットは、英小文字のまま 4 文字足せば追い越せます。
ただし、この計算が成り立つのは各文字が本当に無作為に選ばれた場合だけです。人が考えた「Password1!」のような文字列は、記号や数字を足しても計算上のエントロピーどおりの強度にはなりません。攻撃側は単語・語形変化・よくある置換 (a を @ にする類) を優先して試すためです。この事情から、NIST SP 800-63B の現行版はエントロピーのビット数を要件として指定していません。要件は、単一要素として使うパスワードは 15 文字以上・多要素の一部なら 8 文字以上、64 文字までは受け付ける、文字種の混在を強制する構成ルールは課さない、そして漏えい済みパスワードのブロックリストと照合する、という形になっています。エントロピーは強度を見積もる道具であって、それ自体が合否の基準ではないという整理です。
文字数カウントとの関連では、エントロピーは「同じ文字数でどれだけの情報を伝えられるか」の理論的な指標です。X (旧 Twitter) の投稿枠は上限 280 ですが、日本語の文字は 1 文字が 2 として数えられるため、日本語では実質 140 文字です。その同じ 140 文字でも、定型的な挨拶文 (低エントロピー) と専門的な技術解説 (高エントロピー) では、伝達される情報量が大きく異なります。文字数制限のある媒体で情報量を最大化するには、冗長な表現を排除してエントロピーを高めることが有効です。