查ICP網:全新的綜合網站備案信息查詢網
Copyright ? 2008-2028 www.mshuangcha.com [ 查icp] All Rights Reserved.
數據加密服務提供彈性,高可用,高性能的數據加解密、密鑰管理等服務器數據安全服務,那么海外服務器可以采取哪些算法來加密數據保障業務數據隱私安全?
DES
DES,全稱Data Encryption Standard,是上一代標準對稱加密算法,現已不推薦使用。 密鑰:DES是一種將64bit的明文加密成64bit的密文的對稱密碼算法,它的密鑰長度是64bit(每隔7bit會設置一個用于錯誤檢查的bit,因此實際使用密鑰長度56bit)。 分組:DES是以64bit的明文作為一個單位來進行加密的,這64bit的單位稱為分組。一般來說,以分組為單位進行處理的密碼算法稱為分組密碼(block cipher),DES就是分組密碼中的一種。DES每次只能加密64比特的數據,如果要加密的明文比較長,就需要對DES加密進行迭代。
3DES
3DES,即triple-DES,簡單地說就是3次DES加解密的組合。現已不推薦使用。 加密:cipthertext = E(k3, D(k2, E(k1, plaintext))) 解密:plaintext = D(k1, E(k2, D(k3, ciphertext))) 特點:如果三個密鑰都一樣,拿剛好和DES一樣。
注:E表示Encrypt,D表示Decrypt。
AES
AES, Advanced Encryption Standard,是現行的對稱加密標準。目前(2017)如果使用對稱加密,應該使用AES。當然,只能說當前AES算法是安全的,不能保證AES永遠都是安全的。 分組:128bit。 密鑰:128bit、192bit、256bit。
分組密碼的模式
分組密碼簡介
分組密碼(block cipher),是每次只能處理特定長度的一塊數據的一類密碼算法,這里的“一塊”就稱為分組(block)。一個分組的比特數就稱為分組長度(block length)。 流密碼(stream cipher),是對數據流進行連續處理的一類密碼算法。 DES、3DES、AES等大多數對稱密碼算法都屬于分組密碼。
ECB模式
全稱Electronic CodeBook mode,電子密碼本模式。 分組方式:將明文分組加密之后的結果直接稱為密文分組。 優點: 一個分組損壞不影響其它分組。 可以并行加解密。 缺點: 相同的明文分組會轉換為相同的密文分組。 無需破譯密碼就能操縱明文(每個分組獨立且前后文無關,直接增加或刪除一個分組不影響其它分組解密過程的正確性)。
CBC模式
全稱Cipher Block Chaining mode,密碼分組鏈接模式。 分組方式:將明文分組與前一個密文分組進行XOR運算,然后再進行加密。每個分組的加解密都依賴于前一個分組。而第一個分組沒有前一個分組,因此需要一個初始化向量(initialization vector)。 優點: 加密結果與前文相關,有利于提高加密結果的隨機性。 可并行解密。 缺點 無法并行加密。 一個分組損壞,如果密文長度不變,則兩個分組受影響。 一個分組損壞,如果密文長度改變,則后面所有分組受影響。
CFB模式
全稱Cipher FeedBack mode,密文反饋模式。 分組方式:前一個密文分組會被送回到密碼算法的輸入端(具體見下圖)。 在CBC和EBC模式中,明文分組都是通過密碼算法進行加密的。而在CFB模式中,明文分組并沒有通過加密算法直接進行加密,明文分組和密文分組之間只有一個XOR。 CFB模式是通過將“明文分組”與“密碼算法的輸出”進行XOR運行生成“密文分組”。CFB模式中由密碼算法生成的比特序列稱為密鑰流(key stream)。密碼算法相當于密鑰流的偽隨機數生成器,而初始化向量相當于偽隨機數生成器的種子。(CFB模式有點類似一次性密碼本。) 優點: 支持并行解密。 不需要填充(padding)。 缺點: 不能抵御重放攻擊(replay attack)。 不支持并行加密。
OFB模式
Output FeedBack mode 輸出反饋模式 密碼算法的輸出會反饋到密碼算法的輸入中(具體見下圖)。 OFB模式中,XOR所需的比特序列(密鑰流)可以事先通過密碼算法生成,和明文分組無關。只需要提前準備好所需的密鑰流,然后進行XOR運算就可以了。
分組模式小結
推薦使用CBC模式。
填充
為什么要填充? ECB和CBC模式要求明文數據必須填充至長度為分組長度的整數倍。 填充的兩個問題。 填充多少字節? 填充什么內容? 填充多少字節? 需要填充的字節數為:paddingSize = blockSize - textLength % blockSize 填充什么內容?(這里列舉的三種方式本質上是一致的) ANSI X.923:填充序列的最后一個字節填paddingSize,其它填0。 ISO 10126:填充序列的最后一個字節填paddingSize, 其它填隨機數。 PKCS7:填充序列的每個字節都填paddingSize。