、608c上實(shí)施MAC-Lite算法以保全數(shù)據(jù)結(jié)構(gòu)的完整性。
[0073]MAC產(chǎn)生器606可以包含實(shí)施MAC-Lite算法的一或多個(gè)函數(shù)或步驟的多個(gè)電路及/或模塊。在啟動(dòng)或開(kāi)啟處理電路602或起始在處理電路602上執(zhí)行的會(huì)話或應(yīng)用后,密鑰預(yù)先產(chǎn)生電路/模塊610可以隨機(jī)地或偽隨機(jī)地產(chǎn)生包括多個(gè)密鑰的密鑰628的集合。密鑰628的集合可以存儲(chǔ)在安全存儲(chǔ)器裝置626中或處理電路602或存儲(chǔ)器裝置604內(nèi)的安全位置中。類(lèi)似地,在啟動(dòng)或開(kāi)啟處理電路602或起始在處理電路602上執(zhí)行的會(huì)話或應(yīng)用后,掩模預(yù)先產(chǎn)生電路/模塊612可以隨機(jī)地或偽隨機(jī)地產(chǎn)生包括多個(gè)掩模的掩模630的集合。掩模630的集合可以存儲(chǔ)在安全存儲(chǔ)器裝置626中或處理電路602或存儲(chǔ)器裝置604內(nèi)的安全位置中。可以在啟動(dòng)之間或(應(yīng)用)會(huì)話之間的持續(xù)時(shí)間內(nèi)將掩模的集合及/或密鑰的集合存儲(chǔ)在安全存儲(chǔ)器裝置626 (或位置)中。因此,掩模的集合及/或密鑰的集合不用于僅一個(gè)讀取/寫(xiě)入操作或單個(gè)存儲(chǔ)器塊。替代地,在周期期間(例如,在啟動(dòng)之間或在會(huì)話之間)其用于所有讀取/寫(xiě)入操作及所有存儲(chǔ)器塊。
[0074]在存取用于寫(xiě)入操作或讀取操作的數(shù)據(jù)結(jié)構(gòu)后,密鑰選擇器電路/模塊614可以基于與數(shù)據(jù)結(jié)構(gòu)相關(guān)聯(lián)的至少一個(gè)輸入(例如,用于數(shù)據(jù)結(jié)構(gòu)的可變存儲(chǔ)器地址等)從密鑰628的集合中選擇多個(gè)密鑰。類(lèi)似地,掩模選擇器電路/模塊616可以基于至少一個(gè)輸入(例如,用于數(shù)據(jù)結(jié)構(gòu)的可變存儲(chǔ)器地址等)或與數(shù)據(jù)結(jié)構(gòu)相關(guān)聯(lián)的不同一或多個(gè)輸入從掩模630的集合中選擇掩模。
[0075]輸入及密鑰組合電路/模塊618可以用以將輸入與對(duì)應(yīng)(不同)選定密鑰(來(lái)自密鑰選擇器電路/模塊614)組合。舉例來(lái)說(shuō),每一輸入可以乘以不同選定密鑰且結(jié)果可以相加在一起。模運(yùn)算符電路/模塊620可以應(yīng)用于使用固定質(zhì)數(shù)P 632從輸入及密鑰組合電路/模塊618產(chǎn)生的結(jié)果。掩模組合電路/模塊622可以采用從模運(yùn)算符電路/模塊622產(chǎn)生的結(jié)果且應(yīng)用選定掩模(來(lái)自掩模選擇器電路/模塊616)來(lái)產(chǎn)生用于數(shù)據(jù)結(jié)構(gòu)的MAC-Lite 值。
[0076]MAC比較器電路/模塊624可以用以通過(guò)將用于數(shù)據(jù)結(jié)構(gòu)的先前存儲(chǔ)的MAC值與動(dòng)態(tài)計(jì)算出的MAC值(來(lái)自掩模組合電路/模塊622)相比較來(lái)檢查數(shù)據(jù)結(jié)構(gòu)的完整性。
[0077]圖7說(shuō)明基于掩模的不同集合及密鑰的不同集合的預(yù)先產(chǎn)生而產(chǎn)生用于存儲(chǔ)器空間的驗(yàn)證代碼的實(shí)例。獲得用于固定長(zhǎng)度的數(shù)據(jù)結(jié)構(gòu)702的存儲(chǔ)器地址。此外基于固定長(zhǎng)度的數(shù)據(jù)結(jié)構(gòu)704中的信息獲得多個(gè)輸入。不同密鑰選擇用于存儲(chǔ)器地址及多個(gè)可變輸入中的每一者,其中不同密鑰中的每一者選自預(yù)先產(chǎn)生的密鑰706的不同集合。在一個(gè)實(shí)例中,可以基于(例如,根據(jù))存儲(chǔ)器地址選擇多個(gè)不同密鑰中的每一者及/或掩模。在啟動(dòng)處理電路/裝置后或在起始在處理電路/裝置上執(zhí)行的會(huì)話后,可能已產(chǎn)生預(yù)先產(chǎn)生的密鑰的不同集合。
[0078]存儲(chǔ)器地址與選定第一密鑰組合以及多個(gè)可變輸入中的每一者與選定對(duì)應(yīng)密鑰組合以獲得中間值708。中間值可以計(jì)算為存儲(chǔ)器地址與第一密鑰的乘積加上多個(gè)可變輸入中的每一者與其選定對(duì)應(yīng)密鑰的乘積及通過(guò)預(yù)先選定的固定質(zhì)數(shù)執(zhí)行模運(yùn)算。所使用的每一密鑰可以在零與質(zhì)數(shù)之間。
[0079]在中間值與選自預(yù)先產(chǎn)生的掩模的不同集合的掩模之間執(zhí)行異或(XOR)運(yùn)算以獲得用于固定長(zhǎng)度的數(shù)據(jù)結(jié)構(gòu)710的驗(yàn)證代碼。在啟動(dòng)處理電路/裝置后或在起始在處理電路/裝置上執(zhí)行的會(huì)話后,可能已產(chǎn)生預(yù)先產(chǎn)生的掩模的不同集合。密鑰的不同集合及掩模的不同集合可以保持為秘密的。
[0080]驗(yàn)證代碼隨后可以存儲(chǔ)在固定長(zhǎng)度的數(shù)據(jù)結(jié)構(gòu)712內(nèi)。舉例來(lái)說(shuō),驗(yàn)證代碼可以存儲(chǔ)在用于固定長(zhǎng)度的數(shù)據(jù)結(jié)構(gòu)的標(biāo)頭塊中。存儲(chǔ)器地址可以對(duì)應(yīng)于用于固定長(zhǎng)度的數(shù)據(jù)結(jié)構(gòu)的標(biāo)頭塊的地址。
[0081]在固定長(zhǎng)度的數(shù)據(jù)結(jié)構(gòu)的隨后存取中,其完整性可以通過(guò)再產(chǎn)生消息驗(yàn)證代碼及將所述消息驗(yàn)證代碼與用于相同數(shù)據(jù)結(jié)構(gòu)的先前存儲(chǔ)的消息驗(yàn)證代碼相比較來(lái)檢驗(yàn)。
[0082]圖式中所說(shuō)明的組件、步驟、特征及/或功能中的一或多者可以重新布置及/或組合成單個(gè)組件、步驟、特征或功能或體現(xiàn)在若干組件、步驟或功能中。在不脫離本發(fā)明的情況下,還可以添加額外的元件、組件、步驟及/或功能。圖式中所說(shuō)明的設(shè)備、裝置及/或組件可以經(jīng)配置以執(zhí)行圖式中描述的方法、特征或步驟中的一或多者。本文中所描述的算法也可以有效地實(shí)施于軟件中及/或嵌入于硬件中。
[0083]此外,在本發(fā)明的一個(gè)方面中,在圖1、2及6中所說(shuō)明的處理電路102、202及/或602可以是專(zhuān)用處理器(例如,專(zhuān)用集成電路(例如,ASIC)),其專(zhuān)門(mén)經(jīng)設(shè)計(jì)及/或硬連線以執(zhí)行在圖3、4、5及/或7中所說(shuō)明的算法、方法及/或步驟。因此,此專(zhuān)用處理器(例如,ASIC)可以為用于執(zhí)行圖3、4、5及/或7中所描述的算法、方法和/或步驟的裝置的一個(gè)實(shí)例。處理器可讀存儲(chǔ)媒體可以存儲(chǔ)當(dāng)由專(zhuān)用處理器(例如,ASIC)執(zhí)行時(shí)致使專(zhuān)用處理器執(zhí)行本文中所描述的算法、方法及/或步驟的指令。
[0084]此外,應(yīng)注意,可以將本發(fā)明的各方面描述為過(guò)程,所述過(guò)程被描繪為流程圖、流圖、結(jié)構(gòu)圖或方框圖。盡管流程圖可以將操作描述為順序過(guò)程,但是許多操作可以并行或同時(shí)執(zhí)行。另外,可以重新布置操作的次序。當(dāng)過(guò)程的操作完成時(shí),所述過(guò)程終止。過(guò)程可以對(duì)應(yīng)于方法、函數(shù)、步驟、子例程、子程序等。當(dāng)過(guò)程對(duì)應(yīng)于函數(shù)時(shí),其終止對(duì)應(yīng)于所述函數(shù)返回到調(diào)用函數(shù)或主函數(shù)。
[0085]此外,存儲(chǔ)媒體可以表示用于存儲(chǔ)數(shù)據(jù)的一或多個(gè)裝置,包含只讀存儲(chǔ)器(ROM)、隨機(jī)存取存儲(chǔ)器(RAM)、磁盤(pán)存儲(chǔ)媒體、光學(xué)存儲(chǔ)媒體、快閃存儲(chǔ)器裝置及/或其它機(jī)器可讀媒體及處理器可讀媒體,及/或用于存儲(chǔ)信息的計(jì)算機(jī)可讀媒體。術(shù)語(yǔ)“機(jī)器可讀媒體”、“計(jì)算機(jī)可讀媒體”及/或“處理器可讀媒體”可包含(但不限于)非暫時(shí)性媒體(例如,便攜式或固定存儲(chǔ)裝置)、光學(xué)存儲(chǔ)裝置及能夠存儲(chǔ)、含有或攜載指令及/或數(shù)據(jù)的各種其它媒體。因此,本文中描述的各種方法可以完全或部分地由可以存儲(chǔ)在“機(jī)器可讀媒體”、“計(jì)算機(jī)可讀媒體”及/或“處理器可讀媒體”中且由一或多個(gè)處理器、機(jī)器及/或裝置執(zhí)行的指令及/或數(shù)據(jù)來(lái)實(shí)施。
[0086]此外,本發(fā)明的方面可以由硬件、軟件、固件、中間件、微碼或其任何組合實(shí)施。當(dāng)以軟件、固件、中間件或微碼實(shí)施時(shí),用以執(zhí)行必要任務(wù)的程序代碼或代碼段可以存儲(chǔ)在例如存儲(chǔ)媒體或其它存儲(chǔ)裝置的機(jī)器可讀媒體中。處理器可以執(zhí)行必要任務(wù)。代碼段可以表示步驟、函數(shù)、子程序、程序、例程、子例程、模塊、軟件包、類(lèi)別,或指令、數(shù)據(jù)結(jié)構(gòu)或程序語(yǔ)句的任意組合。代碼段可以通過(guò)傳遞及/或接收信息、數(shù)據(jù)、自變量、參數(shù)或存儲(chǔ)器內(nèi)容而耦合到另一代碼段或硬件電路。信息、自變量、參數(shù)、數(shù)據(jù)等可以經(jīng)由包含存儲(chǔ)器共享、消息傳遞、權(quán)標(biāo)傳遞、網(wǎng)絡(luò)傳輸?shù)热魏魏线m的方式傳遞、轉(zhuǎn)發(fā)或傳輸。
[0087]結(jié)合本文中揭示的實(shí)例描述的各種說(shuō)明性邏輯塊、模塊、電路、元件及/或組件可以用通用處理器、數(shù)字信號(hào)處理器(DSP)、專(zhuān)用集成電路(ASIC)、現(xiàn)場(chǎng)可編程門(mén)陣列(FPGA)或其它可編程邏輯組件、離散門(mén)或晶體管邏輯、離散硬件組件或其經(jīng)設(shè)計(jì)以執(zhí)行本文中描述的功能的任何組合來(lái)實(shí)施或執(zhí)行。通用處理器可以為微處理器,但在替代方案中,處理器可以為任何常規(guī)處理器、控制器、微控制器或狀態(tài)機(jī)。處理器還可以實(shí)施為計(jì)算組件的組合,例如DSP與微處理器的組合、多個(gè)微處理器的組合、一或多個(gè)微處理器與DSP核心的結(jié)合,或任何其它此類(lèi)配置。
[0088]結(jié)合本文所揭示的實(shí)例描述的方法或算法可以處理單元、編程指令或其它方向的形式直接體現(xiàn)在硬件、可由處理器執(zhí)行的軟件模塊或兩者的組合中,且可以包含于單個(gè)裝置中或跨越多個(gè)裝置而分布。軟件模塊可以駐留在RAM存儲(chǔ)器、快閃存儲(chǔ)器、ROM存儲(chǔ)器、EPROM存儲(chǔ)器、EEPROM存儲(chǔ)器、寄存器、硬盤(pán)、可移除式磁盤(pán)、⑶-R0M,或此項(xiàng)技術(shù)中已知的任何其它形式的存儲(chǔ)媒體中。存儲(chǔ)媒體可以耦合到處理器,使得處理器可以從存儲(chǔ)媒體讀取信息及將信息寫(xiě)入到存儲(chǔ)媒體。在替代方案中,存儲(chǔ)媒體可以與處理器整合。
[0089]所屬領(lǐng)域的技術(shù)人員將進(jìn)一步了解,結(jié)合本文所揭示的方面描述的各種說(shuō)明性邏輯塊、模塊、電路及算法步驟可以實(shí)施為電子硬件、計(jì)算機(jī)軟件或兩者的組合。為清楚說(shuō)明硬件與軟件的此可互換性,上文已大體上關(guān)于其功能性而描述了各種說(shuō)明性組件、塊、模塊、電路及步驟。此種功能性是實(shí)施為硬件還是軟件取決于特定應(yīng)用及施加于整個(gè)系統(tǒng)的設(shè)計(jì)約束。
[0090]本文所述的本發(fā)明的各種特征可以實(shí)施于不同系統(tǒng)中而不脫離本發(fā)明。應(yīng)注意,本發(fā)明的前述方面僅為實(shí)例,且不應(yīng)解釋為限制本發(fā)明。本發(fā)明的各方面的描述既定是說(shuō)明性的,且不限制權(quán)利要求書(shū)的范圍。因此,本發(fā)明的教示可以容易應(yīng)用于其它類(lèi)型的設(shè)備,且所屬領(lǐng)域的技術(shù)人員將明白許多替代方