国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      使用用于掩蔽操作中的有限子域查找表的密碼編譯加密算法的制作方法

      文檔序號:11335288閱讀:396來源:國知局
      使用用于掩蔽操作中的有限子域查找表的密碼編譯加密算法的制造方法與工藝

      相關申請案的交叉參考

      本申請案主張于2015年3月9日向美國專利商標局申請的非臨時申請案第14/642,591號的優(yōu)先權和權益,所述申請案的全部內容以引用的方式并入本文中。

      各種特征涉及用于加密和解密的密碼編譯加密,尤其涉及高級加密標準(aes)加密或其它對稱加密。



      背景技術:

      高級加密標準(aes)由美國國家標準與技術研究所(nist)于2001年建立,其用于使用對稱密鑰(即,將相同密鑰用于加密和解密)的電子數(shù)據(jù)的加密和解密。aes的一些實施方案對伽羅華域(gf)利用有限域代數(shù),例如gf(28)。aes加密通常以初始addroundkey操作開始,在所述操作中,待加密明文的當前“狀態(tài)”的各字節(jié)與輪密鑰(自主加密算法密鑰衍生)組合。所述“狀態(tài)”是4×4字節(jié)矩陣。隨后,各輪加密通常包含四個主要階段:(1)subbytes階段,其為各字節(jié)根據(jù)查找表(即“s盒”)或其它合適替換引導而被另一字節(jié)所代替的非線性替換步驟;(2)shiftrows階段,其為所述狀態(tài)的最后幾行被循環(huán)移位某一步數(shù)的變位步驟;(3)mixcolumns階段,其為對所述狀態(tài)的列運行的混合操作,從而組合各列中的四個字節(jié);以及(4)另一addroundkey階段。應注意,階段的編號可以是任意的,且可以實際上將初始addroundkey階段稱為“第一”階段,因此subbytes步驟為“第二”階段。

      設計一種實用aes硬件裝置的難題在于在緊湊性與性能之間實現(xiàn)有效取舍,其中整體性能受處理速度以及例如安全性的其它因素影響,例如對試圖獲得加密算法密鑰的側信道攻擊的免疫。為改進安全性并避免攻擊,可尤其在subbytes階段期間執(zhí)行掩蔽操作。掩蔽是一種對抗側信道攻擊的對策,其涉及隨機化加密算法的內部狀態(tài),使得在加密或解密期間對少數(shù)中間值的觀察將不會提供關于任何敏感變量(例如秘密密鑰)的信息。為使掩蔽適應aes,可執(zhí)行一種利用8位隨機數(shù)產(chǎn)生器連同額外電路(例如動態(tài)查找表)的乘法逆元素操作。

      為了改進處理效率而不降低安全性和/或在利用有限域代數(shù)的其它加密算法的對應替換階段內提供類似修改,修改掩蔽aes系統(tǒng)內的subbytes階段(和任何對應invsubbytes階段)是有用的。



      技術實現(xiàn)要素:

      一種在密碼編譯裝置中可操作的方法包含:作為密碼編譯操作的一部分,將輸入數(shù)據(jù)與輪密鑰組合,以獲得組合數(shù)據(jù);通過采用以下中的至少一個的替換階段來路由組合數(shù)據(jù)的至少一部分:靜態(tài)查找表,其在有限域的子域中為其自身逆元素以獲得經(jīng)替換數(shù)據(jù);有限域的子域中的動態(tài)查找表,其中使用置換來實施所有替換操作以獲得經(jīng)替換數(shù)據(jù);或有限域的子域中的替代靜態(tài)查找表,其靜態(tài)地存儲獲得經(jīng)替換數(shù)據(jù)所需的所有置換;以及通過一或多個額外密碼編譯階段來路由經(jīng)替換數(shù)據(jù),從而產(chǎn)生輸出數(shù)據(jù)。

      在另一方面中,一種密碼編譯裝置包含:處理電路,其經(jīng)配置以作為密碼編譯操作的一部分而將輸入數(shù)據(jù)與輪密鑰組合,以獲得組合數(shù)據(jù);通過采用以下中的至少一個的替換階段來路由組合數(shù)據(jù)的至少一部分:靜態(tài)查找表,其在有限域的子域中為其自身逆元素以獲得經(jīng)替換數(shù)據(jù);有限域的子域中的動態(tài)查找表,其中使用置換來實施所有替換操作以獲得經(jīng)替換數(shù)據(jù);或有限域的子域中的替代靜態(tài)查找表,其靜態(tài)地存儲獲得經(jīng)替換數(shù)據(jù)所需的所有置換;及通過一或多個額外密碼編譯階段來路由經(jīng)替換數(shù)據(jù)從而產(chǎn)生輸出數(shù)據(jù);以及存儲裝置,其經(jīng)配置以存儲輸出數(shù)據(jù)。

      在又一方面中,一種密碼編譯裝置包含:用于作為密碼編譯操作的一部分,將輸入數(shù)據(jù)與輪密鑰組合以獲得組合數(shù)據(jù)的裝置;用于通過采用以下中的至少一個的替換階段來路由組合數(shù)據(jù)的至少一部分的裝置:靜態(tài)查找表,其在有限域的子域中為其自身逆元素以獲得經(jīng)替換數(shù)據(jù);有限域的子域中的動態(tài)查找表,其中使用置換來實施所有替換操作以獲得經(jīng)替換數(shù)據(jù);或有限域的子域中的替代靜態(tài)查找表,其靜態(tài)地存儲獲得經(jīng)替換數(shù)據(jù)所需的所有置換;以及用于通過一或多個額外密碼編譯階段來路由經(jīng)替換數(shù)據(jù)從而產(chǎn)生輸出數(shù)據(jù)的裝置。

      在再一方面中,一種適用于密碼術的機器可讀存儲媒體包含一或多個指令,所述指令在由至少一個處理電路執(zhí)行時使得至少一個處理電路執(zhí)行以下操作:作為密碼編譯操作的一部分,將輸入數(shù)據(jù)與輪密鑰組合,以獲得組合數(shù)據(jù);通過采用以下中的至少一個的替換階段來路由組合數(shù)據(jù)的至少一部分:靜態(tài)查找表,其在有限域的子域中為其自身逆元素以獲得經(jīng)替換數(shù)據(jù);有限域的子域中的動態(tài)查找表,其中使用置換來實施所有替換操作以獲得經(jīng)替換數(shù)據(jù);或有限域的子域中的替代靜態(tài)查找表,其靜態(tài)地存儲獲得經(jīng)替換數(shù)據(jù)所需的所有置換;以及通過一或多個額外密碼編譯階段來路由經(jīng)替換數(shù)據(jù),從而產(chǎn)生輸出數(shù)據(jù)。

      附圖說明

      圖1說明采用掩蔽subbytes和invsubbytes操作的示范性掩蔽aes加解密系統(tǒng)和方法。

      圖2說明適用于圖1的aes系統(tǒng)和方法的示范性掩蔽subbytes處理器。

      圖3說明供aes密碼編譯裝置用以利用靜態(tài)查找表的示范性程序,所述靜態(tài)查找表為其自身逆元素且有助于例如subbytes或invsubbytes的掩蔽替換操作。

      圖4說明移動裝置的示范性芯片上系統(tǒng)(soc),其中所述soc包含具有靜態(tài)查找表的aes處理器,所述靜態(tài)查找表為其自身逆元素且有助于加密/解密的掩蔽替換操作的。

      圖5說明采用掩蔽subbytes和invsubbytes操作的示范性掩蔽aes加解密系統(tǒng)和方法,所述掩蔽subbytes和invsubbytes操作利用gf(22)靜態(tài)和動態(tài)查找表。

      圖6說明適用于圖5的aes系統(tǒng)和方法的示范性掩蔽subbytes處理器,其中subbytes處理器利用gf(22)靜態(tài)和動態(tài)查找表。

      圖7說明用于采用靜態(tài)和動態(tài)查找表的aessubbyte處理的gf(22)中的示范性掩蔽逆元素處理。

      圖8說明利用gf(22)中的靜態(tài)和動態(tài)查找表的掩蔽subbytes處理器的示范性組件。

      圖9是說明用于設備的硬件實施方案的實例的框圖,所述設備采用可以利用圖3至8的系統(tǒng)、方法和設備的處理系統(tǒng)。

      圖10是說明適用于混合實施方案的圖9的處理電路的示范性組件的框圖,在所述實施方案中,在替換階段中采用靜態(tài)表以及動態(tài)表。

      圖11是說明圖9的機器可讀媒體的示范性指令組件的框圖。

      圖12概述供密碼編譯裝置使用的示范性程序。

      圖13概述供密碼編譯裝置使用,尤其供aes分組加密算法使用的額外示范性程序。

      圖14是說明適用于一實施方案的圖9的處理電路的示范性組件的框圖,在所述實施方案中,在替換階段中采用動態(tài)表的而不采用對應的靜態(tài)表。

      圖15是說明圖14的機器可讀媒體的示范性指令組件的框圖。

      圖16是說明適用于一實施方案的圖9的處理電路的示范性組件的框圖,在所述實施方案中,在替換階段中采用靜態(tài)表而不采用對應動態(tài)表。

      圖17是說明圖14的機器可讀媒體的示范性指令組件的框圖。

      具體實施方式

      在以下描述中,給出具體細節(jié)以提供對本發(fā)明的各種方面的透徹理解。然而,所屬領域的技術人員將理解,可在沒有這些特定細節(jié)的情況下實踐所述方面。舉例來說,可以框圖展示電路以便避免以不必要的細節(jié)混淆所述方面。在其它情況下,可不詳細展示眾所周知的電路、結構和技術以免混淆本發(fā)明的所述方面。

      詞語“示范性”在本文中用以意指“充當實例、例子或說明”。本文中描述為“示范性”的任何實施方案或方面未必應解釋為比本發(fā)明的其它方面優(yōu)選或有利。同樣,術語“方面”不要求本發(fā)明的所有方面包含所討論的特征、優(yōu)點或操作模式。

      概述

      幾個新穎特征涉及適用于密碼編譯系統(tǒng)(例如根據(jù)aes配置的系統(tǒng))的裝置和方法。

      圖1說明用于加密100和解密101的示范性aes系統(tǒng)的階段,其中在為字節(jié)替換階段的subbytes和invsubbytes階段采用掩蔽。對于加密,在102處開始,對輸入明文執(zhí)行初始addroundkey操作,其中使當前狀態(tài)的各字節(jié)與輪密鑰塊組合。如上文所提到,“狀態(tài)”是4×4字節(jié)矩陣。也就是說,在addroundkey期間,子密鑰使用(例如)各子密鑰與狀態(tài)大小相同的rijndael的密鑰次序表而自主密鑰推導。隨后,通過使用按位xor使狀態(tài)的各字節(jié)與子密鑰的對應字節(jié)組合來加入子密鑰。在初始addroundkey操作之后,執(zhí)行加密輪103,其中每一輪包含僅掩蔽subbytes階段104、shiftrows階段106、mixcolumns階段108和另一addroundkey階段110。掩蔽subbytes階段104是標準aessubbytes階段的一種掩蔽版本。在掩蔽subbytes階段中,使用提供掩蔽的替換裝置或處理器來用對應subbyte代替狀態(tài)矩陣中的各字節(jié)。掩蔽替換在加密算法中提供非線性,同時還充當?shù)挚箓刃诺拦舻膶Σ?。在aes的一些習知實例中,subbytes裝置經(jīng)由gf(28)計算乘法逆元素,其中gf(28)為伽羅華域(即,有限域)。如下文將描述,經(jīng)修改版本實際上能夠使用gf(22)子域執(zhí)行乘法逆元素。在完成加密輪103之后,執(zhí)行最終加密輪114,其包含最終掩蔽subbytes階段116、最終shiftrows階段118和最終addroundkey階段120。輸出為經(jīng)加密密文。

      逆向操作解密101以將密文轉換成明文。簡而言之,在124處開始,對輸入密文執(zhí)行初始addroundkey操作,其中使當前狀態(tài)的各字節(jié)與輪密鑰塊組合。在初始addroundkey操作之后,執(zhí)行解密輪134,其中每一輪包含invshiftrows階段126、掩蔽invsubbytes替換階段128、invmixcolumns階段130和另一addroundkey階段132。掩蔽invsubbytes階段104是標準aesinvsubbytes階段的修改版本。在解密輪134之后,執(zhí)行最終解密輪136,其包含最終invshiftrows階段138、最終掩蔽invsubbytes替換階段140和最終addroundkey階段136,其輸出為經(jīng)解密明文。

      圖2說明掩蔽subbyte替換裝置或處理器200,其接收兩種輸入:am=(a+m)和m,即掩蔽值am和輸入掩碼m,其中a表示待加密數(shù)據(jù)的當前狀態(tài)的一個字節(jié)。輸出為掩蔽逆元素am-1和輸出掩碼m',其中掩蔽逆元素可以由am-1=(a-1+m')表示。實施掩蔽subbyte處理器200通常需要subbyte電路來執(zhí)行乘法逆元素和仿射變換。對于gf(28),subbyte操作采用兩個主要子步驟:(1)計算域的元素或字節(jié)的逆元素和(2)將所得逆元素(表示為gf(28)中的位的向量)乘以位矩陣并加上常數(shù)向量,從而執(zhí)行仿射變換。這些操作可利用圖2中未展示的且通過處理器200內部地產(chǎn)生的各種隨機位。就時間和/或電路面積而言,計算逆元素在計算上代價巨大。對于aes的gf實施方案,字節(jié)可以被看作位是多項式的對應冪的系數(shù)且乘法以不可約多項式為模。然而,替代使用gf(2)上的八維向量,可實際上限定字節(jié)來表示gf(24)上的二維向量,其中每一4位元素是gf(22)上的二維向量且每一2位元素是gf(2)上的二維向量。這可被稱為合成域或塔域表示。因而,8位逆元素操作被轉換成各采用2位計算的幾個4位操作。參見canright等人:極簡明的用于aes的“完美掩蔽”s盒(averycompact"perfectlymasked"s-boxforaes)(經(jīng)校正)。iacr密碼術預印本文庫2009:11(2009)(iacrcryptologyeprintarchive2009:11(2009))。合成域或塔域技術可應用到掩蔽subbyte操作以及未掩蔽subbytes。

      除用于計算乘法逆元素的前述組件之外,習知掩蔽subbyte處理器還包含8位隨機數(shù)產(chǎn)生器和額外電路,這可能取決于特定實施方案。舉例來說,盡管可提供查找表來促進某些操作,但這通常需要額外存儲器并因此消耗更多電路空間。如所提到,對于合成域運算,使用執(zhí)行aes操作的域的子域來執(zhí)行操作。就這一點而言,適用于合成域運算的乘法逆元素的計算通常需要:產(chǎn)生新的隨機位(例如就gf(22)中的canright式實施方案而言,多出六個)以及用以計算gf(22)和gf(24)的校正項與關鍵路徑并行的額外操作。還通常對關鍵路徑提供額外操作來改進安全性和應用校正項。對于各種canright式實施方案,還參見:canright,用于aes的極簡明s盒(averycompacts-boxforaes)。ches2005;canright,極簡明rijndaels盒(averycompactrijndaels-box),海軍研究生院技術報告:nps-ma-05-001(navalpostgraduateschooltechnicalreport:nps-ma-05-001);canright:避免掩蔽伽羅華乘法器中的掩碼再用(avoidmaskre-useinmaskedgaloismultipliers)。iacr密碼術預印本文庫2009:11(2009)(iacrcryptologyeprintarchive2009:12(2009))。

      對于gf(22)中的示范性非掩蔽逆元素處理,在aes裝置內提供電路,以基于輸入b=[b1,b0](其中b1和b0為兩個二位對,即,b1=(b11,b10)且b0=(b01,b00))來計算下式:

      中間計算:c=n×(b1+b0)2+(b1×b0)。

      (1)

      中間計算:c-1=c2。

      (2)

      最終結果:

      在這些方程式中,n為常數(shù)且c為合并值。應注意,這些方程式中的“×”和“+”運算分別表示伽羅華域中的乘法和加法運算,且因此不是普通算術運算。具體地說,運算(1)、(2)和p和q的計算是gf(22)中的相乘,其中p和q是b-1的上部部分和下部部分,且b-1是gf(22)的元素。

      對于gf(22)中的示范性掩蔽逆元素處理,實際上提供電路以在輸入bm=[b1m,b0m],[q1m,q0m]的情況下執(zhí)行以下操作:

      中間計算:cm=r+n×(b1m+b0m)2+(b1m×b0m)+

      +n×(q1+q0)2+(q1+q0)+

      +(b1m×q0)+(b0m×q1)

      (4)

      中間計算:

      最終結果:

      在這些方程式中,q1m、q0m表示兩個二位輸入掩碼值;b1m、b0m表示兩個二位掩蔽輸入值(即,其為如圖2中所展示的掩蔽輸入字節(jié)am的gf(22)組件);n同樣是常數(shù);r是兩個二位新掩碼且ti也是二位新掩碼。中間值cm是合并值且借助執(zhí)行安全掩蔽逆元素處理來計算。使用隨機數(shù)產(chǎn)生器由處理器200內部產(chǎn)生r和ti新掩碼,并在合并階段將其加入,從而改進安全性,因為如果沒有它們,在計算期間可能存在信息泄露。在最終結果中,以b0m+r2+...開始的項是校正項。同樣,在最終結果中,以b1mxr2+...開始的項也是校正項。同樣應注意,這些方程式中的“×”和“+”運算分別表示伽羅華域中的乘法和加法運算。類似于的計算pm和pm的計算(的上部部分和下部部分)使用gf(22)中的安全相乘來計算。通過在gf(22)中(而非在gf(28)中)執(zhí)行這些操作,掩碼從輸入到輸出的擴展得以簡化,同時保持安全性,因為無中間可觀測值與正計算的實際值相關。然而,計算極其復雜并因此費時,且如所提到,需要隨機數(shù)產(chǎn)生器來產(chǎn)生內部新位。

      因此,盡管使用合成域運算(例如gf(22))可相對于標準gf(28)實施方案降低subbytes的乘法逆元素處理的復雜度,但掩蔽subbytes處理器200可能仍需要相對大量的電路空間并消耗相對大量的時間,從而對整體性能造成負荷。在處理器內使用隨機數(shù)產(chǎn)生器可限制其處理速度。類似的問題適用于aes的解密部分的對應掩蔽invsubbytes裝置或處理器,其用作加密部分的掩蔽subbytes裝置的逆元素。

      圖3概述一種經(jīng)修改替換程序300,其可至少在一些實施方案中使用,以減少aes加密算法的subbytes或invsubbytes階段期間的替換操作數(shù)量或利用有限域中的合成域操作的密碼編譯裝置的對應替換操作內的替換操作數(shù)量。不需要隨機數(shù)產(chǎn)生器來使用此程序產(chǎn)生內部新位,又維持了安全性。通過避免在subbytes裝置中使用隨機數(shù)產(chǎn)生器,處理速度可相對于計算上文方程式(4)、(5)和(6)的結果的裝置有所改進。然而,在此混合實施方案中,可能需要一些額外的位以及靜態(tài)查找表和動態(tài)查找表。就這一點而言,圖3的經(jīng)修改subbytes程序使用在gf(22)中為自身的逆元素的靜態(tài)查找表來促進乘法逆元素的計算。

      在302處開始,作為有限域(例如gf(28))中的加密或解密aes密碼編譯操作的一部分,aes裝置將輸入文本(本文中通常稱作“數(shù)據(jù)”)與輪密鑰組合,從而獲得組合數(shù)據(jù)(例如,通過將明文與輪密鑰組合以供加密或將密文與輪密鑰組合以供解密)。這可(例如)對應于圖1的用于加密的初始addroundkey操作102,或對應于用于解密的初始addroundkey操作124。應注意,在本文中,“數(shù)據(jù)”可通常指的是由計算裝置(例如aes裝置或其組件)對其執(zhí)行操作的各種數(shù)量、字符或符號中的任何一個。對于在gf(22)中操作的計算組件,數(shù)據(jù)隨狀態(tài)的一部分改變。

      在圖3的304處,aes裝置通過采用在有限域的子域(例如gf(22))中為其自身逆元素以獲得經(jīng)替換數(shù)據(jù)的靜態(tài)查找表的掩蔽aes替換階段(例如,用于加密的掩蔽subbytes階段或用于解密的掩蔽invsubbytes階段)來路由組合數(shù)據(jù)的至少一部分。這可(例如)對應于用于加密的圖1的掩蔽subbytes操作104的經(jīng)修改版本,或對應于用于解密的圖1的掩蔽invsubbytes操作128的經(jīng)修改版本。在圖3的306處,aes裝置通過一或多個額外密碼編譯aes階段來路由經(jīng)替換數(shù)據(jù),從而產(chǎn)生輸出數(shù)據(jù)(例如,輸出用于加密的密文或輸出用于解密的經(jīng)解密明文)。這可對應于圖1的剩余加密或解密階段。

      在有限域為gf(28)且子域為gf(22)的一個實例中,可以使用gf(22)中的一個字節(jié)將靜態(tài)查找表表示為:

      t[·]={00,10,01,11}≡(·)-1

      (7)

      或其置換。對于合并,除了靜態(tài)查找表之外,aes裝置還可利用一個字節(jié)大小的動態(tài)表tm[·],以供在前述校正項(即,輸入掩碼)變得可用時即刻再計算掩蔽項。在這個實例中,t[·]和tm[·]是相異的表。因此,在一個實例中,輸入是校正項(輸入掩碼)t[(·)]和輸出掩碼的當前值;且輸出是tm[·],其中tm[·]由輸出掩碼的當前值掩蔽的t[·]且其索引由輸入掩碼校正:

      tm[i+校正項]=t[i]+輸出掩碼,i=0,1,2,3。

      (8)

      方程式(8)代替上文方程式(4)和(5)用以合并。因此,在合并階段的這個示范性實施方案中,輸入掩碼起到校正項作用且輸出掩碼僅僅是輸入掩碼的置換。當校正項變?yōu)榭捎脮r,與subbytes階段的其它操作同時或同步執(zhí)行動態(tài)查找表中的元素的計算。使用靜態(tài)和動態(tài)查找的混合實施方案可用于各種中間計算且可用于執(zhí)行乘法逆元素處理,以得到掩蔽subbytes階段的最終結果。

      應注意,在gf(22)子域的層面,置換數(shù)量較小,即,對于gf(22)子域僅存在四個元素。在gf(22)子域中計算乘法運算對應于執(zhí)行子域的一些元素的置換(因為子域是有限域,且因此子域中的所有乘法運算必定得到所述子域的元素)。因此,前述靜態(tài)表可用于有效地促進乘法運算,因為其存儲有各種置換。此外,子域中的逆元素處理是一種位調換。更具體地說,在gf(22)中:0的逆元素是0;1的逆元素是2;2的逆元素是1;且3的逆元素是3(其中值0、1、2和3意在表示gf(22)子域的容許值而非其一般運算等效物)。因此,僅僅通過使用靜態(tài)表來查找反轉值可輕易地執(zhí)行逆元素處理。再者,應注意,輸入值加上校正項(即輸入掩碼)將得到靜態(tài)表的置換。在gf(22)中僅存在四種置換:輸入掩碼為0時的同一性表,和輸入掩碼不為0時的三個其它字節(jié)。借此,置換由輸入掩碼選擇。通過使用索引向量除以gf(22)中的掩蔽輸入值來選擇輸出。因而,在不需要隨機數(shù)產(chǎn)生器或任何復雜計算的情況下便利地執(zhí)行合并。安全性級別大體上與上文所描述的先前技術相同,因為同時置換和計算各項。此外,憑借這種技術,在字節(jié)中被設置成一的位的數(shù)目在任何給定時間始終相同。這通過使得難以進行側信道攻擊(其可以其它方式利用被設置成零的位的數(shù)目的改變以獲得機密信息)來保持安全性。

      作為具體實例,下文描述使用為其自身逆元素的表t(且為清晰起見數(shù)值以十進制而非gf(22)表示)的未掩蔽逆運算。對于輸入值a=2,通過查找表t[a]的第a個元素來從所述表獲得其逆元素,所述逆元素在這個實例中為1:

      類似地,t[0]=0,t[1]=2等等。因此,以上運算表示常規(guī)(即,未掩蔽)逆元素,因為其可借助t[·]予以實施。

      對于掩蔽,存在三個主要步驟:

      (a)由輸入掩碼同時對t[·]的所有元素求和,并產(chǎn)生動態(tài)矩陣:tm[·]。

      (b)將tm的元素向左循環(huán)地置換輸出掩碼的量(其中輸入和輸出掩碼彼此一致)。

      (c)通過用輸入掩蔽值給tm加索引來獲得對應輸出掩碼。

      上文討論了gf(22)中的逆元素處理的中間運算。對于相乘,運算是類似的,其主要差別在于必須允許向左和向右置換。此外,置換的元素僅為非零的那些元素(因為與零相乘必定為零)。舉例來說,未掩蔽相乘可與以下運算結合(其中,同樣為清晰起見以十進制表示數(shù)值):

      應注意,可通過含有所有域元素{0,1,2,3}的數(shù)組的后續(xù)置換獲得m[]的各行/列。舉例來說,可通過t[]的置換來獲得m[]的各行/列。設單個向量mt[]={0,1,2,3}。如果操作數(shù)中的一個為零,那么得零,否則將非零元素向左移位b并以a給所得向量加索引。舉例來說,如果a=1且b=2,那么mt'[]={0,3,1,2}且mt'[1]=3,這等于gf(22)中的”a×b”。

      可憑借以下運算獲得掩蔽相乘”(a+m)×(b+m)”的結果:

      (a)如果掩蔽元素中的一個為零,那么得0。

      (b)否則mt'[]的所有非零元素用掩碼m求和。

      (c)mt'[]的所有元素(除了在位0處的元素)向左移位掩蔽b的量。

      (d)通過以a的掩蔽值給所得數(shù)組mt'加索引來獲得結果-a×b+m-。

      可憑借能夠向左和向右移位的單一額外字節(jié)或以完整大小的表等實現(xiàn)這些運算。就相乘而言,如果兩個操作數(shù)中的一個為零,那么相乘結果必定為零。還應注意,一般來說,裝置對輸出掩碼求和,輸出掩碼在這種狀況下可作為輸入掩碼,因為掩碼的加法運算會同時進行。這也是允許減少新隨機位和再使用gf(22)中的掩碼的機制。否則,例如在傳統(tǒng)canright式實施方案中,這種情況將是不大可能的。還應注意,mt不同于t。此外,僅通過循環(huán)移位t的元素無法從t獲得mt。同樣地,通過循環(huán)移位mt中的元素無法獲得t。然而,通過置換mt的位置1和3處的元素可獲得t,且反之亦然。

      因此,方程式(4)和(5)的中間計算可被前述表查找代替,且乘法運算使用剛才所描述的運算。實際上,用于相乘的值的置換數(shù)目略微小于用于逆元素處理的值的數(shù)目。就考慮到方程式(6)來說,應注意,的最終結果由兩個二位向量pm和qm構成,一個向量以t0開始且另一向量以t1開始,這兩個向量是內部產(chǎn)生的新位。為避免使用這些新位,如剛才所描述,最終相乘結果基于其它置換。

      因此,前述實例描述對字節(jié)am的兩個二位bm執(zhí)行的計算,所述字節(jié)由采用使用動態(tài)和靜態(tài)表的混合實施方案的掩蔽subbytes裝置處理??墒褂妙愃平M件來依序或并行處理來自am的其它位對,從而共同計算特定字節(jié)的掩蔽逆元素處理。如可了解,在aes加密的各種階段期間處理許多這類字節(jié)。在各subbytes階段期間,各個位對的處理速度的相對少的提高可最終獲得完成加密的整體處理速度的顯著提高。類似考慮因素適用于解密的invsubbytes階段。本文中還描述采用動態(tài)查找表而非靜態(tài)表的實施方案,以及本文中還描述采用靜態(tài)查找表而非動態(tài)表的實施方案。

      現(xiàn)將參考示范性實施方案來描述這些或其它特征,在所述示范性實施方案中,aes處理裝置是智能手機或類似用戶存取終端裝置內的芯片上系統(tǒng)soc處理器的組件。在這些裝置內,電路面積可能受限,且因此在高處理速度下消耗極小電路面積同時仍實現(xiàn)足夠安全性的aes處理器可能至關重要。然而,可在廣泛多種系統(tǒng)和裝置中利用并且通常可在采用aes或類似密碼編譯處理時實施密碼編譯系統(tǒng)的方面。舉例來說,其中可實施密碼編譯系統(tǒng)的其它硬件環(huán)境包含智能卡或各種其它存儲裝置或通信裝置以及用于與其共同使用的組件或外圍裝置。在智能卡內,電路空間尤其受到限制且時鐘速度可能相對緩慢,因此受益于并不消耗大量電路空間而仍快速且高效地操作的aes裝置。

      示范性soc硬件環(huán)境

      圖4說明根據(jù)其中可利用各種新穎特征的一個實例的移動通信裝置的soc處理電路400。soc處理電路可以是高通公司的snapdragontm處理電路。soc處理電路400包含應用程序處理電路410,其包含經(jīng)裝備以與aes處理器413結合操作的多核cpu412,所述aes處理器413采用用于掩蔽的靜態(tài)和動態(tài)查找表(包含為其自身逆元素的靜態(tài)表)且包含aes加密裝置415和aes解密裝置417(其可能均包含所述靜態(tài)表中的一或多個以及一或多個動態(tài)查找表)。

      應用程序處理電路410通??刂埔苿油ㄐ叛b置的全部組件的操作。在一個方面,應用程序處理電路410耦合到用于控制數(shù)據(jù)的存儲的主機存儲控制器450,所述數(shù)據(jù)的存儲包含內部共享存儲裝置432的密鑰存儲元件433中萬能密鑰的存儲,所述內部共享存儲裝置432形成內部共享硬件(hw)資源430的部分。應用程序處理電路410還可包含啟動只讀存儲器(rom)和/或隨機存取存儲器(ram)418,其存儲有用于soc處理電路400的各種組件的啟動順序指令。soc處理電路400進一步包含受應用程序處理電路410控制的一或多個外圍子系統(tǒng)420。外圍子系統(tǒng)420可包含(但不限于):存儲子系統(tǒng)(例如,rom、ram)、視頻/圖形子系統(tǒng)(例如,數(shù)字信號處理電路(dsp)、圖形處理電路單元(gpu))、音頻子系統(tǒng)(例如,dsp、模/數(shù)轉換器(adc)、數(shù)/模轉換器(dac))、功率管理子系統(tǒng)、安全子系統(tǒng)(例如,其它加密組件和數(shù)字權限管理(drm)組件)、輸入/輸出(i/o)子系統(tǒng)(例如,鍵盤、觸摸屏)以及有線和無線連接子系統(tǒng)(例如,通用串行總線(usb)、全球定位系統(tǒng)(gps)、wi-fi、全球移動通信系統(tǒng)(gsm)、分碼多重存取(cdma)、4g長期演進(lte)調制解調器)。示范性外圍設備子系統(tǒng)420為調制解調器子系統(tǒng),其包含dsp422、各種其它硬件(hw)和軟件(sw)組件424以及各種射頻(rf)組件426。在一個方面中,各外圍子系統(tǒng)420還包含存儲有相關外圍子系統(tǒng)420的主要啟動映像的啟動ram或rom428。

      如所提到,soc處理電路400進一步包含各種內部共享hw資源430,例如內部共享存儲裝置432(例如,靜態(tài)ram(sram)、快閃存儲器等),其由應用程序處理電路410和各種外圍子系統(tǒng)420共享,以存儲各種運行時間數(shù)據(jù)或其它參數(shù)以及提供主機存儲器。在圖4的實例中,內部共享存儲裝置432包含可用于存儲密碼編譯密鑰或口令的前述密鑰存儲元件、部分或組件433。在其它實例中,密鑰存儲在移動裝置內的其它地方。

      在一個方面中,soc400的組件410、418、420、428和430集成在單芯片襯底上。soc處理電路400進一步包含各種外部共享hw資源440,其可位于不同的芯片襯底上并且可經(jīng)由一或多個總線而與soc處理電路400通信。外部共享hw資源440可包含(例如)外部共享存儲器442(例如雙倍數(shù)據(jù)速率(ddr)動態(tài)ram)和/或永久性或半永久性數(shù)據(jù)存儲器444(例如安全數(shù)字(sd))卡、硬盤驅動器(hdd)、嵌入式多媒體卡、通用閃存裝置(ufs)等),其可由應用程序處理電路410和各種外圍子系統(tǒng)420共享以存儲各種類型的數(shù)據(jù),例如操作系統(tǒng)(os)信息、系統(tǒng)文件、程序、應用程序、用戶數(shù)據(jù)、音頻/視頻文件等。當啟動并入有soc處理電路400的移動通信裝置時,soc處理電路開始系統(tǒng)啟動過程,其中應用程序處理電路410可存取啟動ram或rom418以檢索用于soc處理電路400的啟動指令,包含用于各種外圍子系統(tǒng)420的啟動順序指令。外圍子系統(tǒng)420還可具有額外外圍啟動ram或rom428。

      示范性aes加密/解密程序

      圖5說明用于在加密500和解密501中使用的圖4的aes處理器413的示范性階段。示范性aes處理器413采用使用用于subbytes操作和invsubbytes操作的gf(22)靜態(tài)查找表的掩蔽aes加密/解密。對于加密,在502處開始,對輸入明文執(zhí)行初始addroundkey操作,其中使當前狀態(tài)的各字節(jié)與輪密鑰塊組合。在初始addroundkey操作之后,執(zhí)行一組加密輪503,其中每一輪包含利用一或多個gf(22)靜態(tài)和動態(tài)查找表來促進subbytes操作的掩蔽subbytes階段504。為簡潔起見,盡管在圖式中掩蔽subbytes階段504與掩蔽subbytesw/gf(22)靜態(tài)表有關,但應了解,裝置可包含例如一或多個動態(tài)查找表的額外組件。各加密輪503還包含shiftrows階段506、mixcolumns508階段和另一addroundkey階段510。在一組加密輪503之后,執(zhí)行最終加密輪514,其包含最終掩蔽subbytes階段516、最終shiftrows階段518和最終addroundkey階段520。如同掩蔽subbytes階段504,最終掩蔽subbytes階段516利用一或多個gf(22)靜態(tài)和動態(tài)查找表來促進subbytes操作。輸出為經(jīng)加密密文。

      逆向操作解密501以將密文轉換成明文。簡而言之,在524處開始,對輸入密文執(zhí)行初始addroundkey操作,其中使當前狀態(tài)的各字節(jié)與輪密鑰塊組合。在初始addroundkey操作之后,執(zhí)行一組解密輪534,其中每一輪包含invshiftrows階段526、掩蔽invsubbytes替換階段528、invmixcolumns階段530和另一addroundkey階段532。掩蔽invsubbytes階段528是利用一或多個gf(22)靜態(tài)和動態(tài)查找表來促進invsubbytes操作的標準掩蔽aesinvsubbytes階段的經(jīng)修改版本。盡管在圖式中掩蔽invsubbytes階段528與subbytesw/gf(22)靜態(tài)表有關,但同樣應了解,裝置可包含例如一或多個動態(tài)查找表的額外組件。在一組解密輪534之后,執(zhí)行最終解密輪536,其包含最終invshiftrows階段538、最終掩蔽invsubbytes替換階段540和最終addroundkey階段536。如同掩蔽invsubbytes階段528,最終掩蔽invsubbytes階段538利用一或多個gf(22)靜態(tài)和動態(tài)查找表來促進inversesubbytes操作。輸出為經(jīng)解密明文。

      圖6說明使用gf(22)靜態(tài)和動態(tài)查找表的示范性掩蔽subbyte替換處理器600,其用作圖5的subbytes裝置504和516的組件或供其它經(jīng)合適裝備組件、裝置、系統(tǒng)或處理電路使用。如同圖2的掩蔽subbyte替換處理器200,圖6的處理器600接收兩種輸入:am=(a+m)和m,即,subbyte值am和輸入掩碼m,其中a表示待加密數(shù)據(jù)的一部分(例如其當前狀態(tài)的一個字節(jié))。輸出為subbyte逆元素am-1和輸出掩碼m',其中subbyte逆元素可以由am-1=(a-1+m')表示。因此,經(jīng)修改替換處理器600的輸入和輸出與圖2的替換處理器200的輸入和輸出相同,且每當以其它方式采用替換處理器200時,可采用圖6的經(jīng)修改替換處理器。然而,圖6的替換處理器600的內部組件不同于圖2的內部組件,因為替換處理器600包含gf(22)中的為其本身逆元素以有助于計算乘法逆元素的至少一個靜態(tài)查找表以及例如動態(tài)查找表的其它組件。也就是說,圖6的替換處理器600利用合成域或塔域計算,所述計算使用靜態(tài)和動態(tài)查找表有助于gf(22)計算的那些gf(22)。

      圖7說明供圖6的掩蔽subbyte替換裝置或處理器600使用或供其它合適裝備組件、裝置、系統(tǒng)或處理電路使用的示范性程序。這可被稱為“混合(hybrid)”程序,因為其采用靜態(tài)和動態(tài)表。在702處,替換處理器輸入加密算法的當前狀態(tài)的字節(jié)a和用作校正項的輸入掩碼m,并計算am=a+m。在704處,處理器從am獲得位對bm,以供在gf(22)中處理。作為所述過程的一部分,裝置采用將gf(24)的元素變?yōu)間f(22)×gf(22)中的元素對的程序。舉例來說,設想gf(24)中的4位串b=(b11,b10,b01,b00)。在一般依據(jù)(例如,上文所引用canright論文中討論的依據(jù))下,位拆分用于從gf(24)轉換到gf(22)。因此,映射使得b=[b1,b0]對應于以下位對的級聯(lián):b1=(b11,b10)-b的左側部分或上部部分,和b0=(b01,b00)-b的右側部分或下部部分。應注意,b1和b0是gf(22)中的元素。同樣在704處,替換處理器輸入或存取gf(22)靜態(tài)查找表t[·]和輸出掩碼m'的當前值,其中靜態(tài)查找表t[·]可表示為:

      t[·]={00,10,01,11}≡(·)-1

      (9)

      (或其置換),且輸出掩碼m'的初始當前值可被設置成輸入掩碼的值或其它合適默認值。在706處,替換處理器計算gf(22)動態(tài)查找tm[·]的當前值,其中tm[·]由輸出掩碼m'的當前值掩蔽且其索引i由校正項(例如由輸入掩碼)校正:

      tm[i+校正項]=t[i]+輸出掩碼。

      (10)

      在708處,替換處理器使用tm[·]、mt[]和mt'[](至少原則上)以及輸出掩碼m'的當前值來計算其中bm-1=(b-1+m')的b的掩蔽值(即,bm)的乘法逆元素。所述操作的細節(jié)參見上文。在710處,如果需要從掩蔽輸入字節(jié)am來處理額外位對bm,那么處理返回到704。一旦最后一個位對bm經(jīng)處理,那么聚集位對以得到am-1,隨后將其輸出到aes裝置的下一階段。就這一點而言,計算gf(22)值以產(chǎn)生結果的左側和右側部分,例如并將其聚集在一起以提供gf(24)中的元素,其為:同樣,所述操作的細節(jié)參見上文。

      應注意,就gf(24)中的逆元素處理而言,將為輸入bm的逆元素。就不同于canright表示的表示而言,例如當以傳統(tǒng)多項式基礎表示伽羅華域的元素時,存在從gf(24)到gf(22)的線性映射且反之亦然,這比位拆分和聚集更復雜。因此,本文中所描述的技術的方面獨立于伽羅華域中的元素的特定表示。也就是說,代替執(zhí)行上文方程式(4)、(5)和(6)的所有復雜計算,裝置可實際上計算(圖7的操作706和708內):

      cm-1=tm[cm;m]

      (11)

      bm-1=(pm,qm)=(mt'[cm-1;b0,q1],mt'[cm-1;b1,q0])。

      (12)

      在(11)中,cm是索引,tm和m用以計算循環(huán)置換。在(12)中,cm-1給mt'加索引,而bi及qi用來計算循環(huán)置換。gf(24)的結果是二位對bm-1和其對應掩碼(用于gf(22)中逆元素處理的輸入掩碼),所述掩碼為q=[q1,q0],最后組合位對和掩碼從而得到輸出am-1。如已解釋,基于從am獲得的bm的組件來在gf(22)中執(zhí)行使用靜態(tài)和動態(tài)表的計算。

      圖8說明圖6的掩蔽subbyte替換處理器600的示范性組件800,所述處理器采用使用靜態(tài)和動態(tài)查找表的混合配置。掩碼額外組件802將由掩碼產(chǎn)生器804所產(chǎn)生的掩碼m與加密算法的當前狀態(tài)的輸入字節(jié)a相加,從而得到am=a+m和m。這些值是去往位選擇組件806的輸入,所述組件用以從字節(jié)am獲得呈bm的二位對,以用于gf(22)中的逆元素處理。通過利用經(jīng)由gf(22)中的靜態(tài)查找表812(即,t[·])所獲得的gf(22)中的動態(tài)查找表810(即,tm[·])中的信息,gf(22)乘法逆元素組件808用以使用已描述技術來執(zhí)行呈bm的所述二位對的乘法逆元素。當可從掩碼產(chǎn)生器804獲得掩碼值(即,校正值)時,動態(tài)查找表810具有“正在”計算的值。在這個實例中,乘法逆元素組件808還使用一或多個向量813,以存儲結果值的左側和右側部分。(例如,上文所討論的

      乘法逆元素組件808的輸出包含bm-1中反轉的兩個二位和對應輸出掩碼m'。隨后,使用裝置814將反轉位對bm-1與其它位對聚集在一起,所述裝置聚集(或以其它方式合并或組合)反轉位對bm-1與從am推導的其它反轉位對,從而得到反轉掩蔽字節(jié)am-1=(a-1+m')。所述操作的描述參見上文。在一個實施方案中,如由箭頭816所展示,在循環(huán)中執(zhí)行組件806、808和814的操作,以處理掩蔽字節(jié)am的所有位對。然而,在其它實施方案中,提供一組gf(22)乘法逆元素組件808以并行操作,使得可同時使掩蔽字節(jié)am的所有位對逆向以便減少處理時間。應注意,盡管未展示,但圖8的處理器800還可包含用于從am-1移除掩碼以得到供aes加密裝置的下一階段處理的最終輸出a-1的組件。

      對于解密,提供類似組件以執(zhí)行掩蔽invsubbytes操作(而非掩蔽subbytes)。此外,盡管關于子域為gf(22)的aes實例進行了描述,但本文中所描述的系統(tǒng)和方法的方面適用于除aes以外的加密算法并適用于除gf(22)以外的有限子域。

      根據(jù)本文中所呈現(xiàn)的發(fā)明的方面,可提供利用以下中的一或多個的實施方案:

      a.實施方案可完全采用靜態(tài)表,例如通過靜態(tài)地存儲所有所需置換。

      b.實施方案可采用動態(tài)表,其中以置換的形式進行校正項和運算。在這種情況下,tm可以是t的置換。

      c.實施方案可采用靜態(tài)表和動態(tài)表(即,上文主要描述的混合配置),其中靜態(tài)地存儲一些表(例如,{0,1,2,3}和未掩蔽逆元素{0,2,1,3}),以按位xor運算來推導表的掩蔽版本且通過首先置換和給表的掩蔽版本加索引來進行掩蔽操作。如所解釋,盡管對于gf(22)中的掩蔽逆元素和掩蔽相乘的計算來說,這個過程可以是類似的,但具體置換不同。

      上文詳細地描述了混合版本(即,實施方案“c”)??梢源篌w類似的方式來實施全靜態(tài)版本(即,實施方案“a”),同時在逆元素處理期間考慮以下條件:

      輸入:cm=c+m;輸出:

      就這一點而言,因為m∈{0,1,2,3},所以裝置可靜態(tài)地存儲t[]+m的可能結果的預先計算值,其中t[]={0,2,1,3}。如下文所說明,這對應于存儲用于掩蔽逆元素處理的后續(xù)4字節(jié)矩陣。當m=0時,第一行為t[]+m;當m=1時,第二行為t[]+m;當m=2時,第三行為t[]+m;且當m=3時,第四行為t[]+m。

      {0,2,1,3,

      2,1,3,0,

      3,1,2,0,

      1,2,0,3}

      為計算掩蔽逆元素(即,輸出),校正項給上文矩陣的一行加索引(例如,如果m=0,那么校正項給行零加索引),并使用掩蔽輸入(即,輸入cm=c+m)來給所述列加索引。盡管待存儲的置換數(shù)目較大,但相同原理適用于掩蔽相乘。

      可以大體類似的方式來實施全動態(tài)版本(即,實施方案“b”),同時,在逆元素處理期間考慮以下條件(其中,輸入和輸出與剛才所展示相同):

      輸入:cm=c+m;輸出:

      全動態(tài)逆元素處理從包含域元素(例如{0,1,2,3})的單一字節(jié)和臨時存儲開始,從而允許所述域中的置換和元素并執(zhí)行所需掩蔽操作。舉例來說,就掩蔽逆元素處理而言,首先調換元素1和2,隨后用校正項的值來置換。可用輸入cm=c+m來給這個置換順序的結果加索引,從而產(chǎn)生所需輸出

      舉例來說,假設cm=2+1=3,那么裝置可經(jīng)配置以計算域運算中的掩蔽逆元素:執(zhí)行對應于如先前案例中所說明的選擇和移位置換的置換。這些置換的結果是域(即,{0,1,2,3})的元素的以下實例:{3,2,1,0}。更具體地說,{0,1,2,3}的置換起到調換靠內的兩個值(例如,1和2)并隨后調換第一個和最后一個值(例如,0和3)從而產(chǎn)生{3,2,1,0}的作用。正如所料,用掩蔽輸入cm=3來給上表加索引的結果是當完成逆元素處理時,將動態(tài)表復原到其初始值(即,{0,1,2,3}),以適應接下來的加密/解密請求。類似地,對于相乘,可實施其它類型的置換。

      示范性系統(tǒng)和方法

      圖9說明其中可實施圖3至8的系統(tǒng)、方法和設備的整體系統(tǒng)或設備900。根據(jù)本發(fā)明的各種方面,元件、或元件的任何部分、或元件的任何組合可用包含一或多個處理電路904(例如圖2的soc處理電路)的處理系統(tǒng)914來實施。舉例來說,設備900可以是移動通信系統(tǒng)的用戶設備(ue)。設備900可與無線電網(wǎng)絡控制器(rnc)一起使用。除了soc之外,處理電路904的實例還包含:微處理電路、微控制器、數(shù)字信號處理電路(dsp)、現(xiàn)場可編程門陣列(fpga)、可編程邏輯裝置(pld)、狀態(tài)機、門控邏輯、離散硬件電路以及經(jīng)配置以執(zhí)行貫穿本發(fā)明所描述的各種功能性的其它合適的硬件。再者,處理系統(tǒng)914可以是服務器(例如,圖1所展示的服務器)的組件。也就是說,如設備900中所利用的處理電路904可用于實施如上文所描述的或圖3、4、7和8中所說明的過程(以及下文討論的在圖12和13中所說明的過程)中的任何一或多者(例如用于加密和解密的過程)。

      在圖9的實例中,可使用通常由總線902表示的總線架構來實施處理系統(tǒng)914??偩€902可取決于處理系統(tǒng)914的具體應用和整體設計約束而包含任何數(shù)目個互連總線和橋接器??偩€902鏈接各種電路,所述電路包含一或多個處理電路(通常由處理電路904表示)、存儲裝置905以及機器可讀媒體、處理器可讀媒體、處理電路可讀媒體或計算機可讀媒體(通常由非暫時性機器可讀媒體906表示)??偩€902還可將此項技術中眾所周知的且因此將不再進一步描述的各種其它電路(例如定時源、外圍裝置、電壓調節(jié)器和功率管理電路)鏈接在一起。總線接口908在總線902與收發(fā)器910之間提供接口。收發(fā)器910提供用于經(jīng)由傳輸媒體與各種其它設備通信的裝置。取決于設備的性質,還可提供用戶接口912(例如,小鍵盤、顯示器、揚聲器、麥克風、操縱桿)。

      處理電路904負責管理總線902和一般處理,包含執(zhí)行存儲在機器可讀媒體906上的軟件。軟件在由處理電路904執(zhí)行時使得處理系統(tǒng)914執(zhí)行在本文中針對任何特定設備所描述的各種功能。機器可讀媒體906還可用于存儲由處理電路904在執(zhí)行軟件時操控的數(shù)據(jù)。

      處理系統(tǒng)中的一或多個處理電路904可執(zhí)行軟件或軟件組件。軟件應被廣義上解釋為意指指令、指令集、代碼、代碼段、程序代碼、程序、子程序、軟件模塊、應用程序、軟件應用程序、軟件包、例程、子例程、對象、可執(zhí)行文件、執(zhí)行線程、步驟、函數(shù)等,而不管其是被稱作軟件、固件、中間件、微碼、硬件描述語言還是其它。處理電路可執(zhí)行任務。代碼段可以表示步驟、函數(shù)、子程序、程序、例程、子例程、模塊、軟件包、類,或指令、數(shù)據(jù)結構或程序語句的任意組合。一個代碼段可以通過傳遞和/或接收信息、數(shù)據(jù)、自變量、參數(shù)或存儲內容耦合到另一代碼段或硬件電路。信息、自變量、參數(shù)、數(shù)據(jù)等可經(jīng)由包含存儲器共享、消息傳遞、令牌傳遞、網(wǎng)絡傳輸?shù)热魏魏线m的手段傳遞、轉發(fā)或傳輸。

      軟件可駐留在機器可讀媒體906上。機器可讀媒體906可為非暫時性機器可讀媒體。舉例來說,非暫時性處理電路可讀媒體、機器可讀媒體或計算機可讀媒體包含:磁性存儲裝置(例如,硬盤、軟盤、磁條)、光盤(例如,壓縮光盤(cd)或數(shù)字多功能光盤(dvd))、智能卡、閃存存儲器裝置(例如,卡、棒或鑰匙形驅動器)、ram、rom、可編程rom(prom)、可擦除prom(eprom)、電可擦除prom(eeprom)、寄存器、可裝卸磁盤、硬盤、cd-rom以及用于存儲可以通過機器或計算機存取和讀取的軟件和/或指令的任何其它合適的媒體。術語“機器可讀媒體”、“計算機可讀媒體”、“處理電路可讀媒體”和/或“處理器可讀媒體”可包含(但不限于)非暫時性媒體,例如便攜式或固定式存儲裝置、光學存儲裝置以及能夠存儲、包含或攜載指令和/或數(shù)據(jù)的各種其它媒體。因此,本文中所描述的各種方法可以完全或部分通過可存儲在“機器可讀媒體”、“計算機可讀媒體”、“處理電路可讀媒體”和/或“處理器可讀媒體”中且通過一或多個處理電路、機器和/或裝置執(zhí)行的指令和/或數(shù)據(jù)來實施。舉例來說,機器可讀媒體還可包含載波、傳輸線,以及用于傳輸可由計算機存取及讀取的軟件和/或指令的任何其它合適的媒體。

      機器可讀媒體906可駐留在處理系統(tǒng)914中、在處理系統(tǒng)914外部,或跨越包含處理系統(tǒng)914的多個實體而分布。機器可讀媒體906可體現(xiàn)在計算機程序產(chǎn)品中。舉例來說,計算機程序產(chǎn)品可包含封裝材料中的機器可讀媒體。所屬領域的技術人員將認識到,如何最好地實施貫穿本發(fā)明呈現(xiàn)的所描述功能性取決于特定應用及強加于整個系統(tǒng)上的總設計約束。舉例來說,機器可讀存儲媒體906可具有一或多個指令,所述指令在由處理電路904執(zhí)行時使得處理電路執(zhí)行以下操作:作為密碼編譯操作的一部分,將輸入數(shù)據(jù)與輪密鑰組合以獲得組合數(shù)據(jù);通過采用在有限域的子域中為其自身逆元素以獲得經(jīng)替換數(shù)據(jù)的靜態(tài)查找表的替換階段來路由組合數(shù)據(jù)的至少一部分;以及通過一或多個額外密碼編譯階段來路由經(jīng)替換數(shù)據(jù),從而產(chǎn)生輸出數(shù)據(jù)。

      圖式中所說明的組件、步驟、特征和/或功能中的一或多個可重新布置和/或組合成單個組件、塊、特征或功能或體現(xiàn)于若干組件、步驟或功能中。在不脫離本發(fā)明的情況下,還可添加額外元件、組件、步驟和/或功能。圖式中所說明的設備、裝置和/或組件可經(jīng)配置以執(zhí)行圖式中描述的方法、特征或步驟中的一或多個。本文中所描述的算法也可高效地實施于軟件中和/或嵌入于硬件中。

      可使用通用處理電路、數(shù)字信號處理電路(dsp)、專用集成電路(asic)、現(xiàn)場可編程門陣列(fpga)或其它可編程邏輯組件、離散門或晶體管邏輯、離散硬件組件或其經(jīng)設計以執(zhí)行本文中描述的功能的任何組合來實施或執(zhí)行結合本文中公開的實例而描述的各種說明性邏輯塊、模塊、電路、元件和/或組件。通用處理電路可以是微處理電路,但在替代方案中,處理電路可以是任何習知處理電路、控制器、微控制器或狀態(tài)機。處理電路還可被實施為計算組件的組合,例如,dsp和微處理電路的組合、多個微處理電路的組合、結合dsp核心的一或多個微處理電路的組合或任何其它此類配置。

      因此,在本發(fā)明的一個方面中,圖4中所說明的處理電路413可以是經(jīng)專門設計和/或硬連線以執(zhí)行圖3、4、7和8中所描述的(以及下文討論的在圖12和13中所說明的那些)算法、方法和/或塊(例如關于加密和解密消息的那些算法、方法和/或塊)的專用處理電路(例如,asic)。因此,這種專用處理電路(例如,asic)可以是用于執(zhí)行圖3、4、7和8中所描述的(以及下文討論的在圖12和13中所說明的那些)算法、方法和/或塊的裝置的一個實例。機器可讀存儲媒體可存儲指令,所述指令在由專用處理電路(例如,asic)執(zhí)行時使得專用處理電路執(zhí)行本文中所描述的算法、方法和/或塊。在本發(fā)明的另一方面中,圖1的遠程服務器系統(tǒng)108還可包含經(jīng)專門設計和/或硬連線以執(zhí)行圖3、4、7和8中所描述的(以及下文討論的在圖12和13中所說明的那些)算法、方法和/或塊(例如關于加密和解密消息的那些算法、方法和/或塊)的專用處理電路。因此,這種專用處理電路可以是用于執(zhí)行圖3、4、7和8中所描述的(以及下文討論的在圖12和13中所說明的那些)算法、方法和/或塊的裝置的一個實例。機器可讀存儲媒體可存儲指令,所述指令在由專用處理電路(例如,asic)執(zhí)行時使得專用處理電路執(zhí)行本文中所描述的算法、方法和/或塊。

      在至少一些實例中,提供一種密碼編譯裝置,其包含:用于作為密碼編譯操作的一部分將輸入數(shù)據(jù)與輪密鑰組合以獲得組合數(shù)據(jù)的裝置;用于通過采用在有限域的子域中為其自身逆元素以獲得經(jīng)替換數(shù)據(jù)的靜態(tài)查找表的替換階段來路由組合數(shù)據(jù)的至少一部分的裝置;以及用于通過一或多個額外密碼編譯階段來路由經(jīng)替換數(shù)據(jù)從而產(chǎn)生輸出數(shù)據(jù)的裝置。

      圖10說明(例如)移動裝置或智能卡的處理電路904的所選和示范性組件,所述移動裝置或智能卡包含適用于采用靜態(tài)和動態(tài)表的混合實施方案的aes或其它密碼編譯裝置1000。密碼編譯裝置1000包含輸入數(shù)據(jù)/輪密鑰組合模塊/電路1002(例如addroundkey模塊/電路),其用來作為密碼編譯操作的一部分將輸入數(shù)據(jù)(例如用于加密的明文或用于解密的密文)與輪密鑰組合以獲得組合數(shù)據(jù)。密碼編譯裝置1000還包含:替換階段模塊/電路1004(例如,掩蔽subbytes和/或掩蔽invsubbytes模塊/電路),其采用在有限域的子域中為其自身逆元素以獲得經(jīng)替換數(shù)據(jù)的靜態(tài)查找表;以及一或多個額外密碼編譯階段模塊/電路1006(例如,shiftrows、mixcolumns等),其用來通過一或多個額外密碼編譯階段來處理經(jīng)替換數(shù)據(jù),從而產(chǎn)生輸出數(shù)據(jù)。加密輸入/輸出控制器1008用來控制用于加密的數(shù)據(jù)的輸入和輸入,并包含用來輸入待加密明文的明文輸入模塊/電路1010和用來輸出密文的密文輸出模塊/電路1012。解密輸入/輸出控制器1014用來控制用于解密的數(shù)據(jù)的輸入和輸出,并包含用來輸入待解密密文的密文輸入模塊/電路1016和用來輸出明文的明文輸出模塊/電路1018。在這個實例中,替換階段模塊/電路1004包含在有限域的子域(例如[·]={00,01,10,11}和其在gf(22)中的置換,其中有限域為gf(28))中為其自身逆元素的靜態(tài)查找表1020。替換階段模塊/電路1022還包含有限域的子域中的動態(tài)查找表1022(例如有限域為gf(28)的gf(22)動態(tài)表)。如已解釋,這些表有助于掩蔽乘法逆元素處理操作,所述操作可在掩碼產(chǎn)生器1024、位對反轉器1026和乘法器1028的控制下執(zhí)行,所述操作中的每一個在有限域的gf(22)或某一其它合適子域中操作。

      圖11說明供在加密和解密中使用的適用于采用靜態(tài)和動態(tài)表的混合實施方案的機器可讀媒體或計算機可讀媒體906的所選和示范性指令。提供一組aes或其它密碼編譯裝置處理指令1100,所述指令在由圖9的處理電路904執(zhí)行時使得處理電路控制或執(zhí)行加密和解密操作。密碼編譯裝置處理指令1100包含輸入數(shù)據(jù)/輪密鑰組合指令1102(例如addroundkey指令),其用來作為密碼編譯操作的一部分將輸入數(shù)據(jù)(例如用于加密的明文或用于解密的密文)與輪密鑰組合,以獲得組合數(shù)據(jù)。密碼編譯指令1100還包含:替換階段指令1104(例如,掩蔽subbytes和/或掩蔽invsubbytes指令),其采用在有限域的子域中為其自身逆元素以獲得經(jīng)替換數(shù)據(jù)的靜態(tài)查找表;以及一或多個額外密碼編譯階段指令1106(例如,shiftrows指令、mixcolumns指令等),其用來通過一或多個額外密碼編譯階段來處理經(jīng)替換數(shù)據(jù),從而產(chǎn)生輸出數(shù)據(jù)。加密輸入/輸出控制器指令1108用來控制用于加密的數(shù)據(jù)的輸入和輸出,并包含用來輸入待加密明文的明文輸入指令1110和用來輸出密文的密文輸出指令1112。解密輸入/輸出控制器指令1114用來控制用于解密的數(shù)據(jù)的輸入和輸出,并包含用來輸入待解密密文的密文輸入指令1116和用來輸出明文的明文輸出指令1118。在這個實例中,替換階段指令1104還可包含適用于在有限域的子域(例如[·]={00,01,10,11}和其在gf(22)中的置換,其中有限域為gf(28))中為其自身逆元素的靜態(tài)查找表1120的指令。替換階段指令1122還可包含適用于有限域的子域中的動態(tài)查找表1122(例如有限域為gf(28)的gf(22)動態(tài)表)的指令。如已解釋,這些表有助于掩蔽乘法逆元素處理操作,所述操作可在掩碼產(chǎn)生器指令1124、位對反轉器指令1126和乘法器指令1128的控制下執(zhí)行,所述操作中的每一個在有限域的gf(22)或某一其它合適子域中操作。

      圖12概括地說明并概述可由圖9的處理電路904的密碼編譯裝置或其它合適裝備的密碼編譯裝置執(zhí)行的用于加密和/解密的方法或程序1200。在1202處,作為密碼編譯操作的一部分,密碼編譯裝置將輸入數(shù)據(jù)與輪密鑰組合,以獲得組合數(shù)據(jù)。組合數(shù)據(jù)可以是(例如)明文的一部分、掩蔽明文的一部分、隨明文改變的值、隨掩蔽明文改變的值、密文的一部分、掩蔽密文的一部分、隨密文改變的值和/或隨掩蔽密文改變的值。在1204處,密碼編譯裝置通過采用以下中的至少一個的替換階段來路由組合數(shù)據(jù)的至少一部分:(a)靜態(tài)查找表,其在有限域的子域中為其自身逆元素以獲得經(jīng)替換數(shù)據(jù);(b)有限域的子域中的動態(tài)查找表,其中使用置換來實施所有替換操作以獲得經(jīng)替換數(shù)據(jù);或(c)有限域的子域中的替代靜態(tài)查找表,其靜態(tài)地存儲獲得經(jīng)替換數(shù)據(jù)所需的所有置換。在1206處,密碼編譯裝置通過一或多個額外密碼編譯階段來路由經(jīng)替換數(shù)據(jù),以產(chǎn)生輸出數(shù)據(jù)。

      圖13說明并概述可由圖9的處理電路904的密碼編譯裝置或其它合適裝備的密碼編譯裝置執(zhí)行的用于加密和/解密的其它方法或程序1300。在1302處,作為aes加密算法的密碼編譯操作的一部分,密碼編譯裝置將輸入數(shù)據(jù)與輪密鑰組合,以獲得組合數(shù)據(jù),其中密碼編譯操作是加密操作,輸入數(shù)據(jù)是明文,且輸出數(shù)據(jù)是密文,和/或密碼編譯操作是解密操作,輸入數(shù)據(jù)是密文,且輸出數(shù)據(jù)是明文,且其中將輸入數(shù)據(jù)與輪密鑰組合包含通過aes加密算法的addroundkey階段來路由輸入數(shù)據(jù),其中將輸入數(shù)據(jù)的初始狀態(tài)的各字節(jié)與輪密鑰塊組合。在1304處,密碼編譯裝置通過采用在有限域(例如gf(28))的子域(例如gf(22))中為其自身逆元素以獲得經(jīng)替換數(shù)據(jù)的靜態(tài)查找表的替換階段來路由組合數(shù)據(jù)的至少一部分,其中密碼編譯操作是加密操作且替換階段是用來經(jīng)由使用用于加密的靜態(tài)查找表的字節(jié)的非線性替換而執(zhí)行掩蔽乘法逆元素的掩蔽subbytes階段,和/或密碼編譯操作是解密操作且替換階段是用來經(jīng)由使用用于解密的靜態(tài)查找表的字節(jié)的非線性替換而執(zhí)行掩蔽乘法逆元素的掩蔽invsubbytes階段,并且其中gf(22)中的掩蔽乘法逆元素操作利用從gf(28)分解的塔域(gf(22)2)2并且還利用接收輸入掩碼和輸出掩碼并產(chǎn)生掩蔽表的動態(tài)查找表,從而確定gf(24)中的掩蔽逆元素的低部部分和高部部分,所述掩蔽表對應于具有經(jīng)輸入掩碼校正的索引的由輸出掩碼掩蔽的靜態(tài)表。在1306處,密碼編譯裝置通過例如shiftrows和mixcolumns的一或多個額外密碼編譯階段來路由經(jīng)替換數(shù)據(jù),以產(chǎn)生輸出數(shù)據(jù)(例如,用于加密的密文和或用于解密的明文)。

      圖14說明例如移動裝置或智能卡的處理電路904的所選和示范性組件,所述移動裝置或智能卡包含適用于動態(tài)表實施方案的aes或其它密碼編譯裝置1400,在所述實施方案中,使用置換來實施替換操作以獲得經(jīng)替換數(shù)據(jù)。密碼編譯裝置1400包含輸入數(shù)據(jù)/輪密鑰組合模塊/電路1402(例如addroundkey模塊/電路),其用來作為密碼編譯操作的一部分將輸入數(shù)據(jù)(例如用于加密的明文或用于解密的密文)與輪密鑰組合,以獲得組合數(shù)據(jù)。密碼編譯裝置1400還包含:替換階段模塊/電路1404(例如,掩蔽subbytes和/或掩蔽invsubbytes模塊/電路),其采用在有限域的子域中為其自身逆元素以獲得經(jīng)替換數(shù)據(jù)的靜態(tài)查找表;以及一或多個額外密碼編譯階段模塊/電路1406(例如,shiftrows、mixcolumns等),其用來通過一或多個額外密碼編譯階段來處理經(jīng)替換數(shù)據(jù),從而產(chǎn)生輸出數(shù)據(jù)。加密輸入/輸出控制器1408用來控制用于加密的數(shù)據(jù)的輸入和輸入,并包含用來輸入待加密明文的明文輸入模塊/電路1410和用來輸出密文的密文輸出模塊/電路1412。解密輸入/輸出控制器1414用來控制用于解密的數(shù)據(jù)的輸入和輸出,并包含用來輸入待解密密文的密文輸入模塊/電路1416和用來輸出明文的明文輸出模塊/電路1418。在這個實例中,替換階段模塊/電路1404不包含靜態(tài)查找表。相反,替換階段模塊/電路1404包含在有限域的子域中的動態(tài)查找表1422,其中使用置換來實施所有替換操作以獲得經(jīng)替換數(shù)據(jù)。如已解釋,動態(tài)表有助于掩蔽乘法逆元素處理操作,所述操作可在掩碼產(chǎn)生器1424、位對反轉器1426和乘法器1428的控制下執(zhí)行,所述操作中的每一個在有限域的gf(22)或某一其它合適子域中操作。

      圖15說明供在加密和解密中使用的適用于動態(tài)表實施方案的機器可讀媒體或計算機可讀媒體906的所選和示范性指令,在所述實施方案中,使用置換來實施替換操作以獲得經(jīng)替換數(shù)據(jù)。提供一組aes或其它密碼編譯裝置處理指令1500,所述指令在由圖9的處理電路904執(zhí)行時使得處理電路控制或執(zhí)行加密和解密操作。密碼編譯裝置處理指令1500包含輸入數(shù)據(jù)/輪密鑰組合指令1502(例如addroundkey指令),其用來作為密碼編譯操作的一部分將輸入數(shù)據(jù)(例如用于加密的明文或用于解密的密文)與輪密鑰組合,以獲得組合數(shù)據(jù)。密碼編譯指令1500還包含:替換階段指令1504(例如,掩蔽subbytes和/或掩蔽invsubbytes指令),其采用在有限域的子域中為其自身逆元素以獲得經(jīng)替換數(shù)據(jù)的靜態(tài)查找表;以及一或多個額外密碼編譯階段指令1506(例如,shiftrows指令、mixcolumns指令等),其用來通過一或多個額外密碼編譯階段來處理經(jīng)替換數(shù)據(jù),從而產(chǎn)生輸出數(shù)據(jù)。加密輸入/輸出控制器指令1508用來控制用于加密的數(shù)據(jù)的輸入和輸出,并包含用來輸入待加密明文的明文輸入指令1510和用來輸出密文的密文輸出指令1512。解密輸入/輸出控制器指令1514用來控制用于解密的數(shù)據(jù)的輸入和輸出,并包含用來輸入待解密密文的密文輸入指令1516和用來輸出明文的明文輸出指令1518。如同圖14,替換操作模塊/電路1504不包含靜態(tài)查找表。相反,替換階段指令1522包含適用于在有限域的子域中的動態(tài)查找表1522的指令,其中使用置換來實施所有替換操作以獲得經(jīng)替換數(shù)據(jù)。如已解釋,動態(tài)表有助于掩蔽乘法逆元素處理操作,所述操作可在掩碼產(chǎn)生器指令1524、位對反轉器指令1526和乘法器指令1528的控制下執(zhí)行,所述操作中的每一個在有限域的gf(22)或某一其它合適子域中操作。

      圖16說明例如移動裝置或智能卡的處理電路904的所選和示范性組件,所述移動裝置或智能卡包含適用于靜態(tài)表實施方案的aes或其它密碼編譯裝置1600,在所述實施方案中,使用靜態(tài)地存儲獲得經(jīng)替換數(shù)據(jù)所需的所有置換的靜態(tài)表來實施所有替換操作。密碼編譯裝置1600包含輸入數(shù)據(jù)/輪密鑰組合模塊/電路1602(例如addroundkey模塊/電路),其用來作為密碼編譯操作的一部分將輸入數(shù)據(jù)(例如用于加密的明文或用于解密的密文)與輪密鑰組合,以獲得組合數(shù)據(jù)。密碼編譯裝置1600還包含:替換階段模塊/電路1604(例如,掩蔽subbytes和/或掩蔽invsubbytes模塊/電路),其采用在有限域的子域中為其自身逆元素以獲得經(jīng)替換數(shù)據(jù)的靜態(tài)查找表;以及一或多個額外密碼編譯階段模塊/電路1606(例如,shiftrows、mixcolumns等),其用來通過一或多個額外密碼編譯階段來處理經(jīng)替換數(shù)據(jù),從而產(chǎn)生輸出數(shù)據(jù)。加密輸入/輸出控制器1608用來控制用于加密的數(shù)據(jù)的輸入和輸入,并包含用來輸入待加密明文的明文輸入模塊/電路1610和用來輸出密文的密文輸出模塊/電路1612。解密輸入/輸出控制器1614用來控制用于解密的數(shù)據(jù)的輸入和輸出,并包含用來輸入待解密密文的密文輸入模塊/電路1616和用來輸出明文的明文輸出模塊/電路1618。在這個實例中,替換階段模塊/電路1604不包含動態(tài)查找表。相反,替換階段模塊/電路1604包含在有限域的子域中的靜態(tài)查找表1622,其中使用靜態(tài)地存儲獲得經(jīng)替換數(shù)據(jù)所需的所有置換的靜態(tài)表來實施所有替換操作。如已解釋,靜態(tài)表有助于掩蔽乘法逆元素處理操作,所述操作可在掩碼產(chǎn)生器1624、位對反轉器1626和乘法器1628的控制下執(zhí)行,所述操作中的每一個在有限域的gf(22)或某一其它合適子域中操作。

      圖17說明供在加密和解密中使用的適用于靜態(tài)表實施方案的機器可讀媒體或計算機可讀媒體906的所選和示范性指令,在所述實施方案中,使用靜態(tài)地存儲獲得經(jīng)替換數(shù)據(jù)所需的所有置換的靜態(tài)表來實施所有替換操作。提供一組aes或其它密碼編譯裝置處理指令1700,所述指令在由圖9的處理電路904執(zhí)行時使得處理電路控制或執(zhí)行加密和解密操作。密碼編譯裝置處理指令1700包含輸入數(shù)據(jù)/輪密鑰組合指令1702(例如addroundkey指令),其用來作為密碼編譯操作的一部分將輸入數(shù)據(jù)(例如用于加密的明文或用于解密的密文)與輪密鑰組合,以獲得組合數(shù)據(jù)。密碼編譯指令1700還包含:替換階段指令1704(例如,掩蔽subbytes和/或掩蔽invsubbytes指令),其采用在有限域的子域中為其自身逆元素以獲得經(jīng)替換數(shù)據(jù)的靜態(tài)查找表;以及一或多個額外密碼編譯階段指令1706(例如,shiftrows指令、mixcolumns指令等),其用來通過一或多個額外密碼編譯階段來處理經(jīng)替換數(shù)據(jù),從而產(chǎn)生輸出數(shù)據(jù)。加密輸入/輸出控制器指令1708用來控制用于加密的數(shù)據(jù)的輸入和輸出,并包含用來輸入待加密明文的明文輸入指令1710和用來輸出密文的密文輸出指令1712。解密輸入/輸出控制器指令1714用來控制用于解密的數(shù)據(jù)的輸入和輸出,并包含用來輸入待解密密文的密文輸入指令1716和用來輸出明文的明文輸出指令1718。在這個實例中,替換階段模塊/電路1704不包含動態(tài)查找表。相反,替換階段指令1704包含適用于有限域的子域中的靜態(tài)查找表1720的指令,其中使用靜態(tài)地存儲獲得經(jīng)替換數(shù)據(jù)所需的所有置換的靜態(tài)表來實施所有替換操作。如已解釋,所述靜態(tài)表有助于掩蔽乘法逆元素處理操作,所述操作可在掩碼產(chǎn)生器指令1724、位對反轉器指令1726和乘法器指令1728的控制下執(zhí)行,所述操作中的每一個在有限域的gf(22)或某一其它合適子域中操作。

      應注意,本發(fā)明的各方面可在本文中描述為過程,所述過程描繪為流程圖表、流程圖、結構圖或框圖。盡管流程圖表可將操作描述為依序過程,但許多操作可并行或同時執(zhí)行。另外,可以重新布置操作的順序。過程在其操作完成時終止。過程可以對應于方法、函數(shù)、程序、子例程、子程序等。當過程對應于函數(shù)時,其終止對應于函數(shù)返回到調用函數(shù)或主函數(shù)。

      所屬領域的技術人員將進一步了解,結合本文所公開的方面描述的各種說明性邏輯塊、模塊、電路及算法步驟可以實施為電子硬件、計算機軟件或兩種的組合。為清晰地說明硬件與軟件的這種可互換性,以上已大體就其功能性來描述了各種說明性組件、塊、模塊、電路和步驟。此功能性是實施為硬件還是軟件取決于特定應用及施加于整個系統(tǒng)的設計約束。

      結合本文中公開的實例而描述的方法或算法可以處理單元、編程指令或其它方向的形式直接體現(xiàn)在硬件、可由處理器執(zhí)行的軟件模塊或兩種的組合中,且可含于單個裝置中或跨越多個裝置而分布。軟件模塊可駐留在ram存儲器、快閃存儲器、rom存儲器、eprom存儲器、eeprom存儲器、寄存器、硬盤、可裝卸磁盤、cd-rom,或此項技術中已知的任何其它形式的存儲媒體中。存儲媒體可耦合到處理器,使得處理器可從存儲媒體讀取信息和將信息寫入到存儲媒體。在替代方案中,存儲媒體可集成到處理器。

      本文中所描述的本發(fā)明的各種特征可在不脫離本發(fā)明的情況下實施于不同系統(tǒng)中。應注意,前述實施例僅為實例,且不應解釋為限制本發(fā)明。實施例的描述既定為說明性的,而不限制權利要求書的范圍。因此,本發(fā)明的教示可容易應用于其它類型的設備,且所屬領域的技術人員將明白許多替代方案、修改及變化。

      當前第1頁1 2 
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1