專利名稱:用于消息認(rèn)證的加密方法
技術(shù)領(lǐng)域:
本發(fā)明涉及消息(message)的安全加密方法
背景技術(shù):
在許多類型的通信中,有必要保護(hù)消息免受篡改(tampering)和非 4受權(quán)訪問(wèn)(unauthorized access)。力口密長(zhǎng)久以來(lái)凈皮應(yīng)用于此目的。在力口 密技術(shù)的高級(jí)應(yīng)用中,加密密鑰(encryption key)不僅被用于為加密的 消息提供安全性,而且被用于保護(hù)消息的完整性。例如,在傳送之前 數(shù)字簽名可能被附加于消息上,而第二版本的數(shù)字簽名由接收方從接 收的消息計(jì)算得出。如果數(shù)字簽名的兩個(gè)版本不一致,則接收方將會(huì) 知道消息的完整性由于篡改而遭到了破壞。
為了確保消息的完整性,希望能夠在不可改變(nonmalleable)的密 碼的保護(hù)下連同附加的數(shù)字簽名 一起發(fā)送消息。不可改變的特性確保 如果即使是加密消息的 一個(gè)位因?yàn)?例如)惡意的攻擊而被改變的話, 改變的效果將會(huì)在解密時(shí)分布在整個(gè)消息中。因此,存在很高的概率 數(shù)字簽名會(huì)受到影響,并且與由接收方在本地計(jì)算得出的版本不一 致。
用于加密消息的一種類型的密碼-陂稱作為分組密碼(block cipher)。分組密碼把固定長(zhǎng)度的二進(jìn)制數(shù)據(jù)塊作為輸入字符串,并且 產(chǎn)生固定長(zhǎng)度的二進(jìn)制數(shù)據(jù)塊作為輸出字符串。例如,高級(jí)加密標(biāo)準(zhǔn) (AES)是著名的分組密碼,它通常有128位的輸入塊和輸出塊。應(yīng)用諸如AES的分組密碼的一種方法是通過(guò)電子密碼本(ECB) 加密。在ECB加密中,消息被分割成分組密碼的合適輸入長(zhǎng)度的塊, 并且每一塊又被使用分組密碼而獨(dú)立地加密。
ECB加密的一個(gè)弱點(diǎn)在于它容易受到重放攻擊。這就是說(shuō),攻擊 者可能尋找傳送消息中重現(xiàn)的字符串。在ECB加密中,明文字符串的 重現(xiàn)可能導(dǎo)致同樣的加密字符串的重現(xiàn)。在這樣的情況下,重現(xiàn)可能 凈皮攻擊者識(shí)別。
已做了各種嘗試來(lái)使加密方法更加穩(wěn)健以抵御篡改、重放攻擊 以及其他種類的攻擊。在與此共同轉(zhuǎn)讓的由S. Patel等人所著的題為 "無(wú)線網(wǎng)絡(luò)的空中接口應(yīng)用層安全"("Air-Interface Application Layer Security For Wireless Networks")的美國(guó)專利(序號(hào)為11/261,399、申請(qǐng) 日為2005年10月28日)中描述了一個(gè)更穩(wěn)健的方法的例子。在該方 法中,分組密碼(例如)被用來(lái)生成一對(duì)偽隨機(jī)字符串A和B。明文的 塊X通過(guò)形成表達(dá)式AX + B而被加密,其中A和X是4吏用多項(xiàng)式乘 法而結(jié)合。字符串A和B的結(jié)合使用提供了不可改變性以及魯棒性 (robustness)來(lái)抵御回復(fù)攻擊(reply attacks)。
這樣的多項(xiàng)式加密方法盡管有用,但是代價(jià)比較高,因?yàn)榧用艿?乘法操作以及更進(jìn)一 步用于解密的其逆操作計(jì)算量很大。
因此,仍存在對(duì)計(jì)算資源使用較為經(jīng)濟(jì)的穩(wěn)健加密方法的需求。
發(fā)明內(nèi)容
我們提出了這樣的方法。在廣泛的層面上,我們的方法可逆地 (reversibly)處理數(shù)據(jù)的輸入塊來(lái)產(chǎn)生至少部分被隨機(jī)化的字符串。隨 機(jī)化的字符串隨后由分組密碼進(jìn)行加密。在解密中,加密數(shù)據(jù)的輸入 塊首先根據(jù)分組密碼來(lái)解密。隨后進(jìn)行反隨機(jī)化。
圖1是示例根據(jù)本發(fā)明的一個(gè)實(shí)施例的加密方法的流程圖。
4圖2是示例根據(jù)本發(fā)明的 一個(gè)實(shí)施例的解密方法的流程圖。 圖3是示例一種方法的流程圖,該方法可在圖1用于加密輸入數(shù) 據(jù)的部分字符串的方法的變型中使用。
圖4是示例一種方法的流程圖,該方法可在圖2用于解密輸入數(shù)
據(jù)的部分字符串的方法的變型中使用。
具體實(shí)施例方式
這里描述的加密方法將會(huì)具有特別應(yīng)用,用于保護(hù)各種內(nèi)容(包 括數(shù)據(jù)業(yè)務(wù)、電話業(yè)務(wù)和信令數(shù)據(jù))的無(wú)線傳輸?shù)陌踩院屯暾浴_@ 樣的傳輸(例如)可以但并不僅限于在無(wú)線用戶終端和無(wú)線網(wǎng)絡(luò)的基站 之間發(fā)生。然而,所述方法并不僅限于無(wú)線網(wǎng)絡(luò),相反在有線通信領(lǐng) 域中也可以找到合適的應(yīng)用。同樣地,它適合于保護(hù)各種網(wǎng)絡(luò)實(shí)體(包 括用戶終端、網(wǎng)絡(luò)服務(wù)器和開關(guān))之間的通信。
在一個(gè)具體例子中,會(huì)話密鑰K在到受保護(hù)通信的雙方之間提前 安全地交換。通過(guò)眾所周知的方法,會(huì)話密鑰被用于產(chǎn)生兩個(gè)進(jìn)一步 的密鑰Kl和K2。例如,Kl可以通過(guò)把K作為輸入密鑰、把整數(shù)l(適 當(dāng)?shù)靥畛銸)作為參數(shù)的AES算法(K1 = AES"1)產(chǎn)生。類似地,我們也 可以得到K2 = AESk(2)。密鑰Kl與AES —起被用來(lái)產(chǎn)生比特位 AESK1(1), AESfa(2)等的偽隨機(jī)字符串。通過(guò)例示,用于形成偽隨機(jī)字 符串的AES參數(shù)可以是連續(xù)的整數(shù)1、 2等等(適當(dāng)?shù)乇惶畛?。然而, 任何序列的值都可以被使用,只要在解密使用中接收方也知曉相同 值。
參考圖1,在第一次加密步驟10,輸入數(shù)據(jù)XI, . . , Xn的n個(gè)塊 才艮氺居n =(1)十義l , 72 =爿五S^ (2) , …,y"=(")十Jf"由
AES加密。在上述表達(dá)式中,符號(hào)④表示邏輯異或(XOR)操作。這些 操作的結(jié)果是將至少部分隨機(jī)化加入到輸入塊中。這些操作是可逆 的,因?yàn)楦鲏K之間的第二次異或操作和相應(yīng)的偽隨機(jī)字符串將會(huì)恢復(fù) 原始的輸入塊。如果希望更加經(jīng)濟(jì)而相對(duì)較低安全性,可以使用較短的偽隨機(jī)字 符串,并且在這種方式下每一個(gè)輸入塊只有部分被隨機(jī)化。此外,還 有用于生成偽隨機(jī)字符串的分組密碼的備選。例如,上述各偽隨機(jī)字 符串可以是來(lái)自由流密碼生成的長(zhǎng)偽隨機(jī)字符串的塊。
在第二個(gè)加密步驟20中,各Y1、 Y2等由AES加密,將K2作
為輸入密鑰以產(chǎn)生密文塊Cl、 C2等。也就是d-^^&2(71), C2 =(72) , , c" = 。
解密是上述步驟的反轉(zhuǎn)。例如,參考圖2, Cl在步驟30.1, 40.1 中按下式解密為X1': n、廁;'(ci) n'"^(i)④;n'
類似地,步驟30.2,…,30.n用于從C2, ..., Cn得到Y(jié)2',…, Yn,,而步驟40.2,…,40.n用于從Y2',…,Yn,得到X2',. . . , Xn'
可選地,在最后一個(gè)豸lr入塊Xn有少于128位完全塊長(zhǎng)的塊長(zhǎng)時(shí), 一種有效的方法可以-故用于對(duì)其進(jìn)^"加密和解密。為了舉例-說(shuō)明,我 們假設(shè)Xn有64位。然后參考圖3,對(duì)于加密,XOR操作50在Xn
和AESin(n)的前64位之間被執(zhí)行。產(chǎn)生的64位字符串^與在前加密 塊C(n-l)的最后64位連接(步驟60)以形成128位的字符串Zn。產(chǎn)生 的字符串用AESK2(.)的常規(guī)方法加密。
參考圖4,為了解密C(n-l)和Cn,接收方首先等待192位的到 來(lái)和聚集(collection)。 192位包括C(n-l)的前64位和Cn的128位,
這128位由Xn(如隨機(jī)化形成^)與C(n-l)的最后64位的連接60的加 密70所得到。首先,Cn,即與連接字符串相對(duì)應(yīng)的最后128位被解 密。然后,Xn,可以從?n,(即從解密位的最后64位)被恢復(fù)。隨后, C(n-l)可以通過(guò)連接(步驟100)重新組合(assemble)并被解密以獲取 X(n-l)'。
應(yīng)該注意到這里所述的方法可以由數(shù)字信號(hào)處理器、軟件程序控
6制下運(yùn)行的數(shù)字計(jì)算機(jī),或者其他合適適用的電路來(lái)實(shí)現(xiàn)。在加密后, 消息將會(huì)被適當(dāng)?shù)卣{(diào)理并且作為通信信號(hào)在空中接口上或者光或電 傳輸媒質(zhì)上傳輸。在解密之前,接收方同樣也會(huì)從空中接口或者光或 電傳輸媒質(zhì)上接收通信信號(hào)并對(duì)它進(jìn)^f亍適當(dāng)?shù)恼{(diào)理。
權(quán)利要求
1. 一種方法,包括獲取至少一個(gè)消息數(shù)據(jù)塊,至少部分地隨機(jī)化所述消息數(shù)據(jù)塊,使用分組密碼對(duì)隨機(jī)化的塊進(jìn)行加密,以及發(fā)送被加密的塊。
2. 根據(jù)權(quán)利要求1所述的方法,其中,所述消息數(shù)據(jù)塊的隨機(jī)化 包括提供偽隨機(jī)字符串,并且在所述消息數(shù)據(jù)塊的至少一些位中的 每一位和所述偽隨機(jī)字符串中的相應(yīng)位之間執(zhí)行XOR操作。
3. 根據(jù)權(quán)利要求2所述的方法,還包括從會(huì)話密鑰產(chǎn)生密鑰Kl 和K2,并且其中所述偽隨機(jī)字符串是通過(guò)從把Kl作為輸入密鑰的密碼生成而提供的;使用將K2作為輸入密鑰的分組密碼對(duì)所述隨機(jī)化的塊進(jìn)行加密。
4. 一種方法,包括接收傳送的信號(hào)并調(diào)理所接收的信號(hào)以獲取 加密消息,從分組密碼解密所述消息的至少一個(gè)數(shù)據(jù)塊,以及對(duì)所解 密的塊進(jìn)行去隨機(jī)化。
5. 根據(jù)權(quán)利要求4所述的方法,其中,對(duì)所述消息數(shù)據(jù)塊的去隨 機(jī)化包括提供偽隨機(jī)字符串,以及在所述消息數(shù)據(jù)塊的至少一些位 中的每一位和所述偽隨機(jī)字符串的相應(yīng)位之間執(zhí)行XOR操作。
6. 根據(jù)權(quán)利要求5所述的方法,還包括從會(huì)話密鑰生成密鑰Kl 和K2,并且其中所述偽隨機(jī)字符串是通過(guò)從把Kl作為輸入密鑰的密碼生成而提 供的;并且使用將K2作為輸入密鑰的分組密碼的逆來(lái)解密所接收的消息塊。
全文摘要
在加密方法中,數(shù)據(jù)的輸入塊被可逆地處理以產(chǎn)生至少部分隨機(jī)化的字符串。然后,所述隨機(jī)化的字符串被分組密碼加密。在解密中,加密數(shù)據(jù)的輸入塊被相應(yīng)于分組密碼而被首先解密。隨后進(jìn)行反隨機(jī)化。
文檔編號(hào)H04L9/18GK101502039SQ200780029954
公開日2009年8月5日 申請(qǐng)日期2007年8月8日 優(yōu)先權(quán)日2006年8月15日
發(fā)明者S·帕特爾 申請(qǐng)人:盧森特技術(shù)有限公司