第五講 密碼分析學

2021-10-08 13:00:09 字數 1713 閱讀 1634

密碼學學科分支

「如果把一封信鎖在保險櫃中,把保險櫃藏起來,然後告訴你 去看這封信,這並不是安全,而是隱藏;

相反,如果把一封信鎖在保險櫃中,然後把保險櫃及其設計規範和許多同樣的保險櫃給你,以便你和世界上最好的開保險櫃的專家能夠研究鎖的裝置,而你還是無法開啟保險櫃去讀這封信, 這才是安全…」

-bruce schneier

kerckhoffs假設:假定密碼分析者和敵手知道所使用的密碼系統。 即密碼體制的安全性僅依賴於對金鑰的保密,而不應依賴於演算法的保密

假設敵手知道:

(1)所使用的加密演算法

(2)知道明文的概率分布規律;

(3)知道金鑰的概率分布規律;

(4)知道所有可能的破譯方法

(5)敵手能夠拿到加密裝置,可以對其進行能量消耗分析等等

• 恢復合法密文相應的明文

• 恢復金鑰

(1)窮舉攻擊:通過試遍所有的金鑰來進行破譯。

對抗:可增大金鑰的數量。

(2)統計分析攻擊:通過分析密文和明文的統計規律來破譯。

對抗:設法使明文和密文的統計規律不一樣。

(3)解密變換攻擊:針對加密變換的數學基礎,通過數學求解 設法找到解密變換。

對抗:選用具有堅實的數學基礎和足夠複雜的加密演算法。

惟密文攻擊

密碼分析者僅知道一些密文。

最困難,一般是窮搜尋,對截獲密文用所有可能金鑰去試

惟密文攻擊敵手知道的資訊量最少,最易抵抗

只要有足夠的計算時間和儲存容量,原則上可成功,但在實際上一種能保證安全要求的實用密碼演算法,都會設計得這一方法在實際上不可行

一般的敵手需要對密文進行統計測試分析,為此需要知道被加密的明文型別,英文文字,圖象等。

已知明文攻擊

密碼分析者知道一些明文和相應的密文。

在很多情況下,敵手可能有更多的資訊,也許能夠截獲乙個或 多個明文及其對應的密文,或訊息中將出現某種明文格式,這 時的攻擊稱為已知明文攻擊,敵手也許能從已知的明文被變換成密文的方式得到金鑰

選擇明文攻擊

密碼分析者可以選擇一些明文,並得到相應的密文。

如果攻擊者能在加密系統中插入自己選擇的明文訊息,則通過該明文訊息對應的密文有可能確定出金鑰的結構

明文可以是精心選擇的

選擇密文攻擊

密碼分析者可以選擇一些密文,並得到相應的明文。

攻擊者利用解密演算法,對自己所選的密文解密出相應的明文, 有可能確定出金鑰資訊

選擇的密文可以與要破解的密文相關

無條件安全的(不可破譯的): 無論截獲多少密文,都沒有足夠資訊來唯一確定明文,則該密碼是無條件安全的,即對演算法的破譯不比猜測有優勢。

計算上安全的:使用有效資源對乙個密碼系統進行分析而未能破譯,則該密碼是強的或計算上安全的。

密碼演算法只要滿足以下兩條準則之一就行:

(1) 破譯密文的代價超過被加密資訊的價值。

(2 ) 破譯密文所花的時間超過資訊的有用期。

滿足以上兩個準則的密碼演算法在實際中是可用的

第五講 Oracle使用者

oracle使用者的概念對於oracle資料庫至關重要,在現實環境當中乙個伺服器一般只會安裝乙個oracle例項,乙個oracle使用者代表著乙個使用者群,他們通過該使用者登入資料庫,進行資料庫物件的建立 查詢等開發。每乙個使用者對應著該使用者下的n多物件,因此,在實際專案開發過程中,不同的專案組使...

手把手教你學python3第五講

我們學習字典,字典是一種對映型別,字典不是一種序列,字典的關鍵字我們叫做key,值叫做value,字典也可以叫做雜湊表或者關係陣列。比如你去查one的意思,one就是key,1就是value。字典用大括號括起來,字典呼叫要輸入key而不是索引,它不是序列沒有索引,我們來實踐一下 舉幾個例子 get也...

小布老師 PL SQL 第五講

一 巢狀塊變數的使用範圍 1.外部塊中的變數可以在內部塊中訪問,內部塊中的變數不可以在外部訪問 2.如果外部塊與內部塊有定義了相同的名稱的變數,則要加上標籤,如果不加標籤,則優先使用本塊的變數 例子 1 package body scope demo is procedure set global ...