什么是對稱密鑰算法?
對稱密鑰算法(Symmetric-key algorithm)又稱為對稱加密、私鑰加密、共享密鑰加密,是密碼學(xué)中的一類加密算法。這類算法在加密和解密時(shí)使用相同的密鑰,或是使用兩個(gè)可以簡單地相互推算的密鑰。事實(shí)上,這組密鑰成為在兩個(gè)或多個(gè)成員間的共同秘密,以便維持專屬的通信聯(lián)系。與公開密鑰加密相比,要求雙方獲取相同的密鑰是對稱密鑰加密的主要缺點(diǎn)之一。

常見的對稱加密算法有 AES、ChaCha20、3DES、Salsa20、DES、Blowfish、IDEA、RC5、RC6、Camellia。對稱加密的速度比公鑰加密快很多,在很多場合都需要對稱加密。
對稱密鑰密碼體制從加密模式上可分為序列密碼和分組密碼兩大類。序列密碼一直是軍事和外交場合使用的主要密碼技術(shù)之一,它的主要原理是通過有限狀態(tài)機(jī)產(chǎn)生性能優(yōu)良的偽隨機(jī)序列,使用該序列加密信息流,得到密文序列。分組密碼的工作方式是將明文分成固定長度的組,如 64 比特一組,用同一密鑰和算法對每一組加密,輸出也是固定長度的密文。
對稱性的加密算法包括美國標(biāo)準(zhǔn) 56 位密鑰的 DES,Triple-DES,3DES,變長度密鑰的 RC2 和 RC4,瑞士人發(fā)明的 128 位密鑰的 IDEA 等。DES(Data Encryption Standard)是由 IBM 公司開發(fā)的最著名的數(shù)據(jù)加密算法,它的核心是乘積變換。美國于 1997 年將其定為非機(jī)密數(shù)據(jù)的正式加密標(biāo)準(zhǔn)。
對稱加密算法有哪些
對稱密鑰:DES TripleDES 算法
DES 算法把 64 位的明文輸入塊變?yōu)閿?shù)據(jù)長度為 64 位的密文輸出塊,其中 8 位為奇偶校驗(yàn)位,另外 56 位作為密碼的長度。首先,DES 把輸入的 64 位數(shù)據(jù)塊按位重新組合,并把輸出分為 L0、R0 兩部分,每部分各長 32 位,并進(jìn)行前后置換,最終由 L0 輸出左 32 位,R0 輸出右 32 位,根據(jù)這個(gè)法則經(jīng)過 16 次迭代運(yùn)算后,得到 L16、R16,將此作為輸入,進(jìn)行與初始置換相反的逆置換,即得到密文輸出。
DES 算法具有極高的安全性,到目前為止,除了用窮舉搜索法對 DES 算法進(jìn)行攻擊外,還沒有發(fā)現(xiàn)更有效的辦法,而 56 位長密鑰的窮舉空間為 2^56,這意味著如果一臺(tái)計(jì)算機(jī)的速度是每秒種檢測 100 萬個(gè)密鑰,那么它搜索完全部密鑰就需要將近 2285 年的時(shí)間,因此 DES 算法是一種很可靠的加密方法。
對稱密鑰:RC 算法
RC4 算法的原理是“攪亂”,它包括初始化算法和偽隨機(jī)子密碼生成算法兩大部分,在初始化的過程中,密鑰的主要功能是將一個(gè) 256 字節(jié)的初始數(shù)簇進(jìn)行隨機(jī)攪亂,不同的數(shù)簇在經(jīng)過偽隨機(jī)子密碼生成算法的處理后可以得到不同的子密鑰序列,將得到的子密鑰序列和明文進(jìn)行異或運(yùn)算(XOR)后,得到密文。
由于 RC4 算法加密采用的是異或方式,所以,一旦子密鑰序列出現(xiàn)了重復(fù),密文就有可能被破解,但是目前還沒有發(fā)現(xiàn)密鑰長度達(dá)到 128 位的 RC4 有重復(fù)的可能性,所以,RC4 也是目前最安全的加密算法之一。
對稱密鑰:BlowFish 算法
BlowFish 算法是一個(gè) 64 位分組及可變密鑰長度的分組密碼算法,該算法是非專利的。
BlowFish 算法使用兩個(gè)“盒”:pbox[18]和 sbox[4256],BlowFish 算法有一個(gè)核心加密函數(shù)。該函數(shù)輸入 64 位信息,運(yùn)算后以 64 位密文的形式輸出。用 BlowFish 算法加密信息,需要密鑰預(yù)處理和信息加密兩個(gè)過程。BlowFish 算法的原密鑰 pbox 和 sbox 是固定的,要加密一個(gè)信息,需要選擇一個(gè) key,用這個(gè) key 對 pbox 和 sbox 進(jìn)行變換,得到下一步信息加密所用到的 key_pbox 和 key_sbox。
BlowFish 算法解密,同樣也需要密鑰預(yù)處理和信息解密兩個(gè)過程。密鑰預(yù)處理的過程和加密時(shí)完全相同。信息解密的過程就是把信息加密過程的 key_pbox 逆序使用即可。