新四季網

對RIJNDAEL算法的DPA保護的製作方法

2023-05-30 02:00:31


本公開內容總體上涉及電子電路,並且更具體地涉及執行被稱為Rijndael算法的加密算法的電路,其對要被加密的數據的不同部分實施相同轉換。本公開內容更具體地涉及保護由這樣的算法執行的計算免受差分功耗分析(DPA)攻擊。



背景技術:

在許多應用中,電子電路實施加密、驗證、籤名的算法,並且更一般地操縱對其的訪問期望被保留給特定用戶或電路的數據(被稱為秘密數據)的算法。在Rijndael算法之中,AES算法(常常被稱為AES(高級加密標準,FIPS PUB 197))處理具有設置為128比特大小的數據塊,並且是特別常用的加密算法。AES基於源自於相同密鑰的不同子密鑰來對被劃分成塊的字或消息多次連續地應用相同的變換。

存在用於嘗試發現或盜取這樣的秘密數據的許多方法(被稱為攻擊)。在這樣的攻擊之中,所謂的旁道攻擊包括分析由電子電路對參數(例如,其功耗、其電磁輻射等)執行的計算的影響。特別常用的旁道攻擊是被稱為DPA(差分功耗分析)的攻擊。這樣的攻擊包括將執行算法的集成電路的功耗與在加密或解密期間使用的秘密密鑰涉及的計算結果相關聯。實際上,基於要被加密的消息並且基於與秘密密鑰有關的功耗,繪製在針對加密消息的電路功耗與由電路計算的中間值之間的隨時間的統計相關性的曲線。這樣的功耗分析攻擊被廣泛描述在文獻(參見例如Paul Kocher、Joshua Jaffe和Benjamin Jun於1999年公開的由Springer-Verlag LNCS 1666出版的文章「Differential Power Analysis」,CRYPTO 99會議,第388頁到第397頁)中。



技術實現要素:

實施例可以促進克服保護免受旁道攻擊的常用方法和電路的缺點中的全部或部分。

實施例提供一種計算AES算法的方法,其可以促進克服常用方法的缺點中的全部或部分。

實施例提供一種驗證執行對旁道攻擊的AES算法的電子電路的敏感度的方法。

在實施例中,一種方法保護由電子電路執行的Rijndael型算法免受旁道攻擊,其中:

在應用基於替換盒(substitution box)的非線性塊替換操作之前,利用第一掩碼對要被加密或要被解密的數據的每個塊進行掩碼,並且然後在替換之後利用第二掩碼進行去掩碼;以及

在應用非線性操作之前逐塊地重新計算替換盒,對替換盒的塊的處理的順序受制於隨機置換(permutation),置換與非線性替換操作可交換。

根據實施例:

連續地針對替換盒中的每個塊:

在第一步驟中,將塊(block)的排列(rank)提交給置換並且與第一掩碼進行組合;

在第二步驟中,將塊提交給置換並且將結果與第二掩碼進行組合;以及

利用第二步驟的結果來替換由第一步驟的結果標識的塊。

根據實施例,方法包括以下步驟:

連續地針對替換盒中的每個塊:

在第一步驟中,將置換應用到當前塊的排列,將結果與第一掩碼進行組合併將結果存儲在第一變量中;

在第二步驟中,將置換應用到當前塊,將結果與第二掩碼進行組合併將結果存儲在第二變量中;並且

利用第二步驟的結果來替代具有第一步驟的結果作為的排列的替換盒的塊。

根據實施例,掩碼是隨機數。

根據實施例,掩碼都具有與塊相同的大小。

根據實施例,組合是XOR類型的。

根據實施例,該方法被應用到AES。

在實施例中,一種電子電路,其在操作時實施本文中公開的方法。

實施例提供一種驗證執行對旁道攻擊的AES算法的電子電路的敏感度的方法。

在實施例中,一種保護由電子電路執行的Rijndael型算法免受旁道攻擊的方法,包括:

在應用基於第一替換盒的非線性塊替換操作之前,利用第一掩碼對要被加密或解密的數據的每個塊進行掩碼,並且然後在替換之後,利用第二掩碼進行去掩碼;其中,

在應用非線性操作之前逐塊被重新計算替換盒,對替換盒的塊的處理的順序受制於隨機置換;並且

對替換盒的重新計算使用第二掩碼以及第三掩碼和第四掩碼,第三掩碼和第四掩碼之和等於第一掩碼。

根據實施例:

連續地針對第一盒中的每個塊:

將當前塊的排列提交給置換並且將結果與第三掩碼進行組合;

利用第二掩碼與由置換的結果標識的第一盒的塊的組合來替代第二盒的當前塊;並且

連續地針對第二盒中的每個塊:

將當前塊的排列提交給置換並且將結果與第四掩碼進行組合;

