林鑾云
(瑞芯微電子股份有限公司,福建 福州 350000)
計算機網(wǎng)絡(luò)在很大程度上改變了現(xiàn)代人的生活方式,但人們在使用計算機軟件時經(jīng)常會遇到個人信息泄露或重要文件被盜取等安全問題,數(shù)據(jù)加密技術(shù)的出現(xiàn)讓這一問題得到了有效解決。數(shù)據(jù)加密技術(shù)是一種專門用來保護網(wǎng)絡(luò)信息數(shù)據(jù)不被盜取或篡改的強有力安全措施,它通過特定的加密算法對文件賦予了超高的加密與解密能力,在很大程度上提高了密碼被破譯的難度。
計算機軟件在使用的過程中,由于某些數(shù)據(jù)、命令或程序的入侵,會造成計算機軟件無法正常運行,而入侵計算機系統(tǒng)導致系統(tǒng)癱瘓的這些數(shù)據(jù)、命令或程序就被稱為計算機“病毒”。計算機“病毒”自身的特性有很多,包括潛伏性、針對性、隱蔽性、傳染性、破壞性以及可執(zhí)行性。計算機“病毒”實質(zhì)上就是一種程序和指令,它們在計算機上可以大量自我復制,破壞性極強。
隨著互聯(lián)網(wǎng)技術(shù)與信息技術(shù)的高度發(fā)展,“黑客”集團所掌握的計算機技術(shù)水平遠遠高于普通用戶,人們已經(jīng)無法運用傳統(tǒng)的計算機安全軟件去抵御“黑客”的攻擊??偟膩砜?,“黑客”對網(wǎng)民的攻擊往往存在著一定的目的性,他們不僅是要竊取用戶的個人信息,更是為了盜取用戶賬戶里的財產(chǎn),對用戶的經(jīng)濟利益造成了嚴重威脅。“黑客”攻擊在情節(jié)嚴重時,甚至會波及整個局域網(wǎng)的安全系統(tǒng),進而使更多的用戶遭到攻擊。
“木馬”實質(zhì)上也是一種程序,其性質(zhì)與計算機病毒相類似,但在攻擊方式上與計算機病毒有所不同。“木馬”通常是偽裝成對話框或者游戲來引誘用戶點擊進去,讓用戶完全沒有任何防備。正是由于“木馬”具有偽裝性特點,才會導致用戶一不小心就會將其誤點。這時“木馬”就會潛伏于一個計算機軟件內(nèi),該軟件會在用戶打開計算機時自動啟動[1]。啟動過后,“木馬”程序就會將用戶的IP地址以及預(yù)先設(shè)定的端口告知給攻擊者。攻擊者一旦接收到這些信息,就會通過遠程操控來修改計算機軟件用戶所設(shè)置的參數(shù),從而暗自盜取用戶電腦內(nèi)的重要文件和數(shù)據(jù)。
數(shù)據(jù)加密標準(Data Eneryption Standard,DES)算法是一種非常典型的對稱加密算法,其工作原理按照分組的方式進行,通過“替換”與“換位”這兩種加密組塊方法的循環(huán)使用,完成對計算機軟件加密的過程。DES由于算法速度快,其密鑰較為簡短,因此成為當下使用廣泛的一種加密標準。下面對DES算法的工作原理展開詳細分析。
首先,DES加密算法將輸入的明文劃分為64位數(shù)據(jù)組塊。其次,對其進行加密。密鑰的長度為64位,其中,包含56位有效密鑰,另外8位用于奇偶校驗。DES加密算法的加密過程可表示為:64位明文→初始置換→16輪迭代變換→逆置換→64位密文。先將64位明文數(shù)據(jù)組塊進行一個初始置換(記為IP);再將其平均分成左右兩個部分,每一部分均為32位數(shù)據(jù);最后在密鑰的控制下,進入到16輪迭代變換中。在這一環(huán)節(jié),所有輪次的迭代變換都要先將輸入的右半部分32位數(shù)據(jù)擴展為48位,再與通過64位密鑰而產(chǎn)生的48位的某一子密鑰進行異或運算;利用S盒將所得到的48位數(shù)據(jù)結(jié)果壓縮成為32位,對這32位數(shù)據(jù)進行置換,再與輸入的左半部分32位數(shù)據(jù)展開異或運算,進而得出新一輪迭代變換的右半部分數(shù)據(jù)[2]。與此同時,將此輪迭代輸入數(shù)據(jù)的右半部分作為該輪迭代輸出數(shù)據(jù)的左半部分。這樣一來,一輪的迭代過程就此完成。經(jīng)過16輪的迭代變換后,會生成一個新的64位數(shù)據(jù)。值得注意的是,最后一輪迭代之后得到的結(jié)果其左半部分與右半部分不再進行變換。這是為了讓加密與解密能夠運用同一個算法。最后,對64位的新數(shù)據(jù)進行一次逆置換(記為IP-1),進而得到最終的64位密文。
綜上所述,16輪迭代變換是DES算法的核心內(nèi)容,其中每一輪迭代變換后的左、右半部輸出為:
Li=Ri-1
Ri=Li-1⊕f(Ri-1,ki)
其中,i代表迭代輪次;⊕代表按位異或運算;f所表示的內(nèi)容包括密鑰產(chǎn)生、擴展變換E,S盒壓縮置換運算P等在內(nèi)的一系列加密運算。
運用數(shù)學符號可將整個DES算法的加密過程進行如下表示:
L0R0←IP(<64bit明文>)
Li←Ri-1
Ri←Li-1⊕f(Ri-1,ki)
<64bit密文>←IP-1(R16L16)
其中,i=1,2,3…16。
DES算法的解密與加密過程基本上沒有明顯的區(qū)別,其根本不同點就在于16輪的迭代變換中,解密過程所使用的子密鑰正好與加密過程相反。也就是說,解密時第1輪迭代所使用的子密鑰是加密時最后一輪的子密鑰,第2輪迭代所使用的子密鑰是加密時第15輪的子密鑰,……最后一輪迭代所使用的子密鑰是加密時的第1輪子密鑰。
公開密鑰的加密密鑰與解密密鑰是完全不相同的,無法在加密密鑰的基礎(chǔ)上得出解密密鑰。公開密鑰的加密密鑰是公開可見的,可以通過相應(yīng)的公開文檔查找到,而解密密鑰是保密的,必須擁有解密密鑰權(quán)限才能破解密碼。因此,加密密鑰也叫做公鑰(Public Key),解密密鑰也叫做私鑰(Private Key)。計算機用戶只要將自己的私鑰保存好就可以,無需對公鑰進行保密。由于任何使用公鑰的用戶都可以通過公開渠道獲得公鑰,因此這里不會出現(xiàn)對稱加密算法中的密鑰傳送問題。用戶之間的通信采用多少公鑰算法,就有多少密鑰與之相對。公開密鑰與對稱加密算法相比,在管理上要更加簡便。
2.2.1 RSA算法的工作原理
公開密鑰中第一個被提出的就是RSA算法,它是目前功能最完善的一種公開密鑰算法。RSA算法可以同時進行加密以及數(shù)宇簽名,并且可以有效防止密碼受到攻擊,RSA算法可以作為公開密鑰的數(shù)據(jù)加密標準[3]。RSA算法的基礎(chǔ)非常簡單,可以讓兩個質(zhì)數(shù)自由地相乘。但由于當時就分解其乘積較為困難,因此將乘積公開設(shè)為加密密鑰。RSA算法具有高度的安全性,它的公鑰與私鑰是一對質(zhì)數(shù)的函數(shù)。從一個公鑰和密文中將明文恢復的難度相當于分解這兩個質(zhì)數(shù)的乘積之難度。下面通過舉例說明來分析RSA算法的基本工作原理。
用戶任選兩個質(zhì)數(shù),假設(shè)所選質(zhì)數(shù)為u=7,v=17。計算得出n=u×v=7×17=119,將n的結(jié)果公開。
利用歐拉函數(shù)計算u的值:
Φ(n)=(u-1)×(v-1)=6×16=96
從1到Φ(n)之間任選一個與Φ(n)互質(zhì)的數(shù)k作為公鑰,此處將其設(shè)為5。
用j代表解密密鑰,使得(j×k)modΦ(n)=1,則可得出j的值為77。
丟棄u=7和v=17,公開n=119和k=5,使其成為公鑰;對j=77進行保密,將其作為私鑰。如此一來,便可使用公鑰將所傳送的信息加密,若信息接收者有私鑰,便可以讓信息得以解密。
例:若所傳信息為t=19,則可計算出如下相應(yīng)密文:
e=tkmod(n)=195mod(119)=66
將密文66發(fā)送給接接受者,接收者可根據(jù)收到的密文信息用私鑰將明文恢復:
t=ejmod(n)=6677mod(119)=19
上述,所舉例子中的兩個質(zhì)數(shù)u與v的數(shù)值不是很大,但從中可以看出,通過u與v從而計算得出n值的過程并不復雜,通過n=119得出u=7,v=17則具有一定的困難。筆者在實際的應(yīng)用過程中,所用到的u與v都會是較大的上百位的十進制質(zhì)數(shù),那樣一來,從n找出u,v的值就會難上加難,幾乎不可能破解。因此,該算法的運算過程其實是單方向的,這樣的運算特性也讓RSA算法具有了更高的安全性。
2.2.2 公開密鑰算法在網(wǎng)絡(luò)安全中的應(yīng)用
(1)混合加密系統(tǒng)。公開密鑰算法與對稱加密算法相比之下的優(yōu)勢是無需對加密密鑰與解密密鑰同步進行保密,所以在保障網(wǎng)絡(luò)安全中得到了更加廣泛的應(yīng)用。然而,RSA算法的公開密鑰算法也存在一定的缺點,如公鑰算法較為復雜[4]。在對信息進行加密與解密時,因為會涉及大數(shù)字的冪運算,其中的運算量通常會高過對稱加密算法成百上千甚至上萬倍,所以該算法的加密與解密在速度上要比對稱加密算法慢得多。由此可以得出,用戶通過網(wǎng)絡(luò)上傳信息時,尤其是信息量較大的時候,通常不需要使用公開密鑰算法進行加密,而是建立混合加密系統(tǒng)來對信息進行加密。在混合加密系統(tǒng)中,運用對稱加密算法(通常是DES算法)對需要傳送的信息進行加密與解密;同時,運用公開密鑰算法(通常是RSA算法)再為對稱加密算法加一層密鑰。如此一來,便可充分發(fā)揮這兩種加密算法各自的優(yōu)勢。在綜合兩種加密算法的體系下,不僅提高了信息加密與解密的速度,也讓對稱加密算法對密鑰能夠進行有效管理與保存,這是當前解決網(wǎng)絡(luò)信息傳輸安全問題非常有效且實用的一種方式。
(2)數(shù)字簽名。用戶通過互聯(lián)網(wǎng)進行信息的傳輸不同于傳統(tǒng)的紙質(zhì)書信,不具有在其上面簽名或加蓋印章的功能。因此,人們經(jīng)常會遇到以下這些情況:信息發(fā)送者對自己發(fā)送的信息不承認;信息接收者肆意篡改收到的信息或者偽造一份虛假文件,誣陷是對方傳送的等?;谝陨线@些問題的頻發(fā),數(shù)字簽名可以有效解決網(wǎng)絡(luò)信息傳送的身份驗證問題。一個功能完備的數(shù)字簽名系統(tǒng)應(yīng)具備解決以下問題的功能:其一,信息接收者能夠?qū)π畔l(fā)送者在文件上的簽名加以核實,若雙方對于簽名的真?zhèn)未嬖诋愖h,那么第三方應(yīng)該可以通過進一步驗證簽名的真?zhèn)蝸泶_定事實;其二,信息發(fā)送者在文件發(fā)送完成后必須承認自己對文件的簽名;其三,只有信息發(fā)送者可以簽名,其他任何人皆不可偽造簽名,當然更不能偽造或篡改傳送的信息。數(shù)字簽名技術(shù)必須同時滿足以上三點內(nèi)容,才能高效解決網(wǎng)絡(luò)信息傳輸過程中產(chǎn)生的身份驗證問題。
數(shù)字簽名技術(shù)是基于密碼技術(shù)而生成的,所以它的安全性取決于密碼系統(tǒng)的安全性?,F(xiàn)如今,用戶廣泛使用公鑰加密算法(RSA算法)讓數(shù)字簽名得以實現(xiàn)[5]。數(shù)字簽名技術(shù)的工作原理如下:
筆者設(shè)定M為信息發(fā)送者,他需要將一個文件A發(fā)送給信息接收者N,A通過私鑰SKM對文件A進行解密運算,并對文件進行簽名,而后將運算結(jié)果PSKM(A)發(fā)送給N。當接收者N收到來自M的PSKM(A)后,就可以運用已知M的公鑰PKM對文件進行加密運算,從而得出D=(ESKM(A)),最后核實并簽名。
下面對上述流程進一步分析:
(1)因為只有M知道自己的私鑰SKM,其他人均不知,所以也只有M可以將PSKM(A)生成。因此,接收者N自然也就相信文件PSKM(A)是通過M的簽名后所發(fā)送的。
(2)若M不承認文件A是自己傳送給N的,則N可將文件A以及PSKM(A)展示給第三方。此時,第三方運用已知的M的公鑰SKM就可以很容易地判斷出文件A是否為M所發(fā)送。
(3)若接收者N想要竄改文件A或偽造一份虛假文件B,那么N將不能將PSKM(B)出示給第三方,此時就可以證明該文件是N偽造的。
以上整個過程只是信息發(fā)送者M對文件A進行數(shù)字簽名的實現(xiàn),并沒有對文件A進行加密,倘若文件PSKM(A)被他人在途中截獲,而且知悉了發(fā)送者M的身份,那么他通過查閱相關(guān)文檔便可得到M的公鑰,即PKM,進而獲取到文件A的全部內(nèi)容。
為了給文件A加密,用戶可以通過以下模型來實現(xiàn):在發(fā)送文件PSKM(A)前,需利用接收者N的公鑰PKN給文件加密;當N接收到文件后,先用自己的私鑰SKN解密文件,再對簽名進行驗證。由此一來,便可實現(xiàn)簽名與加密的同步效果。
當前,我國計算機用戶對數(shù)字簽名技術(shù)的應(yīng)用越來越普遍,尤其體現(xiàn)在一些大型的商業(yè)活動中。例如,在購物時運用電子數(shù)據(jù)交換,就會使用到數(shù)字簽名技術(shù)。我國的一些國有銀行系統(tǒng)中,數(shù)字簽名技術(shù)也被廣泛地應(yīng)用,通過數(shù)字簽名來驗證用戶的身份信息十分方便。如今,計算機網(wǎng)絡(luò)已普及到千家萬戶,計算機軟件的使用會不斷增加,數(shù)字簽名終將會成為人們?nèi)粘I畈豢扇鄙俚囊豁椉夹g(shù)。
隨著數(shù)據(jù)加密技術(shù)在計算機軟件用戶中的不斷普及,計算機“病毒”“黑客”“木馬”等攻擊造成的用戶信息泄露、文件數(shù)據(jù)丟失等現(xiàn)象逐漸降低,也大大提高了互聯(lián)網(wǎng)信息傳輸?shù)男省R虼?,人們在使用計算機常規(guī)軟件或使用殺毒軟件以及反病毒軟件時,一定要對數(shù)據(jù)加密技術(shù)加以運用,為信息的傳送創(chuàng)造一個安全、可靠的環(huán)境。