專利名稱:高安全等級對稱密鑰算法的加密、解密方法及加密器的制作方法
技術(shù)領(lǐng)域:
本發(fā)明是一種對稱密鑰DSP加密器,屬于信息加密保護(hù)的技術(shù)領(lǐng)域。
二、技術(shù)背景由于計算機(jī)計算能力不斷的提高以及基于Internet的分布式計算的發(fā)展,對密鑰長度只有56bit的DES算法構(gòu)成了巨大的威脅,因此,1997年4月15日美國國家標(biāo)準(zhǔn)技術(shù)研究所(NIST)發(fā)起征集高級加密標(biāo)準(zhǔn)(AES)算法的活動,并于2000年10月2日公布Rijndael作為美國新一代的數(shù)據(jù)加密標(biāo)準(zhǔn),旨在保護(hù)政府及其他組織的敏感、非機(jī)密信息的傳輸。
Rijndael算法是一種數(shù)據(jù)塊長度為128bits,密鑰長度可變的迭代分組密碼,密鑰塊長度可分別為128、192或256bits。由于Rijndael算法源自Square算法,其結(jié)構(gòu)具有很強靈活性,易于擴(kuò)展。
但是,Rijndael算法也存在字節(jié)模乘運算速度慢,密鑰長度還比較短(最長也只有256bits),不能滿足高安全等級的場合,另外原算法存在加解密速度不等的缺點。
采用Rijndael算法作為核心的基于DSP的專用加密器,市面上還沒出現(xiàn)。將Rijndael算法進(jìn)行擴(kuò)展并做成一種能在DSP器件上快速運行的加密器在國內(nèi)外也是一種空白。
三.
發(fā)明內(nèi)容
1.技術(shù)問題本發(fā)明的目的是提供一種可以將加密速度提高2倍以上、結(jié)構(gòu)簡單、成本低、易操作的一種高安全等級對稱密鑰算法的加密、解密方法及加密器2.技術(shù)方案本發(fā)明的高安全等級對稱密鑰算法的加密、解密方法,由N輪加密輪相串聯(lián)組合成,每個加密輪的加密順序是行移位變換、S盒替代列混合變換、子密鑰模2加變換,每個加密輪的最后輸出即子密鑰模2加變換接下一加密輪的輸入即行移位變換,明文和種子密鑰進(jìn)行數(shù)據(jù)/密鑰相加,數(shù)據(jù)/密鑰相加的結(jié)果送第0輪的行移位變換,同時種子密鑰經(jīng)密鑰擴(kuò)散7產(chǎn)生的加密輪子密鑰Wi分別送每個加密輪的最后一個變換即子密鑰模2加變換;最后一輪的加密輪的加密順序是S盒替代變換、行移位變換、子密鑰模2加變換,最后一輪加密輪的子密鑰模2加變換輸出密文。
行移位變換的變換方法為行移位變換對狀態(tài)的每一行的字節(jié)單獨進(jìn)行循環(huán)移位操作,滿足下列關(guān)系第0行和第4行不移位;第1行和第5行移1個字節(jié);第2行和第6行如果Nb=4或Nb=6,移2個字節(jié),否則移3個字節(jié);第3行和第7行如果Nb=4或Nb=6,移3個字節(jié),否則移4個字節(jié)。
S盒替代列混合變換的變換方法為預(yù)先對S盒的每個字節(jié)分別和02,03,04,05模m(x)乘,構(gòu)成4張一維擴(kuò)展的S盒置換表,(MUL02,MUL03,MUL04,MUL05),對擴(kuò)展算法的加密輪的變換順序進(jìn)行重新排列,把S盒替代和行移位順序?qū)φ{(diào),將S盒替代變換合并到列混合變換。變換的時候先根據(jù)列混合變換的系數(shù)從各張擴(kuò)展S盒置換表中找到狀態(tài)每一列字節(jié)變換后的數(shù)值,然后把這些數(shù)值進(jìn)行異或運算,等到狀態(tài)某一字節(jié)整個變換后的新數(shù)值;以此類推,可以得到狀態(tài)其他字節(jié)變換后的新數(shù)值。子密鑰模2加變換的變換方法為子密鑰模2加變換就是將由密鑰擴(kuò)散而得到的輪子密鑰模2加到狀態(tài)中的每一字節(jié)。
加密的輪次數(shù)Nr由Nk和Nb共同確定,也就是Nr的數(shù)值等于Nk和Nb中的大的數(shù)值再加上6,因而得到Nr為10,12或14。
密鑰擴(kuò)散由兩個過程組成1)密鑰擴(kuò)散種子密鑰擴(kuò)散成擴(kuò)散密鑰;2)輪子密鑰的選取每輪使用的子密鑰從擴(kuò)散密鑰中選取。
與原算法的不同之處在于每次選取的字是64bits即8字節(jié)輪常數(shù)由8字節(jié)的常數(shù)構(gòu)成,這8字節(jié)的前面7個字節(jié)為0,第一輪的最后一個字節(jié)為01,其余各輪的最后一個字節(jié)由前面一輪的輪常數(shù)的最后一個字節(jié)左移1位構(gòu)成。
解密方法為由N輪解密輪相串聯(lián)組合而成,每個解密輪的解密順序是子密鑰模2加變換、逆列混合變換、逆S盒替代變換、逆行移位變換,每個解密輪的最后輸出即逆行移位變換接下一解密輪的輸入即子密鑰模2加變換,密文和種子密鑰經(jīng)過數(shù)據(jù)/密鑰相加,數(shù)據(jù)/密鑰相加的結(jié)果送第0輪的子密鑰模2加變換,同時種子密鑰經(jīng)密鑰擴(kuò)散產(chǎn)生的解密輪子密鑰Wi分別送每個解密輪的第一個變換即子密鑰模2加變換;最后一輪的解密輪的解密順序是子密鑰模2加變換、逆S盒替代變換、逆行移位變換,最后一輪解密輪的逆行移位變換輸出明文。
逆列混合變換變換方法為不改變每一輪的4個變換的順序,只是對逆列混合變換進(jìn)行修改,預(yù)先編制4張從0到255分別和02,03,04,05模m(x)乘的一維因子表(LUT02,LUT03,LUT04,LUT05),變換的時候,先根據(jù)列混合逆變換的系數(shù)從各張乘數(shù)因子表中找到狀態(tài)每一列字節(jié)模乘后的數(shù)值,然后把這些數(shù)值進(jìn)行異或運算,等到狀態(tài)某一字節(jié)逆變換后的新數(shù)值,以此類推,可以得到狀態(tài)其他字節(jié)變換后的新數(shù)值。
高安全等級的對稱密鑰算法的加密器,由DSP模塊、FLASH模塊、McBSP0擴(kuò)展口所組成,DSP模塊的“D15-D0”與FLASH模塊的“D15-D0”端相接,DSP模塊的“A15-A0”與FLASH模塊的“A15-A0”端相接,DSP模塊的“MSTRB、R/W”通過與門接FLASH模塊的“WE”端,DSP模塊的“MSTRB、R/W”通過非門和與或非門接FLASH模塊的“OE”端,DSP模塊的“BCLKR0、BFSR0、BDR0、BCLKX0、BFSX0、BDX0、INT0、INT1、IACK”接McBSP0擴(kuò)展口。3.技術(shù)效果本發(fā)明對一種擴(kuò)展的Rijndael算法的加密過程和解密過程分別提出快速實現(xiàn)方案,并將快速實現(xiàn)方案應(yīng)用在一種普通的TMS320VC5402的硬件平臺構(gòu)成的一種高安全等級的對稱密鑰算法加密器,通過對加密器的實測說明使用我們的提出的快速實現(xiàn)方法,可以將加密速度提高2.16倍,解密速度提高2倍。如果結(jié)合DSPs技術(shù),可以使該加密器的加密速度提高5.80倍,解密速度提高5.50倍。同時加解密近似相等。
四.
圖1是本發(fā)明加密方法的流程示意圖。其中有行移位變換1、S盒替代列混合變換2、子密鑰模2加變換3,明文4、種子密鑰5、數(shù)據(jù)/密鑰相加6、密鑰擴(kuò)散7。
圖2是本發(fā)明解密方法的流程示意圖。其中有逆列混合變換9、逆S盒替代變換10、逆行移位變換11,密文12。
圖3是本發(fā)明加密器的結(jié)構(gòu)示意圖。其中有DSP模塊13、FLASH模塊14、McBSP0擴(kuò)展口15。
圖4時本發(fā)明加密器的實現(xiàn)電路圖。
五.
具體實施例方式
本發(fā)明的高安全等級對稱密鑰算法的加密、解密方法,由N輪加密輪相串聯(lián)組合而成,每個加密輪的加密順序是行移位變換、S盒替代_列混合變換、子密鑰模2加變換,每個加密輪的最后輸出即子密鑰模2加變換接下一加密輪的輸入即行移位變換,明文和種子密鑰進(jìn)行數(shù)據(jù)/密鑰相加,數(shù)據(jù)/密鑰相加的結(jié)果送第0輪的行移位變換,同時種子密鑰經(jīng)密鑰擴(kuò)散7產(chǎn)生的加密輪子密鑰Wi分別送每個加密輪的最后一個變換即子密鑰模2加變換;最后一輪的加密輪的加密順序是S盒替代變換、行移位變換、子密鑰模2加變換,最后一輪加密輪的子密鑰模2加變換輸出密文。
行移位變換的變換方法為行移位變換對狀態(tài)的每一行的字節(jié)單獨進(jìn)行循環(huán)移位操作,滿足下列關(guān)系第0行和第4行不移位;第1行和第5行移1個字節(jié);第2行和第6行如果Nb=4或Nb=6,移2個字節(jié),否則移3個字節(jié);第3行和第7行如果Nb=4或Nb=6,移3個字節(jié),否則移4個字節(jié)。
S盒替代列混合變換的變換方法為預(yù)先對S盒的每個字節(jié)分別和02,03,04,05模m(x)乘,構(gòu)成4張一維擴(kuò)展S盒替代_列混合變換表(MUL02,MUL03,MUL04,MUL05),對擴(kuò)展算法的加密輪的變換順序進(jìn)行重新排列,把S盒替代列混合變換和行移位順序?qū)φ{(diào),將S盒替代_列混合變換合并到列混合變換。變換的時候先根據(jù)列混合變換的系數(shù)從各張擴(kuò)展S盒置換表中找到狀態(tài)每一列字節(jié)變換后的數(shù)值,然后把這些數(shù)值進(jìn)行異或運算,等到狀態(tài)某一字節(jié)整個變換后的新數(shù)值;以此類推,可以得到狀態(tài)其他字節(jié)變換后的新數(shù)值。
子密鑰模2加變換的變換方法為子密鑰模2加變換就是將由密鑰擴(kuò)散而得到的輪子密鑰模2加到狀態(tài)中的每一字節(jié)。
加密的輪次數(shù)Nr由Nk和Nb共同確定,也就是Nr的數(shù)值等于Nk和Nb中的大的數(shù)值再加上6,因而得到Nr為10,12或14。
密鑰擴(kuò)散由兩個過程組成3)密鑰擴(kuò)散種子密鑰擴(kuò)散成擴(kuò)散密鑰;4)輪子密鑰的選取每輪使用的子密鑰從擴(kuò)散密鑰中選取。
與原算法的不同之處在于每次選取的字是64bits即8字節(jié)輪常數(shù)由8字節(jié)的常數(shù)構(gòu)成,這8字節(jié)的前面7個字節(jié)為0,第一輪的最后一個字節(jié)為01,其余各輪的最后一個字節(jié)由前面一輪的輪常數(shù)的最后一個字節(jié)左移1位構(gòu)成。
本發(fā)明根據(jù)Rijndael的特點,設(shè)計一種數(shù)據(jù)和密鑰長度均可為256/384/512比特的擴(kuò)展的Rijndael算法,使加解密速度基本相等。在此基礎(chǔ)上,分別對該擴(kuò)展算法的加密和解密過程提出快速實現(xiàn)方案,解決包括原算法和擴(kuò)展算法的字節(jié)模乘運算速度慢的缺點。將該算法移植到普通DSP硬件平臺上(該平臺以TMS320VC5402為核心,包括外圍的基本的數(shù)據(jù)輸入輸出通道),并結(jié)合DSPs存儲器的特點,采用代碼段的定位方法,以及使用相應(yīng)的支持軟件提供的代碼優(yōu)化器,對擴(kuò)展的Rijndael算法綜合優(yōu)化,加解密速度得到了很大的提高??焖賹崿F(xiàn)方案在擴(kuò)展的Rijndael算法的列混合變換(MixColumn)中,需要進(jìn)行64·Nb(Nb為數(shù)據(jù)塊長度除以64)次字節(jié)模乘運算,程序的運算量是192·Nb次查表運算和64·Nb次GF(28)上的加法運算,運算量比較大。如果我們將這192·Nb次模乘運算化成64·Nb次查表運算,將大大減少運算開銷。本專利針對擴(kuò)展的Rijndael算法每輪加解密的特點,分別提出快速實現(xiàn)方案。加密過程的快速實現(xiàn)方案由于行移位變換是一種線性變換,它并不改變每一輸入狀態(tài)的元素的數(shù)值,只是對其中的第1、2、3、5、6、7行元素進(jìn)行重新排列,因此可以把擴(kuò)展算法的加密輪的變換順序進(jìn)行重新排列,把S盒替代和行移位順序?qū)φ{(diào),根據(jù)(1)式和(2)式,可將S盒替代變換合并到列混合變換。
s′(x)=a(x)s(x)mod(x8+1) (1)其中a(x)={03}x7+{05}x6+{03}x5+{02}x4+{02}x3+{04}x2+{02}x+{02} (2)根據(jù)(2)式,可得如下式子MUL02[·]=S[·]·02 mod m(x) (3)MUL03[·]=S[·]·03 mod m(x) (4)MUL04[·]=S[·]·04 mod m(x) (5)
MUL05[·]=S[·]·05 mod m(x)(6)由(3)、(4)、(5)和(6)式可以分別編制4張一維擴(kuò)展的S盒置換表,它們的元素分別是S盒的元素mod m(x)乘02、mod m(x)乘03、mod m(x)乘04和mod m(x)乘05。解密過程的快速實現(xiàn)方案解密方法為由N輪解密輪相串聯(lián)組合而成,每個解密輪的解密順序是子密鑰模2加變換、逆列混合變換、逆S盒替代變換、逆行移位變換,每個解密輪的最后輸出即逆行移位變換接下一解密輪的輸入即子密鑰模2加變換,密文和種子密鑰經(jīng)過數(shù)據(jù)/密鑰相加,數(shù)據(jù)/密鑰相加的結(jié)果送第0輪的子密鑰模2加變換,同時種子密鑰經(jīng)密鑰擴(kuò)散產(chǎn)生的解密輪子密鑰Wi分別送每個解密輪的第一個變換即子密鑰模2加變換;最后一輪的解密輪的解密順序是子密鑰模2加變換、逆S盒替代變換、逆行移位變換,最后一輪解密輪的逆行移位變換輸出明文。
逆列混合變換變換方法為不改變每一輪的4個變換的順序,只是對逆列混合變換進(jìn)行修改,預(yù)先編制4張從0到255分別和02,03,04,05模m(x)乘的一維因子表(LUT02,LUT03,LUT04,LUT05),變換的時候,先根據(jù)列混合逆變換的系數(shù)從各張乘數(shù)因子表中找到狀態(tài)每一列字節(jié)模乘后的數(shù)值,然后把這些數(shù)值進(jìn)行異或運算,等到狀態(tài)某一字節(jié)逆變換后的新數(shù)值,以此類推,可以得到狀態(tài)其他字節(jié)變換后的新數(shù)值。
不改變每一輪的4個變換的順序,只是對逆列混合變換進(jìn)行修改,但不改變其基本的思想。某一狀態(tài)s’=(s’i,j,i=0,1...7,j=0,1,...Nb-1)經(jīng)過逆列混合變換后變換為s=(si,j,i=0,1...7,j=0,1,...Nb-1),那么它們兩者的關(guān)系如(7)式和(8)式所示。
s(x)=a-1(x)s′(x)mod(x8+1)(7)其中a-1(x)={03}x7+{04}x6+{03}x5+{03}x4+{02}x3+{05}x2+{02}x+{03} (8)根據(jù)(8)式,可得如下式子LUT02[i]=i·02 mod m(x) (9)LUT03[i]=i·03 mod m(x) (10)LUT04[i]=i·04 mod m(x) (11)LUT05[i]=i·05 mod m(x) (12)(9)~(12)式中i=0,1,2...255
因此,LUT02、LUT03、LUT04、LUT05實質(zhì)上就是一張普通的mod m(x)乘因子表,這4張一維表用于列混合逆變換。在TMS320VC5402上加解密算法的實現(xiàn)以及代碼的優(yōu)化TMS320VC5402中有兩種片內(nèi)存儲器雙尋址存儲器(DARAM)和單尋址存儲器。雙尋址存儲器的特點是允許CPU在單個周期內(nèi)對其訪問兩次。單尋址存儲器有兩種形式(1)單尋址讀/寫存儲器(SARAM),(2)單尋址只讀存儲器(ROM或DROM),CPU可以在單個周期內(nèi)對每個存儲單元訪問一次。這兩種存儲器均可映射到程序空間和數(shù)據(jù)空間。另外,TMS320VC5402可以外掛片外存儲器,但CPU對片外存儲單元訪問一次,至少要兩個周期。與片外存儲器相比,片內(nèi)存儲器具有不需要插入等待狀態(tài)、成本和功耗低等優(yōu)點。
與之相配套,TI公司提供了相應(yīng)的代碼開發(fā)集成環(huán)境——Code ComposerStudio(CCS),它將代碼生成工具和調(diào)試工具集成在一起,可以提供處理器信息和監(jiān)視程序性能。CCS能在一個控制窗口內(nèi)使用所有的工具。
CCS自帶有代碼優(yōu)化器Optimizer,它能夠?qū)Π贑CS Project里面的所有源代碼進(jìn)行4個不同層次的優(yōu)化寄存器(Register)級優(yōu)化、局部變量(Local)級優(yōu)化、全局變量(Global)級優(yōu)化、文件(FILE)級優(yōu)化,這4個層次的優(yōu)化范圍和程度是逐步擴(kuò)展和深化的。
結(jié)合我們提出的方案1、方案2、程序段映射方式和CCS自帶有程序優(yōu)化器,我們在TMS320VC5402硬件平臺上用ANSI C語言實現(xiàn)了擴(kuò)展的Rijndael加解密算法,并且對算法的進(jìn)行不同層次的優(yōu)化,使得加密器的運算速度的到了大幅度的提高。擴(kuò)展的Rijndael算法本擴(kuò)展算法能實現(xiàn)的數(shù)據(jù)塊長度和種子密鑰長度均為256/384/512bits。加密的中間結(jié)果,即狀態(tài)(State)是一個8行、Nb列的矩陣,其中Nb為數(shù)據(jù)塊長度除以64。加秘密鑰是一個8行、Nk列的矩陣,其中Nk為密鑰長度除以64。
加密的輪數(shù)(Nr)由(13)式確定。
Nr=max{Nk,Nb}+6 (13)由于Nk,Nb∈{4,6,8},所以Nr∈{10,12,14}加密過程由以下幾個部分組成1.一個初始輪的密鑰模2加。2.Nr-1輪依次進(jìn)行S盒替代變換(SubBytes)、行移位變換(ShiftRows)、列混合變換(MixColumns)和子密鑰模2加(Key Addition)。3.一個結(jié)束輪依次進(jìn)行S盒替代變換、行移位變換和子密鑰模2加,不包括列混合變換。加密輪和原算法一樣,由4個變換組成S盒替代變換、行移位變換、列混合變換和子密鑰模2加。S盒替代變換與原算法一樣,S和替代變換是一個非線性的字節(jié)替代變換。該變換使用一個和原算法一樣的S盒(由256個元素組成的一維表),根據(jù)中間結(jié)果的每一字節(jié)的數(shù)值檢索S盒中對應(yīng)的替代值。S盒的構(gòu)建S盒是一種可逆的置換表,由兩個子變換組成1.有限域GF(28)上的乘法逆,元素{00}的映射為本身。2.有限域GF(2)上的仿射,如(14)式所示。
b′i=bib(i+4)mod8b(i+5)mod8b(i+6)mod8b(i+7)mod8ci(14)其中,0≤i<8,bi是變換字節(jié)的第i bit,{c7c6c5c4c3c2c1c0}={63h}={01100011b}。行移位變換行移位變換對狀態(tài)的每一行的字節(jié)單獨進(jìn)行循環(huán)移位操作,每一行移位的字節(jié)數(shù)滿足如下關(guān)系s′r,c=sr,(c+shift(r,Nb))mod Nb,0<r<8,0≤c<Nb(15)移位值shift(r,Nb)是由狀態(tài)中該字節(jié)的行號和狀態(tài)的列數(shù)(Nb)所決定的,它們滿足下列關(guān)系第0行和第4行不移位,其它各行右移的值滿足下表所示。
列混合變換這一部分和原算法差別比較大。列混合變換對狀態(tài)進(jìn)行列與列的操作。狀態(tài)的每一列被看作一個8項多項式s(x),多項式的系數(shù)在GF(28)上,并且和一個固定多項式a(x)模x8+1乘,即,列混合變換滿足下列關(guān)系s′(x)=a(x)s(x)mod(x8+1) (16)其中,s(x)、s’(x)分別為對應(yīng)狀態(tài)的列變換的輸入和輸出,a(x)={03}x7+{05}x6+{03}x5+{02}x4+{02}x3+{04}x2+{02}x+{02}(17)在逆變換中,滿足下式的變換關(guān)系。
s(x)=a-1(x)s′(x)mod(x8+1) (18)其中a-1(x)={03}x7+{04}x6+{03}x5+{03}x4+{02}x3+{05}x2+{02}x+{03} (19)由(17)式和(19)式可以看出,a(x)和a-1(x)的系數(shù)均不為0,同時都分布在1~5之間,上界為5。相對于原算法(其列混合變換的系數(shù)的上界為3,而逆變換的上界為14),擴(kuò)展算法的系數(shù)分布非常的集中,具有的擴(kuò)散能力和抗各種攻擊能力更強。從我們對算法開銷的測試,可以看出,加解密速度近似相等;其主要原因就是因為系數(shù)分布在相同的并且非常集中的區(qū)間上。子密鑰模2加變換與原算法一樣,子密鑰模2加變換就是將由密鑰擴(kuò)散而得到的輪子密鑰模2加到狀態(tài)中的每一字節(jié)。其變換關(guān)系滿足下式。[s’0,c,s’1,c,s’2,c,s’3,c,s’4,c,s’5,c,s’6,c,s’7,c]=[s0,c,s1,c,s2,c,s3,c,s4,c,s5,c,s6,c,s7,c]xor[Wround*Nb+c](20)其中,0≤c<Nb,0≤round<Nr,[wi]為密鑰擴(kuò)散形成的輪子密鑰。密鑰擴(kuò)散與原算法一樣,密鑰擴(kuò)散由兩個過程組成1.密鑰擴(kuò)散種子密鑰擴(kuò)散成擴(kuò)散密鑰;2.輪子密鑰的選取每輪使用的子密鑰從擴(kuò)散密鑰中選取。與原算法的不同之處在于每次選取的字是64bits(8字節(jié))而不是32bits(4字節(jié));輪常數(shù)的由(21)式定義。Rcon[i]=(RC[i],{00},{00},{00},{00},{00},{00},{00})(21)RC[i]的值由下面兩式確定RC[1]=’01’ (22)RC[i]=x·(RC[i-1])=x(i-1)(23)
高安全等級的對稱密鑰算法的加密器,由DSP模塊、FLASH模塊、McBSP0擴(kuò)展口所組成,DSP模塊的“D15-D0”與FLASH模塊的“D15-D0”端相接,DSP模塊的“A15-A0”與FLASH模塊的“A15-A0”端相接,DSP模塊的“MSTRB、R/W”通過與門接FLASH模塊的“WE”端,DSP模塊的“MSTRB、R/W”通過非門和與或非門接FLASH模塊的“OE”端,DSP模塊的“BCLKR0、BFSR0、BDR0、BCLKX0、BFSX0、BDX0、INT0、INT1、IACK”接McBSP0擴(kuò)展口。其中數(shù)字信號處理芯片U1的型號為TMS320VC5402,存閃U2的型號為M29W4007,電源芯片U3、U4的型號為TPS7325;TPS7333,與非門U5的型號為SN74LVC00,非門U6的型號為SN74LVC04。
權(quán)利要求
1.一種高安全等級對稱密鑰算法的加密方法,其特征在于加密方法為由N輪加密輪相串聯(lián)組合而成,每個加密輪的加密順序是行移位變換(1)、S盒替代列混合變換(2)、子密鑰模2加變換(3),每個加密輪的最后輸出即子密鑰模2加變換(3)接下一加密輪的輸入即行移位變換(1),明文(4)和種子密鑰(5)進(jìn)行數(shù)據(jù)/密鑰相加,數(shù)據(jù)/密鑰相加(6)的結(jié)果送第0輪的行移位變換(1),同時種子密鑰(5)經(jīng)密鑰擴(kuò)散(7)產(chǎn)生的加密輪子密鑰Wi分別送每個加密輪的最后一個變換即子密鑰模2加變換(3);最后一輪的加密輪的加密順序是S盒替代變換(8)、行移位變換(1)、子密鑰模2加變換(3),最后一輪加密輪的子密鑰模2加變換(3)輸出密文。
2.根據(jù)權(quán)利要求1所述的高安全等級對稱密鑰算法的加密方法,其特征在于行移位變換(1)的變換方法為行移位變換對狀態(tài)的每一行的字節(jié)單獨進(jìn)行循環(huán)移位操作,滿足下列關(guān)系第0行和第4行不移位;第1行和第5行移1個字節(jié);第2行和第6行如果Nb=4或Nb=6,移2個字節(jié),否則移3個字節(jié);第3行和第7行如果Nb=4或Nb=6,移3個字節(jié),否則移4個字節(jié)。
3.根據(jù)權(quán)利要求1所述的高安全等級對稱密鑰算法的加密方法,其特征在于S盒替代列混合變換(2)的變換方法為預(yù)先對S盒的每個字節(jié)分別和02,03,04,05模m(x)乘,構(gòu)成4張一維擴(kuò)展的S盒置換表,(MUL02,MUL03,MUL04,MUL05),對擴(kuò)展算法的加密輪的變換順序進(jìn)行重新排列,把S盒替代和行移位順序?qū)φ{(diào),將S盒替代變換合并到列混合變換。變換的時候先根據(jù)列混合變換的系數(shù)從各張擴(kuò)展S盒置換表中找到狀態(tài)每一列字節(jié)變換后的數(shù)值,然后把這些數(shù)值進(jìn)行異或運算,得到狀態(tài)某一字節(jié)整個變換后的新數(shù)值;以此類推,可以得到狀態(tài)其他字節(jié)變換后的新數(shù)值。
4.根據(jù)權(quán)利要求1所述的高安全等級對稱密鑰算法的加密方法,其特征在于子密鑰模2加變換(3)的變換方法為子密鑰模2加變換就是將由密鑰擴(kuò)散而得到的輪子密鑰模2加到狀態(tài)中的每一字節(jié)。
5.根據(jù)權(quán)利要求1所述的高安全等級對稱密鑰算法的加密方法,其特征在于加密的輪次數(shù)Nr由Nk和Nb共同確定,也就是Nr的數(shù)值等于Nk和Nb中的大的數(shù)值再加上6,因而得到Nr為10,12或14。
6.根據(jù)權(quán)利要求1所述的高安全等級對稱密鑰算法的加密方法,其特征在于密鑰擴(kuò)散(7)由兩個過程組成1)密鑰擴(kuò)散種子密鑰擴(kuò)散成擴(kuò)散密鑰;2)輪子密鑰的選取每輪使用的子密鑰從擴(kuò)散密鑰中選取。每次選取的字是64bits即8字節(jié)輪常數(shù)由8字節(jié)的常數(shù)構(gòu)成,這8字節(jié)的前面7個字節(jié)為0,第一輪的最后一個字節(jié)為 01,其余各輪的最后一個字節(jié)由前面一輪的輪常數(shù)的最后一個字節(jié)循環(huán)左移1位構(gòu)成。
7.一種高安全等級對稱密鑰算法的解密方法,其特征在于解密方法為由N輪解密輪相串聯(lián)組合而成,每個解密輪的解密順序是子密鑰模2加變換(3)、逆列混合變換(9)、逆S盒替代變換(10)、逆行移位變換(11),每個解密輪的最后輸出即逆行移位變換(11)接下一解密輪的輸入即子密鑰模2加變換(3),密文(12)和種子密鑰(5)經(jīng)過數(shù)據(jù)/密鑰相加(6),數(shù)據(jù)/密鑰相加(6)的結(jié)果送第0輪的子密鑰模2加變換(3),同時種子密鑰(5)經(jīng)密鑰擴(kuò)散(7)產(chǎn)生的解密輪子密鑰Wi分別送每個解密輪的第一個變換即子密鑰模2加變換(3);最后一輪的解密輪的解密順序是子密鑰模2加變換(3)、逆S盒替代變換(10)、逆行移位變換(11),最后一輪解密輪的逆行移位變換(11)輸出明文。
8.根據(jù)權(quán)利要求7所述的高安全等級對稱密鑰算法的解密方法,其特征在于逆列混合變換(9)變換方法為不改變每一輪的4個變換的順序,只是對逆列混合變換進(jìn)行修改,預(yù)先編制4張從0到255分別和02,03,04,05模m(x)乘的一維因子表(LUT02,LUT03,LUT04,LUT05),變換的時候,先根據(jù)列混合逆變換的系數(shù)從各張乘數(shù)因子表中找到狀態(tài)每一列字節(jié)模乘后的數(shù)值,然后把這些數(shù)值進(jìn)行異或運算,等到狀態(tài)某一字節(jié)逆變換后的新數(shù)值,以此類推,可以得到狀態(tài)其他字節(jié)變換后的新數(shù)值。
9.一種高安全等級對稱密鑰算法的加密器,其特征在于加密器由DSP模塊(13)、FLASH模塊(14)、McBSP0擴(kuò)展口(15)所組成,DSP模塊(13)的“D15-D0”與FLASH模塊(14)的“D15-D0”端相接,DSP模塊(13)的“A15-A0”與FLASH模塊(14)的“A15-A0”端相接,DSP模塊(13)的“MSTRB、R/W”通過與門接FLASH模塊(14)的“WE”端,DSP模塊(13)的“MSTRB、R/W”通過非門和與或非門接FLASH模塊(14)的“OE”端,DSP模塊(13)的“BCLKR0、BFSR0、BDR0、BCLKX0、BFSX0、BDX0、INT0、INT1、IACK”接McBSP0擴(kuò)展口(15)。
全文摘要
高安全等級的對稱密鑰算法的加密、解密方法及加密器是一種對稱密鑰DSP加密器,加密方法是由N輪加密輪相串聯(lián)組合而成,每個加密輪的加密順序是行移位變換、S盒替代__列混合變換、子密鑰模2加變換,每個加密輪的最后輸出即子密鑰模2加變換接下一加密輪的輸入即行移位變換,解密方法為由N輪解密輪相串聯(lián)組合而成,每個解密輪的解密順序是子密鑰模2加變換、逆列混合變換、逆S盒替代變換、逆行移位變換,每個解密輪的最后輸出即逆行移位變換接下一解密輪的輸入即子密鑰模2加變換,加密器由DSP模塊、FLASH模塊、McBSP0擴(kuò)展口所組成,該方法可以將加密速度提高2.16倍,解密速度提高2倍。
文檔編號G06F12/14GK1445681SQ0311338
公開日2003年10月1日 申請日期2003年5月1日 優(yōu)先權(quán)日2003年5月1日
發(fā)明者潘志鉑, 鄭寶玉, 吳蒙 申請人:南京郵電學(xué)院