密碼學數學背景(一) 資訊理論

2021-10-02 09:14:48 字數 3913 閱讀 6321

資訊理論中, 定義 一條資訊的資訊量(amount of information)如下:假設所有的資訊是等可能的, 對資訊中所有可能的值進行編碼所需要的 最少位數。

例如, 資料庫中有關『一周中的每一天』這一字段不超過3位的資訊, 因此資訊可以用3 位進行編碼:

000 == 星期一

001 == 星期二

010 == 星期三

...110 == 星期四

111 未使用

如果這些 資訊用對應的ascii碼 符串來表示, 它將占用更多的儲存空間, 但不會包含更多的資訊。同樣, 資料庫中『性別』 這項僅含有1位資訊, 即使它或許可以用兩個6位元組的ascii字串man 或 female 中的一種儲存。

形式化地, 一條資訊m的資訊量可通過它的**熵**(entropy) 來度量, 表示為 h(m), 一條表示性別訊息的 熵是1位;一條表示一周天數訊息的熵稍微小於3位。 通常,一條訊息的熵是log2n ,其中n是訊息所有可能的值, 此處假設每乙個是等可能的。

一條訊息的熵也是他的**不確定性**(uncertainty), 即當訊息被加密成密文時, 為了獲取明文, 需要解密的明文的位數。 例如, 如果密文「qhp*5m」 要麼是『男』 要麼是「女」 , 那麼此訊息的不確定性是1。 密碼分析者為了恢復此訊息, 僅需要選擇1位。

對一種給定的語言, 其**語言資訊率**(rate of language) 是

r = h(m)/n

其中, n是訊息的長度。 在n相當大是, 標準英語的語言資訊率(r值)在1.0位/字母與 1.5位/字母之間。 shanon 指出資訊率與 文字的長度 有關, 8個字母的字串的語言資訊率位 2.3 位/字母, 而16個字母 的字串 的語言資訊率則降低到了1.3位/字母與1.5位/字母之間。

thomas cover 採用 隨機估算技術得到的資訊率位1.3 位/字元。

語言絕對資訊率(absolute rate)的定義為: 假定每乙個字串是等可能的。 對每乙個字母而言可被編碼成的最大位數。 如果在一種語言中有 l個 字母, 其絕對資訊率是

r = log2l

這就是單個字母的最大熵。

英語有26個字母, 其絕對資訊率是 log2 26 = 4.7 位/字母。可見, 英語的實際資訊率遠遠低於其絕對資訊率,這一點任何人都不會感到驚奇。自然語言具有高度冗餘。

一種語言的冗餘度(redundancy) 稱為 d, 定義為:

d = r - r

已知英語的資訊率是1.3 , 其冗餘度 是3.4位/字母。 這意味著每個英語字母攜帶3.4位的冗餘資訊。

一條ascii 碼資訊, 其每位元組訊息含有與英語 相等的 1.3 位的資訊。 著意味著,它的冗餘資訊位6.7 位, 相當於每位 ascii 碼文字有0.84位資訊的冗餘度。 同樣的訊息在博多機(baudot) 中, 每個字元表示成5位, 則博多機文字的每一位有0.74 位的冗餘度和0.26 位的熵。 空格、標點、數字和格式碼將會改變 這些結果。

shannon給安全的密碼系統定義了乙個精確的數學模型 。

密碼分析者的目的是獲取秘鑰k 或 明文p, 或兩者都要。 然而, 他們也樂於得到一些有關p的 統計資訊: 它是否是數位化 的語音頻號、 德文(特殊歷史時期?)或電子報表資料等。

在幾乎所有實際的密碼分析中, 分析者在開始著手前, 總有一些關p的統計資訊。 他們可能知道明文的語言。這種語言 有乙個確定的與之相伴的 冗餘度。 如果 它是給bob的訊息, 它在開頭可能用dear bob。

有一種方法可獲得**完全保密**(perfect secrecy) 的密碼系統。 在這樣的系統中, 密文不會給出有關明文的任何資訊(除了他的長度可能給出外) 。 shanon 從理論上證明, 僅當可能的秘鑰數目至少 與可能的訊息資料一樣多市, 它(完全保密) 才有可能。換句話說, 秘鑰必須至少與訊息 本身一樣長, 並且不重複使用。 簡單 來說, 僅有 **一次一密**亂碼本的密碼系統 才能完全保密。

從完全保密的角度而言, 密文給出一些有關其對應的明文的資訊是不可避免的。 乙個好 的密碼演算法可使這樣的資訊最少, 乙個好 的密碼分析者利用這類資訊可以確定明文。

加密解密是 均需要壓縮處理來降低訊息的冗餘度。

密碼系統的熵可由 秘鑰空間大小k來衡量:

h(k) = log2k

金鑰為 64 為的密碼系統的熵是 64 , 同樣的, 56位金鑰密碼系統的熵是56。 一般來說, 密碼系統的熵越大, 破譯難度越大。

1.4 唯一解距離

