欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

消息認證碼預(yù)計算在安全存儲器中的應(yīng)用的制作方法

文檔序號:7736169閱讀:336來源:國知局
專利名稱:消息認證碼預(yù)計算在安全存儲器中的應(yīng)用的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及預(yù)計算認證碼在安全存儲器中應(yīng)用的方法和裝置。
背景技術(shù)
消費產(chǎn)品、商業(yè)產(chǎn)品甚至是軍用設(shè)備日益地變得依賴于計算機系統(tǒng)。當(dāng)產(chǎn)品與計 算設(shè)備結(jié)合時,人們可以設(shè)法利用產(chǎn)品的弱點來免費使用產(chǎn)品或者破壞該產(chǎn)品。在計算世 界中,黑客、侵權(quán)者或者對手試圖利用通過篡改設(shè)備的存儲器來使用計算設(shè)備的產(chǎn)品。典型 地,在保護計算完整性時有兩個主要的安全領(lǐng)域基于軟件和基于硬件?;谲浖陌踩?涉及軟件的完整性。基于硬件的安全性假設(shè)黑客已經(jīng)完全進入計算系統(tǒng)并且可能使用示波 器和邏輯分析儀來觀察計算系統(tǒng)。通過將全部系統(tǒng)集成在芯片上(SoC),芯片上的超大規(guī)模集成電路的發(fā)展已經(jīng)提 供防止篡改的硬件計算系統(tǒng)。因此將整個計算系統(tǒng)集成到芯片上可以阻止對手的攻擊。然 而,在大部分實際方案中,片上存儲器的不足致使該方案無法實現(xiàn)。程序和數(shù)據(jù)必需存儲在 片外存儲器中。這為對手通過篡改片外存儲器來破壞計算設(shè)備打開了道路。對存儲器進行簽名和加密是阻止對手成功篡改片外存儲器的一種方式。消息簽名 類似于校驗和,可以用于驗證一塊存儲器自從上一次讀取以來沒有發(fā)生變化。當(dāng)數(shù)據(jù)寫入 片外存儲器時,產(chǎn)生簽名并連同該數(shù)據(jù)進行存儲。當(dāng)從片外存儲器讀取數(shù)據(jù)時,通過簽名驗 證來確保數(shù)據(jù)沒有發(fā)生變化。產(chǎn)生簽名可能是昂貴的操作。需要使用許多時鐘周期來產(chǎn)生 簽名。因此,產(chǎn)生和校驗存儲器簽名必須高效。消息認證已經(jīng)成為大量研究的一個課題。雖然大部分普通的MAC方案包括對與冗 余數(shù)據(jù)(例如,32個0的字符串)連接的消息上的偽隨機置換(PRP)進行簡單的評估,但是 這種方案沒有給它們自己提供預(yù)計算。MAC計算的另一方法使用通用哈希函數(shù)(UHF)。從UHF獲得MAC的想法首先由 Carter和^fegman提出(Wegman,Carter,新哈希函數(shù)以及它們在認證和集合相等性上的使 用(New Hash Functions and Their Use in Authentication and Set Equality),JCSS, 22 :265,1981). Brassard稍后提出了使用偽隨機發(fā)生器以減小MAC密鑰的大小(Gilles Brassard,請求短秘密共享密鑰的用于計算的安全認證標(biāo)簽(On computationally secure authentication tags requiring short secret shared keys), Crypto, 82,79—86)。才目 應(yīng)的結(jié)構(gòu)如下MAC(m,r) = h(m)X0R F(r),其中h是UHF,以及F是偽隨機發(fā)生器。自此, 大量的研究集中在所使用的函數(shù)h和F的速度和其它方面的提高上。MAC預(yù)計算結(jié)構(gòu)與之前提出的結(jié)構(gòu)不同,同時擁有在利用預(yù)計算的短消息認證中 所特別期望的屬性。

發(fā)明內(nèi)容
在一個實施方式中,一種方法包括以下步驟通過執(zhí)行偽隨機函數(shù)(PRF)和偽隨 機置換(PRP)中的至少一個,從數(shù)據(jù)輸入創(chuàng)建數(shù)據(jù)的隨機置換;通過組合數(shù)據(jù)的隨機置換和所接收的第二數(shù)據(jù)塊以及執(zhí)行£-差分均勻(£_0仏ε -Differentially Uniform)置 換,以創(chuàng)建第一數(shù)據(jù)塊。將ε-DU函數(shù)評估的結(jié)果與密鑰進行異或,并將第一數(shù)據(jù)塊變?yōu)榈?一消息認證碼。在另一個實施方式中,一種系統(tǒng)包括MAC計算機,其中MAC計算機通過執(zhí)行偽隨機 函數(shù)(PRF)和偽隨機置換(PRP)中的至少一個,對來自輸入的數(shù)據(jù)創(chuàng)建數(shù)據(jù)的隨機置換, 其中MAC計算機通過組合數(shù)據(jù)的隨機置換和所接收的第二數(shù)據(jù)塊以及執(zhí)行ε -差分均勻 (ε -DU)置換,以創(chuàng)建第一數(shù)據(jù)塊,其中MAC計算機將ε _DU評估的結(jié)果與密鑰進行異或,以 及其中MAC計算機將第一數(shù)據(jù)塊變?yōu)榈谝幌⒄J證碼。


