專利名稱:加密密鑰生成電路的制作方法
背景技術(shù):
1、發(fā)明領(lǐng)域本發(fā)明涉及一個(gè)用于加密數(shù)據(jù)的電路,以及特別是涉及一個(gè)用于生成用在一個(gè)如“SAFER+”的加密算法中的一個(gè)循環(huán)子密鑰的小規(guī)模的密鑰生成電路。
2、相關(guān)技術(shù)的描述用于加密數(shù)據(jù)的算法,如公知的由Cylink公司開發(fā)的“SAFER+”?!癝AFER+”如圖20所示和用參考數(shù)字1表示。使用一個(gè)具有一個(gè)128、192和256位位長的加密密鑰,“SAFER+”加密算法1將預(yù)加密的128位輸入數(shù)據(jù)(純文本)加密成一個(gè)128位加密后的文本。
“SAFER+”加密算法1使用一個(gè)循環(huán)子密鑰生成電路2,當(dāng)加密密鑰是128位時(shí),生成17個(gè)循環(huán)子密鑰、當(dāng)加密密鑰是192位時(shí),生成25個(gè)循環(huán)子密鑰、當(dāng)加密密鑰是256位時(shí),生成33個(gè)循環(huán)子密鑰;以及使用所述循環(huán)子密鑰生成電路2生成的循環(huán)子密鑰來加密純文本的加密電路3。
在該算法中,一個(gè)計(jì)算過程被分為涉及到“循環(huán)”的級(jí)。當(dāng)加密密鑰是128位時(shí),循環(huán)的數(shù)字是8、當(dāng)加密密鑰是192位時(shí),循環(huán)的數(shù)字是12、當(dāng)加密密鑰是256位時(shí),循環(huán)的數(shù)字是16。每一個(gè)循環(huán)進(jìn)一步分成兩個(gè)子循環(huán),而且只有最后一個(gè)循環(huán)被分成三個(gè)子循環(huán)。相應(yīng)的,當(dāng)加密密鑰是128位時(shí),子循環(huán)的數(shù)字是17、當(dāng)加密密鑰是192位時(shí),子循環(huán)的數(shù)字是25、當(dāng)加密密鑰是256位時(shí),子循環(huán)的數(shù)字是33。為每一個(gè)子循環(huán)生成一個(gè)128位循環(huán)子密鑰。
圖21是在加密密鑰是128位時(shí),生成17個(gè)循環(huán)子密鑰的算法的圖示。圖22是在加密密鑰是192位時(shí),生成25個(gè)循環(huán)子密鑰的算法的圖示。
圖23是在加密密鑰是256位時(shí),生成33個(gè)循環(huán)子密鑰的算法的圖示。在這些算法中,當(dāng)加密密鑰是128位時(shí)的算法參照?qǐng)D21來描述。
如圖21所述的算法是由一個(gè)128位的加密密鑰生成的從K1到K17的循環(huán)子密鑰。方括號(hào)中標(biāo)“1”、“2”……“15”和“16”的數(shù)字,每一個(gè)表示128位輸入加密密鑰的8位。在這128位中(也就是16字節(jié)),最低的字節(jié)指定為括號(hào)內(nèi)的數(shù)字“1”,以及最高的字節(jié)指定為括號(hào)內(nèi)的數(shù)字“16”。在128位中,最低(有效)位是由括號(hào)中的數(shù)字1表示的最低字節(jié)的最低位,而最高(有效)位是由括號(hào)中的數(shù)字16表示的最高字節(jié)的最高位。如第一個(gè)循環(huán)子密鑰K1,128位加密密鑰就是這樣輸出的。
為對(duì)第二個(gè)子循環(huán)產(chǎn)生一個(gè)循環(huán)子密鑰K2,第17個(gè)字節(jié)是如下所述那樣產(chǎn)生的。輸入的128位加密密鑰被分成16個(gè)字節(jié),以及在相同的位的位置存在一個(gè)異或OR(XOR)的數(shù)據(jù)。最后的值被定義為表示在第17個(gè)字節(jié)中各自的位位置的數(shù)據(jù)。
然后,在17個(gè)字節(jié)中的每一個(gè)3位循環(huán)。也就是,例如,8位的{7,6,5,4,3,2,1,0}通過3位向左循環(huán),因此獲得{4,3,2,1,0,7,6,5}。作為第j次子循環(huán)的一個(gè)循環(huán)子密鑰Kj,由第j個(gè)字節(jié)表示的數(shù)據(jù)是作為最低字節(jié)的第一個(gè)輸出。然后,第(j+1)個(gè)字節(jié),第(j+2)個(gè)字節(jié)……第(j+15)個(gè)字節(jié)均輸出,總共16字節(jié)。當(dāng)(j+1)大于17,通過從(j+1)輸出減去17來獲得字節(jié)數(shù)。例如,循環(huán)子密鑰K15,用這種順序選擇字節(jié){15,16,17,1,2,3,4,5,6,7,8,9,10,11,12,13}并順序地輸出。然后,將偏差值bj加入到用這種順序輸出的字節(jié)表示的數(shù)據(jù)中。偏差值bj是由128位表示的一個(gè)定值,它是由一個(gè)子循環(huán)數(shù)字j確定的。偏差值bj和所選擇的值被加在一起因此就不用為每一個(gè)字節(jié)考慮進(jìn)位。偏差值bj的第一個(gè)字節(jié)是bj[I],循環(huán)子密鑰的最低字節(jié)K15通過增加由內(nèi)部寄存器的第15個(gè)字節(jié)和B15
的數(shù)據(jù)獲得的。依照不需要為每一個(gè)字節(jié)考慮進(jìn)位的增加,當(dāng)增加的結(jié)果α≤255時(shí),α被設(shè)為增加的結(jié)果;當(dāng)增加的結(jié)果α>255時(shí),(α-256)被設(shè)為增加的結(jié)果。
如上所述,因?yàn)檠h(huán)子密鑰K2到K17,3位循環(huán)以及從第j個(gè)字節(jié)到第(j+15)個(gè)字節(jié)的偏差值的輸出和增加都是重復(fù)進(jìn)行的,因此生成相應(yīng)的循環(huán)子密鑰。
如圖22和23所示,一個(gè)循環(huán)子密鑰是從一個(gè)192位加密密鑰或一個(gè)256位加密密鑰用與128位加密密鑰的情況的相同的方法產(chǎn)生的。除了以下不同之處,字節(jié)數(shù)的存儲(chǔ)更大。另外,在128位的情況下,當(dāng)(j+1)的值超過17時(shí),從(j+1)減去17。在192位的情況下,當(dāng)(j+1)的值超過25時(shí),從(j+1)減去25。在256位的情況下,當(dāng)(j+1)的值超過33時(shí),從(j+1)減去33。
也提出過許多其他的加密算法并公開制造,例如,日本擬公開的出版物No.2000-39840。該出版物并不包括密鑰生成的任何特定的例子。日本擬公開的出版物No.11-45049公開了一種密鑰生成過程,但該加密算法在該出版物上的描述與本發(fā)明所使用的“SAFER+”是不同的。
上述描述的用于生成一個(gè)循環(huán)子密鑰的算法有下面的問題。當(dāng)輸入一個(gè)加密密鑰,同時(shí)地計(jì)算和輸出所有的循環(huán)子密鑰。因此,電路的規(guī)模不可避免的很大。這是很好理解的,因?yàn)闉楦淖兠恳粋€(gè)循環(huán)子密鑰的輸出的字節(jié),選擇器是必不可少的,以及16(循環(huán)子密鑰的數(shù)字-1)倍的加法器也是必不可少的;也就是說,當(dāng)加密密鑰是128位時(shí),需要256個(gè)加法器,當(dāng)加密密鑰是192位時(shí),需要384個(gè)加法器,當(dāng)加密密鑰是256位時(shí),需要512個(gè)加法器。即使在如圖24所示的結(jié)構(gòu)中,循環(huán)子密鑰是一個(gè)一個(gè)輸出的,當(dāng)同時(shí)計(jì)算所有的循環(huán)子密鑰時(shí),也會(huì)發(fā)生相似的問題。在圖24中,一個(gè)循環(huán)子密鑰生成電路2包括用于計(jì)算一個(gè)位于與加密密鑰的不同字節(jié)的相同位置的一個(gè)異或位的一個(gè)異或“OR”邏輯電路9,一個(gè)寄存器10,一個(gè)3位循環(huán)電路12,一個(gè)輸出選擇器14,加法器15以及一個(gè)偏置表16。
本發(fā)明概述依照本發(fā)明的第一個(gè)方面,一個(gè)用于生成至少一個(gè)128位循環(huán)子密鑰的加密密鑰生成電路,該128位循環(huán)子密鑰用于對(duì)128位純文本加密的至少一個(gè)子循環(huán)中。從一個(gè)具有64×n位(2≤n≤4,其中n為整數(shù))的加密密鑰包括一個(gè)用于計(jì)算包括在加密密鑰的每一個(gè)字節(jié)中的在8位數(shù)據(jù)中位于同樣位置的1位數(shù)據(jù)異或的異或電路來生成1個(gè)字節(jié)的計(jì)算數(shù)據(jù);一個(gè)寄存器用于存儲(chǔ)由具有8×n個(gè)字節(jié)和所述1個(gè)字節(jié)計(jì)算數(shù)據(jù)的加密密鑰的和表示的(8×n+1)個(gè)字節(jié);一個(gè)字節(jié)循環(huán)電路通過至少一個(gè)子循環(huán)的每一個(gè)子循環(huán)中的1個(gè)字節(jié),用于完成(8×n+1)個(gè)字節(jié)數(shù)據(jù)的循環(huán)的字節(jié)循環(huán);一個(gè)3位循環(huán)電路通過每一個(gè)子循環(huán)中的3位,用于完成在(8×n+1)個(gè)字節(jié)數(shù)據(jù)中的每一個(gè)字節(jié)中的循環(huán)位的3位循環(huán);以及16倍加法器用于從(8×n+1)個(gè)字節(jié)數(shù)據(jù)的最低字節(jié)將一個(gè)128位偏差值加到(8×n)字節(jié)數(shù)據(jù)中,該過程由字節(jié)循環(huán)電路和3位循環(huán)電路處理,用來在每一個(gè)子循環(huán)中產(chǎn)生至少一個(gè)128位循環(huán)子密鑰中的一個(gè)。
依照本發(fā)明,對(duì)每一個(gè)循環(huán)子密鑰,并不一定需要一個(gè)選擇器來改變字節(jié)的輸出順序。因此,就能減小電路的規(guī)模。
依照本發(fā)明的另一個(gè)方面,用于生成至少一個(gè)128位循環(huán)子密鑰的一個(gè)加密密鑰生成電路用在對(duì)128位純文本的加密的至少一個(gè)子循環(huán)中,從一個(gè)具有64×n位(2≤n≤4,其中n為整數(shù))的加密密鑰包括一個(gè)用于計(jì)算包括在加密密鑰的每一個(gè)字節(jié)中的在8位數(shù)據(jù)中位于同樣位置的1位數(shù)據(jù)異或的異或電路來生成1個(gè)字節(jié)的計(jì)算數(shù)據(jù);一個(gè)寄存器用于存儲(chǔ)由具有8×n個(gè)字節(jié)和該1個(gè)字節(jié)計(jì)算數(shù)據(jù)的加密密鑰的和表示的(8×n+1)個(gè)字節(jié);一個(gè)字節(jié)/3位循環(huán)電路通過在至少一個(gè)子循環(huán)中的每一個(gè)子循環(huán)的一個(gè)字節(jié),用于完成(8×n+1)個(gè)字節(jié)數(shù)據(jù)的循環(huán)的字節(jié)循環(huán)和通過在至少一個(gè)子循環(huán)中的每一個(gè)子循環(huán)的3位,完成在(8×n+1)個(gè)字節(jié)數(shù)據(jù)中的每一個(gè)字節(jié)中的循環(huán)位的3位循環(huán);以及16倍加法器用于從(8×n+1)個(gè)字節(jié)數(shù)據(jù)的最低字節(jié)將一個(gè)128位偏差值加到(8×n)字節(jié)數(shù)據(jù)中,該過程由字節(jié)循環(huán)電路和3位循環(huán)電路處理,用來在每一個(gè)子循環(huán)中產(chǎn)生至少一個(gè)128位循環(huán)子密鑰中的一個(gè)。
在一個(gè)實(shí)施例的字節(jié)循環(huán)和3位循環(huán)是同時(shí)執(zhí)行的,完成的時(shí)間縮短了而且電路的規(guī)模也變小了。
依照本發(fā)明的另一個(gè)方面,一個(gè)用于生成至少一個(gè)128位循環(huán)子密鑰的加密密鑰生成電路,該128位循環(huán)子密鑰用于對(duì)128位純文本加密的至少一個(gè)子循環(huán)中。從一個(gè)具有64×n位(2≤n≤4,其中n為整數(shù))的加密密鑰包括一個(gè)用于計(jì)算包括在加密密鑰的每一個(gè)字節(jié)中的在8位數(shù)據(jù)中位于同樣位置的1位數(shù)據(jù)異或的異或電路來生成1個(gè)字節(jié)的計(jì)算數(shù)據(jù);一個(gè)寄存器用于存儲(chǔ)由具有8×n個(gè)字節(jié)和該1個(gè)字節(jié)計(jì)算數(shù)據(jù)的加密密鑰的和表示的(8×n+1)個(gè)字節(jié);一個(gè)字節(jié)循環(huán)電路通過至少一個(gè)子循環(huán)的每一個(gè)子循環(huán)中的m個(gè)字節(jié),用于完成(8×n+1)個(gè)字節(jié)數(shù)據(jù)的循環(huán)的m字節(jié)循環(huán),至少一次;一個(gè)3位循環(huán)電路通過每一個(gè)子循環(huán)中的3位,用于完成在(8×n+1)個(gè)字節(jié)數(shù)據(jù)中的每一個(gè)字節(jié)中的循環(huán)位的3位循環(huán);以及m個(gè)加法器用于從(8×n+1)個(gè)字節(jié)數(shù)據(jù)的最低字節(jié)將一個(gè)(8×m)位偏差值加到在(8×n)字節(jié)數(shù)據(jù)的每一個(gè)(8×m)位數(shù)據(jù)單元中,該過程由m字節(jié)循環(huán)電路和3位循環(huán)電路處理,用來在每一個(gè)子循環(huán)中產(chǎn)生至少一個(gè)128位循環(huán)子密鑰中的一個(gè)。
在本發(fā)明的一個(gè)實(shí)施例中,m為1。
在本發(fā)明的一個(gè)實(shí)施例中,m為2。
在一個(gè)實(shí)施例中的偏差值是一次增加一個(gè)字節(jié),只需要一個(gè)加法器而不是16個(gè)。電路的規(guī)模進(jìn)一步減小。
在一個(gè)實(shí)施例中的偏差值是一次增加兩個(gè)字節(jié),只需要兩個(gè)加法器而不是16個(gè)。電路的規(guī)模進(jìn)一步減小。
依照本發(fā)明的另一個(gè)方面,用于生成至少一個(gè)128位循環(huán)子密鑰的一個(gè)加密密鑰生成電路用在對(duì)128位純文本的加密的至少一個(gè)子循環(huán)中,從一個(gè)具有64×n位(2≤n≤4,其中n為整數(shù))的加密密鑰包括一個(gè)用于計(jì)算包括在加密密鑰的每一個(gè)字節(jié)中的在8位數(shù)據(jù)中位于同樣位置的1位數(shù)據(jù)異或的異或電路來生成1個(gè)字節(jié)的計(jì)算數(shù)據(jù);一個(gè)寄存器用于存儲(chǔ)由具有8×n個(gè)字節(jié)和該1個(gè)字節(jié)計(jì)算數(shù)據(jù)的加密密鑰的和表示的(8×n+1)個(gè)字節(jié);一個(gè)字節(jié)/3位循環(huán)電路通過在至少一個(gè)子循環(huán)中的每一個(gè)子循環(huán)的m個(gè)字節(jié),用于完成至少一次,完成(8×n+1)個(gè)字節(jié)數(shù)據(jù)的循環(huán)的m字節(jié)循環(huán)(其中m是8×n的一個(gè)除數(shù))和通過在每一個(gè)m字節(jié)循環(huán)中3位,完成在(8×n+1)個(gè)字節(jié)數(shù)據(jù)中的m字節(jié)數(shù)據(jù)中的循環(huán)位的3位循環(huán);以及m個(gè)加法器用于從(8×n+1)個(gè)字節(jié)數(shù)據(jù)的最低字節(jié)將一個(gè)(8×m)位偏差值加到每一個(gè)(8×m)字節(jié)數(shù)據(jù)單元中,該過程由m字節(jié)循環(huán)電路和3位循環(huán)電路處理,用來在每一個(gè)子循環(huán)中產(chǎn)生至少一個(gè)128位循環(huán)子密鑰中的一個(gè)。
本發(fā)明的一個(gè)實(shí)施例中,m為1。
本發(fā)明的一個(gè)實(shí)施例中,m為1。
在一個(gè)實(shí)施例中,當(dāng)字節(jié)循環(huán)執(zhí)行的時(shí)候同時(shí)在一個(gè)字節(jié)中執(zhí)行3位循環(huán),縮短了過程時(shí)間和減小了電路規(guī)模。
在一個(gè)實(shí)施例中,當(dāng)字節(jié)循環(huán)執(zhí)行的時(shí)候同時(shí)在兩個(gè)字節(jié)中執(zhí)行3位循環(huán),縮短了過程時(shí)間和減小了電路規(guī)模。
因此,在這里描述的本發(fā)明使得提供一個(gè)使用一個(gè)“SAFER+”加密算法,生成一個(gè)循環(huán)子密鑰的小規(guī)模的加密密鑰生成電路成為可能。
對(duì)本領(lǐng)域的普通技術(shù)人員來說,在閱讀和理解下面的參照附圖的詳細(xì)說明的基礎(chǔ)上,本發(fā)明的這些和其他的優(yōu)點(diǎn)就會(huì)很明顯。
本發(fā)明的詳細(xì)說明圖1是根據(jù)本發(fā)明的第一個(gè)實(shí)施例,說明一個(gè)循環(huán)子密鑰生成電路的方塊圖;圖2A和2B示出了在如圖1所示的循環(huán)子密鑰生成電路中一個(gè)字節(jié)循環(huán)電路的一個(gè)操作過程;圖3示出了在如圖1所示的循環(huán)子密鑰生成電路中的一個(gè)3位循環(huán)電路;圖4示出了在如圖1所示的循環(huán)子密鑰生成電路的一個(gè)操作過程;圖5是根據(jù)本發(fā)明的第二個(gè)實(shí)施例,說明一個(gè)循環(huán)子密鑰生成電路的方塊圖;圖6示出了如圖5所示的循環(huán)子密鑰生成電路中一個(gè)字節(jié)/3位循環(huán)電路的一個(gè)操作過程;圖7示出了如圖5所示的循環(huán)子密鑰生成電路中一個(gè)字節(jié)/3位循環(huán)電路的一個(gè)操作過程;圖8示出了如圖5所示的循環(huán)子密鑰生成電路的一個(gè)操作過程。
圖9是根據(jù)本發(fā)明的第三個(gè)實(shí)施例,說明一個(gè)循環(huán)子密鑰生成電路的方塊圖;圖10示出了如圖9所示的一個(gè)循環(huán)子密鑰生成電路的一個(gè)操作過程;圖11是根據(jù)本發(fā)明的第四個(gè)實(shí)施例,說明一個(gè)循環(huán)子密鑰生成電路的方塊圖;圖12示出了在如圖11所示的一個(gè)循環(huán)子密鑰生成電路中一個(gè)字節(jié)/3位循環(huán)電路;圖13示出如圖11所示的一個(gè)循環(huán)子密鑰生成電路的一個(gè)操作過程;圖14是根據(jù)本發(fā)明的第五個(gè)實(shí)施例,說明一個(gè)循環(huán)子密鑰生成電路的方塊圖;圖15A和15B示出了在如圖14所示的循環(huán)子密鑰生成電路中一個(gè)兩字節(jié)的循環(huán)電路的一個(gè)操作過程;圖16示出了如圖14所示的循環(huán)子密鑰生成電路的一個(gè)操作過程;圖17圖14是根據(jù)本發(fā)明的第六個(gè)實(shí)施例,說明一個(gè)循環(huán)子密鑰生成電路的方塊圖;圖18示出了在如圖17所示的循環(huán)子密鑰生成電路中,一個(gè)2字節(jié)/3位循環(huán)電路的一個(gè)操作過程;圖19示出了如圖17所示的循環(huán)子密鑰生成電路的一個(gè)操作過程;圖20是說明涉及如SAFER+的一個(gè)加密算法的方框圖;圖21示出了當(dāng)加密密鑰是128位時(shí),生成一個(gè)循環(huán)子密鑰的過程;
圖22示出了當(dāng)加密密鑰是196位時(shí),生成一個(gè)循環(huán)子密鑰的過程;圖23示出了當(dāng)加密密鑰是256位時(shí),生成一個(gè)循環(huán)子密鑰的過程;圖24是一個(gè)傳統(tǒng)的循環(huán)子密鑰生成電路的一個(gè)方框圖。
最佳實(shí)施例的描述在下文,將通過參照
實(shí)施例的方法來講述本發(fā)明。
(實(shí)施例1)圖1是根據(jù)本發(fā)明的第一個(gè)實(shí)施例,說明與一個(gè)加密密鑰生成電路一樣的一個(gè)循環(huán)子密鑰生成電路201的方框圖。該循環(huán)子密鑰生成電路201不能代替如圖20所示的循環(huán)子密鑰生成電路2以及用于完成SAFER+1加密。
循環(huán)子密鑰生成電路201包括一個(gè)異或電路9、一個(gè)內(nèi)部寄存器10、一個(gè)字節(jié)循環(huán)電路11、一個(gè)3位循環(huán)電路12、一個(gè)偏差表16和16個(gè)加法器15。在圖1中,為了簡潔起見,16個(gè)加法器15用一個(gè)加法器符號(hào)來表示。
異或電路9將一個(gè)輸入的加密密鑰分成1字節(jié)(8位)單元,并計(jì)算在所有的1字節(jié)單元中的相同的位位置的位的一個(gè)異或來輸出用1字節(jié)表示的數(shù)據(jù)。
內(nèi)部寄存器10存儲(chǔ)用于生成一個(gè)循環(huán)子密鑰的數(shù)據(jù),這些數(shù)據(jù)具有該輸入加密密鑰+1字節(jié)的字節(jié)的數(shù)目。內(nèi)部寄存器10存儲(chǔ)該輸入的加密密鑰,字節(jié)循環(huán)獲得的信息,以及由3位循環(huán)獲得的信息。
字節(jié)循環(huán)電路11對(duì)內(nèi)部寄存器10中存儲(chǔ)的數(shù)據(jù)進(jìn)行循環(huán),這些數(shù)據(jù)由一個(gè)字節(jié)(8位)單元中的輸入的加密密鑰+1字節(jié)的字節(jié)表示。該字節(jié)循環(huán)電路11主要包括一條線和一個(gè)選擇器。
圖2A示出了使用字節(jié)循環(huán)電路11完成17字節(jié)的字節(jié)循環(huán)的過程。在圖2A中,每一個(gè)方框表示存在在內(nèi)部寄存器10中的一個(gè)字節(jié)。每一個(gè)方框中的數(shù)字表示各個(gè)字節(jié)的序號(hào)。更準(zhǔn)確地說,例如,數(shù)字“1”表示存儲(chǔ)由第一個(gè)字節(jié)(或最低字節(jié))表示的數(shù)據(jù);數(shù)字“2”表示存儲(chǔ)由第二個(gè)字節(jié)表示的數(shù)據(jù)等等。在圖2中上部的一系列方框表示在執(zhí)行字節(jié)循環(huán)前,內(nèi)部寄存器10的狀態(tài)。如圖所示的,方框中有從左到右的連續(xù)數(shù)字。在圖2中下部的一系列方框表示在執(zhí)行了字節(jié)循環(huán)后,內(nèi)部寄存器10的狀態(tài)。如圖所示,由第17個(gè)字節(jié)表示的數(shù)據(jù)從左邊移動(dòng)到第16個(gè)方框;由第16個(gè)字節(jié)表示的數(shù)據(jù)從左邊移動(dòng)到第15個(gè)方框等等。由第2個(gè)字節(jié)表示的數(shù)據(jù)移動(dòng)到最左邊的方框;以及由第1個(gè)字節(jié)表示的數(shù)據(jù)從左邊移動(dòng)到第17個(gè)方框。
圖2A示出了內(nèi)部寄存器10的逐字節(jié)的狀態(tài)。圖2B示出了內(nèi)部寄存器10的一種逐位的狀態(tài)。在圖2B中,每一個(gè)方框表示存儲(chǔ)在內(nèi)部寄存器10的1位。在每一個(gè)方框中的數(shù)字表示存儲(chǔ)在內(nèi)部寄存器10中的各個(gè)位(從0位到135位)的序號(hào)。更準(zhǔn)確地說,例如,數(shù)字“0”表示存儲(chǔ)由第1位表示的數(shù)據(jù);數(shù)字“1”表示存儲(chǔ)由第2位表示的數(shù)據(jù)等等;在圖2B中,最左邊欄的8個(gè)方框(0到第7位)與圖2A中最左邊的方框(1字節(jié))對(duì)應(yīng);且圖2B中最左邊的第二欄的8個(gè)方框(第8位到第15位)與圖2A中最左邊的第二個(gè)方框(1字節(jié))對(duì)應(yīng)。沿著在位之間提供的連線來執(zhí)行字節(jié)循環(huán);例如,由第8位表示的數(shù)據(jù)移動(dòng)到第0位;由第0位表示的數(shù)據(jù)移動(dòng)到第128位等等。
為了更好地理解信號(hào)的流程,圖2B只示出了位之外的連線。實(shí)際上,字節(jié)循環(huán)電路11包括在每一條連線上的一個(gè)選擇器,用來選擇存儲(chǔ)在內(nèi)部寄存器10中的數(shù)據(jù),也就是說,由字節(jié)循環(huán)來處理數(shù)據(jù)或者由其他的處理過程來處理數(shù)據(jù)。
圖3是3位循環(huán)電路12的圖解。3位循環(huán)電路12執(zhí)行3位循環(huán),也就是說,向左循環(huán)3位存儲(chǔ)在內(nèi)部寄存器10中的數(shù)據(jù)(加密密鑰+1字節(jié)的字節(jié))。例如,位{7,6,5,4,3,2,1,0}向左循環(huán)3位變成位{4,3,2,1,0,7,6,5}。
3位循環(huán)電路12主要包括一條線和一個(gè)選擇器(在下面說明)。在圖3中,右邊欄的8個(gè)方框表示存儲(chǔ)在內(nèi)部寄存器10里的字節(jié)中的任意一個(gè)字節(jié)。每一個(gè)方框表示1位。右邊欄的8個(gè)長方形框表示一個(gè)選擇器。選擇器選擇將存儲(chǔ)在內(nèi)部寄存器10中的數(shù)據(jù),也就是說,數(shù)據(jù)是由3位循環(huán)處理或由其它的處理過程來處理。3位循環(huán)是通過如把第7位表示的數(shù)據(jù)移動(dòng)到第2位、把6位表示的數(shù)據(jù)移動(dòng)到1位、把第5位表示的數(shù)據(jù)移動(dòng)到第0位、把4位表示的數(shù)據(jù)移動(dòng)到7位、把第3位表示的數(shù)據(jù)移動(dòng)到第6位、把2位表示的數(shù)據(jù)移動(dòng)到5位、把第1位表示的數(shù)據(jù)移動(dòng)到第4位、把0位表示的數(shù)據(jù)移動(dòng)到3位來完成的。
偏差表16提供一個(gè)由一個(gè)子循環(huán)信號(hào)(在下面描述)確定的一個(gè)偏差值(即由128位表示的不變值)。
加法器15沒有進(jìn)位地將在內(nèi)部寄存器10中存儲(chǔ)的數(shù)據(jù)表示的值與8位單元中的偏差值相加。16個(gè)加法器15均要求去執(zhí)行16個(gè)字節(jié)(128位)的計(jì)算。
循環(huán)子密鑰產(chǎn)生電路201如下所述的操作。盡管根據(jù)輸入的加密密鑰的位的數(shù)量,處理的方式不同,基本的操作還是相似的。因此,當(dāng)輸入128位加密密鑰時(shí),所執(zhí)行的操作將參照?qǐng)D1到圖4來說明。
在第一個(gè)實(shí)施例中的循環(huán)子密鑰生成電路201刪除了圖24中所示的傳統(tǒng)的循環(huán)子密鑰生成電路2中的輸出選擇器14來減小電路的大小,相反,循環(huán)子密鑰生成電路201包括如圖1所示的字節(jié)循環(huán)電路11。
圖4是沿時(shí)間軸,循環(huán)子密鑰生成電路201的內(nèi)部寄存器10中的數(shù)據(jù)的狀態(tài)的圖解。在圖4中,每一個(gè)方框表示存儲(chǔ)在內(nèi)部寄存器10中的1個(gè)字節(jié)。當(dāng)輸入加密密鑰時(shí),每一個(gè)框中的數(shù)字表示在加密密鑰中的各個(gè)字節(jié)的序號(hào)。更準(zhǔn)確地說,例如,數(shù)字“1”表示在存儲(chǔ)的所輸入的加密密鑰中,表示第一個(gè)字節(jié)的數(shù)據(jù);數(shù)字“2”表示在存儲(chǔ)的所輸入的加密密鑰中,表示第二個(gè)字節(jié)的數(shù)據(jù)等等。
在時(shí)間t1,內(nèi)部寄存器10存儲(chǔ)輸入的128位加密密鑰(16個(gè)字節(jié))。在這一點(diǎn)上,異或OR電路9計(jì)算在所輸入的加密密鑰的所有16個(gè)字節(jié)中的相同的位置(也就是位)的數(shù)據(jù)的異或。結(jié)果值被定義為表示在第17個(gè)字節(jié)中各自位置的數(shù)據(jù)。例如,計(jì)算由所有16個(gè)字節(jié)中的第0位表示的數(shù)據(jù)的異或,結(jié)果值定義為表示在第17個(gè)字節(jié)中的第0位的數(shù)據(jù)。然后,由最低的16個(gè)字節(jié)表示的數(shù)據(jù)從加法器15輸出作為一個(gè)循環(huán)子密鑰K1。所輸出的數(shù)據(jù)是前面的字節(jié)的循環(huán)數(shù)據(jù),因此,該數(shù)據(jù)是由所輸入的加密密鑰表示的數(shù)據(jù)。
下一步,在時(shí)間t2,字節(jié)循環(huán)電路11完成字節(jié)循環(huán)。即如圖4所示,字節(jié)通過向左移動(dòng)1個(gè)字節(jié)來循環(huán)。更準(zhǔn)確地說,例如,由最低字節(jié)表示的數(shù)據(jù)移動(dòng)到最右邊的框。由第2個(gè)字節(jié)表示的數(shù)據(jù)移動(dòng)到最左邊的框;由第3個(gè)字節(jié)表示的數(shù)據(jù)移動(dòng)到從左數(shù)的第2個(gè)框等等。
然后,在時(shí)間t3,3位循環(huán)電路12完成在每一個(gè)字節(jié)的3位循環(huán)。然后,通過加法器15輸出的由最低16個(gè)字節(jié)表示的數(shù)據(jù)作為一個(gè)循環(huán)子密鑰K2,如圖4所示的循環(huán)子密鑰K2中的16個(gè)字節(jié)的順序與如圖21所示的循環(huán)子密鑰K2中的16字節(jié)的順序是相同的。因此,不需要選擇字節(jié)的順序來輸出。
在時(shí)間t4,執(zhí)行字節(jié)循環(huán)。在時(shí)間t5,在每一個(gè)字節(jié)中執(zhí)行3位循環(huán)。然后,從加法器15輸出一個(gè)循環(huán)子密鑰K3。此外,如圖4所示的循環(huán)子密鑰K3中的16個(gè)字節(jié)的順序與如圖21所示的循環(huán)子密鑰K3中的16個(gè)字節(jié)的順序是相同的。因此,不需要選擇字節(jié)的輸出順序。
此后,字節(jié)循環(huán)和3位循環(huán)都用相同的方式來完成。因此,能獲得循環(huán)子密鑰K1到K17中的所需的循環(huán)子密鑰而不需要使用一個(gè)輸出選擇器。在輸入一個(gè)192位加密密鑰或一個(gè)256位加密密鑰的情況下,用相同的過程來獲得所需的循環(huán)子密鑰。
如圖24所示的傳統(tǒng)的循環(huán)子密鑰生成電路2為輸出循環(huán)子密鑰的每一位,需要存儲(chǔ)在內(nèi)部寄存器10中的通過輸出選擇器14選擇的數(shù)據(jù)。因?yàn)橄旅娴脑?,輸出選擇器14需要具有一個(gè)大的規(guī)模。當(dāng)輸入的加密密鑰是128位時(shí),從17位中選擇1位,當(dāng)輸入的加密密鑰是192位時(shí),從25位中選擇1位,當(dāng)輸入的加密密鑰是256位時(shí),從33位中選擇1位;因此為循環(huán)子密鑰的128位的每一位完成這樣的選擇。
相比之下,在每一個(gè)實(shí)施例中的循環(huán)子密鑰生成電路201對(duì)由內(nèi)部寄存器10中的字節(jié)表示的數(shù)據(jù)進(jìn)行循環(huán)。因此,只要循環(huán)子密鑰生成電路201包括與由內(nèi)部寄存器10中的字節(jié)表示的數(shù)據(jù)循環(huán)時(shí)一起的連線和選擇器,就能輸出所需的循環(huán)子密鑰。因而能減小循環(huán)子密鑰生成電路201。
(實(shí)施例2)圖5是依照本發(fā)明的第二個(gè)實(shí)施例,說明與一個(gè)加密密鑰生成電路一樣的循環(huán)子密鑰生成電路202的結(jié)構(gòu)的方框圖。循環(huán)子密鑰生成電路202不能由圖20所示的循環(huán)子密鑰生成電路2來替代而且用來完成SAFER+1加密。
循環(huán)子密鑰生成電路202包括一個(gè)異或電路9、一個(gè)內(nèi)容寄存器10、一個(gè)字節(jié)/3位循環(huán)電路13,一個(gè)偏差表16以及16個(gè)加法器15。在圖5中,為簡潔起見,16個(gè)加法器15用一個(gè)加法器符號(hào)來表示。
循環(huán)子密鑰生成電路202由字節(jié)/3位循環(huán)電路13的同一個(gè)循環(huán)完成字節(jié)循環(huán)和3位循環(huán)。因此,循環(huán)子密鑰生成電路202縮短了過程時(shí)間并減小了規(guī)模。
參照?qǐng)D6,字節(jié)/3位循環(huán)電路13對(duì)存儲(chǔ)在內(nèi)部寄存器10中的數(shù)據(jù)進(jìn)行循環(huán),該數(shù)據(jù)是由輸入的加密密鑰+1位的字節(jié)表示,在1個(gè)字節(jié)(8位)單元中,當(dāng)循環(huán)時(shí),存儲(chǔ)在每一個(gè)字節(jié)中的數(shù)據(jù)向左移3位。在第一個(gè)實(shí)施例中的完成的字節(jié)循環(huán),例如,由每一個(gè)字節(jié)的第7位表示的數(shù)據(jù)移動(dòng)到另一個(gè)字節(jié)的第7位。在第二個(gè)實(shí)施例中,字節(jié)循環(huán)和3位循環(huán)是同時(shí)完成的。因此,例如,由一個(gè)字節(jié)的第7位表示的數(shù)據(jù)移動(dòng)到另一個(gè)字節(jié)的第2位。
圖6示出了在內(nèi)部寄存器10中的一個(gè)特定的字節(jié)中的數(shù)據(jù)的改變。圖7示出了在內(nèi)部寄存器10中多數(shù)字節(jié)的數(shù)據(jù)的改變。為了更好地理解信號(hào)的流程,圖7僅示了位之外的連線。實(shí)際上,字節(jié)/3位循環(huán)電路13包括用來選擇將存儲(chǔ)在內(nèi)部寄存器10的數(shù)據(jù)的每一條連線上的一個(gè)選擇器,也就是說,由字節(jié)/3位循環(huán)處理數(shù)據(jù)或由另一個(gè)處理過程處理數(shù)據(jù)。
循環(huán)子密鑰生成電路202按如下所述的操作。盡管根據(jù)輸入的加密密鑰的位的數(shù)據(jù),處理方法有所不同,但基本的操作還是相似的。因此,當(dāng)輸入一個(gè)128位加密密鑰時(shí),所執(zhí)行的操作將參照?qǐng)D5和8來進(jìn)行描述。
圖8是沿著時(shí)間軸,循環(huán)子密鑰生成電路202的內(nèi)部寄存器中的數(shù)據(jù)的狀態(tài)的說明。
在時(shí)間t1,內(nèi)部寄存器10存儲(chǔ)輸入的128位加密密鑰(16個(gè)字節(jié))。在這一點(diǎn)上,異或OR電路9計(jì)算在所輸入的加密密鑰的所有16個(gè)字節(jié)中的相同的位置(也就是位)的數(shù)據(jù)的異或。結(jié)果值被定義為表示在第17個(gè)字節(jié)中各自位置的數(shù)據(jù)。然后,由最低的16個(gè)字節(jié)表示的數(shù)據(jù)從加法器15輸出作為一個(gè)循環(huán)子密鑰K1。
下一步,在時(shí)間t2,字節(jié)/3位循環(huán)電路13同時(shí)完成字節(jié)循環(huán)和3位循環(huán)。因此從加法器15輸出一個(gè)循環(huán)子密鑰K2。即如圖8所示,在時(shí)間t2完成的字節(jié)循環(huán)和在時(shí)間t3完成3位循環(huán)是同時(shí)完成的。因此,通過一個(gè)步驟所需的時(shí)間來縮短用于輸出一個(gè)循環(huán)子密鑰所需的時(shí)間。
此后,字節(jié)循環(huán)和3位循環(huán)用一個(gè)相似的方式來同時(shí)完成以在循環(huán)子密鑰K1到K17中的獲得一個(gè)所需的循環(huán)子密鑰。在輸入一個(gè)192位加密密鑰或一個(gè)256位加密密鑰的情況下,用相似的過程來獲得所需的循環(huán)子密鑰。
需要33步驟的處理過程在第一個(gè)實(shí)施例中能用17步驟來完成。
在電路大小方面,在第一個(gè)實(shí)施例的每一個(gè)字節(jié)循環(huán)電路11和3位循環(huán)電路12中提供的選擇器通常可用在第二個(gè)實(shí)施例中。因此,與第一個(gè)實(shí)施例相比,能減少選擇器的數(shù)量的一半。
(實(shí)施例3)圖9依照本發(fā)明的第三個(gè)實(shí)施例,說明與一個(gè)加密密鑰生成電路一樣的循環(huán)子密鑰生成電路203的結(jié)構(gòu)的方框圖。循環(huán)子密鑰生成電路203不能由圖20所示的循環(huán)子密鑰生成電路2來替代而且用來完成SAFER+1加密。
循環(huán)子密鑰生成電路203包括一個(gè)異或OR電路9、一個(gè)內(nèi)部寄存器10、一個(gè)字節(jié)循環(huán)電路11、一個(gè)3位循環(huán)電路12、一個(gè)偏差表17以及一個(gè)加法器15。
循環(huán)子密鑰生成電路203為每一個(gè)子循環(huán)輸出一個(gè)循環(huán)子密鑰,如同第一個(gè)實(shí)施例中的循環(huán)子密鑰生成電路201。循環(huán)子密鑰生成電路203通過8位在8位中輸出128位循環(huán)子密鑰,而循環(huán)子密鑰生成電路201同時(shí)輸出128位循環(huán)子密鑰。另外,通過一個(gè)子循環(huán)信號(hào)和在偏差表17中的一個(gè)字節(jié)信號(hào)來確定一個(gè)8位偏差值。一個(gè)“子循環(huán)信號(hào)”指出每一個(gè)子循環(huán)的數(shù)量,以及在循環(huán)子密鑰中,一個(gè)“字節(jié)信號(hào)”表示在內(nèi)部寄存器10的最低字節(jié)的序號(hào)。由于一次增加的偏差值是1個(gè)字節(jié),只需要一個(gè)加法器15而不是16個(gè)。這就進(jìn)一步減小了電路的大小。
循環(huán)子密鑰生成電路203按如下所述的操作。盡管依照輸入的加密密鑰的數(shù)量,處理的方式有所不同,但基本的操作還是相似的。在這里,當(dāng)輸入一個(gè)128位加密密鑰時(shí),所執(zhí)行的操作是參照?qǐng)D9和10來描述。
在第三個(gè)實(shí)施例中,循環(huán)子密鑰生成電路203刪除了如圖24所示的傳統(tǒng)循環(huán)子密鑰生成電路2中的輸出選擇器14而且包括一個(gè)加法器15而不是16,因此能減小電路的大小。相反,循環(huán)子密鑰生成電路203包括如圖9所示的字節(jié)循環(huán)電路11。循環(huán)子密鑰生成電路203只輸出在內(nèi)部寄存器10中的最低的字節(jié),而在第一個(gè)實(shí)施例中的循環(huán)子密鑰生成電路201同時(shí)輸出在內(nèi)部寄存器10中的16字節(jié)表示的數(shù)據(jù)。
圖10是沿時(shí)間軸,循環(huán)子密鑰生成電路203的內(nèi)部寄存器10中的數(shù)據(jù)的狀態(tài)的圖解。在圖10中,每一個(gè)方框表示存儲(chǔ)在內(nèi)部寄存器10中的1個(gè)字節(jié)。當(dāng)輸入加密密鑰時(shí),每一個(gè)方框中的數(shù)字表示在加密密鑰中的各個(gè)字節(jié)的序號(hào)。Kj[I]表示包括16個(gè)字節(jié)(128位)的循環(huán)子密鑰Kj的第i個(gè)字節(jié)。
在時(shí)間t1,內(nèi)部寄存器10存儲(chǔ)輸入的128位加密密鑰(16個(gè)字節(jié))。在這一點(diǎn)上,異或OR電路9計(jì)算在所輸入的加密密鑰的所有16個(gè)字節(jié)中的相同的位置(也就是位)的數(shù)據(jù)的異或。結(jié)果值被定義為表示在第17個(gè)字節(jié)中各自位置的數(shù)據(jù)。然后,內(nèi)部寄存器10將由最低字節(jié)表示的數(shù)據(jù)輸出到加法器15。在時(shí)間t1,輸出由循環(huán)子密鑰K1的第1個(gè)字節(jié)(即K1[1])表示的數(shù)據(jù)。
下一步,在時(shí)間t2,字節(jié)循環(huán)電路11完成字節(jié)循環(huán),即如圖10所示,通過向左移動(dòng)一個(gè)字節(jié)來完成字節(jié)循環(huán)。更準(zhǔn)確地說,例如,由最低字節(jié)表示的數(shù)據(jù)移動(dòng)到最右邊的框。然后,由最低字節(jié)表示的數(shù)據(jù)輸出到加法器15。在時(shí)間t2,輸出由循環(huán)子密鑰的K1的第2字節(jié)(即K1[2])表示的數(shù)據(jù)。
重復(fù)執(zhí)行上面所描述的步驟直到時(shí)間t16。用這種方式,連續(xù)地輸出由循環(huán)子密鑰K1的最低字節(jié)表示的數(shù)據(jù),直到輸出由所有128位表示的數(shù)據(jù)。
在時(shí)間t17、t18、t19,為將下一個(gè)子循環(huán)的第1個(gè)字節(jié)表示的數(shù)據(jù)調(diào)整到最低字節(jié),只執(zhí)行字節(jié)循環(huán)。
在時(shí)間t20,在內(nèi)部寄存器10的第一個(gè)字節(jié)執(zhí)行3位循環(huán)。因此,循環(huán)子密鑰生成電路203準(zhǔn)備輸出一個(gè)循環(huán)子密鑰K2。因此,輸出一個(gè)循環(huán)子密鑰K2[1]。
此后,字節(jié)循環(huán)和3位循環(huán)用相似的方式完成。因此,可以在不使用一個(gè)輸出選擇器的情況下獲得由在循環(huán)子密鑰K1到K17中所需的循環(huán)子密鑰的所需的字節(jié)表示的數(shù)據(jù)。
為增加一個(gè)偏差值,用一個(gè)步驟從內(nèi)部寄存器10輸出1字節(jié)的數(shù)據(jù),一個(gè)1字節(jié)偏差值是由需要輸出的一個(gè)子循環(huán)信號(hào)和一個(gè)字節(jié)信號(hào)確定的。
在輸入一個(gè)192位加密密鑰或一個(gè)256位加密密鑰的情況下,用相似的過程來獲得所需的循環(huán)子密鑰的一個(gè)所需的字節(jié)。
(實(shí)施例4)圖11依照本發(fā)明的第四個(gè)實(shí)施例,說明與一個(gè)加密密鑰生成電路一樣的循環(huán)子密鑰生成電路204的結(jié)構(gòu)的方框圖。循環(huán)子密鑰生成電路204不能由圖20所示的循環(huán)子密鑰生成電路2來替代而且用來完成SAFER+1加密。
循環(huán)子密鑰生成電路204包括一個(gè)異或OR電路9、一個(gè)內(nèi)部寄存器10、一個(gè)字節(jié)/3位循環(huán)電路19、一個(gè)偏差表17以及一個(gè)加法器15。
循環(huán)子密鑰生成電路204通過字節(jié)/3位循環(huán)電路19在同一個(gè)循環(huán)過程中完成字節(jié)循環(huán)和3位循環(huán)。因此,循環(huán)子密鑰生成電路204縮短了過程時(shí)間因而具有一個(gè)減小后的大小。
如圖12所示,字節(jié)/3位循環(huán)電路19只在最低字節(jié)完成移動(dòng)到最右邊的框的3位循環(huán)。由第(j+1)字節(jié)表示的數(shù)據(jù)移動(dòng)到第j字節(jié)。移動(dòng)到最右邊的框的3位循環(huán)只在最低字節(jié)執(zhí)行。在沒有3位循環(huán)的情況下,字節(jié)/3位循環(huán)電路19可以將由最低字節(jié)表示的數(shù)據(jù)移動(dòng)到最高字節(jié)。在這種情況下,字節(jié)/3位循環(huán)電路19與在第三個(gè)實(shí)施例中的字節(jié)循環(huán)電路11具有相同的功能。
除了圖2B所示的字節(jié)循環(huán)電路11的結(jié)構(gòu)外,字節(jié)/3位循環(huán)電路19包括連線和用于選擇當(dāng)由最低字節(jié)表示的數(shù)據(jù)移動(dòng)到最右邊的框時(shí),是否執(zhí)行3位循環(huán)的選擇器19a(由圖12所示的長方形框表示)。如上所述,當(dāng)只執(zhí)行簡單的字節(jié)循環(huán)而不執(zhí)行3位循環(huán)時(shí),字節(jié)/3位循環(huán)電路19實(shí)質(zhì)上與第三個(gè)實(shí)施例中的字節(jié)循環(huán)電路11具有相同的功能。
為更好地理解信號(hào)流程,除了這些位外,圖12只示出連線和選擇器19a。實(shí)際上,字節(jié)/3位循環(huán)電路19包括一個(gè)用來選擇需存儲(chǔ)在內(nèi)部寄存器10中的數(shù)據(jù)的每一條連線上的一個(gè)選擇器,即,字節(jié)/3位循環(huán)或位循環(huán)處理數(shù)據(jù)或用其它過程處理數(shù)據(jù)。
循環(huán)子密鑰生成電路204按如下所述來操作。盡管依照輸入的加密密鑰的位的數(shù)據(jù),處理的方法有所不同,但基本的操作還是相似的。在這里,當(dāng)輸入一個(gè)128位加密密鑰時(shí),所執(zhí)行的操作將參照?qǐng)D11和13來描述。
第四個(gè)實(shí)施例中的循環(huán)子密鑰生成電路204刪除了如圖24所示的傳統(tǒng)的循環(huán)子密鑰生成電路2中的輸出選擇器14而且只有一個(gè)加法器15而不是16個(gè)來減小電路的大小。相反,如圖11所示,循環(huán)子密鑰生成電路204包括字節(jié)/3位循環(huán)電路19。循環(huán)子密鑰生成電路204只輸出內(nèi)部寄存器10的最低字節(jié),就象循環(huán)子密鑰生成電路203一樣。
圖13是沿時(shí)間軸,循環(huán)子密鑰生成電路204的內(nèi)部寄存器10中的數(shù)據(jù)的狀態(tài)的圖解。在圖13中,每一個(gè)方框表示存儲(chǔ)在內(nèi)部寄存器10中的1個(gè)字節(jié)。當(dāng)輸入加密密鑰時(shí),每一個(gè)方框中的數(shù)字表示在加密密鑰中的各個(gè)字節(jié)的序號(hào)。Kj[I]表示包括16個(gè)字節(jié)(128位)的循環(huán)子密鑰Kj的第i個(gè)字節(jié)。
在時(shí)間t1,內(nèi)部寄存器10存儲(chǔ)輸入的128位加密密鑰(16個(gè)字節(jié))。在這一點(diǎn)上,異或OR電路9計(jì)算在所輸入的加密密鑰的所有16個(gè)字節(jié)中的相同的位置的數(shù)據(jù)的異或。結(jié)果值被定義為表示在第17個(gè)字節(jié)中各自位置的數(shù)據(jù)。然后,內(nèi)部寄存器10將由最低字節(jié)表示的數(shù)據(jù)到加法器15。在時(shí)間t1,輸出由循環(huán)子密鑰K1的第1個(gè)字節(jié)(即K1[1])表示的數(shù)據(jù)。
下一步,在時(shí)間t2,字節(jié)/3位循環(huán)電路19同時(shí)完成字節(jié)循環(huán)和3位循環(huán)。只在最低字節(jié)執(zhí)行移動(dòng)到最右邊框的3位循環(huán)。其它位的數(shù)據(jù)一位一位向左移動(dòng),內(nèi)部寄存器10將由最低字節(jié)表示的數(shù)據(jù)輸出到加法器15。在時(shí)間t2,輸出由一個(gè)循環(huán)子密鑰的K1的最低字節(jié)(即K1[2])表示的數(shù)據(jù)。在圖13中,循環(huán)子密鑰的K1的處理過程中,在循環(huán)字節(jié)的數(shù)目中的3位循環(huán)的完成是循環(huán)的。
直到時(shí)間t16,一直重復(fù)上面所描述的步驟。在這種方法中,循環(huán)子密鑰K1的最低字節(jié)表示的數(shù)據(jù)順序地輸出,直到所有128位表示的數(shù)據(jù)輸出完畢。
在時(shí)間t17和t18,為了將下一個(gè)子循環(huán)的第1個(gè)字節(jié)表示的數(shù)據(jù)調(diào)整到最低字節(jié),將執(zhí)行字節(jié)循環(huán)和3位循環(huán)(只在移動(dòng)到最右邊的框的最低字節(jié))。直到時(shí)間t18,當(dāng)過程完成的時(shí)候,在內(nèi)部寄存器10中的所有字節(jié)的數(shù)字都是循環(huán)的。這表示在所有字節(jié)中完成3位循環(huán),而且循環(huán)子密鑰生成電路204準(zhǔn)備輸出一個(gè)循環(huán)子密鑰K2。
在時(shí)間t19,完成字節(jié)循環(huán),而且循環(huán)子密鑰生成電路204輸出一個(gè)循環(huán)子密鑰K2[1]。在時(shí)間t19,不執(zhí)行3位循環(huán)。
此后,字節(jié)循環(huán)和3位循環(huán)用相同的方法完成。因此,在不需要使用一個(gè)輸出選擇器的情況下,能獲得由循環(huán)子密鑰K1到K17中的一個(gè)所需的循環(huán)子密鑰的一個(gè)所需的字節(jié)表示的數(shù)據(jù)。
偏差表17輸出一個(gè)由一個(gè)子循環(huán)信號(hào)和一個(gè)字節(jié)信號(hào)確定的1字節(jié)偏差值。
在輸入一個(gè)192位加密密鑰或一個(gè)256位加密密鑰的情況下,用相似的過程來獲得所需的循環(huán)子密鑰的一個(gè)所需的字節(jié)。
在第四個(gè)實(shí)施例中,3位循環(huán)與字節(jié)循環(huán)同時(shí)完成。因此,通過用于一個(gè)步驟所要求的時(shí)間,縮短用于輸出一個(gè)循環(huán)子密鑰所要求的過程時(shí)間。在第三個(gè)實(shí)施例中需要320步的處理在第四個(gè)實(shí)施例中只要304來完成。
(實(shí)施例5)圖14是根據(jù)本發(fā)明的第五個(gè)實(shí)施例,說明與一個(gè)加密密鑰生成電路一樣的一個(gè)循環(huán)子密鑰生成電路205的方框圖。該循環(huán)子密鑰生成電路205不能代替如圖20所示的循環(huán)子密鑰生成電路2以及用于完成SAFER+1加密。
循環(huán)子密鑰生成電路205包括一個(gè)異或電路9、一個(gè)內(nèi)部寄存器10、一個(gè)2字節(jié)循環(huán)電路20、一個(gè)3位循環(huán)電路12、一個(gè)偏差表18和2個(gè)加法器15。在圖14中,為了簡潔起見,2個(gè)加法器15用一個(gè)加法器符號(hào)來表示。
循環(huán)子密鑰生成電路205為每一個(gè)子循環(huán)輸出一個(gè)循環(huán)子密鑰,就象在第一個(gè)實(shí)施例中的循環(huán)子密鑰生成電路201一樣.而循環(huán)子密鑰生成電路201同時(shí)輸出128位循環(huán)子密鑰,循環(huán)子密鑰生成電路205輸出是16位接16位地輸出128位循環(huán)子密鑰。另外,一個(gè)16位偏差值是由在偏差表18中的一個(gè)子循環(huán)信號(hào)和一個(gè)字節(jié)信息確定的。一個(gè)“子循環(huán)信號(hào)”指定每一個(gè)子循環(huán)的數(shù)量,以及在循環(huán)子密鑰中,一個(gè)“字節(jié)信號(hào)”表示在內(nèi)部寄存器10的最低字節(jié)的序號(hào)。由于偏差值一次增加2個(gè)字節(jié),因此只需要2個(gè)加法器15而不是16個(gè)。這進(jìn)一步降低電路的大小。
圖15A示出了使用2字節(jié)循環(huán)電路20,完成17個(gè)字節(jié)的的2字節(jié)循環(huán)的過程。在圖15A中,每一個(gè)方框表示存儲(chǔ)在內(nèi)部寄存器10中的1個(gè)字節(jié)。在每一個(gè)框內(nèi)的數(shù)字表示各個(gè)字節(jié)的序號(hào)。更準(zhǔn)確地說,例如,數(shù)字“1”表示存儲(chǔ)由第一個(gè)字節(jié)表示的數(shù)據(jù);數(shù)字“2”表示存儲(chǔ)由第二個(gè)字節(jié)表示的數(shù)據(jù)等等。圖15A上部一第列框表示在執(zhí)行2字節(jié)前,內(nèi)部寄存器10的狀態(tài)。如圖所示,框具有從左到右的連續(xù)數(shù)字。圖15A的下部的一系列方框表示在完成2字節(jié)循環(huán)后,內(nèi)部寄存器10的狀態(tài)。如圖所示,由第17字節(jié)表示的數(shù)據(jù)移動(dòng)到從左數(shù)的第14個(gè)方框;由第16個(gè)字節(jié)表示的數(shù)據(jù)移動(dòng)到從左數(shù)的第15個(gè)方框等等。由第3個(gè)字節(jié)表示的數(shù)據(jù)移動(dòng)到最左邊的方框;由第2個(gè)字節(jié)表示的數(shù)據(jù)移動(dòng)到從左數(shù)的第17個(gè)框;以及由最左邊字節(jié)表示的數(shù)據(jù)移動(dòng)到從左數(shù)的第16個(gè)框。
圖15A示出了內(nèi)部寄存器10的字節(jié)接字節(jié)的狀態(tài)。圖15B示出了內(nèi)部寄存器10的位接位的狀態(tài)。在圖15B中,每一個(gè)方框表示存儲(chǔ)在內(nèi)部寄存器10中的1位。在每一個(gè)方框中的數(shù)字表示存儲(chǔ)在內(nèi)部寄存器10中的各個(gè)位(從0位到135位)的序號(hào)。更準(zhǔn)確在說,例如,數(shù)字“0”表示存儲(chǔ)由第1位表示的數(shù)據(jù);數(shù)字“1”表示存儲(chǔ)由第2位表示的數(shù)據(jù)等等。在圖15B中的最左邊欄的8個(gè)方框(第0位到第7位)對(duì)應(yīng)于圖15A的最左邊框(1字節(jié));在圖15B中的最左邊的第二欄的8個(gè)方框(第8位到第15位)對(duì)應(yīng)于圖15A的最左邊的第二個(gè)框(1字節(jié))。連同位之間的提供的連線,完成2字節(jié)的循環(huán);例如,由第8位表示的數(shù)據(jù)移動(dòng)到第128位;由第0位表示的數(shù)據(jù)移動(dòng)到第120位等等。
為了更好地理解信號(hào)的流程,除位之外,圖15B只示了連線。實(shí)際上,2字節(jié)循環(huán)電路20包括一個(gè)在每一條連線上用于選擇將存儲(chǔ)在內(nèi)部寄存器10的數(shù)據(jù)的選擇器,即,數(shù)據(jù)由2字節(jié)循環(huán)處理以及由其它的處理程序處理。
循環(huán)子密鑰生成電路205按如下所述操作。盡管依照輸入的加密密鑰的位的數(shù)量,處理的方式不同,但基本的操作還是相似的。在這里,當(dāng)輸入一個(gè)128位加密密鑰時(shí),所完成的操作將參照?qǐng)D14到16來描述。
在第五個(gè)實(shí)施例中的循環(huán)子密鑰生成電路205刪除了如圖24所示的傳統(tǒng)循環(huán)子密鑰生成電路2中的輸出選擇器14而且包括兩個(gè)加法器15而不是16,因此能減小電路的大小。相反,循環(huán)子密鑰生成電路205包括如圖14所示的2字節(jié)循環(huán)電路13。而第一個(gè)實(shí)施例中的循環(huán)子密鑰生成電路201同時(shí)地輸出內(nèi)部寄存器10中的16字節(jié)表示的數(shù)據(jù),循環(huán)子密鑰生成電路205只輸出內(nèi)部寄存器10中的2個(gè)最低字節(jié)。
圖16是沿時(shí)間軸,循環(huán)子密鑰生成電路205的內(nèi)部寄存器10中的數(shù)據(jù)的狀態(tài)的圖解。在圖16中,每一個(gè)方框表示存儲(chǔ)在內(nèi)部寄存器10中的1個(gè)字節(jié)。當(dāng)輸入加密密鑰時(shí),每一個(gè)方框中的數(shù)字表示在加密密鑰中的各個(gè)字節(jié)的序號(hào)。Kj[i]表示包括16個(gè)字節(jié)(128位)的循環(huán)子密鑰Kj的第i個(gè)字節(jié)。
在時(shí)間t1,內(nèi)部寄存器10存儲(chǔ)輸入的128位加密密鑰(16個(gè)字節(jié))。在這一點(diǎn)上,異或OR電路9計(jì)算在所輸入的加密密鑰的所有16個(gè)字節(jié)中的相同的位置的數(shù)據(jù)的異或。結(jié)果值被定義為表示在第17個(gè)字節(jié)中各自位置的數(shù)據(jù)。然后,內(nèi)部寄存器10將由最低2個(gè)字節(jié)表示的數(shù)據(jù)輸出到加法器15。在時(shí)間t1,輸出由循環(huán)子密鑰K1的第1個(gè)字節(jié)和第2個(gè)字節(jié)(即K1[1]和K1[2])表示的數(shù)據(jù)。
下一步,在時(shí)間t2,2字節(jié)循環(huán)電路20完成2字節(jié)循環(huán),即如圖16所示,通過向左移動(dòng)兩個(gè)字節(jié)來完成字節(jié)循環(huán)。更準(zhǔn)確地說,例如,由最低字節(jié)表示的數(shù)據(jù)移動(dòng)到從右數(shù)的第二個(gè)框,而由最低的第二個(gè)字節(jié)表示的數(shù)據(jù)移動(dòng)到最右邊框。然后,由最低2字節(jié)表示的數(shù)據(jù)輸出到加法器15。在時(shí)間t2,輸出由循環(huán)子密鑰的K1的第3字節(jié)和第四字節(jié)(即K1[3]和K1[4])表示的數(shù)據(jù)。
重復(fù)執(zhí)行上面所描述的步驟直到時(shí)間t8。用這種方式,連續(xù)地輸出由循環(huán)子密鑰K1的最低2個(gè)字節(jié)表示的數(shù)據(jù),直到輸出由所有128位表示的數(shù)據(jù)。
在時(shí)間t9和t10,為將下一個(gè)子循環(huán)的第1個(gè)字節(jié)表示的數(shù)據(jù)調(diào)整到最低字節(jié),只執(zhí)行2字節(jié)循環(huán)。
在時(shí)間t11,在內(nèi)部寄存器10的每一個(gè)字節(jié)執(zhí)行3位循環(huán)。因此,循環(huán)子密鑰生成電路205準(zhǔn)備輸出一個(gè)循環(huán)子密鑰K2。因此,輸出由K2[1]和K2[2]表示的數(shù)據(jù)。
此后,2字節(jié)循環(huán)和3位循環(huán)用相似的方式完成。因此,能在不使用一個(gè)輸出選擇器的情況下獲得由在循環(huán)子密鑰K1到K17中所需的循環(huán)子密鑰的所需的字節(jié)表示的數(shù)據(jù)。
為增加一個(gè)偏差值,用一個(gè)步驟從內(nèi)部寄存器10輸出2字節(jié)的數(shù)據(jù),一個(gè)2字節(jié)偏差值是由在偏差表17中需要輸出的一個(gè)子循環(huán)信號(hào)和一個(gè)字節(jié)信號(hào)確定的。
在輸入一個(gè)192位加密密鑰或一個(gè)256位加密密鑰的情況下,用相似的過程來獲得所需的循環(huán)子密鑰的一個(gè)所需的字節(jié)。
(實(shí)施例6)圖17是根據(jù)本發(fā)明的第六個(gè)實(shí)施例,說明與一個(gè)加密密鑰生成電路一樣的一個(gè)循環(huán)子密鑰生成電路206的方框圖。該循環(huán)子密鑰生成電路206不能代替如圖20所示的循環(huán)子密鑰生成電路2以及用于完成SAFER+1加密。
循環(huán)子密鑰生成電路206包括一個(gè)異或電路9、一個(gè)內(nèi)部寄存器10、一個(gè)2字節(jié)/3位循環(huán)電路21、一個(gè)偏差表18和2個(gè)加法器15。在圖17中,為了簡潔起見,2個(gè)加法器15用一個(gè)加法器符號(hào)來表示。
循環(huán)子密鑰生成電路206通過2字節(jié)/3位循環(huán)電路21在同一個(gè)循環(huán)過程中完成2字節(jié)循環(huán)和3位循環(huán)。因此,循環(huán)子密鑰生成電路206縮短了過程時(shí)間因而具有一個(gè)減小后的大小。
如圖18所示,2字節(jié)/3位循環(huán)電路21只在最低字節(jié)完成從右邊移動(dòng)到第2個(gè)框以及最低的第2字節(jié)移動(dòng)到最右邊的框的3位循環(huán)。由第(j+1)字節(jié)表示的數(shù)據(jù)移動(dòng)到第(j-1)字節(jié)。3位循環(huán)只在第1字節(jié)完成從右邊移動(dòng)到第2個(gè)框以及在第2個(gè)字節(jié)移動(dòng)到最右邊的框。在沒有3位循環(huán)的情況下,2字節(jié)/3位循環(huán)電路21可以將由最低第2字節(jié)表示的數(shù)據(jù)移動(dòng)到最高字節(jié)。
除了圖15B所示的字節(jié)循環(huán)電路20的結(jié)構(gòu)外,2字節(jié)/3位循環(huán)電路21包括連線和選擇器21a(由圖18所示的長方形框表示),因此,必須執(zhí)行在最低字節(jié)從右邊移動(dòng)到第2個(gè)框的3位循環(huán),而且能選擇是否在最低的第2個(gè)字節(jié)執(zhí)行移動(dòng)到最右邊框的3位循環(huán)。選擇器21a能選擇是否在1個(gè)字節(jié)或2個(gè)字節(jié)執(zhí)行3位循環(huán)。
為更好地理解信號(hào)流程,除了這些位外,圖18只示出連線和選擇器21a。實(shí)際上,2字節(jié)/3位循環(huán)電路21在每一條連線上包括一個(gè)用來選擇需存儲(chǔ)在內(nèi)部寄存器10中的數(shù)據(jù)的一個(gè)選擇器,即,2字節(jié)/3位循環(huán)(或位循環(huán))處理數(shù)據(jù)或用其它過程處理數(shù)據(jù)。
循環(huán)子密鑰生成電路206按如下所述來操作。盡管依照輸入的加密密鑰的位的數(shù)量,處理的方法有所不同,但基本的操作還是相似的。在這里,當(dāng)輸入一個(gè)128位加密密鑰時(shí),所執(zhí)行的操作將參照?qǐng)D17和19來描述。
第六個(gè)實(shí)施例中的循環(huán)子密鑰生成電路206刪除了如圖24所示的傳統(tǒng)的循環(huán)子密鑰生成電路2中的輸出選擇器15而且只有兩個(gè)加法器而不是16個(gè)來減小電路的大小。相反,如圖17所示,循環(huán)子密鑰生成電路206包括2字節(jié)/3位循環(huán)電路21。循環(huán)子密鑰生成電路206只輸出內(nèi)部寄存器10的最低2個(gè)字節(jié),就象循環(huán)子密鑰生成電路205一樣。
圖19是沿時(shí)間軸,循環(huán)子密鑰生成電路206的內(nèi)部寄存器10中的數(shù)據(jù)的狀態(tài)的圖解。在圖19中,每一個(gè)方框表示存儲(chǔ)在內(nèi)部寄存器10中的1個(gè)字節(jié)。當(dāng)輸入加密密鑰時(shí),每一個(gè)方框中的數(shù)字表示在加密密鑰中的各個(gè)字節(jié)的序號(hào)。Kj[i]表示包括16個(gè)字節(jié)(128位)的循環(huán)子密鑰Kj的第i個(gè)字節(jié)。
在時(shí)間t1,內(nèi)部寄存器10存儲(chǔ)輸入的128位加密密鑰(16個(gè)字節(jié))。在這一點(diǎn)上,異或OR電路9計(jì)算在所輸入的加密密鑰的所有16個(gè)字節(jié)中的相同的位置(也就是位)的數(shù)據(jù)的異或。結(jié)果值被定義為表示在第17個(gè)字節(jié)中各自位置的數(shù)據(jù)。然后,內(nèi)部寄存器10將由最低2個(gè)字節(jié)表示的數(shù)據(jù)輸出到加法器15。在時(shí)間t1,輸出由循環(huán)子密鑰K1的第1個(gè)字節(jié)和第2個(gè)字節(jié)(即K1[1]和K1[2])表示的數(shù)據(jù)。
下一步,在時(shí)間t2,2字節(jié)/3位循環(huán)電路21同時(shí)完成2位字節(jié)循環(huán)和3位循環(huán)(只在最低字節(jié)從右邊移動(dòng)到第2個(gè)框以及在最低的第2字節(jié)移動(dòng)到最右邊的框)。在其它的字節(jié)中,數(shù)據(jù)向右移動(dòng)2字節(jié)。內(nèi)部寄存器10將由最低2個(gè)字節(jié)表示的數(shù)據(jù)輸出到加法器15。在時(shí)間t2,輸出由一個(gè)循環(huán)子密鑰的K1的最低2個(gè)字節(jié)(即K1[3]到K1[4])表示的數(shù)據(jù)。在圖19中,循環(huán)子密鑰的K1的處理過程中,在3位循環(huán)中完成的循環(huán)后的字節(jié)的數(shù)字是循環(huán)的。
重復(fù)執(zhí)行上面所描述的步驟直到時(shí)間t8。用這種方式,連續(xù)地輸出由循環(huán)子密鑰K1的最低2個(gè)字節(jié)表示的數(shù)據(jù),直到輸出由所有128位表示的數(shù)據(jù)。
在時(shí)間t9和t10,為將下一個(gè)子循環(huán)的第1個(gè)字節(jié)表示的數(shù)據(jù)調(diào)整到最低字節(jié),執(zhí)行2字節(jié)循環(huán)和3位循環(huán)。應(yīng)注意的是,在時(shí)間t10,當(dāng)在最低的第2字節(jié)移動(dòng)到最右邊的框完成3位循環(huán)時(shí),具有數(shù)字“1”的字節(jié)用至少兩次3位循環(huán)來處理。為避免出現(xiàn)這樣的問題,3位循環(huán)只用一個(gè)字節(jié)來執(zhí)行,即,從右邊移動(dòng)到第2個(gè)框的最低字節(jié)。直到時(shí)間t10完成該過程時(shí),內(nèi)部寄存器10中所有字節(jié)的數(shù)字都是循環(huán)的。這表示在所有的字節(jié)執(zhí)行3位循環(huán)以及循環(huán)子密鑰生成電路206預(yù)備輸出一個(gè)循環(huán)子密鑰K2。然后,輸出由K2[1]和K2[2]表示的數(shù)據(jù)。
此后,2字節(jié)循環(huán)和3位循環(huán)用相同的方法完成。因此,在不需要使用一個(gè)輸出選擇器的情況下,能獲得由循環(huán)子密鑰K1到K17中的一個(gè)所需的循環(huán)子密鑰的一個(gè)所需的字節(jié)表示的數(shù)據(jù)。
偏差表18輸出一個(gè)由一個(gè)子循環(huán)信號(hào)和一個(gè)字節(jié)信號(hào)確定的2字節(jié)偏差值。
在輸入一個(gè)192位加密密鑰或一個(gè)256位加密密鑰的情況下,用相似的過程來獲得所需的循環(huán)子密鑰的一個(gè)所需的字節(jié)。
在第六個(gè)實(shí)施例中,3位循環(huán)與2字節(jié)循環(huán)同時(shí)完成。因此,通過用于一個(gè)步驟所要求的時(shí)間,縮短用于輸出一個(gè)循環(huán)子密鑰所要求的過程時(shí)間。在第五個(gè)實(shí)施例中需要169步的處理在第六個(gè)實(shí)施例中只要152來完成。
在第一到第六個(gè)實(shí)施例中,在8位單元、16位單元和128位單元中,輸出由循環(huán)子密鑰表示的數(shù)據(jù)。本發(fā)明并不局限于此而且適合用于在其他數(shù)目位(8×m,其中m是加密密鑰的位的數(shù)目的一個(gè)字節(jié)表達(dá)式的一個(gè)除數(shù))中的循環(huán)子密鑰表示的數(shù)據(jù)。
如上所述,本發(fā)明并不同時(shí)計(jì)算所有的用于加密循環(huán)子密鑰。相反,本發(fā)明計(jì)算子循環(huán)單元中的一個(gè)循環(huán)子密鑰,或者計(jì)算一個(gè)字節(jié)或2個(gè)字節(jié)單元中的一個(gè)循環(huán)子密鑰。在這種方式中,用于增加偏差值的加法器的數(shù)目能減小。提供一個(gè)用于循環(huán)字節(jié)的電路能刪除在輸出級(jí)的選擇器。因此,能用相當(dāng)小的規(guī)模生成一個(gè)用在一個(gè)加密算法SAFER+中用于生成一個(gè)循環(huán)子密鑰的一個(gè)加密密鑰生成電路。
對(duì)本領(lǐng)域的普通技術(shù)人員來說,在不背離本發(fā)明的范圍和精神的前提下,各種其他的改變將會(huì)很清楚而且容易制造。相應(yīng)地,并不打算將所附的權(quán)利要求的范圍局限在這里所描述的,而且能廣泛分析這些權(quán)利要求。
權(quán)利要求
1.一種用于從一個(gè)具有64×n位(2≤n≤4;其中n是一個(gè)整數(shù))的加密密鑰生成至少一個(gè)128位循環(huán)子密鑰的加密密鑰生成電路,該循環(huán)子密鑰用在為了加密128位純文本的至少一個(gè)子循環(huán)中,包括一個(gè)異或電路,用于計(jì)算包括在加密密鑰的每一個(gè)字節(jié)中的8位數(shù)據(jù)中相同的位置的1位數(shù)據(jù)的異或,來生成1字節(jié)計(jì)算數(shù)據(jù);一個(gè)寄存器,用于存儲(chǔ)由具有8×n字節(jié)的加密密鑰和1字節(jié)計(jì)算數(shù)據(jù)的和表示的(8×n+1)字節(jié)數(shù)據(jù);一個(gè)字節(jié)循環(huán)電路,用于完成在至少一個(gè)子循環(huán)的每一個(gè)子循環(huán)中將該(8×n+1)字節(jié)數(shù)據(jù)循環(huán)1字節(jié)的字節(jié)循環(huán);一個(gè)3位循環(huán)電路,用于完成在每一個(gè)子循環(huán)中在(8×n+1)字節(jié)數(shù)據(jù)的每一個(gè)字節(jié)中的各位循環(huán)3位的3位循環(huán);16個(gè)加法器,用于從由該字節(jié)循環(huán)電路和3位循環(huán)電路處理的(8×n+1)字節(jié)數(shù)據(jù)的最低字節(jié),將一個(gè)128位偏差值增加到(8×n)字節(jié)數(shù)據(jù),來生成在每一個(gè)子循環(huán)中的至少一個(gè)128位循環(huán)子密鑰中的一個(gè)。
2.一種用于從一個(gè)具有64×n位(2≤n≤4;其中n是一個(gè)整數(shù))的加密密鑰生成至少一個(gè)128位循環(huán)子密鑰的加密密鑰生成電路,該循環(huán)子密鑰用在為了加密128位純文本的至少一個(gè)子循環(huán)中,包括一個(gè)異或電路,用于計(jì)算包括在加密密鑰的每一個(gè)字節(jié)中的8位數(shù)據(jù)中相同的位置的1位數(shù)據(jù)的異或,來生成1字節(jié)計(jì)算數(shù)據(jù);一個(gè)寄存器,用于存儲(chǔ)由具有8×n字節(jié)的加密密鑰和1字節(jié)計(jì)算數(shù)據(jù)的和表示的(8×n+1)字節(jié)數(shù)據(jù);一個(gè)字節(jié)/3位循環(huán)電路,用于完成在至少一個(gè)子循環(huán)的每一個(gè)循環(huán)中該(8×n+1)字節(jié)數(shù)據(jù)循環(huán)1字節(jié)的字節(jié)循環(huán)和在(8×n+1)字節(jié)數(shù)據(jù)的每一個(gè)字節(jié)中的各位循環(huán)3位的3位循環(huán);以及16個(gè)加法器,用于從由該字節(jié)循環(huán)電路和3位循環(huán)電路處理的(8×n+1)字節(jié)數(shù)據(jù)的最低字節(jié),將一個(gè)128位偏差值增加到(8×n)字節(jié)數(shù)據(jù),來生成在每一個(gè)子循環(huán)中的至少一個(gè)128位循環(huán)子密鑰中的一個(gè)。
3.一種用于從一個(gè)具有64×n位(2≤n≤4;其中n是一個(gè)整數(shù))的加密密鑰生成至少一個(gè)128位循環(huán)子密鑰加密密鑰生成電路,該循環(huán)子密鑰用在為了加密128位純文本的至少一個(gè)子循環(huán)中,包括一個(gè)異或電路,用于計(jì)算包括在加密密鑰的每一個(gè)字節(jié)中的8位數(shù)據(jù)中相同的位置的1位數(shù)據(jù)的異或,來生成1字節(jié)計(jì)算數(shù)據(jù);一個(gè)寄存器,用于存儲(chǔ)由具有8×n字節(jié)的加密密鑰和1字節(jié)計(jì)算數(shù)據(jù)的和表示的(8×n+1)字節(jié)數(shù)據(jù);一個(gè)字節(jié)循環(huán)電路,用于完成在至少一個(gè)子循環(huán)的每一個(gè)循環(huán)中將該(8×n+1)字節(jié)數(shù)據(jù)循環(huán)m字節(jié)至少一次的m字節(jié)循環(huán)(其中m是8×n的一個(gè)除數(shù));一個(gè)3位循環(huán)電路,用于完成在每一個(gè)子循環(huán)中將在(8×n+1)字節(jié)數(shù)據(jù)的每一個(gè)字節(jié)中的各位循環(huán)3位的3位循環(huán);m數(shù)量的加法器,用于從由該m字節(jié)循環(huán)電路和3位循環(huán)電路處理的(8×n+1)字節(jié)數(shù)據(jù)的最低字節(jié),將一個(gè)(8×m)位偏差值增加到在(8×n)字節(jié)數(shù)據(jù)中每一個(gè)(8×m)位數(shù)據(jù)單元,來生成在每一個(gè)子循環(huán)中的至少一個(gè)128位循環(huán)子密鑰中的一個(gè)。
4.如權(quán)利要求3所述的加密密鑰生成電路,其中m為1。
5.如權(quán)利要求3所述的加密密鑰生成電路,其中m為2。
6.一種用于從一個(gè)具有64×n位(2≤n≤4;其中n是一個(gè)整數(shù))的加密密鑰生成至少一個(gè)128位循環(huán)子密鑰的加密密鑰生成電路,該循環(huán)子密鑰用在為了加密128位純文本的至少一個(gè)子循環(huán)中,包括一個(gè)異或電路,用于計(jì)算包括在加密密鑰的每一個(gè)字節(jié)中的8位數(shù)據(jù)中相同的位置的1位數(shù)據(jù)的異或,來生成1字節(jié)計(jì)算數(shù)據(jù);一個(gè)寄存器,用于存儲(chǔ)由具有8×n字節(jié)的加密密鑰和1字節(jié)計(jì)算數(shù)據(jù)的和表示的(8×n+1)字節(jié)數(shù)據(jù);一個(gè)字節(jié)/3位循環(huán)電路,用于完成在至少一個(gè)子循環(huán)的每一個(gè)循環(huán)中將該(8×n+1)字節(jié)數(shù)據(jù)循環(huán)m字節(jié)至少一次的m字節(jié)循環(huán)(其中m是8×n的一個(gè)除數(shù))和在每一個(gè)m字節(jié)循環(huán)中由3位在(8×n+1)字節(jié)數(shù)據(jù)中用m字節(jié)數(shù)據(jù)循環(huán)位的3位循環(huán);以及m數(shù)量的加法器,用于從由該m字節(jié)循環(huán)電路和3位循環(huán)電路處理的(8×n+1)字節(jié)數(shù)據(jù)的最低字節(jié),將一個(gè)(8×m)位偏差值增加到在(8×n)字節(jié)數(shù)據(jù)中每一個(gè)(8×m)位數(shù)據(jù)單元,來生成在每一個(gè)子循環(huán)中的至少一個(gè)128位循環(huán)子密鑰中的一個(gè)。
7.如權(quán)利要求6所述的加密密鑰生成電路,其中m為1。
8.如權(quán)利要求6所述的加密密鑰生成電路,其中m為2。
全文摘要
一種用于從一個(gè)具有64×n位(2≤n≤4;其中n是一個(gè)整數(shù))的加密密鑰生成至少一個(gè)128位循環(huán)子密鑰加密密鑰生成電路,該循環(huán)子密鑰用在為了加密128位純文本的至少一個(gè)子循環(huán)中,包括一個(gè)用于完成由1字節(jié)循環(huán)(8×n+1)字節(jié)數(shù)據(jù)的字節(jié)循環(huán)的字節(jié)循環(huán)電路;一個(gè)用于完成由3位在(8×n+1)字節(jié)數(shù)據(jù)中的每一字節(jié)中循環(huán)位的3位循環(huán)的3位循環(huán)電路;以及用于從由該字節(jié)循環(huán)電路和3位循環(huán)電路處理的(8×n+1)字節(jié)數(shù)據(jù)的最低字節(jié),將一個(gè)128位偏差值增加到(8×n)字節(jié)數(shù)據(jù),來生成在每一個(gè)子循環(huán)中的至少一個(gè)128位循環(huán)子密鑰中的一個(gè)的16個(gè)加法器。
文檔編號(hào)G09C1/00GK1351435SQ0114317
公開日2002年5月29日 申請(qǐng)日期2001年10月31日 優(yōu)先權(quán)日2000年10月31日
發(fā)明者江澤正幸 申請(qǐng)人:夏普公司