對稱密碼體制和非對稱密碼體制
一、對稱加密 (Symmetric Key Encryption)
對稱加密是最快速、最簡單的一種加密方式,加密(encryption)與解密(decryption)用的是同樣的密鑰(secret key)。對稱加密有很多種算法,由於它效率很高,所以被廣泛使用在很多加密協議的核心當中。自1977年美國頒布DES(Data Encryption Standard)密碼算法作為美國數據加密標准以來,對稱密碼體制迅速發展,得到了世界各國的關注和普遍應用。對稱密碼體制從工作方式上可以分為分組加密和序列密碼兩大類。
對稱加密算法的優點:算法公開、計算量小、加密速度快、加密效率高。
對稱加密算法的缺點:交易雙方都使用同樣鑰匙,安全性得不到保證。此外,每對用戶每次使用對稱加密算法時,都需要使用其他人不知道的惟一鑰匙,這會使得發收信雙方所擁有的鑰匙數量呈幾何級數增長,密鑰管理成為用戶的負擔。對稱加密算法在分布式網絡系統上使用較為困難,主要是因為密鑰管理困難,使用成本較高。而與公開密鑰加密算法比起來,對稱加密算法能夠提供加密和認證卻缺乏了簽名功能,使得使用范圍有所縮小。
對稱加密通常使用的是相對較小的密鑰,一般小於256 bit。因為密鑰越大,加密越強,但加密與解密的過程越慢。如果你只用1 bit來做這個密鑰,那黑客們可以先試着用0來解密,不行的話就再用1解;但如果你的密鑰有1 MB大,黑客們可能永遠也無法破解,但加密和解密的過程要花費很長的時間。密鑰的大小既要照顧到安全性,也要照顧到效率,是一個trade-off。
分組密碼:也叫塊加密(block cyphers),一次加密明文中的一個塊。是將明文按一定的位長分組,明文組經過加密運算得到密文組,密文組經過解密運算(加密運算的逆運算),還原成明文組,有 ECB、CBC、CFB、OFB 四種工作模式。
序列密碼:也叫流加密(stream cyphers),一次加密明文中的一個位。是指利用少量的密鑰(制亂元素)通過某種復雜的運算(密碼算法)產生大量的偽隨機位流,用於對明文位流的加密。解密是指用同樣的密鑰和密碼算法及與加密相同的偽隨機位流,用以還原明文位流。
常用對稱加密算法包括 DES、3DES、AES
1. DES(Data Encryption Standard):數據加密標准,速度較快,適用於加密大量數據的場合。
2. 3DES(Triple DES):是基於DES,對一塊數據用三個不同的密鑰進行三次加密,強度更高。
3. AES(Advanced Encryption Standard):高級加密標准,是下一代的加密算法標准,速度快,安全級別高,支持128、192、256、512位密鑰的加密。
算法特征
1. 加密方和解密方使用同一個密鑰。
2. 加密解密的速度比較快,適合數據比較長時的使用。
3. 密鑰傳輸的過程不安全,且容易被破解,密鑰管理也比較麻煩。
二、非對稱加密(Asymmetric Key Encryption)
非對稱加密為數據的加密與解密提供了一個非常安全的方法,它使用了一對密鑰,公鑰(public key)和私鑰(private key)。私鑰只能由一方安全保管,不能外泄,而公鑰則可以發給任何請求它的人。非對稱加密使用這對密鑰中的一個進行加密,而解密則需要另一個密鑰。比如,你向銀行請求公鑰,銀行將公鑰發給你,你使用公鑰對消息加密,那么只有私鑰的持有人--銀行才能對你的消息解密。與對稱加密不同的是,銀行不需要將私鑰通過網絡發送出去,因此安全性大大提高。
非對稱加密算法的優點:安全性更高,公鑰是公開的,秘鑰是自己保存的,不需要將私鑰給別人。
非對稱加密算法的缺點:加密和解密花費時間長、速度慢,只適合對少量數據進行加密。
對稱加密算法相比非對稱加密算法來說,加解密的效率要高得多。但是缺陷在於對於秘鑰的管理上,以及在非安全信道中通訊時,密鑰交換的安全性不能保障。所以在實際的網絡環境中,會將兩者混合使用。
非對稱加密算法包括 RSA、Elgamal、背包算法、Rabin、D-H、ECC(橢圓曲線加密算法),常見的有RSA、ECC。
三、分組加密的四種工作模式
1、ECB (Electronic Code Book,電子編碼本)
ECB 模式是最簡單的加密模式,明文消息被分成固定大小的塊(分組),並且每個塊被單獨加密。每個塊的加密和解密都是獨立的,且使用相同的方法進行加密,所以可以進行並行計算,但是這種方法一旦有一個塊被破解,使用相同的方法可以解密所有的明文數據,安全性比較差。適用於數據較少的情形,加密前需要把明文數據填充到塊大小的整倍數。
ECB算法優點:
簡單、孤立,每個塊單獨運算。適合並行運算。傳輸錯誤一般只影響當前塊。
ECB算法缺點:
同明文輸出同密文,可能導致明文攻擊。
Encryption:
Decryption:
2、CBC (Cipher Block Chaining, 密碼分組鏈接)
CBC 模式中每一個分組要先和前一個分組加密后的數據進行XOR異或操作,然后再進行加密。這樣每個密文塊依賴該塊之前的所有明文塊,為了保持每條消息都具有唯一性,第一個數據塊進行加密之前需要用初始化向量IV進行異或操作。CBC模式是一種最常用的加密模式,它主要缺點是加密是連續的,不能並行處理,並且與ECB一樣消息塊必須填充到塊大小的整倍數。
CBC算法優點:
串行化運算,相同明文不同密文。
CBC算法缺點:
需要初始向量。
Encryption:
Decryption:
3、CFB (Cipher Feedback, 密碼反饋)
CFB 模式和CBC模式比較相似,前一個分組的密文加密后和當前分組的明文XOR異或操作生成當前分組的密文。CFB模式的解密和CBC模式的加密在流程上其實是非常相似的。
CFB算法優點:
同明文不同密文,分組密鑰轉換為流密碼。
CFB算法缺點:
串行運算不利並行,傳輸錯誤可能導致后續傳輸塊錯誤。
Encryption:
Decryption:
4、OFB (Output Feedback, 輸出反饋)
OFB 模式將分組密碼轉換為同步流密碼,也就是說可以根據明文長度先獨立生成相應長度的流密碼。通過流程圖可以看出,OFB和CFB非常相似,CFB是前一個分組的密文加密后XOR當前分組明文,OFB是前一個分組與前一個明文塊異或之前的流密碼XOR當前分組明文。由於異或操作的對稱性,OFB模式的解密和加密完全一樣的流程。
OFB算法優點:
同明文不同密文,分組密鑰轉換為流密碼。
OFB算法缺點:
串行運算不利並行,傳輸錯誤可能導致后續傳輸塊錯誤。
Encryption:
Decryption:
聯系郵箱:prettygirll@yeah.net