利用由置換的結果標識的第二盒的塊來替代第一盒的當前塊。

根據實施例,方法包括以下步驟:

連續地針對第一盒中的每個塊:

在第一步驟中,將置換應用到當前塊的排列,將結果與第一掩碼進行組合併將結果存儲在第一變量中;

在第二步驟中,將第二掩碼與具有應用到當前塊的排列的置換的結果作為的排列的第一盒的塊的組合的結果存儲在第二變量中;並且

將第二步驟的結果存儲在第二盒的由第一步驟的結果標識的塊中。

連續地針對第二盒中的每個塊:

在第三步驟中,將置換應用到當前塊的排列,將結果與第二掩碼進行組合併將結果存儲在第一變量中;

在第四步驟中,將具有應用到當前排列的置換的結果作為的排列的第二盒的塊存儲在第二變量中;並且

將第四步驟的結果存儲在第一盒中由第三步驟的結果由的塊中。

根據實施例,第一盒形成經重新計算的替換盒。

根據實施例:

第一盒的塊被複製在第二盒中;

連續地針對第二盒中的每個塊:

將當前塊的排列提交給置換並且將結果與第三掩碼進行組合;

利用第二掩碼與由置換的結果標識的第二盒的組合來替代第一盒的當前塊;並且

連續地針對第一盒中的每個塊:

將當前塊的排列提交給置換並且將結果與第四掩碼進行組合;

利用由置換的結果標識的第一盒的塊來替代第二盒的當前塊。

根據實施例,方法包括以下步驟:

將第一盒的塊拷貝在第二盒中;

連續地針對第二盒中的每個塊:

在第一步驟中,將置換應用到當前塊的排列,將結果與第一掩碼進行組合併將結果存儲在第一變量中;

在第二步驟中,將第二掩碼與具有應用到當前塊的排列的置換的結果作為的排列的第二盒的塊的組合的結果存儲在第二變量中;以及

將第二步驟的結果存儲在由第一步驟的結果標識的第一盒的塊中。

連續地針對第一盒中的每個塊:

在第三步驟中,將置換應用到當前塊的排列,將結果與第二掩碼進行組合,並將結果存儲在第一變量中;

在第四步驟中,將具有應用到當前排列的置換的結果作為的排列的第一盒的塊存儲在第二變量中;以及

將第四步驟的結果存儲在由第三步驟的結果標識的第二盒的塊中。

根據實施例,第二盒形成經重新計算的替換盒。

在實施例中,一種方法,包括:在由電子電路對數據的處理期間,通過以下步驟保護電子電路免受旁道攻擊:利用第一掩碼對要被處理的數據的每個塊進行掩碼;將基於替換盒的非線性塊替換操作應用到經掩碼的數據;並且利用第二掩碼對非線性塊替換的應用的結果進行去掩碼,其中,所在應用非線性替換操作之前,逐塊地重新計算述替換盒,處理替換盒的塊的順序受制於置換,置換與非線性替換操作可交換。在實施例中,該方法包括:連續地針對替換盒中的每個塊:將塊的排列提交給置換,並且將經置換的排列與第一掩碼進行組合;將塊提供給置換,並且將經置換的塊與第二掩碼進行組合;以及利用經置換的塊與第二掩碼的組合來替代具有等於經置換的排列與第一掩碼的組合的排列的塊。在實施例中,該方法包括:連續地針對替換盒中的每個塊:將置換應用到當前塊的排列;將經置換的排列與第一掩碼進行組合;將經置換的排列與第一掩碼的組合的值存儲在第一變量中;將置換應用到替換盒的當前塊;將經置換的塊與第二掩碼進行組合;將經置換的塊與第二掩碼的組合的值存儲在第二變量中;並且利用第二變量的所存儲的值來替代具有第一變量的所存儲的值作為的排列的替換盒的塊。在實施例中,掩碼是隨機數。在實施例中,掩碼具有與塊相同的大小。在實施例中,組合是XOR類型的。在實施例中,處理包括應用高級加密標準(AES)算法。在實施例中,處理包括應用Rijndael算法。在實施例中,置換是與非線性替換操作可交換的隨機置換。

