專利名稱:用于密鑰擴(kuò)展功能的低速存儲(chǔ)器硬件實(shí)施的方法和設(shè)備的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及執(zhí)行加密的方法和設(shè)備。更特別地,本發(fā)明涉及高級(jí)加密標(biāo)準(zhǔn)(AES)中由密鑰擴(kuò)展算法用于生成一組圈密鑰的密碼本(Cipher Key)。
背景技術(shù):
隨著諸如經(jīng)由互聯(lián)網(wǎng)交易的智能卡和商務(wù)的項(xiàng)目使用地增加,加密和解密數(shù)據(jù)的需要從未比現(xiàn)在更加重要。事實(shí)上,美國(guó)政府特別地通過國(guó)家標(biāo)準(zhǔn)技術(shù)研究所(National Institute of Standards andTechnology,NIST)多年來已選擇了加密標(biāo)準(zhǔn),諸如于1976年選作美國(guó)標(biāo)準(zhǔn)的DES(Data Encryption Standards數(shù)據(jù)加密標(biāo)準(zhǔn)),并且Triple DES(三重DES)隨后變成標(biāo)準(zhǔn)。近些年來,NIST一直在評(píng)估多種AES算法,以選擇將成為美國(guó)官方加密標(biāo)準(zhǔn)的新標(biāo)準(zhǔn)(AES).JoanDaemen和Vincent Rijmen提出了一種已被NIST認(rèn)可的密碼算法,并于2001年11月26日公開,題為Federal Information ProcessingStandards Publication No.197(聯(lián)邦信息處理標(biāo)準(zhǔn)公布第197號(hào))(以下稱之為“FIPS’197”)。FIPS’197中的算法被稱為Rijndael算法。
AES使用128、192和256比特的三個(gè)系統(tǒng),以改善現(xiàn)有技術(shù)的56比特加密的性能、靈活性和效率,從而提供更容易的方式來實(shí)施。
用于AES算法中處理的基本單元是字節(jié)。在內(nèi)部,對(duì)稱為STATE的二維陣列字節(jié)執(zhí)行AES算法的操作。STATE通常具有4行字節(jié),其每行包含Nb個(gè)字節(jié),其中Nb是被32除的塊長(zhǎng)。
加密把數(shù)據(jù)轉(zhuǎn)換為稱為密文的難以理解的形式。密文的解密把稱之為“明文”的數(shù)據(jù)轉(zhuǎn)換成其原始形式。本領(lǐng)域的通用術(shù)語把明文轉(zhuǎn)換為密文的系列變換稱為“加密(Cipher)”,而把密文轉(zhuǎn)換到明文的系列變換稱為“逆加密(Inverse Cipher)”。在加密和逆加密中,密碼本(這是由擴(kuò)展密鑰例程使用的機(jī)密密鑰)生成在加密和逆加密例程中應(yīng)用于STATE的一系列值(稱為圈密鑰)。
AES算法的輸入和輸出均由128比特(具有0或1值的數(shù)字)序列構(gòu)成。這些序列有時(shí)將被稱為塊,并且將它們含有的比特?cái)?shù)量稱之為其長(zhǎng)度。
圖1示出了STATE陣列輸入和輸出的一個(gè)實(shí)例。在加密和逆加密開始時(shí),輸入陣列的字節(jié)(in0-in15)被拷貝到如圖1所示的STATE。然后,對(duì)這個(gè)STATE陣列進(jìn)行加密或逆加密操作,此后把其最終值拷貝到輸出字節(jié)out0-out15的陣列。
就圖1而言,如NIST的“FIPS 197”所披露的,在加密和逆加解密開始時(shí),輸入(這是字節(jié)in0-in15的陣列)被拷貝到所示的STATE陣列。然后,對(duì)該STATE陣列進(jìn)行加密或逆加密操作,此后把其最終值復(fù)制到輸出,這表示為范圍從out0-out15的字節(jié)陣列。通過在二個(gè)元素的多項(xiàng)式中“增加”用于相應(yīng)冪的系數(shù),實(shí)現(xiàn)有限域中二個(gè)元素的加法。利用布爾異或(XOR)運(yùn)算執(zhí)行加法(“FIPS’197”,NIST,p.10)。
以下示出的是用于相加兩個(gè)字節(jié)的二進(jìn)制記數(shù)法實(shí)例
{01010111}{1000011)={11010100} 式(1.0)
密碼本是機(jī)密密鑰,由密鑰擴(kuò)展算法用于生成一組圈密鑰;它可以被描述為具有4行和Nk列的矩形字節(jié)陣列(“FIPS’197”,NIST,第6頁(yè))。
圈密鑰是利用密鑰表(key schedule)從密碼本中導(dǎo)出的值。密鑰表包括兩種組分密鑰擴(kuò)展和圈密鑰選擇(“Rijndael密碼塊”,Daemen和Rijmen,第14頁(yè))。AES使用利用密碼本的算法,并通過執(zhí)行密鑰擴(kuò)展例程來生成密鑰表。
圈密鑰在加密和逆加密變換中應(yīng)用于STATE。圈密鑰的長(zhǎng)度等于STATE的尺寸,并且利用XOR運(yùn)算把圈密鑰加到STATE上。
這里我們所關(guān)心的是減少支持密鑰擴(kuò)展所需的存儲(chǔ)器的尺寸。當(dāng)前教導(dǎo)提供了硬件實(shí)施,其中擴(kuò)展密碼本以支持三種密鑰長(zhǎng)度128,192或256比特。計(jì)算的數(shù)量取決于密鑰比特(KeyBit)和塊比特。對(duì)于128長(zhǎng)度密鑰,需要10次計(jì)算。對(duì)于192長(zhǎng)度密鑰,需要12次計(jì)算。對(duì)于最大的當(dāng)前密鑰長(zhǎng)度(256),需要14次計(jì)算。因而,所需要的密鑰的最大數(shù)量是14。
原始AES軟件實(shí)施對(duì)于最大數(shù)量的密鑰(14)使用存儲(chǔ)器。在硬件中,該存儲(chǔ)器需要14×128比特存儲(chǔ)單元。在CMOS18中這個(gè)特性的實(shí)施使用大約10,000個(gè)門。
發(fā)明內(nèi)容
因此,提供降低門尺寸并同時(shí)不將最大路徑延遲增至任何大范圍的方法將是有利的,從而得到比迄今為止公知的更具吸引力的用于高數(shù)據(jù)速率設(shè)計(jì)的更小型電路。
本發(fā)明提供用于降低處理擴(kuò)展密鑰功能所需的門的數(shù)量而又不影響最大路徑延遲的方法。本發(fā)明的優(yōu)點(diǎn)是降低的電路數(shù)量減少了尺寸,從而使得用于高數(shù)據(jù)速率設(shè)計(jì)的電路更小型和更具吸引力。
根據(jù)本發(fā)明的一個(gè)方面,執(zhí)行每個(gè)密鑰擴(kuò)展,以支持加密和解密。該新結(jié)構(gòu)利用實(shí)現(xiàn)與圈密鑰處理同步的正常的和逆密鑰擴(kuò)展的電路,并因而允許使用更小的存儲(chǔ)區(qū)域。在特定的實(shí)施例中,對(duì)于14個(gè)擴(kuò)展密鑰,存儲(chǔ)空間降低了一半,即從現(xiàn)有技術(shù)的14降低到迄今未知數(shù)量的7個(gè)存儲(chǔ)空間,而存取時(shí)間不增加。
本發(fā)明的上述和其它特征以及優(yōu)點(diǎn)從下面的結(jié)合附圖的詳細(xì)說明中將變得更加清楚,其中
圖1示出了STATE陣列及其輸入和輸出字節(jié);
圖2示出了可以安排根據(jù)本發(fā)明的設(shè)備的一種方式;
圖3是提供根據(jù)本發(fā)明的方法的概述的流程圖。
具體實(shí)施例方式
在以下說明中,為了解釋而不是限制的目的,描述了諸如特定結(jié)構(gòu)、接口、技術(shù)等的細(xì)節(jié),以提供對(duì)本發(fā)明的徹底理解。然而,本領(lǐng)域熟練技術(shù)人員將會(huì)明白,離開這些具體細(xì)節(jié),也可以在其它實(shí)施例中實(shí)現(xiàn)本發(fā)明。此外,為了清楚起見,公知裝置、電路和方法的詳細(xì)說明予以省略,以免不必要的細(xì)節(jié)模糊了本發(fā)明的描述。
圖2示出了可以安排根據(jù)本發(fā)明設(shè)備的一種方法。本領(lǐng)域熟練技術(shù)人員將會(huì)明白,所示的物理布局用于解釋目的,并且例如,密鑰擴(kuò)展模塊和密鑰表可以合并,并且存儲(chǔ)器可以是任何模塊的一部分或是一個(gè)分離區(qū)域。
密鑰表單元201具有由密鑰擴(kuò)展模塊215擴(kuò)展的密鑰值。這些值可以存儲(chǔ)在存儲(chǔ)器202中。轉(zhuǎn)換單元208加密/解密用于某個(gè)預(yù)定數(shù)量圈的明文/密文之一,并且在密鑰擴(kuò)展單元提供密鑰擴(kuò)展的同時(shí),塊循環(huán)(block round)單元212執(zhí)行圈密鑰處理。最好,對(duì)于每個(gè)相應(yīng)的密鑰,同步密鑰擴(kuò)展功能和圈密鑰處理,以便同時(shí)(大致并行)執(zhí)行這些操作。
根據(jù)本發(fā)明,通過利用更少數(shù)量的存儲(chǔ)空間實(shí)施密鑰擴(kuò)展算法,使用密鑰時(shí)的定時(shí)變成為重要因素。例如,在加密模式期間,必須在處理開始之前計(jì)算一個(gè)密鑰。在利用圈密鑰算法正在處理數(shù)據(jù)的同時(shí),可以并行計(jì)算第二密鑰。如果僅需要單一加密模式,則單一存儲(chǔ)空間將足夠了。
由于首先使用密鑰14,所以對(duì)于解密,任務(wù)多少變得更困難。必須根據(jù)其它13個(gè)密鑰來計(jì)算密鑰14。仍然能夠使用與圈密鑰處理并行計(jì)算密鑰的同一想法。如果仔細(xì)計(jì)劃把密鑰寫入存儲(chǔ)器的順序,則可以僅利用7個(gè)存儲(chǔ)空間和非常小的附加控制邏輯來支持加密和解密。
還必須相對(duì)于圈密鑰處理仔細(xì)地規(guī)劃計(jì)算密鑰的速率。通過同步并行進(jìn)行密鑰計(jì)算和圈密鑰處理,實(shí)現(xiàn)本發(fā)明的優(yōu)點(diǎn)。
256密鑰長(zhǎng)度需要最大存儲(chǔ)器,所以該長(zhǎng)度將用來說明新的機(jī)制。以下是根據(jù)Rijndael(Rijndael-alg-ref.c版本2.0,Barrato和Rijmen)的C代碼記數(shù)法中給出的傳統(tǒng)算法
Int rijndaelKeySched(word9 k[4][MAXKC],int key Bits,int block Bits,word8W[MAXROUNDS+1][4][MAXABC])}/*計(jì)算需要的圈密鑰*計(jì)算次數(shù)依賴于密鑰比特和塊比特*/int KC,BC,ROUNDS;int I,j,t,rconpointer=0;word8 tk[4][MAXKC]switch(keyBits0{<!-- SIPO <DP n="4"> --><dp n="d4"/>case 128:KC=4;break;case 192:KC=6;break;case 256:KC=8;break;default:return(-1);}switch(blockBits){case 128:BC=4;break;case 192:BC=6;break;case 256:BC=8;break;default:return(-2);}switch(keyBits>=blockBits keyBits:blockbits){case 128:ROUNDS=10;break;case 192;ROUNDS=12;break;case 256:ROUNDS=14;break;default:return(-3);/*這不可能發(fā)生*/}for(j=0;j<KC;j++)for(i=0;i<4;i++)tk[i][j]=1[i][j];t=0;/*把值復(fù)制到圈密鑰陣列中*/<!-- SIPO <DP n="5"> --><dp n="d5"/>for(j=0;(j<KC)&&(t<(ROUNDS+1)*BC);j++,t++)for(I=0;i<4;i++)W[t/BC][i][t%BC]=tk[i][j];while(t<(ROUNDS+1)*BC){1*沒有足夠圈密鑰材料被計(jì)算*//*計(jì)算新值*/for(I=0;I<4;i++)tk[i]
^=S[tk[(i+1)%4][KC-1];tk
^=rcon[rconpointer++];if(KC l=8)for(j=1;j<KC;j++)for(i=0;i<4;i++)tk[i][j]^=tk[i][j-1];else{for(j=1;j<KC/2;j++)for(i=0;i<4;i++)tk[i][j]^=tk[i][j-1]for(i=0;i<4;i++)tk[i][KC/2]^=S[tk[i][KC/2-1]];for(j=KC/2+1;j<KC;j++)for(i=0;i<4;i++)tk[i][j]^=tk[i][j-1];}/*把值復(fù)制到圈密鑰陣列中*/for(j=0;(j<KC)&&(t<(ROUNDS+1)*BC);j++,t++)for(i=0;I<4;i++)W[t/BC][i][t%BC]=tk[i][j];}return 0;}
注意,對(duì)于硬件實(shí)施,必須分配最大存儲(chǔ)量用于14個(gè)密鑰,以實(shí)現(xiàn)上述代碼(case 256ROUNDS=14;break;)。
也注意,在圈密鑰的處理開始并且不允許并行激活之前,進(jìn)行這個(gè)傳統(tǒng)擴(kuò)展算法。
與上述相反,本發(fā)明使用實(shí)現(xiàn)與圈密鑰處理同步的正常的和逆密鑰擴(kuò)展的電路。
考慮加密(正常)擴(kuò)展,給出的實(shí)例將是密鑰長(zhǎng)度256,因?yàn)樗枰畲蟠鎯?chǔ)單元。這遵循其它兩種情況(128和192密鑰長(zhǎng)度)也起作用,因?yàn)樾枰^少的擴(kuò)展密鑰。這在邏輯上還遵循如果曾使用大于256的密鑰長(zhǎng)度,則本發(fā)明在減少所需存儲(chǔ)器方面仍然是有效的。
根據(jù)本發(fā)明的一個(gè)方面,用于并行擴(kuò)展密鑰和使密鑰成圈的算法如下
Expand-Key_Number=14
Fork=1 to Expand_Key_Number
{
if(k<8)n=k else n=k-7
擴(kuò)展密鑰k并存儲(chǔ)到位置n
讀出位置并進(jìn)行圈密鑰算法,擴(kuò)展密鑰k并存儲(chǔ)到位置n+1
}
為了解密(逆)擴(kuò)展,必須首先計(jì)算所有14個(gè)密鑰。以遞減順序執(zhí)行用于第一7個(gè)密鑰的計(jì)算,并且然后丟棄。其后的7個(gè)密鑰以遞升位置順序進(jìn)行擴(kuò)展。在以遞減順序讀出最后7個(gè)密鑰時(shí),以遞減順序再擴(kuò)展第一7個(gè)密鑰。一旦從位置1讀出密鑰8,則擴(kuò)展密鑰7并放在位置1中。然后,以遞升位置順序讀出密鑰7-1。該算法如下
Expand_Key_Number=14For k=1 to Expand_Key_Number{if(k<8)n=8-k else n=k-7擴(kuò)展密鑰k并存儲(chǔ)到位置n}Fork=Expand_Key_Number to 1{if(k<8)n=8-k else n=k-7讀取位置n并進(jìn)行圈密鑰算法,擴(kuò)展密鑰8-n并存儲(chǔ)到位置n<br/>}.
最后,圖3示出了解釋可以執(zhí)行本發(fā)明的一種方式的方法步驟。在步驟305,提供用于密碼本的密鑰表單元201,所述密鑰表單元201提供預(yù)定數(shù)量的擴(kuò)展密鑰值,并且所述密鑰表單元201具有存儲(chǔ)器202。
步驟310包括提供與密鑰表單元201通信的轉(zhuǎn)換模塊208,該轉(zhuǎn)換模塊將明文/密文的塊轉(zhuǎn)換成第一多個(gè)列中預(yù)定數(shù)量的字節(jié)單元。
步驟315包括提供用于處理圈密鑰的塊循環(huán)單元212,用于把預(yù)定數(shù)量的字節(jié)單元加密/解密成密文/明文;和
步驟320包括提供密鑰擴(kuò)展模塊215,用于對(duì)正常(加密)和逆(解密)功能執(zhí)行密鑰擴(kuò)展,以獲得擴(kuò)展的密鑰值;
其中,在步驟320上擴(kuò)展密鑰值的速率與在步驟315利用塊循環(huán)單元235的圈密鑰處理同步,以便與正被處理的相應(yīng)圈密鑰并行地?cái)U(kuò)展每個(gè)相應(yīng)密鑰值。
因此,存儲(chǔ)擴(kuò)展密鑰值所需的存儲(chǔ)器202中的存儲(chǔ)空間的數(shù)量不大于擴(kuò)展密鑰值的數(shù)量的一半。
通過檢查以兩種方式實(shí)施的AES提案(NIST,2001年11月26日)所建議的設(shè)計(jì);具有14個(gè)存儲(chǔ)空間的128、192和256密鑰長(zhǎng)度和具有存儲(chǔ)空間一半的第二設(shè)計(jì),并相對(duì)于圈密鑰處理利用仔細(xì)的重新計(jì)算,本發(fā)明顯示出新算法將所需空間降低一半。
本領(lǐng)域熟練技術(shù)人員將會(huì)明白,具有可以進(jìn)行的各種修改而不背離本發(fā)明的精神或所附權(quán)利要求的范圍。例如,使用的公用邏輯的比特?cái)?shù)量、設(shè)備的模塊和子模塊的布局、轉(zhuǎn)換的數(shù)據(jù)塊的數(shù)量、輸入和輸出模塊全都可以根據(jù)需要進(jìn)行修改。由于本發(fā)明能夠供安全連網(wǎng)處理器、安全鍵盤裝置、磁卡讀取裝置、智能卡讀取裝置和無線通信應(yīng)用諸如802.11裝置使用,因此數(shù)據(jù)的接收或輸出都可以被包含在公共電路內(nèi),或者經(jīng)由RF、光纖、微波等進(jìn)行發(fā)射。在這種情況下,除了各種類型傳輸?shù)膮f(xié)議轉(zhuǎn)換之外,還包括傳送和接收能力。此外,盡管實(shí)例顯示8字節(jié)(128比特),但是可以根據(jù)需要增加或減少這個(gè)量,和/或在AES協(xié)議中進(jìn)行改變。還應(yīng)當(dāng)注意,諸如“明文”和“密文”的術(shù)語是本技術(shù)領(lǐng)域的術(shù)語,并且加密/解密可以包含圖畫、照片、插圖、簡(jiǎn)圖,包括話音、視頻和/或多媒體數(shù)據(jù)。
例如,密鑰擴(kuò)展模塊為了說明目的而被顯示為與密鑰表分離的分離單元,并且密鑰表中所示的存儲(chǔ)器可以是公共存儲(chǔ)器,或者被安排和/或把所有組成部件可以被安排在公共電路卡上。盡管128、192和256長(zhǎng)度密鑰塊被用于示例,但是可以使用任何長(zhǎng)度密鑰塊,較大或者較小的密鑰塊,而不背離本發(fā)明的精神和所附權(quán)利要求的范圍。
權(quán)利要求
1、一種用于加密/解密的設(shè)備(200),包括
用于密碼本的密鑰表單元(201),所述密鑰表單元(201)提供預(yù)定數(shù)量的擴(kuò)展密鑰值,所述密鑰表單元(201)具有存儲(chǔ)器(202);
與密鑰表單元(201)通信的轉(zhuǎn)換模塊(208),所述轉(zhuǎn)換模塊把明文/密文的塊轉(zhuǎn)換成第一多個(gè)列中預(yù)定數(shù)量的字節(jié)單元;
塊循環(huán)單元(212),用于把預(yù)定數(shù)量的字節(jié)單元加密/解密成密文/明文;和
密鑰擴(kuò)展模塊(215),用于對(duì)正常(加密)和逆(解密)功能執(zhí)行密鑰擴(kuò)展,以獲得擴(kuò)展的密鑰值;
其中存儲(chǔ)擴(kuò)展密鑰值所需的存儲(chǔ)器(202)中的存儲(chǔ)空間的數(shù)量不大于擴(kuò)展密鑰值數(shù)量的一半。
2、根據(jù)權(quán)利要求1所述的設(shè)備,其中擴(kuò)展密鑰值的預(yù)定數(shù)量等于14,并且存儲(chǔ)空間的數(shù)量等于7,而且相對(duì)于相等數(shù)量的擴(kuò)展密鑰值和存儲(chǔ)空間的數(shù)量,存取時(shí)間不增加。
3、根據(jù)權(quán)利要求1所述的設(shè)備,其中擴(kuò)展密鑰值的預(yù)定數(shù)量等于12,以及存儲(chǔ)空間的數(shù)量等于6。
4、根據(jù)權(quán)利要求1所述的設(shè)備,其中擴(kuò)展密鑰值的預(yù)定數(shù)量等于10,并且存儲(chǔ)空間的數(shù)量等于5。
5、根據(jù)權(quán)利要求2所述的設(shè)備,其中密碼本的密鑰長(zhǎng)度是256比特。
6、根據(jù)權(quán)利要求3所述的設(shè)備,其中密碼本的密鑰長(zhǎng)度是192比特。
7、根據(jù)權(quán)利要求4所述的設(shè)備,其中密碼本的密鑰長(zhǎng)度是128比特。
8、根據(jù)權(quán)利要求1所述的設(shè)備,其中密碼本的密鑰長(zhǎng)度大于256比特。
9、根據(jù)權(quán)利要求1所述的設(shè)備,其中擴(kuò)展密鑰值的速率與塊循環(huán)單元(235)進(jìn)行的圈密鑰處理同步。
10、根據(jù)權(quán)利要求1所述的設(shè)備,其中密鑰擴(kuò)展模塊包括用于擴(kuò)展14個(gè)密鑰的裝置,以使得在加密期間順序地?cái)U(kuò)展密鑰1-7,在順序擴(kuò)展另一密鑰之前,每個(gè)擴(kuò)展密鑰值用于并行處理圈密鑰算法。
11、根據(jù)權(quán)利要求1所述的設(shè)備,其中密鑰擴(kuò)展模塊包括用于擴(kuò)展14個(gè)密鑰的裝置,以使得在解密期間,在存儲(chǔ)空間中以遞減位置順序擴(kuò)展密鑰14-8,隨后以遞升位置順序擴(kuò)展密鑰1-7,接著以遞減位置順序再擴(kuò)展密鑰14-8。
12、根據(jù)權(quán)利要求11所述的設(shè)備,其中存儲(chǔ)器(202)包括不多于7的存儲(chǔ)空間用于存儲(chǔ)密鑰值,并且一旦從位置1讀出密鑰8,就擴(kuò)展密鑰7并將其放置在適當(dāng)位置,其中以遞升位置順序讀出密鑰7-1,并與每個(gè)密鑰擴(kuò)展并行地執(zhí)行圈密鑰算法。
13、一種用于在密鑰擴(kuò)展功能期間降低存儲(chǔ)器需求的方法,所述方法包括以下步驟
(a)提供用于密碼本的密鑰表單元(201),所述密鑰表單元(201)提供預(yù)定數(shù)量的擴(kuò)展密鑰值,并且所述密鑰表單元(201)具有存儲(chǔ)器(202);
(b)提供與密鑰表單元(201)通信的轉(zhuǎn)換模塊(208),所述轉(zhuǎn)換模塊把明文/密文的塊轉(zhuǎn)換成第一多個(gè)列中預(yù)定數(shù)量的字節(jié)單元;
(c)提供塊循環(huán)單元(212),用于處理圈密鑰,以便把預(yù)定數(shù)量的字節(jié)單元加密/解密成密文/明文;和
(d)提供密鑰擴(kuò)展模塊(215),用于對(duì)正常(加密)和逆(解密)功能執(zhí)行密鑰擴(kuò)展,以獲得擴(kuò)展的密鑰值;
其中在步驟(d)中擴(kuò)展密鑰值的速率與在步驟(C)中由塊循環(huán)單元(235)進(jìn)行的圈密鑰處理同步,以便與正被處理的相應(yīng)圈密鑰并行地?cái)U(kuò)展每個(gè)相應(yīng)密鑰值,和
其中存儲(chǔ)擴(kuò)展密鑰值所需的存儲(chǔ)器(202)中的存儲(chǔ)空間的數(shù)量不大于擴(kuò)展密鑰值數(shù)量的一半。
14、根據(jù)權(quán)利要求13所述的方法,其中所述存儲(chǔ)器(202)中的存儲(chǔ)空間的數(shù)量等于7,并且擴(kuò)展密鑰值的預(yù)定數(shù)量等于14,而且相對(duì)于相等數(shù)量的擴(kuò)展密鑰值和存儲(chǔ)空間的數(shù)量,存取時(shí)間不增加。
15、根據(jù)權(quán)利要求13所述的方法,其中在步驟(d)中提供的密鑰擴(kuò)展模塊擴(kuò)展14個(gè)密鑰,以使得在加密期間順序擴(kuò)展密鑰1-7,在順序擴(kuò)展另一密鑰之前,每個(gè)擴(kuò)展密鑰值用于并行處理圈密鑰算法。
16、根據(jù)權(quán)利要求13所述的方法,其中在步驟(d)中提供的密鑰擴(kuò)展模塊擴(kuò)展14個(gè)密鑰,以使得在解密期間,在存儲(chǔ)空間中以遞減位置順序擴(kuò)展密鑰14-8,隨后以遞升位置順序擴(kuò)展密鑰1-7,接著以遞減位置順序再擴(kuò)展密鑰14-8。
17、根據(jù)權(quán)利要求13所述的方法,其中在步驟(a)中提供的存儲(chǔ)器(202)包括不多于7的存儲(chǔ)空間用于存儲(chǔ)密鑰值,并且一旦從位置1讀出密鑰8,就擴(kuò)展密鑰7并將其放置在適當(dāng)位置,其中以遞升位置順序讀出密鑰7-1,并與每個(gè)密鑰擴(kuò)展并行地執(zhí)行圈密鑰算法。
18、一種用于在密鑰擴(kuò)展功能期間降低存儲(chǔ)器需求的計(jì)算機(jī)程序產(chǎn)品,所述計(jì)算機(jī)程序產(chǎn)品包括具有可執(zhí)行指令的計(jì)算機(jī)可讀媒體,所述可執(zhí)行指令包括
(a)用于在加密/解密之一期間執(zhí)行密鑰擴(kuò)展的可執(zhí)行指令;
(b)用于與步驟(a)中利用密鑰表單元進(jìn)行的密鑰擴(kuò)展并行地由塊循環(huán)單元處理圈密鑰的可執(zhí)行指令,以便對(duì)于每個(gè)擴(kuò)展密鑰,同步處理相應(yīng)的圈密鑰;和
(c)用于存儲(chǔ)擴(kuò)展密鑰值的可執(zhí)行指令,以使存儲(chǔ)器中的存儲(chǔ)空間的所需數(shù)量不大于擴(kuò)展密鑰值數(shù)量的一半。
19、根據(jù)權(quán)利要求18所述的計(jì)算機(jī)程序產(chǎn)品,其中用于密鑰擴(kuò)展的步驟(a)中的可執(zhí)行指令擴(kuò)展14個(gè)密鑰,以使得在加密期間順序地?cái)U(kuò)展密鑰1-7,在順序地?cái)U(kuò)展另一個(gè)密鑰之前,每個(gè)擴(kuò)展密鑰值用于并行處理圈密鑰算法。
20、根據(jù)權(quán)利要求18所述的計(jì)算機(jī)程序產(chǎn)品,其中步驟(a)中提供的用于密鑰擴(kuò)展的可執(zhí)行指令提供用于擴(kuò)展14個(gè)密鑰的指令,以使得在解密期間在存儲(chǔ)空間中以遞減位置順序擴(kuò)展密鑰14-8,隨后以遞升位置順序擴(kuò)展密鑰1-7,接著以遞減位置順序再擴(kuò)展密鑰14-8。
21、根據(jù)權(quán)利要求18所述的計(jì)算機(jī)程序產(chǎn)品,其中步驟(a)和(b)中的可執(zhí)行指令包括存儲(chǔ)空間包括不多于7的存儲(chǔ)空間用于存儲(chǔ)密鑰值,并且一旦從位置1讀出密鑰8,就擴(kuò)展密鑰7并將其放置在適當(dāng)位置,其中以遞升位置順序讀出密鑰7-1,并與每個(gè)密鑰擴(kuò)展并行地執(zhí)行圈密鑰算法。
全文摘要
本發(fā)明公開了用于在諸如AES的算法中的密鑰擴(kuò)展功能期間降低所需存儲(chǔ)空間的設(shè)備、方法和計(jì)算機(jī)程序。塊循環(huán)單元(212)用于把預(yù)定數(shù)量的字節(jié)單元加密/解密成密文/明文。密鑰擴(kuò)展模塊(215)對(duì)正常(加密)和逆(解密)功能執(zhí)行密鑰擴(kuò)展,以獲得擴(kuò)展的密鑰值。存儲(chǔ)擴(kuò)展密鑰值所需的存儲(chǔ)器(202)中的存儲(chǔ)空間的數(shù)量不大于擴(kuò)展密鑰值數(shù)量的一半,并且通常需要7個(gè)存儲(chǔ)空間用于14個(gè)密鑰,而且相對(duì)于密鑰值和存儲(chǔ)空間的數(shù)量相等時(shí)的情況,不增加存取時(shí)間。密鑰擴(kuò)展與圈密鑰處理同步執(zhí)行,以便對(duì)于每個(gè)密鑰擴(kuò)展,與相應(yīng)的密鑰擴(kuò)展功能并行地處理圈密鑰。
文檔編號(hào)H04L9/06GK1795637SQ20048001406
公開日2006年6月28日 申請(qǐng)日期2004年5月19日 優(yōu)先權(quán)日2003年5月23日
發(fā)明者B·C·賽克斯頓 申請(qǐng)人:皇家飛利浦電子股份有限公司