專利名稱:用于數(shù)據(jù)處理系統(tǒng)的有效加密和認(rèn)證的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及數(shù)據(jù)處理系統(tǒng)領(lǐng)域,尤其涉及在數(shù)據(jù)處理系統(tǒng)中提高安全性。
背景技術(shù):
在多種不同的領(lǐng)域中,諸如電子商務(wù)、通信和廣播,安全是一個(gè)主要關(guān)注的問題。
安全性措施提供責(zé)任性、公正性、精確性、機(jī)密性、可操作性和其它這些領(lǐng)域中的數(shù)據(jù)處理系統(tǒng)和信息系統(tǒng)所期望的標(biāo)準(zhǔn)。提供這種安全性的加密方法通常根據(jù)兩個(gè)目的來(lái)歸類加密和認(rèn)證。加密是使得數(shù)據(jù)對(duì)未被認(rèn)證方不可讀的技術(shù)。認(rèn)證是驗(yàn)證數(shù)據(jù)完整性的技術(shù)。驗(yàn)證數(shù)據(jù)的完整性涉及驗(yàn)證數(shù)據(jù)作者的身份和/或驗(yàn)證數(shù)據(jù)是否被改變。
加密系統(tǒng)通常被稱為密碼系統(tǒng)并具有對(duì)稱或非對(duì)稱的性質(zhì)。對(duì)稱加密系統(tǒng)使用密鑰來(lái)加密信息并使用相同的密鑰來(lái)解密經(jīng)加密的信息。非對(duì)稱加密系統(tǒng),諸如公開密鑰密碼系統(tǒng),使用第一密鑰來(lái)加密信息并使用不同的密鑰來(lái)解碼經(jīng)加密的信息。
在許多對(duì)稱密碼系統(tǒng)中,一密鑰被用作加密功能,一分開的密鑰被用作認(rèn)證功能。因此在使用對(duì)稱密碼系統(tǒng)的數(shù)據(jù)處理系統(tǒng)中,加密和認(rèn)證是作為兩個(gè)獨(dú)立的實(shí)體來(lái)執(zhí)行的。由于認(rèn)證需要大約與加密相同的處理功率,總的處理量等于兩次加密數(shù)據(jù)所需的處理量。在運(yùn)作在功率有限或硬件有限環(huán)境中的數(shù)據(jù)處理系統(tǒng)中,諸如蜂窩電話、個(gè)人數(shù)字助理或其它可攜帶的通信設(shè)備,所期望的是具有可以將加密和認(rèn)證作為單個(gè)實(shí)體來(lái)執(zhí)行的密碼系統(tǒng),以此來(lái)降低設(shè)備上計(jì)算負(fù)載。
在Springer-Verlag 2001的“計(jì)算機(jī)科學(xué)”第2045卷中的講稿EUROCRYPT 2001“密碼術(shù)的發(fā)展”中由Charanjit Jutla所著的論文“Encryption Modes withAlmost Free Message Integrity”中,提出了可以以需要與單獨(dú)加密差不多處理的方式來(lái)加密消息和認(rèn)證經(jīng)加密的消息的密碼系統(tǒng)。換而言之,可以使用單個(gè)實(shí)體來(lái)執(zhí)行加密和認(rèn)證。因此,降低了提供安全性所需的處理資源量。
Jutla密碼系統(tǒng)被設(shè)計(jì)成加密所有要發(fā)送的數(shù)據(jù)。然而,在某些應(yīng)用中,消息的所有數(shù)據(jù)必須被加密的要求是不希望的。例如,在諸如IPSec等通信協(xié)議中,加密所有的數(shù)據(jù)是無(wú)效的。數(shù)據(jù)的頭部必須未經(jīng)加密發(fā)送用于尋址的目的。IPSec的原理是在題為“Security Architecture for Internet Protocol”的RFC 1825、題為“IP Authentication Header”的RFC 1826和題為“IP Encapsulating SecurityPayload(ESP)”的RFC 1827中規(guī)定,所有這些是由R.Atkinson在1995年8月提交的。
因此,需要一種用于加密和認(rèn)證數(shù)據(jù)的安全有效的系統(tǒng),其中消息的所有數(shù)據(jù)比特不需要被加密。
發(fā)明內(nèi)容
這里提出了解決上述需要的方法和裝置。特別地,提出了允許數(shù)據(jù)消息的某些部分以明文發(fā)送,數(shù)據(jù)消息的某些部分以密文發(fā)送,并且使用單一的認(rèn)證標(biāo)記來(lái)驗(yàn)證數(shù)據(jù)消息的明文部分和密文部分的方法和裝置。
一方面,提出了作為單個(gè)實(shí)體加密和認(rèn)證數(shù)據(jù)的方法,所述方法包含將數(shù)據(jù)安排到多個(gè)明文塊中,每個(gè)明文塊根據(jù)密碼塊大小來(lái)定尺寸;指定至少一個(gè)明碼(cleartext)位置,對(duì)此至少一個(gè)密文塊與相應(yīng)的明文塊一樣;確定使用臨時(shí)值和第一密鑰的多個(gè)噪聲塊;確定多個(gè)中間密文塊,其中第一中間密文塊對(duì)應(yīng)于經(jīng)加密的臨時(shí)值,且剩余的中間密文確定如下對(duì)于由明碼位置指定的多個(gè)明文塊的每一個(gè),將明文塊與相應(yīng)的噪聲塊相結(jié)合;以及對(duì)于不是由明碼位置指定的多個(gè)明文塊的每一個(gè),使用明文塊和前面的中間密文塊來(lái)構(gòu)成中間密文塊,并接著使用第二密鑰加密該中間明文塊;確定多個(gè)密文塊,其中所述多個(gè)密文塊確定如下將第一密文塊設(shè)置為等于第一中間密文塊;將每個(gè)由明碼位置指定的每個(gè)密文塊設(shè)置為等于相應(yīng)的原文塊;以及通過將相應(yīng)的中間密文塊與相應(yīng)的噪聲塊相結(jié)合來(lái)確定每個(gè)剩余密文塊;確定多個(gè)認(rèn)證塊,其中所述多個(gè)認(rèn)證塊確定如下如果認(rèn)證塊與不是由明碼位置指定的明文塊相關(guān)聯(lián),那么將認(rèn)證塊設(shè)置為等于原文塊;如果認(rèn)證塊與由明碼位置指定的原文塊相關(guān)聯(lián),那么通過解密相關(guān)聯(lián)的中間密文塊并將經(jīng)解密的關(guān)聯(lián)中間密文塊與前面的中間密文塊相結(jié)合來(lái)確定認(rèn)證塊;通過將所有多個(gè)認(rèn)證塊與噪聲塊相結(jié)合并接著加密該結(jié)合的結(jié)果來(lái)計(jì)算認(rèn)證標(biāo)記;以及將該認(rèn)證標(biāo)記添加到多個(gè)密文塊中。
在另一方面,提出了解密和驗(yàn)證多個(gè)伴有認(rèn)證標(biāo)記的傳輸塊的方法,所述方法包含使用臨時(shí)值和第一密鑰確定多個(gè)噪聲塊;通過將多個(gè)傳輸塊的每一個(gè)與相應(yīng)的噪聲塊相結(jié)合來(lái)確定多個(gè)中間密文塊;確定多個(gè)認(rèn)證塊,其中所述多個(gè)認(rèn)證塊的每一個(gè)通過解密相應(yīng)的中間密文塊并接著將經(jīng)解密的中間密文塊與前面的中間密文塊相結(jié)合來(lái)構(gòu)成;將不與任一預(yù)定的明碼位置相關(guān)聯(lián)的多個(gè)認(rèn)證塊的每一個(gè)設(shè)置為明文塊;將與任一預(yù)定的明碼位置相關(guān)聯(lián)的多個(gè)傳輸塊的每一個(gè)設(shè)置為明文塊;以及通過確定最后認(rèn)證塊是否等于所有其它認(rèn)證塊的組合來(lái)驗(yàn)證認(rèn)證標(biāo)記。
在另一方面,提出了安全的數(shù)據(jù)傳輸?shù)姆椒?;其中第一部分的?shù)據(jù)傳輸是作為明文發(fā)送的,第二部分的數(shù)據(jù)傳輸是作為密文發(fā)送的,并且所有的數(shù)據(jù)傳輸是經(jīng)過認(rèn)證的,所述方法包括生成一組明碼位置;將第一部分?jǐn)?shù)據(jù)傳輸和第二部分?jǐn)?shù)據(jù)傳輸加密為密文,其中所述第一部分?jǐn)?shù)據(jù)傳輸由該組明碼位置指定,而第二部分?jǐn)?shù)據(jù)傳輸不與該組明碼位置中任一相關(guān)聯(lián);通過疊代過程確定多個(gè)中間密文塊;生成多個(gè)認(rèn)證塊,其中每個(gè)多個(gè)認(rèn)證塊的第一部分被設(shè)置為等于數(shù)據(jù)傳輸?shù)南鄳?yīng)成員的第一部分,并且每個(gè)多個(gè)認(rèn)證塊的第二部分從將相應(yīng)的中間密文塊和前一中間密文塊相結(jié)合導(dǎo)出;通過將多個(gè)認(rèn)證塊的每一個(gè)與噪聲塊相結(jié)合并加密結(jié)合的結(jié)果來(lái)生成認(rèn)證標(biāo)記;發(fā)送該明文、密文和認(rèn)證標(biāo)記,其中所述明文是由該組明碼位置集合指定的數(shù)據(jù)傳輸?shù)牡谝徊糠帧?br>
在另一方面,提出了安全的數(shù)據(jù)傳輸?shù)难b置;其中第一部分的數(shù)據(jù)傳輸是作為明文發(fā)送的,第二部分的數(shù)據(jù)傳輸是作為密文發(fā)送的,并且所有的數(shù)據(jù)傳輸是經(jīng)過認(rèn)證的,所述方法包含用于生成一組明碼位置的裝置;用于將第一部分?jǐn)?shù)據(jù)傳輸和第二部分?jǐn)?shù)據(jù)傳輸加密為密文的裝置,其中所述第一部分?jǐn)?shù)據(jù)傳輸由該組明碼位置指定,而第二部分?jǐn)?shù)據(jù)傳輸不與該組明碼位置中任一相關(guān)聯(lián);用于通過疊代過程確定多個(gè)中間密文塊的裝置。
圖1A、1B和1C是基本密碼系統(tǒng)、對(duì)稱加密系統(tǒng)和非對(duì)稱加密系統(tǒng)的框圖。
圖2A和2B分別是對(duì)稱認(rèn)證系統(tǒng)和非對(duì)稱認(rèn)證系統(tǒng)的框圖。
圖3是完整性認(rèn)識(shí)(Integrity Aware)加密塊鏈接模式的框圖。
圖4A是CBC-A模式的框圖。
圖4B是配置為執(zhí)行CBC-A模式的硬件框圖。
圖5是解密和驗(yàn)證經(jīng)由CBC-A模式加密和認(rèn)證的消息的框圖。
圖6A、6B、6C和6D是用于執(zhí)行對(duì)認(rèn)證標(biāo)記的驗(yàn)證的不同硬件配置。
具體實(shí)施例方式
加密使得數(shù)據(jù)對(duì)未被認(rèn)證方不可讀。原始數(shù)據(jù)消息被稱為明文消息或明文。經(jīng)加密的消息被稱為密文,其中加密包含任一將明文轉(zhuǎn)換為密文的方法,例如分組密碼、散列函數(shù)或任一其它的加密函數(shù)。解密包含任一將密文轉(zhuǎn)換為明文的方法,即恢復(fù)原始消息。圖1A說明了設(shè)計(jì)用作加密的基本密碼系統(tǒng)10。明文消息11由加密方案12操作以形成密文13。密文13于是通過通信信道(未示出)發(fā)送并在另一個(gè)站點(diǎn)(未示出)由解碼方案14恢復(fù)明文15。明文和密文可以指任何數(shù)據(jù),包含以數(shù)字形式出現(xiàn)的音頻和視頻數(shù)據(jù)。
密碼分析法是智取密碼系統(tǒng)的安全性的技術(shù)。執(zhí)行密碼翻譯法的實(shí)體在本領(lǐng)域中被稱為對(duì)手或攻擊者。加密方案的密碼翻譯法是關(guān)于解密未經(jīng)認(rèn)證的消息。認(rèn)證方案的密碼翻譯法是關(guān)于可以被驗(yàn)證為由其他人發(fā)送的消息的成分。
密碼系統(tǒng)是基于秘密的。一組實(shí)體共享該秘密,如果一組實(shí)體之外的實(shí)體不花費(fèi)大量的資源就不能獲得密鑰,這個(gè)秘密被說成充當(dāng)該組實(shí)體的安全關(guān)聯(lián)。
一般地,秘密包含一個(gè)密鑰或一組密鑰,它們是以比特來(lái)計(jì)量的。密鑰越長(zhǎng),該密鑰具有越高的秘密安全性。對(duì)稱密碼系統(tǒng)使用同一密鑰來(lái)加密消息,解密消息也一樣。對(duì)稱加密系統(tǒng)20在圖1B中說明,其中加密和解密都使用相同的私鑰。明文21由加密方案22操作。密鑰23在加密方案22中使用以形成密文24。密文24在通信信道(未示出)上發(fā)送至另一站點(diǎn),其中解密方案25使用同一密鑰23來(lái)形成明文26。
相反地,非對(duì)稱密碼系統(tǒng)使用第一密鑰來(lái)加密消息,并使用不同的密鑰來(lái)將其解密。圖1C說明了被稱為公鑰密碼系統(tǒng)30的非對(duì)稱加密系統(tǒng),其中公鑰用于加密而私鑰用于解密。公鑰是被公開的,這樣任一用戶可使用該公鑰來(lái)加密任一消息。然而,只有私有的、未公布的密鑰可以被用于解密這個(gè)經(jīng)公鑰加密的消息。明文31被輸入加密方案32,所述加密方案使用與指定用戶相關(guān)聯(lián)并從公布獲取的公鑰33。所得的密文34在通信信道(未示出)上發(fā)送至指定用戶。該指定用戶使用解密方案35中的密鑰36將密文34轉(zhuǎn)換成明文37。
對(duì)稱加密一般比非對(duì)稱加密快得多。然而,由于可能被敵對(duì)方中途截取,將密鑰從發(fā)送這發(fā)送至接收者是有問題的。一個(gè)解決方案是使用可信的第三方來(lái)持有密鑰,該第三方只會(huì)與經(jīng)授權(quán)方共享密鑰。這里所述的實(shí)施例不解決這個(gè)問題,而是假定發(fā)送者和接收者共享密鑰。
上述密碼系統(tǒng)生成的密文的完整性一般通過附加某些認(rèn)證數(shù)據(jù)到發(fā)送的密文而被提供。該認(rèn)證數(shù)據(jù)一般作為消息內(nèi)容和完整性密鑰的函數(shù)而計(jì)算。
在對(duì)稱認(rèn)證系統(tǒng)中,認(rèn)證數(shù)據(jù)被稱為消息認(rèn)證代碼(MAC)。該MAC是作為消息內(nèi)容和完整性密鑰的函數(shù)而被計(jì)算,其中發(fā)送者和指定目標(biāo)共享該完整性密鑰。發(fā)送者發(fā)送消息并附加MAC。消息可以是明文或密文。接收者重新計(jì)算來(lái)自消息的MAC,并且只有當(dāng)經(jīng)重新計(jì)算的MAC與發(fā)送的MAC一致時(shí)才認(rèn)可消息的完整性。理論上,只有消息的發(fā)送者能夠生成該消息的有效的簽名,由此為接收者認(rèn)證該消息。
對(duì)稱認(rèn)證系統(tǒng)40在圖2A中說明,其中簽名和驗(yàn)證都使用相同的密鑰。用使用密鑰43的認(rèn)證方案42來(lái)運(yùn)作消息41以形成認(rèn)證數(shù)據(jù)44。認(rèn)證數(shù)據(jù)44和消息41于是通過通信信道(未示出)發(fā)送至另一方(未示出)。用使用相同密鑰43的驗(yàn)證方案45來(lái)運(yùn)作消息41以確定認(rèn)證數(shù)據(jù)46。將有接收方生成的認(rèn)證數(shù)據(jù)46與在通信信道上接收到的認(rèn)證數(shù)據(jù)44相比較。
在非對(duì)稱認(rèn)證系統(tǒng)中,認(rèn)證數(shù)據(jù)被稱為數(shù)據(jù)簽名。數(shù)據(jù)簽名作為消息內(nèi)容和發(fā)送者的完整性密鑰的函數(shù)被計(jì)算。發(fā)送者向接收方發(fā)送數(shù)字簽名,接收方于是使用發(fā)送者的公鑰對(duì)數(shù)字簽名執(zhí)行驗(yàn)證。非對(duì)稱認(rèn)證系統(tǒng)50在圖1E中說明,其中簽名使用私鑰而認(rèn)證使用相應(yīng)的公鑰。
在一些方案中,MAC或數(shù)字簽名從包含對(duì)秘密消息的獨(dú)特?cái)?shù)學(xué)描述的‘消息摘要’。被計(jì)算消息摘要在長(zhǎng)度上比原始消息要短,這樣更容易地執(zhí)行對(duì)消息摘要的計(jì)算。由于秘密消息或消息摘要不是保持恒定的,MAC或數(shù)字簽名對(duì)秘密消息或消息摘要的依賴性保證了認(rèn)證數(shù)據(jù)不是保持恒定的。如果認(rèn)證數(shù)據(jù)對(duì)多個(gè)消息是保持恒定的,那么對(duì)手就可以不誠(chéng)實(shí)地容易地竊取到認(rèn)證數(shù)據(jù)。
通常使用密碼哈希函數(shù)來(lái)計(jì)算消息摘要。密碼哈希函數(shù)從任一輸入計(jì)算出一值(包含固定位數(shù)),而不管輸入的長(zhǎng)度。密碼哈希函數(shù)的一個(gè)特性是給定一輸出值,計(jì)算上難以確定會(huì)導(dǎo)致那個(gè)輸出的輸入。密碼哈希函數(shù)的一個(gè)例子是SH-1,如聯(lián)邦信息處理標(biāo)準(zhǔn)出版物(FIPS PUBS)發(fā)布的和國(guó)家標(biāo)準(zhǔn)技術(shù)局(NIST)出版的FIP PUB 180-1“Secure Hash Standard”中所描述的。
分組密碼是對(duì)稱加密方案,對(duì)此到該方案的輸入在位數(shù)上總是固定的長(zhǎng)度。該長(zhǎng)度被稱為分組密碼的分組大小。分組密碼的一個(gè)例子是數(shù)據(jù)加密標(biāo)準(zhǔn)(DES),如FIPS PUBS發(fā)布的和NIST出版的FIPS PUB 46-1“Data Encryption Standard”中所描述的。DES的分組大小為64位。分組密碼的另一個(gè)例子是高級(jí)加密標(biāo)準(zhǔn)(AES),如FIPS PUBS發(fā)布的和NIST出版的FIPS PUB 46-1“Advanced EncryptionStandard”中所描述的。AES的分組大小為128位。
分組密碼的密鑰長(zhǎng)度是該密鑰的以二進(jìn)制隹表示的長(zhǎng)度。然而,密鑰的熵是密鑰的可能值的數(shù)目的對(duì)數(shù)(基數(shù)為2)。熵也是按照二進(jìn)制位來(lái)寫的。例如,DES具有64位的密鑰,這些位數(shù)中的8位被用作校驗(yàn)和以檢測(cè)密鑰傳輸中的差錯(cuò)。從而,DES的密鑰-熵是(64-8)=56位。
給定分組密碼的幾對(duì)輸入和相應(yīng)的輸出,該分組密碼的密鑰可以被對(duì)手導(dǎo)出,所述對(duì)手測(cè)試所有可能的密鑰值以確定那些輸入導(dǎo)致正確的輸出。這種類型的攻擊被稱為窮舉法密鑰搜索。這種攻擊的計(jì)算復(fù)雜性是攻擊所需的加密操作的數(shù)目。因此,在窮舉法密鑰搜索中,為了提取K位密鑰的攻擊需要大約2k次加密操作來(lái)提取分組密碼密鑰。
分組密碼對(duì)構(gòu)造其它的密碼實(shí)體是有用的。使用分組密碼的方式被稱為操作模式。已經(jīng)為DES標(biāo)準(zhǔn)化四種模式的操作,并且在FIPS PUBS發(fā)布的和NIST出版的FIPS PUB81“DES Modes of Opertaion”中描述了這四種模式。這四種模式是電子密碼本(ECB)、密碼分組鏈接(CBC)、輸出反饋(OFB)和密碼反饋(CFB)。為了說明起見,這里只討論ECB和CBC來(lái)加密明文塊P1,...,和Pm序列。
在ECB模式中,依照以下關(guān)系,分組密碼被用于將明文的每個(gè)塊加密成密文塊Ci=EK(Pi)其中EK(Pi)表示使用密鑰K對(duì)塊Pi的加密。此后,使用DK(Pi)表示使用密鑰K對(duì)塊Pi的加密。
在CBC模式中,用秘密初始值(IV)對(duì)第一明文塊求異或以形成一結(jié)果,該結(jié)果接著被加密。依照以下關(guān)系寫出該過程的數(shù)學(xué)描述Ci=Ek(PiIV)此后,在加密前用先前的密文對(duì)每個(gè)明文塊求異或,如下Ci=Ek(PiCi-1)在對(duì)稱密碼系統(tǒng)中,有效的加密和認(rèn)證可能是有問題的。直到最近,滿足這個(gè)需求的唯一解決方案是使用自然的方法提供加密和認(rèn)證為兩個(gè)單獨(dú)的功能。這兩個(gè)功能需要大約等量的計(jì)算,因此使用兩個(gè)功能的花費(fèi)是只使用一個(gè)或另一個(gè)方法的兩倍。
在論文“Encryption Modes with Almost Free Message Integrity”中,Jutla提出了兩種方法,這兩種方法提供了比單獨(dú)加密或認(rèn)證需要稍微多一點(diǎn)計(jì)算的加密和認(rèn)證。這些方法具有一般的形式并且將分組密碼用作密碼核心。在密碼界中,這樣的方法也被稱為“操作模式”。Jutla的操作模式之一,被稱為完整性意識(shí)可平行模式(IAPM)模式,不在這個(gè)文件中討論。Jutla的另一個(gè)操作模式,被稱為完整性意識(shí)密碼塊鏈(IACBC)模式,在圖3中示出。IACBC使用兩個(gè)密鑰K0和K1。假設(shè)發(fā)送者希望加密和認(rèn)證含有從P1到Pm-1的(m-1)個(gè)消息塊的消息。發(fā)送者將t設(shè)置為等于大于(m+1)的對(duì)數(shù)(基數(shù)為2)的下一個(gè)整數(shù)。發(fā)送者選擇一隨機(jī)值r,對(duì)r加密形成密文塊C0。值r+1到r+t被加密以形成值W0到Wt-1,其中所述加密使用密鑰K0。值W0到Wt-1接著被用于導(dǎo)出成對(duì)的獨(dú)立值S0到Sm。這些Si值在這里被稱為噪聲塊。如果均勻地分配給S0,...,Smn位隨機(jī)數(shù)字,其具有以下特性對(duì)于每對(duì)Si和Sj,其中i≠j,并且每對(duì)n位數(shù)包含c1和c2,Si=c1并且Sj=c2的概率是2-2n,那么值S0,...,Sm是成對(duì)獨(dú)立的。對(duì)S0到Sm的實(shí)際計(jì)算與理解IACBC無(wú)關(guān)并且不會(huì)在下面描述。根據(jù)以下關(guān)系,對(duì)于1≤i≤m-1反復(fù)導(dǎo)出密文塊c1到cm-1的值Mi=PiNi-1Ni=EK1(Mi),Ci=NiSi,其中密鑰K1被用于每個(gè)密碼塊,并且初始值N0被設(shè)置為C0。這些值Mi被稱為中間明文塊,值Ni被稱為中間密文塊。發(fā)送者接著計(jì)算檢驗(yàn)和值Pm,定義為Pm=P1P2...Pm-1.
通過用密鑰K1加密(PmNi-1)和將經(jīng)加密的結(jié)果與S0求異或,從Pm計(jì)算出MAC標(biāo)記Cm。數(shù)學(xué)上,該計(jì)算可如下表示Cm=EK1(PmNi-1)S0.
發(fā)送者發(fā)送C0...Cm。
假設(shè)接收者接收到C’0...C’m。接收者通過首先解密C’0以形成r’來(lái)開始解密過程,其中所述解密使用密鑰K1。加密值r’+1到r’+t以形成值W’0至W’t-1,其中加密使用密鑰K0。接收者接著計(jì)算值S’0到S’m。根據(jù)以下關(guān)系,對(duì)于1≤i≤m-1迭代導(dǎo)出密文塊P1到Pm-1的值N’i=C’iS’i,M’i=DK1(N’i),Pi=N’i-1M’i,其中密鑰K1被用于每個(gè)明文塊,并且初始值N’0被設(shè)置為等于C’0。接收者接著計(jì)算校驗(yàn)和值P’m,定義為
Pm’=P’1P’2...P’m-1.
通過使用密鑰K1加密Pm和Nm-1的異或,接著將加密的結(jié)果與S’0求異或來(lái)計(jì)算出值X。數(shù)學(xué)上,可以如下描述該過程X=EK1(P’mN’m-1)S’0.
如果X與C’m相等,那么接收者可以確信該經(jīng)加密的消息的完整性。
Gligor和Donescu在論文“Fast Encryption and AnthenticaionXCBCEncryption and XEBC Authentication Modes”中提出一相似的模式,稱為擴(kuò)展密文分組鏈模式(XCBC模式),它使用相似的計(jì)算量提供加密和認(rèn)證。XCBC和IACBC的主要區(qū)別是噪聲塊S0到Sm的表示法,其表示法與這個(gè)文件無(wú)關(guān)。
IACBC和XCBC模式的操作具有某些不希望的特性。第一個(gè)不希望的特性是這些模式需要所有的數(shù)據(jù)經(jīng)加密被發(fā)送。在諸如IPSec等互聯(lián)網(wǎng)協(xié)議中,發(fā)送所有數(shù)據(jù)都被加密的消息是不希望的。特別是,包含尋址信息的頭部必須以明碼的形式發(fā)送。這里所描述的實(shí)施例提出了IACBC和XCBC模式的變形,它允許數(shù)據(jù)塊以明文發(fā)送,而只加上少量的處理。所述變形在這里被稱為CBC-A模式。
應(yīng)該注意數(shù)據(jù)或通信系統(tǒng)中的硬件或軟件都可以被配置成執(zhí)行CBC-A模式的不同實(shí)施例。硬件可以包含但不限于處理元件,實(shí)現(xiàn)一組存儲(chǔ)在計(jì)算機(jī)可讀媒質(zhì)上的指令,例如存儲(chǔ)器,以執(zhí)行下述的加密、認(rèn)證、解密和驗(yàn)證過程。此外,使用按位邏輯異或運(yùn)算符描述了各種組合步驟。實(shí)施例的其它實(shí)現(xiàn)可以使用模整數(shù)加法運(yùn)算來(lái)執(zhí)行,其中兩個(gè)輸入作為二進(jìn)制表示的整數(shù)對(duì)待,以這兩個(gè)整數(shù)和的二進(jìn)制表示構(gòu)成中間值,通過將中間值截短成密碼塊尺寸來(lái)構(gòu)成輸出。也可以用其它群運(yùn)算符來(lái)代替各個(gè)組合步驟,然而,為了易于說明,這里只描述使用異或操作符的實(shí)施例。
CBC-A模式的一個(gè)實(shí)施例在圖4A中說明。該CBC-A模式的操作使用兩個(gè)密鑰K0和K1。假設(shè)發(fā)送者希望加密和認(rèn)證由塊P1到Pm-1的(m-1)消息組成的消息。發(fā)送者和接收者同意對(duì)該組明文塊以不加密的形式發(fā)送。用U表示要以不加密形式發(fā)送的明文塊指數(shù)的集合,其中U的元素被稱為明文位置。在步驟400處,發(fā)送者選擇r并按照IACBC或XCBC模式來(lái)計(jì)算噪聲塊S0到Sm。在步驟402處,發(fā)送者計(jì)算N0=C0=Ek1(r)。在步驟404處,迭代過程從判定是否i∈U開始,其中1≤i≤m-1。如果i∈U,程序流進(jìn)入步驟410。如果 那么程序流進(jìn)入步驟420。
如果i∈U,那么在步驟410處,設(shè)置Ci=Pi。在步驟415處,計(jì)算
Ni=PiSi,Mi=EK1(Ni),和Yi=Ni-1Mi.
程序流進(jìn)入到步驟417。
如果i∉U,]]>那么在步驟420處,設(shè)置Yi=Pi。在步驟425處,計(jì)算Mi=PiNi-1,Ni=EK1(Mi),和Ci=NiSi.
程序流進(jìn)入步驟417。在步驟417處,指數(shù)i遞增,即將操作下一個(gè)塊。如果要處理另一個(gè)塊,那么程序流回到步驟404。如果沒有更多的塊要處理,那么程序流進(jìn)入步驟430。上述過程是用于獲取密文C0到Cm-1和認(rèn)證塊Y1到Y(jié)m-1。值N0到Nm-1被稱為中間密文塊。在步驟430處,發(fā)送者計(jì)算校驗(yàn)和值Pm為Pm=Y(jié)1Y2...Ym-1.
在步驟432處,通過加密Mm計(jì)算出MAC標(biāo)記Cm,其中通過將Pm和Nm-1求異或構(gòu)成Mm。用密鑰K1加密Mm。這個(gè)過程在數(shù)學(xué)上描述如下Cm=EK1(PmNm-1).
在步驟434處,發(fā)送者將MAC標(biāo)記Cm附加到消息上。在步驟436處,發(fā)送者發(fā)送C0...Cm。
圖4B是被配置成執(zhí)行上述CBC-A模式的硬件的框圖。應(yīng)該注意圖4B說明了可以作為軟件實(shí)現(xiàn)的替換的實(shí)現(xiàn),其中處理器和存儲(chǔ)器被配置成執(zhí)行一組指令,用于執(zhí)行上述的CBC-A模式。存儲(chǔ)器元件440存儲(chǔ)原文塊Pi,其中的一些要被加密且其中的全部要被認(rèn)證。加密元件450A、450B、450C、450D和450E被配置成使用密鑰K1執(zhí)行加密功能,所述密鑰K1在密鑰協(xié)商過程期間在發(fā)送者和接收者之間達(dá)成一致,這里不討論該協(xié)商過程的詳情。為了說明起見,在圖4B中示出了五個(gè)(5)加密元件用于加密明文塊,但是本領(lǐng)域的技術(shù)人員理解可以實(shí)現(xiàn)較多或較少的加密元件而不影響本實(shí)施例的范圍。到第一加密元件450A的輸入是臨時(shí)值r,r會(huì)被用于確定噪聲塊S0,S1,...,Sm-1。用于生成所述噪聲塊的硬件配置不在這里示出。第一加密元件450A的輸出是第一密文塊C0,它被設(shè)置成等于第一中間密文塊N0。
到其它加密元件450B、450C、450D和450E的輸入在每個(gè)相應(yīng)的加密元件處各自是中間原文塊M1,...,Mm。中間原文塊M1,...,Mm是組合元件444A、444B、444C和444D的輸出。到組合元件444A、444B、444C和444D每一個(gè)的輸入是明文塊Pi(其中i∉U]]>)和中間密文塊Ni-1。一方面,這里所描述的組合元件是異或門。另一方面,組合元件是群運(yùn)算符。
到加密元件450B、450C、450D和450E的輸出是中間密文塊Ni,其中i∉U.]]>對(duì)i∉U]]>的每個(gè)中間密文塊Ni在組合元件462A、462B、462C或462D處與相應(yīng)的噪聲塊Si相結(jié)合以構(gòu)成密文塊Ci,其中i∉U.]]>中間密文塊Ni(其中i∉U]]>)也輸入到開關(guān)元件470A、470B、470C或470D之一,這會(huì)在以后討論。
解密元件455A、455B和455C被配置成執(zhí)行加密功能,所述密碼功能是用于加密元件450A、450B、450C、450D和450E的相反的功能。到解密元件455A、455B和455C的輸入是中間密文塊Ni,其中i∈U。中間密文塊Ni(其中i∈U)是組合元件442A、442B和442C的輸出。到每個(gè)組合元件442A、442B或442C的輸入是明文塊Pi和噪聲塊Si。解密元件455A、455B和455C的輸出是中間原文塊Mi,其中i∈U。中間原文塊Mi(其中i∈U)分別在每個(gè)組合元件460A、460B和460C處與前一中間密文塊Ni-1相結(jié)合以形成認(rèn)證塊Ym-1。
在每一級(jí),中間密文塊(其中i∈U)和中間密文塊(其中i∉U]]>)被輸入到開關(guān)元件470A、470B、470C或470D。來(lái)自處理元件的控制線(未示出)控制對(duì)于下一級(jí)的計(jì)算使用任一中間密文塊的決定。
在最后一級(jí),通過將最后的中間密文塊Nm與第一噪聲塊S0相組合以形成認(rèn)證標(biāo)記Cm。
圖5是解密和驗(yàn)證經(jīng)CBC-A模式加密和認(rèn)證的消息的框圖。假設(shè)接收者在步驟500處接收到傳輸模塊C’0...C’m。注意對(duì)于i∈U,C’i是不加密發(fā)送的。在步驟502處,接收者解密C’0以獲取r’,并由此導(dǎo)出S’0到S’m的值。在替換實(shí)施例中,臨時(shí)值r可以是預(yù)先協(xié)商的或預(yù)定的一值。
在步驟510處,對(duì)于1≤i≤m,接收者根據(jù)以下關(guān)系對(duì)C’i和S’i求異或以構(gòu)成中間密文塊N’iN’i=C’iS’i.
在步驟520處,接收者構(gòu)成N’m=C’mS’0,其中接收者設(shè)置N’0=C’0。在步驟530處,接收者使用CBC模式中的解密來(lái)解密中間密文N’0,...,N’m的序列以形成認(rèn)證塊Y’1,...,Y’m。這被迭代地進(jìn)行,并且在數(shù)學(xué)上表示如下Yi=DK1(N’1)N’i-1,for 1≤i≤m.
在步驟540處,開始迭代過程以為P’i確定值。對(duì)于i∈U,程序流進(jìn)入步驟542,其中接收者設(shè)置P’i=C’i。程序流進(jìn)入步驟544。對(duì)于i∉U,]]>程序流進(jìn)入步驟546,其中明文塊被設(shè)置成與認(rèn)證塊相同,即接收者設(shè)置P’i=Y(jié)’i。程序流進(jìn)圖步驟544。在步驟544處,接收者確定是否要處理另一個(gè)塊。如果是,程序流回到步驟540。如果不是,程序流進(jìn)入步驟550。接收者現(xiàn)在將密文解碼到數(shù)據(jù)塊P’1,...P’m-1,但接收者需要驗(yàn)證完整性。
為了驗(yàn)證認(rèn)證標(biāo)記,在步驟550處,接收者確認(rèn)Y’m等于(Y’1 Y’2… Y’m-1)的值。如果驗(yàn)證了認(rèn)證標(biāo)記,那么消息是P’1,...,P’m-1。
在減少處理時(shí)間的替換實(shí)施例中,在步驟550處對(duì)認(rèn)證標(biāo)記的驗(yàn)證可以在步驟530之后立即執(zhí)行,或在步驟540之前或與步驟540并行地執(zhí)行。因此,接收者可以在確定消息的文本之前認(rèn)證接收到的消息。如果接收到的消息未認(rèn)證,那么接收者可以通過省略確定明文塊P’i的步驟來(lái)切省處理資源。相反地,由Jutla提出的IACBC模式需要確定明文塊P’i并加密其結(jié)果的形式,由此以計(jì)算出測(cè)試認(rèn)證標(biāo)記。
此外,在替換實(shí)施例中,對(duì)認(rèn)證標(biāo)記的驗(yàn)證可以通過將值(Y’1Y’2…Y’m-1)與另一非Y’m的量相比較來(lái)執(zhí)行。圖6A示出了一個(gè)替換硬件實(shí)施。校驗(yàn)和值CHK被設(shè)置為等于(Y’1Y’2…Y’m-1)。由組合元件602將CHK值與中間密文塊N’m-1相組合。CHK值通過組合元件600與中間密文塊N’m-1加以組合。組合元件602的輸出接著在組合元件604處與第一噪聲塊S’0相組合。組合元件604的輸出接著在比較元件606處與最后密文塊C’m作比較,其中匹配則指示了認(rèn)證標(biāo)記被驗(yàn)證。
圖6B是用于驗(yàn)證接收到的消息的真實(shí)性的另一替換硬件實(shí)施例。由組合元件610將CHK值與中間密文塊N’m-1相組合。組合元件610的輸出接著由加密元件612加密。由組合元件614將最后密文塊C’m與第一噪聲塊S’0相組合。如果在比較元件616處加密元件612的輸出與組合元件614的輸出相匹配,那么就驗(yàn)證了接收到的消息。
圖6C是用于驗(yàn)證接收到的消息的真實(shí)性的另一替換硬件實(shí)施例。由組合元件620將CHK值與中間密文塊N’m-1相組合。由組合元件622將最后密文塊C’m與第一噪聲塊S’0相組合。組合元件622的輸出接著由解密元件624加密。如果在比較元件626處解密元件624的輸出與組合元件620的輸出相匹配,那么就驗(yàn)證了接收到的消息。
圖6D是用于驗(yàn)證接收到的消息的真實(shí)性的另一替換硬件實(shí)施例。由組合元件630將最后密文塊C’m與第一噪聲塊S’0相組合。組合元件630的輸出接著由解密元件632解密。接著由組合元件634將解密元件632的輸出與中間密文塊N’m-1相組合。如果在比較元件636處組合元件634的輸出與CHK值相匹配,那么就驗(yàn)證了接收到的消息。
注意,對(duì)于給定的密文C’0...C’m-1,對(duì)于所有明文位置的U集合,認(rèn)證標(biāo)記C’m是相同的驗(yàn)證認(rèn)證標(biāo)記的過程獨(dú)立于該組明碼位置。對(duì)認(rèn)證標(biāo)記的驗(yàn)證只驗(yàn)證發(fā)送者送出密文C’0...C’m而不驗(yàn)證哪些位置是明碼位置和哪些位置不是明碼位置。這可能允許攻擊者使得當(dāng)接收者解密消息時(shí),使用錯(cuò)誤的明碼位置組。為了防止這種攻擊,發(fā)送者和接收者必須使用其它的方法來(lái)驗(yàn)證應(yīng)用到特定密文消息的明碼位置。對(duì)這個(gè)問題有簡(jiǎn)單的解決方案。一個(gè)解決方案是對(duì)那些位置是明碼位置有標(biāo)準(zhǔn)的協(xié)議。另一種方法是在數(shù)據(jù)塊中包含明碼位置集合U的表示,這樣使得對(duì)密文的驗(yàn)證包含對(duì)明碼位置集合的驗(yàn)證。
在CBC-A模式中,如果基礎(chǔ)的分組密碼是安全的,那么加密和認(rèn)證功能是安全的。本領(lǐng)域中對(duì)于短語(yǔ)“the encryption and authentication functions aresecure”(“加密和認(rèn)證功能是安全的”)是什么意思有正式的表示法,然而這些正式的表達(dá)法與本發(fā)明的主題無(wú)關(guān)并不會(huì)在這里討論。本領(lǐng)域的技術(shù)人員會(huì)熟悉短語(yǔ)“the encryption and authentication functions are secure”的意思。
安全性證明不包含在內(nèi),但這里示出了關(guān)于安全性的一些觀察。CBC-A模式的對(duì)加密功能的安全證明是與IACBC和XCBC模式相同的。在CBC-A模式中生成認(rèn)證標(biāo)記與在IACBC和XCBC模式中生成認(rèn)證標(biāo)記不同。然而,CBC-A使用與IACBC和XCBC模式相同的步驟驗(yàn)證認(rèn)證標(biāo)記。因此,只有攻擊者能夠危害IACBC或XCBC認(rèn)證功能時(shí),攻擊者才能夠危害CBC-A認(rèn)證功能(即,產(chǎn)生會(huì)被驗(yàn)證為正確的CBC-A認(rèn)證標(biāo)記)。因?yàn)镮ACBC和XCBC模式的設(shè)計(jì)者已經(jīng)顯示攻擊者不能危害IACBC和XCBC認(rèn)證功能,由此斷定攻擊者不能危害CBC-A認(rèn)證功能。因此,CBC-A認(rèn)證功能是安全的。
注意發(fā)送者可以選擇發(fā)送Pi或Ci,這不會(huì)危害認(rèn)證。這里所述的實(shí)施例允許一方發(fā)送經(jīng)加密的或未經(jīng)加密的塊而不危害認(rèn)證方案的安全性。如果Pi以明文發(fā)送,那么Pi的加密版本仍然是安全和不可預(yù)測(cè)的,因而Pi可以被用作安全認(rèn)證。
通常的做法是當(dāng)使用認(rèn)證模式時(shí),將MAC定義為只是最終塊的一部分。也可以改變本發(fā)明,這樣使得只有一部分最終塊作為MAC發(fā)送。
本領(lǐng)域的技術(shù)人員可以理解,信息和信號(hào)可以用多種不同技術(shù)和工藝中的任一種來(lái)表示。例如,上述說明中可能涉及的數(shù)據(jù)、指令、命令、信息、信號(hào)、比特、碼元和碼片可以用電壓、電流、電磁波、磁場(chǎng)或其粒子、光場(chǎng)或其粒子或它們的任意組合來(lái)表示。
本領(lǐng)域的技術(shù)人員能進(jìn)一步理解,結(jié)合這里所公開的實(shí)施例所描述的各種說明性的邏輯框、模塊、電路和算法步驟可以作為電子硬件、計(jì)算機(jī)軟件或兩者的組合來(lái)實(shí)現(xiàn)。為了清楚說明硬件和軟件間的互換性,各種說明性的組件、框圖、模塊、電路和步驟一般按照其功能性進(jìn)行了闡述。這些功能性究竟作為硬件還是軟件來(lái)實(shí)現(xiàn)取決于特定的應(yīng)用和對(duì)總體系統(tǒng)設(shè)計(jì)上的約束。熟練的技術(shù)人員可能對(duì)于每個(gè)特定應(yīng)用以不同的方式來(lái)實(shí)現(xiàn)所述功能,但這種實(shí)現(xiàn)決定不應(yīng)被解釋為就此背離本發(fā)明的范圍。
結(jié)合這里所描述的實(shí)施例來(lái)描述的各種說明性的邏輯框、模塊和算法步驟的實(shí)現(xiàn)或執(zhí)行可以用通用處理器、數(shù)字信號(hào)處理器(DSP)、應(yīng)用專用集成電路(ASIC)、現(xiàn)場(chǎng)可編程門陣列(FPGA)或其它可編程邏輯器件、離散門或晶體管邏輯、離散硬件組件或者為執(zhí)行這里所述功能而設(shè)計(jì)的任意組合。通用處理器可能是微處理器,然而或者,處理器可以是任何常規(guī)的處理器、控制器、微控制器或狀態(tài)機(jī)。處理器也可以用計(jì)算設(shè)備的組合來(lái)實(shí)現(xiàn),如,DSP和微處理器的組合、多個(gè)微處理器、結(jié)合DSP內(nèi)核的一個(gè)或多個(gè)微處理器或者任意其它這種配置。
結(jié)合這里所公開實(shí)施例描述的方法或算法的步驟可能直接包含在硬件中、由處理器執(zhí)行的軟件模塊中或在兩者當(dāng)中。軟件模塊可以駐留在RAM存儲(chǔ)器、閃存、ROM存儲(chǔ)器、EPROM存儲(chǔ)器、EEPROM存儲(chǔ)器、寄存器、硬盤、可移動(dòng)盤、CD-ROM或本領(lǐng)域中已知的任何其它形式的存儲(chǔ)媒質(zhì)中。示例性存儲(chǔ)媒質(zhì)與處理器耦合,使得處理器可以從存儲(chǔ)媒質(zhì)讀取信息,或把信息寫入存儲(chǔ)媒質(zhì)。或者,存儲(chǔ)媒質(zhì)可以與處理器整合。處理器和存儲(chǔ)媒質(zhì)可能駐留在ASIC中。ASIC可能駐留在用戶終端中?;蛘?,處理器和存儲(chǔ)媒質(zhì)可能作為離散組件駐留在用戶終端中。
提供上述優(yōu)選實(shí)施例的描述為了使本領(lǐng)域的技術(shù)人員能制造或使用本發(fā)明。這些實(shí)施例的各種修改對(duì)于本領(lǐng)域的技術(shù)人員來(lái)說是顯而易見的,這里定義的總的原則可以被應(yīng)用于其它實(shí)施例中而不使用創(chuàng)造能力。因此,本發(fā)明并不是要限于這里示出的實(shí)施例,而是要符合與這里揭示的原理和新穎特征一致的最寬泛的范圍。
權(quán)利要求
1.作為單個(gè)實(shí)體加密和驗(yàn)證數(shù)據(jù)的方法,所述方法包含將數(shù)據(jù)排列成多個(gè)明文塊,根據(jù)密碼塊大小來(lái)定每個(gè)明文塊的尺寸;指定至少一個(gè)明碼位置,對(duì)于該位置至少一個(gè)密文塊會(huì)與相應(yīng)的明文塊相同;使用臨時(shí)值和第一密鑰確定多個(gè)噪聲塊;確定多個(gè)中間密文塊,其中所述第一中間密文塊對(duì)應(yīng)于經(jīng)加密的臨時(shí)值,剩余中間密文確定如下對(duì)于由明碼位置指定的多個(gè)明文塊的每一個(gè),將所述明文塊與相應(yīng)的噪聲塊相組合;以及對(duì)于不是由明碼位置指定的多個(gè)明文塊的每一個(gè),使用所述明文塊和前面的中間密文塊形成中間明文塊,并且接著使用第二密鑰加密該中間明文塊;確定多個(gè)密文塊,其中所述多個(gè)密文塊確定如下將第一密文塊設(shè)置為等于第一中間密文塊;將每個(gè)由明碼位置指定的每一個(gè)密文塊設(shè)置為等于相應(yīng)的明文塊;以及通過將相應(yīng)的中間密文塊和相應(yīng)的噪聲塊相組合來(lái)確定每個(gè)剩余密文塊;確定多個(gè)認(rèn)證塊,其中所述多個(gè)認(rèn)證塊確定如下如果認(rèn)證塊與不是由明碼位置指定的明文塊相關(guān)聯(lián),那么將所述認(rèn)證塊設(shè)置為等于所述明文塊;如果認(rèn)證塊與由明碼位置指定的明文塊相關(guān)聯(lián),那么通過解密相關(guān)聯(lián)的中間密文塊并將經(jīng)解密的關(guān)聯(lián)中間密文塊與前面的中間密文塊相組合來(lái)確定認(rèn)證塊;通過將所有多個(gè)認(rèn)證塊與噪聲塊相組合來(lái)計(jì)算認(rèn)證標(biāo)記,并接著加密所述的組合結(jié)果;以及將認(rèn)證標(biāo)記附加到所述多個(gè)密文塊。
2.如權(quán)利要求1所述的方法,其特征在于,其中所述加密使用分組密碼加密。
3.如權(quán)利要求1所述的方法,其特征在于,其中所述加密和解密包含選擇應(yīng)用分組密碼加密或分組密碼解密;根據(jù)一組預(yù)定義的選擇規(guī)則來(lái)選擇密鑰或分組密碼以供使用;以及對(duì)多個(gè)輸入塊使用帶有分組密碼的密鑰以獲取多個(gè)輸出塊。
4.如權(quán)利要求1所述的方法,其特征在于,其中組合是使用位異或操作來(lái)執(zhí)行的。
5.如權(quán)利要求1所述的方法,其特征在于,其中組合是使用群運(yùn)算符來(lái)執(zhí)行的。
6.如權(quán)利要求5所述的方法,其特征在于,其中所述群運(yùn)算符是模整數(shù)加法運(yùn)算符。
7.用于解密和驗(yàn)證伴有認(rèn)證標(biāo)記的多個(gè)傳輸塊的方法,所述方法包含使用臨時(shí)值和第一密鑰來(lái)確定多個(gè)噪聲塊;通過將多個(gè)傳輸塊的每一個(gè)與相應(yīng)的噪聲塊相組合來(lái)確定多個(gè)中間密文塊;確定多個(gè)認(rèn)證塊,其中多個(gè)認(rèn)證塊的每個(gè)是通過解密相應(yīng)的中間密文塊并接著將經(jīng)解密的中間密文塊與前面的中間密文塊相組合形成的;將不與任一預(yù)定的明碼位置相關(guān)聯(lián)的多個(gè)認(rèn)證塊的每一個(gè)設(shè)置為明文塊;將與任一預(yù)定的明碼位置相關(guān)聯(lián)的多個(gè)傳輸塊的每一個(gè)設(shè)置為明文塊;以及通過確定最后的認(rèn)證塊是否等于所有其它認(rèn)證塊的組合來(lái)驗(yàn)證認(rèn)證標(biāo)記。
8.如權(quán)利要求6所述的方法,其特征在于,其中所述臨時(shí)值是在多個(gè)傳輸塊的發(fā)送者和多個(gè)傳輸塊的接收者之間預(yù)先協(xié)商的。
9.如權(quán)利要求5所述的方法,其特征在于,其中所述臨時(shí)值是從第一傳輸塊導(dǎo)出的。
10.用于作為單個(gè)實(shí)體加密和認(rèn)證數(shù)據(jù)的裝置,所述裝置包含至少一個(gè)存儲(chǔ)器元件;以及至少一個(gè)處理元件,被配置成執(zhí)行一組存儲(chǔ)在至少一個(gè)存儲(chǔ)器元件中的指令,所述這組指令用于將數(shù)據(jù)排列成多個(gè)明文塊,根據(jù)密碼塊大小來(lái)定每個(gè)明文塊的尺寸;指定至少一個(gè)明碼位置,對(duì)于該位置至少一個(gè)密文塊將與相應(yīng)的明文塊相同;使用臨時(shí)值和第一密鑰確定多個(gè)噪聲塊;確定多個(gè)中間密文塊,其中所述第一中間密文塊對(duì)應(yīng)于經(jīng)加密的臨時(shí)值,剩余中間密文被確定如下對(duì)于由明碼位置指定的多個(gè)明文塊的每一個(gè),將所述明文塊與相應(yīng)的噪聲塊相組合;以及對(duì)于不是由明碼位置指定的多個(gè)明文塊的每一個(gè),使用所述明文塊和前面的中間密文塊形成中間明文塊,并且接著使用第二密鑰加密該中間明文塊;確定多個(gè)密文塊,其中所述多個(gè)密文塊被確定如下將第一密文塊設(shè)置為等于第一中間密文塊;將每個(gè)由明碼位置指定的密文塊設(shè)置為等于相應(yīng)的明文塊;以及通過將相應(yīng)的中間密文塊和相應(yīng)的噪聲塊相組合來(lái)確定每個(gè)剩余密文塊;確定多個(gè)認(rèn)證塊,其中所述多個(gè)認(rèn)證塊被確定如下如果認(rèn)證塊與不是由明碼位置指定的明文塊相關(guān)聯(lián),那么將所述認(rèn)證塊設(shè)置為等于所述明文塊;如果認(rèn)證塊與由明碼位置指定的原文塊相關(guān)聯(lián),那么通過解密相關(guān)聯(lián)的中間密文塊并將經(jīng)解密的關(guān)聯(lián)中間密文塊與前面的中間密文塊相組合來(lái)確定認(rèn)證塊;通過將所有多個(gè)認(rèn)證塊與噪聲塊相組合來(lái)計(jì)算認(rèn)證標(biāo)記,并接著加密所述的組合結(jié)果;以及將認(rèn)證標(biāo)記附加到所述多個(gè)密文塊。
11.用于解密和驗(yàn)證伴有認(rèn)證標(biāo)記的多個(gè)傳輸塊的裝置,所述裝置包含至少一個(gè)存儲(chǔ)器元件;以及至少一個(gè)處理元件,被配置成執(zhí)行一組存儲(chǔ)在至少一個(gè)存儲(chǔ)器元件中的指令,所述這組指令用于使用臨時(shí)值和第一密鑰來(lái)確定多個(gè)噪聲塊;通過將多個(gè)傳輸塊的每一個(gè)與相應(yīng)的噪聲塊相結(jié)合來(lái)確定多個(gè)中間密文塊;確定多個(gè)認(rèn)證塊,其中多個(gè)認(rèn)證塊的每個(gè)是通過解密相應(yīng)的中間密文塊并接著將經(jīng)解密的中間密文塊與前面的中間密文塊相組合構(gòu)成的;將不與任一預(yù)定的明碼位置相關(guān)聯(lián)的多個(gè)認(rèn)證塊的每一個(gè)設(shè)置為明文塊;將與任一預(yù)定的明碼位置相關(guān)聯(lián)的多個(gè)傳輸塊的每一個(gè)設(shè)置為明文塊;通過確定最后的認(rèn)證塊是否等于所有其它認(rèn)證塊的組合來(lái)驗(yàn)證認(rèn)證標(biāo)記。
12.用于作為單個(gè)實(shí)體加密和認(rèn)證數(shù)據(jù)的裝置,所述裝置包含將數(shù)據(jù)排列成多個(gè)明文塊的裝置,根據(jù)密碼塊大小來(lái)定每個(gè)明文塊的尺寸;指定至少一個(gè)明碼位置,對(duì)于該位置至少一個(gè)密文塊會(huì)與相應(yīng)的明文塊相同的裝置;使用臨時(shí)值和第一密鑰確定多個(gè)噪聲塊的裝置;確定多個(gè)中間密文塊的裝置,其中所述第一中間密文塊對(duì)應(yīng)于經(jīng)加密的臨時(shí)值,剩余中間密文被確定如下對(duì)于由明碼位置指定的多個(gè)明文塊的每一個(gè),將所述明文塊與相應(yīng)的噪聲塊相組合;以及對(duì)于不是由明文位置指定的多個(gè)明文塊的每一個(gè),使用所述明文塊和前面的中間密文塊形成中間明文塊,并且接著使用第二密鑰加密該中間明文塊;確定多個(gè)密文塊的裝置,其中所述多個(gè)密文塊被確定如下將第一密文塊設(shè)置為等于第一中間密文塊;將每個(gè)由明碼位置指定的密文塊設(shè)置為等于相應(yīng)的明文塊;以及通過將相應(yīng)的中間密文塊和相應(yīng)的噪聲塊相組合來(lái)確定每個(gè)剩余密文塊;確定多個(gè)認(rèn)證塊的裝置,其中所述多個(gè)認(rèn)證塊被確定如下如果認(rèn)證塊與不是由明碼位置指定的明文塊相關(guān)聯(lián),那么將所述認(rèn)證塊設(shè)置為等于所述明文塊;如果認(rèn)證塊與由明碼位置指定的明文塊相關(guān)聯(lián),那么通過解密相關(guān)聯(lián)的中間密文塊并將經(jīng)解密的關(guān)聯(lián)中間密文塊與前面的中間密文塊相組合來(lái)確定認(rèn)證塊;通過將所有多個(gè)認(rèn)證塊與噪聲塊相組合來(lái)計(jì)算認(rèn)證標(biāo)記,并接著加密所述的組合結(jié)果的裝置;以及將認(rèn)證標(biāo)記附加到所述多個(gè)密文塊的裝置。
13.用于解密和驗(yàn)證伴有認(rèn)證標(biāo)記的多個(gè)傳輸塊的裝置,所述裝置包含使用臨時(shí)值和第一密鑰來(lái)確定多個(gè)噪聲塊的裝置;通過將多個(gè)傳輸塊的每一個(gè)與相應(yīng)的噪聲塊相組合來(lái)確定多個(gè)中間密文塊的裝置;確定多個(gè)認(rèn)證塊的裝置,其中多個(gè)認(rèn)證塊的每個(gè)是通過解密相應(yīng)的中間密文塊并接著將經(jīng)解密的中間密文塊與前面的中間密文塊相組合構(gòu)成的;將不與任一預(yù)定的明碼位置相關(guān)聯(lián)的多個(gè)認(rèn)證塊的每一個(gè)設(shè)置為明文塊的裝置;將與任一預(yù)定的明碼位置相關(guān)聯(lián)的多個(gè)傳輸塊的每一個(gè)設(shè)置為原文塊的裝置;通過確定最后的認(rèn)證塊是否等于所有其它認(rèn)證塊的組合來(lái)驗(yàn)證認(rèn)證標(biāo)記的裝置。
14.用于安全數(shù)據(jù)傳輸?shù)姆椒?,其中第一部分的?shù)據(jù)傳輸作為明文被發(fā)送,第二部分的數(shù)據(jù)傳輸作為密文被發(fā)送,且所有的數(shù)據(jù)傳輸是經(jīng)認(rèn)證的,所述的方法包含生成一組明碼位置;將所述第一部分的數(shù)據(jù)傳輸和所述第二部分的數(shù)據(jù)傳輸加密成密文,其中所述第一部分的數(shù)據(jù)傳輸由該組明碼位置指定,且第二部分的數(shù)據(jù)傳輸不與該組明碼位置中的任何一個(gè)相關(guān)聯(lián);通過一迭代過程確定多個(gè)中間密文塊;生成多個(gè)認(rèn)證塊,其中每個(gè)多個(gè)認(rèn)證塊的第一部分被設(shè)置為等于數(shù)據(jù)傳輸?shù)牡谝徊糠值南鄳?yīng)數(shù)目,并且每個(gè)多個(gè)認(rèn)證塊的第二部分是通過將相應(yīng)的中間密文塊和前一中間密文塊相組合而導(dǎo)出的;通過將多個(gè)認(rèn)證塊的每一個(gè)與噪聲塊相組合來(lái)生成認(rèn)證標(biāo)記,并加密所組合的結(jié)果;以及發(fā)送所述明文、密文和認(rèn)證標(biāo)記,其中所述明文是由該組明碼位置指定的數(shù)據(jù)傳輸?shù)牡谝徊糠帧?br>
15.用于安全數(shù)據(jù)傳輸?shù)难b置,其中第一部分的數(shù)據(jù)傳輸作為明文發(fā)送,第二部分的數(shù)據(jù)傳輸作為密文發(fā)送,且所有的數(shù)據(jù)傳輸是經(jīng)認(rèn)證的,所述的方法包含生成一組明碼位置的裝置;將所述第一部分的數(shù)據(jù)傳輸和所述第二部分的數(shù)據(jù)傳輸加密成密文的裝置,其中所述第一部分的數(shù)據(jù)傳輸由該組明碼位置指定,且第二部分的數(shù)據(jù)傳輸不與該組明碼位置組中任何一個(gè)相關(guān)聯(lián);通過一迭代過程確定多個(gè)中間密文塊的裝置;生成多個(gè)認(rèn)證塊的裝置,其中每個(gè)多個(gè)認(rèn)證塊的第一部分被設(shè)置為等于數(shù)據(jù)傳輸?shù)牡谝徊糠值南鄳?yīng)數(shù)目,并且每個(gè)多個(gè)認(rèn)證塊的第二部分是通過將相應(yīng)的中間密文塊和前一中間密文塊相組合導(dǎo)出的;通過將多個(gè)認(rèn)證塊的每一個(gè)與噪聲塊相組合并加密所組合的結(jié)果來(lái)生成認(rèn)證標(biāo)記的裝置;以及發(fā)送所述明文、密文和認(rèn)證標(biāo)記的裝置,其中所述明文是由該組明碼位置指定的數(shù)據(jù)傳輸?shù)牡谝徊糠帧?br>
全文摘要
提出了加密和認(rèn)證數(shù)據(jù)的方法和裝置,其中一些數(shù)據(jù)被加密而一些數(shù)據(jù)不被加密,但所有的數(shù)據(jù)被認(rèn)證。根據(jù)一數(shù)據(jù)塊是占據(jù)明碼位置(442A、442B、442C)或密文位置(444A、444B、444C、444D)為認(rèn)證塊使用不同的公式。所述認(rèn)證塊于是被組合用于形成校驗(yàn)和,校驗(yàn)和被加密以形成認(rèn)證標(biāo)記。
文檔編號(hào)H04L9/32GK1682483SQ03822411
公開日2005年10月12日 申請(qǐng)日期2003年7月24日 優(yōu)先權(quán)日2002年7月24日
發(fā)明者P·M·霍克斯, G·G·羅斯 申請(qǐng)人:高通股份有限公司