本發(fā)明涉及存儲(chǔ)系統(tǒng)數(shù)據(jù)安全技術(shù)領(lǐng)域,尤其涉及一種分布式存儲(chǔ)系統(tǒng)通信協(xié)議的加密、解密方法及裝置。
背景技術(shù):
分布式存儲(chǔ)系統(tǒng),是將數(shù)據(jù)分散存儲(chǔ)在多臺(tái)獨(dú)立的設(shè)備上。分布式存儲(chǔ)系統(tǒng)往往有多個(gè)節(jié)點(diǎn)組成,大規(guī)模分布式存儲(chǔ)會(huì)有跨機(jī)房、在公網(wǎng)上傳輸控制數(shù)據(jù)、文件數(shù)據(jù)的情況。特別是在互聯(lián)網(wǎng)環(huán)境下,會(huì)有攻擊者根據(jù)報(bào)文長(zhǎng)度推測(cè)報(bào)文內(nèi)容,進(jìn)而破解存儲(chǔ)通信裝置,截取關(guān)鍵內(nèi)容信息。如何保證在公網(wǎng)上安全、可靠傳輸數(shù)據(jù)就變成了構(gòu)建分布式存儲(chǔ)系統(tǒng)的基礎(chǔ)性問(wèn)題。
分布式存儲(chǔ)通信協(xié)議是構(gòu)成分布式存儲(chǔ)系統(tǒng)的基礎(chǔ),它保證了不同節(jié)點(diǎn)間狀態(tài)、元數(shù)據(jù)信息的一致性,提供了用戶訪問(wèn)、使用存儲(chǔ)系統(tǒng)的基本條件。但其信息內(nèi)容都暴露在公共網(wǎng)絡(luò)上,信息安全收到極大的威脅,所以必須采取一定的措施才能保證彼此間信息傳輸?shù)陌踩浴?/p>
RC4加密算法是一種對(duì)稱加密算法(Symmetric Key Encryption),它是一個(gè)可變密鑰長(zhǎng)度、面向字節(jié)操作的流密碼。流密碼也屬于對(duì)稱密碼,但與分組加密算法不同的是,流密碼不對(duì)明文數(shù)據(jù)進(jìn)行分組,而是用密鑰生成與明文一樣長(zhǎng)短的密碼流對(duì)明文進(jìn)行加密,加解密使用相同的密鑰。RC4加密算法被廣泛應(yīng)用于SSL/TLS(安全套接協(xié)議/傳輸層安全協(xié)議)標(biāo)準(zhǔn),該標(biāo)準(zhǔn)是為網(wǎng)絡(luò)瀏覽器和服務(wù)器間通信而制定的。
RC4加密算法特點(diǎn):(1)算法簡(jiǎn)潔易于軟件實(shí)現(xiàn),加密速度快,安全性比較高;(2)密鑰長(zhǎng)度可變,一般用256個(gè)字節(jié)。因?yàn)镽C4加密算法具有實(shí)現(xiàn)簡(jiǎn)單,加密速度快,對(duì)硬件資源耗費(fèi)低等優(yōu)點(diǎn),使其躋身于輕量級(jí)加密算法的行列。但是其簡(jiǎn)單的算法結(jié)構(gòu)也容易遭到破解攻擊,RC4加密算法的加密強(qiáng)度完全取決于密鑰,即偽隨機(jī)序列生成,而真正的隨機(jī)序列是不可能實(shí)現(xiàn),只能實(shí)現(xiàn)偽隨機(jī)。這就不可避免出現(xiàn)密鑰的重復(fù)。RC4加密算法不管是加密還是解密,都只進(jìn)行了異或運(yùn)算,這就意味著,一旦子密鑰序列出現(xiàn)了重復(fù),密文就極有可能被破解。
因此,需要設(shè)計(jì)一種安全性高的分布式存儲(chǔ)通信協(xié)議加密、解密方法,防止攻擊者根據(jù)報(bào)文長(zhǎng)度及重復(fù)字段推算出通信報(bào)文格式。
技術(shù)實(shí)現(xiàn)要素:
針對(duì)以上技術(shù)問(wèn)題,本發(fā)明的目的是提供一種分布式存儲(chǔ)系統(tǒng)通信協(xié)議的加密、解密方法及裝置,針對(duì)RC4加密算法的問(wèn)題,設(shè)計(jì)了一種長(zhǎng)度可變、無(wú)重復(fù)序列的加密方法,增加了加密后數(shù)據(jù)被破解的難度,提高了數(shù)據(jù)傳輸?shù)陌踩浴?/p>
為達(dá)到上述目的,本發(fā)明通過(guò)以下技術(shù)方案實(shí)現(xiàn):
本發(fā)明提供一種分布式存儲(chǔ)系統(tǒng)通信協(xié)議的加密方法,包括以下步驟:
發(fā)送端獲取待加密的原始數(shù)據(jù);
發(fā)送端構(gòu)建分布式存儲(chǔ)系統(tǒng)通信協(xié)議的報(bào)文,所述分布式存儲(chǔ)系統(tǒng)通信協(xié)議的報(bào)文包括七個(gè)字段,其中第一字段為占一個(gè)字節(jié)的隨機(jī)數(shù),第二字段為占四個(gè)字節(jié)的魔法數(shù)字,第三字段為占一個(gè)字節(jié)的第四字段的長(zhǎng)度值,第四字段為隨機(jī)長(zhǎng)度、隨機(jī)內(nèi)容的垃圾文字,第五字段為臨時(shí)請(qǐng)求密鑰,第六字段為臨時(shí)響應(yīng)密鑰,第七字段為發(fā)送端上待加密的原始數(shù)據(jù);
發(fā)送端獲取加密算法的共享密鑰;
發(fā)送端通過(guò)加密算法,利用共享密鑰對(duì)報(bào)文中的第二字段至第六字段進(jìn)行加密;
發(fā)送端通過(guò)加密算法,利用報(bào)文中的第五字段的臨時(shí)請(qǐng)求密鑰對(duì)報(bào)文中的第七字段進(jìn)行加密,發(fā)送端將加密后的報(bào)文發(fā)送至接收端。
進(jìn)一步地,所述分布式存儲(chǔ)系統(tǒng)通信協(xié)議的報(bào)文的七個(gè)字段由分布式存儲(chǔ)系統(tǒng)的多個(gè)存儲(chǔ)節(jié)點(diǎn)生成。
進(jìn)一步地,所述臨時(shí)請(qǐng)求密鑰和臨時(shí)響應(yīng)密鑰由分布式存儲(chǔ)系統(tǒng)的每個(gè)存儲(chǔ)節(jié)點(diǎn)每隔規(guī)定時(shí)間隨機(jī)生成。
進(jìn)一步地,所述加密算法為RC4加密算法。
本發(fā)明還提供一種分布式存儲(chǔ)系統(tǒng)通信協(xié)議的解密方法,包括以下步驟:
接收端接收來(lái)自發(fā)送端的加密后的報(bào)文;
接收端構(gòu)建分布式存儲(chǔ)系統(tǒng)通信協(xié)議的報(bào)文,所述分布式存儲(chǔ)系統(tǒng)通信協(xié)議的報(bào)文包括七個(gè)字段,其中第一字段為占一個(gè)字節(jié)的隨機(jī)數(shù),第二字段為占四個(gè)字節(jié)的魔法數(shù)字,第三字段為占一個(gè)字節(jié)的第四字段的長(zhǎng)度值,第四字段為隨機(jī)長(zhǎng)度、隨機(jī)內(nèi)容的垃圾文字,第五字段為臨時(shí)請(qǐng)求密鑰,第六字段為臨時(shí)響應(yīng)密鑰,第七字段為接收端上待解密的原始數(shù)據(jù);
接收端獲取加密算法的共享密鑰;
接收端通過(guò)加密算法,利用共享密鑰對(duì)報(bào)文中的第二字段至第六字段進(jìn)行解密,并將第一字段至第四字段內(nèi)容丟棄;
接收端通過(guò)加密算法,利用報(bào)文中第六字段的臨時(shí)響應(yīng)密鑰對(duì)報(bào)文中第六字段之后的字節(jié)進(jìn)行解密,得到解密后的原始數(shù)據(jù)。
進(jìn)一步地,所述接收端通過(guò)加密算法,利用共享密鑰對(duì)報(bào)文中的第二字段至第六字段進(jìn)行解密,并將第一字段至第四字段內(nèi)容丟棄,進(jìn)一步包括:
接收端讀取報(bào)文中時(shí),直接跳過(guò)并丟棄第一字段;
接收端通過(guò)加密算法,利用共享密鑰對(duì)報(bào)文中的第二字段進(jìn)行解密,并驗(yàn)證第二字段解密后的明文是否是魔法數(shù)字,若是,則進(jìn)行下一步,若否,則丟棄該報(bào)文;
接收端讀取報(bào)文中的第三字段,得到報(bào)文中的第四字段垃圾文字的長(zhǎng)度值;
接收端通過(guò)加密算法,利用共享密鑰對(duì)報(bào)文中的第四字段進(jìn)行解密,丟棄解密后的第四字段的垃圾文字;
接收端通過(guò)加密算法,利用共享密鑰對(duì)報(bào)文中的第五字段和第六字段進(jìn)行解密。
本發(fā)明提供了基于上述分布式存儲(chǔ)系統(tǒng)通信協(xié)議的加密方法的分布式存儲(chǔ)系統(tǒng)通信協(xié)議的加密裝置,包括:
原始數(shù)據(jù)獲取單元,用于發(fā)送端獲取待加密的原始數(shù)據(jù);
發(fā)送端報(bào)文構(gòu)建單元,用于發(fā)送端構(gòu)建分布式存儲(chǔ)系統(tǒng)通信協(xié)議的報(bào)文,所述分布式存儲(chǔ)系統(tǒng)通信協(xié)議的報(bào)文包括七個(gè)字段,其中第一字段為占一個(gè)字節(jié)的隨機(jī)數(shù),第二字段為占四個(gè)字節(jié)的魔法數(shù)字,第三字段為占一個(gè)字節(jié)的第四字段的長(zhǎng)度值,第四字段為隨機(jī)長(zhǎng)度、隨機(jī)內(nèi)容的垃圾文字,第五字段為臨時(shí)請(qǐng)求密鑰,第六字段為臨時(shí)響應(yīng)密鑰,第七字段為發(fā)送端上待加密的原始數(shù)據(jù);
共享密鑰獲取單元,用于發(fā)送端獲取加密算法的共享密鑰;
第一加密單元,用于發(fā)送端通過(guò)加密算法,利用共享密鑰對(duì)報(bào)文中的第二字段至第六字段進(jìn)行加密;
第二加密單元,用于發(fā)送端通過(guò)加密算法,利用報(bào)文中的第五字段的臨時(shí)請(qǐng)求密鑰對(duì)報(bào)文中的第七字段進(jìn)行加密,發(fā)送端將加密后的報(bào)文發(fā)送至接收端。
本發(fā)明還提供了基于上述分布式存儲(chǔ)系統(tǒng)通信協(xié)議的解密方法的分布式存儲(chǔ)系統(tǒng)通信協(xié)議的解密裝置,包括:
報(bào)文接收單元,用于接收端接收來(lái)自發(fā)送端的加密的報(bào)文;
接收端報(bào)文構(gòu)建單元,接收端構(gòu)建分布式存儲(chǔ)系統(tǒng)通信協(xié)議的報(bào)文,所述分布式存儲(chǔ)系統(tǒng)通信協(xié)議的報(bào)文包括七個(gè)字段,其中第一字段為占一個(gè)字節(jié)的隨機(jī)數(shù),第二字段為占四個(gè)字節(jié)的魔法數(shù)字,第三字段為占一個(gè)字節(jié)的第四字段的長(zhǎng)度值,第四字段為隨機(jī)長(zhǎng)度、隨機(jī)內(nèi)容的垃圾文字,第五字段為臨時(shí)請(qǐng)求密鑰,第六字段為臨時(shí)響應(yīng)密鑰,第七字段為接收端上待解密的原始數(shù)據(jù);
獲取單元,用于接收端獲取加密算法的共享密鑰;
第一解密單元,用于接收端通過(guò)加密算法,利用共享密鑰對(duì)報(bào)文中的第二字段至第六字段進(jìn)行解密,并將第一字段至第四字段內(nèi)容丟棄;
第二解密單元,接收端通過(guò)加密算法,利用報(bào)文中第六字段的臨時(shí)響應(yīng)密鑰對(duì)報(bào)文中第六字段之后的字節(jié)進(jìn)行解密,得到解密后的原始數(shù)據(jù)。
進(jìn)一步地,第一解密單元進(jìn)一步包括:
第一讀取單元,用于接收端讀取報(bào)文中時(shí),直接跳過(guò)并丟棄第一字段;
第一解密子單元,用于接收端通過(guò)加密算法,利用共享密鑰對(duì)報(bào)文中的第二字段進(jìn)行解密,并驗(yàn)證第二字段解密后的明文是否是魔法數(shù)字,若是,則進(jìn)行下一步,若否,則丟棄該報(bào)文;
第二讀取單元,用于接收端讀取報(bào)文中的第三字段,得到報(bào)文中的第四字段垃圾文字的長(zhǎng)度值;
第二解密子單元,用于接收端通過(guò)加密算法,利用共享密鑰對(duì)報(bào)文中的第四字段進(jìn)行解密,丟棄解密后的第四字段的垃圾文字;
第三解密子單元,用于接收端通過(guò)加密算法,利用共享密鑰對(duì)報(bào)文中的第五字段和第六字段進(jìn)行解密。
與現(xiàn)有技術(shù)相比,本發(fā)明一種分布式存儲(chǔ)系統(tǒng)通信協(xié)議的加密、解密方法的有益效果如下:
1.本發(fā)明構(gòu)建的分布式存儲(chǔ)系統(tǒng)通信協(xié)議的報(bào)文包括七個(gè)字段,其中第四字段為隨機(jī)長(zhǎng)度、隨機(jī)內(nèi)容的垃圾文字,這樣的通信協(xié)議的報(bào)文沒(méi)有固定長(zhǎng)度,即使是相同類型的報(bào)文,甚至是同一個(gè)數(shù)據(jù)包,加密后的密文內(nèi)容和長(zhǎng)度均不一樣,增加了加密后數(shù)據(jù)被破解的難度,提高了數(shù)據(jù)傳輸?shù)陌踩裕?/p>
2.由于分布式存儲(chǔ)系統(tǒng)通信協(xié)議的報(bào)文中臨時(shí)請(qǐng)求密鑰和臨時(shí)響應(yīng)密鑰的存在,并且是由分布式存儲(chǔ)系統(tǒng)的每個(gè)節(jié)點(diǎn)每隔規(guī)定時(shí)間隨機(jī)生成,有效時(shí)間范圍是當(dāng)前的請(qǐng)求-響應(yīng)對(duì),這樣即使是相同的明文在不同時(shí)刻加密后生成的密文也不重復(fù),同樣增加了加密后數(shù)據(jù)被破解的難度,提高了數(shù)據(jù)傳輸?shù)陌踩裕?/p>
一種分布式存儲(chǔ)系統(tǒng)通信協(xié)議的加密、解密裝置的有益效果與一種分布式存儲(chǔ)系統(tǒng)通信協(xié)議的加密、解密方法的有益效果類似,在此不再贅述。
附圖說(shuō)明
圖1為本發(fā)明分布式存儲(chǔ)系統(tǒng)通信協(xié)議的加密方法的流程示意圖。
圖2為本發(fā)明分布式存儲(chǔ)系統(tǒng)通信協(xié)議的解密方法的流程示意圖。
圖3為本發(fā)明分布式存儲(chǔ)系統(tǒng)通信協(xié)議的加密裝置的結(jié)構(gòu)示意圖。
圖4為本發(fā)明分布式存儲(chǔ)系統(tǒng)通信協(xié)議的解密裝置的結(jié)構(gòu)示意圖。
具體實(shí)施方式
為使本發(fā)明實(shí)施例的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒(méi)有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
下面對(duì)下列實(shí)施例中出現(xiàn)的名詞及概念進(jìn)行解釋說(shuō)明:
分布式存儲(chǔ)系統(tǒng),是將數(shù)據(jù)分散存儲(chǔ)在多臺(tái)獨(dú)立的設(shè)備上,其采用可擴(kuò)展的系統(tǒng)結(jié)構(gòu),利用多臺(tái)存儲(chǔ)服務(wù)器分擔(dān)存儲(chǔ)負(fù)荷,利用位置服務(wù)器定位存儲(chǔ)信息,它不但提高了系統(tǒng)的可靠性、可用性和存取效率,還易于擴(kuò)展。分布式存儲(chǔ)系統(tǒng)包含多個(gè)存儲(chǔ)節(jié)點(diǎn),存儲(chǔ)節(jié)點(diǎn)一般是一個(gè)存儲(chǔ)服務(wù)器(必然帶控制器),服務(wù)器之間通過(guò)高速網(wǎng)絡(luò)互連。
分布式存儲(chǔ)系統(tǒng)中目前常用的通信協(xié)議有安全外殼SSH(Secure Shell)協(xié)議、安全套接層SSL(Security Socket Layer)協(xié)議和安全電子交易SET(Secure Electronic Transaction)協(xié)議。
分布式存儲(chǔ)系統(tǒng)中數(shù)據(jù)的安全需要采用密碼技術(shù)進(jìn)行保護(hù),數(shù)據(jù)加密是所有數(shù)據(jù)安全技術(shù)的核心。常見(jiàn)的加密算法可以分成三類:對(duì)稱加密算法(Symmetric Key Encryption)、非對(duì)稱加密算法(Asymmetric Key Encryption)和哈希算法。加密算法的效能通??梢园凑账惴ū旧淼膹?fù)雜程度、密鑰長(zhǎng)度(密鑰越長(zhǎng)越安全)、加解密速度等來(lái)衡量。對(duì)稱加密算法要求加密和解密雙方用于相同的密鑰,典型的對(duì)稱加密算法包括DES(Data Encryption Standard)、3DES、Bloefish、IDEA、RC4、RC5、RC6和AES(Advanced Encryption Standard)。而非對(duì)稱加密算法是加密和解密雙方采用互不相同的密鑰,在不知道陷門(mén)信息的情況下,加密密鑰和解密密鑰是不能相互導(dǎo)出的,典型的非對(duì)稱加密算法包括RSA,ECC、DSA。哈希算法用來(lái)校驗(yàn)數(shù)據(jù)的完整性,典型的哈希算法包括MD2、MD4、MD5(Message-Digest Algorithm 5)和SHA-1。
下面結(jié)合附圖和具體實(shí)施方式對(duì)本發(fā)明一種分布式存儲(chǔ)系統(tǒng)通信協(xié)議的加密、解密方法及裝置作進(jìn)一步地說(shuō)明:
實(shí)施例1
請(qǐng)參考圖1,一種分布式存儲(chǔ)系統(tǒng)通信協(xié)議的加密方法,包括以下步驟:
步驟S101:發(fā)送端獲取待加密的原始數(shù)據(jù)。
步驟S102:發(fā)送端構(gòu)建分布式存儲(chǔ)系統(tǒng)通信協(xié)議的報(bào)文,所述分布式存儲(chǔ)系統(tǒng)通信協(xié)議的報(bào)文包括七個(gè)字段,其中第一字段為占一個(gè)字節(jié)的隨機(jī)數(shù),第二字段為占四個(gè)字節(jié)的魔法數(shù)字,第三字段為占一個(gè)字節(jié)的第四字段的長(zhǎng)度值,第四字段為隨機(jī)長(zhǎng)度、隨機(jī)內(nèi)容的垃圾文字,第五字段為臨時(shí)請(qǐng)求密鑰,第六字段為臨時(shí)響應(yīng)密鑰,第七字段為發(fā)送端上待加密的原始數(shù)據(jù)。
值得說(shuō)明的是,分布式存儲(chǔ)系統(tǒng)通信協(xié)議的報(bào)文的七個(gè)字段由分布式存儲(chǔ)系統(tǒng)的多個(gè)存儲(chǔ)節(jié)點(diǎn)生成,臨時(shí)請(qǐng)求密鑰和臨時(shí)響應(yīng)密鑰為每隔規(guī)定時(shí)間由分布式存儲(chǔ)系統(tǒng)的每個(gè)存儲(chǔ)節(jié)點(diǎn)隨機(jī)生成,規(guī)定時(shí)間建議為2小時(shí)。第一字段的隨機(jī)數(shù)用于逃避協(xié)議識(shí)別,攻擊者不能利用報(bào)文頭來(lái)斷定該報(bào)文是分布式存儲(chǔ)系統(tǒng)的通信協(xié)議。第二字段的魔法數(shù)字為0x195E8FF1,用于給分布式存儲(chǔ)系統(tǒng)的通信協(xié)議自己判斷,這是否是一個(gè)通信協(xié)議報(bào)文,如果要加強(qiáng)防護(hù),魔法數(shù)字可以有多個(gè)。為了防御有的網(wǎng)絡(luò)管理人員或攻擊者根據(jù)報(bào)文長(zhǎng)度封堵我們的報(bào)文,協(xié)議在第四字段填充了一段隨機(jī)長(zhǎng)度、隨機(jī)內(nèi)容的垃圾文字,垃圾文字可以是純數(shù)字,長(zhǎng)度為10~100字節(jié)。第三字段是隨機(jī)填充內(nèi)容的長(zhǎng)度。第五和第六字段是加解密的密鑰之一,這個(gè)加解密密鑰是每個(gè)存儲(chǔ)節(jié)點(diǎn)自己隨機(jī)生成,有效范圍是當(dāng)前請(qǐng)求-響應(yīng)對(duì),這樣即使是相同的報(bào)文在不同時(shí)刻生成的密文內(nèi)容也不相同。
所述臨時(shí)請(qǐng)求密鑰用于對(duì)請(qǐng)求消息的發(fā)送端加密,發(fā)送請(qǐng)求消息接收端解密;所述臨時(shí)響應(yīng)密鑰用于給響應(yīng)消息的發(fā)送端加密,接收響應(yīng)消息的接收端解密。
步驟S103:發(fā)送端獲取加密算法的共享密鑰。
共享密鑰是一串參與加密的字符串,加密算法在共享密鑰的控制下進(jìn)行操作,對(duì)應(yīng)不同的密鑰,相同的加密算法和相同的明文可以產(chǎn)生完全不同的密文。
加密算法的共享密鑰的獲取方式可以是密鑰服務(wù)器、U盤(pán)或Email。
本發(fā)明所采用的加密算法是RC4加密算法。RC4加密算法與待加密的數(shù)據(jù)采用異或(XOR)運(yùn)算生成密文,如共享密鑰的字節(jié)為01101100,待加密數(shù)據(jù)的明文字節(jié)為11001100,則得出的密文字節(jié)為10100000。同樣解密過(guò)程也是密文和共享密鑰進(jìn)行異或(XOR)運(yùn)算,得到相應(yīng)的原始數(shù)據(jù)明文。
步驟S104:發(fā)送端通過(guò)加密算法,利用共享密鑰對(duì)報(bào)文中的第二字段至第六字段進(jìn)行加密。
值得說(shuō)明的是,第一字段的隨機(jī)數(shù)不需要加密。
步驟S105:發(fā)送端通過(guò)加密算法,利用報(bào)文中的第五字段的臨時(shí)請(qǐng)求密鑰對(duì)報(bào)文中的第七字段進(jìn)行加密,發(fā)送端將加密后的報(bào)文發(fā)送至接收端。
這樣以來(lái),通過(guò)該加密方法加密后,除了第一字段是明文外,第二至第七字段都是密文。
實(shí)施例2
請(qǐng)參考圖2,一種分布式存儲(chǔ)系統(tǒng)通信協(xié)議的解密方法,包括以下步驟:
步驟S201:接收端接收來(lái)自發(fā)送端的加密的報(bào)文。
步驟S202:接收端構(gòu)建分布式存儲(chǔ)系統(tǒng)通信協(xié)議的報(bào)文,所述分布式存儲(chǔ)系統(tǒng)通信協(xié)議的報(bào)文包括七個(gè)字段,其中第一字段為占一個(gè)字節(jié)的隨機(jī)數(shù),第二字段為占四個(gè)字節(jié)的魔法數(shù)字0x195E8FF1,第三字段為占一個(gè)字節(jié)的第四字段的長(zhǎng)度值,第四字段為隨機(jī)長(zhǎng)度、隨機(jī)內(nèi)容的垃圾文字,第五字段為臨時(shí)請(qǐng)求密鑰,第六字段為臨時(shí)響應(yīng)密鑰,第七字段為接收端上待解密的原始數(shù)據(jù)。
步驟S203:接收端獲取加密算法的共享密鑰。
步驟S204:接收端通過(guò)加密算法,利用共享密鑰對(duì)報(bào)文中的第二字段至第六字段進(jìn)行解密,并將第一字段至第四字段內(nèi)容丟棄。
步驟S205:接收端通過(guò)加密算法,利用第六字段的臨時(shí)響應(yīng)密鑰對(duì)第六字段之后的字節(jié)進(jìn)行解密,得到解密后的原始數(shù)據(jù)。
接收端同時(shí)保存臨時(shí)請(qǐng)求密鑰,用于供發(fā)送響應(yīng)請(qǐng)求時(shí)使用。
上述步驟S204進(jìn)一步包括:
步驟S2041:接收端讀取報(bào)文中時(shí),直接跳過(guò)并丟棄第一字段;
步驟S2042:接收端通過(guò)加密算法,利用共享密鑰對(duì)報(bào)文中的第二字段進(jìn)行解密,并驗(yàn)證第二字段解密后的明文是否是魔法數(shù)字0x195E8FF1,若是,則進(jìn)行下一步步驟S2043,若否,則丟棄該報(bào)文;
步驟S2043:接收端讀取報(bào)文中的第三字段,得到報(bào)文中的第四字段垃圾文字的長(zhǎng)度值,如垃圾文字的長(zhǎng)度為k字節(jié);
步驟S2044:接收端通過(guò)加密算法,利用共享密鑰對(duì)報(bào)文中k字節(jié)的第四字段進(jìn)行解密,丟棄解密后的第四字段的垃圾文字;
步驟S2045:接收端通過(guò)加密算法,利用共享密鑰對(duì)報(bào)文中的第五字段和第六字段進(jìn)行解密。
實(shí)施例3
請(qǐng)參考圖3,一種分布式存儲(chǔ)系統(tǒng)通信協(xié)議的加密裝置,包括以下單元:
原始數(shù)據(jù)獲取單元301,用于發(fā)送端獲取待加密的原始數(shù)據(jù);
發(fā)送端報(bào)文構(gòu)建單元302,用于發(fā)送端構(gòu)建分布式存儲(chǔ)系統(tǒng)通信協(xié)議的報(bào)文,所述分布式存儲(chǔ)系統(tǒng)通信協(xié)議的報(bào)文包括七個(gè)字段,其中第一字段為占一個(gè)字節(jié)的隨機(jī)數(shù),第二字段為占四個(gè)字節(jié)的魔法數(shù)字,第三字段為占一個(gè)字節(jié)的第四字段的長(zhǎng)度值,第四字段為隨機(jī)長(zhǎng)度、隨機(jī)內(nèi)容的垃圾文字,第五字段為臨時(shí)請(qǐng)求密鑰,第六字段為臨時(shí)響應(yīng)密鑰,第七字段為發(fā)送端上待加密的原始數(shù)據(jù);
共享密鑰獲取單元303,用于發(fā)送端獲取加密算法的共享密鑰;
第一加密單元304,用于發(fā)送端通過(guò)加密算法,利用共享密鑰對(duì)報(bào)文中的第二字段至第六字段進(jìn)行加密;
第二加密單元305,用于發(fā)送端通過(guò)加密算法,利用報(bào)文中的第五字段的臨時(shí)請(qǐng)求密鑰對(duì)報(bào)文中的第七字段進(jìn)行加密,發(fā)送端將加密后的報(bào)文發(fā)送至接收端。
上述原始數(shù)據(jù)獲取單元301依次順序連接發(fā)送端報(bào)文構(gòu)建單元302、共享密鑰獲取單元303、第一加密單元304和第二加密單元305。
實(shí)施例4
請(qǐng)參考圖4,一種分布式存儲(chǔ)系統(tǒng)通信協(xié)議的解密裝置,包括以下單元:
報(bào)文接收單元401,用于接收端接收來(lái)自發(fā)送端的加密的報(bào)文;
接收端報(bào)文構(gòu)建單元402,接收端構(gòu)建分布式存儲(chǔ)系統(tǒng)通信協(xié)議的報(bào)文,所述分布式存儲(chǔ)系統(tǒng)通信協(xié)議的報(bào)文包括七個(gè)字段,其中第一字段為占一個(gè)字節(jié)的隨機(jī)數(shù),第二字段為占四個(gè)字節(jié)的魔法數(shù)字,第三字段為占一個(gè)字節(jié)的第四字段的長(zhǎng)度值,第四字段為隨機(jī)長(zhǎng)度、隨機(jī)內(nèi)容的垃圾文字,第五字段為臨時(shí)請(qǐng)求密鑰,第六字段為臨時(shí)響應(yīng)密鑰,第七字段為接收端上待解密的原始數(shù)據(jù);
獲取單元403,用于接收端獲取加密算法的共享密鑰;
第一解密單元404,用于接收端通過(guò)加密算法,利用共享密鑰對(duì)報(bào)文中的第二字段至第四字段進(jìn)行解密,并將第一字段至第四字段內(nèi)容丟棄;
第二解密單元405,用于接收端通過(guò)加密算法,利用第六字段的臨時(shí)響應(yīng)密鑰對(duì)第六字段之后的字節(jié)進(jìn)行解密,得到解密后的原始數(shù)據(jù)。
所述第一解密單元404進(jìn)一步包括:
第一讀取單元4041,用于接收端讀取報(bào)文中時(shí),直接跳過(guò)并丟棄第一字段;
第一解密子單元4042,用于接收端通過(guò)加密算法,利用共享密鑰對(duì)報(bào)文中的第二字段進(jìn)行解密,并驗(yàn)證第二字段解密后的明文是否是魔法數(shù)字,若是,則進(jìn)行第二讀取單元4043,若否,則丟棄該報(bào)文;
第二讀取單元4043,用于接收端讀取報(bào)文中的第三字段,得到報(bào)文中的第四字段垃圾文字的長(zhǎng)度值;
第二解密子單元4044,用于接收端通過(guò)加密算法,利用共享密鑰對(duì)報(bào)文中的第四字段進(jìn)行解密,丟棄解密后的第四字段的垃圾文字;
第三解密子單元4045,用于接收端通過(guò)加密算法,利用共享密鑰對(duì)報(bào)文中的第五字段和第六字段進(jìn)行解密。
上述報(bào)文接收單元401依次順序連接接收端報(bào)文構(gòu)建單元402、獲取單元403、第一解密單元404和第二解密單元405,其中第一解密單元404進(jìn)一步包括第一讀取單元4041、第一解密子單元4042、第二讀取單元4043、第二解密子單元4044和第三解密子單元4045。
對(duì)于本發(fā)明實(shí)施例公開(kāi)的裝置而言,由于其與實(shí)施例公開(kāi)的方法相對(duì)應(yīng),所以描述比較簡(jiǎn)單,相關(guān)之處參見(jiàn)方法部分說(shuō)明即可。
專業(yè)人員還可以進(jìn)一步意識(shí)到,結(jié)合本文中所公開(kāi)的實(shí)施例描述的各示例的單元及算法步驟,能夠以電子硬件、計(jì)算機(jī)軟件或者二者的結(jié)合來(lái)實(shí)現(xiàn),為了清楚地說(shuō)明硬件和軟件的可互換性,在上述說(shuō)明中已經(jīng)按照功能一般性地描述了各示例的組成及步驟。而這些功能究竟以硬件還是軟件方式來(lái)執(zhí)行,取決于技術(shù)方案的特定應(yīng)用和設(shè)計(jì)約束條件。專業(yè)技術(shù)人員可以對(duì)每個(gè)特定的應(yīng)用來(lái)使用不同方法來(lái)實(shí)現(xiàn)所描述的功能,但是這種實(shí)現(xiàn)不應(yīng)認(rèn)為超出本發(fā)明的范圍。
以上所述僅為本發(fā)明示意性的具體實(shí)施方式,并非用以限定本發(fā)明的范圍,任何本領(lǐng)域的技術(shù)人員在不脫離本發(fā)明構(gòu)思和原則的前提下所做出的等同變化與修改,均應(yīng)屬于本發(fā)明保護(hù)的范圍。