在實施例中,一種設備,包括:一個或多個存儲器;以及數位訊號處理電路裝置,其在操作時在對數據的處理期間通過以下步驟保護設備免受旁道攻擊:利用第一掩碼對要被處理的數據的每個塊進行掩碼;將基於替換盒的非線性塊替換操作應用到經掩碼的數據;並且利用第二掩碼對非線性塊替換的應用的結果進行去掩碼,其中數字處理電路裝置在操作時在應用非線性替換操作之前逐塊地重新計算替換盒,處理替換盒的塊的順序受制於置換,並且置換與非線性替換操作可交換。在實施例中,重新計算替換盒包括:連續地針對替換盒中的每個塊:將塊的排列提交給置換並且將經置換的排列與第一掩碼進行組合;將塊提供給置換並且將經置換的塊與第二掩碼進行組合;並且利用經置換的塊與第二掩碼的組合來替代具有等於經置換的排列與第一掩碼的組合的排列的塊。在實施例中,一個或多個存儲器包括一個或多個寄存器,並且重新計算替換盒包括:連續地針對替換盒中的每個塊:將置換應用到當前塊的排列;將經置換的排列與第一掩碼進行組合;將經置換的排列與第一掩碼的組合的值存儲在一個或多個寄存器中;將置換應用到替換盒的當前塊;將經置換的塊與第二掩碼進行組合;將經置換的塊與第二掩碼的組合的值存儲在一個或多個寄存器中;並且利用經置換的塊與第二掩碼的組合的所存儲的值來替代具有等於經置換的排列與第一掩碼的組合的所存儲的值的排列的替換盒的塊。在實施例中,掩碼是具有與塊相同的大小的隨機數。在實施例中,組合是XOR類型的。在實施例中,處理包括將高級加密標準(AES)算法應用到數據。在實施例中,處理包括將Rijndael算法應用到數據。在實施例中,置換是與非線性替換操作可交換的隨機置換。

在實施例中,一種系統,包括:總線系統;以及數位訊號處理電路裝置,其在操作時在對數據的處理期間通過以下步驟保護設備免受旁道攻擊:利用第一掩碼對要被處理的數據的每個塊進行掩碼;將基於替換盒的非線性塊替換操作應用到經掩碼的數據;並且利用第二掩碼對非線性塊替換的應用的結果進行去掩碼,其中數字處理電路在操作時在應用非線性替換操作之前逐塊地重新計算替換盒,處理替換盒的塊的順序受制於置換,並且置換是與非線性替換操作可交換。在實施例中,該系統包括:集成電路,集成電路包括數位訊號處理電路裝置和一個或多個寄存器。在實施例中,該系統包括:蜂窩電話電路裝置,其耦合到數位訊號處理電路裝置。

在結合附圖對具體實施例的以下非限制性描述中詳細討論上文。

附圖說明

圖1以簡化圖圖示了AES型算法。

圖2以方框的形式示意性地示出了對塊加密的這樣的替換盒的掩碼的示例;

圖3以方框的形式示意性地示出了對利用隨機順序重新計算的替換盒的掩碼的示例;

圖4以方框的形式示意性地示出了保護執行AES算法的方法的實施例;

圖5以方框的形式示意性地示出了保護執行AES算法的方法的另一實施例;

圖6以方框的形式示意性地示出了保護執行AES算法的方法的另一實施例;以及

圖7示出了用於實施所描述的方法的電子電路的示例。

具體實施方式

除非上下文另行指出,否則在不同附圖中已經利用相同的參考標記來指代相同的元件。具體地,不同實施例共同的結構元件和/或功能元件可以利用相同的附圖標記來指代並且可以具有相同的結構、尺寸和材料屬性。為清楚起見,已經示出了並將詳細描述僅僅對理解所描述的實施例有用的那些步驟和元件。具體地,還沒有詳細描述對執行的加密/解密的應用或對執行其的電子電路的應用,所描述的實施例與常用應用兼容。

在後文中將關於對AES的應用的示例描述實施例。然而,在後文中描述的全部通常適用於涉及非線性替換操作的任何塊算法,例如Rijndael型算法。

通常由集成電路通過連線的邏輯狀態機或藉助於執行存儲器(通常為ROM)中的程序的微處理器執行AES。算法使用對集成電路或對用戶特定的秘密密鑰,其被處理以對數據進行加密。例如,AES基於源自於不同的加密子密鑰(形成密鑰的二進位字的部分)對被劃分成塊的字或數據代碼多次連續應用相同的變換。

AES常常被使用在微電路卡、解碼器、蜂窩電話或其他類型的電子設備中。

圖1以簡化圖圖示了AES型算法。將僅僅描述加密,解密涉及反向變換。為了更多細節,能夠對Joan Daemen和Vincent Rijmen的Springer-Verlag Eds的工作「The Design of Rijndael」(ISBN 3-540-42580-2)並對AES標準(FIPS PUB 197)進行引用。

該算法對具有所確定比特數的字或代碼T0加密成具有相同大小的另一字或代碼Tn。要被處理的數據(消息)被劃分成都具有相同大小(針對AES的128比特)的多個字或代碼。加密和解密依賴於具有以加密安全性為條件的其長度(針對AES的128比特、192比特或256比特)的秘密密鑰。

