專利名稱:加密方法
技術(shù)領(lǐng)域:
本發(fā)明一般涉及數(shù)據(jù)處理。更具體地說,本發(fā)明涉及計算機實現(xiàn)的密碼學(xué)。
背景技術(shù):
該部分中所描述的方法可以被實現(xiàn),但不是一定是以前被構(gòu)思或?qū)崿F(xiàn)的方法。因此,除非在這里另外指示,該部分中所描述的方法對于本申請中的權(quán)利要求來說不是現(xiàn)有技術(shù),并且不承認通過包括在該部分中而成為現(xiàn)有技術(shù)。
如果密文(ciphertext)與明文(plaintext)具有完全相同的位數(shù),則加密方法是長度保留的。這樣的方法必須是確定性的,因為密文內(nèi)不可能容納隨機數(shù)據(jù)(例如初始化向量)。此外,確定性的長度保留加密也適合于某些應(yīng)用。例如,在一些加密的數(shù)據(jù)庫應(yīng)用中,確定性對于確保查找操作中的明文值完全對應(yīng)于以前存儲的明文值來說是必不可少的。
此外,在密碼學(xué)的一些應(yīng)用中,不可能提供某些希望的安全服務(wù),例如關(guān)于數(shù)據(jù)的消息認證,因為不可能將數(shù)據(jù)擴展為包括消息認證碼。例如,一些網(wǎng)絡(luò)(例如一些無線網(wǎng)絡(luò)情況)中的安全實時協(xié)議(SRTP)不能擴展明文數(shù)據(jù)。長度保留算法實質(zhì)上實現(xiàn)密碼本;用相同的密鑰對相同的明文進行重復(fù)的加密產(chǎn)生同樣的密文。對手通過察看哪些密文值匹配而得知明文。盡管如此,在一些情況中,長度保留加密仍然是有用的。例如,長度保留可以使加密被引入到已經(jīng)實現(xiàn)和運用的數(shù)據(jù)處理系統(tǒng)中,或者在具有固定寬度字段的協(xié)議中或在限制數(shù)據(jù)擴展的允許量的系統(tǒng)中使用。在這些情況中,希望一種長度保留的、確定性的、無展性的加密方法作為消息認證的替換。
非正式地,如果改變密文值的單個位影響相應(yīng)明文的所有位,則密碼是無展性的。因此,在無展性的加密中,不可能通過操縱密文來操縱解密之后出現(xiàn)的明文。更正式地,希望的無展性密碼實現(xiàn)偽隨機排列;其對于有限計算的對手而言與消息組的排列沒有區(qū)別。希望這樣的密碼能夠處置可變大小的明文,因此需要提供偽隨機的任意長度排列的密碼對于每個可能的明文長度,密碼充當(dāng)偽隨機排列。
無展性加密是傳統(tǒng)運算模式(例如密碼塊鏈和計數(shù)器模式加密)上的很大改善,傳統(tǒng)運算模式在任何時候都不能增加消息認證標(biāo)簽。另外,無展性密碼也可以接受可以用來防止密文置換攻擊的另外輸入值。例如,SRTP序號可以被用在與運行SRTP的網(wǎng)絡(luò)元件相關(guān)聯(lián)的實現(xiàn)方式中。
無展性加密對于盤塊(disk block)加密也是有用的。這樣的加密經(jīng)常被用在遠程存儲系統(tǒng)中,因為它允許存儲區(qū)域網(wǎng)絡(luò)被用在網(wǎng)絡(luò)管理員僅在有限程度的上被信任的應(yīng)用中。
在理論文獻中存在很多無展性密碼提議。這里所公開的方法的一個實施例可以被稱為用于塊密碼(block cipher)的運算的延伸密碼本(XCB)模式,它在數(shù)個方面上不同于現(xiàn)有技術(shù)。由Luby和Rackoff在20世紀(jì)80年代所提出的密碼(這里稱為“LR”)為很多過去的技術(shù)提供無展性密碼的理論基礎(chǔ)。XCB與該技術(shù)的不同之處在于使用不同組的計算;XCB不是Fesitel密碼,而LR是。XCB依賴于塊密碼的可逆性,而LR不是。而且,LR需要四輪以確保安全,而XCB三輪就是安全的。
在20世紀(jì)90年代,Naor和Reingold公布了一些基本思想上的優(yōu)化,如在“On the Construction of Pseudo-Random PermutationsLuby RackoffRevisited”中的描述。雖然該技術(shù)使用四輪,但是第一輪和第四輪是Naor和Reingold所定義的“兩兩獨立”排列。Naor-Reingold方法也不依賴于塊密碼的可逆性。該設(shè)計完全不同于XCB,XCB僅使用三輪、不使用兩兩獨立排列并且依賴于塊密碼的可逆性。
在20世紀(jì)90年代,Stefan Lucks在“Faster Luby-Rackoff Ciphers”中描述了散列函數(shù)的使用。Anderson和Biham也發(fā)表了一些類似的技術(shù),示出了兩種密碼BEAR和LION。該技術(shù)僅討論了LR構(gòu)造,并且不依賴于塊密碼的可逆性。此外,它需要四輪以確保安全。
更近一些的時候,Patel、Ramzan和Sundaram發(fā)表了兩篇延伸Naor-Reingold技術(shù)的論文,“Towards Making Luby-Rackoff Ciphers Optimal andPractical”和“Luby-Rackoff Ciphers over Finite Algebraic Structures or WhyXOR is not so Exclusive”。該技術(shù)基于Naor-Reingold技術(shù),并且用于該技術(shù)的所有注解都適用于這些設(shè)計。
Bellare和Rogaway在“On the Construction of Variable-Input-LengthCiphers”中描述了一種是長度保留但不是無展性的運算模式。他們將該技術(shù)稱為VIL,它與XCB大不相同。
Rogaway和Halevi在“The EMD Mode of Operation(A Tweaked,Wide-Blocksize,Strong PRP)”和“EME?extending EME to handle arbitrary-lengthmessages with associated data”中設(shè)計了是無展性的EME運算模式。雖然該技術(shù)的目標(biāo)與XCB的目標(biāo)相同,但是EME的設(shè)計不同于XCB的設(shè)計。重要的是,EME對塊密碼的調(diào)用是XCB的兩倍。
獨立地,McGrew和Viega向IEEE存儲安全工作組(IEEE Security inStorage Working Group)提交了稱為ABL(任意塊長度模式)的優(yōu)化Luby-Rackoff設(shè)計。XCB與ABL大不相同。
Patel等人發(fā)表了描述兩種密碼構(gòu)造的標(biāo)題為“Efficient Constructionsof Variable-Input-Length Block Ciphers”的論文。第3部分中的方法被這樣構(gòu)建不能并行完成散列調(diào)用和(第1輪)和塊密碼調(diào)用(第2輪)。與此相反,在XCB中,前兩輪可以并行完成。XCB同時進行這些運算的能力對于高速硬件實現(xiàn)來說是很大的性能好處。此外,第3部分的密碼在第3輪中所使用的“計數(shù)器模式”之外,僅具有單個散列函數(shù)應(yīng)用和單個塊密碼調(diào)用。由此,對于選擇的明文/密文攻擊來說不安全。因此,第3部分中的方法僅提供偽隨機排列,而不是“超級偽隨機排列”。與此相反,XCB具有兩個散列調(diào)用和兩個塊密碼調(diào)用,是超級偽隨機排列。
本發(fā)明是通過示例而不是限制的方式來說明的,在附圖的圖形中,相似的標(biāo)號指的是類似的元件,其中
圖1A是提供可以使用這里的方法的通信系統(tǒng)模型的框圖;圖1B是示出了根據(jù)一個實施例的加密過程的步驟和元件的數(shù)據(jù)流程圖;圖2A是第二實施例的加密運算的框圖;圖2B是乘法運算的框圖;圖3A是示出安全電信系統(tǒng)的框圖;圖3B是示出安全存儲管理系統(tǒng)的框圖;圖4是示出了本發(fā)明的實施例可以在上面實現(xiàn)的計算機系統(tǒng)的框圖。
具體實施例方式
描述了一種用于加密的方法和裝置。在下面的描述中,為了說明的目的,給出了許多具體細節(jié)以提供對本發(fā)明的全面理解。然而,本領(lǐng)域技術(shù)人員將清楚本發(fā)明可以在沒有這些具體細節(jié)的情況下實現(xiàn)。此外,公知的結(jié)構(gòu)和器件用框圖示出以避免不必要地模糊本發(fā)明。
這里根據(jù)下面的提綱來描述實施例1.0概述2.0概念模型和目標(biāo)3.0用于塊密碼的運算的延伸密碼本(XCB)模式3.1 運算原理3.2 應(yīng)用示例3.3 安全性證明3.4 與現(xiàn)有方法的某些差別4.0實現(xiàn)機制——硬件概述5.0延伸和替換…1.0 概述在上述背景中所確定的需要以及將從下面的描述中變得清楚的其他需要和目標(biāo)可以在本發(fā)明中實現(xiàn),本發(fā)明一方面包括加密方法,該加密方法包括計算機實現(xiàn)的接收明文數(shù)據(jù)的步驟;將明文數(shù)據(jù)分成第一明文數(shù)據(jù)段A和第二明文數(shù)據(jù)段B;用塊密碼加密和第一密鑰加密第一明文數(shù)據(jù)段A,從而創(chuàng)建第一加密段C;對第一加密段C和第二明文數(shù)據(jù)段B與相關(guān)數(shù)據(jù)元素Z的基于第二密鑰的散列施加排他性(exclusive)OR(或)運算,從而創(chuàng)建第一中間結(jié)果數(shù)據(jù)D;對第一中間結(jié)果數(shù)據(jù)D和第三密鑰施加加密運算,從而創(chuàng)建加密輸出;對加密輸出和第二明文數(shù)據(jù)段B施加排他性O(shè)R運算,從而創(chuàng)建第二中間結(jié)果數(shù)據(jù)E;對第一中間結(jié)果數(shù)據(jù)D和第二中間結(jié)果與相關(guān)數(shù)據(jù)元素Z的使用第四密鑰的散列施加排他性O(shè)R運算,從而創(chuàng)建第三中間結(jié)果數(shù)據(jù)F;以及創(chuàng)建第二中間結(jié)果數(shù)據(jù)E和使用第五密鑰對第三中間結(jié)果數(shù)據(jù)F的解密結(jié)果的拼接作為輸出密文。
這里所規(guī)定的數(shù)據(jù)值標(biāo)簽在該描述僅僅是為了清楚和方便,另外可以是任意的;實施例和實現(xiàn)方式可以使用任何形式的標(biāo)記或命名用于所述數(shù)據(jù)值。
在一個特征中,第二密鑰、第三密鑰、第四密鑰和第五密鑰是基于第一密鑰和密鑰導(dǎo)出過程而確定的。在另一特征中,對密文進行解密涉及以相反的順序執(zhí)行上面的步驟。在另一特征中,明文包括存儲在非易失性存儲器中的數(shù)據(jù)塊,密文存儲在非易失性存儲器中。另外或者可替換地,明文包括存儲在盤驅(qū)動設(shè)備中的數(shù)據(jù)塊,密文存儲在盤驅(qū)動設(shè)備中。
在另一特征中,明文包括符合不可擴展數(shù)據(jù)協(xié)議的分組的數(shù)據(jù)凈荷,密文存儲在分組中。在另一特征中,明文包括符合安全RTP的分組的數(shù)據(jù)凈荷,密文存儲在分組中。
在各種特征中,用來從C計算D和用于從D計算F的加密運算可以是AES計數(shù)器模式加密或者AES OFB塊密碼模式。
在其他方面中,本發(fā)明包括計算機裝置和被配置為實現(xiàn)上述步驟的計算機可讀介質(zhì)。
在這些方法中,運算的塊密碼模式實現(xiàn)具有任意塊長度的塊密碼并且提供總是與輸入明文大小相同的輸出密文。該模式在不允許數(shù)據(jù)擴展的系統(tǒng)中可以提供最好的可能安全性,例如盤塊加密和一些網(wǎng)絡(luò)協(xié)議。該模式接受另外的輸入,該輸入可以用來保護不受通過重新布置密文塊而操縱密文的攻擊。來自用于塊密碼的運算的Galois/計數(shù)器模式的通用散列函數(shù)可以用在實施例中以獲得硬件和軟件的高效率。
2.0概念模型和目標(biāo)圖1A是提供可以使用這里的方法的通信系統(tǒng)模型的框圖。第一節(jié)點Alice通過不安全的通信鏈路L耦合到第二節(jié)點Bob。Alice和Bob不知道的是,第三節(jié)點Frank可以截取在鏈路L上發(fā)送的消息。
Alice發(fā)送給Bob一系列消息,每個消息都與某些另外的數(shù)據(jù)Z相關(guān)聯(lián),數(shù)據(jù)Z可以包含當(dāng)前時間(nonce),并且可以包含關(guān)于消息如何被網(wǎng)絡(luò)和發(fā)送者與接收者之間的其他中間系統(tǒng)路由、處理或處置的信息。Alice使用秘密密鑰K并且使用Z作為加密函數(shù)的輔助輸入對明文消息P加密,產(chǎn)生密文C。Alice在鏈路L上將C發(fā)送給Bob;然而,F(xiàn)rank截取C并將替代消息C’發(fā)送給Bob。消息C’在Frank不改變密文的情況下等于C。Bob使用與Alice共享的秘密密鑰K和相關(guān)數(shù)據(jù)的值Z,利用解密函數(shù)將C’解密為P’。Z或者包含在消息的非密文部分中,或者可以被推斷出。如果C’=C,那么P’=P;否則,可以預(yù)期P’是隨機的。
如果加密函數(shù)和解密函數(shù)分別用E和D表示,那么通過符號,圖1A的模型和之前的序列可以表示為C=E(K,Z,P)P=D(K,Z,C)如果只要C’≠C或Z’≠Z,值P’=D(K,C’,Z’)就是隨機的,則在C和E中所使用的密文就是安全的。因此,任何對密文的改變都從而密文解密成不可預(yù)見的隨機值,這些不可預(yù)見的隨機值不傳達有用的信息或明文。
支持該模型的加密方法的實現(xiàn)方式一般具有下列目標(biāo)■具有與明文大小完全相同的密文;■加密任何大小的緩沖器的能力,即,加密任何大于零的位數(shù)的能力;■具有在密文或相關(guān)數(shù)據(jù)被操縱的情況下隨機的解密輸出;■需要固定寬度的塊密碼作為唯一的密碼基元(cryptographicprimitive)。
此外,創(chuàng)建這樣的加密方法的商業(yè)實現(xiàn)方式的人可以另外具有下列目標(biāo),這些目標(biāo)在實施例中是希望但不是必需的■在標(biāo)準(zhǔn)假設(shè)下具有強力的、證明是安全的邊界(bound);■具有最小的計算成本,并且■支持最大的并行化。
3.0用于塊密碼的運算的延伸密碼本(XCB)模式3.1運算原理——第一實施例——每輪密鑰根據(jù)一個實施例,運算的延伸密碼本模式充當(dāng)具有相關(guān)數(shù)據(jù)的任意長度塊密碼。為了清楚說明示例的目的,這里的描述假設(shè)使用128位的塊密碼。如果定義適當(dāng)大小的有限域(field),則實施例可以使用其他塊密碼寬度。
圖1B是示出了根據(jù)一個實施例的加密過程的步驟和元件的數(shù)據(jù)流程圖。一般來說,圖1B的過程接收用于加密的信息,并且用圖1B中所示的計算操作和轉(zhuǎn)換對這樣的明文101加密,從而創(chuàng)建輸出密文132。明文101和密文132都可以包括任何形式的數(shù)據(jù)表示,例如位串、盤存儲塊等。
如圖1B可見,在步驟102,明文101被分成A和B所表示的兩部分。在一個實施例中,對于大小至少為256位的明文,明文101被分成兩半A和B,其中A是明文的第一個128位,B是明文的剩余部分。還接收到另外的數(shù)據(jù)值Z。另外的值Z可以以清晰的形式接收,并且可以包括任何輔助輸入值。另外的值Z可以具有任何長度。該方法防止了一些依賴于密碼本屬性的攻擊,因為用不同的Z值加密相同的明文值產(chǎn)生無關(guān)的密文值。在一個用于加密存儲信息的實施例中,Z是盤塊編號。在用于網(wǎng)絡(luò)通信的一個實施例中,Z可以是消息序號,在這樣的實施例中,Z的使用可以保護不受重放攻擊。
在步驟104,A部分被用加密運算116和第一密鑰值加密以產(chǎn)生第一中間值C。用符號表示,步驟104為C←E(K0,A)。
在步驟106,用第一XOR運算120和第一散列運算124計算第二中間值DD←C XOR H(K1,B,Z)。在該表達式中,H是散列函數(shù)。在一個實施例中,由Galois在用于塊密碼的運算的Galois/計數(shù)器模式(GCM)中所定義的GHASH算法可以被用于散列運算124和128中的散列算法。GCM散列函數(shù)的使用提供硬件和軟件兩者上的效率并且考慮了現(xiàn)有的實現(xiàn)努力的潛在再使用。在其他實施例中,任何偽隨機散列函數(shù)可以被用于散列運算124和128。
在步驟108,使用第二XOR運算130和加密運算126計算第一密文部分EE←B XOR CTR(K2,D)。在一個實施例中,CTR和加密運算126包括高級加密標(biāo)準(zhǔn)(AES)計數(shù)器模式加密的使用。在另一實施例中,OFB可以在步驟108使用并且可以用于加密運算126;OFB是運算的四種DES模式之一。當(dāng)使用計數(shù)器模式時,計數(shù)器模式加密運算被配置為產(chǎn)生大小與目標(biāo)數(shù)據(jù)相同的輸出,如接下來所述,用XOR運算將計數(shù)器模式輸出結(jié)合到該輸出中。在可替換的實施例中,運算126可以是任何的塊密碼。
在步驟110,用第二散列函數(shù)128和第三XOR運算122計算第三中間值FF←D XOR H(K3,E,Z)。第二散列運算128和在之前的表達式中的H與步驟106中所使用的是同一散列函數(shù)。在步驟112,使用解密運算118確定第二密文部分G,如G←D(K4,F(xiàn))。
在步驟114,通過拼接G和E而創(chuàng)建完整的密文132。所產(chǎn)生的密文132可以被存儲在網(wǎng)絡(luò)協(xié)議消息中,存儲在盤存儲設(shè)備中或者用于各種其他的基于計算機的應(yīng)用。使用這里的方法,密文132與明文101具有相同的長度。
在該描述中,E表示用作為集合{0,1}k的元素的密鑰K對作為集合{0,1}w的元素的值X進行塊密碼加密,D(K,X)表示用作為集合{0,1}k的元素的密鑰K對作為集合{0,1}w的元素的值X進行塊密碼解密。除了三輪以相反的順序運行之外,解密運算D與加密運算E相同。
加密運算116和解密運算118可以包括任何偽隨機排列;它們不需要具有如加密和解密運算的關(guān)系。加密運算116和解密運算118可以以硬件、軟件、固件或組合的形式實現(xiàn)。在一硬件實現(xiàn)方式中,如果密鑰K1和K4在各自的運算中被倒置,則相同的電路可以實現(xiàn)加密運算116和解密運算118兩者。此外,在另一實施例中,加密運算116和解密運算118每個都可以包括任何的偽隨機排列操作并且不需要具有加密—解密關(guān)系。
這里所描述的密鑰K0至K4中的每一個密鑰可以包括第一密鑰和多個從第一密鑰通過數(shù)學(xué)方法或通過計算導(dǎo)出的其他密鑰。在該方法中,在加密開始前需要較少的密鑰共享操作?;蛘?,使用任何已知的密鑰分配機制,可以預(yù)先將所有密鑰提供給參與的處理元件。
3.2第二實施例——單個密鑰根據(jù)另一實施例,雖然運算的延伸密碼本模式充當(dāng)具有相關(guān)數(shù)據(jù)的任意長度塊密碼,但是使用單個密鑰而不是每輪一個密鑰。圖2A是第二實施例的加密運算的框圖,圖2B是乘法運算的框圖。為了清楚說明示例的目的,這里的描述假設(shè)使用128位的塊密碼。如果定義適當(dāng)大小的有限域,則實施例可以使用其他塊密碼寬度。
第二實施例中所使用的兩個主函數(shù)是域GF(2128)上的塊密碼加密和乘法。在下面的算法描述中,用密鑰K對值X所進行的塊密碼加密表示為e(K,X),塊密碼解密表示為d(K,X)。符號E和D表示根據(jù)這里所描述的運算的延伸密碼本模式的加密和解密。
塊密碼輸入和輸出中的位數(shù)用w表示。當(dāng)使用AES時,w的值為128。兩個元素X和Y∈GF(2128)的乘法表示為X·Y,X和Y的加法表示為XY。該域中的加法相當(dāng)于按位的排他性或運算。在下面的獨立部分中定義示例乘法運算。
在算法描述中,函數(shù)len(S)返回64位的串,該串包含描述函數(shù)的自變量S中的位數(shù)的非負整數(shù),最低有效位在右邊。表達式0l表示l個零的位串,A‖B表示兩個位串A和B的拼接。位串被認為是從左邊開始索引的,因此S的第零位是最左邊的位。當(dāng)S是位串并且0<=a<b<=len(S)時,S[a;b]表示S的長度為b-a的子串,該子串由S的a至b位組成。符號{}表示具有零長度的位串。
延伸密碼本加密運算在表1中定義,解密運算在表2中定義,加密運算也在圖2A中示出。表1和表2的算法使用塊密碼加密函數(shù)e和d以及散列函數(shù)h和偽隨機函數(shù)c。如圖2B所示,變量H、I、J和L是通過在計數(shù)器模式下運行函數(shù)e而從K導(dǎo)出的??蛇x地,變量H、I、J和L的值在算法的賦值之間存儲,從而為降低計算負荷折衷選擇少量存儲。
表1-XCB加密運算給出密鑰K∈{0,1}k,明文P∈{0,1}m,其中m∈[w,239],以及相關(guān)數(shù)據(jù)Z∈{0,1}n,其中n∈
,返回密文C∈{0,1}m。
H←e(K,0w),I←e(K,0=w-1‖1),J←e(K,0w-2‖10),L←e(K,0w-2‖11)A←P
B←P[w;len(P)-1]C←e(K,AI)D←Ch(H,0w‖Z,B)E←Bc(K,D,len(D))F←Dh(H,Z‖L,E)G←d(K,F(xiàn))J返回G‖E表2-XCB解密運算給出密鑰K∈{0,1}k,密文C∈{0,1}m,其中m∈[w,239],以及相關(guān)數(shù)據(jù)Z∈{0,1}n,其中n∈
,返回明文P∈{0,1}m。
G←C
E←C[w;len(C)-1]F←e(K,GJ)D←Fh(H,Z‖L,E)B←Ec(K,D,len(D))C←Dh(H,0w‖Z,B)A←d(K,C)I返回A‖B函數(shù)c{0,1}k×{0,1}w→{0,1}l,其中輸出長度l由0<=l<=239限定,使用其w位輸入作為初始計數(shù)器值,通過在計數(shù)器模式下運行塊密碼e而產(chǎn)生任意長度的輸出。其定義為
C(K,W,l)=E(K,W)‖E(K,incr(W))‖...‖MSBt(E(K,incrn-1(W))),其中為了清楚起見使輸出長度l成為顯性參數(shù)。表達式 是輸出中w位的塊的數(shù)目,t=l mod w是尾塊中的位數(shù)。此外,函數(shù)incr{0,1}w→{0,1}w是用來產(chǎn)生連續(xù)的計數(shù)器值的遞增運算。遞增函數(shù)將其自變量的最右邊32位當(dāng)作非負整數(shù),最低有效位在右邊,并且以232為模遞增該值。
函數(shù)h{0,1}w×{0,1}m×{0,1}n→{0,1}w,m∈[w,239],n∈
是由h(H,A,C)=Xm+n+1定義的,其中變量Xi∈{0,1}w,對于i=0,...,m+n+1被定義為Xi=0 對于i=0(Xi-1Ai)·H 對于i=1,...,m-1(Xm-1(A*m‖0w-v))·H 對于i=m(Xi-1Ci-m)·H對于i=m+1,...,m+n-1(xm+n-1,(C*n‖0w-u))·H對于i=m+n(Xm+n,(len(A)‖len(C)))·H 對于i=m+n+1在上述表達式中,Ai表示w位的子串A[(i-1)w;iw-1],Ci表示C[(i-1)w;iw-i]。因此,如果那些位串被分解成w位的塊,則Ai和Ci分別是A和C的第i塊。在用作運算的Galois/計數(shù)器模式(GCM)的組成部分的通用散列函數(shù)GHASH中提供類似的方法,除了GHASH像AES一樣需要w=128。
域GF(2128)上的乘法被定義為關(guān)于位向量的運算以簡化這里的詳細說明。這樣的定義不需要使用方法定義中的有限域數(shù)學(xué)。該域的背景信息和其表示法以及用于有效實現(xiàn)的策略在GCM規(guī)范D.McGrew等人2004年1月的“The Galois/Counter Mode of Operation(GCM)”,Submission to NISTModes of Operation Process的第3和第4部分(在萬維網(wǎng)上的域csrc.nist.gov的CryptoToolkit/modes/proposed modes目錄中可在線得到)中提供。
每個域元素是128位的向量。元素X的第i位表示為Xi。最左邊的位是X0,最右邊的位是X127。乘法運算使用特定元素R=11100001‖0120,并且在表3中定義。函數(shù)rightshift()將其自變量的位右移一位。因此,任何時候W=rightshift(V),那么Wi=Vi-1對于1<=i<=127并且W0=0。
表3-用于GF(2128)的乘法Z←0,V←Xfor i=0 to 127 doif Yi=1 thenZ←ZVend ifif V127=0 thenV←rightshift(V)elseV←rightshift(V)Rend ifend forreturn Z3.3示例應(yīng)用示例實施例可以應(yīng)用到數(shù)個不同的應(yīng)用。圖3A是示出安全電信系統(tǒng)的框圖,圖3B是示出安全存儲管理系統(tǒng)的框圖。現(xiàn)在參照圖3A,根據(jù)一個實施例,網(wǎng)絡(luò)元件304包括實現(xiàn)圖1B的方法的XCB邏輯306,該網(wǎng)絡(luò)元件被耦合到第一網(wǎng)絡(luò)305A和第二網(wǎng)絡(luò)305B。第二網(wǎng)絡(luò)元件310也被耦合到網(wǎng)絡(luò)305B。網(wǎng)絡(luò)305A和305B可以包括相同的網(wǎng)絡(luò)。
網(wǎng)絡(luò)元件304通過網(wǎng)絡(luò)305A從上游網(wǎng)絡(luò)元件(未示出)接收安全實時協(xié)議(SRTP)消息302。消息302被認為是明文消息。網(wǎng)絡(luò)元件304用XCB邏輯306對SRTP消息302應(yīng)用這里所描述的運算的延伸代碼塊模式。所產(chǎn)生的密文被封裝成加密的SRTP消息308,加密的SRTP消息308與明文消息具有相同的長度或大小。然后網(wǎng)絡(luò)元件304將加密的消息308轉(zhuǎn)發(fā)給網(wǎng)絡(luò)元件310,網(wǎng)絡(luò)元件310用這里的技術(shù)對該消息進行解密或者用其他方式使用該消息。這樣,這里的技術(shù)可以被應(yīng)用到任何網(wǎng)絡(luò)通信情況中,其中特定的消息發(fā)送協(xié)議不能允許由于加密而產(chǎn)生的消息擴展。
現(xiàn)在參照圖3B,存儲管理元件322容宿或者實現(xiàn)XCB邏輯306。存儲管理元件322被耦合到大容量存儲設(shè)備330,例如盤陣列或盤驅(qū)動器。
存儲管理元件322從存儲設(shè)備330、操作系統(tǒng)、中央處理器或其他處理元件接收盤塊320以便存儲在存儲設(shè)備330中。存儲管理元件322用XCB邏輯306將這里所描述的運算的延伸代碼塊模式應(yīng)用到盤塊320,從而創(chuàng)建加密的盤塊324。加密的盤塊324具有與盤塊320的長度或大小相同的長度或大小。然后存儲管理元件322將加密的盤塊324存儲在存儲設(shè)備330中。
在所有這樣的應(yīng)用中,明文數(shù)據(jù)、段、中間結(jié)果數(shù)據(jù)、相關(guān)數(shù)據(jù)和密文中的每一項可以包括存儲在電子數(shù)字存儲設(shè)備中的數(shù)字值。此外,上面所描述的分開、加密、散列、XOR和其他操作可以在耦合到電子數(shù)字存儲設(shè)備并且與數(shù)字數(shù)據(jù)值交互的電子數(shù)字數(shù)據(jù)處理裝置中執(zhí)行。
特定的應(yīng)用可以在使用諸如安全RTP之類的協(xié)議的網(wǎng)絡(luò)通信的環(huán)境中和在提供盤塊的安全存儲的存儲管理等中實現(xiàn)。因此,這里的方法在技術(shù)領(lǐng)域內(nèi)應(yīng)用。
這里的方法還提供有用的、具體的和真實的結(jié)果。在一個實施例中,所述方法接收可以作為瞬時電子信號而在計算機中表示出的數(shù)據(jù)值。在一個實施例中,所述方法使用電子數(shù)字數(shù)據(jù)處理器來根據(jù)這里所描述的數(shù)據(jù)處理步驟操縱信號。因此,輸入明文被以特定方式變成輸出密文。輸出密文也被表示為可以存儲在諸如數(shù)字存儲器之類的電子數(shù)字設(shè)備中的瞬時電子信號。因此,這里所描述的機器實現(xiàn)的數(shù)據(jù)操縱步驟可以操作存儲在電子計算機存儲器中的數(shù)據(jù);改變數(shù)據(jù)引起電子存儲器的單元、門和晶體管的狀態(tài)上的變化;改變這些器件的狀態(tài)意味著在原子能級上,電子電荷被施加到與特定存儲器位的位置相關(guān)聯(lián)的某些半導(dǎo)體材料上并且不施加到其他材料上;并且電荷上的這種改變是具體和真實的結(jié)果。
3.4安全性證明可以證明這里的方法滿足上面所確定的目標(biāo)并且是安全的。這里的方法的安全性證明在McGrew等人的論文“Extended Codebook Mode(XCB)Security without Data Expansion”(第3部分,“Security”)中給出,這篇論文在美國專利申請的附錄中再現(xiàn),本申請要求該美國專利申請的優(yōu)先權(quán)。
3.5實施例的好處所公開的方法在其效率、其處理任意明文長度的能力和其接受另外輸入的能力上是獨特的。所述方法提供運算的塊密碼模式,該模式用另外的輸入實現(xiàn)無展性密碼。廣泛地看,這里的方法從而明文數(shù)據(jù)通過三次以產(chǎn)生密文。兩次通過使用GF(2128)上的通用散列法,一次通過使用計數(shù)器模式加密。與所有基于Luby-Rackoff和Naor-Reingold的設(shè)計不同,這里的方法部分地依賴于塊密碼的可逆性來獲得安全性。
這里所公開的模式可以用硬件和軟件實現(xiàn),并且其具有與類似的模式相比相對低的計算成本其僅需要n+1次塊密碼調(diào)用和GF(2w)上的2n次乘法,其中w是塊密碼輸入和輸出中的位數(shù)。該模式還具有數(shù)個有用的屬性其接受任意大小的明文和相關(guān)數(shù)據(jù),包括長度至少為w位的任何明文。該屬性允許這里的模式保護短數(shù)據(jù),例如安全RTP中的普通20字節(jié)G.729語音編解碼器。
3.6與過去的方法的某些差別XCB比任何其他的無展性密碼更高效,因為它需要較少的計算。僅次于最好模式的運算模式是EME模式,EME模式幾乎進行兩倍的計算。此外,XCB更適合于高效的硬件實現(xiàn)方式,因為它可以更容易地被并行化和流水線化。XCB還接收另外的輸入,該另外的輸入可以用來防止密文置換攻擊。
這里的方法幾乎是最好的競爭者效率的兩倍。這里的方法在AES與偽隨機排列不可區(qū)分的合理假設(shè)下也被證明為安全的。
這里的方法具有很多應(yīng)用。例如,該方法可以用在安全RTP中,其中它對于無線語音或者在CET中或者在分組或數(shù)據(jù)凈荷的擴展不可行或不被協(xié)議允許的任何其他協(xié)議中尤其合適。
該方法還可以用在存儲聯(lián)網(wǎng)中或者擴展不可行的數(shù)據(jù)存儲系統(tǒng)中。該方法可以用在用于本地和遠程存儲兩者的盤塊加密中。
4.0實現(xiàn)機制—硬件概述圖4是示出了本發(fā)明的實施例可以在上面實現(xiàn)的計算機系統(tǒng)200的框圖。計算機系統(tǒng)200包括總線202或用于傳送信息的其他通信機制以及與總線202耦合的用于處理信息的處理器204。計算機系統(tǒng)200還包括諸如隨機存取存儲器(“RAM”)或其他動態(tài)存儲設(shè)備之類的主存儲器206,主存儲器206耦合到總線202并且用于存儲信息和將由處理器204執(zhí)行的指令。主存儲器206也可以用于在執(zhí)行將由處理器204執(zhí)行的指令期間存儲臨時變量或其他中間信息。計算機系統(tǒng)200還包括耦合到總線202的只讀存儲器(“ROM”)208或其他靜態(tài)存儲設(shè)備,用于存儲用于處理器204的靜態(tài)信息和指令。諸如磁盤或光盤之類的存儲設(shè)備210被提供并且被耦合到總線202,用于存儲信息和指令。
計算機系統(tǒng)200可以經(jīng)由總線202耦合到顯示器212,顯示器212例如是陰極射線管(“CRT”),用于將信息顯示給計算機用戶。包括字母數(shù)字鍵和其他鍵的輸入設(shè)備214被耦合到總線202,用于將信息和命令選擇傳送給處理器204。另一類型的用戶輸入設(shè)備是光標(biāo)控制設(shè)備216,例如鼠標(biāo)、跟蹤球、觸針或光標(biāo)方向鍵,用于將方向信息和命令選擇傳送給處理器204并且用于控制光標(biāo)在顯示器212上的移動。該輸入設(shè)備一般具有第一軸(例如x)和第二軸(例如y)兩個軸上的兩個自由度,允許設(shè)備在平面上指定位置。
本發(fā)明涉及用于加密方法的計算機系統(tǒng)200的使用。根據(jù)本發(fā)明的一個實施例,響應(yīng)于處理器204執(zhí)行包含在主存儲器206中的一個或多個指令的一個或多個序列而由計算機系統(tǒng)200提供加密方法。這樣的指令可以從諸如存儲設(shè)備210之類的另一計算機可讀介質(zhì)讀入到主存儲器206中。包含在主存儲器206中的指令序列的執(zhí)行從而處理器204執(zhí)行這里所描述的處理步驟。在可替換的實施例中,可以使用硬連接的電路代替軟件指令或者使用硬連接的電路與軟件指令的組合來實現(xiàn)本發(fā)明。因此,本發(fā)明的實施例不局限于硬件電路和軟件的具體組合。
這里所使用的術(shù)語“計算機可讀介質(zhì)”指的是參與將指令提供給處理器204執(zhí)行的任何介質(zhì)。這樣的介質(zhì)可以采用多種形式,包括但不局限于非易失性介質(zhì)、易失性介質(zhì)和傳輸介質(zhì)。非易失性介質(zhì)例如包括光盤或磁盤,例如存儲設(shè)備210。易失性介質(zhì)包括動態(tài)存儲器,例如主存儲器206。傳輸介質(zhì)包括同軸電纜、銅線和光纖,包括包含總線202的線路。傳輸介質(zhì)也可以采用聲波或光波的形式,例如在無線電波或紅外數(shù)據(jù)通信期間產(chǎn)生的那些波。
計算機可讀介質(zhì)的普通形式例如包括軟盤、柔性盤、硬盤、磁帶或任何其他磁介質(zhì),CD-ROM、任何其他光介質(zhì),穿孔卡、紙帶、任何其他具有孔圖案的物理介質(zhì),RAM、PROM和EPROM,F(xiàn)LASH-EPROM、任何其他存儲器芯片或存儲器盒(memory cartridge),下文所描述的載波或計算機可以對其讀取的任何其他介質(zhì)。
在將一個或多個指令的一個或多個序列運載給處理器204執(zhí)行的過程中可以涉及各種形式的計算機可讀介質(zhì)。例如,指令最初可以在遠程計算機的磁盤上運載。遠程計算機可以將指令載入到其動態(tài)存儲器中并且用調(diào)制解調(diào)器在電話線上發(fā)送指令。計算機系統(tǒng)200本地的調(diào)制解調(diào)器可以接收電話線上的數(shù)據(jù)并且使用紅外線發(fā)射器將數(shù)據(jù)轉(zhuǎn)換為紅外信號。紅外檢測器可以接收以紅外信號運載的數(shù)據(jù),適當(dāng)?shù)碾娐房梢詫?shù)據(jù)放在總線202上??偩€202將數(shù)據(jù)運載給主存儲器206,處理器206從主存儲器206取回并執(zhí)行指令。由主存儲器206所接收的指令可以或者在處理器204執(zhí)行之前,或者在處理器204執(zhí)行之后被選擇性地存儲在存儲設(shè)備210上。
計算機系統(tǒng)200還包括耦合到總線202的通信接口218。通信接口218提供耦合到網(wǎng)絡(luò)鏈路220的雙向數(shù)據(jù)通信,網(wǎng)絡(luò)鏈路220被連接到本地網(wǎng)222。例如,通信接口218可以是提供對相應(yīng)類型的電話線的數(shù)據(jù)通信連接的綜合業(yè)務(wù)數(shù)字網(wǎng)(“ISDN”)卡或調(diào)制解調(diào)器。作為另一示例,通信接口218可以是提供對兼容LAN的數(shù)據(jù)通信連接的局域網(wǎng)(“LAN”)卡。也可以實現(xiàn)無線鏈路。在任何這樣的實現(xiàn)方式中,通信接口218發(fā)送和接收運載表示各種類型信息的數(shù)字數(shù)據(jù)流的電信號、電磁信號或光信號。
網(wǎng)絡(luò)鏈路220一般提供經(jīng)過一個或多個網(wǎng)絡(luò)到其他數(shù)據(jù)設(shè)備的數(shù)據(jù)通信。例如,網(wǎng)絡(luò)鏈路220可以提供經(jīng)過本地網(wǎng)222到主計算機224或到因特網(wǎng)服務(wù)提供商(“ISP”)226操作的數(shù)據(jù)設(shè)備的連接。ISP 226又提供經(jīng)過現(xiàn)在一般稱為“因特網(wǎng)”228的全球分組數(shù)據(jù)通信網(wǎng)的數(shù)據(jù)通信服務(wù)。本地網(wǎng)222和因特網(wǎng)228都使用運載數(shù)字數(shù)據(jù)流的電信號、電磁信號或光信號。經(jīng)過各種網(wǎng)絡(luò)的信號和在網(wǎng)絡(luò)鏈路220上并且經(jīng)過通信接口218的信號將數(shù)字數(shù)據(jù)運載到計算機系統(tǒng)200或者從計算機系統(tǒng)200運載數(shù)字數(shù)據(jù),它們是運輸信息的載波的示例性形式。
計算機系統(tǒng)200可以經(jīng)過(一個或多個)網(wǎng)絡(luò)、網(wǎng)絡(luò)鏈路220和通信接口218發(fā)送消息并接收數(shù)據(jù),包括程序代碼。在因特網(wǎng)示例中,服務(wù)器230可以經(jīng)過因特網(wǎng)228、ISP 226、本地網(wǎng)222和通信接口218發(fā)送用于應(yīng)用程序的請求代碼。根據(jù)本發(fā)明,一個這樣的下載應(yīng)用為提供這里所描述的加密方法作準(zhǔn)備。
當(dāng)代碼被接收并且/或者被存儲在存儲設(shè)備210或其他非易失性存儲設(shè)備以稍后執(zhí)行時,處理器204可以執(zhí)行所接收的代碼。在這種方式下,計算機系統(tǒng)200可以獲得載波形式下的應(yīng)用代碼。
在上述具體描述中,參考本發(fā)明的具體實施例對本發(fā)明進行了描述。然而,將會清楚可以對其做出各種修改和變化,而不脫離本發(fā)明更寬的精神和范圍。因此,說明書和附圖被認為是說明性意義上的,而不是限制性意義上的。
權(quán)利要求
1.一種數(shù)據(jù)通信方法,包括計算機實現(xiàn)的以下步驟在將發(fā)送器和接收器彼此耦合的電子數(shù)字電信鏈路上接收包括輸入明文數(shù)據(jù)的第一消息;將所述明文數(shù)據(jù)分離成第一明文數(shù)據(jù)段和第二明文數(shù)據(jù)段;使用塊密碼加密和第一密鑰對所述第一明文數(shù)據(jù)段加密,從而創(chuàng)建第一加密段;對所述第一加密段和所述第二明文數(shù)據(jù)段與相關(guān)數(shù)據(jù)元素的基于第二密鑰的散列施加排他性或運算,從而創(chuàng)建第一中間結(jié)果數(shù)據(jù);對所述第一中間結(jié)果數(shù)據(jù)和第三密鑰施加加密運算,從而創(chuàng)建加密輸出;對所述加密輸出和所述第二明文數(shù)據(jù)段施加排他性或運算,從而創(chuàng)建第二中間結(jié)果數(shù)據(jù);對所述第一中間結(jié)果數(shù)據(jù)和所述第二中間結(jié)果與所述相關(guān)數(shù)據(jù)元素的使用第四密鑰的散列施加排他性或運算,從而創(chuàng)建第三中間結(jié)果數(shù)據(jù);以及創(chuàng)建所述第二中間結(jié)果數(shù)據(jù)和使用第五密鑰對第三中間結(jié)果數(shù)據(jù)的解密結(jié)果的拼接作為輸出密文;將所述輸出密文在第二消息中通過所述鏈路發(fā)送給所述接收器;其中所述明文數(shù)據(jù)、段、中間結(jié)果數(shù)據(jù)、相關(guān)數(shù)據(jù)和密文中的每一項是存儲在電子數(shù)字存儲設(shè)備中的數(shù)字值;其中所述分離、加密、施加和創(chuàng)建操作在耦合到所述電子數(shù)字存儲設(shè)備并且與所述數(shù)字數(shù)據(jù)值交互的電子數(shù)字數(shù)據(jù)處理裝置中執(zhí)行。
2.一種方法,包括計算機實現(xiàn)的以下步驟接收明文數(shù)據(jù);將所述明文數(shù)據(jù)分離成第一明文數(shù)據(jù)段A和第二明文數(shù)據(jù)段B;使用塊密碼加密和第一密鑰對所述第一明文數(shù)據(jù)段A加密,從而創(chuàng)建第一加密段C;對所述第一加密段C和所述第二明文數(shù)據(jù)段B與相關(guān)數(shù)據(jù)元素Z的基于第二密鑰的散列施加排他性或運算,從而創(chuàng)建第一中間結(jié)果數(shù)據(jù)D;對所述第一中間結(jié)果數(shù)據(jù)D和第三密鑰施加加密運算,從而創(chuàng)建加密輸出;對所述加密輸出和所述第二明文數(shù)據(jù)段B施加排他性或運算,從而創(chuàng)建第二中間結(jié)果數(shù)據(jù)E;對所述第一中間結(jié)果數(shù)據(jù)D和所述第二中間結(jié)果與所述相關(guān)數(shù)據(jù)元素Z的使用第四密鑰的散列施加排他性或運算,從而創(chuàng)建第三中間結(jié)果數(shù)據(jù)F;以及創(chuàng)建所述第二中間結(jié)果數(shù)據(jù)E和使用第五密鑰對第三中間結(jié)果數(shù)據(jù)F的解密結(jié)果的拼接作為輸出密文。
3.如權(quán)利要求2所述的方法,其中所述第二密鑰、第三密鑰、第四密鑰和第五密鑰是基于所述第一密鑰和密鑰導(dǎo)出過程而確定的。
4.如權(quán)利要求2所述的方法,包括通過以相反的順序執(zhí)行權(quán)利要求1所述的步驟而對所述密文進行解密。
5.如權(quán)利要求2所述的方法,其中所述明文包括存儲在非易失性存儲器中的數(shù)據(jù)塊,所述方法還包括將所述密文存儲在所述非易失性存儲器中。
6.如權(quán)利要求2所述的方法,其中所述明文包括存儲在盤驅(qū)動設(shè)備中的數(shù)據(jù)塊,所述方法還包括將所述密文存儲在所述盤驅(qū)動設(shè)備中。
7.如權(quán)利要求2所述的方法,其中所述明文包括符合不可擴展數(shù)據(jù)協(xié)議的分組的數(shù)據(jù)凈荷,所述方法還包括將所述密文存儲在所述分組中。
8.如權(quán)利要求2所述的方法,其中所述明文包括符合安全實時協(xié)議的分組的數(shù)據(jù)凈荷,所述方法還包括將所述密文存儲在所述分組中。
9.如權(quán)利要求2所述的方法,其中所述加密運算是AES計數(shù)器模式加密。
10.如權(quán)利要求2所述的方法,其中所述加密運算是AES OSB塊密碼模式。
11.一種裝置,包括用于接收明文數(shù)據(jù)的裝置;用于將所述明文數(shù)據(jù)分離成第一明文數(shù)據(jù)段和第二明文數(shù)據(jù)段的裝置;用于使用塊密碼加密和第一密鑰對所述第一明文數(shù)據(jù)段加密,從而創(chuàng)建第一加密段的裝置;用于對所述第一加密段和所述第二明文數(shù)據(jù)段與相關(guān)數(shù)據(jù)元素的基于第二密鑰的散列施加排他性或運算,從而創(chuàng)建第一中間結(jié)果數(shù)據(jù)的裝置;用于對所述第一中間結(jié)果數(shù)據(jù)和第三密鑰施加計數(shù)器模式的加密運算,從而創(chuàng)建計數(shù)器模式的輸出的裝置;用于對所述計數(shù)器模式的輸出和所述第二明文數(shù)據(jù)段施加排他性或運算,從而創(chuàng)建第二中間結(jié)果數(shù)據(jù)的裝置;用于對所述第一中間結(jié)果數(shù)據(jù)和所述第二中間結(jié)果與所述相關(guān)數(shù)據(jù)元素的使用第四密鑰的散列施加排他性或運算,從而創(chuàng)建第三中間結(jié)果數(shù)據(jù)的裝置;以及用于創(chuàng)建所述第二中間結(jié)果數(shù)據(jù)和使用第五密鑰對第三中間結(jié)果數(shù)據(jù)的解密結(jié)果的拼接作為輸出密文的裝置。
12.如權(quán)利要求11所述的裝置,其中所述第二密鑰、第三密鑰、第四密鑰和第五密鑰是基于所述第一密鑰和密鑰導(dǎo)出過程而確定的。
13.如權(quán)利要求11所述的裝置,包括通過以相反的順序執(zhí)行權(quán)利要求1所述的步驟而對所述密文進行解密。
14.如權(quán)利要求11所述的裝置,其中所述明文包括存儲在非易失性存儲器中的數(shù)據(jù)塊,所述裝置還將所述密文存儲在所述非易失性存儲器中。
15.如權(quán)利要求11所述的裝置,其中所述明文包括存儲在盤驅(qū)動設(shè)備中的數(shù)據(jù)塊,所述裝置還將所述密文存儲在所述盤驅(qū)動設(shè)備中。
16.如權(quán)利要求11所述的裝置,其中所述明文包括符合不可擴展數(shù)據(jù)協(xié)議的分組的數(shù)據(jù)凈荷,所述裝置還將所述密文存儲在所述分組中。
17.如權(quán)利要求11所述的裝置,其中所述明文包括符合安全實時協(xié)議的分組的數(shù)據(jù)凈荷,所述裝置還將所述密文存儲在所述分組中。
18.如權(quán)利要求11所述的裝置,其中所述加密運算是AES計數(shù)器模式加密。
19.如權(quán)利要求11所述的裝置,其中所述加密運算是AES OSB塊密碼模式。
20.一種加密裝置,包括網(wǎng)絡(luò)接口,該網(wǎng)絡(luò)接口耦合到用于從其接收一個或多個分組流的數(shù)據(jù)網(wǎng)絡(luò);處理器;指令的一個或多個存儲序列,在由所述處理器執(zhí)行時,使得所述處理器執(zhí)行以下步驟接收明文數(shù)據(jù);將所述明文數(shù)據(jù)分離成第一明文數(shù)據(jù)段A和第二明文數(shù)據(jù)段B;使用塊密碼加密和第一密鑰對所述第一明文數(shù)據(jù)段A加密,從而創(chuàng)建第一加密段C;對所述第一加密段C和所述第二明文數(shù)據(jù)段B與相關(guān)數(shù)據(jù)元素Z的基于第二密鑰的散列施加排他性或運算,從而創(chuàng)建第一中間結(jié)果數(shù)據(jù)D;對所述第一中間結(jié)果數(shù)據(jù)D和第三密鑰施加加密運算,從而創(chuàng)建加密輸出;對所述加密輸出和所述第二明文數(shù)據(jù)段B施加排他性或運算,從而創(chuàng)建第二中間結(jié)果數(shù)據(jù)E;對所述第一中間結(jié)果數(shù)據(jù)D和所述第二中間結(jié)果與所述相關(guān)數(shù)據(jù)元素Z的使用第四密鑰的散列施加排他性或運算,從而創(chuàng)建第三中間結(jié)果數(shù)據(jù)F;以及創(chuàng)建所述第二中間結(jié)果數(shù)據(jù)E和使用第五密鑰對第三中間結(jié)果數(shù)據(jù)F的解密結(jié)果的拼接作為輸出密文。
21.如權(quán)利要求20所述的裝置,其中所述第二密鑰、第三密鑰、第四密鑰和第五密鑰是基于所述第一密鑰和密鑰導(dǎo)出過程而確定的。
22.如權(quán)利要求20所述的裝置,包括通過以相反的順序執(zhí)行權(quán)利要求1所述的步驟而對所述密文進行解密。
23.如權(quán)利要求20所述的裝置,其中所述明文包括存儲在非易失性存儲器中的數(shù)據(jù)塊,所述裝置還將所述密文存儲在所述非易失性存儲器中。
24.如權(quán)利要求20所述的裝置,其中所述明文包括存儲在盤驅(qū)動設(shè)備中的數(shù)據(jù)塊,所述裝置還將所述密文存儲在所述盤驅(qū)動設(shè)備中。
25.如權(quán)利要求20所述的裝置,其中所述明文包括符合不可擴展數(shù)據(jù)協(xié)議的分組的數(shù)據(jù)凈荷,所述裝置還將所述密文存儲在所述分組中。
26.如權(quán)利要求20所述的裝置,其中所述明文包括符合安全實時協(xié)議的分組的數(shù)據(jù)凈荷,所述裝置還將所述密文存儲在所述分組中。
27.如權(quán)利要求20所述的裝置,其中所述加密運算是AES計數(shù)器模式加密。
28.如權(quán)利要求20所述的裝置,其中所述加密運算是AES OSB塊密碼模式。
29.一種將明文加密成密文的方法,該方法包括計算機實現(xiàn)的以下步驟接收所述明文和輔助數(shù)據(jù)值;將所述明文分離成第一明文部分和第二明文部分;使用GF(2128)上的通用散列函數(shù)從所述第二明文部分和所述輔助值產(chǎn)生第一散列值;結(jié)合所述第一散列值對所述第一明文部分進行計數(shù)器模式加密以產(chǎn)生加密輸出;結(jié)合所述第二明文部分并使用所述輔助值從所述加密輸出產(chǎn)生第二散列值;基于(a)所述第二明文部分與所述加密輸出的組合和(b)與所述第一明文部分結(jié)合的所述第二散列值創(chuàng)建并存儲所述密文。
全文摘要
運算的塊密碼模式實現(xiàn)具有任意塊長度的塊密碼并且提供總是與輸入明文大小相同的輸出密文。該模式在不允許數(shù)據(jù)擴展的系統(tǒng)中可以提供最好的可能安全性,例如盤塊加密和一些網(wǎng)絡(luò)協(xié)議。該模式接受另外的輸入,該輸入可以用來保護不受通過重新布置密文塊而操縱密文的攻擊。來自用于塊密碼的運算的Galois/計數(shù)器模式的通用散列函數(shù)可以用在針對硬件和軟件效率的實施例中。
文檔編號H04L9/32GK101061661SQ200580031603
公開日2007年10月24日 申請日期2005年10月18日 優(yōu)先權(quán)日2004年10月20日
發(fā)明者大衛(wèi)·A·麥格魯, 斯科特·弗呂爾 申請人:思科技術(shù)公司