本發(fā)明涉及芯片的信息安全處理技術(shù),具體涉及一種采用流水線實(shí)現(xiàn)AES算法處理的方法。
背景技術(shù):
AES算法是一種對稱分組密碼算法,廣泛用于信息安全處理領(lǐng)域?,F(xiàn)有技術(shù)中實(shí)現(xiàn)AES算法的硬件結(jié)構(gòu)一般如圖1所示,其中密鑰擴(kuò)展部件、加密處理部件和解密處理部件都采用流水線設(shè)計,以保證每個時鐘周期都能處理數(shù)據(jù)。密鑰輸入密鑰擴(kuò)展部件,明文輸入加密處理部件,密文輸入解密處理部件。加密處理部件內(nèi)部流水線架構(gòu)如圖2所示,每級流水線由加密操作邏輯和觸發(fā)器組成,各輪操作的輪狀態(tài)存儲在觸發(fā)器中,供下一輪使用。密鑰擴(kuò)展部件和解密處理部件內(nèi)部流水線架構(gòu)與加密處理部件類似。圖4為AES算法流程圖,由圖4可知,解密操作第一次輪密鑰加所使用的輪密鑰正好是加密操作所用輪密鑰的最后4個字,而最后一次輪密鑰加所使用的輪密鑰正好是加密操作所用輪密鑰的最初4個字。因此,對于解密操作,需要提前生成輪密鑰的所有的字,存儲在密鑰存儲部件中。然后再輸入密文,同時再按與存儲過程相反的順序依次讀出輪密鑰送到解密處理部件供解密使用。
現(xiàn)有技術(shù)中為了避免下一個分組的輪密鑰覆蓋當(dāng)前分組的密鑰,存儲器的寫地址和讀地址需要錯開,這樣就增加了讀寫控制的復(fù)雜度。由于需要提前生成解密所需輪密鑰,執(zhí)行解密之前,密文和密鑰不能同一時間輸入進(jìn)行處理。因此,不能支持加、解密操作的交替操作。另外,由于使用了存儲器,在芯片實(shí)現(xiàn)的時候需要插入BIST邏輯,造成了額外的面積開銷。
技術(shù)實(shí)現(xiàn)要素:
針對現(xiàn)有技術(shù)的不足,本發(fā)明的主要目的在于:提出一種采用流水線實(shí)現(xiàn)AES算法處理的方法,能同時滿足加密和解密的交替操作,且避免使用存儲器,簡化了控制邏輯,又減小了芯片面積。
為實(shí)現(xiàn)前述目的,本發(fā)明公開了一種采用流水線實(shí)現(xiàn)AES算法處理的方法,其硬件處理架構(gòu)包括加密處理部件、解密處理部件和密鑰擴(kuò)展部件,各部件均采用流水線設(shè)計,每級流水線由相應(yīng)操作邏輯和觸發(fā)器組成,具體地:
加密處理部件與解密處理部件共用密鑰擴(kuò)展部件;
在所述解密處理部件中的首個解密輪次操作前增加一延遲邏輯;
所述密鑰擴(kuò)展部件中密鑰擴(kuò)展流水線生成Nr+1個加密輪密鑰供加密操作使用,并在各級密鑰擴(kuò)展流水線增加一延遲邏輯生成Nr+1個解密輪密鑰供解密操作使用,Nr為生成輪密鑰所需的變換輪數(shù);其中,生成解密所需的第一個輪密鑰不需要增加延遲邏輯,直接由密鑰擴(kuò)展流水線末端獲取。
優(yōu)選地,所述延遲邏輯包含多級流水線。
優(yōu)選地,所述解密處理部件的延遲邏輯包含Nr級流水線。
優(yōu)選地,所述密鑰擴(kuò)展各級流水線中的延遲邏輯中包含相應(yīng)級數(shù)的觸發(fā)器,用于存儲相應(yīng)解密輪次所需的輪密鑰。
優(yōu)選地,所述相應(yīng)級數(shù)為2*(Nr-N)-1,N為當(dāng)前密鑰擴(kuò)展輪次,且0≤N≤Nr-1。
優(yōu)選地,所述密鑰與輸入明文分組或者密文分組相對應(yīng)時,所述明文分組與所述密文分組可交替輸入,所述加密處理部件和所述解密處理部件分別輸出密文分組和明文分組。
優(yōu)選地,所述延遲邏輯的流水線級數(shù)可以根據(jù)需要作相應(yīng)裁減。
與現(xiàn)有技術(shù)相比,本發(fā)明的優(yōu)點(diǎn)在于:本發(fā)明公開的一種采用流水線實(shí)現(xiàn)AES算法處理的方法,采用流水線延遲輪密鑰滿足加密和解密的交替操作,實(shí)現(xiàn)過程中不需要使用存儲器,簡化了控制邏輯,且可以根據(jù)芯片后端設(shè)計的需要對延遲邏輯的流水線級數(shù)靈活進(jìn)行裁減。
附圖說明
圖1是現(xiàn)有技術(shù)中實(shí)現(xiàn)AES算法處理的硬件處理架構(gòu)圖;
圖2是現(xiàn)有技術(shù)中實(shí)現(xiàn)AES算法處理的硬件處理架構(gòu)中加密處理部件內(nèi)部流水線架構(gòu)圖;
圖3是輪數(shù)與密鑰關(guān)系圖;
圖4是AES算法的處理流程圖;
圖5是輪狀態(tài)示意圖;
圖6是字節(jié)替換表;
圖7是行移位示意圖;
圖8是列混淆操作原理圖;
圖9是反向行移位示意圖;
圖10是反向字節(jié)替換表;
圖11是反向列混淆操作原理圖;
圖12是本發(fā)明一實(shí)施例提出的一種采用流水線實(shí)現(xiàn)AES算法處理的硬件處理架構(gòu)圖;
圖13是本發(fā)明一實(shí)施例提出的硬件處理架構(gòu)中解密處理部件架構(gòu)圖;
圖14是本發(fā)明一實(shí)施例提出的硬件處理架構(gòu)中延遲邏輯架構(gòu)圖;
圖15是本發(fā)明一實(shí)施例提出的硬件處理架構(gòu)中密鑰擴(kuò)展部件架構(gòu)圖。
具體實(shí)施方式
鑒于現(xiàn)有技術(shù)中的不足,本案發(fā)明人經(jīng)長期研究和大量實(shí)踐,得以提出本發(fā)明的技術(shù)方案。如下將對該技術(shù)方案、其實(shí)施過程及原理等作進(jìn)一步的解釋說明。
為了更清楚地闡述本發(fā)明實(shí)施例所提出的技術(shù)方案,以下首先對AES算法的實(shí)現(xiàn)過程進(jìn)行介紹及對后面實(shí)施例涉及的參數(shù)進(jìn)行定義。
AES算法是一種對稱分組密碼算法,該算法將信息視為二進(jìn)制數(shù)“0”和“1”組成的序列,將信息以128位(16字節(jié))進(jìn)行分組,其密鑰長度為128、192或256位。我們將分組所包含32位字的個數(shù)記為Nb,密鑰所包含的字的個數(shù)記為Nk。對于AES算法,Nb=4,Nk=4,6或8。輸入密鑰經(jīng)過多輪變換之后生成多個輪密鑰。每個明文分組經(jīng)過多輪變換之后變成密文,每個密文分組經(jīng)過多輪反變換之后變成明文。變換的輪數(shù)Nr與密鑰長度相關(guān),其關(guān)系如圖3所示。
圖4是AES算法的處理流程,如圖所示,無論加密還是解密操作第1到Nr-1輪變換都包含4種操作。加密操作包含的變換依次為:字節(jié)替換,行移位,列混淆和輪密鑰加。解密操作包含的變換依次為:反向行移位,反向字節(jié)替換、輪密鑰加和反向列混淆。最后一輪變換(即第Nr輪變換)都只有3種操作,加密沒有列混淆操作,解密沒有反向列混淆操作。變換生成的中間結(jié)果稱為輪狀態(tài),可以表示為如圖5所示的4×4的字節(jié)陣列Si,j(0<i<4,0<j<4),輪狀態(tài)也可以看成4個字的序列。
加密操作輸入的明文和解密操作輸入的密文在進(jìn)行變換之前,都需要進(jìn)行輪密鑰加操作。此外,每輪變換中輪狀態(tài)都需要與輪密鑰進(jìn)行輪密鑰加操作??偣残枰妮喢荑€為4*(Nr+1)個字。所需輪密鑰由輸入密鑰經(jīng)過密鑰擴(kuò)展變換生成,因?yàn)樾畔⒎纸M的長度是4個字,因此每次輪密鑰加需要4個字的密鑰,記為按字組成的數(shù)組w[0,4*n+3],n為當(dāng)前輪次,即n=0,1,……,Nr-1,Nr。
字節(jié)替換操作對加密的輪狀態(tài)按字節(jié)進(jìn)行替換,替換依據(jù)為如圖6所示形式的字節(jié)替換表。行移位操作對輪狀態(tài)按行進(jìn)行字節(jié)移位,如圖7所示,從上數(shù)第1行不作變換。第2行循環(huán)左移1個字節(jié),第3行循環(huán)左移2個字節(jié),第4行循環(huán)左移3個字節(jié)。
列混淆操作對輪狀態(tài)按列進(jìn)行有限域GF(28)上的矩陣乘法,如圖8所示,符號表示有限域上的加法,兩個字節(jié)的加法等效為兩個字節(jié)按位進(jìn)行邏輯異或,符號“·”表示有限域上的乘法。一個字節(jié)可以表示為:{b7,b6,b5,b4,b3,b2,b1,b0},其中bi(0≤i≤7)為每一位的值。字節(jié)與常數(shù)“02”的乘法{02}·S0,c可等效為將S0,c左移1位,如果b7等于1,則將左移之后的值與{00011011}執(zhí)行按位邏輯異或操作。字節(jié)與常數(shù)“03”的乘法可以分解如下:
其他字節(jié)的操作以此類推。
反向行移位對解密的輪狀態(tài)按行進(jìn)行字節(jié)移位操作,是行移位的逆操作。如圖9所示,從上數(shù)第1行不作變換。第2行循環(huán)右移1個字節(jié),第3行循環(huán)右移2個字節(jié),第4行循環(huán)右移3個字節(jié)。反向字節(jié)替換對解密的輪狀態(tài)以字節(jié)為單位進(jìn)行反向替換,是字節(jié)替換的逆操作,其字節(jié)的替換表形式如圖10所示。
反向列混淆對輪狀態(tài)按列進(jìn)行操作,其原理如圖11所示,其中,字節(jié)與常數(shù)“0e”的乘法可分解如下:
其他乘法可作類似分解。
以上為實(shí)現(xiàn)AES算法的處理過程,為了信息處理的性能,并減小芯片后端實(shí)現(xiàn)的風(fēng)險,信息安全處理芯片中AES算法的實(shí)現(xiàn)一般采用流水線的方法。根據(jù)后端設(shè)計的需要,每一級流水線實(shí)現(xiàn)幾輪變換的操作。為敘述方便,本發(fā)明實(shí)施例以每一級流水線實(shí)現(xiàn)一輪變換為例進(jìn)行說明,本領(lǐng)域技術(shù)人員應(yīng)當(dāng)能夠基于此得出本發(fā)明實(shí)施例的整體技術(shù)方案。
為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下結(jié)合附圖及實(shí)施例,對本發(fā)明進(jìn)行進(jìn)一步詳細(xì)說明。應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
圖12是本發(fā)明一實(shí)施例提出的一種采用流水線實(shí)現(xiàn)AES算法處理的硬件處理架構(gòu)圖,如圖12所示,所述架構(gòu)包括加密處理部件、解密處理部件和密鑰擴(kuò)展部件,各部件仍然均采用流水線設(shè)計,每級流水線由相應(yīng)操作邏輯和觸發(fā)器組成,加密處理部件與解密處理部件共用密鑰擴(kuò)展部件。其中:
加密處理部件與圖1中的加密處理部件相同,每級流水線由加密操作邏輯和觸發(fā)器組成,各輪操作的輪狀態(tài)存儲在觸發(fā)器中,供下一輪使用,內(nèi)部架構(gòu)如圖2所示;
解密處理部件架構(gòu)如圖13所示,為了保證密文和解密輪密鑰0在同一個時鐘周期有效,在執(zhí)行解密操作輪次0之前增加了延遲邏輯,用于將密文進(jìn)行延遲。延遲邏輯中包含Nr級流水線,其架構(gòu)如圖14所示。
密鑰擴(kuò)展部件分別為加密處理部件和解密處理部件提供密鑰,其架構(gòu)如圖15所示,密鑰擴(kuò)展流水線生成的總共Nr+1個輪密鑰供加密操作使用,如圖中被標(biāo)記為加密密鑰。
根據(jù)圖4所示解密操作所用輪密鑰的特點(diǎn),解密操作第一次輪密鑰加所使用的輪密鑰正好是加密操作所用輪密鑰的最后4個字w[4*Nr,4*Nr+3],而最后一次輪密鑰加所使用的輪密鑰正好是加密操作所用輪密鑰的最初4個字w[0,3]。因此,在本發(fā)明實(shí)施例中,密鑰擴(kuò)展部件增加了延遲邏輯以提供Nr+1個解密輪密鑰,按字記為w[0,4*Nr+3],如圖中被標(biāo)記為解密密鑰。
密鑰擴(kuò)展部件中的延遲邏輯的架構(gòu)與解密處理部件中的延遲邏輯類似。解密所需的第0輪密鑰無需延遲,直接由密鑰擴(kuò)展流水線末端取得。根據(jù)圖4所示原理,圖15中密鑰擴(kuò)展輪次Nr-1的延遲邏輯1501中包含1級觸發(fā)器,用于存儲輪密鑰w[4*(Nr-1),4*Nr-1],提供解密第1輪所需密鑰;密鑰擴(kuò)展輪次Nr-2的延遲邏輯1502中包含3級觸發(fā)器,用于存儲輪密鑰w[4*(Nr-2),4*Nr-5],提供解密第2輪所需密鑰;以此類推,密鑰擴(kuò)展輪次n中的延遲邏輯包含2(Nr-n)-1級觸發(fā)器,用于存儲輪密鑰w[4*n,4*n+3],0≤n≤Nr-1,即:延遲邏輯1503包含2*Nr-3級觸發(fā)器,用于存儲輪密鑰w[4,7],提供解密第Nr-1輪所需密鑰;延遲邏輯1504包含2*Nr-1級觸發(fā)器,用于存儲輪密鑰w[0,3],提供解密第Nr輪所需密鑰。
使用本發(fā)明實(shí)施例所述的硬件處理架構(gòu),明文分組和密鑰同時輸入,經(jīng)過Nr個時鐘周期之后密文分組從加密處理部件輸出;密文分組和密鑰同時輸入,經(jīng)過2*Nr個時鐘周期之后明文分組從解密處理部件輸出。只要密鑰與輸入明文分組或者密文分組相對應(yīng),明文分組和密文分組可以交替輸入,經(jīng)過不同的延遲,可以分別在加密處理部件和解密處理部件得到密文分組和明文分組。
進(jìn)一步地,根據(jù)芯片后端設(shè)計的需要,各延遲邏輯的流水線級數(shù)還可以作相應(yīng)裁減,例如將相鄰的幾個輪次合并成1級流水線,從而減少觸發(fā)器的數(shù)量,以節(jié)省面積。
通過上述實(shí)施例可更加清晰得知,本發(fā)明實(shí)施例提出的一種采用流水線實(shí)現(xiàn)AES算法處理的方法,通過流水線延遲輪密鑰,可實(shí)現(xiàn)加密和解密的交替操作;處理架構(gòu)中避免使用存儲器,從而簡化了控制邏輯,同時減小了芯片面積;而且,延遲邏輯的流水線級數(shù)可以根據(jù)芯片后端設(shè)計的需要靈活進(jìn)行裁減。
應(yīng)當(dāng)理解,上述實(shí)施例僅為說明本發(fā)明的技術(shù)構(gòu)思及特點(diǎn),其目的在于讓熟悉此項(xiàng)技術(shù)的人士能夠了解本發(fā)明的內(nèi)容并據(jù)以實(shí)施,并不能以此限制本發(fā)明的保護(hù)范圍。凡根據(jù)本發(fā)明精神實(shí)質(zhì)所作的等效變化或修飾,都應(yīng)涵蓋在本發(fā)明的保護(hù)范圍之內(nèi)。