對稱密碼與非對稱密碼體制

一、對稱加密?(Symmetric Key Encryption)?

對稱加密是最快速、最簡單的一種加密方式,加密(encryption)與解密(decryption)用的是同樣的密鑰(secret key)。對稱加密有很多種算法,由于它效率很高,所以被廣泛使用在很多加密協(xié)議的核心當中。自1977年美國頒布DES(Data Encryption Standard)密碼算法作為美國數(shù)據(jù)加密標準以來,對稱密碼體制迅速發(fā)展,得到了世界各國的關(guān)注和普遍應(yīng)用。對稱密碼體制從工作方式上可以分為分組加密和序列密碼兩大類。

對稱加密算法的優(yōu)點:算法公開、計算量小、加密速度快、加密效率高。

對稱加密算法的缺點:交易雙方都使用同樣鑰匙,安全性得不到保證。此外,每對用戶每次使用對稱加密算法時,都需要使用其他人不知道的惟一鑰匙,這會使得發(fā)收信雙方所擁有的鑰匙數(shù)量呈幾何級數(shù)增長,密鑰管理成為用戶的負擔。對稱加密算法在分布式網(wǎng)絡(luò)系統(tǒng)上使用較為困難,主要是因為密鑰管理困難,使用成本較高。而與公開密鑰加密算法比起來,對稱加密算法能夠提供加密和認證卻缺乏了簽名功能,使得使用范圍有所縮小。

對稱加密通常使用的是相對較小的密鑰,一般小于256 bit。因為密鑰越大,加密越強,但加密與解密的過程越慢。如果你只用1 bit來做這個密鑰,那黑客們可以先試著用0來解密,不行的話就再用1解;但如果你的密鑰有1 MB大,黑客們可能永遠也無法破解,但加密和解密的過程要花費很長的時間。密鑰的大小既要照顧到安全性,也要照顧到效率,是一個trade-off。

分組密碼:也叫塊加密(block cyphers),一次加密明文中的一個塊。是將明文按一定的位長分組,明文組經(jīng)過加密運算得到密文組,密文組經(jīng)過解密運算(加密運算的逆運算),還原成明文組,有 ECB、CBC、CFB、OFB 四種工作模式。

序列密碼:也叫流加密(stream cyphers),一次加密明文中的一個位。是指利用少量的密鑰(制亂元素)通過某種復(fù)雜的運算(密碼算法)產(chǎn)生大量的偽隨機位流,用于對明文位流的加密。解密是指用同樣的密鑰和密碼算法及與加密相同的偽隨機位流,用以還原明文位流。

常用對稱加密算法包括 DES、3DES、AES

1. DES(Data Encryption Standard):數(shù)據(jù)加密標準,速度較快,適用于加密大量數(shù)據(jù)的場合。

2. 3DES(Triple DES):是基于DES,對一塊數(shù)據(jù)用三個不同的密鑰進行三次加密,強度更高。

3. AES(Advanced Encryption Standard):高級加密標準,是下一代的加密算法標準,速度快,安全級別高,支持128、192、256、512位密鑰的加密。

算法特征

1. 加密方和解密方使用同一個密鑰。

2. 加密解密的速度比較快,適合數(shù)據(jù)比較長時的使用。

3.?密鑰傳輸?shù)倪^程不安全,且容易被破解,密鑰管理也比較麻煩。


二、非對稱加密(Asymmetric Key Encryption)

非對稱加密為數(shù)據(jù)的加密與解密提供了一個非常安全的方法,它使用了一對密鑰,公鑰(public key)和私鑰(private key)。私鑰只能由一方安全保管,不能外泄,而公鑰則可以發(fā)給任何請求它的人。非對稱加密使用這對密鑰中的一個進行加密,而解密則需要另一個密鑰。比如,你向銀行請求公鑰,銀行將公鑰發(fā)給你,你使用公鑰對消息加密,那么只有私鑰的持有人--銀行才能對你的消息解密。與對稱加密不同的是,銀行不需要將私鑰通過網(wǎng)絡(luò)發(fā)送出去,因此安全性大大提高。

