發表文章

目前顯示的是 2010的文章

密碼編譯概論

轉至: http://msdn.microsoft.com/zh-tw/library/92f9ye3s.aspx 有一種稱為電子密碼書 (Electronic Codebook,ECB) 模式的簡單形式區塊密碼器。ECB 模式並不被視為安全,因為它不會使用初始化向量 (IV) 來初始化第一個純文字區塊。對於已知的私密金鑰  k ,不使用初始化向量的簡單區塊密碼,會將同一個純文字輸入區塊加密成同一個密碼文字輸出區塊。因此,如果您輸入的純文字資料流中有重複的區塊,您的輸出密碼文字資料流中就會有重複的區塊。這些重複的輸出區塊會發出警示,表示弱式加密演算法的未經授權使用者使用了可能已採用的演算法,以及可能的攻擊模式。因此,ECB 加密模式很容易進行分析,並在最後進行金鑰探索。 由基底類別程式庫提供的區塊密碼器類別會使用稱為密碼區塊鏈結 (Cipher-Block Chaining,CBC) 的預設鏈結模式,不過您可以視需要變更此預設值。 CBC 加密會藉由使用初始化向量 (IV) 來加密第一個純文字區塊,解決與 ECB 加密有關的問題。後續的每個純文字區塊都會在其進行加密之前,與前一個密碼文字區塊執行位元排除 OR ( XOR ) 運算。因此,每個密碼文字區塊都會相依於所有的先前區塊。使用這套系統時,就不能使用未授權使用者可能知道的通用訊息頁首來進行金鑰的還原工程。 另一種會洩露利用 CBC 加密所加密之資料的方法,是大規模搜尋每個可能的金鑰。即使是使用最快速的電腦,進行這種搜尋仍非常耗時,而所耗費的時間依照執行加密的金鑰大小而定,因此是不可行的。較大的金鑰大小就較難破解。雖然理論上加密無法完全避免駭客擷取加密資料,但是加密確實會提高駭客進行擷取時所花費的成本。如果花三個月的時間執行大規模的搜尋,只擷取到數天有用的資料,這樣的大規模搜尋是不切實際的。 私密金鑰加密的缺點是,它是假設通訊的兩方已同意某個金鑰和 IV,而且已經相互交換過值。IV 並不被視為機密,因此可以與訊息一起以純文字傳送。不過,這個金鑰必須避免被未經授權的使用者知曉。基於這些問題,私密金鑰加密通常會結合公開金鑰加密,以便隱密傳送金鑰和 IV 的值。