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