非對稱加密算法的優(yōu)點:安全性更高,公鑰是公開的,秘鑰是自己保存的,不需要將私鑰給別人。

非對稱加密算法的缺點:加密和解密花費時間長、速度慢,只適合對少量數(shù)據(jù)進行加密。

對稱加密算法相比非對稱加密算法來說,加解密的效率要高得多。但是缺陷在于對于秘鑰的管理上,以及在非安全信道中通訊時,密鑰交換的安全性不能保障。所以在實際的網(wǎng)絡(luò)環(huán)境中,會將兩者混合使用。

非對稱加密算法包括?RSA、Elgamal、背包算法、Rabin、D-H、ECC(橢圓曲線加密算法),常見的有RSA、ECC。


三、分組加密的四種工作模式

1、ECB (Electronic Code Book,電子編碼本)?

ECB 模式是最簡單的加密模式,明文消息被分成固定大小的塊(分組),并且每個塊被單獨加密。每個塊的加密和解密都是獨立的,且使用相同的方法進行加密,所以可以進行并行計算,但是這種方法一旦有一個塊被破解,使用相同的方法可以解密所有的明文數(shù)據(jù),安全性比較差。適用于數(shù)據(jù)較少的情形,加密前需要把明文數(shù)據(jù)填充到塊大小的整倍數(shù)。

ECB算法優(yōu)點:

簡單、孤立,每個塊單獨運算。適合并行運算。傳輸錯誤一般只影響當前塊。

ECB算法缺點:

同明文輸出同密文,可能導(dǎo)致明文攻擊。

Encryption:

Decryption:


2、CBC (Cipher Block Chaining, 密碼分組鏈接)

CBC 模式中每一個分組要先和前一個分組加密后的數(shù)據(jù)進行XOR異或操作,然后再進行加密。這樣每個密文塊依賴該塊之前的所有明文塊,為了保持每條消息都具有唯一性,第一個數(shù)據(jù)塊進行加密之前需要用初始化向量IV進行異或操作。CBC模式是一種最常用的加密模式,它主要缺點是加密是連續(xù)的,不能并行處理,并且與ECB一樣消息塊必須填充到塊大小的整倍數(shù)。?

CBC算法優(yōu)點:

串行化運算,相同明文不同密文。

CBC算法缺點:

需要初始向量。

Encryption:

Decryption:


3、CFB (Cipher Feedback, 密碼反饋)

CFB 模式和CBC模式比較相似,前一個分組的密文加密后和當前分組的明文XOR異或操作生成當前分組的密文。CFB模式的解密和CBC模式的加密在流程上其實是非常相似的。

CFB算法優(yōu)點:

同明文不同密文,分組密鑰轉(zhuǎn)換為流密碼。

CFB算法缺點:

串行運算不利并行,傳輸錯誤可能導(dǎo)致后續(xù)傳輸塊錯誤。

Encryption:

Decryption:


4、OFB (Output Feedback, 輸出反饋)

OFB 模式將分組密碼轉(zhuǎn)換為同步流密碼,也就是說可以根據(jù)明文長度先獨立生成相應(yīng)長度的流密碼。通過流程圖可以看出,OFB和CFB非常相似,CFB是前一個分組的密文加密后XOR當前分組明文,OFB是前一個分組與前一個明文塊異或之前的流密碼XOR當前分組明文。由于異或操作的對稱性,OFB模式的解密和加密完全一樣的流程。?

OFB算法優(yōu)點:

同明文不同密文,分組密鑰轉(zhuǎn)換為流密碼。

OFB算法缺點:

串行運算不利并行,傳輸錯誤可能導(dǎo)致后續(xù)傳輸塊錯誤。

Encryption:

Decryption:

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容