什么是對稱加密(Symmetric-Key Cryptography)?
對稱加密是采用單鑰密碼系統(tǒng)的加密方法,同一個(gè)密鑰可以同時(shí)用作信息的加密和解密,這種加密方法稱為對稱加密,也稱為單密鑰加密。
對于明文plaintext,和對稱秘鑰key
加密過程E(plaintext,key)=ciphertext
解密過程D(ciphertext,key)=plaintext
對稱加密算法
對稱加密的分為分組密碼(block cipher)和流密碼(stream cipher)兩種類型。本文只介紹分組密碼。
分組密碼
對稱加密的分為分組密碼(block cipher)和流密碼(stream cipher)兩種類型。本文只介紹分組密碼。
分組密碼是每次只能處理特定長度的一塊(block)數(shù)據(jù)的一類加解密算法。AES就是一種分組密碼算法。AES加密算法每次可以加密的塊長度是128位(bit)。
分組密碼的模式
ECB模式
使用AES加密算法ECB模式,每次能加密128位數(shù)據(jù),即16個(gè)字節(jié)。如果要加密48個(gè)字節(jié)內(nèi)容,我們需要把數(shù)據(jù)分為3組,每組16個(gè)字節(jié),分別為P1、P2、P3。P1、P2、P3加密后形成的秘文分別為C1、C2、C3,我們把C1、C2、C3依次拼接起來就成為最終的加密結(jié)果。
ECB模式重要特征是:一段消息若有相同的明文分組,則秘文中也將出現(xiàn)相同的秘文分組;每個(gè)分組獨(dú)立且前后文無關(guān),直接增加或刪除一個(gè)分組不影響其它分組解密過程的正確性。
ECB模式只適合加密較少的數(shù)據(jù),比如秘鑰,對于長的消息ECB可能不安全,攻擊者可以重排或者替換秘文塊進(jìn)行攻擊。
CBC模式
CBC模式加密算法的輸入是上一個(gè)秘文的下一個(gè)明文組的異或“⊕”。
CBC模式加密結(jié)果與前文相關(guān),有利于提高加密結(jié)果的隨機(jī)性。一般情況下長消息加密可采用CBC。
其他分組密碼算法
DES(Data Encrytion Standard)算法,又被稱為美國數(shù)據(jù)加密標(biāo)準(zhǔn),是1972年美國IBM公司研制的對稱密碼體制加密算法。
明文按64位進(jìn)行分組,密鑰長64位,密鑰事實(shí)上是56位參與DES運(yùn)算(第8、16、24、32、40、48、56、64位是校驗(yàn)位,使得每個(gè)密鑰都有奇數(shù)個(gè)1)分組后的明文組和56位的密鑰按位替代或交換的方法形成密文組的加密方法。
DES算法已被破解,目前已經(jīng)沒有企業(yè)使用這種對稱加密算法了。