專利名稱:用于數(shù)據(jù)塊加密的方法和系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及數(shù)據(jù)塊加密領(lǐng)域。更具體而言,本發(fā)明涉及在不保證接收 到所有在前塊的環(huán)境中使用的塊密碼。
背景技術(shù):
在密碼學(xué)中,塊密碼對固定長度的塊,通常是64或128位的塊進(jìn)行運(yùn) 算。由于消息可以是任意長度的,并且用同樣的密鑰加密同樣的明文總是 產(chǎn)生同樣的輸出,因此開發(fā)出了若干種操作模式,其允許塊密碼為任意長 度的消息提供機(jī)密性。
在密碼塊鏈接(CBC)模式中,明文的每個塊在被加密之前與之前的 密文塊進(jìn)行XOR運(yùn)算(施加異或運(yùn)算)。每個密文塊依賴于在這個點(diǎn)之 前處理的所有明文塊。為了使得每個消息唯一,在第一塊中必須使用初始 化向量(IV)。
IV是一個虛塊,用以起動對第一真實(shí)塊的處理過程。在CBC模式, IV是在加密時隨機(jī)產(chǎn)生的。在多數(shù)情況下,IV不需要是秘密的,但重要 的是,它不能與同一密鑰重復(fù)使用。
圖1A和1B示出使用CBC的加密和解密過程。在圖1A中,提供有 待加密的明文塊Pi, p2,... 101-106。產(chǎn)生IV110,并與明文的第一塊pi101 異或運(yùn)算120。通過密鑰131利用塊密碼加密130將該結(jié)果加密。結(jié)果為 密文的第一塊q141,其凈皮傳輸?shù)浇邮掌?。密文的第一塊d 141與明文的 第二塊p2 101進(jìn)行異或運(yùn)算120,并通過密鑰131使用塊密碼加密130對 結(jié)果進(jìn)行加密。結(jié)果為密文的第二塊C2 142,其4皮傳輸?shù)浇邮掌?。這個鏈 持續(xù)進(jìn)行,從剩余的明文塊P3, p4, p5, p6103-106產(chǎn)生后續(xù)的密文塊C3,c4, c5, C6 143-146。
圖1B示出解密過程。接收密文塊q, C2,…,C6 141-146。使用施加于接 收器的密鑰131利用塊密碼解密150對密文的第一塊q 141進(jìn)行解密。將 結(jié)果與施加于接收器的IV 110進(jìn)行異或運(yùn)算120,這產(chǎn)生明文的第一塊Pl 101。通過密鑰131利用塊密碼解密150對密文的第二塊C2進(jìn)行解密。將 結(jié)果與密文的第一塊q進(jìn)4亍異或運(yùn)算120,這產(chǎn)生明文的第二塊p2 101。 這個鏈持續(xù)進(jìn)行,從剩余的密文塊C3, c4, c5, c6 143-146產(chǎn)生后續(xù)的明文
塊P3, P4, P5, P6 103-106。
密碼塊鏈接具有這樣的局限,即,它需要接收到密文的在前塊來解密 下一塊。在有些環(huán)境中,不能保證遞送,這會導(dǎo)致鏈的斷裂。
組播協(xié)議必然是不可靠的。沒有方式能夠保證所有接收器都將接收到
它們應(yīng)該接收的任何東西。在CBC模式下使用塊密碼要求接收器能夠訪 問上一個密文元素,而這在組播的情況下是不能保證的,因此不可能在 CBC模式中使用塊密碼,由此會導(dǎo)致安全問題。
現(xiàn)有的使用塊密碼對組播流的加密局限于電子碼本(ECB)模式和計 數(shù)器(CTR)模式。
ECB對于隱藏數(shù)據(jù)并不是一種很好的方式。消息被劃分為塊,每個塊 被獨(dú)立地加密。該方法的不利在于,同樣的明文塊被力口密為同樣的密文塊, 因此,它不能很好地隱藏數(shù)據(jù)模式。
CTR模式對于隱藏數(shù)據(jù)是一種很好的方式。消息的每個塊在傳輸之前 與偽隨機(jī)數(shù)進(jìn)行異或運(yùn)算。偽隨機(jī)數(shù)在一個序列中產(chǎn)生,該序列可以由消 息塊的接收器預(yù)測,因?yàn)樗麄兪峭ㄟ^用ECB模式中的私鑰加密公知的計數(shù) 器值而獲得的。CTR模式中固有的風(fēng)險在于,用于從公知的計數(shù)器產(chǎn)生偽 隨機(jī)數(shù)的算法可能容易受到"已知明文"的攻擊,甚至在給出足夠數(shù)據(jù)的 情況下是可逆的。如果是這樣的情況,CTR模式就變得沒有用處。
侵入,那就不必來嘗試加密組播數(shù)據(jù)流了。不過這極度不可能成為現(xiàn)實(shí)情 況。
發(fā)明內(nèi)容
根據(jù)本發(fā)明第一方面,提供一種用于數(shù)據(jù)塊加密的方法,包括使用 針對數(shù)據(jù)塊產(chǎn)生的當(dāng)前隨機(jī)數(shù)來加密數(shù)據(jù)塊;使用之前隨機(jī)數(shù)集合中的一 個或多個來編碼所述當(dāng)前隨機(jī)數(shù),所述之前隨機(jī)數(shù)集合中的每一個已用于 加密之前發(fā)送的數(shù)據(jù)塊;傳輸加密的數(shù)據(jù)塊與一個或多個版本的編碼的當(dāng) 前隨機(jī)數(shù),每個版本已使用之前隨機(jī)數(shù)中的不同隨機(jī)數(shù)進(jìn)行編碼。
根據(jù)本發(fā)明第二方面,提供一種用于數(shù)據(jù)塊解密的方法,包括接收 加密的數(shù)據(jù)塊與 一個或多個版本的編碼的當(dāng)前隨機(jī)數(shù),每個版本已使用之 前使用的隨機(jī)數(shù)中的不同隨機(jī)數(shù)進(jìn)行編碼;選擇隨機(jī)數(shù)可用的之前接收到 的數(shù)據(jù)塊集合中的一個;使用選擇的之前接收到的數(shù)據(jù)塊的隨機(jī)數(shù)來解碼 當(dāng)前隨機(jī)數(shù);以及使用解碼的當(dāng)前隨機(jī)數(shù)來解密接收到的加密的數(shù)據(jù)塊。
根據(jù)本發(fā)明第三方面,提供一種存儲在計算機(jī)可讀存儲介質(zhì)上的計算 機(jī)程序產(chǎn)品,包括用于執(zhí)行以下步驟的計算機(jī)可讀程序代碼部件使用針 對數(shù)據(jù)塊產(chǎn)生的當(dāng)前隨機(jī)數(shù)來加密數(shù)據(jù)塊;使用之前隨機(jī)數(shù)集合中的一個 或多個來編碼所述當(dāng)前隨機(jī)數(shù),所述之前隨機(jī)數(shù)集合中的每一個已用于加 密之前發(fā)送的數(shù)據(jù)塊;傳輸加密的數(shù)據(jù)塊與一個或多個版本的編碼的當(dāng)前 隨機(jī)數(shù)傳輸,每個版本已使用之前隨機(jī)數(shù)中的不同隨機(jī)數(shù)進(jìn)行編碼。
根據(jù)本發(fā)明第四方面,提供一種存儲在計算機(jī)可讀存儲介質(zhì)上的計算 機(jī)程序產(chǎn)品,包括用于執(zhí)行以下步驟的計算機(jī)可讀程序代碼部件接# 密的數(shù)據(jù)塊與一個或多個版本的編碼的當(dāng)前隨機(jī)數(shù),每個版本已使用之前 使用的隨機(jī)數(shù)中的不同隨機(jī)數(shù)進(jìn)行編碼;選擇隨機(jī)數(shù)可用的之前接收到的 數(shù)據(jù)塊集合中的一個;使用選擇的之前接收到的數(shù)據(jù)塊的隨機(jī)數(shù)來解碼當(dāng) 前隨機(jī)數(shù);以及使用解碼的當(dāng)前隨機(jī)數(shù)來解密接收到的加密的數(shù)據(jù)塊。
根據(jù)本發(fā)明第五方面,提供一種用于數(shù)據(jù)塊傳輸?shù)南到y(tǒng),包括使用 針對數(shù)據(jù)塊產(chǎn)生的當(dāng)前隨機(jī)數(shù)來加密數(shù)據(jù)塊的部件;使用之前隨機(jī)數(shù)集合 中的一個或多個來編碼當(dāng)前隨機(jī)數(shù)的部件,所述之前隨機(jī)數(shù)集合中的每一 個已用于加密之前發(fā)送的數(shù)據(jù)塊;傳輸加密的數(shù)據(jù)塊與一個或多個版本的編碼的當(dāng)前隨機(jī)數(shù)的部件,每個版本已使用之前隨機(jī)數(shù)中的不同隨機(jī)數(shù)進(jìn)
行編碼;接^口密的數(shù)據(jù)塊與一個或多個版本的編碼的當(dāng)前隨機(jī)數(shù)的部件; 選擇隨機(jī)數(shù)可用的之前接收到的數(shù)據(jù)塊集合中的一個的部件;使用所選擇 的之前接收到的數(shù)據(jù)塊的隨機(jī)數(shù)來解碼當(dāng)前隨機(jī)數(shù)的部件;以及使用解碼 的當(dāng)前隨機(jī)數(shù)來解密接收到的加密的數(shù)據(jù)塊的部件。
現(xiàn)在將參照附圖,僅以示例的方式描述本發(fā)明的實(shí)施例。
圖1A和lB是現(xiàn)有技術(shù)中/^p的加密和解密的CBC模式的圖2A;I一才艮據(jù)本發(fā)明的加密方法的示意圖2B是才艮據(jù)本發(fā)明的傳輸數(shù)據(jù)的示意圖2C是才艮據(jù)本發(fā)明的解密方法的示意圖3是根據(jù)本發(fā)明的加密方法的流程圖4是根據(jù)本發(fā)明的解密方法的流程圖。
具體實(shí)施例方式
提供了一種塊密碼加密和解密的方法,該方法4吏接收器具有恢復(fù)力, 從而在沒有接收到上一塊時對塊進(jìn)行破譯。該恢復(fù)力是通過允許從之前接 收到的塊集合中的 一個>^譯塊來提供的。
在所描述的方法的一個實(shí)施例中,產(chǎn)生隨機(jī)值,并在每個塊處與輸入 明文進(jìn)行異或運(yùn)算。該隨機(jī)輸入值以這樣的方式編碼,其中只要接收器接 收到之前密文集合中的一個,就能夠進(jìn)行解碼。這個隨機(jī)選擇的值與CBC 操作模式的第一階段中的初始化向量(IV)具有同樣的功能。
參照圖2A,示出了所描述的加密方法的一個實(shí)施例。提供了有待加密 的明文塊p" p2, ...201 -206。產(chǎn)生隨機(jī)數(shù),并將其用作輸入向量Ii211, 該向量與明文pi 201的第一塊進(jìn)行異或運(yùn)算220。通過密鑰231,利用塊 密碼加密230對結(jié)果進(jìn)行加密。結(jié)果為密文的第一塊d 241,其被傳輸?shù)?接收器。本領(lǐng)域中公知許多偽隨機(jī)數(shù)產(chǎn)生器,用來為加密應(yīng)用提供足夠隨機(jī)的數(shù),這里使用的術(shù)語"隨機(jī)數(shù)"旨在涵蓋所有這樣的偽隨機(jī)數(shù)。
產(chǎn)生新的隨機(jī)數(shù)作為輸入向量12 212,該向量與明文的第二塊p2 202 進(jìn)行異或運(yùn)算220。通過密鑰231,利用塊密碼加密230對結(jié)果進(jìn)行加密。 結(jié)果為密文的第二塊C2 242,其被傳輸?shù)浇邮掌鳌?br>
這個過程持續(xù)進(jìn)行,產(chǎn)生隨機(jī)數(shù)作為輸入向量13, 14, 15, 16213-216, 用以從剩余的明文塊P3, p4, p5, P6 203-206產(chǎn)生后續(xù)的密文塊C3, c4, c5, ce243-246。
輸入向量I" 12, 13, 14, 15, 16 211-216在功能上與CBC操作模式 的初始化向量110相似,但是,為有待加密的每一個明文塊產(chǎn)生隨4幾輸入 向量。
參照圖2B,示意圖示出傳輸?shù)臄?shù)據(jù)。在所描述的方法中,使用安全可 靠的連接來傳輸包含會話密鑰在內(nèi)的初始參數(shù)280。初始M 280還包括 第一輸入向量I"用于編碼輸入向量的之前塊的定義集合,以及用于產(chǎn)生 塊頭部中傳輸?shù)木幋a的輸入向量的功能中所使用的輸入值。
如圖2B所示,密文塊q, c2, c3, c4, c5, c6 241 -246與頭部251-256 —起傳輸,頭部251 - 256包含計數(shù)261 - 266,以及用于從之前輸入向 量集合中的一個產(chǎn)生當(dāng)前輸入向量的部件271-276。在一個實(shí)施例中,部 件271 -276是用于每個之前塊集合的函數(shù)對(q(i,i-j),s(i,i-j))。該函數(shù)對 (q(i,i-j),s(i,i-j))連同之前輸入向量IH可以用來確定當(dāng)前輸入向量Ii。
之前輸入向量在被接收器解碼時被存儲291 一 296,用于解碼隨后的輸 入向量。
之前塊集合是當(dāng)前塊之前的預(yù)定數(shù)目的塊的集合。例如,它可以是之 前的四個塊,之前的間隔的三個塊,或者,如給出的示例中一樣,是具有 i-j的塊的集合,其中j是集合J^l,2,4,6)中的一個,等等。之前塊集合中 只有一個是必需接收到的,以獲得當(dāng)前輸入向量。
后續(xù)的密文塊Ci具有頭部,該頭部包含計數(shù)i和用于從之前輸入向量 集合中的一個產(chǎn)生當(dāng)前第i個輸入向量Ii的部件。該集合可以是集合IH , 其中j是諸如>{1,2,4,6}的整數(shù)集合,如圖2B所示。為集合J添加更多的數(shù)會增加恢復(fù)力,因?yàn)橛懈嗟倪x擇來使用不同的之前接收到的塊,使得 更多塊可被丟失。然而,這必需與頭部中用于集合J所要求的數(shù)據(jù)相平衡, 其減少每個塊中有效載荷數(shù)據(jù)量。
如果沒有接收到上一塊,可以通it^用于之前塊集合中的任一個的當(dāng) 前塊頭部中提供的功能確定當(dāng)前輸入向量以及確定之前塊的輸入向量來解 密當(dāng)前塊。
參照圖2C,示出描述的解密方法的實(shí)施例。接收到密文塊d, c2,…, c6 241 -246,其每一個具有如圖2B所示的對應(yīng)的頭部251 -256。
通過提供^^接收器的密鑰231,利用塊密碼解密250來解密密文的第 一塊Cl 241。將結(jié)果與提供給接收器的第一輸入向量L 211進(jìn)行異或運(yùn)算, 這產(chǎn)生明文的第一塊Pl 201。
密文的第二塊c2 242與頭部252 —起接收,頭部252具有數(shù)值為2的 計數(shù)262以及用于從第一輸入向量It 211產(chǎn)生當(dāng)前第二輸入向量12 212的 部件272。
通過密鑰231利用塊密碼解密250來解密密文的第二塊c2。將結(jié)果與 第二輸入向量l2 212進(jìn)行異或運(yùn)算,這產(chǎn)生明文的第二塊p2 202。
如圖2B所示接收密文的后續(xù)塊Ci以及頭部,頭部具有數(shù)值為i的計數(shù), 以及用于從之前輸入向量IH的預(yù)定義集合產(chǎn)生當(dāng)前第i個輸入向量Ij的部 件。預(yù)定義集合被示為集合Ii.j,其中J是諸如>{1,2,4,6}之類的整數(shù)集合。
通過密鑰231利用塊密碼解密250來解密密文的后續(xù)塊Ci。將結(jié)果與 第i輸入向量Ii212進(jìn)行異或運(yùn)算,這產(chǎn)生明文的第i塊pi。
密文的第六塊c6 246與頭部256 —起接收,頭部256具有數(shù)值為6的 計數(shù)266以及用于從第二、第四或第五輸入向量12212, 14214和15215之 一產(chǎn)生當(dāng)前第六輸入向量16 216的部件276。作為示例,沒有接收到密文 的第五塊cs245,因此可以使用之前存儲的第四或第二輸入向量12212, 14 214中任一個,以獲得第六輸入向量16216。
通過密鑰231利用塊密碼解密250來解密密文的第六塊c6。將結(jié)果與 第六輸入向量16 216進(jìn)行異或運(yùn)算,這產(chǎn)生明文的第六塊p6 206。參照圖3,示出所描述的加密方法的流程圖300。 在進(jìn)行M之前,在發(fā)射機(jī)和一個或多個接收機(jī)之間進(jìn)行安全可靠連 接上的傳達(dá)所需密鑰的初步步驟。在這樣的傳達(dá)中,傳輸下面的信息 加密會話密鑰;
定義的之前塊的集合,例如,由一系列較早塊數(shù)目給出的集合;
解碼輸入向量所需的M;
用作第一輸入向量L的初始隨機(jī)數(shù)。
在會話的每個步驟,執(zhí)行圖3的流程。使用針對數(shù)據(jù)塊所產(chǎn)生的隨機(jī) 數(shù)(Icurrent)加密該數(shù)據(jù)塊301。隨機(jī)數(shù)也被稱為輸入向量。
在一個實(shí)施例中,通過對數(shù)據(jù)塊和隨機(jī)數(shù)(Icurrent)逐比特執(zhí)行與異或 運(yùn)算,然后使用會話密鑰利用加密函數(shù)加密該結(jié)果來執(zhí)行加密301??梢?替代地使用利用隨機(jī)數(shù)(Icurrent)進(jìn)行的其他形式的加密。
然后,確定302之前發(fā)送的哪些數(shù)據(jù)塊在定義的集合中。之前發(fā)送的 數(shù)據(jù)塊的每一個具有在那個塊的加密中使用的不同隨機(jī)數(shù)(IculTent)。
對于集合中每個可用的之前發(fā)送的數(shù)據(jù)塊,使用之前發(fā)送的數(shù)據(jù)塊的 隨機(jī)數(shù)(Iprevious)編碼303當(dāng)前處理的數(shù)據(jù)塊的隨機(jī)數(shù)(Icurrent)。
這樣的編碼可以針對集合的所有可用的隨機(jī)數(shù)(Iprevi。us)并行執(zhí)行。 加密步驟301也可以與編碼303并行執(zhí)行。該算法的并行特征^吏得它理想 地適于在硬件中執(zhí)行,或作為用于面向流的協(xié)處理器的軟件,諸如Cell微 處理器的協(xié)處理器單元(SPE)。
當(dāng)會話中數(shù)據(jù)的第一塊被加密時,集合中將沒有之前發(fā)送的數(shù)據(jù)塊可 以使用。這就是為什么第一隨機(jī)數(shù)^要通過安全連接進(jìn)行發(fā)送的原因。
當(dāng)會話早期中數(shù)據(jù)塊正被加密時,集合中僅有一個或兩個之前發(fā)送的 數(shù)據(jù)塊可用。隨著會話繼續(xù)進(jìn)行,集合中可用的之前發(fā)送的塊數(shù)目增加, 為本方法給出更大的恢復(fù)力。
將加密的數(shù)據(jù)塊連同用集合的一個或多個隨機(jī)數(shù)(Iprevi。us)編碼的隨 機(jī)數(shù)(Ieurrent) —起進(jìn)行傳輸304。
參照圖4,示出所描述的解密方法的流程圖400。如參照圖3所描述的,在進(jìn)行^"之前,在發(fā)射機(jī)和一個或多個接收機(jī)之間進(jìn)行安全連接上的傳達(dá)所需密鑰的初步步驟。
加密的數(shù)據(jù)塊連同用集合中之前接收到的數(shù)據(jù)塊的一個或多個隨機(jī)數(shù)
(Iprevi。us)進(jìn)行編碼的隨機(jī)數(shù)(I current
) 一起得到接收401。選擇402已存儲的隨機(jī)數(shù)(IpreviQUS)所針對的之前接收到的數(shù)據(jù)塊集合中的一個。
使用選擇的之前數(shù)據(jù)塊的隨機(jī)數(shù)(Iprevi。us)解碼隨機(jī)數(shù)(Icurrent)糾3。使用隨機(jī)數(shù)(Icurrent )解密所述加密的數(shù)據(jù)塊,并M隨機(jī)數(shù)(Icurrent )
用于解碼后續(xù)數(shù)據(jù)塊404。
所描述的方法使得在接收到之前發(fā)送的數(shù)據(jù)塊集合中的任意一個并對
其自身進(jìn)行解密時能夠?qū)?shù)據(jù)塊進(jìn)行解密。這提供了這樣一種方法,該方
法可以在不能保證每個數(shù)據(jù)塊的遞送時使用。
圖4示出方法的穩(wěn)態(tài)操作。在參與到解密之前,新的連接者(connectee )需要翻陚予至少一個Ij。
提供所描述的加密和解密方法的算法的一個示例性實(shí)施例。該算法使用下面的定義
A xor B -用操作數(shù)A和B執(zhí)行逐比特的異或運(yùn)算。
A升至B次冪才莫C -計算A的B次冪;最終結(jié)果是中間結(jié)果除以C所得的余數(shù)。
素數(shù)-一個大于l的整數(shù),除了自身之外,不能被任何大于l的整數(shù)整除而沒有余數(shù)。
A增量 - 為A增加一。
隨機(jī)數(shù)_基于從同 一源獲得之前的數(shù)字無法預(yù)測的數(shù)字。初始化向量-當(dāng)使用密碼塊鏈接加密方案時,用于隱藏第一塊的數(shù)據(jù)
向量o
發(fā)送應(yīng)用執(zhí)行下面的步驟選擇一個數(shù)字,稱為g。例如,g = 2。選捧一個素數(shù),稱為cj)。選擇一個數(shù)字列表,J,例如J={1,2,4,8}。
例如通過還用于傳輸加密密鑰的安全連接將g, c|), J的選擇通知接收器。
將整數(shù)消息計數(shù)器C設(shè)為零。
對于有待發(fā)送的每個消息,執(zhí)行下面的步驟,對于C—:取出隨機(jī)數(shù),Ii。
當(dāng)加密用戶數(shù)據(jù)時,用Ii作為輸入向量。對于列表J的每個元素j,重復(fù)下面的步驟
將I4設(shè)定為序列數(shù)為i-j時使用的I的值。
取出隨機(jī)數(shù),rijo
計算^^^m。dp。該值被存儲用于稍后使用。計算 =m。dp 。該值4皮存儲用于稍后使用。
將c,處于正確次序的所有qij和sy對,以;0口密的用戶數(shù)據(jù)^Uv消息中。
發(fā)送消息。
接收應(yīng)用執(zhí)行以下步驟
用安全可靠的連接與發(fā)送者連接,并取出下列信息g, 4), J,和C的最近值,I的近值j,。開始通過不可靠鏈珞接收消息。對于接收到的每個消息,執(zhí)行下面的步驟從消息中獲得C,所有qij和Sij對,以;o口密的用戶數(shù)據(jù)。
找出來自消息C-j的IH已知的qy和Sy對。利用該信息,計算
丟棄來自比c-j更舊的消息的iH的舊數(shù)值。使用ii作為輸入向量來解碼用戶數(shù)據(jù)。將解密的用戶數(shù)據(jù)送到任何需要者。
不知道(qij,s^已知的14的信息的情況下,確定Ii需要計算離散對數(shù),對此沒有已知有效的算法。迄今為止,只考慮了有待加密的數(shù)據(jù)塊的大小嚴(yán)格符合加密算法要求的情況。在實(shí)際中,該大小有可能會更大。在這種情況下,以上描述的方
法用于編碼消息的第一 "加密算法大小,,的塊,/>知4支術(shù)的CBC用于加密消息的剩余部分。
所描述的方法與CBC模式具有相似性,但是,它具有這樣的優(yōu)勢,即,可以在接收器沒有接收到前一密文時使用。產(chǎn)生隨機(jī)值,針對每一數(shù)據(jù)塊與輸入明文進(jìn)行異或運(yùn)算。這個被稱為輸入向量的隨機(jī)輸入值接下來以下面的方式進(jìn)行編碼,該方式使得只要接收器接收到之前密文集合中的一個,就能夠進(jìn)行解碼。該隨機(jī)選擇的值與CBC操作模式的第一階段中的初始化向量(IV)具有相同的功能。輸入向量可以無障礙地進(jìn)4亍發(fā)送,但這會使得密碼分析更為容易。
本發(fā)明可以采取完全硬件的實(shí)施方式,完全軟件的實(shí)施方式,或者同時包含硬件和軟件兩者的實(shí)施方式。在優(yōu)選的實(shí)施方式中,本發(fā)明在軟件中執(zhí)行,該軟件包括但不限于固件、常駐軟件、微碼,等等。
本發(fā)明可以采取可以從計算機(jī)可用或計算機(jī)可讀介質(zhì)存取的計算機(jī)程序產(chǎn)品的形式,所述計算機(jī)可用或可讀介質(zhì)提供計算機(jī)或任何指令執(zhí)行系統(tǒng)使用的或者與W目關(guān)的程序代碼。出于說明的目的,計算機(jī)可用或計算機(jī)可讀介質(zhì)可以是能夠包含、存儲、傳達(dá)、傳播或傳送指令執(zhí)行系統(tǒng)、裝置或"i殳備所使用的,或與^目關(guān)的程序的任何裝置。
所述介質(zhì)可以是電子的,磁的,光學(xué)的,電磁的,紅外的,或半導(dǎo)體系統(tǒng)(或裝置或設(shè)備)或傳播介質(zhì)。計算機(jī)可讀介質(zhì)的例子包括半導(dǎo)體或固態(tài)存儲器,磁帶,可移動計算M盤,隨M取存儲器(RAM),只讀存儲器(ROM),硬磁盤以及光盤。目前光盤的例子包括壓縮光盤只讀存儲器(CD-ROM),壓縮光盤讀/寫(CD-R/W),以及DVD。
以上詳細(xì)描述的方法作用為限制對數(shù)據(jù)的存取,并且在不可能保證接收到數(shù)據(jù)的所有部分時使得數(shù)據(jù)的預(yù)期接收器能夠進(jìn)行解密。這樣的系統(tǒng)包括因特網(wǎng)上的廣播和組播網(wǎng)絡(luò)傳輸,電視廣播,來自通信衛(wèi)星的廣播,無線電廣4番,還包括通過郵件發(fā)送的物理介質(zhì)。該方法尤其良好地適用于這樣的情況,其中將數(shù)據(jù)的遺失部分重新傳輸?shù)經(jīng)]有接收到整個數(shù)據(jù)流的那些接收器是不切實(shí)際或者沒有用處的。重新傳輸毫無價值的一個例子是廣播電視,因?yàn)榇騺y順序地顯示節(jié)目中之前錯過的部分是亳無意義的。另一個例子是發(fā)布/訂閱消息經(jīng)紀(jì)人,其使用不可靠網(wǎng)絡(luò)鏈路上的組播向訂戶發(fā)送消息。
可以對前述內(nèi)容進(jìn)行改進(jìn)和修改,而不偏離本發(fā)明的范圍。
權(quán)利要求
1.一種用于數(shù)據(jù)塊加密的方法,包括使用針對數(shù)據(jù)塊(201-206)產(chǎn)生的當(dāng)前隨機(jī)數(shù)(211-216)來加密(301)所述數(shù)據(jù)塊(201-206);使用之前隨機(jī)數(shù)集合中的一個或多個來編碼(303)所述當(dāng)前隨機(jī)數(shù)(211-216),所述之前隨機(jī)數(shù)集合中的每一個已用于加密之前發(fā)送的數(shù)據(jù)塊(201-206);傳輸(304)加密的數(shù)據(jù)塊(241-246)與一個或多個版本的編碼的當(dāng)前隨機(jī)數(shù)(272-276),每個版本已使用之前隨機(jī)數(shù)中的不同隨機(jī)數(shù)進(jìn)行編碼。
2. 根據(jù)權(quán)利要求1的方法,其中,之前隨機(jī)數(shù)集合是用于之前發(fā)送 的數(shù)據(jù)塊的預(yù)定義集合的之前隨機(jī)數(shù),其中之前發(fā)送的數(shù)據(jù)塊的預(yù)定義集 合是當(dāng)前塊之前的模式下的給定塊的集合。
3. 根據(jù)權(quán)利要求1或2的方法,其中,使用當(dāng)前隨機(jī)數(shù)(211 - 216 ) 來加密(301)數(shù)據(jù)塊(201 - 206 )包括對所述數(shù)據(jù)塊(201 - 206 )和所 述當(dāng)前隨機(jī)數(shù)(211-216)執(zhí)行逐比特的異或運(yùn)算,并使用會話密鑰通過 加密函數(shù)對結(jié)果進(jìn)行加密。
4. 根據(jù)權(quán)利要求1-3中任一項(xiàng)的方法,其中,執(zhí)行發(fā)射機(jī)和一個 或多個接收機(jī)之間的安全通信(280),包括加密M密鑰;定義的之前塊的集合;用于解碼隨機(jī)數(shù)所需的參數(shù);用于第一數(shù)據(jù)塊(201)的初始隨機(jī)數(shù)(211)。
5. 根據(jù)前述權(quán)利要求中任一項(xiàng)的方法,其中使用之前隨機(jī)數(shù)集合中 的一個或多個來編碼(303)所述當(dāng)前隨機(jī)數(shù)(211-216)的步驟針對所述 集合中的所有可用的之前隨機(jī)數(shù)并行執(zhí)行。
6. 根據(jù)前述權(quán)利要求中任一項(xiàng)的方法,其中加密(301 )數(shù)據(jù)塊(201-206 )的步驟與使用之前隨機(jī)數(shù)集合中的一個或多個來編碼所述當(dāng)前隨機(jī) 數(shù)(211 - 216 )的步驟并行執(zhí)行。
7. 根據(jù)前述權(quán)利要求中任一項(xiàng)的方法,其中該方法用于加密第一加 密算法大小的數(shù)據(jù)塊(201 -206),任意剩余數(shù)據(jù)利用密碼塊鏈接方法來 加密。
8. —種用于數(shù)據(jù)塊解密的方法,包括接收(401)加密的數(shù)據(jù)塊(241 - 246)與一個或多個版本的編碼的當(dāng) 前隨機(jī)數(shù)(272 - 276 ),每個版本已使用之前使用的隨機(jī)數(shù)中的不同隨機(jī) 數(shù)進(jìn)行編碼;選擇(402 )隨機(jī)數(shù)可用的(291 - 296 )之前接收到的數(shù)據(jù)塊集合中的一個;使用選擇的之前接收到的數(shù)據(jù)塊(201 - 206 )的隨機(jī)數(shù)來解碼(403 ) 當(dāng)前隨機(jī)數(shù)(211-216);以及使用解碼的當(dāng)前隨機(jī)數(shù)來解密(404)接收到的加密的數(shù)據(jù)塊(241-246)。
9. 根據(jù)權(quán)利要求8的方法,其中解碼的當(dāng)前隨機(jī)數(shù)被存儲(291-296)用于解碼后續(xù)的隨機(jī)數(shù)。
10. 根據(jù)權(quán)利要求8或9的方法,其中解密(404)數(shù)據(jù)塊包括使用 會話密鑰來解密所述加密的數(shù)據(jù)塊(241-246),以及對所述解密的結(jié)果 和所述當(dāng)前隨機(jī)數(shù)執(zhí)行逐比特的異或運(yùn)算。
11. 根據(jù)權(quán)利要求8-10中任一項(xiàng)的方法,其中M射機(jī)接收安全通 信(280),包括加密會活密鑰;定義的之前塊的集合;用于解碼隨機(jī)數(shù)所需的參數(shù);用于第一數(shù)據(jù)塊(201)的初始隨機(jī)數(shù)(211)。
12. 根據(jù)權(quán)利要求8-11中任一項(xiàng)的方法,其中該方法用于解密第一 加密算法大小的數(shù)據(jù)塊(201-206),任意剩余數(shù)據(jù)利用密碼塊鏈接方法來解密。
13. —種用于數(shù)據(jù)塊加密的裝置,包括使用針對數(shù)據(jù)塊(201-206)產(chǎn)生的當(dāng)前隨機(jī)數(shù)(211-216)來加密 (301)所述數(shù)據(jù)塊(201 -206)的部件;使用之前隨機(jī)數(shù)集合中的一個或多個來編碼(303)所述當(dāng)前隨機(jī)數(shù) (211-216)的部件,所述之前隨機(jī)數(shù)集合中的每一個已用于加密之前發(fā) 送的數(shù)據(jù)塊(201 - 206 );傳輸(304 )加密的數(shù)據(jù)塊(241 - 246 )與一個或多個版本的編碼的當(dāng) 前隨機(jī)數(shù)(272-276)的部件,每個版本已使用之前隨機(jī)數(shù)中的不同隨機(jī) 數(shù)進(jìn)行編碼。
14. 根據(jù)權(quán)利要求13的裝置,其中,之前隨機(jī)數(shù)集合是用于之前發(fā) 送的數(shù)據(jù)塊的預(yù)定義集合的之前隨機(jī)數(shù),其中之前發(fā)送的數(shù)據(jù)塊的預(yù)定義 集合是當(dāng)前塊之前的模式下的給定塊的集合。
15. 根據(jù)權(quán)利要求13或14的裝置,其中,使用當(dāng)前隨機(jī)數(shù)(211 -216)來加密(301)數(shù)據(jù)塊(201 - 206 )的部件包括對所述數(shù)據(jù)塊(201 - 206 )和所述當(dāng)前隨機(jī)數(shù)(211 - 216 )執(zhí)行逐比 特異或運(yùn)算的部件,以及使用會活密鑰通過加密函數(shù)對結(jié)果進(jìn)行加密的部件。
16. 根據(jù)權(quán)利要求13-15中任一項(xiàng)的裝置,其中,可操作執(zhí)行發(fā)射 機(jī)和一個或多個接收機(jī)之間的安全通信(280),包括加密會活密鑰;定義的之前塊的集合;用于解碼隨機(jī)數(shù)所需的^:;用于第一數(shù)據(jù)塊(201)的初始隨機(jī)數(shù)(211)。
17. 根據(jù)權(quán)利要求13-16中任一項(xiàng)的方法,其中使用之前隨機(jī)數(shù)集 合中的一個或多個來編碼(303)所述當(dāng)前隨機(jī)數(shù)(211-216)的部件可操 作為針對所述集合中的所有可用的之前隨機(jī)數(shù)并行執(zhí)行。
18. 根據(jù)權(quán)利要求13 - 17中任一項(xiàng)的方法,其中加密(301)數(shù)據(jù)塊(201 - 206)的部件可操作為與使用之前隨機(jī)數(shù)集合中的一個或多個來編 碼所述當(dāng)前隨機(jī)數(shù)(211-216)的部件并行執(zhí)行。
19. 一種用于數(shù)據(jù)塊解密的裝置,包括接收(401)加密的數(shù)據(jù)塊(241 - 246 )與一個或多個版本的編碼的當(dāng) 前隨機(jī)數(shù)(272-276)的部件,每個版本已使用之前使用的隨機(jī)數(shù)中的不 同隨機(jī)數(shù)進(jìn)行編碼;選擇(402)隨機(jī)數(shù)可用的(291 - 296 )之前接收到的數(shù)據(jù)塊集合中的 一個的部件;使用選擇的之前接收到的數(shù)據(jù)塊(201 - 206 )的隨機(jī)數(shù)來解碼(403 ) 當(dāng)前隨機(jī)數(shù)(211-216)的部件;以及使用解碼的當(dāng)前隨機(jī)數(shù)來解密(404)接收到的加密的數(shù)據(jù)塊(241-246)的部件。
20. 根據(jù)權(quán)利要求19的裝置,其中解碼的當(dāng)前隨機(jī)數(shù)可操作為被存 儲(291 -296)用于解碼后續(xù)的隨機(jī)數(shù)。
21. 根據(jù)權(quán)利要求19或20的裝置,其中解密(404)數(shù)據(jù)塊的部件 包括使用會話密鑰來解密所述加密的數(shù)據(jù)塊(241-246)的部件,以及 對所述解密的結(jié)果和所述當(dāng)前隨機(jī)數(shù)執(zhí)行逐比特異或運(yùn)算的部件。
22. 根據(jù)權(quán)利要求19-21中任一項(xiàng)的裝置,其中可操作地從發(fā)射機(jī) 接收安全通信(280),包括加密^"密鑰; 定義的之前塊的集合; 用于解碼隨機(jī)數(shù)所需的用于第一數(shù)據(jù)塊(201)的初始隨機(jī)數(shù)(211)。
23. —種用于數(shù)據(jù)塊傳輸?shù)南到y(tǒng),包括使用針對數(shù)據(jù)塊(201 -206)產(chǎn)生的當(dāng)前隨機(jī)數(shù)(211-216)來加密 所述數(shù)據(jù)塊(201 - 206)的部件;使用之前隨機(jī)數(shù)集合中的一個或多個來編碼所述當(dāng)前隨機(jī)數(shù)(211 -216)的部件,所述之前隨機(jī)數(shù)集合中的每一個已用于加密之前發(fā)送的數(shù)據(jù) 塊(201 - 206);傳輸加密的數(shù)據(jù)塊(241-246)與一個或多個版本的編碼的當(dāng)前隨機(jī) 數(shù)(272-276)的部件,每個版本已使用之前隨機(jī)數(shù)中的不同隨機(jī)數(shù)進(jìn)行 編碼;接收加密的數(shù)據(jù)塊(241 -246)與一個或多個版本的編碼的當(dāng)前隨機(jī) 數(shù)(272 - 276 )的部件;選擇隨機(jī)數(shù)可用的(291 - 296 )之前接收到的數(shù)據(jù)塊集合中的一個的 部件;使用選擇的之前接收到的數(shù)據(jù)塊(201 - 206)的隨機(jī)數(shù)來解碼當(dāng)前隨 機(jī)數(shù)(211-216)的部件;以及使用解碼的當(dāng)前隨機(jī)數(shù)來解密接收到的加密的數(shù)據(jù)塊(241 -246)的 部件。
24. 根據(jù)權(quán)利要求23的系統(tǒng),包括發(fā)射機(jī)與一個或多個接收機(jī)之間 用于傳輸^參數(shù)的安全通信(280)。
25. 根據(jù)權(quán)利要求23或24的系統(tǒng),其中使用之前隨機(jī)數(shù)集合中的一 個或多個來編碼當(dāng)前隨機(jī)數(shù)(211-216)的部件包括用于處理所述集合中 的所有可用的之前隨機(jī)數(shù)的并行處理部件。
26. 根據(jù)權(quán)利要求23 - 25中任一項(xiàng)的系統(tǒng),包括加密(301)數(shù)據(jù)塊 且并行地使用之前隨機(jī)數(shù)集合中的一個或多個來編碼所述當(dāng)前隨機(jī)數(shù)(211 -216)的并行處理部件。
27. —種計算機(jī)程序,包括程序代碼,所述程序代碼在所述程序在計 算機(jī)上運(yùn)行時適于執(zhí)行權(quán)利要求1 - 12中任一項(xiàng)的所有步驟。
全文摘要
提供了一種用于數(shù)據(jù)塊(201-206)加密的方法,包括使用針對數(shù)據(jù)塊(201-206)產(chǎn)生的當(dāng)前隨機(jī)數(shù)(211-216)來加密(301)數(shù)據(jù)塊;使用之前隨機(jī)數(shù)集合中的一個或多個來編碼(303)所述當(dāng)前隨機(jī)數(shù),所述之前隨機(jī)數(shù)集合中的每一個已用于加密之前發(fā)送的數(shù)據(jù)塊;傳輸加密的數(shù)據(jù)塊(241-246)與一個或多個版本的編碼的當(dāng)前隨機(jī)數(shù)(272-276),每個版本已使用之前隨機(jī)數(shù)中的不同隨機(jī)數(shù)進(jìn)行編碼。提供了一種用于數(shù)據(jù)塊解密的方法,包括接收(401)加密的數(shù)據(jù)塊(241-246)與一個或多個版本的編碼的當(dāng)前隨機(jī)數(shù),每個版本針對之前隨機(jī)數(shù)(272-276)中的不同隨機(jī)數(shù);選擇(402)隨機(jī)數(shù)可用的(291-296)之前接收到的數(shù)據(jù)塊集合中的一個;使用選擇的之前接收到的數(shù)據(jù)塊的隨機(jī)數(shù)來解碼(403)當(dāng)前隨機(jī)數(shù);以及使用解碼的當(dāng)前隨機(jī)數(shù)來解密(404)接收到的加密的數(shù)據(jù)塊(241-246)。
文檔編號H04L9/32GK101682502SQ200880015855
公開日2010年3月24日 申請日期2008年5月28日 優(yōu)先權(quán)日2007年6月15日
發(fā)明者P·G·威洛比 申請人:國際商業(yè)機(jī)器公司