專利名稱:低等待時(shí)間的分塊密碼術(shù)的制作方法
低等待時(shí)間的分塊密碼術(shù)背景領(lǐng)域一個(gè)特征涉及存儲(chǔ)器內(nèi)容的保護(hù),尤其涉及使用分塊密碼術(shù)來保護(hù)存儲(chǔ)到存儲(chǔ)器設(shè)備的內(nèi)容的方法。背景數(shù)字處理器存在于諸如蜂窩電話、計(jì)算機(jī)、個(gè)人數(shù)字助理(PDA)、無線網(wǎng)絡(luò)接入點(diǎn)等的許多設(shè)備中。使存儲(chǔ)在存儲(chǔ)器中的程序和數(shù)據(jù)得到保護(hù)以對(duì)抗具有相當(dāng)尖端的工具的攻擊者的需要日漸增長。數(shù)字權(quán)限管理應(yīng)用也強(qiáng)加此類限制以控制對(duì)數(shù)字?jǐn)?shù)據(jù)或硬件的訪問或使用。例如,中央處理單元(CPU)通常具有某種芯片上存儲(chǔ)器存儲(chǔ),可以通過確保數(shù)據(jù)訪問線被埋藏在CPU或板內(nèi)以使得訪問該數(shù)據(jù)的企圖將毀壞該設(shè)備并且可以想見在數(shù)據(jù)能被訪問到之前就加擾或毀壞該數(shù)據(jù)來對(duì)該芯片上存儲(chǔ)器存儲(chǔ)進(jìn)行安保。出于規(guī)模和經(jīng)濟(jì)的原因,希望能夠?qū)⒋鎯?chǔ)器封裝在單獨(dú)的芯片中。然而,將存儲(chǔ)器設(shè)備封裝在單獨(dú)的芯片中會(huì)使攻擊者要通過使用諸如探針之類的簡單工具來訪問存儲(chǔ)器設(shè)備相對(duì)容易,因?yàn)閿?shù)據(jù)在其于CPU與存儲(chǔ)器芯片之間往來時(shí)是曝露的?!N解決在將數(shù)據(jù)存儲(chǔ)到分離的存儲(chǔ)芯片時(shí)缺乏安全性的方法是在CPU上進(jìn)行加密過程,以使得被寫到存儲(chǔ)器芯片的數(shù)據(jù)對(duì)攻擊者而言是無用的。反之,當(dāng)從存儲(chǔ)器取回?cái)?shù)據(jù)時(shí),該數(shù)據(jù)由CPU解密。關(guān)于特定存儲(chǔ)器分塊的地址信息以及僅為CPU所知的密碼學(xué)密鑰是該加密算法的其他輸入。由于存儲(chǔ)器位置能被重復(fù)寫,且常常是用模式化數(shù)據(jù)來寫,因而流密碼術(shù)以及對(duì)應(yīng)的用于分塊密碼術(shù)的操作模式諸如計(jì)數(shù)器模式(CTR)之類并不恰適。將地址用作如密碼術(shù)分塊鏈接(CBC)的模式的初始化矢量的分塊密碼術(shù)在此是恰適的機(jī)制。(見FIPS特種
出版物800-38A-Modes of operation for Block Cipher (用于分塊密碼術(shù)的操作模
式))。然而,與密碼術(shù)固有的分塊大小相比,在一次操作中要被加密的存儲(chǔ)器分塊通常很小 (例如,往往只是單個(gè)分塊)。因此,當(dāng)應(yīng)用到單個(gè)分塊時(shí),考慮將CBC模式作為“鏈接”是反直觀的?,F(xiàn)代分塊密碼術(shù)具有常被稱為迭代分塊密碼術(shù)的結(jié)構(gòu)。每次迭代被稱為一輪,并且重復(fù)的函數(shù)被稱為輪函數(shù)(例如,4到32輪之間的任何輪是典型的)。在每一輪中,當(dāng)被應(yīng)用到輸入分塊時(shí),輪函數(shù)達(dá)成一定量的混亂性和擴(kuò)散性。為了加密輸入分塊,該密碼術(shù)生成該輸入分塊的置換。解密是通過逆向地運(yùn)行該過程來達(dá)成的。若視作黑盒,則該密碼術(shù)接收固定大小的單個(gè)數(shù)據(jù)分塊以及機(jī)密密鑰作為輸入,重復(fù)地將輪函數(shù)應(yīng)用到該輸入分塊,并且輸出單個(gè)密碼術(shù)輸出分塊。某些密碼術(shù)允許可變大小的密鑰,并且密鑰大小可以小于、等于或大于分塊大小。例如,高級(jí)加密標(biāo)準(zhǔn)(AES)算法具有1 位的分塊大小,并且能接受128、192或256位的密鑰。在密碼術(shù)內(nèi)有數(shù)個(gè)輪次(例如,在具有128位密鑰的AES情形中為10輪)。每一輪具有輪密鑰作為其輸入的一部分。這些輪密鑰是在被稱為密鑰排程的過程中從機(jī)密密鑰推導(dǎo)出來的。每一輪旨在對(duì)分塊和輪密鑰的部分執(zhí)行某種非線性替換,其后繼以某種(通
7常為線性的)擴(kuò)散操作以將每一替換的效果鋪開到整個(gè)分塊。這些動(dòng)作旨在挫敗諸如線性和差分密碼學(xué)分析之類的公知形式的密碼學(xué)分析。為了加密向存儲(chǔ)器發(fā)送的數(shù)據(jù),存儲(chǔ)器地址可被用作初始化矢量。這將保證具有相同數(shù)據(jù)的不同存儲(chǔ)器地址將仍然被不同地加密。該加密可被寫為C = EK(P A)其中P是輸入明文(原始數(shù)據(jù)分塊),A是存儲(chǔ)器地址,C是輸出密文(將在存儲(chǔ)器芯片中出現(xiàn)在地址A處的輸出數(shù)據(jù)分塊), 是逐位異或O(OR)運(yùn)算,而&表示使用分塊密碼術(shù)以機(jī)密密鑰K來加密該數(shù)據(jù)分塊。相應(yīng)地,當(dāng)要從存儲(chǔ)器中讀回?cái)?shù)據(jù)時(shí),將使用逆操作。P = Dk(C) A其中Dk表示在其解密模式中使用分塊密碼術(shù)。然而,與存儲(chǔ)器訪問速度相比,典型的分塊密碼術(shù)應(yīng)用具有相當(dāng)高的等待時(shí)間。對(duì)于批量加密而言,管線化解決了這個(gè)問題, 但是當(dāng)加密單個(gè)存儲(chǔ)器位置時(shí),管線化并無幫助。因此,需要一種對(duì)少數(shù)存儲(chǔ)器位置實(shí)現(xiàn)分塊密碼術(shù)加密同時(shí)減少等待時(shí)間的方法。概述提供了一種保護(hù)數(shù)據(jù)的分塊密碼術(shù),其通過基于數(shù)據(jù)要被存儲(chǔ)的存儲(chǔ)器地址加密該數(shù)據(jù)來保護(hù)該數(shù)據(jù)。當(dāng)加密數(shù)據(jù)以供存儲(chǔ)在該存儲(chǔ)器地址中時(shí),該存儲(chǔ)器地址在第一多個(gè)分塊密碼術(shù)輪中被加密。使用來自第一多個(gè)分塊密碼術(shù)輪的信息來生成數(shù)據(jù)輪密鑰。把要被存儲(chǔ)的數(shù)據(jù)與經(jīng)加密存儲(chǔ)器地址相組合并且在第二多個(gè)分塊密碼術(shù)輪中通過使用這些數(shù)據(jù)輪密鑰來加密。經(jīng)加密數(shù)據(jù)隨后被存儲(chǔ)在該存儲(chǔ)器位置中。當(dāng)解密數(shù)據(jù)時(shí),存儲(chǔ)器地址如之前那樣被再次加密,而經(jīng)加密的存儲(chǔ)數(shù)據(jù)在第二多個(gè)分塊密碼術(shù)輪中通過使用數(shù)據(jù)輪密鑰來解密以獲得經(jīng)部分解密的數(shù)據(jù)。把經(jīng)部分解密的數(shù)據(jù)與經(jīng)加密存儲(chǔ)器地址相組合以獲得完全解密的數(shù)據(jù)。在存儲(chǔ)器地址中數(shù)據(jù)加密的一個(gè)示例中,該存儲(chǔ)器地址是在第一多個(gè)分塊密碼術(shù)輪中被加密的。加密存儲(chǔ)器地址可包括(a)根據(jù)第一變換函數(shù)變換該存儲(chǔ)器地址,(b)將經(jīng)變換的存儲(chǔ)器地址與輪密鑰混合,(c)將存儲(chǔ)器地址分段,和/或(d)對(duì)不同的存儲(chǔ)器地址片段執(zhí)行位替換。存儲(chǔ)器地址可能在數(shù)據(jù)被存儲(chǔ)之前就可用。因此,加密存儲(chǔ)器地址可在數(shù)據(jù)可用之前開始。數(shù)據(jù)輪密鑰可通過使用來自第一多個(gè)分塊密碼術(shù)輪中的一輪或更多輪的信息來生成。生成數(shù)據(jù)輪密鑰可包括(a)從關(guān)于第一多個(gè)分塊密碼術(shù)輪中的至少一些輪的經(jīng)加密存儲(chǔ)器地址提取多個(gè)位,(b)從提取出的多個(gè)位的片段選擇數(shù)據(jù)輪密鑰,和/或(C)將提取出的多個(gè)位級(jí)聯(lián)到串中,這些數(shù)據(jù)輪密鑰從該串中選擇。數(shù)據(jù)可與第一多個(gè)分塊密碼術(shù)輪之后的經(jīng)加密存儲(chǔ)器地址相組合。例如,可通過可逆操作(例如,模加/模減、逐位XOR運(yùn)算等)使數(shù)據(jù)與經(jīng)加密存儲(chǔ)器地址相組合。數(shù)據(jù)可隨后在第二多個(gè)分塊密碼術(shù)輪中通過使用這些數(shù)據(jù)輪密鑰來加密。第二多個(gè)分塊密碼術(shù)輪多于第一多個(gè)分塊密碼術(shù)輪。加密數(shù)據(jù)可包括(a)根據(jù)第二變換函數(shù)變換數(shù)據(jù),(b)將經(jīng)變換的數(shù)據(jù)與這些數(shù)據(jù)輪密鑰中的一個(gè)或更多個(gè)混合,(c)將數(shù)據(jù)分段成多個(gè)數(shù)據(jù)片段, 和/或(d)對(duì)不同的數(shù)據(jù)片段執(zhí)行位替換。
存儲(chǔ)器地址可在第一多個(gè)分塊密碼術(shù)輪上被迭代地加密,并且數(shù)據(jù)可在第二多個(gè)分塊密碼術(shù)輪上被迭代地加密。在一個(gè)示例中,用于第二多個(gè)分塊密碼術(shù)輪中較早輪次的數(shù)據(jù)輪密鑰可使用來自源于第一多個(gè)分塊密碼術(shù)輪中較晚輪次的經(jīng)加密存儲(chǔ)器地址的位來生成。經(jīng)加密數(shù)據(jù)可隨后被存儲(chǔ)在該存儲(chǔ)器地址中。在解密存儲(chǔ)器地址中的數(shù)據(jù)的另一個(gè)示例中,該存儲(chǔ)器地址在第一多個(gè)分塊密碼術(shù)輪中被加密以獲得經(jīng)加密存儲(chǔ)器地址。加密存儲(chǔ)器地址可在數(shù)據(jù)可用之前開始。加密存儲(chǔ)器地址可包括(a)根據(jù)第一變換函數(shù)變換存儲(chǔ)器地址,(b)將經(jīng)變換的存儲(chǔ)器地址與輪密鑰混合,(c)將存儲(chǔ)器地址分段,和/或(d)對(duì)不同的存儲(chǔ)器地址片段執(zhí)行位替換。數(shù)據(jù)輪密鑰可通過使用來自第一多個(gè)分塊密碼術(shù)輪中的一輪或更多輪的信息來生成。生成數(shù)據(jù)輪密鑰可包括(a)從關(guān)于第一多個(gè)分塊密碼術(shù)輪中的至少一些輪的經(jīng)加密存儲(chǔ)器地址提取多個(gè)位,(b)從提取出的多個(gè)位的片段選擇這些數(shù)據(jù)輪密鑰,和/或?qū)⑻崛〕龅亩鄠€(gè)位級(jí)聯(lián)到串中,這些數(shù)據(jù)輪密鑰從該串中選擇。經(jīng)加密數(shù)據(jù)可從該存儲(chǔ)器地址取回。經(jīng)加密數(shù)據(jù)可在第二多個(gè)分塊密碼術(shù)輪中通過使用這些數(shù)據(jù)輪密鑰來解密以獲得經(jīng)部分解密的數(shù)據(jù)。解密經(jīng)加密數(shù)據(jù)可包括(a)根據(jù)第二逆變換函數(shù)變換經(jīng)加密數(shù)據(jù),(b)將變換后的經(jīng)加密數(shù)據(jù)與這些數(shù)據(jù)輪密鑰中的一個(gè)或更多個(gè)混合,(c)將經(jīng)加密數(shù)據(jù)分段成多個(gè)經(jīng)加密數(shù)據(jù)片段,和/或(d)對(duì)不同的經(jīng)加密數(shù)據(jù)片段執(zhí)行位替換??蓪⒔?jīng)部分解密的數(shù)據(jù)與經(jīng)加密存儲(chǔ)器地址相組合以獲得完全解密的數(shù)據(jù)。在一個(gè)示例中,可通過可逆操作(例如,模加/模減、逐位XOR運(yùn)算等)使經(jīng)部分解密的數(shù)據(jù)與經(jīng)加密存儲(chǔ)器地址相組合。用于第二多個(gè)分塊密碼術(shù)輪中較早輪次的數(shù)據(jù)輪密鑰是通過使用來自源于第一多個(gè)分塊密碼術(shù)輪中較早輪次的經(jīng)加密存儲(chǔ)器地址的位來生成的。第二多個(gè)分塊密碼術(shù)輪多于第一多個(gè)分塊密碼術(shù)輪。第一多個(gè)分塊密碼術(shù)輪可與第二多個(gè)分塊密碼術(shù)輪并發(fā)地執(zhí)行。這些方法可在硬件、軟件、和/或其組合中實(shí)現(xiàn)。附圖簡述在結(jié)合附圖理解下面闡述的詳細(xì)描述時(shí),本發(fā)明各方面的特征、本質(zhì)和優(yōu)點(diǎn)將變得更加明了,在附圖中,相近參考標(biāo)記貫穿始終作相應(yīng)標(biāo)識(shí)。
圖1是解說通過在明文輸入分塊可用之前先部分處理分塊密碼術(shù)藉此減少分塊密碼術(shù)的等待時(shí)間來改善分塊密碼術(shù)加密處理的第一特征的框圖。圖2是解說通過將分塊密碼術(shù)的第一部分與分塊密碼術(shù)的第二部分并行處理藉此減少分塊密碼術(shù)的等待時(shí)間來改善分塊密碼術(shù)解密的第二特征的框圖。圖3是解說配置成加密要被存儲(chǔ)在存儲(chǔ)器中的數(shù)據(jù)的分塊密碼術(shù)的示例的框圖。圖4是解說配置成加密明文數(shù)據(jù)的分塊密碼術(shù)設(shè)備的功能性組件的框圖。圖5是解說存儲(chǔ)器地址加密或變換模塊的一個(gè)示例的框圖。圖6是解說明文數(shù)據(jù)加密或變換模塊的一個(gè)示例的框圖。圖7解說使用要存儲(chǔ)數(shù)據(jù)的存儲(chǔ)器地址來加密該數(shù)據(jù)的分塊密碼術(shù)數(shù)據(jù)加密方法。圖8是解說分塊密碼術(shù)解密從存儲(chǔ)器地址讀取的數(shù)據(jù)的處理的框圖。
圖9是解說配置成解密密文數(shù)據(jù)的分塊密碼術(shù)設(shè)備的功能性組件的框圖。圖10是解說密文數(shù)據(jù)解密或逆變換模塊的一個(gè)示例的框圖。圖11解說用于通過使用在解密經(jīng)加密數(shù)據(jù)的同時(shí)并發(fā)地加密存儲(chǔ)器地址以減少分塊密碼術(shù)的等待時(shí)間的分塊密碼術(shù)來解密經(jīng)加密數(shù)據(jù)的方法。圖12是解說如何可基于來自分塊密碼術(shù)的地址加密輪的結(jié)果來生成用于數(shù)據(jù)加密和解密輪的輪密鑰的示例的框圖。圖13是解說可配置成執(zhí)行高效率的分塊密碼術(shù)加密和解密的設(shè)備的框圖。詳細(xì)描述在以下說明中,給出了具體細(xì)節(jié)以提供對(duì)諸實(shí)施例的透徹理解。但是,本領(lǐng)域普通技術(shù)人員將可理解,沒有這些具體細(xì)節(jié)也可實(shí)踐這些實(shí)施例。例如,電路可能以框圖形式示出,也可能根本不被示出,以免使這些實(shí)施例湮沒在不必要的細(xì)節(jié)中。在其它實(shí)例中,公知的電路、結(jié)構(gòu)和技術(shù)可能不被具體示出以免湮沒這些實(shí)施例。綜述若干新穎特征解決了因使用分塊密碼術(shù)來向/從存儲(chǔ)器寫和讀受保護(hù)數(shù)據(jù)所引起的等待時(shí)間。一般而言,讀操作要比寫操作多許多。在現(xiàn)有技術(shù)中,加密和解密操作在數(shù)據(jù)于內(nèi)部總線上可用(寫)或者已從存儲(chǔ)器取回(讀)之后才開始。但是在典型的硬件設(shè)計(jì)中,地址信息遠(yuǎn)在數(shù)據(jù)之前就可用,在讀存儲(chǔ)器的情形中尤其如此。圖1是解說通過在明文輸入分塊可用之前先部分處理分塊密碼術(shù)藉此減少分塊密碼術(shù)的等待時(shí)間來改善分塊密碼術(shù)加密處理的第一特征的框圖。此加密過程可作為存儲(chǔ)器寫操作的一部分來執(zhí)行并且包括在其中存儲(chǔ)器地址A 106被加密的地址階段102以及在其中數(shù)據(jù)被加密的數(shù)據(jù)階段104。使用存儲(chǔ)器地址A 106和用于分塊密碼術(shù)100的機(jī)密密鑰108來預(yù)處理迭代分塊密碼術(shù)的數(shù)個(gè)密碼術(shù)輪。明文數(shù)據(jù)112在若干輪分塊密碼術(shù)加密之后被插入110 (例如,與地址階段102的結(jié)果逐位M)R)。具體而言,分塊密碼術(shù)100的一些輪(即,地址階段輪10 在明文數(shù)據(jù)112被引入之前執(zhí)行,而一些輪(即,數(shù)據(jù)階段輪 104)在明文數(shù)據(jù)112被引入之后執(zhí)行以生成密文114。地址階段102可以不僅加密存儲(chǔ)器地址A 106還可使用那些輪次的結(jié)果來生成用于后續(xù)數(shù)據(jù)階段輪104的加密密鑰(即,密鑰排程)。在明文數(shù)據(jù)112被引入之前和之后所進(jìn)行的密碼術(shù)輪次的數(shù)目可以相同或不同。 此加密過程利用了存儲(chǔ)器地址A 106在明文數(shù)據(jù)112之前就可用這一事實(shí)來減少在加密要被存儲(chǔ)到存儲(chǔ)器中的數(shù)據(jù)時(shí)的等待時(shí)間。補(bǔ)充地,可為分塊密碼術(shù)執(zhí)行更高效率的密鑰排程。用于分塊密碼術(shù)的每一輪的輪密鑰可在實(shí)際明文數(shù)據(jù)可用之前基于地址數(shù)據(jù)和機(jī)密密鑰來生成。因?yàn)檫@些輪密鑰是基于存儲(chǔ)器地址生成的,所以這意味著分塊密碼術(shù)變換對(duì)于每個(gè)存儲(chǔ)器地址而言均將是不同的,藉此嚴(yán)格地約束對(duì)密碼術(shù)分析可用的資源并且增加了該分塊密碼術(shù)的安全性。圖2是解說通過將分塊密碼術(shù)的第一部分與分塊密碼術(shù)的第二部分并行處理藉此減少分塊密碼術(shù)的等待時(shí)間來改善分塊密碼術(shù)解密的第二特征的框圖。此解密過程可作為存儲(chǔ)器讀操作的一部分來執(zhí)行并且包括在其中存儲(chǔ)器地址A 206被加密的地址階段202 以及在其中數(shù)據(jù)被解密的數(shù)據(jù)階段204。不是如在常規(guī)解密方法中那樣后向地運(yùn)行整個(gè)分塊密碼術(shù),而是從密文214開始后向地處理分塊密碼密碼術(shù)200的數(shù)據(jù)階段204。與此同時(shí),通過將存儲(chǔ)器地址A 206和密鑰208用作輸入來前向地運(yùn)行分塊密碼術(shù)200的地址階段202。當(dāng)這些過程在中間210相遇時(shí),通過對(duì)經(jīng)部分解密的密文與經(jīng)部分加密的存儲(chǔ)器地址進(jìn)行XOR來推導(dǎo)明文數(shù)據(jù)212。使用分塊密碼術(shù)的高效率加密圖3是解說配置成加密要被存儲(chǔ)在存儲(chǔ)器中的數(shù)據(jù)的分塊密碼術(shù)的示例的框圖。 在此過程中,存儲(chǔ)器地址A 304可能在要被存儲(chǔ)的數(shù)據(jù)分塊(即,明文320)可用之前就可用。當(dāng)數(shù)據(jù)(明文320)被存入存儲(chǔ)器時(shí),可采用迭代分塊密碼術(shù)302來加密該數(shù)據(jù)例如, CPU可在將數(shù)據(jù)發(fā)送給存儲(chǔ)器設(shè)備以供存儲(chǔ)之前先加密該數(shù)據(jù)。在此示例中,分塊密碼術(shù) 302可包括密鑰排程和地址加密階段303以及數(shù)據(jù)加密階段305。在密鑰排程和地址加密階段303中,使用存儲(chǔ)器地址A 304和用于分塊密碼術(shù)的機(jī)密密鑰Ktts 306來預(yù)處理該迭代分塊密碼術(shù)的數(shù)個(gè)輪次。例如,在實(shí)際明文數(shù)據(jù)分塊P 320可用之前,先基于機(jī)密密鑰Ktts306來生成用于分塊密碼術(shù)302的相應(yīng)地址加密輪316、 317和318的多個(gè)輪密鑰Kl 307、K2 308和Ki 309。每個(gè)輪密鑰Kl 307、Κ2 308和Ki 309 可基于在前的輪密鑰(例如,Kl基于Ktts,Κ2基于Κ1,依此類推)來推導(dǎo)。根據(jù)一個(gè)示例, 機(jī)密密鑰306可以是w位長并且每個(gè)輪密鑰Kl、Κ2和Ki是η位長,其中η < W。每個(gè)輪密鑰Κ1、Κ2和Ki是通過從機(jī)密密鑰取毗連的η個(gè)位來生成的,其中機(jī)密密鑰306被認(rèn)為在末端卷繞。每個(gè)輪密鑰ΚΙ、Κ2和Ki可使用機(jī)密密鑰306不同群組的毗連位序列。分塊密碼術(shù)302的多個(gè)地址加密輪316、317和318可基于存儲(chǔ)器地址304和相應(yīng)的輪密鑰Kl 307、Κ2 308和Ki 309來生成。例如,第1輪316使用第一線性和/或非線性函數(shù)Ea來變換存儲(chǔ)器地址A 304的全部或部分,并且基于與密鑰Kl的可逆操作(例如,模加/模減、逐位XOR運(yùn)算等)來對(duì)其進(jìn)行進(jìn)一步變換(例如,Rl =Ea(A) Κ1)。類似地,第 2輪317使用第一線性和/或非線性函數(shù)Ea來變換第1輪316的結(jié)果Rl并且基于與相應(yīng)密鑰Κ2的可逆操作(例如,逐位XOR運(yùn)算)來進(jìn)一步變換該結(jié)果(例如,R2 = Ea(Rl) Κ2)。 此過程可被重復(fù)多次以將每個(gè)變換操作的效果擴(kuò)散到整個(gè)分塊。例如,第i輪318使用第一線性和/或非線性函數(shù)Ea來變換在前輪的結(jié)果Ri-I并且基于與相應(yīng)密鑰Ki的可逆操作 (例如,逐位XOR運(yùn)算等)來進(jìn)一步變換該結(jié)果(例如,Ri =Ea(Ri-I) Ki)。注意,這些第一分塊密碼術(shù)輪303(存儲(chǔ)器地址加密階段)甚至可以在數(shù)據(jù)可供在數(shù)據(jù)加密階段305中加密用之前就被(至少部分地)執(zhí)行。通過在明文數(shù)據(jù)分塊P 320可用之前部分處理(或預(yù)處理)分塊密碼術(shù),分塊密碼術(shù)中的等待時(shí)間(即,延遲)可得以減少。補(bǔ)充地,在密鑰排程階段303期間,可生成用于數(shù)據(jù)加密階段305的密鑰312、314 和315以節(jié)約時(shí)間。數(shù)據(jù)加密階段305密鑰Ky、Ky+1和Kx可基于地址加密階段303的每個(gè)密碼術(shù)輪結(jié)果Rl、R2、Ri的結(jié)果來生成。在一個(gè)示例中,輪結(jié)果R1、R2和Ri可以是η位長(其中η是正整數(shù))并且來自這些輪中的至少多輪的數(shù)個(gè)位g被用來生成數(shù)據(jù)加密階段密鑰Ky、Ky+l和Kx,其中g(shù)是小于η的整數(shù)。例如,位集S 310可通過級(jí)聯(lián)(符號(hào)Il )從各輪結(jié)果Rl、R2、Ri提取出的位以使得Sn = Rl1H Il R21...g2- Il Ri1^gi來獲得,其中ρ是描繪該位集S 310中總位數(shù)的整數(shù)值。注意,在一些實(shí)現(xiàn)中,用于每一輪的位數(shù)gl、g2、《"、gi 可以是相同的,而在其他實(shí)現(xiàn)中,位數(shù)gl、g2、…、gi可以是不同的。在密鑰排程階段303 期間,數(shù)據(jù)加密階段密鑰Ky、Ky+1和Kx可通過為每個(gè)密鑰從位集S 310提取位片段來生成。在一個(gè)示例中,對(duì)應(yīng)于密鑰排程和地址加密階段303中那些較晚密碼術(shù)輪的位可被用于數(shù)據(jù)加密階段305中那些較早的密鑰。例如,密鑰Ky 312可從位集S 310的位S(p_j+1)...p取得,這些位3( .+1)1在此示例中對(duì)應(yīng)于來自Rihg的位的子集,其中j < g (對(duì)于g = gl, g2,…,gi)。類似地,密鑰Ky+1 314可以等于位集S 310的位S(p_2j+1)...(ρ_」)且密鑰Kx可以等于位集S 310的位S !...J0在一些實(shí)現(xiàn)中,在j<g的場合,密鑰排程階段303中輪次的數(shù)目可以小于數(shù)據(jù)階段305中輪次的數(shù)目。例如,在輪結(jié)果Rl、R2和Ri是63位長(即,η =63)的場合,可以從每一輪提取45個(gè)位(即,g = 45)以用于位集S 310并且每個(gè)數(shù)據(jù)階段密鑰Ky 312、Ky+1 314和Kx 315可以是32位長(即,j = 32)。一般意義下,可以使用一個(gè)或更多個(gè)輪密鑰函數(shù)1(&來生成輪密鑰1(1、1(2、燈、妨、 Ky+1_Kx中的每一個(gè)。在一個(gè)示例中,第一密鑰排程函數(shù)KSI可被用來生成(用于地址加密階段的)密鑰Kl、K2、Ki并且第二密鑰排程函數(shù)KS2可被用來生成(用于數(shù)據(jù)加密階段的)密鑰Ky、Ky+1、Kx。例如,第一密鑰排程函數(shù)KSl可被用來生成密鑰Ki,以使得Ki = KSl(Kms, i),其中“i”是地址加密階段303的輪號(hào),而第二密鑰排程函數(shù)KS2可被用來生成密鑰Ky+i,以使得Ky+i = KS2(S1...P, i),其中“y+i”是數(shù)據(jù)加密階段305的輪號(hào)。當(dāng)明文數(shù)據(jù)分塊P 320變成可用時(shí),其可在分塊密碼術(shù)302中的一輪或更多輪 316、317和318已被執(zhí)行之后(例如,在密鑰排程階段303之后)被插入分塊密碼術(shù)302。 明文數(shù)據(jù)分塊P 320可在通常被稱為白化的過程中通過使其(在逐位的基礎(chǔ)上)與最新近被預(yù)處理的輪次(即,第i輪318)的結(jié)果Ri進(jìn)行XOR來插入分塊密碼術(shù)302中。在明文數(shù)據(jù)分塊P 320已被引入之后,使用相應(yīng)的輪密鑰Ky 312、Ky+l 314以及Kx 315來執(zhí)行數(shù)據(jù)加密階段305中的一輪或更多輪332、324和326。在數(shù)據(jù)加密階段305期間第y輪322處,由第二線性和/或非線性函數(shù)&來變換經(jīng)白化的數(shù)據(jù)分塊D_321并且基于與相應(yīng)輪密鑰Ky的可逆操作(例如,逐位XOR運(yùn)算)對(duì)其進(jìn)行進(jìn)一步變換(例如,Ry = K(Deft) Ky)。類似地,在第y+1輪3 處,使用第二線性和/或非線性函數(shù)&來變換第y輪322的結(jié)果Ry并且基于與相應(yīng)密鑰Ky+1的可逆操作 (例如,模加/模減、逐位M)R運(yùn)算等)來進(jìn)一步變換該結(jié)果(例如,Ry+1 = Eb(Ry) Ky+1)。 此過程可被重復(fù)多次以將每個(gè)變換操作的效果擴(kuò)散到整個(gè)分塊。例如,第χ輪3 使用第二線性和/或非線性函數(shù)Eb來變換在前輪的結(jié)果Rx-I并且基于與相應(yīng)密鑰Kx的可逆操作(例如,逐位XOR運(yùn)算等)來進(jìn)一步變換該結(jié)果(例如,Rx = Eb(Rx-I) Kx)以獲得密文 328。在各種實(shí)現(xiàn)中,密鑰排程和地址加密階段303以及數(shù)據(jù)加密階段305的輪次的數(shù)目可以相同或不同。在數(shù)據(jù)解密階段305期間輪次的數(shù)目可被選擇成減少分塊密碼術(shù)302 的等待時(shí)間同時(shí)引入向明文數(shù)據(jù)分塊P 320提供充足的擴(kuò)散以減少分塊密碼術(shù)302的等待時(shí)間。圖4是解說配置成加密明文數(shù)據(jù)的分塊密碼術(shù)設(shè)備的功能性組件的框圖。分塊密碼術(shù)設(shè)備402可基于明文數(shù)據(jù)404要被存儲(chǔ)到的存儲(chǔ)器地址406以及機(jī)密密鑰408來加密該明文數(shù)據(jù)404。分塊密碼術(shù)設(shè)備402可包括地址加密模塊412,其根據(jù)變換或加密函數(shù)以及由輪密鑰生成器416提供的密鑰來變換和/或加密此存儲(chǔ)器地址406。輪密鑰生成器416 可被配置成基于機(jī)密密鑰408來生成一個(gè)或更多個(gè)輪密鑰。密鑰排程模塊414也可基于地址加密模塊412的結(jié)果生成一個(gè)或更多個(gè)數(shù)據(jù)密鑰。該一個(gè)或更多個(gè)數(shù)據(jù)密鑰可被存儲(chǔ)在數(shù)據(jù)密鑰存儲(chǔ)422模塊中。可在多輪中通過在每一輪中使用來自輪密鑰生成器416的不同輪密鑰來迭代地執(zhí)行地址加密和數(shù)據(jù)排程功能。在多輪之后,組合器418可使用可逆的操作(例如,模加/模減、逐位XOR等)將明文數(shù)據(jù)404與地址加密模塊412的最后結(jié)果相組合。結(jié)果得到的經(jīng)白化的明文數(shù)據(jù)可隨后由數(shù)據(jù)加密模塊420在一輪或更多輪中通過使用來自數(shù)據(jù)密鑰存儲(chǔ)422的存儲(chǔ)著的數(shù)據(jù)密鑰以及變換或加密函數(shù)來迭代地變換或加密以產(chǎn)生密文424。密文似4可隨后被存儲(chǔ)在存儲(chǔ)器設(shè)備426中該存儲(chǔ)器地址406處。根據(jù)一個(gè)示例,該分塊密碼術(shù)設(shè)備可被實(shí)現(xiàn)在具有字節(jié)可尋址存儲(chǔ)器的系統(tǒng)中。 例如,實(shí)現(xiàn)該分塊密碼術(shù)的CPU的字長可以是32位,并且存儲(chǔ)器地址也可以是32位。如先前所提及的,該分塊密碼術(shù)設(shè)備可被配置成執(zhí)行地址加密階段和數(shù)據(jù)加密階段。圖5是解說存儲(chǔ)器地址加密或變換模塊的一個(gè)示例的框圖。在地址加密階段502 期間,可通過運(yùn)行多個(gè)替換-置換密碼術(shù)輪來變換輸入存儲(chǔ)器地址(被填充到64位)??呻S意任選地,輸入存儲(chǔ)器地址504可首先通過與輪密鑰進(jìn)行XOR來白化。地址分段模塊 506可將64位存儲(chǔ)器地址504劃分成8個(gè)8位片段。每個(gè)8位片段隨后通過8X8替換盒 508(例如,高級(jí)加密標(biāo)準(zhǔn)(AEQ8X8替換盒)。來自每個(gè)替換盒508的結(jié)果可隨后被傳遞給變換模塊510,后者對(duì)分段的全集執(zhí)行線性變換。該線性變換可例如用矩陣乘法Y = CX 來實(shí)現(xiàn),其中X是存儲(chǔ)器地址矢量,C是變換矩陣,而Y是輸出矢量。在一個(gè)示例中,變換矩陣C可以是GFQ8) (GF 伽羅瓦域)上如具有分支號(hào)9的最大距離可分(MDS)映射的8X8 矩陣。矩陣C在當(dāng)且僅當(dāng)其所有子矩陣都非奇異時(shí)可以是MDS的。分塊密碼術(shù)中的許多擴(kuò)散層(例如,SHARK和Khazad)可以達(dá)到此要求。密鑰混合模塊512隨后將經(jīng)變換的存儲(chǔ)器地址與64位輪密鑰混合(例如,使用逐位M)R)。對(duì)于每一密碼術(shù)輪,數(shù)據(jù)輪密鑰提取模塊 514可隨后從過渡期的經(jīng)加密存儲(chǔ)器地址提取多個(gè)位以獲得可在后續(xù)數(shù)據(jù)加密過程中使用的一個(gè)或更多個(gè)數(shù)據(jù)輪密鑰518。這些密碼術(shù)輪(例如,包括分段506、替換盒層508、變換 510以及密鑰混合512)中的多輪可用在每一密碼術(shù)輪結(jié)束時(shí)執(zhí)行數(shù)據(jù)輪密鑰提取514的方式來執(zhí)行。圖6是解說明文數(shù)據(jù)加密或變換模塊的一個(gè)示例的框圖。在數(shù)據(jù)加密階段602期間,明文數(shù)據(jù)604可首先由逐位XOR模塊605用來自地址加密階段的經(jīng)加密存儲(chǔ)器地址603 來白化。經(jīng)加密存儲(chǔ)器地址603可對(duì)應(yīng)于經(jīng)加密明文數(shù)據(jù)要被存儲(chǔ)到的存儲(chǔ)器地址。例如, 如果明文數(shù)據(jù)604是以32位的分塊來處理的,那么可將該明文數(shù)據(jù)604與來自存儲(chǔ)器地址階段的輸出中的32位進(jìn)行M)R。用于數(shù)據(jù)加密階段的輪密鑰可以從存儲(chǔ)器地址加密階段推導(dǎo)。數(shù)據(jù)分段模塊606將明文數(shù)據(jù)604劃分或拆分成四個(gè)8位片段。每個(gè)8位片段通過替換盒608(例如,AES 8X8替換盒)。來自替換盒608的結(jié)果隨后由線性變換模塊610來變換(例如,AES MDS映射)。密鑰混合模塊612可隨后將結(jié)果得到的經(jīng)變換明文數(shù)據(jù)與相應(yīng)的輪密鑰進(jìn)行逐位M)R。此過程可通過對(duì)每一輪使用不同的輪密鑰來重復(fù)多次。數(shù)據(jù)加密階段602的最末密碼術(shù)輪的結(jié)果是輸出密文614,該輸出密文614能被存儲(chǔ)到在相應(yīng)的地址加密階段期間使用的存儲(chǔ)器地址中。圖7解說使用要存儲(chǔ)數(shù)據(jù)的存儲(chǔ)器地址來加密該數(shù)據(jù)的分塊密碼術(shù)數(shù)據(jù)加密方法。在此方法中,執(zhí)行密碼術(shù)輪的第一集合以在數(shù)據(jù)實(shí)際上就緒或可供存儲(chǔ)之前就加密存儲(chǔ)器地址并生成數(shù)據(jù)輪密鑰。隨后,執(zhí)行密碼術(shù)輪的第二集合以加密該數(shù)據(jù)。處理器可在數(shù)據(jù)實(shí)際上被接收到之前就獲得關(guān)于要被存儲(chǔ)的數(shù)據(jù)的存儲(chǔ)器地址 702。存儲(chǔ)器地址可在第一多個(gè)分塊密碼術(shù)輪中被加密704。這樣的存儲(chǔ)器地址加密可包括(a)將存儲(chǔ)器地址分段成多個(gè)存儲(chǔ)器地址片段,(b)對(duì)不同的存儲(chǔ)器地址片段執(zhí)行位替
13換,(C)根據(jù)第一變換函數(shù)變換存儲(chǔ)器地址,和/或(d)將經(jīng)變換的存儲(chǔ)器地址與輪密鑰混合。存儲(chǔ)器地址可在第一多個(gè)分塊密碼術(shù)輪上被迭代地加密。數(shù)據(jù)輪密鑰可通過使用來自第一多個(gè)分塊密碼術(shù)輪中的一輪或更多輪的信息來生成706。數(shù)據(jù)輪密鑰可如下來生成(a)從關(guān)于第一多個(gè)分塊密碼術(shù)輪中的至少一些輪的經(jīng)加密存儲(chǔ)器地址提取多個(gè)位,(b)從提取出的多個(gè)位的片段選擇數(shù)據(jù)輪密鑰,和/或(C) 將提取出的多個(gè)位級(jí)聯(lián)到串中,這些數(shù)據(jù)輪密鑰從該串中選擇。要被存儲(chǔ)的數(shù)據(jù)可隨后在第一多個(gè)分塊密碼術(shù)輪之后與經(jīng)加密存儲(chǔ)器地址相組合708。在一個(gè)示例中,可藉由可逆的操作(例如,逐位XOR運(yùn)算)使數(shù)據(jù)與經(jīng)加密存儲(chǔ)器地址相組合。數(shù)據(jù)可隨后在第二多個(gè)分塊密碼術(shù)輪中通過使用這些數(shù)據(jù)輪密鑰來加密710。 這樣的數(shù)據(jù)加密可包括(a)將數(shù)據(jù)分段成多個(gè)數(shù)據(jù)分段,(b)對(duì)不同的數(shù)據(jù)分段執(zhí)行位替換,(c)根據(jù)第二變換函數(shù)來變換數(shù)據(jù),和/或(d)將經(jīng)變換的數(shù)據(jù)與這些數(shù)據(jù)輪密鑰中的一個(gè)或更多個(gè)混合。數(shù)據(jù)可在第二多個(gè)分塊密碼術(shù)輪上被迭代地加密。在一個(gè)示例中,使用來自源于第一多個(gè)分塊密碼術(shù)輪中較晚輪次的經(jīng)加密存儲(chǔ)器地址的位來生成用于第二多個(gè)分塊密碼術(shù)輪中較早輪次的數(shù)據(jù)輪密鑰。第二多個(gè)分塊密碼術(shù)輪可以多于第一多個(gè)分塊密碼術(shù)輪。經(jīng)加密數(shù)據(jù)可隨后被存儲(chǔ)在該存儲(chǔ)器地址中712。使用分塊密碼術(shù)的高效率解密圖8是解說分塊密碼術(shù)解密從存儲(chǔ)器地址讀取的數(shù)據(jù)的處理的框圖。數(shù)據(jù)可以在先前已使用例如圖1和3-7中所解說的方法被加密。在解密模式中,不是如在常規(guī)解密方法中那樣后向地運(yùn)行整個(gè)分塊密碼術(shù),而是從密文擬8開始后向地處理分塊密碼術(shù)802的第二階段805同時(shí)并發(fā)地前向執(zhí)行第一階段803。一般而言,將分塊密碼術(shù)輪的第一集合803 與分塊密碼術(shù)輪的第二集合805并行地執(zhí)行,藉此減少分塊密碼術(shù)802的等待時(shí)間。S卩,這些第一分塊密碼術(shù)輪803(存儲(chǔ)器地址加密階段)甚至可以在經(jīng)加密數(shù)據(jù)可用或被取回以供由這些第二分塊密碼術(shù)輪805處理之前就被(至少部分地)執(zhí)行。在密鑰排程和地址加密階段803中,存儲(chǔ)器地址804(密文數(shù)據(jù)828即從該存儲(chǔ)器地址804取回)在多個(gè)密碼術(shù)輪中被加密。同時(shí),在數(shù)據(jù)解密階段805中,在多個(gè)密碼術(shù)輪中使用在密鑰排程階段803 中生成的數(shù)據(jù)輪密鑰來解密密文數(shù)據(jù)828。來自這兩個(gè)階段803和805的結(jié)果隨后被組合 (例如,X0R)以產(chǎn)生原始的明文820。在密鑰排程和地址加密階段803中,從中取回密文數(shù)據(jù)828的存儲(chǔ)器地址804被加密。使用存儲(chǔ)器地址A 804和用于分塊密碼術(shù)802的機(jī)密密鑰Ktts806來處理迭代分塊密碼術(shù)802的數(shù)個(gè)輪次。例如,基于機(jī)密密鑰Ktts 806來生成用于分塊密碼術(shù)802的相應(yīng)地址加密輪816、817和818的多個(gè)輪密鑰Kl 807、K2 808和Ki 809。每個(gè)輪密鑰Kl 807、 Κ2 808和Ki 809可基于先前輪密鑰(例如,Kl基于Ktts,Κ2基于Kl,依此類推)來推導(dǎo)。 根據(jù)一個(gè)示例,機(jī)密密鑰806可以是w位長并且每個(gè)輪密鑰ΚΙ、Κ2和Ki是η位長,其中η < w。每個(gè)輪密鑰Κ1、Κ2和Ki是通過從機(jī)密密鑰806取毗連的η位來生成的,其中機(jī)密密鑰806被認(rèn)為在末端卷繞。每個(gè)輪密鑰ΚΙ、Κ2和Ki可使用機(jī)密密鑰806的不同群組的毗連位序列。分塊密碼術(shù)802的多個(gè)地址加密輪816、817和818是基于存儲(chǔ)器地址804和相應(yīng)輪密鑰Kl 807、Κ2 808和Ki 809來生成的。例如,第1輪816使用第一線性和/或非線性函數(shù)Ea來變換存儲(chǔ)器地址A 804的全部或部分并且基于與密鑰Kl的可逆操作(例如,模加/模減、逐位XOR等)來對(duì)其進(jìn)行進(jìn)一步變換(例如,Rl =Ea(A) K1)。類似地,第2輪 817使用第一線性和/或非線性函數(shù)Ea來變換第1輪816的結(jié)果Rl并且基于與相應(yīng)密鑰 K2的逐位XOR來進(jìn)一步變換該結(jié)果(例如,R2 = Ea(Rl) K2)。此過程可被重復(fù)多次以將每個(gè)變換操作的效果擴(kuò)散到整個(gè)分塊。例如,第i輪818使用第一線性和/或非線性函數(shù) Ea來變換先前輪的結(jié)果Ri-I并且基于與相應(yīng)密鑰Ki的逐位XOR來進(jìn)一步變換該結(jié)果(例如,Ri = Ea(Ri-I) Ki)。補(bǔ)充地,在密鑰排程階段803期間,可生成用于數(shù)據(jù)解密階段805的密鑰812、814 和815以節(jié)約時(shí)間。數(shù)據(jù)解密階段805密鑰Ky、Ky+1和Kx可基于密鑰排程階段密鑰K1、 K2和Ki來生成。在一個(gè)示例中,密碼術(shù)輪結(jié)果R1、R2和Ri可以是η位長(其中η是正整數(shù))并且來自這些密鑰中的每一個(gè)的數(shù)個(gè)位g被用來生成數(shù)據(jù)階段密鑰Ky、Ky+l和Kx,其中g(shù)是小于η的整數(shù)。例如,位集S 810可通過級(jí)聯(lián)(符號(hào)II)從各個(gè)輪結(jié)果Rl、R2、Ri提取出的位以使得S1^ = Rlw Il R21...g2- Il Ri1^gi來生成,其中ρ是描繪位集S 810中總位數(shù)的整數(shù)值。注意,在一些實(shí)現(xiàn)中,用于每一輪的位數(shù)gl、g2、…、gi可以是相同的,而在其他實(shí)現(xiàn)中,位數(shù)gl、g2、…、gi可以是不同的。在密鑰排程階段803期間,數(shù)據(jù)加密階段密鑰Ky、Ky+1和Kx可通過為每個(gè)密鑰從位集S 810提取位片段來生成。在一個(gè)示例中,對(duì)應(yīng)于密鑰排程階段803中那些較早輪次的位可被用于數(shù)據(jù)解密階段805中那些較早的密碼術(shù)輪密鑰。這允許與地址加密階段803并發(fā)或并行地執(zhí)行數(shù)據(jù)解密階段805。例如,密鑰Kx 815可以等于位集S 810的位Spj,這些位Spj對(duì)應(yīng)于從第一密碼術(shù)輪Rl1^ 816提取出的位中的一些。因此,一旦Rl結(jié)果被生成,就能獲得解密密鑰Kx 815。類似地,密鑰Ky+1 314可以等于位集S 310的位S(p_2j+1)... (ρ_」)。同樣,密鑰Ky 814可從位集S 810的位S(p_j+1)...p取得,這些位3( _+1)1在此示例中對(duì)應(yīng)于來自Ripg的位的子集,其中j < go在一些實(shí)現(xiàn)中,在j < g的場合,密鑰排程階段803中密碼術(shù)輪的數(shù)目可以小于數(shù)據(jù)解密階段805中輪次的數(shù)目。例如,當(dāng)輪結(jié)果Rl、R2和Ri是63位長(即,η =63)時(shí),可以從每一輪提取45個(gè)位(即,g = 45)以用于位集S 310,并且每個(gè)數(shù)據(jù)解密階段密鑰Kx 815、Ky+1814和Ky 812可以是32位長(即,j = 32)。一般而言,可使用一個(gè)或更多個(gè)輪密鑰函數(shù)K&c來生成輪密鑰ΚΙ、K2、Ki、Ky、 Ky+1_Kx中的每一個(gè)。在一個(gè)示例中,可使用第一密鑰排程函數(shù)KSI來生成(用于地址加密階段的)密鑰Kl、K2、Ki并且可使用第二密鑰排程函數(shù)KS2來生成(用于數(shù)據(jù)解密階段的)密鑰Ky、Ky+1、Kx。例如,第一密鑰排程函數(shù)KSl可被用來生成密鑰Ki,以使得Ki = KSl(Kms, i),其中“i”是地址加密階段803的輪號(hào),而第二密鑰排程函數(shù)KS2可被用來生成密鑰Ky+i,以使得Ky+i = KS2(S1...P, i),其中“y+i”是數(shù)據(jù)解密階段805的輪號(hào)。在數(shù)據(jù)解密階段期間,使用密鑰Kx、Ky+1和Ky在多個(gè)輪次上解密密文數(shù)據(jù) (ct)828。例如,第χ輪擬6使用線性和/或非線性解密函數(shù)Db來變換結(jié)果密文(ct)8 并且基于與相應(yīng)密鑰Kx的操作(例如,可逆的模加/模減、逐位XOR等)來進(jìn)一步變換該結(jié)果(例如,Rx = Db(Ct) Kx)以獲得結(jié)果Rx。此解密過程可被重復(fù)多次以撤銷對(duì)存儲(chǔ)著的數(shù)據(jù)的加密。例如,在第y+Ι輪擬4處使用線性和/或非線性解密函數(shù)Db來變換來自先前輪的結(jié)果Ry+Ι并且基于與相應(yīng)密鑰Ky+1的逐位XOR來進(jìn)一步變換該結(jié)果(例如,Ry = Db(Ry+l) Ky+1)以獲得輸出Ry。在第y輪822處,結(jié)果Ry由線性和/或非線性解密函數(shù) Db變換并且基于與相應(yīng)輪密鑰Ky的逐位XOR被進(jìn)一步變換(例如,De化=Db(Ry) Ky)以
15獲得經(jīng)白化的數(shù)據(jù)分塊D_821。隨后,使用可逆的操作(例如,模加/模減,逐位XOR等) 將經(jīng)白化的數(shù)據(jù)分塊Deft與來自地址加密階段803的結(jié)果Ri (例如,經(jīng)加密地址)相組合以獲得明文數(shù)據(jù)分塊P 820。在各種實(shí)現(xiàn)中,密鑰排程和地址加密階段803以及數(shù)據(jù)解密階段805的輪次的數(shù)目可以相同或不同。在數(shù)據(jù)解密階段805中使用的解密函數(shù)Db可被選擇成撤銷由在數(shù)據(jù)加密階段305(圖幻中使用的加密函數(shù)&所作的加密。例如,解密函數(shù)Db可以是加密函數(shù) &變換的逆變換。圖9是解說配置成解密密文數(shù)據(jù)的分塊密碼術(shù)設(shè)備的功能性組件的框圖。分塊密碼術(shù)設(shè)備902可包括地址加密模塊912,其根據(jù)變換或加密函數(shù)以及由輪密鑰生成器916提供的密鑰來變換和/或加密存儲(chǔ)器地址906。注意,存儲(chǔ)器地址906可以是從存儲(chǔ)器設(shè)備 926中取回密文數(shù)據(jù)924的位置。輪密鑰生成器916可被配置成基于機(jī)密密鑰908來生成一個(gè)或更多個(gè)輪密鑰。密鑰排程模塊914也可基于地址變換模塊912的結(jié)果生成一個(gè)或更多個(gè)數(shù)據(jù)密鑰。該一個(gè)或更多個(gè)數(shù)據(jù)密鑰可被存儲(chǔ)在數(shù)據(jù)密鑰存儲(chǔ)922模塊中??稍诙鄠€(gè)輪次中通過在每一輪中使用來自輪密鑰生成器916的不同輪密鑰來迭代地執(zhí)行地址加密和數(shù)據(jù)排程功能。并發(fā)地或并行地,密文數(shù)據(jù)擬4可由數(shù)據(jù)解密模塊920在一輪或更多輪中通過使用來自數(shù)據(jù)密鑰存儲(chǔ)922的存儲(chǔ)著的數(shù)據(jù)密鑰和/或變換或解密函數(shù)來迭代地變換或解密以產(chǎn)生經(jīng)白化的明文數(shù)據(jù)。在多個(gè)解密輪之后,組合器918可使用可逆的操作(例如,模加/模減,逐位XOR等)將數(shù)據(jù)解密模塊920的最后結(jié)果(經(jīng)白化的明文數(shù)據(jù))與地址加密模塊912的最后結(jié)果相組合以獲得明文數(shù)據(jù)904。注意,在地址加密模塊912中,存儲(chǔ)器地址可如由分塊密碼術(shù)設(shè)備在加密模式中所作的那樣被加密。例如,地址加密模塊912可包括如圖5中所解說的多個(gè)替換-置換密碼術(shù)輪。圖10是解說密文數(shù)據(jù)解密或逆變換模塊的一個(gè)示例的框圖。例如,此密文數(shù)據(jù)解密或逆變換模塊1002可作為數(shù)據(jù)解密模塊920(圖9)的一部分被包括。密鑰混合模塊 1012可在輸入密文1014與相應(yīng)的密碼術(shù)輪密鑰之間執(zhí)行逐位XOR運(yùn)算。用于數(shù)據(jù)解密階段的密碼術(shù)輪密鑰可以從存儲(chǔ)器地址加密階段推導(dǎo)。來自密鑰混合模塊1012的結(jié)果隨后由線性逆變換模塊1010(例如,AESMDS映射)來變換。來自線性逆變換模塊1010的結(jié)果隨后由數(shù)據(jù)分段模塊1009分段成多個(gè)8位數(shù)據(jù)片段。隨后使該多個(gè)8位數(shù)據(jù)片段通過替換盒1008(例如,AES 8X8替換盒)。替換盒1008可逆反數(shù)據(jù)加密替換盒608 (圖6)的那些替換盒。數(shù)據(jù)組合器模塊1006可組合來自替換盒1008的結(jié)果得到的輸出以產(chǎn)生輸出白化明文數(shù)據(jù)。此過程可通過對(duì)每一輪使用不同的輪密鑰來重復(fù)多次。數(shù)據(jù)加密階段1002的最末密碼術(shù)輪的結(jié)果是經(jīng)白化的明文數(shù)據(jù)。隨后,由逐位XOR模塊1005將經(jīng)白化的明文數(shù)據(jù)與經(jīng)加密存儲(chǔ)器地址1003相組合以產(chǎn)生輸出明文數(shù)據(jù)1004。注意,經(jīng)加密存儲(chǔ)器地址 1003可對(duì)應(yīng)于從中取回此輸入密文數(shù)據(jù)1014的存儲(chǔ)器地址。圖11解說用于通過使用在解密經(jīng)加密數(shù)據(jù)的同時(shí)并發(fā)地加密存儲(chǔ)器地址以減少分塊密碼術(shù)的等待時(shí)間的分塊密碼術(shù)來解密經(jīng)加密數(shù)據(jù)的方法。獲得關(guān)于要被取回的經(jīng)加密數(shù)據(jù)的存儲(chǔ)器地址1102。該存儲(chǔ)器地址在第一多個(gè)分塊密碼術(shù)輪中被加密以獲得經(jīng)加密存儲(chǔ)器地址1104。這樣的地址加密可利用基于機(jī)密密鑰生成的多個(gè)輪密鑰。補(bǔ)充地,加密
16存儲(chǔ)器地址可包括(a)將經(jīng)變換的存儲(chǔ)器地址與輪密鑰混合,(b)根據(jù)第一變換函數(shù)變換存儲(chǔ)器地址,(C)將存儲(chǔ)器地址分段,和/或(d)對(duì)不同的存儲(chǔ)器地址片段執(zhí)行位替換。數(shù)據(jù)輪密鑰也可通過使用來自第一多個(gè)分塊密碼術(shù)輪中的一輪或更多輪的信息來生成1106。即,來自第一多個(gè)分塊密碼術(shù)輪中的至少一些輪的經(jīng)部分加密的存儲(chǔ)器地址可被用來生成這些數(shù)據(jù)輪密鑰。例如,生成數(shù)據(jù)輪密鑰可包括(a)從關(guān)于第一多個(gè)分塊密碼術(shù)輪中的至少一些輪的經(jīng)加密存儲(chǔ)器地址提取多個(gè)位,(b)從提取出的多個(gè)位的片段選擇這些數(shù)據(jù)輪密鑰,和/或(c)將提取出的多個(gè)位級(jí)聯(lián)到串中,這些數(shù)據(jù)輪密鑰從該串中選擇。經(jīng)加密數(shù)據(jù)可從存儲(chǔ)器地址取回1108并且在第二多個(gè)分塊密碼術(shù)輪中通過使用這些數(shù)據(jù)輪密鑰來解密以獲得經(jīng)部分解密的數(shù)據(jù)1110。用于第二多個(gè)分塊密碼術(shù)輪中較早輪次的數(shù)據(jù)輪密鑰可使用來自源于第一多個(gè)分塊密碼術(shù)輪中那些較早輪次得到的經(jīng)加密存儲(chǔ)器地址的位來生成。在一個(gè)示例中,解密經(jīng)加密數(shù)據(jù)可包括(a)將變換后的經(jīng)加密數(shù)據(jù)與這些數(shù)據(jù)輪密鑰中的一個(gè)或更多個(gè)混合,(b)根據(jù)第二逆變換函數(shù)來變換經(jīng)加密數(shù)據(jù), (c)將經(jīng)加密數(shù)據(jù)分段成多個(gè)經(jīng)加密數(shù)據(jù)片段,和/或(d)對(duì)不同的經(jīng)加密數(shù)據(jù)片段執(zhí)行位替換??蓪⒔?jīng)部分解密的數(shù)據(jù)與經(jīng)加密存儲(chǔ)器地址相組合以獲得完全解密的數(shù)據(jù)1112。 在一個(gè)示例中,藉由可逆的操作(例如,逐位XOR運(yùn)算)使經(jīng)部分解密的數(shù)據(jù)與經(jīng)加密存儲(chǔ)器地址相組合。第一多個(gè)分塊密碼術(shù)輪可與第二多個(gè)分塊密碼術(shù)輪并發(fā)地執(zhí)行,藉此加速解密過程。另外,第二多個(gè)分塊密碼術(shù)輪可以多于第一多個(gè)分塊密碼術(shù)輪。用于分塊密碼術(shù)的高效率密鑰排程根據(jù)一個(gè)特征,可執(zhí)行密鑰排程從而高效率地加密和解密數(shù)據(jù)。在地址加密階段期間,多個(gè)密碼術(shù)輪可被迭代地執(zhí)行以加密存儲(chǔ)器地址,其中存儲(chǔ)器地址是數(shù)據(jù)要被存儲(chǔ)或者要從中取回?cái)?shù)據(jù)的位置。每個(gè)密碼術(shù)輪產(chǎn)生經(jīng)加密存儲(chǔ)器地址。由這些密碼術(shù)輪中的一輪或更多輪產(chǎn)生的經(jīng)加密存儲(chǔ)器地址可被(完全或部分地)用來生成數(shù)據(jù)加密/解密階段輪密鑰。圖12是解說如何可基于來自分塊密碼術(shù)的地址加密輪的結(jié)果來生成用于數(shù)據(jù)加密和解密輪的輪密鑰的示例的框圖。當(dāng)分塊密碼術(shù)在加密數(shù)據(jù)時(shí),基于地址加密階段1202 的結(jié)果來生成數(shù)據(jù)輪密鑰。地址加密階段1202的較早輪次(例如,Rl 1206、R2 1208···) 的結(jié)果被用來生成要在數(shù)據(jù)加密階段1204中使用的較晚數(shù)據(jù)加密輪密鑰(密鑰E6 1212、 密鑰E5 1214···) ο類似地,地址加密階段1202的較晚輪次(例如,R3 1210…)的結(jié)果被用來生成較早數(shù)據(jù)加密輪密鑰(密鑰El 1222、密鑰E2 122(l···)。類似地,當(dāng)分塊密碼術(shù)在解密數(shù)據(jù)時(shí),基于地址加密階段1202的結(jié)果來生成數(shù)據(jù)輪密鑰。地址加密階段1202的較早輪次(例如,Rl 1206、R2 1208···)的結(jié)果被用來生成要在數(shù)據(jù)解密階段12M中使用的較早數(shù)據(jù)加密輪密鑰(密鑰Dl 1226、密鑰D2 12 …)。 類似地,地址加密階段1202的較晚輪次(例如,R3 1210…)的結(jié)果被用來生成較晚數(shù)據(jù)解密輪密鑰(密鑰D6 1236、密鑰-D5 1234…)。因此,這允許數(shù)據(jù)解密階段12M與地址加密階段1202并發(fā)地(例如,在時(shí)間段上交迭或者并行地)執(zhí)行,從而更高效率地解密數(shù)據(jù)。注意到在各種實(shí)現(xiàn)中,地址加密階段、數(shù)據(jù)加密階段1204和/或數(shù)據(jù)解密階段 12M的密碼術(shù)輪的數(shù)目可以多于或少于此示例中所示的那些數(shù)目。補(bǔ)充地,根據(jù)一個(gè)可隨意任選的特征,可為明文數(shù)據(jù)的白化操作保留地址加密階段1202的最末輪(例如,R4 1211)的結(jié)果的至少某個(gè)部分。因此,地址加密階段1202的該最末輪(例如,R4 1211)的這個(gè)結(jié)果不可被用于數(shù)據(jù)輪密鑰生成。在一些實(shí)現(xiàn)中,數(shù)據(jù)加密輪密鑰(或數(shù)據(jù)解密輪密鑰)可基于來自地址加密階段 1202的一個(gè)或更多個(gè)結(jié)果(例如,Rl 1206、R2 1208···)的位的子集。例如,密鑰El 1222 可基于來自R3 1210的位的子集,而密鑰E2可基于來自R2 1208和R3 1210兩者的位的子集。注意,由于存儲(chǔ)器地址由分塊密碼術(shù)用來生成用于數(shù)據(jù)加密/解密階段 1204/1224的加密/解密密鑰,因而這意味著對(duì)于每個(gè)存儲(chǔ)器地址而言,明文/密文的分塊密碼術(shù)變換將是不同的,從而嚴(yán)格地約束對(duì)密碼術(shù)分析可用的資源并且增加了分塊密碼術(shù)的安全性。應(yīng)注意,較早的輪次未必要與較晚的輪次具有相同的分塊大小。例如,存儲(chǔ)器要以32位的分塊來加密而地址可能大于32位是相當(dāng)可能的。經(jīng)由這些第一輪次中的并行化可獲得效率增益。根據(jù)分塊密碼術(shù)的一個(gè)示例,數(shù)據(jù)加密/解密可以是字節(jié)可尋址存儲(chǔ)器。具體而言,執(zhí)行分塊密碼術(shù)的處理器的字(數(shù)據(jù)分塊)是32位,并且地址也是32位。來自地址加密階段的結(jié)果的最后32位可被用作白化密鑰。來自地址加密結(jié)果(例如,經(jīng)加密存儲(chǔ)器地址)的其余位可被級(jí)聯(lián)到用于數(shù)據(jù)加密輪密鑰的集合S中。可為每一數(shù)據(jù)加密輪η(例如, 對(duì)于η = 0…5)選擇32位長的數(shù)據(jù)加密輪密鑰,以使得加密輪密鑰(密鑰-En)=集合S 的位32*(5-η)到32*(5-η)+31。反之,可為每一數(shù)據(jù)解密輪η(例如,對(duì)于η = 0…5)選擇 32位長的數(shù)據(jù)解密輪密鑰,以使得解密輪密鑰(密鑰-Dn)=集合S的位32*η到32*η+31。圖13是解說可被配置成執(zhí)行高效率的分塊密碼術(shù)加密和解密的設(shè)備的框圖。處理電路1302可耦合至存儲(chǔ)器設(shè)備1306。處理電路1302可向/從存儲(chǔ)器設(shè)備1306寫和讀數(shù)據(jù)。處理電路1302可被配置成執(zhí)行分塊密碼術(shù)1304,該分塊密碼術(shù)1304加密要被存儲(chǔ)到存儲(chǔ)器設(shè)備1306的數(shù)據(jù)/解密要從存儲(chǔ)器設(shè)備1306取回的數(shù)據(jù)。這樣的加密和解密可基于數(shù)據(jù)被寫入或者從中讀取數(shù)據(jù)的實(shí)際存儲(chǔ)器地址。例如,分塊密碼術(shù)1304可執(zhí)行圖 1-12中描述的操作中的一個(gè)或更多個(gè)。應(yīng)認(rèn)識(shí)到,一般而言,本公開中所描述的絕大多數(shù)處理可以用類似的方式來實(shí)現(xiàn)。 (諸)電路或電路工段中的任何哪個(gè)可單獨(dú)或組合實(shí)現(xiàn)為具有一個(gè)或更多個(gè)處理器的集成電路的一部分。這些電路中的一個(gè)或更多個(gè)可以在集成電路、先進(jìn)RISC機(jī)(ARM)處理器、 數(shù)字信號(hào)處理器(DSP)、通用處理器等上實(shí)現(xiàn)。還應(yīng)注意,這些實(shí)施例可能是作為被描繪為流程圖、流圖、結(jié)構(gòu)圖、或框圖的過程來描述的。盡管流程圖可能會(huì)把諸操作描述為順序過程,但是這些操作中有許多能夠并行或并發(fā)執(zhí)行。另外,這些操作的次序可以被重新安排。過程在其操作完成時(shí)終止。過程可以對(duì)應(yīng)于方法、函數(shù)、規(guī)程、子例程、子程序等。當(dāng)過程對(duì)應(yīng)于函數(shù)時(shí),其終止對(duì)應(yīng)于該函數(shù)返回到調(diào)用方函數(shù)或主函數(shù)。如在本申請(qǐng)中所使用的,術(shù)語“組件”、“模塊”、“系統(tǒng)”等旨在指示計(jì)算機(jī)相關(guān)實(shí)體,任其是硬件、固件、軟硬件組合、軟件,還是執(zhí)行中的軟件。例如,組件可以是但不被限定于在處理器上運(yùn)行的進(jìn)程、處理器、對(duì)象、可執(zhí)行件、執(zhí)行的線程、程序、和/或計(jì)算機(jī)。作為解說,在計(jì)算設(shè)備上運(yùn)行的應(yīng)用和該計(jì)算設(shè)備兩者皆可以是組件。一個(gè)或更多個(gè)組件可駐留在進(jìn)程和/或執(zhí)行的線程中,且組件可以局部化在一臺(tái)計(jì)算機(jī)上和/或分布在兩臺(tái)或更多臺(tái)計(jì)算機(jī)之間。此外,這些組件能從其上存儲(chǔ)著各種數(shù)據(jù)結(jié)構(gòu)的各種計(jì)算機(jī)可讀介質(zhì)來執(zhí)行。各組件可借助于本地和/或遠(yuǎn)程來通信,諸如根據(jù)具有一個(gè)或更多個(gè)數(shù)據(jù)分組的信號(hào)(例如,來自借助于該信號(hào)與本地系統(tǒng)、分布式系統(tǒng)中的另一組件交互、和/或跨諸如因特網(wǎng)等網(wǎng)絡(luò)上與其它系統(tǒng)交互的一個(gè)組件的數(shù)據(jù))。不僅如此,存儲(chǔ)介質(zhì)可以代表用于存儲(chǔ)數(shù)據(jù)的一個(gè)或更多個(gè)設(shè)備,包括只讀存儲(chǔ)器(ROM)、隨機(jī)存取存儲(chǔ)器(RAM)、磁盤存儲(chǔ)介質(zhì)、光學(xué)存儲(chǔ)介質(zhì)、閃存設(shè)備、和/或其他用于存儲(chǔ)信息的機(jī)器可讀介質(zhì)。術(shù)語“機(jī)器可讀介質(zhì)”包括,但不被限定于,便攜或固定的存儲(chǔ)設(shè)備、光學(xué)存儲(chǔ)設(shè)備、無線信道以及能夠存儲(chǔ)、包含或承載指令和/或數(shù)據(jù)的各種其它介質(zhì)。此外,諸實(shí)施例可以由硬件、軟件、固件、中間件、微代碼、或其任何組合來實(shí)現(xiàn)。當(dāng)在軟件、固件、中間件或微碼中實(shí)現(xiàn)時(shí),執(zhí)行必要任務(wù)的程序代碼或代碼段可被存儲(chǔ)在諸如存儲(chǔ)介質(zhì)或其它存儲(chǔ)之類的機(jī)器可讀介質(zhì)中。處理器可以執(zhí)行這些必要的任務(wù)。代碼段可表示規(guī)程、函數(shù)、子程序、程序、例程、子例程、模塊、軟件包、類,或是指令、數(shù)據(jù)結(jié)構(gòu)、或程序語句的任何組合。通過傳遞和/或接收信息、數(shù)據(jù)、自變量、參數(shù)、或存儲(chǔ)器內(nèi)容,一代碼段可被耦合到另一代碼段或硬件電路。信息、自變量、參數(shù)、數(shù)據(jù)等可以經(jīng)由包括存儲(chǔ)器共享、 消息傳遞、令牌傳遞、網(wǎng)絡(luò)傳輸?shù)热魏魏线m的手段被傳遞、轉(zhuǎn)發(fā)、或傳輸。圖1、2、3、4、5、6、7、8、9、10、11、12、和/或13中解說的組件、步驟、和/或功能之中的一個(gè)或更多個(gè)可以被重新安排和/或組合成單個(gè)組件、步驟、或功能,或可以實(shí)施在數(shù)個(gè)組件、步驟、或功能中。也可以添加更多的元件、組件、步驟、和/或功能。圖3、4、8、9和 /或13中解說的裝置、設(shè)備、和/或組件可被配置成執(zhí)行圖1、2、5、6、7、10、11和/或12中描述的方法、特征、或步驟中的一個(gè)或更多個(gè)。本文中描述的新穎算法可以在軟件和/或嵌入式硬件中高效率地實(shí)現(xiàn)。本領(lǐng)域技術(shù)人員將可進(jìn)一步領(lǐng)會(huì),結(jié)合本文中公開的實(shí)施例描述的各種解說性邏輯框、模塊、電路、和算法步驟可被實(shí)現(xiàn)為電子硬件、計(jì)算機(jī)軟件、或兩者的組合。為清楚地解說硬件和軟件的這種可互換性,各種解說性組件、塊、模塊、電路、和步驟在上文中以其功能性的形式進(jìn)行了一般化描述。這樣的功能性是實(shí)現(xiàn)成硬件還是軟件取決于具體應(yīng)用和加諸整體系統(tǒng)上的設(shè)計(jì)約束。這些實(shí)施例的描述旨在解說,而并非旨在限定權(quán)利要求的范圍。由此,本發(fā)明的教導(dǎo)能現(xiàn)成地應(yīng)用于其他類型的裝置,并且許多替換、改動(dòng)、和變形對(duì)于本領(lǐng)域技術(shù)人員將是明顯的。
權(quán)利要求
1.一種加密數(shù)據(jù)以供存儲(chǔ)在存儲(chǔ)器地址中的方法,包括 在第一多個(gè)分塊密碼術(shù)輪中加密所述存儲(chǔ)器地址;使用來自所述第一多個(gè)分塊密碼術(shù)輪中的一輪或更多輪的信息來生成數(shù)據(jù)輪密鑰; 在所述第一多個(gè)分塊密碼術(shù)輪之后將所述數(shù)據(jù)與經(jīng)加密的存儲(chǔ)器地址相組合;以及在第二多個(gè)分塊密碼術(shù)輪中使用所述數(shù)據(jù)輪密鑰來加密所述數(shù)據(jù)。
2.如權(quán)利要求1所述的方法,其特征在于,加密所述存儲(chǔ)器地址是在所述數(shù)據(jù)可用之前開始的。
3.如權(quán)利要求1所述的方法,其特征在于,加密所述存儲(chǔ)器地址包括 根據(jù)第一變換函數(shù)變換所述存儲(chǔ)器地址;以及將經(jīng)變換的存儲(chǔ)器地址與輪密鑰混合。
4.如權(quán)利要求3所述的方法,其特征在于,加密所述存儲(chǔ)器地址還包括 將所述存儲(chǔ)器地址分段;以及對(duì)不同的存儲(chǔ)器地址片段執(zhí)行位替換。
5.如權(quán)利要求1所述的方法,其特征在于,生成所述數(shù)據(jù)輪密鑰包括從關(guān)于所述第一多個(gè)分塊密碼術(shù)輪中的至少一些輪的經(jīng)加密存儲(chǔ)器地址提取多個(gè)位;以及從所提取出的多個(gè)位的片段選擇所述數(shù)據(jù)輪密鑰。
6.如權(quán)利要求5所述的方法,其特征在于,生成所述數(shù)據(jù)輪密鑰包括 將所提取出的多個(gè)位級(jí)聯(lián)到串中,所述數(shù)據(jù)輪密鑰從所述串中選擇。
7.如權(quán)利要求5所述的方法,其特征在于,用于所述第二多個(gè)分塊密碼術(shù)輪中較早輪次的數(shù)據(jù)輪密鑰是使用來自源于所述第一多個(gè)分塊密碼術(shù)輪中較晚輪次的經(jīng)加密存儲(chǔ)器地址的位來生成的。
8.如權(quán)利要求1所述的方法,其特征在于,所述數(shù)據(jù)是藉由可逆的操作來與所述經(jīng)加密存儲(chǔ)器地址相組合的。
9.如權(quán)利要求1所述的方法,其特征在于,加密所述數(shù)據(jù)包括 根據(jù)第二變換函數(shù)變換所述數(shù)據(jù);以及將經(jīng)變換的數(shù)據(jù)與所述數(shù)據(jù)輪密鑰中的一個(gè)或更多個(gè)混合。
10.如權(quán)利要求1所述的方法,其特征在于,加密所述數(shù)據(jù)還包括 將所述數(shù)據(jù)分段成多個(gè)數(shù)據(jù)片段;以及對(duì)不同的數(shù)據(jù)分段執(zhí)行位替換。
11.如權(quán)利要求1所述的方法,其特征在于,所述第二多個(gè)分塊密碼術(shù)輪多于所述第一多個(gè)分塊密碼術(shù)輪。
12.如權(quán)利要求1所述的方法,其特征在于,所述存儲(chǔ)器地址在所述第一多個(gè)分塊密碼術(shù)輪上被迭代地加密,并且所述數(shù)據(jù)在所述第二多個(gè)分塊密碼術(shù)輪上被迭代地加密。
13.如權(quán)利要求1所述的方法,其特征在于,還包括 將經(jīng)加密的數(shù)據(jù)存儲(chǔ)在所述存儲(chǔ)器地址中。
14.一種分塊密碼術(shù)設(shè)備,包括地址加密模塊,用于在第一多個(gè)分塊密碼術(shù)輪中加密存儲(chǔ)器地址; 密鑰排程模塊,用于使用來自所述第一多個(gè)分塊密碼術(shù)輪中的一輪或更多輪的信息來生成數(shù)據(jù)輪密鑰;組合器,用于在所述第一多個(gè)分塊密碼術(shù)輪之后將數(shù)據(jù)與經(jīng)加密的存儲(chǔ)器地址相組合;以及數(shù)據(jù)加密模塊,用于在第二多個(gè)分塊密碼術(shù)輪中使用所述數(shù)據(jù)輪密鑰來加密所述數(shù)據(jù)。
15.如權(quán)利要求14所述的設(shè)備,其特征在于,加密所述存儲(chǔ)器地址是在所述數(shù)據(jù)可用之前開始的。
16.如權(quán)利要求14所述的設(shè)備,其特征在于,所述地址加密模塊還被配置成 根據(jù)第一變換函數(shù)變換所述存儲(chǔ)器地址;以及將經(jīng)變換的存儲(chǔ)器地址與輪密鑰混合。
17.如權(quán)利要求14所述的設(shè)備,其特征在于,所述地址加密模塊還被配置成 將所述存儲(chǔ)器地址分段;以及對(duì)不同的存儲(chǔ)器地址片段執(zhí)行位替換。
18.如權(quán)利要求14所述的設(shè)備,其特征在于,所述密鑰排程模塊還被配置成從關(guān)于所述第一多個(gè)分塊密碼術(shù)輪中的至少一些輪的經(jīng)加密存儲(chǔ)器地址提取多個(gè)位;以及從所提取出的多個(gè)位的片段選擇所述數(shù)據(jù)輪密鑰。
19.如權(quán)利要求18所述的設(shè)備,其特征在于,所述密鑰排程模塊還被配置成 將所提取出的多個(gè)位級(jí)聯(lián)到串中,所述數(shù)據(jù)輪密鑰從所述串中選擇。
20.如權(quán)利要求18所述的設(shè)備,其特征在于,用于所述第二多個(gè)分塊密碼術(shù)輪中較早輪次的所述數(shù)據(jù)輪密鑰是使用來自源于所述第一多個(gè)分塊密碼術(shù)輪中較晚輪次的經(jīng)加密存儲(chǔ)器地址的位來生成的。
21.如權(quán)利要求14所述的設(shè)備,其特征在于,所述數(shù)據(jù)是藉由可逆的操作來與所述經(jīng)加密存儲(chǔ)器地址相組合的。
22.如權(quán)利要求14所述的設(shè)備,其特征在于,所述數(shù)據(jù)加密模塊還被配置成 根據(jù)第二變換函數(shù)變換所述數(shù)據(jù);以及將經(jīng)變換的數(shù)據(jù)與所述數(shù)據(jù)輪密鑰中的一個(gè)或更多個(gè)混合。
23.如權(quán)利要求14所述的設(shè)備,其特征在于,所述數(shù)據(jù)加密模塊還被配置成 將所述數(shù)據(jù)分段成多個(gè)數(shù)據(jù)片段;以及對(duì)不同的數(shù)據(jù)片段執(zhí)行位替換。
24.如權(quán)利要求14所述的設(shè)備,其特征在于,所述第二多個(gè)分塊密碼術(shù)輪多于所述第一多個(gè)分塊密碼術(shù)輪。
25.如權(quán)利要求14所述的設(shè)備,其特征在于,所述存儲(chǔ)器地址在所述第一多個(gè)分塊密碼術(shù)輪上被迭代地加密,并且所述數(shù)據(jù)在所述第二多個(gè)分塊密碼術(shù)輪上被迭代地加密。
26.—種分塊密碼術(shù)設(shè)備,包括用于在第一多個(gè)分塊密碼術(shù)輪中加密存儲(chǔ)器地址的裝置;用于使用來自所述第一多個(gè)分塊密碼術(shù)輪中的一輪或更多輪的信息來生成數(shù)據(jù)輪密鑰的裝置;用于在所述第一多個(gè)分塊密碼術(shù)輪之后將數(shù)據(jù)與經(jīng)加密的存儲(chǔ)器地址相組合的裝置;以及用于在第二多個(gè)分塊密碼術(shù)輪中使用所述數(shù)據(jù)輪密鑰來加密所述數(shù)據(jù)的裝置。
27.一種包括處理電路的處理器,所述處理電路被適配成 在第一多個(gè)分塊密碼術(shù)輪中加密存儲(chǔ)器地址;使用來自所述第一多個(gè)分塊密碼術(shù)輪中的一輪或更多輪的信息來生成數(shù)據(jù)輪密鑰; 在所述第一多個(gè)分塊密碼術(shù)輪之后將數(shù)據(jù)與經(jīng)加密的存儲(chǔ)器地址相組合;以及在第二多個(gè)分塊密碼術(shù)輪中使用所述數(shù)據(jù)輪密鑰來加密所述數(shù)據(jù)。
28.—種包括用于分塊密碼術(shù)加密的指令的機(jī)器可讀介質(zhì),所述指令在由一個(gè)或更多個(gè)處理器執(zhí)行時(shí)使所述處理器在第一多個(gè)分塊密碼術(shù)輪中加密存儲(chǔ)器地址;使用來自所述第一多個(gè)分塊密碼術(shù)輪中的一輪或更多輪的信息來生成數(shù)據(jù)輪密鑰; 在所述第一多個(gè)分塊密碼術(shù)輪之后將數(shù)據(jù)與經(jīng)加密的存儲(chǔ)器地址相組合;以及在第二多個(gè)分塊密碼術(shù)輪中使用所述數(shù)據(jù)輪密鑰來加密所述數(shù)據(jù)。
29.一種解密從存儲(chǔ)器地址取回的數(shù)據(jù)的方法,包括在第一多個(gè)分塊密碼術(shù)輪中加密所述存儲(chǔ)器地址以獲得經(jīng)加密存儲(chǔ)器地址; 使用來自所述第一多個(gè)分塊密碼術(shù)輪中的一輪或更多輪的信息來生成數(shù)據(jù)輪密鑰; 在第二多個(gè)分塊密碼術(shù)輪中使用所述數(shù)據(jù)輪密鑰來解密經(jīng)加密數(shù)據(jù)以獲得經(jīng)部分解密的數(shù)據(jù);以及將所述經(jīng)部分解密的數(shù)據(jù)與所述經(jīng)加密存儲(chǔ)器地址相組合以獲得完全解密的數(shù)據(jù)。
30.如權(quán)利要求四所述的方法,其特征在于,加密所述存儲(chǔ)器地址是在所述數(shù)據(jù)可用之前開始的。
31.如權(quán)利要求四所述的方法,其特征在于,還包括 從所述存儲(chǔ)器地址取回所述經(jīng)加密數(shù)據(jù)。
32.如權(quán)利要求四所述的方法,其特征在于,加密所述存儲(chǔ)器地址包括 根據(jù)第一變換函數(shù)變換所述存儲(chǔ)器地址;以及將經(jīng)變換的存儲(chǔ)器地址與輪密鑰混合。
33.如權(quán)利要求32所述的方法,其特征在于,加密所述存儲(chǔ)器地址還包括 將所述存儲(chǔ)器地址分段;以及對(duì)不同的存儲(chǔ)器地址片段執(zhí)行位替換。
34.如權(quán)利要求四所述的方法,其特征在于,生成所述數(shù)據(jù)輪密鑰包括從關(guān)于所述第一多個(gè)分塊密碼術(shù)輪中的至少一些輪的經(jīng)加密存儲(chǔ)器地址提取多個(gè)位;以及從所提取出的多個(gè)位的片段選擇所述數(shù)據(jù)輪密鑰。
35.如權(quán)利要求34所述的方法,其特征在于,生成所述數(shù)據(jù)輪密鑰包括 將所提取出的多個(gè)位級(jí)聯(lián)到串中,所述數(shù)據(jù)輪密鑰從所述串中選擇。
36.如權(quán)利要求34所述的方法,其特征在于,用于所述第二多個(gè)分塊密碼術(shù)輪中較早輪次的數(shù)據(jù)輪密鑰是使用來自源于所述第一多個(gè)分塊密碼術(shù)輪中較早輪次的經(jīng)加密存儲(chǔ)器地址的位來生成的。
37.如權(quán)利要求四所述的方法,其特征在于,所述經(jīng)部分解密的數(shù)據(jù)是藉由可逆的操作來與所述經(jīng)加密存儲(chǔ)器地址相組合的。
38.如權(quán)利要求四所述的方法,其特征在于,解密所述經(jīng)加密數(shù)據(jù)包括根據(jù)第二逆變換函數(shù)變換所述經(jīng)加密數(shù)據(jù);以及將變換后的經(jīng)加密數(shù)據(jù)與所述數(shù)據(jù)輪密鑰中的一個(gè)或更多個(gè)混合。
39.如權(quán)利要求四所述的方法,其特征在于,加密所述數(shù)據(jù)還包括將所述經(jīng)加密數(shù)據(jù)分段成多個(gè)經(jīng)加密數(shù)據(jù)片段;以及對(duì)不同的經(jīng)加密數(shù)據(jù)片段執(zhí)行位替換。
40.如權(quán)利要求四所述的方法,其特征在于,所述第二多個(gè)分塊密碼術(shù)輪多于所述第一多個(gè)分塊密碼術(shù)輪。
41.如權(quán)利要求四所述的方法,其特征在于,所述第一多個(gè)分塊密碼術(shù)輪是與所述第二多個(gè)分塊密碼術(shù)輪并發(fā)地執(zhí)行的。
42.一種分塊密碼術(shù)設(shè)備,包括地址加密模塊,用于在第一多個(gè)分塊密碼術(shù)輪中加密存儲(chǔ)器地址以獲得經(jīng)加密存儲(chǔ)器地址;密鑰排程模塊,用于使用來自所述第一多個(gè)分塊密碼術(shù)輪中的一輪或更多輪的信息來生成數(shù)據(jù)輪密鑰;數(shù)據(jù)解密模塊,用于在第二多個(gè)分塊密碼術(shù)輪中使用所述數(shù)據(jù)輪密鑰來解密經(jīng)加密數(shù)據(jù)以獲得經(jīng)部分解密的數(shù)據(jù);以及組合器,用于將所述經(jīng)部分解密的數(shù)據(jù)與所述經(jīng)加密存儲(chǔ)器地址相組合以獲得完全解密的數(shù)據(jù)。
43.如權(quán)利要求42所述的設(shè)備,其特征在于,加密所述存儲(chǔ)器地址是在所述數(shù)據(jù)可用之前開始的。
44.如權(quán)利要求42所述的設(shè)備,其特征在于,所述密鑰排程模塊還被配置成從關(guān)于所述第一多個(gè)分塊密碼術(shù)輪中的至少一些輪的經(jīng)加密存儲(chǔ)器地址提取多個(gè)位;以及從所提取出的多個(gè)位的片段選擇所述數(shù)據(jù)輪密鑰。
45.如權(quán)利要求42所述的設(shè)備,其特征在于,用于所述第二多個(gè)分塊密碼術(shù)輪中較早輪次的數(shù)據(jù)輪密鑰是使用來自源于所述第一多個(gè)分塊密碼術(shù)輪中較早輪次的經(jīng)加密存儲(chǔ)器地址的位來生成的。
46.如權(quán)利要求42所述的設(shè)備,其特征在于,所述經(jīng)部分解密的數(shù)據(jù)是藉由可逆的操作來與所述經(jīng)加密存儲(chǔ)器地址相組合的。
47.如權(quán)利要求42所述的設(shè)備,其特征在于,所述第二多個(gè)分塊密碼術(shù)輪多于所述第一多個(gè)分塊密碼術(shù)輪。
48.一種分塊密碼術(shù)設(shè)備,包括用于在第一多個(gè)分塊密碼術(shù)輪中加密存儲(chǔ)器地址以獲得經(jīng)加密存儲(chǔ)器地址的裝置;用于使用來自所述第一多個(gè)分塊密碼術(shù)輪中的一輪或更多輪的信息來生成數(shù)據(jù)輪密鑰的裝置;用于在第二多個(gè)分塊密碼術(shù)輪中使用所述數(shù)據(jù)輪密鑰來解密經(jīng)加密數(shù)據(jù)以獲得經(jīng)部分解密的數(shù)據(jù)的裝置;以及用于將所述經(jīng)部分解密的數(shù)據(jù)與所述經(jīng)加密存儲(chǔ)器地址相組合以獲得完全解密的數(shù)據(jù)的裝置。
49.如權(quán)利要求48所述的設(shè)備,其特征在于,還包括 用于從所述存儲(chǔ)器地址取回所述經(jīng)加密數(shù)據(jù)的裝置。
50.一種包括處理電路的處理器,所述處理電路被適配成在第一多個(gè)分塊密碼術(shù)輪中加密存儲(chǔ)器地址以獲得經(jīng)加密存儲(chǔ)器地址。 使用來自所述第一多個(gè)分塊密碼術(shù)輪中的一輪或更多輪的信息來生成數(shù)據(jù)輪密鑰; 在第二多個(gè)分塊密碼術(shù)輪中使用所述數(shù)據(jù)輪密鑰來解密經(jīng)加密數(shù)據(jù)以獲得經(jīng)部分解密的數(shù)據(jù);以及將所述經(jīng)部分解密的數(shù)據(jù)與所述經(jīng)加密存儲(chǔ)器地址相組合以獲得完全解密的數(shù)據(jù)。
51.一種包括用于分塊密碼術(shù)解密的指令的機(jī)器可讀介質(zhì),所述指令在由一個(gè)或更多個(gè)處理器執(zhí)行時(shí)使所述處理器在第一多個(gè)分塊密碼術(shù)輪中加密所述存儲(chǔ)器地址以獲得經(jīng)加密存儲(chǔ)器地址; 使用來自所述第一多個(gè)分塊密碼術(shù)輪中的一輪或更多輪的信息來生成數(shù)據(jù)輪密鑰; 在第二多個(gè)分塊密碼術(shù)輪中使用所述數(shù)據(jù)輪密鑰來解密經(jīng)加密數(shù)據(jù)以獲得經(jīng)部分解密的數(shù)據(jù);以及將所述經(jīng)部分解密的數(shù)據(jù)與所述經(jīng)加密存儲(chǔ)器地址相組合以獲得完全解密的數(shù)據(jù)。
全文摘要
提供了一種保護(hù)數(shù)據(jù)的分塊密碼術(shù),其通過基于數(shù)據(jù)要被存儲(chǔ)的存儲(chǔ)器地址加密該數(shù)據(jù)來保護(hù)該數(shù)據(jù)。當(dāng)加密數(shù)據(jù)以供存儲(chǔ)在該存儲(chǔ)器地址中時(shí),該存儲(chǔ)器地址在第一多個(gè)分塊密碼術(shù)輪中被加密。使用來自第一多個(gè)分塊密碼術(shù)輪的信息來生成數(shù)據(jù)輪密鑰。把要被存儲(chǔ)的數(shù)據(jù)與經(jīng)加密的存儲(chǔ)器地址相組合并且在第二多個(gè)分塊密碼術(shù)輪中通過使用這些數(shù)據(jù)輪密鑰來加密。經(jīng)加密數(shù)據(jù)隨后存儲(chǔ)在該存儲(chǔ)器位置中。當(dāng)解密數(shù)據(jù)時(shí),存儲(chǔ)器地址如之前那樣被再次加密,而經(jīng)加密的存儲(chǔ)數(shù)據(jù)在第二多個(gè)分塊密碼術(shù)輪中通過使用數(shù)據(jù)輪密鑰來解密以獲得經(jīng)部分解密的數(shù)據(jù)。把經(jīng)部分解密的數(shù)據(jù)與經(jīng)加密的存儲(chǔ)器地址相組合以獲得完全解密的數(shù)據(jù)。
文檔編號(hào)H04L9/06GK102204158SQ200980143933
公開日2011年9月28日 申請(qǐng)日期2009年10月28日 優(yōu)先權(quán)日2008年10月30日
發(fā)明者G·G·羅斯, L·肖, P·M·霍克斯, S·米輪多夫 申請(qǐng)人:高通股份有限公司