本發(fā)明涉及數(shù)據(jù)加密領(lǐng)域,具體涉及一種重復(fù)長數(shù)據(jù)加密傳輸?shù)姆椒跋到y(tǒng)。
背景技術(shù):
隨著計算機(jī)通信技術(shù)的高速發(fā)展,越來越多的重要信息會選擇通過網(wǎng)絡(luò)來 進(jìn)行傳輸,因此,如何保障通信數(shù)據(jù)在網(wǎng)絡(luò)中進(jìn)行傳遞的安全性已成為了人們 重點關(guān)注的網(wǎng)絡(luò)安全問題之一,且以加密為手段的信息安全技術(shù)成為了網(wǎng)絡(luò)安 全的核心研究點。
在數(shù)據(jù)加密傳輸技術(shù)中,RSA算法和數(shù)據(jù)加密標(biāo)準(zhǔn)(data encryption standard,DES)算法得到了廣泛應(yīng)用,在上述加密算法中,RSA算法雖然形式簡單且保密性強(qiáng),但是其加解密速度比較慢,如果通過RSA算法為整個報文進(jìn)行加解密則效率極低,無法滿足實際需求,因此不適用于加密信息內(nèi)容比較長的報文;DES算法雖然加解密的速度比較快,但是其密鑰分配過程比較復(fù)雜,且加密算法安全性低于RSA算法,不適用于加密信息非常重要的報文。并且在加密過程中使用壓縮算法壓縮特定類型的數(shù)據(jù),使用有針對性的策略可以提高壓縮效率和性能,但是如果數(shù)據(jù)包含很長的重復(fù)數(shù)據(jù),那么運(yùn)用RLE策略,壓縮效率和性能得到更好的提高。
技術(shù)實現(xiàn)要素:
本發(fā)明實施例的目的在于提供一種重復(fù)長數(shù)據(jù)加密傳輸?shù)姆椒ā?/p>
為實現(xiàn)上述目的,本發(fā)明所采用的技術(shù)方案是:
一種重復(fù)長數(shù)據(jù)加密傳輸?shù)姆椒?,所述方法包括以下步驟:
(1)服務(wù)器接收并檢測來自客戶端的登錄報文,包括客戶端的用戶名、密碼、時間戳和RSA公鑰。
(2)服務(wù)器動態(tài)生成數(shù)據(jù)加密算法DES密鑰,并用來自客戶端動態(tài)生成的 RSA公鑰為所述DES密鑰加密,生成RSA加密密文。
(3)客戶端將接收到的所述RSA加密密文解密,獲取所述DES密鑰。
(4)客戶端清空RSA密鑰對。
(5)利用RLE算法壓縮服務(wù)器和客戶端之間傳送的報文,并用所述DES密鑰對壓縮后的報文加密處理。
(6)客戶端/服務(wù)器用所述DES密鑰對接收到的報文進(jìn)行解密,并用RLE算法對解密后的報文進(jìn)行解壓縮。
所述步驟(1)的具體實現(xiàn)方法為:服務(wù)器接收并檢測來自客戶端的用 戶名、密碼、時間戳和RSA公鑰;當(dāng)用戶名和密碼均正確且時間戳標(biāo)示為當(dāng)前時間時,則執(zhí)行步驟(2)。
所述登錄報文中的時間戳和密碼用消息摘要SHA算法加密。
所述步驟(4)中RSA密鑰對包括所述RSA公鑰及其相應(yīng)的 RSA私鑰。
本發(fā)明還提供一種重復(fù)長數(shù)據(jù)加密傳輸?shù)南到y(tǒng),包括服務(wù)器和至少一個客戶端,所述服務(wù)器包括DES密鑰生成模塊,用于動態(tài)生成DES密鑰;
RSA加密模塊,用于采用來自所述客戶端動態(tài)生成的RSA公鑰為所述DES 密鑰加密,生成RSA加密密文;
第一報文發(fā)送模塊,用于利用RLE算法為報文進(jìn)行壓縮,并利用所述DES 密鑰為壓縮后的報文進(jìn)行加密后發(fā)送給客戶端;
所述客戶端包括DES密鑰獲取模塊,用于將接收到的所述RSA加密密文解密,獲取所述 DES密鑰;
第二報文發(fā)送模塊,用于利用RLE算法為報文進(jìn)行壓縮,并利用所述DES 密鑰為壓縮后的報文進(jìn)行加密后發(fā)送給所述服務(wù)器。
所述服務(wù)器還包括登錄報文檢測模塊,用于接收來自客戶端的登錄報文,并檢測所述登錄報文中的用戶名和密碼是否正確且時間戳是否標(biāo)示為當(dāng)前時間。
所述所述客戶端還包括RSA密鑰對清空模塊,用于在獲取了所述DES密鑰后,清空RSA密鑰對。
所述所述客戶端還包括第一解密模塊,用于利用所述DES密鑰對接收到的報文進(jìn)行解密,并利用RLE算法對解密后的報文進(jìn)行解壓縮。
所述所述服務(wù)器還包括第二解密模塊,用于利用所述DES密鑰對接收到的報文進(jìn)行解密,并用RLE算法對解密后的報文進(jìn)行解壓縮。
本發(fā)明采用了RSA與DES加密算法相結(jié)合的方法,用DES 算法為報文進(jìn)行加密,同時用RSA算法為DES密鑰進(jìn)行加密,從而結(jié)合了DES 算法加解密速度快的優(yōu)勢和RSA算法安全性高的優(yōu)勢,并且在加密過程中使用壓縮算法壓縮特定類型的數(shù)據(jù),使用有針對性的策略可以提高壓縮效率和性能,但是如果數(shù)據(jù)包含很長的重復(fù)數(shù)據(jù),那么運(yùn)用RLE策略,壓縮效率和性能得到更好的提高。
附圖說明
圖1為本發(fā)明實施例提供的系統(tǒng)的網(wǎng)絡(luò)結(jié)構(gòu)圖。
圖2為本發(fā)明實施例提供的方法流程圖。
圖3為本發(fā)明實施例提供的系統(tǒng)結(jié)構(gòu)圖。
具體實施方式
為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點更加清楚明白,以下結(jié)合附圖及實施例,對本發(fā)明進(jìn)行進(jìn)一步詳細(xì)說明。
實施例1
如圖1所示,一種重復(fù)長數(shù)據(jù)加密傳輸?shù)南到y(tǒng)由服務(wù)器1和至少一個客戶端2構(gòu)成,且服務(wù)器1和客戶端2間基于TCP協(xié)議進(jìn)行網(wǎng)絡(luò)通信,能夠?qū)崿F(xiàn)相互的數(shù)據(jù)傳輸。本發(fā)明提供的所有實施例也均適用于基于UDP協(xié)議進(jìn)行的網(wǎng)絡(luò)通信,由于UDP協(xié)議沒有服務(wù)器與客戶端的概念,因此當(dāng)基于UDP協(xié)議進(jìn)行網(wǎng)絡(luò)通信時,登錄方與被登錄方分別作為虛擬的客戶端與服務(wù)器,實現(xiàn)與基于TCP協(xié)議通信的客戶端與服務(wù)器相同的作用。
如圖2所示,一種重復(fù)長數(shù)據(jù)加密傳輸?shù)姆椒?,實現(xiàn)流程如下:
(1)客戶端動態(tài)生成RSA密鑰對,所述密鑰對包括RSA公鑰及其相應(yīng)的RSA 私鑰。
在本實施例中,由于客戶端動態(tài)生成的是RSA算法的密鑰,因此,生成的密鑰為兩個,一個為RSA公鑰,即公共密鑰,一個為RSA私鑰,即私有密鑰,在實際的加解密過程中,RSA公鑰是由其主人公開的,加密方單獨地利用RSA 公鑰進(jìn)行加密,而RSA私鑰需要保密存放,專門用于對經(jīng)過加密的RSA密文進(jìn)行解密。
(2)客戶端將生成的RSA公鑰發(fā)送至服務(wù)器。
在本實施例中,客戶端生成的RSA密鑰以登錄報文的形式進(jìn)行封裝后發(fā)送給服務(wù)器。本發(fā)明的一個實施例,登錄報文由客戶端生成,還可以包含客戶端的用戶名、密碼和時間戳。在本實施例中,用戶名和密碼用于標(biāo)示客戶端的合法性,而時間戳用于標(biāo)示服務(wù)器接收到該登錄報文的時間,而其中,密碼和時間戳均用消息摘要算法SHA進(jìn)行加密。相應(yīng)地,當(dāng)?shù)卿泩笪陌丝蛻舳说挠脩裘?、密碼和時間戳?xí)r,服務(wù)端在 接收到登錄報文之后,首先需要判斷其中的用戶名和密碼是否正確,同時,還 需要檢測其中的時間戳是否標(biāo)示為當(dāng)前時間,如果是,則執(zhí)行下一步驟。
(3)服務(wù)器動態(tài)生成DES密鑰,并用接收到的來自客戶端的RSA公鑰為動 態(tài)生成的DES密鑰加密,從而生成RSA加密密文。
(4)服務(wù)器將生成的RSA加密密文發(fā)送至客戶端。
(5)客戶端利用RSA私鑰對接收到的RSA加密密文進(jìn)行解密,從而獲取到 服務(wù)器動態(tài)生成的DES密鑰。
此時,客戶端和服務(wù)端均獲取到了用于加密發(fā)送報文的DES密鑰。
同時,作為本發(fā)明的一個實施例,當(dāng)客戶端利用RSA私鑰解密從而獲取到 用于加解密報文的DES密鑰后,會對當(dāng)前的RSA密鑰對進(jìn)行清空,以方便下一次動態(tài)生成新的RSA密鑰對,提高了數(shù)據(jù)傳輸?shù)陌踩浴?/p>
(6)服務(wù)器利用DES密鑰為需要發(fā)送的報文進(jìn)行加密后發(fā)送給客戶端,或者客戶端利用獲取到的DES密鑰為需要發(fā)送的報文進(jìn)行加密后發(fā)送給服務(wù)器。
在本實施例中,由于DES算法的加解密速度比較快,因此,對于信息內(nèi)容 相對較長的報文來說,采用DES算法進(jìn)行加解密,能夠提高數(shù)據(jù)傳輸和數(shù)據(jù)處理的效率。
在服務(wù)器或者客戶端接收到對方發(fā)送過來的加密報文之后,同樣利用獲取 到的DES密鑰為加密報文進(jìn)行解密,從而獲取到實際報文。
作為本發(fā)明的一個實施例,在服務(wù)器或者客戶端對需要發(fā)送的報文進(jìn)行加 密之前,可以先采用RLE算法對報文進(jìn)行壓縮,而當(dāng)客戶端或者服務(wù)器將接收到的報文進(jìn)行解密之后,同樣利用RLE算法對該報文進(jìn)行解壓縮,由此,使得進(jìn)行傳輸?shù)臄?shù)據(jù)為經(jīng)過壓縮的數(shù)據(jù),以提高數(shù)據(jù)傳輸?shù)男省?/p>
如圖3所示,一種重復(fù)長數(shù)據(jù)加密傳輸?shù)南到y(tǒng),其中服務(wù)器10包括:DES密鑰生成模塊11,動態(tài)生成DES密鑰。
RSA加密模塊12,采用來自所述客戶端動態(tài)生成的RSA公鑰為所述DES 密鑰加密,生成RSA加密密文。
第一報文發(fā)送模塊13,利用所述DES密鑰為報文進(jìn)行加密后發(fā)送給客戶端。
客戶端3包括:DES密鑰獲取模塊6,將接收到的所述RSA加密密文解密,獲取所述DES密鑰。
第二報文發(fā)送模塊8,利用所述DES密鑰為報文進(jìn)行加密后發(fā)送給所述服務(wù)器。
客戶端3還包括:登錄報文生成模塊4,生成包括了客戶端3的用戶名、密碼、時間戳和動態(tài)生成的RSA密鑰對的登錄報文。
服務(wù)器10還包括:登錄報文檢測模塊9,接收來自客戶端3的登錄報文,并檢測登錄報文中的用戶名和密碼是否正確且時間戳是否標(biāo)示為當(dāng)前時間。
當(dāng)DES密鑰獲取模塊6獲取到服務(wù)器10動態(tài)生成的DES密鑰后,客戶端3還包括了:RSA密鑰對清空模塊5,在獲取了所述DES密鑰后,清空RSA密鑰對。
在客戶端3或者服務(wù)器10接收到對方發(fā)送來的加密報文之后,客戶端3還包括:第一解密模塊7,利用DES密鑰對接收到的報文進(jìn)行解密。
服務(wù)器10還包括:第二解密模塊14,利用所述DES密鑰對接收到的報文進(jìn)行解密。