實際上,AES過程的每個步驟處理表示字的四行和四列的陣列,其每個元素為處理過的128比特代碼的字節或塊。為了簡化以下描述,針對每個步驟對被稱為陣列的狀態進行引用。應用到與最頻繁的情況相對應的被劃分成字節的32比特字的AES算法被當作示例。

通過分別基於在128比特、192比特或256比特上的秘密密鑰來生成其每個也包括128比特的11、13、15子密鑰來開始。這些子密鑰旨在要由關於圖1描述的算法使用。

從要被加密的代碼或數據字的初始狀態T0(框10,狀態初始化)開始。

AES的第一階段是包括執行初始狀態T0與第一子密鑰K0的XOR類型組合(在附圖中記為+)的操作(框11,ADDROUNDKEY)。獲得了第一中間狀態T1。實際上,操作是逐字節地被執行。

第二階段包括執行涉及針對每個回合i在先前回合獲得的狀態Ti-1與當前子密鑰Ki的相同變換M的多個回合或循環。變換M的回合的號對應於n-1,也就是說,對應於導出的子密鑰的號n+1減2。每個回合變換M由四個連續應用的操作構成。

第一操作(框12,SHIFTROWS)包括執行對陣列的最後三行的旋轉。通常,陣列的第一行保持不變,第二行旋轉一個字節,第三行旋轉兩個字節,並且第四行旋轉三個字節。

回合變換M的第二操作(框13,SUBBYTES)是其中形成當前狀態的陣列的每個字節利用其從一般被稱為SBOX的替換盒獲取的圖像來替代的非線性變換。該通過兩個組合的變換來獲得替換盒。第一變換包括對(與字節相對應的)階數28的有限體中的考慮的字節(陣列的元素)進行取反,字節00形成其自身的圖像。該取反跟隨有仿射變換。

回合變換M的第三操作(框14,MIXCOLUMNS)包括將從先前步驟得到的陣列的每列認為是階數28的有限體上的多項式,並且將這些多項式中的每個多項式乘以組合的多項式以另一多項式為模。

排列i的回合變換M的第四操作且最後的操作(框15,ADDROUNDKEY)包括將子密鑰Ki應用到從先前狀態得到的陣列,以獲得其中從先前狀態得到的陣列的每個字節已經通過XOR逐位地與字節k或子密鑰Ki的Ki(j,l)組合的陣列,j表示陣列中的行的0與3之間的排列,並且l表示陣列中的列的0與3之間的排列。操作15與加密的第一階段的操作11相同,然而卻是利用不同的子密鑰執行的。

在操作15的最後,針對排列i的回合,獲得了狀態Ti=M(Ki,Ti-1)。回合變換的第四操作被重複n-1次,也就是說,在操作15之後,返回到操作12以利用下一子密鑰來執行新回合。

AES的第三階段包括最後的回合,其包括回合變換M的操作12、13和15,除了具有最後的子密鑰Kn-1作為針對操作15的密鑰的第三個(MIXCOLUMNS)。

然後獲得了狀態Tn=M』(Kn,Tn-1)。該結果可以被成形(框16,結果形式)以供後續使用。

回合變換M中的操作12、13、14和15的順序可以改變。例如,可以在替換操作13之前可以進行對子密鑰的引入(步驟15)。

已經提供不同的對策以減小AES型算法處理對旁道攻擊並且特別是對通過執行算法的電路的當前消耗的分析的攻擊的敏感性。

通常,這樣的對策通過在被稱為敏感的特定步驟處引入隨機數來對計算進行掩碼。具體地,替換盒由於其執行的操作的非線性特性被稱為對攻擊敏感的步驟。替換盒一般對應於已經被預計算並且然後針對AES算法的每個回合從存儲內存被讀取16次的256個陣列中的陣列。在某些情況下,盒被存儲有替換盒(也被稱為SBOX)和列變換MIXCOLUMNS的結果,所存儲的盒和兩個變換的結果被應用到每個狀態的字節。

為了對替換盒進行掩碼,在回合變換中使用的經掩碼的替換盒被重新計算。對替換盒進行掩碼施加針對其計算考慮將被用於對經加密的結果進行去掩碼的掩碼。

圖2以方框的形式示意性地示出了對塊進行加密的替換盒的掩碼的示例。

在圖2的示例中,假設在使用回合密鑰的情況下,在步驟15之後執行替換(圖1的步驟13)。另外,步驟14(MIXCOLUMNS)被認為是被集成在替換操作中,也就是說,替換盒執行兩個操作13和14。為簡單起見,未考慮操作12(SHIFTROWS)。

通過定義兩個相應的掩碼和去掩碼的掩碼(隨機數)m和m』來開始(框20,m=隨機數),(框21,m』=隨機數)。數m和m』對應於字節。