通過說明書、權(quán)利要求和附圖,本發(fā)明示例實現(xiàn)方式的特征將變得顯著,其中圖1是計算機系統(tǒng)的實例框圖,其中可以具有用于MAC預(yù)計算的裝置和方法;圖2是可以用于使用MAC預(yù)計算來寫入和讀取數(shù)據(jù)的方法的實例;圖3是使用MAC預(yù)計算將數(shù)據(jù)寫入存儲器的方法;圖4是使用MAC預(yù)計算將數(shù)據(jù)從存儲器中讀取并進行認證的方法;圖5是可以包括用于執(zhí)行MAC預(yù)計算裝置的系統(tǒng)的實施方式。
具體實施例方式正如所討論的,計算機安全的弱點區(qū)域是片外存儲器。對手可以改變或者重放包 含在片外存儲器中的信息以破壞計算機系統(tǒng)。一種限制對手的方法是對片外存儲器進行簽 名和加密。計算存儲器上的簽名可能需要產(chǎn)生消息認證碼(MAC)。可利用密鑰和作為輸入 的數(shù)據(jù)或者存儲器的塊來運行MAC算法。MAC算法可以輸出簽名或者MAC。MAC可以是一 個數(shù)值。MAC可以是16比特或者32比特。然而,MAC可以更大或者更小。利用寫入到片外 存儲器的數(shù)據(jù)來計算第一 MAC。將第一 MAC連同數(shù)據(jù)進行存儲。當(dāng)從片外存儲器讀取數(shù)據(jù) 時,從所讀取的數(shù)據(jù)產(chǎn)生第二 MAC。如果第一 MAC與第二 MAC不匹配,系統(tǒng)可以復(fù)位和/或 丟棄該數(shù)據(jù)。轉(zhuǎn)向圖1,圖1是系統(tǒng)100的實例框圖,其中可以具有用于MAC預(yù)計算的裝置和方 法。系統(tǒng)100的主要組件是在片上或者片外的。系統(tǒng)的片外組件是動態(tài)隨機存取存儲器 (DRAM) 115形式的存儲器。DRAM可以存儲由駐留在系統(tǒng)的片上部分的軟件或者程序所使用 的數(shù)據(jù)。盡管在這個實施方式中描述為DRAM,也可使用DRAM、隨機存取存儲器、或者任意其 它存儲器或存儲數(shù)據(jù)的方法來存儲系統(tǒng)100中的片外數(shù)據(jù)。屬于片上的組件可以包括DRAM控制器120、加密認證單元125、總線接口邏輯130、 總線135、中央處理單元140和高速緩存145、以及直接存儲器存取(DMA)引擎150。CPU 140和DMA引擎150可以通過總線135與總線接口邏輯130進行通信??偩€ 接口邏輯130可以與EAU 125通信地耦合。EAU 125可以進一步與DRAM控制器120通信地 耦合。DRAM控制器可以與DRAM 115通信地耦合。CPU 140和DMA 150可以從DRAM 115讀取數(shù)據(jù)或者將數(shù)據(jù)寫入DRAM 115中。當(dāng) CPU 140或DMA 150從DRAM 115讀取數(shù)據(jù)或者將數(shù)據(jù)寫入DRAM 115中時,讀取或者寫入的 數(shù)據(jù)流經(jīng)總線接口邏輯130、EAU125和DRAM控制器120。在讀取和寫入數(shù)據(jù)時,總線接口邏輯130處理所有大小的業(yè)務(wù)。然而,EAU 125只從片外DRAM 115讀取固定大小的數(shù)據(jù)塊 并將固定大小的數(shù)據(jù)塊寫入片外DRAM 115中??梢詫⒐潭ù笮〉膲K稱為加密塊或者數(shù)據(jù) 塊。在一個實施方式中,一個數(shù)據(jù)塊包括256個比特。加密塊可以是從存儲器115讀取數(shù) 據(jù)或者將數(shù)據(jù)寫入存儲器115的最小單元。由于總線接口邏輯130處理所有大小的業(yè)務(wù), EAU 125不得不管理對大于或者小于加密塊的數(shù)據(jù)的讀取或?qū)懭胝埱蟆T谝粋€實施方式中,用于消息認證碼預(yù)計算的方法和系統(tǒng)可以駐留在EAU 125 上。EAU 125可以執(zhí)行對向DRAM 115寫入或者從DRAM 115讀取的數(shù)據(jù)的加密/解密和認 證。在去往DRAM 115的途中可以對寫入業(yè)務(wù)進行加密。在從DRAM 115讀取信息時,可以 對讀取業(yè)務(wù)進行認證和解密。從而,EAU 125向存儲器寫入或者從存儲器讀取的任意數(shù)據(jù) 塊可以包括加密的數(shù)據(jù)。在認證數(shù)據(jù)或存儲器時,EAU 125可以產(chǎn)生用于數(shù)據(jù)塊的第一 MAC,其中EAU 125 將該數(shù)據(jù)塊寫入存儲器。第一 MAC于是與該數(shù)據(jù)塊相關(guān)聯(lián)。當(dāng)從存儲器讀取數(shù)據(jù)塊時,EAU 125可以根據(jù)所讀取的數(shù)據(jù)來產(chǎn)生第二 MAC??梢詫⒌诙?MAC與第一 MAC進行比較。如果 第一 MAC和第二 MAC不匹配,則存儲器可能已經(jīng)被破壞或損壞。如果存儲器被破壞,EAU125 可以執(zhí)行存儲器破壞(corruption)過程。這可能需要使系統(tǒng)復(fù)位,或者發(fā)送消息給CPU以 通知CPU存儲器異常。CPU隨后可以將系統(tǒng)復(fù)位或者采取一些其它的保護動作。具體地,在與存儲器業(yè)務(wù)相關(guān)聯(lián)的數(shù)據(jù)到達之前,EAU 125接收存儲器業(yè)務(wù)的地 址。從而可以在數(shù)據(jù)到達前執(zhí)行包括加密數(shù)據(jù)和產(chǎn)生MAC的大量計算。轉(zhuǎn)向圖2,圖2是用于使用MAC預(yù)計算寫入和讀取數(shù)據(jù)的方法200在安全存儲器中 應(yīng)用的一個實施例。方法200可以駐留在加密認證單元125上。該方法首先處理請求210。 該請求可以是讀取數(shù)據(jù)或?qū)懭霐?shù)據(jù)的請求。該請求可以來自總線接口邏輯130。當(dāng)總線接 口邏輯130發(fā)送讀取數(shù)據(jù)或?qū)懭霐?shù)據(jù)的請求時,總線接口邏輯130可以將地址傳遞給方法 200。如果請求是寫入請求,則地址可以是數(shù)據(jù)將要寫入的地址。如果請求是讀取請求,則 地址是從其中讀取數(shù)據(jù)的地址。方法200隨后確定請求是否是寫入請求215。如果請求是寫入請求,方法200調(diào)用 寫入處理器(handler)220。由于這是個寫入請求,總線接口邏輯130可以將寫入地址傳遞 給方法200。當(dāng)方法200調(diào)用寫入處理器時,方法200可以將地址或者寫入地址傳遞給寫入 處理器。在完成了寫入處理器之后處理請求,方法200繼續(xù)處理請求210。如果輸入的請求不是寫入請求,方法200確定該請求是否是讀取請求225。如果請 求不是讀取請求,方法200返回到處理請求210。如果請求是讀取請求,方法200可以調(diào)用 讀取處理器230。當(dāng)方法200調(diào)用讀取處理器時,方法200可以將地址或者讀取地址傳遞給 讀取處理器。轉(zhuǎn)向圖3,在一個實施例中,一種使用MAC預(yù)計算可以將數(shù)據(jù)寫入DRAM 115的方 法。寫入處理器方法或者寫入處理器300可以駐留在片上以作為EAU 125的一部分。當(dāng) EAU 125接收數(shù)據(jù)時,EAU 125可以產(chǎn)生MAC并且還可以對數(shù)據(jù)進行加密。當(dāng)寫入處理器接 收地址310時該處理開始。地址可以是DRAM 115中的位置,其中假設(shè)EAU 125寫入數(shù)據(jù)。 地址可以是32比特的地址、16比特的地址或者可以用于對DRAM 115進行尋址的任意其它 大小的地址。為了便于說明,我們將假設(shè)地址的長度為32比特。此時,數(shù)據(jù)可能還沒有到 達。
由于地址現(xiàn)在是可用的,MAC計算就可以開始了。方法300不必等到數(shù)據(jù)到來才 開始進行MAC計算。EAU 125可以通過連接208比特的0 (填充)、32比特的地址和16比特 的隨機數(shù)(0、地址、和隨機數(shù))來創(chuàng)建256比特的數(shù)據(jù)塊。256比特的數(shù)據(jù)塊可以是數(shù)據(jù)輸 入。部分計算MAC可以包括使用數(shù)據(jù)輸入來評估PRF或PRP或隨機性。對本領(lǐng)域技術(shù)人員 來說明顯的是,PRF/PRP是理想化的分組密碼,其中密碼導(dǎo)致不能從隨機性中識別出來的比 特圖樣。部分計算MAC還可以包括評估印silon差分均勻(ε-DU)函數(shù)。對本領(lǐng)域技術(shù)人 員來說明顯的是,ε-DU函數(shù)可以是導(dǎo)致隨機比特圖樣的分組密碼。然而,由ε-DU函數(shù)創(chuàng) 建的比特圖樣的隨機性不如由PRP創(chuàng)建的比特圖樣的隨機性好。從而,由ε-DU函數(shù)創(chuàng)建 的比特圖樣可能不如由PRP創(chuàng)建的比特圖樣安全。本領(lǐng)域技術(shù)人員還可以認識到,隨機數(shù) (nonce),或者使用一次的數(shù),即使重復(fù)使用也是很少的數(shù)。在該實施方式中,隨機數(shù)可以是 每次執(zhí)行寫入時增加的計數(shù)器。PRP或者PRF函數(shù)F可以用于創(chuàng)建在對隨機數(shù)、地址和0進行加密時所需要的隨機 水平。方法300可以運行Ri jndaeK或者它是最流行的示例,高級加密標(biāo)準(zhǔn)或AEQF 320。 方法300可以在數(shù)據(jù)輸入(0、地址和隨機數(shù))上運行14次Rijndael以獲得隨機的256比 特。隨機的256比特可以是Rijndael寫入塊或Rijndael塊。例如,隨機值或隨機性可以是 一連串1和0。注意,在一些實施方式中,PRP F可以通過在兩組128比特上運行10次AES 版本的Rijndael來實現(xiàn)。將兩組1 比特進行連接以形成256比特的塊。當(dāng)運行Rijndael 時,方法300選擇隨機密鑰kl。Rijndael算法可以使用密鑰kl作為Rijndael算法的輸入。 隨機或秘密的密鑰是隨機選擇的密鑰。例如,隨機數(shù)發(fā)生器可以用于選擇隨機密鑰。可以 使用隨機發(fā)生的其它形式來選擇隨機密鑰。方法300接收寫入數(shù)據(jù)330。當(dāng)方法300接收寫入數(shù)據(jù)時,方法300可對數(shù)據(jù)進行 加密。方法300可以通過使用AES、或者任意其它對數(shù)據(jù)進行加密的方法對數(shù)據(jù)進行加密。 加密數(shù)據(jù)可以與Rijndael寫入塊335進行異或335。結(jié)果可以是異或的Rijndael寫入塊。 異或的Rijndael寫入塊可以包括256比特。 方法300可以計算ε -DU函數(shù)族的函數(shù)G。方法300可以選擇第二隨機密鑰k2,其 中k2用作ε-DU函數(shù)族的輸入。ε-DU函數(shù)G可以在異或的Rijndael寫入塊上運行;340。 函數(shù)G可以是在異或的Rijndael寫入塊上2次或4次Rijndael的評估,從而結(jié)果是256 比特的G寫入塊。G寫入塊可以與256比特的密鑰k3進行異或345,其結(jié)果是256比特的 M塊。通過使用異或樹,可以將M塊從256比特分解為32比特的MAC或者第一 MAC350。加 密數(shù)據(jù)塊可以存儲在DRAM 360中。32比特的第一 MAC和隨機數(shù)也可以存儲在DRAM 360中 并與加密數(shù)據(jù)塊相關(guān)聯(lián)。因此,當(dāng)需要對加密數(shù)據(jù)進行認證時,可以取回執(zhí)行認證所需的信 息。密鑰kl、k2和k3可以存儲在EAU中。盡管在該實施例中,用于預(yù)計算MAC的方法和裝置用于將數(shù)據(jù)寫入到存儲器中, 但是該方法和裝置還可以用于包括寫入數(shù)據(jù)和發(fā)送數(shù)據(jù)的任意應(yīng)用中。在其它實施方式 中,不使用存儲器地址來預(yù)計算MAC,而是使用其它值來計算MAC。例如,如果該方法和裝置 用在消息應(yīng)用中,可以使用消息上下文識別符來代替地址。此外,地址的大小、隨機數(shù)和其 它變量可以根據(jù)用戶需求和使用該方法的應(yīng)用進行變化。轉(zhuǎn)向圖4,圖4是在一個實施例中可以從DRAM 115讀取數(shù)據(jù)的方法400。在從DRAM 115讀取數(shù)據(jù)的過程中,方法400可以認證數(shù)據(jù)。認證數(shù)據(jù)可能需要根據(jù)所存儲的數(shù)據(jù)產(chǎn)生第二 MAC,并將第二 MAC與初始連同數(shù)據(jù)進行存儲的第一 MAC進行比較。方法400可以從總 線接口邏輯130接收地址或者讀取地址410。方法400可以檢索認證數(shù)據(jù)所需的信息420。該信息可以包括可能駐留在片上的 諸如密鑰kl、k2和k3的信息。此外,該信息可以包括可能駐留在片外的諸如第一 MAC、隨 機數(shù)和駐留在讀取地址上的讀取數(shù)據(jù)的信息。該讀取數(shù)據(jù)可以是加密數(shù)據(jù)。方法400可以如圖3所述的根據(jù)地址、隨機數(shù)和0 (0填充)計算PRPF 430。需要 用密鑰kl來計算PRP F。注意,當(dāng)認證或讀取數(shù)據(jù)時,用于計算PRP F的密鑰kl可以與當(dāng) 寫入數(shù)據(jù)時用于計算PRP F的密鑰kl相同。如上所述,通過關(guān)于隨機數(shù)、地址和208比特 的0運行14次Rijndael來得到PRP F。14次Rijndael的結(jié)果可以是可能是Rijndael塊 的隨機的256比特。還可以通過并行運行的兩個示例來獲得F,其中該示例為10次128比 特AES版本的Ri jndael。在讀取數(shù)據(jù)時,Rijndael塊可能指的是Rijndael讀取塊。在計算G 440時,Rijndael讀取塊可以與讀取數(shù)據(jù)進行異或。結(jié)果可以是異或的 Rijndael塊或異或的Rijndael讀取塊??梢酝ㄟ^在異或的Rijndael讀取塊上運行2次或 4次Rijndael來獲得G。計算G 440的結(jié)果可以是256比特的G塊或G讀取塊。注意,用 于計算G寫入塊的相同密鑰k2可以用于計算G讀取塊。G讀取塊可以與密鑰k3進行異或以得到256比特的M讀取塊。通過異或樹450可 以將M讀取塊變?yōu)闉?2比特的第二 MAC??梢詫⒌诙?MAC與第一 MAC進行比較470?;叵?到第一 MAC是在將數(shù)據(jù)初始寫入DRAMl 15時產(chǎn)生的。如果第一 MAC和第二 MAC不相等,則 數(shù)據(jù)可能已經(jīng)被破壞或損壞。方法400通過執(zhí)行存儲器破壞響應(yīng)程序來處理該失配490。 如果第一 MAC和第二 MAC相等,方法400可以將讀取數(shù)據(jù)返回給總線接口邏輯130。由于 MAC失效可能導(dǎo)致系統(tǒng)復(fù)位,因此還可以先于MAC認證將數(shù)據(jù)傳遞給CPU??梢詫⑺枋龅?方法 300 和 400 稱為淺 MAC (shallow MAC)或者 shMAC。轉(zhuǎn)向圖5,圖5描述了可以包括用于執(zhí)行MAC預(yù)計算的裝置的系統(tǒng)550的實施方 式。系統(tǒng)500可以由總線接口邏輯單元130、DRAM控制器120和EAU 125組成。EAU 125可 以進一步由數(shù)據(jù)處理器530、MAC計算機535和數(shù)據(jù)加密器540組成。MAC計算機535可以 進一步由MAC PRPF計算器545和ε -DU計算器550組成。如上所述,EAU 125可與DRAM控制器120和總線接口邏輯130通信地耦合。DRAM 控制器120和總線接口邏輯130可以與數(shù)據(jù)處理器530通信地耦合。數(shù)據(jù)處理器530可以 是能夠與EAU 125的外部進行數(shù)據(jù)讀取和寫入的節(jié)點或組件。節(jié)點或組件可以是軟件、固 件、硬件或者能夠執(zhí)行計算的任意其它類型的裝置。數(shù)據(jù)處理器530還可以與MAC計算機535和數(shù)據(jù)加密器540通信地耦合。MAC計 算機535可以是能夠預(yù)計算MAC的節(jié)點或組件。數(shù)據(jù)加密器540可以是能夠?qū)?shù)據(jù)進行加 密的節(jié)點或組件。MAC計算機5;35可以進一步由PRP F計算器545和ε -DU計算器550組成。PRP F 計算器545是能夠計算PRP F函數(shù)的組件或節(jié)點。ε -DU計算器550是能夠計算ε -DU函 數(shù)的組件??偩€接口邏輯130可以發(fā)送請求以從DRAM 115讀取數(shù)據(jù)或向DRAM115寫入數(shù)據(jù)。 數(shù)據(jù)處理器530可以接收該請求。寫入數(shù)據(jù)的請求可以來自兩部分。首先,總線接口邏輯 130可以將地址發(fā)送給數(shù)據(jù)處理器530。在典型的系統(tǒng)中,2個或多個時鐘周期后,數(shù)據(jù)處理器530可以接收與地址相關(guān)聯(lián)的寫入數(shù)據(jù)。在讀取數(shù)據(jù)時,總線接口邏輯130可以發(fā)送讀 取地址。數(shù)據(jù)處理器通過將讀取數(shù)據(jù)發(fā)送給總線接口邏輯130來進行響應(yīng)。如果數(shù)據(jù)處理器530接收到寫入請求,數(shù)據(jù)處理器530可以將寫入地址轉(zhuǎn)發(fā)給MAC 計算機535和數(shù)據(jù)加密器M0。在一些實施方式中,寫入地址可以是32比特。數(shù)據(jù)加密器 540可以用寫入地址作為加密數(shù)據(jù)過程的一部分。MAC計算機535可以將寫入地址和和隨 機數(shù)轉(zhuǎn)發(fā)給PRP F計算器M5。在一些實施方式中,隨機數(shù)可以是16比特。PRP F計算器 545可以產(chǎn)生隨機密鑰Kl以用于執(zhí)行Rijndael函數(shù)。PRP F計算器545可以使用Kl在256 比特的數(shù)據(jù)輸入上運行14次Rijndael (或者兩個并行的示例,其中該示例為2次128比特 AES版本的Rijndael)。數(shù)據(jù)輸入可以由208比特的0、32比特的地址和16比特的隨機數(shù) 組成。在數(shù)據(jù)輸入上運行14次Rijndael的輸出可以是可被稱為Rijndael塊或Rijndael 寫入塊的256比特的隨機數(shù)。PRP F計算器545可以將Rijndael寫入塊傳遞給ε-DU計 算器550。在一些實施方式中,此時寫入數(shù)據(jù)已經(jīng)到達。然而,PRP F計算器Μ5已經(jīng)運行 Rijndael并創(chuàng)建了 Rijndael寫入塊。當(dāng)寫入數(shù)據(jù)到達時,數(shù)據(jù)處理器530可以將寫入數(shù)據(jù)轉(zhuǎn)發(fā)給數(shù)據(jù)加密器Μ0。數(shù)據(jù) 加密器540可以對數(shù)據(jù)進行加密并將加密數(shù)據(jù)傳遞給ε -DU計算器550。ε -DU計算器550 可以將加密數(shù)據(jù)與Rijndael寫入塊進行異或。結(jié)果可以是256比特的異或Rijndael塊或 異或Rijndael寫入塊。ε -DU計算器550可以在初始時產(chǎn)生或選擇隨機密鑰Κ2。ε -DU計 算器550可以使用Κ2在異或的Rijndael寫入塊上運行2次或4次Rijndael。在異或的 Rijndael寫入塊上運行4次Rijndael的結(jié)果可以為256比特的G寫入塊。G寫入塊可以 與256比特的密鑰Κ3進行異或以得到256比特的M塊。通過使用異或樹,可以將256比特的M塊分解為32比特MAC或者第一 MAC??梢?將加密數(shù)據(jù)寫入DRAM 115中。隨機數(shù)和第一 MAC還可以存儲在片外,同時可以與寫入到 DRAM 115的加密數(shù)據(jù)相關(guān)聯(lián)。隨機數(shù)當(dāng)數(shù)據(jù)處理器530接收讀取請求時,數(shù)據(jù)處理器530可以利用讀取請求接收讀取 地址。數(shù)據(jù)處理器530可以將讀取地址傳遞給MAC計算機535。MAC計算機535可以從片外 存儲器取回第一 MAC、隨機數(shù)和讀取數(shù)據(jù)。在將讀取數(shù)據(jù)寫入DRAM 115時,MAC計算機535 還可以取回存儲在片上的密鑰K1、K2和Κ3。MAC計算機535可以將密鑰、第一 MAC、隨機數(shù) 和讀取數(shù)據(jù)傳遞給PRP F計算器M5。PRP F計算器545可以利用Kl在由208比特的0 (0 填充)、32比特的地址和16比特的隨機數(shù)組成的256比特的數(shù)據(jù)塊上運行14次Rijndael。 或者,與寫入處理器相關(guān),PRP F計算器545可以并行運行2個示例,其中該示例為2次運 行128比特AES版本的Rijndael。運行Rijndael的輸出可以為被稱為Rijndael塊或者 Rijndael讀取塊的256比特的隨機數(shù)據(jù)。PRP F計算器545可以將Rijndael讀取塊傳遞 給ε-DU計算器550。ε -DU計算器550可以將加密讀取數(shù)據(jù)與Rijndael讀取塊進行異或。結(jié)果可以 是256比特的異或Rijndael塊或異或Rijndael讀取塊。ε-DU計算器550可以在異或 Rijndael讀取塊上使用K2運行4次Rijndael。運行2次或4次Rijndael的結(jié)果可以是 256比特的G塊或G讀取塊??梢詫讀取塊與256比特的密鑰K3進行異或以得到256比 特的M塊或M讀取塊。通過異或樹,可以將256比特的M讀取塊分解為32比特的第二 MAC。可以將第二MAC與第一 MAC進行比較。如果第二 MAC與第一 MAC不相同,則讀取數(shù)據(jù)可能已經(jīng)被損壞或 破壞。如果存儲器被損壞或破壞,MAC計算機535可以執(zhí)行存儲器破壞響應(yīng)程序。用于消息認證碼預(yù)計算的系統(tǒng)和方法可以是無狀態(tài)的。無狀態(tài)的認證和加密算法 可能將存儲器對重放攻擊開放。例如,對手可以利用之前存儲在存儲器相同存儲單元中的 值來替換該存儲器的存儲單元。相似地,對手在寫入業(yè)務(wù)中可能完全不更新DRAM。這些攻 擊會導(dǎo)致存儲器在解密和認證后將錯誤認為是正確的。為了提高效率起見,可以為全部存儲器或者大部分存儲器創(chuàng)建加密和認證密鑰。 為了抵制上述的重放攻擊,與存儲器相關(guān)聯(lián)的加密和認證密鑰可以周期性地進行更新。存儲器密鑰更新的實施方式可以包括將存儲器分為2個區(qū)域。存儲器是可以被分 為第一區(qū)域和第二區(qū)域的有序陣列。通過邊界地址可以將第一區(qū)域和第二區(qū)域進行分隔。 可以利用密鑰的第一集合對第一區(qū)域進行加密和認證??梢岳妹荑€的第二集合對第二區(qū) 域進行加密和認證。更新方法包括犧牲其它區(qū)域來增加存儲器的一個區(qū)域。從而在第二區(qū) 域的邊界到達存儲器的末端之前第二區(qū)域可以增加。存儲器的末端可以是最高可尋址的地 址或最低可尋址的地址。在將數(shù)據(jù)寫入存儲器的第二區(qū)域時,可以使用密鑰的第二集合對數(shù)據(jù)進行解密和 認證。當(dāng)邊界到達存儲器的末端時,例如邊界到達最低可尋址的地址時,用于存儲器的第一 區(qū)域的密鑰可以退役(retired),并可以產(chǎn)生用于存儲器第一區(qū)域的密鑰的新的第三集合。 在將數(shù)據(jù)寫入存儲器時,使用密鑰的第三集合對數(shù)據(jù)進行加密和認證,并將數(shù)據(jù)放置在存 儲器的第一區(qū)域。犧牲存儲器的第二區(qū)域可以增加存儲器的第一區(qū)域。這一直持續(xù)到邊界 再次到達存儲器的末端,例如存儲器的最高可尋址的地址。該方法通過產(chǎn)生密鑰的第四集 合而繼續(xù)。在將新數(shù)據(jù)寫入存儲器時,使用密鑰的第四集合對數(shù)據(jù)進行加密和認證,并將數(shù) 據(jù)放置在存儲器的第二區(qū)域。重新產(chǎn)生密鑰以及寫入存儲器的不同區(qū)域的該方法繼續(xù)。在一個實施例中,系統(tǒng)500包括多個組件,例如一個或多個計算機軟件組件。在系 統(tǒng)500中多個這樣的組件能夠進行合并或拆分。系統(tǒng)500的一個示例性組件利用和/或包 括一組和/或系列利用任意或多個編程語言所書寫或者執(zhí)行的計算機指令,這對于本領(lǐng)域 技術(shù)人員來說是顯而易見的。在一個實施例中,為了便于解釋的目的,系統(tǒng)500包括垂直方 向,這里的說明書和附圖描述系統(tǒng)500的一個示例性方向。在一個實施例中,系統(tǒng)500利用一個或多個計算機可讀信號承載媒介。計算機可 讀信號承載媒介存儲用于執(zhí)行本發(fā)明的一個或多個實現(xiàn)的一個或多個部分的軟件、固件和 /或匯編語言。在一個實施例中,用于系統(tǒng)500的計算機可讀信號承載媒介包括一個或多 個磁、電、光、生物和原子數(shù)據(jù)存儲媒介。例如,計算機可讀信號承載媒介包括軟盤、磁帶、 CD-ROM、DVD-ROM、硬盤驅(qū)動器和電子存儲器。這里所描述的步驟或操作僅用作示例。在不偏離系統(tǒng)500和方法200、300、400的 精神下,可以對這些步驟或操作進行多種改變。例如,可以按不同的順序執(zhí)行步驟,或者可 以增加、刪除或修改步驟。盡管這里詳細描述和說明了系統(tǒng)500和方法200、300、400示例性的實現(xiàn),但是在 不偏離方法200、300、400的精神下能夠進行各種修改、增加、替代以及類似操作,這對所屬 領(lǐng)域的技術(shù)人員來說是顯而易見的,并且因此被認為是落在系統(tǒng)500和方法200、300、400 的、如下列權(quán)利要求所限定的范圍內(nèi)。
權(quán)利要求
1.一種方法,包括以下步驟通過執(zhí)行偽隨機函數(shù)和偽隨機置換中的至少一個從數(shù)據(jù)輸入創(chuàng)建數(shù)據(jù)的隨機置換; 通過組合數(shù)據(jù)的隨機置換和所接收的第二數(shù)據(jù)塊并且在組合的結(jié)果上執(zhí)行ε -差分 均勻函數(shù),來創(chuàng)建第一數(shù)據(jù)塊;將ε-差分均勻函數(shù)評估的結(jié)果與秘密密鑰進行異或;以及 將第一數(shù)據(jù)塊變?yōu)榈谝幌⒄J證碼。
2.根據(jù)權(quán)利要求1所述的方法,其中數(shù)據(jù)輸入是0填充、隨機數(shù)和存儲器地址,第一數(shù)據(jù)塊是異或的Ri jndael塊,以及所接 收的第二數(shù)據(jù)塊是加密數(shù)據(jù)塊;創(chuàng)建數(shù)據(jù)的隨機置換進一步包括,在地址、隨機數(shù)和0填充上通過運行14次Rijndael 函數(shù)和兩個實例的10次高級加密標(biāo)準(zhǔn)函數(shù)中的至少一個來創(chuàng)建Rijndael塊;創(chuàng)建第一數(shù)據(jù)塊進一步包括,通過將Rijndael塊與加密數(shù)據(jù)塊進行異或來創(chuàng)建異或 的 Rijndael 塊;在異或的Rijndael塊上執(zhí)行2次和4次Rijndael函數(shù)中的至少一個通過在異或 Rijndael塊上執(zhí)行ε -差分均勻函數(shù)以創(chuàng)建G塊;將ε差分均勻函數(shù)評估的結(jié)果與秘密密鑰進行異或,結(jié)果是M塊;以及將第一數(shù)據(jù)塊變?yōu)榈谝幌⒄J證碼進一步包括,通過異或樹將M塊變?yōu)榈谝幌⒄J證碼。
3.根據(jù)權(quán)利要求2所述的方法,其中認證讀取數(shù)據(jù)塊進一步包括,取回秘密密鑰、第一 隨機密鑰和第二隨機密鑰、第一消息認證碼和隨機數(shù);以及從秘密密鑰、第一隨機密鑰和第二隨機密鑰、第一消息認證碼和隨機數(shù)創(chuàng)建第二消息 認證碼。
4.根據(jù)權(quán)利要求3所述的方法,其中創(chuàng)建第二消息認證碼進一步包括在地址、隨機數(shù)和0填充上通過執(zhí)行14次Rijndael函數(shù)和兩個實例的10次高級加密 標(biāo)準(zhǔn)函數(shù)中的至少一個來創(chuàng)建Rijndael讀取塊;通過將Rijndael讀取塊與加密讀取數(shù)據(jù)塊進行異或來創(chuàng)建異或Rijndael讀取塊; 通過在異或的Rijndael塊上執(zhí)行4次和2次Rijndael函數(shù)中的至少一個來創(chuàng)建G讀 取塊;將G塊與秘密密鑰進行異或以創(chuàng)建M讀取塊;以及 通過異或樹將M讀取塊變?yōu)榈诙⒄J證碼。
5.根據(jù)權(quán)利要求4所述的方法,其中認證讀取數(shù)據(jù)塊進一步包括將第一消息認證碼 與第二消息認證碼進行比較以及如果第一消息認證碼與第二消息認證碼不相同,執(zhí)行存儲 器破壞過程。
6.一種系統(tǒng),包括 MAC計算機;其中MAC計算機通過執(zhí)行偽隨機置換和偽隨機函數(shù)中的至少一個從包括0填充、隨機 數(shù)和存儲器地址的數(shù)據(jù)輸入創(chuàng)建數(shù)據(jù)的隨機置換;其中MAC計算機通過組合數(shù)據(jù)的隨機置換和所接收的第二數(shù)據(jù)塊并且在組合的結(jié)果 上執(zhí)行ε -差分均勻函數(shù),以創(chuàng)建第一數(shù)據(jù)塊;其中MAC計算機將ε -差分均勻函數(shù)的評估結(jié)果與秘密密鑰進行異或; 其中MAC計算機將第一數(shù)據(jù)塊變?yōu)榈谝幌⒄J證碼;其中MAC計算機進一步包括PRP F計算器和ε-DU計算器、數(shù)據(jù)處理器和數(shù)據(jù)加密器;MAC計算機與PRP F計算器、ε-DU計算器、數(shù)據(jù)處理器和數(shù)據(jù)加密器通信耦合; PRP F計算器與數(shù)據(jù)處理器和ε -DU計算器通信耦合; ε -DU計算器與數(shù)據(jù)處理器和數(shù)據(jù)加密器通信耦合; 數(shù)據(jù)處理器將存儲器地址發(fā)送給PRP F計算器和數(shù)據(jù)加密器;以及 PRP F計算器通過在存儲器地址、隨機數(shù)和0填充上執(zhí)行14次Rijndael函數(shù)創(chuàng)建 Rijndael塊以創(chuàng)建數(shù)據(jù)的隨機置換。
7.根據(jù)權(quán)利要求6所述的系統(tǒng),其中數(shù)據(jù)處理器將第二數(shù)據(jù)塊發(fā)送給數(shù)據(jù)加密器;數(shù)據(jù)加密器對第二數(shù)據(jù)塊加密并將加密的數(shù)據(jù)塊發(fā)送給ε -DU計算器; ε -DU計算器通過將Rijndael塊和加密數(shù)據(jù)塊進行異或以創(chuàng)建異或Rijndael塊; ε -DU計算器通過在異或Rijndael塊上執(zhí)行4次和2次Rijndael函數(shù)中的至少一個 來創(chuàng)建G塊;MAC計算機通過將G塊和秘密密鑰進行異或來創(chuàng)建M塊;以及 MAC計算機通過異或樹將M塊變?yōu)榈谝幌⒄J證碼。
8.根據(jù)權(quán)利要求7所述的系統(tǒng),其中認證讀取數(shù)據(jù)塊進一步包括MAC計算機取回秘密密鑰、第一隨機密鑰和第二隨機密鑰、第一消息認證碼和隨機數(shù);以及MAC計算機將秘密密鑰、第一隨機密鑰和第二隨機密鑰、第一消息認證碼和隨機數(shù)發(fā)送 給MAC計算機的PRP F計算器。
9.根據(jù)權(quán)利要求8所述的系統(tǒng),其中產(chǎn)生第二消息認證碼進一步包括PRP F計算器通過在讀取地址、隨機數(shù)和0填充上執(zhí)行14次Rijndael函數(shù)和2個并列 的10次Rijndael函數(shù)中的至少一個來創(chuàng)建Rijndael讀取塊; PRP F計算器將Rijndael讀取塊傳遞給ε -DU計算器;ε-DU計算器通過將Rijndael讀取塊和加密的讀取數(shù)據(jù)塊進行異或來創(chuàng)建異或 Rijndael讀取塊;ε -DU計算器通過在異或Rijndael塊上執(zhí)行4次和2次Rijndael函數(shù)中的至少一個 來創(chuàng)建G讀取塊;MAC計算機通過將G塊和秘密密鑰進行異或來創(chuàng)建M讀取塊; MAC計算機通過異或樹將M塊變?yōu)榈诙⒄J證碼;以及認證讀取數(shù)據(jù)塊進一步包括MAC計算機將第一消息認證碼和第二消息認證碼進行比 較,以及如果第一消息認證碼與第二消息認證碼不相同,執(zhí)行存儲器破壞過程。
10.一種方法,包括以下步驟將存儲器分為包括第一區(qū)域和第二區(qū)域的兩個部分,其中兩個部分通過邊界地址相分隔;將密鑰的第一集合與第一區(qū)域相關(guān)聯(lián),將密鑰的第二集合與第二區(qū)域相關(guān)聯(lián);利用密鑰的第一集合對第一區(qū)域的數(shù)據(jù)進行加密和認證; 利用密鑰的第二集合對第二區(qū)域的數(shù)據(jù)進行加密和認證;通過將來自存儲器第一區(qū)域的存儲容量分配給第二區(qū)域存儲器來擴大存儲器的第二 區(qū)域;當(dāng)邊界地址到達存儲器末端時,將存儲器的第一區(qū)域與密鑰的第三集合相關(guān)聯(lián)。
全文摘要
一種方法,包括以下步驟通過執(zhí)行偽隨機置換(PRP)和偽隨機函數(shù)(PRF)中的至少一個從數(shù)據(jù)輸入創(chuàng)建數(shù)據(jù)的隨機置換;通過組合數(shù)據(jù)的隨機置換和所接收的第二數(shù)據(jù)塊并且在組合的結(jié)果上執(zhí)行ε差分均勻函數(shù),以創(chuàng)建第一數(shù)據(jù)塊;將ε-DU函數(shù)評估的結(jié)果與秘密密鑰進行異或;以及將第一數(shù)據(jù)塊變?yōu)榈谝幌⒄J證碼。
文檔編號H04L9/06GK102138300SQ200980133393
公開日2011年7月27日 申請日期2009年8月25日 優(yōu)先權(quán)日2008年8月28日
發(fā)明者H·R·麥克萊倫, J·A·加雷, V·柯勒斯尼科夫 申請人:阿爾卡特朗訊美國公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
沁源县| 绥化市| 桂东县| 阳新县| 纳雍县| 郎溪县| 随州市| 平塘县| 陆良县| 察隅县| 南岸区| 睢宁县| 嘉兴市| 庆元县| 东辽县| 海淀区| 溆浦县| 兰州市| 广德县| 新邵县| 玉山县| 元江| 潜山县| 乐业县| 洛扎县| 古浪县| 河池市| 焦作市| 高密市| 平度市| 河北省| 墨竹工卡县| 剑川县| 孟连| 时尚| 寿光市| 石楼县| 德惠市| 安达市| 房山区| 德化县|