《白帽子講WEB安全》學習筆記之第11章加密演算法與隨機數
第11章 加密演算法與隨機數
11.1 概述
攻擊密碼系統的方法
密碼分析者攻擊密碼系統的方法主要有以下三種:
(1)窮舉攻擊
所謂窮舉攻擊是指密碼分析者採用依次試遍所有可能的金鑰對所獲密文進行解密,直至得到正確的明文.
(2)統計分析攻擊
所謂統計分析攻擊就是指密碼分析者通過分析密文和明文的統計規律來破譯密碼。
(3)數學分析攻擊
所謂數學分析攻擊是指密碼分析者針對加解密演算法的數學基礎和某些密碼學特性,通過數學求解的方法來破譯密碼。
破譯密碼的型別
(1)唯密文攻擊(Ciphertext-only attack)
已知:
C1=EK ( P1 ),C2=EK( P2 ),……,Ci=EK(Pi)
推匯出:
P1,P2,……,Pi,K或者找出一個演算法從Ci+1=EK(Pi+1 )推出Pi+1
(2)已知明文攻擊(Know-plaintext attack)
已知:
P1,C1=EK ( P1 ),P2, C2=EK(P2 ) ,……, Pi,Ci=EK( Pi) ,
推匯出:
金鑰k,或從Ci+1=EK(Pi+1 )推出Pi+1
(3)選擇明文攻擊(Chosen-plaintext attack)
已知:
P1,C1=EK ( P1 ),P2, C2=EK(P2 ) ,……, Pi,Ci=EK( Pi) ,其中P1,P2,……, Pi是由密碼分析者選擇的。
推匯出:
金鑰k,或從Ci+1=EK(Pi+1 )推出Pi+1
(4)自適應選擇明文攻擊(Adaptive-chosen-plaintext attack)
(5)選擇密文攻擊(Chosen-ciphertext attack)
(6)選擇金鑰攻擊(Chosen-key attack)
(7)軟磨硬泡攻擊
11.6 金鑰管理
金鑰的保密性比演算法的保密性重要多了。金鑰最好是動態的,會定期更新。
11.7 偽隨機數問題
在Java中使用java.util.Random是不安全的,因為其是使用系統時間的作為種子生成的偽隨機數。在種子相同的情況下,其生成的隨機數的順序都是相同的。
java.security.SecureRandom是安全隨機數,可以在專案中使用。
加密演算法的最佳實踐:
q 不要使用ECB模式
q 不要使用流密碼
q 使用HMAC-SHA1代替MD5(甚至代替SHA1)
q 不要使用相同的key做不同的事
q salts與IV需要隨機產生
q 不要自己實現加密演算法,儘量使用穩定的加密庫
q 不要依賴於系統的保密性
本文轉自 夢朝思夕 51CTO部落格,原文連結:http://blog.51cto.com/qiangmzsx/1859557
相關文章
- 讀《白帽子講web安全》 ——筆記Web筆記
- 《白帽子講web安全》讀書筆記Web筆記
- 《白帽子講Web安全》 讀書Web
- 機器學習學習筆記之——演算法鏈與管道機器學習筆記演算法
- 【《白話機器學習的數學》筆記1】迴歸機器學習筆記
- Web安全學習筆記之更新kali國內源Web筆記
- Web之http學習筆記WebHTTP筆記
- 飛機的 PHP 學習筆記之 Web 篇PHP筆記Web
- 飛機的 PHP 學習筆記之安全篇PHP筆記
- Python零基礎學習筆記(九)——隨機數Python筆記隨機
- 逆向與安全學習筆記筆記
- 串的應用與kmp演算法講解--學習筆記KMP演算法筆記
- 機器學習演算法學習筆記機器學習演算法筆記
- 機器學習演算法筆記之7:模型評估與選擇機器學習演算法筆記模型
- 隨機過程學習筆記——概論隨機筆記
- 【演算法學習筆記】組合數與 Lucas 定理演算法筆記
- 機器學習演算法筆記之5:支援向量機SVM機器學習演算法筆記
- 機器學習演算法筆記之8:聚類演算法機器學習演算法筆記聚類
- 機器學習演算法筆記之3:線性模型機器學習演算法筆記模型
- 飛機的 PHP 學習筆記七:WebPHP筆記Web
- Web Bundles 學習筆記Web筆記
- 【Web】Web 階段學習筆記Web筆記
- 機器學習筆記(KNN演算法)機器學習筆記KNN演算法
- 演算法學習筆記(40): 具體數學演算法筆記
- 《資料結構與演算法之美》學習筆記之開篇資料結構演算法筆記
- 【筆記】如何產生隨機數筆記隨機
- Swift筆記之變數講解Swift筆記變數
- 隨機過程複習筆記隨機筆記
- 飛機的 PHP 學習筆記九:安全PHP筆記
- 第15.16.17章學習筆記筆記
- 強化學習筆記之【SAC演算法】強化學習筆記演算法
- 機器學習演算法:Logistic迴歸學習筆記機器學習演算法筆記
- Coursera 機器學習 第9章(上) Anomaly Detection 學習筆記機器學習筆記
- PHP 資料加密 (學習筆記)PHP加密筆記
- Python分享之數學與隨機數 (math包,random包)Python隨機random
- 【演算法學習筆記】概率與期望DP演算法筆記
- 期望 與 機率論 學習筆記筆記
- python機器學習筆記:EM演算法Python機器學習筆記演算法
- 《資料結構與演算法之美》學習筆記之複雜度資料結構演算法筆記複雜度