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