詞語解釋
RC4是一種流加密算法,它是一種密鑰交換協(xié)議,可以用來加密和解密信息。它是一種比較常用的加密算法,在許多安全協(xié)議中都有使用。它的特點(diǎn)是加密速度快,安全性高,算法簡(jiǎn)單,但它也有一些缺點(diǎn),比如它的密鑰空間不夠大,容易受到攻擊。 RC4在通信中的應(yīng)用主要是用來加密信息,保護(hù)數(shù)據(jù)傳輸?shù)陌踩。它可以使用一個(gè)雙方都知道的密鑰來加密信息,使得信息在傳輸過程中不被竊取。RC4算法可以用來加密文件,也可以用來加密網(wǎng)絡(luò)傳輸?shù)臄?shù)據(jù),這樣可以保證數(shù)據(jù)傳輸?shù)陌踩浴? RC4算法的工作原理是,它使用一個(gè)雙方都知道的密鑰來加密信息,這個(gè)密鑰可以是任意長(zhǎng)度的,但一般都是128位或256位。加密的過程是,先將密鑰通過一個(gè)算法進(jìn)行處理,然后將得到的結(jié)果與明文進(jìn)行異或運(yùn)算,最后得到的結(jié)果就是加密后的密文。解密的過程也是一樣的,將密文和密鑰通過相同的算法進(jìn)行處理,然后再與密文進(jìn)行異或運(yùn)算,最后得到的結(jié)果就是明文。 RC4算法是一種流加密算法,它可以用來加密信息,保護(hù)數(shù)據(jù)傳輸?shù)陌踩裕且环N比較常用的加密算法,在許多安全協(xié)議中都有使用。它的特點(diǎn)是加密速度快,安全性高,算法簡(jiǎn)單,但它也有一些缺點(diǎn),比如它的密鑰空間不夠大,容易受到攻擊。 RC4加密算法是大名鼎鼎的RSA三人組中的頭號(hào)人物Ron Rivest在1987年設(shè)計(jì)的密鑰長(zhǎng)度可變的流加密算法簇。之所以稱其為簇,是由于其核心部分的S-box長(zhǎng)度可為任意,但一般為256字節(jié)。該算法的速度可以達(dá)到DES加密的10倍左右。 RC4算法的原理很簡(jiǎn)單,包括初始化算法和偽隨機(jī)子密碼生成算法兩大部分。假設(shè)S-box長(zhǎng)度和密鑰長(zhǎng)度均為為n。先來看看算法的初始化部分(用類C偽代碼表示):for (i=0; is=i;j=0;for (i=0; i{j=(j+s+k)%256;swap(s, s【j】);} 在初始化的過程中,密鑰的主要功能是將S-box攪亂,i確保S-box的每個(gè)元素都得到處理,j保證S-box的攪亂是隨機(jī)的。而不同的S-box在經(jīng)過偽隨機(jī)子密碼生成算法的處理后可以得到不同的子密鑰序列,并且,該序列是隨機(jī)的:i=j=0;while (明文未結(jié)束){++i%=n;j=(j+s)%n;swap(s, s【j】);sub_k=s((s+s【j】)%n);} 得到的子密碼sub_k用以和明文進(jìn)行xor運(yùn)算,得到密文,解密過程也完全相同。 由于RC4算法加密是采用的xor,所以,一旦子密鑰序列出現(xiàn)了重復(fù),密文就有可能被破解。關(guān)于如何破解xor加密,請(qǐng)參看Bruce Schneier的Applied Cryptography一書的1.4節(jié)Simple XOR,在此我就不細(xì)說了。那么,RC4算法生成的子密鑰序列是否會(huì)出現(xiàn)重復(fù)呢?由于存在部分弱密鑰,使得子密鑰序列在不到100萬字節(jié)內(nèi)就發(fā)生了完全的重復(fù),如果是部分重復(fù),則可能在不到10萬字節(jié)內(nèi)就能發(fā)生重復(fù),因此,推薦在使用RC4算法時(shí),必須對(duì)加密密鑰進(jìn)行測(cè)試,判斷其是否為弱密鑰。 而且,根據(jù)目前的分析結(jié)果,沒有任何的分析對(duì)于密鑰長(zhǎng)度達(dá)到128位的RC4有效,所以,RC4是目前最安全的加密算法之一,大家可以放心使用!
RC4加密算法是大名鼎鼎的RSA三人組中的頭號(hào)人物Ron Rivest在1987年設(shè)計(jì)的密鑰長(zhǎng)度可變的流加密算法簇。之所以稱其為簇,是由于其核心部分的S-box長(zhǎng)度可為任意,但一般為256字節(jié)。該算法的速度可以達(dá)到DES加密的10倍左右。
RC4算法的原理很簡(jiǎn)單,包括初始化算法和偽隨機(jī)子密碼生成算法兩大部分。假設(shè)S-box長(zhǎng)度和密鑰長(zhǎng)度均為為n。先來看看算法的初始化部分(用類C偽代碼表示):for (i=0; is=i;j=0;for (i=0; i{j=(j+s+k)%256;swap(s, s【j】);} 在初始化的過程中,密鑰的主要功能是將S-box攪亂,i確保S-box的每個(gè)元素都得到處理,j保證S-box的攪亂是隨機(jī)的。而不同的S-box在經(jīng)過偽隨機(jī)子密碼生成算法的處理后可以得到不同的子密鑰序列,并且,該序列是隨機(jī)的:i=j=0;while (明文未結(jié)束){++i%=n;j=(j+s)%n;swap(s, s【j】);sub_k=s((s+s【j】)%n);} 得到的子密碼sub_k用以和明文進(jìn)行xor運(yùn)算,得到密文,解密過程也完全相同。
由于RC4算法加密是采用的xor,所以,一旦子密鑰序列出現(xiàn)了重復(fù),密文就有可能被破解。關(guān)于如何破解xor加密,請(qǐng)參看Bruce Schneier的Applied Cryptography一書的1.4節(jié)Simple XOR,在此我就不細(xì)說了。那么,RC4算法生成的子密鑰序列是否會(huì)出現(xiàn)重復(fù)呢?由于存在部分弱密鑰,使得子密鑰序列在不到100萬字節(jié)內(nèi)就發(fā)生了完全的重復(fù),如果是部分重復(fù),則可能在不到10萬字節(jié)內(nèi)就能發(fā)生重復(fù),因此,推薦在使用RC4算法時(shí),必須對(duì)加密密鑰進(jìn)行測(cè)試,判斷其是否為弱密鑰。 而且,根據(jù)目前的分析結(jié)果,沒有任何的分析對(duì)于密鑰長(zhǎng)度達(dá)到128位的RC4有效,所以,RC4是目前最安全的加密算法之一,大家可以放心使用!
抱歉,此頁面的內(nèi)容受版權(quán)保護(hù),復(fù)制需扣除次數(shù),次數(shù)不足時(shí)需付費(fèi)購買。
如需下載請(qǐng)點(diǎn)擊:點(diǎn)擊此處下載
掃碼付費(fèi)即可復(fù)制
阿里巴巴 | MBLU | MFLU | MTNB | MNET | MMPU | MNLU | MG1O | MHRU | 短信貓 | TTL | 宏分集 |
移動(dòng)通信網(wǎng) | 通信人才網(wǎng) | 更新日志 | 團(tuán)隊(duì)博客 | 免責(zé)聲明 | 關(guān)于詞典 | 幫助