之後,連續地針對替換盒S的排列ω的每個字節S[ω],執行通過字節與掩碼m的排列ω的XOR(其被記為逐位相加操作+)的組合(框22,z=ω+m),將其結果放置在臨時變量z中。之後(框23,z』=S[ω]+m』),將字節S[ω]與掩碼m』進行組合,將其結果放置在臨時變量z』中。然後(方框24,S』[z]=z』),將變量z』中包含的值賦給替換盒S』的排列z的字節S』[z]。

例如,將計數器ω初始化為0(框27,ω=0),並且只要還沒有處理完所有字節(框29的輸出否,ω=n-1?),針對盒S的字節的每次處理就增加1(框28,ω=ω+1)。

一旦已經處理完替換盒S的n個字節S[ω](框29的輸出是),經掩碼的替換盒S』就被用於逐字節地(逐框地)處理消息。

因此,消息的每個字節t通過XOR與掩碼m進行組合(框31,t=t+m),將其結果(通過重寫字節t)放置在變量t中,並且然後通過重寫變量t中的字節t通過XOR與子密鑰的字節k來進行組合(框32,t=t+k),通過其經掩碼的替換盒S』中的圖像S』[t]來替換(框33,S』[t])。包含圖像S』[t]的變量t然後通過經由XOR與掩碼m』的組合被去掩碼(框34,t=t+m』)。之後返回變量t的內容。

針對消息的所有字節t重複步驟31到35。

圖2中圖示的計算還被編程如下:

m<-隨機數(框20)

m』<-隨機數(框21)

針對ω=0到n-1(框27,框29的輸出否,框28):

z<-ω+m(框22)

z』<-S[ω]+m』(框23)

S』[z]=z』(框24)

結束循環(框29的輸出是)

t<-t+m(框31)

t<-t+k(框32)

t<-S』[t](框33)

t<-t+m』(框34)

返回t(框35)。

假如說為二階或更高階的DPA攻擊已經使AES算法仍然更易受攻擊,包括當它們使用隨機掩碼時。二階的DPA攻擊包括在相同的當前追蹤中將掩碼的籤名與經掩碼的數據(在AES的情況下為盒)的籤名隔離。通過對籤名進行組合,並且在AES的情況下,通過多次重複攻擊,掩碼(隨機數)能夠被直接或間接發現。

為了改進保護替換盒免受這些類型的攻擊,其中替換盒S被重新計算的順序可以被混合以獲得經掩碼的盒S』。

例如,使用被用於限定其中替換盒的字節S[ω]由數m和m』掩碼的順序的隨機置換φ。

圖3以方框的形式示意性地示出了對利用隨機順序重新計算的替換盒的掩碼的示例。

如與關於圖2描述的方法進行比較,這相當於選擇(框25,φ=隨機置換)可適用於所有n行ω的隨機置換φ,並且通過對置換函數φ到排列ω的應用的結果φ(ω)的考慮(框22』,z=φ(ω)+m和框23』,z』=S[φ(ω)]+m』)來替代在步驟22和23中對替換盒的字節的排列ω的考慮。這相當於修改替換盒的字節被重新計算並且因此被掩碼的順序。如圖示的,關於圖2描述的其他步驟未被修改。

圖3中圖示的計算還可以被編寫如下:

m<-隨機數(框20)

m』<-隨機數(框21)

φ<-隨機置換(框25)

針對ω=0到n-1(框27,框29的輸出否,框28):

z<-φ(ω)+m(框22』)

z』<-S[φ(ω)]+m』(框23』)

S』[z]=z』(框24)

結束循環(框29的輸出是)

t<-t+m(框31)

t<-t+k(框32)

t<-S』[t](框33)

t<-t+m』(框34)

返回t(框35)。

然而,發明人已經注意到使該對策對具有更高階數的DPA攻擊易受攻擊的弱點。

這樣的弱點源自於對替換盒的實際掩碼。實際上,隨機置換φ要為未知的事實具有循環(框22』、23』、24)中的排列ω的值保持從可能的攻擊者未知的優點。然而,在每個循環(步驟22』和23』)中兩次地操縱排列ω。因此,攻擊者能夠利用被連結到針對當前排列ω的每次循環的兩個操縱的安全性「漏洞」。具體地,步驟23』的結果在於函數φ總是存在於替換盒上,也就是說,實際上,256次,其表示為許多漏洞。通過將步驟22』和23』的結果進行組合,函數φ的貢獻被消除。對步驟32的攻擊,儘管比圖2中更複雜,再次變得有效。

實際上,圖3的實施例促進解決第二階對掩碼m的值的攻擊的問題。然而,第三階的攻擊使得能夠從攻擊者能夠在當前軌跡中標識步驟22』和23』的時刻發現秘密,並且因此為漏洞點。

