專(zhuān)利名稱(chēng):利用隨機(jī)排序和隨機(jī)塊大小的安全數(shù)據(jù)傳輸?shù)闹谱鞣椒?br>
技術(shù)領(lǐng)域:
本申請(qǐng)主要涉及數(shù)據(jù)通信,更具體地,涉及信息安全。
背景技術(shù):
用以傳輸金融的和其他的重要信息的計(jì)算機(jī)技術(shù)的使用持續(xù)增加。由于這些傳輸?shù)膶傩?,保護(hù)信息在傳輸過(guò)程中不泄露給非授權(quán)方是很重要的。傳統(tǒng)上利用加密提供這些通信的安全。無(wú)論是否采用加密,數(shù)據(jù)的傳輸通常通過(guò)將數(shù)據(jù)分成多個(gè)塊并且順序傳輸這些塊來(lái)實(shí)現(xiàn)。每個(gè)塊中的信息通常`具有相同的大小。由于這種塊的順序和大小可被容易地確定,所以,即使被加密,竊取者仍能獲得關(guān)于通信內(nèi)容的有價(jià)值的信息。更具體地,如果已知塊內(nèi)存在的信息類(lèi)型,則可以確定加密密鑰,從而可以獲得利用相同密鑰加密的其他塊的內(nèi)容。當(dāng)存在相同內(nèi)容的多個(gè)副本被分配時(shí),該問(wèn)題更加惡化。例如,數(shù)字塊遞送服務(wù)向用戶(hù)分配數(shù)字書(shū)的多個(gè)副本。每個(gè)副本可通過(guò)不同的密鑰加密。因?yàn)楦`取者已訪問(wèn)了用不同密鑰多次加密的已知數(shù)據(jù)(例如,書(shū)的第一頁(yè)),所以竊取者可能能夠恢復(fù)用于加密該數(shù)據(jù)的密鑰。竊取者然后能使用該密鑰來(lái)解密剩余的數(shù)據(jù)。因此,需要一種用于安全地傳輸和存儲(chǔ)包含已知信息類(lèi)型的數(shù)據(jù)的系統(tǒng)。
發(fā)明內(nèi)容
根據(jù)本發(fā)明的一個(gè)方面,提供了一種用于原始數(shù)據(jù)組的安全數(shù)據(jù)傳輸?shù)难b置,包括第一模塊被配置為將所述原始數(shù)據(jù)組劃分成多個(gè)塊,其中,所述多個(gè)塊中的至少兩個(gè)塊具有不同的大??;加密處理器被配置為對(duì)所述多個(gè)塊進(jìn)行加密;以及第二模塊;被配置為以隨機(jī)的順序傳輸所述多個(gè)塊。優(yōu)選地,第一模塊被進(jìn)一步配置為在將原始數(shù)據(jù)組劃分成多個(gè)塊之前對(duì)原始數(shù)據(jù)組應(yīng)用環(huán)式移位。優(yōu)選地,第一模塊被進(jìn)一步配置為將原始數(shù)據(jù)中的一組識(shí)別數(shù)據(jù)分在兩個(gè)塊中。優(yōu)選地,第二模塊被進(jìn)一步配置為在傳輸期間在多個(gè)塊中包括虛擬塊。優(yōu)選地,第二模塊被進(jìn)一步配置為將一個(gè)塊插入多個(gè)數(shù)據(jù)傳輸槽中的一個(gè)數(shù)據(jù)傳輸槽中,其中,數(shù)據(jù)傳輸槽的編號(hào)基于產(chǎn)生的隨機(jī)數(shù)。其中,所述第二模塊被進(jìn)一步配置為基于產(chǎn)生的隨機(jī)數(shù)來(lái)選擇數(shù)據(jù)傳輸槽。所述第二模塊被進(jìn)一步配置為傳輸與所選擇的數(shù)據(jù)傳輸槽相關(guān)聯(lián)的塊。
根據(jù)本發(fā)明的另一個(gè)方面,提供了一種計(jì)算機(jī)可讀存儲(chǔ)裝置,具有被存儲(chǔ)的計(jì)算機(jī)可執(zhí)行指令,通過(guò)計(jì)算裝置執(zhí)行所述指令,使得所述計(jì)算裝置執(zhí)行如下操作將原始數(shù)據(jù)組劃分成多個(gè)塊,其中,所述多個(gè)塊中的至少兩個(gè)塊具有不同的大?。辉诩用芴幚砥髦袑?duì)所述多個(gè)塊進(jìn)行加密;以及以隨機(jī)的順序傳輸所述多個(gè)塊。優(yōu)選地,在將所述原始數(shù)據(jù)組劃分成多個(gè)塊之前對(duì)原始數(shù)據(jù)組應(yīng)用環(huán)式移位。優(yōu)選地,將原始數(shù)據(jù)中的一組識(shí)別數(shù)據(jù)分在兩個(gè)塊中。優(yōu)選地,將一個(gè)塊插入多個(gè)數(shù)據(jù)傳輸槽中的一個(gè)數(shù)據(jù)傳輸槽中,其中,數(shù)據(jù)傳輸槽的編號(hào)基于產(chǎn)生的隨機(jī)數(shù)。其中,基于產(chǎn)生的隨機(jī)數(shù)來(lái)選擇數(shù)據(jù)傳輸槽。其中,傳輸與所選擇的數(shù)據(jù)傳輸槽相關(guān)聯(lián)的塊。根據(jù)本發(fā)明的又一個(gè)方面,提供了一種用于安全數(shù)據(jù)傳輸?shù)姆椒ǎ▽⒃紨?shù)據(jù)組劃分成多個(gè)塊,其中,所述多個(gè)塊中的至少兩個(gè)塊具有不同的大??;在加密處理器中對(duì)所述多個(gè)塊進(jìn)行加密;以及以隨機(jī)的順序傳輸所述多個(gè)塊。優(yōu)選地,在將原始數(shù)據(jù)組劃分成多個(gè)塊之前對(duì)原始數(shù)據(jù)組應(yīng)用環(huán)式移位。優(yōu)選地,將原始數(shù)據(jù)中的一組識(shí)別數(shù)據(jù)分在兩個(gè)塊中。優(yōu)選地,將一個(gè)塊插入進(jìn)多個(gè)數(shù)據(jù)傳輸槽中的一個(gè)數(shù)據(jù)傳輸槽,其中,數(shù)據(jù)傳輸槽的編號(hào)基于產(chǎn)生的隨機(jī)數(shù)。其中,基于產(chǎn)生的隨機(jī)數(shù)來(lái)選擇數(shù)據(jù)傳輸槽。傳輸與所選擇的數(shù)據(jù)傳輸槽相關(guān)聯(lián)的塊。
被結(jié)合在本文中并形 成說(shuō)明書(shū)的一部分的附圖與說(shuō)明書(shū)一起示出了本發(fā)明,進(jìn)一步用于解釋發(fā)明的原理并用于使相關(guān)領(lǐng)域中的普通技術(shù)人員能夠做出并使用該發(fā)明。圖1是根據(jù)發(fā)明的實(shí)施方式的用于利用隨機(jī)排序和隨機(jī)塊大小的安全數(shù)據(jù)傳輸?shù)南到y(tǒng)的示例性操作環(huán)境的框圖。圖2是根據(jù)發(fā)明的實(shí)施方式的用于利用隨機(jī)排序和隨機(jī)塊大小的安全數(shù)據(jù)傳輸?shù)南到y(tǒng)的可選的操作環(huán)境的框圖。圖3是根據(jù)本發(fā)明的實(shí)施方式的用于安全地傳輸數(shù)據(jù)的示例性方法的流程圖。圖4A是根據(jù)本發(fā)明的實(shí)施方式的用于將明碼文本劃分成不同大小的塊的方法的示例性實(shí)例。圖4B是根據(jù)本發(fā)明的實(shí)施方式的將明碼文本劃分成不同大小的塊的方法的可選步驟的示例性實(shí)例。圖5描述了根據(jù)本發(fā)明的實(shí)施方式的用于無(wú)序地隨機(jī)傳輸加密塊的方法的步驟的流程圖。圖6是根據(jù)本發(fā)明的實(shí)施方式的用于無(wú)序地隨機(jī)傳輸加密塊的方法的示例性實(shí)例。圖7是根據(jù)本發(fā)明的實(shí)施方式的用于重組變化大小的塊的示例性方法的流程圖。圖8示出了在其上可實(shí)現(xiàn)實(shí)施方式的示例性計(jì)算機(jī)系統(tǒng)的框圖。
具體實(shí)施例方式圖1是根據(jù)發(fā)明的實(shí)施方式的用于利用隨機(jī)排序和隨機(jī)塊大小的安全數(shù)據(jù)傳輸?shù)南到y(tǒng)的示例性操作環(huán)境的框圖。示例性操作環(huán)境100包括源110、通信介質(zhì)140以及目的地 150。源110包括塊創(chuàng)建器121、加密處理器122、隨機(jī)直接存儲(chǔ)訪問(wèn)(RDMA)模塊123、隨機(jī)數(shù)發(fā)生器124以及存儲(chǔ)器125。存儲(chǔ)器125被配置成存儲(chǔ)明碼文本131和一個(gè)或多個(gè)密碼密鑰132。明碼文本131是未被加密的數(shù)據(jù)。通過(guò)加密處理器將密碼密鑰132用于對(duì)數(shù)據(jù)進(jìn)行密碼處理(例如,加密或解密)。密碼密鑰可如密碼算法所要求的為對(duì)稱(chēng)密鑰或非對(duì)稱(chēng)密鑰。盡管存儲(chǔ)器125通常為RAM,但如本領(lǐng)域技術(shù)人員所理解的,存儲(chǔ)器125可以是任意類(lèi)型的存儲(chǔ)器并且可以在加密處理器122的內(nèi)部或外部。塊創(chuàng)建器121被配置為將明碼文本131劃分成一個(gè)或多個(gè)可變大小的塊。在下面的圖3中進(jìn)一步詳細(xì)描述塊創(chuàng)建器121的操作。加密處理器122提供所需的密碼操作,以對(duì)由塊創(chuàng)建器121所產(chǎn)生的一個(gè)或多個(gè)可變大小的塊進(jìn)行密碼處理。加密處理器可支持包括諸如AES、三重DES以及DES的對(duì)稱(chēng)算法或諸如DSA或RSA的非對(duì)稱(chēng)算法的各種密碼算法。加密處理器可支持諸如RC4的流密碼。在實(shí)施方式中,加密處理器還可執(zhí)行密碼混編功能。根據(jù)算法需要,加密處理器可以使用各種大小的密鑰。RDMA 123被配置成以隨機(jī)的順序經(jīng)由通信介質(zhì)140傳輸加密的數(shù)據(jù)塊。在下面的圖3中進(jìn)一步詳細(xì)描述RDMA 123的操作。在實(shí)施方式中源110經(jīng)由通信介質(zhì)140將加密文本安全地傳輸至目的地150。通信介質(zhì)140可以是諸如因特網(wǎng)的公共數(shù)據(jù)通信網(wǎng)絡(luò)、私有數(shù)據(jù)通信網(wǎng)絡(luò)、公共開(kāi)關(guān)電話(huà)網(wǎng)絡(luò)(PSTN)、無(wú)線通信網(wǎng)絡(luò)、計(jì)算機(jī)總線、電路通路,或其任意結(jié)合。數(shù)據(jù)源110與通信介質(zhì)140之間的接口可以是無(wú)線或有線接口。目的地150包括加密處理器161、塊重組器162以及存儲(chǔ)器163。目的地150可位于與源110物理上分開(kāi)的地方。加密處理器161被配置為對(duì)通過(guò)數(shù)據(jù)源110發(fā)送的一個(gè)或多個(gè)可變大小的塊進(jìn)行密碼處理(例如,解密)。為了解密接收到的加密數(shù)據(jù),目的地150存儲(chǔ)一個(gè)或多個(gè)密碼密鑰。對(duì)相關(guān)領(lǐng)域的技術(shù)人員顯而易見(jiàn)的是,本發(fā)明可以使用用于在源110與目的地150之間交換密碼密鑰和其他所需信息的各種技術(shù)。塊重組器162被配置為將可變大小的塊重新排序到其原始的位置。在下面的圖9中進(jìn)一步詳細(xì)描述塊重組器162的操作。存儲(chǔ)器163被配置為存儲(chǔ)加密文本171和一個(gè)或多個(gè)密碼密鑰172。在一個(gè)實(shí)施方式中,加密文本可在解密之前被存儲(chǔ)??蛇x地,存儲(chǔ)加密文本和所得的明碼文本。盡管存儲(chǔ)器163通常為RAM,但是如本領(lǐng)域中的技術(shù)人員所理解的,存儲(chǔ)器163可以是任意類(lèi)型的存儲(chǔ)器并且可以在加密處理器161的內(nèi)部或外部。加密文本171包括通過(guò)源110發(fā)送的一個(gè)或多個(gè)加密塊。密碼密鑰172是當(dāng)由加密處理器161處理時(shí)結(jié)合加密文本171產(chǎn)生明碼文本131的一條信息。根據(jù)密碼算法,密鑰可以是對(duì)稱(chēng)密鑰或非對(duì)稱(chēng)密鑰。本文所描述的技術(shù)還可用于提高災(zāi)難恢復(fù)的安全性。圖2描述了根據(jù)發(fā)明的實(shí)施方式的用于安全數(shù)據(jù)傳輸和存儲(chǔ)的本發(fā)明系統(tǒng)的框圖。操作環(huán)境200包括源210、通信介質(zhì)240以及目的地250-1至250-N。 上述參照?qǐng)D1描述了源210和通信介質(zhì)240。在環(huán)境200中,原始數(shù)據(jù)被源劃分成多個(gè)加密塊,并且這些塊被分配至多個(gè)目的地。例如,在圖2中,力口密塊A被存儲(chǔ)在目的地250-1,加密塊B被存儲(chǔ)在目的地250-3,加密塊C、D和E被存儲(chǔ)在目的地250-2,而加密塊X被存儲(chǔ)在目的地250-N。這種分配的實(shí)施方式提供了附加的安全級(jí)。目的地250-1至250-N可包括與在圖1中所描述的目的地150相同的功能。然而,在該實(shí)施方式中,加密文本171的加密塊在目的地250-1至250-N之間分配,使得每個(gè)數(shù)據(jù)目的文件包括一組塊。加密文本171在目的地250-1至250-N之間分配確保了即使一個(gè)或多個(gè)目的文件丟失仍能恢復(fù)原始數(shù)據(jù)的至少一部分。另外,由于存儲(chǔ)器是分配的,在一個(gè)目的地的安全破壞將不會(huì)危及所有的原始數(shù)據(jù)。圖3是根據(jù)本發(fā)明的實(shí)施方式的用于安全地傳輸數(shù)據(jù)的示例方法300的流程圖。基于下面的描述,其他結(jié)構(gòu)的實(shí)施方式對(duì)相關(guān)領(lǐng)域的技術(shù)人員而言將是顯而易見(jiàn)的。圖3中所示的操作不必以所示的順序出現(xiàn),方法300也不要求圖3中所示的所有操作都被執(zhí)行。在下面詳細(xì)描述圖3的操作。在步驟310中,明碼文本131的全部或一部分被劃分成多個(gè)可變大小的塊。步驟310包括步驟312-316。在實(shí)施方式中,在步驟310中,可以將明碼文本移位隨機(jī)數(shù)量的字節(jié)。可選地,可以將明碼文本移位隨機(jī)數(shù)量的位。隨機(jī)地移位明碼文本提供了附加的數(shù)據(jù)安全,特別是當(dāng)傳輸明碼文本131的多個(gè)副本時(shí),這是因?yàn)楦鱾鬏斨g傳輸?shù)牡谝蛔止?jié)或位不同。在步驟312中,通過(guò)隨機(jī)數(shù)發(fā)生器124產(chǎn)生隨機(jī)數(shù)或偽隨機(jī)數(shù),Rval。然后使用隨機(jī)數(shù),Rval來(lái)確定移位量。例如,可如下計(jì)算移位量(Shift_Amount)Shift_Amount=mod (Rval, Plaintext_length)在步驟314中,將明碼文本131移位Shift_Amount字節(jié)。在實(shí)施方式中,向左移位字節(jié)。如相關(guān)領(lǐng)域的技術(shù)人員所理解的,可使用用于移位數(shù)據(jù)的其他技術(shù)。圖4A描述了根據(jù)本發(fā)明的實(shí)施方式的將明碼文本劃分成可變大小的塊的示例性實(shí)例。在圖4A中,系統(tǒng)已對(duì)數(shù)據(jù)產(chǎn)生了 5的移位量。明碼文本401向左移位5個(gè)字節(jié)以產(chǎn)生移位的文本402。從右邊移進(jìn)的字節(jié)是在左邊移出的字節(jié)。換言之,應(yīng)用了循環(huán)移位。在步驟316中,將明碼文本劃分成多個(gè)可變大小的塊。更具體地,以字節(jié)計(jì)算的每個(gè)塊的大小基于通過(guò)隨機(jī)數(shù)發(fā)生器124產(chǎn)生的隨機(jī)數(shù)。每個(gè)塊在大小上必須為至少一個(gè)字節(jié)并且小于或等于單個(gè)數(shù)據(jù)傳輸槽(single data transfer slot)的大小。例如,在圖4A中,明碼文本402中的字節(jié)5和6組成了一個(gè)傳輸塊,而字節(jié)7、8、9和0組成了另一個(gè)傳輸塊。如果要求附加的數(shù)據(jù)安全,則塊創(chuàng)建器123可將在明碼文本內(nèi)的機(jī)密信息在塊之間劃分。換言之,為了防止機(jī)密信息存儲(chǔ)在單個(gè)塊中,塊創(chuàng)建器123在隨機(jī)的位置處劃分機(jī)密信息。圖4B描述了根據(jù)本發(fā)明的實(shí)施方式的將明碼文本內(nèi)的機(jī)密信息在塊之間劃分的可選步驟的示例性實(shí)例。在圖4B中,塊創(chuàng)建器123將明碼文本501中的機(jī)密信息在塊B和C之間劃分?;陔S機(jī)數(shù)發(fā)生器124產(chǎn)生的隨機(jī)數(shù)來(lái)確定移位的位置。對(duì)相關(guān)領(lǐng)域的技術(shù)人員顯而易見(jiàn)的是,可使用各種機(jī) 制來(lái)通知塊創(chuàng)建器123關(guān)于明碼文本中的機(jī)密信息的位置。在步驟320中,加密處理器122通過(guò)一個(gè)或多個(gè)密碼密鑰132對(duì)多個(gè)可變大小的塊進(jìn)行加密。對(duì)相關(guān)領(lǐng)域的技術(shù)人員顯而易見(jiàn)的是,根據(jù)所使用的密碼算法的要求,可順序地或同時(shí)地執(zhí)行步驟310和320的部分。換言之,加密處理器122可將可變大小的塊在它們被塊創(chuàng)建器121產(chǎn)生時(shí)進(jìn)行加密??蛇x地,加密處理器122可將可變大小的塊在所有這些塊被塊創(chuàng)建器121產(chǎn)生之后進(jìn)行加密。在步驟330中,將加密的塊傳輸至目的地。在實(shí)施方式中,可以無(wú)序地傳輸加密的塊。更具體地,一組加密的塊被映射至多個(gè)數(shù)據(jù)傳輸槽。RDMA 123隨機(jī)選取數(shù)據(jù)傳輸槽并且將其中的加密的塊傳輸至目的地。步驟330包括步驟332-336。通常,加密的塊以連續(xù)的順序被發(fā)送至目的地。然而,RDMA 123被配置成將加密的塊無(wú)序地傳輸至一個(gè)或多個(gè)目的地。此外,在實(shí)施方式中,使用多條信道來(lái)傳輸加密的塊。換言之,除了被無(wú)序地傳輸之外,加密的塊可基于時(shí)間、頻率或其任意組合通過(guò)多條信道被傳播。在步驟332中,確定數(shù)據(jù)傳輸槽的編號(hào)。數(shù)據(jù)傳輸槽被用于發(fā)送一組加密的塊。每個(gè)數(shù)據(jù)傳輸槽可具有表示其順序位置的槽編號(hào)。為了提升安全性,數(shù)據(jù)傳輸槽的編號(hào)基于通過(guò)隨機(jī)數(shù)發(fā)生器124產(chǎn)生的隨機(jī)數(shù)。此外,一旦分配給數(shù)據(jù)傳輸槽的一組加密的塊被傳輸,則重新確定數(shù)據(jù)傳輸槽的編號(hào)。通過(guò)計(jì)算每組加密的塊的隨機(jī)數(shù)據(jù)傳輸槽,提高了安全性。當(dāng)加密的塊被分配至多個(gè)目的地時(shí),在數(shù)據(jù)傳輸槽中的加密的塊將優(yōu)選地被發(fā)送至相同的目的地。然而,對(duì)相關(guān)領(lǐng)域中的技術(shù)人員顯而易見(jiàn)的是,可以使用各種方法和數(shù)據(jù)結(jié)構(gòu)將在不同數(shù)據(jù)傳輸槽中的數(shù)據(jù)發(fā)送至不同的目的地。數(shù)據(jù)傳輸槽的編號(hào)可通過(guò)下面的公式來(lái)計(jì)算
SQ=mod(Rval, SQmax-Sqmin) +SQminRval是通過(guò)隨機(jī)數(shù)發(fā)生器124產(chǎn)生的隨機(jī)數(shù)。SQmax和SQmin是數(shù)據(jù)傳輸槽的最大編號(hào)和最小編號(hào)。SQ為用于傳輸?shù)臄?shù)據(jù)傳輸槽的編號(hào)。SQ在SQmin與SQmax的范圍內(nèi)。如前面所討論的,為了增加數(shù)據(jù)的安全性,SQ的值可隨每次傳輸而變化。在步驟334中,加密的塊被順序映射至數(shù)據(jù)傳輸槽。加密的塊I被映射至數(shù)據(jù)傳輸槽I,加密的塊2被映射至數(shù)據(jù)傳輸槽2,等等。如果要求附加的數(shù)據(jù)安全性,RDMA 123在數(shù)據(jù)傳輸之前可產(chǎn)生一個(gè)或多個(gè)虛擬塊。RDMA 123將一個(gè)或多個(gè)虛擬塊隨機(jī)地映射至一個(gè)或多個(gè)數(shù)據(jù)傳輸槽。例如,在圖6中,虛擬塊被映射至數(shù)據(jù)傳輸槽6。對(duì)相關(guān)領(lǐng)域中的技術(shù)人員顯而易見(jiàn)的是,可利用各種方法將一個(gè)或多個(gè)虛擬塊映射至一個(gè)或多個(gè)數(shù)據(jù)傳輸槽。一個(gè)或多個(gè)虛擬塊表示偽數(shù)據(jù),通過(guò)發(fā)送一個(gè)或多個(gè)虛擬塊,攔截塊的第三方將不能確定是否該塊表示合法的數(shù)據(jù)。然而,虛擬塊的使用降低了數(shù)據(jù)吞吐率。因此,對(duì)相關(guān)領(lǐng)域中的技術(shù)人員顯而易見(jiàn)的是,虛擬塊的使用表示數(shù)據(jù)安全性與傳輸速度之間的平衡。在步驟336中,選擇并傳輸未被傳輸?shù)募用艿膲K。在下面的圖5中進(jìn)一步詳細(xì)描述隨機(jī)塊傳輸操作。在步驟340中,目的地150接收加密的塊并且將其存儲(chǔ)在存儲(chǔ)器163中。目的地150還接收與加密的塊相關(guān)聯(lián)的數(shù)據(jù)槽編號(hào)。在步驟350中,加密處理器161利用密碼密鑰172來(lái)解密加密的塊。從而獲得原始的可變大小的塊。對(duì)現(xiàn)有技術(shù)中的技術(shù)人員顯而易見(jiàn)的是,存在各種在源與目的地之間安全地交換密碼密鑰的機(jī)制。在步驟360中,塊重組器162根據(jù)所接收的數(shù)據(jù)槽編號(hào)將被解密的可變大小的塊排序。在下面的圖7中進(jìn)一步描述塊重組器162的操作。對(duì)相關(guān)領(lǐng)域的技術(shù)人員顯而易見(jiàn)的是,可順序地或同時(shí)地執(zhí)行步驟350和360。圖5描述了根據(jù)本發(fā)明的實(shí)施方式的用于隨機(jī)傳輸加密的塊的方法的步驟336的流程圖?;谙旅娴挠懻?,其他結(jié)構(gòu)的實(shí)施方式對(duì)相關(guān)領(lǐng)域中的技術(shù)人員而言是顯而易見(jiàn)的。圖5中所示的操作無(wú)需以所示的順序出現(xiàn),方法500也不必要求執(zhí)行圖5中所示的全部操作。下面詳細(xì)描述圖5的操作。在步驟510中,將剩余的要傳輸?shù)臄?shù)據(jù)傳輸槽的編號(hào)(例如,Scurr)初始化為在圖3的步驟332中所計(jì)算的數(shù)據(jù)傳輸槽的編號(hào)。在步驟520中,通過(guò)隨機(jī)數(shù)發(fā)生器124來(lái)產(chǎn)生隨機(jī)數(shù),例如,Rval。 在步驟530中,利用隨機(jī)數(shù)Rval來(lái)計(jì)算要傳輸?shù)臄?shù)據(jù)傳輸槽。更具體地,基于Rval來(lái)計(jì)算要傳輸?shù)臄?shù)據(jù)傳輸槽的槽編號(hào)。數(shù)據(jù)傳輸槽編號(hào)可計(jì)算如下Sidx=mod (Rval, SQ)Rval是通過(guò)隨機(jī)數(shù)發(fā)生器124產(chǎn)生的隨機(jī)數(shù)。SQ是在步驟332中計(jì)算的數(shù)據(jù)傳輸槽的編號(hào)。Sidx是要傳輸?shù)臄?shù)據(jù)傳輸槽的槽編號(hào)。在可選實(shí)施方式中,可基于其他因素來(lái)選`擇數(shù)據(jù)傳輸槽編號(hào)。例如,可基于塊的傳輸優(yōu)先級(jí)或發(fā)送塊的用戶(hù)來(lái)選擇數(shù)據(jù)傳輸槽編號(hào)。對(duì)相關(guān)領(lǐng)域中的技術(shù)人員顯而易見(jiàn)的是,傳輸優(yōu)先級(jí)可反映塊中的數(shù)據(jù)類(lèi)型,所述塊的傳輸成本,或其任意組合。在步驟540中,確定被映射至數(shù)據(jù)傳輸槽Sidx的加密的塊先前是否已被傳輸。如果該加密的塊已被傳輸,則處理返回至步驟520。在步驟550中,被映射至數(shù)據(jù)傳輸槽Sidx的加密的塊被傳輸至目的地。數(shù)據(jù)傳輸槽編號(hào),例如,Sidx,也被發(fā)送至目的地。在優(yōu)選實(shí)施方式中,Sidx作為加密的塊經(jīng)由不同的通信信道被發(fā)送至目的地。在步驟560中,數(shù)據(jù)傳輸槽被標(biāo)記為已傳輸。這防止了加密的塊被再次傳輸。在步驟570中,剩余的要傳輸?shù)牟鄣木幪?hào)(例如,Scurr)減一。在步驟580中,如果仍有槽要被傳輸(例如,Scurr大于或等于I),則操作返回至步驟520,其中,選擇另一槽并且傳輸其對(duì)應(yīng)的數(shù)據(jù)。重復(fù)步驟520-580,直至已選擇了每個(gè)可用槽。對(duì)相關(guān)領(lǐng)域中的技術(shù)人員顯而易見(jiàn)的是,可以一次傳輸一個(gè)加密的塊。可選地,可同時(shí)傳輸多個(gè)加密的塊。如果要求附加的安全性,還可通過(guò)多個(gè)獨(dú)立信道分配加密的塊。換言之,加密的塊可基于時(shí)間、頻率或其組合來(lái)傳播。圖7描述了根據(jù)本發(fā)明的實(shí)施方式的用于重組可變大小塊的示例性方法的流程圖?;谙旅娴挠懻摚渌Y(jié)構(gòu)的實(shí)施方式對(duì)相關(guān)領(lǐng)域中的技術(shù)人員而言將是顯而易見(jiàn)的。圖7中所示的操作無(wú)需以所示的順序發(fā)生,方法700也并不要求圖7中所示的所有操作被執(zhí)行。下面詳細(xì)描述圖7的操作。在步驟710中,將接收的槽編號(hào)列表(例如,Recv_List)設(shè)定為空。Recv_List包含所接收的數(shù)據(jù)傳輸槽編號(hào)。ReCV_List被用于確定源110是否已從數(shù)據(jù)傳輸槽完成傳輸加密的塊。對(duì)相關(guān)領(lǐng)域中的技術(shù)人員顯而易見(jiàn)的是,利用各種方法和數(shù)據(jù)結(jié)構(gòu),所接收的槽編號(hào)列表可被實(shí)現(xiàn)并且被提供至一個(gè)目的地或多個(gè)目的地。在步驟720中,接收解密的塊和其相關(guān)的數(shù)據(jù)槽編號(hào)(例如,Sidx)。在步驟730中,塊重組器162確定Sidx是否在所接收的槽編號(hào)列表中。如果Sidx不在該列表中,則操作進(jìn)行至步驟750。如果Sidx在該列表中,則解密的塊或者被重新傳輸,或者源110已開(kāi)始從數(shù)據(jù)傳輸槽的新范圍傳輸加密的塊。在步驟740中,塊重組器162確定解密的塊是否已被存儲(chǔ)在其余解密塊的之中的位置Sidx。如果解密塊還未被存儲(chǔ),則該塊被重新傳輸且操作進(jìn)行至步驟760。如果塊已被存儲(chǔ)在Sidx,則源110已開(kāi)始從數(shù)據(jù)傳輸槽的新的范圍傳輸加密的塊并且操作轉(zhuǎn)至步驟710。
在步驟750中,Sidx被添加至所接收的槽編號(hào)列表,例如,Recv_List。在步驟760中,塊重組器162將解密的塊重新排序在其余解密塊之中的位置Sidx。對(duì)相關(guān)領(lǐng)域中的技術(shù)人員顯而易見(jiàn)的是,可使用各種方法和數(shù)據(jù)結(jié)構(gòu),以通過(guò)數(shù)據(jù)傳輸槽編號(hào)將解密的塊排序。例如,解碼塊可被分配成將陣列偏移Sidx。相關(guān)領(lǐng)域的技術(shù)人員可以理解的是,塊重組器162的操作可擴(kuò)大至將塊重組成明碼文本,其如圖2中所描述的塊在多個(gè)目的地之間分配。例如,在優(yōu)選實(shí)施方式中,一組數(shù)據(jù)傳輸槽中的每個(gè)數(shù)據(jù)傳輸槽被發(fā)送至相同的目的地,存儲(chǔ)在數(shù)據(jù)傳輸槽中的明碼文本連續(xù)片段的開(kāi)始偏移值將被發(fā)送至目的地。然后,基于偏移值,在目的地重組的每片明碼文本被合并成明碼文本。通用計(jì)算機(jī)系統(tǒng)的實(shí)例本文所給出的實(shí)施方式或其部分可以以硬件、固件、軟件和/或其結(jié)合來(lái)實(shí)現(xiàn)。本文給出的實(shí)施方式應(yīng)用于兩個(gè)或多個(gè)裝置之間的或在一個(gè)裝置的子組件內(nèi)的系統(tǒng)??梢砸杂布?、軟件或其某種結(jié)合來(lái)實(shí)現(xiàn)本文所描述的典型功能。例如,該典型功能可利用計(jì)算機(jī)處理器,計(jì)算機(jī)邏輯電路、專(zhuān)用電路(ASIC)、數(shù)字信號(hào)處理器等來(lái)實(shí)現(xiàn),如本領(lǐng)域中的那些技術(shù)人員基于本文給出的討論所理解的。因此,執(zhí)行本文所描述的功能的任何處理器都在本文給出的實(shí)施方式的范圍和思想內(nèi)。下面描述了可用于實(shí)現(xiàn)本文所公開(kāi)的實(shí)施方式的用計(jì)算機(jī)系統(tǒng)。本公開(kāi)可以以硬件來(lái)或者軟件與硬件的結(jié)合來(lái)實(shí)現(xiàn)。因此,可在計(jì)算機(jī)系統(tǒng)或其他處理系統(tǒng)的環(huán)境中實(shí)現(xiàn)該公開(kāi)。在圖8中示出了這樣的計(jì)算機(jī)系統(tǒng)800的實(shí)例。計(jì)算機(jī)系統(tǒng)800包括一個(gè)或多個(gè)處理器,諸如處理器804。處理器804可以是專(zhuān)用或通用數(shù)字信號(hào)處理器。處理器804被連接至通信基礎(chǔ)設(shè)施(例如,總線或網(wǎng)絡(luò))。就該示例性計(jì)算機(jī)系統(tǒng)描述了各種軟件實(shí)現(xiàn)。在閱讀該描述之后,相關(guān)領(lǐng)域中的技術(shù)人員顯而易見(jiàn)的是如何利用其他計(jì)算機(jī)系統(tǒng)和/或計(jì)算體系構(gòu)來(lái)實(shí)現(xiàn)本公開(kāi)。計(jì)算機(jī)系統(tǒng)800還包括主存儲(chǔ)器805,優(yōu)選地隨機(jī)存取存儲(chǔ)器(RAM),并且還可包括第二存儲(chǔ)器810。第二存儲(chǔ)器810例如可包括硬盤(pán)驅(qū)動(dòng)器812,和/或RAID陣列816,和/或表示為軟盤(pán)驅(qū)動(dòng)器、磁帶驅(qū)動(dòng)器、光盤(pán)驅(qū)動(dòng)器等的可移動(dòng)存儲(chǔ)驅(qū)動(dòng)器814。可移動(dòng)存儲(chǔ)驅(qū)動(dòng)器814以眾所周知的方式從可移動(dòng)存儲(chǔ)單元818讀取和/或?qū)懭胫猎摽梢苿?dòng)存儲(chǔ)單元。可移動(dòng)存儲(chǔ)單元818表示軟盤(pán)、磁帶、光盤(pán)等。正如將所理解的,可移動(dòng)存儲(chǔ)單元818包括具有在其中存儲(chǔ)了計(jì)算機(jī)軟件和/或數(shù)據(jù)的計(jì)算機(jī)可用存儲(chǔ)介質(zhì)。
在可選實(shí)現(xiàn)中,第二存儲(chǔ)器可包括用于使計(jì)算機(jī)程序或其他指令被加載進(jìn)計(jì)算機(jī)系統(tǒng)800的其他類(lèi)似裝置。這樣的裝置例如可包括可移動(dòng)存儲(chǔ)單元822和接口 820。這樣的裝置的實(shí)例可包括程序盒式存儲(chǔ)器和盒式存儲(chǔ)器接口(諸如,在視頻游戲裝置中找到的),可移動(dòng)存儲(chǔ)器芯片(諸如EPROM或PR0M)和相關(guān)的插座,以及允許軟件和數(shù)據(jù)從可移動(dòng)存儲(chǔ)單元822被傳輸至計(jì)算機(jī)系統(tǒng)800的其他可移動(dòng)存儲(chǔ)單元822和接口 820。計(jì)算機(jī)系統(tǒng)還可包括通信接口 824。通信接口 824允許軟件和數(shù)據(jù)在計(jì)算機(jī)系統(tǒng)800與外部裝置之間傳輸。通信接口 824的實(shí)例可包括調(diào)制解調(diào)器、網(wǎng)絡(luò)接口(諸如因特網(wǎng)卡)、通信端口、PCMCIA槽和卡等。經(jīng)由通信接口 824傳輸?shù)能浖蛿?shù)據(jù)為信號(hào)828的形式,其可以是電子的、電磁的、光的或能夠通過(guò)通信接口 824接收的其他信號(hào)。這些信號(hào)828經(jīng)由通信路徑826被提供至通信接口 824。通信路徑826承載信號(hào)828并且可以利用導(dǎo)線或電纜、光纖、電話(huà)線、蜂窩電話(huà)鏈路、RF鏈路以及其他通信信道來(lái)實(shí)現(xiàn)。
在本文中使用的術(shù)語(yǔ)“計(jì)算機(jī)介質(zhì)”和“計(jì)算機(jī)可用介質(zhì)”通常指諸如可移動(dòng)存儲(chǔ)驅(qū)動(dòng)器814、安裝在硬盤(pán)驅(qū)動(dòng)器中的硬盤(pán)812以及信號(hào)828的介質(zhì)。這些計(jì)算機(jī)程序產(chǎn)品為用于向計(jì)算機(jī)系統(tǒng)800提供軟件的裝置。計(jì)算機(jī)程序(還稱(chēng)為計(jì)算機(jī)控制邏輯)存儲(chǔ)在主存儲(chǔ)器805和/或第二存儲(chǔ)器810中。還可通過(guò)通信接口 824來(lái)接收計(jì)算機(jī)程序。這種計(jì)算機(jī)程序在被執(zhí)行時(shí)使得計(jì)算機(jī)系統(tǒng)800能夠?qū)崿F(xiàn)如本文所描述的本公開(kāi)。具體地,計(jì)算機(jī)程序在被執(zhí)行時(shí)使得處理器804能夠?qū)崿F(xiàn)本公開(kāi)的處理。例如,計(jì)算機(jī)程序在被執(zhí)行時(shí)使得處理器804能夠?qū)崿F(xiàn)在上面參照本文中的流程圖描述的步驟的一部分或全部。在本公開(kāi)利用軟件來(lái)實(shí)現(xiàn),軟件可被存儲(chǔ)在計(jì)算機(jī)程序產(chǎn)品中和利用RAID陣列816、可移動(dòng)存儲(chǔ)驅(qū)動(dòng)器814、硬盤(pán)驅(qū)動(dòng)器812或通信接口 824加載進(jìn)計(jì)算機(jī)系統(tǒng)800中。在其他實(shí)施方式中,本公開(kāi)的特征主要以利用(例如)諸如專(zhuān)用集成電路(ASIC)和可編程的或靜態(tài)的門(mén)陣列的硬件組件的硬件來(lái)實(shí)現(xiàn)。實(shí)現(xiàn)硬件狀態(tài)機(jī)以執(zhí)行本文所描述的功能對(duì)相關(guān)領(lǐng)域中的技術(shù)人員而言是顯而易見(jiàn)的。結(jié)論盡管上面已描述了各種實(shí)施方式,但應(yīng)理解的是,通過(guò)示例的方式給出這些實(shí)例,而并不是限制。對(duì)相關(guān)領(lǐng)域中的技術(shù)人員顯而易見(jiàn)的是,在不背離本文所給出的實(shí)施方式的思想和范圍的前提下,可以做出各種形式和細(xì)節(jié)上的變化。在上面已借助于示出了具體功能特性及其關(guān)系的功能結(jié)構(gòu)塊和方法步驟描述了本文給出的實(shí)施方式。為便于描述,本文中任意限定了這些功能結(jié)構(gòu)塊和方法步驟的邊界。只要具體的功能及其關(guān)系被適當(dāng)?shù)貓?zhí)行,可以限定可選的邊界。因此,任何這種可選的邊界在所要求的實(shí)施方式的范圍和精神內(nèi)。本領(lǐng)域的技術(shù)人員應(yīng)認(rèn)識(shí)到,可通過(guò)分離的組件、專(zhuān)用集成電路、執(zhí)行適當(dāng)?shù)能浖鹊奶幚砥骰蚱淙我饨M合來(lái)實(shí)現(xiàn)這些功能結(jié)構(gòu)塊。因此,本實(shí)施方式的寬度和范圍不應(yīng)受限于上述任意示例性實(shí)施方式,而應(yīng)僅根據(jù)下面的權(quán)利要求及其等同替換來(lái)定義。
權(quán)利要求
1.一種用于原始數(shù)據(jù)組的安全數(shù)據(jù)傳輸?shù)难b置,包括 第一模塊,被配置為將所述原始數(shù)據(jù)組劃分成多個(gè)塊,其中, 所述多個(gè)塊中的至少兩個(gè)塊具有不同的大小; 加密處理器,被配置為對(duì)所述多個(gè)塊進(jìn)行加密;以及 第二模塊,被配置為以隨機(jī)的順序傳輸所述多個(gè)塊。
2.根據(jù)權(quán)利要求1所述的裝置,其中,所述第一模塊被進(jìn)一步配置為在將所述原始數(shù)據(jù)組劃分成所述多個(gè)塊之前對(duì)所述原始數(shù)據(jù)組應(yīng)用環(huán)式移位。
3.根據(jù)權(quán)利要求1所述的裝置,其中,所述第一模塊被進(jìn)一步配置為將所述原始數(shù)據(jù)中的一組識(shí)別數(shù)據(jù)分在兩個(gè)塊中。
4.根據(jù)權(quán)利要求1所述的裝置,其中,所述第二模塊被進(jìn)一步配置為在傳輸期間在所述多個(gè)塊中包括虛擬塊。
5.根據(jù)權(quán)利要求1所述的裝置,其中,所述第二模塊被進(jìn)一步配置為將一個(gè)塊插入多個(gè)數(shù)據(jù)傳輸槽中的一個(gè)數(shù)據(jù)傳輸槽中,其中,數(shù)據(jù)傳輸槽的編號(hào)基于產(chǎn)生的隨機(jī)數(shù)。
6.根據(jù)權(quán)利要求5所述的裝置,其中,所述第二模塊被進(jìn)一步配置為基于產(chǎn)生的隨機(jī)數(shù)來(lái)選擇所述數(shù)據(jù)傳輸槽。
7.根據(jù)權(quán)利要求6所述的裝置,其中,所述第二模塊被進(jìn)一步配置為傳輸與所選擇的數(shù)據(jù)傳輸槽相關(guān)聯(lián)的塊。
8.一種用于安全數(shù)據(jù)傳輸?shù)姆椒?,包? 將原始數(shù)據(jù)組劃分成多個(gè)塊,其中,所述多個(gè)塊中的至少兩個(gè)塊具有不同的大??; 在加密處理器中對(duì)所述多個(gè)塊進(jìn)行加密;以及 以隨機(jī)的順序傳輸所述多個(gè)塊。
9.根據(jù)權(quán)利要求8所述的方法,其中,在將所述原始數(shù)據(jù)組劃分成所述多個(gè)塊之前對(duì)所述原始數(shù)據(jù)組應(yīng)用環(huán)式移位。
10.根據(jù)權(quán)利要求8所述的方法,將所述原始數(shù)據(jù)中的一組識(shí)別數(shù)據(jù)分在兩個(gè)塊中。
全文摘要
本發(fā)明涉及利用隨機(jī)排序和隨機(jī)塊大小的安全數(shù)據(jù)傳輸。加密信息通常被分成順序傳輸?shù)膲K。因?yàn)槟苋菀椎卮_定這種塊的順序和大小,所以竊取者能獲得關(guān)于通信的內(nèi)容的有價(jià)值的信息。更具體地,如果已知塊內(nèi)存在的信息類(lèi)型,則可以確定密鑰,從而能夠獲得其他加密的塊的內(nèi)容。本文描述的系統(tǒng)、方法以及計(jì)算機(jī)程序產(chǎn)品的實(shí)施方式能通過(guò)隨機(jī)排序和隨機(jī)塊大小安全地傳輸信息來(lái)克服此缺陷。要被傳輸?shù)脑紨?shù)據(jù)組被劃分成多個(gè)塊,其中至少兩個(gè)塊具有不同的大小。每個(gè)塊被加密。加密的塊被插入數(shù)據(jù)傳輸槽的序列中。然后,通過(guò)基于產(chǎn)生的隨機(jī)數(shù)選擇傳輸?shù)牟蹃?lái)以隨機(jī)順序選擇用于傳輸?shù)膲K。通過(guò)利用用于傳輸?shù)亩鄠€(gè)信道并傳輸至多個(gè)目的地來(lái)達(dá)到附加的安全性。
文檔編號(hào)H04L9/08GK103067157SQ20121036641
公開(kāi)日2013年4月24日 申請(qǐng)日期2012年9月27日 優(yōu)先權(quán)日2011年10月18日
發(fā)明者埃拉德·阿達(dá)爾, 羅伊·勒納, 雅各布·門(mén)德, 埃亞爾·韋伯-茨維, 約翰遜·瓦斯卡爾 申請(qǐng)人:美國(guó)博通公司