對於乙個長度為n的訊息而言, 將乙個密文訊息解密為同一語言中某個有意義的明文, 不同金鑰的數目由下式給出:

2^(h(k)-nd)-1

shannon 定義唯一解距離(unidty distance)u(也稱為唯一解點)為: 使得對應明文的實際資訊(熵)與加密金鑰的熵之和等於所有的密文位數的漸進密文量。他接著指出,比這個距離長的密文可合理地確定唯一的有意義的解密文字比這個距離短的則可能會有多個同樣有效的解密文字,因為令敵手從其中選擇出正確的乙個是困難的, 從而獲得了安全性。

對大多數對稱密碼系統而言,唯一解距離定義為密碼系統的熵初一語言的冗餘度

u = h(k) /d

唯一解距離與所有統計的或資訊理論的指標一樣,只能 給出可能的結果, 並不能給出肯定**。 唯一解距離指出了當進行窮舉攻擊時, 可能解密出唯一有意義的明文所需要的最少密文量。

一般而言, 唯一解距離越長, 密碼系統越好。對有56位 金鑰和用ascii 碼字元表示的英文訊息來說, des的唯一解距離大約是 8.2 個ascii碼字元, 或66位。

唯一解距離不是對密碼分析需要多少密文的度量, 而是對存在唯一合理的密碼分析所需要的密文數量的 指標。對密碼系統進行破譯在計算上有可能是不可行的,即使它在理論上以對少量的密文時可能的。 唯一解距離和冗餘度成反比。 當冗餘度接近零時, 即使乙個普通的密碼系統也可能是不可破的。(判斷密碼安全性的乙個標準)

shannon把唯一解距離與無窮大的密碼系統定義為具有理想保密(ideal secrecy)的。注意,雖然乙個完全保密的密碼系統必須是乙個理想保密的密碼系統, 但乙個理想保密的密碼系統 不一定是乙個 完全 保密的密碼系統。 如果乙個密碼系統具有理想保密性,即使成功的密碼分析者也不能確定解的明文 是否是真正的明文。

雖然以上結論具有一定的理論價值, 可是在實際執行中卻又侷限性。唯一解距離可以保證 當其太小時, 密碼系統是不安全的, 但並不能保證當其較大時, 密碼系統是安全的。 很少有實際的演算法在密碼分析上是絕對不可破的。 各種特點起著 破譯加密資訊的突破作用。 

然而, 類似於上述資訊理論方面的考慮有時也很有用。

比如, **為了乙個確定的演算法建議乙個金鑰變化間隔**(週期)。

密碼分析者 也曾利用各種統計和資訊理論的檢測方法, 以便在許多可能的方向中幫助引導分析。 但是大多數有關資訊理論在密碼分析上的應用都是保密的。

shannon提出了兩種隱蔽明文資訊中冗餘度的基本技術: **混亂和擴散。**

**混亂**(confusion)用於掩蓋明文和密文之間的關係。 這可以挫敗 通過研究密文以獲取冗餘度和統計模式的企圖。 做到這點最容易的方法是通過代替。 簡單的代替密碼,如凱撒以為密碼。

擴散(diffusion) 通過將明文冗餘度分散到密文中使之分散開來。 密碼分析者尋求這些冗餘度將會更難。 產生擴散最簡單的方法是通過換位(也稱為置位)。簡單 的換位密碼, 如列換位體制, 只簡單地重新排列明文本元。 現代 密碼也有這種型別的置換, 但它們也利用其他能將部分訊息散布到整個訊息的擴散型別。

雖然序列密碼的一些反饋設計加進了擴散, 但它只依賴於混亂。 分組密碼演算法既 用到了混亂, 也用到了擴散。 通常, 單獨用擴散容易被攻破。

密碼學數學基礎

設是代數系統,其中g是非空集合,在g中定義了乙個二元運算 即對g中任意a,b有g中唯一元素 記為a b 與之對應 且滿足如下規律 1.封閉性。對任意a,b g,總有a b g 2.結合律。a b c a b c,對任意的a,b,c g 3.恆元 存在e g,使得e a a 對任意的a g 4.逆元 ...

離散數學 密碼學

已知最早使用密碼學的人之一是尤利烏斯 凱撒,他通過將字母表中的字母向後平移三個單位長度來實現加密 模26的平移 我們使用數學語言描述如下。我們使用乙個列舉型別0 25來代表26個字母,使用符號z表示,定義乙個函式f,定義域為非負整數p,我們有 相對地,解密的過程就是將字母向前平移三個單位實現,同樣是...

密碼學總結(一) 數學常識

最近非 相關的事情太多,一直在跑這樣的事情,感覺自己越來越能說話了,敲的 卻越來越少了,以致於6月到現在只寫過一篇部落格,趕緊補一篇。密碼學原理是學過的相關課程,老師教的好,自己感覺也可以,就總結一下,以備後用。首先要講的,是關於群 環 域的概念,這是離散數學當中的概念,比較難懂,而其實密碼學中對這...