在實施例中,如上文描述的電子電路對攻擊的抵抗力期望被訪問。為了該目的,攻擊被執行並檢測到其是否有效。

實施例促進改進Rijndael型塊加密算法針對旁道攻擊的抵抗力。

在實施例中,步驟22』的操作(圖3)沒有出現在對盒的重新計算中。

在實施例中,隨機數m被劃分成兩個並且對替換盒的掩碼被執行在兩個步驟中。圖4以方框的形式示意性地示出了示例實施例。

通過定義兩個掩碼(隨機數)m1和m2使得它們的XOR組合對應於隨機數m(將在步驟31處使用的數)來開始(框41,m1=隨機數),(框42,m2=隨機數,m=m1+m2)。如前面,隨機去掩碼值m』(框21,m』=隨機數)和可適用於所有n個排列ω的隨機置換(框25,φ=隨機置換)然後被定義。掩碼m1、m2、m和m』對應於字節。也利用經去掩碼的替換盒S的值來初始化經掩碼的替換盒S』(框43,S』=S)。步驟21和43(或43和21)相對應步驟41和42的順序是不重要的。

然後,對替換盒的重新計算被劃分在兩個循環中,第一次使用盒S』上的隨機數m1,第二次使用源自於第一循環的盒S上的隨機數m2。

因此,連續地針對替換盒S』的排列ω的每個字節S』[ω],將置換函數φ應用到排列ω並執行結果φ(ω)與掩碼m1的XOR組合(框44,z=φ(ω)+m1),將其結果放置在臨時變量z中。然後(框45,z』=S』[φ(ω)]+m』),字節S』[φ(ω)]與掩碼m』進行組合,將其結果放置在臨時變量z』中。然後(框46,S[z]=z』),將變量z』中包含的值賦給經去掩碼的替換盒S的排列z的字節S[z]。

例如,將計數器ω初始化為0(框27,ω=0),並且只要還沒有處理完所有字節(框29的輸出否,ω=n-1?),針對盒S』的字節的每次處理就增加1(框28,ω=ω+1)。

一旦已經利用數m的部分m1處理完在43初始化的替換盒S』的n個字節S』[ω](框29的輸出是),從第一循環得到的替換盒S的字節就被恢復為利用部分m2進行掩碼。

因此,連續地針對替換盒S的排列ω的每個字節S[ω],將置換函數φ應用到排列ω並執行結果φ(ω)與掩碼m2的XOR組合(框47,z=φ(ω)+m2),將其結果放置在臨時變量z中。然後(框48,z』=S[φ(ω)]),將從第一循環得到的替換盒S的字節S[φ(ω)]被放置在臨時變量z』中。之後(框24,S』[z]=z』),將變量z』中包含的值賦給經掩碼的替換盒S』的排列z的字節S』[z]。

例如,針對循環計算,將計數器ω再次初始化為0(框27』,ω=0),並且只要還沒有處理完所有字節(框29』的輸出否,ω=n-1?)針對源自於第一循環的盒S的字節的每次處理就增加1(框28,ω=ω+1)。

一旦已經利用數m的部分m2處理完源自於第一循環的替換盒S的n個字節S[φ(ω)](框29的輸出是』),得到的經掩碼的替換盒S』被用於逐字節地(逐塊地)處理消息並執行如圖2和3中描述的步驟31到35。

圖4中圖示的計算還可以被編寫如下:

m1<-隨機數(框41)

m2<-隨機數(框42)

m』<-隨機數(框21)

S』<-S(框43)

φ<-隨機置換(框25)

針對ω=0到n-1(框27,框29的輸出否,框28):

z<-φ(ω)+m1(框44)

z』<-S』[φ(ω)]+m』(框45)

S[z]=z』(框46)

結束循環(框29的輸出是)

針對ω=0到n-1(框27』,框29』的輸出否,框28』):

z<-φ(ω)+m2(框47)

z』<-S[φ(ω)](框48)

S』[z]=z』(框24)

結束循環(框29的輸出是』)

t<-t+m(圖3的框31)

t<-t+k(圖3的框32)

t<-S』[t](圖3的框33)

t<-t+m』(圖3的框34)

返回t(圖3的框35)。

圖5以方框的形式示意性地示出了電子系統的實施例。

通過定義兩個掩碼(隨機數)m1和m2使得它們的XOR組合對應於隨機數m(將在步驟31處使用的數)來開始(框41,m1=隨機數),(框42,m2=隨機數,m=m1+m2)。如前面,隨機去掩碼值m』(框21,m』=隨機數)和可適用於所有n個排列ω的隨機置換(框25,φ=隨機置換)被定義。掩碼m1、m2、m和m』對應於字節。步驟21和43(或43和21)相對應步驟41和42的順序是不重要的。

