本發(fā)明涉及計(jì)算機(jī)技術(shù)領(lǐng)域,特別涉及一種數(shù)據(jù)傳輸方法、數(shù)據(jù)發(fā)送端及數(shù)據(jù)接收端。
背景技術(shù):
近幾年,互聯(lián)網(wǎng)技術(shù)給用戶(hù)的日常生活和工作帶來(lái)極大便利和樂(lè)趣,但同時(shí)也帶來(lái)很多風(fēng)險(xiǎn)。為了保障數(shù)據(jù)在傳輸過(guò)程中,當(dāng)被不法第三方竊取到時(shí),盡量不要造成數(shù)據(jù)泄漏等情況的發(fā)生,通常需要對(duì)傳輸?shù)臄?shù)據(jù)進(jìn)行加密。
目前,在數(shù)據(jù)傳輸之前,數(shù)據(jù)的發(fā)送方和接收方必須商量好加密密鑰,并由雙方進(jìn)行保存,之后發(fā)送方利用保存的加密密鑰對(duì)數(shù)據(jù)進(jìn)行加密,然后只有保存有該加密密鑰的接收方才能實(shí)現(xiàn)對(duì)數(shù)據(jù)的解密,以此實(shí)現(xiàn)數(shù)據(jù)的加密傳輸。
但是,由于現(xiàn)有方法中是收發(fā)雙方都必須保存加密密鑰,那么一旦一方的加密密鑰被泄露,則通過(guò)該加密密鑰加密的數(shù)據(jù)也不再安全,從而造成數(shù)據(jù)的安全性較低。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明實(shí)施例提供了一種數(shù)據(jù)傳輸方法、數(shù)據(jù)發(fā)送端及數(shù)據(jù)接收端,能夠提高數(shù)據(jù)的安全性。
第一方面,本發(fā)明實(shí)施例提供了一種數(shù)據(jù)傳輸方法,應(yīng)用于數(shù)據(jù)發(fā)送端,包括:
隨機(jī)生成第一加密密鑰;
利用預(yù)設(shè)的第二加密密鑰和加密算法加密所述第一加密密鑰;
利用加密后的所述第一加密密鑰和所述加密算法加密待傳輸?shù)哪繕?biāo)數(shù)據(jù),以生成所述目標(biāo)數(shù)據(jù)的密文;
根據(jù)預(yù)設(shè)的合并規(guī)則合并加密后的所述第一加密密鑰和所述密文,以生成合并密文;
將所述合并密文發(fā)送至數(shù)據(jù)接收端,以使所述數(shù)據(jù)接收端根據(jù)預(yù)設(shè)對(duì)應(yīng)的拆分規(guī)則拆分所述合并密文,以獲取加密后的所述第一加密密鑰和所述密文,并利用預(yù)設(shè)對(duì)應(yīng)的解密算法和加密后的所述第一加密密鑰解密所述密文,以獲取所述目標(biāo)數(shù)據(jù)。
優(yōu)選地,
所述隨機(jī)生成第一加密密鑰,進(jìn)一步包括:隨機(jī)生成偏移量;
所述利用預(yù)設(shè)的第二加密密鑰和加密算法加密所述第一加密密鑰,進(jìn)一步包括:利用預(yù)設(shè)的第二加密密鑰和加密算法加密所述偏移量;
所述利用加密后的所述第一加密密鑰和所述加密算法加密待傳輸?shù)哪繕?biāo)數(shù)據(jù),包括:利用加密后的所述第一加密密鑰、加密后的所述偏移量和所述加密算法加密待傳輸?shù)哪繕?biāo)數(shù)據(jù);
所述根據(jù)預(yù)設(shè)的合并規(guī)則合并加密后的所述第一加密密鑰和所述密文,包括:根據(jù)預(yù)設(shè)的合并規(guī)則合并加密后的所述第一加密密鑰、加密后的所述偏移量和所述密文。
優(yōu)選地,
在所述利用預(yù)設(shè)的第二加密密鑰和加密算法加密所述第一加密密鑰和所述偏移量之后,且在所述利用加密后的所述第一加密密鑰、加密后的所述偏移量和所述加密算法加密待傳輸?shù)哪繕?biāo)數(shù)據(jù)之前,進(jìn)一步包括:
從加密后的所述第一加密密鑰和加密后的所述偏移量中分別截取16位;
所述利用加密后的所述第一加密密鑰、加密后的所述偏移量和所述加密算法加密待傳輸?shù)哪繕?biāo)數(shù)據(jù),包括:
利用從加密后的所述第一加密密鑰中截取出的16位、從加密后的所述偏移量中截取出的16位和所述加密算法加密待傳輸?shù)哪繕?biāo)數(shù)據(jù);
所述根據(jù)預(yù)設(shè)的合并規(guī)則合并加密后的所述第一加密密鑰、加密后的所述偏移量和所述密文,包括:
根據(jù)預(yù)設(shè)的合并規(guī)則合并從加密后的所述第一加密密鑰中截取出的16位、從加密后的所述偏移量中截取出的16位和所述密文。
第二方面,本發(fā)明實(shí)施例提供了一種數(shù)據(jù)傳輸方法,應(yīng)用于數(shù)據(jù)接收端,包括:
接收數(shù)據(jù)發(fā)送端發(fā)送的合并密文;
根據(jù)預(yù)設(shè)對(duì)應(yīng)的拆分規(guī)則拆分所述合并密文,以獲取加密后的第一加密密鑰和密文;
利用預(yù)設(shè)對(duì)應(yīng)的解密算法和加密后的所述第一加密密鑰解密所述密文,以獲取目標(biāo)數(shù)據(jù)。
優(yōu)選地,
所述根據(jù)預(yù)設(shè)對(duì)應(yīng)的拆分規(guī)則拆分所述合并密文,以獲取加密后的第一加密密鑰和密文,包括:根據(jù)預(yù)設(shè)對(duì)應(yīng)的拆分規(guī)則拆分所述合并密文,以獲取加密后的第一加密密鑰、加密后的所述偏移量和密文;
所述利用預(yù)設(shè)對(duì)應(yīng)的解密算法和加密后的所述第一加密密鑰解密所述密文,包括:利用預(yù)設(shè)對(duì)應(yīng)的解密算法、加密后的所述第一加密密鑰和加密后的所述偏移量解密所述密文。
第三方面,本發(fā)明實(shí)施例提供了一種數(shù)據(jù)發(fā)送端,包括:密鑰生成單元、密鑰加密單元、數(shù)據(jù)加密單元、合并單元及發(fā)送單元;其中,
所述密鑰生成單元,用于隨機(jī)生成第一加密密鑰;
所述密鑰加密單元,用于利用預(yù)設(shè)的第二加密密鑰和加密算法加密所述第一加密密鑰;
所述數(shù)據(jù)加密單元,用于利用加密后的所述第一加密密鑰和所述加密算法加密待傳輸?shù)哪繕?biāo)數(shù)據(jù),以生成所述目標(biāo)數(shù)據(jù)的密文;
所述合并單元,用于根據(jù)預(yù)設(shè)的合并規(guī)則合并加密后的所述第一加密密鑰和所述密文,以生成合并密文;
所述發(fā)送單元,用于將所述合并密文發(fā)送至數(shù)據(jù)接收端,以使所述數(shù)據(jù)接收端根據(jù)預(yù)設(shè)對(duì)應(yīng)的拆分規(guī)則拆分所述合并密文,以獲取加密后的所述第一加密密鑰和所述密文,并利用預(yù)設(shè)對(duì)應(yīng)的解密算法和加密后的所述第一加密密鑰解密所述密文,以獲取所述目標(biāo)數(shù)據(jù)。
優(yōu)選地,
所述密鑰生成單元,進(jìn)一步用于隨機(jī)生成偏移量;
所述密鑰加密單元,進(jìn)一步用于利用預(yù)設(shè)的第二加密密鑰和加密算法加密所述偏移量;
所述數(shù)據(jù)加密單元,具體用于利用加密后的所述第一加密密鑰、加密后的所述偏移量和所述加密算法加密待傳輸?shù)哪繕?biāo)數(shù)據(jù);
所述合并單元,具體用于根據(jù)預(yù)設(shè)的合并規(guī)則合并加密后的所述第一加密密鑰、加密后的所述偏移量和所述密文。
優(yōu)選地,
進(jìn)一步包括:截取單元;所述截取單元,用于從加密后的所述第一加密密鑰和加密后的所述偏移量中分別截取16位;
所述數(shù)據(jù)加密單元,具體用于利用從加密后的所述第一加密密鑰中截取出的16位、從加密后的所述偏移量中截取出的16位和所述加密算法加密待傳輸?shù)哪繕?biāo)數(shù)據(jù);
所述合并單元,具體用于根據(jù)預(yù)設(shè)的合并規(guī)則合并從加密后的所述第一加密密鑰中截取出的16位、從加密后的所述偏移量中截取出的16位和所述密文。
第四方面,本發(fā)明實(shí)施例提供了一種數(shù)據(jù)接收端,包括:
接收單元、拆分單元及數(shù)據(jù)解密單元;其中,
所述接收單元,用于接收數(shù)據(jù)發(fā)送端發(fā)送的合并密文;
所述拆分單元,用于根據(jù)預(yù)設(shè)對(duì)應(yīng)的拆分規(guī)則拆分所述合并密文,以獲取加密后的第一加密密鑰和密文;
所述數(shù)據(jù)解密單元,用于利用預(yù)設(shè)對(duì)應(yīng)的解密算法和加密后的所述第一加密密鑰解密所述密文,以獲取目標(biāo)數(shù)據(jù)。
優(yōu)選地,
所述拆分單元,具體用于根據(jù)預(yù)設(shè)對(duì)應(yīng)的拆分規(guī)則拆分所述合并密文,以獲取加密后的第一加密密鑰、加密后的所述偏移量和密文;
所述數(shù)據(jù)解密單元,具體用于利用預(yù)設(shè)對(duì)應(yīng)的解密算法、加密后的所述第一加密密鑰和加密后的所述偏移量解密所述密文。
本發(fā)明實(shí)施例提供了一種數(shù)據(jù)傳輸方法、數(shù)據(jù)發(fā)送端及數(shù)據(jù)接收端,當(dāng)有數(shù)據(jù)需要傳輸時(shí),數(shù)據(jù)發(fā)送端會(huì)隨機(jī)生成一個(gè)第一加密密鑰,并利用默認(rèn)的第二加密密鑰對(duì)第一加密加密進(jìn)行加密,然后在利用加密后的第一加密密鑰對(duì)需要傳輸?shù)臄?shù)據(jù)進(jìn)行加密,生成密文,最終將密文和加密后的第一加密密鑰合并,并發(fā)送給數(shù)據(jù)接收端,那么數(shù)據(jù)接收端就可以根據(jù)預(yù)設(shè)的拆分規(guī)則從合并后的密文中拆分出加密后的第一加密密鑰,然后利用其實(shí)現(xiàn)對(duì)拆分出的密文的解密,以此獲取到數(shù)據(jù)發(fā)送端發(fā)送的數(shù)據(jù)。本方案中只需數(shù)據(jù)發(fā)送端保存有預(yù)設(shè)的第二加密密鑰即可,而數(shù)據(jù)接收端無(wú)需保存該第二加密密鑰則可實(shí)現(xiàn)數(shù)據(jù)的解密,而且即使數(shù)據(jù)發(fā)送端預(yù)設(shè)的第二加密密鑰被泄露,但由于第一加密密鑰和待傳輸?shù)臄?shù)據(jù)均采用了相同的加密算法,當(dāng)合并在一起時(shí),第三方無(wú)法區(qū)分出哪塊是密文,哪塊是加密后的第一加密密鑰,因此很好的提高了數(shù)據(jù)的安全性。
附圖說(shuō)明
為了更清楚地說(shuō)明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見(jiàn)地,下面描述中的附圖是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1是本發(fā)明一個(gè)實(shí)施例提供的一種數(shù)據(jù)傳輸方法的流程圖;
圖2是本發(fā)明另一個(gè)實(shí)施例提供的一種數(shù)據(jù)傳輸方法的流程圖;
圖3是本發(fā)明一個(gè)實(shí)施例提供的一種數(shù)據(jù)發(fā)送端的結(jié)構(gòu)示意圖;
圖4是本發(fā)明另一個(gè)實(shí)施例提供的一種數(shù)據(jù)發(fā)送端的結(jié)構(gòu)示意圖;
圖5是本發(fā)明一個(gè)實(shí)施例提供的一種數(shù)據(jù)接收端的結(jié)構(gòu)示意圖;
圖6是本發(fā)明又一個(gè)實(shí)施例提供的一種數(shù)據(jù)傳輸方法的流程圖。
具體實(shí)施方式
為使本發(fā)明實(shí)施例的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例,基于本發(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒(méi)有做出創(chuàng)造性勞動(dòng)的前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
如圖1所示,本發(fā)明實(shí)施例提供了一種數(shù)據(jù)傳輸方法,應(yīng)用于數(shù)據(jù)發(fā)送端,該方法可以包括以下步驟:
步驟101:隨機(jī)生成第一加密密鑰。
步驟102:利用預(yù)設(shè)的第二加密密鑰和加密算法加密所述第一加密密鑰。
步驟103:利用加密后的所述第一加密密鑰和所述加密算法加密待傳輸?shù)哪繕?biāo)數(shù)據(jù),以生成所述目標(biāo)數(shù)據(jù)的密文。
步驟104:根據(jù)預(yù)設(shè)的合并規(guī)則合并加密后的所述第一加密密鑰和所述密文,以生成合并密文。
步驟105:將所述合并密文發(fā)送至數(shù)據(jù)接收端,以使所述數(shù)據(jù)接收端根據(jù)預(yù)設(shè)對(duì)應(yīng)的拆分規(guī)則拆分所述合并密文,以獲取加密后的所述第一加密密鑰和所述密文,并利用預(yù)設(shè)對(duì)應(yīng)的解密算法和加密后的所述第一加密密鑰解密所述密文,以獲取所述目標(biāo)數(shù)據(jù)。
上述實(shí)施例中,當(dāng)有數(shù)據(jù)需要傳輸時(shí),數(shù)據(jù)發(fā)送端會(huì)隨機(jī)生成一個(gè)第一加密密鑰,并利用默認(rèn)的第二加密密鑰對(duì)第一加密加密進(jìn)行加密,然后在利用加密后的第一加密密鑰對(duì)需要傳輸?shù)臄?shù)據(jù)進(jìn)行加密,生成密文,最終將密文和加密后的第一加密密鑰合并,并發(fā)送給數(shù)據(jù)接收端,那么數(shù)據(jù)接收端就可以根據(jù)預(yù)設(shè)的拆分規(guī)則從合并后的密文中拆分出加密后的第一加密密鑰,然后利用其實(shí)現(xiàn)對(duì)拆分出的密文的解密,以此獲取到數(shù)據(jù)發(fā)送端發(fā)送的數(shù)據(jù)。本方案中只需數(shù)據(jù)發(fā)送端保存有預(yù)設(shè)的第二加密密鑰即可,而數(shù)據(jù)接收端無(wú)需保存該第二加密密鑰則可實(shí)現(xiàn)數(shù)據(jù)的解密,而且即使數(shù)據(jù)發(fā)送端預(yù)設(shè)的第二加密密鑰被泄露,但由于第一加密密鑰和待傳輸?shù)臄?shù)據(jù)均采用了相同的加密算法,當(dāng)合并在一起時(shí),第三方無(wú)法區(qū)分出哪塊是密文,哪塊是加密后的第一加密密鑰,因此很好的提高了數(shù)據(jù)的安全性。
為了能夠利用某些加密算法對(duì)數(shù)據(jù)進(jìn)行加密,本發(fā)明一個(gè)實(shí)施例中,所述步驟101,進(jìn)一步包括:隨機(jī)生成偏移量;所述步驟102,進(jìn)一步包括:利用預(yù)設(shè)的第二加密密鑰和加密算法加密所述偏移量;所述步驟103的具體實(shí)施方式,可包括:利用加密后的所述第一加密密鑰、加密后的所述偏移量和所述加密算法加密待傳輸?shù)哪繕?biāo)數(shù)據(jù);所述步驟104的具體實(shí)施方式,可包括:根據(jù)預(yù)設(shè)的合并規(guī)則合并加密后的所述第一加密密鑰、加密后的所述偏移量和所述密文。
例如,通常比較常用的對(duì)稱(chēng)式加密算法:aes(advancedencryptionstandard,高級(jí)加密標(biāo)準(zhǔn))加密算法。在加密的過(guò)程中除了使用加密密鑰外,還需用到偏移量,因此本發(fā)明實(shí)施例中除了隨機(jī)生成第一加密密鑰外,還需隨機(jī)生成一個(gè)偏移量,從而對(duì)于數(shù)據(jù)接收端而言,均無(wú)需在保存第一加密密鑰和偏移量。
其中,數(shù)據(jù)發(fā)送端設(shè)置的合并規(guī)則可根據(jù)實(shí)際需求進(jìn)行設(shè)定。例如,密文用m表示、加密后的第一加密密鑰用k表示、加密后的偏移量用d表示以及合并密文用a表示,則該合并規(guī)則至少有如下幾種簡(jiǎn)單形式:
形式1:a=m+k+d;
形式2:a=m+d+k;
形式3:a=d+m+k;
形式4:a=d+k+m;
形式5:a=k+m+d;
形式6:a=k+d+m;
以形式1為例,合并時(shí),將目標(biāo)數(shù)據(jù)的密文的第一位排在最前端,還是作為第一位,然后將密文的最后一位與加密后的第一加密密鑰的第一位排在一起,最后將加密后的第一加密密鑰的最后一位與加密后的偏移量的第一位排在一起,從而構(gòu)成如形式1的合并密文。那么之后在拆分時(shí),由于通常密文的長(zhǎng)度較大,因此可按照加密后的第一加密密鑰的位數(shù)和加密后的偏移量的位數(shù)進(jìn)行拆分。例如,k為16位,d為16位,則數(shù)據(jù)接收端在拆分時(shí)可按照形式1,從后拆分出16位,此時(shí)拆分出的為d,然后繼續(xù)從后拆分出16位,此時(shí)拆分出的為k,而剩余的所有位即為m,從而實(shí)現(xiàn)拆分。
為了避免加密后的密文長(zhǎng)度太長(zhǎng),本發(fā)明一個(gè)實(shí)施例中,在所述利用預(yù)設(shè)的第二加密密鑰和加密算法加密所述第一加密密鑰和所述偏移量之后,且在所述利用加密后的所述第一加密密鑰、加密后的所述偏移量和所述加密算法加密待傳輸?shù)哪繕?biāo)數(shù)據(jù)之前,進(jìn)一步包括:從加密后的所述第一加密密鑰和加密后的所述偏移量中分別截取16位;所述利用加密后的所述第一加密密鑰、加密后的所述偏移量和所述加密算法加密待傳輸?shù)哪繕?biāo)數(shù)據(jù),包括:利用從加密后的所述第一加密密鑰中截取出的16位、從加密后的所述偏移量中截取出的16位和所述加密算法加密待傳輸?shù)哪繕?biāo)數(shù)據(jù);所述根據(jù)預(yù)設(shè)的合并規(guī)則合并加密后的所述第一加密密鑰、加密后的所述偏移量和所述密文,包括:根據(jù)預(yù)設(shè)的合并規(guī)則合并從加密后的所述第一加密密鑰中截取出的16位、從加密后的所述偏移量中截取出的16位和所述密文。
本發(fā)明實(shí)施例中截取的位數(shù)為16位,是比較好的一種選擇,但是也并不局限于此,其截取的位數(shù)和位置可依據(jù)用戶(hù)需求進(jìn)行設(shè)定,例如,截取前16位等。
如圖2所示,本發(fā)明實(shí)施例提供了一種數(shù)據(jù)傳輸方法,應(yīng)用于數(shù)據(jù)接收端,該方法可以包括如下步驟:
步驟201:接收數(shù)據(jù)發(fā)送端發(fā)送的合并密文。
步驟202:根據(jù)預(yù)設(shè)對(duì)應(yīng)的拆分規(guī)則拆分所述合并密文,以獲取加密后的第一加密密鑰和密文。
步驟203:利用預(yù)設(shè)對(duì)應(yīng)的解密算法和加密后的所述第一加密密鑰解密所述密文,以獲取目標(biāo)數(shù)據(jù)。
為了能夠解密出密文,獲取到數(shù)據(jù)發(fā)送端發(fā)送的目標(biāo)數(shù)據(jù),本發(fā)明一個(gè)實(shí)施例中,所述步驟202的具體實(shí)施方式,可包括:根據(jù)預(yù)設(shè)對(duì)應(yīng)的拆分規(guī)則拆分所述合并密文,以獲取加密后的第一加密密鑰、加密后的所述偏移量和密文;所述步驟203的具體實(shí)施方式,可包括:利用預(yù)設(shè)對(duì)應(yīng)的解密算法、加密后的所述第一加密密鑰和加密后的所述偏移量解密所述密文。
如圖3所示,本發(fā)明實(shí)施例提供了一種數(shù)據(jù)發(fā)送端,包括:
密鑰生成單元301、密鑰加密單元302、數(shù)據(jù)加密單元303、合并單元304及發(fā)送單元305;其中,
所述密鑰生成單元301,用于隨機(jī)生成第一加密密鑰;
所述密鑰加密單元302,用于利用預(yù)設(shè)的第二加密密鑰和加密算法加密所述第一加密密鑰;
所述數(shù)據(jù)加密單元303,用于利用加密后的所述第一加密密鑰和所述加密算法加密待傳輸?shù)哪繕?biāo)數(shù)據(jù),以生成所述目標(biāo)數(shù)據(jù)的密文;
所述合并單元304,用于根據(jù)預(yù)設(shè)的合并規(guī)則合并加密后的所述第一加密密鑰和所述密文,以生成合并密文;
所述發(fā)送單元305,用于將所述合并密文發(fā)送至數(shù)據(jù)接收端,以使所述數(shù)據(jù)接收端根據(jù)預(yù)設(shè)對(duì)應(yīng)的拆分規(guī)則拆分所述合并密文,以獲取加密后的所述第一加密密鑰和所述密文,并利用預(yù)設(shè)對(duì)應(yīng)的解密算法和加密后的所述第一加密密鑰解密所述密文,以獲取所述目標(biāo)數(shù)據(jù)。
為了能夠利用某些加密算法對(duì)數(shù)據(jù)進(jìn)行加密,本發(fā)明一個(gè)實(shí)施例中,
所述密鑰生成單元301,進(jìn)一步用于隨機(jī)生成偏移量;
所述密鑰加密單元302,進(jìn)一步用于利用預(yù)設(shè)的第二加密密鑰和加密算法加密所述偏移量;
所述數(shù)據(jù)加密單元303,具體用于利用加密后的所述第一加密密鑰、加密后的所述偏移量和所述加密算法加密待傳輸?shù)哪繕?biāo)數(shù)據(jù);
所述合并單元304,具體用于根據(jù)預(yù)設(shè)的合并規(guī)則合并加密后的所述第一加密密鑰、加密后的所述偏移量和所述密文。
為了避免加密后的密文長(zhǎng)度太長(zhǎng),本發(fā)明一個(gè)實(shí)施例中,如圖4所示,
進(jìn)一步包括:截取單元401;所述截取單元401,用于從加密后的所述第一加密密鑰和加密后的所述偏移量中分別截取16位;
所述數(shù)據(jù)加密單元303,具體用于利用從加密后的所述第一加密密鑰中截取出的16位、從加密后的所述偏移量中截取出的16位和所述加密算法加密待傳輸?shù)哪繕?biāo)數(shù)據(jù);
所述合并單元304,具體用于根據(jù)預(yù)設(shè)的合并規(guī)則合并從加密后的所述第一加密密鑰中截取出的16位、從加密后的所述偏移量中截取出的16位和所述密文。
如圖5所示,本發(fā)明實(shí)施例提供了一種數(shù)據(jù)接收端,包括:
接收單元501、拆分單元502及數(shù)據(jù)解密單元503;其中,
所述接收單元501,用于接收數(shù)據(jù)發(fā)送端發(fā)送的合并密文;
所述拆分單元502,用于根據(jù)預(yù)設(shè)對(duì)應(yīng)的拆分規(guī)則拆分所述合并密文,以獲取加密后的第一加密密鑰和密文;
所述數(shù)據(jù)解密單元503,用于利用預(yù)設(shè)對(duì)應(yīng)的解密算法和加密后的所述第一加密密鑰解密所述密文,以獲取目標(biāo)數(shù)據(jù)。
為了能夠解密出密文,獲取到傳輸?shù)哪繕?biāo)數(shù)據(jù),所述拆分單元502,具體用于根據(jù)預(yù)設(shè)對(duì)應(yīng)的拆分規(guī)則拆分所述合并密文,以獲取加密后的第一加密密鑰、加密后的所述偏移量和密文;
所述數(shù)據(jù)解密單元503,具體用于利用預(yù)設(shè)對(duì)應(yīng)的解密算法、加密后的所述第一加密密鑰和加密后的所述偏移量解密所述密文。
上述裝置內(nèi)的各單元之間的信息交互、執(zhí)行過(guò)程等內(nèi)容,由于與本發(fā)明方法實(shí)施例基于同一構(gòu)思,具體內(nèi)容可參見(jiàn)本發(fā)明方法實(shí)施例中的敘述,此處不再贅述。
本發(fā)明實(shí)施例提供了一種數(shù)據(jù)傳輸系統(tǒng),包括:至少一個(gè)上述任一實(shí)施例中的數(shù)據(jù)發(fā)送端,以及至少一個(gè)上述任一實(shí)施例中的數(shù)據(jù)接收端。
下面將以數(shù)據(jù)發(fā)送端s向數(shù)據(jù)接收端r傳輸數(shù)據(jù)為例,詳細(xì)說(shuō)明本發(fā)明實(shí)施例提供的一種數(shù)據(jù)傳輸方法,如圖6所示,該方法可以包括如下步驟:
步驟601:數(shù)據(jù)發(fā)送端s隨機(jī)生成第一加密密鑰key和偏移量iv。
步驟602:數(shù)據(jù)發(fā)送端s利用預(yù)設(shè)的第二加密密鑰key1和aes加密算法分別加密key和iv,得到加密后的第一加密密鑰keym和加密后的偏移量ivm。
該步驟中,通過(guò)利用預(yù)設(shè)的key1和aes加密算法來(lái)加密key和iv,可以使得加密后的key和iv能夠與之后加密后的密文類(lèi)型相同,這樣就可以將用來(lái)解密的keym和ivm與密文合并在一起,可以起到混淆試聽(tīng)的作用,大大避免被第三方破解的概率。
步驟603:數(shù)據(jù)發(fā)送端s從keym和ivm中分別截取前16位,得到keym16和ivm16。
步驟604:數(shù)據(jù)發(fā)送端s利用keym16、ivm16和aes加密算法加密待傳輸?shù)哪繕?biāo)數(shù)據(jù),以生成目標(biāo)數(shù)據(jù)的密文m0。
步驟605:數(shù)據(jù)發(fā)送端s根據(jù)預(yù)設(shè)的合并規(guī)則合并keym16、ivm16和m0,以生成合并密文m1。
其中,該合并規(guī)則也可以根據(jù)用戶(hù)需求來(lái)設(shè)定。例如,該合并規(guī)則為:keym16、ivm16和m0依次進(jìn)行拼接,也就是說(shuō)m1中的前16位是keym16,中間的17-32位是ivm16,32位以后的是m0。
本發(fā)明實(shí)施例中,由于keym16和ivm16都是經(jīng)過(guò)aes加密得來(lái)的,而且m0也是經(jīng)過(guò)aes加密得來(lái)的,因此keym16、ivm16和m0的類(lèi)型是相同的,從而將m0和加密成m0所用到的keym16、ivm16合并在一起,即使被第三方竊取到,但由于類(lèi)型相同,而且第三方不知道合并規(guī)則,從而也就無(wú)法破解。
另外,為進(jìn)一步提高數(shù)據(jù)的安全性,還可設(shè)置較為復(fù)雜的合并規(guī)則,而且盡量設(shè)置的無(wú)規(guī)律。例如,將keym16、ivm16和m0依次進(jìn)行穿插。
步驟606:數(shù)據(jù)發(fā)送端s將m1發(fā)送給數(shù)據(jù)接收端r。
本發(fā)明實(shí)施例中,為進(jìn)一步提高數(shù)據(jù)在傳輸過(guò)程中的安全性,還可對(duì)合并后的m1進(jìn)行二次加密。例如,獲取m1中的前兩個(gè)字母x和y,然后將x和y進(jìn)行對(duì)換,從而得到二次加密的密文m2。舉例來(lái)說(shuō),m1=2mq6qqk9fmev…,則x=m,y=q,那么最終得到m2=2qm6mqk9fqev…。這樣,數(shù)據(jù)發(fā)送端s在將二次加密后得到的密文m2發(fā)送給數(shù)據(jù)接收端r時(shí),進(jìn)一步提高了數(shù)據(jù)的安全性。而且,由于加密規(guī)則的計(jì)算量比較小,從而加密的效率較高,可快速對(duì)大量數(shù)據(jù)進(jìn)行加密。另外,通過(guò)上述的二次加密,可大幅度減少密文被暴力破解的概率。
步驟607:數(shù)據(jù)接收端r接收數(shù)據(jù)發(fā)送端s發(fā)送的m1。
步驟608:數(shù)據(jù)接收端r根據(jù)預(yù)設(shè)對(duì)應(yīng)的拆分規(guī)則拆分m1,以獲取keym16、ivm16和m0。
根據(jù)上述步驟606,若數(shù)據(jù)接收端r接收到的是二次加密的密文m2,則首先根據(jù)預(yù)設(shè)的邏輯對(duì)換規(guī)則,解密出m1。例如,獲取m2中的前兩個(gè)字母a和b,其中,a=q,b=m,然后將a和b對(duì)換,最終得到經(jīng)過(guò)一次加密的密文m1=2mq6qqk9fmev…。
然后按照與數(shù)據(jù)發(fā)送端s中合并規(guī)則相對(duì)應(yīng)的拆分規(guī)則,拆分m1。例如,合并規(guī)則是keym16、ivm16和m0依次進(jìn)行拼接時(shí),則相應(yīng)的拆分規(guī)則是在m1的第16位進(jìn)行一次拆分,在32位進(jìn)行一次拆分,并將拆分出的前16位賦值為keym16,拆分出的17-32位賦值給ivm16,32位以后剩余的賦值給m0,從而根據(jù)預(yù)先設(shè)置好的相應(yīng)拆分規(guī)則從合并密文中確定出可以用來(lái)加密的keym16和ivm16。
步驟609:數(shù)據(jù)接收端r利用預(yù)設(shè)的aes解密算法、keym16和ivm16解密m0,以獲取到目標(biāo)數(shù)據(jù)。
本發(fā)明實(shí)施例中的數(shù)據(jù)接收端r無(wú)需保存加密密鑰,而是通過(guò)預(yù)設(shè)的規(guī)則拆分出能夠還原目標(biāo)數(shù)據(jù)的keym16和ivm16即可。
本實(shí)施例中的方法至少可通過(guò)以下程序?qū)崿F(xiàn):
本發(fā)明還提供了一種可讀介質(zhì),包括執(zhí)行指令,當(dāng)存儲(chǔ)控制器的處理器執(zhí)行所述執(zhí)行指令時(shí),所述存儲(chǔ)控制器執(zhí)行本發(fā)明上述任一實(shí)施例提供的數(shù)據(jù)傳輸方法。
另外,本發(fā)明還提供了一種存儲(chǔ)控制器,包括:處理器、存儲(chǔ)器和總線;所述存儲(chǔ)器用于存儲(chǔ)執(zhí)行指令,所述處理器與所述存儲(chǔ)器通過(guò)所述總線連接,當(dāng)所述存儲(chǔ)控制器運(yùn)行時(shí),所述處理器執(zhí)行所述存儲(chǔ)器存儲(chǔ)的所述執(zhí)行指令,以使所述存儲(chǔ)控制器執(zhí)行本發(fā)明上述任一實(shí)施例提供的數(shù)據(jù)傳輸方法。綜上,本發(fā)明各個(gè)實(shí)施例至少具有如下有益效果:
1、在本發(fā)明實(shí)施例中,當(dāng)有數(shù)據(jù)需要傳輸時(shí),數(shù)據(jù)發(fā)送端會(huì)隨機(jī)生成一個(gè)第一加密密鑰,并利用默認(rèn)的第二加密密鑰對(duì)第一加密加密進(jìn)行加密,然后在利用加密后的第一加密密鑰對(duì)需要傳輸?shù)臄?shù)據(jù)進(jìn)行加密,生成密文,最終將密文和加密后的第一加密密鑰合并,并發(fā)送給數(shù)據(jù)接收端,那么數(shù)據(jù)接收端就可以根據(jù)預(yù)設(shè)的拆分規(guī)則從合并后的密文中拆分出加密后的第一加密密鑰,然后利用其實(shí)現(xiàn)對(duì)拆分出的密文的解密,以此獲取到數(shù)據(jù)發(fā)送端發(fā)送的數(shù)據(jù)。本方案中只需數(shù)據(jù)發(fā)送端保存有預(yù)設(shè)的第二加密密鑰即可,而數(shù)據(jù)接收端無(wú)需保存該第二加密密鑰則可實(shí)現(xiàn)數(shù)據(jù)的解密,而且即使數(shù)據(jù)發(fā)送端預(yù)設(shè)的第二加密密鑰被泄露,但由于第一加密密鑰和待傳輸?shù)臄?shù)據(jù)均采用了相同的加密算法,當(dāng)合并在一起時(shí),第三方無(wú)法區(qū)分出哪塊是密文,哪塊是加密后的第一加密密鑰,因此很好的提高了數(shù)據(jù)的安全性。
2、在本發(fā)明實(shí)施例中,針對(duì)所有待傳輸?shù)臄?shù)據(jù)均可采用相同的第二加密密鑰實(shí)現(xiàn)對(duì)本次生成的第一加密密鑰的加密,因?yàn)楸痉桨钢械牡诙用苊荑€主要是將本次隨機(jī)生成的第一加密密鑰加密成與需要傳輸?shù)臄?shù)據(jù)具有相同類(lèi)型的加密格式,這樣合并在一起發(fā)送時(shí)極大提高了密鑰和密文的安全性,而且由于數(shù)據(jù)接收端無(wú)需在保存加密密鑰,因此本方案極大簡(jiǎn)化了收發(fā)雙方的密鑰管理工作,對(duì)于改進(jìn)當(dāng)前繁瑣的密鑰管理具有重要意義。
3、在本發(fā)明實(shí)施例中,將采用相同加密算法加密的第一加密密鑰和密文進(jìn)行合并,可以降低加密后的第一加密密鑰和密文被暴力破解的可能性,進(jìn)一步加強(qiáng)了數(shù)據(jù)安全。
需要說(shuō)明的是,在本文中,諸如第一和第二之類(lèi)的關(guān)系術(shù)語(yǔ)僅僅用來(lái)將一個(gè)實(shí)體或者操作與另一個(gè)實(shí)體或操作區(qū)分開(kāi)來(lái),而不一定要求或者暗示這些實(shí)體或操作之間存在任何這種實(shí)際的關(guān)系或者順序。而且,術(shù)語(yǔ)“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過(guò)程、方法、物品或者設(shè)備不僅包括那些要素,而且還包括沒(méi)有明確列出的其他要素,或者是還包括為這種過(guò)程、方法、物品或者設(shè)備所固有的要素。在沒(méi)有更多限制的情況下,由語(yǔ)句“包括一個(gè)······”限定的要素,并不排除在包括所述要素的過(guò)程、方法、物品或者設(shè)備中還存在另外的相同因素。
本領(lǐng)域普通技術(shù)人員可以理解:實(shí)現(xiàn)上述方法實(shí)施例的全部或部分步驟可以通過(guò)程序指令相關(guān)的硬件來(lái)完成,前述的程序可以存儲(chǔ)在計(jì)算機(jī)可讀取的存儲(chǔ)介質(zhì)中,該程序在執(zhí)行時(shí),執(zhí)行包括上述方法實(shí)施例的步驟;而前述的存儲(chǔ)介質(zhì)包括:rom、ram、磁碟或者光盤(pán)等各種可以存儲(chǔ)程序代碼的介質(zhì)中。
最后需要說(shuō)明的是:以上所述僅為本發(fā)明的較佳實(shí)施例,僅用于說(shuō)明本發(fā)明的技術(shù)方案,并非用于限定本發(fā)明的保護(hù)范圍。凡在本發(fā)明的精神和原則之內(nèi)所做的任何修改、等同替換、改進(jìn)等,均包含在本發(fā)明的保護(hù)范圍內(nèi)。