熵定義:
信息熵是信息論中用于度量信息不確定性的單位量。 簡而言之,熵值用來告訴我們某件事情的結果到底有多難猜。
通過公式可以計算出一個事物的出現的概率,結果的熵值越高,表示結果越混亂、越難預測(比如拋公平骰子)。反之熵值越低,結果越有序、越容易預測(比如作弊的硬幣總出正面)。
公式
信息熵的數學定義為:
\[H = -\sum_{i=1}^{n} p_i \log_2 p_i
\]
其中:
- $ p_i $ 表示第 $ i $ 個事件發生的概率;
- 對數底為2,單位為比特(bit);
- 當某個 $ p_i = 0 $ 時,$ 0 \cdot \log_2 0 $ 按0處理。
計算案例
翻面硬幣的信息熵計算(正面、反面)
-
公平硬幣:正面和反面出現的概率均為50%(即各為0.5)。
-
概率計算:
- 正面概率:$ p_{\text{正面}} = \frac{1}{2} $
- 反面概率:$ p_{\text{反面}} = \frac{1}{2} $
-
信息熵計算:
\[H = -\left(0.5 \log_2 0.5 + 0.5 \log_2 0.5\right) = 1 \text{比特} \] -
含義:需要1比特的信息表示結果(如用0表示正面,1表示反面)。
-
-
不公平硬幣:假設正面概率為80%(0.8),反面為20%(0.2)。
- 概率計算:
- 正面概率:$ p_{\text{正面}} = \frac{8}{10} $
- 反面概率:$ p_{\text{反面}} = \frac{2}{10} $
- 信息熵計算:\[H = -\left(0.8 \log_2 0.8 + 0.2 \log_2 0.2\right) \approx 0.72 \text{比特} \]
- 含義:結果更易預測(常出現正面),所以熵更低。
- 概率計算:
摸球游戲中的信息熵計算(紅球、黃球、綠球)
假設袋子中有紅球、黃球、綠球的數量分別為 \(k\)、\(m\)、\(l\),總球數 \(n = k + m + l\)。則:
-
計算每種顏色的概率:
- 紅球概率:$ p_{\text{紅}} = \frac{k}{n} $
- 黃球概率:$ p_{\text{黃}} = \frac{m}{n} $
- 綠球概率:$ p_{\text{綠}} = \frac{l}{n} $
-
代入熵公式:
\( H = -\left( p_{\text{紅}} \log_2 p_{\text{紅}} + p_{\text{黃}} \log_2 p_{\text{黃}} + p_{\text{綠}} \log_2 p_{\text{綠}} \right) \) -
求和并取負數:

\( H = -\left( -0.5 - 0.528 - 0.4308 \right) \approx -\left( -1.4588 \right) \approx 1.46 \ \text{比特} \)
-
結論:
- 最大熵:當所有顏色概率相等(例如各1/3)時,熵最大,約為 $ \log_2 3 \approx 1.58 $ 比特。
- 最小熵:若某顏色概率接近1(如紅球占5/6),熵趨近于0,不確定性極低。
- 直觀意義:熵越高,結果越難預測;熵越低,結果越容易預測。
熵的應用場景
通過理解熵的理論,開發者能設計出更高效的壓縮算法和更安全的加密系統。
1、數據壓縮中的應用
核心原理:熵給出了數據壓縮的理論下限——最優壓縮后的平均編碼長度等于熵值。
具體應用:
-
統計編碼:
- 哈夫曼編碼:根據符號頻率分配變長編碼,高頻符號用短碼,低頻符號用長碼。
- 算術編碼:將整個數據流映射為一個區間,直接逼近熵的理論極限。
-
壓縮算法實例:
- ZIP(DEFLATE):結合 LZ77 算法(消除重復)和哈夫曼編碼。
- JPEG(圖像壓縮):利用離散余弦變換(DCT)減少空間冗余,再熵編碼量化后的系數。
示例:
- 文本文件中的字母頻率差異越大,熵越低,壓縮率越高。
- 若所有符號等概率(最大熵),壓縮率最低(接近原始大小)。
2、加密算法設計中的應用
核心原理:高熵確保密鑰和隨機數的不可預測性,是加密安全的基礎。
具體應用:
-
密鑰生成:
- 高熵密鑰:使用真隨機數生成器(TRNG)或密碼學安全偽隨機數生成器(CSPRNG)生成密鑰。
- 低熵風險:若密鑰熵不足,易被暴力破解(如短密碼或重復模式)。
-
加密算法設計:
- 擴散與混淆:通過高熵操作(如置換、代換)使密文統計特性接近隨機。
- AES 加密:每輪操作(字節替換、行移位、列混淆、輪密鑰加)增加密文熵。
-
隨機數驗證:
- 熵測試:使用 NIST SP 800-90B 等標準評估隨機源的熵質量。
- 攻擊防范:避免低熵導致的重放攻擊或側信道攻擊。
示例:
- TLS 協議:使用高熵的會話密鑰確保通信安全。
- 密碼存儲:鹽值(Salt)增加熵,防止彩虹表攻擊。
總結
| 應用領域 | 熵的作用 | 實際技術 |
|---|---|---|
| 數據壓縮 | 指導最優編碼策略,逼近理論下限 | 哈夫曼編碼、算術編碼、LZ77 |
| 加密算法 | 確保密鑰不可預測性與密文隨機性 | AES、RSA、TRNG/CSPRNG、鹽值技術 |
關鍵結論:
- 數據壓縮:熵決定了最小可能的壓縮大小,算法需逼近這一極限。
- 加密安全:高熵是抵御攻擊的核心,需從密鑰生成到算法設計全程保障。
浙公網安備 33010602011771號