對替換盒的重新計算被分開在兩個循環中,第一次使用盒S上的隨機數m1,第二次使用源自於第一循環的盒S』上的隨機數m2。

因此,連續地針對替換盒S』的排列ω的每個字節S[ω],將置換函數φ應用到排列ω並執行結果φ(ω)與掩碼m1的XOR組合(框44,z=φ(ω)+m1),將其結果放置在臨時變量z中。然後(框23』,z』=S[φ(ω)]+m』),字節S』[φ(ω)]與掩碼m』進行組合,將其結果放置在臨時變量z』中。然後(框24,S』[z]=z』),將變量z』中包含的值賦給經掩碼的替換盒S』的排列z的字節S』[z]。

例如,將計數器ω初始化為0(框27,ω=0),並且只要還沒有處理完所有字節(框29的輸出否,ω=n-1?),針對盒S的字節的每次處理就增加1(框28,ω=ω+1)。

一旦已經利用數m的部分m1處理完替換盒S的n個字節S[ω](框29的輸出是),從第一循環得到的替換盒S』的字節就被恢復為利用部分m2進行掩碼。

因此,連續地針對替換盒S』的排列ω的每個字節S』[ω],將置換函數φ應用到排列ω並執行結果φ(ω)與掩碼m2的XOR組合(框47,z=φ(ω)+m2),將其結果放置在臨時變量z中。然後(框48,z』=S』[φ(ω)]),將從第一循環得到的替換盒S』的字節S』[φ(ω)]放置在臨時變量z』中。然後(框49,S[z]=z』),將變量z』中包含的值賦給替換盒S的排列z的字節S[z]。

例如,針對循環計算,將計數器ω再次初始化為0(框27』,ω=0),並且只要還沒有處理完所有字節(框29』的輸出否,ω=n-1?)針對源自於第一循環的盒S』的字節的每次處理就增加1(框28』,ω=ω+1)。

一旦已經利用數m的部分m2處理完源自於第一循環的替換盒S』的n個字節S[φ(ω)](框29的輸出是』),此處形成經掩碼的替換盒的得到的替換盒S被用於逐字節地(逐塊地)處理消息。因此,關於圖2和3描述的步驟33取出了盒S的字節而非盒S』的字節(框33』,t=S[t])。如圖示的,關於圖2和3的實施例不修改步驟31、32、34和35。

如與圖4的實施例進行比較的,對盒S』的初始化被免去(圖4的框43)。

圖5中圖示的計算還可以被編寫如下:

m1<-隨機數(框41)

m2<-隨機數(框42)

m』<-隨機數(框21)

φ<-隨機置換(框25)

針對ω=0到n-1(框27,框29的輸出否,框28):

z<-φ(ω)+m1(框44)

z』<-S[φ(ω)]+m』(框23』)

S』[z]=z』(框24)

結束循環(框29的輸出是)

針對ω=0到n-1(框27』,框29』的輸出否,框28』):

z<-(ω)+m2(框47)

z』<-S』[φ(ω)](框48』)

S[z]=z』(框49)

結束循環(框29的輸出是』)

t<-t+m(圖3的框31)

t<-t+k(圖3的框32)

t<-S[t](框33』)

t<-t+m』(圖3的框34)

返回t(圖3的框35)。

將掩碼m劃分成兩個部分m1和m2並執行對替換盒的計算兩次的事實使攻擊更困難。

在實施例中,在對替換盒的重新計算期間,採用具有與替換操作的可交換的置換的函數。圖6以方框的形式示意性地示出了實施例。

如圖2中,通過定義兩個相應的掩碼和去掩碼的掩碼(隨機數)m和m』來開始(框20,m=隨機數),(框21,m』=隨機數)。

然後(框25』,γ=隨機置換,γoS=Soγ),選擇與替換盒可交換的隨機置換。

