Entropy
如何計算特定密碼系統的熵?
我想計算特定密碼系統的熵,例如凱撒密碼或 Vernam 密碼系統等,但我不太明白該怎麼做。有什麼幫助嗎?
TL;博士:
加密密鑰K $ K $ 的熵不能針對單個密鑰單獨計算。它是密鑰生成機制的屬性。
解釋:
熵是機率分佈的函式。假設你的意思是最常見的熵度量,香農熵,給定一個密鑰K\in {0,1}^b $ K\in {0,1}^b $ ,它是根據一些機率分佈
P(x)=從b $ b- $ 位字元串集合中隨機生成的Prob{K=x},\quad x\in {0,1}^b $$ P(x)=Prob{K=x},\quad x\in {0,1}^b $$ 那麼從這個分佈中提取的密鑰的熵是
H(X)=\sum_{x \in {0,1 }^b} -P(x) \log_2 P(x)\quad\textrm{bits}。 $$ H(X)=\sum_{x \in {0,1}^b} -P(x) \log_2 P(x)\quad\textrm{bits}. $$ 如果K $ K $ 的分佈是均勻的,那麼這個熵就是b $ b $ 位。
如果密鑰來自某個隨機選擇的 SEED,並且是通過某種確定性算法或函式生成的,則輸出的密鑰的熵與 SEED 的熵相同。
PS:可以通過Kolmogorov Complexity(一種理論度量)來定義單個對象(例如密鑰)中的不確定性。它被定義為將輸出該密鑰並暫停(停止)的通用圖靈機 (UTM) 的程序長度。這種複雜性是無法計算的,但可以近似。