網(wǎng)絡(luò)高效安全數(shù)據(jù)傳輸方法設(shè)計(jì)
摘要:現(xiàn)行的網(wǎng)絡(luò)安全傳輸方案中經(jīng)典的方法分為對(duì)稱加密和非對(duì)稱加密2種。對(duì)稱加密運(yùn)算速度快但容易被攻擊和破解;非對(duì)稱加密算法復(fù)雜,不易被破解,但加密速度慢,不適宜傳輸大量的安全數(shù)據(jù)。通過對(duì)哈夫曼壓縮方法研究可知,不同的數(shù)據(jù)文件經(jīng)過哈夫曼壓縮后可形成不同的少量數(shù)據(jù)的哈夫曼壓縮編碼表和壓縮文件。通過對(duì)哈夫曼編碼表進(jìn)行非對(duì)稱加密設(shè)計(jì)的方案,可以減少非對(duì)稱加密算法加密的字節(jié)數(shù),實(shí)現(xiàn)大數(shù)據(jù)量文件的非對(duì)稱加密。同時(shí)通過對(duì)大數(shù)據(jù)文件的壓縮,可以減少整個(gè)文件大小,提高網(wǎng)絡(luò)傳輸效率。該方案已在多個(gè)網(wǎng)絡(luò)安全傳輸項(xiàng)目中得到應(yīng)用,完全能夠滿足網(wǎng)絡(luò)傳輸安全要求。
關(guān)鍵詞:對(duì)稱加密;非對(duì)稱加密;哈夫曼編碼;RSA
近年來,隨著計(jì)算機(jī)和網(wǎng)絡(luò)技術(shù)的迅速發(fā)展,越來越多的社會(huì)團(tuán)體、機(jī)關(guān)、企事業(yè)單位建立了計(jì)算機(jī)網(wǎng)絡(luò),人們更多的將社會(huì)活動(dòng)、辦公以及科研等各個(gè)方面活動(dòng)的重心轉(zhuǎn)移到了網(wǎng)絡(luò)當(dāng)中,形成了由局域網(wǎng)絡(luò)為節(jié)點(diǎn)組成的龐大的互聯(lián)網(wǎng)絡(luò)。在互聯(lián)網(wǎng)絡(luò)節(jié)點(diǎn)之間越來越多的數(shù)據(jù)交換任務(wù)需要完成,以實(shí)現(xiàn)計(jì)算機(jī)軟、硬件資源和信息資源的共享。在互聯(lián)網(wǎng)絡(luò)這種開放系統(tǒng)中進(jìn)行數(shù)據(jù)交換,對(duì)于安全級(jí)別要求較高的數(shù)據(jù),傳輸過程中的數(shù)據(jù)安全是至關(guān)重要的。
網(wǎng)絡(luò)數(shù)據(jù)傳輸安全的核心是通過對(duì)數(shù)據(jù)發(fā)送、網(wǎng)絡(luò)傳輸、數(shù)據(jù)接收各個(gè)環(huán)節(jié)中的數(shù)據(jù)進(jìn)行加密處理,以達(dá)到實(shí)現(xiàn)數(shù)據(jù)安全的目的。保護(hù)在公用網(wǎng)絡(luò)信息系統(tǒng)中傳輸、交換和存儲(chǔ)的數(shù)據(jù)的保密性、完整性、真實(shí)性、可靠性、可用性和不可抵賴性等。而加密技術(shù)則是數(shù)據(jù)傳輸安全的核心。它通過加密算法將數(shù)據(jù)從明文加密為密文并進(jìn)行通信,密文即使被黑客截取也很難被破譯,然后通過對(duì)應(yīng)解碼技術(shù)解碼密文還原明文。
目前國(guó)際上通用的加密方法主要有對(duì)稱加密和不對(duì)稱加密,不同的加密方法有不同的特點(diǎn),在數(shù)據(jù)傳輸高安全性要求比較高的網(wǎng)絡(luò)系統(tǒng)中得到了普遍采用,例如電子商務(wù)、郵件傳輸?shù)确矫妗?br />
1 加密算法的現(xiàn)狀
密碼學(xué)是為了保證在發(fā)送者和接收者之間傳遞的數(shù)據(jù)不被第三者獲得而對(duì)要傳遞的數(shù)據(jù)進(jìn)行加密使其獲得保密的科學(xué)。通常將傳遞的數(shù)據(jù)稱為明文,為了保護(hù)明文,以將其通過某種方式變換成無法識(shí)別的密文,這個(gè)變換過程稱為加密;另一方面密文可以通過相應(yīng)的逆變換再還原成明文,這個(gè)過程稱為解密。
加密算法可以看作是一個(gè)復(fù)雜的函數(shù)變換:
C=F(M,Key)
式中:C代表密文,即加密后得到的字符序列;M代表明文,即待加密的字符序列;Key表示密鑰,是秘密選定的一個(gè)字符序列。
當(dāng)加密完成后,可以將密文通過不安全渠道送給數(shù)據(jù)接收人,只有擁有解密密鑰的數(shù)據(jù)接收人才可以對(duì)密文進(jìn)行解密,即反變換得到明文。密鑰的傳遞必須通過安全渠道。
目前通用的加密算法主要分為對(duì)稱和非對(duì)稱算法。對(duì)稱算法采用相同的密鑰進(jìn)行加密和解密。常用的對(duì)稱加密算法有AES、IDEA、RC2/RC4、DES 等,其最大的困難是密鑰分發(fā)問題,必須通過當(dāng)面或在公共傳送系統(tǒng)中使用安全的方法交換密鑰。對(duì)稱加密由于加密速度快、硬件容易實(shí)現(xiàn)、安全強(qiáng)度高,因此仍被廣泛用來加密各種信息。但對(duì)稱加密也存在著固有的缺點(diǎn):密鑰更換困難,經(jīng)常使用同一密鑰進(jìn)行數(shù)據(jù)加密,給攻擊者提供了攻擊密鑰的信息和時(shí)間。非對(duì)稱算法,采用公鑰進(jìn)行加密而利用私鑰進(jìn)行解密。公鑰是可以公開的,任何人都可以獲得,數(shù)據(jù)發(fā)送人用公鑰將數(shù)據(jù)加密后再傳給數(shù)據(jù)接收人,接收人用自己的私鑰解密。非對(duì)稱加密的安全性主要依賴難解的數(shù)學(xué)問題,密鑰的長(zhǎng)度比對(duì)稱加密大得多,因此加密效率較低,主要使用在身份認(rèn)證、數(shù)字簽名等領(lǐng)域。非對(duì)稱加密的加密速度慢,對(duì)于大量數(shù)據(jù)的加密傳輸是不適合的。非對(duì)稱加密算法包括RSA、DH、EC、DSS等。目前比較流行的、最有名的非對(duì)稱加密算法是RSA。
RSA的安全性在于大整數(shù)因子分解的難度,其體制構(gòu)造是基于數(shù)論的歐拉定理,產(chǎn)生公開密鑰和秘密密鑰的方法為:
(1)取2個(gè)互異的大素?cái)?shù)p和q;
(2)計(jì)算n=p×q;
(3)隨機(jī)選取整數(shù)e,且e與(p-1)×(q-1)互為素?cái)?shù);
(4)另找一個(gè)數(shù)d,使其滿足(e×d)mod[(p-1)×(q-1)]=1;(n,e)即為公鑰;(n,d)為私鑰。對(duì)于明文M,用公鑰(n,e)加密可得到密文C,C=Me mod n;對(duì)于密文C,用私鑰(n,d)解密可得到明文M,M=Cd mod n。
利用當(dāng)今可預(yù)測(cè)的計(jì)算能力,在十進(jìn)制下,分解2個(gè)250位質(zhì)數(shù)的積要用數(shù)十萬年的時(shí)間,并且質(zhì)數(shù)用盡或2臺(tái)計(jì)算機(jī)偶然使用相同質(zhì)數(shù)的概率小到可以被忽略。由此可見,企圖利用公鑰和密文推斷出明文或者企圖利用公鑰推斷出私鑰的難度極其巨大,幾乎是不可行的。因此,這種機(jī)制為信息傳輸提供了很高的安全保障。
由上述內(nèi)容可以發(fā)現(xiàn),無論是對(duì)稱加密和非對(duì)稱加密的過程都是完成如下的過程:
(1)產(chǎn)生密鑰key;
(2)C=F(M,Key),即使用已經(jīng)產(chǎn)生的密鑰,通過加密算法將明文轉(zhuǎn)換為密文。
(3)數(shù)據(jù)傳輸;
(4)M=F’(C,key),即接收方使用解密算法,將密文轉(zhuǎn)換為明文。
如果需要傳輸?shù)拿魑臄?shù)據(jù)龐大,則加密和解密的算法的耗時(shí)將非常長(zhǎng),并且數(shù)據(jù)傳輸時(shí)也會(huì)占用大量的網(wǎng)絡(luò)資源。也就是以上的(2),(3),(4)三個(gè)過程都會(huì)占用大量的時(shí)間和資源,如果能夠降低這3個(gè)過程的時(shí)間,就會(huì)節(jié)省大量的資源,提高數(shù)據(jù)傳輸?shù)男?。通過使用哈夫曼編碼對(duì)文件進(jìn)行壓縮,就可以大大降低以上3個(gè)環(huán)節(jié)的處理時(shí)間,并同時(shí)在傳輸處理過程中減少計(jì)算機(jī)資源和網(wǎng)絡(luò)資源的占用。
2 哈夫曼編碼介紹
哈夫曼編碼是20世紀(jì)50年代由哈夫曼教授研制開發(fā)的,它借助了數(shù)據(jù)結(jié)構(gòu)當(dāng)中的樹型結(jié)構(gòu),在哈夫曼算法的支持下構(gòu)造出一棵最優(yōu)二叉樹,把這類樹命名為哈夫曼樹。因此,準(zhǔn)確地說,哈夫曼編碼是在哈夫曼樹的基礎(chǔ)之上構(gòu)造出來的一種編碼形式,它的本身有著非常廣泛的應(yīng)用。
2.1 基本原理
數(shù)據(jù)能夠被壓縮的理論依據(jù)如下:
定義1 對(duì)于給定的信源和碼符號(hào)集,若有一個(gè)惟一可譯碼,其平均碼長(zhǎng)L小于所有其他惟一可譯碼,則稱這種碼為緊致碼或最佳碼。
定理1 哈夫曼編碼是緊致碼。
計(jì)算機(jī)文件是以字節(jié)為單位組成的,每個(gè)字節(jié)的取值為O~255。每個(gè)字節(jié)都看成字符,共256種字符。因此,每個(gè)字節(jié)都是以8個(gè)二進(jìn)制位的定長(zhǎng)編碼表示的。由于這種定長(zhǎng)碼也是惟一可譯碼,根據(jù)定理1有L≤8。
設(shè)某個(gè)文件有N個(gè)字節(jié)組成,則該文件總長(zhǎng)度為8N比特。如果對(duì)該文件進(jìn)行哈夫曼編碼,則該文件總長(zhǎng)度為L(zhǎng)N比特。由于L≤8,所以LN≤8。所以,只要文件滿足L8,用哈夫曼編碼總可以對(duì)其壓縮。
哈夫曼編碼是一種變長(zhǎng)編碼,即通過使用較短的碼字來給出現(xiàn)概率較高的信源符號(hào)編碼,而出現(xiàn)概率較小的信源符號(hào)用較長(zhǎng)的碼字來編碼,從而使平均碼長(zhǎng)最短,達(dá)到最佳編碼的目的。由于哈夫曼編碼只能對(duì)概率已知的信源符號(hào)編碼,因此是一種統(tǒng)計(jì)編碼。
評(píng)論