然後,連續地針對替換盒S的排列ω的每個字節S』[ω],將置換函數γ應用到排列ω並執行結果γ(ω)與掩碼m的XOR組合(框51,z=γ(ω)+m),將其結果放置在臨時變量z中。然後(框52,z』=γ(S[ω]+m』),將對函數γ到字節S[(ω)]的應用的結果與掩碼m』進行組合,將其結果放置在臨時變量z』中。然後(框24,S』[z]=z』),將變量z』中包含的值賦給經掩碼的替換盒S』的排列z的字節S』[z]。如在前面的實施例中描述的,例如將計數器ω初始化為0(框27,ω=0),並且只要還沒有處理完所有字節(框29的輸出否,ω=n-1?),針對盒S的字節S[ω]的每次處理就增加1(框28,ω=ω+1)。

一旦已經處理完替換盒S的n個字節S[ω](框29的輸出是),得到的經掩碼的替換盒S』被用於逐字節地(逐塊地)處理消息並執行如圖2和3中描述的步驟31到35。

如與圖3進行比較的,值γ(ω)僅僅在每個循環中出現一次。因此不能夠將其組合在循環內以利用當前軌跡。然而,由於函數γ與替換操作S可交換,所以步驟52的結果與圖2的步驟23』的結果相同,其允許進行去掩碼。

圖6中圖示的計算還可以被編寫如下:

m<-隨機數(框20)

m』<-隨機數(框21)

γ<-與替換操作S可交換的隨機置換(框25』)

針對ω=0到n-1(框27,框29的輸出否,框28):

z<-γ(ω)+m(框51)

z』<-γ(S[ω])+m』(框52)

S』[z]=z』(框24)

結束循環(框29的輸出是)

t<-t+m(框31)

t<-t+k(框32)

t<-S』[t](框33)

t<-t+m』(框34)

返回t(框35)。

在實施例中,替換盒的可以為隨機的任何功耗的提高可以被用作與替換操作可交換的函數γ。

對驗證敏感性的實施例的實施促進對關於圖4到6描述的對策中的一個的實施例是否由電子電路實施進行驗證。

實際上,不同值、字節、變量、等等被物理存儲在一個或多個電子電路的寄存器中,並且可以取決於方法步驟根據控制信號來讀取和/或寫入這些寄存器的內容。電子電路例如為用於執行具有輸入寄存器、輸出寄存器的所描述的算法的並且被配置為操縱不同值的處理器的示例。例如由集成到處理器的連線邏輯中的元件來執行計算和替換步驟。

圖7正是示意性地示出了對被描述的實施例應用的類型的電子電路6的示例。

電路6包括:

計算單元61(UC),例如,狀態機、微處理器、可編程邏輯電路等,包括或使用包含用於計算的不同變量並且任意地示出在圖7中的在單元61的外部的寄存器62;

一個或多個易失性存儲區和/或非易失性存儲區63(MEM),其用於存儲數據和密鑰中的全部或部分;

一個或多個數據總線、地址總線和/或控制總線65,其在電路6內部的不同元件與輸入輸出接口67(I/O)之間以用於與電路6的外部進行通信。

電路6可以包括根據應用的各種其他電路,在圖7中由框69(FCT)表示。例如,框69可以包括被配置為使計算電路61經受旁道攻擊的電路裝置(例如,控制器等)。框69可以在電路6外部。

一些實施例可以採取電腦程式產品的形式或者包括電腦程式產品。例如,根據一個實施例,提供了一種計算機可讀介質,其包括適於執行以上描述的方法或功能中的一個或多個的電腦程式。介質可以為物理存儲介質,諸如只讀存儲器(ROM)晶片、或磁碟,諸如數字多用盤(DVD-ROM)、緊湊盤(CD-ROM)、硬碟、存儲器、網絡、或要由適當的驅動器或經由適當的連接讀取的可攜式介質產品,包括如被編碼在存儲在一個或多個這樣的計算機可讀介質上並且可由適當的閱讀器設備讀取的一個或多個條形碼或其他相關聯的代碼中的可攜式介質產品。

另外,在一些實施例中,可以以其他方式來實施或提供方法和/或功能中的一些或全部,例如至少部分地被實施或被提供在固件和/或硬體中,固件和/或硬體包括但不限於一個或多個專用集成電路(ASIC)、數位訊號處理器、分立電路、邏輯門、標準集成電路、控制器(例如,通過執行適當的指令,並且包括微控制器和/或嵌入式控制器)、現場可編程門陣列(FPGA)、複雜可編程邏輯器件(CPLD)等以及採用RFID技術的設備、以及它們的各種組合。

已經描述了各種實施例。本領域技術人員將進行各種更改和修改。具體地,對上述步驟在對AES算法的回合處理中的集成基於以上描述處在本領域技術人員的能力內。最後,已經描述的實施例的實際實施方式基於上文給出的功能指示處在本領域技術人員的能力內。

這樣的更改、修改和改進旨在為本公開內容的一部分,並且旨在處於本公開內容的精神和範圍內。因此,前面的描述僅僅是通過舉例的方式並且不旨在為限制性的。

可以組合以上描述的各種實施例以提供進一步的實施例。在必要時可以修改實施例的各方面以採用各種專利、申請和公開的構思來提供更進一步的實施例。

鑑於以上詳細描述的說明書能夠進行對實施例的這些和其他改變。總體上,在所附的權利要求書中,使用的術語不應當被解釋為將權利要求限於在說明書中公開的具體實施例,而是應當被解釋為包括所有可能的實施例,只要在這樣的權利要求有權要求的等效方案的全部範圍內。因此,權利要求不受本公開內容限制。

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